VieTeX

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

Làm chỉ số từ khóa với gói lệnh makeidx.sty

Posted by nhdien on 30/07/2011

I. Giới thiệu
Một cuốn sách chuẩn luôn luôn phải có phần chỉ số các từ khóa. Nghĩa là các từ mới, quan trọng được định nghĩa lần đầu tiên trong một tài liệu được liệt kê ra cuối sách có số trang kèm theo để người đọc truy lại được. LaTeX cung cấp công cụ rất tốt để làm tự động việc này và rất chính xác thông qua gói lệnh chuẩn makeidx.sty và chương trình makeindex.exe.
II. Gói lệnh makeidx.sty và lệnh soạn thảo
1. Với đưa vào đầu văn bản \usepackage{makeidx} là bắt đầu dùng được. Một khung dùng gói lệnh như sau:
\documentclass[ 12pt,twoside,openany]{book}
\usepackage[utf8]{vietnam}
……
\makeindex
\begin{document}
<nội dung văn bản với các lệnh \index{<từ khóa>}>
……
\printindex
\end{document}
2. Lệnh \index{<từ khóa>}:
– <từ khóa> được in ra ở cuối tài liệu do lệnh \printindex với số trang không ảnh hưởng vào tài liệu.
– Trong <từ khóa> bình thường là một cụm từ bình thường, vậy dấu trắng có ý nghĩa trong cụm từ nên quanh một từ có dấu trắng khác với từ không có dấu trắng bên cạnh.
– Nếu một từ khóa được đặt chỉ số nhiều nơi thì từ đó sẽ chỉ có 1 lần trong danh sách với các số trang khác nhau bên cạnh.
– Định dạng từ khóa trong lệnh \index{<từ khóa>} có lệnh chuẩn mặc định như sau:
+ @ ký tự trước nó để sếp thứ tự như: \index{OOn@Ôn Như Hầu}, \index{OORng@Ổng Văn Hình},…
+ ! làm cụm từ phụ có chung phần đầu như \index{môi trường!định lý}, \index{môi trường!công thưc},…
+ | đánh dấu bắt đầu lệnh như \index{table|(\textit},\index{table|)},..
+ ” các ký hiệu @, !, |, ” muốn xuất hiện trong từ khó thì trước nó có ký hiệu này để cố định.
3. Khi biên dịch LaTeX những lệnh trên sẽ được đưa ra tệp cùng tên *.idx, vì vậy biên dịch ít nhất 2 lần thì tệp lưu trung gian mới chính xác. sau đó ta chuyển đổi sang tệp định dạng chỉ số.

III. Chương trình makeindex.exe trong VieTeX
1. Để sử dụng tốt chương trình MakeIndex ta phải hiểu những tùy chọn của chương trình này với cú pháp đầy đủ như sau:

makeindex [-ciglqr] [-o ind] [-p no] [-s sty] [-t log] [idx0 idx1 …]

-c Theo mặc định tất cả dấu trắng đều tính vào từ khóa, nếu chọn tùy chọn này thì tất cả dấu trắng trước và sau từ khóa đều không tính vào từ khóa và những dấu trắng ở giữa từ khóa chỉ tính là một.
-i Dùng cách gọi chuẩn như gọi một tệp vào. Khi ta có tùy chọn này và -o không có, thì tệp đưa ra được viết theo dạng chuẩn của tin học.
-g Phục vụ xếp chữ cho tiếng Đức.
-l Dùng xếp thứ tự theo chữ cái. Mặc định chương trình xếp theo từ. Xếp theo từ thì kí tự trắng đứng trước mọi chữ cái trong bảng kí tự. Còn xếp theo chữ cái thì tất cả khoảng trắng được bỏ qua.
-q Kiểu lặng im, không có thông báo nào được gửi tới dòng đưa ra của chương trình. Theo mặc định quá trình xử lý và thông báo lỗi được đưa ra dòng xuất của chương trình như tệp văn bản. Tùy chọn -q không đưa ra thông báo khi chạy.
-r Không đưa ra thông báo tường minh cho một số trang đã xử lý.
-o ind Lấy *.ind như tệp chỉ số đưa ra. Theo mặc định phần chính của tệp đưa vào kết hợp với phần mở rộng ind dùng cho việc đưa tệp chỉ số ra đó.
-p no Đặt số trang bắt đầu đưa tập chỉ số ra, nghĩa là từ trang số no.Tùy chọn này để dùng tách tệp chỉ số với định dạng khác nhau. Số no có ba trường hợp đặc biệt any, odd và even.
-s sty Lấy tệp sty như tệp định dạng các chỉ số.

Mặc định là không có định dạng nào cả. Biến môi trường INDEXSTYLE được xác định ở đó tệp định dạng hiện có.
-t log Lấy tệp *.log làm nhật kí khi chạy. Mặc định chương trình lấy phần chính tên tệp nguồn và phần mở rộng ilg làm tệp
ghi chép này.
2. Chủ yếu đầu ra của chương trình là tệp có đuôi *.ind và khi chạy lại LaTeX chương trình lấy vào lập danh sách từ khóa với mặc định 2 cột trên từng trang chỉ số.
3. Để dễ sử dụng chương trình VieTeX3.0  có cài đặt giao diện
Menu: tools–>Wizard Makeindex

và khi nhấn chạy chương trình cho

IV. Định dạng in ra trang chỉ số
1. Để in ra trang chỉ số đẹp người ta thường đưa vào tệp cấu trục rồi gọi vào:
– Ví dụ tệp vieindex.ist chứa các dòng lệnh sau đây để:
+ Thêm chữ cái đậm vào danh sách chỉ số và căn ra giữa cột bắt đầu các từ chữ cái đó
heading_prefix “{\\bfseries\hfil ” %%nhập phông cho chữ cái đầu
heading_suffix “\\hfil}\\nopagebreak\n”%% kết thúc phông chữ cái
heading_flag 1 % Làm chữ cái hoa
+ Định dạng dấu chấm giữa từ khóa và số trang
delim_0 “\\dotfill ”
delim_1 “\\dotfill ”
delim_2 “\\dotfill ”
Sau đó chạy chương trình như
makeindex.exe -s vieindex.ist -o latexcourse.ind latexcourse.idx
2. Trong VieTeX 3.0 được thực hiện bằng cách tìm kiếm tệp và đưa vào dòng thông số với -s trước rồi tệp sa:

3. Còn nhiều định dạng khác để in ra cũng gom vào tệp như:
– Định dạng in ra tệp chỉ số riêng.
preable
“\\documentclass[10pt]{book}
\\begin{document}
\\begin{theindex}\n”
postable
“\n\n\\end{theindex}
\\end{document}\n”
– Định dạng thay thế ký tự chuẩn
actual ‘=’ % ký hiệu = sẽ thay cho ký hiệu mặc định @
quote ‘!’ % ký hiệu ! sẽ thay cho ký hiệu mặc định ”
level ‘>’ %ký hiệu > sẽ thay cho ký hiệu mặc định !

V. Mở rộng khả năng làm bẳng chỉ số
1. Bảng các từ thuật ngữ cũng được làm bằng chương trình này với thêm vào
+ \makeglossary bên cạnh \makeindex
+ Lệnh \glossary như là \index ví dụ:
\glossary{name=$\mathbb N$, description= Tập hợp số tự nhiên.},…
+ Lệnh \printglossary đặt ở cuối để in ra bảng thuật ngữ.
2. Các định dạng và biên dịch chương trình giống như làm chỉ số, chỉ có khác đuôi tệp vào là *.glo và ra là *.gls
makeindex.exe -o latexcourse.gls latexcourse.glo
Sau đó biên dịch lại LaTeX cho ta kết quả

3. Những gói lệnh khác cũng thực hiện trên giao diện này được là:
– index.sty
– multind.sty
– glossary.sty


2 Responses to “Làm chỉ số từ khóa với gói lệnh makeidx.sty”

  1. Hồng Minh said

    Có một lệnh ở mục IV. Định dạng in ra trang chỉ số bị sai rồi, và trong sách LaTeX với gói lệnh và công cụ cũng sai tương tự.
    Trả lời
    Cám ơn để tôi xem lại.
    phần đó tôi đã cài trong chương trình như giao diện biên dịch không thấy lỗi. Tôi đã dùng nhiều lần và chỉ có đẩy chữ đậm ra gữa cột không chuẩn xác.
    Trong đó rất nhiều lệnh, nếu đã giúp thì nói cụ thể một chút nhé, vì môi trường người dùng có thể khác nhau.

    • Hồng Minh said

      Là ở dòng heading_prefix “{\\bfseries\hfil ”

      Nếu ghi là \hfil thì bị lỗi, phải sửa thành \\hfil (2 dấu \\ như ở các lệnh khác) thì sẽ chạy bình thường, đưa chữ đậm ra giữa các cột.
      Trả lời
      Cám ơn rất nhiều.

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: