Эта статья требует дополнительных ссылок для проверки . ( ноябрь 2009 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Расширение имени файла | .tfm |
---|---|
Тип интернет-СМИ | application/x-tex-tfm (неофициальный) |
Разработан | Дональд Э. Кнут |
Тип формата | метрика шрифта |
Метрика шрифта TeX ( TFM ) - это формат файла шрифта , используемый системой набора текста TeX . Это метрический формат шрифта, а не формат шрифта контура, такой как TrueType , поскольку он предоставляет только информацию, необходимую для набора шрифта, такую как ширина, высота и глубина каждого символа. Фактические глифы хранятся в другом месте. Это не уникально для TeX; Файлы Adobe AFM и файлы PFM Windows ( 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 битами слева от десятичной точки, называемое a fix_word
, широко используется. Первая таблица header
содержит контрольную сумму, предназначенную для предотвращения печати документа, скомпилированного в DVI с одним набором шрифтов, с другим набором, а также описания ASCII схемы кодирования символов (например, ASCII
или TeX text
) и семейства шрифтов. Он также содержит размер шрифта; все следующие fix_word
значения интерпретируются как коэффициенты умножения для этого.
Следующая таблица char_info
состоит из одного слова на символ и содержит индексы в таблицах ширины, высоты, глубины и курсивной коррекции. Это устройство для экономии места, потому что, например, значения ширины часто дублируются. Поскольку значения высоты и глубины дублируются чаще, чтобы вместить все эти значения в одно слово, индексы ограничены четырьмя битами. Из-за этого существует ограничение в шестнадцать различных высот символов и шестнадцать различных значений глубины символов в любом заданном файле TFM. Кроме того, существует не более шестидесяти четырех различных курсивных исправлений. Также есть еще один индекс, который может указывать на lig_kern
таблицу или на информацию о расширяемых символах, в зависимости от двухбитовогоtag
ценить. Расширяемые символы используют серию повторяющихся символов для создания одного большого символа произвольного размера, обычно это большие разделители, такие как круглые или квадратные скобки.
Там затем следует четыре стола width
, height
, depth
и italic
, которые содержат значение (в fix_word
формате) называют индексами в char_info
.
Лигатуры и кернинг представлены с помощью простого языка программирования, состоящего из четырехбайтовых операций фиксированной длины в lig_kern
таблице; он использует значения кернинга (указанные как fix_word
s) в следующей за ним 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 в Computer Modern Roman , десять пунктов:
(ХАРАКТЕР CY (CHARWD 0,750002) (CHARHT R 0.683332) (CHARIC R 0,025) (КОММЕНТАРИЙ (КРН Ц е Р -0,083334) (KRN C o R -0.083334) (КРН Ц р Р -0.083334) (КРН Ц и Р -0,083334) (КРН АВТО -0.083334) (КРН ТУ Р -0.083334) ) )
Показанные здесь значения кернинга скопированы из другого раздела файла PL для облегчения чтения, что само по себе является избыточным. Обратите внимание, как полные числовые значения констант кернинга записываются каждый раз, когда они появляются, вместо того, чтобы сохранять один раз и ссылаться на гораздо меньший индекс.
Заметки [ править ]
- ^ "CTAN: / tex-archive / fonts / cm / tfm /" . Комплексная сеть архивов TeX . 1996-07-08 . Проверено 30 июля 2006 .
- ^ Кнут, Дональд Э. (февраль 2008 г.). "TFtoPL" ( исходный WEB- код; извлеките полную документацию с помощью WEAVE ) . Версия 3.2 . Проверено 31 октября 2010 . Цитировать журнал требует
|journal=
( помощь )
Ссылки [ править ]
- Фукс, Дэвид (февраль 1981). «Файлы TeX Font Metric» (PDF) . ТУГбоат . 2 (1): 12–16 . Проверено 20 августа 2009 .
Внешние ссылки [ править ]
- Описание формата файла TFM