VieTeX

Chương trình soạn thảo TeX

VieTeX – Sử dụng XeLaTeX với phông của Windows

Posted by nhdien on 23/05/2009

1. Giới thiệu

Một dự án tuyệt vời mở rộng TeX của D. Knuth do Jonathan Kew thực hiện và đã thành công là mở rộng TeX cho phần thế giới còn lại ngoài tiếng Anh gọi là XeTeX. Sau 25 năm TeX được sử dụng phổ biến khắp thế giới và là công cụ chế bản chất lượng cao với thư viện mã nguồn mở rất lớn. Có rất nhiều cách mở rộng TeX cho các ngôn ngữ khác, nhất là sau khi có mã Unicode dùng cho mọi ngôn ngữ trên thế giới. Không những vậy dự án còn đưa đến kết quả là dùng các công nghệ phông và nền tảng tin học tiên tiến nhất. Sử dụng TeX với mã Unicode và rất đơn giản khi cài đặt và kết hợp với mọi hệ điều hành khác nhau. Có thể nói XeTeX giữa những cái gì tốt đẹp và đơn giản nhất của TeX kết hợp với công nghệ tiến bộ mới của hệ điều hành. Với việc sử dụng đơn giản XeTeX và kết hợp được với các phông của hệ điều hành làm TeX manh hơn rất nhiều. Hiện nay hướng viết các gói lệnh sử dụng công nghệ này đang thịnh hành. Ở đây tôi chỉ giới thiệu cài đặt đơn giản nhất và sử dụng nó cho công việc của chúng ta trong tiếng Việt.Nghiên cứu trực tiếp các bạn hãy vào
http://scripts.sil.org/xetex.

2. Cài đặt XeTeX và XeLaTeX

XeTeX và XeLaTeX đã được cài đặt trong các hệ thống Unix và Linux, nhưng ở đây tôi quan tâm tới chúng với MikTeX trên MS Window:
1. Nạp MikTeX 2.7 mới có mặc định XeLaTeX. Chương trình MikTeX 2.7 có thể lấy ở
http://www.miktex.de chương trình tối thiểu nhất gần 80Mb (Nếu bạn có đĩa cài đặt của tôi thì các gói lệnh khác được lấy vào dễ dàng, không thì các bạn phải lên Internet lấy xuống).
2. Khi biên dịch tập TeX soạn bằng Unicode với xetex.exe và xelatex.exe thay cho tex.exe và latex.exe. Nghĩa là chương trình soạn thảo có gắn biên dịch tex.exe hoặc latex.exe thì thay chỗ đó là xong.
3. Trong VieTeX 2.7 cũng có thể thay dòng lệnh thường dịch Latex.exe bằng xelatex.exe, nhưng để thuận tiện dùng nhiều cách dịch tôi đã làm thêm một nút trên thanh công cụ có gắn xelatex.exe  và nhấn như dịch TeX bình thường như từ trước tới nay.
4. XeLaTeX lấy phông trực tiếp phông Unicode từ Window nên phải có phông Unicode trong hệ thống, trừ các loại Window 2000 về trước là không có Unicode, còn thì đều có phông Unicode cơ bản Tahoma, Times New Roman, Courier New, … Trong VieTeX tôi đã cài một chức năng:
Tool -> Open font Directory
sẽ mở thư mục quản lý Fonts của Window để có thể xem và biết tên các phông, vì chương trình sẽ dùng trực tiếp các tên phông này.

3. Soạn tệp TeX cho dịch XelaTeX

1. Phải khẳng định là những gì đã soạn cho LaTeX đều dùng được. Nghĩa là vẫn các cấu trúc LaTeX chỉ thêm gói lệnh và lệnh mới mà thôi. Các tệp TeX cũ có thể chạy được bằng cách thêm gói lệnh và bỏ các lệnh lấy phông văn bản theo kiểu cũ.

2. Một số ít lệnh của LaTeX không còn tác dụng do cấu trúc thiết kế như kiểu lệnh \large, \Huge, … (không ảnh hưởng khi biên dịch, chỉ không có tác dụng thôi)

3. Các tệp LaTeX cũ soạn trên Unicode muốn chạy XeLaTeX hãy bỏ lệnh
\usepackage[utf8]{vietnam} và các lệnh liên quan đến gói lệnh tiếng Việt của Hàn Thế Thành hoặc
\usepackage{charter}, \usepackage{anttor}, ….

4. Thêm vào phần đầu gói lệnh \usepackage{fontspec} và có thể biên dịch được rồi. Trong trường hợp này thì XeLaTeX lấy phông mặc định Times New Roman làm cơ sở để lập ra tài liệu.

5. Hiện nay có 3 gói lệnh để dùng XeLaTeX và có đặc điểm sau:
 \usepackage{fontspec} % gói lệnh cung cấp các lệnh chọn phông, ví dụ \setmainfont{Arial} văn bản lấy phông Arial làm chính để biên dịch và xếp chữ.
 \usepackage{xunicode} % cho phép tạo lệnh bằng mã Unicode, ví dụ có thể viết lệnh

\def\căn[1]{\sqrt{#1}} khi đó ta có thể dùng lệnh $\căn{a^2+b^2}$.

 \usepackage{xltxtra} % cung cấp một số cố định sắp xếp

Phần sau ta đi vào một số chi tiết cụ thể khi soạn thảo dùng phông, còn các lệnh khác của LaTeX vẫn còn nguyên ý nghĩa và tác dụng.

4. Chọn phông cho văn bản

1. Sau lệnh \usepackage{fontspec} ta có thể xác định phông toàn văn bản. Mỗi lệnh có nhiều tùy chọn, không thể mô tả hết, tôi chỉ nói phần chính còn tùy chọn tương tự. Các lệnh
\setmainfont{Courier New} thì toàn văn bản theo phông này và các phông kèm theo về nghiêng, đậm, không chân cũng theo phông này, nếu trong Window có các phông tương ứng này. Thường chỉ có phông Times New Roman là đầy đủ, còn các phông khác như Tahoma không có phông đậm, nghiêng và như vậy các lệnh về loại phông này không tác dụng. Để khắc phục điều trên ta có thể chủ động đặt các phông
\setromanfont{Times New Roman} Phông thường dùng
\setsansfont{Arial} Phông không chân kết hợp
\setmonofont{Courier New} Phông tt kết hợp

2. Định nghĩa một phông bất kỳ:
\font\Pala = “Palatino Linotype” at 10pt
Sau đó áp dụng {\Pala ….} văn bản trong ngoặc nhọn theo phông này. Các loại phông lấy trực tiếp từ hệ điều hành, không cần tệp *.tfm và cấu hình, nên ta phải xem có loại phông này không trong Window, VieTeX 2.7 cung cấp 1 nút đi đến thư mục này dễ dàng.

3. Vì lý do kỹ thuật nên người ta khuyên không nên dùng các lệnh \it, \bf, \sf, … mà dùng các lệnh kết hợp như
\rmfamily, \sffamily, \ttfamily, \bfseries …. hoặc \textbf{}, \textit{}, … Các lệnh này ta đã biết trong LaTeX cả.

4. Rất nhiều kỹ thuật đưa phông vào bằng tùy chọn, do thời gian tôi không trình bày ở đây.

5. Đưa hình vào tài liệu

1. Dịch bằng XeLaTeX chấp nhận rất nhiều các định dạng của hình như:
TIFF, JPEG, PNG,PCX, BMP, PICT, GIF, TGA, PS, EPS, ….. và cả ảnh của Photo Shop,…
2. Các cách đưa hình cũ vẫn còn tác dụng như
\begin{figure}[!ht]
\centering
\includegraphics[height=2cm,width=3cm]{tracnghiem.jpg}
\caption{Ví dụ}\label{fig:hinh1}
\end{figure}
nhưng với các định dạng hình nói trên đều được
3. Có lệnh đưa hình mới nhưng cũng có thể đặt trong nôi trường đồ thị figure hoặc là không:
\begin{figure}[!ht]
\centering
\XeTeXpicfile “tracnghiem.jpg” width 3cm height 2cm
\caption{Ví dụ}\label{fig:hinh1}
\end{figure}
Ngoài các đối số width và height thì còn các đối số scaled 400 tăng cả chiều dài và chiều rộng đều bằng 40% hình thật.
Tăng một chiều thì có xscaled, yscaled hoặc quay rotated 90 quay 90 độ.
4. Tất cả các lệnh của LaTeX đều còn tác dụng trong XeLaTeX trừ một số đặc biệt, bạn phải thử theo tài liệu hướng dẫn của họ.

6. Biên dịch theo XeLaTeX

1. Hiện nay công nghệ này đang phát triển nên có rất nhiều người phát triển gói lệnh mới và thường là họ viết trực tiếp bằng XeTeX sau đó rồi mới đến XeLaTeX vì vậy trên thanh công cụ tôi để cả 2 nút này để biên dịch tùy loại các tệp trên.

xelatex
2. Rất nhiều ví dụ của họ hướng dẫn không có phông trong Window của ta vì vậy ta phải nạp phông vào hoặc sửa phông đó bằng một phông ta có:
– VieteX 2.7. có nút  đưa ta mở thư mục phông của Window, từ Menu của cửa sổ này ta có thể [Install Font] và đưa đến chỗ ta chứa các phông gốc thường là tệp *.ttf hoặc *.otf.
3. Một chú ý quan trọng là khi biên dịch nếu không có phông trong Window thì phải chờ khá lâu nó mới báo lỗi vì nó còn tìm phông trong toàn thư mục, nếu có phông thì rất nhanh, do vậy ta phải kiểm tra có phông chưa trước khi biên dịch.
4. Kết quả đầu ra bao giờ cũng là tệp PDF và như vậy ta nhấn nút xem ngay bằng Acrobat reader

7. Ví dụ mẫu phông tiếng Việt cho Windows

Kèm theo phiên bản này có gói các phông Unicode tôi đã thử cho tiếng Việt. Khi nào cần bạn hãy cài phông vào và dùng nó, cài tất cả tốn bộ nhớ. Tôi liệt kê tên phông và tên tệp để nạp vào Window:

font1

font2

font3font4

font5

 font6  font7

8. Kết luận

1. Thời gian eo hẹp tôi chỉ trình bày cơ bản XeLaTeX còn rất nhiều kỹ thuật khác phải có thời gian thử, hiện nay đã có một số gói lệnh mới về vấn đề này.
2. Theo cá nhân tôi tương lai dùng XeTeX thuận tiện hơn rất nhiều và rất đẹp cho chế bản.

Gói phông *.ttf tôi đã sưu tầm và lưu ở đây

Các ví dụ và chương trình chạy minh họa trên ở đây

2 Responses to “VieTeX – Sử dụng XeLaTeX với phông của Windows”

  1. Đình sơn said

    không biết xelatex có thể sử dung font thư pháp do hunhlan design không, em thấy pdftext lại sài được(http://vntex.sourceforge.net/vntexse4.html), mà không biết dùng pdftex

    Trả lời
    Theo tôi biết phông thư pháp không thiết kế theo mã Unicode, mà Xelatex dựa trên phông unicode, nên không ổn, đành thử thôi. Tôi không có thời gian thử loại này, nếu được thì hay quá, bạn thử xem sao?
    Cám ơn sự tìm tòi của bạn.

  2. htr3n said

    Tình cờ biết được blog của anh Điển qua một người bạn, nhiều thông tin rất có ích. Lúc trước tôi có biết tới anh khi chuẩn bị bài báo bằng LaTeX cho hội nghị HPC 2003 ở Viện Toán, Hà Nội. Lúc đó tôi sử dụng quyển sách LaTeX tiếng Việt của anh😉 Khi dự hội nghị thì có gặp anh nhưng không có dịp nói chuyện riêng. Chắc bây giờ cảm ơn anh vẫn không muộn nhỉ? Chúc anh và gia đình sức khỏe, công việc thuận lợi tốt đẹp.

    Riêng bài này thì tôi có một góp ý nhỏ >> “Vì lý do kỹ thuật nên người ta khuyên không nên dùng các lệnh \it, \bf, \sf” — có thể anh không muốn làm rối người đọc bằng những chi tiết khác nên không nêu rõ, nhưng tôi nghĩ đây là bài về LaTeX thì cứ nói rõ cũng không sao, thay vì cụm từ lý do kĩ thuật rất ư là mông lung. Lý do thực sự là vì các lệnh \it, \bf, \tt, \em,… là cổ lỗ sĩ vì đó là của phiên bản LaTeX 2.09, được khuyên là không nên dùng vì có thể có một số hệ thống LaTeX không hỗ trợ tương thích ngược (may mà điều này chưa xảy ra trên thực tế nên ít ai quan tâm ;)). Riêng tôi thì lại thích dùng \em, \it, \bf vì ngắn gọn, tiết kiệm gõ phím, và làm văn bản LaTeX bớt rối.

    Trả lời
    Cám ơn Anh rất nhiều lời động viên. Tôi cũng có biết thông tin này nên trong VieTeX nút làm các kiểu này được thay bằng \textbf{},… mặt khác nếu Bạn bôi đen một đoạn rồi nhấn nút này nó sẽ định dạng luôn cho đoạn đó. Nếu có thông tin gì mới thì giúp tôi với nhé, tất cả thông tin ở đây tôi sẽ cập nhật và kèm theo vào VieTeX phiên bản tới.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: