Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
HƯỚNG DẪN SỬ DỤNG L
A
T
E
X
Đào Ngọc Minh
Bộ môn Đại số, khoa Toán - Tin,
trường Đại học Sư phạm Hà Nội
Tóm tắt
T
E
X là một chương trình được thiết kế bởi Donald E. Knuth hướng đến việc soạn
thảo những công thức toán học. Trong giới toán học T
E
X mau chóng được thừa nhận
là một hệ sắp chữ thích hợp nhất để in sách báo toán học. Bài viết này sẽ cho chúng ta
một cách tiếp cận với L
A
T
E
X, một chương trình được thiết kế bởi Leslie Lamport dựa
trên việc sử dụng công cụ định dạng của T
E
X.
1 Giới thiệu
Hội toán học Hoa Kì đã phát triển T
E
X thành A
M
ST
E
X, do Michael Spivak xây dựng, thực
chất là một hệ các macro viết bổ sung cho T
E
X nhằm sử dụng T
E
X dễ dàng hơn.
L
A
T
E
X là một gói các tập lệnh cho phép tác giả có thể soạn thảo và in ấn tài liệu của
mình với chất lượng bản in cao nhất thông qua việc sử dụng một cách chuyên nghiệp các
kiểu trình bày đã được định trước. Được thiết kế bởi Leslie Lamport, L
A
T
E
X sử dụng công
cụ định dạng của T
E
X để làm hạt nhân cơ bản phục vụ cho việc định dạng tài liệu.
Để tạo ra một văn bản bằng T
E
X, trước hết cần soạn thảo một tệp nguồn hay còn gọi là
tệp T
E
X bằng một hệ soạn thảo bình thường mà T
E
X có thể đọc được. Tệp này có tên dạng
*.tex được T
E
X biên dịch thành tệp DVI (DeVice Independent) có tên dạng *.dvi và đó
chính là sản phẩm mà chúng ta dự kiến tạo ra.
Có nhiều chương trình soạn thảo và biên dịch T
E
X, trong đó PCTeX là một phần mềm
tích hợp cả chương trình biên dịch T
E
X, L
A
T
E
X, A
M
ST
E
X và hệ soạn thảo theo các phông
TrueType. MiKTeX là chương trình biên dịch T
E
X và L
A
T
E
X mã nguồn mở gồm nhiều gói
lệnh và macro cho phép biên dịch tệp nguồn ra các định dạng DVI, PS và PDF một cách dễ
dàng. MiKTeX cần đi kèm với một trong các hệ soạn thảo như WinShell, WinEdt, EmEditor,
TeXnicCenter, TeXMaker, LaTeXEditor, TeXShell, VieTeX,. . .
Trong bài viết này, những ví dụ được viết trên VieTeX 2.8 và biên dịch bởi MiKTeX
2.7. Có thể tải miễn phí các phần mềm này từ và
về máy tính cá nhân rồi cài đặt một cách đơn giản. Ngoài ra, cần có
phần mềm Adobe Acrobat Reader để đọc file *.pdf. Ví dụ sau đây sẽ cho ta một hình dung
ban đầu về việc soạn thảo và biên dịch một văn bản với L
A
T
E
X.
\documentclass[12pt,a4paper]{article} % Khai báo lớp văn bản
% Trên mỗi dòng, nội dung sau kí hiệu "%" không được biên dịch
\usepackage[utf8]{vietnam} % Gói lệnh phông tiếng Việt
\usepackage{amsmath,amsthm,amssymb}% Các gói lệnh về môi trường và kí hiệu
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2cm]{geometry}% Căn lề
\begin{document} % Bắt đầu thân văn bản
1
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
\pagestyle{empty} % Kiểu trang
\noindent % Không thụt đầu dòng
Nội dung văn bản.
\end{document} % Kết thúc văn bản
2 Soạn thảo văn bản L
A
T
E
X
2.1 Cấu trúc tệp nguồn L
A
T
E
X
Một tệp T
E
X gồm các lệnh được bắt đầu bằng dấu \ và có dạng
\name[parameter]{mandarg}
name là tên lệnh, parameter là tham số (hay là biến), số lượng các tham số có thể có là từ 0
đến 9, mandarg là nội dung của lệnh. Các lệnh của L
A
T
E
X cần phải được nhập vào theo đúng
chữ hoa và chữ thường. Một tệp nguồn của L
A
T
E
X được chia làm hai phần chính: Phần khai
báo và Phần thân văn bản.
Phần khai báo gồm có các lệnh:
Khai báo lớp văn bản sử dụng: \documentclass[options]{class}. Class là một
trong các lớp văn bản: article, report, letter, book, slides, beamer, ;
còn options là những tuỳ chọn sau:
- Cỡ chữ: 10pt, 11pt, 12pt. Mặc định: 10pt.
- Khổ giấy: a4paper, a5paper, b4paper, letterpaper, legalpaper,
excutivepaper. Mặc định: letter.
- Trang dọc (portrait) hoặc trang ngang (landscape). Mặc định: portrait.
- Số cột trên một trang: onecolumn, twocolumn. Mặc định: onecolumn.
- Đẩy công thức sang bên trái: fleqn. Mặc định: trung tâm.
- Đánh số công thức toán: leqno (bên trái), reqno (bên phải). Mặc định: reqno.
- Bắt đầu chương: openright (trang bên phải), openany (trang bất kì). Tuỳ chọn này
không áp dụng cho article. Mặc định: openright cho lớp book, openany cho lớp
report.
- In một mặt (oneside) hoặc hai mặt (twoside). Mặc định: oneside, trừ lớp văn bản
book.
- Trang tên văn bản: titlepaper (trang tên riêng), notitlepaper (không tạo trang
tên riêng). Mặc định: notitlepaper cho lớp article và titlepaper cho book,
report.
Nếu dùng nhiều tuỳ chọn thì ngăn cách các tuỳ chọn bởi dấu phẩy.
Khai báo các gói lệnh: \usepackage[options]{packages}. Một số gói lệnh thường
được sử dụng:
amsmath: Cung cấp nhiều tiện ích để biểu biễn các biểu thức toán học.
amssymb: Cung cấp các kí hiệu toán học và các kí hiệu đặc biệt khác.
2
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
amsthm: Cung cấp môi trường định lí.
fancyhdr: Hỗ trợ việc tạo phong cách trang văn bản.
geometry: Hỗ trợ việc căn lề và chỉnh trang với các tùy chọn như top=2cm,
bottom=2cm, left=3cm, right=2.5cm.
amscd, pb-diagram: Cung cấp môi trường vẽ các biểu đồ.
Khi soạn thảo văn bản có tiếng Việt, ta cần có gói lệnh cung cấp các phông chữ tiếng
Việt. Hiện nay, có hai gói lệnh phổ biến là vnfonts của Nguyễn Hữu Điển (ĐHKHTN -
ĐHQGHN) và vietnam của Hàn Thế Thành (ĐHSP tp HCM). Gói vnfonts chỉ gồm
các phông TrueType, còn gói vietnam, được phân phối kèm với MiKTeX 2.5 trở đi,
có hai tùy chọn là tcvn cho các phông TrueType và utf8 cho các phông Unicode.
Định nghĩa những môi trường và lệnh mới, thay đổi những thuộc tính có sẵn.
Phần thân văn bản được bắt đầu bằng lệnh \begin{document} và kết thúc bằng lệnh
\end{document}. Đây là phần quyết định trực tiếp nội dung văn bản mà ta tạo ra.
2.2 Tiêu đề chạy và mục lục
Tạo tiêu đề chạy với gói fancyhdr như sau:
- Khai báo gói fancyhdr: \usepackage{fancyhdr}.
- Chọn kiểu trang (thường sau \begin{document}): \pagestyle{fancy}.
- Tiêu đề chạy trên và dưới được tạo bởi các lệnh \fancyhead[options]{header’s name}
hoặc \fancyfoot[options]{footer’s name} với các tùy chọn là l, r, c (trái, phải, giữa) và
tiêu đề chạy có thể để trống (\empty) hoặc số trang (\thepage), . . .
- Dòng kẻ của tiêu đề chạy có thể định nghĩa lại bằng những lệnh như
\renewcommand{\headrulewidth}{0pt} hoặc \renewcommand{\footrulewidth}{0.4pt}.
L
A
T
E
X hỗ trợ việc chia văn bản thành các chương, mục, mục nhỏ,. . . và tự động đánh số
chúng theo các lệnh như sau:
\part{partname} % Phần
\chapter{chaptername} % Chương
\section{secname} % Đoạn
\subsection{subsecname} % Đoạn con
\subsubsection{subsubsecname} % Đoạn nhỏ
\paragraph{parname} % Phân đoạn
\subparagraph{secname} % Phân đoạn con
Bảng mục lục được tạo ra bằng cách trích lấy phần tựa đề của các mục và vị trí trang của
chúng thông qua lệnh \tableofcontents. Vị trí đặt lệnh này phụ thuộc vào vị trí đặt mục
lục trong tài liệu cần soạn thảo. Nói chung, những lệnh tạo ra chương, mục, . . . thường ở
một trong ba dạng:
- \section{name}: name là tên đề mục, được đặt trên tiêu đề chạy và đưa vào bảng mục lục
(nếu sử dụng các cấu trúc này).
- \section[shortname]{name}: name là tên đề mục nhưng shortname được đặt trên tiêu
đề chạy và đưa vào bảng mục lục.
3
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
- \section*{name}: Không đánh số trước tiêu đề và name không được đặt trên tiêu đề chạy,
cũng không được đưa vào bảng mục lục.
Có thể thêm một mục nào đó vào mục lục bằng những lệnh như
\addcontentsline{toc}{section}{{\bf Mở đầu }}. Lệnh này sẽ thêm mục Mở
đầu vào trong mục lục và đặt cùng cấp với section.
2.3 Trích dẫn tài liệu tham khảo
L
A
T
E
X cung cấp một môi trường định dạng thể hiện các tài liệu tham khảo như sau:
\begin{thebibliography}{<nhãn mẫu>}
\bibitem{<nhãn>}
\end{thebibliography}
Độ dài các kí tự trong <nhãn mẫu> được lấy làm khoảng thụt đầu dòng sau dòng thứ nhất
của mỗi \bibitem. Sau mỗi\bibitem{<nhãn>} là tên tác giả, tên sách, bài báo, nhà xuất
bản, năm xuất bản, . . . Một tài liệu được tham chiếu bởi lệnh \cite{<nhãn>} như sau.
Xem thêm trong \cite{MG}
hoặc \cite[Mục 8.6]{D}
\begin{thebibliography}{9}
\bibitem{MG} Frank Mittelbach and
Michel Goossens, {\it The \LaTeX{}
Companion (Second Edition)},
Addison-Wesley, 2004.
\bibitem{D} Nguyễn Hữu Điển, {\it \LaTeX{}
với gói lệnh và phần mềm công cụ},
NXB Đại học Quốc gia Hà Nội, 2004.
\end{thebibliography}
Xem thêm trong [1] hoặc [2, Mục 8.6]
Tài liệu tham khảo
[1] Frank Mittelbach and Michel
Goossens, The L
A
T
E
X Companion
(Second Edition), Addison-Wesley,
2004.
[2] Nguyễn Hữu Điển, L
A
T
E
X với gói
lệnh và phần mềm công cụ, NXB
Đại học Quốc gia Hà Nội, 2004.
2.4 Khoảng trắng và dãn dòng
Trong tệp nguồn L
A
T
E
X, nhiều dấu cách hay tab liên tiếp cũng chỉ được hiểu là một
dấu cách. Các lệnh tạo khoảng trắng ngang: \, \., \quad, \qquad, \hspace{2cm} hoặc
\phantom{123456} cách một khoảng đúng bằng độ rộng của chữ trong { }.
Một dòng trắng được hiểu là kết thúc một đoạn văn bản và dòng đầu tiên của đoạn tiếp
theo sẽ được viết thụt đầu dòng. Nhiều dòng trắng cũng chỉ được hiểu là một dòng trắng.
Để tạo ra khoảng trắng dọc ta dùng lệnh \vspace{2cm} hoặc \vskip 2cm. Các lệnh \\,
\newline, \par cho phép xuống dòng mà không thụt đầu dòng. Lệnh \\[20pt] cũng như
vậy nhưng cho phép xác định khoảng cách với dòng tiếp theo. Khi bắt đầu một dòng mới,
muốn thụt đầu dòng thì dùng lệnh \indent và ngược lại thì dùng \noindent. Muốn ngắt
trang để sang một trang mới ta dùng lệnh \newpage.
4
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
Các lệnh \hfill, \dotfill và \hrulefill đẩy văn bản trên một dòng và chèn khoảng
trống, các dấu chấm hoặc đường kẻ. L
A
T
E
X cũng có lệnh đẩy theo chiều dọc là \vfill. Nếu
trên một trang ta thiết lập lệnh <Phần đầu> \vfill <Phần cuối> thì hai phần được đẩy
về đầu và cuối trang còn ở giữa là khoản trắng dọc. Hãy xem ví dụ
Đánh \ số \quad ở \qquad lề phải \hfill (1)\\
Ở trên có các khoảng trắng đấy!\\
\vfill
Trái \hfill Giữa \hfill Phải\\
Đầu \dotfill Giữa \hrulefill Cuối\\
Đánh số ở lề phải (1)
Ở trên có các khoảng trắng đấy!
Trái Giữa Phải
Đầu . . Giữa Cuối
Khoảng cách giữa các dòng có thể thay đổi bằng những lệnh như
\renewcommand{\baselinestretch}{1.5} (đặt ở phần khai báo) cho khoảng cách
gấp 1,5 lần so với bình thường và \setlength{\baselineskip}{18pt} (đặt ở phần thân
văn bản) cho khoảng cách giữa các dòng là 18pt.
2.5 Kiểu chữ và cỡ chữ
Phông chữ chuẩn của L
A
T
E
X (Computer Modern fonts) gồm các họ Roman, Typewriter,
Sans serif với dáng chữ upright, italic, slanted, small caps và độ sắc nét medium, bold.
Chú ý rằng họ San serif thường dùng mặc định trong trình diễn và không có các kiểu in
nghiêng và chữ in nhỏ. Để thay đổi họ phông, kiểu, độ sắc nét, có thể dùng các lệnh sau:
\textrm{text}, {\rmfamily text}, {\rm text} text
\texttt{text}, {\ttfamily text}, {\tt text} text
\textsf{text}, {\sffamily text}, {\sf text} text
\textup{text}, {\upshape text} text
\textit{text}, {\itshape text}, {\it text} text
\textsl{text}, {\slshape text}, {\sl text} text
\textsc{text}, {\scshape text}, {\sc text} text
\textmd{text}, {\mdseries text} text
\textbf{text}, {\bfseries text}, {\bf text} text
Để nhấn mạnh một phần văn bản ta dùng lệnh \emph{text} hoặc {\em text} như trong
ví dụ sau:
I just call to say {\em I love you} ===> I just call to say I love you
I just call to say \emph{I {\em love} you} ===> I just call to say I love you
Ta cũng có thể chọn phông bằng lệnh {\usefont{enc}{family}{series}{shape} text}
với enc là mã phông (OT1 - bảng mã cho các phông Computer Modern, T1 - bảng mã
cho các phông Latinh, T5 - bảng mã cho tiếng Việt, . . . ), family là họ phông (cmr, cmss,
cmtt, pag, pbk, phv, pnc, ppl, ptm, pcr, . . . ), series là độ sắc nét (m: thường, b:
đậm, bx: đậm và rộng hơn thường), shape là kiểu dáng (n, it, sl, sc, scit). Ví dụ
{\usefont{T5}{cmr}{bx}{it} đậm nghiêng} cho chữ đậm nghiêng.
Cỡ chữ được thay đổi nhờ các lệnh như sau:
5
o Ngc Minh Hng dn s dng L
A
T
E
X
\tiny (tiny) \scriptsize (scriptsize)
\footnotesize (footnotesize) \small (small)
\normalsize (normalsize) \large (large)
\Large (Large) \LARGE (LARGE)
\huge (huge) \Huge (Huge)
Cỏc c ch trong cỏc lnh trờn ph thuc vo phụng ch chn u ti liu. di khong
trng v khong cỏch gia cỏc dũng s thay i khi thay i c ch. Chỳ ý rng hai lnh \huge
v \Huge cú cựng ln khi chn c ch l 12pt. Ngoi ra, lnh \fontsize{n}{m} cho c ch n
v khong cỏch dũng m. Chng hn, {\fontsize{16pt}{12pt}\selectfont c ch 16pt}
cho ta c ch 16pt v khong cỏch dũng 12pt.
2.6 Du v kớ t c bit
Khi mun in ra nhng du v kớ t c bit, bao gm nhng kớ t c L
A
T
E
X dựng iu
khin cỏc lnh, ta da theo bng sau:
{ \{ \ \textbackslash ũ \o áo \c{o} ặ, ổ \AE,\ae
} \} Đ \S ú \o \d{o} , \OE,\oe
% \% $ \$ ụ \^o o
\b{o}
A, a \AA,\aa
& \& Ê \pounds ăo \"o o \v{o} ỉ, ứ \O,\o
\~{} \yen ừ \~o o \u{o} L, l \L,\l
\^{}
c
\copyright o \=o
oo \t{oo} ò \ss
_ \_{}
R
\textregistered o \.o
o \H{o} ? ?
# \#
TM
\texttrademark \i \j ! !
2.7 Mụi trng
Vi L
A
T
E
X, ta cú th nh dng nhng on vn bn c bit mt cỏch thun li bng vic
s dng cỏc mụi trng sn cú hoc t to ra. Mt mụi trng (environment) cú dng:
\begin{envname}
Ni dung
\end{envname}
Khi dựng mt mụi trng, sau khi nhp \begin{envname} nờn nhp ngay \end{envname}
trỏnh thiu sút. Vi VieTeX, iu ny c thc hin nhanh chúng nu khi nhp xong
\begin{envname} ta gừ t hp phớm Ctrl + E. Cú th ly mu cỏc mụi trng t cỏc chc
nng LaTeX, Math, Graphics hay Help trờn thanh cụng c ca VieTeX. Sau õy l mt s
mụi trng thụng dng.
2.7.1 Cn on
Theo mc nh, vn bn c cn u (justify). cn trỏi, cn phi hay cn gia
ta dựng cỏc mụi trng flushleft, flushright hay center. Cú th dựng cỏc lnh
\leftline{text}, \rightline{text} hay \centerline{text} cn dũng text.
6
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
2.7.2 Các môi trường liệt kê
Có ba loại môi trường liệt kê thông dụng là: itemize (đánh dấu các mục của danh sách),
enumerate (đánh số tự động các mục của danh sách) và description (mô tả các mục của
danh sách). Các môi trường này có dạng:
\begin{envname}
\item
\item
\end{envname}
Hãy xem xét các ví dụ sau:
\begin{itemize}
\item Một môi trường có thể tự lồng nhau
sâu đến 4 lần.
\item Với môi trường itemize, lớp thứ nhất
được đánh dấu bởi chấm đen lớn.
\begin{itemize}
\item Lớp thứ hai được gạch đầu dòng.
\begin{itemize}
\item Đây là dấu sao.
\item Dấu sao nữa này.
\begin{itemize}
\item Lớp thứ tư có nhãn là dấu chấm nhỏ.
\end{itemize}
\end{itemize}
\item Quay lại với gạch đầu dòng.
\end{itemize}
\end{itemize}
• Một môi trường có thể tự lồng nhau
sâu đến 4 lần.
• Với môi trường itemize, lớp thứ nhất
được đánh dấu bởi chấm đen lớn.
– Lớp thứ hai được gạch đầu dòng.
∗ Đây là dấu sao.
∗ Dấu sao nữa này.
· Lớp thứ tư có nhãn là
dấu chấm nhỏ.
– Quay lại với gạch đầu dòng.
\begin{enumerate}
\item Lớp thứ nhất của môi trường enumerate
được đánh số 1., 2., 3., \dots
\begin{enumerate}
\item Lớp thứ hai được liệt kê là (a), (b), (c), \dots
\begin{enumerate}
\item Lớp thứ ba được đánh số i., ii., iii., \dots
\begin{itemize}
\item Các môi trường có thể lồng nhau.
\begin{enumerate}
\item Đây mới là lớp thứ tư của enumerate.
\end{enumerate}
\item Lồng nhau nhiều quá hóa rắc rối.
\end{itemize}
\end{enumerate}
\item Còn đây là một ví dụ về môi trường description:
\begin{description}
\item[Em] là ai?
\item[Tôi] là ai?
\end{description}
\end{enumerate}
\item Dùng các môi trường hợp lí để có một văn bản đẹp!
\end{enumerate}
1. Lớp thứ nhất của môi trường enu-
merate được đánh số 1., 2., 3., .
(a) Lớp thứ hai được liệt kê là (a),
(b), (c), .
i. Lớp thứ ba được đánh số
i., ii., iii., .
• Các môi trường có
thể lồng nhau.
A. Đây mới là lớp thứ
tư của enumerate.
• Lồng nhau nhiều quá
hóa rắc rối.
(b) Còn đây là một ví dụ về môi
trường description:
Em là ai?
Tôi là ai?
2. Dùng các môi trường hợp lí để có
một văn bản đẹp!
7
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
Có thể dùng tham số bổ sung cho \item để thay đổi kiểu hiện thị ở các môi trường itemize
và enumerate.
\begin{itemize}
\item[] Không đánh dấu hay đánh số.
\item[1)] Có thể thay đổi nhãn tùy ý.
\item[2)] Đánh số một cách thủ công.
\end{itemize}
Không đánh dấu hay đánh số.
1) Có thể thay đổi nhãn tùy ý.
2) Đánh số một cách thủ công.
Để thay đổi toàn bộ nhãn của các môi trường itemize hay enumerate, ta
dùng các macro \labelitemi, \labelitemii, \labelitemiii, \labelitemiv hay
\labelenumi, \labelenumii, \labelenumiii, \labelenumiv phối hợp với các macro:
\arabic cho kiểu số Ả-rập, \Roman và \roman cho kiểu số La Mã hoa và thường, \Alph và
\alph cho kiểu chữ cái hoa và thường.
\begin{itemize}
\renewcommand{\labelitemi}{$\checkmark$}
\renewcommand{\labelitemii}{$\star$}
\item Các lệnh thay đổi nhãn
\begin{itemize}
\item nếu muốn
\end{itemize}
\item có thể đặt ở phần khai báo.
\end{itemize}
Các lệnh thay đổi nhãn
nếu muốn
có thể đặt ở phần khai báo.
\begin{enumerate}
\renewcommand{\labelenumi}{\alph{enumi})}
\renewcommand{\labelenumii}{(\roman{enumii})}
\renewcommand{\labelenumiii}{$\arabic{enumiii}^{\star}$}
\item Mưa\dots
\begin{enumerate}
\item Miên man\dots
\begin{enumerate}
\item Từng giọt\dots
\item Từng giọt\dots
\end{enumerate}
\end{enumerate}
\item Len vào tóc
\end{enumerate}
a) Mưa. . .
(i) Miên man. . .
1
Từng giọt. . .
2
Từng giọt. . .
b) Len vào tóc
Với L
A
T
E
X, ta có thể tự thiết kế những môi trường liệt kê nhờ môi trường list dạng
\begin{list}{label}{declarations}
\item Mục 1
\item Mục 2
\end{list}
trong đó label là nhãn mặc định cho những mục không chỉ nhãn cụ thể ở lệnh \item, còn
declarations là các lệnh điều khiển về khoảng trắng. Hãy xem ví dụ sau:
8
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
\newcounter{List}
\begin{list}{\bf \textcircled{\scriptsize{\arabic{List}}}}{%
\usecounter{List}
\setlength{\leftmargin}{0pt} % Khoảng giữa lề trái trang và lề trái danh sách
\setlength{\itemindent}{2ex} % Khoảng thụt đầu dòng của dòng đầu mỗi mục
\setlength{\labelwidth}{1ex} % Độ rộng phần chứa nhãn mỗi mục
\setlength{\labelsep}{1ex} % Khoảng giữa nhãn và nội dung mỗi mục
\setlength{\itemsep}{3pt} % Khoảng trắng dọc giữa hai item
\setlength{\topsep}{8pt} % Khoảng trắng dọc trước và sau môi trường list
}
\item Với \LaTeX{}, các chương, mục, định nghĩa, định lí, biểu thức, bảng,
hình ảnh, \dots được đánh số tự động và tham chiếu dễ dàng.
\item Tệp nguồn được biên dịch để tạo ra các tệp .dvi (Device Independent),
.pdf (Adobe Portable Document Format) hay .ps (PostScript).
\end{list}
1
Với L
A
T
E
X, các chương, mục, định nghĩa, định lí, biểu thức, bảng, hình ảnh, . . . được đánh
số tự động và tham chiếu dễ dàng.
2
Tệp nguồn được biên dịch để tạo ra các tệp .dvi (Device Independent), .pdf (Adobe
Portable Document Format) hay .ps (PostScript).
2.7.3 Môi trường bảng
Môi trường tabbing tạo ra bảng mà mỗi cột được căn trái. Độ rộng của mỗi cột được xác
định ở dòng đầu tiên. Chẳng hạn, nếu đặt \=\bf Môi trường\hspace{1cm} thì độ rộng của
cột này bằng chiều rộng của cụm từ Môi trường cộng với 1 cm như trong ví dụ sau:
\begin{tabbing}
\bf STT\quad \=\bf Môi trường\hspace{1cm} \=\bf Thuộc tính\\
1\> tabbing\> Căn trái tất cả các cột\\
2\> tabular\> Căn tùy ý cho từng cột
\end{tabbing}
STT Môi trường Thuộc tính
1 tabbing Căn trái tất cả các cột
2 tabular Căn tùy ý cho từng cột
Nếu muốn dòng đầu tiên chỉ dùng cho việc căn khoảng cách các cột mà không hiện ra, ta
đặt lệnh \=\kill ở cuối dòng.
\begin{tabbing}
dd/mm\qquad \=Events \=\kill
01/01\> My birthday\\
\> New year\\
14/02\> Valentine’s Day
\end{tabbing}
01/01 My birthday
New year
14/02 Valentine’s Day
9
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
Môi trường tabular được nhập theo mẫu như sau:
\begin{tabular}[pos]{cols}
\hline % đường kẻ (có thể có hoặc không)
dòng 1 (các cột được ngăn bởi dấu &)\\ \hline
\end{tabular}
Các đối số bắt buộc và tùy chọn bao gồm
\begin{tabular}{|l||p{5.9cm}|}
\hline
pos & Căn vị trí của bảng theo chiều dọc
đối với dòng ngoài bảng. Mặc định là giữa bảng,
{\tt t} là dòng đầu và {\tt b} là dòng cuối.\\
\hline
cols & Định dạng từng cột theo các kí hiệu:\\
&\begin{tabular}{r p{3.4cm}}
l & Căn trái.\\
r & Căn phải.\\
c & Căn giữa.\\
p\{width\} & Cột có chiều rộng {\tt width}
và văn bản được căn trên.\\
@\{text\} & Chèn thêm {\tt text} vào mỗi ô
trong cột. Có thể chèn khoảng trắng bằng lệnh
\verb+@\hpace{width}+ với {\tt width} là độ dài.\\
*\{n\}\{cols\} & Định dạng lặp lại cho {\tt n} cột.
Ví dụ, *\{3\}\{l\} = l l l
\end{tabular}\\ \hline
\end{tabular}
pos Căn vị trí của bảng theo chiều dọc đối
với dòng ngoài bảng. Mặc định là giữa
bảng, t là dòng đầu và b là dòng cuối.
cols Định dạng từng cột theo các kí hiệu:
l Căn trái.
r Căn phải.
c Căn giữa.
p{width} Cột có chiều rộng
width và văn bản
được căn trên.
@{text} Chèn thêm text
vào mỗi ô trong cột.
Có thể chèn khoảng
trắng bằng lệnh
@\hpace{width} với
width là độ dài.
*{n}{cols} Định dạng lặp lại cho
n cột. Ví dụ, *{3}{l}
= l l l
Muốn định trước độ rộng của bảng ta dùng một môi trường tabular* tương tự như
tabular nhưng có thêm một đối số trước đối số định dạng từng cột. Nếu khai báo thêm
gói lệnh array thì có thể dùng các đối số m{width} hoặc b{width} cho cột có chiều rộng
width và văn bản được căn giữa hoặc dưới.
Các lệnh tác động lên dòng của bảng là
& Dấu ngăn cách các cột.
\\ Kết thúc dòng.
\hline Đường kẻ ngang.
\cline{i-j} Kẻ đường ngang từ cột i tới cột j, được đặt sau \\.
\vline Đường kẻ dọc "" trên một dòng của cột.
\multicolumn{n}{cols}{text} Kết hợp n cột trong dòng và điền vào đó text được căn
bởi cols là l, r hay c.
Ta cũng có thể gán nhãn cho mỗi bảng như trong ví dụ sau:
\begin{table}[htbp] % thứ tự ưu tiên: here, top, bottom, separate page
\begin{center}
\begin{tabular}{|l|r@{-}r@{-}r|l|}
\hline
\multicolumn{1}{|c|}{Color} &\multicolumn{4}{c|}{Codes}\\ \cline{2-5}
&\multicolumn{3}{c|}{RGB} &\multicolumn{1}{c|}{Hex} \\ \hline
Sky Blue &135 &206 &235 &87CEEB \\ \hline
10
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
Dark Violet &148 &0 &211 &9400D3 \\ \hline
\end{tabular}
\end{center}
\caption{Một ví dụ tổng hợp.}
\end{table}
Color Codes
RGB Hex
Sky Blue 135-206-235 87CEEB
Dark Violet 148- 0-211 9400D3
Bảng 1: Một ví dụ tổng hợp.
Nếu khai báo thêm gói lệnh multirow thì có thể kết hợp các dòng trong cột nhờ lệnh
\multirow{n}{width}{text}. Hãy xem ví dụ sau
\begin{tabular}{| l | l |}
\hline
Planet &Features\\ \hline
\multirow{3}{*}{Mercury} &Lunar like crust\\
&Crustal faulting\\
&Small magnetic fiels\\ \hline
\multirow{3}{*}{Earth} &Oceans of water\\
&Magnetic field\\ \hline
\end{tabular}
Planet Features
Mercury
Lunar like crust
Crustal faulting
Small magnetic fiels
Earth
Oceans of water
Magnetic field
3 Soạn thảo các công thức toán học
3.1 Môi trường toán và các cấu trúc cơ sở
L
A
T
E
X cung cấp hai dạng môi trường toán để soạn thảo các kí hiệu và công thức toán học:
• Môi trường toán trên cùng dòng đang soạn thảo: Nội dung được nhập vào giữa dấu \(
và \), hoặc $ và $, hoặc \begin{math} và \end{math}.
• Môi trường toán trên một dòng riêng: Nội dung được nhập vào giữa dấu \[ và \],
hoặc $$ và $$, hoặc \begin{displaymath} và \end{displaymath}.
Kích cỡ cho các kí tự trong môi trường toán được điều khiển nhờ các lệnh:
\displaystyle Cỡ cho công thức riêng dòng.
\textstyle Cỡ cho công thức cùng dòng.
\scriptstyle Cỡ cho chỉ số trên và dưới lần đầu.
\scriptscriptstyle Cỡ cho chỉ số trên và dưới lần hai.
Sau đây là một số kí hiệu và toán tử cơ bản:
11
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
a/b a/b a
m
n
a_{n}^{m}
ˆ
A \hat{A}
ABC \widehat{ABC}
a
b
\frac{a}{b}
√
a \sqrt{a}
˜
A \tilde{A}
ABC \widetilde{ABC}
a
n
a^{n}
n
√
a \sqrt[n]{a} ¯a \bar{a} AB \overline{AB}
a
n
a_{n} f
(x) f’(x) a \vec{a}
−−→
AB \overrightarrow{AB}
∀ \forall ∃ \exists ∞ \infty ∅ \emptyset
∠ \angle \triangle ∇ \nabla ∂ \partial
Trong gói amssymb có thêm kí hiệu tập rỗng là ∅ ($\varnothing$). Gói amsmath
cung cấp thêm phương án thể hiện phân số bằng \tfrac{numerator}{denominator} và
\dfrac{numerator}{denominator}. Chú ý rằng nếu đối số chỉ có một kí tự thì ta có thể
bỏ các dấu { và }. Chẳng hạn,
$a_0 +\frac{1}{a_1 +\frac{1}{a_2 +
\frac{1}{a_3}}}, \quad
a_0 +\dfrac{1}{a_1 +\dfrac{1}{a_2 +
\dfrac{1}{a_3}}}$
a
0
+
1
a
1
+
1
a
2
+
1
a
3
, a
0
+
1
a
1
+
1
a
2
+
1
a
3
Các toán tử nhị phân được thể hiện trong bảng sau:
± \pm · \cdot ∗ \ast ∪ \cup
∓ \mp ◦ \circ \star ∩ \cap
× \times • \bullet / / ∨ \vee
÷ \div \diamond \ \setminus ∧ \wedge
Các toán tử quan hệ:
≤ \le, \leq ≥ \ge, \geq
.
= \doteq = \ne, \not=
\ll \gg ≡ \equiv ∼ \sim
∈ \in \ni | \mid \simeq
⊂ \subset ⊃ \supset \parallel ≈ \approx
⊆ \subseteq ⊇ \supseteq ⊥ \perp
∼
=
\cong
Muốn thể hiện không có mối quan hệ, ta dùng lệnh \not trước kí hiệu để thêm dấu / đè
lên nó như $\not\in, \not\subset$ cho ta ∈, ⊂. Nhưng chú ý \not\in và \notin cho kết
quả khác nhau. Để có các kí hiệu phủ định đẹp ta nên dùng gói lệnh amssymb.
Những toán tử sau đây có kích cỡ khác nhau tùy thuộc vào chúng ở trong môi trường
toán cùng dòng hay riêng dòng:
\sum
\bigcup
\bigvee
\bigoplus
\prod
\bigcap
\bigwedge
\bigotimes
\coprod
\bigsqcup
\bigodot
\int
\oint
\biguplus
Các dấu mũi tên:
← \leftarrow, \gets ←− \longleftarrow ↔ \leftrightarrow ←→ \longleftrightarrow
⇐ \Leftarrow ⇐= \Longleftarrow ⇔ \Leftrightarrow ⇐⇒ \Longleftrightarrow
→ \rightarrow, \to −→ \longrightarrow → \mapsto −→ \longmapsto
⇒ \Rightarrow =⇒ \Longrightarrow ← \hookleftarrow → \hookrightarrow
Bảng chữ cái Hy Lạp:
12
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
α \alpha β \beta γ \gamma δ \delta
\epsilon ε \varepsilon ζ \zeta η \eta
θ \theta ϑ \vartheta ι \iota κ \kappa
λ \lambda µ \mu ν \nu ξ \xi
π \pi \varpi ρ \rho \varrho
σ \sigma ς \varsigma τ \tau υ \upsilon
φ \phi ϕ \varphi χ \chi ψ \psi
ω \omega Γ \Gamma ∆ \Delta Θ \Theta
Λ \Lambda Ξ \Xi Π \Pi Σ \Sigma
Υ \Upsilon Φ \Phi Ψ \Psi Ω \Omega
Trong môi trường toán, những kí tự trắng bị bỏ qua còn những dòng trắng thì không được
chấp nhận. L
A
T
E
X tự thêm vào các khảng trắng xung quanh các toán tử như +, −, =, . . . Văn
bản đặt trong môi trường toán đều thành chữ in nghiêng và không có khoảng trống giữa các
từ. Muốn nhúng môi trường văn bản vào môi trường toán ta dùng \mbox{<văn bản>} hoặc
với lệnh \text{<văn bản>} của gói amsmath, văn bản đưa vào co dãn một cách thích hợp.
Dấu ba chấm trong môi trường toán có thể được nhập trực tiếp từ bàn phím hoặc để
đẹp hơn ta dùng \ldots hoặc \dots cho dấu ba chấm ở chân dòng (. . . ) và \cdots cho dấu
ba chấm ở giữa dòng (···). Các dấu ba chấm dọc (
.
.
.) và chéo (
.
.
.
) thì được cho bởi \vdots
và \ddots. Hãy xem ví dụ sau:
Ta có $(1+x)^n = C^0_n+C^1_nx+
\cdots+C^n_nx^n
= \sum_{k=0}^n C^k_n x^k$ nên
$$\int_1^2(1+x)^n dx =
\int_1^2(\sum_{k=0}^n C^k_n x^k)dx.$$
Do đó $\dfrac{3^{n+1}-2^{n+1}}{n+1}
=\sum\limits_{k=0}^n
\dfrac{2^{k+1}-1}{k+1}C^k_n$.
Ta có (1+ x)
n
= C
0
n
+C
1
n
x+···+C
n
n
x
n
=
n
k=0
C
k
n
x
k
nên
2
1
(1 + x)
n
dx =
2
1
(
n
k=0
C
k
n
x
k
)dx.
Do đó
3
n+1
− 2
n+1
n + 1
=
n
k=0
2
k+1
− 1
k + 1
C
k
n
.
3.2 Môi trường định lí
Trong L
A
T
E
X có một môi trường dành cho việc soạn thảo và đánh số các định nghĩa, bổ đề,
mệnh đề, định lí,. . . Để nhận được môi trường này ta khai báo bằng lệnh
\newtheorem{envname}[procCounter]{name}[secCounter]
ở đây hai thông số tuỳ chọn loại trừ nhau và
• envname là tên môi trường dùng trong thân văn bản, có thể chọn tuỳ ý nhưng nên
tránh tên môi trường và tên lệnh đã có.
• procCounter là tên môi trường mà ta muốn đánh số liên tiếp môi trường đó và môi
trường mới này.
• name là tên được gọi và in ra cùng với số đếm như Định nghĩa 1, Định lí 2.
13
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
• secCounter là thông số lựa chọn để đánh số cạnh name theo số đếm chương mục tương
ứng. Chẳng hạn, nếu name là Định lí và secCounter là section thì trong mục 1 sẽ có
Định lí 1.1, Định lí 1.2, Đánh số này có thể trong subsection, sections hoặc
chapters.
Sau khi môi trường định lí đã được khai báo thì ở thân văn bản ta dùng nó như một môi
trường bình thường và việc đánh số được thực hiện tự động. Nếu muốn môi trường nào đó
đánh số bắt đầu từ n ta dùng lệnh \setcounter{envname}{n-1}.
3.3 Môi trường chứng minh
Trong gói amsthm có định nghĩa môi trường chứng minh. Môi trường này bắt đầu bằng nhãn
proof và kết thúc là kí hiệu (\qedsymbol). Ta có thể thay đổi như sau:
\begin{proof}[Hướng dẫn]
Thay kí hiệu kết thúc bằng hình vuông đen.
\renewcommand{\qedsymbol}{$\blacksquare$}
\end{proof}
Hướng dẫn. Thay kí hiệu kết thúc
bằng hình vuông đen.
3.4 Tên hàm
Những kí tự trong môi trường toán là những chữ nghiêng. Để in ra những tên
hàm toán học không nghiêng, L
A
T
E
X cung cấp những tên hàm thường dùng như
sin, cos, tan, cot, ln, log, lg, deg, dim, det, max, min, sup, inf, . . .
Để tạo ra một tên hàm mới, trong amsmath sử dụng lệnh
\DeclareMathOperator{\command}{name}
với \command là lệnh gọi hàm và name là tên hàm cần in ra. Lưu ý rằng không có hàm tg và
cotg của Việt Nam nên muốn dùng ta phải định nghĩa \DeclareMathOperator {\tg}{tg}
ở phần khai báo. Khi đó \(\tg x\) sẽ cho ra tg x.
3.5 Gióng công thức toán
Môi trường array cho ta xếp dòng và cột các công thức toán. Môi trường này có cấu trúc
hoàn toàn tương tự như môi trường tabular.
$$\mathbf{X}=\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldots \\
x_{21} & x_{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)$$
X =
x
11
x
12
. . .
x
21
x
22
. . .
.
.
.
.
.
.
.
.
.
$$\left[\begin{array}{l}
x=1,\\x=2.
\end{array}\right.$$
x = 1,
x = 2.
14
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
Môi trường eqarray tương tự như array nhưng có đánh số công thức. Nếu không muốn
đánh số ta thêm dấu * vào môi trường như eqarray*.
Môi trường multline và multline* dùng để ngắt những công thức quá dài thành một số
dòng: dòng đầu tiên đẩy về phía trái, dòng cuối cùng đẩy về phía phải và những dòng ở giữa
được quy tâm.
\begin{multline*}
\lim\limits_{x\to \infty}\dfrac{x+\sin x}{x-\sin x}\\
=\lim\limits_{x\to \infty}\dfrac{1+\frac{\sin x}x}
{1-\frac{\sin x}x} =1.
\end{multline*}
lim
x→∞
x + sin x
x − sin x
= lim
x→∞
1 +
sin x
x
1 −
sin x
x
= 1.
Môi trường align và align* dùng để gióng công thức nhiều dòng theo cột.
\begin{align}
(1)&\Leftrightarrow (\sqrt a +\sqrt b)^2\le 2(a+b)\notag\\
&\Leftrightarrow 2\sqrt{ab}\le a+b.\tag{2}
\end{align}
(1) ⇔ (
√
a +
√
b)
2
≤ 2(a + b)
⇔ 2
√
ab ≤ a + b. (2)
Còn có nhiều môi trường gióng công thức khác như matrix, pmatrix, bmatrix, vmatrix,
Vmatrix, gather, gathered, aligned, flalign, alignat, split,. . . Ví dụ sau đưa ra
cách soạn thảo hệ chứa phép hội và phép tuyển.
$$\begin{cases}
1. & \text{Em},\\
2. & \left[\begin{matrix}\text{Anh},\\
\text{Hắn ta}.\end{matrix}\right.
\end{cases}$$
1. Em,
2.
Anh,
Hắn ta.
4 Đưa hình vào tài liệu
Để đưa hình từ một tệp nào đó vào tài liệu đang soạn thảo ta sử dụng gói graphicx với
lệnh \includegraphics[options]{filename}. Các tùy chọn là
bb=a b c d chỉ đưa ra một phần của hình ảnh với (a, b) là tọa độ góc dưới trái và (c, d)
là tọa độ góc trên phải. Tham số này phải đi liền với tham số clip=true để hiện phần
hình ảnh đó.
width=số, height=số, totalheight=số đưa ra độ rộng, chiều cao hoặc tổng độ rộng và
chiều cao của ảnh.
scale=số là độ phóng của hình
keepaspectratio=true giữ hình cân đối khi ta chọn cả chiều dài và chiều rộng.
angle=số đo độ là góc quay.
\includegraphics[scale=0.5]{hinh1.png}
\hspace{2cm}
\includegraphics[scale=0.4]{hinh2.png}
15
Đào Ngọc Minh Hướng dẫn sử dụng L
A
T
E
X
Lời kết: L
A
T
E
X còn cho phép người soạn thảo có thể tự tạo những lệnh và môi trường mới
để việc soạn thảo được gọn nhẹ và chính xác. Bài viết này giúp chúng ta bước đầu làm quen
với L
A
T
E
X chứ không thể đề cập hết được những tính năng và ưu điểm của nó. Nhưng tôi
nghĩ rằng đối với người học toán, khi đã tiếp cận được đối tượng rồi thì việc tìm hiểu và
khám phá chỉ còn là vấn đề thời gian. Chúc các bạn thành công!
Tài liệu tham khảo
[1] Frank Mittelbach and Michel Goossens, The L
A
T
E
X Companion (Second Edition),
Addison-Wesley, 2004.
[2] Michael Doob, A Gentle Introduction to T
E
X, A Manual for Self-study, 2002.
[3] Nguyễn Hữu Điển, L
A
T
E
X với gói lệnh và phần mềm công cụ, NXB Đại học Quốc gia Hà
Nội, 2004.
[4] Tobias Oetiker - Hubert Partl - Irene Hyna - Elisabeth Schlegl,
The Not So Short Introduction to L
A
T
E
X 2
ε
- />archive/info/lshort/english/lshort.pdf (bản dịch tiếng Việt của Nguyễn Tân Khoa
- />Đào Ngọc Minh, Bộ môn Đại số, khoa Toán - Tin, trường ĐHSP Hà Nội.
Điện thoại: +8498 999 5307. Email:
16