VieTeX

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

Cài đặt và sử dụng gói lệnh trong LaTeX

Posted by nhdien on 23/06/2009

1. Gói lệnh là gì

Dùng soạn thảo văn bản bằng LaTeX là dùng các lệnh để điều khiển cho ta kết quả cuối cùng sản phẩm chế bản. Để mở rộng khả năng sử dụng LaTeX và đáp ứng nhu cầu đa dạng với kết quả chuyên nghiệp, người ta đã thiết kế cho người sử dụng tạo các gói lệnh dùng chung. Như vậy gói lệnh giống như thư viện các lệnh, cần thì đưa ra dùng, không cần thì thôi cũng không ảnh hướng đến kết quả. Đây cũng là mã nguồn mở ai cũng tham khảo được và ai cũng có khả năng thay đổi được. Thực tế để làm ra một gói lệnh là gom một số lệnh vào một tệp có đuôi sty.

2. Đặc điểm của gói lệnh

Trong thực tế nhiều gói lệnh dùng chung sẽ có các lệnh trùng nhau và dẫn tới không tương thích với nhau. Thực sự có nhiều gói lệnh không dùng chung với nhau trong một văn bản và dẫn tới biên dịch bị lỗi, do đó khi sử dụng gói lệnh ta có thể thử hòa nhập được với văn bản của ta không.

Đó là đưa gói lệnh vào bằng lệnh \usepackage{…} và biên dịch một lần trước khi dùng lệnh của nó.

Trường hợp không tương thích không nhiều lắm, vì quy tắc viết cấu trúc gói lệnh là phải tham khảo gói lệnh tương tự có thể, các lệnh trong gói lệnh không sử dụng ra ngoài gói lệnh thường có kèm ký tự @, vì ký tự này trong văn bản bình thường là 1 ký tự đặc biệt. Ví dụ trước khi đưa ra dùng lệnh \section người ta xây dựng lệnh phụ trong gói lệnh \@section,… Mặt khác người ta cố gắng đặt các lệnh là nguyên từ tiếng Anh, mà các từ tiếng Anh thì khác nhau nên hạn chế trùng nhau.

Một gói lệnh chỉ nhằm một mục đích làm một việc cụ thể càng tốt và có một số lệnh sử dụng ít nhất, đơn giản nhất. Ví dụ gói lệnh indentfirst.sty chỉ làm nhiệm vụ làm thụt đầu dòng dòng đầu tiên của đoạn.

Gói lệnh cũng có tùy chọn được thiết kế trong gói lệnh trong gói lệnh ví dụ gói phông tiếng việt có tùy chon utf8 hoặc tcvn như \usepackage[utf8]{vietnam}.

3. Cài đặt và sử dụng gói lệnh

Khi biên dịch LaTeX, khi có lời gọi gói lệnh ở phần đầu văn bản như

\usepackage{shortlst}

LaTeX tìm kiếm tệp shortlst.sty ở cùng thư mục với tệp văn bản, nếu không có mới đi tìm ở thư mục cấu hình sẵn như trong MiKTeX là

..\miktex 2.7\tex\latex\<tên gói lệnh>\*.sty

Nếu không thấy thì LaTeX báo lỗi không có gói lệnh này. Nhưng trong MiKTeX có cơ chế tìm ngay trong danh sách gói lệnh nếu có nó sẽ nạp vào, các bạn định hướng từ trước đĩa gói lệnh ở đâu. Nếu không có trong danh sách nó mới báo lỗi.

Như vậy, Ta có thể sử dụng gói lệnh bất kỳ bằng cách

+ Đặt tệp gói lệnh đó tại thư mục tệp văn bản

+ Đặt gói lệnh tại một thư mục mà LaTeX chứa các gói lệnh như ví dụ MiKTeX ở trên. Nghĩa là tạo một thư mục và chưa gói lệnh vào đó và sau đó cập nhật cấu hình MiKTeX. Trong VieTeX bạn chọn

tools–>MiKTeX Setting

sau đó nhấn nút [refresh FNDB] để cập nhật đường dẫn.

+ Rất nhiều gói lệnh trong MiKTeX khi cài đặt xong đã có các tệp vị dụ và tệp hướng dẫn sử dụng, các tài liệu đó trong thư mục sau đây các bạn nên vào đó mở tệp pdf để xim ví dụ như gói lệnh beamer.sty rất có ích và tự học tập được:

..\miktex 2.7\doc\latex\beamer\doc\beameruserguide.pdf

4. Những gói lệnh lấy từ trên internet

Một gói lệnh thường được lưu trữ ở  http://tug.ctan.org/ và trang web của tác giả hoặc cơ quan tạo ra nó. Gói lệnh do vậy luôn luôn được sửa đổi và cập nhật tốt hơn. Như vậy bản đã có trong MiKTeX là dừng lại lúc phát hành phiên bản MiKTeX, nếu có sử dụng sau đó ta phải lấy ở internet, mặt khác rất nhiều gói lệnh không có trong MiKTeX ví dụ như shortlst.sty chẳng hạn.

Khi đó ta vào

http://www.ctan.org/tex-archive/macros/latex/contrib/shortlst/

package1

Bạn có thể lấy tệp shortlst.pdf  xem trước và tệp shortlst.dtx về thư mục đặt gói lệnh này.

+ Sau đó mở tệp shortlst.dtx bằng VieTeX và nhấn phím biên dịch ra DVI, nghĩa là biên dịch bình thường như tệp có đuôi TeX. Kết quả sinh ra tại thư mục đó tệp shortlst.dvi và shortlst.ins (Khi lấy về chưa có) ta có thể xem tệp shortlst.dvi bình thường.

+ Lại mở tệp shortlst.ins bằng VieTeX (chú ý khi mở không phải đuôi tex nên phải chọn mở tệp *.* mới nhìn thấy shortlst.ins, rất nhiều gói lệnh đã có sẵn). Lại biên dịch tập này và xem được tệp shortlst.dvi đầy đủ. Một tệp mới sinh ra là shortlst.sty và ta sử dụng gói lệnh này được.

5. Kết luận

+ Vấn đề là lập trình tạo ra gói lệnh thế nào, vấn đề này tôi hiểu rất ít có tài liệu clsguide.pdf trên mạng hướng dẫn làm lớp văn bản và gói lệnh nếu bạn nào cần tìm kiếm về tự học.

+ Một gói lệnh khi thiết kế người tạo ra nó nhằm một mục đích nào đó. Nhưng có thể trong thực tế ta ứng dụng vào mục đích tương tự văn bản của ta đó cũng là sáng tạo khi dùng TeX. Rất nhiều gói lệnh mới được lập ra bởi dựa vào nhiều gói lệnh đã có, bạn có thể làm được không cho tiếng Việt ta?

5 Responses to “Cài đặt và sử dụng gói lệnh trong LaTeX”

  1. Em vẫn chưa hiểu lắm về cài đặt và sử dụng gói. Em tạo 1 folder chứa file *.tex và gói thì nó chạy được (cách này thì hơi phiền). Còn phần cập nhật cấu hình MiKTeX em làm không được, thầy hướng dẫn rõ giúp em được không ạ? Em cám ơn thầy
    Trả lời
    Bạn đọc lại, cấu hình lại nhờ chương trình quản lý gói lệnh của MiKTeX bạn biết nó ở đâu chưa?

  2. Phan Văn Thành _ Bí thư Đoàn khoa said

    thầy cho em hỏi mình dùng gói nào để tạo header và footer cho một trang văn bản và cho toàn bộ văn bản.
    Trả lời
    Bạn dùng gói lệnh
    \usepackage{fancyhdr}
    Trong VieTeX có mẫu lamsach dùng gói lệnh này. Tự tìm hiểu nhé trong sách của tôi cũng có nói tới điều này.

  3. galoi14 said

    Ở trên thầy có nói: “gói lệnh indentfirst.sty chỉ làm nhiệm vụ làm thụt đầu dòng dòng đầu tiên của đoạn” nên em thử:
    \documentclass{book}
    \usepackage[utf8]{vietnam}
    \usepackage{indentfirst}
    \begin{document}
    \section{toi toi la }
    \subsection{toi la toi}
    Gói lệnh indentfirst.sty chỉ làm nhiệm vụ làm thụt đầu dòng dòng đầu tiên của đoạn. Gói lệnh indentfirst.sty chỉ làm nhiệm vụ làm thụt đầu dòng dòng đầu tiên của đoạn.\\
    Gói lệnh indentfirst.sty chỉ làm nhiệm vụ làm thụt đầu dòng dòng đầu tiên của đoạn. Gói lệnh indentfirst.sty chỉ làm nhiệm vụ làm thụt đầu dòng dòng đầu tiên của đoạn.
    \end{document}
    thì chỉ có đoạn đầu là thụt đầu dòng.
    Vậy muốn 2 đoạn trên đều thụt đầu dòng(ko dùng \indent) thì làm sao thưa thầy?
    Trả lời
    Thế nào là một đoạn văn bản, trong TeX một đoạn là nằm giữa hai dòng trắng hoặc phần đầu hoặc cuối có các lệnh về đoạn như\section
    Lệnh \\ chỉ có ngĩa ngắt dòng bắt buộc chứ không phải là đoạn, nghĩa là trong một đoạn có những xuống dòng bắt buộc thì phải dùng lệnh này, khi dùng lệnh này gồm xuống dòng và không thụt đầu dòng. Bạn để ý khi bắt đầu một đoạn dòng đó nên đặt cách dòng trước nhiều hơn bằng lệnh \parskip=6pt chẳng hạn. Như ví dụ trên phần xuống dòng sau không cách ra với dòng trước. Bạn đọc kỹ lại cuốn sách thứ nhất về LaTeX của tôi nhé, còn nhiều vấn đề mà bạn bỏ qua đấy.

  4. nguyentrunghieu said

    em chen hinh vao latex nhung khi xuat ra khong thay hinh dau, chi thay dong chu ten hinh ma thoi.
    em khong biet lam the nao de xuat hinh duoc.hay giup em voi
    Trả lời
    Bạn phải làm theo mẫu thôi. Có thể hình bị lỗi có tên mà chương trình không nhét vào được, hoặc kích cỡ hình không đúng. VieteX trong @document có ví dụ bạn thử xem.

  5. Thay khac phu loi ho e said

    e da cai theo huong dan trong dia cua thay nhung khi chay de dich file tex thi baos loi couldn’t save file

    Trả lời
    Khi cài xong dịch gặp lỗi này chứng tỏ đường dẫn mặc định không đúng nữa. Bạn đóng tất cả lại, và mở tệp bằn nút open hoặc File–>open và tìm đến thư mục template\readme.tex mở ra là dịch được. Hoặc bạn lấy tệp nào dịch được mở ra cũng được. Bạn nói rõ cài phiên bản nào của VieTeX, bản 2.7 là tốt nhất.

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

 
Follow

Get every new post delivered to your Inbox.

Join 116 other followers

%d bloggers like this: