Partager via


Fonctionnalités de police OpenType

Cette rubrique fournit une vue d’ensemble de certaines des principales fonctionnalités de la technologie de police OpenType dans Windows Presentation Foundation (WPF).

Format de police OpenType

Le format de police OpenType est une extension du format de police TrueType®, en ajoutant la prise en charge des données de police PostScript. Le format de police OpenType a été développé conjointement par Microsoft et Adobe Corporation. Les polices OpenType et les services du système d’exploitation qui prennent en charge les polices OpenType fournissent aux utilisateurs un moyen simple d’installer et d’utiliser des polices, que les polices contiennent des contours TrueType ou CFF (PostScript).

Le format de police OpenType répond aux défis suivants pour les développeurs :

  • Prise en charge multi-plateforme élargie.

  • Meilleure prise en charge des jeux de caractères internationaux.

  • Meilleure protection pour les données de police de caractères.

  • Les tailles de fichier plus petites pour rendre la distribution de police plus efficace.

  • Prise en charge plus large du contrôle typographique avancé.

Pour plus d’informations sur le format de police OpenType, consultez la spécification OpenType.

Extensions typographiques avancées

Les tables typographiques avancées (tables OpenType Layout) étendent les fonctionnalités des polices avec des contours TrueType ou CFF. Les polices OpenType Layout contiennent des informations supplémentaires qui étendent les fonctionnalités des polices pour prendre en charge la typographie internationale de haute qualité. La plupart des polices OpenType n’exposent qu’un sous-ensemble des fonctionnalités OpenType totales disponibles. Les polices OpenType fournissent les fonctionnalités suivantes.

  • Mappage riche entre les caractères et les glyphes qui prennent en charge les ligatures, les formes positionnelles, les alternatives et les substitutions de police.

  • Prise en charge du positionnement à deux dimensions et de l’attachement de glyphes.

  • Les informations de script et de langage explicites contenues dans la police, afin qu’une application de traitement de texte puisse ajuster son comportement en conséquence.

Les tables de disposition OpenType sont décrites plus en détail dans la section « Tables de fichiers de police » de la spécification OpenType.

Le reste de cette vue d’ensemble présente l’étendue et la flexibilité de certaines des fonctionnalités OpenType visuellement intéressantes qui sont exposées par les propriétés de l’objet Typography. Pour plus d’informations sur cet objet, consultez classe typographie.

Variantes

Les variantes servent à restituer différents styles typographiques, tels que les exposants et les indices.

Exposants et indices

La propriété Variants vous permet de définir des valeurs d’exposant et d’indice pour une police de caractères OpenType.

Le texte suivant présente des exposants avec la police Palatino Linotype.

Texte utilisant des exposants OpenType

L’exemple de balisage suivant montre comment définir des exposants pour la police Palatino Linotype à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Palatino Linotype">
  2<Run Typography.Variants="Superscript">3</Run>
  14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>

Le texte suivant affiche des sous-indices pour la police Palatino Linotype.

Texte à l’aide d’indices OpenType

L’exemple de balisage suivant montre comment définir des indices pour la police Palatino Linotype à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Palatino Linotype">
  H<Run Typography.Variants="Subscript">2</Run>O
  Footnote<Run Typography.Variants="Subscript">4</Run>
</Paragraph>

Utilisations décoratives d’exposants et d’indices

Vous pouvez aussi utiliser des exposants et des indices pour créer des effets décoratifs de texte à casse mixte. Le texte suivant présente des exposants et des indices avec la police Palatino Linotype. Notez que les majuscules ne sont pas affectées.

Texte utilisant des exposants et des indices OpenType

L’exemple de balisage suivant montre comment définir des supralignées et des indices pour une police, à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Superscript">
  Chapter One
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Subscript">
  Chapter One
</Paragraph>

Capitales

Les majuscules sont un ensemble de formes typographiques qui restituent du texte en glyphes au style majuscule. En règle générale, lorsque le texte est rendu comme tous les majuscules, l’espacement entre les lettres peut apparaître trop serré, et le poids et la proportion des lettres trop lourdes. OpenType prend en charge un certain nombre de formats de style pour les majuscules, notamment les petites majuscules, les capitales petites, le style de titres et l’espacement des majuscules. Ces formats de style vous permettent de contrôler l’apparence des majuscules.

Le texte suivant affiche des lettres majuscules standard pour la police Pescadero, suivies des lettres au style « SmallCaps » et « AllSmallCaps ». Dans ce cas, la même taille de police est utilisée pour les trois mots.

Texte à l’aide de majuscules OpenType

L’exemple de balisage suivant montre comment définir des majuscules pour la police Cspadero à l’aide des propriétés de l’objet Typography. Lorsque le format « SmallCaps » est utilisé, toute lettre majuscule de début est ignorée.

<Paragraph FontFamily="Pescadero" FontSize="48">
  <Run>CAPITALS</Run>
  <Run Typography.Capitals="SmallCaps">Capitals</Run>
  <Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>

Majuscules de titres

Les majuscules de titrage sont plus légères en poids et en proportion et conçues pour donner un look plus élégant que les capitales normales. Les majuscules de titrage sont généralement utilisées dans des tailles de police plus grandes en tant que titres. Le texte suivant présente des majuscules normales et des majuscules de titres avec la police Pescadero. Comme vous pouvez le constater, le plein est plus fin dans le texte de la deuxième ligne.

Texte avec majuscules de titrage OpenType

L’exemple de balisage suivant montre comment définir des capitales titrage pour la police Pescadero à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Pescadero">
  <Run Typography.Capitals="Titling">chapter one</Run>
</Paragraph>

Espacement des majuscules

L’espacement des majuscules est une fonctionnalité qui vous permet de fournir davantage d’espacement lors de l’utilisation de toutes les majuscules dans le texte. Les lettres majuscules sont généralement conçues pour se mélanger avec des lettres minuscules. L’espacement qui semble attrayant entre une lettre majuscule et une lettre minuscule peut sembler trop serré lorsque toutes les lettres majuscules sont utilisées. Le texte suivant présente l’espacement normal et l’espacement de majuscules avec la police Pescadero.

Texte utilisant l'espacement des majuscules OpenType

L’exemple de balisage suivant montre comment définir l’espacement des capitales pour la police Pescadero à l’aide des propriétés de l'objet Typography.

<Paragraph FontFamily="Pescadero">
  <Run Typography.CapitalSpacing="True">CHAPTER ONE</Run>
</Paragraph>

Ligatures

Les ligatures sont deux glyphes ou plus formés en un seul glyphe afin de créer du texte plus lisible ou attrayant. Les polices OpenType prennent en charge quatre types de ligatures :

  • Ligatures standard. Conçu pour améliorer la lisibilité. Les ligatures standard incluent « fi », « fl » et « ff ».

  • Ligatures contextuelles. Conçu pour améliorer la lisibilité en fournissant un meilleur comportement de liaison entre les caractères qui composent la ligature.

  • Ligatures discrétionnaires. Conçu pour être ornemental, et non spécifiquement conçu pour la lisibilité.

  • Ligatures historiques. Conçu pour être historique et non spécifiquement conçu pour la lisibilité.

Le texte suivant affiche des glyphes de ligature standard pour la police Pericles.

Texte utilisant les ligatures standard OpenType

L’exemple de balisage suivant montre comment définir des glyphes de ligature standard pour la police Pericles, à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Pericles" Typography.StandardLigatures="True">
  <Run Typography.StylisticAlternates="1">FI</Run>
  <Run Typography.StylisticAlternates="1">FL</Run>
  <Run Typography.StylisticAlternates="1">TH</Run>
  <Run Typography.StylisticAlternates="1">TT</Run>
  <Run Typography.StylisticAlternates="1">TV</Run>
  <Run Typography.StylisticAlternates="1">TW</Run>
  <Run Typography.StylisticAlternates="1">TY</Run>
  <Run Typography.StylisticAlternates="1">VT</Run>
  <Run Typography.StylisticAlternates="1">WT</Run>
  <Run Typography.StylisticAlternates="1">YT</Run>
