Go to the first, previous, next, last section, table of contents.


Завершение Texinfo-файла

В конце Texinfo-файла должны быть команды для создания именных указателей и (обычно) содержаний, подробного и обзорного. Он также должен включать команду @bye, помечающую последнюю обрабатываемую TeX строку.

Например:

@node    Указатель понятий, ,Указатель переменных, Top
@c       имя-ноды, следующая, предыдущая, вверх
@unnumbered Указатель понятий

@printindex cp

@contents
@bye

Меню-указатели и печать именных указателей

Напечатать именной указатель -- значит включить его в руководство или Info-файл. Это не делается автоматически, потому что в Texinfo-файле вы используете команду @cindex или другие команды, создающие вхождения именного указателя; они только собирают исходные данные для создания указателя. Чтобы создать именной указатель, вы должны поместить в том месте документа, где вы хотите его увидеть, команду @printindex. Кроме этого, при создании печатного руководства вы должны запустить программу, называемую @command{texindex} (see section Форматирование и печать твердой копии), которая сортирует исходные данные и записывает сортированный именной указатель в файл. Именно этот файл используется для печати именного указателя.

В Texinfo предопределены шесть различных типов именных указателей: указатель понятий, указатель функций, указатель переменных, указатель клавиш, указатель программ и указатель типов данных (see section Предопределенные именные указатели). Каждый указатель имеет двухбуквенное имя: `cp', `fn', `vr', `ky', `pg' и `tp'. Вы можете объединить указатели или поместить их в разные разделы (see section Объединение именных указателей); вы также можете определить свои именные указатели (see section Определение новых именных указателей).

Команда @printindex принимает в качестве аргумента двухбуквенное имя именного указателя, читает соответствующий файл с сортированным указателем и форматирует указатель соответствующим образом.

Команда @printindex не создает заголовка главы для именного указателя. Следовательно, перед командой @printindex вы должны написать подходящую команду создания главы или раздела (обычно @unnumbered), чтобы указатель имел заголовок и был упомянут в содержании. Перед командой @unnumbered пишите строку @node.

Например:

@node Указатель переменных, Указатель понятий, Указатель функций, Top
@comment имя-ноды, следующая, предыдущая, вверх
@unnumbered Указатель переменных

@printindex vr

@node     Указатель понятий,     , Указатель переменных, Top
@comment имя-ноды, следующая, предыдущая, вверх
@unnumbered Указатель понятий

@printindex cp

Читателям нравится, когда указатель понятий расположен последним в книге, потому что тогда его легче найти. Наличие только одного указателя также помогает читателям, так как тогда них у есть только одно место для поиска (see section @synindex)

Создание содержания

Команды @chapter, @section и другие команды структурирования предоставляют необходимые сведения для создания содержания, но не приводят к действительному появлению содержания в руководстве. Чтобы сделать его, вы должны использовать команды @contents и/или @summarycontents.

@contents
Создает содержание печатного руководства, включающее главы, разделы, подразделы и так далее, а также приложения и ненумерованные главы. (Заголовки, созданные последовательностями команд @heading, не появляются в содержании.)
@shortcontents
@summarycontents
(@summarycontents -- синоним @shortcontents; две эти команды совершенно одинаковы.) Создают короткое или, иначе говоря, обзорное содержание, в котором перечисляются только главы (и приложения, и ненумерованные главы). Разделы, подразделы и подподразделы пропускаются. Короткое содержание требуется только для больших руководств, в дополнение к полному содержанию.

Обе команды для содержаний нужно писать на отдельной строке. Команды для содержаний автоматически создают заголовок в начале первой страницы содержания, поэтому не включайте перед ними никаких команд для описания структуры глав, таких как @unnumbered.

Так как в Info-файлах вместо содержания используются меню, команды форматирования для Info игнорируют команды для вывода содержаний. Но содержания включаются в вывод в простом текстовом формате (создаваемом командой makeinfo --no-headers).

Команды печати содержания можно помещать как в самом конце файла после всех именных указателей (смотрите предыдущий раздел), непосредственно перед командой @bye (смотрите следующий раздел), или недалеко от начала файла, после @end titlepage (see section @titlepage). Преимущество первого способа в том, что вывод содержания всегда соответствует истине, потому что он отражает только что сделанные изменения. Преимущество второго в том, что содержание печатается в правильном месте, так что вам не нужно переорганизовывать DVI-файл или перетасовывать бумагу. Однако команды для печати содержания в начале документа игнорируются при выводе на стандартный вывод.

Как автор, вы можете поместить команды для печати содержания где вы предпочитаете. Но если вы просто печатаете руководство, вы можете пожелать напечатать содержание после титульного листа даже если автор поместил команды для печати содержания в конец документа (как в случае большинства существующих документов Texinfo). Вы можете сделать это задав @setcontentsaftertitlepage и/или @setshortcontentsaftertitlepage. Первое печатает только главное содержание после @end titlepage; второе печатает и краткое, и полное содержание. В любом случае любые последующие команды @contents или @shortcontents игнорируются (если только @end titlepage не была встречена вообще).

Вам нужно включать команды @set...contentsaftertitlepage в начале документа (сразу после @setfilename, например). Или, если вы пользуетесь @command{texi2dvi} (see section Форматирование с помощью @code{texi2dvi}), вы можете использовать его ключ @option{--texinfo} для задания этого вообще без изменения исходного файла. Например:

texi2dvi --texinfo=@setshortcontentsaftertitlepage foo.texi

@bye Завершение файла

Команда @bye прекращает форматирование в TeX или Info. Все, что следует в файле после команды @bye, невидимо для форматирующих команд. Команда @bye должна находиться на отдельной строке.

Вы можете, если хотите, писать заметки после строки @bye. Эти заметки не будут форматироваться и не появятся ни в Info-файле, ни в печатном руководстве, как если бы текст после @bye был помещен внутри блока @ignore ... @end ignore. Вы также можете написать после строки @bye список локальных переменных. See section Использование списка локальных переменных, для подробных сведений.


Go to the first, previous, next, last section, table of contents.