This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

Trình bày bảng (cơ bản)

Ghi chú: Tài liệu này được biên soạn dựa trên hướng dẫn của phuoclh trong một những buổi cuối cùng của TeXOption_112008. kyanh trích mã nguồn và biên soạn các bản thảo đầu tiên của tài liệu wiki.

Bảng đơn giản (built-in)

\begin{tabular}{|c|c|l|r|}
 \hline
 STT & Ho va ten    & Nam/nữ & Lớp\\\hline
 1   & Nguyen Van A & Nam    & 1A \\
 2   & Nguyen Thi B & Nu     & 2B \\\hline
\end{tabular}
  1. Trong bảng này, các ký tự c, l, [email protected] để thực hiện canh giữa, trái và phải.
  2. Trong khi đó, các ký hiệu | dùng để tạo đường kẻ dọc. Lệnh \hline tạo đường kẻ ngang. Lệnh \\ để tạo một hàng mới của bảng.
  3. Do đó, ta chưa thể tạo các văn bảng có nhiều dòng trong một ô.
  4. Để ý các ký tự & dùng để phân cách các ô. Nếu có ba cột thì sẽ có ba - 1 = hai &. Nếu quên sẽ gây nhầm lẫn.

Bảng với caption và label

\begin{table}
 \centering
 \begin{tabular}{|r|c|l|}
  \hline
   STT & Ho va ten    & Ghi chu\\\hline
   1   & Nguyen Van A & Nam\\
   2   & Nguyen Thi B & Nu\\\hline
  \end{tabular}
 \caption{bang 1}
 \label{tab:table2}
\end{table}
  1. Trong ví dụ này, ta dùng bảng tabular với môi trường tạo floattable. Nhờ đó, vị trí của bảng được bố trí tự động cho phù hợp với các văn bản.
  2. Bảng sẽ có caption (tên của bảng) tạo bởi lệnh \caption.
  3. Đi theo sau lệnh \caption là lệnh tạo nhãn \label{tab:table2}
  4. Sau này, muốn tham khảo tới bảng ở trên, ta dùng ví dụ Xem Bảng~\ref{tab:table2}. Nhớ rằng tab: chỉ là tiền tố phân biệt cách nhãn với nhau thôi.

Bảng với màu sắc cho chữ

% \usepackage{array,color,colortbl}

\begin{tabular}{|>{\color{blue}\bfseries}c|c|}
 \hline
 Đội & \textcolor{mycol}{\bfseries Hạng}\\\hline 
 Vietnam & I\\
 Thailand & II\\ 
 Malaysia & III\\\hline
\end{tabular}
  1. Trong bảng này, ta dùng gói array để tạo tiền/hậu tố. Và vài gói khác
  2. Để ý đến tham số của môi trường tabular, hơi rắc rối là >{\color{blue}\bfseries}c.
    1. Bình thường, ta chỉ dùng cc để tạo ra bảng hai cột
    2. Trong ví dụ này, ta thay thế chữ c đầu tiên bởi >{\color{blue}\bfseries} -- để tạo cột thứ nhất.
    3. Việc thêm này được hỗ trợ nếu bạn dùng gói array. Nó cho phép dùng kèm với mỗi chữ c, l, r hai ký hiệu nữa là >.
    4. Chữ > cho biết là tất cả mọi ô của cột thứ nhất sẽ được tự động bắt đầu bằng các lệnh {\color{blue}\bfseries} (in đậm cùng với tô màu xanh).
    5. Như bạn thấy trong kết quả, cột đầu tiên được tô xanh. Nhưng mã nguồn của cột đầu tiên thì rất sạch sẽ.

Bảng với màu sắc cho nền

Nếu thích mà nền cho các ô thì thử ví dụ sau. Nhớ rằng các gói đưọc nạp cũng như ở ví dụ ở trên

% \usepackage{array,color,colortbl}
% \definecolor{mycol}{rgb}{1,0.2,0.8}

\begin{tabular}{|>{\columncolor{blue}\color{white}\bfseries}c|c|}
 \hline
 \rowcolor[gray]{0.5} 
   Đội & \textcolor{mycol}{\bfseries Hạng}
 \\\hline 
 \cellcolor{red}Vietnam
   & I\\
 Thailand & II\\ 
 Malaysia & III\\\hline
\end{tabular}
  1. Ta định nghĩa thêm lệnh tạo màu mới mycolor
  2. Trong ví dụ này, ta thay chữ c để tạo cột đầu tiên bởi >{\columncolor{blue}\color{white}\bfseries}c
  3. Theo đó, nội dung tất cả các ô ở cột đầu tiên sẽ được in đậm, tô màu chữ trắng nền xanh
  4. Mặc dầu vậy, như ta thấy trong kết quả, các ô đầu tiên và thứ nhì của cột 1 vẫn có màu khác, do sử dụng thêm các lệnh \rowcolor\cellcolor

Trộn các cột

\begin{tabular}{|l|l|}
\hline
 \multicolumn{1}{|c|}{Thành thị} & \multicolumn{1}{c|}{Nông thôn}\\\hline
 \multicolumn{2}{|c|}{Giao thông}\\\hline
 Đường nhựa, rộng rãi & Đường mòn, đường đan, hẹp\\
 Phương tiện đa dạng & Xe máy, xe đạp\\
 Thường kẹt xe & Hiếm kẹt xe\\\hline
 \multicolumn{2}{|c|}{Môi trường}\\\hline
 Khói bụi nhiều & Không khí trong lành\\
 Sông nước đen & Sông còn xanh mát\\
 \hline        
\end{tabular}
  1. Để trộn chung các cột thì đơn giản, không cần dùng thêm gói nào
  2. Ví dụ, để trộn hai cột ở hàng thứ hai, ta dùng \multicolumn{2}{|c|}{Giao thông}.
    1. Rõ ràng, số 2 cho biết ta sẽ trộn hai cột
    2. Ký tự c được dùng để canh giữa cho cột mới được tạo ra.
    3. Các ký tự | để thêm các gạch đứng ở hai đầu của ô trộn. Nếu bỏ đi thì sao, bạn tự thử nghiệm xem!
    4. Để ý rằng, nếu ta có một hàng với 3 cột, ta sẽ dùng 2 chữ &. Sau khi trộn lại thì ta sẽ bớt đi một chữ &
    5. Trong ví dụ ở trên, ở hàng thứ hai chẳng có chữ & nào cả
  3. phuoclh cũng đề nghị lệnh \multicolumn{1}{|c|}{Thành thị}. Đây là cách dùng khá thông minh.
    1. Bởi vì theo thiết lập thì tất cả các ô đều được canh trái như ở \begin{tabular}{|l|l|}
    2. Nhưng chuyện gì xảy ra nếu ta muốn một ô canh giữa? Chỉ việc trộn 1 cột, và thiết lập chế độ canh giữa cho cột đó là xong.

Trộn các dòng

% \usepackage{multirow}

\begin{tabular}{|l|l|l|l|}
 \hline
   \multirow{4}{.5em}{2 0 0 8}
 & Quí 1 & Bắt đầu cuộc đua vào nhà trắng & Thị trờng BĐS VN đóng băng \\\cline{2-4}
 & Quí 2 & B.Obama giành quyền đại diện đảng dân chủ & Kinh tế thế giới bắt đầu suy thoái \\\cline{2-4}
 & Quí 3 & Hạ viện Mỹ thông qua gói cứu trợ kinh tế & Giá xăng dầu VN lên 19000/l \\\cline{2-4}
 & Quí 4 & Lớp Latex khoa Toán -- Tin ĐHSP hoàn tất & B.Obama trở thành tổng thống Mỹ \\\hline 
\end{tabular}

Ví dụ này thì quá rõ rồi, bạn tự ngâm cứu. Chú ý sự xuất hiện của các lệnh \cline

Chiều rộng của cột và bảng

Tôi mệt quá rồi, không làm thêm các hình nữa. Bạn tự thử nghiệm các ví dụ sau đây:) Nếu bạn thử nghiệm thành công, vui lòng chụp vài hình và gửi đến ViệtTUG qua email vietug{@}gmail.com. Chúng tôi sẽ tải hình minh hoạt lên trang wiki này.

% \usepackage{tabularx}

\begin{tabular}{|p{5cm}|p{2cm}|}
 \hline
  Độ rộng của cột này là 5cm. Đây là cách để xác định độ rộng theo ý mình.
  & và đây là độ rộng 2cm
 \\\hline
\end{tabular}

\begin{tabularx}{400pt}{|c|l|X|c|X|}
 \hline
 STT & Ho va ten    & Uu diem   & So thich & Ghi chu\\\hline
 1   & Nguyen Van A & Tot bung  & bong da  & Lam viec tai HCMC\\
 2   & Le Thi B     & Nang dong & am nhac  & Lam viec tai Ha Noi\\\hline
\end{tabularx}

\begin{tabularx}{\linewidth}{|X|X|X|X|}
 \hline
   Các cột được phân chia độ rộng cân bằng nhau
 & Mỗi cột có độ rộng bằng tổng độ rộng cả dòng chia 4
 & Ta dùng để tạo ra các bảng có độ rộng trọn chiều ngang trang giấy
 & và có số lượng cột theo ý mình
 \\\hline
\end{tabularx}

\begin{tabularx}{\linewidth}{|X|X|}
 \hline
    Bảng được chia thành hai phần bằng nhau
  & Hãy so sánh với bảng dưới đây\\\hline
\end{tabularx}

\begin{tabularx}{\linewidth}{|>{\setlength\hsize{.75\hsize}}X|>{\setlength\hsize{1.25\hsize}}X|}
\hline
   So sánh với bảng trên
 & Bảng này có độ rộng hai cột không cân bằng nhau
  \\\hline
\end{tabularx}

Bảng với ô có gạch chéo

Xem ở slashbox