This page is READ-ONLY. It is generated from the old site.
All timestamps are relative to 2013 (when this page is generated).
If you are looking for TeX support, please go to VietTUG.org

TeX ngừng hỗ trợ font unicode

this isn't a joke
Added by almost 4 years ago

Tin mới nhất là TeX sẽ ngừng hỗ trợ font Unicode hoàn toàn, vì một số lý do mà bạn sẽ biết ở cuối bài. Cùng lúc, các hãng lớn như Microsoft, IBM, Sun,... cũng sẽ không phát triển các phần mềm sử dụng font Unicode nữa.

Đây quả thật là tin sốc với người dùng TeX (và mọi người dùng máy tính khác nói chung), bởi nếu ngừng hỗ trợ như thế thì mọi chuyện của bạn sẽ vô cùng rắc rối, phải trở lại với font tcvn, font viscii. Những ai từng ủng hộ font Unicode bây giờ sẽ chứng kiến những tay thủ cựu mỉm cười. Biết làm sao được, vì sự phát triển của TeX, ta phải quay về cày cuốc trên mảnh đất xưa.

Trước khi biết lý do tại sao, ta hãy điểm lại vài điều cơ bản.

Font là gì?

Font là một bộ gồm các thể hiện đồ họa của ký tự. Ví dụ, chữ A mà bạn xem trên màn hình này: kết quả mà bạn đang xem là do máy tính đã "vẽ" trên màn hình nhờ một số lớn các chấm điểm để đánh lừa con mắt, và khi đó là bạn thấy chữ A (hoa). Trong các font thư pháp, chữ A có thêm nét ngài mày phượng, rất bay bổng, nhưng cũng chỉ là chữ A với thể hiện đồ họa khác đi.

Hoặc là ký tự (chữ) D mà bạn thấy trong hình ở bên của thầy Phi: đó là chữ D đã được thêm màu sắc, thêm nét cong cong... Các trường hợp khác: chữ A đậm, chữ A nghiêng,... (tất cả đều là A nhưng có nét khác nhau)

Font là một bộ gồm các thể hiện đồ họa của ký tự. (Từ tiếng Anh để chỉ thể hiện đồ họa của ký tự là glyph.) Có nhiều font khác nhau: font thư pháp, font Vni Times, font Tahoma, font Palatino Linotype,... Phải nhấn mạnh rằng, font không chứa ký tự nào hết, mà chỉ chứa thể hiện đồ họa của ký tự (glyph). Do đó, có thể một font chứa nhiều thể hiện của cùng một ký tự: ví dụ, các dấu tích phân mà bạn gõ trong TeX được trích từ một font đặc biệt (font gì nhỉ?) và font này có một loạt các thể hiện khác nhau của dấu tích phân... (Tuy nhiên, thông thường, mỗi font chứa 256 glyph.) Nói một cách toán học, ánh xạ "glyph" :=> "ký tự" không phải là một đơn ánh.

Rắc rối thế, khó hiểu thế. Vâng, "ký tự" đi vào tai, còn "glyph" đi vào mắt. Bạn phân biệt hai thứ đó bằng cách sau: khi bạn đọc lên được, nghe được, thì đó là ký tự. Bạn hãy cùng đọc to lên rằng "D". Tốt. Còn khi nào phải nhìn bằng mắt mới thấy được, thì đó là "glyph".

Vậy, font là để thỏa mãn cho mắt của bạn.

Bảng mã font là gì?

Như đã nói ở trên, có thể nhiều "glyph" khác nhau đại diện cho cùng một "ký tự". "glyph" đi vào mắt, "ký tự" đi vào tai. Nhưng đó là điều bạn biết, còn máy tính thì làm sao phân biệt được, máy tính đâu có mắt, máy tính đâu có tai?

Máy tính không có mắt, nên máy tính dùng bộ nhớ cùng các thư viện đồ họa để lưu trữ "glyph". Sau đó, máy tính dùng "bảng mã font" để làm tai, để biết được trong fonts cụ thể nào đó, "glyph" thứ nhất đại điện cho ký tự X, "glyph" thứ hai đại diện cho ký tự Y. Một cách không chính xác, bảng mã font là cách sắp xếp thứ tự các "glyph".

Nói một cách chính xác và toán học, bảng mã font chính là ánh xạ "ký tự" .

Nhờ bảng mã font, khi bạn gõ tài liệu, bạn sẽ thực hiện các thao tác (trực tiếp hay trung gian) trên bảng mã font, ví dụ ra lệnh "lấy cho tôi ký tự A" nghiêng, "lấy cho tôi ký tự A" đậm,... từ font XXX; sau đó, máy tính sẽ tìm trong fonts "glyph" tương ứng với yêu cầu của bạn và thể hiện trên màn hình. Công việc của máy tính thành công là nhờ bảng mã font.

Từ đây cũng xuất hiện vấn đề là: cùng một font, sử dụng các bảng mã khác nhau, bạn sẽ có kết quả khác nhau trên màn hình. Ví dụ, một anh bạn muốn viết thư cho người yêu mà không muốn người ta đọc lén, và cũng để tăng phần lãng mạn và làm người yêu tò mò, anh ta bèn làm một bảng mã mới, thật mới, sau đó, áp dụng bảng mã này vào một font mà người yêu vẫn dùng. Khi người yêu mở thư của anh ta lên, thì hỡi ôi (đúng ý chàng rồi nhé), đọc thế này "I HATE YOU". Thật ra, anh chàng đã ánh xạ như sau:

glyph H :=> ký tự L
glyph A :=> ký tự O
glyph T :=> ký tự V

(giữ nguyên mọi ánh xạ khác)

Kết quả là dù anh ta đã cẩn thận gõ "I LOVE YOU", cô nàng vẫn thấy "I HATE YOU". Nếu cô nàng thiếu kiềm chế không phân biệt đâu là bản chất, đâu là hình thức, thì chắc là chia tay rồi :) Nhưng cho dù có phân biệt được, cô nàng cũng đã khiến anh chàng giải thích tóat mồ hôi :P

Bảng mã font rất quan trọng, thiếu nó tức là thiếu cái "tai" của máy tính. Nếu thiếu tai, máy tính không nghe được lệnh của bạn và sẽ chẳng thể làm gì hơn là một tên ngốc :)

Đối với người dùng TeX tiếng Việt, bảng mã cần phải biết là bảng mã T5, thiết kế cùng gói VnTeX và đã được công nhận bởi TUG thế giới.

TeX ngừng hỗ trợ font unicode. Vậy font unicode là gì?

Quay trở lại tin sốc mà đã đưa ra ở trên. TeX sẽ ngừng hỗ trợ font Unicode. Bạn sẽ hoảng mất thôi, vì từ truớc giờ vẫn làm việc với font Unicode, không chỉ trong TeX mà MS Word, Excel,... Ngừng hỗ trợ font Unicode quả là tin cực xấu :(

Vâng, bởi vì chẳng có cái gọi là Font Unicode, bạn à. Chỉ có font, bảng mã font (font encoding), không có "font Unicode". Nếu xuề xòa một tí thì hiểu "font Unicode" là dùng bảng mã Unicode với font XXX.

Vì không có font Unicode, không có chuyện hỗ trợ cho dành cho nó, và do đó cũng chẳng có chuyện "TeX ngừng hỗ trợ font Unicode". Do đó, bạn cứ yên tâm, mọi chuyện vẫn không thay đổi, bạn vẫn gõ tài liệu TeX theo thói quen của mình. Chỉ có điều là kể từ sáng hôm nay, đừng bao giờ nói font Unicode nữa, theo ý nghĩa lệch của từ đó. Cũng đừng nói font VNI, font TCVN, font VISCII.

Chúc một ngày tốt lành, và cảm ơn bạn đã chăm chú theo dõi câu chuyện tình giữa một cô nàng và một anh-chàng-mê-máy-tính ở trên :)

Chú thích của tác giả: bài viết chấp nhận một số sai sót không đáng kể, cũng như chưa đề cập đến nhiều vấn đề khác của font. Đây là vì lý do sư phạm.

Tham khảo

  1. Giải thích thuật ngữ về bảng mã
  2. Hàn Thế Thành, Reinhard Kotucha, "VnTeX - Typesetting Vietnamese", vntex.pdf from VnTeX 3.1.9 distribution

Comments

Added by tuonglientex over 3 years ago

con gái yêu bằng tai, con trai yêu bằng mắt...

Added by over 3 years ago

mặc dù bị lừa nhưng thanks anh-chàng-mê-máy-tính đã cho tôi và mọi người hiểu rõ ràng thế nào là font và bảng mã font!