C++ CSS HTML Java JavaScript MySQL Oracle PERL PHP SQL Unix VBScript XHTML XML Сети
Texinfo 4.0 - Использование режима Texinfo
  [Содержание]   [Назад]   [Вперед]  


Использование режима Texinfo

вы получаете возможность воспользоваться специальным режимом, называемым режимом Texinfo, который снабжает вас командами Emacs и дополнительными средствами, которые могут сильно облегчить вашу работу.

вы, вероятно, захотите быстро пролистать эту главу и вернуться к ней уже после изучения разделов, где язык форматирования документов Texinfo описывается более детально.

Режим Texinfo дает вам специальные возможности для работы с Texinfo-файлами:

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

Обычные команды редактирования GNU Emacs

дополнительный набор инструментов и команд редактирования. Основное различие между режимом Text и режимом Texinfo касается заполнения текста. Переменная, отвечающая за разделение абзацев, и таблица синтаксиса переопределяются в режиме Texinfo так, чтобы команды Texinfo, которые должны стоять в своих собственных строках, не были включены в другие абзацы. Поэтому команда M-q (fill-paragraph) перезаполняет абзацы, но не смешивает команды, требующие своей строки, со смежными абзацами.

Кроме того, режим Texinfo устанавливает переменную page-delimiter равной значению texinfo-chapter-level-regexp главы к другому с помощью команд C-x ] (forward-page) и C-x [ (backward-page) и сужать буфер до текста главы с помощью команды C-x p (narrow-to-page). (тшрзСызш Стюцшщ `Страницы' ф Руководство по GNU Emacs, для более подробного описания команд, работающих со страницами.)

Вы можете называть Texinfo-файл так, как пожелаете, но по соглашению в качестве расширения следует выбрать одно из этих: `.texinfo', `.texi', `.txi' или `.tex'. Для использования предпочтительно более длинное расширение, так как оно однозначно определяет тип файла. Более короткое расширение необходимо использовать в тех случаях, когда операционная система ограничивает длину имени файла. GNU Emacs автоматически входит в режим Texinfo, если вы обратитесь к файлу с расширением `.texinfo', `.txi' или `.texi'. Кроме того, Emacs переходит в режим Texinfo, если в теле файла в его первой строке присутствует текст `-*- texinfo -*-'. Если вы находитесь в другом режиме и желаете переключиться в режим Texinfo, выполните команду M-x texinfo-mode.

Естественно, как и другие возможности Emacs, режим Texinfo может быть расширен и настроен так, как вы этого пожелаете. В частности, очень легко изменить привязку ключей. Здесь описываются сделанные по умолчанию или стандартные привязки ключей.

Быстрая вставка часто используемых команд.

Режим Texinfo дает возможность быстро вставлять часто используемые @-команды в буфер редактирования. Вы можете использовать эти команды для уменьшения времени набора команд.

Чтобы вызвать команды вставки, следует дважды набрать C-c и затем нажать первый символ @-команды:

C-c C-c c
M-x texinfo-insert-@code
Вставить @code{} и поместить точку между фигурными скобками.
C-c C-c d
M-x texinfo-insert-@dfn
Вставить @dfn{} и поместить точку между фигурными скобками.
C-c C-c e
M-x texinfo-insert-@end
Вставить @end и попытаться добавить правильно следующее слово, такое как `example' или `table'. (Эта команда не может правильно обрабатывать вложенные списки, зато вставляет слово, наиболее соответствующее предшествующему списку).
C-c C-c i
M-x texinfo-insert-@item
Вставить @item и поместить точку в начале следующей строки.
C-c C-c k
M-x texinfo-insert-@kbd
Вставить @kbd{} и поместить точку между фигурными скобками.
C-c C-c n
M-x texinfo-insert-@node
Вставить @node и добавить строку комментария, перечисляющую последовательность нод `Next', `Previous' и `Up'. Оставить точку после @node.
C-c C-c o
M-x texinfo-insert-@noindent
Вставить @noindent и поместить точку в начале следующей строки.
C-c C-c s
M-x texinfo-insert-@samp
Вставить @samp{} и поместить точку между фигурными скобками.
C-c C-c t
M-x texinfo-insert-@table
Вставить @table, затем вставить SPC и поместить точку после SPC.
C-c C-c v
M-x texinfo-insert-@var
Вставить @var{} и поместить точку между фигурными скобками.
C-c C-c x
M-x texinfo-insert-@example
Вставить @example и поместить точку в начале следующей строки.
C-c C-c {
M-x texinfo-insert-braces
Вставить {} и поместить точку между фигурными скобками.
C-c C-c }
C-c C-c ]
M-x up-list
Внутри пары скобок переместить точку до тех пор, пока не встретится закрывающая скобка. Набрать C-c C-c ] проще, чем C-c C-c }, что, однако, проще запоминается; поэтому для перехода между скобками существуют два ключа. (Вы также можете переходить между двумя фигурными скобками, вводя C-f.)

