Hướng dẫn cài các gói CJK, UNICODE, vntex ...

( Để hiển thị tiếng Việt cùng tiếng Nhật trong TeX )


Mở đầu

 Để hiển thị văn bản đa ngôn ngữ với TeX, cách đơn giản nhất là sử dụng mã đa ngôn ngữ (UNICODE).
 Sau đây, xin chia sẻ với các bạn kinh nghiệm của tôi trong việc cài đặt và sử dụng các gói vntex, CJK, Unicode, Babel và bộ font cyberbit trên nền Fedora Core 2.

Tôi sử dụng TeX (Web2C 7.4.5) 3.14159 . Gói này đi kèm Fedora.

Cài vntex vào	   $HOME/texmf/
    CJK		   $HOME/texmf/tex/latex/
    Unicode (ucs)  $HOME/texmf/tex/latex/
    Cyberbit fonts $TEXMF/fonts/

Cài đặt gói vntex:

 Bạn có thể tham khảo trực tiếp tài liệu hướng dẫn cài Vntex tại homepage của vntex http://sarovar.org/ . Ở đây, tôi nói qua cách làm.

  1. Download

  2. Hạ tải các file.zip của vntex2.0 được phân phối bởi sarovar: vntex_base, vntex_fonts và vntex_support tại: Dowdload Vntex 2.0
    Bản mới nhất hiện tại là vntex2.1-beta .

  3. Cởi nén

  4. $ unzip vntex_baseXX.zip
    $ unzip vntex_fontsXX.zip
    (XX: phần đuôi của files - 20040516)

    và copy vào $HOME/texmf/ tức chuyển:

    /.../vntex/dvipdfm -> $HOME/texmf/dvipdfm
    /.../vntex/dvips   -> $HOME/texmf/dvips
    /.../vntex/fonts   -> $HOME/texmf/fonts
    ....
    
    Bằng lệnh tương tự như :
    $ cp -r vntex/* ~/texmf/
    Chú ý: Thư mục $HOME/texmf/ này tùy theo cấu hình TeX của bạn.

    Bạn hãy xem nội dung file /usr/share/texmf/web2c/texmf.cnf
    Tại dòng

    HOMETEXMF = $HOME/texmf

    Theo tài liệu của vntex, để tiện lợi cho việc nâng cấp cũng như cởi bỏ những version trước của vntex (rất rắc rối), ta nên cài đặt vntex tại thư mục TeX của riêng mình .


Cài đặt gói CJK:

 Sau khi cài xong gói vntex, bạn đã có thể sử dụng được tiếng Việt với các bảng mã như tcvn, viscii, vps . Ngoài ra bạn có thể sử dụng file tex có encoding utf8 với vntex nếu cài gói UNICODE.

Để sử dụng tiếng Nhật với UTF8, bạn cần cài gói CJK (Chinese-Japanese-Korean).
Cách làm như sau:

  1. Download

  2. Bạn có thể hạ tải file đã nén của CJK tại FTP CJK4.5.2 Hoặc HTTP CJK4.5.2 .
    Bản mới nhất hiện nay là 4.5.2 .

  3. Cởi nén

  4. Bạn thực hiện lệnh như sau:
    $ tar xzvf cjk-4.5.2.tar.gz
    $ tar xzvf cjk-4.5.2-doc.tar.gz
  5. Copy thư mục cjk-4.5.2

  6. Sau khi cởi nén xong bạn sẽ nhận được thư mục tên cjk-4.5.2. Bạn hãy copy nó vào thư mục
    $HOME/texmf/tex/latex/
    $ cp -r cjk-4.5.2 $HOME/texmf/tex/latex/
Thế là bạn đã cài xong gói cjk-4.5.2, bạn có thể cập nhật nó cho TeX của bạn bằng lệnh texhash hay mktexlsr nhưng cứ từ từ, để cài xong các gói khác rồi update cũng chưa muộn .


Cài đặt gói UNICODE (ucs)

 Đây là gói cần thiết cho việc dùng UTF8 .
Bạn hãy làm theo các bước như sau để cài gói này vào máy:

  1. Download

  2. Bạn hãy hạ tải file .tgz hoặc .zip tại Trang unicode

  3. Cởi nén

  4. Đối với file tgz: tar xzvf unicode.tgz

    Hay với file zip: unzip unicode.zip

  5. Copy thư mục ucs

  6. Thư mục ucs được tạo ra khi cởi nén. Bạn hãy copy nó vào
    $HOME/texmf/tex/latex/

    Bằng lệnh:

    cp -r ucs $HOME/texmf/tex/latex/

  7. Cập nhật TeX

  8. Đến đây, bạn hãy cập nhật cho TeX các gói đã copy bằng lệnh texhash (hoặc mktexlsr - hiệu quả tương tự)

    $cd [ENTER] = trở về $HOME
    $ mktexlsr mktexlsr: Updating /home/nam29vn/texmf/ls-R... mktexlsr: /usr/share/texmf: directory not writable. Skipping... mktexlsr: /var/lib/texmf/ls-R: no write permission. Skipping... mktexlsr: Done.
    Chú ý: Sử dụng là local tex, bạn nên thực thi lệnh trên với tư cách user là bạn (Không là root) vì nếu là root, sau này bạn sẽ không có quyền ghi vào file
    $HOME/texmf/ls-R

Tiếp theo là 1 bước cực kỳ quan trọng và hơi rắc rối. Tôi đã thất bại rất nhiều lần trong việc cài cyberbit font do nhiều lý do ... Tuy nhiên, với bạn chắc sẽ khác.
Tôi cài font cyberbit với tư cách là root, tức sẽ cài vào
/usr/share/texmf/ (Cài trên $HOME/texmf bạn tự thử xem sao.)


Cài đặt cyberbit font

Việc hiển thị văn bản hay ở đây là chuyển đổi văn bản thì yếu tố cần thiết vẫn là Font các loại .
  1. Download

  2. Bạn có thể tìm thấy tại địa chỉ sau hoặc có thể tự tìm tại địa chỉ khác nếu bạn không truy cập qua FTP được (Như tôi chẳng hạn, đã phải rất vất vả mới down được nó)

    Cyberbit.zip (size khá lớn: 6427108bytes)

  3. Cởi nén

  4. Vâng, vẫn cứ là uncompress.
    Sau khi tải file Cyberbit.zip về, bạn cởi nén nó ra và sẽ có được file Cyberbit.ttf, do UNIX phân biệt chữ HOA và chữ thường nên tốt nhất hãy đổi tên nó thành cyberbit.ttf và đưa vào thư mục cyberbit như sau:

    $ unzip Cyberbit.zip
    $ mv Cyberbit.ttf cyberbit.ttf
    $ mkdir cyberbit
    $ mv cyberbit.ttf cyberbit
    

  5. Tạo các file .enc và .tfm từ cyberbit.ttf

  6. a. Cài đặt gói ttf2pk
    Nếu bạn đã có gói này thì hãy chuyển sang bước b.

    Để chuyển từ true type font, bạn cần có chương trình tên ttf2tfm . Nó nằm trong gói ttf2pk, gói này không built-in Fedora nên nếu bạn chưa có thì hãy download tại
    ttf2pk for FC2

    Download xong thì cài nó vào bằng lệnh :

    rpm -ivh ttf2pk-1.5-1.li.fc2.i586.rpm

    b. Thực thi lệnh chuyển:

    $ cd cyberbit
    $ ttf2tfm cyberbit.ttf -w cyberb@Unicode@ > cyberbit.log
    

    Nó sẽ tạo ra 165 file .enc và 165 file .tfm

    c. Copy font cyberbit vào thư mục $TEXMF/fonts:

    cyberbit.ttf -> $TEXMF/fonts/type1/bitstrea/cyberbit.ttf
    cyberbit/    -> $TEXMF/fonts/tfm/cyberbit/
    

    Bằng lệnh như sau: (Tôi thực hiện là root)

    $ su
    Password:
    # cp cyberbit.ttf /usr/share/texmf/fonts/type1/bitstrea/
    # cp -r ../cyberbit/ /usr/share/texmf/fonts/tfm/
    

    Làm đến đây, tôi cứ tưởng texhash một cái là có thể dùng được ngay, nhưng hóa ra vẫn còn lỗi :

    mktexpk: don't know how to create bitmap font for cyberbXX.

    ( Tạm dịch: không biết cách tạo bitmap font như thế nào.)


    Cách giản quyết: ta sẽ cho TeX biết, mình đã chuyển cyberbit từ ttf sang tfm bằng lệnh gì bằng cách:

    * Kiểm tra nội dung file $TEXMF/ttf2pk/ttfonts.map
    Xác nhận, nếu không có thì thêm vào đó dòng sau:

    cyberb@Unicode@ cyberbit.ttf

    Chú ý: Nếu không tồn tại file ttfonts.map thì bạn hãy tạo ra file mới có tên ttfonts.map và ghi dòng trên vào đó.

    * Kiểm tra nội dung file $TEXMF/web2c/texmf.cnf
    Xác nhận, nếu không có thì thêm vào dòng:

    TTF2PKINPUTS = .;$TEXMF/ttf2pk//
    TTF2TFMINPUTS = .;$TEXMF/ttf2pk//

    Và cuối cùng là cập nhật TeX: (Bạn vẫn đang là root)

    # texhash
    texhash: Updating /usr/share/texmf/ls-R...
    texhash: Updating /var/lib/texmf/ls-R...
    texhash: Done.
    

Done tức là công việc cài đặt đã hoàn thành. Xin chúc mừng bạn và bây giờ bạn có thể thử viết 1 file.tex và biên dịch xem thế nào nhé.


Cách dùng và ví dụ

Bạn hãy tìm hiểu cách dùng qua ví dụ nhé :

Tôi dùng Fedora Core 2, khi cài đặt chọn môi trường mặc định (default) là UTF8 nên dùng VIM để soạn thảo, ..., đều là UTF8 cả nên không rõ nếu không chọn UTF8 thì sẽ ra sao. Ngoài ra nó cung cấp luôn bộ gõ VIQR, bằng iiimf có thể nhập tiếng Việt và tiếng Nhật.

Ví dụ một file viet.tex có nội dung :

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[vietnam,english]{babel}
\usepackage{CJK}
\usepackage[overlap, CJK]{ruby}

\title{Tiếng Việt trong tiêu đề}
\author{Namgaf \and Đặt tác giả ở đây \thanks{Vntex, CJK, Google}}

\begin{document}

\selectlanguage{vietnam} % Chọn tiếng Việt
\maketitle               % để hiển thị ngày tháng bằng tiếng Việt.

\begin{CJK}{UTF8}{song} % Đặt văn bản giữa \begin{CJK}
                        %               và \end{CJK}                            

\section{ヴェトナム語}

Bạn hãy thử tiếng Việt trong mục này. でも、日本語を入力してもいいですよ。\\
日本語と Tiếng Việt đứng cạnh nhau.\\
CHỮ HOA THÌ SAO ? 大丈夫なの?ỔN CẢ MÀ.\\
NHƯNG NẾU BẠN DÙNG TCVN THÌ CẦN CHUYỂN ĐỔI ĐẤY.

\section{Tiếng Nhật}

ここは日本語のセクションです。\\
ふりがなを書きたいなら、

\begin{verbatim}
\ruby{漢字}{ふりがな} のように書いてください。
\end{verbatim}
%
Ví dụ nhé, nếu bạn nhập vào là:
\begin{verbatim}
\ruby{言葉}{ことば}の\ruby{上}{うえ}に
\ruby{書}{か}いている\ruby{平仮名}{ひらがな}はふりがなだろう。
\end{verbatim}
%
Thì sẽ thành:\\
\ruby{言葉}{ことば}の\ruby{上}{うえ}に
\ruby{書}{か}いている\ruby{平仮名}{ひらがな}はふりがなだろう。

\end{CJK}

\end{document}
Tham khảo output file.

bạn ghi lại file và thực thi như sau:

$ latex viet
....

$ xdvi viet&
...
Có thể sẽ sinh ra lỗi tựa như :
kpathsea: Running mktexpk --mfmode cx --bdpi 300 --mag
1+0/300 --dpi 300 cyberb51
mktexpk: Running ttf2pk -q cyberb51 300
/usr/share/texmf/web2c/mktexupd: /var/lib/texmf/ls-R unwritable.
mktexpk: /var/lib/texmf/pk/modeless/cyberbit/cyberb51.300pk: successfully
generated.
và còn nhiều dòng khác nữa nhưng ...
Đừng lo, đó là do hiệu ứng lề của xdvi, nó hiển thị cho bạn biết nó đang làm gì thôi :D .
Còn cái lỗi unwritable kia là do bạn không phải là root nên không có quyền ghi . Vì thế chắc xdvi sẽ ghi tạm ra /tmp chẳng hạn .

Chú ý: Bạn định thực thi xdvi với tư cách root để ghi ư ? Đừng, vì theo hướng dẫn ở trên, bạn đã cài đặt vntex, ucs, CJK trong texmf của bạn, nên root không dùng được và như vậy thì chắc bạn cũng biết kết quả sẽ ra sao rồi chứ ?

Và cuối cùng, có thể bạn chưa cho hiển thị được tiếng Việt cùng tiếng Nhật, hãy thử làm lại lần nữa xem sao. Tôi mới chỉ thử nghiệm nó trên chính máy của mình có setting như trên.

Chúc bạn thành công !

Files

Tex File

Dvi File

Ps File

PDF file


(c)2004/07 HoàngNam - j1671@cc.kushiro-ct.ac.jp