LaTeX
Thứ Bảy, 30/01/2016, 00:01
LaTeX 10 - Môi trường bảng (table) trong LaTeX

LaTeX 10 - Môi trường bảng (table) trong LaTeX

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
notion image
\begin{table}[!htp] \centering \begin{tabular}{...} ... \end{tabular} \caption{My caption 1} \label{bang1} \end{table}
[mks_toggle title="Giải thích đoạn code" state="close "]
  • [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.
  • \l****abel : đặt nhãn cho bảng, để sau này gọi lại bằng lệnh \ref{} 
[/mks_toggle] 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

[su_row][su_column size="1/2"]
\begin{tabular}{|l|c|r|} \hline xyz & 1 & math2it.com\\ \hline math2it.com & 123 & abc\\ \hline \end{tabular}
[/su_column] [su_column size="1/2"] [/su_column] [/su_row] [mks_toggle title="Giải thích sơ sơ vài cái để bạn có thể tự tùy chỉnh khi cần" state="close "]
notion image
  • 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.
[/mks_toggle]

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

[su_row][su_column size="1/2"]
\begin{tabular}{||||c|c|c|} \hline abc & 123 & 456 \\ \hline a & 2 & 2 \\ \hline 2 & 3 & 3 \\ \hline \end{tabular}
[/su_column] [su_column size="1/2"] [/su_column] [/su_row]
notion image

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

[su_row][su_column size="2/3"]
\begin{tabular}{|c|c|c|} \hline 1 & 2 & 3 \\ \hhline{|=|=|=|} 4 & 5 & 6 \\ \hline 7 & 8 & 9 \\ \hline \end{tabular}
[/su_column] [su_column size="1/3"] [/su_column] [/su_row]
notion image

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

Dùng gói lệnh \usepackage{array} [su_row][su_column size="2/3"]
\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}
[/su_column] [su_column size="1/3"] [/su_column] [/su_row]
notion image

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

[su_row][su_column size="2/3"]
\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}
[/su_column] [su_column size="1/3"] [/su_column] [/su_row] Ở đâ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)
notion image

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

Bạn phải dùng gói lệnh** \usepackage{multirow**} [su_row][su_column size="2/3"]
\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}
[/su_column] [su_column size="1/3"] [/su_column] [/su_row] 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.
notion image

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

Đầu tiên bạn cần dùng gói lệnh \usepackage{longtable} [su_row][su_column size="1/2"]
\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}
[/su_column] [su_column size="1/2"] [/su_column] [/su_row] [mks_toggle title="Giải thích đoạn code" state="close "] 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
notion image
  • \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.
[/mks_toggle]

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
[su_row][su_column size="2/3"]
\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}
[/su_column] [su_column size="1/3"] [/su_column] [/su_row] Nếu bạn gặp lỗi dạng
notion image
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.
Cùng chủ đề