Jump to content

Метрика шрифта TeX

Метрика шрифта TeX
Расширение имени файла
.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
File structure of a TFM file

Следующий стол, 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 C Y
    (CHARWD R 0.750002)
    (CHARHT R 0.683332)
    (CHARIC R 0.025)
    (COMMENT
       (KRN C e R -0.083334)
       (KRN C o R -0.083334)
       (KRN C r R -0.083334)
       (KRN C a R -0.083334)
       (KRN C A R -0.083334)
       (KRN C u R -0.083334)
       )
    )

Показанные здесь значения кернинга скопированы из другого раздела файла PL, чтобы его было легче читать, что само по себе является избыточным. Обратите внимание, что полные числовые значения констант кернинга записываются каждый раз, когда они появляются, вместо того, чтобы сохраняться один раз и ссылаться на них по гораздо меньшему индексу.

Примечания [ править ]

  1. ^ "CTAN:/tex-archive/fonts/cm/tfm/" . Комплексная сеть архивов TeX . 8 июля 1996 г. Проверено 30 июля 2006 г.
  2. ^ Кнут, Дональд Э. (февраль 2008 г.). «TFtoPL» ( исходный код WEB ; извлеките полную документацию с помощью WEAVE ) . Версия 3.2 . Проверено 31 октября 2010 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )

Ссылки [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 64bd09b046c39c6244cc1beadb57c8e4__1693134000
URL1:https://arc.ask3.ru/arc/aa/64/e4/64bd09b046c39c6244cc1beadb57c8e4.html
Заголовок, (Title) документа по адресу, URL1:
TeX font metric - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)