VieTeX

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

Biên dịch TeX trong VieTeX

Posted by nhdien on 25/05/2009

1. Giới thiệu

Khi soạn thảo văn bản TeX người ta thường kết hợp biên dịch để xem kết quả đặt lệnh trong văn bản. Chương trình biên dịch TeX là cơ sở cho các chương trình khác sau này ăn theo nó. Ngày nay gồm các chương trình TeX, LaTeX, Texify, PdfLaTeX, PdfTeX,XeTeX, XeLaTeX, … VieTeX đã hỗ trợ các chương trình nào để biên dịch khi soạn thảo. Các công cụ hỗ trợ để biên dịch tốt hơn. Bài này giới thiệu một chút về một số chương trình biên dịch và các chức năng của VieTeX liên quan đến biên dịch.

2. Giới thiệu chung về các chương trình dịch

D. Knuth tạo ra chương trình biên dịch TeX để sắp xếp chữ cho các tài liệu Toán học. Kết quả của công trình này mở ra một thời đại các văn bản khoa học tự nhiên được in ra với chất lương cao và làm dễ dàng trong khi soạn thảo chúng. Khi chưa có TeX các chương trình đều phụ thuộc phần cứng, nhưng riêng TeX không phụ thuộc vào phần cứng, không dùng hình ảnh cụ thể để soạn thảo mà đọc thế nào thì ghi lại toàn bộ như vậy, còn tạo ra văn bản hoàn chỉnh là nhờ TeX, với các thuật toán tối ưu nhất và cách sắp xếp đẹp nhất có thể để tài liệu ra đời.

Thời gian đã làm TeX mạnh lên rất nhiều vì rất nhiều người sử dụng và thành chuẩn của nhiều nhà xuất bản và các hội toán học. Dù ngày nay công nghệ phát triển rất mạnh càng làm cho TeX mạnh hơn, dễ sử dụng hơn, … Hiện tại còn tồn tại các chương trình biên dịch thông dụng sau:

1. tex.exe   là chương trình cơ sở, mọi chương trình sau này đều dữ nguyên những gì của nó và chỉ sáng tạo thêm cái mới của thời đại mà thôi, rất nhiều phát triển TeX dùng chương trình này để phát triển gói lệnh và phần mềm của mình.

2. latex.exe dựa trên TeX chỉ viết thêm phần gói lệnh cấu trúc văn bản cho TeX, làm người dùng dễ hiểu hơn và sử dụng dễ dàng hơn. Bắt đầu từ châu Âu, nhưng với cách tiếp cận cấu trúc ngày nay đã thành phổ biến kể cả ở Mỹ, ngày nay đa số người dùng sử dụng và phát triển phân mềm theo chương trình này.

3. AmSTeX của hội toán học, đã chuẩn hóa cho các tài liệu ở Mỹ, rất nhiều kí hiệu font đẹp và chuẩn, nhưng còn thiếu phần cấu trúc và sử dụng không thống nhất nên dùng chung cộng đồng rất khó, người dùng đa số các nhà khoa học ở Mỹ.

4. AmSLaTeX  là sự thống nhất và kết hợp giữa hai điểm mạnh của hai chương trình trên AmsTeX và LaTeX. Ngày nay thường được gọi là LaTeXe. Chương trình này được thiết kế mở cho mọi người dùng có thể phát triển TeX nhờ vào gói lệnh, phù hợp với mọi tài liệu và các kí hiệu phức tạp trong thực tế. Ngày này đa số dùng chương trình này.

5. pdflatex.exe là chương trình LaTeX nhưng định hướng đầu ra là tệp Pdf chứ không phải tệp Dvi bình thường. Người có công lớn tạo ra PdfLaTeX là người Việt Nam, Hàn Thế Thành. Ngày nay việc sử dụng PdfLaTeX cũng rất thông dụng, nhưng phải định hướng từ đầu đưa vào để chạy PdfLaTeX với hình ảnh.

6. Người ta cũng phát triển PdfTeX và PdfAmsTeX định hướng đầu ra Pdf. Ngày nay có rất nhiều dự án phát triển TeX mà tôi cũng không có thời gian để tìm hiểu hết.

7. Trong MikTeX có chương trình texify.exe, đây là chương trình biên dịch tổng hợp kết hợp từ biên dịch tới hiện lên tệp Dvi nhờ yap.exe. Mặt khác cũng định hướng đầu ra bằng tùy chọn texify.exe –pdf đầu ra là tệp Pdf và cũng mở ngay sau khi biên dịch.

8. xetex.exe là chương trình dịch như TeX nhưng phông lấy trong các hệ điều hành và mã nguồn bằng Unicode

9. xelatex.exe cũng là phiên bản mở rộng của XeTeX và LaTeX cho ta dịch lấy phông dễ dàng từ các hệ điều hành.

VieTeX thiết kế ba thanh công cụ nhằm mục đích dịch khác nhau, ba thanh này chuyển qua lại dễ dàng và các nút thống nhất với Menu

a) Thanh công cụ cho dịch bình thường LaTeX, Texify, … ở phía trên

compil1

Và các menu ở Execute

compil5

b) Thanh dành cho XeTeX và XeLaTeX ở phía dưới.

Rất nhiều người chỉ thích dùng một loại chương trình biên dịch trên, vì định hướng ngay từ đầu phải thực hiện các lệnh cơ bản. Việc chỉ dùng một loại chương trình là thói quen của con người, và đó cũng là nhược điểm không tiếp cận được công nghệ mới. VieTeX cung cấp sử dụng tất cả các chương trình trên nhưng ưu tiên dùng: LaTeX, Texify, PdfLaTeX trên thanh công cụ. Tất cả chương trình biên dịch được cài đặt tại nút có bảng hoặc từ Menu:

compil2

Các nút biên dịch tương ứng với tên trong hộp thoại trên và ta có thể sửa chữ và đặt lại các chương trình biên dịch.

1. Nút biên dịch LaTeX đầu ra Dvi.
2. Nút xem tệp đã biên dịch xong Dvi.
3. Nút biên dịch Texify xem luôn tệp Dvi.
4. Nút chuyển đổi từ từ tệp Dvi sang tệp Ps.
5. Chương trình GSview xem tệp Ps của tệp hiện hành.
6. Nút chuyển đổi tệp Ps sang Pdf
7. Nút xem tệp Pdf bằng chương trình Acrobat.
8. Nút chạy chương trình Texify đầu ra Pdf xem luôn tệp Pdf.
9. ….

3. Biên dịch theo tệp chính và không tệp chính

1. Một tệp chính (main File) là gì?

– Nếu chỉ soạn một tệp LaTeX thì hai khái niệm tệp chính [main file] và tệp Mở chính[Main open file] là một. Khi đó biên dịch chỉ trên tệp này. Một văn bản có thể có nhiều tệp gộp lại mà bằng cách gọi lệnh \input hoặc \include. Khi đó ta tổ chức thành một dự án (Project) có tệp chính để gọi các tệp khác vào (ví dụ dự án: luanan). Khi làm dự án thì lúc biên dịch dù đang soạn trên các tệp dự án trước mặt như thế nào, chương trình cũng chỉ lấy tệp chính ra biên dịch mà thôi, ta không mất công chuyển tới tệp chính đó nữa.
– Dùng một tệp cũng có quyền đặt nó là tệp chính và dịch bình thường, điều này được thể hiện trên thanh tiêu đề của chương trình cùng với tệp hiện hành đang mở.
– Như vậy thanh tiêu đề có thể hiện tệp chính khác với tệp đang mở:

compil3

Các nút thanh công cụ lúc nào cũng có thể thực thi chức năng của nó dù trong dự án hay là không. Nếu biên dịch tệp không có cấu trúc khởi đầu của LaTeX thì chương trình sẽ báo lỗi và các bạn phải làm lại. Sau đây tôi điểm lại một số chương trình dịch bình thường còn chương trình XeTeX và XeLaTeX có phần hướng dẫn riêng bạn nên đọc tại đó.

Để chuyển tệp chính sang tệp mở là chính để biên dịch thực hiện cài đặt lại đơn giản là chọn vào tệp bên cửa số Project

compil4

Sau đó thực hiện biên dịch bình thường.
Còn khi trở lại biên dịch 1 tệp thì bạn chọn vào [set main open file]

2.Chương trình LaTeX và Texify

 Biên dịch bằng LaTeX và Texify thường được dùng nhất hiện nay. Định hướng đầu ra là tệp Dvi. Việc soạn thảo TeX bằng các lệnh chuẩn bình thường và cấu trúc một văn bản đơn giản nhất gồm:
\documentclass[11pt]{article}
\usepackage{amsmath,amsxtra,amssymb,latexsym, amscd}
\usepackage[mathscr]{eucal}
\usepackage{color}
\usepackage{listings}
\usepackage{colortbl}
\usepackage[utf8]{vietnam}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{indentfirst}
\usepackage{wrapfig}
\textheight 23truecm

\textwidth 14truecm
\voffset -0.7in
\parskip 4pt
\renewcommand{\contentsname}{\bf Mục lục}
\renewcommand{\abstractname}{\bf Tóm tắt}
\newcommand{\daut}{$\backslash$\textvisiblespace{ }}
\begin{document}
Nội dung tài liệu ở đây
\end{document}
Tài liệu ngày nay dùng rất nhiều gói lệnh đặc trưng như: amsmath gói kí hiệu của AmsTeX, color gói lệnh tô màu, graphicx gói lệnh đồ thị, … Hầu như đều có mẫu sẵn, người bắt đầu sử dụng TeX đỡ khó khăn.

Mặc định của các chương trình này về đưa ảnh vào là tệp eps và bmp. Còn các tệp ảnh loại khác như jpg, png, … thì phải có lệnh khai báo và chuyển đổi như:
\DeclareGraphicsExtensions{.pdf,.jpg}
\DeclareGraphicsRule{.pdf}{eps}{}{}
\DeclareGraphicsRule{.jpg}{eps}{}{}
rồi lại phải có cả tệp khung *.ebb của hình ảnh đưa vào. Việc tạo ra tệp *.ebb được MikTeX cung cấp một chương trình và VieTeX có chức năng trên Menu. Sự chuyển đổi các định dạng ảnh VieTeX cũng cung cấp hàng loạt chức năng trong:
Tools –> Image Convert, vấn đề này sẽ được nói kỹ trong bài VieTeX với việc đưa hình vào.

3. Chương trình PdfLaTeX

Các lệnh TeX cho chương trình PdfLaTeX không có gì thay đổi. nghĩa là soạn cho LaTeX hoặc PdfLaTeX là như nhau. Chỉ có khác phần đầu có định hướng dịch PdfLaTeX bằng gói lệnh ifpdf. Phần định dạng sau đây có thể biên dịch được cả LaTeX và PdfLaTeX tùy trường hợp định hướng của người dùng.
\documentclass[a4paper,10pt]{article}
\usepackage{color}
\usepackage[utf8]{vietnam}

\usepackage{ifpdf}
\ifpdf%if using PDFTeX
\usepackage[pdftex]{graphicx}
\DeclareGraphicsExtensions{.pdf,.png,.mps}
\else %if using TeX
\usepackage{graphicx}
\fi
\begin{document}
Nội dung tài liệu ở đây
\end{document}

Để định hướng ra tệp Pdf thì trong nội dung tài liệu các hình ảnh là các tệp pdf như ví dụ đưa hình vào:
\begin{figure}[!ht]
\centering
\includegraphics[height=4.5cm,width=11.3cm]{autocom2}
\caption{Chọn cách thứ hai Tự động hoàn thành}\label{fig:autocom2}
\end{figure}

