18c0693f

Подключение шрифтов и fd-файлы.


Итак, мы знаем, что имеются пять (вообще говоря) независимых атрибутов шрифта. Все эти атрибуты можно увидеть в сообщении об overfull'е (см. 116). Именно, там присутствует последовательность символов \OT1/cmr/m/n/10.95, в которой перечислены, через косую черту, атрибуты текущего шрифта (кодировка, семейство, насыщенность, начертание, размер). Их можно менять независимо.

При этом само по себе задание атрибутов с помощью этих команд шрифта еще не меняет: чтобы шрифт действительно сменился, надо сначала задать одну или несколько приведенных выше команд, меняющих атрибуты, но непосредственно после них необходимо дать еще команду \selectfont.


Через эти команды выражаются и команды более высокого уровня (скажем, \textbf или \emph). Например, \normalfont) в стандартных классах задается по существу так:

\newcommand*{\normalfont}{% \fontencoding{OT1}\fontfamily{cmr}% \fontseries{m}\fontshape{n}% \selectfont } Остается объяснить, как проинформировать LaTeX, какие шрифты соответствуют тем или иным комбинациям атрибутов. Это делается с помощью специального файла с расширением fd. Вот, например, файл, который (в использованной нами русификации) подключает шрифты типа гельветика.

\ProvidesFile{ot1zhr.fd} [Quasi Helvetica font definitions] \DeclareFontFamily{OT1}{zhr}{} \DeclareFontShape{OT1}{zhr}{m}{n} { <5> <6> <7> <8> zhr5 <9> <10> <10.95> zhr10 <12> <14.4> zhr12 <17.28><20.74><24.88> zhr12}{} \DeclareFontShape{OT1}{zhr}{b}{n} { <5> <6> <7> <8> <9> <10> <12> <10.95> <14.4> <17.28> <20.74> <24.88> zhb10}{} \DeclareFontShape{OT1}{zhr}{bx}{n} { <5> <6> <7> <8> <9> <10> <12> <10.95> <14.4> <17.28> <20.74> <24.88> zhbx10}{} \DeclareFontShape{OT1}{zhr}{m}{sl} { <5> <6> <7> <8> <9> <10> <12> <10.95> <14.4> <17.28> <20.74> <24.88> zhsl10}{} \DeclareFontShape{OT1}{zhr}{m}{it}{ <-> sub * zhr/m/sl }{} Сначала говорится, что определяется семейство zhr в кодировке OT1. (Что не вполне верно, так как в OT1 никаких русских букв нет.) Затем объясняется, что надо использовать в качестве светлых шрифтов прямого (не курсивного) начертания: шрифты zhr5, zhr10, zhr12 (выбор зависит от размера нужного шрифта, указанного в угловых скобках). Затем объясняется, что надо использовать в качестве полужирных ( bx) и наклонных ( sl) шрифтов. Наконец, в последней строке говорится, что (по причине отсутствия курсива в шрифтах типа гельветика) вместо курсива ( it) надо пользоваться наклонным ( sl) шрифтом.



Как видите, ничего сложного в подключении нового семейства нет, если внутренняя кодировка шрифтов совпадает с кодировкой семейства, для которого они применяются. Если же нет, то нужно изготавливать виртуальные шрифты, описание чего выходит за рамки этой книги (есть по крайней мере два способа: один описан в документации к драйверу dvips, второй содержится в пакете fontinst).

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

Может, попробуете?

  1)   Строго говоря, нельзя называть эту гарнитуру " Times", поскольку она лишь очень напоминает гарнитуру Times, но во избежание юридических проблем так не называется. Мы опускаем подобные оговорки в дальнейшем.
  2)   Впрочем, не всё так просто. Например, посмотрев на сайт www.paratype.com}, можно обнаружить разные типы лицензий. Одни ограничивают число принтеров, на которых можно печатать полученные файлы (тем самым, скажем, переслать статью с этими шрифтами коллегам уже нельзя), другие (лицензия на одну публикацию) требуют покупать отдельную лицензию на каждую статью и т.п. Вряд ли даже законопослушные пользователи станут широко использовать шрифты с такими лицензиями.
  3)   Недавно появились предназначенные для свободного распространения шрифты В.Филиппова, дополняющие упомянутые выше URW-шрифты русскими буквами; видимо, работа над ними еще не закончена. См. ftp://ftp.gnome.ru/fonts/urw}.