Если локальные и глобальные индексы Subr в OpenType являются в основном компонентами многократного использования - PullRequest
0 голосов
/ 17 января 2019

Я не могу сказать из описания для таблицы CFF2 , но, похоже, предполагается, что ваш шрифт может иметь компоненты многократного использования.

Подпрограмма («subr») обычно представляет собой последовательность байтов CharString, представляющих подпрограмму , которая используется в более чем одном месте в данных CharString шрифта. Subr может быть сохранен один раз, но во многих случаях на него ссылаются из одной или нескольких CharStrings с помощью оператора вызова-подпрограммы, который принимает в качестве операнда номер вызываемого subr.

Мой вопрос заключается в том, что именно это такое, и если это означает, что вы можете определить CharString как модуль или компонент в основном, что уменьшит размер файла шрифта и сделает вещи более изысканными.

Если это так, мне интересно, какова цель использования локальных и глобальных подпрограмм. Я не вижу преимущества для такого уровня изоляции, если речь идет только о модульности.

Хм, наверное, это то, что описано в главе 8 . Просто хочу уточнить.

1 Ответ

0 голосов
/ 18 января 2019

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

Кроме того, существует глобальное и локальное различие как для увеличения сжатия, так и для организации подпрограммы: если вы упорядочили данные шрифта CFF / CFF2 по нескольким объектам DICT, тогда процедура подпрограммы может состоять из первого выполнения глобального прохода. , чтобы найти все байтовые подстроки, совместно используемые глифами из всех слов в шрифте, и затем вы можете дополнительно сжать каждый DICT отдельно на основе подстрок только в этих структурах DICT.

Также обратите внимание, что спецификация Type1 на данный момент совершенно бессмысленна: шрифты Type1 устарели много лет назад, и даже Adobe больше не делает их (на самом деле, они очень активно переключили все свои шрифты на Type2, когда эта спецификация была завершена) ). Для получения консультации по спецификациям вам понадобятся "формат компактного шрифта" и "формат тип2 Charstring" технические примечания, а также документация OpenType 1.8 о различиях между CFF2 и новым форматом Charstring CFF2. .

Вы также, вероятно, захотите задавать подобные вопросы снова на http://typedrawers.com, а не в будущем, который является специальным пространством, где типографы и инженеры типографии тусуются для вопросов и ответов.

...