Меню содержат указатели на подчиненные ноды.(6) В Info вы можете использовать меню для перехода к этим нодам. В печатных руководствах меню не нужны и не появляются в них.
По соглашению, меню помещается в конце ноды, так как читатель может не увидеть текст, следующий после меню. Более того, в ноде, содержащей меню, не должно быть много текста. Если у вас есть много текста и меню, переместите большую часть текста, кроме нескольких строк, в новую подноду. Иначе читатель, имеющий терминал, неспособный отобразить сразу много строк, может пропустить меню и связанный с ним текст. На практике лучше помещать меню в пределах двадцати строк в начале ноды.
Короткий отрывок текста перед меню может выглядеть некрасиво в печатном
руководстве. Чтобы избежать этого, вы можете написать меню рядом с
началом его ноды и поместить после него строку @node, а затем
строку @heading между командами @ifinfo и @end
ifinfo. При этом меню, строка @node и заголовок появятся
только в Info-файле, но не в печатном документе.
Например, два предыдущих абзаца были написаны после меню, строки
@node и заголовка. В исходном файле это выглядит так:
@menu * Размещение меню:: * Написание меню:: * Части меню:: * Менее беспорядочный пункт меню:: * Пример меню:: * Другие Info-файлы:: @end menu @node Размещение меню, Написание меню, , Меню @ifinfo @heading Меню должны быть в коротких нодах @end ifinfo
Texinfo-файл для данного документа содержит более дюжины примеров применения этой процедуры. Один из них находится в начале этой главы, другой -- в начале section Перекрестные ссылки.
Меню состоит из команды @menu, стоящей на отдельной строке,
последующих пунктов меню или строк комментариев к ним и команды
@end menu на отдельной строке.
Описание меню выглядит так:
@menu
Более объемные куски текста
* Файлы:: Все об обращении с файлами.
* Множества:: Множество буферов; редактирование
нескольких файлов одновременно.
@end menu
Каждая строка в меню, начинающаяся с `* ', является пунктом меню. (Обратите внимание на пробел после звездочки.) В меню может появиться и строка, не начинающаяся с `* '. Такая строка -- это не пункт меню, а комментарий, который появляется в Info-файле. В примере выше строка `Более объемные куски текста' является строкой комментария меню; две строки, начинающиеся с `* ' -- пункты меню. Пробелы в меню сохраняются как есть; это позволяет вам форматировать меню по вашему желанию.
Пункт меню состоит из трех частей, необходимой является только вторая:
Шаблон пункта меню выглядит следующим образом:
* название-пункта-меню: имя-ноды. описание
После названия пункта меню должно следовать одно двоеточие, а после имени ноды -- символ табуляции, запятая, точка или символ новой строки.
В Info, пользователь выбирает ноду командой m (Info-menu).
Название пункта меню -- это то, что пользователь вводит после
команды m.
В третьей части пункта меню пишется описывающая фраза или предложение. Названия пунктов и имена нод часто бывают короткими; описание же объясняет пользователю, о чем говорится в этой ноде. Хорошее описание дополняет имя ноды, а не просто повторяет его. Описание может находиться на двух или более строках; в этом случае некоторые авторы предпочитают делать отступ во второй строке, тогда как другие предпочитают выравнивать ее по первой (и по остальным) строкам. Здесь выбор за вами.
Если название пункта меню и имя ноды одинаковы, вы можете написать имя сразу после звездочки и пробела в начале строки и поставить после имени два двоеточия.
Например, пишите
* Имя:: описание
вместо
* Имя: Имя. описание
Вам стоит использовать имя ноды как название пункта меню везде, где это возможно, так как это уменьшит количество ненужного текста в меню.
В Texinfo меню выглядит так:
@menu * название пункта меню: имя ноды. Короткое описание. * Имя ноды:: Эта форма предпочтительна. @end menu
Это дает:
* menu: * название пункта меню: имя ноды. Короткое описание. * Имя ноды:: Эта форма предпочтительна.
Пример, как вы можете увидеть это в Texinfo-файле:
@menu
Более объемные куски текста
* Файлы:: Все об обращении с файлами.
* Множества: Буферы. Множество буферов; редактирование
нескольких файлов одновременно.
@end menu
Это дает:
* menu:
Более объемные куски текста
* Файлы:: Все об обращении с файлами.
* Множества: Буферы. Множество буферов; редактирование
нескольких файлов одновременно.
В этом примере меню имеет два пункта. `Файлы' -- это одновременно и название пункта меню, и имя ноды, на которую ссылается этот пункт. `Множества' -- это название пункта меню; он ссылается на ноду, называемую `Буферы'. Строка `Более объемные куски текста' является комментарием; она присутствует в меню, но не является его пунктом.
Так как ни для ноды `Файлы', ни для ноды `Буферы' не указано имени файла, они должны быть именами нод в том же Info-файле (see section Ссылки на другие Info-файлы).
Вы можете создать пункт меню, который позволит пользователю перейти к ноде в другом Info-файле, написав в круглых скобках имя файла непосредственно перед именем ноды. В этом случае вы должны использовать формат пункта меню с тремя частями, что избавит пользователя от необходимости вводить имя файла.
Формат выглядит следующим образом:
@menu * название-первого-пункта:(файл)нода. описание * название-второго-пункта:(файл)другая-нода. описание @end menu
Например, для ссылки непосредственно на ноды `Схема текста' и `Перепривязка' в Руководстве по Emacs, вы написали бы такое меню:
@menu
* Схема текста: (emacs)Режим Outline. Основной режим для
редактирования структуры текста.
* Перепривязка: (emacs)Перепривязка. Как переопределить
значение ключа.
@end menu
Если вы не указали имя ноды, а только имя файла, то Info предполагает, что это ссылка на первую (`Top') ноду.
Файл `dir', в котором содержится главное меню для системы Info, перечисляет в этом меню только имена файлов. Оно переносит вас непосредственно к первой ноде каждого документа Info. (See section Установка Info-файла.)
Например:
* Info: (info). Система просмотра документации.
* Emacs: (emacs). Расширяемый, самодокументированный
текстовый редактор.
(Каталог верхнего уровня `dir' системы Info -- не Texinfo-, а Info-файл, но пункты меню выглядят одинаково в обоих типах файлов.)
Команды обновления режима Texinfo в GNU Emacs работают только с нодами текущего буфера, а значит вы не можете использовать их для создания меню, ссылающихся на другие файлы. Вы должны писать такие меню сами.
Go to the first, previous, next, last section, table of contents.