20080913

Знакомство с ConTeXt

Разглядывал такую вещь, как ConTeXt. Надстройку над Plain TeX, в некотором смысле альтернативу LaTeX. Достаточно взглянуть на мануал к нему, вот этот или вот этот, чтобы понять, на что он способен. Судя по этим руководствам, некоторые вещи делаются в ConTeXt лучше и проще, чем в LaTeX. Например:
  • размещение илюстраций и таблиц, обтекание их текстом естественны (кто возился с плавающими илюстрациями в LaTeX — знает, чего это стоит там)
  • есть нормально работающая многоколоночная вёрстка (опять же, подводные камни многоколоночной вёрстки в LaTeX на картах широко отмечены)
  • есть возможность вёрстки по сетке (например, возможно сохранение постоянного межстрочного интервала)
  • отложенный вывод материала является стандартным инструментом, а не высшим пилотажем для знатоков, есть возможность создания целой серии документов, использующих общий исходник и общие стилевые настройки (сказывается изначальная ориентация ConTeXt на создание учебных материалов, например, из одного исходника можно сформировать и лекционные записи, и задачник со списком ответов в конце, и решебник с объяснениеми решений, идея понятна)
  • большинство задач, касающихся вёрстки материала, решаемы встренными средствами самого ConTeXt, нет необходимости прибегать к сторонним пакетам (в случае LaTeX иногда имеется по несколько сходных пакетов, разной степени современности и с разными командами/разметкой)
  • есть развитые средства создания интерактивных и гипертекстовых документов
В общем, всё хорошо и интересно. Если не для написания статей, то для личного использования приспособить ConTeXt можно.

Кириллица в ConTeXt вроде тоже должна поддерживаться. Как средствами pdfTeX, так и уникодного XeTeX. Быстренько поставил ConTeXt из репозиториев Debian, решил попробовать. Однако на практике, попытка собрать примеры с русскими буквами в ConTeXt, приводила к появлению на свет PDF, в котором русские слова записаны транслитом. Т.е. вроде и разные кодировки русские понимает, и не ругается, а вот со шрифтами что-то не то. Если кто разберётся с этим зверем — дайте знать.

Решение проблемы с кириллицей. Кажется, найдёно решение проблемы транлитерации русского текста. Эта ошибка в ConTeXt, похоже, появилась недавно и исправление уже есть (думаю, оно попадёт в будущие версии ConTeXt). На данный момент я сделал так:
  • скачал type-one.zip
  • распаковал файл type-one.tex и заменил им файл /usr/share/texmf/tex/context/base/type-one.tex (да, при следующем апгрейде пакета context эта замена пропадёт, по-хорошему надо собрать новый deb-пакет)
После этого стандартный пример
\enableregime[utf]
\useencoding[cyr]
\definetypeface [russian]
[rm] [serif] [computer-modern] [default] [encoding=t2a]
\setupbodyfont[russian,24pt]
\starttext
Немного русского текста для пробы.
\stoptext
сохраняем в файл. Чтобы скомпилировать, запускаем
$ texexec myfile.tex
Результат содержит русские буквы. Выглядят они не лучшим образом, но для начала неплохо:



См. также:
☙ TeX и его варианты