Предметный указатель в ЛаТеХ: Index in LaTeX HOWTO

В больших документах и книгах предметный указатель, наравне с оглавлением, серьёзно упрощают навигацию по содержимому. И если создание оглавления в ЛаТеХе элементарно, то предметный указатель потребует несколько больших усилий.


Как сделать предметный указатель в ЛаТеХе

Для этого потребуется подправить заголовок ЛаТеХ-документа и внести правки в сам текст файла. Легче это делать, естественно, ещё на этапе создания документа, чтобы не перечитывать его потом.

Что нужно изменить в преамбуле
Следует подключить пакет расширения makeidx:

\usepackage{makeidx}
И чуть ниже, до \begin{document} написать:
\makeindex % команда для создания предметного указателя
После этого перемещаемся в конец документа и выбираем место, где должен быть предметный указатель. Там пишем:
\printindex % печать предметного указателя здесь
При сборке документа в конце, где библиография, на отдельной странице появится надпись "Предметный указатель" и в два столбца пойдут перечни терминов и страниц, на которых они находятся. Быстро, просто, легко и понятно.


Что нужно изменить в тексте
Там, где встречается слово, которое должно быть в предметном указателе, следует вставить команду:
\index{слово}
При этом в итоговом тексте никаких изменений быть не должно. Это служебная команда и она никак не отразится на тексте документа.
Если требуется, чтобы первое упоминание о термине было выделено, например, курсивом, следует дополнить команду, например, так:
\index{слово | \textit}
После этого в предметном указателе номер страницы будет выделен курсивом.

Так же следует учесть, что к служебным файлам в каталоге с документом, наравне с имяфайла.tex, добавится имяфайла.ind, который и содержит файл индексов.



Что ещё можно сделать из предметного указателя?

Через некоторое время после написания этого поста, автор реализовал личный электронный органайзер в LaTeX. Проблема заключалась в том, что для некоторых действий нужны метки или тэги, а в ЛаТеХе их сделать невозможно. Оказалось, что предметный указатель можно использовать и для этого.

Например, можно сделать вложенные указатели:
\index{encodings!input}
Это будет отображено так:
encodings:
input

Если нужно сослаться на другой термин, то это можно сделать так:
\index{Peter|see{hello}}
И будет скомпилировано как: Peter, see hello.

Ссылки
В процессе создания этого поста была использована электронная книга:
И.А. Грицаенко, С.В. Клименко, "LaTeX. Руководство для пользователя. Часть II."
Больше об индексах и предметных указателях можно прочитать в Викиучебнике.

21 комментариев: |высказаться!| RSS-лента дискуссии.|
zbarassky комментирует...

А где можно скачать мене,чем начинающему, то есть мне, какой-нибудь актуальный pdf про TeX, чтобы хоть с чего-то начать?..

Спасибо.

Муха комментирует...

2zbarassky:
Есть такая небольшая pdfка - "Не очень краткое введение в LaTeX" (на русском распространяется как lshortru.pdf). Я по ней учился, когда курсовик писал

zbarassky комментирует...

Спаибо, погляжу. :)

Михаил Саушкин комментирует...

\index{слово | \textbf} - по моему, ну ни как не сделает курсив. Я использую makeindex для Авторского указателя в сборниках трудов, очень помогает. Принцип тот же: \index{Автор}.

virens комментирует...

2 zbarassky пишет...
А где можно скачать мене,чем начинающему, то есть мне, какой-нибудь актуальный pdf про TeX, чтобы хоть с чего-то начать?..
Как уже отметили выше, "Не очень краткое введение в ЛаТеХ", а ещё книжки Львовского. Этого должно хватить. Ну и я скоро начну выкладывать серию постов про ЛаТеХ.


2 Михаил Саушкин пишет...
\index{слово | \textbf} - по моему, ну ни как не сделает курсив.
Это верно :-) Поправил в тексте. Большое спасибо!

Михаил Саушкин комментирует...

2zbarassky::
Как уже отметили выше .. Этого должно хватить.
У Роженко А.И. не плохая книжка "Искусство верстки в LaTeXe". Автор рассылал её по почте. Рекомендую, не смотря на то, что она привязана несколько к MikTeX'у

Михаил Саушкин комментирует...

Миша, опять:
\index{слово | \textit}
После этого... полужирным шрифтом.

virens комментирует...

2 Михаил Саушкин пишет...
Миша, опять:
А, шайтан меня побери :-) Спасибо, поправил снова (вот что бывает, когда делаешь два дела сразу и к тому же уставшим :-))

денис герметиков комментирует...

Чет я нифига не понял, не могу разобраться, либо лох, либо надо больше отдыхать!

resurtm комментирует...

Неплохие доки для новичков по LaTeX:

http://www.inp.nsk.su/~baldin/LaTeX/index.html

Для zbarassky.

virens комментирует...

Надо будет про книжки по ЛаТеХу написать....

Анонимный комментирует...

Кажется вы забыли упомянуть про команду makeindex которая собственно создаёт тот самый .ind файл из полученного в ходе компиляции .idx файла.

virens комментирует...

2 Анонимный пишет...
Кажется вы забыли упомянуть про команду makeindex которая собственно создаёт тот самый .ind файл из полученного в ходе компиляции .idx файла.
У меня в Kile это делается автоматически. Сразу появляется в нужном месте предметный указатель.

Анонимный комментирует...

А как создать несколько предметных указателей? Где это нужно?

Да вот: авторский (именной) указатель + указатель терминов

Анонимный комментирует...

ВОПРОС с кодировкой???
Использую cp1251
При создании указателя в файл main.idx заносятся всё в непонятной кодировке:
\indexentry{\IeC {\CYRG }\IeC {\cyri }\IeC {\cyrl }\IeC {\cyrya }\IeC {\cyrr }\IeC {\cyro }\IeC {\cyrv }\IeC {\cyrs }\IeC {\cyrk }\IeC {\cyri }\IeC {\cyrishrt }~\IeC {\CYRR }.\,\IeC {\CYRS }.}{6}
...
поэтому makeindex сортирует неправильно.
Как изменить кодировку main.idx на cp1251??

Помогите советом! Кто может

Анонимный комментирует...

Можно использовать скрипт Котельников cyr2win.wsf
Команда для Win98 и выше
> cscript cyr2win.wsf имя_файла

Как использовать см
http://biotex.ibss.org.ua/faq.html?catid=6&q_filter=&sortby=title&order=ASC

Скрипт лежит по адресу
http://www.tutor.nsu.ru/latex/soft/tools/indexing/Kotelnikov/

Анонимный комментирует...

Как сделать Именной/Предметный/Географический указатель подробно описано в

http://biotex.ibss.org.ua/faq.html?catid=8&q_filter=&sortby=title&order=ASC

Анонимный комментирует...

> \indexentry{\IeC {\CYRF }\IeC {\cyru }\IeC {\cyrn }\IeC {\cyrk }\IeC {\cyrc }\IeC {\cyrii }\IeC {\cyro }\IeC {\cyrn }\IeC {\cyra }\IeC {\cyrl }|\IeC {\cyrl }\IeC {\cyrii }\IeC {\cyrn }\IeC {\cyrii }\IeC {\cyrishrt }\IeC {\cyrn }\IeC {\cyri }\IeC {\cyrishrt }}{8}

Та же проблема. Подскажите, как решить, если кто сталкивался. Сайт http://www.tutor.nsu.ru/latex/soft/tools/indexing/Kotelnikov/ лежит, и, видимо, уже давно.

im комментирует...

А вот кто-нить понимает, как добиться, чтобы уровней вложения в указателе было более трех?

virens комментирует...

@im комментирует...
А вот кто-нить понимает, как добиться, чтобы уровней вложения в указателе было более трех?
По-моему, это ограничение в index. Кстати, спасибо, добавил в пост про вложенные индексы.

Анонимный комментирует...

Сергей Д
Скачал программу по латехсу, - портайбл, без установки в тело ОС. устанавил как игрушку в "мои документы". Скачал два учебника. Пользуясь ими вставляю из книг скелет , обвешивая своим материалом. Набор выглядет красиво, а вот как проконтролировать, что на деле получится, чем, - какой программой не пойму. В установленной программе, вроде есть функции просмотра в ПДФ и DYW, но эти функции в программе конфликтуют. ПДФ не видет (НЕ распознает файла), а DYW совсем ни как. Как быть? Вкакой программе и как читать файл TEX?

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.