© 1997-2019 Adobe.
L'autorisation est accordée, gratuitement, à toute personne qui obtient une copie de ce fichier de documentation à utiliser, copier, publier, distribuer, sous-licencier et / ou vendre des copies de la documentation, et permettre aux autres de faire de même, à condition que:
Aucune modification, édition ou autre altération de ce document n'est autorisée; et
L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation sont inclus dans toutes les copies de la documentation.
L'autorisation est accordée, gratuitement, à toute personne qui obtient une copie de ce fichier de documentation, pour créer ses propres œuvres dérivées à partir du contenu de ce document à utiliser, copier, publier, distribuer, sous-licencier et / ou vendre les œuvres dérivées, et pour permettre aux autres de faire la même chose, à condition que le travail dérivé ne soit pas représenté comme étant une copie ou une version de ce document.
Adobe ne sera pas responsable de toute partie pour toute perte de revenus ou de bénéfices ou pour des dommages indirects, accessoires, spéciaux, consécutifs ou autres, qu'ils soient basés sur des délits (y compris sans négligence ou une responsabilité stricte), un contrat ou d'autres motifs juridiques ou équitables même si Adobe a été conseillé ou a eu des raisons de connaître la possibilité de tels dommages. Les matériaux Adobe sont fournis sur une base «tel quel». Adobe décline spécifiquement toutes les garanties express, statutaires ou implicites relatives aux matériaux d'Adobe, y compris, mais sans s'y limiter, celles concernant la qualité marchande ou l'aptitude à un usage particulier ou à la non-contrefaçon de tout droit tiers concernant les matériaux d'Adobe.
Adobe ne détient aucun brevet sur le sujet de cette spécification.
Version du document 2.9. Dernière mise à jour le 21 août 2019
Le but de la spécification de la liste des glyphes Adobe est de décrire le calcul d'une chaîne de caractères Unicode à partir d'une séquence de noms de glyphes. Ceci est réalisé en spécifiant un mappage des noms de glyphes aux chaînes de caractères Unicode.
Le mappage est destiné à convertir une séquence de noms de glyphes en texte brut tout en préservant la sémantique sous-jacente. Par exemple, le nom du glyphe pour «a», le nom de glyphe pour «petit capital a», et le nom de glyphe pour une variante cygne de «a» seront tous mappés au même UV ( valeur Unicode ). Ceci est utile pour copier du texte dans certains environnements, et est également utile pour effectuer des recherches de texte qui correspondent à tous les noms de glyphes dans la chaîne d'origine qui correspondent à «A».
Il est en dehors de la portée de cette spécification pour déterminer l'ensemble des noms de glyphes légaux. Les noms de glyphes se produisent dans de nombreux contextes différents, chacun ayant sa propre définition de ce qui constitue un nom juridique. Cette spécification suppose uniquement qu'un nom de glyphe correspond à une séquence arbitrairement finie de caractères Unicode.
La spécification se compose d'Agl ( Adobe Glyph List ), qui fournit une mappage de noms de glyphe spécifiques aux valeurs Unicode, ainsi que des règles de décomposition et d'interprétation des noms de glyphes. Parce qu'il est prévu que cette spécification sera mise en œuvre dans de nombreux logiciels et que la révision de toutes les implémentations qui l'utilisent est peu probable, cette spécification est destinée à être stable, ce qui signifie qu'elle ne doit jamais être révisée de manière substantielle. En particulier, il est prévu qu'aucun mappage ne sera jamais ajouté à AGL. De plus, AGL n'est pas censé servir de guide pour choisir des noms de glyphes pour les nouvelles polices. À cette fin, AGLFN ( Liste des glyphes Adobe pour de nouvelles polices ) existe (voir la section 6).
Cette spécification prend en charge la plage complète des valeurs scalaires Unicode, U + 0000 via U + 10FFFF. Cela ne dépend pas du répertoire de caractère d'une version Unicode spécifique; Ainsi, il s'applique aux versions passées, actuelles et futures de la norme Unicode.
Les producteurs de polices sont fortement encouragés à respecter ces spécifications lors de la dénomination des glyphes pour leurs polices. Les consommateurs de polices sont encouragés à suivre cette spécification lorsque vous essayez de dériver du contenu des noms de glyphes.
Pour mapper un nom de glyphe à une chaîne de caractères, suivez les trois étapes ci-dessous:
Déposez tous les caractères du nom du glyphe en commençant par la première occurrence d'une période (U + 002E Full Stop), le cas échéant.
Divisez la chaîne restante en une séquence de composants, en utilisant un trait de soulignement (U + 005F Low Line) comme délimiteur.
Cartez chaque composant dans une chaîne de caractères en fonction de la procédure ci-dessous et concaténez ces chaînes; Le résultat est la chaîne de caractères à laquelle le nom du glyphe est mappé.
Si la police est ZAPF Dingbats (PostScript Fontname: ZAPFDINGBATS ), et que le composant est dans la liste des glyphes ITC ZAPF Dingbats , puis mappez-le au caractère correspondant dans cette liste.
Sinon, si le composant est en AGL, mappez-le au caractère correspondant dans cette liste.
Sinon, si le composant est du formulaire 'Uni' (U + 0075, U + 006E et U + 0069) suivi d'une séquence de chiffres hexadécimaux en majuscules (0–9 et a - f, signifiant U + 0030 à U + 0039 et U + 0041 à travers U + 0046), si la longueur de cette séquence est un multiport, et si un groupe de la longueur est une longueur de la longueur de cette séquence est un multiport de quatre, et chaque groupe de FourSits), la longueur de la longueur de cette séquence est un multiport de quatre, et chaque groupe de FOURS de FOURSIONS), la longueur de cette séquence est un multiport de quatre, et chaque groupe de FOURS de FOURSIONS), la longueur de la longueur de cette séquence est un multiplication de quatre, et chaque groupe de FourS de FourSits). Dans les plages 0000 à D7FF ou E000 via FFFF, interprétez chacun comme une valeur scalaire Unicode et mappez le composant à la chaîne faite de ces valeurs scalaires. Notez que les restrictions de plage et de longueur de chiffre signifient que le préfixe de nom de glyphe «Uni» ne peut être utilisé qu'avec des UV dans le plan multilingue de base (BMP).
Sinon, si le composant est du formulaire 'u' (U + 0075) suivi d'une séquence de quatre à six chiffres hexadécimaux en majuscules (0–9 et a - f, signifiant U + 0030 à U + 0039 et U + 0041 via U + 0046) Valeur et mappez le composant à la chaîne faite de cette valeur scalaire.
Sinon, mappez le composant sur une chaîne vide.
Le nom «lcommaaccent» a un seul composant, qui est mappé à la chaîne U + 013b par Agl.
Le nom «Uni20AC0308» a un seul composant, qui est mappé à la chaîne U + 20AC U + 0308.
Le nom 'u1040c' a un seul composant, qui est mappé sur la chaîne U + 1040C.
Le nom «UNID801DC0C» a un seul composant, qui est mappé à une chaîne vide. Ni D801 ni DC0C ne sont dans l'ensemble approprié. Ce formulaire ne peut pas être utilisé pour mapper au caractère qui est exprimé en D801 DC0C dans UTF-16, en particulier U + 1040C. Ce caractère peut être correctement mappé en utilisant le nom de glyphe «U1040C».
Le nom «Uni20AC» a un seul composant, qui est mappé sur une chaîne vide (notez les minuscules «A» et «C»).
Le nom 'lcommaaccent_uni20ac0308_u1040c.Alternate' a trois composants, qui sont 'lcommaaccent', 'uni20ac0308' et 'u1040c'. Il est mappé à la chaîne U + 013b U + 20AC U + 0308 U + 1040C.
Généralement, plusieurs noms peuvent être mappés à la même chaîne. Par exemple, les composants «lCommaaccent», «Uni013b» et «U013B» sont tous les cartes de la chaîne U + 013b.
Le nom «Foo» mappe à une chaîne vide, car «foo» n'est pas en AGL, et parce qu'elle ne commence pas par un «u».
Le nom '.notdef' est réduit à une chaîne vide par la première étape et est mappé à une chaîne vide par la dernière clause de la troisième étape.
Cette spécification prend en charge le mappage des noms de glyphes aux chaînes contenant des valeurs PUA. Par exemple, les noms «ogoneksmall» et «unif6fb» mappent les deux à la chaîne qui correspond à u + f6fb.
Cette spécification n'inclut, n'implique pas, ni n'assume une utilisation particulière de PUA; Il permet simplement la dénomination des glyphes de telle sorte que les chaînes de caractère restaurées incluent des points de code PUA. C'est aux producteurs et aux consommateurs de noms de glyphes pour établir un accord sur l'utilisation de la PUA.
Les concepteurs de polices doivent noter que l'établissement de cet accord avec les utilisateurs de polices à usage général peut être difficile. Il est probable que tous les outils manipulant les chaînes de caractère construits à partir de noms de glyphes implémenteront correctement l'utilisation de PUA, ce qui peut conduire à des fonctionnalités incorrectes ou inattendues. Il est donc recommandé, pour les polices à usage général, que tous les noms de glyphes se convertissent en chaînes qui ne contiennent pas de points de code PUA.
Cette spécification a évolué au fil du temps. Veuillez vous référer à la section 7 ( modifications du document ) pour les modifications.
Pour les glyphes qui correspondent à des caractères dans la norme Unicode, il est recommandé de spécifier des noms en utilisant le préfixe 'Uni' pour les caractères dans le plan multilingue de base (BMP), et le préfixe 'u' plus court pour les caractères dans les 16 plans supplémentaires, selon les règles de la section 2.
Cela ne signifie pas que les polices ne sont pas valides si elles sont fabriquées sans utiliser les préfixes «Uni» et «U» pour leurs noms de glyphes. Avec un groupe d'exceptions, tous les noms de glyphes dans AGL fonctionnent actuellement dans tous les environnements connus, ainsi que des noms avec le préfixe «Uni». Les exceptions sont les noms de glyphe AGL associés aux points de code PUA. Ceux-ci incluent tous les supérieurs et les noms de petits capuchon. L'utilisation de ces noms, dans le but de rechercher du texte, mènera certaines implémentations actuelles pour cartographier des noms comme «Asmall» à la valeur PUA spécifiée dans AGL, plutôt qu'aux UV pour «A». Nous recommandons maintenant de nommer ces glyphes conformément aux règles spécifiées dans cette section. Un sous-ensemble d'AGL qui exclut les noms associés au PUA est fourni par AGLFN ( liste des glyphes Adobe pour les nouvelles polices ).
Si plusieurs glyphes dans une police représentent le même caractère dans la norme Unicode, comme «A» et «A.Swash», ils peuvent être différenciés en utilisant le même nom de base avec différents suffixes. Le suffixe (la partie du nom de glyphe qui suit la première période) ne participe pas au calcul d'une séquence de caractères. Il peut être utilisé par les concepteurs de polices pour indiquer des caractéristiques spéciales du glyphe. Le suffixe peut contenir des périodes ou tout autre caractères autorisés. Par exemple, la petite capitalisation «a» pourrait ainsi être nommée «Uni0041.sc» ou «A.Sc».
S'il existe plusieurs variantes du même glyphe de base, alors les suffixes variants doivent inclure des chiffres de longueur fixe zéro de sorte que si et quand les noms de glyphe sont triés, l'ordre prévu peut être préservé. Par exemple, si le glyphe 'AmperSand' a 23 formes alternatives, ils seraient nommés 'Ampersand.Alt01' à travers 'ampersand.alt23', plutôt que 'Ampersand.alt', avec 'ampersand.alt1' via 'Ampersand.alt22'. Cette règle ne fournit qu'une commodité mineure pour le développement et les tests des polices. Comme indiqué ci-dessus, ces suffixes de nom de glyphe ne participent pas au calcul d'une séquence de caractères.
Cette spécification ne normalise aucun des suffixes. Tout suffixe arbitraire fonctionnera aux fins de la recherche de texte. Pour plus de commodité pendant le développement et les tests, Adobe utilise le nom de fonction de mise en page OpenType le plus approprié comme suffixe. Par exemple, un petit chapeau «A» pourrait être nommé «a.smcp», un formulaire initial «a.init», un formulaire final «a.fina» et un formulaire cygne «a.swsh». S'il existe des formulaires Swash supplémentaires, ils pourraient être nommés «A.SWSH1», «A.SWSH2», etc. Voici des exemples de suffixes utilisés dans les polices d'Adobe:
Pour les glyphes qui ne correspondent à aucun caractère dans la norme Unicode, le nom n'aura aucune utilité technique. Tout nom peut être attribué, tant que le nom ne sera pas interprété comme ayant une valeur sémantique selon les règles de ce document. La pratique de l'équipe de développement de types chez Adobe est que s'il y a une balise descriptive utile pour un glyphe, nommez-la en conséquence, telle que «souris», `` SignForsale ', «Christmastreeball12», etc. Sinon, nommez-le comme variante de «Orn» (abréviation d'ornement), comme «ORN001», «ORN123», etc.
Pour les glyphes qui représentent des ligatures de caractères Unicode standard, il existe deux formats suggérés pour leurs noms de glyphes, comme suit:
Descriptive La décomposition est exprimée en rejoignant les noms des glyphes des caractères Unicode standard, dans l'ordre, en utilisant un soulignement (U + 005F Low Line). Les noms de glyphes des caractères doivent spécifier les préfixes «Uni» ou «U» et utiliser des chiffres hexadécimaux en majuscules, comme décrit ci-dessus, ou avec un nom d'Agl. Par exemple, la ligature 'off i' doit être nommée 'o_f_f_i'.
UV avec le préfixe «Uni» Le nom de glyphe est exprimé comme le préfixe «Uni» suivi de deux séquences ou plus de quatre chiffres hexadécimaux en majuscules. Chaque séquence de quatre chiffres hexadécimaux majuscules spécifie une valeur scalaire Unicode dans le BMP, dans l'ordre. Par exemple, la lettre majuscule latine de caractère EZH avec circonflexe et tombe, qui n'est pas dans Unicode, doit être nommée 'UNI01B703020300', car la lettre de majuscule latine EZH est U + 01b7, combiner l'accent circonflexe est U + 0302, et combiner l'accent grave est U + 0300. Une ligature des glyphes nommés «T.Swash» et «H» peut être nommé «t_h.swash». «T.Swash_H» serait incorrect car cela serait interprété comme une variante glyphique de «t». Tous les noms de glyphes sont soumis à une limite de longueur de 63 caractères et nécessitent qu'ils soient entièrement composés de caractères de l'ensemble suivant: A - Z, A - Z, 0–9, '.' (période; u + 002e stop complet) et '_' (souligner; U + 005f Low Line). Certaines implémentations plus anciennes peuvent imposer une limite de longueur de 31 caractères.
Un bref examen de certains problèmes de mise en œuvre passés et des limites consécutives sur les noms de glyphes sont fournies dans les noms de glyphes document et les implémentations actuelles (basées sur la version 1.1, datée de 2003-01-31) qui est fournie en ligne ci-dessous:
INTRODUCTION Cet article est fortement daté dans le temps, car il contient des commentaires sur les implémentations actuelles. Veuillez garder cela à l'esprit si vous le lisez beaucoup après octobre 2002.
Où et pourquoi les noms de glyphes sont utilisés à la suite des conventions de dénomination de l'article (non plus disponible) , les noms Unicode et Glyphe permettra actuellement de copier du texte et de rechercher du texte dans des documents PDF ( format de document portable ) dans une variété plus large de circonstances que de non-noms, ni de noms qui ne suivent pas ces convitions. À l'ère d'Internet, où de nombreux documents doivent être consultables pour être utiles, cela est très important.
De nombreux fichiers PDF sont fabriqués à partir de fichiers d'imprimante PostScript, lorsque les polices d'origine référencées par le document ne sont pas disponibles et que les données de police intégrées doivent être utilisées. Dans ce cas, le tableau Unicode «CMAP» d'une police OpenType n'est pas disponible, et le seul indice que le producteur PDF peut avoir sur la sémantique d'un glyphe est son nom.
Même lorsque le fichier de police d'origine est disponible, un glyphe qui ne correspond pas directement à un caractère dans Unicode peut toujours être connecté à un caractère Unicode via son nom. Par exemple, nommer une variante décorative de «t» comme «T.Alt» permet à un producteur PDF de noter que «T.Alt» porte la même sémantique que «T» à la recherche et à d'autres fins.
À l'avenir, il est prévu que plus de produits que ceux d'Adobe prennent en charge la recherche de chaînes de texte basée sur Unicode d'un glyphe, ce qui signifie que la portée de l'utilité de ces règles deviendra beaucoup plus large.
Pour les polices TrueType, qui peuvent manquer des noms de glyphes complètement, la présence d'une valeur Unicode pour un glyphe dans le tableau «CMAP» entraînera toujours correctement les glyphes à un caractère Unicode dans la plupart des cas. Cependant, pour les glyphes qui ne mappent pas à partir d'un point de code Unicode, les commentaires précédents s'appliquent.
Pourquoi le préfixe «u» n'est-il pas encore recommandé pour les glyphes codés dans le BMP d'Unicode? Le préfixe 'u' n'est pas pris en charge par les versions Acrobat 4 et 5. Il est devenu soutenu par Acrobat version 6 et plus tard, qui est également lorsque la prise en charge des caractères Unicode en dehors du BMP ( plan multilingue de base ) a été introduite. Noms AGL et noms de glyphes qui utilisent le préfixe «Uni», ainsi que le «». et les règles de l'analyse «_» sont déjà prises en charge par les versions Acrobat 4 et 5.
Longueur et définition du jeu de caractères sur les noms Les glyphes de Western OpenType / CFF et les polices TrueType doivent toujours être référencées dans de nombreux workflows en tant que données de police clés par le nom. En conséquence, les noms de glyphes sont toujours soumis aux limitations de la longueur et du jeu de caractères imposées par les implémentations de spécification de type 1 et d'interprète PostScript. Bien que ces deux spécifient qu'un nom de glyphe ne soit pas plus de 31 caractères, en pratique, en particulier dans les environnements modernes, les noms de glyphes peuvent être aussi longs que 63 caractères, mais ne doivent pas commencer par un chiffre ou une période, et doivent être entièrement composés de caractères de l'ensemble limité suivant:
La seule exception à ces exigences est le glyphe spécial '.notdef'.
Par exemple, «Twocents», «A1» et «_» sont des noms de glyphes valides, mais «2cents» et «.twocents» ne le sont pas.
Le filtrage des paires ATM et duilage pour de nombreuses applications, la prise en charge des polices d'OpenType a été fournie dans une mesure limitée par les versions Windows et Macintosh d'ATM ( Adobe Type Manager ). Cette limitation survient parce que la plupart des applications qui n'étaient pas consacrées à l'OpenType supposaient que toutes les paires de kerning dans une police peuvent raisonnablement s'adapter est une seule table, et qu'il n'y aura pas plus de quelques milliers de paires de kerning. Fournir plus de paires deilage que cela a provoqué une collision de ces applications. Avec leilage basé sur les classes pris en charge par la disposition OpenType, même une police avec seulement 220 glyphes dépasserait généralement cette limite, si elle était bien kélose. Afin de permettre l'utilisation de telles polices Optentyoe sans écraser de nombreuses applications actuelles, ATM a pris en charge les aci-basés sur le système d'exploitation du système d'exploitation hérité en étendant d'abord pleinement le crépusage basé sur les classes à une liste de paires de noms de glyphes uniques, puis en filtrant cette liste via une liste codé en dur de noms de glyphes. Si le nom des glyphes de chaque côté de la paire de kerning n'était pas présent dans la liste des filtres, la paire entière de Kerning a été omise. La liste de filtrage de la paire deactes pour Windows 95 et Mac OS 9, ainsi que celle pour Windows NT et Windows 2000, n'est plus disponible.
Version 2.9 (21 août 2019) Mise à jour éditoriale.
Version 2.8 (9 août 2018) La limite de longueur des noms de glyphes a été ajustée de 31 à 63 caractères pour refléter les pratiques et les implémentations actuelles, ainsi qu'une note que certaines implémentations plus anciennes peuvent imposer une limite de 31 caractères.
Version 2.7 (12 août 2017) Le document externe intitulé les noms de glyphes et les implémentations actuels , avec des modifications éditoriales, a été annexée à la section 6.
Version 2.6 (28 mars 2015) Révision éditoriale mineure liée à la migration vers GitHub.
Version 2.5 (10 novembre 2010) Révision éditoriale mineure liée à la réalisation d'une spécification ouverte.
Version 2.4 (24 septembre 2003) Révision mineure. URL pointu pour les noms de glyphe Adobe pour de nouvelles polices à une nouvelle révision.
Version 2.3 (17 avril 2003) Révision mineure. Ajout d'une phrase courte pour indiquer clairement que le préfixe «Uni» ne peut être utilisé qu'avec les valeurs UNICODE BMP.
Version 2.2 (31 janvier 2003) Révision mineure. Ajout d'un lien vers la liste des noms de glyphes à utiliser lors de la fabrication de nouvelles polices, et a souligné que l'AGL version 2.0 n'est pas destinée à cet effet, ni pour coder les glyphes dans une police.
Version 2.1 (4 novembre 2002) Révision mineure, élargissant la section sur l'attribution des noms de glyphes dans de nouvelles polices.
Version 2.0 (20 septembre 2002) Révision majeure, qui concentre le document sur la conversion des noms des glyphes en valeurs scalaires Unicode; ajout de nombreux noms à l'AGL; Mise à jour de la liste ZapfdingBats vers Unicode version 3.2.
Version 1.1 (17 décembre 1998) Généralement révisé le document entier. Mise à jour de la plupart des tableaux et fichiers de données. Ajout de la section lors de la sélection des noms de glyphes. Pseudo code pour extraire la sémantique étendue pour inclure des ligatures non Unicodes et des variantes glyphiques. Ajout de la section sur la fourniture de conceptions distinctes pour les doubles mappages. Suppression de la section sur les écarts avec WGL4 (n'est plus applicable; WGL4 a été mis à jour).
Version 1.0 (10 novembre 1997) Première version.