Метрика шрифта TeX
Эта статья нуждается в дополнительных ссылок для проверки . ( ноябрь 2009 г. ) |
Расширение имени файла |
.tfm |
---|---|
Тип интернет-СМИ | application/x-tex-tfm (неофициальный) |
Разработан | Дональд Э. Кнут |
Тип формата | шрифта метрика |
Метрика шрифта TeX ( TFM ) — это шрифта формат файла , используемый TeX системой набора текста . Это формат метрики шрифта, а не формат контурного шрифта, такой как TrueType , поскольку он предоставляет только информацию, необходимую для набора шрифта, такую как ширина, высота и глубина каждого символа. Фактические глифы хранятся в другом месте. Это не уникально для TeX; Файлы Adobe AFM и файлы Windows PFM (NTF в современном драйвере Windows PostScript ) используют один и тот же метод.
Файлы TFM содержат всю информацию, необходимую TeX для создания независимого от устройства ( DVI ) вывода. Фактические глифы затем вставляются возможным драйвером вывода DVI или средством предварительного просмотра, используя, например, шрифты TrueType или шрифты в растровом формате PK , полученном из источника METAFONT . Формат спроектирован чрезвычайно компактным: в исходном дистрибутиве Computer Modern размер TFM-файла каждого шрифта составляет менее 2 КБ. [1]
Спецификация [ править ]
Каноническая спецификация формата TFM заложена в исходный код программы TFtoPL . [2]
Файл TFM разбит на ряд четырехбайтовых слов , которые могут содержать поля данных различной длины. Любые поля данных длиной более одного байта хранятся в порядке с прямым порядком байтов . (Будет создан один и тот же файл, независимо от архитектуры компьютера, создавшего его.)
Заголовок файла из шести слов (24 байта) содержит двенадцать 16-битных целых чисел без знака, которые описывают длину файла, диапазон кодов символов, содержащихся в шрифте, и размер каждой таблицы. Один файл TFM описывает от 0 до 256 символов включительно.
Тело файла TFM состоит из десяти таблиц, каждая из которых, за исключением первой, представлена в виде массива полей фиксированной длины. 32-битное число с фиксированной запятой со знаком и 12 битами слева от десятичной точки, называемое fix_word
, интенсивно используется. Первый стол, header
, содержит контрольную сумму, предназначенную для предотвращения печати документа, скомпилированного в DVI с одним набором шрифтов, с другим набором, а также ASCII-описания схемы кодирования символов (например, ASCII
или TeX text
) и семейство шрифтов. Он также содержит размер дизайна шрифта; все следующие fix_word
Для этого значения интерпретируются как коэффициенты умножения.
![Файловая структура файла TFM](http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/TFM_file_structure.pdf/page1-220px-TFM_file_structure.pdf.jpg)
Следующий стол, char_info
, состоит из одного слова на символ и содержит индексы в таблицах ширины, высоты, глубины и корректировки курсива. Это способ сэкономить место, поскольку значения ширины, например, часто дублируются. Поскольку значения высоты и глубины дублируются чаще, чтобы уместить все эти значения в одно слово, индексы ограничены четырьмя битами. По этой причине в любом файле TFM существует ограничение в шестнадцать символов различной высоты и шестнадцать символов различной глубины. Кроме того, существует ограничение в шестьдесят четыре различных исправления курсива. Есть еще один индекс, который может указать на lig_kern
таблице, или к информации о расширяемых символах, в зависимости от двухбитного tag
ценить. Расширяемые символы используют серию повторяющихся символов для создания одного большого символа произвольного размера, обычно это большие разделители, такие как круглые или квадратные скобки.
Далее следуют четыре таблицы width
, height
, depth
и italic
, которые содержат значения (в fix_word
формате), на которые ссылаются индексы в char_info
.
Лигатуры и кернинг представляются с помощью простого языка программирования, состоящего из четырехбайтовых операций фиксированной длины в lig_kern
стол; он использует значения кернинга (заданные как fix_word
с) в kern
таблицу, следующую за ней.
Расширяемые символы указаны в exten
таблицу, используя серию четырехбайтовых слов, определяющих верхнюю, среднюю, нижнюю и повторяющиеся части расширяемого символа. Например, символ слева ниже можно получить, установив ( top
, mid
, bot
, rep
) к кодам символов для ( / , < , \ , | ). Первые три кода символов могут быть установлены на ноль. Например, если mid
были установлены в 0 в предыдущем примере, результат изменится с фигурной скобки, нарисованной слева, на круглую скобку, нарисованную справа от нее.
/ / | | | | < | | | | | \ \
Конечно, в шрифте для этого будут использоваться специально разработанные символы, а не повторное использование существующих, но принцип тот же.
Финальный стол, param
, содержит ряд специально определенных fix_word
шрифта по оси значения, включая высоту X и величину наклона курсива (чтобы определить, насколько далеко нужно сместить акценты). Некоторые схемы кодирования, такие как TeX math symbols
и TeX math extension
определить дополнительные параметры, которые появляются после них.
Списки недвижимости [ править ]
Существует удобочитаемый эквивалент формата TFM, называемый PL , для списка свойств. Между файлом TFM и файлом PL существует точное соответствие: один можно свободно конвертировать в другой и обратно без потери информации с помощью tftopl
и pltotf
программы. Формат PL, оптимизированный для удобства использования, а не для пространства, не использует ссылки так же, как формат TFM. Например, многие символы в шрифте могут использовать одну и ту же ширину символа, которая будет представлена только один раз в формате TFM, и на это значение будет ссылаться каждый символ, поскольку индекс будет значительно меньше, чем числовое значение полной точности. . Однако в формате PL полное значение записывается каждый раз, когда оно появляется.
Например, это код заглавной буквы Y в компьютерном современном римском языке , десять пунктов:
( CHARACTER CY (
( CHARWD R 0,750002 )
( CHARHT R 0,683332 )
( CHARIC R 0,025 )
( КОММЕНТАРИЙ
( KRN C e R -0,083334 )
( KRN C o R -0,083334 )
( KRN C r R -0,083334 )
KRN C a R -0.083334 )
( КРН ЦАР -0.083334 )
( КРН Ц у Р -0.083334 )
)
)
Значения кернинга, показанные здесь, скопированы из другого раздела файла PL, чтобы их было легче читать, что само по себе является избыточным. Обратите внимание, что полные числовые значения констант кернинга записываются каждый раз, когда они появляются, вместо того, чтобы сохраняться один раз и ссылаться на них по гораздо меньшему индексу.
Примечания [ править ]
- ^ "CTAN:/tex-archive/fonts/cm/tfm/" . Комплексная сеть архивов TeX . 8 июля 1996 г. Проверено 30 июля 2006 г.
- ^ Кнут, Дональд Э. (февраль 2008 г.). «TFtoPL» ( исходный код WEB ; извлеките полную документацию с помощью WEAVE ) . Версия 3.2 . Проверено 31 октября 2010 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь )
Ссылки [ править ]
- Фукс, Дэвид (февраль 1981 г.). «Файлы метрик шрифтов TeX» (PDF) . БУКСИР . 2 (1): 12–16 . Проверено 20 августа 2009 г.