HocThuatSo.comHọc Thuật Số
Gửi thư
LaTeX và Overleaf

Bảng và hình trong LaTeX: booktabs, vị trí đặt, hình nhiều khung

Bảng trong LaTeX đẹp nhờ ba đường kẻ của booktabs, bảng dài qua trang cần longtable, hình không trôi khi hiểu cơ chế đặt vị trí, và hình nhiều khung dựng bằng subcaption. Mã mẫu chạy được cho từng trường hợp.

Bảng và hình trong LaTeX: booktabs, vị trí đặt, hình nhiều khung

Bảng trong LaTeX nên dùng ba đường kẻ của gói booktabs, bảng dài qua nhiều trang dùng longtable, hình nhiều khung dùng subfigure của gói subcaption. Hình và bảng là vật trôi (float): LaTeX tự chọn chỗ đặt, và bạn chỉ điều khiển bằng tuỳ chọn vị trí.

Người mới hay khó chịu vì hình nhảy sang trang khác, bảng kẻ ô chi chít, hai hình con không thẳng hàng. Cả ba đều có cách xử lý gọn. Các đoạn mã dưới đây là mã tối thiểu chạy được; gói cần nạp được ghi rõ.

Bảng ba đường kẻ với booktabs

Vì sao bỏ đường kẻ dọc

Bảng trong bài báo khoa học hiếm khi cần đường dọc và đường ngang giữa mọi hàng. Ba đường kẻ — trên cùng, dưới hàng tiêu đề, dưới cùng — với khoảng cách hợp lý dễ đọc hơn, và là kiểu nhiều nhà xuất bản dùng.

Mã mẫu

Nạp \usepackage{booktabs} ở phần đầu, rồi:

\begin{table}[htbp]
\centering
\caption{Đặc điểm mẫu khảo sát}
\label{tab:mau}
\begin{tabular}{lrr}
\toprule
Nhóm & Số người & Tỷ lệ (\%) \\
\midrule
Nam & 120 & 48,0 \\
Nữ & 130 & 52,0 \\
\bottomrule
\end{tabular}
\end{table}

Số trong ví dụ là số giả định để minh hoạ. Đặt \caption trước \label, nếu không tham chiếu sẽ trỏ sai số. Chú thích bảng thường đặt trên bảng, chú thích hình đặt dưới hình; kiểm hướng dẫn của tạp chí.

Căn số theo dấu thập phân

Gói siunitx cung cấp kiểu cột S căn số theo dấu thập phân. Với số viết dấu phẩy thập phân kiểu Việt, khai tuỳ chọn output-decimal-marker của gói cho khớp. Ô tiêu đề trong cột S phải bọc trong ngoặc nhọn để gói không cố đọc chữ như số.

Bảng dài qua nhiều trang

Môi trường tabular không ngắt trang; bảng dài hơn một trang sẽ tràn ra ngoài lề dưới. Gói longtable giải quyết bằng môi trường cùng tên, cho phép khai hàng tiêu đề lặp lại ở mỗi trang. Bốn lệnh cần nhớ: phần trước \endfirsthead là tiêu đề trang đầu, phần trước \endhead là tiêu đề các trang sau, phần trước \endfoot là chân bảng các trang giữa (thường ghi bảng còn tiếp), phần trước \endlastfoot là chân bảng trang cuối.

Trước khi dựng bảng dài, tự hỏi bảng đó có nên nằm trong thân bài không. Danh sách đầy đủ các biến, danh mục mẫu, bảng mã hoá thường hợp với phụ lục hoặc tệp dữ liệu bổ sung hơn; thân bài chỉ giữ phần người đọc cần để hiểu lập luận. Tạp chí cũng thường giới hạn số bảng và hình trong bài chính, nên bảng dài đặt trong phụ lục còn giúp bạn giữ bài trong giới hạn đó.

Bảng longtable không đặt trong môi trường table vì nó không phải vật trôi; chú thích viết bằng \caption ngay trong bảng. Gói xltabular kết hợp bảng dài với cột tự giãn kiểu tabularx, hữu ích khi một cột chứa đoạn mô tả dài. Bảng dài cần biên dịch hai đến ba lần để độ rộng cột ổn định.

Vì sao hình bị trôi và cách điều khiển

Hình và bảng là vật trôi: LaTeX đặt chúng ở chỗ hợp lý nhất theo các tuỳ chọn bạn cho phép, tránh để trang lổn nhổn khoảng trắng. Tuỳ chọn nằm trong ngoặc vuông sau tên môi trường.

Tuỳ chọnÝ nghĩaKhi nên dùng
hĐặt ở đây, nếu đủ chỗLuôn kết hợp với các tuỳ chọn khác
tĐầu trangHầu hết hình và bảng
bCuối trangHình nhỏ
pTrang riêng chỉ chứa vật trôiHình hoặc bảng lớn gần một trang
!Nới bớt các giới hạn về tỷ lệ khoảng trốngKhi hình nhỏ mà vẫn bị đẩy đi
H (gói float)Bắt buộc đặt đúng tại chỗ, không trôiHạn chế; dễ sinh khoảng trắng lớn

Tổ hợp [htbp] là lựa chọn an toàn cho hầu hết trường hợp. Nếu hình trôi qua cả mục khác, gói placeins với tuỳ chọn section ngăn vật trôi vượt qua đầu mục mới; lệnh \FloatBarrier của gói này buộc mọi vật trôi chờ đặt phải được đặt trước điểm đó.

Trong văn bản, luôn tham chiếu bằng \ref (“như Hình 3”) thay vì viết “hình dưới đây”, vì hình có thể không nằm ngay dưới.

Hình nhiều khung với subcaption

Mã mẫu hai khung cạnh nhau

Nạp \usepackage{graphicx} và \usepackage{subcaption}, rồi:

\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.48\textwidth}
\centering
\includegraphics[width=\linewidth]{hinh/vungA}
\caption{Vùng A}
\label{fig:vungA}
\end{subfigure}\hfill
\begin{subfigure}[b]{0.48\textwidth}
\centering
\includegraphics[width=\linewidth]{hinh/vungB}
\caption{Vùng B}
\label{fig:vungB}
\end{subfigure}
\caption{So sánh hai vùng nghiên cứu}
\label{fig:sosanh}
\end{figure}

Tổng độ rộng hai khung cộng khoảng cách không vượt \textwidth. Dòng trống giữa hai khung con sẽ đẩy khung sau xuống hàng mới; muốn hai hàng, cố ý để một dòng trống hoặc dùng \par.

Căn đáy hay căn đỉnh

Tuỳ chọn [b] căn các khung theo đáy, giúp chú thích con thẳng hàng khi hai hình cao khác nhau. Tốt hơn nữa là xuất hai hình với cùng tỷ lệ khung từ phần mềm vẽ để không phải căn.

Tham chiếu khung con

\ref{fig:vungA} cho ra dạng số kèm chữ cái của khung con, ví dụ 3a. Không đặt chữ a, b vào trong ảnh nếu đã dùng chú thích con, vì sẽ ra hai lớp nhãn.

Chèn hình vector thay vì ảnh chụp màn hình

Xuất PDF từ phần mềm vẽ. R (hàm ggsave với đuôi .pdf), Python (matplotlib savefig với đuôi .pdf), Inkscape đều xuất được PDF vector. Hình vector phóng to không vỡ, chữ trong hình sắc nét, và tệp thường nhẹ hơn ảnh độ phân giải cao.

Chữ tiếng Việt trong hình. Kiểm chữ có dấu trong hình xuất ra; trong R, thiết bị cairo_pdf xử lý UTF-8 tốt hơn thiết bị PDF mặc định. Nên dùng cùng họ phông với thân bài để hình và chữ trông liền mạch.

Tệp SVG. LaTeX không chèn trực tiếp SVG bằng \includegraphics. Chuyển SVG sang PDF bằng Inkscape là cách ổn định nhất; gói svg làm việc này tự động nhưng cần Inkscape và quyền chạy lệnh ngoài khi biên dịch.

Ảnh chụp, ảnh hiển vi. Dùng PNG cho ảnh có vùng màu phẳng và JPG cho ảnh chụp; giữ độ phân giải đủ cho khổ in theo yêu cầu của tạp chí, không phóng to ảnh nhỏ.

Bảng kết quả có chú thích dưới bảng

Chú thích dưới bảng

Bảng kết quả hồi quy hay cần dòng ghi chú bên dưới: mức ý nghĩa, nguồn số liệu, giải thích ký hiệu. Gói threeparttable giữ phần ghi chú rộng đúng bằng bảng: đặt tabular trong môi trường threeparttable, rồi môi trường tablenotes sau bảng. Đánh dấu ô cần chú thích bằng lệnh \tnote{a}.

Gộp ô

Gộp nhiều cột cho một tiêu đề chung bằng \multicolumn{2}{c}{Mô hình 1}, kèm \cmidrule(lr){2-3} của booktabs để kẻ đường ngắn dưới tiêu đề đó. Gộp hàng dùng gói multirow, nhưng bảng ba đường kẻ thường đọc tốt hơn nếu tránh gộp hàng.

Kiểm hình và bảng trước khi nộp

  1. Mọi hình và bảng đều được nhắc trong văn bản bằng \ref, theo đúng thứ tự xuất hiện.
  2. Chữ trong hình đọc được ở cỡ in thật; phóng PDF về 100% để kiểm.
  3. Đơn vị đo ghi ở tiêu đề cột hoặc trục, không lặp trong từng ô.
  4. Số thập phân thống nhất dấu (phẩy hay chấm) và số chữ số trong cả bảng.
  5. Tệp hình nộp riêng (nếu tạp chí yêu cầu) đúng định dạng và độ phân giải; tên tệp khớp lệnh chèn hình.

Lỗi hay gặp với bảng và hình

  • Bảng tràn lề phải: giảm cột, đổi cột chữ dài sang kiểu p{3cm} để xuống dòng, hoặc dùng tabularx; tránh thu nhỏ cả bảng bằng \resizebox vì chữ sẽ nhỏ hơn thân bài.
  • Số tham chiếu sai: \label đặt trước \caption.
  • Ký tự %, &, _ trong ô bảng làm lỗi: thoát bằng dấu gạch chéo ngược.
  • Hình dồn hết về cuối chương: quá nhiều vật trôi liên tiếp, thêm tuỳ chọn p hoặc chia lại vị trí trong văn bản.
  • Hình không hiện, chỉ khung trống: đang bật tuỳ chọn draft của lớp tài liệu hoặc gói graphicx.
  • Báo không tìm thấy tệp hình dù tệp có trong dự án: tên tệp có dấu tiếng Việt, khoảng trắng hoặc khác chữ hoa chữ thường so với lệnh chèn; Overleaf chạy trên Linux nên phân biệt hoa thường. Đổi tên tệp sang chữ thường không dấu, nối bằng gạch nối.
  • Chú thích hình in chữ Figure thay vì Hình: thiếu babel tiếng Việt, hoặc lớp tài liệu của nhà xuất bản cố định chữ này; với mẫu nhà xuất bản, giữ nguyên.

Câu hỏi thường gặp

Có nên dùng công cụ tạo bảng trực tuyến cho LaTeX không?

Có thể dùng để dựng nhanh bảng lớn từ dữ liệu, nhưng nên dọn lại mã: bỏ đường kẻ thừa, đổi sang lệnh booktabs, thoát các ký tự đặc biệt. Mã sinh tự động thường dài và khó sửa về sau.

Làm sao đặt bảng nằm ngang trên trang?

Dùng gói rotating với môi trường sidewaystable thay cho table. Bảng sẽ xoay chín mươi độ và chiếm một trang riêng. Hợp với bảng nhiều cột như kết quả hồi quy nhiều mô hình.

Có thể xuất bảng kết quả trực tiếp từ R hoặc Python sang LaTeX không?

Có. Nhiều gói của R và thư viện pandas của Python xuất được bảng sang mã LaTeX, một số hỗ trợ sẵn kiểu booktabs. Xuất ra tệp riêng rồi nạp bằng input giúp cập nhật bảng khi chạy lại phân tích.

Hình chèn vào bị mờ dù ảnh gốc nét, vì sao?

Thường do ảnh nhỏ bị phóng to để vừa chiều rộng, hoặc ảnh đã bị nén khi chép qua công cụ khác. Xuất lại hình ở dạng vector hoặc ở độ phân giải cao hơn, và đặt chiều rộng không vượt kích thước thật của ảnh.

Có cần đặt mọi hình trong môi trường figure không?

Không bắt buộc, nhưng chỉ hình trong figure mới có chú thích đánh số và xuất hiện trong danh mục hình. Với bài báo và luận án, nên đặt mọi hình có chú thích trong figure.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

🧭
Bạn đang ở chặng nào của đường học vị?
Nhập chỗ bạn đang đứng và đích bạn nhắm — công cụ trả về số năm, chi phí và việc phải làm từng chặng.
Xem lộ trình của tôi →
Miễn phí, không cần tài khoản. Xem tất cả công cụ

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
[email protected]