Sdílet prostřednictvím


Funkce písma OpenType

Toto téma obsahuje přehled některých klíčových funkcí technologie písem OpenType ve Windows Presentation Foundation (WPF).

Formát písma OpenType

Formát písma OpenType je rozšířením formátu písma TrueType® a přidává podporu pro data písem Jazyka PostScript. Formát písma OpenType byl vyvinut společně společností Microsoft a Adobe Corporation. Písma OpenType a služby operačního systému, které podporují písma OpenType, poskytují uživatelům jednoduchý způsob instalace a používání písem bez ohledu na to, jestli písma obsahují osnovy TrueType nebo osnovy CFF (PostScript).

Formát písma OpenType řeší následující problémy vývojářů:

  • Širší podpora pro více platforem

  • Lepší podpora mezinárodních znakových sad.

  • Lepší ochrana dat písma

  • Menší velikosti souborů, aby byla distribuce písem efektivnější.

  • Širší podpora pokročilého typografického ovládacího prvku

Poznámka:

Sada Windows SDK obsahuje sadu ukázkových písem OpenType, která můžete použít s aplikacemi WPF (Windows Presentation Foundation). Tato písma poskytují většinu funkcí ilustrovaných ve zbytku tohoto tématu. Další informace naleznete v Sample OpenType Font Pack.

Podrobnosti o formátu písma OpenType najdete ve specifikaci OpenType.

Rozšířená typografické rozšíření

Rozšířené typografické tabulky (tabulky OpenType Layout) rozšiřují funkce písem s obrysy TrueType nebo CFF. Písma OpenType Layout obsahují další informace, které rozšiřují možnosti písem, aby podporovala vysoce kvalitní mezinárodní typografii. Většina písem OpenType zveřejňuje pouze podmnožinu dostupných funkcí OpenType. Písma OpenType poskytují následující funkce.

  • Bohaté mapování mezi znaky a glyfy, které podporují ligatury, poziční formy, alternativy a další náhrady písma.

  • Podpora dvojrozměrného umístění a připojení glyfů.

  • Explicitní skript a informace o jazyce obsažené v písmu, takže aplikace pro zpracování textu může odpovídajícím způsobem upravit své chování.

Tabulky Rozložení OpenType jsou podrobněji popsány v části "Tabulky souborů písem" specifikace OpenType.

Zbývající část tohoto přehledu představuje šířku a flexibilitu některých vizuálně zajímavých funkcí OpenType, které jsou vystaveny vlastnostmi objektu Typography . Další informace o tomto objektu naleznete v tématu Typografická třída.

Varianty

Varianty se používají pro vykreslování různých typografických stylů, jako jsou horní indexy a dolní indexy.

Horní a dolní indexy

Tato Variants vlastnost umožňuje nastavit hodnoty horního a dolního indexu pro písmo OpenType.

Následující text zobrazuje horní indexy pro písmo Palatino Linotype.

Text s horními indexy OpenType

Následující příklad revize ukazuje, jak definovat horní indexy pro Palatino Linotype písmo pomocí vlastností objektu Typography .

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

Následující text zobrazuje spodní indexy pro písmo Palatino Linotype.

Text používající dolní indexy OpenType

Následující příklad značkování ukazuje, jak definovat dolní indexy pro font Palatino Linotype pomocí vlastností objektu Typography.

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

Dekorativní použití horních a dolních číslic

Pomocí horních a dolních indexů můžete také vytvářet dekorativní efekty textu se smíšenými písmeny. Následující text zobrazuje horní a dolní index pro písmo Palatino Linotype. Všimněte si, že velká písmena nejsou ovlivněna.

Text s použitím horních a dolních indexů OpenType

Následující příklad značkování ukazuje, jak definovat horní a dolní indexy pro font pomocí vlastností objektu Typography.

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

Kapitály

Velká písmena jsou sada typografických forem, které vykreslují text ve stylu velkých písmen. Obvykle, když je text vykreslen jako všechna velká písmena, může se zdát, že mezery mezi písmeny jsou příliš úzké a váha a proporce písmen příliš těžké. OpenType podporuje řadu formátů stylů pro velká písmena, včetně malých velkých písmen, malých velkých písmen, názvu a mezer mezi velkými písmeny. Tyto formáty stylů umožňují řídit vzhled velkých písmen.

Následující text zobrazuje standardní velká písmena pro písmo Pescadero následovaná písmeny ve stylu "SmallCaps" a "AllSmallCaps". V tomto případě se pro všechna tři slova používá stejná velikost písma.

Text s velkými písmeny OpenType

Následující příklad revize ukazuje, jak definovat velká písmena pro písmo Pescadero pomocí vlastností objektu Typography . Při použití formátu SmallCaps se ignoruje počáteční velké písmeno.

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

Velká písmena v názvu

Velká písmena s názvem jsou světlejší v hmotnosti a poměru a jsou navržena tak, aby poskytovala elegantnější vzhled než normální kapitálky. Velká písmena se obvykle používají ve větších velikostech písma pro nadpisy. Následující text zobrazuje pro písmo Pescadero normální a titulková velká písmena. Všimněte si užších šířek textu na druhém řádku.

Text používající titulní kapitály OpenType

Následující příklad značkovacího jazyka ukazuje, jak definovat titlová velká písmena pro písmo Pescadero pomocí vlastností objektu Typography.

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

Rozestupy mezi velkými písmeny

Velké mezery jsou funkce, která umožňuje poskytnout větší mezery při použití všech velkých písmen v textu. Velká písmena jsou obvykle navržená pro kombinaci s malými písmeny. Mezery, které se zdají atraktivní mezi velkým písmenem a malým písmenem, mohou vypadat příliš těsně, když se použijí všechna velká písmena. Následující text zobrazuje normální a velké mezery pro písmo Pescadero.

Text s mezerami pro kapitálky typu OpenType

Následující příklad značek ukazuje, jak definovat velké mezery pro písmo Pescadero pomocí vlastností objektu Typography .

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

Ligatury

Ligatury jsou dva nebo více glyfů, které jsou vytvořeny do jednoho glyfu, aby bylo možné vytvořit čitelnější nebo atraktivní text. Písma OpenType podporují čtyři typy ligatur:

  • Standardní ligatury. Navržené tak, aby zlepšily čitelnost. Mezi standardní ligatury patří "fi", "fl" a "ff".

  • Kontextové ligatury. Navržená tak, aby zlepšila čitelnost tím, že poskytuje lepší spojení mezi znaky, které tvoří ligaturu.

  • Volitelné ligatury. Navržené tak, aby byly okrasné, a nejsou speciálně navrženy pro čitelnost.

  • Historické ligatury. Navržené tak, aby byly historické, a ne speciálně navržené pro čitelnost.

Následující text zobrazuje standardní ligatury pro písmo Pericles.

Text používající standardní ligatury OpenType Text

Následující příklad značkování ukazuje, jak definovat standardní ligaturní glyfy pro písmo Pericles pomocí vlastností objektu 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>

Následující text zobrazuje volitelné ligatury pro písmo Pericles.

Text používající volitelné ligatury OpenType

Následující příklad značkování ukazuje, jak definovat volitelné ligaturní glyfy pro písmo Pericles pomocí vlastností objektu 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>

Ve výchozím nastavení písma OpenType ve Windows Presentation Foundation (WPF) povolují standardní ligatury. Pokud například použijete písmo Palatino Linotype, standardní ligatury "fi", "ff" a "fl" se zobrazí jako kombinovaný znak glyph. Všimněte si, že dvojice znaků pro každou standardní ligaturu se navzájem dotkne.

Text používající standardní ligatury OpenType s Palatino Linotype

Můžete však zakázat standardní funkce ligatur, aby se standardní ligatura, jako například "ff", zobrazovala jako dva samostatné glyfy, místo kombinovaného glyfu.

Text používající zakázané standardní ligatury OpenType

Následující příklad značkování ukazuje, jak zakázat standardní ligatorové glyfy pro písmo Palatino Linotype pomocí vlastností objektu Typography.

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

Swashes

Swashes jsou dekorativní glyfy, které používají propracované ornamenty často spojené s calligrafií. Následující text zobrazuje standardní a zdobné glyfy pro písmo Pescadero.

Text pomocí standardu OpenType a ozdobné glyfy

Swashes se často používají jako dekorativní prvky v krátkých výrazech, jako jsou oznámení o událostech. Následující text používá k zvýraznění velkých písmen názvu události mezery.

Text pomocí OpenType ozdob

Následující příklad značkování ukazuje, jak pomocí vlastností objektu Typography definovat ozdoby pro písmo.

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

Kontextové ozdoby písmen

Některé kombinace ozdobných glyfů mohou způsobit neatraktivní vzhled, například překrývající se dolní části na sousedních písmenech. Použití kontextového swash umožňuje použít náhradní swash glyph, který vytváří lepší vzhled. Následující text zobrazuje stejné slovo před a po aplikaci kontextového ozdobného prvku.

Text s využitím kontextového textu OpenType promytí

Následující příklad revize ukazuje, jak definovat kontextový swash pro písmo Pescadero pomocí vlastností objektu Typography .

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

Náhradníky

Alternativy jsou glyfy, které lze nahradit standardním glyfem. Písma OpenType, například písmo Pericles použité v následujících příkladech, můžou obsahovat alternativní glyfy, které můžete použít k vytvoření různých vzhledů textu. Následující text zobrazuje standardní glyfy pro písmo Pericles.

Text používající standardní glyfy OpenType

Písmo Pericles OpenType obsahuje další glyfy, které poskytují stylistické alternativy ke standardní sadě glyfů. Následující text zobrazuje stylistické alternativní glyfy.

Text používající stylistické alternativní glyfy OpenType

Následující příklad revize ukazuje, jak definovat stylistické alternativní glyfy pro písmo Pericles pomocí vlastností objektu 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>

Následující text zobrazuje několik dalších stylistických alternativních glyfů pro písmo Pericles.

Text používající stylistické alternativní glyfy typu OpenType pro písmo Pericles

Následující příklad značek ukazuje, jak definovat tyto další stylistické alternativní glyfy.

<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>

Náhodné kontextové alternativy

Náhodné kontextové alternativy poskytují více zástupných glyfů pro jeden znak. Při implementaci s písmy typu skript může tato funkce simulovat rukopis pomocí sady náhodně zvolených glyfů s mírnými rozdíly ve vzhledu. Následující text používá náhodné kontextové alternativy pro písmo Lindsey. Všimněte si, že písmeno "a" se mírně liší vzhledem.

Text používající náhodné kontextové alternativy OpenType

Následující příklad revize ukazuje, jak definovat náhodné kontextové alternativy pro písmo Lindsey pomocí vlastností objektu Typography .

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

Historické formuláře

Historické formy jsou typografické konvence, které byly v minulosti společné. Následující text zobrazuje frázi "Boston, Massachusetts" pomocí historické formy glyfů pro písmo Palatino Linotype.

Text s použitím historických formulářů OpenType – Text

Následující příklad revize ukazuje, jak definovat historické formuláře pro Palatino Linotype písmo pomocí vlastností objektu Typography .

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

Číselné styly

Písma OpenType podporují velký počet funkcí, které lze použít s číselnými hodnotami v textu.

Zlomky

Písma OpenType podporují styly zlomků, včetně lomítka a skládaného.

Následující text zobrazuje styly zlomku pro písmo Palatino Linotype.

Text používající OpenType lomítkové a skládané zlomky

Následující příklad označení ukazuje, jak definovat styly zlomků pro písmo Palatino Linotype pomocí vlastností objektu 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>

Staré stylové číslice

Písma OpenType podporují starý formát číslic. Tento formát je užitečný pro zobrazení číslic ve stylech, které už nejsou standardní. Následující text zobrazuje datum 18. století ve standardních a starých formátech číslic pro písmo Palatino Linotype.

Text s použitím číslic ve stylu OpenType

Následující text zobrazuje standardní číslice pro písmo Palatino Linotype následované starými číslicemi stylu.

Text s použitím sad číslic ve starém stylu OpenType

Následující příklad revize ukazuje, jak definovat staré styl číslice pro Palatino Linotype písmo pomocí vlastností objektu Typography .

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

Proporcionální a tabulkové obrázky

Písma OpenType podporují proporcionální a tabulkovou funkci obrázku pro řízení zarovnání šířky při použití číslic. Proporcionální číslice zacházejí s každou číslicí jako s různou šířkou — "1" je užší než "5". Tabulkové číslice jsou považovány za číslice se stejnou šířkou, aby se zarovnaly svisle, což zvyšuje čitelnost finančních informací.

Následující text zobrazuje dva proporcionální obrázky v prvním sloupci pomocí písma Miramonte. Všimněte si rozdílu v šířce mezi číslicemi 5 a 1. Druhý sloupec zobrazuje stejné dvě číselné hodnoty s šířkami upravenými pomocí funkce tabulkového obrázku.

Text používající proporcionální a tabulkové číslice OpenType

Následující příklad revize ukazuje, jak definovat proporcionální a tabulkové obrázky pro písmo Miramonte pomocí vlastností objektu Typography .

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

Přeškrtnutá nula

Písma OpenType podporují formát číslice nula s lomítkem, který zdůrazňuje rozdíl mezi písmenem "O" a číslicí "0". Přeškrtnutá nula se často používá pro identifikátory ve finančních a obchodních informacích.

Následující text zobrazí identifikátor vzorového pořadí pomocí písma Miramonte. První řádek používá standardní číslice. Druhý řádek použil číslice s lomítkem nulou pro lepší kontrast s velkým písmenem "O".

Text používající OpenType přeškrtnuté nulové číslice

Následující příklad označení ukazuje, jak definovat nulové číslice s přeškrtnutím pro písmo Miramonte pomocí vlastností objektu Typography.

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

Typografická třída

Objekt Typography zveřejňuje sadu funkcí, které podporuje písmo OpenType. Nastavením vlastností Typography v revizích můžete snadno vytvářet dokumenty, které využívají funkce OpenType.

Následující text zobrazuje standardní velká písmena pro písmo Pescadero následovaná písmeny ve stylu "SmallCaps" a "AllSmallCaps". V tomto případě se pro všechna tři slova používá stejná velikost písma.

Text s velkými písmeny OpenType

Následující příklad revize ukazuje, jak definovat velká písmena pro písmo Pescadero pomocí vlastností objektu Typography . Při použití formátu SmallCaps se ignoruje počáteční velké písmeno.

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

Následující příklad kódu provádí stejnou úlohu jako předchozí příklad revize.

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())

Typografie – vlastnosti třídy

Následující tabulka uvádí vlastnosti, hodnoty a výchozí nastavení objektu Typography .

Vlastnictví Hodnota (y) Výchozí hodnota
AnnotationAlternates Číselná hodnota – bajt 0
Capitals AllPetiteCaps | AllSmallCaps | Normal | PetiteCaps | SmallCaps | Titling | Unicase FontCapitals.Normal
CapitalSpacing Boolean false
CaseSensitiveForms Boolean false
ContextualAlternates Boolean true
ContextualLigatures Boolean true
ContextualSwashes Číselná hodnota – bajt 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 číselná hodnota – bajt 0
StylisticAlternates číselná hodnota – bajt 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

Viz také