© 1997–2019 Adobe.
Настоящим дано разрешение предоставляется бесплатно любому лицу, получающему копию этого файла документации для использования, копирования, публикации, распределения, сублицензии и/или продажи копий документации и позволить другим делать то же самое, при условии, что::
Модификация, редактирование или другое изменение этого документа не допускается; и
Приведенное выше уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии документации.
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого файла документации, для создания своих собственных производных работ из содержания этого документа для использования, копирования, публикации, распределения, сублицензии и/или продажи производных работ и разрешения другим делать то же самое, при условии, что полученная работа не представляется как копия или версия этого документа.
Adobe не несет ответственности перед какой -либо стороной за любую потерю доходов или прибыли или за косвенные, случайные, специальные, косвенные или другие аналогичные убытки, основанные на деликте (включая, помимо прочего, халатность или строгую ответственность), договорные или другие юридические или справедливые основания, даже если Adobe сообщили или имели основания узнать о возможности такого ущерба. Материалы Adobe предоставляются на основе «как есть». Adobe, в частности, отказывается от всех явных, уставных или подразумеваемых гарантий, связанных с садовыми материалами, включая, помимо прочего, те, которые касаются товарной пригодности или пригодности для определенной цели или отсутствия нарушения каких-либо прав сторонних материалов в отношении материалов Adobe.
Adobe не имеет патентов на предмет этой спецификации.
Документ версия 2.9. Последнее обновление 21 августа 2019 г.
Цель спецификации списка Adobe Glyph - описать вычисление строки симвода Unicode из последовательности имен глифов. Это достигается путем указания отображения от имен глифов в строки символов Unicode.
Картирование предназначено для преобразования последовательности имен глифов в простой текст, сохраняя при этом основную семантику. Например, имя глифа для «A», название глифа для «Маленького капитала A» и имя глифа для варианта «А» будет сопоставлен с одним и тем же УФ ( значение Unicode ). Это полезно при копировании текста в некоторых средах, а также полезно для выполнения текстовых поисков, которые будут соответствовать всем именам глифов в исходной строке, которые соответствуют «A».
Он выходит за рамки этой спецификации, чтобы определить набор законных имен глифов. Имена глифов встречаются во многих различных контекстах, каждый из которых имеет свое собственное определение того, что представляет собой законное имя. Эта спецификация предполагает только то, что имя глифа соответствует произвольно конечной последовательности символов Unicode.
Спецификация состоит из AGL ( список Adobe Glyph ), который обеспечивает отображение определенных имен глифов с значениями Unicode, а также правилам разложения и интерпретации имен глифов. Поскольку ожидается, что эта спецификация будет реализована во многих частях программного обеспечения, и что пересмотр всех реализаций, которые его используют, маловероятно, эта спецификация предназначена для стабильной, то есть ее никогда не следует пересмотреть существенным образом. В частности, предназначено, что никаких сопоставлений не будет добавлено в AGL. Кроме того, AGL не предназначен для того, чтобы служить руководством по выбору имен глифов для новых шрифтов. Для этого существует AGLFN ( список Adobe Glyph для новых шрифтов ) (см. Раздел 6).
Эта спецификация поддерживает полный диапазон скалярных значений Unicode, U+0000 через U+10FFFF. Это не зависит от репертуара персонажа конкретной версии Unicode; Таким образом, это применимо к прошлым, текущему и будущим версиям стандарта Unicode.
Производителям шрифтов настоятельно рекомендуется уважать эту спецификацию при названии глифов для своих шрифтов. Потребителям шрифтов рекомендуется следовать этой спецификации при попытке получить контент из имен глифов.
Чтобы отобразить имя глифа на строку символа, выполните три шага ниже:
Отбросьте все символы с имени глифа, начиная с первого возникновения периода (полная остановка U+002E), если таковые имеются.
Разделите оставшуюся строку на последовательность компонентов, используя подчеркивание (U+005F Low Line) в качестве разделителя.
Сопоставьте каждый компонент по строке символа в соответствии с процедурой ниже, и объедините эти строки; Результатом является строка символов, на которую наносится имя глифа.
Если шрифт - ZAPF Dingbats (PostScript fontName: Zapfdingbats ), а компонент находится в списке глифа Zapf Dingbats , то сопоставьте его с соответствующим символом в этом списке.
В противном случае, если компонент находится в AGL, то сопоставьте его с соответствующим символом в этом списке.
В противном случае, если компонент имеет форму 'Uni' (U+0075, U+006E и U+0069), за которой следует последовательность шестнадцатеричных цифр (0–9 и A - F, что означает U+0030 - U+0039 и u+0041 - u+004, если по -прежнему, если по -прежнему, и четыре, и, если я расто Диапазоны от 0000 по D7FF или E000 через FFFF, затем интерпретируйте каждое как скалярное значение Unicode и сопоставьте компонент по строке, изготовленной из этих скалярных значений. Обратите внимание, что ограничения диапазона и длины цифры означают, что префикс имени глифа Uni 'может использоваться только с УФ в основной многоязычной плоскости (BMP).
В противном случае, если компонент имеет форму «u» (U+0075)), за которой следует последовательность от четырех до шести шестнадцатеричных цифр прописхи. Сопоставьте компонент по строке, изготовленной из этого скалярного значения.
В противном случае сопоставьте компонент на пустую строку.
Название «LcommaAccent» имеет единый компонент, который сопоставлен с строкой U+013b по AGL.
Название «Uni20AC0308» имеет единый компонент, который отображается по строке U+20AC U+0308.
Имя «U1040C» имеет единый компонент, который сопоставлен с строкой U+1040C.
Имя «Unid801dc0c» имеет один компонент, который сопоставлен с пустой строкой. Ни D801, ни DC0C не находятся в соответствующем наборе. Эта форма не может быть использована для картирования символа, который выражается как D801 DC0C в UTF-16, в частности U+1040C. Этот символ может быть правильно отображен с помощью имени глифа «U1040C».
Название «Uni20ac» имеет единый компонент, который сопоставлен с пустой строкой (обратите внимание на строчные «a» и «c»).
Название «lcommaAccent_uni20AC0308_U1040C.Alternate» имеет три компонента, которые являются «LcommaAccent», «UNI20AC0308» и «U1040C». Он сопоставлен с строкой U+013B U+20AC U+0308 U+1040C.
Как правило, несколько имен могут быть сопоставлены с одной и той же строкой. Например, компоненты «lcommamaaccent», «uni013b» и «u013b» - все карту по строке u+013b.
Имя «foo» отображает пустую строку, потому что «foo» не в AGL, и потому что оно не начинается с «u».
Имя «.NOTDEF» сводится к пустой строке на первом шаге и отображается по пустой строке с помощью последнего пункта третьего шага.
Эта спецификация поддерживает отображение имен глифов с строками, которые содержат значения PUA. Например, имена «Ogoneksmall» и «Unif6fb» отображают строку, которая соответствует U+F6FB.
Эта спецификация не включает, не подразумевает и не предполагает какого -либо конкретного использования PUA; Это просто разрешает именование глифов так, что восстановленные строки символов включают точки кода PUA. Производители и потребители Glyph имена Glyph и названия Glyph, чтобы установить соглашение об использовании PUA.
Разработчики шрифтов должны отметить, что установление настоящего Соглашения с пользователями шрифтов общего назначения может быть затруднено. Вполне вероятно, что не все инструменты, манипулирующие строками персонажа, построенные от имен глифов, правильно реализуют использование PUA, и это может привести к неверной или неожиданной функциональности. Поэтому для шрифтов общего назначения рекомендуется, чтобы все имена глифов конвертировали в строки, которые не содержат кодовых точек PUA.
Эта спецификация развивалась с течением времени. Пожалуйста, обратитесь к разделу 7 ( изменения документа ) для изменений.
Для глифов, которые соответствуют символам в стандарте Unicode, рекомендуется указывать имена, используя префикс «Uni» для символов в основной многоязычной плоскости (BMP) и более короткого префикса «U» для символов в 16 дополнительных плоскостях, согласно правилам в разделе 2.
Это не означает, что шрифты недействительны, если они сделаны без использования префиксов «Uni» и «U» для своих имен глифов. За одной группой исключений все имена глифов в AGL в настоящее время работают во всех известных средах, а также именах с префиксом «Uni». Исключениями являются имена Glyph AGL, которые связаны с точками кода PUA. К ним относятся все начальники и имена маленьких матчей. Использование этих имен, с целью поиска текста, приведет к некоторым текущим реализациям, чтобы отобразить имена, такие как «Asmall», к значению PUA, указанному в AGL, а не к УФ для «A». Теперь мы рекомендуем назвать эти глифы в соответствии с правилами, указанными в этом разделе. Подмножество AGL, которое исключает имена, связанные с PUA, предоставляется AGLFN ( список Adobe Glyph для новых шрифтов ).
Если несколько глифов в шрифте представляют один и тот же символ в стандарте Unicode, таких как «A» и «A.Swash», их можно дифференцировать, используя одно и то же базовое имя с разными суффиксами. Суффикс (часть имени глифа, который следует за первым периодом) не участвует в вычислении последовательности символов. Он может использоваться дизайнерами шрифтов для указания особых характеристик глифа. Суффикс может содержать периоды или любые другие разрешенные символы. Например, небольшая крышка «A» может быть названа «Uni0041.Sc» или «A.Sc».
Если существует несколько вариантов одного и того же базового глифа, то варианты суффиксов должны включать цифры с фиксированной длиной с нулевой массой, чтобы, если и когда имена глифов отсортированы, предполагаемый порядок может быть сохранен. Например, если Glyph «Ampersand» имеет 23 альтернативных форм, они будут названы «ampersand.alt01» через «ampersand.alt23», а не «ampersand.alt» вместе с «ampersand.alt1» через «ampersand.alt22». Это правило обеспечивает лишь незначительное удобство для разработки и тестирования шрифтов. Как отмечалось выше, эти суффиксы имени глифа не участвуют в вычислении последовательности символов.
Эта спецификация не стандартизирует ни один из суффиксов. Любой произвольный суффикс будет работать в целях поиска текста. Для удобства во время разработки и тестирования Adobe использует наиболее подходящее имя функции макета OpenType в качестве суффикса. Например, небольшая крышка «A» может быть названа «A.Smcp», начальной формой «A.Init», окончательной формой «A.Fina» и формой подарков «A.SWSH». Если есть дополнительные формы подарков, их можно назвать «a.swsh1», «a.swsh2» и так далее. Ниже приведены примеры суффиксов, используемых в шрифтах Adobe:
Для глифов, которые не соответствуют какому -либо символу в стандарте Unicode, имя не будет иметь никакой технической полезности. Любое имя может быть назначено, если имя не будет интерпретироваться как имеющее семантическое значение в соответствии с правилами в этом документе. Практика команды по разработке типов в Adobe заключается в том, что если есть какой -либо полезный описательный тег для глифа, назовите его соответственно, например, «мышь», «Signforsale», «Christmastreeball12» и так далее. В противном случае назовите его как вариант «Orn» (короткий для орнамента), например, «Orn001», «Orn123» и так далее.
Для глифов, которые представляют лигатуры стандартных символов Unicode, есть два предложенных формата для их имен глифов следующим образом:
Описательное разложение выражается путем присоединения к именам глифов стандартных символов Unicode, чтобы использовать подчеркивание (U+005F Low Line). Имена глифов символов должны указывать префиксы «Uni» или «U» и использовать шестнадцатеричные цифры верхних данных, как описано выше, или с именем из AGL. Например, лигатура «Off I» следует назвать «O_F_F_I».
UV с префиксом «Uni». Имя глифа выражается в виде префикса «Uni», за которым следует две или более последовательности из четырех шестнадцатеричных цифр верхней передачи. Каждая последовательность из четырех шестнадцатеричных цифр в верхней передаче указывает на скалярное значение Unicode в BMP. Например, символьная латинская столичная буква EZH с окружным и могилом, которого нет в Unicode, следует назвать «UNI01B703020300», потому что латинская столичная буква EZH - это U+01B7, комбинируя акцент на окружности - это U+0302, а комбинирование могилы - U+0300. Лигатура глифов по имени «T.Swash» и «H» может быть названа «t_h.swash». «T.swash_h» будет неверным, потому что это будет интерпретироваться как глифический вариант «t». Все имена глифов подвержены ограничению длины 63 символов и требуют, чтобы они были полностью составлены из символов из следующего набора: a-z, a-z, 0–9, '.' (период; U+002e полная остановка) и '_' (подчеркивается; U+005f низкая линия). Некоторые более старые реализации могут наложить ограничение длины 31 символа.
Краткий обзор некоторых прошлых вопросов реализации и последующих ограничений на имена глифов приведен в документе именах глифов и текущих реализаций (на основе версии 1.1 от 2003-01-31), который предоставляется в режиме ниже:
Введение Эта статья решительно дана временем, так как содержит комментарии о текущих реализациях. Пожалуйста, имейте это в виду, если читать его много после октября 2002 года.
Где и почему имена глифов используются после соглашений о именованиях (не доступной) статьи) имен Glyph и имена глифа в настоящее время будут включать копирование текста и поиск текста в документах PDF ( портативный документ ) в документах при более широком разнообразии обстоятельств, чем отсутствие имен, или имена, которые не следуют этим согласованиям. В эпоху Интернета, где многие документы должны быть доступны для поиска, чтобы быть полезным, это очень важно.
Многие файлы PDF изготовлены из файлов принтера PostScript, когда исходные шрифты, на которые ссылается документ, недоступны, и необходимо использовать встроенные данные шрифта. В этом случае таблица Unicode 'CMAP' шрифта OpenType недоступна, и единственная подсказка, которую может иметь производитель PDF о семантике глифа, - это название.
Даже когда доступен исходный файл шрифта, глиф, который непосредственно не соответствует символу в Unicode, все еще может быть использован с символом Unicode с помощью своего имени. Например, название декоративного варианта «t» как «t.alt» позволяет производителю PDF отметить, что «t.alt» несет ту же семантику, что и «t» для поиска и других целей.
В будущем ожидается, что больше продуктов, чем собственные продукты, будут поддерживать поиск текстовой строки на основе Unicode, а это означает, что объем полезности этих правил станет намного шире.
Для шрифтов TrueType, которые могут вообще отсутствовать имена глифов, наличие значения Unicode для глифа в таблице «CMAP» по -прежнему приведет к правильному ассоциированию глифов с символом Unicode в большинстве случаев. Однако для глифов, которые не отображаются из кодовой точки Unicode, применяются предыдущие комментарии.
Почему префикс «U» еще не рекомендуется для глифов, которые кодируются в BMP Unicode? Префикс «U» не поддерживается версиями Acrobat 4 и 5. Он был поддержан Acrobat версией 6 и позже, что также при поддержке символов Unicode за пределами BMP ( основная многоязычная плоскость ). Имена AGL и имена глиф, которые используют префикс «Uni», вместе с «». и «_» Правила анализа, уже поддерживаются версиями Acrobat 4 и 5.
Длина и набор символов на именах Glyphs из Western Opentype/CFF и TrueType шрифтов все еще должны упоминаться во многих рабочих процессах в качестве данных шрифтов с ключом. В результате имена глифов по -прежнему подвергаются ограничениям длины и набора символов, которые навязываются спецификацией типа 1 и реализациями интерпретатора PostScript. Хотя оба из них указывают, что имя глифа составляет не более 31 символа в длину, на практике, особенно в современных средах, имена глифов могут составлять до 63 символов, но не должны начинаться с цифры или периода, и должны быть полностью состоять из символов из следующего ограниченного набора: Набор: ограниченный набор:
Единственное исключение из этих требований - это специальный глиф.
Например, «двойные», «A1» и «_» являются допустимыми именами глифов, но «2Cents» и «.twocents» - нет.
Фильтрация пары банкоматов и кернинг Для многих приложений поддержка Kerning в шрифтах Opentype была в ограниченной степени предоставлена версиями Ant -Windows и Macintosh ( Adobe Type Manager ). Это ограничение возникает потому, что большинство приложений, которые не были, не предполагали, что все пары Kerning в шрифте могут разумно подгонять, представляют собой отдельную таблицу, и что будет не более нескольких тысяч пар кернина. Предоставление большего количества паров кернина, чем это привело к сбою таких приложений. Благодаря классовому кернину, поддерживаемому макетом Opentype, даже шрифт с 220 глифами обычно превышает этот предел, если он будет хорошо обработан. Чтобы разрешить использовать такие шрифты Opentyoe, не сбивая множество текущих приложений, ATM поддерживает Kerning через API на основе Legacy OS, сначала полностью расширив класс на основе класса кернинга до списка парных пар глиф-имени, а затем фильтруя этот список с помощью твердого кодированного списка имен глиф. Если имя глифа по обе стороны от пары кернинга не было в списке фильтров, вся пара кернинг была опущена. Список фильтрации пары Kerning для Windows 95 и Mac OS 9, а также для Windows NT и Windows 2000, больше не доступен.
Версия 2.9 (21 августа 2019 г.) Редакционное обновление.
Версия 2.8 (9 августа 2018 г.). Ограничение длины имен глифов было скорректировано с 31 до 63 символов, чтобы отразить текущую практику и реализации, а также примечание, что некоторые более старые реализации могут наложить ограничение с 31 символом.
Версия 2.7 (12 августа 2017 г.) Внешний документ под названием «Имена глифов и текущие реализации с редакционными изменениями» был добавлен к разделу 6.
Версия 2.6 (28 марта 2015 г.) Небольшая редакционная пересмотра, связанная с миграцией его в GitHub.
Версия 2.5 (10 ноября 2010 г.) Незначительная редакционная пересмотра, связанная с тем, чтобы сделать ее открытой спецификацией.
Версия 2.4 (24 сентября 2003 г.) Небольшая пересмотра. Упомянутый URL для имен Adobe Glyph для новых шрифтов для нового пересмотра.
Версия 2.3 (17 апреля 2003 г.) Небольшая пересмотра. Добавлены короткое предложение, чтобы прояснить, что префикс «Uni» можно использовать только со значениями BMP Unicode.
Версия 2.2 (31 января 2003 г.) Небольшая пересмотра. Добавлена ссылка на список имен глифов для использования при создании новых шрифтов, и подчеркнула, что AGL версия 2.0 не предназначена для этой цели, а не о кодировании глифов в шрифте.
Версия 2.1 (4 ноября 2002 г.) Небольшая пересмотра, расширяя раздел по назначению имен глифов новыми шрифтами.
Версия 2.0 (20 сентября 2002 г.) Основной пересмотр, который фокусирует документ на преобразовании имен глифов в скалярные значения Unicode; добавление многих имен в AGL; Обновление списка Zapfdingbats для Unicode версии 3.2.
Версия 1.1 (17 декабря 1998 г.), как правило, пересмотрел весь документ. Обновлено большинство таблиц и файлов данных. Добавлен раздел по выбору имен глифов. Псевдо-код для извлечения семантики, расширенных, чтобы включить лигатуры нексуалов и глифические варианты. Добавлен раздел о предоставлении отдельных проектов для двойных сопоставлений. Снятый раздел о несоответствиях с WGL4 (больше не применимо; WGL4 был обновлен).
Версия 1.0 (10 ноября 1997 г.) Первая версия.