Huong dan su dung Tieng Viet trong Linux
Sunday, June 3, 2007 2:04:07 PM
........................
Hướng dẫn sử dụng tiếng Việt trong Linux
________________________________________
Table of Contents
Lời mở đầu
1. Font
Font trong Console
Nguyên tắc hoạt động
Cách dùng
Font trong X Window
Nguyên tắc
Cài đặt font Bitmap
Cài đặt font True Type
Cài đặt các loại font khác
Cập nhật danh sách font
Dùng font trong các ứng dụng
2. Gõ tiếng Việt
Gõ tiếng Việt trong console
vnkb
Gõ tiếng Việt trong X Window
xvnkb
bkkey
xgvnkey
3. Dùng tiếng Việt
Sử dụng các ứng dụng Việt hóa
Mutt
Pine
Emacs
Vim
Chuyển đổi các bảng mã tiếng Việt
vi2vn
vntovn
vnconv
uvconverter
Dùng tiếng Việt trong TeX
Lời mở đầu
Tài liệu này giới thiệu cách sử dụng Tiếng Việt trong Linux. Bao gồm cách cài đặt font trong Linux, cách sử dụng các bộ gõ tiếng Việt, cách sử dụng tiếng Việt trong một số ứng dụng thường dùng.
Để biết cách cài đặt các ứng dụng trong tài liệu này, hãy xem tài liệu ‘Hướng dẫn cài đặt ứng dụng trong Linux’.
Mọi ý kiến bổ sung hoặc thắc mắc về tài liệu này vui lòng gửi đến <pclouds@users.sourceforge.net>
Xin chân thành cám ơn những người đã đóng góp ý kiến cho tài liệu này.
Chapter 1. Font
Table of Contents
Font trong Console
Nguyên tắc hoạt động
Cách dùng
Font trong X Window
Nguyên tắc
Cài đặt font Bitmap
Cài đặt font True Type
Cài đặt các loại font khác
Cập nhật danh sách font
Dùng font trong các ứng dụng
Font trong Console
Nguyên tắc hoạt động
Việc sử dụng font trong console bao gồm hai thành phần, bảng font và bảng ánh xạ font. Bảng font thường có phần mở rộng .psf (hoặc .psf.gz nếu ở dạng nén) chứa hình vẽ các ký tự. Bảng ánh xạ font thường có phần mở rộng .acm (hoặc .acm.gz nếu ở dạng nén) hoặc .trans chứa ánh xạ giữa ký tự cần hiển thị và vị trí ký tự đó trong bảng font.
Các font thường nằm trong thư mục /lib/kbd/consolefonts, các bảng ánh xạ font thường nằm trong thư mục /lib/kbd/consoletrans
Console có thể hoạt động trong chế độ thường hoặc chế độ UTF-8. Trong chế độ UTF-8, mọi dữ liệu gửi tới console đều được coi là sử dụng mã hóa UTF-8. Các ký tự UTF-8 này sẽ được giải mã và ánh xạ vào bảng font thông qua bảng ánh xạ unicode. Bảng ánh xạ unicode thường có phần mở rộng .sfm (hoặc .sfm.gz nếu ở dạng nén). Bảng ánh xạ unicode thường nằm trong thư mục /lib/kbd/consoletrans
Cách dùng
Để đặt font, ta dùng lệnh consolechars. Xem Man Page của consolechars để biết thêm thông tin chi tiết. Các lệnh thường dùng là:
consolechars -f font Sử dụng font tên là font
consolechars -m acm Sử dụng bảng ánh xạ font tên là acm
consolechars -u sfm Sử dụng bảng ánh xạ unicode tên là sfm
consolechars -d Sử dụng font mặc định
Nếu không có phần mở rộng thì phần mở rộng mặc định sẽ được thêm vào. Nếu không xác định đường dẫn đầy đủ cho các lệnh trên thì đường dẫn mặc định sẽ được dùng.
Để đặt console vào chế độ Unicode, ta dùng lệnh unicode_start. Để đặt console vào chế độ thường, ta dùng lệnh unicode_stop. Xem Man Page của unicode_start và unicode_stop để biết thêm thông tin chi tiết.
Các phiên bản Linux thường kèm theo font TCVN và VISCII.
Để sử dụng font TCVN, bạn làm như sau:
$consolechars -f viscii10-8x16 -m viscii1.0_to_viscii1.1.trans
Để sử dụng font VISCII, bạn làm như sau:
$consolechars -f viscii10-8x16 -m trivial.trans
Để phục hồi font như ban đầu bạn dùng:
$consolechars -d
Để hiển thị Unicode, bạn dùng:
$unicode_start
$consolechars -f tcvn8x16 -u tcvn.sfm
hoặc:
$unicode_start
$consolechars -f viscii10-8x16 -u viscii.sfm
Lưu ý là sau khi đã đặt console vào chế độ Unicode, muốn sử dụng các font VISCII, TCVN thì phải tắt chế độ Unicode bằng lệnh:
$unicode_stop
Font trong X Window
Nguyên tắc
Đối với X Window có nhiều loại font khác nhau, nhưng chủ yếu dùng font Bitmap, Type1 và font True Type. Khi cài đặt font, bạn có thể để font ở bất cứ đâu nhưng phải bảo đảm đường dẫn thư mục đó có trong phần catalogue của tập tin cấu hình XFS [1] Các font mặc định thường được chứa trong /usr/X11R6/lib/X11/fonts/*. Tuy nhiên bạn có thể chọn thư mục khác nếu muốn.
X Window xác định các font hiện có trong một thư mục dựa vào tập tin fonts.dir trong thư mục đó. Tập tin fonts.dir mô tả tên font và đường dẫn của từng font. Để cài đặt font mới, bạn phải tạo (hoặc cập nhật) tập tin fonts.dir bằng lệnh mkfontdir.
Lệnh mkfontdir chỉ có có thể nhận ra các font bitmap. Đối với các font co dãn[2] (như font True Type hoặc font Type1) thì bạn cần phải tạo ra tập tin fonts.scale để mô tả font. Lệnh mkfontdir sẽ tự động gộp các thông tin trong fonts.scale vào tập tin fonts.dir.
Các phần dưới đây sẽ chỉ cách cài đặt font bitmap và font True Type. Sau khi cài font, bạn cần xem the section called “Cập nhật danh sách font”
Cài đặt font Bitmap
Chép các font Bitmap vào thư mục /usr/X11R6/lib/X11/fonts/local, sau đó thực hiện:
$cd /usr/X11R6/lib/X11/fonts/local
$mkfontdir
Cài đặt font True Type
Chép các font True Type vào thư mục /usr/X11R6/lib/X11/fonts/local, sau đó dùng lệnh:
$cd /usr/X11R6/lib/X11/fonts/local
$ttmkfdir > fonts.scale
$mkfontdir
Cài đặt các loại font khác
Đối với các loại font co dãn khác, gói cài đặt font phải chứa tập tin fonts.scale. Nếu không, bạn phải tìm cách nào đó để tạo ra tập tin fonts.scale. Việc tạo tập tin fonts.scale phụ thuộc vào từng loại font. Nếu đã có tập tin fonts.scale, bạn chỉ việc thực hiện bước cuối cùng.
Cập nhật danh sách font
Như đã nói, các font chỉ được tìm trong những thư mục nằm trong phần catalogue của tập tin cấu hình XFS. Khi cài đặt font mới, phải đảm bảo X Window ‘thấy’ đường dẫn tới các font mới cài đặt. Tôi sẽ gọi đường dẫn chứa các font là ‘đường dẫn font’ cho gọn. Bạn chỉ tiến hành bước này sau khi đã cài đặt font vào thư mục xong.
Để xem X Window có nhận biết đường dẫn font mới chưa, ta dùng lệnh sau để hiển thị các đường dẫn font mà X Window biết:
$chkfontpath --list
Nếu đường dẫn font của bạn chưa có trong danh sách đường dẫn font của chkfontpath, bạn hãy thêm đường dẫn font của bạn vào bằng cách dùng lệnh sau (cần quyền root):
$chkfontpath --add đường dẫn
Ngoài ra, chkfontpath còn được dùng để xóa đường dẫn font. Bạn xem chi tiết trong trang man của chkfontpath.
Sau khi cài đặt font, bạn cần cập nhật cơ sở dữ liệu font. Bạn dùng một trong những lệnh sau:
1. $xset fp rehash
2. $killall -HUP xfs
3. $/etc/rc.d/init.d/xfs restart
Lệnh đầu tiên chỉ có thể chạy trong X Window. Hai lệnh sau cần quyền root. Lệnh thứ ba chỉ áp dụng đối với Red Hat Linux.
Bạn có thể kiểm tra xem font đã được cài đặt chưa bằng lệnh:
$xlsfonts
Lệnh này sẽ liệt kê tất cả các font có trong hệ thống. Bạn hãy kiểm tra xem có font mình vừa cài chưa.
Nếu bạn thay đổi các thông số trong /etc/X11/fs/config thì cần khởi động lại xfs. Bạn dùng lệnh sau:
$killall -HUP xfs
Dùng font trong các ứng dụng
Mozilla
FIXME
Netscape
FIXME
AbiWord
AbiWord chỉ tìm các font trong thư mục /usr/share/AbiSuite/fonts, do đó để AbiWord có thể nhận ra font Type1 và font True Type thì phải cài đặt các font vào trong thư mục /usr/share/AbiSuite/fonts. Ngoài ra bạn còn có thể dùng thư mục /usr/share/fonts/default/TrueType
Cài đặt
• Bạn nên tạo bản sao cho hai tập tin fonts.scale và fonts.dir trong thư mục này, phòng khi cần.
• $cd /usr/share/AbiSuite/fonts
• $mv fonts.scale fonts.scale.backup
• $mv fonts.dir fonts.dir.backup
• Chép các font True Type vào thư mục /usr/share/AbiSuite/fonts
• Thực hiện lệnh sau:
• $cd /usr/share/AbiSuite/fonts
• $/usr/lib/AbiSuite/bin/ttfadmin
• $ttmkfdir > fonts.scale
• Sửa tập tin fonts.scale như sau:
o Xóa bỏ con số ở hàng đầu tiên trong fonts.scale.backup, cho biết số lượng font.
o Xóa bỏ ký tự 0 ở cuối tập tin fonts.scale.backup.
o Nối fonts.scale.backup vào fonts.scale
o $cat fonts.scale.backup >> fonts.scale
o Cập nhật lại con số ở dòng đầu trong fonts.scale. Số này bằng số dòng trong tập tin fonts.scale trừ một. Bạn có thể đếm số dòng bằng lệnh sau
$wc -l fonts.scale
o Tạo fonts.dir. Dùng lệnh
$mkfontdir
o Cập nhật lại danh sách font. Xem the section called “Cập nhật danh sách font”.
Gnumeric và GEdit
Việc cài đặt font cho Gnumeric và GEdit giống như trong AbiWord. Xem the section called “AbiWord”. Tuy nhiên Gnumeric và GEdit tìm các font trong thư mục /usr/share/fonts/default và các thư mục con của nó. Do vậy bạn cần cài đặt font vào thư mục này thay vì thư mục như đã nói trong AbiWord.
OpenOffice
• Cách 1:
• $cd /path/to/OpenOffice/user
• $mkdir fonts
• $cp fonts
• $cd fonts
• Cài đặt font như trên
• Khởi động OpenOffice
• Cách 2:
• $cd /path/to/OpenOffice/user
• $ln -s /path/to/current/X/fonts/folder fonts
• Khởi động OpenOffice
________________________________________
[1] thường là /etc/X11/fs/config
[2] scalable font
Chapter 2. Gõ tiếng Việt
Table of Contents
Gõ tiếng Việt trong console
vnkb
Gõ tiếng Việt trong X Window
xvnkb
bkkey
xgvnkey
Gõ tiếng Việt trong console
Bạn có thể dùng vnkb hoặc xvk.
vnkb
Vnkb[3] là bộ gõ tiếng Việt trong console, hỗ trợ kiểu gõ VNI, TELEX với bảng mã TCVN. Bạn có thể download vnkb tại VISC Để biên dịch vnkb, bạn cần cài đặt mã nguồn kernel. Vào thư mục chứa mã nguồn vnkb, thực hiện:
$make
Nếu thành công, sẽ có tập tin vnkb.o trong thư mục đó. Bạn thực hiện lệnh sau để nạp vnkb (cần quyền root):
$insmod vnkb.o
Bạn có thể dùng tổ hợp phím Alt-Z để đổi kiểu gõ. Để ngừng sử dụng vnkb, bạn dùng lệnh sau (cần quyền root):
$rmmod vnkb
Gõ tiếng Việt trong X Window
Bạn có thể dùng xvnkb, bkkey, xgvnkey hoặc xvk.
xvnkb
Xvnkb[4] là bộ gõ tiếng Việt trong X Window, hỗ trợ các bảng mã VPS, VISCII, TCVN, Unicode và các kiểu gõ VNI, TELEX, VIQR. Bạn có thể download xvnkb tại VISC. Tài liệu bổ sung[5] có tại VH Web Site
Để chạy chương trình, gõ lệnh:
$xvnkb
bkkey
Bkkey[6] là bộ gõ tiếng Việt trong X Window, có giao diện tương tự xvnkb. Bkkey cho phép gõ Unicode.
Bạn có thể download bkkey tại VietLUG
xgvnkey
Bạn có thể download xgvnkey[7] tại VietLUG.
________________________________________
[3] Nguyễn L Thành<thanhnl@polbox.com>
[4] Đào Hải Lâm<daohailam@yahoo.com>
[5] Nguyễn Vũ Hưng<vuhung@techviet.com>
[6] Trương Mạnh Cường<tmcuong@yahoo.com>
[7] Bùi Quang Minh<bqm2001@yahoo.com>
Chapter 3. Dùng tiếng Việt
Table of Contents
Sử dụng các ứng dụng Việt hóa
Mutt
Pine
Emacs
Vim
Chuyển đổi các bảng mã tiếng Việt
vi2vn
vntovn
vnconv
uvconverter
Dùng tiếng Việt trong TeX
Phần này trình bày cách sử dụng tiếng Việt trong một số ứng dụng trong Linux.
Sử dụng các ứng dụng Việt hóa
Để sử dụng các ứng dụng đã được Việt hóa, bạn cần có locale cho tiếng Việt. Bạn có thể tải locale cho tiếng Việt tại VH Web Site
Sau khi cài đặt xong, bạn cần đặt locale trước khi dùng tiếng Việt. Locale là một chuỗi có dạng “vi_VN.UTF-8”. vi là mã ngôn ngữ.VN là mã quốc gia. UTF-8 là bảng mã cần dùng (có thể là UTF-8, VISCII, TCVN... ). Chuỗi locale cần được viết chính xác chữ hoa, chữ thường. Bạn đặt locale bằng lệnh sau:
$export LANG=vi_VN.UTF-8
Sau khi dùng lệnh này, mọi ứng dụng hỗ trợ tiếng Việt sẽ hiển thị tiếng Việt. Có thể bạn cần đặt lại font để hiển thị đúng. Để sử dụng tiếng Anh, bạn dùng lệnh:
$export LANG=en_US
Mutt
Đối với Mutt phiên bản 1.4 trở đi, bạn có thể dùng vnconv để chuyển đổi các bảng mã. Với vnconv, bạn có thể xác định bảng mã bạn đang dùng để hiển thị và soạn thư độc lập với bảng mã được dùng để gửi thư.
Xem cách cài đặt vnconv và cách cài đặt Chế độ iconv.
Sau đó bạn sẽ sửa tập tin ~/.muttrc. Đổi dòng
set send_charset=""
thành
set send_charset="XXX"
với XXX là bảng mã được dùng để gửi mail. Đổi dòng
set charset=""
thành
set charset="YYY"
với YYY là bảng mã bạn dùng để xem và soạn thư.
Bạn có thể đổi bảng mã dùng để gửi thư trong khi chạy Mutt bằng cách dùng lệnh ^T khi đang soạn thư.
Pine
Xem Pine HOWTO
Emacs
Xem Emacs-Howto[8] tại VietLUG
Vim
Bạn có thể gõ tiếng Việt trong Vim bằng Vim-vn[9]. Có thể download Vim-vn tại VietLUG.
Xem hướng dẫn trong tập tin README kèm theo.
Chuyển đổi các bảng mã tiếng Việt
vi2vn
Vi2vn[10] dùng để chuyển đổi từ VIQR sang các bảng mã khác. Vi2vn được viết bằng Perl. Do đó bạn phải có Perl để sử vi2vn. Bạn có thể download vi2vn từ VietLUG
Để chuyển đổi tập tin có đường dẫn <input> từ dạng VIQR thành tập tin <output> dùng bảng mã XXX ta dùng lệnh:
$vi2vn XXX <input> <output>
Nếu bạn bỏ trống <output> thì kết quả sẽ xuất ra màn hình.
vntovn
Vntovn[11] dùng để chuyển đổi từ bảng mã này sang bảng mã khác. Vntovn được viết bằng Perl. Do đó bạn phải có Perl để sử dụng vntovn. Bạn hãy download Cstools-vn từ VietLUG
Để cài đặt vntovn, bạn bung gói Cstools-vn ra. Giả sử bạn bung vào thư mục $HOME/src. Vào thư mục đó và chạy:
$perl Makefile.PL
$make
$./fixdir `pwd`
$export PATH=$PATH:$HOME/src/Cstools-vn-0.177/bin
Chương trình vntovn nằm trong thư mục bin của gói Cstools-vn. Nếu bạn không dùng lệnh export như trên thì phải chỉ rõ đường dẫn khi gọi vntovn. Lệnh export phải được thực hiện lại khi lần đầu tiên chạy vntovn trong một shell nào đó.
Để chuyển đổi tập tin nhập input.txt (dùng VIQR) sang tập tin xuất output.txt (dùng TCVN) ta dùng:
$vntovn viqr tcvn input.txt > output.txt
Việc chuyển đổi với các bảng mã khác cũng được tiến hành tương tự.
vnconv
VnConv[12] dùng để chuyển đổi từ bảng mã này sang bảng mã khác. Bạn có thể download vnconv từ NĐQ Web Site
Để chuyển đổi tập tin nhập input dùng bảng mã XXX thành tập tin xuất output dùng bảng mã YYY, bạn dùng lệnh sau:
$vnconv -f XXX -t YYY input -o output
• Nếu bạn không cho biết tên tập tin nhập thì dữ liệu nhập sẽ nhận từ bàn phím.
• Nếu bạn không ghi ‘-o output’ thì kết quả sẽ xuất ra màn hình.
• Chế độ iconv
vnconv hỗ trợ giao diện iconv - giao diện chuyển đổi bảng mã chuẩn. Sử dụng giao diện iconv cho phép bạn có thể chuyển đổi bảng mã ngay trong các ứng dụng có sử dụng iconv.
Để cài đặt iconv bằng vnconv, bạn dùng lệnh sau trước khi chạy các ứng dụng có dùng iconv:
$export LD_PRELOAD=path/iconv.o
Trong đó path là đường dẫn tuyệt đối của tập tin iconv.o đi kèm với vnconv. Lệnh này chỉ cần thực hiện một lần trong mỗi shell. Nếu bạn gõ lệnh sai, bạn sẽ không thể chạy các ứng dụng khác. Trong trường hợp đó hãy gõ:
$export LD_PRELOAD=
Bạn có thể thử xem chế độ iconv có hoạt động hay chưa bằng cách dùng lệnh iconv để chuyển đổi bảng mã thay vì vnconv.
Để biết các bảng mã được hỗ trợ, dùng lệnh:
$vnconv --list
Xem vnconv --help và trang man đi kèm để biết chi tiết cách sử dụng.
uvconverter
UvConverter[13] cho phép chuyển đổi giữa các bảng mã khác nhau. Đặc biệt UvConverter có thể chuyển từ bảng mã VIQR sang các bảng mã khác mà không làm thay đổi các URL trong tài liệu. Ngoài ra, UvConverter còn có khả năng xử lý các bảng mã có trộn lẫn các ký tự VIQR. Bạn có thể download tại Sourceforge hoặc tại NĐQ Web Site.
Để chuyển đổi tập tin nhập input dùng bảng mã XXX thành tập tin xuất output dùng bảng mã YYY, bạn dùng lệnh sau:
$uvconv -f XXX -t YYY input -o output
• Nếu bạn không cho biết tên tập tin nhập thì dữ liệu nhập sẽ nhận từ bàn phím.
• Nếu bạn không ghi ‘-o output’ thì kết quả sẽ xuất ra màn hình.
• Nếu không ghi ‘-f XXX’ thì bảng mã của input là TCVN3.
• Nếu không ghi ‘-t YYY’ thì bảng mã của output là UTF-8.
• ĐẶC BIỆT (Chỉ với phiên bản trước 1.1.2) Khi chuyển đổi một tập tin sang VIQR thì tập tin xuất mặc định sẽ tuân theo chuẩn VIQR. Do đó, nếu trong tập tin nhập có chứ các chuỗi như ‘to^i ddi ho.c’, thì trong tập tin xuất, chuỗi đó sẽ trở thành ‘to\^i ddi ho.c’. Nhờ vậy, nếu chuyển đổi từ tập tin kết quả sang bảng mã khác thì kết quả sẽ là ‘to^i ddi ho.c’ như cũ. Để tránh việc chuyển đổi như vậy, bạn cần thêm tham số -m.
• ĐẶC BIỆT Như đã nói, UvConverter có khả năng chuyển đổi từ VIQR sang các bảng mã khác mà vẫn bảo toàn các URL trong tài liệu. Nếu muốn tránh điều này, bạn hãy thêm vào tham số -s. Khi dùng tham số này, mọi thứ trong tài liệu đều được chuyển đổi. Tham số này có thể cải thiện một phần tốc độ của UvConverter.
• ĐẶC BIỆT (Từ phiên bản 1.1.2 trở đi) Hỗ trợ một bảng mã mới: UVIQR! Đây không thật sự là một bảng mã. ‘Bảng mã’ này chỉ được sử dụng cho các tập tin nhập. Khi dùng bảng mã này thì tập tin nhập được coi là dùng UTF-8 trộn lẫn với VIQR.
Để biết các bảng mã được hỗ trợ, dùng lệnh:
$uvconv --list
Xem
uvconv --help
và tập tin README để biết chi tiết cách sử dụng.
Dùng tiếng Việt trong TeX
Xem vntex[14] tại NĐQ Web Site. Tài liệu hướng dẫn sử dụng TeX và xvnkb [15] tại VH Web Site
________________________________________
