Если локальные и глобальные индексы Subr в OpenType в основном являются повторно используемыми компонентами

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

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

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

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

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


person user10869858    schedule 17.01.2019    source источник
comment
просто опубликуйте его в разделе технологии шрифтов. Единственное, для чего я нашел документы Type1 нужными, это понять, для чего нужны синие зоны, а затем быстро уйти. Таким образом, они не имеют значения, что объясняет, почему документы Type2 не охватывают их: они имеют значение только для устаревших систем, а не для обычных современных движков, совместимых с OpenType. Технические заметки CFF/Type2 объясняют все остальное, включая формат DICT, а документы CFF2 объясняют, какие биты Type2 были удалены (наконец-то).   -  person Mike 'Pomax' Kamermans    schedule 18.01.2019


Ответы (1)


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

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

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

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

person Mike 'Pomax' Kamermans    schedule 18.01.2019