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 jazyk PostScript dat písma. 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 (jazyk 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 tématu 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í formuláře, alternativy a další náhrady písma.

  • Podpora dvojrozměrného umístění a přílohy 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í k vykreslení 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 using OpenType superscripts

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 dolní indexy pro písmo Palatino Linotype.

Text using OpenType subscripts

Následující příklad revize ukazuje, jak definovat dolní indexy pro palatino Linotype písmo 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 indexů

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 using OpenType superscripts and subscripts

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

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

Hlavních městech

Velká písmena jsou sada typografických formulářů, které vykreslují text v glyfech ve stylu velkých písmen. Když se text vykresluje jako všechna velká písmena, může být mezera mezi písmeny obvykle příliš úzká a váha a poměr stran písmen je 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 using OpenType capitals

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>

Hlavní písmena 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 pro nadpisy se obvykle používají ve větších velikostech písma jako nadpisy. Následující text zobrazuje pro písmo Pescadero normální velká písmena a velká písmena. Všimněte si užších šířek textu na druhém řádku.

Text using OpenType titling capitals

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

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

Velké mezery

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 zobrazují atraktivní mezi velkým písmenem a velkým písmenem a malým písmenem, můžou být při použití velkých písmen příliš těsné. Následující text zobrazuje normální a velké mezery pro písmo Pescadero.

Text using OpenType capital spacing

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 using OpenType standard ligatures

Následující příklad revize ukazuje, jak definovat standardní ligatury 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 using OpenType discretionary ligatures

Následující příklad revize ukazuje, jak definovat volitelné ligatury 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 using OpenType standard ligatures with Palatino Linotype

Můžete však zakázat standardní ligatury tak, aby se standardní ligatura, jako je například "ff", zobrazovala jako dvě samostatné glyfy, a ne jako kombinovaný znak glyf.

Text using disabled OpenType standard ligatures

Následující příklad revize ukazuje, jak zakázat standardní ligatury glyphs pro Palatino Linotype písmo 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 vymyté glyfy pro písmo Pescadero.

Text using OpenType standard and swash glyphs

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

Text using OpenType swashes

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

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

Kontextové smyčky

Některé kombinace vymytých glyfů můžou způsobit neaktuktivní vzhled, například překrývající se sestupy 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 použití kontextového swash.

Text using OpenType contextual swashes

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 using OpenType standard glyphs

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

Text using OpenType stylistic alternate glyphs

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 using OpenType stylistic alternate glyphs for the Pericles font

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 using OpenType random contextual alternates

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 using OpenType historical forms

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.

Frakce

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 using OpenType slashed and stacked fractions

Následující příklad revize ukazuje, jak definovat styly zlomku pro Palatino Linotype písmo 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 using OpenType old style numerals

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

Text using OpenType old style numeral sets

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í obrázky považují jednotlivé číslice za jinou šířku – "1" je užší než "5". Tabulkové obrázky se považují za číslice se stejnou šířkou, aby se zarovnaly svisle, což zvyšuje čitelnost informací o finančním typu.

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 using OpenType proportional & tabular figures

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>

Lomítko nula

Písma OpenType podporují lomítko s nulovým formátem, který zvýrazňuje rozdíl mezi písmenem "O" a číslicí "0". Lomítko nula číslice se často používá pro identifikátory finančních a obchodních informací.

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 lomítko nula číslic k lepšímu kontrastu s velkým písmenem "O".

Text using OpenType slashed zero numerals

Následující příklad revize ukazuje, jak definovat lomítko nula číslic 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 using OpenType capitals

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 .

Vlastnost Hodnoty 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é