Выбрать главу

К сожалению, поддержка кириллицы в pdfTEX находится на примитивном уровне. Хотя внешний вид документов с кириллическими символами заслуживает высшей оценки, их содержимое практически невозможно использовать как текст — нельзя проводить поиск слов, а также копировать фрагменты текста в другие документы. Проблема вызвана недостаточной поддержкой кириллицы в разработках фирмы adobe — отсутствует стандартная таблица для связи фирменных названий кириллических символов с их кодами в Unicode, то есть это изъян не pdfTEX, а самого формата pdf. К pdfTEX добавлена недокументированная команда \pdffontattr, позволяющая использовать такого рода таблицы, созданные сторонними лицами. Например, Владимир Волович разработал и поместил в CTaN (Comprehensive TEX archive Network) таблицы для стандартных кодировок LaTEX, но только для невиртуальных шрифтов. К сожалению, многие кириллические шрифты — виртуальные[Виртуальные шрифты состоят из знаков, набранных из разных файлов с шрифтами — postscript type 1 или 3, true type, metafont и пр. Обозначенная проблема автором статьи частично решена: большинство виртуальных шрифтов и все кириллические можно связать с Unicode, использовав соответствующие таблицы для всех невиртуальных шрифтов, входящих в состав виртуальных; см. https://info.vsu.ru/Lists/CyrTeX-ru/Message/3635.html].

Кроме того, в закладках (это, как правило, оглавление в отдельном окне сбоку) нельзя напрямую использовать что-либо кроме символов из стандартных кодировок Adobe, среди которых кириллицы нет. Проблема решается лишь прямой вставкой кодов Unicode (UTF-16BE) для букв кириллицы, для чего нужен соответствующий макрос. Вдобавок в большинстве макропакетов TEX символ "\" (backslash) очень трудно использовать самостоятельно, а в формате pdf все Unicode-коды удобнее начинать именно с него.

ConTEXt

Это ориентированное на европейское языковое многообразие средство преимущественно служит для создания качественных электронных изданий. К нему прилагается руководство на шести языках: английском, немецком, итальянском, голландском, чешском и румынском. Более того, для перечисленных языков существует свой набор макросов — например, вместо английского названия макроса \appendix чешский пользователь может использовать \dodatek. Поддерживаются также, хотя и в меньшей степени, другие языки — в частности, вьетнамский. К сожалению, ситуация с кириллицей в этом макропакете даже хуже, чем в pdfTEX, хотя базовая поддержка имеется.

ConTEXt содержит весь необходимый инструментарий для создания документов со сколь угодно сложной структурой. Большое внимание уделено удобству работы со ссылками на различные компоненты документа, идентификации этих компонентов и способам размещения друг относительно друга. ConTEXt включает в себя:

почти все базовые возможности макропакета LaTEX;

полиграфические расширения PostScript/pdf;

интерактивные возможности pdf.

В отличие от обладающего сотнями стилевых настроек LaTEX’а, ConTEXt пока не имеет простых средств, позволяющих быстро изменить внешний вид документа. Для построения перекрестных ссылок, оглавления, списка таблиц, фигур и т. п. используется вспомогательная программа texutil на языке Perl. Кроме того, ConTEXt может «незаметно» (автоматически) использовать в процессе работы систему METAPOST[METAPOST — аналог METAFONT, но производит результат на PostScript и часто используется для создания не шрифтов, а отдельных масштабируемых иллюстраций].

Хотя внешне ConTEXt отличается от первого кнутовского макропакета plain TEX меньше, чем Texinfo, но все же гораздо больше, чем LaTEX. В ConTEXt практически не используются макросы plain TEX. Даже запись математических формул выглядит иначе.

Все соответствующие элементы документа (номера страниц в индексах, элементы оглавления и т. п.) автоматически получаются интерактивными. Эта возможность, однако, приводит к существенному росту размера документа (к счастью, ее можно отключить).

Для ConTEXt существует пока лишь одно значительное расширение — пакет PPCTEX, предназначенный для печати структурных формул химических соединений. Есть также десятка два небольших расширений-модулей для решения сравнительно несложных задач — например, для подключения разного рода шрифтов или печати нормальных форм Бэкуса-Наура (НФБН).

В заключение отметим гибкость основ ConTEXt, отсутствие в нем жесткой привязки как к pdfTEX, так и к формату pdf. ConTEXt всегда может производить результат в dvi-формате с разделами \special для разных драйверов dvips, dvipdfm и т. п. Конечно, в таких «dvi» может отсутствовать все, кроме раздела для команд конкретного драйвера. ConTEXt может также работать и с XML.