LaTeX
Thứ Năm, 17/03/2016, 00:03
LaTeX 11 : Chia cột văn bản trong LaTeX

LaTeX 11 : Chia cột văn bản trong LaTeX

Bài viết này sẽ hướng dẫn bạn cách nhanh gọn để chia cột văn bản trong LaTeX cùng một số tùy chỉnh của nó.

Cách đơn giản nhất với gói lệnh multicol

Công cụ được sử dụng ở đây là gói lệnh multicol. Bạn có thể thử ngay bằng cách tạo một tài liệu mới và dán đoạn code sau đây vào.
\documentclass{article} \usepackage{lipsum} %tạo đoạn văn bản để thử nghiệm \usepackage{multicol} \begin{document} \begin{multicols}{3} \lipsum[1-4] %tạo đoạn văn bản để thử nghiệm \end{multicols} \end{document}
Nhìn vào đoạn code trên, bạn có thể thấy ta cần dùng gói lệnh
\usepackage{multicol}
Cách sử dụng (thay số 3 bởi số cột mà bạn muốn)
\begin{multicols}{3} ... \end{multicols}

Tăng độ rộng giữa các cột

Bạn đặt câu lệnh sau ở trước \begin{document} và ngay sau \usepackage{multicol}, thay "1cm" bởi độ rộng bạn muốn, bạn có thể dùng "em" hay "px" (pixel) thay vì "cm".
\setlength{\columnsep}{1cm}

Làm mất căn bằng các cột

Mặc định thì độ dài của văn bản sẽ chia đều cho các cột, nói cách khác, độ dài chữ của các cột sẽ gần bằng nhau. Bây giờ nếu bạn dùng đoạn code sau, chữ sẽ hiện ra ở cột thứ nhất cho đến hết trang rồi nó mới sang đến cột thứ hai (khi ấy cột cuối sẽ ngắn chữ hơn những cột đầu)
notion image
\begin{multicols*}{4} ... \end{multicols*}

Chèn hình và bảng ngay bên trong cột

Bạn có thể chèn hình lấn chữ (float image) và chèn bảng (float table) ngay bên trong cột như hình dưới đây Không có gì đặc biệt cả, bạn cứ chèn hình như bình thường trong môi trường multicols là được, xem thêm bài viết về chèn hình trong LaTeX.
notion image

Thêm lằn thẳng đứng giữa các cột

Bạn đặt những câu lệnh sau ở trước **\**begin{document} và ngay sau \****usepackage{multicol}, thay "1pt" bởi độ dày của thanh, "blue" bởi những màu khác.
notion image
\usepackage{color} \setlength{\columnseprule}{1pt} \def\columnseprulecolor{\color{blue}}

Dùng column break (ngắt dòng sang cột khác)

Bạn có thể ngắt một đoạn nào đó và ép nó sang cột kế tiếp bằng câu lệnh sau (đặt ngay trước dòng mà bạn muốn ngắt trong văn bản)
%đoạn trước \columnbreak %đoạn sau

Chia cột với độ rộng khác nhau

Ở trên mình hướng dẫn bạn dùng gói lệnh multicols để chia cột một cách nhanh chóng, tuy nhiên nhược điểm của nó là độ rộng các cột là bằng nhau.

Dùng gói lệnh parcolumns

Cách dùng như đoạn code bên dưới
notion image
\usepackage{parcolumns} % đặt trước \begin{document} \begin{parcolumns}[colwidths={1=.3\textwidth},rulebetween=true]{2} \colchunk{% cột trái nội dung cột thứ nhất } \colchunk{% cột phải nội dung cột thứ 2 } \end{parcolumns}
Trong đó, 1=.3\textwidth  cho bạn biết rằng độ rộng của cột 1 bằng 30% độ dài của văn bản.

Dùng gói lệnh vwcol

\usepackage{vwcol} % trước \begin{document} \begin{vwcol}[widths={0.3,0.7}, sep=.8cm, justify=flush,rule=0pt,indent=1em] Nội dung văn bản. \end{vwcol}
Trong đó,
  • widths={0.3,0.7} : tỷ lệ tính theo % độ rộng của cột thứ nhất và cột thứ hai xét theo độ rộng của toàn bộ văn bản.
  • sep=.8cm : khoảng cách giữa 2 cột.
  • justify=flush : canh đều văn bản, bạn có thể bỏ nó đi để có canh trái.
  • rule=0pt : lằn giữa, thay 0 bởi số khác với 0pt là độ đậm của lằn.
  • indent=1em : Thụt đầu dòng ở đầu mỗi đoạn.
Cùng chủ đề