Добавление фонтов к TeX и LaTeX является довольно сложной процедурой. Однако, как и во многих других вещах, все просто, если Вы знаете, как это сделать. Некоторые фонты распространяются в формате Метафонт, а некоторые - в формате Type1. Обычно, фонты формата Type1 более доступны. Однако фонты Метафонт имеют то очевидное преимущество, что они меняют форму изображения в соответствии с размером, в то время как фонты Type1 и TrueType при различных размерах просто увеличивают или уменьшают изображения символов, не изменяя формы. Главная причина того, что это качество желательно, состоит в том, что в идеале шрифт должен быть (относительно) узким при больших размерах и более широким при малых размерах.
В нижеследующем изложении мы сконцентрируем внимание на фонтах Type1, поскольку они более доступны и порождают больше проблем при инсталляции.
Вот небольшой обзор файлов фонтов в LaTeX. LaTeX использует следующие типы файлов при обработке фонтов Type1:
.pl
-- список свойств (property list).
Это версия файла метрик фонта для tex, приспособленная для чтения человеком..vpl
-- виртуальный список свойств (virtual property list).
Ориентированная на чтение человеком версия виртуального файла фонта.
.fd
-- определение фонта (font definition). Используется для
задания семейства фонтов.
.tfm
-- метрика фонта tex (tex font metric). Это файл метрик,
как это объясняется в глоссарии. Этот файл полностью аналогичен файлу .afm
,
используемому для фонтов типа Type1. TeX нуждается в файле метрик для того, чтобы
правильно расположить текст на странице.
.vf
-- виртуальный фонт (virtual font). Эти файлы содержат детали
кодирования и действуют как интерпретаторы. TeX обращается с ними как с фонтами.
Например, представьте, что существует некий фонт foobar-exp.pfb, который состоит
из небольшого числа (скажем 20) альтернативных символов, и имеется виртуальный фонт,
который использует некоторые из этих альтернативных символов (и использует
остальные символы из фонта foobar.pfb). Dvips может сказать "Мне нужен
символ 65 из виртуального фонта foo.vf". Dvips знает, что 65 всегда соответствует
"a" в схеме TeX. Тогда виртуальный фонт переадресует запрос TeX'а в запрос символа
14 в фонте foobar.pfb типа Type1 (который может замещать "a" в Type1 фонте foobar.pfb).
Механизм виртуальных фонтов очень гибок и позволяет конструировать фонт из нескольких
различных файлов фонтов. Это очень полезно, когда используются такие фонты как
фонты "expert" от Adobe.
.pk
-- аппаратно-зависимый растровый (bitmap) фонт. Эти фонты
обычно конструируются по мере необходимости (они содержат готовые изображения
символов, создаваемые с помощью фонтов Type1 и метафонта). Они обычно имеют
высокое разрешение (около 300-1200dpi) и предназначены для того, чтобы организовать
вывод на принтер. Из-за высокого разрешения и того факта, что для вывода символов
каждого размера требуется .pk
-файл, они требуют очень много дискового
пространства, поэтому обычно сохраняются в кэше, а не записываются на диск.
.mf
-- файлы метафонтов (metafont files). Метафонт - это
язык программирования графики (a graphics programming language), широко используемый
для создания фонтов (хотя он может быть использован для любой графики).
Он имеет много преимуществ по сравнению со схемами, использованными в TrueType и
Type1. Его главной слабостью является то, что он не так вездесущ, как TrueType или
Type1 (и он не очень хорош для WYSIWYG-приложений. Конечно, это главный недостаток,
если Вы используете для печати TeX.)
Неплохо знать кое-что о структуре каталогов TeX. Основные каталоги, о которых Вы дожны знать, следующие:
$TEXMF/fonts
-- главный каталог для фонтов$TEXMF/fonts/type1
-- директория для фонтов type1$TEXMF/fonts/type1/foundry
-- каталог для файлов фонтов от конкретного
производителя (foundry)$TEXMF/fonts/type1/foundry/fontname
-- содержит фонт с именем
name. Это имя (name) обычно представляет собой произвольное английское
название и не обязано следовать довольно загадочной схеме формирования имен фонтов,
принятой в TeX.$TEXMF/fonts/afm/foundry/fontname
-- каталог, содержащий
afm
-файлы, соответствующие фонту name
, принадлежащему
производителю foundry
.$TEXMF/fonts/tfm/foundry/fontname
-- аналогичный каталог,
содержащий файлы tfm
(вместо afm
-файлов).$TEXMF/fonts/vf/foundry/fontname
-- аналогичный каталог для виртуальных
фонтов.
$TEXMF/fonts/source/foundry/fontname
-- аналогичный каталог, содержащий
файлы метафонта.$TEXMF/dvips/config/psfonts.map
-- файл, определяющий соответствия
между названиями фонтов и именами файлов, содержащими эти фонты, для dvips. Этот
файл по своим функциям и структуре подобен файлу Fontmap из пакета ghostscript.$TEXMF/tex/latex/psnfss
-- здесь находятся все файлы определений
фонтов (.fd).
Во-первых, Вы должны соответствующим образом назвать Ваши фонты.
Инструкции о том, как именуются фонты, ищите в документации на fontinst
в Вашей системе (она должна находиться в подкаталоге fontinst каталога,
содержащего документацию по tetex). Очень кратко схема именования
фонтов такова:
FNW{V}E{N}
где:
8a
, что означает
стандартную схему кодирования adobe).pgad8a
.
Теперь Вы можете запустить fontinst
следующим образом:
latex `kpsewhich fontinst.sty`после чего ввести на запрос программы:
\latinfamily{font_name}{}\byeгде
font_name
- это три первых буквы имени файла Вашего фонта
(например, pad
для adobe garamond).
После этого fontinst
создаст множество файлов --
файлы описания фонта, файлы списка свойств и файлы виртуальных списков свойств.
Будет сгенерировано также множество .mtx
-файлов. Они создаются
программой fontinst
, но Вам нет необходимости использовать их.
Вам необходимо конвертировать списки свойств и виртуальные списки свойств в
метрики и виртуальные фонты. Это делается с помощью утилит
vptovf
и pltotf
.
for X in *.pl; do pltotf $X; done for X in *.vpl; do vptovf $X; doneЗатем удалите старые
vpl
, pl
и mtx
файлы.
Вы должны отредактировать конфигурационный файл dvips, psfonts.map
.
Лучший способ объяснить формат файла - это привести пример.
marr8r ArialMT <8r.enc <farr8a.pfa marbi8r Arial_BoldItalicMT <8r.enc <farbi8a.pfa marb8r Arial_BoldMT <8r.enc <farb8a.pfa marri8r Arial_ItalicMT <8r.enc <farri8a.pfa marr8rn Arial_Narrow <8r.enc <farr8an.pfaЗдесь
8r.enc
служит просто для информирования dvips об используемой
схеме кодирования (во всех наших примерах это 8r, в силу способа, которым
fontinst
конструирует виртуальные фонты). Самый левый столбец -
это имя фонта, который использует TeX. Второй столбец - это реальное имя фонта,
которое содержащееся в файле фонта (это имя можно узнать, открыв afm
-файл
в текстовом редакторе и найдя директиву FontName
). Последний столбец
это имя файла контуров, соответствующего данному фонту. Указывать имя каталога
нет необходимости -- tex знает, где искать.
Попытайтесь запустить latex на документе следующим образом:
\documentclass{article} \begin{document} \usefont{T1}{pga}{m}{n}\selectfont \huge Testing a new font \dots the quick red fox jumped over the lazy brown dogs \end{document}где нужно заменить
pga
на указание на Ваш фонт. Если это работает,
Вы почти у цели. Все, что Вам еще необходимо сделать - это разместить все файлы
в соответствующих каталогах (как это объяснено выше), после чего запустить
run
texconfig rehashс тем, чтобы tex мог обновить список каталогов.
Вы можете создать файл .sty для того, чтобы легче было использовать фонты.
Используйте в качестве образцов (или шаблонов) файлы из
$TEXMF/tex/latex/psnfss
.