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

Влияние LaTeX


Взаимосвязь между TeXmacs и TeX/LaTeX гораздо более очевидна и бросается в глаза уже при беглом знакомстве с интерфейсом программы. Скажем, в меню мы обнаруживаем подменю , которое позволяет сделать выбор между такими вариантами, как , , , . Что это такое? Да не что иное, как стандартные классы документов LaTeX. Точно так же не вызывает сомнения происхождение большинства пунктов меню , через которое в документ можно включить заголовки разного уровня, а также такие окружения, как , , , , . Здесь же находим команды, управляющие расстановкой отступов между абзацами и разрывов страниц, которые также выдержаны вполне в духе идеологии LaTeX. В общем, сама собой напрашивается аналогия с таким текстовым процессором, как LyX, где доступ к командам LaTeX осуществляется именно с помощью подобных элементов пользовательского интерфейса. Подобно LyX, TeXmacs изначально ориентирован на создание структурированного документа, оформление которого в соответствии с выбранным стилем программа берет на себя. Единственное внешнее отличие (правда, говорящее, на мой взгляд, не в пользу TeXmacs) заключается в том, что здесь можно лишь вставлять различные элементы структуры, но нельзя, например, оформить уже набранный абзац в качестве заголовка того или иного уровня.

На самом же деле разница гораздо глубже, ибо TeXmacs - вовсе не графическая оболочка для LaTeX, а совершенно самостоятельный текстовый процессор. Поэтому наличие аналогов для распространенных команд LaTeX здесь не дань необходимости, а плод сознательного стремления автора создать программу, пригодную для подготовки документов полиграфического качества. Однако решается эта задача совершенно иными средствами. Об этом говорит уже самый формат документов TeXmacs (они имеют расширение .tm), который не имеет с LaTeX ничего общего, ибо основан на SGML. Что, в общем-то, и неудивительно: TeX/LaTeX - язык слишком своеобразный, и к тому же обладающий внутренним совершенством, так что его сложно использовать как основу для новых разработок. Соответственно, TeXmacs не нуждается в каких-либо внешних компиляторах: получив команду распечатать документ, он самостоятельно создает PostScript-файл, который потом и посылается на печать через Ghostscript. А коль скоро одна и та же программа управляет отображением текста на экране и его переводом в формат PostScript, не так уж сложно сделать результаты обоих процессов максимально близкими друг к другу. По этой причине TeXmacs, в отличие от LyX, обеспечивает не некую условную визуализацию, а настоящий режим WYSIWYG. В процессе редактирования не отображаются разве что разрывы страниц. Зато переносы расставляются тут же, причем с учетом выбранного языка.


Надо заметить, что используемый в TeXmacs алгоритм переносов также заимствован из TeX. Сам по себе данный факт не следует считать признаком тесной связи с этой издательской системой: просто файлы переносов TeX хороши тем, что распространяются свободно и дают вполне удовлетворительный результат. А использовать их ныне можно в любом визуальном редакторе - было бы желание. Так что в этом плане TeXmacs мог бы послужить образцом для всех разработчиков некоммерческих текстовых процессоров. Однако есть одна область, где TeXmacs по-настоящему зависим от TeX: для оформления текста в нем по умолчанию используются шрифты в формате METAFONT. Некоторые из них имеются в комплекте программы, но недостающие приходится брать из дерева каталогов TeX. Кроме того, использование технологии METAFONT, как известно, требует генерации растровых pk-шрифтов, для чего необходимы компиляторы, которые опять-таки не являются частью TeXmacs, а поставляются в составе дистрибутива teTeX. А вот к чему такой выбор приводит - об этом сказ особый.


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