Главная > Програмное обеспечение > Редакторы/Офисы >
TeX FAQ или Как пропустить Кнута через TeX [4/6]

3. Установка

В основном, здесь приводятся пояснения по испробованным DOG-версиям, поскольку в GNU/Linux (да и в более новых версиях для Windows) все уже вообще-то говоря сделано автоматически, хотя и тем, кто сидит в GNU/Linux, стоит прочитать этот раздел, так как в нем будет разъясняться назначение форматов файлов и пр.

Виденные автором версии TeX для M$-DOG распространялись в архиве с уже заданной структурой каталогов, так что их установка сводится к распаковке архива. Например, получается такая структура подкаталогов:

\TeX+
    |
    +FONTTFMS
    |
    +FORMATS.BIG
    |
    +INPUTS
Для программы sbtex нужно запустить sb38set.exe, которому требуется указать, на каком логическом диске установлена программа и в каком каталоге искать некоторые файлы. Эта информация прописывается прямо в исполняемый файл (туповато, но уж так сделали).

Подкаталоги следующие:

FONTTFMS --- хранит описания шрифтов *.tfm (TeX Font Metrics). Эти файлы имеют имена вида cmr10.tfm, что значит шрифт начертания "Computer Modern Roman", размером 10 pt. Для каждого размера шрифта в TeX, вообще говоря, свой .tfm: cmr5.tfm, cmr7.tfm и т.п. В отличие от виндовых True Type, шрифты TeX масштабировать в несколько раз не принято (хотя и возможно чисто технически). Это сделано потому, что для одного и того же начертания в размерах 5 pt и 10 pt полагается для улучшения читаемости изменять пропорции элементов букв, т.е. это вообще говоря, разные шрифты (небольшие коэффициенты масштабирования, тем не менее, применяются широко, скажем 1.2 и 1.44). Кроме того, графическое изображение символов в .tfm-файлах не сохраняется, для этого служат файлы GF и PK (см. ниже).

FORMATS.BIG ("BIG" он потому, что "big TeX for i386", т.е. с расширенной памятью) --- хранит "форматные" файлы. Что такое форматный файл? Дело в том, что в TeX принято создавать "стили" документов --- наборы макроопределений, которые могут иметь большой объем. Например, пакет PiCTeX, позволяющий рисовать простенькие картинки, весит аж 120K текста. Так вот, чтобы при обработке очередного документа не приходилось каждый раз транслировать макросы во внутреннее представление, делается "форматный файл". По сути, это просто дамп памяти TeX после того, как были проглочены определенные файлы. (И поэтому ОН НЕ ПЕРЕНОСИМ.)

ВАЖНО: при генерации форматного файла в него записывается информация о некоторых используемых шрифтах (так называемые preloaded fonts), Поэтому при повторной генерации шрифтов нужно обновить и форматы, использующие эти шрифты. (Если изменился только тип выводного устройства, например, со 180dpi на 600dpi (см. ниже), но не содержимое шрифта, то этого делать не надо, поскольку в форматный файл пишутся только "метрики шрифта", а при смене разрешения они остаются прежними).

При запуске TeX ему можно сказать, какой формат загрузить:

tex '&plain' ...

INPUTS --- в этом каталоге хранятся стандартные файлы .tex, такие, как, к примеру, стили (самый первый из них --- plain.tex).

Имена каталогов не фиксированы и могут задаваться в переменных окружения: ниже просто приводится кусок .bat-файла, который доводит конфигурацию "до ума" в момент запуска программы:

set TEXFORMATS=d:\tex\formats.big
set TEXPOOL=d:\tex\formats.big
set TEXFONTS=d:\tex\fonttfms
set TEXINPUTS=d:\tex\inputs
кроме того, позаботьтесь о том, чтобы расширитель dos4gw (или другой, если он вообще используется) был доступен через PATH. Переменная TEXPOOL указывает каталог, в котором расположен файл tex.pool (tex.poo в M$-DOG). В этом файле находятся символьные строки сообщений об ошибках.

В GNU/Linux все гораздо проще и сложнее. С одной стороны, установка происходит автоматически, а структура каталогов стандартизована (стандарт TDS, TeX Directory Structure, детали ищите в CTAN), но с другой --- когда что-то идет не так, гораздо сложнее найти причину. В настоящий момент у автора отсутствует достаточно продолжительный опыт в конфигурировании TeX под GNU/Linux, поэтому вам придется почитать документацию (сделана она там очень хорошо).

Генерация формата plain

По умолчанию TeX при старте должен загрузить какой-нибудь форматный файл. Если он его не находит, выдается сообщение об ошибке
I can't find the default format file!
Это значит, что TeX не может отыскать файл формата (он зовется plain.fmt в двух из трех опробованных версий). Поищите его. Например, под GNU/Linux он лежит здесь:
/usr/lib/texmf/texmf/web2c/plain.fmt
Вообще-то структура каталогов TeX стандартизована, но именно место для форматных файлов определено как системно-зависимое. Посмотрите manpage--- там оно может указываться, а еще у TeX'а должны быть переменные окружения и если формат не находится, нужно задать путь к нему в TEXFORMATS. Кстати, в этой же manpage сказано, что теперь по умолчанию загружается не plain.fmt, а формат с таким именем, по которому программа была вызвана (т.е. argv[0]), так что искать надо уже не plain.fmt, а к примеру, tex.fmt. Более старые системы (к примеру, обе упомянутые DOS-версии) этого не делают.

Если же форматов вообще нет, можно попробовать его изготовить:

если есть

/TeX/INPUTS/plain.tex (/usr/lib/texmf/texmf/tex/plain/base/plain.tex)
то это делается так (sbtex):
initex '\input plain.tex \dump \end'

в другой версии нет initex (texas):

tex -i '\input plain.tex \dump \end'
после этого появится два файла: plain.fmt и plain.log. Если в логе нет ошибок, а только сообщения о загруженных шрифтах и т.д., то формат готов. В опробованных версиях он создается в текущем каталоге и его руками можно переложить по назначению. Может случиться, что не будет найден файл tex.pool --- есть переменная TEXPOOL.

В дальнейшем можно явно указать, какой формат загрузить при вызове TeX:

tex '&plain' ...

Настройка METAFONT и генерация шрифтов

Как уже было упомянуто, шрифты TeX хранят размеры литер и их начертания порознь. Файлы начертаний символов шрифта имеют формат GF и PK, т.е. "Generic Font" и "PacKed font". По умолчанию, GF-файлы имеют имена, совпадающие с именем tfm-файла, и расширение, указывающее разрешающую способность устройства, для которого сгенерирован шрифт. Да, именно так! Шрифты TeX генерируются для конкретного разрешения на конкретном устройстве. Выглядит это, конечно, странновато, но подумайте, что различные устройства вывода имеют свои особенности, к примеру, у одних точка (пиксел) квадратная, у других --- нет (да еще и aspect ratio различается) и т.п. Все эти особенности и учитываются при генерации шрифта. Честно говоря, на мой взгляд, это единственный "недостаток" TeX, который досаждает при активной работе с различными размерами шрифтов. Но! Лично мне пришлось столкнуться с проблемой масштабирования шрифтов один раз в течение двух лет постоянной работы в TeX, а в GNU/Linux генерация нужного шрифта уже делается автоматически.

На странице Бориса Тоботраса рассматривается способ использования в TeX шрифтов PostScript.

Система генерации шрифтов называется METAFONT. В M$-DOG версии (из дистрибутива sbtex) при установке получается такая структура каталогов:

MF-+
   |
   +-MFBASES
   |
   +-MFINPUTS
Назначение этих каталогов сходно с аналогами TeX. Настройка системы сводится к запуску программы sbmfset.exe, установка переменных окружения не обязательна (список переменных см. прилагаемую документацию).

У программы mf (основная утилита системы) также существуют загружаемые дампы памяти, называемые "базами" (например, у TeX --- plain.fmt, у METAFONT --- plain.base), среди которых особо выделим cm.base --- основу генерации шрифтов Computer Modern.

Создание базы делается так:

inimf plain input local dump
Команда "input local" по-видимому, специфична именно для sbmf. (Не то, чтобы ее нельзя было реализовать в другой системе, просто там нет по умолчанию исходника local.mf.)

Полученный "plain.bas" ("plain.base") переносится в MFBASES, лог можно удалить.

Сгенерировать шрифт, к примеру, cmr10, можно следующей командой:

mf '&cm' 'mode:=cdvi; mag:=magstep(0);input cmr10'
Расшифруем написанное. Первый параметр имеет то же назначение, что и для TeX --- имя базы. Далее идет "имя устройства". Как уже было сказано, METAFONT учитывает в своей работе особенности конкретных физических устройств, для чего в файле modes.mf хранится множество их описаний. Устройство cdvi, по-видимому, нестандартно, оно определяется дополнительно в файле local.mf. В GNU/Linux его нет. Скорее всего, наиболее безопасно сказать "mode:=localfont", устройство "localfont" имеется как в DOG, так и в GNU/Linux, но его истинное значение может быть различно. Например, в DOG (sbmf) это imagen, в GNU/Linux --- ljfour. Следующий параметр определяет масштабирование шрифта (в TeX и METAFONT определены стандартные коэффициенты масштабирования, называемые magstep(0)--magstep(6), образующие геометрическую прогрессию: 1, 1.2, 1.44 и т.д., естественно, также имеется способ задания произвольного масштаба.). Наконец, последнее определяет имя генерируемого шрифта.

Если программа отработает без ошибок, то она выведет на экран поочередно все символы шрифта (если найдет поддержку графики), а в log-файл --- текстовые сообщения об этом же. Для шрифта создается два файла: метрическая информация о шрифте (.tfm) и графический образ символов --- GF-файл, который имеет имя вида: cmr10.180, если ваше устройство вывода поддерживает 180 точек на дюйм. С помощью стандартной программы GFtoPK можно упаковать его:

gftopk cmr10.180
и получить из него cmr10.180pk в GNU/Linux либо cmr10.pk в M$-DOG.

Следует отметить такую деталь. При генерации dvi-файла TeX записывает в него контрольную сумму используемых шрифтов, а средства вывода dvi (программы просмотра и печати) сравнивают ее со шрифтами, доступными в момент вывода. Таким образом гарантируется полное сходство результатов работы. Поэтому, если на вас обрушивается поток сообщений о несоответствии шрифтов, либо игнорируйте их (если вы ТОЧНО знаете, что ваши шрифты являются надмножеством использованных в dvi-файле), либо замените шрифты, либо отформатируйте проблемный документ на своей машине (при этом будьте готовы, что результат может существенно отличаться от исходного).

Настройка DVI viewer'а

DVIWIN также устанавливается распаковкой архива в каталог, допустим, DVIEW. Далее нужно ее настроить. Основной пункт настройки --- указание пути к файлам шрифтов. В M$-DOG принято распределять шрифты по каталогам. Например, пусть они лежат в каталоге "DVIEW\PXL\". Значит, шрифты под разрешение 180 нужно собрать в "DVIEW\PXL\180\", и т.д. Настройка DVIWIN сводится к тому, что нужно определить в "Options/Custom Resolutions" разрешение вашего принтера, если его нет среди стандартных, и монитора (лучше будет не вычислять его точно, поскольку получите очень мелкий шрифт, а взять "с запасом", так, автор использует 132dpi при истинном разрешении монитора 96dpi). После этого нужно задать "Options/Font Directory" (к примеру, "d:\dview\pxl\$r"). Эта строка при поиске шрифта используется так: вместо $r подставляется разрешение и файл шрифта ищется в этом каталоге. (Имя каталогов не обязательно должно быть исключительно числовым, можно и так: "d:\dview\pxl\dpi$r" для имен вида "dpi180").

Остальные опций описываться не будут --- в программе хорошая справочная система. Отметим только, что если при открытии dvi-файла ничего не видно, это скорее всего из-за отсутствия нужного шрифта. Имеется возможность просмотреть протокол открытия --- в нем фиксируется, какой шрифт не найден.


Страница 1 2 3 4 5 6 <<< Предыдущая Следущая >>>


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2002 Olexandr Slobodyan.
Сайт создан в системе uCoz