Журнал «Компьютерра» № 14 от 11 апреля 2006 года - Компьютерра
Шрифт:
Интервал:
Закладка:
Система pdfTEX создает основу для работы макропакетов типа ConTEXt, выдавая результат сразу в виде pdf. С одной стороны, она позволяет использовать разнообразные полиграфические средства — такие же, как в PostScript; а с другой — поддерживает все диалоговые возможности pdf: работу с графическими изображениями, цветом, мультимедиа, трансформацией текстов и изображений, элементами управления типа кнопок, полей ввода данных и т. п., а также веб-ссылки. Отметим еще всплывающие аннотации к любому участку документа, возможность размещения статьи в виде не связанных друг с другом фрагментов текста и простоту — одной командой — изготовления брошюр, когда, например, на листе A4 печатаются две страницы A5. рdf-ссылки могут указывать не только на какой-то URL, но и на другое место в текущем файле, а также на другой pdf-документ, и содержат указание не только на то, куда они отсылают, но и на способ отображения целевого объекта. В pdfTEX большое внимание уделяется работе с объектами — более мощными разновидностями традиционных теховских «боксов»[Бокс (калька с английского слова box) — прямоугольник, куда помещается картинка (в простейшем случае состоящая из одного символа)].
Эта система может быть напрямую использована с большинством TEX-макропакетов, в частности с LaTEX. Однако pdfTEX запрещает прямо использовать PostScript, а значит, и такие макропакеты, как TEXdraw, PSTricks и др. Кроме того, отсекается ряд расширений к некоторым макропакетам, например Xy-pic. В документ стало невозможным вставлять картинки в формате eps. Если последнюю проблему легко решить, переконвертировав изображение в png, jpeg или pdf, которые поддерживаются pdfTEX, то другие проблемы в рамках pdfTEX решения не имеют, поскольку команда special игнорируется. Система pdfTEX в не-dvi-режиме производит только pdf и позволяет вставлять фрагменты данных тоже лишь в формате pdf (при помощи команды pdfliteral).
Вообще говоря, использовать с форматом pdf макропакеты, основанные на PostScript, все-таки можно, если применять только стандартные средства: конвертер ps2pdf из пакета программ Ghostscript или сразу драйвер dvipdfm — аналог dvips, который может непосредственно из dvi получать pdf. Однако использовать в одном документе средства и PostScript, и pdfTEX практически невозможно. Единственный способ обойти это ограничение — прямая постраничная вставка содержимого одного документа pdf в другой — очень громоздок.
К сожалению, поддержка кириллицы в 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.
Исчерпывающая информация по pdfTEX и ConTEXt доступна в электронной форме на www.pdftex.org, www.pragma-ade.com, mirror.contextgarden.net.
В статье использованы иллюстрации из книги «metafun» Ханса Хагенса (Hans Hagens). Автор изображения канала — Йохан Йонкер (Johan Jonker).
В качестве примера можно привести код простого законченного семистраничного документа ConTEXt из трех глав с подразделами, титульным листом, указателем с индексами и оглавлением.
starttext
setupbodyfont[cyr]
startstandardmakeup
midaligned{Как сделать документ}
midaligned{самим автором}
stopstandardmakeup
completecontent
chapter{Введение}
… ваш текстindex{элемент индекса} …
chapter{Глава 1}
section[firstsection]{Первый раздел}
… ваш текст …
section{Второй раздел}
subsection{первый подраздел}
… ваш текстindex{другой элемент индекса} …
subsection{второй подраздел}
… ваш текст …
section{третий подраздел}
… ваш текст …
chapter{Другая глава}
… ваш текст …
chapter[lastchapter]{Последняя глава}
… ваш текст …
completeindex
stoptext
Софтерринки
Автор: Илья Шпаньков
Anti TracksОС: Windows
Адрес: www.rightutilities.com
Версия: 6.2.2
Размер: 3,2 Мбайт
Интерфейс: английский
Цена: $29,95
Программа Anti Tracks предназначена для удаления с компьютера временных данных, создающихся во время работы. Приложение совместимо со всеми популярными браузерами, предусмотрено подключение модулей для интеграции с другими продуктами. Планировщик позволяет удалять файлы в автоматическом режиме. Кроме того, эта версия включает новую функцию — скрытие от постороннего наблюдателя отдельных участков жесткого диска, определенных пользователем.