Hướng dẫn tạo và định dạng bảng trong LaTeX (nâng cao) [Mới Nhất]

Hướng dẫn tạo và định dạng bảng trong LaTeX (nâng cao)

Cập nhật lần cuối: 27/06/2020
Thủ thuật hay, Thủ thuật phần mềm

Bình luận

NOTE: Chào mừng bạn đến với Blog Chia Sẻ Kiến Thức ! Nếu như trong quá trình sử dụng bạn gặp bất cứ lỗi gì, ví dụ như bị lỗi link download, blog load chậm, hay là không truy cập vào được một trang nào đó trên blog… thì bạn vui lòng thông báo với mình qua trang Liên Hệ nhé. Thanks !
Bài này thuộc phần 10 trong 13 phần của series Hướng dẫn sử dụng LaTeX

Cách tạo bảng trong LaTeX thì mình đã hướng dẫn cho các bạn trong bài viết này rồi. Tuy nhiên, đó chỉ là những hướng dẫn cơ bản, với những hướng dẫn này bạn chỉ có thể tạo được một bảng đơn giản gồm m dòng và n cột mà thôi.

Còn đối với những bảng phức tạp hơn như có thêm đường kẻ dọc, đường kẻ ngang, đường gạch chéo … thì vẫn chưa thể tạo được theo cách đó.



Hơn nữa, những bảng dạng này cũng rất thường gặp trong thực tế, chính vì vậy mà ngày hôm nay mình sẽ hướng dẫn cho các bạn cách tạo và định dạng bảng trong LaTeX để giải quyết nốt vấn đề này.

Trong bài viết này, ngoài nội dung chính mà mình vừa giới thiệu ở trên thì mình cũng hướng dẫn thêm cho các bạn cách tạo bảng có chiều ngang không đổi.

Okay, ngay bây giờ chúng ta hãy cùng bắt đầu nhé !

I. Nhắc lại cách tạo bảng trong LaTex

Như đã giới thiệu ở trên, cách tạo bảng mình đã hướng dẫn cho các bạn rồi. Nhưng ở đây để thuận tiện cho các bạn theo dõi nên mình sẽ hướng dẫn lại luôn.

Ngoài ra, mình cũng sẽ giải thích cho các bạn ý nghĩa của từng lệnh để làm tiền đề cho các phần sau:

Cách #1. Sử dụng Quick Tabular …

Cách này rất đơn giản chúng ta chỉ cần sử dụng Quick Tabular … của TeXstudio là được. Các bước thực hiện cụ thể như sau

+ Bước 1: Chọn Wizards => chọn Quick Tabular …

cach-dinh-dang-bang-trong-latex (1)

+ Bước 2: Hộp thoại Quick Tabular … xuất hiện với giao diện như hình bên dưới. Hộp thoại cung cấp cho chúng ta một số tùy chọn như:

cach-dinh-dang-bang-trong-latex (2)

  • Num of Columns số cột của bảng.
  • Column cột thứ n trong bảng đang được chọn.
  • Alignment canh thẳng lề (trái, phải, giữa) cho cột đang được chọn.
  • Left Border kiểu viền bên trái cho cột đang được chọn, có hai kiểu là |"https://blogchiasekienthuc.com/".
  • Right Border (last column) kiểu viền bên phải của cột cuối cùng.
  • Num of Rows số dòng của bảng.
  • Rows dòng thứ m trong bảng đang được chọn.
  • Top Border nếu được chọn thì bảng sẽ có viền trên cùng.
  • Merge Column từ cột thứ n đến cột thứ n + p của dòng đang được chọn sẽ được Merge Column.

+ Bước 3: Thực hiện các tùy chỉnh cần thiết => chọn OK.

cach-dinh-dang-bang-trong-latex (3)

Chẳng hạn, nếu tùy chỉnh như hình bên trên thì ta được bảng như hình bên dưới. Bảng bên dưới gồm có bốn dòng và ba cột.

Cột thứ nhất được canh lề lề trái, cột thứ hai được canh giữa và cột cuối cùng được canh lề phải. Chi tiết về ý nghĩa của từng lệnh và cách tùy chỉnh xem ở Cách 2

cach-dinh-dang-bang-trong-latex (4)

Cách #2. Tự soạn thảo mã nguồn

Các bạn đã biết trong LaTeX có rất nhiều môi trường, có thể kể ra một số môi trường thường gặp như flushleft, center, flushright, flushright, math, tabular …

Trong bài viết này chúng ta sẽ dành nhiều sự quan tâm đến môi trường Tabular.. nhé.

Môi trường này sẽ cho phép chúng ta tạo bảng trong LaTeX. Các lệnh liên quan đến việc tạo bảng phải được đặt trong môi trường này tức là nằm giữa begin{tabular}{…}…end{tabular}

Mình sẽ lấy ngay ví dụ trong Cách 1 để giải thích cho các bạn ý nghĩa của từng lệnh cơ bản có trong môi trường này

  • |l|c|r| bảng có bao nhiêu cột thì sẽ có bấy nhiêu kí tự l, c, r với l là canh lề trái, c là canh giữa, r là canh lề phải. Còn dấu xuyệt đứng | là những đường kẻ dọc có trong bảng. Như vậy cột nào bạn không muốn có đường kẻ dọc thì ta không dùng | cho cột đó.
  • hline là đường kẻ ngang. Tương tự như | dòng nào bạn không muốn có đường kẻ ngang thì không dùng hline cho dòng đó.
  • & báo cho LaTeX biết là bắt đầu qua cột mới.
  • \ báo cho LaTeX biết là bắt đầu qua dòng mới.

Nói chung thì Cách 1 tuy dễ thực hiện và nhanh hơn so với Cách 2, tuy nhiên hạn chế là chúng ta không thể tùy chỉnh và định dạng được nhiều.

Thường thì Cách 1 sẽ phù hợp với những bạn mới làm quen với LaTeX, còn Cách 2 phù hợp với những bạn đã có kiến thức nhất định về LaTeX.

Tối ưu nhất là khi bạn tạo ra bảng bằng Cách 1, rồi tùy chỉnh lại theo yêu cầu sử dụng bằng Cách 2.

II. Tạo bảng với chiều ngang không đổi

Mặc định, nếu bạn tạo bảng bằng Quick Tabular … thì chúng ta sẽ được bảng tự động điều chỉnh kích thước theo nội dung bên trong.

Tuy nhiên, trong trường nội dung quá nhiều và bạn không sử dụng \ để xuống dòng một cách thủ công thì nhiều khả năng là bảng của bạn sẽ bị tràn như hình bên:

cach-dinh-dang-bang-trong-latex (5)

Gặp trường hợp này chúng ta có hai cách để giải quyết:

  • Cách 1 là sử dụng \ để xuống hàng một cách thủ công.
  • Cách 2 là cố định chiều ngang của cột.

Do Cách 2 tối ưu hơn Cách 1 nên mình sẽ hướng dẫn các bạn thực hiện theo Cách 2. Ở Cách 2 khi chiều ngang của bảng đã được cố định thì khi bạn nhập nội dung vào nó sẽ tự động xuống dòng.

+ Bước 1: Khai báo gói lệnh array bằng cách thêm lệnh usepackage{array} vào trong phần lời tựa tức là trước begin{document}

+ Bước 2: Thêm lệnh >{raggedrightarraybackslash}p{…cm} vào trong môi trường tabular vị trí cụ thể như thế nào bạn vui lòng xem ảnh bên dưới

Lệnh >{raggedrightarraybackslash}p{…cm} sẽ làm cho nội dung trong cột sẽ được canh lề trên – trái và chiều ngang của cột là …cm

Chẳng hạn bảng bên dưới gồm có hai dòng hai cột. Nội dung trong mỗi cột được canh lề trên – trái và chiều ngang mỗi cột được cố định là 3 cm.

cach-dinh-dang-bang-trong-latex (6)

LaTeX cung cấp cho chúng ta chính lệnh để canh lề và cố định chiều ngang của bảng. Chi tiết về ý nghĩa và tên của từng lệnh được liệt kê ngay bên dưới

  • cach-dinh-dang-bang-trong-latex (7) >{raggedrightarraybackslash}p{…cm}
  • https://blogchiasekienthuc.com/ >{centeringarraybackslash}p{…cm}
  • https://blogchiasekienthuc.com/ >{raggedleftarraybackslash}p{…cm}
  • https://blogchiasekienthuc.com/ >{raggedrightarraybackslash}m{…cm}
  • https://blogchiasekienthuc.com/ >{centeringarraybackslash}m{…cm}
  • https://blogchiasekienthuc.com/ >{raggedleftarraybackslash}m{…cm}
  • https://blogchiasekienthuc.com/ >{raggedrightarraybackslash}b{…cm}
  • https://blogchiasekienthuc.com/ >{centeringarraybackslash}b{…cm}
  • https://blogchiasekienthuc.com/ >{raggedleftarraybackslash}b{…cm}

Khi bạn nhập nội dung vào bạn sẽ thấy gõ sự khác biệt. Một cách đơn giản bạn có thể hiểu nó tương tự như Alignment trong Microsoft Word

III. Bốn định dạng bảng trong LaTeX

Trong môi trường tabular có khá nhiều định dạng khác nhau trong phạm vi của bài viết này mình sẽ hướng dẫn cho các bạn một số định dạng cơ bản như đường kẻ dọc, đường kẻ ngang, gạch chéo và Merge Cells.

#1. Thêm đường kẻ dọc

Để thêm đường kẻ dọc cho cột, bạn chỉ cần thêm | vào vị trí tương ứng là được. Chẳng hạn mình cần thêm đường kẻ dọc đầu tiên và sau cùng trong bảng thì mình sẽ soạn thảo mã nguồn sẽ như hình bên dưới.

cach-dinh-dang-bang-trong-latex (16)

#2. Thêm đường kẻ ngang

Để thêm đường kẻ ngang cho dòng bạn chỉ cần thêm hline vào vị trí tương ứng là được. Chẳng hạn mình cần thêm đường kẻ ngang trên cùng và dưới cùng trong bảng thì mình sẽ soạn thảo mã nguồn sẽ như hình bên dưới.

cach-dinh-dang-bang-trong-latex (17)

#4. Thêm đường gạch chéo

Trong một số trường hợp trường hợp ta cần phải thêm đường gạch chéo vào ô, thường là ô đầu tiên, thì bạn có thể làm như sau:

+ Bước 1: Khai báo gói lệnh diagbox

+ Bước 2: Tại ô bạn muốn thêm đường gạch chéo bạn thêm lệnh diagbox{…}{…} là được. Chẳng hạn, mình muốn thêm đường gạch chéo vào ô đầu tiên trong bảng thì mình sẽ soạn mã nguồn như hình bên dưới.

cach-dinh-dang-bang-trong-latex (18)

Ngoài gói lệnh diagbox ra thì bạn cũng có thể sử dụng gói lệnh makecell hoặc slashbox để thêm đường gạch chéo cho một ô bất kì trong bảng.

#5. Merge Cells

Tương tự như bảng trong Word bảng trong LaTeX cũng cho phép chúng ta Merge Cells. Đối với Merge Columns bạn có thể thực hiện nó trong Quick Tabular …

Tuy nhiên, ở đây mình chỉ hướng dẫn các bạn cách thực hiện trực tiếp trên mã nguồn..

5.1. Merge Columns

Để Merge Columns thì chúng ta sử dụng lệnh multicolumn{n}{c|}{...} với n là số ô cần merge lại, và ccenter bạn cũng có thể thay nó bằng l hoặc r

Chẳng hạn bạn cần Merge cột thứ hai và thứ ba, của dòng thứ ba thì bạn soạn thảo mã nguồn như hình bên dưới.

cach-dinh-dang-bang-trong-latex (19)

#5.2. Merge Rows

Khác với Merge Columns để thực hiện Merge Rows bạn cần nạp thêm gói lệnh multirow. Đồng thời, cách Merge Rows cũng phức tạp hơn.

Bạn cần sử dụng lệnh multirow{m}{…cm}{...} và lệnh cline{…-…}

  • multirow{m}{…cm}{…} với m là số dòng cần Merge và …cm là chiều ngang của cột
  • cline{…-…} là đường kẻ ngang tương tự như hline nhưng bạn có thể khai báo cho LaTeX biết là kẻ từ đâu đến đâu.

Để hiểu thêm về hai lệnh này bạn vui lòng xem mã nguồn bên dưới.

cach-dinh-dang-bang-trong-latex (20)

IV. Lời kết

Các lệnh |, hline, diagbox{…}{…}, multicolumn{n}{c|}{...}, multirow{m}{…cm}{...} và  cline{…-…} cần được sử dụng một cách linh hoạt.

Linh hoạt ở đây có nghĩa là cần sử dụng chúng đúng vị trí, có thể sử dụng nhiều lần trong một bảng và có thể lồng ghép vào nhau …

Nếu bạn có thể làm được như vậy thì bạn đã có thể tạo được bảng hầu hết các bảng thường gặp trong thực tế, tuy chưa đạt đến mức độ tinh xảo nhưng trông nó cũng khá là chuẩn rồi.

Trong bài viết tiếp theo, mình sẽ hướng dẫn các bạn tạo một Long Table, tức là một bảng dài qua nhiều trang trong LaTex. Cảm ơn các bạn đã quan tâm đến bài viết này. Xin chào tạm biệt và hẹn gặp lại !



CTV: Nhựt Nguyễn – Blogchiasekienthuc.com

Xem tiếp các bài viết trong cùng Series

<< Một số thủ thuật hay khi soạn thảo tài liệu bằng LaTeXTạo bảng dài trong LaTex, và tô màu cho bảng trong LaTeX >>

Note: Bài viết này hữu ích với bạn chứ ? Đừng quên đánh giá bài viết, like và chia sẻ cho bạn bè và người thân của bạn nhé !


Nguồn bài viết: blogchiasekienthuc.com

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *