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


Меню

Меню содержат указатели на подчиненные ноды.(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-файле. В примере выше строка `Более объемные куски текста' является строкой комментария меню; две строки, начинающиеся с `* ' -- пункты меню. Пробелы в меню сохраняются как есть; это позволяет вам форматировать меню по вашему желанию.

Составные части меню

Пункт меню состоит из трех частей, необходимой является только вторая:

  1. Название пункта меню (необязательно).
  2. Имя ноды (обязательно).
  3. Описание пункта (необязательно).

Шаблон пункта меню выглядит следующим образом:

* название-пункта-меню: имя-ноды.   описание

После названия пункта меню должно следовать одно двоеточие, а после имени ноды -- символ табуляции, запятая, точка или символ новой строки.

В Info, пользователь выбирает ноду командой m (Info-menu). Название пункта меню -- это то, что пользователь вводит после команды m.

В третьей части пункта меню пишется описывающая фраза или предложение. Названия пунктов и имена нод часто бывают короткими; описание же объясняет пользователю, о чем говорится в этой ноде. Хорошее описание дополняет имя ноды, а не просто повторяет его. Описание может находиться на двух или более строках; в этом случае некоторые авторы предпочитают делать отступ во второй строке, тогда как другие предпочитают выравнивать ее по первой (и по остальным) строкам. Здесь выбор за вами.

Менее беспорядочный пункт меню

Если название пункта меню и имя ноды одинаковы, вы можете написать имя сразу после звездочки и пробела в начале строки и поставить после имени два двоеточия.

Например, пишите

* Имя::                        описание

вместо

* Имя: Имя.                    описание

Вам стоит использовать имя ноды как название пункта меню везде, где это возможно, так как это уменьшит количество ненужного текста в меню.

Пример меню

В Texinfo меню выглядит так:

@menu
* название пункта меню: имя ноды.   Короткое описание.
* Имя ноды::                        Эта форма предпочтительна.
@end menu

Это дает:

* menu:

* название пункта меню: имя ноды.   Короткое описание.
* Имя ноды::                        Эта форма предпочтительна.

Пример, как вы можете увидеть это в Texinfo-файле:

@menu
Более объемные куски текста

* Файлы::                      Все об обращении с файлами.
* Множества: Буферы.           Множество буферов; редактирование
                                  нескольких файлов одновременно.

@end menu

Это дает:

* menu:
Более объемные куски текста

* Файлы::                      Все об обращении с файлами.
* Множества: Буферы.           Множество буферов; редактирование
                                 нескольких файлов одновременно.

В этом примере меню имеет два пункта. `Файлы' -- это одновременно и название пункта меню, и имя ноды, на которую ссылается этот пункт. `Множества' -- это название пункта меню; он ссылается на ноду, называемую `Буферы'. Строка `Более объемные куски текста' является комментарием; она присутствует в меню, но не является его пунктом.

Так как ни для ноды `Файлы', ни для ноды `Буферы' не указано имени файла, они должны быть именами нод в том же Info-файле (see section Ссылки на другие Info-файлы).

Ссылки на другие 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.