Работа в системе LaTeX

       

METAFONT-шрифты.


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

В комплект шрифтов AMS (Американского математического общества), распространяемый практически со всеми версиями TeX'а, входят шрифты, разработанные в Humanities and Arts Computing Center, University of Washington (в 1989 году). Эти шрифты использовались в различных публикациях AMS (в основном — для печати русских названий статей и книг в списках литературы). Вот образец шрифта wncyr10}:


Эти шрифты, если можно так выразиться, "импортные". Первыми " отечественными" русскими METAFONT-шрифтами, кажется, были шрифты, разработанные в Институте физики высоких энергий (Протвино) при участии Наны Глонти и Александра Самарина (их иногда называют шрифтами Глонти). Вот образец шрифта cmcyr10} (взят с сервера ftp.dante.de})


Эти шрифты (с небольшими изменениями отдельных букв, сделанными в основном А.Шенем) были использованы при подготовке этой книги. Приведем их (с этими изменениями) в том же масштабе:


Наконец, Ольга Лапко и Андрей Ходулев разработали шрифты, получившие название "LH-шрифтов". Многие считают, что из различных METAFONT-продолжений шрифта Computer Modern именно эти шрифты обладают наиболее высоким качеством. Кроме того, они включают в себя большой набор символов самых разных языков на кириллической основе. Можно надеяться, что они в будущем окончательно стабилизируются (пока что новые версии выходят довольно часто) и будут в разных версиях TeX'а столь же стандартны, как сейчас шрифты Кнута. (Уже сейчас LH-шрифты входят в большинство дистрибутивов TeX'а, обычно в не самых последних версиях. Впрочем, дело осложняется тем, что авторами этих шрифтов предусмотрено много разных версий для разных кодировок, причем они генерируются "на лету" с использованием довольно хитроумных и не везде работающих механизмов.)


Вот как выглядят русские буквы в этих шрифтах:



Разница между этими четырьмя образцами заметна, если приглядеться внимательно. (Обратите внимание на буквы "Л", " Д" и "Э".)

К шрифтам второй категории относятся шрифты, авторы которых не стремились следовать стилю Computer Modern.

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



Видно, что общие для латинского и русского алфавита буквы имеют несколько разные начертания (латинские буквы не изменились по сравнению с оригинальными шрифтами Computer Modern Кнута)

Были предприняты также попытки изготовить METAFONT-файлы на основе других популярных гарнитур. Часть полученных таким образом шрифтов также вошли в использованную при подготовке этой книги русификацию. Вот образцы этих шрифтов:



Завершая разговор о METAFONT-шрифтах, отметим, что существует (не вполне завершенный) набор программ ps4mf (подробную информацию можно найти на сервере ftp.dante.de), который позволяет полуавтоматически изготавливать METAFONT-шрифты из Type 1 шрифтов. Однако получающиеся шрифты плохо приспособлены к печати при низких и средних разрешениях (например, для 300 dpi). Дело в том, что и METAFONT, и Type 1 предусматривают задание границ букв в виде кусочно-гладких кривых, и эти кривые легко перевести из одного формата в другой с минимальными изменениями. Проблема в том, что при переводе шрифтов в черно-белую матрицу кривые подвергаются округлению с неизбежными погрешностями. Если, скажем, ширина вертикальной палочки в букве "Ш" не есть точное кратное размера точки, то может случиться, что три палочки (которые имеют одну и ту же ширину в точном представлении) при округлении приобретут разную ширину.


Кроме того, из- за того же округления буква "Ш" может потерять осевую симмметрию, что нежелательно. Эта проблема существует и для METAFONT'а, и для Type 1, но решается по-разному. Язык METAFONT предоставляет автору шрифтов возможности самому влиять на округление так, как он этого пожелает. В шрифтах Type 1 используются указания особого вида (hints), которые побуждают интерпретатор PostScript'а производить округления так, как это хотелось автору шрифта. При этом формат и интерпретация этих указаний — дело довольно сложное, и без потерь в METAFONT они не переводятся.

Обратный перевод (из METAFONT'а в Type 1) сталкивается не только с проблемой округления, но и с тем, что в METAFONT'е (который представляет собой язык программирования) есть разнообразные средства описания шрифтов, а не только описание контуров. На практике, изготавливая Type 1 шрифты из METAFONT-шрифтов, сначала изготавливают матрицы букв в высоком разрешении, после чего применяют программы, восстанавливающие границы кривых, и добавляют указания (hints) вручную или полуавтоматически.


Содержание раздела