Features für OpenType-Schriftarten
Dieses Thema enthält eine Übersicht über einige der Hauptfeatures der OpenType-Schriftarttechnologie in Windows Presentation Foundation (WPF).
OpenType-Schriftartformat
Das OpenType-Schriftartformat ist eine Erweiterung des TrueType®-Schriftartformats zur zusätzlichen Unterstützung von PostScript-Schriftartdaten. Das OpenType-Schriftartformat wurde gemeinsam von Microsoft und Adobe Corporation entwickelt. OpenType-Schriftarten und die Betriebssystemdienste, die OpenType-Schriftarten unterstützen, liefern dem Benutzer eine einfache Möglichkeit zur Installation und Verwendung von Schriftarten, unabhängig davon, ob die Schriftarten TrueTypeKonturen oder CFF-Konturen (PostScript) enthalten.
Das OpenType-Schriftartformat behebt die folgenden Probleme für Entwickler:
Breitere Multiplattform-Unterstützung.
Bessere Unterstützung für internationale Zeichensätze.
Besserer Schutz der Schriftartdaten.
Kleinere Dateigrößen die eine effizientere Schriftartenverteilung ermöglichen.
Breitere Unterstützung für erweiterte typografische Steuerelement.
Hinweis
Das Windows SDK stellt eine Reihe von Beispiel-OpenType-Schriftarten bereit, die Sie beim Erstellen von Windows Presentation Foundation (WPF)-Anwendungen verwenden können. Diese Schriftarten bieten die meisten der Funktionen, wie im folgenden Thema dargestellt. Weitere Informationen finden Sie unter OpenType-Beispielschriftartenpaket.
Detaillierte Informationen zum OpenType-Schriftartformat finden Sie unter OpenType-Spezifikation.
Erweiterte typografische Funktionen
Bei den erweiterten typografischen Tabellen (OpenType-Layouttabellen) werden die Funktionen der Schriftarten mit TrueType- oder CFF-Konturen ergänzt. OpenType-Layoutschriftarten enthalten zusätzliche Informationen, die die Leistungsfähigkeit der Schriftarten so erweitern, dass hochwertige internationale Typografie unterstützt wird. Die meisten OpenType-Schriftarten machen nur eine Teilmenge aller OpenType-Funktionen verfügbar. OpenType-Schriftarten bieten die folgenden Features.
Umfangreiche Zuordnung zwischen Zeichen und Symbolen, die Ligaturen, positionelle Formen, alternative Stile und andere Schriftartersetzungen unterstützen.
Unterstützung von zweidimensionaler Positionierung und Symbolanfügung.
Explizite Skript- und Sprachinformationen, die in der Schriftart enthalten sind, damit Textverarbeitungsanwendungen ihr Verhalten entsprechend anpassen können.
Die OpenType-Layouttabellen werden ausführlich im Abschnitt „Tabelle der Schriftartdateien“ der OpenType-Spezifikation beschrieben.
Im weiteren Verlauf dieser Übersicht werden die Spannbreite und Flexibilität einiger der visuell interessanten OpenType-Features dargestellt, die durch die Eigenschaften des Typography-Objekts verfügbar gemacht werden. Weitere Informationen über dieses Objekt finden Sie unter Typografieklasse.
Varianten
Varianten werden verwendet, um verschiedene typographische Formate zu rendern, z.B. hoch- und tiefgestellte Zeichen.
Hoch- und tiefgestellte Zeichen
Mit der Eigenschaft Variants können Sie hoch- und tiefgestellte Werte für eine OpenType-Schriftart festlegen.
Der folgende Text zeigt hochgestellte Zeichen für die Schriftart Palatino Linotype.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts hochgestellte Zeichen für die Schriftart Palatino Linotype definiert werden.
<Paragraph FontFamily="Palatino Linotype">
2<Run Typography.Variants="Superscript">3</Run>
14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>
Der folgende Text zeigt tiefgestellte Zeichen für die Schriftart Palatino Linotype.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts tiefgestellte Zeichen für die Schriftart Palatino Linotype definiert werden.
<Paragraph FontFamily="Palatino Linotype">
H<Run Typography.Variants="Subscript">2</Run>O
Footnote<Run Typography.Variants="Subscript">4</Run>
</Paragraph>
Dekorative Verwendung von hoch- und tiefgestellten Zeichen
Hoch- und tiefgestellte Zeichen können auch verwendet werden, um mit Groß- und Kleinbuchstaben aus einem Text dekorative Effekte zu erzielen. Der folgende Text zeigt hoch- und tiefgestellte Zeichen für die Schriftart Palatino Linotype. Beachten Sie, dass Großbuchstaben nicht beeinflusst werden.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts hochgestellte und tiefgestellte Zeichen für eine Schriftart definiert werden.
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Superscript">
Chapter One
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Subscript">
Chapter One
</Paragraph>
Großbuchstaben
Großbuchstaben sind ein Satz typografischer Formen, bei dem Text mit Symbolen gerendert wird, die als Großbuchstaben formatiert sind. Wenn Text ausschließlich in Großbuchstaben gerendert wird, kann der Abstand zwischen den Buchstaben als zu gering, die Breite der Buchstaben als zu groß und die Proportionen der Buchstaben als zu unausgewogen erscheinen. OpenType unterstützt eine Reihe von Formatierungen für Großbuchstaben, z. B. Kapitälchen, kleine Kapitälchen, Titel und Großbuchstabenabstand. Mit diesen Formatierungen kann die Darstellung von Großbuchstaben gesteuert werden.
Der folgende Text zeigt zuerst die Standardgroßbuchstaben, gefolgt von den Buchstaben in den Formaten „SmallCaps“ und „AllSmallCaps“ für die Schriftart Pescadero. Für alle drei Wörter wird der gleiche Schriftgrad verwendet.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Großbuchstaben für die Schriftart Pescadero definiert werden. Wenn das „SmallCaps“-Format verwendet wird, werden führende Großbuchstaben ignoriert.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
Großbuchstaben für Titel
Großbuchstaben für Titel sind weniger stark ausgebildet und proportioniert und sollen im Vergleich zu normalen Großbuchstaben eine elegantere Darstellungsweise sicherstellen. Großbuchstaben für Titel werden üblicherweise mit größeren Schriftgraden in Überschriften verwendet. Der folgende Text zeigt normale Großbuchstaben und Großbuchstaben für Titel für die Schriftart Pescadero. Beachten Sie die geringeren Strichstärken des Texts in der zweiten Zeile.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Großbuchstaben für Titel für die Schriftart Pescadero definiert werden.
<Paragraph FontFamily="Pescadero">
<Run Typography.Capitals="Titling">chapter one</Run>
</Paragraph>
Großbuchstabenabstand
Der Großbuchstabenabstand ist ein Feature, mit dem Sie in einem Textabschnitt, der ausschließlich aus Großbuchstaben besteht, die Laufweite vergrößern können. Großbuchstaben werden i. d. R. so entworfen, dass sie mit Kleinbuchstaben harmonieren. Ein Abstand, der zwischen einem Großbuchstaben und einem Kleinbuchstaben ästhetisch wirkt, kann zwischen Großbuchstaben zu gering erscheinen. Im folgende Text werden normale Großbuchstaben und Großbuchstaben für Titel für die Schriftart Pescadero gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts der Großbuchstabenabstand für die Schriftart Pescadero definiert werden.
<Paragraph FontFamily="Pescadero">
<Run Typography.CapitalSpacing="True">CHAPTER ONE</Run>
</Paragraph>
Ligaturen
Ligaturen sind zwei oder mehr Symbole, die zu einem einzigen Symbol zusammengefügt werden, um einen besser lesbaren oder attraktiveren Text zu erstellen. OpenType-Schriftarten unterstützen vier Typen von Ligaturen:
Standardligaturen. Zur Verbesserung der Lesbarkeit. Zu den Standardligaturen gehören „fi“, „fl“ und „ff“.
Kontextbedingte Ligaturen. Mit Kontextligaturen soll die Lesbarkeit verbessert werden, indem die Buchstaben einer Ligatur optimal verbunden werden.
Bedingte Ligaturen. Bedingte Ligaturen sollen verzierend wirken, wobei die Lesbarkeit eine untergeordnete Rolle spielt.
Historische Ligaturen. Historische Ligaturen sollen eine historische Wirkung erzielen, wobei die Lesbarkeit eine untergeordnete Rolle spielt.
Im folgenden Text werden Symbole für Standardligaturen in der Schriftart Pericles gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Standard-Ligatursymbole in der Schriftart Pericles definiert werden.
<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>
Im folgenden Text werden Symbole für bedingte Ligaturen in der Schriftart Pericles gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts willkürliche Ligatursymbole in der Schriftart Pericles definiert werden.
<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>
Standardmäßig aktivieren OpenType-Schriftarten in Windows Presentation Foundation (WPF) Standardligaturen. Wenn Sie beispielsweise die Schriftart Palatino Linotype verwenden, werden die Standardligaturen „fi“, „ff“ und „fl“ als kombiniertes Zeichensymbol angezeigt. Dabei berühren die beiden Zeichen einer Standardligatur einander.
Allerdings können Sie die Features für Standardligaturen auch deaktivieren, sodass z.B. die Standardligatur „ff“ nicht als kombiniertes Zeichensymbol, sondern als zwei einzelne Symbole angezeigt wird.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Standard-Ligatursymbole in der Schriftart Palatino Linotype definiert werden.
<!-- Set standard ligatures to false in order to disable feature. -->
<Paragraph Typography.StandardLigatures="False" FontFamily="Palatino Linotype" FontSize="72">
fi ff fl
</Paragraph>
Schwünge
Schwungschrift besteht aus dekorativen Symbolen, deren ausgefeilte Verzierung häufig mit Kalligraphie assoziiert wird. Im folgenden Text werden Standard- und Schwungsymbole für die Schriftart Pescadero gezeigt.
Schwungschrift wird häufig als dekoratives Element in kurzen Sätzen verwendet, z.B. in Veranstaltungsankündigungen. Im folgenden Text werden die Großbuchstaben eines Veranstaltungstitels mit Schwungschrift hervorgehoben.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Schwungschrift für eine Schriftart definiert wird.
<Paragraph FontFamily="Pescadero" TextBlock.TextAlignment="Center">
Wishing you a<LineBreak/>
<Run Typography.StandardSwashes="1" FontSize="36">Happy New Year!</Run>
</Paragraph>
Kontextbedingte Schwungschrift
Bestimmte Kombinationen von Symbolen in Schwungschrift können unästhetisch wirken, z.B. sich überschneidende Unterlängen bei aufeinander folgenden Buchstaben. Mit kontextbedingter Schwungschrift können Sie Varianten eines Symbols in Schwungschrift verwenden, deren Darstellung dann ästhetischer wirkt. Im folgenden Text wird das gleiche Wort vor und nach dem Übernehmen einer kontextbedingten Variante für die Schwungschrift gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts kontextuelle Schwungschrift für die Schriftart Pescadero definiert wird.
<Paragraph FontFamily="Pescadero" Typography.StandardSwashes="1">
Lyon <Run Typography.ContextualSwashes="1">L</Run>yon
</Paragraph>
Alternative Stile
Alternative Stilvarianten sind Symbole, die ein Standardsymbol ersetzen können. OpenType-Schriftarten (wie im folgenden Beispiel die Schriftart Pericles) enthalten Varianten von Symbolen, mit denen Text auf verschiedene Weise dargestellt werden kann. Im folgenden Text werden die Standardsymbole der Schriftart Pericles dargestellt.
Die OpenType-Schriftart Pericles enthält zusätzliche Glyphen, die als alternativer Stil für den Standardsatz von Glyphen verwendet werden können. Im folgenden Text werden Symbole im alternativen Stil gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts stilistisch alternative Symbole in der Schriftart Pericles definiert werden.
<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>
Im folgenden Text werden verschiedene Symbole im alternativen Stil in der Schriftart Pericles gezeigt.
Im folgenden Markupbeispiel wird veranschaulicht, wie diese zusätzlichen Stilvarianten von Symbolen definiert werden.
<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>
Zufällige kontextbedingte Varianten
Bei zufälligen kontextbedingten Varianten werden mehrere Ersatzsymbole für ein einzelnes Zeichen bereitgestellt. Wenn dieses Feature für handschriftähnliche Schriftarten implementiert ist, kann Handschrift mit einem Satz zufällig ausgewählter Symbole simuliert werden, die leicht unterschiedlich dargestellt werden. Im folgenden Text werden zufällige kontextbedingte Varianten für die Schriftart Lindsey verwendet. Dabei wird der Buchstabe „a“ in der Darstellung leicht abgewandelt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts zufällige kontextuelle Alternativen in der Schriftart Lindsey definiert werden.
<TextBlock FontFamily="Lindsey">
<Run Typography.ContextualAlternates="True">
a banana in a cabana
</Run>
</TextBlock>
Historische Formen
Unter historischen Formen werden der Vergangenheit verbreitete typografische Konventionen verstanden. Im folgenden Text wird „Boston, Massachusetts“ unter Verwendung einer historischen Form der Symbole in der Schriftart Palatino Linotype gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts historische Formen für die Schriftart Palatino Linotype definiert werden.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.HistoricalForms="True">Boston, Massachusetts</Run>
</Paragraph>
Numerische Formate
OpenType-Schriftarten unterstützen eine große Anzahl von Features, die mit numerischen Werten im Text verwendet werden können.
Brüche
OpenType-Schriftarten unterstützen u. a. auch Bruchformate mit diagonalem und horizontalem Bruchstrich.
Im folgenden Text werden Bruchformate für die Schriftart Palatino Linotype gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Bruchformatstile für die Schriftart Palatino Linotype definiert werden.
<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>
Mediävalziffern
OpenType-Schriftarten unterstützen Mediävalziffern. Dieses Format dient der Anzeige von Ziffern in nicht mehr üblichen Stilen. Im folgenden Text wird ein Datum aus dem 18. Jahrhundert im Standardformat und mit Mediävalziffern in der Schriftart Palatino Linotype gezeigt.
Im folgenden Text werden in der Schriftart Palatino Linotype zuerst Standardziffern und dann Mediävalziffern gezeigt.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Mediävalziffern für die Schriftart Palatino Linotype definiert werden.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.NumeralStyle="Normal">1234567890</Run>
<Run Typography.NumeralStyle="OldStyle">1234567890</Run>
</Paragraph>
Proportionale Darstellung und Tabellendarstellung
OpenType-Schriftarten unterstützen bei der Verwendung von Ziffern in proportionaler und in Tabellendarstellung ein Feature zum Anpassen von Ziffern in der Breite. In der proportionalen Darstellung verfügt jede Ziffer über eine eigene Breite: die „1“ ist schmaler als die „5“. In der Tabellendarstellung werden alle Ziffern mit der gleichen Breite dargestellt und vertikal ausgerichtet. Dies verbessert die Lesbarkeit z.B. bei Finanzinformationen.
Im folgenden Text werden in der ersten Spalte zwei proportionale Zahlen in der Schriftart Miramonte proportional dargestellt. Die Ziffern „5“ und „1“ unterscheiden sich in der Breite. In der zweiten Spalte wurde die Breite der gleichen Zahlen mit dem Feature für die Tabellendarstellung angepasst.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Ziffern in proportionaler und in Tabellendarstellung für die Schriftart Miramonte definiert werden.
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Proportional">114,131</Run>
</TextBlock>
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Tabular">114,131</Run>
</TextBlock>
Null mit Schrägstrich
OpenType-Schriftarten unterstützen das Ziffernformat einer 0 (null) mit Schrägstrich, um den Buchstaben „O“ und die Ziffer „0“ optisch besser voneinander zu unterscheiden. Die Ziffer 0 (null) mit Schrägstrich wird häufig für Kennungen in Finanz- und Geschäftsinformationen verwendet.
Im folgenden Text wird ein Beispiel mit einer Bestellnummer in der Schriftart Miramonte gezeigt. In der ersten Zeile werden Standardziffern verwendet. In der zweiten wird die Ziffer 0 (null) mit Schrägstrich verwendet, um die Ziffer 0 (null) optisch besser vom Großbuchstaben „O“ zu unterscheiden.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts die Ziffer 0 mit Schrägstrich für die Schriftart Miramonte definiert wird.
<Paragraph FontFamily="Miramonte">
<Run>Order #0048-OTC-390</Run>
<LineBreak/>
<Run Typography.SlashedZero="True">Order #0048-OTC-390</Run>
</Paragraph>
Typografieklasse
Das Typography-Objekt macht den Satz von Merkmalen verfügbar, die eine OpenType-Schrift unterstützt. Durch Festlegen der Eigenschaften von Typography in Markup können Sie auf einfache Weise Dokumente erstellen, in denen die OpenType-Features genutzt werden.
Der folgende Text zeigt zuerst die Standardgroßbuchstaben, gefolgt von den Buchstaben in den Formaten „SmallCaps“ und „AllSmallCaps“ für die Schriftart Pescadero. Für alle drei Wörter wird der gleiche Schriftgrad verwendet.
Im folgenden Markupbeispiel wird gezeigt, wie mit den Eigenschaften des Typography-Objekts Großbuchstaben für die Schriftart Pescadero definiert werden. Wenn das „SmallCaps“-Format verwendet wird, werden führende Großbuchstaben ignoriert.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
Im folgenden Codebeispiel wird die gleiche Aufgabe wie im vorherigen Markupbeispiel ausgeführt.
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())
Typografieklasseneigenschaften
In der folgenden Tabelle werden die Eigenschaften, Werte und Standardeinstellungen des Typography-Objekts aufgelistet.
Weitere Informationen
.NET Desktop feedback
Feedback
Feedback senden und anzeigen für