</Paragraph>

Le texte suivant affiche des glyphes de ligature discrétionnaires pour la police Pericles.

Texte utilisant des ligatures discrétionnaires OpenType

L’exemple de balisage suivant montre comment définir des glyphes de ligature discrétionnaires pour la police Pericles, à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Pericles" Typography.DiscretionaryLigatures="True">
  <Run Typography.StylisticAlternates="1">CO</Run>
  <Run Typography.StylisticAlternates="1">LA</Run>
  <Run Typography.StylisticAlternates="1">LE</Run>
  <Run Typography.StylisticAlternates="1">LI</Run>
  <Run Typography.StylisticAlternates="1">LL</Run>
  <Run Typography.StylisticAlternates="1">LO</Run>
  <Run Typography.StylisticAlternates="1">LU</Run>
</Paragraph>

Par défaut, les polices OpenType dans Windows Presentation Foundation (WPF) activent les ligatures standard. Par exemple, si vous utilisez la police Palatino Linotype, les ligatures standard « fi », « ff » et « fl » apparaissent sous la forme d’un glyphe de caractère combiné. Notez que les deux caractères de chaque ligature standard se touchent.

Texte utilisant les ligatures standard OpenType avec Palatino Linotype

Toutefois, vous pouvez désactiver les fonctionnalités de ligature standard afin qu’une ligature standard telle que « ff » s’affiche sous la forme de deux glyphes distincts, plutôt que comme un glyphe de caractère combiné.

Text à l’aide des ligatures standard OpenType désactivées

L’exemple de balisage suivant montre comment désactiver les glyphes ligature standard pour la police Palatino Linotype à l’aide des propriétés de l’objet Typography.

<!-- Set standard ligatures to false in order to disable feature. -->
<Paragraph Typography.StandardLigatures="False" FontFamily="Palatino Linotype" FontSize="72">
  fi ff fl
</Paragraph>

Lettres ornées

Les swashes sont des glyphes décoratifs qui utilisent une ornementation élaborée souvent associée à la calligraphie. Le texte suivant présente des glyphes standard et des glyphes à lettres ornées avec la police Pescadero.

Texte utilisant le standard OpenType et les glyphes ornementaux

Les lettres ornées sont souvent utilisés comme éléments décoratifs dans des expressions courtes annonçant par exemple un événement. Le texte suivant utilise des swashes pour mettre en évidence les majuscules du nom de l’événement.

Texte utilisant des lettres ornées OpenType

L’exemple de balisage suivant montre comment définir des swashes pour une police à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Pescadero" TextBlock.TextAlignment="Center">
  Wishing you a<LineBreak/>
  <Run Typography.StandardSwashes="1" FontSize="36">Happy New Year!</Run>
</Paragraph>

Lettres ornées contextuelles

Certaines combinaisons de glyphes à lettres ornées peuvent donner des résultats peu esthétiques, avec notamment le chevauchement de hampes descendantes dans les lettres adjacentes. En utilisant des lettres ornées contextuelles, vous pouvez obtenir un meilleur résultat visuel. Le texte suivant présente le même mot avant et après l’application d’une lettre ornée contextuelle.

Texte utilisant les ornements contextuels OpenType

L’exemple de balisage suivant montre comment définir un ornement contextuel pour la police Pescadero en utilisant les propriétés de l’objet Typography.

<Paragraph FontFamily="Pescadero" Typography.StandardSwashes="1">
  Lyon <Run Typography.ContextualSwashes="1">L</Run>yon
</Paragraph>

Alternatives

Les variantes sont des glyphes qui peuvent remplacer un glyphe standard. Les polices OpenType, telles que la police Pericles utilisée dans les exemples suivants, peuvent contenir d’autres glyphes que vous pouvez utiliser pour créer différentes apparences pour du texte. Le texte suivant affiche des glyphes standard pour la police Pericles.

Texte à l’aide de glyphes standard OpenType

La police Pericles OpenType contient des glyphes supplémentaires qui fournissent des alternatives stylistiques à l’ensemble standard de glyphes. Le texte suivant affiche des glyphes de remplacement stylistiques.

Texte utilisant des glyphes alternatifs stylistiques OpenType

L’exemple de balisage suivant montre comment définir des glyphes de substitution stylistiques pour la police Pericles, à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Pericles">
  <Run Typography.StylisticAlternates="1">A</Run>NCIENT
  GR<Run Typography.StylisticAlternates="1">EE</Run>K
  MYTH<Run Typography.StylisticAlternates="1">O</Run>LOGY
</Paragraph>

Le texte suivant affiche plusieurs glyphes alternatifs stylistiques pour la police Pericles.

Texte utilisant des glyphes de style alternatifs OpenType pour la police Pericles

L’exemple de balisage suivant montre comment définir ces autres glyphes stylistiques.

<Paragraph FontFamily="Pericles">
  <Run Typography.StylisticAlternates="1">A</Run>
  <Run Typography.StylisticAlternates="2">A</Run>
  <Run Typography.StylisticAlternates="3">A</Run>
  <Run Typography.StylisticAlternates="1">C</Run>
  <Run Typography.StylisticAlternates="1">E</Run>
  <Run Typography.StylisticAlternates="1">G</Run>
  <Run Typography.StylisticAlternates="1">O</Run>
  <Run Typography.StylisticAlternates="1">Q</Run>
  <Run Typography.StylisticAlternates="1">R</Run>
  <Run Typography.StylisticAlternates="2">R</Run>
  <Run Typography.StylisticAlternates="1">S</Run>
  <Run Typography.StylisticAlternates="1">Y</Run>
</Paragraph>

Alternatives contextuelles aléatoires

Les alternatives contextuelles aléatoires fournissent plusieurs glyphes de remplacement pour un seul caractère. En cas d’implémentation avec des polices de type script, cette fonctionnalité peut simuler l’écriture manuscrite à l’aide d’un ensemble de glyphes choisis au hasard avec de légères différences d’apparence. Le texte suivant utilise des alternatives contextuelles aléatoires pour la police Lindsey. Notez que la lettre « a » varie légèrement en apparence

Texte utilisant des alternances contextuelles aléatoires OpenType

L’exemple de balisage suivant montre comment définir des alternatives contextuelles aléatoires pour la police Lindsey, à l’aide des propriétés de l’objet Typography.

<TextBlock FontFamily="Lindsey">
  <Run Typography.ContextualAlternates="True">
    a banana in a cabana
  </Run>
</TextBlock>

Formulaires historiques

Les formes historiques sont des conventions typographiques qui étaient communes dans le passé. Le texte suivant affiche l’expression « Boston, Massachusetts », à l’aide d’une forme historique de glyphes pour la police Palatino Linotype.

Texte utilisant les formes historiques OpenType

L’exemple de balisage suivant montre comment définir des formulaires historiques pour la police Palatino Linotype à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Palatino Linotype">
  <Run Typography.HistoricalForms="True">Boston, Massachusetts</Run>
</Paragraph>

Styles numériques

Les polices OpenType prennent en charge un grand nombre de fonctionnalités qui peuvent être utilisées avec des valeurs numériques dans du texte.

Les fractions

Les polices OpenType prennent en charge les fractions représentées avec une barre oblique ou horizontale.

Le texte suivant affiche les styles de fraction pour la police Palatino Linotype.

Texte utilisant des fractions OpenType avec barres obliques et barres horizontales

L’exemple de balisage suivant montre comment définir des styles de fraction pour la police Palatino Linotype à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Palatino Linotype" Typography.Fraction="Slashed">
  1/8 1/4 3/8 1/2 5/8 3/4 7/8
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Fraction="Stacked">
  1/8 1/4 3/8 1/2 5/8 3/4 7/8
</Paragraph>

Chiffres de style ancien

Les polices OpenType prennent en charge un ancien format de chiffres. Ce format est utile pour afficher des chiffres dans des styles qui ne sont plus standard. Le texte suivant affiche une date du 18ème siècle dans des formats de chiffres de style standard et ancien pour la police Palatino Linotype.

Texte utilisant des chiffres anciens OpenType

Le texte suivant affiche des chiffres standard pour la police Palatino Linotype, suivie de chiffres de style ancien.

Texte utilisant les jeux de chiffres de style ancien OpenType

L’exemple de balisage suivant montre comment définir des chiffres de style anciens pour la police Palatino Linotype à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Palatino Linotype">
  <Run Typography.NumeralStyle="Normal">1234567890</Run>
  <Run Typography.NumeralStyle="OldStyle">1234567890</Run>
</Paragraph>

Chiffres proportionnels et tabulaires

Les polices OpenType prennent en charge une fonctionnalité de figure proportionnelle et tabulaire pour contrôler l’alignement des largeurs lors de l’utilisation de chiffres. Les chiffres proportionnels traitent chaque chiffre comme ayant une largeur différente : « 1 » est plus étroit que « 5 ». Les chiffres tabulaires sont traités comme des chiffres de largeur égale afin qu’ils s’alignent verticalement, ce qui augmente la lisibilité des informations de type financier.

Le texte suivant affiche deux chiffres proportionnels dans la première colonne à l’aide de la police Miramonte. Notez la différence de largeur entre les chiffres « 5 » et « 1 ». La deuxième colonne affiche les deux mêmes valeurs numériques avec les largeurs ajustées à l’aide de la fonctionnalité de figure tabulaire.

Texte utilisant les chiffres tabulaires et proportionnels OpenType

L’exemple de balisage suivant montre comment définir des figures proportionnelles et tabulaires pour la police Miramonte à l’aide des propriétés de l’objet Typography.

<TextBlock FontFamily="Miramonte">
  <Run Typography.NumeralAlignment="Proportional">114,131</Run>
</TextBlock>
<TextBlock FontFamily="Miramonte">
  <Run Typography.NumeralAlignment="Tabular">114,131</Run>
</TextBlock>

Zéro barré

Les polices OpenType prennent en charge un format de chiffres zéro oblique pour mettre en évidence la différence entre la lettre « O » et le chiffre « 0 ». Le chiffre zéro oblique est souvent utilisé pour les identificateurs dans les informations financières et commerciales.

Le texte suivant affiche un exemple d’identificateur de commande à l’aide de la police Miramonte. La première ligne utilise des chiffres standard. La deuxième ligne a utilisé des chiffres zéro obliques pour fournir un meilleur contraste avec la lettre majuscule « O ».

Texte utilisant des chiffres zéro barré OpenType

L’exemple de balisage suivant montre comment définir des chiffres zéro obliques pour la police Miramonte à l’aide des propriétés de l’objet Typography.

<Paragraph FontFamily="Miramonte">
  <Run>Order #0048-OTC-390</Run>
  <LineBreak/>
  <Run Typography.SlashedZero="True">Order #0048-OTC-390</Run>
</Paragraph>

Cours de typographie

L’objet Typography expose l’ensemble des fonctionnalités prises en charge par une police OpenType. En définissant les propriétés de Typography dans le balisage, vous pouvez facilement créer des documents qui tirent parti des fonctionnalités OpenType.

Le texte suivant affiche des lettres majuscules standard pour la police Pescadero, suivies des lettres au style « SmallCaps » et « AllSmallCaps ». Dans ce cas, la même taille de police est utilisée pour les trois mots.

Texte à l’aide de majuscules OpenType

L’exemple de balisage suivant montre comment définir des majuscules pour la police Cspadero à l’aide des propriétés de l’objet Typography. Lorsque le format « SmallCaps » est utilisé, toute lettre majuscule de début est ignorée.

<Paragraph FontFamily="Pescadero" FontSize="48">
  <Run>CAPITALS</Run>
  <Run Typography.Capitals="SmallCaps">Capitals</Run>
  <Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>

L’exemple de code suivant effectue la même tâche que l’exemple de balisage précédent.

MyParagraph.FontFamily = new FontFamily("Pescadero");
MyParagraph.FontSize = 48;

Run run_1 = new Run("CAPITALS ");
MyParagraph.Inlines.Add(run_1);

Run run_2 = new Run("Capitals ");
run_2.Typography.Capitals = FontCapitals.SmallCaps;
MyParagraph.Inlines.Add(run_2);

Run run_3 = new Run("Capitals");
run_3.Typography.Capitals = FontCapitals.AllSmallCaps;
MyParagraph.Inlines.Add(run_3);

MyParagraph.Inlines.Add(new LineBreak());
MyParagraph.FontFamily = New FontFamily("Pescadero")
MyParagraph.FontSize = 48

Dim run_1 As New Run("CAPITALS ")
MyParagraph.Inlines.Add(run_1)

Dim run_2 As New Run("Capitals ")
run_2.Typography.Capitals = FontCapitals.SmallCaps
MyParagraph.Inlines.Add(run_2)

Dim run_3 As New Run("Capitals")
run_3.Typography.Capitals = FontCapitals.AllSmallCaps
MyParagraph.Inlines.Add(run_3)

MyParagraph.Inlines.Add(New LineBreak())

Propriétés de la classe typographie

Le tableau suivant répertorie les propriétés, les valeurs et les paramètres par défaut de l’objet Typography.

Propriété Valeur(s) Valeur par défaut
AnnotationAlternates Valeur numérique - octet 0
Capitals AllPetiteCaps | AllSmallCaps | Normal | PetiteCaps | SmallCaps | Titling | Unicase FontCapitals.Normal
CapitalSpacing Boolean false
CaseSensitiveForms Boolean false
ContextualAlternates Boolean true
ContextualLigatures Boolean true
ContextualSwashes Valeur numérique - octet 0
DiscretionaryLigatures Boolean false
EastAsianExpertForms Boolean false
EastAsianLanguage HojoKanji | Jis04 | Jis78 | Jis83 | Jis90 | NlcKanji | Normal | Simplified | Traditional | TraditionalNames FontEastAsianLanguage.Normal
EastAsianWidths Full | Half | Normal | Proportional | Quarter | Third FontEastAsianWidths.Normal
Fraction Normal | Slashed | Stacked FontFraction.Normal
HistoricalForms Boolean false
HistoricalLigatures Boolean false
Kerning Boolean true
MathematicalGreek Boolean false
NumeralAlignment Normal | Proportional | Tabular FontNumeralAlignment.Normal
NumeralStyle Boolean FontNumeralStyle.Normal
SlashedZero Boolean false
StandardLigatures Boolean true
StandardSwashes valeur numérique – octet 0
StylisticAlternates valeur numérique – octet 0
StylisticSet1 Boolean false
StylisticSet2 Boolean false
StylisticSet3 Boolean false
StylisticSet4 Boolean false
StylisticSet5 Boolean false
StylisticSet6 Boolean false
StylisticSet7 Boolean false
StylisticSet8 Boolean false
StylisticSet9 Boolean false
StylisticSet10 Boolean false
StylisticSet11 Boolean false
StylisticSet12 Boolean false
StylisticSet13 Boolean false
StylisticSet14 Boolean false
StylisticSet15 Boolean false
StylisticSet16 Boolean false
StylisticSet17 Boolean false
StylisticSet18 Boolean false
StylisticSet19 Boolean false
StylisticSet20 Boolean false
Variants Inferior | Normal | Ordinal | Ruby | Subscript | Superscript FontVariants.Normal

Voir aussi