Emacs для начинающих

       

Формато-специфичные абзацы


Мы только что увидели, что командой L не так-то легко управлять. А почему мы не можем просто использовать HTML-ссылку? Краткий ответ "потому что POD -- это не HTML" подсказывает решение. Если бы мы могли указать, что этот абзац предназначен для HTML, этот -- для LaTeX, а этот -- для SnaFoo", то мы могли бы использовать разметку, специфичную для этих форматов.

Специальная команда

=for format абзац_текста

указывает транслятору обратить внимание на format перед тем, как он станет обрабатывать абзац_текста. Если транслятор чувствует, что он "отвечает" за обработку формата format, то он его обрабатывает по своим правилам, в противном случае он его полностью игнорирует. Вторая часть названия обработчика обычно указывает, в какой формат он транслирует. Например pod2man работает с =for man, pod2html преобразует абзацы =for html, и т.д.

Всякий раз при использовании формато-специфичного абзаца в документе появляется "ветвление" (поскольку разделы =forformat должны быть созданы для каждого из предполагаемых выходных форматов), тем самым пробивается брешь в стройной структуре документа.

Это обычный абзац, который обрабатывается всеми трансляторами.

=for html <p>Этот абзац появится только в файле обработанном <b>pod2html</b>.</p>

=for latex Тот же самый абзац, но оттранслированный {\bf pod2latex}.

=for text А я предназначен для *pod2text*.

Продолжаем писать для всех и всяких форматов.

Трансляторы игнорируют неизвестные форматы, так что мы можем изобрести абзацы для своих специальных нужд! Например, чтобы закомментировать сразу целый абзац, можно написать:

=for comment Кто-нибудь может разобраться со следующим разделом?

Часто используется формат emacs :-) Для того чтобы при подготовке POD-файла переключить emacs в текстовой режим, начните файл с:

=for emacs -*- text -*-

или закончите его так:

=for emacs Local Variables: mode: text End:

Те пользователи emacs, которые применяют дополнение hyperbole, могут превратить имеющиеся у них "тупые" POD-файлы в связанную гипрессылками коллекцию (на самом деле возможности hyperbole этим не исчерпываются, но гиперссылки -- хорошее начало) файлов следующей командой:

=for hyperbole <(std-reference)>

где <(std-reference)> -- это кнопка hyperbole, которая, стоит по ней кликнуть мышью, переносит вас в другой файл, содержащий документацию по std.



Содержание раздела