Команды для естественных языков – ЧАСТЬ 5

Команда C-c C-i  (show-children) немного слабее  show-branches.  Она делает видимыми только непосредственные  подзаголовки — те,  что на один уровень ниже.   Более глубокие подзаголовки остаются невидимыми,  если они были таковыми.

Две команды производят  действие, охватывающее  весь файл. C-c C-t  (hide-body) делает все строки тела невидимыми, так что вы видите просто схему текста. C-c C-a (showall) делает все строки видимыми. Эти команды могут рассматриваться как пара противоположных, хотя C-c C-a применяется  не только к строкам тела.

Команда C-c C-q (hide-sublevels) скрывает все заголовки, кроме заголовков верхнего уровня. С числовым аргументом n, она скрывает все, кроме строк заголовков n верхних уровней.

Команда C-c C-o (hide-other) скрывает все, кроме  заголовка или текста тела, в котором находится точка, и их родителей (заголовков, ведущих отсюда к верхнему уровню структуры).

Использование многоточий в конце видимых строк может быть отключено путем установки selective-display-ellipses равной nil.  Тогда не будет явного указания на существование невидимых строк.

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

21.8.4  Просмотр одной схемы в нескольких видах

Вы можете просмотреть два вида одной схемы одновременно в разных окнах.  Чтобы сделать так, вы должны создать косвенный буфер, используя  M-x make-indirect-buffer. Первый аргумент этой команды — это имя существующего  буфера Outline, а второй аргумент  — это имя, которое будет использоваться  для нового косвенного буфера.  См. Раздел 15.6 [Косвенные  буферы], с. 139.

Когда косвенный буфер создан, вы можете показать его в окне, как обычно, с помощью

C-x 4 b или других команд Emacs. Команды режима Outline для показа или скрывания

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

21.9  Режим TEX

TEX — это мощная программа компьютерного набора, написанная Дональдом Кнутом. Он также является свободным программным продуктом, как и GNU Emacs. LaTEX — это упрощенный формат ввода для TEX,  реализованный на макросах TEX.  Он распространяется вместе с TEX. SliTEX — это особая форма LaTEX.

В Emacs есть специальный режим TEX  для редактирования входных TEX-файлов. Он предусматривает  средства для проверки сбалансированности ограничителей и для вызова TEX для всего файла или его части.

Режим TEX имеет три варианта: режим Plain TEX, режим LaTEX и режим SliTEX (три этих основных режима отличающихся друг от друга лишь слегка).  Они предназначены для редактирования трех различных входных форматов.   Команда M-x tex-mode прове-

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

tex-default-mode.

Когда M-x tex-mode делает неправильное предположение,  вы можете использовать команды M-x plain-tex-mode,  M-x latex-mode  и M-x slitex-mode для явного выбора конкретного варианта режима TEX.

21.9.1  Команды редактирования режима TEX

Здесь перечислены специальные команды, предусмотренные в режиме TEX  для редак-

тирования текста файла.

"           Вставить согласно контексту либо ‘ ’, либо ‘"’, либо ‘ ’ (tex-insert-quote).

C-j              Вставить разрыв абзаца (два перевода строки) и проверить предыдущий  абзац на несбалансированные фигурные  скобки или знаки доллара (tex-terminateparagraph).

M-x tex-validate-region

Проверить каждый абзац в буфере  на несбалансированные фигурные  скобки или знаки доллара.

C-c {      Вставить ‘{}’ и расположить точку между ними (tex-insert-braces).

C-c }      Перейти вперед за следующую непарную закрывающую фигурную скобку (uplist).

Знак ‘"’ обычно не используется  в TEX; мы используем ‘ ’, чтобы открыть кавычки, и

‘ ’, чтобы закрыть. Чтобы облегчить редактирование с учетом этого соглащения о форма-

тировании, режим TEX  заменяет обычное значение клавиши " на команду, вставляющую пару одиночных простых или обратных кавычек (tex-insert-quote). Если говорить точно, эта команда вставляет ‘ ’ после пропуска или открывающей фигурной скобки, ‘"’ после

обратной косой черты и ‘ ’ после всех остальных знаков.

Если вам нужен знак ‘"’ сам по себе в необычном контексте, используйте для его вставки C-q.  Также,  " c числовым аргументом всегда вставляет указанное число знаков ‘"’.  Вы можете выключить средство раскрытия ", убрав эту привязку из локальной раскладки (см. Раздел 31.4 [Привязки ключей], с. 356).

Знак ‘$’ имеет в режиме TEX особый синтаксический код, который перетендует на понимание способа, которым ограничители математической моды TEX  соответствуют друг другу.  Когда вы вводите ‘$’, который используется для выхода из математической моды,

на секунду отображается позиция парного ‘$’, который вводил в математическую моду. Это то же самое средство,  которое показывает открывающую фигурную скобку, соответствующую вставленной закрывающей. Однако, нет способа узнать, является ли ‘$’ входом или выходом из математической моды; поэтому когда вы вводите ‘$’, который входит в математическую моду, показывается позиция предыдущего ‘$’, как если бы она была они составляли пару, даже если фактически  они не относятся  друг к другу.

TEX использует фигурные скобки как ограничители, которые обязаны составлять пары. Некоторые пользователи предпочитают поддерживать фигурные скобки все время сбалансированными, а не вставлять  их по отдельности. Используйте C-c { (tex-insert-braces),

чтобы вставить пару фигурных скобок. Эта команда оставляет точку между двумя этими скобками, чтобы вы могли вставить текст внутрь.  Потом используйте команду C-c } (up-list), чтобы перейти вперед через закрывающую фигурную скобку.

Существуют две команды для контроля соответствия фигурных  скобок.   C-j  (texterminate-paragraph) проверяет  абзац перед точкой и вставляет два ограничителя новой строки для начала нового абзаца. Если будет найдено какое-то несоответствие, она напечатает сообщение в эхо-области. M-x tex-validate-region проверяет область, абзац за абзацем. Ошибки перечисляются в буфере ‘*Occur*’,  и вы можете использовать в нем C-c C-c или Mouse-2, чтобы перейти к конкретному несоответствию.

Заметьте, что команды Emacs подсчитывают в режиме TEX не только фигурные скобки, но и квадратные и круглые. Для проверки синтаксиса TEX это не совсем корректно. Тем не менее, круглые и квадратные скобки, скорее всего, используются в тексте  в качестве

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

ского показа пар будут с ними работать.

21.9.2  Команды редактирования режима LaTEX

Режим LaTEX и его вариация, режим SliTEX, предоставляют несколько дополнительных возможностей,  не относящихся  к plain TEX.

C-c C-o      Вставляет ‘\begin’ и ‘\end’ для блока LaTEX и помещает точку на строке меж-

ду ними (tex-latex-block).

C-c C-e      Закрывает самый внутренний  еще не закрытый блок LaTEX (tex-close-latexblock).

В LaTEX для группировки блоков текста используются команды ‘\begin’ и ‘\end’.  Чтобы вставить ‘\begin’ и парную ‘\end’  (на новой строке после ‘\begin’), используйте C-c C-o (tex-latex-block).  Между двумя этими строками вставляется пустая строка, и на

ней оставляется точка. При вводе типа блока вы можете использовать завершение; чтобы задать имена дополнительных  типов блоков, установите переменную latex-block-names. Например, добавить ‘theorem’, ‘corollary’ и ‘proof’ можно таким образом:

(setq  latex-block-names ’("theorem"  "corollary" "proof"))

Во входном тексте  LaTEX  команды ‘\begin’ и ‘\end’  должны соответствовать друг другу.  Вы можете использовать C-c C-e (tex-close-latex-block), чтобы автоматически вставить ‘\end’,  соответствующую последней ‘\begin’, оставшей  без пары. Эта команда

делает для ‘\end’  отступ в соответствии с ее  ‘\begin’.  Если точка находится в начале строки, она вставляет после ‘\end’  новую строку,

21.9.3  Команды печати для TEX

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

главе дает удобный метод увидеть, как  выглядят ваши изменения,  не тратя время на форматирование всего файла.

C-c C-r       Вызвать TEX для текущей области вместе с заголовоком буфера (tex-region).

C-c C-b      Вызывать TEX для всего текущего буфера (tex-buffer).

C-c hTABi     Вызывать BibTEX  для текущего файла (tex-bibtex-file).

C-c C-f       Вызывать TEX для текущего файла (tex-file).

C-c C-l       Переместить центр окна, показывающего вывод подчиненного TEX, чтобы мож-

но было увидеть последнюю строку (tex-recenter-output-buffer).

C-c C-k      Уничтожить  подпроцесс TEX (tex-kill-job).

C-c C-p      Печатать вывод из последней  команды C-c C-r,  C-c C-b или C-c C-f  (texprint).

C-c C-v      Запустить предварительный просмотр вывода последней команды C-c C-r, C-c

C-b или C-c C-f (tex-view).

C-c C-q      Показать очередь принтера (tex-show-print-queue).

Вы можете  пропустить текущий  буфер  через подчиненный TEX  с помощью C-c C-b (tex-buffer).  Отформатированный вывод появляется во временном  файле; чтобы напечатать его, наберите C-c C-p (tex-print). Потом вы можете использовать C-c C-q (tex-

show-printer-queue), чтобы увидеть, как скоро ваш вывод будет напечатан. Если ваш терминал может показывать выходные файлы TEX, вы можете просмотреть вывод на терминале с помощью команды C-c C-v (tex-view).

Вы можете  указать каталог для запуска TEX,  установив переменную tex-directory. Значением по умолчанию является ".". Если переменная  среды  TEXINPUTS содержит относительные имена каталогов, или ваши файлы содержат команды ‘\input’ с относительны-

ми именами, то tex-directory должна быть равна ".",  или вы получите неправильные результаты.  В противном случае, можно без опасения задать какой-то другой каталог, например, "/tmp".

Если вы хотите указать, какие команды оболочки нужно использовать в подчиненном процессе TEX, вы можете сделать это установкой значений переменных tex-run-command, latex-run-command, slitex-run-command, tex-dvi-print-command, tex-dvi-view-command

и tex-show-queue-command.  Вы обязаны установить значение tex-dvi-view-command для вашего конкретного терминала; эта переменная не имеет значения по умолчанию. Другие переменные имеют значения по умолчанию, которые могут подойти (а могут и не подойти) для вашей системы.

Источник: Ричард Столмен, Руководство по GNU Emacs

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий