Bài viết sẽ hướng dẫn bạn các cách đơn giản nhất để có thể tạo một bảng (table) trong LaTeX.

Cách nhanh nhất

  • Bạn dùng chức năng tạo bảng trong TeXMaker hoặc các trình soạn thảo TeX thông dụng đa phần đều có một mục tạo table cho bạn. Trong TexMaker bạn vào Wizard > Tabular.
  • Trang latex table cho phép bạn tạo bảng File > New table và chọn những tùy chọn mà bạn muốn rồi nhấn Generate để tạo code LaTeX.
  • Dán code LaTeX vừa tạo được vào trong bài của bạn là xong.

Môi trường bảng

Bạn muốn ở đầu tài liệu liệt kê tất cả các bảng bạn đã dùng trong tài liệu như hình dưới

thì bạn phải để cái bảng của bạn (đoạn code cái bảng đó) trong môi trường tabular như bên dưới

\begin{table}[!htp]
    \centering
    \begin{tabular}{...}
        ...
    \end{tabular}
    \caption{My caption 1}
    \label{bang1}
\end{table}
Giải thích đoạn code
  • [htp!] : ưu tiên hiển thị vị trí của bảng trong văn bảng (khi ghi nhiều cái một lượt, latex sẽ ưu tiên từ trái sang phải)
    • h : vị trí hiện tại
    • t : ở trên cùng trong trang đang hiển thị
    • p : ở một trang riêng biệt
    • b : ở cuối trang
    • ! (đặt trước hết) : ép latex đặt theo thứ tự đó cho dù nó sẽ làm văn bản trình bày không đẹp.
  • \caption : thêm ghi chú cho bảng.
  • \label : đặt nhãn cho bảng, để sau này gọi lại bằng lệnh \ref{} 

Gọi lại danh sách bảng đó bằng dòng lệnh

\listoftables

Làm thủ công

Một bảng đơn giản 2 hàng 3 cột

\begin{tabular}{|l|c|r|}
\hline 
xyz & 1 & math2it.com\\ 
\hline 
math2it.com & 123 & abc\\ 
\hline 
\end{tabular}

Giải thích sơ sơ vài cái để bạn có thể tự tùy chỉnh khi cần
  • Các dấu | (gạch đứng) đại diện cho các lằn thẳng đứng trong bảng, nếu có để nó thì nó sẽ hiện đường đứng, ko để, ví dụ |lcr| thì sẽ không hiện các lằn thẳng ở giữa bảng.
  • hline : có cái này là có cái lằn ngang.
  • \ : báo hiệu là qua hàng mới (ngăn cách giữa các hàng).
  • & : báo hiệu là qua cột mới (ngăn cách các cột)
  • l = left (trái), c = center (giữa), r = right (phải) : canh lề văn bản như trong ví dụ ở trên.

Làm nhiều lằn sọc đứng

\begin{tabular}{||||c|c|c|}
    \hline
    abc & 123 & 456 \\ \hline
    a   & 2   & 2   \\ \hline
    2   & 3   & 3   \\ \hline
\end{tabular}

Làm nhiều lằn sọc ngang

\begin{tabular}{|c|c|c|}
   \hline 
   1 & 2 & 3 \\ \hhline{|=|=|=|}
   4 & 5 & 6 \\ \hline
   7 & 8 & 9 \\ \hline
\end{tabular}

Bảng với chiều dài cố định

Dùng gói lệnh \usepackage{array}

\begin{tabular}{|m{5em}|m{1cm}|m{1cm}|} 
    \hline
    cell1 dummy text & cell2 & cell3 \\ 
    \hline
    cell1 dummy text  & cell5 & cell6 \\ 
    \hline
    cell7 & cell8 & cell9 \\ 
    \hline
\end{tabular}

Kết hợp nhiều cột lại (merge cells)

\begin{tabular}{ |c||c|c|c| }
 \hline
 \multicolumn{3}{|c|}{Country List} & abc \\
 \hline
 Area Name& ISO 2 & ISO 3 & ISO 4\\
 \hline
 Vn & AF & AFG &   004\\
 Thai&   AX  & ALA   & 248\\
 Mal &AL & ALB&  008\\
 \hline
\end{tabular}

Ở đây số 3 là kết hợp 3 cột lại với nhau. Bạn chỉ được dùng số cột nhỏ hơn tổng số cột của bảng (trường hợp này tổng số cột là 4)

Kết hợp nhiều hàng lại (merge cells)

Bạn phải dùng gói lệnh \usepackage{multirow}

\begin{tabular}{ |c|c|c|c| } 
\hline
col1 & col2 & col3 \\
\hline
\multirow{3}{4em}{Multiple row} & cell2 & cell3 \\ 
& cell5 & cell6 \\ 
& cell8 & cell9 \\ 
\hline
123 & dfg & daw \\
\hline
\end{tabular}

Số 3 là số hàng sẽ được kết hợp, 4em là độ rộng của cột. Bắt buộc phải có đủ 2 thành phần này.

Bảng dài nhiều trang giấy

Đầu tiên bạn cần dùng gói lệnh \usepackage{longtable}

\begin{longtable}[htp]{|c|c|}
 \caption{Caption ở đây. \label{long}}\\
 \hline
 ...
 \hline
 \endfirsthead
 \hline
 ...
 \endhead
 \hline
 ...
 \hline 
 \endfoot
 \hline
 ...
 \hline
 \endlastfoot
 ... %nội dung các thành phần khác của bảng ở đây
\end{longtable}

Giải thích đoạn code

Phần bảng dài này nó gồm 2 phần, phần đầu là những dòng giống nhau mỗi khi sang trang mới. Nghĩa là qua trang mới thì các thứ ở phần này vẫn tiếp tục được hiện lại. Phần thứ 2 là nội dung chính của bảng (sau \endlastfoot). Dưới đây là giải thích các câu lệnh cho phần đầu tiên

  • \endfirsthead : mọi thứ ở trước cái này sẽ xuất hiện ở đầu của bảng (trang đầu tiên mà bảng xuất hiện)
  • \endhead : mọi thứ nằm trước cái này và sau endfirsthead sẽ xuất hiện ở đầu của bảng ở mỗi trang trừ trang đầu tiên. Tức là khi bạn sang một trang mới, thứ này sẽ được hiện lại.
  • \endfoot : giống endhead, mọi thứ nằm trước cái này và sau endhead sẽ xuất hiện lại ở mỗi trang mới nhưng ở cuối bảng.
  • \endlasthead : giống endfirsthead, mọi thứ ở trước cái này và sau endfoot sẽ hiện ở cuối cùng của bảng và chỉ hiện ở trang cuối cùng mà bảng xuất hiện.

Sử dụng footnote trong môi trường table

Khi bạn dùng \footnote trong môi trường tabular, nó chỉ hiển thị chỉ số chứ không hiển thị chú thích bên dưới trang như bình thường. Cách khắc phục

  • footnote hoạt động tốt nếu bạn dùng gói lệnh cho bảng dài longtable.
  • Nếu bạn dùng bảng ngắn bình thường thì bạn cần dùng gói lệnh \usepackage{footnote} (để trước \begin{document} và làm như ví dụ bên dưới
\begin{savenotes}
    \begin{table}[ht]
        \centering
        \begin{tabular}{|l|c|c|}
            \hline
            A & 1 & 2 \footnote{ghi chú 1.} \\
            \hline
            B & 2 & 1 \\
            \hline
            C & 3\footnote{ghi chú 2.} & 3 \\
            \hline
        \end{tabular}
        \caption{A table caption.}
    \end{table}%
\end{savenotes}

Nếu bạn gặp lỗi dạng

Missing } inserted. hay Extra }, 
forgotten \endgroup

có thể là do bạn đang dùng gói lệnh xcolor, gói lệnh này sẽ đụng chạm với gói footnote nên nó mới xuất hiện lỗi trên. Cách khắc phục là bạn để dòng xcolor trước dòng footnote là xong.

Share

CÙNG CHỦ ĐỀ

CÓ THỂ BẠN SẼ THÍCH