Trong trường hợp LaTeX là các tệp *.eps. VieTeX trợ giúp chương trình chuyển đổi các ảnh, xem bài đưa hình vào LaTeX trong VieTeX.
Biên dịch định hướng PdfLaTeX cũng có một nút trên thanh công cụ. Khi biên dịch xong cũng tự mở Acrobat readme cho người dùng.

Với cấu trúc dùng gói lệnh ifpdf ở trên thì ta có thể dịch văn bản ở hai chế độ LaTeX và PdfLaTeX nhưng không gõ phần mở rộng của tệp ảnh. Mặt khác phải có cả hai loại ảnh *.eps và *.pdf, việc này không khó qua việc chuyển đổi có chính trong VieTeX.

4. Chương trình XeLaTeX

Đây là chương trình với công nghệ mới nên còn nhiều vấn đề phải thực hành, trong phiên bản này đã tích hợp khả năng và biên dịch bình thường với MiKTeX 2.7.

4. Biên dịch có lỗi

Người mới sử dụng TeX rất lúng túng khi biên dịch có lỗi. Có rất nhiều loại lỗi có thể xảy ra. Thường là những lỗi
– Đánh lệnh sai và TeX không biết lệnh đó.
– TeX không biết lệnh nhưng có thể do chưa đưa gói lệnh vào đầu như
– \usepackage{…}
– Thiếu dấu $, {, }, …
– Việc kết hợp môi trường và nhóm lệnh không đúng, …
VieTeX đã cũng cấp cách gõ vào có cấu trúc tối đa, làm việc gõ vào dễ hơn và chính xác hơn rất nhiều.

Khi lỗi xảy ra TeX thông báo lỗi tại dòng và kí tự nào như:

compile3

Lỗi ở dòng 182 với từ môi trương enumerat. Với VieTeX trở lại dòng đó một cách dễ dàng và ta sửa lại.

Khó khăn nhất là tìm lỗi trong một khối môi trường hoặc nhóm lệnh. Khi đó bạn phải kiểm tra lại các cú pháp lệnh của LaTeX.

5. Sự kết hợp gữa các chương trình

 1. Từ biên dịch đến xem các kết quả bàng Dvi, Pdf và Ps đều có nút trên thanh công cụ. Các nút chuyển đổi kết quả thích hợp cho việc xem tài liệu đều có cả. Dịch bằng [Texify] xong và xem được ngay kết quả nhờ yap.exe.

2. Có thể chuyển đổi từ tài liệu hai mặt vào một trng bằng
File –> Export–>      2*A5->A4 hoặc Small Book
là nhằm thu 2 mặt vào một trang thuận tiện cho làm tomá tắt luận án và các sách cỡ nhỏ đỡ tốn giấy.

3. Đang soạn ở một tệp hoặc một tệp trong dự án có thể tiến thẳng tới dòng đó trong tệp Dvi bằng cách nhấn nút có dấu chấm để tiến tới đó được ngay.

4. Ngược lại đang xem tệp Dvi trở về đúng dòng trong tập nguồn TeX

Bạn xem bài:  Tìm ngược từ xem DVI hoặc PDF sang tệp nguồn

6. Kết luận

Các chương trình biên dịch quan trọng như phần soạn thảo ra tệp văn bản. Việc sử dụng liên tục chương trình biên dịch làm ta thành thạo và có nhiều cách thực hiện kết hợp với các chức năng khác. VieTeX cung cấp tối đa giữa phần soạn thảo và chạy biên dịch của MikTeX. Trong tay các bạn có một công cụ biên dịch TeX rất mạnh và dễ hiểu khi sử dụng chúng. Mong các bạn sử dụng như một trò chơi điện tử.

Còn biên dịch theo khoảng được bôi đen hoặc đánh dấu giữa hai dòng để kiểm tra một đoạn tôi dành 1 bài khác.

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: