OpenType funkcje czcionki
Ten temat zawiera omówienie niektórych kluczowych funkcji technologii czcionek OpenType w programie Windows Presentation Foundation (WPF).
Format czcionki OpenType
Format czcionki OpenType jest rozszerzeniem formatu czcionki TrueType®, dodając obsługę danych czcionek PostScript. Format czcionki OpenType został opracowany wspólnie przez firmę Microsoft i firmę Adobe Corporation. Czcionki OpenType i usługi systemu operacyjnego, które obsługują czcionki OpenType, zapewniają użytkownikom prosty sposób instalowania i używania czcionek, niezależnie od tego, czy czcionki zawierają konspektu TrueType, czy konspektu CFF (PostScript).
Format czcionki OpenType rozwiązuje następujące wyzwania dla deweloperów:
Szersza obsługa wielu platform.
Lepsza obsługa międzynarodowych zestawów znaków.
Lepsza ochrona danych czcionek.
Mniejsze rozmiary plików w celu zwiększenia wydajności dystrybucji czcionek.
Szersza obsługa zaawansowanej kontrolki typograficznej.
Uwaga
Zestaw Windows SDK zawiera zestaw przykładowych czcionek OpenType, których można używać z aplikacjami Windows Presentation Foundation (WPF). Te czcionki zawierają większość funkcji przedstawionych w pozostałej części tego tematu. Aby uzyskać więcej informacji, zobacz Przykładowy pakiet czcionek OpenType.
Aby uzyskać szczegółowe informacje na temat formatu czcionki OpenType, zobacz specyfikację OpenType.
Zaawansowane rozszerzenia typograficzne
Tabele zaawansowane typograficzne (tabele układu OpenType) rozszerzają funkcjonalność czcionek za pomocą konturów TrueType lub CFF. Czcionki układu OpenType zawierają dodatkowe informacje, które rozszerzają możliwości czcionek w celu obsługi wysokiej jakości międzynarodowych typografii. Większość czcionek OpenType uwidacznia tylko podzbiór wszystkich dostępnych funkcji OpenType. Czcionki OpenType udostępniają następujące funkcje.
Rozbudowane mapowanie znaków i glifów, które obsługują ligatury, formy pozycyjne, alternatywne i inne podstawianie czcionek.
Obsługa pozycjonowania dwuwymiarowego i dołączania glifów.
Jawny skrypt i informacje o języku zawarte w czcionce, dzięki czemu aplikacja do przetwarzania tekstu może odpowiednio dostosować swoje zachowanie.
Tabele układu OpenType zostały szczegółowo opisane w sekcji "Tabele plików czcionek" specyfikacji OpenType.
W pozostałej części tego przeglądu przedstawiono szerokość i elastyczność niektórych wizualnie interesujących funkcji OpenType, które są uwidocznione przez właściwości Typography obiektu. Aby uzyskać więcej informacji na temat tego obiektu, zobacz Typography Class (Klasa typografii).
Warianty
Warianty są używane do renderowania różnych stylów typograficznych, takich jak indeksy górne i indeksy dolny.
Indeksy górne i indeksy dolny
Właściwość Variants umożliwia ustawianie wartości indeksu górnego i indeksu dolnego dla czcionki OpenType.
Poniższy tekst wyświetla indeksy górne czcionki Palatino Linotype.
W poniższym przykładzie znaczników pokazano, jak zdefiniować indeksy górne dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Palatino Linotype">
2<Run Typography.Variants="Superscript">3</Run>
14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>
Poniższy tekst wyświetla indeksy dolny czcionki Palatino Linotype.
W poniższym przykładzie znaczników pokazano, jak zdefiniować indeksy dolny czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Palatino Linotype">
H<Run Typography.Variants="Subscript">2</Run>O
Footnote<Run Typography.Variants="Subscript">4</Run>
</Paragraph>
Dekoracyjne zastosowania indeksów górnych i indeksów dolnych
Możesz również użyć indeksów górnych i indeksów dolnych, aby utworzyć efekty dekoracyjne tekstu z mieszanym przypadkiem. Poniższy tekst wyświetla tekst indeksu górnego i indeksu dolnego dla czcionki Palatino Linotype. Należy pamiętać, że nie ma to wpływu na stolice.
W poniższym przykładzie znaczników pokazano, jak zdefiniować indeksy górne i indeksy dolny dla czcionki przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Superscript">
Chapter One
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Subscript">
Chapter One
</Paragraph>
Stolice
Wielkie litery to zestaw form typograficznych, które renderują tekst w wielkich glifach. Zazwyczaj, gdy tekst jest renderowany jako wszystkie litery, odstępy między literami mogą wydawać się zbyt ciasne, a waga i proporcja liter są zbyt duże. OpenType obsługuje wiele formatów stylów dla stolic, w tym małych stolic, drobnych stolic, titling i odstępów kapitałowych. Te formaty stylów umożliwiają kontrolowanie wyglądu stolic.
Poniższy tekst wyświetla standardowe wielkie litery dla czcionki Pescadero, a następnie litery stylowane jako "SmallCaps" i "AllSmallCaps". W tym przypadku ten sam rozmiar czcionki jest używany dla wszystkich trzech wyrazów.
W poniższym przykładzie znaczników pokazano, jak zdefiniować litery dla czcionki Pescadero przy użyciu właściwości Typography obiektu. Gdy jest używany format "SmallCaps", każda główna litera jest ignorowana.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
Stolice titling
Tytułowe stolice są lżejsze w wadze i proporcji i zaprojektowane, aby dać bardziej elegancki wygląd niż normalne stolice. Tytułowe litery są zwykle używane w większych rozmiarach czcionek jako nagłówki. Poniższy tekst wyświetla normalne i titling capitals dla czcionki Pescadero. Zwróć uwagę na węższe szerokości stem tekstu w drugim wierszu.
W poniższym przykładzie znaczników pokazano, jak zdefiniować stolice titling dla czcionki Pescadero przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Pescadero">
<Run Typography.Capitals="Titling">chapter one</Run>
</Paragraph>
Odstępy między literami
Odstępy między literami to funkcja, która umożliwia zapewnienie większej liczby odstępów w przypadku używania wszystkich liter w tekście. Wielkie litery są zwykle przeznaczone do mieszania z małymi literami. Odstępy, które wydają się atrakcyjne między literą a literą wielką i małą literą, mogą wyglądać zbyt mocno, gdy używane są wszystkie wielkie litery. Poniższy tekst wyświetla normalne odstępy między literami czcionki Pescadero.
W poniższym przykładzie znaczników pokazano, jak zdefiniować odstępy między literami czcionki Pescadero przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Pescadero">
<Run Typography.CapitalSpacing="True">CHAPTER ONE</Run>
</Paragraph>
Ligatury
Ligatury to co najmniej dwa glify, które tworzą się w jeden glif w celu utworzenia bardziej czytelnego lub atrakcyjnego tekstu. Czcionki OpenType obsługują cztery typy ligatur:
Ligatury standardowe. Zaprojektowano tak, aby zwiększyć czytelność. Ligatury standardowe obejmują "fi", "fl" i "ff".
Kontekstowe ligatury. Zaprojektowano w celu zwiększenia czytelności, zapewniając lepsze zachowanie łączenia między znakami tworzącym ligaturę.
Więzadła uznaniowe. Zaprojektowane z myślą o ozdobie, a nie specjalnie zaprojektowane pod kątem czytelności.
Historyczne ligatury. Zaprojektowano tak, aby był historyczny, a nie specjalnie zaprojektowany pod kątem czytelności.
Poniższy tekst wyświetla standardowe lify ligaturowe dla czcionki Pericles.
W poniższym przykładzie znaczników pokazano, jak zdefiniować standardowe lify ligaturowe dla czcionki Pericles przy użyciu właściwości Typography obiektu.
<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>
Poniższy tekst wyświetla uznaniowe ligatury glyphs dla czcionki Pericles.
Poniższy przykład znaczników pokazuje, jak zdefiniować uznaniowe ligatury glyphs dla czcionki Pericles przy użyciu właściwości Typography obiektu.
<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>
Domyślnie czcionki OpenType w programie Windows Presentation Foundation (WPF) włączają więzadła standardowe. Jeśli na przykład używasz czcionki Palatino Linotype, standardowe ligatury "fi", "ff" i "fl" są wyświetlane jako połączony znak glif. Zwróć uwagę, że para znaków dla każdego standardowego ligatury dotyka siebie nawzajem.
Można jednak wyłączyć standardowe funkcje ligatury, tak aby standardowe ligatury, takie jak "ff", wyświetlały jako dwa oddzielne glify, a nie jako połączony glyph.
W poniższym przykładzie znaczników pokazano, jak wyłączyć standardowe lify ligaturowe dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<!-- Set standard ligatures to false in order to disable feature. -->
<Paragraph Typography.StandardLigatures="False" FontFamily="Palatino Linotype" FontSize="72">
fi ff fl
</Paragraph>
Ukośniki
Swashes to ozdobne glify, które używają wyszukanych ozdobników często związanych z kaligrafią. Poniższy tekst wyświetla standardowe i swash glyphs czcionki Pescadero.
Ukośniki są często używane jako elementy dekoracyjne w krótkich frazach, takich jak ogłoszenia zdarzeń. Poniższy tekst używa ukośników, aby podkreślić wielkie litery nazwy zdarzenia.
W poniższym przykładzie znaczników pokazano, jak zdefiniować ukośniki dla czcionki przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Pescadero" TextBlock.TextAlignment="Center">
Wishing you a<LineBreak/>
<Run Typography.StandardSwashes="1" FontSize="36">Happy New Year!</Run>
</Paragraph>
Kontekstowe ukośniki
Niektóre kombinacje pokosów glifów mogą powodować nieatrakcyjny wygląd, taki jak nakładające się malejące na sąsiednich literach. Użycie kontekstowego swash umożliwia użycie zastępczego pokosu glyph, który daje lepszy wygląd. Poniższy tekst przedstawia to samo słowo przed zastosowaniem kontekstowego swash i po nim.
W poniższym przykładzie znaczników pokazano, jak zdefiniować kontekstowy pokos czcionki Pescadero przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Pescadero" Typography.StandardSwashes="1">
Lyon <Run Typography.ContextualSwashes="1">L</Run>yon
</Paragraph>
Zastępców
Alternatywne to glify, które można zastąpić standardowym glifem. Czcionki OpenType, takie jak czcionka Pericles używana w poniższych przykładach, mogą zawierać alternatywne glify, których można użyć do tworzenia różnych wyglądów tekstu. Poniższy tekst wyświetla standardowe glyphs czcionki Pericles.
Czcionka Pericles OpenType zawiera dodatkowe glify, które zapewniają stylistyczne alternatywy dla standardowego zestawu glifów. Poniższy tekst wyświetla stylistyczne alternatywne glify.
Poniższy przykład znaczników przedstawia sposób definiowania alternatywnych glyphs stylistycznych dla czcionki Pericles przy użyciu właściwości Typography obiektu.
<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>
Poniższy tekst zawiera kilka innych stylistycznych alternatywnych glyphs dla czcionki Pericles.
Poniższy przykład znaczników pokazuje, jak zdefiniować te inne stylistyczne alternatywne glify.
<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>
Losowe alternatywne kontekstowe
Losowe alternatywne kontekstowe zapewniają wiele symboli zastępczych dla pojedynczego znaku. Po zaimplementowaniu przy użyciu czcionek typu skryptu ta funkcja może symulować pisanie ręczne przy użyciu zestawu losowo wybranych glifów z niewielkimi różnicami w wyglądzie. Poniższy tekst używa losowych alternatywnych kontekstowych dla czcionki Lindsey. Zwróć uwagę, że litera "a" różni się nieznacznie w wyglądzie
W poniższym przykładzie znaczników pokazano, jak zdefiniować losowe kontekstowe alternatywy dla czcionki Lindsey przy użyciu właściwości Typography obiektu.
<TextBlock FontFamily="Lindsey">
<Run Typography.ContextualAlternates="True">
a banana in a cabana
</Run>
</TextBlock>
Formularze historyczne
Formy historyczne to konwencje typograficzne, które były powszechne w przeszłości. Poniższy tekst wyświetla frazę "Boston, Massachusetts", używając historycznej formy glifów dla czcionki Palatino Linotype.
Poniższy przykład znaczników przedstawia sposób definiowania formularzy historycznych dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.HistoricalForms="True">Boston, Massachusetts</Run>
</Paragraph>
Style liczbowe
Czcionki OpenType obsługują dużą liczbę funkcji, których można używać z wartościami liczbowymi w tekście.
Frakcji
Czcionki OpenType obsługują style ułamków, w tym obcięte i ułożone.
Poniższy tekst wyświetla style ułamkowe czcionki Palatino Linotype.
W poniższym przykładzie znaczników pokazano, jak zdefiniować style ułamkowe dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<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>
Stare cyfry stylów
Czcionki OpenType obsługują stary format liczbowy stylu. Ten format jest przydatny do wyświetlania liczb w stylach, które nie są już standardowe. Poniższy tekst zawiera 18-wieczną datę w standardowych i starych formatach liczbowych stylu dla czcionki Palatino Linotype.
Poniższy tekst wyświetla standardowe cyfry czcionki Palatino Linotype, a następnie stare cyfry stylu.
Poniższy przykład znaczników przedstawia sposób definiowania starych liczb stylu dla czcionki Palatino Linotype przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.NumeralStyle="Normal">1234567890</Run>
<Run Typography.NumeralStyle="OldStyle">1234567890</Run>
</Paragraph>
Liczby proporcjonalne i tabelaryczne
Czcionki OpenType obsługują funkcję rysunku proporcjonalnego i tabelarycznego w celu kontrolowania wyrównania szerokości podczas używania liczb. Liczby proporcjonalne traktują każdą liczbę jako o innej szerokości — "1" jest węższa niż "5". Dane tabelaryczne są traktowane jako liczby o równej szerokości, tak aby były wyrównane w pionie, co zwiększa czytelność informacji o typie finansowym.
Poniższy tekst wyświetla dwie proporcjonalne liczby w pierwszej kolumnie przy użyciu czcionki Miramonte. Zwróć uwagę na różnicę szerokości między cyframi "5" i "1". Druga kolumna przedstawia te same dwie wartości liczbowe o szerokościach dostosowanych za pomocą funkcji rysunek tabelaryczny.
Poniższy przykład znaczników przedstawia sposób definiowania proporcjonalnych i tabelarycznych liczb dla czcionki Miramonte przy użyciu właściwości Typography obiektu.
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Proportional">114,131</Run>
</TextBlock>
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Tabular">114,131</Run>
</TextBlock>
Obcięte zero
Czcionki OpenType obsługują obcięty format liczbowy zerowy, aby podkreślić różnicę między literą "O" a cyfrą "0". Obcięta liczba zerowa jest często używana dla identyfikatorów w informacjach finansowych i biznesowych.
Poniższy tekst wyświetla przykładowy identyfikator zamówienia przy użyciu czcionki Miramonte. Pierwszy wiersz używa standardowych liczb. Drugi wiersz użył obciętych liczb zerowych, aby zapewnić lepszy kontrast z wielką literą "O".
W poniższym przykładzie znaczników pokazano, jak zdefiniować obcięte liczby zerowe dla czcionki Miramonte przy użyciu właściwości Typography obiektu.
<Paragraph FontFamily="Miramonte">
<Run>Order #0048-OTC-390</Run>
<LineBreak/>
<Run Typography.SlashedZero="True">Order #0048-OTC-390</Run>
</Paragraph>
Typografia, klasa
Obiekt Typography uwidacznia zestaw funkcji, które obsługuje czcionka OpenType. Ustawiając właściwości Typography znaczników, można łatwo tworzyć dokumenty korzystające z funkcji OpenType.
Poniższy tekst wyświetla standardowe wielkie litery dla czcionki Pescadero, a następnie litery stylowane jako "SmallCaps" i "AllSmallCaps". W tym przypadku ten sam rozmiar czcionki jest używany dla wszystkich trzech wyrazów.
W poniższym przykładzie znaczników pokazano, jak zdefiniować litery dla czcionki Pescadero przy użyciu właściwości Typography obiektu. Gdy jest używany format "SmallCaps", każda główna litera jest ignorowana.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
Poniższy przykład kodu wykonuje to samo zadanie co w poprzednim przykładzie znaczników.
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())
Właściwości klasy typografii
W poniższej tabeli wymieniono właściwości, wartości i ustawienia Typography domyślne obiektu.
Zobacz też
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla