Netencyclo tiếng Việt, The wikipedia mirror - The biggest multilingual encyclopedia : TeX

- TeX -

TeX :

TeX

Bách khoa toàn thư mở Wikipedia

Bước tới: menu, tìm kiếm
Biểu tượng may mắn của TeX, thiết kế bởi Duane Bibby
Tựa đúng của bài này là TEX. Bài có tựa không chính xác vì các hạn chế kĩ thuật.

TEX, viết không định dạng là TeX, là một hệ thống sắp chữ được viết bởi Donald Knuth. Nó phổ biến trong môi trường hàn lâm, đặc biệt là trong cộng đồng toán học, vật líkhoa học máy tính. Trong hầu hết các bản cài đặt Unix, nó gần như thế chỗ của troff, cũng là một chương trình định dạng văn bản được ưa thích khác.

TeX nói chung được xem là cách tốt nhất để gõ công thức toán học phức tạp, nhưng, đặc biệt là ở dạng LaTeX hoặc các gói khuôn (template) khác, nó cũng được dùng cho các tác vụ sắp chữ khác.

Mục lục

[sửa] Tên

Để tỏ lòng quý trọng đến Caltech (Học viện Kĩ thuật California), nơi Knuth nhận bằng tiến sĩ, tên TeX được dụng ý dùng với phát âm "tekh", trong đó "kh" đại diện cho âm cuối của loch trong tiếng Tô Cách Lan hay tên của nhà soạn nhạc người Đức Bach (theo Bảng chữ cái phiên âm quốc tế IPA /tɛx/). Chữ X được dùng để đại diện cho chữ χ (chi) trong tiếng Hi Lạp. TeX là dạng viết tắt của τέχνη (technē), tiếng Hi Lạp có nghĩa là "nghệ thuật" và "thủ công", cũng là chữ căn nguyên của technical (kĩ thuật).

Tên được xếp chữ với "E" nằm bên dưới đường ngang; nếu hệ thống không hỗ trợ subscript, nó được viết "ước chừng" là "TeX".

Các ủng hộ viên của TeX phát triển thêm các tên gọi từ "TeX" — như TeXnician (người dùng phần mềm TeX), TeXhacker (người lập trình TeX), TeXmaster (người lập trình thông thạo TeX), TeXhax, và TeXnique.

[sửa] Lịch sử

Knuth bắt đầu viết TeX vì ông cảm thấy khó chịu khi chất lượng sắp chữ bị giảm sút trong các quyển I-III của tác phẩm The Art of Computer Programming (Nghệ thuật lập trình máy tính) hoành tráng của ông. Với phong thái của một hacker điển hình thôi thúc giải quyết vấn đề một lần cho mãi mãi, ông bắt đầu thiết kế ngôn ngữ sắp chữ của riêng mình. Ông dự tính hoàn thành trong kỳ nghỉ phép năm 1978 nhưng phải đến hơn 10 năm sau, tức năm 1989, ngôn ngữ này mới ngưng bổ sung thêm tính năng.

Guy Steele tình cờ ở Stanford trong mùa hè năm 1978, khi Knuth phát triển phiên bản TeX đầu tiên. Khi Steele quay lại MIT mùa thu năm ấy, ông viết lại phần nhập/xuất (I/O) của TeX để chạy dưới Hệ thống chia sẻ thời gian không tương thích (ITS).

Phiên bản TeX đầu tiên được viết bằng ngôn ngữ lập trình SAIL để chạy trên một PDP-10 dưới hệ điều hành WAITS của Đại học Stanford. Ở các phiên bản TeX sau này, Knuth phát minh khái niệm lập trình văn chương (literate programming), một phương thức tạo ra mã nguồn có tính tương thích và tài liệu có liên kết chéo với chất lượng cao (dĩ nhiên được sắp chữ bằng TeX) từ một cùng tập tin nguyên thuỷ. Ngôn ngữ được dùng gọi là WEB và tạo ra chương trình ở dạng Pascal.

TeX có hệ thống đánh số phiên bản mang phong cách riêng. Từ phiên bản 3, các cập nhật được biểu thị bằng cách thêm vào một chữ số vào cuối số thập phân, sao cho số phiên bản tiệm cận π. Phiên bản hiện tại là 3.141592. Điều này phản ánh sự kiện rằng TeX hiện rất ổn định, và chỉ các cập nhật nhỏ được dự tính thực hiện. Knuth có nói rằng "thay đổi cuối cùng nhất (thực hiện trước khi tôi chết)" sẽ chuyển số phiên bản thành π, tại điểm đó mọi bọ còn lại sẽ thành tính năng.

[sửa] Hệ thống sắp chữ

Các lệnh trong TeX thường bắt đầu với dấu chéo ngược và được nhóm bằng dấu ngoặc nhọn. Tuy nhiên hầu hết các đặc tính pháp cú của TeX có thể được thay đổi ngay trong lúc dùng, khiến một nguồn TeX khó có thể phân tích cấu trúc bởi bất cứ gì trừ chính bản thân TeX. TeX là một ngôn ngữ dựa trên macrobiểu tượng (token): nhiều lệnh, bao gồm hầu hết các lệnh do người dùng định nghĩa, được mở rộng trong lúc dùng cho đến khi chỉ còn các biểu tượng không thể mở rộng thêm được nữa và chúng sẽ được thực thi. Bản thân sự mở rộng này thực tế không gây tác dụng phụ. Đệ quy lặp (tail recursion) các macro không tốn bộ nhớ, và có sẵn cấu trúc if-then-else. Điều này khiến TeX trở thành ngôn ngữ Turing trọn vẹn (Turing-complete) ngay cả ở mức độ mở rộng.

Hệ thống có thể được chia đại khái thành 4 cấp độ: ở cấp độ đầu, TeX phân tích từ vựng để tìm các chuỗi điều khiển. Bước kế tiếp, chuỗi điều khiển mở rộng (như câu điều kiện hoặc macro đã được định nghĩa) được thay bởi văn bản của chính chúng. Ở giai đoạn 3, các kí tự được xếp thành đoạn văn; thuật toán ngắt đoạn của TeX tối ưu hoá điểm ngắt cho toàn đoạn. Văn bản được phân thành trang ở bước cuối.

Hệ thống TeX hiểu biết chính xác kích thước tất cả kí tự và kí hiệu, và nó dùng thông tin này để tính toán sắp xếp tối ưu số chữ trong dòng và dòng trong trang. Sau đó nó tạo tập tin DVI (viết tắt cho "device independent", độc lập với thiết bị) chứa vị trí chung cuộc cho mọi kí tự. Tập tin dvi này có thể được in trực tiếp với driver máy in phù hợp, hoặc có thể được chuyển sang các định dạng khác. Ngày nay, PDFTeX thường được dùng để bỏ qua giai đoạn phát sinh DVI.

Hầu hết chức năng được cung cấp bởi các tập tin định dạng. Các định dạng thường gặp là TeX thuần tuý của Knuth, LaTeX (có ở khắp các ngành kĩ thuật), và ConTeXt (chủ yếu được dùng cho xuất bản trên desktop).

Tác phẩm tham khảo cơ bản cho TeX là hai quyển đầu bộ Computers and Typesetting (Máy tính và sắp chữ) của Knuth, The TeXbookTeX: The Program (có chứa toàn bộ mã nguồn được chú thích của TeX).

TeX thường được phân phối cùng với Metafont, một chương trình đồng hanh cũng được phát triển bởi Knuth cho phép miêu tả các font chữ bằng thuật toán. Cấu trúc thư mục cài đặt TeX / Metafont được chuẩn hoá trong cây thư mục texmf.

[sửa] Giấy phép

Giấy phép cho quyền phân phối và sửa đổi tự do nhưng yêu cầu bất cứ phiên bản sửa đổi nào cũng không được gọi là TEX, TeX, hay bất cứ thứ gì tương tự có thể gây nhầm lẫn, tương tự như một thương hiệu. Bộ thử TRIPTRAP giúp kiểm tra một ứng dụng có thực sự là TEX hay không.

[sửa] Chất lượng

Mặc dù được viết kĩ lưỡng, TeX quá lớn (và cũng chứa quá nhiều kĩ thuật mới mẻ) đến nỗi nó được cho là đã phát hiện ít nhất một lỗi lập trình trong mỗi hệ thống Pascal dùng để biên dịch. TeX chạy trên gần như mọi hệ điều hành.

Knuth treo giải thưởng bằng tiền cho những ai phát hiện và thông báo lỗi (lỗi lập trình) trong TeX. Giải thưởng cho mỗi lỗi khởi đầu với $2,56 và nhân đôi mỗi năm cho đến khi nó đóng băng; giá trị hiện tại là $327,68. Tuy nhiên điều này không làm Knuth bị nghèo, vì đã có rất ít lỗi được phát hiện; và trong đa số trường hợp tờ ngân phiếu chứng minh người chủ tìm ra lỗi thường được đóng khung thay vì đổi thành trả tiền.

[sửa] Các khía cạnh khoa học máy tính của TeX

Phần mềm TeX hội tụ một số thuật toán thú vị, đã dẫn đến một số luận án của các học trò của Knuth. Thí dụ, thuật toán dấu nối từ (hyphenation) (công trình của Frank Liang) được dùng để quy định ưu tiên cho dấu ngắt trong nhóm các chữ cái.

Thuật toán ngắt dòng là thí dụ cho lập trình động. Bài toán ngắt một đoạn văn n chữ thành các dòng có độ phức tạp thực 2^n, nhưng với lập trình động, bố trí tối ưu toàn bộ có thể rút ra theo thời gian tỉ lệ với số từ và số từ trong một dòng. Luận án của Michael Plass cho thấy cách thức bài toán ngắt trang có thể NP-trọn vẹn (NP-complete) vì các tình huống nảy sinh khi đặt hình ảnh.

Chương trình đồng hành Metafont để phát sinh kí tự dùng đường cong Bezier theo cách khá chuẩn, nhưng Knuth cống hiến nhiều vào việc bài toán chuyển hình ảnh thành định dạng bitmap (rasterizing). Một luận án khác, bởi John Hobby, khảo sát hơn nữa bài toán số hoá "đường cọ" (brush trajectories). Thuật ngữ này xuất phát từ sự kiện rằng Metafont miêu tả kí tự như chúng được vẽ bởi các cọ trừu tượng.

[sửa] Các công trình dẫn xuất

Vài hệ thống xử lí tài liệu dựa trên TeX, đáng lưu ý có:

Hiện cũng đã có nhiều bản mở rộng cho TeX, trong số đó BibTeX cho việc tạo thư mục (bibliography) (được phân phối với LaTeX), PDFTeX, bỏ qua giai đoạn dvi và tạo ra sản phẩm với định dạng tài liệu PDF (Portable Document Format) của Adobe Systems, và Omega, cho phép TeX dùng bộ kí tự Unicode. Tất cả các bản mở rộng cho TeX có miễn phí ở CTAN (Comprehensive TeX Archive Network (Mạng lưới lưu trữ TeX tổng hợp).

[sửa] Công cụ tương thích

Trên hệ thống tương thích UNIX (gồm cả Mac OS X), TeX được phân phối ở dạng teTeX. Trên Windows, có bản phân phối MiKTeX và bản phân phối fpTeX.

Trình soạn thảo văn bản TeXmacs là chương trình soạn thảo văn bản khoa học WYSIWYG có dụng ý tương thích với TeX. Nó dùng các font của Knuth, và có thể phát sinh kết quả TeX. LyX là công cụ tương tự.

[sửa] Tiếng Việt và TeX

Cho đến nay đã có một số nỗ lực đưa tiếng Việt vào TeX.

[sửa] Xem thêm

[sửa] Liên kết ngoài

TeX - theo chủ đề

TeX - Dự án liên quan

© 2008 Netencyclo - Netencyclo Trang Chính - Chính sách về sự riêng tư - Lời phủ nhận - Program Policies
Netencyclo, the Wikipedia mirror : the biggest multilingual free-content encyclopedia on the Internet. Sửa đổi lần cuối lúc 00:11, ngày 14 tháng 5 năm 2007. Tất cả nội dung được phép sử dụng theo Giấy phép Tài liệu Tự do GNU (xem Quyền tác giả để biết thêm chi tiết). All Wikipedia content is licensed under the GNU Free Documentation License (see details). Content on this web site is provided for informational purposes only. We accept no responsibility for any loss, injury or inconvenience sustained by any person resulting from information published on this site. We encourage you to verify any critical information with the relevant authorities.