Для того, что бы вставить команду, такую как @code{...} вокруг существующего слова, надо установить точку перед этим словом и ввести последовательность C-u 1 C-c C-c c. Это облегчает редактирование уже существующего обычного текста. Величина параметра, следующего за C-u, сообщает Emacs сколько слов после точки следует заключить между фигурными скобками: `1' -- только одно слово, `2' и поместит точку между фигурными скобками. Это сработает только для тех @-команд, которые действуют на слово или на слова внутри одной строки, вроде @kbd и @var.

Этот набор команд вставки был создан после анализа частоты, с которой различные @-команды используются в Руководстве по GNU Emacs и в Руководстве по GDB. Если вы желаете добавить ваши собственные команды быстрой вставки, вы можете привязать к ключу макрос клавиатуры, использовать сокращение или расширить код в `texinfo.el'.

C-c C-c C-d (texinfo-start-menu-description из трех частей: имени пункта меню, имени ноды и описания. Требуется только имя ноды, но описание сильно помогает объяснить, о чем говорится в разделе описываемой ноды. тшрзСызш Стюцшщ Составные части меню.)

Чтобы использовать texinfo-start-menu-description, установите точку в строку пункта меню, и введите C-c C-c C-d это текст. Эта функция не вставляет заголовок, если данный пункт меню уже содержит описание.

в имени ноды, но полезное описание использует другие слова.

Визуализация структуры разделов файла

Вы можете визуализировать структуру разделов Texinfo-файла, используя команду C-c C-s (texinfo-show-structure). Эта команда показывает структуру разделов Texinfo-файла, перечисляя строки, которые начинаются с @-команд, а именно, с команд @chapter, @section и подобных. Эта команда создает такую же структуру, какую представляет из себя оглавление. Эти строки отображаются в другом буфере, называемом `*Occur*'. В том буфере вы можете установить курсор на одной из этих строк и воспользоваться для перехода к соответствующему разделу в Texinfo-файле последовательностью C-c C-c (occur-mode-goto-occurrence).

C-c C-s
M-x texinfo-show-structure
Показать строки @chapter, @section, и подобные строки Texinfo-файла.
C-c C-c
M-x occur-mode-goto-occurrence
Перейти к строке в Texinfo-файле, соответствующей строке под курсором в буфере `*Occur*'.

Если вы вызываете texinfo-show-structure с префиксным аргументом, набирая C-u C-c C-s, это перечислит не только строки с @-командами, такими как @chapter, @section и подобными, но также и строки @node. Вы можете использовать texinfo-show-structure с префиксным аргументом для того, чтобы проверить, являются ли указатели `Next', `Previous' и `Up' в строке @node правильными.

Часто, когда вы работаете над руководством, вам будете нужна только структура текущей главы. В этом случае вы можете выделить область буфера, структура которой вам нужна, используя команду C-x n n (narrow-to-region), и texinfo-show-structure будет действовать только в этой области. Чтобы снова увидеть весь буфер, следует использовать C-x n w (widen). (тшрзСызш Стюцшщ `Сужение' ф Руководство по GNU Emacs, для получения детальной информации.)

Помимо предоставления команды визуализации структуры документа, texinfo-show-structure, режим Texinfo устанавливает значение переменной разделителя страницы таким образом, чтобы она соответствовала @-командам уровня глав. Это дает вам возможность использовать команды C-x ] (forward-page) и C-x [ (backward-page) для перемещения вперед и назад по главам, а команду C-x p (narrow-to-page) -- для сужения до главы. тшрзСызш Стюцшщ `Страницы' ф Руководство по GNU Emacs, для получения дополнительной информации.

Обновление нод и меню

-- обновление Texinfo-файла после его редактирования; но вы можете использовать их, чтобы вставить указатели `Next', `Previous' и `Up' в строку @node, если их там еще нет, или создать меню в файле, в котором его пока нет.

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

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

Вы можете использовать эти команды для обновления всех нод и меню в выделенной области или во всем Texinfo-файле.

после каждой строки @node, если только это не строка @node для ноды `Top'. (Строка с командой описания структуры глав -- это строка, начинающаяся с @chapter, @section или с другой подобной команды.)

Вы можете вставить строку с командой описания структуры глав либо вслед за строкой @node, либо в строке, которая следует после одиночной строки комментария @comment, либо после одиночной строки @ifinfo. Вы не можете вставить между строкой @node и строкой с командой описания структуры глав больше одной строки; и вставить вы можете только строку @comment или строку @ifinfo.

Команды, которые действуют на весь текст в буфере, требуют, чтобы вслед за нодой `Top' следовала нода с командой @chapter или с эквивалентной по уровню командой. Команды обновления меню не будут создавать основное или главное меню для Texinfo-файла, который имеет ноды только уровня @chapter! Команды обновления меню создают меню только внутри нод для нод более низкого уровня. Чтобы создать меню глав, вы должны предоставить ноду `Top'.

можете использовать перекрестные ссылки на другие Info-файлы. Ни одна из команд обновления не затрагивает перекрестные ссылки.

нод или меню во всем файле; и одна команда, texinfo-master-menu

Команда texinfo-master-menu является основной командой:

C-c C-u m
M-x texinfo-master-menu
Создает или обновляет главное меню, которое включает в себя все другие меню (включая описания из меню, уже существующих к моменту создания основного меню, если таковые есть). При активизации этой команды с префиксным аргументом, с использованием последовательности C-u, в начале создаются или обновляются все обычные ноды и меню в текущем буфере перед созданием главного меню. (тшрзСызш Стюцшщ Нода Top и главное меню, для детального описания.) Для функционирования texinfo-master-menu требуется, чтобы Texinfo-файл содержал ноду `Top' и по крайней мере еще одну уровнем ниже. После обширного редактирования Texinfo-файла вы можете ввести следующую команду:
C-u M-x texinfo-master-menu
или
C-u C-c C-u m
Эта команда полностью обновляет все ноды и меню за один проход.

Остальные основные команды обновления выполняют работу меньшего объема и предназначены для человека, который обновляет ноду и меню в процессе создания Texinfo-файла.

Далее перечислены оставшиеся основные команды обновления:

C-c C-u C-n
M-x texinfo-update-node
Вставляет указатели на ноды `Next', `Previous' и `Up' для текущей ноды (то есть модифицирует ближайшую предшествующую строку @node). Если указатели `Next', `Previous' и `Up' уже были в строке @node, то старые указатели удаляются и на их место помещаются обновленные. При запуске этой команды с аргументом (с префиксным аргументом, C-u, при интерактивном вызове), команда действует на все строки @node в выделенной области.
C-c C-u C-m
M-x texinfo-make-menu
Создает или обновляет меню в ноде, где находится точка. При вызове этой команды с аргументом (с префиксным аргументом, C-u, при интерактивном вызове), команда создает или обновляет меню для нод, которые находятся внутри выделенной области. Всякий раз, когда texinfo-make-menu обновляет существующее меню, описания из этого меню включается в новое. Это достигается с помощью копирования описаний пунктов существующего меню в те пункты нового меню, которые имеют те же имена нод. Если пункты меню различаются, то описания в новое меню не копируются.
C-c C-u C-e
M-x texinfo-every-node-update
Вставляет указатели на ноды `Next', `Previous' и `Up' для каждой ноды в данном буфере.
C-c C-u C-a
M-x texinfo-all-menus-update
Создает или обновляет все меню в данном буфере. С аргументом (с префиксным аргументом, C-u, при интерактивном вызове), перед работой над меню сначала вставляются или обновляются все указатели на ноды. Если существует главное меню, команда texinfo-all-menus-update обновляет его; но она не создает новое главное меню, если его не существует. (Для этого используйте команду texinfo-master-menu.) При работе над документом, в котором главное меню не нужно, можно сделать следующее:
C-u C-c C-u C-a
или
C-u M-x texinfo-all-menus-update
Это модифицирует все ноды и меню.

Переменная texinfo-column-for-description определяет позицию, по которой выровнены описания меню. По умолчанию она равна 32, хотя часто бывает полезно уменьшить ее до 24. Вы можете установить эту переменную с помощью команды M-x edit-options, (ТшрзСызш Стюцшщ `Editing Variable Values' ф Руководство по GNU Emacs) или с помощью команды M-x set-variable (ТшрзСызш Стюцшщ `Examining and Setting Variables' ф Руководство по GNU Emacs).

Также, команда texinfo-indent-menu-description может использоваться, чтобы выровнять существующие описания меню по определенной позиции. И наконец, если вы пожелаете, то вы можете использовать команду texinfo-insert-node-lines, чтобы вставить в файл недостающие строки @node. (тшрзСызш Стюцшщ Другие команды обновления, для дополнительной информации.)

Требования для обновления

чем на один уровень за один раз: вслед за нодой `Top' должна начинаться глава, и ни в коем случае не раздел; вслед за главой следует раздел, но не подраздел. Однако, вы можете за один раз "подняться" на любое число уровней, например от подраздела до главы.

Каждая строка @node за исключением строки для ноды `Top' должна сопровождаться строкой с командой структурирования вроде @chapter, @section или @unnumberedsubsec.

Каждая комбинация (строка @node)/(строка команды структурирования) должна выглядеть подобно этой:

@node Комментарии, Минимум, Соглашения, Обзор
@comment  node-name, next,    previous,    up
@section Комментарии

Или подобно этой (без строки @comment):

@node Комментарии, Минимум, Соглашения, Обзор
@section Комментарии

определена как указатель`Up'. (Вместо строки @comment вы можете также вписать строку @ifinfo.)

Если файл имеет ноду `Top', то она должна назваться `top' или `Top' и быть первой нодой в файле.

Команды обновления меню создают меню разделов внутри главы, меню подразделов внутри раздела и так далее. Это означает, что если вы хотите получить меню глав, у вас должна быть нода `Top'.

Команда makeinfo может создать Info-файл из иерархически организованного Texinfo-файла, в котором отсутствуют указатели `Next', `Previous' и `Up'. Как следствие этого, если вы уверены, что ваш Texinfo-файл будет отформатирован с помощью makeinfo, команды обновления меню вам не нужны. (тшрзСызш Стюцшщ Создание Info-файла, для более детальной информации о makeinfo.) Однако, и makeinfo, и команды texinfo-format-... требуют, чтобы вы вставили в файл меню.

Другие команды обновления

Кроме пяти основных команд обновления, режим Texinfo дает доступ к несколько менее часто используемым командам обновления:

M-x texinfo-insert-node-lines
Вставляет строки @node перед @chapter @section, и другими командами структурирования, если они отсутствуют. При запуске с аргументом (с префиксным аргументом, C-u, при интерактивном вызове), команда texinfo-insert-node-lines не только вставляет строки @node, но также вставляет и названия глав или разделов в качестве имен соответствующих нод. Кроме того, она вставляет названия в качестве имен нод в уже существующие строки @node, не имеющие имен. Так как имена нод должны быть более краткими, чем названия разделов или глав, вы должны вручную отредактировать вставленные имена. Например, для того, чтобы выделить весь буфер и везде вставить строки @node и названия, следует сделать это:
C-x h C-u M-x texinfo-insert-node-lines
Эта команда вставляет в качестве имен нод в строках @node названия разделов; команда texinfo-start-menu-description (ТшрзСызш Стюцшщ Быстрая вставка часто используемых команд.) вставляет названия как описания пунктов меню -- это разные действия. Однако в обоих случаях вы должны отредактировать вставленный текст.
M-x texinfo-multiple-files-update
Обновляет ноды и меню в документе, сформированном из отдельных файлов. При запуске с C-u создает и вставляет главное меню во внешний файл. При запуске с числовым аргументом, как C-u 2, перед созданием и вставкой главного меню во внешнем файле сначала модифицирует все меню и все указатели `Next', `Previous' и `Up' во всех файлах. Команда texinfo-multiple-files-update описана в приложении о включаемых файлах. тшрзСызш Стюцшщ texinfo-multiple-files-update.
M-x texinfo-indent-menu-description
Выравнивает каждое описание в меню после точки по определенному столбцу. Вы можете использовать эту команду, чтобы создать для описаний больше места. При запуске с аргументом (с префиксным аргументом, C-u, при интерактивном вызове), команда texinfo-indent-menu-description выравнивает каждое описание в каждом меню в выделенной области. Однако, эта команда не выравнивает вторые и последующие строки многострочного описания.
M-x texinfo-sequential-node-update
Вставляет имена нод, находящихся непосредственно перед и после текущей ноды как `Next' или `Previous', независимо от иерархического положения этих нод. Это означает, что следующая нода подраздела может быть следующей главой. Последовательная структура нод полезна для романов и других документов, которые следует читать последовательно. (Однако, команда Info g * позволяет вам просматривать файл последовательно, а значит, такая упорядоченность нод не является строго необходимой). При запуске с аргументом, команда texinfo-sequential-node-update последовательно обновляет все ноды в области.

Форматирование для Info

Режим Texinfo обеспечивает отдельные команды для форматирования части или всего Texinfo-файла для Info. Часто, когда вы пишете документ, вы хотите отформатировать только часть файла -- то есть некую область.

Вы можете использовать команду texinfo-format-region или makeinfo-region, чтобы отформатировать область:

C-c C-e C-r
M-x texinfo-format-region
C-c C-m C-r
M-x makeinfo-region
Форматирует текущую область для Info.

Вы можете использовать команду texinfo-format-buffer или makeinfo-buffer для того, чтобы отформатировать весь буфер:

C-c C-e C-b
M-x texinfo-format-buffer
C-c C-m C-b
M-x makeinfo-buffer
Форматирует текущий буфер для Info.

Например, после создания Texinfo-файла вы можете набрать следующее:

C-u C-c C-u m
или
C-u M-x texinfo-master-menu

Это модифицирует все ноды и меню. Затем наберите следующее, чтобы создать Info-файл:

C-c C-m C-b
или
M-x makeinfo-buffer

Для того, чтобы могли работать TeX или команды форматирования для Info, в заголовке файла должна быть строка @setfilename.

тшрзСызш Стюцшщ Создание Info-файла, для более подробного описания форматирования для Info.

Форматирование и печать

указатели. Чтобы сделать это, вы должны выполнить команду texindex после первичного выполнения команды tex; а затем выполнить команду tex снова. Или следует выполнить команду texi2dvi, которая сама автоматически создает именные указатели. (ТшрзСызш Стюцшщ Форматирование с помощью texi2dvi).

Часто, когда вы пишете документ, вы хотите вывести на печать только часть файла, чтобы увидеть, как она будет выглядеть. Для этой цели вы можете использовать команду texinfo-tex-region или похожие команды. Используйте команду texinfo-tex-buffer, чтобы отформатировать весь буфер.

C-c C-t C-b
M-x texinfo-tex-buffer
Выполняет команду texi2dvi для буфера. Помимо запуска TeX для буфера, эта команда автоматически создает или обновляет именные указатели.
C-c C-t C-r
M-x texinfo-tex-region
Выполняет команду TeX для области.
C-c C-t C-i
M-x texinfo-texindex
Запускает texindex, чтобы отсортировать именные указатели Texinfo-файла, отформатированного с помощью команды texinfo-tex-region. Команда texinfo-tex-region не запускает texindex автоматически; она только выполняет команду tex. Вы должны запустить команду texinfo-tex-region во второй раз после сортировки необработанного именных указателей командой texindex. (Обычно, когда форматируют область, именные указатели не формируют; это делается только для всего буфера. Сейчас, когда существует команда texi2dvi, обсуждаемая команда практически не нужна.)
C-c C-t C-p
M-x texinfo-tex-print
Печатает файл (или часть файла), предварительно отформатированный с помощью команды texinfo-tex-buffer или texinfo-tex-region.

Для того, чтобы команда texinfo-tex-region или texinfo-tex-buffer сработала, файл должен начинаться со строки `\input texinfo' и должен включать строку @settitle. Файл должен заканчиваться командой @bye, набранной в отдельной строке. (Когда вы используете команду texinfo-tex-region, вы должны окружить @settitle строками start-of-header и end-of-header.)

тшрзСызш Стюцшщ Форматирование и печать твердой копии, для подробного описания других команд для TeX, вроде tex-show-print-queue.

Резюме по режиму Texinfo

Каждый набор команд режима Texinfo имеет привязки по умолчанию, начинающиеся с одних ключей. Все команды, созданные специально для режима Texinfo, начинаются с C-c. Ключи отчасти мнемонические.

Команды вставки

Команды вставки вызываются с помощью набора двух C-c и затем первого символа вставляемой @-команды. (Вероятно правильнее было бы для мнемоничности использовать C-c C-i, от `custom insert', но C-c C-c набирается гораздо быстрее.)

C-c C-c c       Вставить `@code'.
C-c C-c d       Вставить `@dfn'.
C-c C-c e       Вставить `@end'.
C-c C-c i       Вставить `@item'.
C-c C-c n       Вставить `@node'.
C-c C-c s       Вставить `@samp'.
C-c C-c v       Вставить `@var' описания в пункте меню.

Визуализация структуры

Команда texinfo-show-structure часто используется внутри суженной области.

C-c C-s         Перечислить все заголовки.

Команда обновления главного меню

Команда texinfo-master-menu создает главное меню; может использоваться для того, чтобы модифицировать каждую ноду и каждое меню в файле.

C-c C-u m M-x texinfo-master-menu
                Создать или обновить главное меню.
C-u C-c C-u m   С C-u в качестве префиксного
                аргумента, сначала создать или обновить
                все ноды и обычные меню, а затем
                создать главное меню.

Обновление указателей

Команды обновления указателей вызываются при наборе C-c C-u и затем или C-n для texinfo-update-node, или C-e для texinfo-every-node-update.

C-c C-u C-n     Обновить ноду.
C-c C-u C-e     Обновить все ноды в буфере.

Обновление меню

Команды обновления меню вызываются при наборе C-c C-u, и затем или C-m для texinfo-make-menu, или C-a для texinfo-all-menus-update. Чтобы обновить и ноды, и меню в одно и то же время, перед набором командной последовательности C-c C-u C-a наберите C-u.

C-c C-u C-m     Создать или обновить меню.
C-c C-u C-a     Создать или обновить все
                меню в буфере.
C-u C-c C-u C-a С префиксным аргументом C-u,
                сначала создать или обновить все ноды,
                а затем создать или обновить все меню.

Форматирование для Info

Команды форматирования для Info, которые написаны на языке Emacs Lisp, вызываются при наборе C-c C-e и затем или C-r для выделенной области, или C-b для всего буфера.

Команды форматирования для Info, которые написаны на Си и основаны на программе makeinfo, вызываются при наборе C-c C-m и затем или C-r для выделенной области, или C-b для всего буфера.

Использование команды texinfo-format...:

C-c C-e C-r     Форматировать область.
C-c C-e C-b     Форматировать буфер.

Использование makeinfo:

C-c C-m C-r     Форматировать область.
C-c C-m C-b     Форматировать буфер.
C-c C-m C-l     Обновить выходной буфер makeinfo.
C-c C-m C-k     Прекратить выполнение makeinfo.

Вывод и печать

Команды набора и печати через TeX вызываются при наборе последовательности C-c C-t и затем другой управляющей последовательности: C-r для texinfo-tex-region, C-b для texinfo-tex-buffer и так далее.

C-c C-t C-r     Выполнить TeX для области.
C-c C-t C-b     Выполнить texi2dvi для буфера.
C-c C-t C-i     Выполнить texindex форматирования в TeX.
C-c C-t C-x     Выйти из приостановленного задания
                форматирования в TeX.
C-c C-t C-l     Обновить выходной буфер.

Другие команды обновления

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

M-x texinfo-insert-node-lines
               Вставить пропущенные строки @node
               в области.  С префиксным аргументом C-u  C-u 2        Вставить указатели на ноды в строгой
               последовательности.


[Содержание]   [Назад]   [Вперед]  
Главная