+ All Categories
Home > Documents > MỘT TÀI LIỆU NGẮN GỌN GIỚI THIỆU về LATEX2ε

MỘT TÀI LIỆU NGẮN GỌN GIỚI THIỆU về LATEX2ε

Date post: 22-Apr-2023
Category:
Upload: khangminh22
View: 0 times
Download: 0 times
Share this document with a friend
154
MỘT TÀI LIỆU NGẮN GỌN GIỚI THIỆU về L A T E X 2 ε hay L A T E X 2 ε trong 140 phút Biên soạn: Tobias Oetiker Hubert Partl, Irene Hyna và Elisabeth Schlegl Dịch bởi: Nguyễn Tân Khoa Phiên bản 4.00, Ngày 09 tháng 02 năm 2003
Transcript

MỘT TÀI LIỆU NGẮN GỌNGIỚI THIỆU về LATEX 2ε

hay LATEX 2ε trong 140 phút

Biên soạn: Tobias Oetiker

Hubert Partl, Irene Hyna và Elisabeth Schlegl

Dịch bởi: Nguyễn Tân KhoaPhiên bản 4.00, Ngày 09 tháng 02 năm 2003

ii

Bản quyền ©2000-2002 thuộc về Oetiker và những người đóng góp cho tài liệuLShort. “All rights reserved”.

Đây là một tài liệu miễn phí. Bạn hòan toàn có thể phân phối nó lại cho nhữngngười sử dụng khác hoặc có thể chỉnh sửa cho phù hợp nhưng phải tuân theonhững yêu cầu trong giấy phép bản quyền GNU (General Public License của FreeSoftware Foundation; phiên bản 2 hay các phiên bản khác).

Tài liệu này được phát hành với hy vọng rằng nó sẽ trở nên hữu ích, nhưng

nó KHÔNG KÈM THEO BẤT KỲ SỰ BẢO ĐẢM NÀO, ngay cả nhữngđảm bảo ngầm hiểu về việc thương mại hoá hay phải phù hợp với một đích cụ thểnào đó (vấn đề này bạn có thể tham khảo giấy phép GNU General Public Licenseđể biết thêm chi tiết).

Thông thường, bạn sẽ nhận được một bản sao của giấy phép GNU GeneralPublic License kèm theo tài liệu này; nếu chưa có, bạn có thể viết thư đến địa chỉsau Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.để có một bản giấy phép.

Cám ơn!

Phần lớn nội dung của tài liệu này được lấy từ bản giới thiệu về LATEX 2.09bằng tiếng Đức của:

Hubert Partl <[email protected]>Zentraler Informatikdienst der Universitat fur Bodenkultur Wien

Irene Hyna <[email protected]>Bundesministerium fur Wissenschaft und Forschung Wien

Elisabeth Schlegl <no email>in Graz

Nếu bạn quan tâm đến tài liệu bằng tiếng Đức, bạn có thể tải về bản cậpnhật của Jorg Knappen tại CTAN:/tex-archive/info/lshort/german.

iv Cám ơn!

Trong thời gian thực hiện tài liệu này, tôi đã tham vấn ý kiến của một sốngười có chuyên môn về LATEX ở nhóm tin comp.text.tex và đã nhận đượcnhiều sự hưởng ứng và đóng góp ý kiến của mọi người. Chính nhờ vào sựnhiệt tình giúp đỡ thông qua việc chỉnh sửa các lỗi và đề nghị thêm vào mộtsố nội dung cho tài liệu mà tôi mới có thể hoàn tất tài liệu này. Tôi thànhthật cám ơn mọi người. Tất cả các lỗi trong tài liệu này là của tôi !!! (tôi làngười soạn thảo mà). Nếu bạn tìm thấy một từ nào đó viết sai lỗi chính tảthì có lẽ rằng một trong những người bạn sau đã bỏ xót nó!

Rosemary Bailey, Marc Bevand, Friedemann Brauer, Jan Busa,Markus Bruhwiler, Pietro Braione, David Carlisle, José Carlos Santos,Mike Chapman, Pierre Chardaire, Christopher Chin, Carl Cerecke,Chris McCormack, Wim van Dam, Jan Dittberner, Michael John Downes,Matthias Dreier, David Dureisseix, Elliot, Hans Ehrbar, Daniel Flipo,David Frey, Hans Fugal, Robin Fairbairns, Jorg Fischer, Erik Frisk,Mic Milic Frederickx, Frank, Kasper B. Graversen, Arlo Griffiths,Alexandre Guimond, Cyril Goutte, Greg Gamble, Neil Hammond,Rasmus Borup Hansen, Joseph Hilferty, Bjorn Hvittfeldt, Martien Hulsen,Werner Icking, Jakob, Eric Jacoboni, Alan Jeffrey, Byron Jones, David Jones,Johannes-Maria Kaltenbach, Michael Koundouros, Andrzej Kawalec, Alain Kessi,Christian Kern, Jorg Knappen, Kjetil Kjernsmo, Maik Lehradt, Rémi Letot,Johan Lundberg, Alexander Mai, Martin Maechler, Aleksandar S Milosevic,Henrik Mitsch, Claus Malten, Kevin Van Maren, Lenimar Nunes de Andrade,Demerson Andre Polli, Maksym Polyakov Hubert Partl, John Refling,Mike Ressler, Brian Ripley, Young U. Ryu, Bernd Rosenlecher, Chris Rowley,Risto Saarelma, Hanspeter Schmid, Craig Schlenter, Baron Schwartz,Christopher Sawtell, Geoffrey Swindale, Boris Tobotras, Josef Tkadlec,Scott Veirs, Didier Verna, Fabian Wernli, Carl-Gustav Werner,David Woodhouse, Chris York, Fritz Zaucker, Rick Zaccone, and Mikhail Zotov.

Lời mở đầu

LATEX [1] là một hệ thống soạn thảo rất phù hợp với việc tạo ra các tài liệukhoa học và toán học với chất lượng bản in rất cao. Đồng thời, nó cũng rấtphù hợp với các công việc soạn thảo các tài liệu khác từ thư từ cho đến nhữngcuốn sách hoàn chỉnh. LATEX sử dụng TEX [2] làm bộ máy định dạng.

Tài liệu ngắn gọn này sẽ giới thiệu về LATEX 2ε và nó sẽ giới thiệu hầu hếtcác ứng dụng của LATEX. Bạn có thể tham khảo thêm [1, 3] để biết thêm chitiết về hệ thống LATEX.

Tài liệu này được chia làm 6 chương (5 chương được dịch từ tài liệu gốc và1 chương thêm vào để hướng dẫn sử dụng LATEX để soạn thảo tài liệu tiếngViệt):

Chương 1 giới thiệu về những cấu trúc cơ bản của một tài liệu được soạnthảo bằng LATEX 2ε. Ngoài ra, chương này cũng giới thiệu sơ lược vềlịch sử phát triển của LATEX. Kết thúc chương, bạn sẽ hiểu được cơ chếlàm việc của LATEX. Đây sẽ là nền tảng quan trọng mà từ đó bạn cóthể kết hợp với các kiến thức ở các chương sau để có được một cái nhìnsâu hơn về LATEX.

Chương 2 đi sâu vào việc soạn thảo các tài liệu. Bạn sẽ được giới thiệu vềnhững lệnh cơ bản, thông dụng của LATEX cùng với những môi trườngđịnh dạng của nó. Sau khi kết thúc chương, bạn sẽ có thể tự soạn thảomột số kiểu tài liệu cơ bản.

Chương 3 hướng dẫn cách soạn thảo các công thức với LATEX. Chúng tôi sẽcung cấp cho các bạn rất nhiều ví dụ minh hoạ cách sử dụng sức mạnhnày của LATEX. Chương này sẽ được kết thúc bằng một bảng liệt kê tấtcả các kí hiệu toán học được hỗ trợ trong LATEX.

Chương 4 nói về việc tạo chỉ mục, danh mục tài liệu tham khảo và việcđưa vào các hình ảnh EPS. Chương này cũng nói về việc tạo một tài

vi Lời mở đầu

liệu dạng PDF với pdfLATEX và giới thiệu một số gói mở rộng hữu dụngnhư XY-pic, pdfscreen, . . . .

Chương 5 nói về những nguy hiểm tìm ẩn của việc thay đổi định dạngchuẩn của LATEX. Bạn sẽ biết được những thay đổi không nên làm vìnó sẽ khiến cho LATEX xuất ra tài liệu kết quả không đẹp.

Chương 6 hướng dẫn cài đặt và sử dụng gói VnTeX để soạn thảo tài liệubằng tiếng Việt với LATEX.

Bạn nên đọc tài liệu theo thứ tự các chương bởi vì tài liệu này không quádài. Hãy tìm hiểu thật kỹ các ví dụ bởi lẽ chúng chứa đựng rất nhiều thôngtin và sẽ được sử dụng xuyên suốt trong toàn bộ tài liệu.

LATEX có thể được sử dụng gần như trên mọi máy tính, mọi hệ điều hành,từ máy PC, Mac đến các hệ thống máy tính lớn như UNIX và VMS. Tạicác mạng máy tính trong các trường đại học, bạn có thể thấy rằng LATEX đãđược cài đặt sẵn. Thông tin để truy cập và sử dụng bản cài đặt cục bộ củaLATEX cũng được cung cấp trong phần Local Guide [4]. Nếu bạn gặp vấn đềvề việc sử dụng thì hãy liên hệ với người đã đưa cho bạn quyển sách này!Việc hướng dẫn cài đặt và cấu hình LATEX không thuộc vào phạm vi giớithiệu ngắn gọn của tài liệu. ở đây, chúng tôi chỉ tập trung giới thiệu nhữngkiến thức cơ bản để soạn thảo tài liệu bằng LATEX.

Nếu bạn có nhu cầu về các vấn đề liên quan đến LATEX, hãy tham khảo thêmtài liệu ở trang web của Comprehensive TEX Archive Network (CTAN). Trangchủ được đặt tại http://www.ctan.org. Bạn có thể tải về tất cả các gói dữliệu thông qua các chương trình FTP ở địa chỉ ftp://www.ctan.org hayrất nhiều địa chỉ liên kết phụ khác trên thế giới như ftp://ctan.tug.org(US), ftp://ftp.dante.de (Germany), ftp://ftp.tex.ac.uk (UK). Nếubạn không ở các nước trên thì hãy lựa chọn địa chỉ nào gần bạn nhất.

Bạn có thể tìm thấy những phần cần tham khảo thêm ở CTAN trong suốttài liệu này, đặc biệt là các tham chiếu đến phần mềm và tài liệu bạn có thểtải về. Thay vì phải viết toàn bộ địa chỉ URL, chúng tôi sẽ chỉ viết CTAN:sau đó là vị trí bất kì trong cây thư mục ở CTAN.

Nếu bạn muốn sử dụng LATEXtrên máy tính cá nhân, hãy xem qua nhữngthông tin ở địa chỉ CTAN:/tex-archive/systems.

Nếu bạn thấy rằng tài liệu này cần được bổ sung, thay đổi thì hãy liên hệvới chúng tôi.

vii

Tài liệu hiện thời đang có ở địa chỉ:CTAN:/tex-archive/info/lshort

Mục lục

Cám ơn! iii

Lời mở đầu v

1 Những kiến thức cơ bản về LATEX 11.1 Tên gọi của trò chơi . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.2 LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Những điều cơ bản . . . . . . . . . . . . . . . . . . . . . . . . 21.2.1 Tác giả, người trình bày sách và người sắp chữ . . . . . 21.2.2 Trình bày bản in . . . . . . . . . . . . . . . . . . . . . 31.2.3 Những điểm mạnh và điểm yếu của LATEX . . . . . . . 3

1.3 Các tập tin nhập liệu của LATEX . . . . . . . . . . . . . . . . . 51.3.1 Khoảng trắng . . . . . . . . . . . . . . . . . . . . . . . 51.3.2 Một số kí tự đặc biệt . . . . . . . . . . . . . . . . . . . 51.3.3 Một số lệnh của LATEX . . . . . . . . . . . . . . . . . . 61.3.4 Các lời chú thích . . . . . . . . . . . . . . . . . . . . . 7

1.4 Cấu trúc của tập tin nhập liệu . . . . . . . . . . . . . . . . . . 71.5 Một số lệnh thông dụng . . . . . . . . . . . . . . . . . . . . . 81.6 Cách trình bày một tài liệu . . . . . . . . . . . . . . . . . . . 10

1.6.1 Các lớp tài liệu . . . . . . . . . . . . . . . . . . . . . . 101.6.2 Các gói . . . . . . . . . . . . . . . . . . . . . . . . . . 111.6.3 Các định dạng trang của trang văn bản . . . . . . . . . 14

1.7 Một số dạng tập tin thường gặp . . . . . . . . . . . . . . . . . 141.8 Các tài liệu lớn . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Soạn thảo văn bản 182.1 Cấu trúc văn bản và vấn đề về ngôn ngữ . . . . . . . . . . . . 182.2 Định dạng việc xuống hàng và sang trang . . . . . . . . . . . 20

2.2.1 Canh lề các đoạn văn . . . . . . . . . . . . . . . . . . . 202.2.2 Ngắt từ . . . . . . . . . . . . . . . . . . . . . . . . . . 21

MỤC LỤC ix

2.3 Các chuỗi kí tự sẵn có trong LATEX . . . . . . . . . . . . . . . 222.4 Các kí tự đặc biệt và các kí hiệu . . . . . . . . . . . . . . . . . 23

2.4.1 Dấu trích dẫn . . . . . . . . . . . . . . . . . . . . . . . 232.4.2 Dấu gạch và dấu ngắt quãng . . . . . . . . . . . . . . . 232.4.3 Dấu ngã (∼) . . . . . . . . . . . . . . . . . . . . . . . . 232.4.4 Kí hiệu về độ () . . . . . . . . . . . . . . . . . . . . . 242.4.5 Kí hiệu đồng tiền Euro (e) . . . . . . . . . . . . . . . 242.4.6 Dấu ba chấm (. . . ) . . . . . . . . . . . . . . . . . . . . 252.4.7 Chữ ghép, gạch nối . . . . . . . . . . . . . . . . . . . . 252.4.8 Dấu trọng âm và các kí tự đặc biệt . . . . . . . . . . . 25

2.5 Sự hỗ trợ đối với các ngôn ngữ quốc tế . . . . . . . . . . . . . 262.5.1 Sự hỗ trợ đối với tiếng Bồ Đào Nha . . . . . . . . . . . 292.5.2 Sự hỗ trợ đối với tiếng Pháp . . . . . . . . . . . . . . . 302.5.3 Sự hỗ trợ đối với tiếng Đức . . . . . . . . . . . . . . . 312.5.4 Hỗ trợ đối với tiếng Hàn Quốc . . . . . . . . . . . . . . 31

2.6 Khoảng cách giữa các từ . . . . . . . . . . . . . . . . . . . . . 342.7 Tựa đề, các chương và các mục . . . . . . . . . . . . . . . . . 352.8 Tham chiếu chéo . . . . . . . . . . . . . . . . . . . . . . . . . 372.9 Chú thích ở cuối trang . . . . . . . . . . . . . . . . . . . . . . 382.10 Các từ được nhấn mạnh . . . . . . . . . . . . . . . . . . . . . 392.11 Môi trường . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.11.1 Các môi trường liệt kê . . . . . . . . . . . . . . . . . . 402.11.2 Canh trái, canh phải, và canh giữa . . . . . . . . . . . 412.11.3 Các trích dẫn và các đoạn thơ . . . . . . . . . . . . . . 412.11.4 In ấn đúng nguyên văn . . . . . . . . . . . . . . . . . . 432.11.5 Môi trường bảng . . . . . . . . . . . . . . . . . . . . . 44

2.12 Tính linh động trong cách trình bày . . . . . . . . . . . . . . . 462.13 Bảo vệ các lệnh “dễ vỡ” . . . . . . . . . . . . . . . . . . . . . . 49

3 Soạn thảo các công thức toán học 513.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513.2 Gộp nhóm các công thức . . . . . . . . . . . . . . . . . . . . . 543.3 Xây dựng khối các công thức toán học . . . . . . . . . . . . . 543.4 Các khoảng trắng trong công thức toán . . . . . . . . . . . . . 583.5 Gióng theo cột . . . . . . . . . . . . . . . . . . . . . . . . . . 603.6 Các khoảng trống thay cho phần văn bản . . . . . . . . . . . . 623.7 Kích thước của các font chữ . . . . . . . . . . . . . . . . . . . 623.8 Định lý, định luật, . . . . . . . . . . . . . . . . . . . . . . . . . 633.9 Các ký hiệu in đậm . . . . . . . . . . . . . . . . . . . . . . . . 653.10 Danh sách các kí hiệu toán học . . . . . . . . . . . . . . . . . 66

x MỤC LỤC

4 Những tính năng đặc trưng của LATEX 754.1 Đưa ảnh EPS vào tài liệu . . . . . . . . . . . . . . . . . . . . 754.2 Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . 784.3 Tạo chỉ mục . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.4 Trang trí đầu đề của các trang . . . . . . . . . . . . . . . . . . 814.5 Môi trường hỗ trợ việc trích đúng nguyên văn . . . . . . . . . 834.6 Tải về và cài đặt các gói của LATEX . . . . . . . . . . . . . . . 834.7 Làm việc với pdfLATEX . . . . . . . . . . . . . . . . . . . . . . 85

4.7.1 Các tài liệu PDF dành cho Web . . . . . . . . . . . . . 864.7.2 Các font chữ . . . . . . . . . . . . . . . . . . . . . . . . 864.7.3 Sử dụng đồ hoạ . . . . . . . . . . . . . . . . . . . . . . 884.7.4 Các siêu liên kết . . . . . . . . . . . . . . . . . . . . . 894.7.5 Vấn đề với các liên kết . . . . . . . . . . . . . . . . . . 914.7.6 Các vấn đề với Bookmark . . . . . . . . . . . . . . . . 92

4.8 Trình diễn với gói pdfscreen . . . . . . . . . . . . . . . . . . . 934.9 XY-pic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

5 Tuỳ biến các thành phần của LATEX 1005.1 Tạo lệnh, gói lệnh và môi trường mới . . . . . . . . . . . . . . 100

5.1.1 Tạo lệnh mới . . . . . . . . . . . . . . . . . . . . . . . 1015.1.2 Tạo môi trường mới . . . . . . . . . . . . . . . . . . . . 1025.1.3 Tạo một gói lệnh mới . . . . . . . . . . . . . . . . . . . 103

5.2 Font chữ và kích thước font chữ . . . . . . . . . . . . . . . . . 1045.2.1 Các lệnh thay đổi font chữ . . . . . . . . . . . . . . . . 1045.2.2 Lưu ý khi sử dụng các lệnh thay đổi định dạng . . . . 1075.2.3 Vài lời khuyên . . . . . . . . . . . . . . . . . . . . . . . 107

5.3 Các khoảng trắng . . . . . . . . . . . . . . . . . . . . . . . . . 1085.3.1 Khoảng cách giữa cách hàng . . . . . . . . . . . . . . . 1085.3.2 Định dạng đoạn văn . . . . . . . . . . . . . . . . . . . 1085.3.3 Khoảng trắng ngang . . . . . . . . . . . . . . . . . . . 1095.3.4 Khoảng trắng dọc . . . . . . . . . . . . . . . . . . . . . 110

5.4 Trình bày trang . . . . . . . . . . . . . . . . . . . . . . . . . . 1115.5 Các vấn đề khác với việc định dạng chiều dài . . . . . . . . . . 1135.6 Các hộp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145.7 Đường kẻ và thanh ngang . . . . . . . . . . . . . . . . . . . . 116

6 Soạn thảo tài liệu tiếng Việt 1186.1 Hỗ trợ tiếng Việt . . . . . . . . . . . . . . . . . . . . . . . . . 118

6.1.1 Gói VnTeX của tác giả Hàn Thế Thành . . . . . . . . . 1186.1.2 Gói BK . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196.1.3 Gói GVS . . . . . . . . . . . . . . . . . . . . . . . . . . 119

MỤC LỤC xi

6.2 Cài đặt và sử dụng gói VnTeX . . . . . . . . . . . . . . . . . . 1196.2.1 Tải các gói cần thiết về máy tính . . . . . . . . . . . . 1196.2.2 Cài đặt gói VnTeX trên môi trường Windows với MikTeX1196.2.3 Cài đặt gói VnTeX trên môi trường Unix . . . . . . . . 1206.2.4 Soạn thảo tài liệu bằng tiếng Việt với LATEX . . . . . . 1236.2.5 Soạn thảo tài liệu với TEX đơn thuần . . . . . . . . . . 1246.2.6 Sử dụng với texinfo . . . . . . . . . . . . . . . . . . . . 1256.2.7 Ví dụ áp dụng . . . . . . . . . . . . . . . . . . . . . . . 125

Tài liệu tham khảo 127

Chỉ mục 129

Danh sách hình

1.1 Tập tin nhập liệu cơ bản của LATEX . . . . . . . . . . . . . . . 81.2 Ví dụ về một cấu trúc của một tài liệu được soạn thảo bằng LATEX. 9

4.1 Ví dụ về cách sử dụng gói fancyhdr. . . . . . . . . . . . . . . . 824.2 Ví dụ về tập tin dữ liệu vào sử dụng gói pdfscreen . . . . . . . 94

5.1 Ví dụ về một gói lệnh tự tạo. . . . . . . . . . . . . . . . . . . 1035.2 Các tham số trong việc trình bày trang. . . . . . . . . . . . . 112

Danh sách bảng

1.1 Các lớp tài liệu. . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 Các tuỳ chọn cho lớp tài liệu. . . . . . . . . . . . . . . . . . . 121.3 Một số gói được phân phối chúng với LATEX. . . . . . . . . . . 131.4 Các kiểu định dạng sẵn của trang văn bản trong LATEX. . . . . 14

2.1 Dấu trọng âm và các kí tự đặc biệt. . . . . . . . . . . . . . . . 262.2 Phần tựa đề hỗ trợ tiếng Bồ Đào Nha. . . . . . . . . . . . . . 292.3 Các lệnh đặc biệt dành cho tiếng Pháp. . . . . . . . . . . . . . 302.4 Một số kí hiệu đặc biệt trong tiếng Đức. . . . . . . . . . . . . 312.5 Các vị trí được phép. . . . . . . . . . . . . . . . . . . . . . . . 47

3.1 Các dấu trọng âm trong chế độ soạn thảo toán học. . . . . . . 663.2 Các chữ cái Hy Lạp viết thường. . . . . . . . . . . . . . . . . 663.3 Các chữ cái Hy Lạp viết hoa. . . . . . . . . . . . . . . . . . . 673.4 Quan hệ hai ngôi. . . . . . . . . . . . . . . . . . . . . . . . . . 683.5 Các toán tử hai ngôi. . . . . . . . . . . . . . . . . . . . . . . . 693.6 Các toán tử lớn. . . . . . . . . . . . . . . . . . . . . . . . . . . 693.7 Các dấu mũi tên. . . . . . . . . . . . . . . . . . . . . . . . . . 703.8 Các dấu ngoặc. . . . . . . . . . . . . . . . . . . . . . . . . . . 703.9 Các dấu ngoặc lớn. . . . . . . . . . . . . . . . . . . . . . . . . 703.10 Các kí hiệu khác. . . . . . . . . . . . . . . . . . . . . . . . . . 713.11 Các kí hiệu thông thường. . . . . . . . . . . . . . . . . . . . . 713.12 Các dấu ngoặc theo AMS. . . . . . . . . . . . . . . . . . . . . 713.13 Chữ cái Hy Lạp và Do Thái theo AMS. . . . . . . . . . . . . . 713.14 Quan hệ hai ngôi theo AMS. . . . . . . . . . . . . . . . . . . . 723.15 Các dấu mũi tên theo AMS. . . . . . . . . . . . . . . . . . . . 733.16 Quan hệ phủ định hai ngôi và các dấu mũi tên theo AMS. . . 733.17 Các toán tử nhị phận theo AMS. . . . . . . . . . . . . . . . . 743.18 Các kí hiệu khác theo AMS. . . . . . . . . . . . . . . . . . . . 743.19 Các kiểu chữ cái trong toán. . . . . . . . . . . . . . . . . . . . 74

xiv DANH SÁCH BẢNG

4.1 Tên của các khoá theo gói graphicx. . . . . . . . . . . . . . . . 774.2 Cú pháp của việc tạo chỉ mục. . . . . . . . . . . . . . . . . . . 81

5.1 Font chữ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1045.2 Kích thước của font chữ. . . . . . . . . . . . . . . . . . . . . . 1055.3 Kích thước tính theo điểm (pt) của các tài liệu chuẩn. . . . . . 1055.4 Các font chữ để soạn thảo trong chế độ toán học. . . . . . . . 1065.5 Các đơn vị trong TEX. . . . . . . . . . . . . . . . . . . . . . . 110

Chương 1

Những kiến thức cơ bản vềLATEX

Phần đầu tiên của chương sẽ giới thiệu một cách ngắn gọn về sự ra đời và lịchsử phát triển của LATEX2ε. Phần hai sẽ tập trung vào những cấu trúc cơ bản củamột tài liệu soạn thảo bằng LATEX. Sau khi kết thúc chương này, các bạn sẽ cóđược những kiến thức căn bản về cách thức làm việc của LATEX và điều này sẽ làmột nền tảng quan trọng để bạn có thể hiểu kĩ những chương sau.

1.1 Tên gọi của trò chơi

1.1.1 TEX

TEX là một chương trình được thiết kế bởi Donald E. Knuth [2]. TEX đượcthiết kế hướng đến việc soạn thảo những công thức toán học. Knuth bắt đầuthiết kế công cụ sắp chữ của TEX vào năm 1977 để khám phá tìm lực củacác thiết bị in ấn điện tử khi mà nó bắt đầu xâm nhập vào công nghệ in ấn

lúc bấy giờ. Ông hy vọng rằng sẽ tránh được xu hướng làm giảm chất lượngbản in, điều mà các tài liệu của ông đã bị ảnh hưởng. TEX như chúng ta thấyngày nay được phát hành vào năm 1982 với một số nâng cấp được thêm vàovào năm 1989 để hỗ trợ tốt hơn cho các kí tự 8-bit và đa ngôn ngữ. TEX đãđược cải tiến để trở nên cực kỳ ổn định, có thể chạy trên các hệ thống máytính khác nhau và gần như là không có lỗi. Các phiên bản của TEX đang dầntiến đến số π và phiên bản hiện nay là 3.14159.

TEX được phát âm là “Tech”, với “ch” được phát âm là “Ach” trong tiếngĐức còn trong tiếng Scotland là “Loch.” Trong môi trường văn bản thôngthường, TEX được viết là TeX.

2 Những kiến thức cơ bản về LATEX

1.1.2 LATEX

LATEX 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àiliệ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ộtcách chuyên nghiệp các kiểu trình bày đã được định trước. Ban đầu, LATEXđược thiết kế bởi Leslie Lamport [1]. LATEX sử dụng công cụ định dạng củaTEX để làm hạt nhân cơ bản phục vụ cho việc định dạng tài liệu. Ngày nay,LATEX được duy trì và phát triển bởi một nhóm những người yêu thích vànghiên cứu về TEX, đứng đầu là Frank Mittlebach.

LATEX được phát âm là “Lay-tech” hay là “Lah-tech”. LATEX trong môitrường văn bản thông thường được viết là LaTeX. LATEX 2ε được phát âm là“Lay-tech two e” và viết là LaTeX2e.

1.2 Những điều cơ bản

1.2.1 Tác giả, người trình bày sách và người sắp chữTrước khi một tác phẩm được in ấn, tác giả sẽ gửi bản viết tay của mìnhđến nhà xuất bản. Sau đó, người trình bày sách sẽ quyết định việc trình bàytài liệu (độ rộng của cột, font chữ, khoảng cách giữa các tiêu đề, . . . ). Ngườitrình bày sách sẽ ghi lại những chỉ dẫn định dạng của mình lên bản viết tayvà đưa cho người thợ sắp chữ, và người thợ này sẽ sắp chữ cho quyển sáchtheo những định dạng được chỉ dẫn trên bản viết tay.

Người trình bày sách phải cố gắng để tìm hiểu xem tác giả đã nghĩ gì khiviết bản viết thảo để có thể quyết định được những hình thức định dạng phùhợp cho: tiêu đề, trích dẫn, ví dụ, công thức, . . . . Đây là công việc phải dựanhiều vào kinh nghiệm và nội dung của bản thảo.

Trong môi trường LATEX, LATEX đóng vai trò là người trình bày sách vàsử dụng TEX như là một người thợ sắp chữ. Tuy nhiên, LATEX “chỉ” là mộtchương trình máy tính do đó nó phải được hướng dẫn bởi người soạn thảo.Người soạn thảo sẽ cung cấp những thông tin bổ sung để mô tả cấu trúclogic của tác phẩm và thông tin này sẽ được viết vào văn bản dưới hình thứclà các “lệnh của LATEX.”

Đây chính là một trong những điểm khác biệt lớn đối với các chương trìnhsoạn thảo WYSIWYG1 như là: MS Word, hay Corel WordPerfect. Với cácchương trình trên thì người soạn văn bản sẽ tương tác trực tiếp với chươngtrình và họ sẽ thấy ngay kết quả của việc đinh dạng. Khi này, văn bản trênmàn hình sẽ phản ánh đúng với bản in.

1What you see is what you get.

1.2 Những điều cơ bản 3

Khi sử dụng LATEX, bạn không thể xem qua trước kết quả xuất ra trongkhi đánh văn bản. Tuy nhiên, đối với kết quả xuất ra cuối cùng thì bạn vẫncó thể xem trước và sửa đổi trước khi thực hiện thao tác in ấn.

1.2.2 Trình bày bản inViệc thiết kế bản in là một công việc thủ công. Những người soạn văn bảnkhông có khiếu trình bày thường mắc phải một số lỗi định dạng nghiêm trọngvì quan điểm: “Nếu một tài liệu trông sắc sảo thì nó đã được thiết kế tốt.”Tuy nhiên các tài liệu được in ấn là để đọc chứ không phải để trưng bàytrong một phòng triển lãm nghệ thuật. Do đó, tính rõ ràng, dễ đọc, dễ hiểuphải được đặt lên hàng đầu. Ví dụ: Kích thước của font chữ và việc đánh số tiêu đề phải được chọn một

cách hợp lý nhằm làm cho cấu trúc của các chương, mục trở nên rõràng đối với người đọc. Chiều dài của dòng văn bản phải đủ ngắn để không làm mỏi mắt ngườiđọc; đồng thời, nó phải đủ dài để có thể nằm vừa vặn trong trang giấy.Điều này mới nghe qua ta thấy có vẻ mâu thuẫn nhưng đây chính làmột yếu tố rất quan trọng quyết định đến tính rõ ràng và đẹp mắt củatài liệu.

Với các chương trình WYSIWYG, tác giả thường tạo ra các tài liệu sắcsảo, trông đẹp mắt nhưng lại không đảm bảo được tính thống nhất trongviệc định dạng các thành phần của tài liệu. LATEX ngăn chặn những lỗi nhưthế bằng cách yêu cầu người soạn thảo phải định nghĩa cấu trúc logic củatài liệu. Sau đó, chính LATEX sẽ lựa chọn cách trình bày tốt nhất.

1.2.3 Những điểm mạnh và điểm yếu của LATEX

Khi những người sử dụng các phầm mềm WYSIWYG và những người sửdụng LATEX gặp nhau, họ thường tranh luận về “những điểm mạnh / điểmyếu của LATEX đối với các chương trình soạn thảo thông thường” và ngượclại. Cách tốt nhất mà bạn nên làm là đứng giữa và lắng nghe. Tuy nhiên, đôilúc bạn sẽ không thể nào đứng ngoài được!

Dưới đây là một số điểm mạnh của LATEX: Các mô hình trình bày bản in chuyên nghiệp đã có sẵn và điều này sẽgiúp cho tài liệu do bạn soạn thảo trông thật chuyên nghiệp.

4 Những kiến thức cơ bản về LATEX Việc soạn thảo các công thức toán học, kỹ thuật được hỗ trợ đến tốiđa. Người sử dụng chỉ cần học một số lệnh dễ nhớ để xác định cấu trúclogic của tài liệu. Người dùng gần như không bao giờ cần phải suy nghĩnhiều đến việc trình bày bản in vì công cụ sắp chữ TEX đã làm việcnày một cách tự động. Ngay cả những cấu trúc phức tạp như chú thích, tham chiếu, biểu bảng,mục lục, . . . cũng được tạo một cách dễ dàng. Bạn có thể sử dụng rất nhiều gói thêm vào miễn phí nhằm bổ sungnhững tính năng mà LATEX không hỗ trợ một cách trực tiếp. Ví dụ: cácgói thêm vào có thể hỗ trợ việc đưa hình ảnh PostScript hay hỗ trợviệc lập nên các danh mục sách tham khảo theo đúng chuẩn. Bạn cóthể tham khảo thêm thông tin về các gói cộng thêm trong tài liệu TheLATEX Companion [3]. LATEX khuyến khích người soạn thảo viết những tài liệu có cấu trúc rõràng bởi vì đây là cơ chế làm việc của LATEX. TEX, công cụ định dạng của LATEX 2ε, có tính khả chuyển rất cao vàhoàn toàn miễn phí. Do đó, chương trình này sẽ chạy được trên hầuhết các hệ thống phần cứng, hệ điều hành khác nhau.

LATEX cũng có nhiều điểm chưa thuận lợi cho người sử dụng. Bạn có thể liệtkê ra những điểm bất lợi này khi bắt đầu sử dụng LATEX. ở đây, tôi xin liệtkê ra một vài điểm như sau: LATEX dùng không ngon cho những kẻ mất lương tri. LATEX dùng không ngon cho những kẻ mất lương tri Mặc dù, đối với một kiểu trình bày văn bản định sẵn, các tham số có

thể điều chỉnh được, việc thiết kế một kiểu trình bày mới hoàn toàn làrất khó khăn và tốn nhiều thời gian. Biên soạn những tài liệu không có cấu trúc, hoặc lộn xộn... rất khókhăn “Con chuột đồng” của bạn, mặc dù có những bước đầu động viên, sẽkhông bao giờ hiểu thấu được khái niệm “đánh dấu một cách logic”(Logical Markup).

1.3 Các tập tin nhập liệu của LATEX 5

1.3 Các tập tin nhập liệu của LATEX

Dữ liệu đưa vào cho LATEX là văn bản thông thường được lưu dưới dạng kí tựASCII. Bạn có thể soạn thảo tập tin này bằng một chương trình soạn thảovăn bản thông thường như Notepad, . . . Tập tin này sẽ chứa phần văn bảncũng như các lệnh định dạng của LATEX.

1.3.1 Khoảng trắngCác kí tự: khoảng trắng hay tab được xem như nhau và được gọi là kí tự“khoảng trắng”. Nhiều kí tự khoảng trắng liên tiếp cũng chỉ được xem là mộtkhoảng trắng. Các khoảng trắng ở vị trí bắt đầu một hàng thì được bỏ qua.Ngoài ra kí tự xuống hàng đơn được xem là một khoảng trắng.

Một hàng trắng giữa hai hàng văn bản sẽ xác định việc kết thúc một đoạnvăn. Nhiều hàng trắng được xem là một hàng trắng.

Từ đây trở đi, các ví dụ sẽ được trình bày như sau: bên trái sẽ là phần dữliệu được nhập vào và bên phải sẽ là kết quả được xuất ra tương ứng (phầnkết quả được xuất ra được đóng khung).

Đây là một ví dụ cho thấyrằng nhiều khoảngtrắng cũngchỉ được xem làmột khoảng trắng.

Đồng thời một hàng trắngsẽ bắt đầu một đoạn mới.

Đây là một ví dụ cho thấy rằng nhiều khoảngtrắng cũng chỉ được xem là một khoảngtrắng.

Đồng thời một hàng trắng sẽ bắt đầu mộtđoạn mới.

1.3.2 Một số kí tự đặc biệtNhững kí tự sau là các kí tự được dành riêng hay có một ý nghĩa đặc biệttrong LATEX hoặc là nó không có mặt trong bất kỳ bộ font chữ nào. Khi bạnnhập chúng vào một cách trực tiếp thì thông thường chúng sẽ không đượcin ra và đôi khi nó cũng khiến cho LATEX làm một số việc mà bạn đã khôngđịnh trước hoặc chúng cũng có thể khiến cho LATEX báo lỗi.

# $ % ^ & _ ~ |

Bạn sẽ thấy rằng các kí tự này sẽ được sử dụng rất nhiều trong tài liệu. Đểsử dụng các kí hiệu trên trong tài liệu, bạn cần phải thêm vào một tiền tốphía trước là dấu gạch chéo (\).

6 Những kiến thức cơ bản về LATEX

\# \$ \% \^ \& \_ \ \ \~ # $ % ˆ & _ ˜

Các kí hiệu khác có thể được in ra trong các công thức toán hay các dấutrọng âm với các chỉ thị lệnh. Dấu gạch chéo (\) không thể được nhập vàobằng cách thêm vào trước nó một dấu gạch chéo (\\) như các trường hợptrên. Khi bạn nhập vào \\ thì LATEX sẽ hiểu rằng bạn muốn xuống hàng2.

1.3.3 Một số lệnh của LATEX

Các lệnh của LATEX cần phải được nhập vào theo đúng chữ hoa và chữ thường.Nó có thể có hai dạng thức như sau: Chúng có thể bắt đầu bằng dấu \ và tiếp theo là tên lệnh (chỉ gồm các

kí tự). Các tên lệnh thường được kết thúc bằng một khoảng trắng, mộtsố hay một ’kí hiệu’. Chúng gồm có một dấu vạch chéo ngược (\) và chỉ đúng một ‘kí hiệu’.

LATEX bỏ qua khoảng trắng sau các lệnh. Nếu bạn muốn có khoảng trắngsau các lệnh thì bạn nên nhập thêm vào

Knuth phân loại ngườisử dụng \TeX thành\TeXniciansvà \TeXeperts.

Knuth phân loại người sử dụng TEX thànhTEXnicians và TEXeperts.

Rõ ràng trong ví dụ trên, khi sử dụng lệnh \TeX mà không thêm vào thì chữ các khoảng trắng giữa từ ‘experts’ và \TeX bị bỏ qua và do đó chúngđược viết liền nhau thành TEXexperts.

Một số lệnh cần có tham số. Các tham số này sẽ được ghi ở giữa dấungoặc ở phía sau tên lệnh. Một số lệnh có yêu cầu tham số tuy nhiên,các tham số này là tuỳ chọn và được nhập vào trong dấu ngoặc vuông [ ].

Bạn có thể \textsldựa vào tôi! Bạn có thể dựa vào tôi!

Vui lòng bắt đầu mộthàng mới!\newlineCám ơn!

Vui lòng bắt đầu một hàng mới!Cám ơn!

2Bạn nên nhập vào $\backslash$. Chỉ thị lệnh này sẽ in ra dấu ’\’.

1.4 Cấu trúc của tập tin nhập liệu 7

1.3.4 Các lời chú thíchKhi mà LATEX gặp một kí tự % thì nó sẽ bỏ qua phần còn lại của hàng đangđược xử lý. Ngoài ra, các kí tự xuống hàng và các khoảng trắng ở đầu hàngtiếp theo sẽ được bỏ qua.

Bạn có thể sử dụng kí tự này để thực hiện việc ghi chú vào tập tin soạnthảo mà không lo lắng việc in chúng ra cùng với bản in hoàn chỉnh.

Nó quả là % đơn giản% tốt hơn <----một ví dụ khùng điên,

vô nghĩa

Nó quả là một ví dụ khùng điên, vô nghĩa

Ngoài ra, kí tự % còn có thể được sử dụng để chia các hàng dữ liệu nhậpvào quá dài khi mà các kí tự khoảng trắng hay là xuống hàng không đượcphép xuất hiện.

Với các lời bình dài, bạn có thể sử dụng môi trường được cung cấp bởigói verbatim là comment. Gói này được đưa vào sử dụng thông qua lệnh sau:\usepackageverbatim

Đây là một ví dụ khác\begincommentcũng đơn giản nhưng hữu dụng\endcommentminh hoạ cách đưa lời bìnhvào tài liệu.

Đây là một ví dụ khác minh hoạ cách đưa lờibình vào tài liệu.

Bạn cần chú ý rằng môi trường ghi chú này không làm việc trong nhữngmôi trường phức tạp như là các môi trường chứa các công thức toán học.

1.4 Cấu trúc của tập tin nhập liệuKhi mà LATEX 2ε xử lý một tập tin dữ liệu vào, nó sẽ đòi hỏi dữ liệu vào phảicó một cấu trúc nhất định. Mỗi tập tin dữ liệu vào phải được bắt đầu bởilệnh:

\documentclass...

Lệnh này sẽ xác định kiểu của tài liệu mà bạn muốn soạn thảo. Tiếp đến,bạn có thể thêm vào các lệnh khác để định dạng cấu trúc của toàn bộ tàiliệu. Ngoài ra, bạn có thể sử dụng các gói khác để thêm vào các tính năng mởrộng không có sẵn trong LATEX. Các gói lệnh đó có thể được đưa vào bằngcách sử dụng lệnh

8 Những kiến thức cơ bản về LATEX

\usepackage...

Khi việc khai báo định dạng của tài liệu đã hoàn tất3, bạn có thể bắt đầusoạn phần thân của tài liệu với lệnh

\begindocument

Bây giờ thì bạn bắt đầu soạn thảo phần văn bản kết hợp với các lệnhđịnh dạng hữu ích của LATEX. Khi hoàn tất việc soạn thảo, bạn sẽ thêm vàolệnh

\enddocument

Lệnh này sẽ yêu cầu LATEX kết thúc phiên làm việc. Những dữ liệu từ đâytrở đi sẽ được bỏ qua.

Hình 1.1 minh hoạ cấu trúc cơ bản của một tập tin nhập liệu được soạnthảo theo LATEX. Một ví dụ về tập tin nhập liệu phức tạp hơn sẽ được cungcấp ở hình 1.2

1.5 Một số lệnh thông dụngTôi dám cược rằng bạn đang cố gắng thử làm việc dựa trên đoạn dữ liệuvào ngắn gọn ở trang 8. Dưới đây là một số hướng dẫn: bản thân của LATEXkhông phải là một chương trình có giao diện thân thiện với người dùng (GUI- Graphic User Interfaces) với các nút nhấn dùng để định dạng văn bản.LATEX là một phần mềm xử lý tập tin dữ liệu vào của bạn. Một vài phiên bảncài đặt của LATEX có giao diện đồ họa thân thiện và bạn có thể nhấn chuộtđể biên dịch. Tuy nhiên, đối với dân chuyên nghiệp thì nghệ thuật nằm ởcách mà bạn dùng hàng lệnh để dịch một tập tin dữ liệu vào thông qua cáchàng lệnh. Chú ý: chúng tôi giả sử rằng một phiên bản chạy được của LATEXđã có trên máy của bạn.

3Vùng dữ liệu nằm giữa \documentclass và \begindocument được gọi là vùng lờitựa (tiếng Anh là preamble).

\documentclassarticle\begindocumentNhỏ gọn nhưng có nhiều ý nghĩa\enddocument

Hình 1.1: Tập tin nhập liệu cơ bản của LATEX

1.5 Một số lệnh thông dụng 9

1. Soạn thảo tập tin dữ liệu vào của bạn bằng một chương trình soạn thảođơn giản thông thường. Trên hệ thống máy UNIX thì các phần mềmsoạn thảo thông thường đều có khả năng thực hiện thao tác này. Trênhệ thống Windows thì bạn có thể sử dụng Notepad hay các chươngtrình khác và xác định dạng lưu trữ là Plain text. Ngoài ra, bạn cầnlưu ý rằng phần mở rộng của tập tin là .tex.

2. Chạy LATEX với tập tin dữ liệu vào của bạn. Nếu chương trình thựchiện thành công thì nó sẽ xuất ra một tập tin có phần mở rộng là .dvi.Trong một số tình huống, bạn cần phải chạy LATEX nhiều lần để có thểcó được bảng mục lục và một số tham chiếu bên trong văn bản. Khimà tập tin dữ liệu vào của bạn có lỗi thì LATEX sẽ báo cho bạn biết vàngừng thao tác xử lý tập tin này. Khi này, hãy nhấn Ctrl-D để trở vềdòng lệnh bình thường.

latex thu01.tex

3. Bây giờ bạn có thể xem tập tin DVI. Có nhiều cách để thực hiện việc

\documentclass[a4paper,11pt]article% Tựa đề của tài liệu\authorH.~Partl\titleMinimalism\begindocument% Tạo tựa đề\maketitle% Tạo bảng mục lục\tableofcontents\sectionVài điều thú vịMột tài liệu thú vị??!!\sectionTạm biệt các bạn\ldots đây là phần kết thúc.\enddocument

Hình 1.2: Ví dụ về một cấu trúc của một tài liệu được soạn thảo bằng LATEX.

10 Những kiến thức cơ bản về LATEX

này. Bạn có thể xem trên màn hình với lệnh

xdvi thu01.dvi &

Lưu ý: lệnh trên chỉ làm việc trên nền tảng Unix với X11. Nếu bạnsử dụng Windows thì hãy thử sử dụng chương trình yap (yet anotherpreviewer).

Ngoài ra, bạn còn có thể chuyển từ tập tin dạng DVI sang tâp tin dạngPostScript để in ấn hay xem với chương trình Ghostscript.

dvips -Pcmz thu01.dvi -o thu01.ps

Nếu hệ thống LATEX trên máy bạn có luôn phần mềm dvipdf thì bạncó thể chuyển tập tin từ dạng DVI sang dạng PDF.

dvipdf thu01.dvi

1.6 Cách trình bày một tài liệu1.6.1 Các lớp tài liệuThông tin đầu tiên mà LATEX cần biết khi xử lý một tập tin dữ liệu vào làkiểu tài liệu mà người soạn thảo muốn tạo ra. Kiểu tài liệu sẽ được xác địnhvới lệnh

\documentclass[tuỳ chọn]lớp

ở đây, lớp xác định với các kiểu tài liệu được tạo. Bảng 1.1 liệt kê các lớptài liệu. Các phiên bản LATEX được phân phối đến người dùng thường cungcấp một số lớp thêm vào để hỗ trợ cho việc tạo ra các kiểu tài liệu khác, baogồm các kiểu định dạng như: thư từ, các trang trình diễn, . . . . Tham số tuỳchọn sẽ tuỳ biến các định dạng cả các lớp tài liệu. Các tuỳ chọn phải đượccách nhau bởi dấu phẩy. Các tham số tuỳ chọn cho các lớp văn bản thôngdụng được liệt kê ở bảng 1.2.

Ví dụ: một tập tin nguồn của LATEX có thể được bắt đầu với

\documentclass[11pt,twoside,a4paper]article

Lệnh này sẽ báo cho LATEX biết rằng bạn cần tạo một tài liệu dạng articlevới cỡ chữ là 11 điểm, được in hai mặt trên khổ giấy A4.

1.6 Cách trình bày một tài liệu 11

1.6.2 Các gói

Trong quá trình soạn thảo tài liệu, bạn nhận thấy rằng có một số công việcmà LATEX không thể giải quyết được. Ví dụ, chỉ với LATEX thì bạn không thểkết hợp các hình ảnh vào tài liệu được, hay đơn giản hơn là bạn không thểđưa màu sắc vào tài liệu. Khi này, để có thể mở rộng khả năng của LATEX,bạn sẽ cần thêm vào một số công cụ bổ sung (chúng được gọi là các gói). Đểsử dụng các gói bổ sung này, ta cần phải sử dụng lệnh:

\usepackage[tuỳ chọn]tên gói

tuỳ chọn là một danh sách các từ khoá nhằm kích hoạt các tính năng củagói. Với các phiên bản LATEX chuẩn, bạn có thể tìm thấy rất nhiều các góicơ bản. Ngoài ra, bạn có thể tìm thấy các gói khác được phân phối riêng lẻ.Các thông tin chi tiết về các gói có thể được tìm thấy và cài đặt theo hướngdẫn trên các trang web. Bạn có thể tìm hiểu thêm thông tin chi tiết về mãnguồn, cách thiết kế trong quyển The LATEX Companion [3].

Bảng 1.1: Các lớp tài liệu.

article dành cho các bài báo trong các tạp chí khoa học, các văn bảntrình diễn, các báo cáo ngắn, tài liệu về các chương trình hoạt động,thư mời, . . .

report dành cho các báo cáo gồm nhiều chương, các quyển sách nhỏ,luận văn,. . .

book dành cho các quyển sách thực sự.

slides dùng để thiết kế các trang trình diễn. Lớp này sử dụng các kí tựsans serif cỡ lớn. Bạn có thể sử dụng một lớp khác là FoilTEXa.

aCTAN:/tex-archive/macros/latex/contrib/supported/foiltex

12 Những kiến thức cơ bản về LATEX

Bảng 1.2: Các tuỳ chọn cho lớp tài liệu.

10pt, 11pt, 12pt Chỉnh kích thước font chữ trong cả tài liệu. Nếukhông có tuỳ chọn nào được thiết lập thì cỡ chữ mặc đinh đượcchọn là 10pt.

a4paper, letterpaper, . . . Xác định cỡ giấy. Cỡ giấy mặc đinh làletterpaper. Ngoài ra, còn có các kiểu giấy khác như: a5paper,b5paper, executivepaper và legalpaper.

fleqn các công thức được hiển thị ở bên trái thay vì ở chính giữa.

leqno đánh số các công thức ở bên trái thay vì ở bên phải.

titlepage, notitlepage xác định việc tạo một trang trắng ngaysau tựa đề của tài liệu hay không. Theo mặc định, lớp articlekhông bắt đầu một trang trắng ngay sau phần tựa đề. Ngược lại,đối với lớp report và book thì ngược lại.

onecolumn, twocolumn Tài liệu được chia làm 1 hay 2 cột.

twoside, oneside

Xác định xem tài liệu sẽ được xuất ra dạng hai hay một mặt. Lớparticle và report được thiết lập là các tài liệu một mặt. Ngượclại, lớp book là dạng tài liệu hai mặt. Những tuỳ chọn này chỉnhằm xác định dạng thức của tài liệu mà thôi. Tuỳ chọn twosidesẽ không thực hiện việc in tài liệu ra dạng hai mặt.

landscape Thay đổi cách trình bày từ kiểu trang dọc sang trangngang.

openright, openany Các chương sẽ bắt đầu ở các trang bên tayphải hay ở trang trống kế tiếp. Tuỳ chọn này không làm việc đốivới lớp article bởi vì đối với lớp này thì không có khái niệm vềchương. Theo mặc định, lớp report sẽ bắt đầu các chương ở trongkế tiếp và lớp book bắt đầu các chương ở trang phía tay phải.

1.6 Cách trình bày một tài liệu 13

Bảng 1.3: Một số gói được phân phối chúng với LATEX.

doc Cung cấp tài liệu về các chương trình của LATEX. Chúngđược mô tả trong tập tin doc.dtxa

exscale Cung cấp các phiên bản có thể thay đổi kích thướccủa các font chữ về toán.Thông tin được mô tả trong tập tin ltexscale.dtx.

fontenc Xác định cách mã hoá font chữ mà LATEX nên dùng.Thông tin được mô tả trong tập tin ltoutenc.dtx.

ifthen Cung cấp các lệnh thao tác trên các biểu mẫu‘if . . . then do. . . hay là do. . . .’Thông tin được mô tả trong tập tin ifthen.dtx và TheLATEX Companion [3].

latexsym để truy cập đến các kí hiệu trong các font chữ củaLATEX. Bạn nên sử dụng gói latexsym. Thông tin đượcmô tả trong tập tin latexsym.dtx và trong The LATEX

Companion [3].

makeidx Cung cấp các lệnh để tạo chỉ mục. Thông tin đượcmô tả trong mục 4.3 và trong The LATEX Companion [3].

syntonly Dịch tài liệu mà không tiến hành sắp chữ. Gói nàycho phép kiểm tra lỗi cú pháp khi soạn thảo mà khôngbiên dịch cho nên kết quả là việc kiểm tra diễn ra rấtnhanh.

inputenc Hỗ trợ các dạng mã hoá của dữ liệu vào như các bảngmã ASCII, ISO Latin-1, ISO Latin-2, 437/850 IBM, Ap-ple Macintosh, Next, ANSI-Windows hay do người dùngđịnh nghĩa.Thông tin được mô tả trong inputenc.dtx.

a tập tin này có trên máy của bạn và bạn có thể dịch nó sang dạngDVI vào một thư mục bất kỳ bằng cách đánh lệnh latex doc.dtx Vớicác tập tin được đề cập khác bạn cũng có thể thao tác tương tự.

14 Những kiến thức cơ bản về LATEX

1.6.3 Các định dạng trang của trang văn bảnLATEX hỗ trợ 3 dạng định dạng sẵn cho phần tiêu đề / phần chân của cáctrang văn bản. Câu lệnh điều khiển là:

\pagestylekiểu

Tham số kiểu sẽ xác định kiểu định dạng được sử dụng. Bảng 1.4 liệt kê tấtcả các kiểu định dạng sẵn của trang văn bản.

Bảng 1.4: Các kiểu định dạng sẵn của trang văn bản trong LATEX.

plain xuất số trang văn bản ở cuối trang, ở giữa phần chân vănbản. Nó là kiểu định dạng mặc đinh.

headings xuất chương hiện tại và số thứ tự của trang văn bản ởvùng tiêu đề của trang; đồng thời, phần chân của trang đượcđể trống.

empty đặt cả phần tiêu đề và phân chân của trang là rỗng.

Bạn cũng có thể đặt định dạng cho riêng từng trang với lệnh sau:

\thispagestylestyle

Bạn có thể tham khảo thêm chi tiết về việc trình bày tiêu đề và phầnchân của trang văn bản theo ý riêng trong tài liệu The LATEX Companion [3]hay trong mục 4.4 ở trang 81.

1.7 Một số dạng tập tin thường gặpKhi làm việc với LATEX, có đôi lúc bạn sẽ cảm thấy mình bị lạc giữa một mêcung các tập tin với các phần đuôi mở rộng khác nhau. Dưới đây là danhsách liệt kê các kiểu tập tin mà bạn có thể gặp phải khi làm việc với TEX.Lưu ý rằng đây chỉ là một bảng tóm tắt các dạng tập tin thông dụng màbạn có thể gặp phải trong khi làm việc.

.tex Tập tin nhập liệu của LATEX hay TEX. Nó có thể được biên dịch vớilệnh: latex.

1.7 Một số dạng tập tin thường gặp 15

.sty Gói lệnh thêm vào cho LATEX. Nó là một tập tin riêng lẽ và bạn cóthể kết hợp nó vào tập tin tài liệu của bạn bằng cách sử dụng lệnh:\usepackage.

.dtx Tài liệu về TEX. Tập tin này là dạng được cung cấp với các tập tinđịnh dạng. Nếu bạn dịch một tập tin .DTX thì bạn sẽ có được tài liệuvề các tập lệnh trong gói chứa trong tập tin .DTX.

.ins Các tập tin cài đặt đi kèm với các tập tin có phần mở rộng là .DTX.Nếu bạn tải về một gói cộng thêm của LATEX từ trên mạng, thôngthường thì bạn sẽ có được một tập tin .dtx và một tập tin .ins. ChạyLATEX đối với tập tin .ins để có được tập tin .dtx.

.cls Tập tin lưu các lớp định nghĩa việc định dạng tài liệu của bản. Chúngđược sử dụng bởi lệnh: \documentclass.

.fd Tập tin cung cấp thông tin cho LATEX về các font chữ.

Dưới đây là một số tập tin được tạo ra khi bạn sử dụng LATEX để dịchtập tin dữ liệu vào:

.dvi Tập tin này mô tả dữ liệu độc lập với thiết bị. Nó chứa đựng kết quảchính của quá trình biên dịch của LATEX. Bạn có thể xem nội dung củanó bằng các chương trình xem tập tin DVI như YAP, dvips, . . . .

.log Lưu các thông tin chi tiết về quá trình biên dịch cuối cùng.

.toc Lưu tiêu đề của tất cả các mục. Nó sẽ được đọc trong lần biên dịchtiếp theo và được sử dụng để tạo bảng mục lục.

.lof Tương tự như tập tin .toc nhưng nó lưu thông tin về danh sách cáchình ảnh.

.lot Tương tự như hai tập tin trên nhưng nó lưu thông tin về các bảngtrong tài liệu.

.aux Tập tin này chuyển các thông tin biên dịch từ tập tin này đến tập tinkhác. Các tập tin .aux này sẽ được dùng để lưu thông tin về các thamchiếu chéo.

.idx Nếu tài liệu của bạn có trang về chỉ mục thì tập tin này sẽ lưu tấtcả các từ khoá. Bạn có thể biện dịch tập tin này với lệnh: makeindex.Tham khảo thêm chương 4.3 ở trang 80 để biết thêm chi tiết.

16 Những kiến thức cơ bản về LATEX

.ind Chứa thông tin đã được dịch từ tập tin .idx. Bạn có thể đính kèm tậptin này vào tài liệu của bạn cho lần biên dịch tiếp theo.

.ilg Tập tin này lưu trữ thông tin về những gì mà lệnh makeindex đã tiếnhành..

1.8 Các tài liệu lớnThông thường, khi làm việc với các tài liệu lớn, ta thường chia tài liệu ralàm nhiều phần nhỏ hơn để việc quản lý tài liệu được thuận tiện, dễ dànghơn. LATEX cung cấp cho bạn hai lệnh hỗ trợ cho việc này.

\includefilename

Bạn có thể sử dụng lệnh này ở trong phần thân của tài liệu để chèn vào nộidung của một tập tin khác có tên là filename.tex. Lưu ý rằng LATEX sẽ khôngbắt đầu một trang mới trước khi xử lý các dữ liệu trong tập tin dữ liệu vàonhập từ tập tin filename.tex

Lệnh thứ hai có thể sử dụng trong phần tựa đề. Nó cho phép bạn hướngdẫn LATEX chỉ đưa vào một số tập tin.

\includeonlyfilename,filename,. . .

Sau khi lệnh này được thực thi ở phần tựa đề của tài liệu, thì chỉ cócác lệnh \include ứng với các tập tin trong danh sách tham số của lệnh\includeonly mới có tác dụng. Lưu ý rằng không có khoảng trắng giữa têncác tập tin trong phần danh sách tham số và các tập tin phải được cách rabởi dấu phẩy.

Lệnh \include tiến hành sắp chữ dữ liệu từ nhập tin ở một trang mới.Việc sử dụng lệnh \includeonly là rất hữu ích bởi vì các chỉ thị kết thúctrang sẽ không bị di chuyển ngay cả khi một số tập tin đưa vào bị bỏ qua.Nếu không thích việc sắp chữ này thì bạn có thể chèn tập tin vào trực tiếpthông qua lệnh:

\inputfilename

Lệnh này chỉ đơn thuần là kèm tập tin được chỉ đinh vào tài liệu hiện thờicủa bạn mà không kèm theo điều kiện gì cả.

Nhằm giúp cho LATEX có thể kiểm tra tài liệu của bạn một cách nhanhchóng hơn, bạn có thể sử dụng gói syntonly. Gói này cho phép LATEX lướt qua

1.8 Các tài liệu lớn 17

tài liệu của bạn và chỉ kiểm tra một số cú pháp và các lệnh nhưng khôngxuất ra kết quả (tập tin DVI). Khi sử dụng gói này, LATEX sẽ chạy rất nhanhvà bạn sẽ tiết kiệm được rất nhiều thời gian. Cách sử dụng gói này rất đơngiản:

\usepackagesyntonly\syntaxonly

Khi mà bạn muốn tạo ra các trang kết quả thật sự, bạn chỉ việc loại bỏgói syntonly ra khỏi tài liệu.

Chương 2

Soạn thảo văn bản

Sau khi đọc xong chương vừa qua, bạn đã có những kiến thức cơ bản về cấutrúc của một chương trình được soạn thảo với LATEX2ε. Trong chương này, bạnsẽ được cung cấp thêm các thông tin khác để có thể soạn thảo những tài liệuthực sự bằng LATEX.

2.1 Cấu trúc văn bản và vấn đề về ngôn ngữĐiều quan trọng khi soạn thảo một tài liệu (trừ các tài liệu hiện đại DAAC 1)là khả năng truyền đạt những ý tưởng, thông tin, kiến thức thông qua tàiliệu đó. Người đọc sẽ dễ tiếp thu hơn khi nội dung được soạn thảo và trìnhbày một cách có hệ thống. Ngoài ra, điều này còn được phản ánh thông quanghệ thuật in ấn bởi vì bản in sẽ phản ánh cấu trúc logic của ý tưởng và ýnghĩa của các thành phần bên trong.

LATEX khác với các hệ soạn thảo văn bản khác ở điểm bạn chỉ cần cungcấp cho nó cấu trúc logic và ý nghĩa của các thành phần của văn bản. Sauđó, mô hình của bản in sẽ được thiết kế một cách tự động sao cho phù hợpvới các yêu cầu định dạng trong phần “tuỳ chọn” ở đầu tài liệu hay trong cáctập tin kèm theo.

Đơn vị quan trọng nhất trong LATEX (cũng như trong in ấn) là đoạn văn.Chúng ta gọi đó là các “văn bản đơn vị” bởi vì một đoạn văn bản sẽ phảnánh những ý nghĩ liền lạc hay một ý tưởng cụ thể. Những mục sau sẽ giúpcho bạn biết được các cách thức để thực hiện các công việc như: yêu cầuLATEX xuống hàng với lệnh \\, hay ngắt đoạn bằng cách nhập vào một hàngtrắng. Việc quyết định khi nào kết thúc một đoạn văn là rất quan trọng bởivì các đoạn văn sẽ có nhiệm vụ chuyển tải những ý tưởng, ý nghĩ. Khi mà

1Different At All Cost, một bản dịch của Swiss UVA (Um’s Verrecken Anders).

2.1 Cấu trúc văn bản và vấn đề về ngôn ngữ 19

một ý nghĩ vẫn còn tiếp tục mà ta lại viết nó ở một đoạn văn khác thì sẽkhông hợp lí. Ngược lại, ta nên bắt đầu một đoạn văn mới khi ta bắt đầumột dòng suy nghĩ mới.

Trên thực tế, khi soạn thảo tài liệu thì hầu hết mọi người chưa đánh giáđúng mức vai trò của việc đặt các dấu cách đoạn một cách hợp lý. Hơn nữa,nhiều người còn không biết được ý nghĩa của việc cách đoạn các đoạn văn;hay đặc biệt là nói về việc ngắt đoạn trong LATEX mà không hiểu rõ về nó.Bên cạnh đó, việc soạn thảo các công thức Toán học nằm trên cùng một hàngvới phần văn bản cũng dễ dẫn đến một số lỗi rất thông dụng. Đây là một sốví dụ: bạn hãy tự kiểm tra xem tại sao có lúc thì các hàng trống (ngắt đoạn)được sử dụng trước và sau một phương trình và đôi lúc lại không. (Đừng lonếu bạn không hiểu hết các lệnh trong các ví dụ dưới đây! Các lệnh này sẽđược giải thích chi tiết trong chương phía sau.)

% Thí dụ 1\ldots khi mà Albert Einstein giới thiệu phương trình:\beginequatione = m \cdot c^2 \; ,

\endequationthì vào thời điểm đó, nó là phương trình được biết đến nhiều nhấtvà đồng thời cũng ít người hiểu được nó nhất.

% Thí dụ 2\ldots theo luật Kirchoff về cường độ dòng điện thì:\beginequation\sum_k=1^n I_k = 0 \; .

\endequation

Hiệu điện thế theo luật Kirchoff có công thức là \ldots

% Thí dụ 3\ldots có nhiều lợi điểm.

\beginequationI_D = I_F - I_R

\endequationlà hạt nhân của rất nhiều mẫu transistor khác nhau. \ldots

Đơn vị nhỏ hơn của văn bản là câu. Trong văn bản tiếng Anh, sau dấuchấm câu sẽ là một khoảng trắng lớn. Khoảng trắng này sẽ lớn hơn khoảngtrắng đi sau một chữ viết tắt. LATEX sẽ cố gắng đoán xem bạn muốn đặt

20 Soạn thảo văn bản

khoảng trắng lớn hay nhỏ trong câu. Nếu LATEX không làm đúng, bạn cầnphải hướng dẫn cho nó. Điều này sẽ được đề cập đến ở phần tiếp theo.

Cấu trúc của một văn bản còn có thể chia nhỏ thành các phần của câu.Hầu hết các ngôn ngữ đều có quy tắc ngữ pháp phức tạp riêng. Bạn cầntham khảo thêm tài liệu về cấu trúc ngữ pháp của tiếng Việt để có thể đặtdấu cho đúng.

Cuối cùng, bên cạnh việc sắp xếp các đoạn văn một cách hợp lý, bạn cầnphải sắp xếp chúng theo cấp bậc có thứ tự như: phần, chương, mục, mụccon, . . . .

2.2 Định dạng việc xuống hàng và sang trang2.2.1 Canh lề các đoạn vănSách vở, tài liệu, . . . thường được sắp chữ với các hàng có độ dài bằng nhau.Do đó, LATEX sẽ tự động chèn vào một cách tối ưu các khoảng trắng và kítự xuống hàng cho cả đoạn văn. Khi cần, LATEX cũng sẽ ngắt các từ quá dài,không nằm gọn trên một hàng. Ngoài ra, việc đinh dạng các đoạn văn vẫncòn phụ thuộc vào kiểu tài liệu mà ta muốn tạo. Thông thường thì hàng đầutiên của đoạn văn sẽ thục vào và sẽ không có thêm khoảng trắng giữa câcđoạn văn. Tham khảo thêm mục 5.3.2 để biết thêm chi tiết.

Trong một số tình huống đặc biệt, bạn cần phải yêu cầu LATEX thực hiệnviệc xuống hàng ngay bằng lệnh sau:

\\ hay \newline

Lệnh sau sẽ bắt đầu một hàng mới chứ không phải bắt đầu một đoạn mới:

\\*

Lệnh sau sẽ cho phép ngắt trang sau khi xuống hàng:

\newpage

Các lệnh sau:

\linebreak[n], \nolinebreak[n], \pagebreak[n] và \nopagebreak[n]

sẽ thực hiện theo thứ tự tương ứng các công việc như: xuống hàng, khôngxuống hàng, sang trang, không sang trang. Ngoài ra, chúng còn cho phép

2.2 Định dạng việc xuống hàng và sang trang 21

người soạn thảo tác động đến việc xuống hàng và sang trang với tham sốkèm theo. Số n ở đây có thể lấy các giá trị từ 1 đến 4. Khi n = 4 thì LATEXsẽ tự động bỏ qua lệnh này nếu kết quả không đẹp mắt. Lưu ý: bạn khôngnên nhầm lẫn giữa việc “ngắt” trang với việc “tạo mới” một trang. Ngay cảkhi bạn sử dụng lệnh “ngắt hàng” hay “ngắt trang” thì LATEX vẫn cố gắngthực hiện việc cân bằng biên phải và chiều dài của trang. Nếu bạn thực sựmuốn chuyển sang một hàng mới thì hãy sử dụng lệnh tương ứng (hãy đoánxem nên dùng lệnh nào trong các lệnh ở trên).

LATEX luôn cố gắng thực hiện việc xuống hàng một cách hợp lý. Nếu nókhông thể tìm thấy cách tốt nhất để ngắt hàng theo chuẩn thì nó sẽ giữnguyên phần văn bản đó (do đó, phần văn bản này sẽ nằm lấn sang lề phải).Khi này, LATEX sẽ thông báo khi biên dịch là có phần văn bản nằm lấn rabiên (“overfull box”).2 Bạn có thể hướng dẫn LATEX giảm bớt chuẩn của nóxuống thông qua lệnh \sloppy. Lệnh này ngăn cản việc tạo ra các dòng quádài bằng cách tăng khoảng cách giữa các từ – ngay cả khi mà nó làm cho kếtquả xuất ra không mấy đẹp mắt. Khi này, cảnh báo lỗi (“underfull hbox”) sẽxuất hiện. Trong đa số các tình huống thì kết quả trông sẽ không mấy đẹpmắt. Bạn có thể trở lại với kết quả ban đầu bằng lệnh \fussy.

2.2.2 Ngắt từLATEX sẽ tự động ngắt từ khi cần thiết. Nếu LATEX thực hiện việc này khôngđược như ý của bạn thì bạn có thể sử dụng lệnh sau để yêu cầu LATEX giảiquyết trường hợp đặc biệt đó.

\hyphenationdanh sách các từ

Lệnh này sẽ làm cho các từ trong danh sách tham số bị ngắt quãng tại cácđiểm được đánh dấu bởi “-”. Tham số của lệnh này chỉ nên chứa các kí tựthông thường hay các dấu được LATEX xem như kí tự thông thường. Các gợi ýhướng dẫn cho việc ngắt quãng các từ đối với các ngôn ngữ khác nhau sẽ đượclưu lại khi lệnh này được thực hiện. Điều này có nghĩa là nếu bạn đặt lệnhnày vào phần tựa đề thì tài liệu của bạn sẽ bị ảnh hưởng bởi cách ngắt quãngtừ của tiếng Anh. Nếu bạn sử dụng lệnh này sau phần \begindocument;đồng thời, bạn sử một gói hỗ trợ ngôn ngữ của bạn như là babel thì các hướngdẫn về việc ngắt quãng từ sẽ được kích hoạt thông qua gói babel.

2Mặc dù LATEX đưa ra thông báo lỗi nhưng bạn khó có thể nhìn thấy được phần dư ranày. Nếu bạn sử dụng tuỳ chọn là draft trong lệnh \documentclass thì các hàng này sẽđược đánh dấu bởi một hàng đen ở biên phải.

22 Soạn thảo văn bản

Ví dụ dưới đây sẽ ngắt quãng từ “hyphenation” cũng như là từ “Hyphena-tion”; đồng thời, nó sẽ ngăn không cho từ “FORTRAN”, “Fortran” và “fortran”bị ngắt quãng. Lưu ý rằng không có một kí tự đặc biệt nào được phép cómặt trong danh sách tham số.

Ví dụ:

\hyphenationFORTRAN Hy-phen-a-tion

Lệnh \- đặt một cách tuỳ ý dấu cách vào một từ. Đây cũng chính là điểmngắt quãng duy nhất của từ. Lệnh này đặc biệt hữu dụng đối với những từcó kí tự đặc biệt (ví dụ như các kí tự về dấu trọng âm) bởi vì LATEX khôngtự động ngắt quãng các từ có kí hiệu đặc biệt.

I think this is: su\-per\-cal\-%i\-frag\-i\-lis\-tic\-ex\-pi\-%al\-i\-do\-cious

I think this is: supercalifragilisticexpialido-cious

Nhiều từ có thể được giữ trên cùng một hàng với lệnh:

\mboxđoạn văn bản

Lệnh này cho phép các tham số luôn được giữ trên cùng một hàng.

Số điện thoại của tôi sẽ thay đổitrong thời gian ngắn sắp đến. Sốmới sẽ là: \mbox(08 8561144).

Tham số \mbox\emphtên tập tindùng để lưu tên của tập tin.

Số điện thoại của tôi sẽ thay đổi trong thời gi-an ngắn sắp đến. Số mới sẽ là: (08 8561144).

Tham số tên tập tin dùng để lưu tên của tậptin.

Lệnh \fbox có tính năng tương tự như lệnh \mbox những có thêm đặcđiểm là có một hộp vẽ xung quanh phần văn bản.

2.3 Các chuỗi kí tự sẵn có trong LATEX

Trong một số ví dụ ở các trang trước, bạn đã làm quen với một vài lệnh cơbản của LATEX phục vụ cho việc soạn thảo những chuỗi đặc biệt.

Tên lệnh Ví dụ Mô tả\today 12. Juli 2008 Ngày tháng hiện thời\TeX TEX Tên của bộ máy sắp chữ yêu thích của bạn!!!\LaTeX LATEX Tên của trò chơi\LaTeXe LATEX 2ε Phiên bản hiện tại của LATEX

2.4 Các kí tự đặc biệt và các kí hiệu 23

2.4 Các kí tự đặc biệt và các kí hiệu

2.4.1 Dấu trích dẫnBạn không nên sử dụng " làm dấu trích dẫn . Trong in ấn, có hai dấu mởngoặc và đóng ngoặc đặc biệt. Trong LATEX, bạn nên sử dụng hai dấu ‘ (dấuhuyền) làm dấu mở ngoặc và hai dấu ’ (dấu lược) làm dấu đóng ngoặc. Đốivới ngoặc đơn thì sử dụng mỗi dẫu chỉ một kí tự.

‘‘Vui lòng nhấn phím ‘x’để kết thúc.’’

“Vui lòng nhấn phím ‘x’ để kết thúc.”

2.4.2 Dấu gạch và dấu ngắt quãngLATEX cung cấp bốn kiểu dấu gạch. Bạn có thể sử dụng ba trong số đó vớisố các dấu gạch liên tiếp khác nhau. Dấu gạch thứ tư không phải là một dấugạch bình thường. Nó là dấu trừ trong toán học .

daughter-in-law, X-rated\\pages 13--67\\ yes---or no?\\ $0$, $1$và $-1$

daughter-in-law, X-ratedpages 13–67yes—or no?0, 1 và −1

Tên của các dấu gạch này là: ‘-’ hyphen, ‘–’ en-dash, ‘—’ em-dash và ‘−’dấu trừ.

2.4.3 Dấu ngã (∼)Kí tự này thường được thấy trên các địa chỉ web. Để tạo ra kí tự này trongLATEX, ban có thể sử dụng lệnh \~ tuy nhiên kết quả ˜ không hoàn toàn làđiều ta muốn. Bạn nên soạn thảo như sau:

http://www.rich.edu/\~bush \\http://www.clever.edu/$\sim$demo

http://www.rich.edu/˜bushhttp://www.clever.edu/∼demo

24 Soạn thảo văn bản

2.4.4 Kí hiệu về độ ()Ví dụ dưới đây minh hoạ cho việc in ra một kí hiệu về độ trong LATEX:

Nhiệt độ hiện nay là $-30\,^\circ\mathrmC$. Tôi sắpbị đóngbăng đây.

Nhiệt độ hiện nay là −30 C. Tôi sắp bị đóngbăng đây.

2.4.5 Kí hiệu đồng tiền Euro (e)Ngày nay, khi soạn thảo tài liệu có liên quan đến tiền tệ, bạn sẽ cần sử dụngđến kí hiệu của đồng Euro. Hiện nay, có nhiều font chữ có kí hiệu này. Bạncó thể sử dụng gói textcomp để đưa vào kí hiệu của đồng Euro như sau:

\usepackagetextcomp

dùng lệnh sau:

\texteuro

để in ra kí hiệu này.Nếu font chữ của bạn không hỗ trợ kí hiệu này hay bạn không thích kí

hiệu Euro của font chữ trên, bạn có thể sử dụng một trong cách sau:Cách 1: dùng gói eurosym. Gói này cung cấp kí hiệu chính thức của đồng

euro.

\usepackage[official]eurosym

Nếu bạn muốn kí hiệu đồng Euro phù hợp với font chữ của bạn thì bạncó thể thay thế tuỳ chọn là gen thay cho tuỳ chọn official

Cách 2: dùng gói marvosym. Gói này cung cấp nhiều kí hiệu khác nhautrong đó có kí hiệu đồng Euro

\EUR

Các lệnh: \texteuro, \eurovà \euro1000 trông khác nhau.

Các lệnh: ¿, e và e1000 trông khác nhau.

2.4 Các kí tự đặc biệt và các kí hiệu 25

2.4.6 Dấu ba chấm (. . . )Trên các máy đánh chữ, dấu phẩy hay dấu chấm có cùng một kích thước vớicác kí tự khác. Trong in ấn sách, các kí tự này chỉ chiếm một khoảng nhỏvà được đặt rất sát kí tự trước nó. Do đó, bạn không thể nhập vào ‘dấu bachấm’ bằng cách nhập 3 dấu chấm. Thay vào đó, ta có một lệnh thực hiệnviệc này:

\ldots

Không phải nhập như thế này ...mà nên nhập như thế này:\\New York, Tokyo, Budapest, \ldots

Không phải nhập như thế này ... mà nênnhập như thế này:New York, Tokyo, Budapest, . . .

2.4.7 Chữ ghép, gạch nốiMột số các tổ hợp các kí tự được sắp chữ không chỉ bằng cách lần lượt đưavào từng kí tự mà phải sử dụng các kí tự đặc biệt.

ff fi fl ffi. . . thay vì ff fi fl ffi . . .

Các tổ hợp kí tự này được gọi là chữ ghép và có thể ngăn chặn bằng cáchchèn vào \mbox giữa hai kí tự cần xử lý. Điều này có thể cần thiết đối vớicác từ được xây dựng từ hai từ khác.

\Large Not shelfful\\but shelf\mboxful

Not shelffulbut shelfful

2.4.8 Dấu trọng âm và các kí tự đặc biệtLATEX hỗ trợ việc sử dụng dấu trọng âm và các kí tự đặc biệt của các ngônngữ khác nhau. Bảng 2.1 liệt kê tất cả các dấu trọng âm được áp dụng đốivới chữ o. Tương tự, bạn cũng có thể áp dụng các dấu trọng âm này với cáckí tự khác.

Để đặt một dấu trọng âm phía trên chữ i hay j, dấu chấm ở phía trêncủa nó phải được bỏ đi. Điều này được thực hiện bằng lệnh \i và \j.

26 Soạn thảo văn bản

H\^otel, na\"\i ve, \’el\‘eve,\\sm\o rrebr\o d, !‘Se\~norita!,\\Sch\"onbrunner Schlo\ssStra\ss e

Hôtel, naıve, élève,smørrebrød, !‘Senorita!,Schonbrunner Schloß Straße

Bảng 2.1: Dấu trọng âm và các kí tự đặc biệt.

ò \‘o ó \’o ô \^o õ \~oo \=o o \.o o \"o c \c c

o \u o o \v o o \H o o \c oọ \d o o

¯\b o oo \t oo

œ \oe Œ \OE æ \ae Æ \AEa \aa A \AA

ø \o Ø \O l \l L \Lı \i \j !‘ !‘ ?‘ ?‘

2.5 Sự hỗ trợ đối với các ngôn ngữ quốc tếKhi bạn soạn thảo một tài liệu bằng một ngôn ngữ khác với Tiếng Anh, bạncần phải cấu hình lại LATEX cho phù hợp:

1. Các chuỗi được tạo một cách tự động3 phải được chuyển sang ngônngữ đã chọn. Đối với một số ngôn ngữ, những sự thay đổi này có thểđược thực hiện thông qua việc sử dụng gói babel thiết kế bởi JohannesBraams.

2. LATEX cần biết các qui luật về ngắt quãng từ đối với một ngôn ngữ mới.Việc đưa các luật này vào LATEX là tương đối phức tạp. Nó đòi hỏi phảixây dựng lại tập tin đinh dạng với các mẫu ngắt quãng từ ngữ sẵn có.Bạn có thể tham khảo thêm Local Guide [4] để biết thêm chi tiết.

3. Đặc trưng về cách thiết kế bản in của từng ngôn ngữ. Ví dụ, trongtiếng Pháp, trước các dấu hai chầm (:) thường có khoảng trắng.

3Mục lục, Danh sách các hình minh họa, . . .

2.5 Sự hỗ trợ đối với các ngôn ngữ quốc tế 27

Nếu hệ thống của bạn đã được cấu hình phù hợp, bạn có thể kích hoạtgói babel bằng cách thêm vào lệnh:

\usepackage[ngôn ngữ]babel

ở sau lệnh \documentclass. Một danh sách các ngôn ngữ được xây dựng chohệ thống LATEX của bạn sẽ được liệt kê mỗi khi trình biên dịch chạy. Babelsẽ tự động kích hoạt các quy luật ngắt quãng từ tương ứng. Nếu định dạngLATEX của bạn không hỗ trợ việc ngắt quãng từ ngữ, babel vẫn hoạt độngnhưng tắt chế độ ngắt từ đi. Điều này sẽ dẫn đến những ảnh hưởng xấu đếnkết quả xuất ra của tài liệu.

Babel cũng xác định một số lệnh mới cho một số ngôn ngữ để đơn giảnhoá việc nhập các kí tự đặc biệt. Ví dụ như trong tiếng Đức có nhiều hiệntượng biến âm như (aou) nên ta sẽ có các lệnh tương ứng để xuất ra các kítự này. Với babel, bạn có thể nhập vào o bằng cách đánh "o thay vì \"o.

Nếu bạn gọi babel với nhiều ngôn ngữ

\usepackage[ngôn ngữ A,ngôn ngữ B]babel

bạn phải sử dụng lệnh

\selectlanguagengôn ngữA

để chọn cụ thể một ngôn ngữ.Hầu hết các máy tính hiện đại đều cho phép bạn nhập vào các kí tự

đặc biệt từ bàn phím. LATEX có thể điều khiển các kí tự này thông qua góiinputenc:

\usepackage[bảng mã ]inputenc

Khi sử dụng gói này, bạn nên quan tâm đến khả năng người khác khôngthể xem được những tập tin của bạn trên máy của họ do sự khác biệt về cáchmã hoá. Ví dụ như trong tiếng Đức thì hiện tượng biến âm a được mã hoálà 132 trong hệ điều hành OS/2 nhưng trên các hệ thống Unix sử dụng bảngmã ISO-LATIN 1 là 228; do đó, bạn nên sử dụng tính năng này một cáchhạn chế. Các bản mã sau có thể được sử dụng tuỳ thuộc vào các hệ thốngmà bạn làm việc:

28 Soạn thảo văn bản

Hệ điều hành Bảng mãMac applemacUnix latin1Windows ansinewDOS, OS/2 cp850

Việc mã hoá các font chữ là một vấn đề khác. Nó định nghĩa vị trí củatừng kí tự trong bảng mã. Các font chữ mới của TEX (Computer ModernFont) chứa 128 kí tự ASCII 7-bit. Khi cần đến các kí tự có dấu, TEX sẽ tạora chúng bằng cách kết hợp kí tự thường với các kí tự dấu. Mặc dù cách thựchiện này cho kết quả tương đối tốt nhưng nó làm cho tính năng ngắt quãngtừ ngữ không thực hiện được đối với các từ có các kí tự có dấu.

Các phiên bản TEX hiện nay đều chứa một bản sao của các font EC. Cácfont chữ này trông giống như các font Computer Modern và còn chứa thêmcác kí tự đặc biệt đối với hầu hết các kí tự có dấu được sử dụng trong hệ

thống ngôn ngữ ở Châu Âu. Bằng cách sử dụng các font chữ này, bạn có thểtận dụng tính năng ngắt từ trong các tài liệu không được soạn thảo bằngtiếng Anh. Các font chữ EC được kích hoạt bằng các kèm gói fontenc vàophần tựa đề của tài liệu.

\usepackage[T1]fontenc

Hiện nay, chúng ta có các phiên bản dạng PostScript có chất lượng caonhưng không miễn phí của các font chữ EC.4 Bạn nên tham khảo thêm vềgói aeguill, viết tắt của Almost European Computer Modern with Guillemets.Gói này sẽ sử dụng các kí tự nguyên mẫu từ các font chữ Computer Modernnhưng sắp xếp chúng tại theo thứ tự của font EC; do đó, nó có thể sử dụngđịnh dạng đẹp của font chữ CM dạng Type1 trên các hệ thống. Ngoài ra, góiae cũng có tính năng này nhưng lại không cung cấp đầy đủ việc xuất ra cácdấu trích dẫn trong tiếng Pháp, như là guillemet (xem thêm phần này trongtài liệu ở mục về pdfLATEX ở trang 85).

4Vladimir Volovich đã tạo ra các gói font cm-super chứa đầy đủ các font chữ EC/TC,EC Concrete, EC Bright và các font chữ LH. Bạn có thể tải gói này về tại địa chỉCTAN:/fonts/ps-type1/cm-super. Gói này đã được đưa vào bản TEXLive7 và MikTEX.Tuy nhiên các font chữ này lại không có cùng chất lượng in ấn như các font chữ Type1(các font bình thường) được dịch từ các font CM

2.5 Sự hỗ trợ đối với các ngôn ngữ quốc tế 29

Bảng 2.2: Phần tựa đề hỗ trợ tiếng Bồ Đào Nha.

\usepackage[portuges]babel\usepackage[latin1]inputenc\usepackage[T1]fontenc

2.5.1 Sự hỗ trợ đối với tiếng Bồ Đào Nha

Để kích hoạt tính năng ngắt quãng từ những và thay đổi các chuỗi gốc sangtiếng Bồ Đào Nha, với lệnh:

\usepackage[portuguese]babel

Nếu như bạn đang ở Brazil, bạn có thể thay thế ngôn ngữ bằng brazilian.

Trong tiếng Bồ Đào Nha, có rất nhiều dấu trọng âm nên bạn cần thêmvào gói sau

\usepackage[latin1]inputenc

để có thể nhập liệu

\usepackage[T1]fontenc

và lệnh trên để tính năng ngắt quãng từ được thực hiện đúng.

Xem bảng 2.2 để biết thêm chi tiết về những gì cần thêm vào phần tựađề của tài liệu để sử dụng tính năng hỗ trợ cho Tiếng Bồ Đào Nha. Lưu ýrằng chúng ta sẽ sử dụng việc mã hoá dữ liệu vào dạng latin1. Do đó, nó sẽkhông làm việc trên nền tảng Mac hay DOS. Để sử dụng tính năng này, bạnchỉ cần sử dụng cách mã hoá phù hợp với hệ thống của bạn.

30 Soạn thảo văn bản

2.5.2 Sự hỗ trợ đối với tiếng Pháp

Để có thể sử dụng được tính năng hỗ trợ tiếng Pháp trong LATEX, bạn có thểsử dụng lệnh sau:

\usepackage[frenchb]babel

Lưu ý rằng, vì lý do phát triển, tên của gói babel dành cho tiếng Pháp làfrenchb hay francais chứ không phải là french.

Tính năng này kích hoạt tính năng ngắt quãng từ trong tiếng Pháp khibạn đã cấu hình đúng cho hệ thống LATEX. Nó cũng sẽ tự động thay đổi cácchuỗi tự động thành tiếng Pháp (như là: Mục lục, Tài liệu tham khảo, . . . ).Đồng thời, một tập hợp các lệnh mới cũng sẽ có hiệu lực nhằm hỗ trợ choviệc soạn thảo các tài liệu bằng tiếng Pháp. Tham khảo thêm mục 2.3 đểbiết thêm chi tiết .

Bảng 2.3: Các lệnh đặc biệt dành cho tiếng Pháp.

\og guillemets \fg « guillemets »

M\upme, D\upr Mme, Dr

1\ier, 1\iere, 1\ieres 1er, 1re, 1res

2\ieme 4\iemes 2e 4es

\No 1, \no 2 No 1, no 2

20~\degres C, 45\degres 20 °C, 45°\bscM. Durand M. Durand

\nombre1234,56789 1 234,567 89

Ngoài ra, bạn sẽ thấy rằng cách trình bày các danh sách sẽ thay đổi khita chuyển sang tiếng Pháp. Để biết thêm chi tiết về cách làm việc của tuỳchọn frenchb của gói babel để có thể tuỳ biến tính năng của nó, bạn có thểchạy chương trình dịch của LATEX để dịch tập tin frenchb.dtx và đọc tậptin kết quả frenchb.dvi.

2.5 Sự hỗ trợ đối với các ngôn ngữ quốc tế 31

2.5.3 Sự hỗ trợ đối với tiếng ĐứcĐể có thể sử dụng tính năng hỗ trợ này, bạn có thể sử dụng lệnh sau:

\usepackage[german]babel

Lệnh trên sẽ kích hoạt tính năng ngắt quãng từ đối với tiếng Đức sau khibạn đã cấu hình hệ thống LATEX một cách hợp lý. Ngoài ra, nó cũng tự độngthay đổi các chuỗi tự động sang tiếng Đức. Bên cạnh đó, tập hợp các lệnhhỗ trợ cho việc soạn thảo văn bản bằng tiếng Đức cũng sẽ được kích hoạt.Hãy tham khảo thêm 2.4 để biết thêm chi tiết. Đối với gói inputenc, tất cảcác tính năng này sẽ bị tắt đi nhưng văn bản của bạn vẫn cố định với mộtbảng mã cụ thể.

Bảng 2.4: Một số kí hiệu đặc biệt trong tiếng Đức.

"a a "s ß

"‘”

"’ “

"< or \flqq « "> or \frqq »

\flq < \frq >

\dq "

Trong các tài liệu bằng tiếng Đức, bạn thường gặp các kí hiệu trích dẫntrong tiếng Pháp («đây là một ví dụ»). Khi sắp chữ cho một tài liệu bằngtiếng Đức, đôi lúc ta thấy rằng không có sự thống nhất về việc này. Đôi khidấu trích dẫn trông như: »ví dụ«. Nhưng đối với những người Switzerlandnói tiếng Đức thì dấu trích dẫn trông giống như trong tiếng Pháp: «trích dẫn».

Một vấn đề lớn xuất phát từ việc sử dụng lệnh \flq: nếu bạn sử dụngcác font chữ OT1 (theo mặc định) thì dấu trích dẫn sẽ trông giống như kíhiệu toán “” và nó sẽ gây ra một số vấn đề. Do đó, để sử dụng dấu tríchdẫn như trên thì bạn nên thêm vào lệnh sau: \usepackage[T1]fontenc.

2.5.4 Hỗ trợ đối với tiếng Hàn quốc5

5Phần này được đưa vào do có rất nhiều câu hỏi xung quanh việc soạn thảo bằng tiếngHàn Quốc trong LATEX. Mục này được soạn thảo bởi Karnes KIM thay mặt cho nhóm

32 Soạn thảo văn bản

Để sử dụng tính năng này, bạn cần giải quyết 3 vấn đề sau:

1. Bạn phải có khả năng soạn thảo tập tin dữ liệu vào bằng tiếng Hàn. Vàtập tin dữ liệu này phải đơn thuần là một tập tin văn bản. Tuy nhiên bởivì tiếng Hàn sử dụng các kí tự riêng không có trong bảng mã US-ASCIIcho nên các kí tự sẽ trông rất lạ đối với các chương trình soạn thảo vớibảng mã ASCII thông thường. Hai bảng mã được sử dụng rỗng rãi nhấttrong việc soạn thảo tiếng Hàn là EUC-KR và phần mở rộng của nó đểtương thích với bảng mã sử dụng bởi MS-Windows bằng tiếng Hàn làCP949/Windows-949/UHC. Với các bảng mã này thì các kí tự trongbảng mã US-ASCII sẽ đại diện cho kí tự ASCII thông thường tương tựnhư các bảng mã tương thích khác như ISO-8859-x, EUC-JP, Shift_JISvà Big5. Mặt khác, các âm tiết Hangul, Hanjas (Các kí tự Trung Quốcsử dụng trong tiếng Hàn), Hangul Jamos, Hirakanas, Katakanas, cáckí hiệu hy lạp kirin và các kí hiệu, kí tự khác trong KS X 1001 sẽ đượcđại diện bởi hai quãng tám liên tiếp. Phần đầu tiên lưu tập MSB củanó. Đến giữa những năm 1990, người ta đã mất rất nhiều công sứctrong việc xây dựng một môi trường hỗ trợ tiếng Hàn đối với các hệđiều hành không phải bằng tiếng Hàn. Bạn có thể xem thêm ở địa chỉhttp://jshin.net/faq để lướt qua các thông tin về làm thế nào đểsử dụng tiếng Hàn trong các hệ điều hành không phải bằng tiếng Hàntrong những năm 1990. Ngày nay, cả ba hệ điều hành chính (Mac OS,Unix, Windows) đều hỗ trợ tương đối tốt cho các ngôn ngữ khác nhautrên thế giới. Do đó, việc soạn thảo một tài liệu bằng tiếng Hàn khôngcòn quá khó khăn ngay cả khi trên một máy tính không chạy hệ điềuhành tiếng Hàn.

2. TEX và LATEX được thiết kết cho các hệ thống chữ viết không vượt quá256 kí tự trong bảng chữ cái. Do đó, để chúng có thể làm việc với cácngôn ngữ có nhiều kí tự hơn như tiếng Hàn Quốc6, tiếng Trung Quốc.

dịch tài liệu này sang tiếng Hàn. Ngoài ra, nó cũng được dịch sang tiếng Anh bởi SHINJungshik và tóm tắt lại bởi Tobi Oetiker

6Korean Hangul là một bảng chữ cái với 14 phụ âm và 10 nguyên âm cơ bản (Jamos).Không giống như hệ thống chữ viết Latin hay Cyrillic, các kí tự riêng lẽ phải được sắpxếp trong các hình chữ nhật cùng kích thước như các kí tự tiếng Trung Quốc, mỗi ô sẽđại điện cho một âm tiết. Một tập hợp vô hạn các âm tiết có thể được tạo từ tập hữuhạn các âm tiết và phụ âm này. Chuẩn chính tả mới trong tiếng Hàn (cả Nam lẫn BắcHàn) đặt ra một số giới hạn về việc lập nên các nhóm này. Do đó chỉ có một số hữuhạn các âm tiết đúng ngữ pháp là tồn tại. Bảng mã tiếng Hàn định nghĩa mã cho từngâm tiết này (KS X 1001:1998 và KS X 1002:1998). Do đó, bảng chữ cái tiếng Hàn sẽđược xử lý như trong tiếng Nhật và Trung Quốc với hệ thống chữ viết gồm hàng vạncác kí tự tượng hình và kí tự tốc ký. ISO 10466/Unicode đề nghị cả hai cách của việchiển thị tiếng Hàn dùng cho tiếng Hàn hiện đại bằng cách dùng bảng mã Conjoining

2.5 Sự hỗ trợ đối với các ngôn ngữ quốc tế 33

Do đó, một cơ chế mới đã được xây dựng. Nó chia các font chữ CJKvới hàng ngàn hay hàng vạn các tổ hợp thành các font chữ nhỏ hơnvới 256 kí tự. Đối với tiếng Hàn, có 3 gói đang được sử dụng rộng rãilà: HLATEX viết bởi UN Koaunghi, hLATEXp viết bởi CHA-Jaechoon vàCJK package viết bởi Werner Lemberg.7 HLATEXvà hLATEXp hỗ trợ tốiđa cho tiếng Hàn. Cả hai đều có thể xử lý các tập tin được soạn thảovới bảng mã EUC-KR. HLATEX có thể xử lý luôn cả tập tin dữ liệu vàovới bảng mã CP949/Windows-949/UHC. Bạn cũng có thể dùng nó đểsoạn thảo các tài liệu đa ngôn ngữ (đặc biệt là tiếng Trung Quốc, Nhậtvà Hàn Quốc).

Gói CJK có thể xử lý dữ liệu được soạn thảo bằng bảng mã UTF-8cũng như một số bảng mã khác như EUC-KR và CP949/Windows-949/UHC. Bạn cũng có thể dùng nó để soạn thảo các tài liệu đa ngônngữ (đặc biệt là tiếng Trung Quốc, Nhật và Hàn Quốc). Tuy nhiên, góiCJK này không đi kèm với bất kỳ font chữ Hàn nào.

3. Mục đích cuối cùng của việc sử dụng các chương trình soạn thảo nhưTEX và LATEX là để có được một tài liệu có “thẩm mỹ”. Do đó, việccó những font chữ đẹp là một yếu tố rất quan trọng. HLATEX cung cấpnhững font UHC PostScript với 10 họ font khác nhau và các font chữMinhwabu8 (TrueType) với 5 họ font khác nhau. Gói CJK làm việc vớimột tập hợp font chữ được sử dụng bởi phiên bản cũ hơn của HLATEXvà có thể sử dụng các font TrueType của Bitstream.

Hangul Jamos (bảng chữ cái có tại http://www.unicode.org/charts/PDF/U1100.pdf)để biết thêm về mở rộng cho tất cả các âm tiết đúng chính tả trong tiếng hang hiện đại(http://www.unicode.org/charts/PDF/UAC00.pdf). Một trong những vấn đề làm nảnlòng nhât khi soạn thảo một văn bản bằng tiếng Hàn với LATEX hay các hệ soạn thảo kháclà việc hỗ trợ Middle Korean và tiếng Hàn trong tương lai—các âm tiết có thể được biểudiễn bằng cách kết hợp Jamos trong unicode. Người ta hy vọng rằng trong tương lai, bộmáy định dạng TEX như Ω và Λ sẽ giải quyết được được vấn đề này để các nhà ngôn ngữhọc và lịch sử học sẽ rời bỏ việc sử dụng MS Word (hiện nay MS Word hỗ trợ khá tốt choMiddle Korean).

7Bạn có thể download các gói trên ở địa chỉCTAN:/tex-archive/language/korean/HLaTeX/CTAN://tex-archive/language/korean/CJK/ và http://knot.kaist.ac.kr/htex/

8Bộ Văn Hoá Hàn Quốc

34 Soạn thảo văn bản

Để sử dụng gói HLATEX, bạn hãy khai báo như sau trong phần tựa đề củatài liệu:

\usepackagehangul

Lệnh này sẽ kích hoạt tính năng soạn thảo tiếng Hàn. Các tiêu đề củachương, mục, mục con, mục lục, . . . sẽ được dịch sang tiếng Hàn và định dạngcủa tài liệu cũng sẽ thay đổi theo quy ước mẫu tài liệu bằng tiếng Hàn.

Các gói trên cũng cung cấp tính năng “lựa chọn một mẫu nhỏ”. Trongtiếng Hàn, có rất nhiều cặp tiền tố tương đương về mặt ngữ pháp nhưng khácnhau về hình thức. Cặp tiền tố nào đúng sẽ tuỳ thuộc vào âm tiết đứng trướckết thúc bởi một nguyên âm hay phụ âm. (Điều này phức tạp hơn nhưng tacó thể nói nôm na như thế cho dễ hiểu.) Người dân Hàn Quốc sẽ không gặpkhó khăn trong việc lựa chọn cặp tiền tố nào cho thích hợp nhưng TEX sẽkhông xác định được việc sử dụng cặp nào để sử dụng làm tham chiếu vàcác chuỗi mặc định sẽ thay đổi trong khi soạn thảo. HLATEX đã giải phóngđược người dùng khỏi vấn đề này bằng một cơ chế làm việc hoạt động khátốt (nhưng vẫn có lỗi).

Khi bạn không cần một số tính năng đặc biệt của soạn thảo tiếng Hàn,để đơn giản hoá, bạn có thể dùng lệnh sau để kích hoạt tính năng soạn thảobằng tiếng Hàn:

\usepackagehfont

Để biết thêm chi tiết về việc soạn thảo tiếng Hàn với HLATEX, bạn có thểtham khảo thêm ở HLATEX Guide. Hãy tham khảo thêm thông tin ở trangweb người Hàn Quốc dùng TeX tại địa chỉ http://www.ktug.or.kr/. Đồngthời bạn cũng có thể tìm thấy tài liệu này bằng tiếng Hàn.

2.6 Khoảng cách giữa các từĐể biên phải của một tài liệu được căng thẳng hàng, LATEX sẽ chèn vào nhữngsố lượng khác nhau các khoảng trắng giữa các từ. LATEX sẽ chèn nhiều khoảngtrắng hơn vào cuối câu, và điều này sẽ làm cho văn bản dễ đọc hơn. LATEXqui định rằng một câu sẽ kết thúc với dấu chấm câu, dấu hỏi hay dấu chấmcảm. Nếu một dấu chấm câu theo sau một chữ viết hoá thì nó không đượcxem là kết thúc của một câu bởi vì các dấu chấm đứng sau các chữ viết hoathường xuất hiện ở các từ viết tắt.

Tất cả các trường hợp ngoại lệ đối với qui tắt này phải được xác định cụthể bởi người soạn thảo. Một dấu gạch chéo đứng trước một khoảng trắng

2.7 Tựa đề, các chương và các mục 35

sẽ tạo ra một khoảng trắng nở rộng. Một dấu ‘~’ sẽ tạo ra một khoảng trắngkhông thể nở rộng và ngăn không cho xuống hàng. Lệnh \@ đứng trước mộtdấu chấm câu sẽ xác định rằng dấu chấm này kết thúc một câu ngay cả khinó theo sau một chữ cái viết hoa.

Mr.~Smith was happy to seeher\\ cf.~Fig.~5\\I like NEWWORLD\@.What about you?

Mr. Smith was happy to see hercf. Fig. 5I like NEWWORLD. What about you?

Khoảng trắng thêm vào sau dấu chấm câu có thể bị bỏ qua với lệnh sau:

\frenchspacing

nó sẽ khiến cho LATEX không chèn thêm khoảng trắng vào sau dấu chấm.Điều này rất phổ biến trong các ngôn ngữ khác với tiếng Anh, trừ phần tàiliệu tham khảo. Nếu bạn sử dụng lệnh \frenchspacing thì không cần thiếtsử dụng lệnh \@.

2.7 Tựa đề, các chương và các mụcNhằm giúp cho người đọc dễ dàng tìm ra những phần cần thiết trong tài liệucủa bạn, bạn nên chia nó thành các chương, mục và mục nhỏ. LATEX hỗ trợcác lệnh đặc biệt xem tựa đề của các mục làm đối số. Việc sử dụng chúngtheo thứ tự như thế nào sẽ tuỳ thuộc vào bạn.

Các lệnh sau sẵn có dành cho lớp tài liệu dạng article:

\section...\subsection...\subsubsection...\paragraph...\subparagraph...

Nếu bạn muốn chia tài liệu của mình thành các phần mà không ảnhhưởng đến việc đánh số chương, mục bạn có thể sử dụng lệnh sau:

\part...

Khi làm việc với lớp tài liệu report hay book, bạn có thêm một lệnh chia

36 Soạn thảo văn bản

đoạn cao nhất là:

\chapter...

Trong lớp tài liệu dạng article không có khái niệm về chương. bạn cóthể xem các tài liệu dạng article như các chương của một quyển sách.

Khoảng cách giữa các đoạn, việc đánh số và kích thước font chữ của tiêuđề của các đoạn sẽ được LATEX quyết định một cách tự động.

Hai lệnh chia đoạn sau tương đối đặc biệt: Lệnh \part không ảnh hưởng đến việc đánh số thứ tự các chương. Lệnh \appendix không có tham số. Lệnh này chỉ thay đổi việc đánhsố chương từ số sang chữ.9

LATEX sẽ tạo ra bảng mục lục bằng cách tríc lấy phần tựa đề của các mụcvà vị trí trang của chúng thông qua lần biên dịch cuối cùng của tài liệu. Lệnh

\tableofcontents

sẽ hiển thị nội dung của bảng mục lục tại vị trí nó được chèn vào. Một tàiliệu cần phải được biên dịch hai lần để LATEX có thể xây dựng được bảngmục lục. Đôi khi LATEX sẽ yêu cầu bạn lần thứ ba để có được một bảng mụclục thật chính xác.

Tất cả các lệnh chia đoạn được liệt kê ở trên cũng có thể được viết dướidạng có dấu * ở phía sau. Khi này, tựa đề của các mục sẽ không được hiểnthị và không được đưa vào bảng mục lục. Ví dụ như khi bạn không muốnhiển thị tựa đề của mục \sectionTrợ giúp vào bảng mục lục, bạn có thểchia đoạn với lệnh \section*Trợ giúp.

Thông thường tựa đề của các mục sẽ được đưa vào ở bảng mục lục. Đôikhi điều này không thực hiện được do tựa đề quá dài. Khi này, ta có thể yêucầu LATEX đưa vào phần mục lục một tựa đề thay thế ngắn hơn.

\chapter[Tựa đề cho bảng mục lục]Đây là một tựa đềdài và chán ngắt, không thú vị chút nào

9Đối với lớp tài liệu dạng report thì nó thay đổi cách đánh số các mục.

2.8 Tham chiếu chéo 37

Tựa đề của tài liệu sẽ được tạo ra bởi lệnh

\maketitle

Phần tựa đề của tài liệu phải được xác định bởi một trong số các lệnh sau:

\title..., \author... và có thể thêm và tuỳ chọn về ngày tháng với lệnh \date...

trước khi gọi lệnh \maketitle. Tham số \author có thể được cung cấp vớinhiều tên cách nhau bởi lệnh \and.

Bạn có thể tham khảo thêm ví dụ về các lệnh trên ở hình 1.2 ở trang 9.Một phần của lệnh chia đoạn đã được giải thích như ở trên, LATEX 2ε

cũng giới thiệu thêm 3 lệnh để sử dụng với tài liệu dạng book. Chúng sẽ rấthữu ích cho việc chia đoạn tài liệu cần in ấn của bạn. Các lệnh này dùng đểthay đổi tựa đề của các chương và việc đánh số trang sẽ làm việc theo yêucầu của bạn:

\frontmatter phải là lệnh đầu tiên ngay sau lệnh \begindocument. Nóchuyển việc đánh số trang sang kiểu La Mã. Thông thường, bạn nên sửdụng lệnh chia đoạn với dấu * phía sau (như là \chapter*Lời tựa)đối với lời tựa nhằm khiến cho LATEX không liệt kê chúng.

\mainmatter nằm ngay phía trước chương đầu tiên của quyển sách. Nóchuyển sang chế độ đánh số kiểu ả rập và khởi động lại bộ đếm sốtrang.

\appendix đánh dấu việc bắt đầu các chương thêm vào của tài liệu. Sau khilệnh này được gọi, các chương sẽ được đánh số bằng các kí tự.

\backmatter xuất hiện ngay trước phần cuối cùng của tài liệu như mục tàiliệu tham khảo và bảng chỉ mục. Trong các tài liệu chuẩn, bạn sẽ khôngthấy được tác dụng của nó một cách cụ thể.

2.8 Tham chiếu chéoTrong các quyển sách, bảng báo cáo, bài báo, ta thường thấy rất nhiều thamchiếu chéo đến các hình ảnh, biểu bảng và các đoạn văn bản đặc biệt. LATEXcung cấp các lệnh sau hỗ trợ cho việc tham chiếu chéo:

\labeltên nhãn, \reftên nhãn và \pagereftên nhãn

với marker là một tên gọi được chỉ định bởi người soạn thảo. LATEX thay thế

38 Soạn thảo văn bản

\ref bởi số thứ tự của các mục, mục nhỏ, hình, biểu bảng hay các định lýtương ứng với lệnh \label. Lệnh \pageref sẽ in ra số thứ tự của trang xuấthiện lệnh \label tương ứng.10 Đối với các mục thì số thứ tự của chúng sẽđược dùng để làm tham chiếu.

Một tham chiếu đến mục con\labelsec:con trông như: ‘‘xemmục~\refsec:con ởtrang~\pagerefsec:con.’’

Một tham chiếu đến mục con trông như:“xem mục 2.8 ở trang 38.”

2.9 Chú thích ở cuối trang

Việc chú thích ở cuối trang được thực hiện với lệnh:

\footnotenội dung cần chú thích

khi này, một lời chú thích sẽ được in ra ở cuối trang. Những lời chú thíchphải được đặt trong11 sau một từ hay một câu mà chúng tham chiếu đến.Các lời chú thích đối với một câu hay một đoạn của câu nên được đặt saudấu chấm hay dấu phẩy.12

Người dùng \LaTeX rất hay sử dụng chú thích\footnoteĐây là một chú thíchNgười dùng LATEX rất hay sử dụng chú thícha

aĐây là một chú thích

10Các lệnh này không biết đến đối tượng chúng tham chiếu đến. Lệnh \label chỉ lưulại số hiệu của việc đánh số cuối cùng.

11“đặt” là một trong những từ thông dụng trong tiếng Việt.12Lưu ý rằng những lời ghi chú cuối trang sẽ khíên cho người đọc mất đi sự chú ý đối

với phần văn bản đang đọc. Hơn nữa, mọi người thường hay tò mò đọc phần chú thíchphía dưới. Do đó, đôi khi ta có thể thêm vào những thông tin ở các phần chú thích ở cuốitrang và điều này rất hiệu quả!13

13Thông tin không cần phải nằm ngay những vị trí mà nó hướng đến!!!.

2.10 Các từ được nhấn mạnh 39

2.10 Các từ được nhấn mạnhNếu một văn bản được đánh bằng máy đánh chữ thì các từ quan trọngsẽ được nhấn mạnh bằng cách gạch dưới chúng.

\underlinenội dung

Còn trong các tài liệu đã được in ấn thì các từ sẽ được nhấn mạnh bằng cáchthay đổi định dạng của chúng thành in nghiêng. LATEX hỗ trợ việc này bằngcách cung cấp lệnh sau:

\emphnội dung

để nhấn mạnh phần nội dung. Lệnh này sẽ tác động đến tham số như thếnào là tuỳ thuộc vào ngữ cảnh:

\emphĐể nhấn mạnh một từtrong một đoạn văn bản đãđược nhấn mạnh thì \LaTeXsẽ sử dụng font chữ\emphbình thườngđể nhấn mạnh từ ấy.

Để nhấn mạnh một từ trong một đoạn vănbản đã được nhấn mạnh thì LATEX sẽ sử dụngfont chữ bình thường để nhấn mạnh từ ấy.

bạn cần thấy được sự khác biệt của việc yêu cầu LATEX nhấn mạnh mộttừ và việc yêu cầu LATEX sử dụng một font khác đối với từ đó:

\textitBạn cũng có thể\emphnhấn mạnh văn bảnkhi mà nó đã được chỉnh làin nghiêng,

\textsftrong font chữ dạng\emphsans-serif,

\texttthay kiểu\emphđánh máy.

Bạn cũng có thể nhấn mạnh văn bản khi mànó đã được chỉnh là in nghiêng, trong font

chữ dạng sans-serif, hay kiểu đánh máy.

2.11 Môi trườngĐể thuận tiện cho việc định dạng phần văn bản, LATEX đã định nghĩa sẵnmột số môi trường hỗ trợ cho ta. Để sử dụng, bạn cần phải nhập vào như

40 Soạn thảo văn bản

sau:

\beginenvironment văn bản \endenvironment

Với environment là tên của môi trường. Môi trường có thể đan xen vào nhaukhi mà thứ tự đan xen hợp lý còn được duy trì.

\beginaaa...\beginbbb...\endbbb...\endaaa

Trong phần này, bạn sẽ được giải thích về tất các các môi trường quan trọngtrong LATEX.

2.11.1 Các môi trường liệt kêVới LATEX, ta có các môi trường liệt kê sau: Môi trường itemize phù hợp với việc liệt kê những danh sách đơn giản. Môi trường enumerate được dùng để liệt kê các danh sách (các mục

được đánh số một cách tự động). Môi trường description được dùng khi cần mô tả các mục trong danhsách.

\flushleft\beginenumerate\item Bạn có thể kếthợp môi trường các danhsách theo ý mình:\beginitemize\item Nhưng đôi khi nótrôngkhông đẹp.\item[-] Với một dấu gạch.\enditemize\item Do đó, hãy nhớ rằng:\begindescription\item[Những điều ngớ ngẩn] sẽ trởnên hay khi chúng nằm trong mộtdanh sách\item[Những điều hay] có thể đượctrình bày một cách đẹpmắt thông qua các danh sách.\enddescription\endenumerate

1. Bạn có thể kết hợp môi trường cácdanh sách theo ý mình: Nhưng đôi khi nó trông không

đẹp.

- Với một dấu gạch.

2. Do đó, hãy nhớ rằng:

Những điều ngớ ngẩn sẽ trở nênhay khi chúng nằm trong mộtdanh sách

Những điều hay có thể được trìnhbày một cách đẹp mắt thôngqua các danh sách.

2.11 Môi trường 41

2.11.2 Canh trái, canh phải, và canh giữa

Môi trường flushleft và flushright canh trái hay canh phải đoạn văn.Ngoàira, môi trường center sẽ canh giữa cho đoạn văn bên trong bản được canhgiữa. Nếu bạn không đưa ra các kí hiệu xuống hàng (\\) thì LATEX sẽ tự độnglàm điều đó cho bạn.

\beginflushleftĐoạn văn bản này được\\canh trái. \LaTeX sẽ khôngcố gắng làmcho các hàng có cùng chiều dài.\endflushleft

Đoạn văn bản này đượccanh trái. LATEX sẽ không cố gắng làm chocác hàng có cùng chiều dài.

\beginflushrightĐoạn văn bản này được\\canh phải. \LaTeX sẽ khôngcố gắng làmcho các hàng có cùng chiều dài.\endflushright

Đoạn văn bản này đượccanh phải. LATEX sẽ không cố gắng làm cho

các hàng có cùng chiều dài.

\begincenterNằm ở tâm \\của trái đất.\endcenter

Nằm ở tâmcủa trái đất.

2.11.3 Các trích dẫn và các đoạn thơ

Môi trường quote rất hữu dụng khi soạn thảo các lời trích dẫn, các câu quantrọng hay các ví dụ.

42 Soạn thảo văn bản

Một quy luật quan trọngđể kiểm soát chiều dàicủa một hàng là:\beginquoteBình quân thì mỗi hàngcó không quá 66 kí tự.\endquoteĐây chính là lý do vì saomà các gói của \LaTeX cócác biên lớntheo mặc định và đây cũnglà lý do tại sao các báolại sử dụngcách in làm nhiều cột.

Một quy luật quan trọng để kiểm soát chiềudài của một hàng là:

Bình quân thì mỗi hàng cókhông quá 66 kí tự.

Đây chính là lý do vì sao mà các gói củaLATEX có các biên lớn theo mặc định và đâycũng là lý do tại sao các báo lại sử dụng cáchin làm nhiều cột.

Có hai môi trường khác có tính năng tương tự là: quotation và verse.Môi trường quotation rất hữu ích đối với các trích dẫn dài khoảng vài đoạnvăn bởi vì nó sẽ canh lề hàng đầu tiên của các đoạn. Ngoài ra, môi trườngverse thích hợp với việc soạn các bài thơ khi mà việc xuống hàng đóng mộtvai trò quan trọng. Việc xuống hàng sẽ được thực hiện với lệnh \\ ở cuốihàng và một hàng trắng ở cuối các đoạn thơ.

2.11 Môi trường 43

Lặng lẽ\beginflushleft\beginverseEm đếm thời gian trôi mãi\\Sao ngày cứ dài bất tận\\Sao đêm cứ mãimong lung\\Để em lạc mất\\Mất anh thật rồi.\\

Tỉnh giấc\\Trời bừng sáng bên em\\Cô đơn, lặng lẽ\\Em lại đếmthời gian trôi mãi\\Bao cuộc tình đến rồi đi\\Như cơn gió\\Nhưng có bao giờ em khóc được đâu\\Phải chăng nước mắt đã chônsâu tình cũ\\Phải chăng trong lòng\\Em chỉ khóc vì anh? \ldots\endverse\endflushleft\beginflushright

Đoàn Thị Ngọc Hà\endflushright

Lặng lẽ

Em đếm thời gian trôi mãiSao ngày cứ dài bất tậnSao đêm cứ mãi mong lungĐể em lạc mấtMất anh thật rồi.Tỉnh giấcTrời bừng sáng bên emCô đơn, lặng lẽEm lại đếm thời gian trôi mãiBao cuộc tình đến rồi điNhư cơn gióNhưng có bao giờ em khóc

được đâuPhải chăng nước mắt đã chôn

sâu tình cũPhải chăng trong lòngEm chỉ khóc vì anh? . . .

Đoàn Thị Ngọc Hà

2.11.4 In ấn đúng nguyên vănCác văn bản được soạn thảo trong cặp lệnh \beginverbatim và \endverbatimsẽ được in ấn trực tiếp ra máy in giống như những gì bạn đã nhập vào (baogồm cá việc xuống hàng, khoảng trắng mà không thông qua quá trình địnhdạng của LATEX).

Để thực hiện điều này bên trong một đoạn văn thì ta sử dụng lệnh sau:

\verb+nội dung+

Lệnh + là một ví dụ về kí tự giới hạn. Bạn có thể sử dụng các kí tự bất kỳtrừ các chữ cái, dấu * hay khoảng trắng. Có rất nhiều ví dụ của LATEX trongsách này được soạn với lệnh này.

44 Soạn thảo văn bản

Lệnh \verb|\ldots| \ldots\beginverbatim10 PRINT "HELLO WORLD ";20 GOTO 10\endverbatim

Lệnh \ldots . . .

10 PRINT "HELLO WORLD ";20 GOTO 10

\beginverbatim*phiên bản có dấu *ở phía sau của môi trường\eiverbatim nhấnmạnh khoảng trắng giữacác từ trong văn bản.\endverbatim*

phiênbảncódấu*ởphíasaucủamôitrường\eiverbatimnhấnmạnhkhoảngtrắnggiữacáctừtrongvănbản.

Lệnh \verb cũng có thể được sử dụng tương tự như trên

\verb*|như thế này :-) | nhưthếnày:-)

Môi trường verbatim và lệnh \verb không được sử dụng bên trong cáctham số của các lệnh khác.

2.11.5 Môi trường bảngMôi trường tabular có thể được sử dụng để soạn thảo các bảng đẹp mắt vớisự tuỳ biến với các đường kẻ đứng và đường kẻ dọc. LATEX sẽ xác định chiềurộng của các cột một cách tự động.

Tham số table spec của lệnh

\begintabular[pos]table spec

xác định định dạng của bảng. Nhập vào l đối với cột được canh lề bêntrái, r đối với cột được canh lề bên phải và c đối với cột cần canh giữa;

pđộ rộng đối với cột chứa văn bản được căn lề cả hai bên với các kí tự

xuống hàng vào độ rộng của cột được xác định trước; kí hiệu | có tác dụngmô tả các đường kẻ thẳng đứng.

Tham số pos xác định vị trí của bảng theo chiều dọc dựa vào đường kẻbao quanh phần văn bản. Bạn có thể nhập vào các giá trị t, b và c để xácđịnh việc sắp xếp bảng ở trên, ở cuối hay ở giữa trang.

2.11 Môi trường 45

Trong môi trường tabular, lệnh & được dùng để ngăn cách các cột, lệnh\\ bắt đầu một hàng mới và lệnh \hline dùng để vẽ một hàng ngang. Bạncó thể thêm vào các đường kẻ nhỏ bằng các lệnh như \clinej-i với i và jlà số cột mà đường kẻ đi qua.

\begintabular|r|l|\hline 7C0 & cơ số 16 \\3700 & cơ số 8 \\\cline2-2 11111000000& cơ số 2\\ \hline \hline1984 & số thập phân \\ \hline\endtabular

7C0 cơ số 163700 cơ số 8

11111000000 cơ số 2

1984 số thập phân

\begintabular|p4.7cm|\hlineĐoạn văn này sẽ đượcđóng khung lại. Hy vọngrằng bạn sẽthích tính năng này.\\ \hline\endtabular

Đoạn văn này sẽ được đóngkhung lại. Hy vọng rằng bạnsẽ thích tính năng này.

Kí tự phân cách cột có thể được xác định với lệnh @... . Lệnh này sẽxoá khoảng cách nội giữa các cột và thay vào đó là kí tự giữa dấu ngoặc dobạn chỉ định. Dưới đây là một ứng dụng phổ biến của lệnh này trong việcsắp thẳng hàng các số nguyên. Một ứng dụng khác của lệnh này là dùng đểkẻ phần đầu của bảng với kí tự @ .

\begintabular@ l @\hlinekhông có khoảng cách trên đầu\\ \hline\endtabular

không có khoảng cách trên đầu

\begintabularl\hlinecó khoảng trắng ở hai đầu\\\hline\endtabular

có khoảng trắng ở hai đầu

46 Soạn thảo văn bản

Hiện nay, ta không có công cụ nào sẵn có hỗ trợ cho việc sắp thẳng hàngcác cột lưu các số thập phân,14 nhưng chúng ta vẫn có thể sắp thẳng hàngbằng cách dùng 2 cột: một cột được canh lề bên phải gồm các số nguyên vàmột cột được canh lề bên trái chứa số thập phân. Lệnh \@. sẽ được dùngđể thay đổi dấu phân cách giữa các cột thành dấu “.”. Đừng quên thay thế cácdấu chấm thập phân trong số liệu của bạn thành kí hiệu cách cột (&). Bạn cóthể dùng thêm một cột để xuất tựa đề bằng cách sử dụng lệnh\multicolumn.

\begintabularc r @. lCác biểu thức đối với số$\pi$ & \multicolumn2cValue\\ \hline $\pi$ & 3&1416\\ $\pi^\pi$& 36&46 \\$(\pi^\pi)^\pi$& 80662&7\\\endtabular

Các biểu thức đối với số π Valueπ 3.1416ππ 36.46

(ππ)π 80662.7

\begintabular|c|c|\hline \multicolumn2|c|Nguyễn \\\hline Tân & Khoa! \\\hline\endtabular

NguyễnTân Khoa!

Nội dung soạn thảo với môi trường tabular luôn nằm trên một trangvăn bản. Nếu bạn muốn soạn thảo các bảng dài, bạn có thể tham khảo thêmcác môi trường như supertabular và longtabular.

2.12 Tính linh động trong cách trình bàyNgày nay, đa số ấn phẩm đều chứa rất nhiều hình ảnh và biểu bảng. Đây làcác thành phần cần có sự xử lý đặc biệt bởi vì chúng không được phép bị cắtngang ở giữa. Một trong những biện pháp khắc phục là bắt đầu một trangmới mỗi khi gặp phải hình minh hoạ hay biểu bảng quá lớn để có thể trìnhbày gọn trong một trang. Giải pháp này sẽ làm cho tài liệu có nhiều trangcó nhiều khoảng trắng.

14nếu các gói “công cụ” đã được cài đặt trên máy của bạn thì hãy tham khảo thêm góidcolumn.

2.12 Tính linh động trong cách trình bày 47

Bảng 2.5: Các vị trí được phép.

Kí hiệu Vị trí đặt nội dung . . .

h ngay tại vị trí mà biểu bảng hay hình minh hoạ đượcsoạn thảo. Tuỳ chọn này phù hợp với các font chữ nhỏ.

t ở đầu của một trangb ở cuối của một trangp trên một trang đặc biệt chỉ chứa các dữ liệu linh động

như vậy.! không quan tâm đến các tham số bên tronga, ảnh hưởng

đến việc sắp xếp nó.

Lưu ý rằng pt và em là hai đơn vị của TEX. Bạn có thể đọc thêm ở bảng 5.5ở trang 110 để biết thêm chi tiết.

anhư là số biểu bảng hay hình minh họa linh động được phép có trên một trang.

Một giải pháp khác cho vấn đề này là cho phép hình minh hoạ hay biểubảng không nằm gọn trong trang hiện tại mà nó có thể nằm trong trang kếtiếp trong khi phần nội dung của trang kế tiếp sẽ tiếp tục được trình bàytrong trang hiện tại. LATEX cung cấp hai môi trường để thực hiện việc này,một dành cho các hình minh hoạ và một dành cho các biểu bảng. Để có thểsử dụng tốt hai môi trường trên, bạn cần hiểu được cơ chế làm việc bên trongcủa LATEX. Nếu bạn không nắm vững điều này thì đôi khi LATEX sẽ làm bạnthất vọng vì nó không đặt biểu bảng hay hình minh hoạ đúng vị trí mà bạnmong muốn.

Trước tiên, ta hãy xem qua các lệnh được LATEX hỗ trợ để thực hiện côngviệc này:

Tất cả các dữ liệu trong môi trường figure hay table đều được xem làdữ liệu linh động. Cả hai môi trường này đều hỗ trợ một số tuỳ chọn về vịtrí sắp đặt chúng trong tài liệu

\beginfigure[vị-trí ] hay \begintable[vị-trí ]

Tham số vị-trí báo cho LATEX biết vị trí có thể trình bày biểu bảng. Thamsố này được thiết lập bằng cách xây dựng một chuỗi định dạng từ các lệnhcó sẵn. Xem bảng 2.5 để biết thêm chi tiết.

Một biểu bảng có thể bắt đầu với hàng lệnh sau:

\begintable[!hbp]

48 Soạn thảo văn bản

Tham số placement specifier [!hbp] cho phép LATEX đặt biểu bảng ngay tạivị trí hiện thời (h) hay trên một trang đặc biệt chỉ dành cho các dữ liệu linhđộng như biểu bảng này (p) hay ở cuối trang (b) thậm chí trong trường hợpnó trông không đẹp mắt (!). Việc bố trí theo mặc định sẽ là [tbp].

LATEX sẽ đặt các biểu bảng hay hình minh hoạ mà nó gặp theo các thamsố lệnh do ta cung cấp. Khi mà biểu bảng hay hình minh họa không thể đượchiển thị ngay, nó sẽ được đưa vào hàng đợi15. Khi một trang mới bắt đầu,LATEX kiểm tra hàng đợi và cố gắng đưa biểu bảng hay hình minh hoạ phùhợp nhất vào. Nếu LATEX không thực hiện được thì biểu bảng hay hình minhhoạ trong hàng đợi ấy sẽ được xem như vừa mới xuất hiện trong văn bản16

(có nghĩa là nó sẽ bị đưa xuống cuối hàng đợi để chờ đợi được xử lý.) LATEXsẽ cố gắng để giữ đúng thứ tự xuất hiện của các biểu bảng và hình minh họa.Đây là lý do mà tại sao một hình minh hoạ hay biểu bảng bị đẩy xuống đếncuối tài liệu. Do đó:

Nếu LATEX không đặt các biểu bảng hay hình minh họa đúng vịtrí bạn mong muốn thì lỗi gây ra là do một biểu bảng hay hìnhminh hoạ nào đó đã gây nghẽn hàng đợi.

LATEX cho phép việc định vị trí chỉ với một tham số nhưng điều này sẽgây ra các vấn đề bởi vì nếu LATEX không thể đặt nó tại vị trí như yêu cầu thìnó sẽ gẫy nghẽn hàng đợi, ảnh hưởng đến các thành phần khác trong hàngđợi này. Cụ thể, bạn không nên sử dụng tham số [h]—tham số này hoạt độngkhông tốt và do đó, trong các phiên bản gần đây của LATEX, nó bị đổi thành[ht].

Chúng tôi đã giải thích cho các bạn về một số những khó khăn hay gặp; tuynhiên, vẫn còn một số điều cần lưu ý khi sử dụng hai mội trường này.

Lệnh

\captiontiêu đề

cho phép bạn định tiêu đề cho biểu bảng hay hình minh hoạ. Việc đánh sốthứ tự vào chuỗi “Figure” hay “Table” sẽ được LATEX tự động thực hiện.

Hai lệnh sau

\listoffigures và \listoftables

làm việc tương tự như lệnh \tableofcontents. Lệnh này cho phép xuất radanh sách các hình ảnh minh hoạ hay biểu bảng. Các danh sách này sẽ hiển

15Đây là hàng đợi dạng FIFO—‘first in first out’16trừ trường hợp ta sử dụng tham số là ‘h’ và tham số này sẽ không thực hiện được

2.13 Bảo vệ các lệnh “dễ vỡ” 49

thị cả phần tựa đề. Do đó, nếu bạn đặt các tựa đề quá dài thì bạn nên cungcấp thêm một tựa đề tuỳ chọn ngắn hơn đề LATEX có thể thay thế nó vàotrong danh sách. Để làm điều này, bạn chỉ cần đưa thêm tựa đề được thugọn vào trong dấu ngoặc vuông.

\caption[Ngắn gọn]Đây là một tựa đề dài ơi là dài, dài ...

Với các lệnh như \label và \ref, bạn có thể tham chiếu đến một biểubảng hay một hình minh hoạ.

Dưới đây là một ví dụ về việc vẽ một hình vuông và chèn vào đó một tàiliệu. Bạn có thể sử dụng nó nếu để dành khoảng trống cho các hình ảnh vàbạn sẽ dán vào khi tài liệu hoàn tất..

Hình~\refwhite là một ví dụ về ảnh.\beginfigure[!hbp]\makebox[\textwidth]\framebox[5cm]\rule0pt5cm\captionHình có kích thước 5x5~cm. \labelwhite\endfigure

Trong ví dụ trên, LATEX sẽ cố gắng đặt một hình ngay tại vị trí này17. NếuLATEX không thực hiện thành công thì nó sẽ cố gắng đặt hình này ở cuốitrang. Nếu LATEX vẫn không thực hiện được thì nó sẽ cố gắng đặt hình nàyở một trang nào phù hợp. Nếu trang này không thoả các việc dặt hình này,LATEX sẽ bắt đầu một trang mới và lại tiến hành lại các thao tác trên.

Trong một số tình huống thì bạn cần phải sử dụng lệnh sau

\clearpage hay là lệnh \cleardoublepage

nhằm yêu cầu LATEX phải xuất ra ngay tất cả các biểu bảng hay hình minhhoạ trong hàng đợi và bắt đầu một trang mới. Lệnh \cleardoublepage sẽđi đến một trang bên phải.

Bạn sẽ học cách để đưa các hình ảnh PostScript và tài liệu trong cácchương sau.

2.13 Bảo vệ các lệnh “dễ vỡ”Văn bản cung cấp các tham số cho các lệnh như \caption hay \section cóthể xuất hiện nhiều lần trong tài liệu (e.g trong phần mục lục cũng như trongphần nội dung văn bản). Một số lệnh sẽ không thực hiện được khi được sửdụng làm tham số cho các lệnh như \section. Các lệnh này gọi là các lệnh

17giả sử như hàng đợi đang rỗng

50 Soạn thảo văn bản

‘dễ vỡ’—ví dụ như lệnh \footnote hay \phantom. Các lệnh ‘dễ vỡ’ này cầnphải được bảo vệ. Bạn có thể bảo vệ chúng bằng cách đặt lệnh \protecttrước các lệnh này.

Lệnh \protect chỉ có hiệu lực với lệnh ngay bên phải của nó. Các lệnh\protect thừa ra cũng không gây ảnh hưởng gì.

\sectionTôi là một người ân cần\protect\footnotevà bảo vệ phần chú thích cuối trang

Chương 3

Soạn thảo các công thức toánhọc

Bây giờ bạn đã sẵn sàng! Bạn đã có những kiến thức cơ bản về các thành phầntrong một tài liệu và cách soạn thảo một tài liệu cơ bản với LATEX. Trong chươngnày, chúng ta sẽ tiềm hiểu về tính năng mạnh nhất của LATEX: soạn thảo các

công thức toán học. Tuy nhiên, chương này chỉ cung cấp cho bạn những kiếnthức cơ bản nhất. Đối với một số người dùng thì những kiến thức ở đây sẽ khôngđủ để soạn thảo các công thức toán phức tạp nhưng đừng nản chí bởi vì bạn cóthể tham khảo thêm tài liệu về AMS-LATEX

1.

3.1 Tổng quanTrong LATEX có một chế độ đặc biệt để soạn thảo các công thức toán học.Các công thức toán này có thể được đưa vào ngay trong môi trường vănbản hay ta có thể tách rời chúng khỏi các đoạn văn. Các văn bản liên quanđến toán học có thể được soạn thảo ở giữa dấu \( và \) hay $ và $, hay\beginmath và \endmath.

Cộng $a$ bình phươngvới $b$ bình phươngđược $c$ bình phương. Tacó thể viết dưới dạngcông thức là: $c^2 = a^2+b^2$

Cộng a bình phương với b bình phương đượcc bình phương. Ta có thể viết dưới dạng côngthức là: c2 = a2 + b2

1The American Mathematical Society đã đưa ra những phần mở rộng rất mạnh choLATEX. Rất nhiều ví dụ trong phần này sử dụng đến các phần mở rộng đó. Tất cả các phầnmở rộng này đều được cung cấp kèm với các phiên bản TEX. Nếu bạn chưa có thì có thểtải về ở địa CTAN:/tex-archive/macros/latex/required/amslatex.

52 Soạn thảo các công thức toán học

\TeX được phát âm là\(\tau\epsilon\chi\).\\[6pt]100~m$^3$ nước.\\[6pt]Tình yêu xuất phát từ\beginmath\heartsuit\endmath.

TEX được phát âm là τεχ.

100 m3 nước.

Tình yêu xuất phát từ ♥.

Đối với các phương trình hay công thức lớn, có thể bạn muốn đặt nótách rời khỏi đoạn văn. Tuy nhiên, người ta thường hiển thị nó ngay trongđoạn văn thay vì tách đoạn văn ra. Để thực hiện được điều này, bạn cóthể đặt chúng giữa hai dấu \[ và \] hay giữa \begindisplaymath và\enddisplaymath.

Cộng $a$ bình phương với$b$ bình phương được $c$bình phương. Tacó thể viết lại dưới dạngcông thức là:\begindisplaymathc^2=a^2+b^2\enddisplaymathHay ta có thể viết: \[c=a+b\]

Cộng a bình phương với b bình phương đượcc bình phương. Ta có thể viết lại dưới dạngcông thức là:

c2 = a2 + b2

Hay ta có thể viết:

c = a + b

Môi trường equation sẽ giúp bạn liệt kê các phương trình. Ngoài ra, đểđánh số các phương trình để có thể đặt tham chiếu đến phương trình đó vớilệnh \ref hay \eqref, bạn có thể sử dụng lệnh \label.

\beginequation \labeleq:eps\epsilon > 0\endequationTừ bất phương trình (\refeq:eps),chúng ta có thể suy ra rằng\ldots Đồng thời từ\eqrefeq:epschúng ta suy ra \ldots

ε > 0 (3.1)

Từ bất phương trình (3.1), chúng ta có thểsuy ra rằng . . . Đồng thời từ (3.1) chúng tasuy ra . . .

Bạn cần phải chú ý đến sự khác nhau về kết quả xuất ra màn hình củamột công thức trong chế độ soạn thảo toán và một công thức trong chế độhiển thị (displaymath) .

3.1 Tổng quan 53

$\lim_n \to \infty\sum_k=1^n \frac1k^2= \frac\pi^26$

limn→∞

∑nk=1

1

k2 = π2

6

\begindisplaymath\lim_n \to \infty\sum_k=1^n \frac1k^2= \frac\pi^26\enddisplaymath

limn→∞

n∑

k=1

1

k2=

π2

6

Bạn sẽ thấy rằng có nhiều sự khác biệt giữa chế độ soạn thảo toán họcvà chế độ soạn thảo văn bản. Dưới đây là một số thuộc tính cơ bản của môitrường toán học:

1. Các khoảng trắng và ký tự xuống hàng không có ý nghĩa quan trọng:hầu hết các khoảng trắng đều bắt nguồn từ logic của biểu thức toánhọc hay được xác định từ các lệnh như: \, , \quad hay \qquad.

2. Không được phép có các hàng trắng. Mỗi công thức sẽ nằm trên mộtđoạn.

3. Mỗi kí tự đều được xem là tên của biến. Nếu bạn muốn soạn thảo bảnthông thường bên trong một công thức, bạn phải sử dụng lệnh sau\textrm... (xem thêm phần 3.7 ở trang 62).

\beginequation\forall x \in \mathbfR:\qquad x^2 \geq 0\endequation

∀x ∈ R : x2 ≥ 0 (3.2)

\beginequationx^2 \geq 0\qquad\textrmvới mọi x\in\mathbfR\endequation

x2 ≥ 0 với mọi x ∈ R (3.3)

Các nhà toán học thường đòi hỏi nghiêm ngặt về việc dùng đúng các kíhiệu. Do đó, việc sử dụng quy ước về việc ‘in đậm’, thông qua việc sử dụng\mathbb từ gói amsfonts hay amssymb.

\begindisplaymathx^2 \geq 0\qquad \textrmvới mọi x\in\mathbbR\enddisplaymath

x2 ≥ 0 với mọi x ∈ R

54 Soạn thảo các công thức toán học

3.2 Gộp nhóm các công thứcHầu hết các lệnh soạn thảo công thức toán chỉ có tác dụng đối với kí tự kếtiếp do đó trong trường hợp bạn muốn nó có tác dụng đối với nhiều kí tự,bạn có thể nhóm chúng trong dấu ngoặc: ....

\beginequationa^x+y \neq a^x+y\endequation

ax + y 6= ax+y (3.4)

3.3 Xây dựng khối các công thức toán họcMục này sẽ giới thiệu các công thức quan trọng được sử dụng trong soạnthảo các công thức toán. Hãy tham khảo thêm mục 3.10 ở trang 66 để biếtthêm chi tiết về danh mục các lệnh hỗ trợ soạn thảo công thức toán học.

Các chữ cái Hy lạp thường được nhập vào như sau: \alpha, \beta,\gamma, . . . , còn các chữ cái viết hoa thì được nhập như sau: \Gamma, \Delta,. . . 2

$\lambda,\xi,\pi,\mu,\Phi,\Omega$ λ, ξ, π, µ,Φ,Ω

Số mũ và chỉ số được nhập vào bằng cách sử dụng các kí tự sau: ^ và _.

$a_1$ \qquad $x^2$ \qquad$e^-\alpha t$ \qquad$a^3_ij$\\$e^x^2 \neq e^x^2$

a1 x2 e−αt a3ij

ex2 6= ex2

Dấu căn bậc hai được nhập vào thông qua lệnh \sqrt. Đối với dấu cănbậc n thì ta có thể nhập vào như sau: \sqrt[n]. Kích thước của dấu căn sẽđược xác định bởi LATEX. Trong trường hợp bạn chỉ muốn hiển thị kí hiệukhai căn (không có đường kẻ trên đầu), bạn có thể sử dụng lệnh: \surd.

$\sqrtx$ \qquad$\sqrt x^2+\sqrty $\qquad $\sqrt[3]2$\\[3pt]$\surd[x^2 + y^2]$

√x

√x2 +

√y 3

√2

√[x2 + y2]

2Không có kí hiệu Alpha viết hoa trong LATEX2ε bởi vì nó trông giống như chữ A ởdạng font roman. Khi việc định nghĩa các kí kiệu mới hoàn tất thì mọi việc sẽ thay đổi.

3.3 Xây dựng khối các công thức toán học 55

Lệnh \overline và \underline sẽ trực tiếp tạo ra các hàng ngang phíatrên hay phía dưới công thức.

$\overlinea+b$ a + b

Lệnh \overbrace và \underbrace sẽ tạo ra những dấu ngoặc dài nằmdưới hay nằm trên biểu thức toán học.

$\underbrace a+b+\cdots+z _26$a + b + · · ·+ z︸ ︷︷ ︸

26

Để thêm vào các dấu mũ vào trong công thức toán như dấu mũi tên nhỏhay dấu ngã, bạn cần sử dụng các lệnh trong bảng 3.1 ở trang 66. Để thựchiện việc đưa vào các dấu mũ trên nhiều kí tự, bạn có thể sử dụng lệnh sau:\widetilde và \widehat. Dấu ’ sẽ xuất ra dấu phẩy phía trên.

\begindisplaymathy=x^2\qquad y’=2x\qquad y’’=2\enddisplaymath

y = x2 y′ = 2x y′′ = 2

Các vectors có thể được soạn thảo bằng cách đặt thêm một dấu mũi tênnhỏ ở phía trên của biến. Lệnh \vec sẽ đảm nhiệm việc này. Ngoài ra, lệnh\overrightarrow và \overleftarrow sẽ hỗ trợ bạn soạn thảo các vector từmột điểm A đến điểm B.

\begindisplaymath\vec a\quad\overrightarrowAB\enddisplaymath

~a−−→AB

Thông thường thì bạn sẽ không soạn thảo một cách trực tiếp dấu chấmthay cho dấu nhân. Tuy nhiên, đôi khi ta cũng nên viết vào để tránh làm rốimắt người đọc. Khi này, bạn nên sử dụng lệnh \cdot.

\begindisplaymathv = \sigma_1 \cdot \sigma_2

\tau_1 \cdot \tau_2\enddisplaymath

v = σ1 · σ2τ1 · τ2

Tên của các hàm như hàm log thường được soạn thảo ở dạng font thẳngđứng chứ không phải dạng in nghiêng như định dạng của các biến. LATEXcung cấp một số lệnh để soạn thảo các hàm phổ biến như:

56 Soạn thảo các công thức toán học

\arccos \cos \csc \exp \ker \limsup \min\arcsin \cosh \deg \gcd \lg \ln \Pr\arctan \cot \det \hom \lim \log \sec\arg \coth \dim \inf \liminf \max \sin\sinh \sup \tan \tanh

\[\lim_x \rightarrow 0\frac\sin xx=1\]

limx→0

sin x

x= 1

Để soạn thảo hàm đồng dư, ta có thể sử dụng hai lệnh sau: \bmod đối vớitoán tử nhị phân như “a mod b” và \pmod đối với các biểu thức như “x ≡ a(mod b)”.

$a\bmod b$\\$x\equiv a \pmodb$

a mod b

x ≡ a (mod b)

Để soạn thảo phân số, ta sử dụng lệnh sau: \frac.......Thông thường thì người ta thích nhập vào dạng 1/2 bởi vì nó sẽ trông

đẹp hơn đối với tài liệu chỉ có một ít phân số.

$1\frac12$~tiếng\begindisplaymath\frac x^2 k+1 \qquadx^ \frac2k+1 \qquadx^ 1/2 \enddisplaymath

112

tiếng

x2

k + 1x

2

k+1 x1/2

Để soạn thảo các hệ số của nhị thức hay các cấu trúc tương tự, bạn cóthể sử dụng lệnh \binom từ gói amsmath.

\begindisplaymath\binomnk\qquad\mathrmC_n^k\enddisplaymath

(n

k

)Ck

n

Đối với các quan hệ nhị phân thì việc sử dụng các kí hiệu chồng lên nhautỏ ra rất hiệu quả. Lệnh \stackrel đặt kí hiệu cho trước viết lên phía trênkí hiệu thứ hai.

3.3 Xây dựng khối các công thức toán học 57

\begindisplaymath\int f_N(x) \stackrel!= 1\enddisplaymath

∫fN (x)

!= 1

Kí hiệu LệnhTích phân \int

Tổng \sumTích \prod

Các cận dưới và cận trên được soạn thảo với lệnh ^ và _ giống như việcsoạn thảo các chỉ số.3

\begindisplaymath\sum_i=1^n \qquad\int_0^\frac\pi2 \qquad\prod_\epsilon\enddisplaymath

n∑

i=1

∫ π

2

0

ε

Gói amsmath cũng cung cấp hai công cụ để tăng khả năng điều khiển việcnhập các biểu thức có hệ thống chỉ số phức tạp là \substack và môi trườngsubarray.

\begindisplaymath\sum_\substack0<i<n \\ 1<j<m

P(i,j) =\sum_\beginsubarrayl i\in I\\

1<j<m\endsubarray Q(i,j)

\enddisplaymath

0<i<n1<j<m

P (i, j) =∑

i∈I1<j<m

Q(i, j)

Ngoài ra, TEX còn cung cấp các dạng kí hiệu khác cho dấu ngoặc và cáckí hiệu giới hạn khác như là: [ 〈 ‖ l).

Dấu ngoặc tròn hay ngoặc vuông có thể được nhập vào với các phím thíchhợp. Đối với dấu ngoặc móc (), ta sử dụng lệnh \. Còn các kí hiệu giới hạnkhác đều phải sử dụng lệnh (như là \updownarrow). Hãy tham khảo thêmbảng 3.8 ở trang 70 để biết thêm về danh sách các kí hiệu giới hạn có sẵn.

\begindisplaymatha,b,c\neq\a,b,c\\enddisplaymath

a, b, c 6= a, b, c

3Đối với AMS-LATEX, ta có thể soạn thảo các chỉ số dài nhiều dòng.

58 Soạn thảo các công thức toán học

Lệnh \left và \right sẽ tự động xác định kích thước của dấu ngoặcsao cho phù hợp với kích thước của biểu thức. Lưu ý rằng các lệnh \leftvà \right phải đi thành từng cặp (có nghĩa là sau khi mở ngoặc thì bạnphải đóng ngoặc cho phù hợp). Trong tình huống bạn không muốn dấu đóngngoặc phía bên phải thì bạn có thể dùng lệnh \right. để đóng ngoặc nhưngkhông hiển thị kí hiệu đóng ngoặc.

\begindisplaymath1 + \left( \frac1 1-x^2

\right) ^3\enddisplaymath

1 +

(1

1− x2

)3

Tuy nhiên, trong một số tình huống soạn thảo, bạn sẽ cần phải tự xácđịnh kích thước của các dấu ngoặc. Điều này được thực hiện bởi các lệnh\big, \Big, \bigg và \Bigg như là một tiền tố của các lệnh soạn thảo dấungoặc.4

$\Big( (x+1) (x-1) \Big) ^2$\\$\big(\Big(\bigg(\Bigg($\quad$\big\\Big\\bigg\\Bigg\$\quad$\big\|\Big\|\bigg\|\Bigg\|$

((x + 1)(x− 1)

)2

((((

∥∥∥∥∥∥∥∥∥

∥∥∥∥∥

Để thêm dấu ba chấm vào một công thức, bạn có thể sử dụng nhiềulệnh khác nhau. Trong đó, lệnh \ldots sẽ xuất ra các dấu chấm nằm sát phíadưới của hàng; lệnh \cdots sẽ xuất chúng ra ở giữa hàng; lệnh \vdots sẽxuất chúng theo chiều dọc và lệnh \ddots sẽ xuất chúng theo hướng đườngchéo.. Hãy tham khảo thêm các ví dụ trong mục 3.5 để biết thêm chi tiết.

\begindisplaymathx_1,\ldots,x_n \qquadx_1+\cdots+x_n\enddisplaymath

x1, . . . , xn x1 + · · · + xn

3.4 Các khoảng trắng trong công thức toánNếu việc tự động sắp xếp các khoảng trắng trong công thức của TEX khôngđáp ứng đúng yêu cầu định dạng của bạn, bạn có thể thay đổi chúng bằng

4Các lệnh này có thể hoạt động không như dự đinh khi mà các lệnh thay đổi kích thướckhác như 11pt hay 12pt đã được gọi. Trong tình huống này, bạn có thể sử dụng gói lệnhexscale hay amsmath để khắc phục.

3.4 Các khoảng trắng trong công thức toán 59

cách thêm vào các lệnh xử lý khoảng trắng đặc biệt. Bảng dưới đây liệt kêthông tin về các lệnh qui định khoảng trắng trong công thức toán.

Lệnh Kích thước

\,→ ←

\:→ ←

\;→ ←

\ → ←\qquad

→ ←

\quadKích thước sẽ tương ứng với chữM trong font chữ hiện tại

Lệnh \! sẽ tạo ra khoảng trắng rất phù hợp trước dấu ‘-’ đối với các sốâm.

\newcommand\ud\mathrmd\begindisplaymath\int\!\!\!\int_D g(x,y)\, \ud x\, \ud y

\enddisplaymaththay vì\begindisplaymath\int\int_D g(x,y)\ud x \ud y\enddisplaymath

∫∫

Dg(x, y) dxdy

thay vì ∫ ∫

Dg(x, y)dxdy

Lưu ý rằng kí tự ‘d’ trong công thức liên quan đến đạo hàm thì được địnhdạng ở kiểu roman.AMS-LATEX còn cung cấp thêm một phương pháp khác để tinh chỉnh các

khoảng cách giữa các kí hiệu tích phân là \iint, \iiint và \idotsint. Khibạn sử dụng gói amsmath thì bạn có thể soạn thảo như sau:

\newcommand\ud\mathrmd\begindisplaymath\iint_D \, \ud x \, \ud y\enddisplaymath

∫∫

Ddxdy

Bạn có thể tham khảo thêm tài liệu testmath.tex (được cung cấp chúngvới gói amsmath do AMS-LATEX cung cấp) hay chương 8 trong The LATEX

Companion [3]để biết thêm chi tiết.

60 Soạn thảo các công thức toán học

3.5 Gióng theo cộtMôi trường array sẽ cung cấp cho bạn khả năng soạn thảo các mảng. Môitrường này làm việc tương tự như môi trường bảng. Lệnh \\ được dùng đểngắt hàng.

\begindisplaymath\mathbfX =\left( \beginarraycccx_11 & x_12 & \ldots \\x_21 & x_22 & \ldots \\\vdots & \vdots & \ddots\endarray \right)\enddisplaymath

X =

x11 x12 . . .

x21 x22 . . ....

.... . .

Môi trường này cũng có thể được dùng để soạn thảo các biểu thức chỉgồm một dấu ngoặc lớn bên trái, không có dấu đóng ngoặc bên phải nhờ vàolệnh \right. .

\begindisplaymathy = \left\ \beginarraylla & \textrmnếu $d>c$\\b+x & \textrmnếu đi chơi vàobuổi sáng\\

l & \textrmcả ngày\endarray \right.

\enddisplaymath

y =

a nếu d > c

b + x nếu đi chơi vào buổi sángl cả ngày

Các lệnh vẽ hàng ngang, hàng dọc trong môi trường tabular cũng được sửdụng trong môi trường này.

\begindisplaymath\left(\beginarrayc|c1 & 2 \\

\hline3 & 4\endarray\right)\enddisplaymath

(1 2

3 4

)

Đối với các công thức nhiều hàng (như là hệ phương trình), bạn có thểsử dụng môi trường eqarray và eqnarray* thay cho môi trường equation.Trong môi trường eqarray thì mỗi hàng (tương ứng là một phương trình)

3.5 Gióng theo cột 61

đều được đánh số. Tuy nhiên, môi trường eqarray* sẽ không đánh số cácphương trình.

Môi trường eqnarray và eqnarray* hoạt động tương tự như một bảnggồm 3 cột với định dạng là rcl, trong đó, cột ở giữa có thể được dùng đểxuất dấu bằng “=”. Lệnh \\ có tác dụng xuống hàng.

\begineqnarrayf(x) & = & \cos x \\f’(x) & = & -\sin x \\\int_0^x f(y)dy &= & \sin x

\endeqnarray

f(x) = cos x (3.5)

f ′(x) = − sin x (3.6)∫ x

0

f(y)dy = sin x (3.7)

Nếu chú ý bạn sẽ thấy rằng khoảng cách giữa hai vế với dấu “=” là khá lớn.Ta có thể giảm khoảng cách này xuống với lệnh \setlength\arraycolsep2pt.

Các phương trình dài sẽ không được tự động chia ra làm các đoạnnhỏ. Người soạn thảo phải xác định vị trí xuống hàng và chúng phải đượcthụt vào bao nhiêu. Dưới đây là hai phương pháp để thực hiện điều này:

\setlength\arraycolsep2pt\begineqnarray\sin x & = & x -\fracx^33!

+ \fracx^55!-\nonumber \\

& & -\fracx^77!+\cdots\endeqnarray

sin x = x− x3

3!+

x5

5!−

− x7

7!+ · · · (3.8)

\begineqnarray\lefteqn \cos x = 1

-\fracx^22! + \nonumber\\

& & +\fracx^44!-\fracx^66!+\cdots

\endeqnarray

cos x = 1− x2

2!+

+x4

4!− x6

6!+ · · · (3.9)

Lệnh \nonumber yêu cầu LATEX không đánh số phương trình.Với các phương pháp này, ta có thể soạn thảo các phương trình được

gióng theo cột. Ngoài ra, gói amsmath cũng cung cấp một tập các lệnh hiệuquả để thực hiện việc này5.

5Hãy xem thêm thông tin chi tiết về các môi trường align, flalign, gather, multiline và

62 Soạn thảo các công thức toán học

3.6 Các khoảng trống thay cho phần văn bảnChúng ta không thể thấy các đoạn văn bản được định dạng là phantom tuynhiên chúng vẫn tồn tại trong tưởng tượng đối với người đọc. Chúng ta cóthể dựa vào đây để có được một số thủ thuật soạn thảo rất thú vị.

Khi chúng ta soạn thảo các chỉ số trên và dưới với các lệnh như ^ và _,chúng ta có đã được kết quả rất đẹp mắt nhưng đôi khi chúng ta muốn bổsung thêm một ít để có được kết quả tốt nhất. Lệnh \phantom là một lệnhrất hiệu quả trong việc cải thiện kết quả trình bày của các công thức. Lệnhnày có chức năng là dành ra một số khoảng trắng theo yêu cầu.

\begindisplaymath^12_\phantom16\textrmC\qquad \textrmso với \qquad^12_6\textrmC\enddisplaymath

126C so với 12

6 C

\begindisplaymath\Gamma_ij^\phantomijk \qquad\textrmso với \qquad\Gamma_ij^k\enddisplaymath

Γ kij so với Γk

ij

3.7 Kích thước của các font chữ hỗ trợ soạnthảo tài liệu Toán học

Trong chế độ soạn thảo công thức toán học, TEX sẽ tự động chọn kích thướccủa font chữ tuỳ thuộc vào ngữ cảnh. Ví dụ như đối với các chỉ số trên haychỉ số dưới thì LATEX sẽ tự động soạn thảo với kiểu chữ nhỏ hơn. Khi bạnmuốn soạn thảo một phương trình ở kiểu chữ roman thì bạn không nên dùnglệnh \textrm bởi vì lệnh này sẽ làm cho cơ chế thay đổi kích thước font chữmột cách tự động cho phù hợp với ngữ cảnh của LATEX không làm việc bởivì lênh textrm sẽ tạm thời chuyển môi trường toán học hiện tại sang môitrường soạn thảo văn bản. Bạn cần lưu ý rằng lệnh \mathrm sẽ chỉ làm việctốt với những phần văn bản ngắn. Lệnh \mathrm sẽ không có tác dụng đốivới các khoảng trắng và các kí tự có dấu.6

split6Gói amsmath của AMS-LATEX cho phép lệnh \textrm làm việc với văn bản đã được

thay đổi kích thước.

3.8 Định lý, định luật, . . . 63

\beginequation 2^\textrmnd\quad 2^\mathrmnd\endequation

2nd 2nd (3.10)

Đôi khi bạn cần yêu cầu LATEX thay đổi kích thước font chữ cho phù hợp.Trong chế độ soạn thảo tài liệu Toán học, bạn có thể sử dụng 4 lệnh sau:

\displaystyle (123), \textstyle (123), \scriptstyle (123) and\scriptscriptstyle (123).

Việc thay đổi kiểu định dạng cũng sẽ ảnh hưởng đến cách hiển thị củacác làm giới hạn.

\begindisplaymath\mathop\mathrmcorr(X,Y)=\frac\displaystyle\sum_i=1^n(x_i-\overline x)(y_i-\overline y)

\displaystyle\biggl[\sum_i=1^n(x_i-\overline x)^2

\sum_i=1^n(y_i-\overline y)^2\biggr]^1/2\enddisplaymath

corr(X,Y ) =

n∑

i=1

(xi − x)(yi − y)

[ n∑

i=1

(xi − x)2n∑

i=1

(yi − y)2]1/2

Đây là một trong các ví dụ cần phải sử dụng các dấu ngoặc lớn thay cho cácdấu ngoặc bình thường với lệnh \left[\right].

3.8 Định lý, định luật, . . .Khi soạn thảo các tài liệu Toán học, bạn sẽ cần phải soạn thảo các “bổ đề”,“định nghĩa”, “tiên đề” và các cấu trúc tương đương. LATEX sẽ hỗ trợ bạn vớilệnh sau:

\newtheoremname[counter]text[section]

Tham số name là một từ khoá ngắn để xác định “định lý”. Tham số textsẽ cho phép ta xác định tên gọi của “định lý” (đây là tên của định lý trongbản in).

Các tham số trong dấu ngoặc vuông là tuỳ chọn. Chúng được sử dụng đểxác định việc đánh số cho “định lý”. Tham số counter sẽ giúp xác định thamsố name của “định lý” đã được khai báo. Khi này “định lý” mới sẽ được đánh

64 Soạn thảo các công thức toán học

số theo cùng một chuỗi. Tham số section cho phép bạn xác định các xemmột “định lý” thuộc vào mục nào của tài liệu.

Sau khi gọi lệnh \newtheorem trong phần tựa đề của tài liệu, bạn có thểgọi tiếp các lệnh sau ở trong phần thân của tài liệu:

\beginname[text]Đây là một định lý rất thú vị\endname

Phần này chính là phần chi tiết của định lý. Dưới đây là một ví dụ cụ thể,nó sẽ giúp bạn hiểu được rõ hơn về môi trường định lý này.

% definitions for the document% preamble\newtheoremlawLaw\newtheoremjury[law]Jury%in the document\beginlaw \labellaw:boxXin chào các bạn!!!\endlaw\beginjury[Thứ 12]Có lẽ tôi đã gặp bạn. Hãy thamkhảo thêmphần~\reflaw:box\endjury\beginlawĐúng, đúng, đúng\endlaw

Law 1. Xin chào các bạn!!!

Jury 2 (Thứ 12). Có lẽ tôi đã gặp bạn. Hãytham khảo thêm phần 1

Law 3. Đúng, đúng, đúng

Định lý “Jury” sử dụng chung bộ đếm như định lý “Law”. Do đó, định lýnày sẽ được đánh số theo như chuỗi đánh số của định lý trong hệ thống cácđịnh lý như “Law”.

\flushleft\newtheoremmurMurphy[section]\beginmurNếu có hai hay nhiềucách hơn để làm mộtđiều gì đó và hơn nữa mộttrong các cách này cóthể gây ra các thảm hoạthì sẽ có một ngườinào đó sẵn lòng làm nó.\endmur

Murphy 3.8.1. Nếu có hai hay nhiều cáchhơn để làm một điều gì đó và hơn nữa mộttrong các cách này có thể gây ra các thảmhoạ thì sẽ có một người nào đó sẵn lòng làmnó.

3.9 Các ký hiệu in đậm 65

Trong ví dụ trên, định lý “Murphy” sẽ được đánh số theo mục hiện tại.Ngoài cách chọn tham số là section như trên, ta có thể chọn các tham sốkhác như chapter hay subsection.

3.9 Các ký hiệu in đậmTrong LATEX, việc soạn thảo các kí hiệu in đậm là tương đối khó khăn; có lẽđiều này là một trong những chủ ý của LATEX bởi vì những người soạn thảonghiệp dư rất dễ lâm vào tình trạng lạm dụng chức năng này. Lệnh thay đổifont chữ như \mathbf sẽ xuất ra các kí tự đậm; tuy nhiên lệnh này sẽ đổikiểu font chữ sang dạng roman (đứng) trong khi các kí hiệu toán học thườngđược viết nghiêng. Ngoài ra, ta còn có lệnh \boldmath nhưng lệnh này chỉcó tác dụng bên ngoài môi trường toán học. Nó cũng có tác dụng với các kíhiệu.

\begindisplaymath\mu, M \qquad \mathbfM \qquad\mbox\boldmath $\mu, M$\enddisplaymath

µ,M M µ, M

Nếu chú ý bạn sẽ thấy rằng dấu phẩy lại trở nên quá đậm.Gói amsbsy (có trong gói amsmath) cũng như gói bm trong bộ công cụ sẽ

hỗ trợ việc định dạng này với lệnh \boldsymbol.

\begindisplaymath\mu, M \qquad\boldsymbol\mu, \boldsymbolM\enddisplaymath

µ,M µ,M

66 Soạn thảo các công thức toán học

3.10 Danh sách các kí hiệu toán họcCác bảng sau đây trình bày tất cả các kí hiệu thông thường có thể truy cậpđược trong chế độ soạn thảo toán học. Để sử dụng các kí hiệu được liệt kê ởbảng 3.12–3.167, thì bạn cần phải đưa gói amssymb vào tài liệu ở phần tựađề của tài liệu và các font chữ AMS dành cho toán học phải được cài sẵntrên máy. Nếu gói AMS và các font chữ chưa được cài đặt thì bạn có thể tảivề ở địa chỉ CTAN:/tex-archive/macros/latex/required/amslatex. Bạncũng có thể tải về một danh sách chi tiết hơn về các kí hiệu tại địa chỉCTAN:info/symbols/comprehensive.

Bảng 3.1: Các dấu trọng âm trong chế độ soạn thảo toán học.

a \hata a \checka a \tildea a \acuteaa \gravea a \dota a \ddota a \breveaa \bara ~a \veca A \widehatA A \widetildeA

Bảng 3.2: Các chữ cái Hy Lạp viết thường.

α \alpha θ \theta o o υ \upsilonβ \beta ϑ \vartheta π \pi φ \phiγ \gamma ι \iota $ \varpi ϕ \varphiδ \delta κ \kappa ρ \rho χ \chiε \epsilon λ \lambda % \varrho ψ \psiε \varepsilon µ \mu σ \sigma ω \omegaζ \zeta ν \nu ς \varsigmaη \eta ξ \xi τ \tau

7các bảng sau được trích từ symbols.tex được soạn bởi David Carlisle và sau đó đượcthay đổi nhiều theo sự gợi ý của Josef Tkadlec.

3.10 Danh sách các kí hiệu toán học 67

Bảng 3.3: Các chữ cái Hy Lạp viết hoa.

Γ \Gamma Λ \Lambda Σ \Sigma Ψ \Psi∆ \Delta Ξ \Xi Υ \Upsilon Ω \OmegaΘ \Theta Π \Pi Φ \Phi

68 Soạn thảo các công thức toán học

Bảng 3.4: Quan hệ hai ngôi.

Bạn có thể có được các kí hiệu ngược lại tương ứng với các kí hiệu ở đâybằng cách thêm vào tiền tố \not trước lệnh tương ứng.

< < > > = =≤ \leq or \le ≥ \geq or \ge ≡ \equiv \ll \gg

.= \doteq

≺ \prec \succ ∼ \sim \preceq \succeq ' \simeq⊂ \subset ⊃ \supset ≈ \approx⊆ \subseteq ⊇ \supseteq ∼= \cong< \sqsubset a = \sqsupset a 1 \Join a

v \sqsubseteq w \sqsupseteq ./ \bowtie∈ \in 3 \ni , \owns ∝ \propto` \vdash a \dashv |= \models| \mid ‖ \parallel ⊥ \perp^ \smile _ \frown \asymp: : /∈ \notin 6= \neq or \ne

aSử dụng gói latexsym để sử dụng các kí hiệu này

3.10 Danh sách các kí hiệu toán học 69

Bảng 3.5: Các toán tử hai ngôi.

+ + − -± \pm ∓ \mp / \triangleleft· \cdot ÷ \div . \triangleright× \times \ \setminus ? \star∪ \cup ∩ \cap ∗ \astt \sqcup u \sqcap \circ∨ \vee , \lor ∧ \wedge , \land • \bullet⊕ \oplus \ominus \diamond \odot \oslash ] \uplus⊗ \otimes © \bigcirc q \amalg4 \bigtriangleup 5 \bigtriangledown † \dagger \lhd a \rhd a ‡ \ddagger \unlhd a \unrhd a o \wr

Bảng 3.6: Các toán tử lớn.∑

\sum⋃

\bigcup∨

\bigvee⊕

\bigoplus∏\prod

⋂\bigcap

∧\bigwedge

⊗\bigotimes∐

\coprod⊔

\bigsqcup⊙

\bigodot∫\int

∮\oint

⊎\biguplus

70 Soạn thảo các công thức toán học

Bảng 3.7: Các dấu mũi tên.

← \leftarrow or \gets ←− \longleftarrow ↑ \uparrow→ \rightarrow or \to −→ \longrightarrow ↓ \downarrow↔ \leftrightarrow ←→ \longleftrightarrow l \updownarrow⇐ \Leftarrow ⇐= \Longleftarrow ⇑ \Uparrow⇒ \Rightarrow =⇒ \Longrightarrow ⇓ \Downarrow⇔ \Leftrightarrow ⇐⇒ \Longleftrightarrow m \Updownarrow7→ \mapsto 7−→ \longmapsto \nearrow← \hookleftarrow → \hookrightarrow \searrow \leftharpoonup \rightharpoonup \swarrow \leftharpoondown \rightharpoondown \nwarrow \rightleftharpoons ⇐⇒ \iff (bigger spaces) ; \leadsto a

aSử dụng gói latexsym để sử dụng các kí hiệu này

Bảng 3.8: Các dấu ngoặc.

( ( ) ) ↑ \uparrow ⇑ \Uparrow[ [ or \lbrack ] ] or \rbrack ↓ \downarrow ⇓ \Downarrow \ or \lbrace \ or \rbrace l \updownarrow m \Updownarrow〈 \langle 〉 \rangle | | or \vert ‖ \| or \Vertb \lfloor c \rfloor d \lceil e \rceil/ / \ \backslash . (cả hai đều trống)

Bảng 3.9: Các dấu ngoặc lớn. \lgroup

\rgroup

\lmoustache

\rmoustache

\arrowvertww \Arrowvert

\bracevert

3.10 Danh sách các kí hiệu toán học 71

Bảng 3.10: Các kí hiệu khác.

. . . \dots · · · \cdots... \vdots

. . . \ddots~ \hbar ı \imath \jmath ` \ell< \Re = \Im ℵ \aleph ℘ \wp∀ \forall ∃ \exists 0 \mho a ∂ \partial′ ’ ′ \prime ∅ \emptyset ∞ \infty∇ \nabla 4 \triangle 2 \Box a 3 \Diamond a

⊥ \bot > \top ∠ \angle√

\surd♦ \diamondsuit ♥ \heartsuit ♣ \clubsuit ♠ \spadesuit¬ \neg or \lnot [ \flat \ \natural ] \sharp

aSử dụng gói latexsym để sử dụng các kí hiệu này.

Bảng 3.11: Các kí hiệu thông thường.

These symbols can also be used in text mode. \dag § \S © \copyright ® \textregistered \ddag ¶ \P £ \pounds % \%

Bảng 3.12: Các dấu ngoặc theo AMS.

p \ulcorner q \urcorner x \llcorner y \lrcorner| \lvert | \rvert ‖ \lVert ‖ \rVert

Bảng 3.13: Chữ cái Hy Lạp và Do Thái theo AMS.

z \digamma κ \varkappa i \beth k \daleth ג \gimel

72 Soạn thảo các công thức toán học

Bảng 3.14: Quan hệ hai ngôi theo AMS.

l \lessdot m \gtrdot + \doteqdot or \Doteq6 \leqslant > \geqslant : \risingdotseq0 \eqslantless 1 \eqslantgtr ; \fallingdotseq5 \leqq = \geqq P \eqcirc≪ \lll or \llless ≫ \ggg or \gggtr $ \circeq. \lesssim & \gtrsim , \triangleq/ \lessapprox ' \gtrapprox l \bumpeq≶ \lessgtr ≷ \gtrless m \BumpeqQ \lesseqgtr R \gtreqless ∼ \thicksim

S \lesseqqgtr T \gtreqqless ≈ \thickapprox

4 \preccurlyeq < \succcurlyeq u \approxeq2 \curlyeqprec 3 \curlyeqsucc v \backsim- \precsim % \succsim w \backsimeqw \precapprox v \succapprox \vDashj \subseteqq k \supseteqq \Vdashb \Subset c \Supset \Vvdash< \sqsubset = \sqsupset \backepsilon∴ \therefore ∵ \because ∝ \varproptop \shortmid q \shortparallel G \between` \smallsmile a \smallfrown t \pitchforkC \vartriangleleft B \vartriangleright J \blacktriangleleftE \trianglelefteq D \trianglerighteq I \blacktriangleright

3.10 Danh sách các kí hiệu toán học 73

Bảng 3.15: Các dấu mũi tên theo AMS.

L99 \dashleftarrow 99K \dashrightarrow ( \multimap⇔ \leftleftarrows ⇒ \rightrightarrows \upuparrows \leftrightarrows \rightleftarrows \downdownarrowsW \Lleftarrow V \Rrightarrow \upharpoonleft \twoheadleftarrow \twoheadrightarrow \upharpoonright \leftarrowtail \rightarrowtail \downharpoonleft \leftrightharpoons \rightleftharpoons \downharpoonright \Lsh \Rsh \rightsquigarrow" \looparrowleft # \looparrowright ! \leftrightsquigarrowx \curvearrowleft y \curvearrowright \circlearrowleft \circlearrowright

Bảng 3.16: Quan hệ phủ định hai ngôi và các dấu mũi tên theo AMS.

≮ \nless ≯ \ngtr & \varsubsetneqq \lneq \gneq ' \varsupsetneqq \nleq \ngeq " \nsubseteqq \nleqslant \ngeqslant # \nsupseteqq \lneqq \gneqq - \nmid \lvertneqq \gvertneqq ∦ \nparallel \nleqq \ngeqq . \nshortmid \lnsim \gnsim / \nshortparallel \lnapprox \gnapprox \nsim⊀ \nprec \nsucc \ncong \npreceq \nsucceq 0 \nvdash \precneqq \succneqq 2 \nvDash \precnsim \succnsim 1 \nVdash \precnapprox \succnapprox 3 \nVDash( \subsetneq ) \supsetneq 6 \ntriangleleft \varsubsetneq ! \varsupsetneq 7 \ntriangleright* \nsubseteq + \nsupseteq 5 \ntrianglelefteq$ \subsetneqq % \supsetneqq 4 \ntrianglerighteq

8 \nleftarrow 9 \nrightarrow = \nleftrightarrow: \nLeftarrow ; \nRightarrow < \nLeftrightarrow

74 Soạn thảo các công thức toán học

Bảng 3.17: Các toán tử nhị phận theo AMS.

u \dotplus \centerdot ᵀ \intercaln \ltimes o \rtimes > \divideontimesd \Cup or \doublecup e \Cap or \doublecap r \smallsetminusY \veebar Z \barwedge [ \doublebarwedge \boxplus \boxminus \circleddash \boxtimes \boxdot \circledcirch \leftthreetimes i \rightthreetimes ~ \circledastg \curlyvee f \curlywedge

Bảng 3.18: Các kí hiệu khác theo AMS.

~ \hbar \hslash k \Bbbk \square \blacksquare s \circledSM \vartriangle N \blacktriangle \complementO \triangledown H \blacktriangledown a \Game♦ \lozenge \blacklozenge F \bigstar∠ \angle ] \measuredangle ^ \sphericalangle \diagup \diagdown 8 \backprime@ \nexists ` \Finv ∅ \varnothingð \eth 0 \mho

Bảng 3.19: Các kiểu chữ cái trong toán.

Ví dụ Lệnh Gói lệnh cần dùng

ABCdef \mathrmABCdefABCdef \mathitABCdefABCdef \mathnormalABCdefABC \mathcalABC euscript với tuỳ chọn mathcalA BC \mathscrABC mathrsfsABCdef \mathfrakABCdef eufrakABC \mathbbABC amsfonts hay amssymb

Chương 4

Những tính năng đặc trưng củaLATEX

Khi nhập các tài liệu lớn lại với nhau, LATEX sẽ giúp đỡ bạn thông qua một sốtính năng mạnh như việc tạo bảng chỉ mục, quản lý các tài liệu tham khảo vàcác công việc khác. Để biết thêm chi tiết về các tính năng đặc trưng và khả năngmở rộng của LATEX, bạn có thể tham khảo thêm ở tài liệu LATEX Manual [1] vàThe LATEX Companion [3].

4.1 Đưa ảnh EPS vào tài liệuLATEX cung cấp những phương tiện cơ bản để làm việc với các phần có nộidung mang tính linh động như hình ảnh hay hình đồ thị thông qua hai môitrường là figure và table.

Ngoài ra, ta còn có một số cách khác để tạo ra các đồ thị chỉ đơn thuầnvới LATEX hay từ các gói mở rộng của LATEX. Tuy nhiên, đa số người dùngnhận xét rằng việc sử dụng các tính năng này là tương đối phức tạp, khókhăn và hơi khó hiểu. Do đó, chúng tôi quyết định không giải thích chi tiếtcác tính năng này trong phạm vi tài liệu ngắn ngọn này.

Bạn có thể tham khảo thêm ở The LATEX Companion [3] và LATEX Manu-al [1] để biết thêm chi tiết về chủ đề này.

Một cách tiếp cận khác đơn giản hơn là tạo ra các hình ảnh với các chươngtrình chuyên dụng1 sau đó đưa chúng vào tài liệu. Các gói của LATEX cungcấp rất nhiều biện pháp để thực hiện điều này. Tuy nhiên, trong khuông khổcủa tài liệu này, chúng tôi chỉ trình bày về việc sử dụng các hình vẽ dạngEncapsulated PostScript (EPS) bởi vì việc đưa các đối tượng này vào tài liệu

1XFig, CorelDraw!, Freehand, Gnupshot, . . .

76 Những tính năng đặc trưng của LATEX

là tương đối đơn giản. Để có thể sử dụng được các hình ảnh dạng EPS, bạncần phải có máy in hỗ trợ PostScript2 để xuất kết quả.

Một tập lệnh hỗ trợ việc đưa hình ảnh vào tài liệu làm việc khá tốt là góigraphicx được thiết kế bởi D. P. Carlisle. Đây là một phần của trọn bộ cácgói được gọi là “graphics”.3

2Một cách khác để xuất dạng PostScript là sử dụng phần mềm GhostScript tại địachỉ CTAN:/tex-archive/support/ghostscript. Người dùng Windows và OS/2 có thểcần phần mềm GSView.

3CTAN:/tex-archive/macros/latex/required/graphics

4.1 Đưa ảnh EPS vào tài liệu 77

Giả sử như bạn đang làm việc trên một hệ thống có sẵn máy in PostScriptvà gói graphicx, bạn có thể tiến hành theo các bước sau để có thể đưa hìnhảnh vào tài liệu:

1. Xuất kết quả trong các chương trình đồ hoạ ra dưới dạng EPS.4

2. Nạp gói graphicx trong phần tựa đề của tập tin dữ liệu vào như sau:

\usepackage[driver]graphicx

với driver là tên của chương trình dịch từ dạng dvi sang dạng postscript.Chương trình thường được sử dụng là dvips. Tên của driver là một đòihỏi bắt buộc bởi vì không có tiểu chuẩn về cách một hình ảnh đượcđưa vào trong TEX. Thông qua việc biết được tên của driver thì góigraphicx sẽ xác định cách để chèn thông tin về hình ảnh vào tâp tin.dvi để máy in có thể hiểu được và đưa tập tin .eps vào một cáchchính xác.

3. Gọi lệnh sau:

\includegraphics[key=value, . . . ]file

để đưa tập tin file vào tài liệu. Thông số tuỳ chọn của keys là mộtdanh sách được phân cách bởi dấu phẩy của các giá trị values. keys cóthể được sử dụng để thay đổi độ rộng, cao và sự xoay vòng của hìnhảnh. Bảng 4.1 sẽ liệt kê các khoá quan trọng.

Bảng 4.1: Tên của các khoá theo gói graphicx.

width co dãn hình ảnh theo chiều rộng yêu cầuheight co dãn hình ảnh theo chiều rộng yêu cầuangle xoay hình ảnh theo chiều kim đồng hồscale chỉnh tỷ lệ kích thước của hình ảnh

4Nếu chương trình của bạn không thể xuất dưới dạng EPS, bạn có thể thử cài đặtdriver của máy in PostScript (ví dụ như máy Apple LaserWriter) và in kết quả làm việcra tập tin với driver này. Thông thường thì tập tin này sẽ có định dạng là EPS. Lưu ýrằng một hình ảnh dạng EPS không được phép chứa nhiều hơn một trang. Một số drivercủa các máy in có thể được cấu hình trực tiếp để xuất ra dạng EPS.

Dưới đây là một ví dụ minh hoạ làm rõ tính năng trên

\beginfigure\begincenter\includegraphics[angle=90, width=0.5\textwidth]test\endcenter\endfigure

Ví dụ trên sẽ đưa vào tài liệu một tập tin có tên là test.eps. Đầu tiên, hìnhảnh sẽ được xoay một góc 90 độ theo chiều kim đồng hồ. Sau đó, nó sẽ đượctăng kích thước chiều rộng lên gấp 0.5 lần chiều rộng ban đầu. Tỷ lệ là 1.0bởi vì ta không chỉ định về chiều cao của hình ảnh. Chiều rộng và chiều caocó thể được xác định theo những kích thước tuyệt đối. Xem thêm bảng 5.5 ởtrang 110 để biết thêm chi tiết. Nếu bạn muốn đi sâu vào mục này, bạn nênđọc 2 tài liệu sau: [8] và \eps.

4.2 Tài liệu tham khảo

Bạn có thể tạo ra một danh sách các tài liệu tham khảo thông qua môi trườngthebibliography. Trong môi trường này, mỗi mục sẽ được bắt đầu như sau:

\bibitem[label]marker

Tham số marker được sử dụng để trích dẫn về sách, bài báo hay các bàiluận được sử dụng đến trong tài liệu.

\citemarker

Nếu bạn không sử dụng tuỳ chọn label, các mục từ sẽ được liệt kê mộtcách tự động. Tham số sau lệnh \beginthebibliography sẽ xác định cóbao nhiêu khoảng không được dành cho số hay nhãn. Trong ví dụ dưới đây,tham số 99 sẽ cho LATEX biết rằng không có mục nào trong danh sách các

79

tài liệu tham khảo được đánh số rộng hơn số 99.

Phần 1~\citepa cho rằng \ldots\beginthebibliography99\bibitempa H.~Partl:\emphGerman \TeX, TUGboat Quyển~9,phát hành lầne~1 (1988)\endthebibliography

Phần 1 [1] cho rằng . . .

Tài liệu thamkhảo

[1] H. Partl: German TEX, TUGboatQuyển 9, phát hành lầne 1 (1988)

80 Specialities

Đối với các dự án lớn, có lẽ bạn sẽ cần kiểm tra chương trình BibTEX.BibTEX được cung cấp kèm theo với hầu hết các phiên bản được phân phốicủa TEX. Nó cho phép bạn bảo quản cơ sở dữ liệu về tài liệu tham khảo vàđưa các tham chiếu tương ứng đến các tài liệu mà bạn muốn trích dẫn. Sựtrình bày trực quan của danh mục tài liệu tham khảo do BibTEX làm rađược dựa trên khái niệm định dạng tài liệu cho phép tạo danh mục tài liệutham khảo theo các cách thiết kế đã được thiết lập.

4.3 Tạo chỉ mụcĐối với các tài liệu hoàn chỉnh thì phần chỉ mục đóng một vai trò hết sứcquan trọng. Với LATEX và chương trình hỗ trợ việc tạo chỉ mục makeindex,5,việc tạo chỉ mục cho một tài liệu trở nên hết sức đơn giản. Phần này chỉgiới thiệu sơ qua những lệnh cơ bản hỗ trợ việc tạo các chỉ số. Để có đượcmột cái nhìn sâu sắc hơn, bạn có thể tham khảo thêm tài liệu The LATEX

Companion [3]. .Để kích hoạt tính năng tạo chỉ mục của LATEX, bạn phải nạp vào gói

makeidx trong phần tựa đề của tài liệu.

\usepackagemakeidx

đổng thời, bạn phải kích hoạt các lệnh tạo chỉ mục như sau:

\makeindex

Lệnh này cũng nằm trong phần tựa đề của tài liệu.

Nội dung của chỉ mục sẽ được xác định với lệnh:

\indexkey

Trong đó, tham số key là mục từ trong từ điển các chỉ mục. Bạn sẽ nhập vàolệnh \index... tại vị trí mà bạn muốn mục từ trong bảng chỉ mục sẽ trỏđến. Bảng 4.2 sẽ giải thích thêm về tham số key thông qua một vài ví dụ.

Khi tập tin dữ liệu vào được xử lý bởi LATEX, mỗi lệnh \index sẽ ghi mộtmục từ tương ứng cùng với số trang hiện tại vào danh sách các mục từ trongmột tập tin đặc biệt. Tập tin này sẽ có tên trùng với tập tin dữ liệu vào

5Trên các hệ thống không yêu cầu hỗ trợ các tập tin có tên dài hơn 8 kí tự, chươngtrình được gọi là makeidx.

4.4 Trang trí đầu đề của các trang 81

Bảng 4.2: Cú pháp của việc tạo chỉ mục.

Ví dụ Mục từ Chú thích\indexhello hello, 1 Một mục từ đơn thuần\indexhello!Peter Peter, 3 Mục từ con của mục từ ‘hello’\indexSam@\textslSam Sam, 2 Mục từ được định dạng\indexLin@\textbfLin Lin, 7 Giống như trên\indexJenny|textbf Jenny, 3 Định dạng số trang\indexJoe|textit Joe, 5 Giống như trên\indexeolienne@\’eolienne éolienne, 4 Điều khiển các dấu

nhưng khác ở phần mở rộng (.idx). Tiếp theo, tập tin .idx này lại được xửlý với chương trình makeindex.

makeindex filename

Chương trình makeindex sẽ tạo ra một danh sách các chỉ mục được sắpxếp trong tập tin có tên tương tự nhưng khác phần mở rộng (.ind). Nếuchương trình LATEX lại được gọi để xử lý tập tin dữ liệu vào ban đầu thì bảngchỉ mục đã được sắp xếp này sẽ được đưa vào tài liệu tại vị trí mà LATEX tìmthấy lệnh

\printindex

Gói showidx đi kèm với LATEX 2ε sẽ in ra tất cả các mục từ ở cột bên tráicủa phần văn bản. Điều này rất thuận lợi cho việc kiểm tra lại việc tạo cácchỉ mục.

4.4 Trang trí đầu đề của các trangGói fancyhdr6 được viết bởi Piet van Oostrum, cung cấp cho ta một số lệnhđơn giản để tuỳ biến phần tựa đề và chân của các trang giấy. Hãy nhìn vàophần tựa đề và phần chân của các trang trong tài liệu này, bạn sẽ thấy tínhhữu dụng của gói này. Vấn đề tinh xảo của việc tạo tựa đề và phần chân củacác trang là việc đưa vào tên của mục hay chương hiện tại. LATEX xử lý việc

6có tại địa chỉ CTAN:/tex-archive/macros/latex/contrib/supported/fancyhdr.

82 Specialities

\documentclassbook\usepackagefancyhdr\pagestylefancy% xác định rằng phần tựa đề và phần chân của trang% sẽ được viết thường.\renewcommand\chaptermark[1]\markboth#1\renewcommand\sectionmark[1]\markright\thesection\ #1\fancyhf % xoá các định dạng hiện tại đối với phần tựa đề trang\fancyhead[LE,RO]\bfseries\thepage\fancyhead[LO]\bfseries\rightmark\fancyhead[RE]\bfseries\leftmark\renewcommand\headrulewidth0.5pt\renewcommand\footrulewidth0pt\addtolength\headheight0.5pt % tạo khoảng trống cho vạch ngang\fancypagestyleplain%

\fancyhead % chỉnh phần tựa đề cho trang trắng\renewcommand\headrulewidth0pt % và đường kẻ ngang

Hình 4.1: Ví dụ về cách sử dụng gói fancyhdr.

4.5 Môi trường hỗ trợ việc trích đúng nguyên văn 83

này theo hướng tiếp cận gồm 2 giai đoạn. Trong định nghĩa của phần tựađề vào phần chân của trang, bạn sử dụng lệnh \rightmark và \leftmark đểcho biết mục và chương tương ứng hiện tại. Hai lệnh này sẽ xuất ra mục vàchương mới khi lệnh tạo mục hay chương mới được xử lý.

Lệnh \chapter và các lệnh tạo chương mục khác không tự định nghĩa lạilệnh \rightmark và \leftmark. Chúng gọi lệnh khác (như là \chaptermark,\sectionmark hay \subsectionmark) để định nghĩa lại lệnh \rightmark và\leftmark.

Nếu bạn muốn thay đổi phong cách thể hiện tên chương trong phần tựađề của trang, bạn “chỉ cần” định nghĩa lại lệnh \chaptermark. .

Hình 4.1 liệt kê các thay đổi cho gói fancyhdr để làm cho chúng trônggióng như phần tựa đề của một cuốn sách nhỏ. Theo tôi, bạn nên sử dụngcác kiểu định dạng được đề nghị trong phần chú thích.

4.5 Môi trường hỗ trợ việc trích đúng nguyênvăn

Trong các phần trước của tài liệu, bạn đã có dịp tiếp xúc với môi trườngverbatim. Trong mục này, bạn sẽ học về gói verbatim. Gói verbatim là mộtsự bổ sung thêm cho môi trường verbatim. Nó giúp giải quyết một số cáchạn chế của môi trường verbatim. Bản thân của môi trường này không có gìlà đặc biệt nhưng sự bổ sung của nó: gói verbatim đã thêm vào một số tínhnăng mới rất hữu dụng. Gói verbatim cung cấp lệnh

\verbatiminputfilename

nhằm cho phép đưa vào phần văn bản nguyên mẫu trong tập tin có tênfilename vào tài liệu (bên trong môi trường verbatim).

Vì gói verbatim là một phần của bộ công cụ cho nên nó sẽ được cài đặtsẵn trên hầu hết các hệ thống LATEX. Bạn có thể tham khảo thêm thông tinchi tiết về gói này trong, bạn nên đọc tài liệu [9].

4.6 Tải về và cài đặt các gói của LATEX

Hầu hết các bản cài đặt của LATEX đều đi kèm với một số lượng lớn các góiphục vụ việc định dạng tài liệu. Tuy nhiên, một số gói hữu dụng khác phảiđược tải về từ trên mạng internet. Nơi mà bạn có thể tìm thấy hầu hết cáctiện ích này là CTAN (http://www.ctan.org/).

84 Specialities

Các gói như geometry, hyphenat, và các gói khác thường được tạo thànhtừ hai tập tin: một tập tin với phần mở rộng là .ins và tập tin kia có phầnmở rộng là .dtx. Thường thì đi kèm với các gói còn có tập tin hướng dẫnnhư readme.txt. Bạn nên đọc kĩ tập tin này.

Trong bất kỳ trường hợp nào thì sau khi tải về các gói mở rộng, bạn cầnphải thực hiện hai thao tác sau:

1. Cho hệ thống TEX sẵn có biết về sự tồn tại của gói mới này trên hệthống của bạn.

2. Biên dịch tập tin tải về để biết thêm chi tiết.

Dưới đây là cách thực hiện thao tác thứ nhất:

1. Dùng LATEX để dịch tập tin .ins. Quá trình này sẽ trích ra một tậptin dạng .sty.

2. Chuyển tập tin dạng .sty đến thư mục mà phiên bản TEX trên máybạn có thể tìm thấy chúng (thông thường thì bạn nên đặt nó trong thưmục .../localtexmf /tex/latex.

3. Cập nhật lại cơ sở dữ liệu lưu trữ các tập tin trong phiên bản TEXtrên máy của bạn. Tuỳ theo các phiên bản của LATEX mà bạn có thểsử dụng các lệnh tương ứng như: với teTeX, fpTeX là texhash; web2clà maktexlsr; MikTeX là initexmf -update-fndb hay sử dụng giaodiện đồ họa.

Bây giờ bạn có thể trích ra tập tin dạng .dtx:

1. Chạy LATEX đối với tập tin .dtx. Kết quả tạo ra là tập tin .dvi. Lưuý rằng có thể bạn sẽ phải chạy LATEX nhiều lần để các tham chiếu chéođược xác định đúng.

2. Kiểm tra xem LATEX có tạo ra tập tin .idx hay không. Nếu bạn khôngtin thấy tập tin này thì bạn có thể tiến hành bước 5.

3. Để tạo ra tập tin chỉ mục, sử dụng lệnh sau:makeindex -s gind.ist name

(với name là tên của tập tin chính (không có phần mở rộng)).

4. Chạy LATEX để dịch tập tin .dtx thêm một lần nữa. .

5. Tạo tập tin dạng .ps hay .pdf để việc xem được dễ dàng và đẹp mắthơn.

4.7 Làm việc với pdfLATEX 85

Đôi khi bạn sẽ thấy rằng LATEX cũng tạo ra tập tin .glo (tự điển thuậtngữ). Dùng lệnh sau ở giữa bước 4 và 5: makeindex -s gglo.ist -o name.glsname.gloNhớ dùng LATEX để dịch tập tin .dtx lần cuối trước khi thực hiện bước 5.

4.7 Làm việc với pdfLATEX

PDF là một kiểu định dạng tài liệu siêu văn bản. Giống như các trang web,một số từ trong tài liệu dạng PDF sẽ được đánh dấu như các siêu liên kết.Chúng sẽ liên kết đến các vị trí khác trong tài liệu hay thậm chí là trongcác tài liệu khác. Khi bạn nhấn chuột vào các siêu liên kết này, bạn sẽ đượcchuyển đến vị trí liên kết tương ứng. Đối với LATEX thì điều này có nghĩalà các lệnh \ref và \pageref sẽ đưa vào các siêu liên kết. Do đó bảng nộidung, chỉ mục và các cấu trúc tương tự khác trở thành một tập hợp của cácsiêu liên kết.

Hiện nay, hầu hết các trang web đều được viết bằng ngôn ngữ HTML(HyperText Markup Language). Kiểu định dạng theo ngôn ngữ này có haiđiểm bất lợi khi soạn thảo các tài liệu khoa học:

1. Nói chung thì việc đưa các công thức toán học vào tài liệu HTML khôngđược hỗ trợ. Mặc dù chúng ta đã có chuẩn để thực hiện điều này nhưnghầu hết các trình duyệt hiện nay chưa hỗ trợ hay thiếu các font chữcần thiết.

2. Việc in ấn các tài liệu HTML thật đơn giản nhưng kết quả xuất ralại phụ thuộc rất nhiều vào hệ điều hành và trình duyệt. Điều này cónghĩa là các bản in của cùng một tài liệu có thể trông rất khác nhau.

Hiện nay, người ta đã có rất nhiều cố gắng để tạo ra các chương trình chuyểntừ tập tin LATEX sang tập tin HTML. Trong số đó có một số chương trìnhthực hiện tương đối thành công việc tạo ra các trang web rõ ràng, dễ đọc từmột tài liệu được soạn thảo bằng LATEX. Tuy nhiên, hầu hết các phần mềmđều không làm tốt vì chúng không thể giữ nguyên định dạng ban đầu. Đốivới các tài liệu sử dụng các tính năng phức tạp của LATEX và các gói mở rộngthì các chương trình chuyển từ LATEX sang HTML không thể thực hiện tốtviệc chuyển đổi. Do đó, đối với các tác giả muốn đưa tài liệu của mình lênweb nhưng muốn giữ nguyên cách trình bày bản in với chất lượng cao đã lựachọn PDF (Portable Document Format) như là một giải pháp tốt. Hơn nữa,hầu hết các trình duyệt web ngày nay đều hỗ trợ việc đọc tài liệu dạng nàysau khi cài thêm một phần mở rộng cần thiết.

Khác với các địng dạng DVI và PS, tài liệu dạng PDF có thể được xemvà in ấn trên hầu hết các hệ điều hành (Unix, Mac, Windows). nhờ vào

86 Specialities

phần mêm Adobe Acrobat Reader (có thể tải về miễn phí từ trang web củaAdobe).

4.7.1 Các tài liệu PDF dành cho WebViệc tạo ra tập tin PDF từ tập tin nguồn của LATEX đã trở nên rất dễ dàngnhờ vào phần mềm pdfTEX được thiết kế bởi Hàn Thế Thành. pdfTEX tạora tập tin đầu ra dạng PDF còn TEX sẽ tạo ra tập tin dạng DVI. Ngoài ra,ta cũng có bản pdfLATEX có tác dụng tạo ra tập tin PDF từ tập tin nguồncủa LATEX.

Cả hai bản pdfTEX và pdfLATEX đều được cài đặt sẵn đối với các phiênbản mới của TEX như là teTEX, fpTEX, MikTEX, TEXLive và CMacTEX.

Để tạo ra tập tin PDF thay vì tập tin DVI, bạn chỉ cần thay lệnh latexfile.tex bằng lệnh pdflatex file.tex. Trên các hệ thống mà LATEX khôngđược gọi từ dòng lệnh, bạn có thể tìm thấy được nút điều khiển tương ứngvới lệnh này.

Trong LATEX, bạn có thể đặt kích thước trang giấy (như a4paper hayletterpaper) thông qua tham số tùy chọn của lệnh \documentclass...Các lệnh trên cũng làm việc với pdfLATEX. Ngoài ra, pdfLATEX còn cần phảibiết thêm kích thước của trang giấy chứ không chỉ phần diện tích được dùngđể trình bày tài liệu. Khi sử dụng gói hyperref (xem thêm trang 89), kíchthước của trang có thể được thay đổi một cách tự động. Nếu không, bạn sẽphải tự điều chỉnh kích thước trang giấy bằng cách đưa và các lệnh sau trongphần tựa đề của tài liệu:

\pdfpagewidth=\paperwidth\pdfpageheight=\paperheight

Mục này sẽ không đi sâu vào chi tiết liên quan đến sự khác nhau giữa LATEXvà pdfLATEX. Những khác biệt chính liên quan đến 3 vấn đề sau: việc sử dụngfont chữ, định dạng của hình ảnh đưa vào và việc tự cấu hình của các siêuliên kết.

4.7.2 Các font chữpdfLATEX có thể làm việc với tất cả các kiểu font chữ (PK bitmaps, TrueTy-pe, PostScript type 1. . . ) nhưng chủ yếu là định dạng font của của LATEX,font PK dạng bitmap cho ra kết quả rất xáu khi tài liệu được xem bằngAcrobat Reader. Để có tài liệu đẹp mắt thì chỉ nên sử dụng các font chữdạng PostScript Type 1.

4.7 Làm việc với pdfLATEX 87

Chúng ta sẽ không bàn về font chữ trong tài liệu này vì tự LATEX đã làmtốt việc xử lý các font chữ cũng như việc sử dụng bộ font chữ riêng của nóđể đáp ứng yêu cầu của việc soạn thảo và in ấn các tài liệu khoa học.

Hiện nay, ta có 2 tập hợp font chữ của TEX: Computer Modern (CM),gồm 128 kí tự và được xem là bộ font mặc định. Bộ font thứ hai là ExtendedCork (EC), bao gồm 256 kí tự. Điểm đặc trưng của bộ font EC là có chứatất cả các kí tự đặc biệt của các ngôn ngữ-đặc biệt là các kí tự thể hiện dấu

trọng âm trong các ngôn ngữ ở châu Âu như là a hay é. Điều này cho phépviệc ngắt quãng các từ ngữ có các chữ cái đặc biệt này. Bạn có thể kích hoạtviệc sử dụng bộ font này với lệnh \usepackage[T1]fontenc ở phần tựađề của tài liệu (xem thêm trang 28). Thật không may là không có bộ fontPostScript Type 1 miễn phí nào cho tập các kí tự EC. Tuy nhiên, có haiphương pháp có thể giải quyết vấn đề này: Bạn có thể đưa gói \usepackageaeguill aeguill vào phần tựa đề để

sử dụng các font AE thực sự. Bạn có thể sử dụng \usepackagemltex tuy nhiên tính năng này chỉlàm việc khi pdfLATEX được biên dịch với tuỳ chọn mltex.

Tương tự như hệ thống MlTEX, bộ font chữ ảo AE làm cho TEX tin rằngnó có đầy đủ 256 kí tự và sự sắp đặt các kí tự của nó dẫn đến việc thiếu cáckí tự trong font chữ CM bình thường (những kí tự này vẫn được giữ nguyêntrong các font chữ PostScript dạng Type 1). Điều này giúp cho việc ngắt

quãng từ được thực hiện tốt đối với các ngôn ngữ ở châu Âu. Nhưng bấtlợi lớn nhất là bộ font chữ AE không làm việc tốt với chức năng Find củaAcrobat Reader. Do đó bạn không thể tìm kiếm các từ có dấu trong tài liệudạng PĐF.

Một giải pháp khác là không sử dụng bộ font CM mà chuyển sang sửdụng các font Postscript dạng 1. Hiện nay, một số font chữ dạng này đượccung cấp kèm theo với Acrobat Reader. Bộ font này có kích thước các kí tựkhác nhau do đó việc trình bày tài liệu sẽ có chút thay đổi. Thông thường, bộfont chữ này sử dụng nhiều khoảng không hơn các font chữ CM (các font chữCM rất tiết kiệm khoảng không). Ngoài ra, tính mạch lạc tổng thể của tàiliệu cũng bị ảnh hưởng bởi vì các font chữ như Times, Helvetica và Courier(các font chính cần thay đổi) không được thiết kế để trình bày một cách cânđối trong một tài liệu như là các font chữ CM.

Ngoài ra, còn có 2 bộ font chữ nữa đáp ứng yêu cầu này: pxfonts, dựatrên font Palatino để định dạng cho văn bản trong phần thân của tài liệuvà gói txfonts, dựa trên font Times. Để sử dụng hai gói này, ta chỉ cần thêmvào các hàng sau ở phần tựa đề của tài liệu.

88 Specialities

\usepackage[T1]fontenc\usepackagepxfonts

Bạn có thể thấy cảnh báo sau khi biên dịch tập tin nguồn

Warning: pdftex (file eurmo10): Font eurmo10 at ... not found

trong tập tin có phần mở rộng là .log. Điều này có nghĩa là một số fontchữ được sử dụng ở đây đã không được tìm thấy. Bạn cần phải sửa các lỗinày nếu không thì trong tài liệu dạng PDF các trang có các kí tự bị thiếu sẽkhông được hiển thị trong.

Việc thiếu các font chữ EC có chất lượng tương đương với các font chữCM dạng 1 luôn được mọi người quan tâm. Do đó, các giải pháp cho vấn đềnày sẽ luôn xuất hiện theo thời gian.

4.7.3 Sử dụng đồ hoạViệc đưa đồ hoạ vào trong tài liệu được hỗ trợ tốt nhất với gói graphicx (xemtrang 75). Thông qua việc sử dụng các driver đặc biệt trong tuỳ chọn củapdftex, gói graphicx cũng sẽ làm việc tốt với pdfLATEX:

\usepackage[pdftex]color,graphicx

Trong ví dụ trên, ta đã đưa vào tuỳ chọn màu bởi việc sử dụng màu sắctrong tài liệu đã trở nên ngày càng phổ biến.

Một trong những vấn đề ở đây là dạng EPS (Encapsulated Postscript)không được hỗ trợ trong các tập tin dạng PDF. Nếu bạn không định nghĩamột tập tin mở rộng trong lệnh \includegraphics, gói graphicx sẽ tự độngtìm tập tin thích hợp (phụ thuộc vào việc chọn driver. Đối với pdftex, địnhdạng của tập tin này có thể là .png, .pdf, .jpg, .mps (MetaPost) và .tif—nhưng không là .eps.

Giải pháp đơn giản cho vấn đề này là chuyển các tập tin dạng EPS sangdạng PDF thông qua việc sử dụng tiện ích epstopdf. Đối với các đối tượnghình học vectơ (các hình vẽ), đây là một giải pháp tốt. Tuy nhiên, đối với cácdạng bitmap (ảnh, hình được quyét từ ngoài vào) thì giải pháp này khôngthật sự thuyết phục bởi vì bản thân định dạng PDF đã hỗ trợ việc đưa vàocác tập tin PNG và JPEG (PNG thích hợp cho các ảnh có ít màu còn JPEGthích hợp cho các hình chụp vì chúng chiếm rất ít chỗ).

Đôi khi, ta không cần vẽ các hình trong hình học mà chỉ cần mô tả chúngvới các ngôn ngữ đặc biệt (như là MetaPost). Ngôn ngữ này có thể được tìmthấy ở hầu hết các phiên bản được phân phối của TEX cùng với bản hướngdẫn chi tiết.

4.7 Làm việc với pdfLATEX 89

4.7.4 Các siêu liên kếtGói hyperref sẽ đảm nhiệm việc chuyển các tham chiếu trong tài liệu thànhsiêu liên kết. Để hoàn tất công việc này, ta cần thực hiện một số thao táchỗ trợ. Bạn cần phải đưa lệnh \usepackage[pdftex]hyperref vào vị trícuối cùng của phần tựa đề của tài liệu.

Lệnh này có nhiều tham số để tuỳ biến cách làm việc của gói hyperref: một danh sách được phân cách bởi dấu phẩy ở phía sau phần tuỳ chọncủa pdftex\usepackage[pdftex]hyperref hay các hàng riêng biệt với lệnh \hypersetupoptions.

Mục chọn duy nhất cần thiết là pdftex; các mục chọn khác là tuỳ ý và chophép bạn thay đổi cách làm việc bình thường của gói hyperref.7 Dưới đây làdanh sách các giá trị mặc định:

bookmarks (=true,false ) hiển thị hay không hiển thị của sổ Bookmarkkhi hiển thị tài liệu.

pdftoolbar (=true,false ) hiển thị hay không hiển thị thanh công cụ củaAcrobat khi xem.

pdfmenubar (=true,false ) hiển thị hay không hiển thị menu của Acrobat.

pdffitwindow (=true,false ) chỉnh kích thước phóng đại ban đầu khi tậptin pdf được xem.

pdftitle (=texte) xác định nội dung được hiển thị trong cửa sổ DocumentInfo của Acrobat.

pdfauthor (=texte) Tên của tác giả.

pdfnewwindow (=true,false ) xác định xem một cửa sổ mới có được tạohay không khi liên kết vượt khỏi giới hạn của tài liệu.

colorlinks (=true,false ) hiển thị “vùng” liên kết bằng màu. Các màusắc của các liên kết có thể được chọn như sau:

7Bạn cần lưu ý rằng gói hyperref không chỉ làm việc với pdfTEX. Gói này cũng có thểđược cấu hình để nhúng thông tin riêng dạng PDF vào tập tin DVI của LATEX (tập tinnày sẽ được đưa vào tập tin PS với lệnh dvips và cuối cùng được xử lý Adobe Distillerkhi nó chuyển tập tin dạng PS sang PDF.)

90 Specialities

linkcolor (=color,red ) màu sắc của các liên kết ở bên trong củatài liệu (như mục, chương, trang, . . . ).

citecolor (=color,green ) màu của các liên kết đến các trích dẫn(trong danh mục các tài liệu tham khảo).

filecolor (=color,magenta ) màu của các liên kết đến tập tin.

urlcolor (=color,cyan ) màu của các liên kết đến các địa chỉ URL(liên kết đến hộp thư, địa chỉ web).

Nếu bạn thấy hài lòng với các định dạng mặc định thì chỉ việc sử dụngnhư sau:

\usepackage[pdftex]hyperref

Để danh sách các bookmark được liệt kê chi tiết và các liên kết có màu(giá trị =true là mặc định):

\usepackage[pdftex,bookmarks,colorlinks]hyperref

Khi tạo ra các tập tin PDF hướng đến mục đích là in ấn, bạn không nênlàm cho các liên kết có màu bởi vì chúng sẽ trở thành màu xám khi được inra (chúng trở nên khó đọc và không đẹp mắt).

\usepackagehyperref\hypersetupcolorlinks,%

citecolor=black,%filecolor=black,%linkcolor=black,%urlcolor=black,%pdftex

Để cung cấp thông tin cho phần Document Info của tập tin PDF, bạnthực hiện như sau:

\usepackage[pdfauthor=Pierre Desproges%pdftitle=Des femmes qui tombent,%pdftex]hyperref

Để bổ sung cho các siêu liên kết tự động đối với các tham chiếu chéo, bạncó thể đưa vào các liên kết tường minh như sau:

\hrefurltext

Đoạn mã sau

4.7 Làm việc với pdfLATEX 91

Trang web \hrefhttp://www.ctan.orgCTAN.

sẽ cho kết quả là “CTAN”; nhấn chuột vào từ “CTAN” sẽ đưa bạn đến vớitrang web của CTAN.

Nếu liên kết không hướng đến một địa chỉ URL mà là một tập tin trênmáy thì bạn có thể sử dụng lệnh sau:

Bạn có thể xem tài liệu đầu đủ \hrefmanual.pdfở đây.

Khi này, kết quả xuất ra là: “Bạn có thể xem tài liệu đầy đủ ở đây”. Nhấnchuột vào “ở đây” sẽ mở tập tin manual.pdf. (Tập tin sẽ nằm trong thư mụccủa tài liệu hiện thời).

Tác giả của một bài báo có thể cung cấp địa chỉ e-mail của mình để ngườiđọc có thể liên hệ với tác giả thông qua lệnh \href bên trong lệnh \authortrong phần tựa đề của trang trong tài liệu:

\authorNguyễn Tân Khoa $<$\hrefmailto:[email protected]%[email protected]$>$

Lưu ý rằng bạn phải nhập vào liên kết và cả phần văn bản để nó được hiểnthị trên trang giấy. Bạn cũng có thể soạn thảo như sau:\hrefmailto:[email protected]ễn Tân Khoa.Với Acrobat Reader thì mọi việc vẫn diễn ra tốt đẹp nhưng khi in tài liệu rathì sẽ không ai biết được địa chỉ e-mail của bạn!!!

4.7.5 Vấn đề với các liên kếtCác thông điệp như:

! pdfTeX warning (ext4): destination with the same identifier(namepage.1) has been already used, duplicate ignored

xuất hiện khi bộ đếm được khởi động lại. Ví dụ như khi sử dụng lệnh\mainmatter được cung cấp bởi lớp tài liệu dạng book, bộ đếm sẽ đượckhỏi động lại là 1 tương ứng với chương đầu tiên của tài liệu. Tuy nhiên,phần “lời tựa” của tài liệu cũng được đánh số là trang 1. Khi này, tất cả cácliên kết đến “trang 1” sẽ không cho kết quả duy nhất nữa! Do đó, thông báolà “duplicate has been ignored.”

Bộ đếm sẽ thực hiện việc đưa plainpages=false vào mục chọn của cácsiêu liên kết. Không may là điều này chỉ hỗ trợ việc đếm trang. Một giảipháp triệt để hơn là sử dụng mục chọn hypertexnames=false tuy nhiên khinày các liên kết đến các trang trong phần chỉ mục sẽ không làm việc.

92 Specialities

4.7.6 Các vấn đề với BookmarkPhần văn bản được hiển thị bởi bookmark không phải lúc nào cũng giốngnhư bạn muốn. Bởi vì các bookmark “chỉ đơn thuần là văn bản” cho nên nósẽ có ít kí tự hơn là phần văn bản của LATEX. Các siêu liên kết sẽ tự độngthấy các lỗi này và đưa ra cảnh báo:

Package hyperref Warning:Token not allowed in a PDFDocEncoded string:

Bạn có thể giải quyết vấn đề này bằng cách cung cấp một chuỗi kí tự chocác bookmark để tránh các lỗi trên như sau:

\texorpdfstringTEX textBookmark Text

Các biểu thức toán học chính là các đối tượng thường mắc phải lỗi nàynhất:

\section\texorpdfstring$E=mc^2$%E\ =\ mc\texttwosuperior

sẽ cho kết quả là “E=mc2” trong phần bookmark.Việc thay đổi màu sẽ không thực hiện tốt trong các bookmark:

\section\textcolorredRed !

sẽ tạo ra chuỗi “redRed!”. Lệnh \textcolor sẽ được bỏ qua nhưng tham số(red) của nó vẫn được in ra.

Nếu bạn soạn thảo:

\section\texorpdfstring\textcolorredRed !Red\ !

thì kết quả sẽ dễ đọc hơn.

Sự tương thích giữa tập tin nguồn trong LATEX và trong pdfLATEX

Trong tình huống lý tưởng, tài liệu của bạn sẽ được dịch tốt như nhau vớiLATEX và pdfLATEX. Vấn đề lớn ở đây là việc đưa vào các hình ảnh. Giảipháp cơ bản cho vấn đề này là bỏ qua phần mở rộng của tập tin trong lệnh\includegraphics. Khi này, cả LATEX và pdfLATEX sẽ tự động tìm kiếm tậptin có định dạng phù hợp trong thư mục hiện thời. Việc bạn cần làm là tạora các phiên bản tương ứng của tập tin hình ảnh. LATEX sẽ tìm kiếm tập tindạng .eps còn pdfLATEX sẽ tìm các tập tin có phần mở rộng là .png, .pdf,.jpg, .mps hay .tif (theo thứ tự vừa nêu).

Đối với các trường hợp bạn muốn sử dụng các mã khác nhau cho cácphiên bản PDF khác nhau của tài liệu của bạn, bạn có thể thêm vào:

4.8 Trình diễn với gói pdfscreen 93

\newif\ifPDF\ifx\pdfoutput\undefined\PDFfalse\else\ifnum\pdfoutput > 0\PDFtrue

\else\PDFfalse\fi

\fi

như là các hàng lệnh đầu tiên của tài liệu. Những hàng lệnh này sẽ xác địnhmột lệnh đặc biệt cho phép bạn dễ dàng viết các đoạn mã diều kiện:

\ifPDF\usepackage[T1]fontenc\usepackageaeguill\usepackage[pdftex]graphicx,color\usepackage[pdftex]hyperref

\else\usepackage[T1]fontenc\usepackage[dvips]graphicx\usepackage[dvips]hyperref

\fi

Trong ví dụ trên, bạn có thể thấy rằng tôi đã đưa vào gói siêu liên kết chocả phiên bản PDF và không phải PDF. Hiệu quả của việc đưa vào các lệnhtrên là lệnh \href làm việc tốt trong tất cả các trường hợp mà không phảiđưa vào chỉ thị điều khiển mỗi lần sử dụng lệnh \href.

Lưu ý rằng trong các phiên bản TEX hiện nay (ví dụ như TEXLive), lựachọn giữa pdftex và dvips khi sử dụng gói graphicx và color sẽ tự độngđược xác định một cách tự động trong tập tin cấu hình graphics.cfg vàcolor.cfg.

4.8 Trình diễn với gói pdfscreen

Bình thường, bạn có thể trình diễn kết quả của tài liệu khoa học của bạntrên một tấm bảng với đèn chiếu hay trực tiếp từ máy tính xách tay có sửdụng phần mềm trình diễn.

Với pdfLATEX và gói pdfscreen, bạn có thể tạo nên các “slide” trong tậptin PDF, có đầy đủ tính năng (màu sắc, sống động) như MS PowerPoint.Ngoài ra, tập tin của bạn còn có tính khả chuyển cao (có thể được xem trêncác hệ điều hành khác nhau với phần mềm Acrobat Reader).

Lớp pdfscreen sử dụng gói graphicx, color và hyperref với các mục chọnphỏng theo các cách trình diễn trên màn hình.

94 Specialities

\documentclass[pdftex,12pt]article%%% các phần mở rộng khác %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\usepackage[latin1]inputenc\usepackage[english]babel\usepackage[T1]fontenc\usepackageaeguill%%% sử dụng gói pdfscreen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\usepackage[screen,panelleft,chocolate]pdfscreen% định dạng màn hình\panelwidth=25mm%% height width\screensize150mm200mm%% left right top bottom\marginsize42mm8mm10mm10mm% màu sắc hay ảnh nền\overlayempty\definecolormybgrgb1,0.9,0.7\backgroundcolormybg% Logo\emblemaMyLogo%%% với PPower4 (post-processor) %%%%%%%%%%%%%%%%%%%%%%%%\usepackagepause%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begindocument\beginslide\beginitemize\item Tin tốt\dots \pause\item Tin xấu\enditemize\endslide\enddocument

Hình 4.2: Ví dụ về tập tin dữ liệu vào sử dụng gói pdfscreen

4.8 Trình diễn với gói pdfscreen 95

Để tạo ra dạng tập tin này, bạn chỉ cần làm việc một cách bình thườngvới kiểu tài liệu là article. Hình 4.2 cho thấy ví dụ về tập tin dữ liệu vào.Trước tiên, bạn phải nạp vào gói pdfscreen cùng với các tuỳ chọn tương ứng:

screen : trình diễn trên màn hình. Đối với các bản trình diễn được in ra thìbạn sử dụng mục chọn print.

panelright đặt bảng điều khiển việc di chuyển giữa các “slide” ở góc phảimàn hình. Ngược lại, để đặt bảng điều khiển ở góc trái, bạn có thể sửdụng mục chọn panelleft.

french hay các ngôn ngữ được hỗ trợ khác để LATEX xác định tên của cácnút trong bảng điều khiển cho phù hợp. Mục chọn này độc lập với cácmục chọn được chỉnh với các gói “babel”.

chocolate màu sắc của bảng điều khiển. Các lựa chọn khác là gray, orange,palegreen, bluelace và blue (mặc định).

Tiếp đến, bạn sẽ cấu trúc hình cho việc hiển thị. Vì các bản trình diễn thườngco dãn theo kích thước thật của màn hình hiển thị, do đó thông tin này sẽđược sử dụng để chỉnh kích thước font chữ.

\panelwidth xác định kích thước của bảng điều khiển.

\screensizewidthheight xác định chiều rộng và chiều cao của mànhình bao gồm cả bảng điều khiển.

\marginsizeleftrighttopbottom xác định các biên của tài liệu.Trong phần ví dụ trên, tài liệu không được canh ở giữa màn hình bởivì số của các mục được canh trái.

Bạn có thể sử dụng hình nền ở với một kiểu định dạng bất kỳ được hỗ trợbởi pdfLATEX thông qua lệnh:

\overlayimage

hay nếu bạn thích sử dụng phần nền đơn giản, bạn có thể xác định màucủa nó với lệnh:

\backgroundcolor

Cuối cùng, nếu bạn muốn đặt logo của tổ chức hay công ty của bạn vào

96 Specialities

bảng điều khiển, hãy sử dụng lệnh sau:

\emblemalogo

Trong khi trình diễn, để các mục từ từ được hiển thị trên màn hình, bạncó thể sử dụng gói pause. Gói này cung cấp lệnh \pause. Lệnh này sẽ yêucầu LATEX tạm ngưng việc hiển thị tài liệu. Gói pause là một phần của hệthống ppower4 (P 4: Pdf Presentation Post-Processor). Hệ thống này sẽ làmcho kết quả xuất ra của pdfLATEX trình diễn theo ý của bạn. Bạn có thể xửlý kết quả xuất ra của pdfTEX bằng cách đưa vào quá trình “xử lý sau”. Lệnhnày được gọi như sau:

ppower4 xy.pdf xyz.pdf

Để điều khiển kết quả xuất ra trên từng slide, bạn có thể sử dụng môitrường \beginslide . . . \endslide. Nội dung của mỗi slide sẽ được hiểnthị ở giữa (theo chiều dọc) trang.

Khi biên dịch ví dụ ở trên, bạn sẽ gặp thông báo lỗi:

! pdfTeX warning (dest): namecontents has beenreferenced but does not exist, replaced by a fixed one

Lỗi này là do một nút lệnh trong bảng điều khiển chỉ đến bảng mục lục màví dụ này không có lệnh \tableofcontents cho nên liên kết bị lỗi.

Để bảng mục lục có thể được hiển thị ngay bên trong bảng điều khiển,bạn có thể sử dụng mục chọn paneltoc khi dùng gói pdfscreen. Điều này chỉcho ra kết quả tốt khi mà bản trình diễn của bạn có ít mục và tên các mụctương đối ngắn. Bạn cần cung cấp các tựa đề ngắn ngọn cho các mục trongngoặc vuông.

Phần giới thiệu ngắn ngọn này chỉ đưa ra những hướng dẫn gợi ý banđầu về tính năng trình diễn của gói pdfscreen và PPower4. Cả hai gói nàyđều được cung cấp với tài liệu hướng dẫn chi tiết.

4.9 XY-picGói xy là một gói đặc biệt để vẽ các biểu đồ. Để sử dụng gói này, bạn chỉviệc thêm vào các hàng lệnh sau trong phần tựa đề của tài liệu:

\usepackage[options]xy

Với options là một danh sách các hàm của XY-pic mà bạn muốn nạp vào.

4.9 XY-pic 97

Tôi đề nghị bạn đưa vào mục chọn all để LATEX nạp tất cả các lệnh của XY.Các biểu đồ của XY-pic được vẽ dựa trên mô hình của các ma trận trong

đó mỗi phần tử của biểu đồ được đặt trong một ô của ma trận:

\begindisplaymath\xymatrixA & B \\

C & D \enddisplaymath

A B

C D

Lệnh \xymatrix có thể được sử dụng trong chế độ toán học. Trong ví dụtrên, chúng ta có hai hàng và hai cột. Để tạo biểu đồ này, chúng ta chỉ cầnthêm vào các muỗi tên tương ứng với lệnh \ar.

\begindisplaymath\xymatrix A \ar[r] & B \ar[d] \\

D \ar[u] & C \ar[l] \enddisplaymath

A B

D C

Lệnh vẽ mũi tên được đặt ở ô dành cho mũi tên. Các tham số ở đây làhướng trỏ đến của các mũi tên. (u: mũi tên hướng lên, d: mũi tên hướngxuống, r: mũi tên hướng sang phải và l: mũi tên hướng sang trái).

\begindisplaymath\xymatrixA \ar[d] \ar[dr] \ar[r] & B \\D & C

\enddisplaymath

A B

D C

Để tạo ra các mũi tên theo hướng chéo, bạn chỉ cần thêm vào các đối sốvề hướng. Để có mũi tên đậm hơn, bạn có thể lặp lại các tham số về hướng.

\begindisplaymath\xymatrixA \ar[d] \ar[dr] \ar[drr] & & \\B & C & D

\enddisplaymath

A

B C D

Bạn có thể vẽ các biểu đồ đẹp bằng cách thêm vào phía trên dấu mũi tên

98 Specialities

các nhãn. Để làm điều này, bạn có thể sử dụng các toán tử viết lên trên hayviết xuống dưới.

\begindisplaymath\xymatrix

A \ar[r]^f \ar[d]_g &B \ar[d]^g’ \\

D \ar[r]_f’ & C \enddisplaymath

Af

g

B

g′

Df ′

C

Như bạn đã thấy, bạn có thể sử dụng trong chế độ toán học. Sự khác biệtduy nhất là việc viết văn bản lên trên được hiểu là “viết lên phía trên củamũi tên” còn viết văn bản ở dưới nghĩa là “ở dưới dấu mũi tên”. Còn đây làtoán tử thứ ba (thanh ngang) |. Nó sẽ khiến cho phần văn bản đặt ngay trênmũi tên.

\begindisplaymath\xymatrix

A \ar[r]|f \ar[d]|g &B \ar[d]|g’ \\

D \ar[r]|f’ & C \enddisplaymath

A f

g

B

g′

D f ′ C

Để vẽ các mũi tên có lỗ trống ở giữa, bạn có thể sử dụng lệnh \ar[...]|\hole.Trong một số tình huống, điều quan trọng là phân biết sự khác nhau giữa

các kiểu của dấu mũi tên. Điều này có thể được thực hiện bằng cách đặt cácnhãn lên trên các mũi tên hay thay đổi diện mạo của các mũi tên:

\begindisplaymath\xymatrix\bullet\ar@->[rr] && \bullet\\\bullet\ar@.<[rr] && \bullet\\\bullet\ar@~)[rr] && \bullet\\\bullet\ar@=([rr] && \bullet\\\bullet\ar@~/[rr] && \bullet\\\bullet\ar@=+[rr] && \bullet

\enddisplaymath

• •

• •

• •

• •

• •

• •

4.9 XY-pic 99

Bạn hãy chú ý sự khác biệt giữa hai biểu đồ dưới đây:

\begindisplaymath\xymatrix\bullet \ar[r]

\ar@.>[r] &\bullet

\enddisplaymath

• •

\begindisplaymath\xymatrix\bullet \ar@/^/[r]

\ar@/_/@.>[r] &\bullet

\enddisplaymath

• •

Từ bổ sung thêm vào giữa hai dấu gách chéo / / xác định cách các đườngcong được vẽ. Ngoài ra, XY-pic cung cấp nhiều cách khác nhau để tác độngđến việc vẽ các đường cong. Để biết thêm chi tiết, bạn có thể tham khảothêm tài liệu về XY-pic.

The modifiers between the slashes define how the curves are drawn.XY-picoffers many ways to influence the drawing of curves; for more information,check XY-pic documentation.

Chương 5

Tuỳ biến các thành phần củaLATEX

Với các lệnh đã học từ chương 1 đến nay, bạn đã có thể soạn thảo được các tàiliệu đẹp mắt, có tình chuyên nghiệp khá cao. Dù chúng chưa đạt đến được sựtinh xảo cao nhưng tài liệu của bạn đã tuân theo những qui tắc định dạng chungdo đó chúng rất dễ đọc và có tính chất chuyên nghiệp.

Tuy nhiên, trên thực tế của việc soạn thảo với LATEX, bạn vẫn còn gặp phảimột số tình huống mà LATEX không cung cấp các lệnh hay môi trường phù hợpvới yêu cầu của bạn hay kết quả có được từ các lệnh sẵn có không làm cho bạnhài lòng.

Trong chương này, chúng ta sẽ cùng tìm hiểu một vài thủ thuật để “dạy” choLATEX những kỹ năng mới nhằm tạo ra các tài liệu có kiểu mẫu khác với các kiểumẫu mặc định.

5.1 Tạo lệnh, gói lệnh và môi trường mớiNếu chú ý thì bạn sẽ thấy rằng tất cả các lệnh trong tài liệu này đều đượcđóng khung và bạn có thể dễ dàng tìm thấy chúng trong phần chỉ mục củatài liệu. Thay vì trực tiếp sử dụng các lệnh của LATEX, tôi đã tạo ra một góimới định nghĩa cách các lệnh và môi trường mới này. Khi này, tôi chỉ cầnnhập vào như sau:

\beginlscommand\cidum\endlscommand

\dum

5.1 Tạo lệnh, gói lệnh và môi trường mới 101

Trong ví dụ này, tôi đã sử dụng một môi trường mới gọi là lscommand vàmột lệnh mới là \ci. Môi trường mới này sẽ vẽ đóng khung các lệnh. Cònlệnh \ci được dùng để soạn thảo tên lệnh và đưa nó vào bảng chỉ mục. Bạncó thể kiểm tra điều này bằng cách nhìn qua mục \dum trong phần chỉ mụccủa tài liệu này.

Khi tôi muốn thay đổi định dạng cho các lệnh sang một kiểu khác (chẳnghạn như không đóng khung nữa), tôi chỉ cần thay đổi định nghĩa của môitrường lscommand. Điều này giúp cho việc thay đổi được thực hiện khá dễdàng mà không cần phải tìm kiếm trong suốt tài liệu và tiến hành sửa đổi.

5.1.1 Tạo lệnh mới

Để thêm vào một lệnh mới của riêng bạn, sử dụng lệnh sau:

\newcommandname[num]definition

Thông thường, một lệnh sẽ đòi hỏi hai tham số: name là tên của lệnh màbạn muốn tạo và definition là định nghĩa của lệnh. Tham số num trong dấungoặc vuông là tuỳ chọn và xác định số các tham số mà lệnh mới cần đến(một lệnh có khả năng có tối đa là 9 tham số). Nếu ta bỏ qua tham số nàythì lệnh này sẽ được gọi mà không có tham số nào cả.

Dưới đây là một ví dụ nhằm giúp bạn hiểu rõ hơn. Trong ví dụ này, trướctiên, ta sẽ tạo ra một lệnh mới gọi là \tnss. Lệnh này sẽ xuất ra chuỗi “TheNot So Short Introduction to LATEX 2ε.”

\newcommand\tnssThe notso Short Introduction to\LaTeXe

Đây là tựa đề gốc của tàiliệu này: ‘‘\tnss’’ \ldots‘‘\tnss’’

Đây là tựa đề gốc của tài liệu này: “The notso Short Introduction to LATEX 2ε” . . . “Thenot so Short Introduction to LATEX 2ε”

Ví dụ tiếp theo sẽ minh hoạ cho việc tạo lệnh mới và lệnh này sẽ có 1tham số. Thẻ lệnh #1 sẽ được thay thế bởi nội dung do bạn cung cấp. Nếubạn muốn có nhiều hơn 1 tham số, bạn có thể sử dụng thẻ lệnh #2, . . . .

102 Tuỳ biến các thành phần của LATEX

\newcommand\txsit[1]Xin chào\emph#1. Chúc một ngày tốt lành!

% trong phần thân của tài liệu:\beginitemize\item \txsitNguyễn Tân Khoa\item \txsitBabymilky\enditemize

Xin chào Nguyễn Tân Khoa. Chúc mộtngày tốt lành! Xin chào Babymilky. Chúc một ngàytốt lành!

LATEX không cho phép việc tạo ra các lệnh mới trùng tên với các lệnh sẵncó. Tuy nhiên, trong trường hợp này, bạn có thể dùng lệnh sau: \renewcommandmột cách tường minh. Lệnh renewcommand cũng có cú pháp tương tự nhưlệnh \newcommand.

Trong một số trường hợp cụ thể, bạn có thể sử dụng lệnh \providecommand.Lệnh này giống như lệnh \newcommand nhưng khi mà lệnh đã được định nghĩathì LATEX 2ε sẽ tự động bỏ qua nó.

Xem thêm trang ?? để biết thêm chi tiết về các vấn đề liên quan đếnkhoảng trắng ở sau một lệnh.

5.1.2 Tạo môi trường mớiCũng như lệnh \newcommand, có một lệnh hỗ trợ cho việc tạo ra các môitrường mới. Đó là lệnh \newenvironment với cú pháp như sau:

\newenvironmentname[num]beforeafter

Tương tự như lệnh \newcommand, lệnh \newenvironment cũng có cáctham số tuỳ chọn riêng. Dữ liệu trong phần before sẽ được xử lý trước khiphần văn bản được xử lý và dữ liệu trong phần after sẽ được xử lý khi lệnh\ endname được xử lý.

Dưới đây là một ví dụ minh hoạ cho việc sử dụng lệnh \newenvironment.

\newenvironmentking\rule1ex1ex%

\hspace\stretch1\hspace\stretch1%

\rule1ex1ex

\beginkingĐề tài nhỏ bé của tôi \ldots\endking

Đề tài nhỏ bé của tôi . . .

5.1 Tạo lệnh, gói lệnh và môi trường mới 103

Tham số num sẽ cho biết số đối số của lệnh. LATEX sẽ kiểm tra xembạn có định nghĩa lại một môi trường đã tồn tại hay không. Khi này, nếubạn muốn thay đổi một môi trường đã tồn tại, bạn có thể sử dụng lệnh\renewenvironment. Cú pháp của lệnh này cũng tương tự như cú pháp củalệnh \renewcommand.

Các lệnh được sử dụng trong ví dụ trên sẽ được giải thích sau. Đối vớicác lệnh \rule và \stretch, bạn có thể tham khảo thêm ở trang ?? và 116.Còn với lệnh \hspace thì xem thêm ở trang 109

5.1.3 Tạo một gói lệnh mới

Khi mà bạn đã định nghĩa nhiều môi trường và nhiều lệnh mới, phần tựa đềcủa tài liệu của bạn sẽ trở nên khá dài. Do đó, bạn nên tạo một gói mới chứađịnh nghĩa của tất cả các lệnh và môi trường mới này. Sau đó, bạn có thể sửdụng lệnh \usepackage để đưa gói mới này vào sử dụng trong tài liệu củabạn.

% Demo Package by Tobias Oetiker\ProvidesPackagedemopack\newcommand\tnssThe not so Short Introduction to \LaTeXe\newcommand\txsit[1]The \emph#1 Short

Introduction to \LaTeXe\newenvironmentking\beginquote\endquote

Hình 5.1: Ví dụ về một gói lệnh tự tạo.

Việc viết một gói lệnh mới bao gồm việc sao chép nội dung của phần tựađề của tài liệu vào một tập tin riêng lẻ với phần mở rộng là .sty. Có mộtlệnh đặc biệt:

\ProvidesPackagepackage name

để sử dụng ở đầu của tập tin lưu gói lệnh. Lệnh \ProvidePackage cho LATEXbiết tên của gói lệnh; đồng thời, nó cũng cho phép LATEX thông báo các lỗicơ bản như việc đưa gói lệnh vào hai lần. Hình 5.1 cho thấy một ví dụ nhỏvề gói lệnh tự tạo chứa các lệnh đã được định nghĩa trong các ví dụ trên.

104 Tuỳ biến các thành phần của LATEX

5.2 Font chữ và kích thước font chữ

5.2.1 Các lệnh thay đổi font chữLATEX sẽ tự động lựa chọn font chữ và kích thước font chữ dựa trên cấu trúclogic của tài liệu (mục, chú thích chân, . . . ). Trong một số tình huống, bạnsẽ muốn tự thay đổi font chữ. Để thực hiện điều này, bạn có thể sử dụng cáclệnh trong bảng 5.1 và 5.2. Kích thước phù hợp của font chữ là một kĩ thuậtthiết kế dựa trên kiểu tài liệu và các mục chọn của nó. Bảng 5.3 liệt kê cáckích thước tương ứng cho các lệnh thay đổi kích thước font chữ trong các lớptài liệu chuẩn.

\small Chữ nhỏ \textbfbolddạng Romans \Large Chữ lớn\textitItaly.

Chữ nhỏ bold dạng Romans Chữ lớnItaly.

Một tính năng quan trọng của LATEX 2ε là các thuộc tính của font chữ làđộc lập. Điều này có nghĩa là bạn có thể thay đổi font chữ hay kích thướccủa font chữ mà vẫn giữa được các định dạng in đậm, in nghiêng đã đượcđặt từ trước.

Trong chế độ toán học, bạn có thể dùng các lệnh thay đổi font chữ đểtạm thời thoát ra khỏi chế độ toán học và nhập vào các đoạn văn bản thôngthường. Để thay đổi font chữ trong chế độ toán học, bạn cần sử dụng mộttập lệnh đặc biệt. Xem thêm bảng 5.4.

Liên quan đến các lệnh thay đổi kích thước font chữ, dấu ngoặc vuôngđóng một vai trò rất quan trọng. Chúng được dùng để tạo ra các nhóm. Cácnhóm sẽ giới hạn phạm vi tác dụng của các lệnh trong LATEX..

Bảng 5.1: Font chữ.

\textrm... roman \textsf... sans serif\texttt... đánh máy

\textmd... trung bình \textbf... in đậm

\textup... thắng đứng \textit... in nghiêng\textsl... nghiêng \textsc... chữ nhỏ

\emph... nhấn mạnh \textnormal... font chữ bình thường

5.2 Font chữ và kích thước font chữ 105

Bảng 5.2: Kích thước của font chữ.

\tiny font chữ nhỏ

\scriptsize font chữ rất nhỏ

\footnotesize font chữ tương đối nhỏ

\small font chữ nhỏ\normalsize font chữ thường

\large font chữ lớn

\Large font chữ lớn hơn

\LARGE font chữ rất lớn

\huge font chữ “khổng lồ”\Huge font chữ lớn nhất

Bảng 5.3: Kích thước tính theo điểm (pt) của các tài liệu chuẩn.

Cỡ 10pt (mặc định) 11pt tuỳ chọn 12pt tuỳ chọn\tiny 5pt 6pt 6pt\scriptsize 7pt 8pt 8pt\footnotesize 8pt 9pt 10pt\small 9pt 10pt 11pt\normalsize 10pt 11pt 12pt\large 12pt 12pt 14pt\Large 14pt 14pt 17pt\LARGE 17pt 17pt 20pt\huge 20pt 20pt 25pt\Huge 25pt 25pt 25pt

106 Tuỳ biến các thành phần của LATEX

Tôi thích \LARGE Toán-Tin họcvà \small Văn học.

Tôi thích Toán-Tin học và Vănhọc.

Các lệnh liên quan đến kích thước của font chữ cũng sẽ thay đổi khoảngcách giữa các hàng khi mà một đoạn văn kết thúc bên trong phạm vi tácdụng của lệnh này. Do đó, dấu đóng ngoặc không nên xuất hiện trước khikết thúc đoạn văn. Hãy chú ý đến vị trí của lệnh \par trong hai ví dụ sauđây.1

\Large Đừng tin cô gái ấy.Tôi nói ‘‘thiệt’’ đấy!!!\par

Đừng tin cô gái ấy. Tôi nói“thiệt” đấy!!!

\Large Đừng tin chàng trai ấy.Tôi không ‘‘quan tâm’’ đến anhta.\par

Đừng tin chàng trai ấy. Tôikhông “quan tâm” đến anh ta.

Khi bạn muốn kích hoạt việc thay đổi kích thước font chữ cho cả doạnvăn bản hay nhiều hơn, bạn có thể sử dụng môi trường lệnh để thay đổi.

1\par tương đương với một hàng trắng.

Bảng 5.4: Các font chữ để soạn thảo trong chế độ toán học.

Lệnh Ví dụ Kết quả

\mathcal... $\mathcalB=c$ B = c\mathrm... $\mathrmK_2$ K2

\mathbf... $\sum x=\mathbfv$∑x = v

\mathsf... $\mathsfG\times R$ G× R

\mathtt... $\mathttL(b,c)$ L(b, c)\mathnormal... $\mathnormalR_19\neq R_19$ R 6= R19

\mathit... $\mathitffi\neq ffi$ ffi 6= ffi

5.2 Font chữ và kích thước font chữ 107

\beginLargeĐừng tin những gì congái nói. Nhưng như vậythì còn biết tin vàogì nữa đây???!!! \ldots\endLarge

Đừng tin những gì con gái nói.Nhưng như vậy thì còn biết tinvào gì nữa đây???!!! . . .

Giải pháp này sẽ giúp bạn tránh được việc nhập thiếu dấu đóng ngoặc .

5.2.2 Lưu ý khi sử dụng các lệnh thay đổi định dạng

Như đã nói đến ở đầu chương, việc thay đổi định dạng của font chữ, kíchthước thông qua các lệnh tác động trực tiếp sẽ làm cho tài liệu của chúng tatrở nên không còn trong sáng như ý tưởng ban đầu. Do đó, khi cần thay đổiđịnh dạng của văn bản tại nhiều nơi trong văn bản, bạn nên tạo ra một lệnhmới với lệnh \newcommand.

\newcommand\oops[1]\textbf#1Đừng \oopsbước vào cănphòng này!! Bên trong cănphòng này đangcó một \oopscon vật lạtừ hành tinh khác!.

Đừng bước vào căn phòng này!! Bên trongcăn phòng này đang có một con vật lạ từhành tinh khác!.

Hướng tiếp cận này có những lợi điểm riêng bởi vì bạn có thể thay đổicách định dạng về sau với rất ít công sức. Ngược lại, nếu bạn sử dụng lệnhthay đổi trực tiếp như \textbf thì khi muốn thay đổi định dạng, bạn cầnphải tìm kiếm tất cả các lệnh \textbf trong tài liệu và thay thế nó bởi lệnhđịnh dạng khác. Hãy nghĩ đến sự phức tạp khi mà bạn muốn thay đổi mộtloạt các định dạng phức tạp!!!

5.2.3 Vài lời khuyên

Để kết thúc phần giới thiệu về font chữ và kích thước của font chữ, dưới đâylà một số lời khuyên:

Hãy nhớ là! Sử dụng nhiềuFONT chữkhác nhau Bạnsẽ tạo ra một tài liệu đẹp, và dễ đọc.

108 Tuỳ biến các thành phần của LATEX

5.3 Các khoảng trắng

5.3.1 Khoảng cách giữa cách hàng

Bạn có thể thay đổi khoảng cách giữa các hàng bên trong một tài liệu vớilệnh sau:

\linespreadfactor

ở phần tựa đề của tài liệu. Lệnh \linespread1.3 xác định khoảng cáchgiữa các hàng là “một rưỡi”; lệnh \linespread1.6 xác định khoảng cáchgiữa các hàng là “gấp đôi”. Bình thường thì khoảng cách giữa các hàng khôngđược căng ra cho nên khoảng cách mặc định là 1..

5.3.2 Định dạng đoạn văn

Trong LATEX, có hai tham số ảnh hưởng đến việc trình bày các đoạn văn.Thông qua các lệnh sau

\setlength\parindent0pt\setlength\parskip1ex plus 0.5ex minus 0.2ex

trong phần tựa đề của tập tin dữ liệu vào, bạn có thể thay đổi cách trìnhbày các đoạn văn. Hai lệnh này sẽ tăng khoảng cách giữa các đoạn văn trongkhi thiết lập việc canh lề các đoạn văn là 0.

Phần tham số plus và minus của lệnh trên sẽ cho TEX biết rằng nó cóthể co hẹp lại hay dãn rộng ra việc cách đoạn theo một lượng được xác địnhkhi mà đoạn văn tương ứng cần phải nằm vừa vặn trong một trang.

Theo định dạng văn bản thông thường ở châu Âu, các đoạn văn thườngcách nhau bởi một khoảng trắng và không được canh lề. Nhưng bạn nênlưu ý rằng, cách định dạng này cũng có những ảnh hưởng riêng đến bảngmục lục: khoảng cách giữa các hàng sẽ tương đối lớn làm cho bảng mục lụctrở nên “lỏng lẽo”. Để tránh điều này, bạn có thể đặt hai lệnh định dạngkhoảng cách ở trong phần tựa đề vào phần nội dung của tài liệu, ở sau lệnh\tableofcontent hoặc bạn có thể không sử dụng hai lệnh định dạng trên.Hầu hết các tài liệu chuyên nghiệp đều sử dụng định dạng đoạn văn bằngcách canh lề chứ không dùng khoảng trắng để cách đoạn.

5.3 Các khoảng trắng 109

Để canh lề một đoạn văn chưa được canh lề, hãy sử dụng lệnh sau:

\indent

ở phần đầu của đoạn văn.2. Hiển là lệnh này sẽ không có tác động khi lệnh\parindent được chỉnh là 0.

Để chỉnh cho đoạn văn không được canh lề, bạn có thể sử dụng lệnh sau:

\noindent

ở vị trí đầu tiên của đoạn văn. Lệnh này rất có ích khi bạn bắt đầu một tàiliệu bằng phần văn bản chứ không phải lệnh tạo đề mục.

5.3.3 Khoảng trắng ngangLATEX tác động xác định khoảng trắng giữa các từ và các câu một cách tựđộng. Để thêm vào khoảng trắng ngang, bạn có thể dùng lệnh:

\hspacelength

Trong tình huống bạn muốn giữ nguyên các khoảng trắng này tại vị trícuối hàng hoặc đầu hàng, bạn có thể sử dụng lệnh \hspace* thay cho lệnh\hspace. Tham số length chỉ đơn thuần là một con số và đơn vị đo tươngứng (trong tình huống đơn giản nhất). Các đơn vị thường dùng được liệt kêtrong bảng 5.5..

Đây là một khoảngtrắng dài \hspace1.5cm1.5 cm.

Đây là một khoảng trắng dài 1.5cm.

Lệnh

\stretchn

sẽ tạo ra các khoảng trắng đặc biệt. Nó sẽ dãn ra cho đến khi nó sử dụnghết tất cả các khoảng trắng trên hàng. Nếu hai lệnh \hspace\stretchnxuất hiện trên cùng một hàng thì việc dãn rộng các khoảng trắng sẽ đượcquyết định dựa trên tham số n.

2Để canh lề cho đoạn văn đầu tiên nằm ở sau tựa đề mục, bạn có thể sử dụng góiindentfirst trong bộ các công cụ

110 Tuỳ biến các thành phần của LATEX

Bảng 5.5: Các đơn vị trong TEX.

mm millimetre ≈ 1/25 inchcm centimetre = 10 mmin inch = 25.4 mmpt điểm ≈ 1/72 inch ≈ 1

3mm

em xấp xỉ chiều rộng của chữ ‘M’ trong font chữ hiện thờiex xấp xỉ chiều cao của chữ ‘x’ trong font chữ hiện thời

x\hspace\stretch1x\hspace\stretch3x

x x x

When using horizontal space together with text, it may make sense tomake the space adjust its size relative to the size of the current font. Thiscan be done by using the text-relative units em and en:

\Largebig\hspace1emy\\\tinytin\hspace1emy

big ytin y

5.3.4 Khoảng trắng dọcKhoảng cách giữa các đoạn văn, mục, mục con, . . . được xác định một cáchtự động bởi LATEX. Khi cần thiết, các khoảng trắng dọc giữa hai đoạn văncó thể được thêm vào với lệnh sau:

\vspacelength

Lệnh này nên được sử dụng giữa hai hàng trắng. Khi cần giữ khoảngtrắng ở đầu hay cuối trang, bạn có thể sử dụng lệnh \vspace* thay cho lệnh\vspace..

Lệnh \stretch cùng với lệnh \pagebreak có thể được sử dụng để soạnthảo phần văn bản ở hàng cuối cùng của một trang hay canh giữa văn bảntheo chiều dọc của trang giấy.

Một vài lưu ý \ldots

\vspace\stretch1

5.4 Trình bày trang 111

Đây sẽ là hàng cuối của trang.\pagebreak

Lệnh sau sẽ cho phép bạn thay đổi khoảng cách giữa các hàng trong cùngmột đoạn văn hay trong cùng một biểu bảng:

\\[length]

Với lệnh \bigskip và \smallskip, bạn có thể cách quãng một khoảngcách định trước theo chiều dọc.

5.4 Trình bày trangLATEX 2ε cho phép bạn xác định kích thước trang giấy trong lệnh\documentclass. Sau khi được cung cấp kích thước giấy, LATEX sẽ tự độngxác định kích thước các biên. Tuy nhiên, đôi khi thao tác tự động này khôngđáp ứng được yêu cầu định dạng của bạn. Và với LATEX, bạn hoàn toàn cókhả năng tuỳ biến điều này cho phù hợp với yêu cầu công việc.. Hình 5.2sẽ cung cấp cho bạn một cái nhìn tổng quát về các tham số có thể thay đổinhằm thực hiện việc định dạng theo yêu cầu.3

Tuy nhiên, bạn cần phải cẩn thận trước khi quyết định việc thay đổiđịnh dạng. Bản thân LATEX đã cố gắng lựa chọn cho bạn những mẫu địnhdạng mang tính chất chuyên nghiệp và tương đối chuẩn trong soạn thảo tàiliệu. Do đó, đôi khi việc tuỳ biến các định dạng này sẽ cho các bạn một kếtquả ngoài dự kiến (thông thường thì kết quả sẽ tệ hơn!!!).

Để bạn hiểu rõ hơn, ta bắt đầu đi vào phân tích vấn đề. Khi bạn tự sosánh một trang tài liệu của mình với một trang tài liệu được soạn thảo bằngMS Word, bạn sẽ thấy rằng trang tài liệu được soạn bằng LATEX nhỏ hơn.Tuy nhiên, nếu bạn nhìn kĩ vào các quyển sách đã được xuất bản4 và đếmsố kí tự trên một hàng, bạn sẽ thấy rằng mỗi hàng thường không chứ quá66 kí tự. Bây giờ, bạn hãy tiến hành kiểm tra tài liệu được soạn thảo bằngLATEX, bạn cũng sẽ có kết quả tương tự. Kinh nghiệm trong ngành in ấn đãcho thấy rằng các hàng quá dài sẽ gây khó khăn cho người đọc, dễ làm chongười đọc bị mỏi mắt (đây cũng là lý do vì sao mà các tờ báo lại chọn cáchin dạng nhiều cột).

Như vậy, nếu bạn tự ý tăng độ rộng của phần văn bản, bạn đã vô tìnhgây khó khăn cho người đọc. Tuy nhiên, chúng ta vẫn giới thiệu cho các bạnbiết về các lệnh để thực hiện việc này (nhưng bạn nên để LATEX tự động lựachọn cách trình bày chuẩn nhất).

3CTAN:/tex-archive/macros/latex/required/tools4các quyển sách được in bởi các nhà xuất bản danh tiếng.

112 Tuỳ biến các thành phần của LATEX

Header

Body

Footer

MarginNotes

i8 -

i7

?

6

i1 -

-i3

i10 -

- i9

6

?

i11

i2

?

6i4

6

?

i5

6

?

i6

6

?

1 one inch + \hoffset 2 one inch + \voffset3 \oddsidemargin = 10pt 4 \topmargin = 23pt

or \evensidemargin5 \headheight = 16pt 6 \headsep = 19pt7 \textheight = 592pt 8 \textwidth = 390pt9 \marginparsep = 7pt 10 \marginparwidth = 88pt

11 \footskip = 30pt \marginparpush = 7pt (not shown)\hoffset = 0pt \voffset = 0pt\paperwidth = 597pt \paperheight = 845pt

Hình 5.2: Các tham số trong việc trình bày trang.

5.5 Các vấn đề khác với việc định dạng chiều dài 113

LATEX cung cấp 2 lệnh để thay đổi các tham số này. Thông thường, cáclệnh này thường được đặt trong phần tựa đề của tài liệu.

Lệnh đầu tiên này sẽ gán một giá trị cố định cho một tham số bất kỳ:

\setlengthparameterlength

Lệnh thứ hai này sẽ cộng thêm vào giá trị hiện tại của tham số:

\addtolengthparameterlength

Lệnh thứ hai này hữu ích hơn lệnh thứ nhất (\setlength) bởi vì bạn cóthể thao tác dựa trên các định dạng sẵn có. Để thêm vào vào chiều rộng củaphần nội dung 1cm, bạn thêm lệnh sau vào phần tựa đề của tài liệu:

\addtolength\hoffset-0.5cm\addtolength\textwidth1cm

Trong tình huống này, bạn có thể xem thêm gói calc. Gói này sẽ cho phépbạn sử dụng các toán tử số học trong tham số của lệnh \setlength và cácvị trí khác khi bạn nhập giá trị vào tham số của một hàm.

5.5 Các vấn đề khác với việc định dạng chiềudài

Khi có thể, tôi thường tránh việc sử dụng các chiều dài thuần tuý trong cáctài liệu được soạn thảo bởi LATEX. Thông thường, ta nên dựa vào các thamsố cơ bản như chiều dài, rộng của các phần tử khác của một trang. Đối vớichiều rộng của một hình minh họa, bạn nên sử dụng lệnh \textwidth đểchỉnh cho hình minh họa nằm trọn trong một trang.

3 lệnh dưới đây sẽ giúp bạn xác định chiều rộng, cao và sâu của chuỗivăn bản.

\settoheightvariabletext\settodepthvariabletext\settowidthvariabletext

Ví dụ dưới đây cho thấy tác dụng của 3 lệnh trên.

114 Tuỳ biến các thành phần của LATEX

\flushleft\newenvironmentvardesc[1]%

\settowidth\parindent#1:\ \makebox[0pt][r]#1:\

\begindisplaymatha^2+b^2=c^2\enddisplaymath

\beginvardescVới$a$,$b$ -- là hai cạnh kề củagóc vuông của tam giác vuông.

$c$ -- là cạnh huyền củatam giác vuông.

$d$ -- chưa được đề cập ở đây!!!!\endvardesc

a2 + b2 = c2

Với: a, b – là hai cạnh kề của góc vuông củatam giác vuông.

c – là cạnh huyền của tam giác vuông.

d – chưa được đề cập ở đây!!!!

5.6 Các hộp

LATEX xây dựng các trang bằng cách kết hợp các hộp. Đầu tiên, mỗi kí tự làmột hộp nhỏ. Chúng sẽ được gắn lại với nhau để tạo nên các từ. Sau đó, cáctừ này lại được gắn lại với nhau để tạo ra các từ khác. Tuy nhiên, với loại“keo” kết dính đặc biệt thì chúng có thể co dãn được để có thể nằm trọn trênmột hàng.

Đây chỉ là một cách nói nôm na cơ chế làm việc của LATEX. Không chỉcác kí tự mới có thể được đóng hộp. Chúng ta có thể đặt hầu hết mọi thứvào trong một cái hộp (ngay cả một cái hộp khác). Khi này, mỗi một hộp sẽđược LATEX xem như một kí tự đơn.

Trong các chương trước, chúng ta đã bắt gặp các hộp (bao quanh cáclệnh, . . . ). Môi trường tabular và lệnh \includegraphics sẽ hỗ trợ bạn tạonên các hộp trong tài liệu. Điều này có nghĩa là bạn có thể sắp xếp hai biểubảng hay hình ảnh kế bên nhau. Điều duy nhất bạn cần quan tâm ở đây làtổng chiều rộng của hai đối tượng này không được vượt quá chiều rộng củavăn bản.

5.6 Các hộp 115

Ngoài ra, bạn cũng có thể đóng khung một đoạn văn với lệnh

\parbox[pos]widthtext

hay môi trường

\beginminipage[pos]width text \endminipage

Tham số pos có thể có các giá trị như c,t hay b để canh lề hộp theo chiềudọc trong mối quan hệ với vạch giới hạn xung quanh phần văn bản. Tham sốwidth sẽ xác định chiều rộng của hộp. Điểm khác biệt chính giữa môi trườngminipage và lệnh \parbox là bạn không thể sử dụng tất cả các lệnh và môitrường bên trong một hộp được tạo bởi lệnh \parbox. Ngược lại, bạn có thểlàm mọi việc bên trong môi trường minipage.

Trong khi lệnh \parbox đóng khung cả đoạn văn bản gồm cả việc xuốnghàng, . . . ta có một lớp các lệnh đóng khung khác chỉ làm việc với các văn bảnđược canh lề theo chiều ngang. Đó là lệnh \mbox. Lệnh này chỉ đơn thuầnxếp chặt một loạt các hộp vào trong một hộp khác. Bạn có thể ngăn chặnviệc LATEX tách rời 2 từ bằng cách sử dụng lệnh này. Lệnh này có tính linhhoạt rất cao.

\makebox[width][pos]text

Tham số width xác định độ rộng của hộp.5 Bên cạnh các tham số về độ dài,bạn có thể sử dụng các lệnh \width, \height, \depth và \totalheight bêntrong biểu thức về độ dài. Các tham số này có thể được chỉnh dựa trên cácgiá trị có được bằng cách đo độ rộng của phần văn bản text. Tham số poslấy các giá trị sau: c: văn bản sẽ được canh giữa, l: văn bản sẽ được dồn vềtrái, r: văn bản sẽ được dồn về bên phải hay s: văn bản sẽ được dàn trải ratrong hộp.

Lệnh \framebox hoạt động tương tự như lệnh \makebox nhưng nó chỉđơn thuần vẽ một hộp bên ngoài phần văn bản.

Ví dụ dưới đây cho thấy một số ứng dụng của lệnh \makebox và lệnh\framebox

5Điều này có nghĩa là hộp có thể nhỏ hơn phần nội dung bên trong. Bạn có thể chỉnhđộ rộng của hộp là 0pt để phần văn bản bên trong hộp được soạn thảo mà không bị ảnhhưởng bởi hộp bao quanh.

116 Tuỳ biến các thành phần của LATEX

\makebox[\textwidth]%ở giữa\par

\makebox[\textwidth][s]%dàn trải\par

\framebox[1.1\width]Đóngkhung một văn bản! \par

\framebox[0.8\width][r]Ô kìa,phần văn bản quá dài!!! \par

\framebox[1cm][l]không cóchi, tôi cũng vậy

Bạn đọc được phần văn bản này chứ?

ở giữa

dàn trải

Đóng khung một văn bản!

Ô kìa, phần văn bản quá dài!!!

không có chi, tôi cũng vậyBạn đọc được phần văn bản này chứ?

Bây giờ, bạn đã có thể điều khiển việc định dạng theo chiều ngang, bướctiếp theo là việc thực hiện những định dạng theo chiều dọc.6.

\raiseboxlift[depth][height]text

lệnh này cho phếp bạn định nghĩa thuộc tính theo chiều dọc của hộp. Bạncũng có thể sử dụng các lệnh \width, \height, \depth và \totalheight ở3 tham số đầu để xác định kích thước của hộp bên trong tham số text.

\raisebox0pt[0pt][0pt]\Large%\textbfAaaa\raisebox-0.3exa%\raisebox-0.7exaa%\raisebox-1.2exr%\raisebox-2.2exg%\raisebox-4.5exhHãy chú ý khả năng địnhdạng hết sức tinhtế và thú vị của \LaTeX.

Aaaaaaargh

Hãy chú ý khả năngđịnh dạng hết sức tinh tế và thú vị của LATEX.

5.7 Đường kẻ và thanh ngangTrong một số trang ở các phần trước, bạn đã thấy lệnh:

\rule[lift]widthheight

Thông thường, lệnh này được sử dụng để vẽ các hộp đen.

6Việc điều khiển định dạng hoàn toàn phải là sự tổng hợp hài hoà của việc điều khiểntheo chiều ngang và theo chiều dọc

5.7 Đường kẻ và thanh ngang 117

\rule3mm.1pt%\rule[-1mm]5mm1cm%\rule3mm.1pt%\rule[1mm]1cm5mm%\rule3mm.1pt

Lệnh này rất hữu dụng để vẽ các hàng ngang và hàng dọc. Ví dụ như đườngkẻ ngang trong phần tựa đề của trang được tạo với lệnh \rule.

Một đường kẻ ngang không có chiều rộng và chỉ có một chiều cao xácđịnh là một trường hợp đặc biệt. Trong ngành soạn thảo chuyên nghiệp, nóđược gọi là “strut”. Nó được sử dụng để đảm bảo rằng một thành phần trêntrang giấy có một chiều cao nhỏ nhất xác định. Bạn có thể sử dụng nó trongmôi trường bảng để chắc chắn rằng mỗi hàng có một chiều cao xác định nhỏnhất.

\begintabular|c|\hline\rule1pt4exPitprop \ldots\\\hline\rule0pt4exStrut\\\hline\endtabular

Pitprop . . .

Strut

Hết.

Chương 6

Soạn thảo tài liệu tiếng Việt

Sau khi kết thúc các chương trước, bạn đã có một cái nhìn thật tổng quát vềLATEX. Bây giờ bạn đã có những kiến thức cơ bản về các thành phần cần thiết đểsoạn thảo một tài liệu “chuyên nghiệp” với LATEX. Tuy nhiên, để soạn thảo bằngtiếng Việt thì bạn cần phải học thêm một số vấn đề nữa. Chương này sẽ hướngdẫn bạn cài đặt và sử dụng các gói cần thiết để soạn thảo bằng tiếng Việt.

6.1 Một số gói hỗ trợ việc soạn thảo tài liệubằng tiếng Việt1

6.1.1 Gói VnTeX của tác giả Hàn Thế ThànhGói này bao gồm các bộ font chữ và các tập tin sau: Các tập tin định nghĩa về font và các macro hỗ trợ việc soạn thảo tiếng

Việt với LATEX và TEX. Các font chữ VNR (mf và tfm) Các font chữ VCMR2. Các font chữ VNPS 3

Bộ font chữ VNR đã có trên server CTAN từ lâu nhưng chỉ với bảng mãVISCII. Sau này, tác giả Hàn Thế Thành đã đưa thêm vào bảng mã TCVNvà VPS cho bộ font này.

1Tham khảo từ tài liệu hướng dẫn sử dụng gói VnTeX của Nguyễn Đại2Các font chữ dựa trên các font CMR3Các font chữ dựa trên font PS

6.2 Cài đặt và sử dụng gói VnTeX 119

Ngoài ra, tác giả Hàn Thế Thành cũng đã tự tạo ra bộ font chữ VCMRvà VNPS dựa trên nền tảng là các font chữ cơ bản sẵn có của TEX. Ưu điểmcủa bộ font này là người dùng không cần thêm bất cứ font nào khác mà chỉcần các tập tin định nghĩa font và macro đi kèm trong gói VnTeX là đủ.

6.1.2 Gói BK

Đây là gói sử dụng các font chữ True Type của ĐHBK-TPHCM. Các fontchữ này đã được tác giả Hàn Thế Thành thích ứng cho pdfTEX. Theo tácgiả thì bộ font này có chất lượng không tốt và chỉ thích hợp với pdfTEX (bộfont này sử dụng cơ chế mã hoá font cũ là ET5).

6.1.3 Gói GVS

Đây là phiên bản cũng sử dụng các font chữ True Type 1 của ĐHBK-TPHCMnhưng đã được Hàn Thế Thành sửa lỗi đồng thời định nghĩa font và các macrođể đưa vào sử dụng. Bộ font này có thể được sử dụng trong cả LATEX, TEX,pdfLATEX và pdfTEX. Các font chữ trong gói này có chất lượng cao hơn hẳncác font chữ trong gói BK. Để sử dụng gói này, trước tiên bạn phải cài đặtgói VnTeX.

6.2 Cài đặt và sử dụng gói VnTeX

Gói VnTeX hỗ trợ rất tốt cho việc soạn thảo tài liệu tiếng Việt với LATEX.Hơn nữa, gói này hoàn toàn miễn phí. Do đó, chúng tôi sẽ hướng dẫn cài đặtvà sử dụng gói này. Trên cơ bản, nếu bạn muốn cài đặt các gói khác thì cácthao tác thực hiện cũng tương tự.

6.2.1 Tải các gói cần thiết về máy tínhNếu chưa có gói VnTeX, bạn có thể tải về từ địa chỉ sau:http://vinux.sourceforge.net/vntex.Còn đối với gói GVS, bạn có thể tải về ở địa chỉ:http://VietLUG.SF.net/download/.

6.2.2 Cài đặt gói VnTeX trên môi trường Windows vớiMikTeX

Việc cài đặt gói VnTeX trên môi trường Windows diễn ra rất đơn giản. Bạnchỉ cần thực hiện theo thứ tự các bước sau:

120 Soạn thảo tài liệu tiếng Việt

1. Nếu đã cài đặt gói VnTeX từ trước thì bạn cần phải gỡ bỏ phiên bảntrước đó ra trước khi cài đặt gói VnTeX mới nhất (nếu bạn chưa từngcài đặt gói này thì hãy tiến hành bước tiếp theo). Để thực hiện việcgỡ bỏ gói VnTeX đã được cài đặt, bạn cần thực hiện các thao tác sau:Programs −→ MikTeX −→ MikTeX Options. Sau khi chương trìnhMikTeX Options được gọi, bạn hãy chọn tab Packages −→ Language−→ Vietnamese. Khi này bạn cần bỏ đi tuỳ chọn vntex.

2. Giải nén tập tin lưu trữ gói VnTeX vào một thư mục nào đó trên máy(nếu bạn cài đặt MikTeX vào thư mục C:\texmf thì giải nén tập tinnày vào thư mục C:\vntex).

3. Thực hiện: Programs−→MikTeX−→MikTeX Options. Sau khi chươngtrình được thực thi, hãy chọn tab Root. Sau đó, chọn lệnh Add và thêmvào thư mục C:\vntex.

4. Để sử dụng được các font True Type loại 1 đi kèm với gói này, bạn cầnphải báo cho chương trình dvips và pdfTEX biết về các font chữ này:

- Thêm vào tập tin C:\texmf\dvips\config\config.ps hàng sau:p +vnr.map

- Thêm vào tập tin C:\texmf\pdftex\config\pdftex.cfg hàng sau:map +vnr.map

6.2.3 Cài đặt gói VnTeX trên môi trường UnixĐể thực hiện việc cài đặt, bạn cần phải thực hiện theo các bước sau:

1. Gỡ bỏ các phiên bản trước của gói VnTex đã có trên máy. Trong trườnghợp bạn đã cài đặt phiên bản trước của gói VnTeX vào một thư mụctexmf riêng biệt thì việc gỡ bỏ là rất đơn giản: bạn chỉ cần xoá thưmục đó đi. Trong trường hợp bạn đã cài đặt phiên bản trước của vntexvào một thư mục texmf khác có các tập tin khác ngoài các tập tin kèmtheo gói VnTeX, cách tốt nhất là bạn tiến hành việc tìm kiếm các tậptin bắt đầu bằng “vn”, các tập tin có các tiền tố liên quan khác và xoáchúng (hãy chú ý là đừng xoá nhằm các tập tin không phải của góiVnTeX).

2. Giải nén gói VnTeX (tập tin vntex-<ngày tháng>.tar.bz2) vào thư mụcnào đó (ví dụ như $HOME/vntex). Việc giải nén gói VnTeX vào thưmục texmf cũng có thể được thực hiện nhưng điều này không cầnthiết. Sau khi giải nén xong, bạn sẽ nhận được cấu trúc cây thư mụcnhư sau:

6.2 Cài đặt và sử dụng gói VnTeX 121

$HOME/vntex|__ doc| \__ generic| \__ vntex|__ dvips| \__ vntex|__ fontname|__ fonts| |__ source| |__ \__ public| | \__ vnr| |__ tfm| | \__ public| | \__ vnr| \__ type1| \__ public| \__ vnr|__ tex| |__ latex| | \__ vietnam| |__ plain| |__ \__ vietnam| \__ texinfo\__ web2c

3. Thay đổi cấu hình của TEX để bạn có thể sử dụng được các tập tintrong cây thư mục $HOME/vntex

- Tạo một thư mục để lưu trữ tập tin texmf.cnf(ví dụ như $HOME/texmf/web2c):

mkdir -p $HOME/textmf/web2c

- Tạo bản sao của tập tin texmf.cnf trong thư mục$HOME/vntex/web2c:

cp ‘kpsewhich texmf.cnf ‘$HOME/texmf/web2c/texmf.cnf

- Chỉnh biến môi trường TEXMFCNF chỉ đến vị trí của tập tintexmf.cnf (ví dụ như bạn sử dụng bash và đặt vào .bash_profilehàng sau:

122 Soạn thảo tài liệu tiếng Việt

export TEXMFCNF=$HOME/texmf/web2c

- Sửa đổi tập tin texmf.cnf để đưa thư mục $HOME/vntex vàodanh sách cây thư mục của texmf thông qua việc thay đổi biếnTEXMF. Tìm kiếm hàng bắt đầu với TEXTMF = (các thôngsố ban đầu có thể khác với những gì đưa ra ở đây).

TEXMF=$TEXMFLOCAL,$VARTEXMF,!!$TEXMFMAIN

và thay đổi chúng thành:

TEXMF=$HOME/vntex,$TEXMFLOCAL,$VARTEXMF,!!$TEXMFMAIN

- Kiểm tra lại xem ta có chỉnh đúng chưa:

. .bash_profiletexhashkpsewhich vnr10.mf

Nếu mọi việc đều được tiến hành đúng, bạn sẽ có kết quả giốngnhư sau:

$HOME/vntex/fonts/source/public/vnr/vnr10.mf

4. Nếu bạn có tải về các font chữ True Type 1 (chứa trong tập tinvnr-t1-<ngày tháng>.tar.bz2), bạn hãy giải nén nó vào cùng thư mục(như là $HOME/vntex). Sau khi giải nén, bạn sẽ có các font chữ nhưsau:

$HOME/vntex/fonts/type1/public/vnr/vnb10.pfb$HOME/vntex/fonts/type1/public/vnr/vnbx10.pfb...

Các font chữ này sẽ hỗ trợ rất nhiều cho việc dịch ra tập tin PS vàPDF. Để có thể sử dụng được các font chữ này với chương trình dvipsvà pdfTEX, bạn cần phải thay đổi một chút tập tin cấu hình như sau(nếusử dụng dvipdfm thì không cần thay đổi gì thêm):

- Tạo bản sao của tập tin config.ps (được đọc bởi dvips):

6.2 Cài đặt và sử dụng gói VnTeX 123

mkdir -p $HOME/texmf/dvips/configcd $HOME/texmf/dvips/configcp ‘kpsewhich --format=’dvips config’ config.ps‘.

- Thêm vào tập tin $HOME/texmf/dvips/config hàng sau:

p +vnr.map

- Tạo bản sao của tập tin pdftex.cfg (được đọc bởi pdfTEX):

mkdir -p $HOME/texmf/pdftex/configcd $HOME/texmf/pdftex/configcp ‘kpsewhich --format=’PostScript header’ pdftex.cfg‘.

- Thêm vào tập tin $HOME/texmf/pdftex/config hàng sau:

map +vnr.map

6.2.4 Soạn thảo tài liệu bằng tiếng Việt với LATEX

Gói VnTeX có thể được đưa vào sử dụng theo hai cách sau:

- Chỉ cần thêm dòng sau vào phần tựa đề của tài liệu.

\usepackage[viscii]vietnam

Lệnh trên sẽ báo cho LATEX biết rằng bạn sẽ nhập liệu tiếng Việt theobảng mã VISCII. Ngoài ra, gói VnTeX còn hỗ trợ việc nhập liệu theocác bảng mã sau:

Kí hiệu Bảng mãviscii Bảng mã VISCIImviscii Bảng mã Mac VISCIItcvn Bảng mã TCVN1vps Bảng mã VPSutf8 Bảng mã UTF-8dblaccnt Nạp vào gói dblaccntnoinputenc Không nạp vào gói inputenc (sử dụng TCX).nocaption Không định nghĩa phần tựa đề bằng tiếng Việt.

124 Soạn thảo tài liệu tiếng Việt

- Ngoài ra, bạn có thể sử dụng gói babel thay cho gói vietnam. Khi này,tất cả các mục như: chương, mục, . . . đều được chuyển sang tiếng Việt.

\usepackage[tcvn]inputenc\usepackage[vietnam]babel

TCX rất hữu dụng để đọc được các kí tự tiếng Việt trong các thôngbáo về việc tràng hàng. Gói VnTeX đi kèm với hai bảng mã TCX: viscii-t5và tcvn-t5. Lưu ý rằng khi sử dụng TCX thì bạn không cần phải sử dụnginputenc. Bạn cần thêm vào đầu tập tin dữ liệu chỉ thị sau:

%& -translate-file=tcvn-t5

Việc thêm vào chỉ thị lệnh này tương đương với việc dịch tập tin với thamsố sau:

latex -translate-file=tcvn-t5 thu_nghiem.tex

Để sử dụng các bảng mã khác thì bạn cũng thao tác như các bước trên.

6.2.5 Soạn thảo tài liệu với TEX đơn thuầnNhập liệu với bảng mã UTF-8 không được hỗ trợ đối với TEX đơn thuần.Đối với các bảng mã khác thì các thao tác tiếng hành gần như là tương tự:

- Sử dụng chung với gói plainenc:

\input t5code\input plnpss\input plainenc\fontencodingT5 \inputencodingtcvn % hay các bảngmã khác trừ UTF-8\setfontencodingT5\selectfont

< . . . phần văn bản được soạn thảo theo mã TCVN1 . . .>\bye

- Sử dụng chung với gói TCX:

%& -translate-file=tcvn-t5\input t5code\input plnfss

6.2 Cài đặt và sử dụng gói VnTeX 125

\setfontencodingT5\selectfont

< . . . Phần soạn thảo theo mã TCVN1 . . .>

\bye

6.2.6 Sử dụng với texinfo

Khi này, bạn cần phải sử dụng TCX:

%& -translate-file=viscii-t5\def\fontprefixvn\input t5code.tex\input texinfo

< . . . phần dữ liệu được soạn thảo theo mã viscii-t5 . . . >

6.2.7 Ví dụ áp dụng

Để giúp bạn hiểu rõ hơn cách sử dụng gói VnTeX để soạn thảo tiếng Việt,dưới đây là một số ví dụ:

Phần đầu của một tài liệu sẽ như sau:

\documentclass[12pt,a4paper]article\usepackage[tcvn]vietnam

Phần thân của tài liệu được soạn thảo như sau:

126 Soạn thảo tài liệu tiếng Việt

\begincenter\Large Phương trình bậc hai\endcenterPhương trình bậc hai làphương trình có dạng:\beginequation\labeleq:ptb2ax^2 + bx + c = 0\qquad (a \neq 0)\endequation

Để giải phương trìnhbậc hai, ta cần phảithực hiện các bước sau:\beginenumerate\item

Tính biệt thức $\Delta$ như sau:\[ \Delta = b^2 - 4ac\]

\itemSau khi tính biệt thức $\Delta$,ta xét đến các trường hợp sau:\beginitemize\itemNếu $\Delta < 0$ thì phươngtrình (\refeq:ptb2) vô nghiệm.

\itemNếu $\Delta \geq 0$ thìphương trình (\refeq:ptb2)có nghiệmnhư sau:\beginitemize

\item [*]Nếu $\Delta = 0$ thìphương trình (\refeq:ptb2)có 1nghiệm kép là:\[ x_1 = x_2 = - \;\fracb2a \]

\item [*]Nếu $\Delta > 0$ thìphương trình có hainghiệm phân biệtlà:\[ x_1 =

\frac-b-\sqrt\Delta2a \]\[ x_2 =

\frac-b+\sqrt\Delta2a \]\enditemize

\enditemize\endenumerate

Phương trình bậc haiPhương trình bậc hai là phương trình códạng:

ax2 + bx + c = 0 (a 6= 0) (6.1)

Để giải phương trình bậc hai, ta cần phảithực hiện các bước sau:

1. Tính biệt thức ∆ như sau:

∆ = b2 − 4ac

2. Sau khi tính biệt thức ∆, ta xét đếncác trường hợp sau: Nếu ∆ < 0 thì phương trình (6.1)

vô nghiệm. Nếu ∆ ≥ 0 thì phương trình (6.1)có nghiệm như sau:

* Nếu ∆ = 0 thì phương trình(6.1) có 1 nghiệm kép là:

x1 = x2 = − b

2a

* Nếu ∆ > 0 thì phương trìnhcó hai nghiệm phân biệt là:

x1 =−b−

√∆

2a

x2 =−b +

√∆

2a

Tài liệu tham khảo

[1] Leslie Lamport. LATEX: A Document Preparation System. Addison-Wesley, Reading, Massachusetts, second edition, 1994, ISBN 0-201-52983-1.

[2] Donald E. Knuth. The TEXbook, Volume A of Computers and Type-setting, Addison-Wesley, Reading, Massachusetts, second edition, 1984,ISBN 0-201-13448-9.

[3] Michel Goossens, Frank Mittelbach and Alexander Samarin. The LATEX

Companion. Addison-Wesley, Reading, Massachusetts, 1994, ISBN 0-201-54199-8.

[4] Each LATEX installation should provide a so-called LATEX Local Guide,which explains the things that are special to the local system. It shouldbe contained in a file called local.tex. Unfortunately, some lazy sysopsdo not provide such a document. In this case, go and ask your local LATEXguru for help.

[5] LATEX3 Project Team. LATEX2ε for authors. Comes with the LATEX 2εdistribution as usrguide.tex.

[6] LATEX3 Project Team. LATEX2ε for Class and Package writers. Comeswith the LATEX 2ε distribution as clsguide.tex.

[7] LATEX3 Project Team. LATEX2ε Font selection. Comes with the LATEX 2εdistribution as fntguide.tex.

[8] D. P. Carlisle. Packages in the ‘graphics’ bundle. Comes with the ‘gra-phics’ bundle as grfguide.tex, available from the same source yourLATEX distribution came from.

[9] Rainer Schopf, Bernd Raichle, Chris Rowley. A New Implementationof LATEX’s verbatim Environments. Comes with the ‘tools’ bundle asverbatim.dtx, available from the same source your LATEX distributioncame from.

128 TÀI LIỆU THAM KHẢO

[10] Graham Williams. The TeX Catalogue is a very complete listingof many TEX and LATEX related packages. Available online fromCTAN:/tex-archive/help/Catalogue/catalogue.html

[11] Keith Reckdahl. Using EPS Graphics in LATEX2ε Documents, whichexplains everything and much more than you ever wanted to knowabout EPS files and their use in LATEX documents. Available onlinefrom CTAN:/tex-archive/info/epslatex.ps

[12] Kristoffer H. Rose XY-pic User’s Guide. Downloadable from CTAN withXY-pic distribution

Danh mục từ khóa

", 23\(, 51\), 51\,, 53, 59-, 23−, 23\-, 22–, 23—, 23., sau khoảng trắng, 35. . . , 25\:, 59\;, 59\@, 35\[, 52độc đáo, 1đơn vị, 109đoạn văn, 18\\, 20, 41, 42, 45, 111\\*, 20\], 52~, 35

hai mặt, 12một mặt, 12tựa đề của tài liệu, 12

A4 paper, 12A5 paper, 12a, 26acute, 26\addtolength, 113æ, 26

ae, 28aeguill, 28, 87amsbsy, 65amsfonts, 53, 74amsmath, 56–59, 61, 62, 65amssymb, 53, 66\and, 37\appendix, 36, 37\ar, 97\arccos, 56\arcsin, 56\arctan, 56\arg, 56array, 60article class, 11\author, 37, 91

B5 paper, 12bảng, 44ba chấm chéo, 58babel, 21, 26, 27\background, 95\backmatter, 37\backslash, 6\begin, 40\bibitem, 78\Big, 58\big, 58\Bigg, 58\bigg, 58\bigskip, 111\binom, 56BK, 119

130 DANH MỤC TỪ KHÓA

bm, 65\bmod, 56\boldmath, 65\boldsymbol, 65book class, 11brazilian, 29

cấu trúc, 7Các chữ cái Hy lạp, 54các lệnh ‘dễ vỡ’, 49các phương trình dài, 61công thức toán học, 51căn bậc hai, 54calc, 113canh trái, 41\caption, 48, 49\cdot, 55\cdots, 58center, 41chỉ mục, 80chữ nhỏ, 104\chapter, 36\chaptermark, 83\ci, 101\cite, 78CJK package, 33\cleardoublepage, 49\clearpage, 49\cline, 45color, 93commands

\(, 51\), 51\,, 53, 59\-, 22\:, 59\;, 59\@, 35\[, 52\\, 20, 41, 42, 45, 111\\*, 20

\], 52\addtolength, 113\and, 37\appendix, 36, 37\ar, 97\arccos, 56\arcsin, 56\arctan, 56\arg, 56\author, 37, 91\background, 95\backmatter, 37\backslash, 6\begin, 40\bibitem, 78\Big, 58\big, 58\Bigg, 58\bigg, 58\bigskip, 111\binom, 56\bmod, 56\boldmath, 65\boldsymbol, 65\caption, 48, 49\cdot, 55\cdots, 58\chapter, 36\chaptermark, 83\ci, 101\cite, 78\cleardoublepage, 49\clearpage, 49\cline, 45\cos, 56\cosh, 56\cot, 56\coth, 56\csc, 56\date, 37\ddots, 58

DANH MỤC TỪ KHÓA 131

\deg, 56\depth, 115, 116\det, 56\dim, 56\displaystyle, 63\documentclass, 10, 15, 21\dq, 31\dum, 100, 101\emblema, 96\emph, 39, 104\end, 40\eps, 78\eqref, 52\EUR, 24\exp, 56\fbox, 22\flq, 31\flqq, 31\footnote, 38, 50\frac, 56\framebox, 115\frenchspacing, 35\frontmatter, 37\frq, 31\frqq, 31\fussy, 21\gcd, 56\height, 115, 116\hline, 45\hom, 56\href, 90, 91, 93\hspace, 103, 109\hyphenation, 21\idotsint, 59\iiint, 59\iint, 59\include, 16\includegraphics, 77, 88, 92, 114\includeonly, 16\indent, 109\index, 80

\inf, 56\input, 16\int, 57\item, 40\ker, 56\label, 37, 38, 52\LaTeX, 22\LaTeXe, 22\ldots, 25, 58\left, 58\leftmark, 83\lg, 56\lim, 56\liminf, 56\limsup, 56\linebreak, 20\linespread, 108\listoffigures, 48\listoftables, 48\ln, 56\log, 56\mainmatter, 37, 91\makebox, 115\makeindex, 80\maketitle, 37\marginsize, 95\mathbb, 53\mathrm, 62\max, 56\mbox, 22, 25, 115\min, 56\multicolumn, 46\newcommand, 101, 102\newenvironment, 102\newline, 20\newpage, 20\newtheorem, 63, 64\noindent, 109\nolinebreak, 20\nonumber, 61\nopagebreak, 20

132 DANH MỤC TỪ KHÓA

\not, 68\overbrace, 55\overlay, 95\overleftarrow, 55\overline, 55\overrightarrow, 55\pagebreak, 20\pageref, 37, 85\pagestyle, 14\panelwidth, 95\par, 106\paragraph, 35\parbox, 115\parindent, 108\parskip, 108\part, 35, 36\pause, 96\phantom, 50, 62\pmod, 56\Pr, 56\printindex, 81\prod, 57\protect, 50\providecommand, 102\ProvidesPackage, 103\qquad, 53, 59\quad, 53, 59\raisebox, 116\ref, 37, 52, 85\renewcommand, 102, 103\renewenvironment, 103\right, 58\right., 58\rightmark, 83\rule, 103, 116, 117\screensize, 95\scriptscriptstyle, 63\scriptstyle, 63\sec, 56\section, 35, 49\sectionmark, 83

\selectlanguage, 27\setlength, 108, 113\settodepth, 113\settoheight, 113\settowidth, 113\sin, 56\sinh, 56\sloppy, 21\smallskip, 111\sqrt, 54\stackrel, 56\stretch, 103, 109\subparagraph, 35\subsection, 35\subsectionmark, 83\substack, 57\subsubsection, 35\sum, 57\sup, 56\tableofcontents, 36, 96\tan, 56\tanh, 56\TeX, 22\texorpdfstring, 92\texteuro, 24\textrm, 62\textstyle, 63\thispagestyle, 14\title, 37\tnss, 101\today, 22\totalheight, 115, 116\underbrace, 55\underline, 39, 55\usepackage, 11, 15, 24, 27, 28,

103\vdots, 58\vec, 55\verb, 43, 44\verbatiminput, 83\vspace, 110

DANH MỤC TỪ KHÓA 133

\widehat, 55\widetilde, 55\width, 115, 116\xymatrix, 97

comment, 7comments, 7\cos, 56\cosh, 56\cot, 56\coth, 56\csc, 56

dấu ba chấm, 25, 58dấu chấm, 25dấu gạch, 23dấu mũi tên, 55dấu ngã, 55dấu ngoặc, 57dấu ngoặc vuông, 104dấu phẩy, 25dấu trích dẫn, 23dấu trừ, 23dấu trọng âm, 25dành riêng, 5\date, 37dblaccnt, 123dcolumn, 46\ddots, 58decimal alignment, 45\deg, 56\depth, 115, 116description, 40\det, 56\dim, 56displaymath, 52\displaystyle, 63doc, 13\documentclass, 10, 15, 21dotless ı và , 26\dq, 31\dum, 100, 101

em-dash, 23\emblema, 96\emph, 39, 104en-dash, 23Encapsulated PostScript, 75\end, 40enumerate, 40environments

array, 60center, 41comment, 7description, 40displaymath, 52enumerate, 40eqarray*, 61eqarray, 60eqnarray*, 61eqnarray, 61equation, 52, 60figure, 47flushleft, 41flushright, 41itemize, 40lscommand, 101math, 51minipage, 115quotation, 42quote, 41subarray, 57table, 47tabular, 44, 114thebibliography, 78verbatim, 43, 83verse, 42

\eps, 78eqarray, 60eqarray*, 61eqnarray, 61eqnarray*, 61\eqref, 52equation, 52, 60

134 DANH MỤC TỪ KHÓA

eufrak, 74\EUR, 24eurosym, 24euscript, 74executive paper, 12\exp, 56exscale, 13, 58extension

.aux, 15

.cls, 15

.dtx, 15

.dvi, 15, 77

.eps, 77

.fd, 15

.idx, 15, 81

.ilg, 16

.ind, 16, 81

.ins, 15

.lof, 15

.log, 15

.lot, 15

.sty, 15, 84

.tex, 14

.toc, 15

fancyhdr, 81–83\fbox, 22figure, 47\flq, 31\flqq, 31flushleft, 41flushright, 41foiltex, 11font, 104

\footnotesize, 105\Huge, 105\huge, 105\LARGE, 105\Large, 105\large, 105\mathbf, 106

\mathcal, 106\mathit, 106\mathnormal, 106\mathrm, 106\mathsf, 106\mathtt, 106\normalsize, 105\scriptsize, 105\small, 105\textbf, 104\textit, 104\textmd, 104\textnormal, 104\textrm, 104\textsc, 104\textsf, 104\textsl, 104\texttt, 104\textup, 104\tiny, 105

font size, 105fontenc, 13, 28\footnote, 38, 50\footnotesize, 105formulae, 51\frac, 56\framebox, 115\frenchspacing, 35\frontmatter, 37\frq, 31\frqq, 31\fussy, 21

gói, 7, 100gói makeidx, 80\gcd, 56geometry, 84GhostScript, 76graphicx, 76, 88, 93grave, 26GVS, 119

DANH MỤC TỪ KHÓA 135

hàm đồng dư, 56hàng ngang

ba chấm, 58hệ phương trình, 60HLATEX, 33hLATEXp, 33\height, 115, 116\hline, 45\hom, 56\href, 90, 91, 93\hspace, 103, 109\Huge, 105\huge, 105hyperref, 86, 89, 93hyphen, 23hyphenat, 84\hyphenation, 21

\idotsint, 59ifthen, 13\iiint, 59\iint, 59in đậm, 53, 104in nghiêng, 104\include, 16\includegraphics, 77, 88, 92, 114\includeonly, 16\indent, 109indentfirst, 109\index, 80\inf, 56\input, 16inputenc, 13, 27, 31, 123, 124\int, 57international, 26\item, 40itemize, 40

kí hiệu giới hạn, 57kí hiệu in đậm, 65kí hiệu về độ, 24

kí tự đặc biệt, 25kí tự xuống hàng, 20kích thước, 109kích thước font cơ bản, 12kích thước font chữ, 62, 104kích thước font chữ của tài liệu, 12\ker, 56khoảng cách hàng kép, 108khoảng trắng, 5

ở đầu hàng, 5dọc, 110ngang, 109

khoảng trắng giữa các hàng, 108kiểu tập tin, 14Knuth, Donald E., 1Korean font

UHC font, 33

lời tựa, 8\label, 37, 38, 52Lamport, Leslie, 2\LARGE, 105\Large, 105\large, 105\LaTeX, 22\LaTeXe, 22latexsym, 13\ldots, 25, 58\left, 58\leftmark, 83legal paper, 12letter paper, 12\lg, 56\lim, 56\liminf, 56\limsup, 56\linebreak, 20\linespread, 108\listoffigures, 48\listoftables, 48\ln, 56

136 DANH MỤC TỪ KHÓA

\log, 56longtabular, 46lscommand, 101

môi trường, 39một, 5mã hoá font chữ, 13\mainmatter, 37, 91\makebox, 115makeidx, 13, 80\makeindex, 80\maketitle, 37\marginsize, 95marvosym, 24math, 51\mathbb, 53\mathbf, 106\mathcal, 106\mathit, 106\mathnormal, 106\mathrm, 62, 106mathrsfs, 74\mathsf, 106\mathtt, 106\max, 56\mbox, 22, 25, 115MetaPost, 88\min, 56minipage, 115Mittlebach, Frank, 2mltex, 87\multicolumn, 46

nằm ngangngoặc, 55

\newcommand, 101, 102\newenvironment, 102\newline, 20\newpage, 20\newtheorem, 63, 64nghiêng, 104

nhóm, 104\noindent, 109\nolinebreak, 20\nonumber, 61\nopagebreak, 20\normalsize, 105\not, 68

œ, 26\overbrace, 55overfull box, 21\overlay, 95\overleftarrow, 55\overline, 55\overrightarrow, 55

package, 11packages

ae, 28aeguill, 28, 87amsbsy, 65amsfonts, 53, 74amsmath, 56–59, 61, 62, 65amssymb, 53, 66babel, 21, 26, 27BK, 119bm, 65calc, 113color, 93dblaccnt, 123dcolumn, 46doc, 13eufrak, 74eurosym, 24euscript, 74exscale, 13, 58fancyhdr, 81–83fontenc, 13, 28geometry, 84graphicx, 76, 88, 93GVS, 119

DANH MỤC TỪ KHÓA 137

hyperref, 86, 89, 93hyphenat, 84ifthen, 13indentfirst, 109inputenc, 13, 27, 31, 123, 124latexsym, 13longtabular, 46makeidx, 13, 80marvosym, 24mathrsfs, 74pause, 96pdfscreen, 93–96plainenc, 124pxfonts, 87showidx, 81supertabular, 46syntonly, 13, 16tabular, 60textcomp, 24txfonts, 87verbatim, 7, 83VnTeX, vi, 118–120, 123–125VnTex, 120xy, 96

\pagebreak, 20\pageref, 37, 85\pagestyle, 14\panelwidth, 95paper size, 12, 86\par, 106\paragraph, 35\parbox, 115\parindent, 108\parskip, 108\part, 35, 36pause, 96\pause, 96PDF, 85pdfLATEX, 86, 93pdfscreen, 93–96pdfLATEX, 86

pdfTEX, 86phân số, 56phần chân, 14\phantom, 50, 62placement specifier, 48plainenc, 124\pmod, 56Português, 29PostScript, 76\Pr, 56\printindex, 81\prod, 57\protect, 50\providecommand, 102\ProvidesPackage, 103pxfonts, 87

\qquad, 53, 59\quad, 53, 59quotation, 42quote, 41

\raisebox, 116\ref, 37, 52, 85\renewcommand, 102, 103\renewenvironment, 103report class, 11\right, 58\right., 58\rightmark, 83roman, 104\rule, 103, 116, 117

sans serif, 104Scandinavian letters, 26\screensize, 95\scriptscriptstyle, 63\scriptsize, 105\scriptstyle, 63\sec, 56\section, 35, 49\sectionmark, 83

138 DANH MỤC TỪ KHÓA

\selectlanguage, 27\setlength, 108, 113\settodepth, 113\settoheight, 113\settowidth, 113showidx, 81siêu văn bản, 85\sin, 56\sinh, 56slides class, 11\sloppy, 21\small, 105\smallskip, 111\sqrt, 54\stackrel, 56\stretch, 103, 109strut, 117subarray, 57\subparagraph, 35\subsection, 35\subsectionmark, 83\substack, 57\subsubsection, 35\sum, 57\sup, 56supertabular, 46syntonly, 13, 16

Tích, 57Tích phân, 57tập tin nhập liệu, 8tạo chỉ mục, 80Tổng, 57table, 47\tableofcontents, 36, 96tabular, 60tabular, 44, 114\tan, 56\tanh, 56\TeX, 22\texorpdfstring, 92

\textbf, 104textcomp, 24\texteuro, 24\textit, 104\textmd, 104\textnormal, 104\textrm, 62, 104\textsc, 104\textsf, 104\textsl, 104\textstyle, 63\texttt, 104\textup, 104thắng đứng, 104tham chiếu chéo, 37tham số, 6thebibliography, 78\thispagestyle, 14tiếng Bồ Đào Nha, 29tiêu đề, 14tilde, 23dấu ngã ( ~), 35\tiny, 105title, 12\title, 37\tnss, 101toán học

dấu mũ, 55dấu ngoặc, 58hàm, 55khoảng trắng, 58trừ, 23

\today, 22\totalheight, 115, 116trình bày trang, 111tuỳ chọn, 6, 10txfonts, 87

umlaut, 26\underbrace, 55underfull hbox, 21

DANH MỤC TỪ KHÓA 139

\underline, 39, 55units, 110URL, 23\usepackage, 11, 15, 24, 27, 28, 103

\vdots, 58\vec, 55vectors, 55\verb, 43, 44verbatim, 7, 83verbatim, 43, 83\verbatiminput, 83verse, 42VnTeX, vi, 118–120, 123–125VnTex, 120\vspace, 110

\widehat, 55\widetilde, 55\width, 115, 116www, 23WYSIWYG, 2

xy, 96\xymatrix, 97

140 DANH MỤC TỪ KHÓA


Recommended