makeindex
Синопсис, один из:
makeindex filename makeindex -s style-file filename makeindex options filename0 ...
Сортирует и обрабатывает информацию индекса в дополнительном файле filename. Это командная строка программа. Она принимает один или несколько исходных файлов индекса, файлы filename.idx, и создаёт фактический файл индекса, файл filename.ind, который используется \printindex (см. \printindex).
Первый вариант команды подходит для многих случаев. Второй позволяет форматировать индекс с помощью файла стилей индекса, файла .isty. Третий вариант наиболее универсален; см. полную документацию на CTAN.
Это простой файл .isty.
% book.isty
% $ makeindex -s book.isty -p odd book.idx
% creates the index as book.ind, starting on an odd page.
preamble
"\\pagestyle{empty}
\\small
\\begin{theindex}
\\thispagestyle{empty}"
postamble
"\n
\\end{theindex}"
Это описание охватывает лишь некоторые возможности форматирования индекса в файле style-file. Полный список см. в документации на CTAN.
Файл стилей состоит из списка пар: спецификатор и атрибут. Они могут появляться в файле в любом порядке. Все атрибуты — строки, за исключением случаев, когда указано иначе. Строки заключены в двойные кавычки, ", и максимальная длина строки составляет 144 символа. \n используется для новой строки, а \t — для табуляции. Обратные слэши экранируются ещё одним обратным слэшем, \\. Если строка начинается с символа процента, %, то это комментарий.
preamble¶-
Преамбула файла выходного индекса. Определяет контекст, в котором отформатирован индекс. По умолчанию:
"\\begin{theindex}\n". postamble¶-
Постскриптум файла выходного индекса. По умолчанию:
"\n\n\\end{theindex}\n". group_skip¶-
Традиционно элементы индекса разбиваются на группы, обычно группа для записей, начинающихся с буквы ‘a’, и т. д. Этот спецификатор задаёт то, что вставляется в начале новой группы. По умолчанию:
"\n\n \\indexspace\n"(\indexspace— команда вставки резиновой длины, по умолчанию10pt plus5pt minus3pt). lethead_flag¶-
Целое число. Определяет, что вставляется для новой группы или буквы. Если это 0 (по умолчанию), то кроме
group_skipничего не будет вставлено перед группой. Если положительное, то при новой букве будут вставленыlethead_prefixиlethead_suffix, с этой буквой в верхнем регистре между ними. Если отрицательное, то вставляется буква в нижнем регистре. По умолчанию 0. lethead_prefix¶-
Если новая группа начинается с другой буквы, то это префикс, вставляемый перед заголовком новой буквы. По умолчанию:
"" lethead_suffix¶-
Если группа начинается с другой буквы, то это суффикс, вставляемый после заголовка новой буквы. По умолчанию:
"". item_0¶-
Что вставляется между двумя элементами 0-го уровня. По умолчанию:
"\n \\item ". item_1¶-
Вставляется между двумя элементами 1-го уровня. По умолчанию:
"\n \\subitem ". item_2¶-
Вставляется между двумя элементами 2-го уровня. По умолчанию:
"\n \\subsubitem ". item_01¶-
Что вставляется между элементом 0-го и 1-го уровня. По умолчанию:
"\n \\subitem ". item_x1¶-
Что вставляется между элементом 0-го и 1-го уровня, если у элемента 0-го уровня нет номеров страниц (как в
\index{aaa|see{bbb}}). По умолчанию:"\n \\subitem ". item_12¶-
Что вставляется между элементом 1-го и 2-го уровня. По умолчанию:
"\n \\subsubitem ". item_x2¶-
Что вставляется между элементом 1-го и 2-го уровня, если у элемента 1-го уровня нет номеров страниц. По умолчанию:
"\n \\subsubitem ". delim_0¶-
Разделитель между ключом 0-го уровня и его первым номером страницы. По умолчанию: запятая, пробел,
", ". delim_1¶-
Разделитель между ключом 1-го уровня и его первым номером страницы. По умолчанию: запятая, пробел,
", ". delim_2¶-
Разделитель между ключом 2-го уровня и его первым номером страницы. По умолчанию: запятая, пробел,
", ". delim_n¶-
Разделитель между двумя номерами страниц для одного ключа (любого уровня). По умолчанию: запятая, пробел,
", ". delim_r¶-
Что вставляется между начальным и конечным номерами страниц диапазона. По умолчанию:
"--". line_max¶-
Целое число. Максимальная длина строки записи индекса в выводе, после которой строка переносится на новую. По умолчанию:
72. indent_space¶-
Что вставляется в начале переносимой строки. По умолчанию:
"\t\t". indent_length¶-
Число. Длина отступа переносимой строки. По умолчанию
indent_space— два таба, а каждый таб — восемь пробелов, поэтому по умолчанию здесь16.
page_precedence¶-
Документ может иметь страницы, пронумерованные различными способами. Например, в книге страницы введения могут быть пронумерованы римскими строчными буквами, а страницы основной части – арабскими цифрами. Эта строка определяет порядок их отображения в индексе. Команда
makeindexподдерживает пять различных типов нумерации: строчные римскиеr, и числовые или арабскиеn, и строчные буквы латинского алфавитаa, и прописные римскиеR, и прописные буквы латинского алфавитаA. По умолчанию:"rnaRA".
Существует ряд других программ, выполняющих ту же работу, что и makeindex. Одна из них – xindy (https://ctan.org/pkg/xindy), которая поддерживает интернационализацию и может обрабатывать индексы документов, разметка которых выполнена с использованием LaTeX и ряда других языков. Она написана на языке Lisp, обладает высокой конфигурируемостью, как в плане разметки, так и в плане порядка сортировки текста, как описано в ее документации.
Более новая программа для индексирования, поддерживающая Unicode, – это xindex, написанная на языке Lua (https://ctan.org/pkg/xindex).
© 2007–2018 Karl Berry
Public Domain Software
http://latexref.xyz/makeindex.html