Dela via


OpenType-teckensnittsfunktioner

Det här avsnittet innehåller en översikt över några av de viktigaste funktionerna i OpenType-teckensnittstekniken i Windows Presentation Foundation (WPF).

OpenType-teckensnittsformat

OpenType-teckensnittsformatet är ett tillägg av TrueType-teckensnittsformatet®, vilket lägger till stöd för PostScript-teckensnittsdata. OpenType-teckensnittsformatet utvecklades gemensamt av Microsoft och Adobe Corporation. OpenType-teckensnitt och operativsystemtjänster som stöder OpenType-teckensnitt ger användarna ett enkelt sätt att installera och använda teckensnitt, oavsett om teckensnitten innehåller TrueType-dispositioner eller CFF-dispositioner (PostScript).

OpenType-teckensnittsformatet hanterar följande utvecklarutmaningar:

  • Bredare stöd för flera plattformar.

  • Bättre stöd för internationella teckenuppsättningar.

  • Bättre skydd för teckensnittsdata.

  • Mindre filstorlekar för att göra teckensnittsfördelningen mer effektiv.

  • Bredare stöd för avancerad typografisk kontroll.

Anmärkning

Windows SDK innehåller en uppsättning OpenType-exempelteckensnitt som du kan använda med WPF-program (Windows Presentation Foundation). Dessa teckensnitt innehåller de flesta av de funktioner som illustreras i resten av det här avsnittet. Mer information finns i Exempel på OpenType-teckensnittspaket.

Mer information om OpenType-teckensnittsformatet finns i OpenType-specifikationen.

Avancerade typografiska tillägg

Avancerade typografiska tabeller (OpenType Layout-tabeller) utökar funktionerna för teckensnitt med antingen TrueType- eller CFF-dispositioner. OpenType Layout-teckensnitt innehåller ytterligare information som utökar funktionerna i teckensnitten för att stödja högkvalitativ internationell typografi. De flesta OpenType-teckensnitt exponerar endast en delmängd av de totala tillgängliga OpenType-funktionerna. OpenType-teckensnitt innehåller följande funktioner.

  • Omfattande mappning mellan tecken och glyfer som stöder ligaturer, positionsformer, alternativ och andra teckensnittsersättningar.

  • Stöd för tvådimensionell positionering och glyffästning.

  • Explicit skript- och språkinformation som finns i teckensnitt, så att ett textbearbetningsprogram kan justera sitt beteende i enlighet med detta.

OpenType-layouttabellerna beskrivs mer detaljerat i avsnittet "Teckensnittsfiltabeller" i OpenType-specifikationen.

Resten av den här översikten beskriver bredden och flexibiliteten hos några av de visuellt intressanta OpenType-funktionerna som exponeras av egenskaperna för Typography-objektet. Mer information om det här objektet finns i Typography Class.

Varianter

Varianter används för att återge olika typografiska stilar, till exempel upphöjda tecken och nedsänkta tecken.

Upphöjda tecken och nedsänkta tecken

Med egenskapen Variants kan du ange upphöjda och nedsänkta värden för ett OpenType-teckensnitt.

Följande text visar upphöjda tecken för teckensnittet Palatino Linotype.

Text med OpenType-superskript

Följande markeringsexempel visar hur du definierar upphöjda objekt för teckensnittet Palatino Linotype med hjälp av egenskaperna för objektet Typography.

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

Följande text visar nedsänkta tecken för teckensnittet Palatino Linotype.

Text med OpenType nedsänkt text

Följande markeringsexempel visar hur du definierar nedsänkta tecken för teckensnittet Palatino Linotype genom att använda egenskaperna hos objektet Typography.

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

Dekorativa användningsområden för upphöjda och nedsänkta tecken

Du kan också använda upphöjd text och nedsänkt text för att skapa dekorativa effekter av blandad versal och gemen text. Följande text visar upphöjd och nedsänkt text för teckensnittet Palatino Linotype. Notera att versalerna inte påverkas.

Text med hjälp av OpenType-upphöjda och nedsänkta

Följande markeringsexempel visar hur du definierar upphöjda och nedsänkta tecken för ett teckensnitt med hjälp av egenskaperna för Typography-objektet.

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

Huvudstäder

Versaler är en uppsättning typografiska former som renderar text i versalstil. När text återges som alla versaler kan avståndet mellan bokstäverna vanligtvis verka för snävt och bokstävernas vikt och andel är för stora. OpenType stöder ett antal format för versaler, inklusive små versaler, petita versaler, rubrikversaler och versalavstånd. Med de här formaten kan du styra utseendet på stora bokstäver.

I följande text visas standardbokstäver för Pescadero-teckensnittet, följt av bokstäverna "SmallCaps" och "AllSmallCaps". I det här fallet används samma teckenstorlek för alla tre orden.

Text med OpenType-versaler

Följande markeringsexempel visar hur du definierar versaler för Pescadero-teckensnittet med hjälp av egenskaperna för Typography-objektet. När formatet "SmallCaps" används ignoreras alla inledande versaler.

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

Versaler i titlar

Versaler i rubrikform är lättare i fråga om vikt och proportioner och utformade för att ge ett mer elegant utseende än vanliga versaler. Titelskapitäl används vanligtvis i större teckenstorlekar som rubriker. Följande text visar normala och titlerande versaler för Pescadero-teckensnittet. Lägg märke till textens smalare skaftbredd på den andra raden.

Text med OpenType-titlingkapitäl

Följande markup-exempel visar hur du definierar versaler för titlar för Pescadero-teckensnittet, med hjälp av egenskaperna för Typography-objektet.

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

Bokstavsavstånd för versaler

Versalt avstånd är en funktion som gör att du kan ge mer avstånd när du använder alla versaler i text. Versaler är oftast designade för att harmoniera med gemener. Avstånd som verkar attraktivt mellan en versal bokstav och en gemen bokstav kan se för snävt ut när endast versaler används. Följande text visar normal- och versalt avstånd för Pescadero-teckensnittet.

Text med OpenType-kapitälsbokstavsavstånd

Följande markeringsexempel visar hur du definierar versalt avstånd för Pescadero-teckensnittet med hjälp av egenskaperna för Typography-objektet.

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

Ligaturer

Ligaturer är två eller flera glyfer som bildas till en enda glyph för att skapa mer läsbar eller attraktiv text. OpenType-teckensnitt stöder fyra typer av ligaturer:

  • Standard ligaturer. Utformad för att förbättra läsbarheten. Standardligaturer inkluderar "fi", "fl" och "ff".

  • Kontextuella ligaturer. Utformad för att förbättra läsbarheten genom att ge bättre sammanfogningsbeteende mellan de tecken som utgör ligaturen.

  • Diskretionära ligaturer. Designad för att vara dekorativ, och inte specifikt utformad för läsbarhet.

  • Historiska ligaturer. Utformad för att vara historisk och inte särskilt utformad för läsbarhet.

Följande text visar standardligaturer för Pericles-teckensnittet.

Text med openType-standardligaturer

Följande markeringsexempel visar hur du definierar standardligatur-glyfer för perikles-teckensnittet med hjälp av egenskaperna för Typography-objektet.

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

Följande text visar diskretionära ligaturtecken för teckensnittet Pericles.

Text med opentype-diskretionära ligaturer

Följande markeringsexempel visar hur du definierar diskretionära ligatur-glyfer för perikles-teckensnittet med hjälp av egenskaperna för Typography-objektet.

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

Som standard aktiverar OpenType-teckensnitt i Windows Presentation Foundation (WPF) standardligaturer. Om du till exempel använder teckensnittet Palatino Linotype visas standardligaturerna "fi", "ff" och "fl" som en kombinerad teckenglyf. Observera att de två tecknen för varje standardligatur berör varandra.

Text med OpenType-standardligaturer och Palatino Linotype

Du kan dock inaktivera standardligaturer så att en standardligatur som "ff" visas som två separata teckenglyfer i stället för som en kombinerad teckenglyf.

Text med inaktiverade OpenType-standardligaturer

Följande markeringsexempel visar hur du inaktiverar standardligatur-glyfer för teckensnittet Palatino Linotype med hjälp av egenskaperna för Typography-objektet.

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

Snirklar

Swashes är dekorativa glyfer som använder utarbetad utsmyckning som ofta förknippas med kalligrafi. Följande text visar standard- och snirkliga glyfer för Pescadero-teckensnittet.

Text med opentype-standard och swash-glyfer

Swashes används ofta som dekorativa element i korta fraser, som till exempel evenemangsannonser. Följande text använder dekorativa svängar för att betona versalerna i namnet på evenemanget.

Text med OpenType-swashes

Följande markeringsexempel visar hur du definierar swashes för ett teckensnitt med hjälp av egenskaperna för Typography-objektet.

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

Kontextuella svep

Vissa kombinationer av swash-glyfer kan leda till en oattraktiv effekt, till exempel överlappande nedstaplar på intilliggande bokstäver. Med en kontextbaserad svass kan du använda en ersättningssvass-glyf som ger ett bättre utseende. Följande text visar samma ord före och efter att en kontextuell swash har tillämpats.

Text med hjälp av kontextuella OpenType-swashes

Följande markeringsexempel visar hur du definierar en kontextbaserad swash för Pescadero-teckensnittet med hjälp av egenskaperna för Typography-objektet.

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

Suppleanter

Alternativ är glyfer som kan ersättas med en standard-glyf. OpenType-teckensnitt, till exempel det Perikles-teckensnitt som används i följande exempel, kan innehålla alternativa tecken som du kan använda för att skapa olika utseenden för text. Följande text visar standardteckensnitt för Perikles-teckensnittet.

text med OpenType-standardtecken

Teckensnittet Pericles OpenType innehåller ytterligare glyfer som ger stilistiska alternativ till standarduppsättningen med glyfer. Följande text visar stilistiska alternativa tecken.

Text med OpenType-stilistiska alternativa glyfer

Följande markeringsexempel visar hur du definierar stilistiska alternativa glyfer för Perikles-teckensnittet med hjälp av egenskaperna för Typography-objektet.

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

Följande text visar flera andra stilistiska alternativa tecken för perikles-teckensnittet.

Text med opentype-stilistiska alternativa glyfer för perikles-teckensnittet

Följande markeringsexempel visar hur du definierar dessa andra stilistiska alternativa glyfer.

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

Slumpmässiga kontextuella varianter

Slumpmässiga kontextuella alternativ ger flera ersättningstecken för ett enda tecken. När den implementeras med teckensnitt av skripttyp kan den här funktionen simulera handskrift med hjälp av en uppsättning slumpmässigt valda glyfer med små skillnader i utseende. Följande text använder slumpmässiga sammanhangsberoende alternativ för Lindsey-teckensnittet. Observera att bokstaven "a" varierar något i utseende

Text med hjälp av slumpmässiga sammanhangsbaserade alternativ i OpenType

Följande markeringsexempel visar hur du definierar slumpmässiga kontextuella alternativ för Lindsey-teckensnittet med hjälp av egenskaperna för objektet Typography.

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

Historiska formulär

Historiska former är typografiska konventioner som tidigare var vanliga. Följande text visar frasen "Boston, Massachusetts", med hjälp av en historisk form av glyfer för Teckensnittet Palatino Linotype.

Text med hjälp av historiska OpenType-formulär

Följande markeringsexempel visar hur du definierar historiska formulär för teckensnittet Palatino Linotype med hjälp av egenskaperna för objektet Typography.

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

Numeriska formatmallar

OpenType-teckensnitt stöder ett stort antal funktioner som kan användas med numeriska värden i text.

Fraktioner

OpenType-teckensnitt stöder formatmallar för bråk, inklusive snedstreck och staplade.

Följande text visar bråkstilar för teckensnittet Palatino Linotype.

text med OpenType-snedstreck och staplade bråk

Följande markeringsexempel visar hur du definierar bråkformat för teckensnittet Palatino Linotype med hjälp av egenskaperna för Typography-objektet.

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

Siffror i gammalt format

OpenType-teckensnitt har stöd för ett gammalt format med siffror. Det här formatet är användbart för att visa siffror i format som inte längre är standard. I följande text visas ett datum från 1700-talet i standard- och gammaldags sifferformat för Palatino Linotype.

Text med opentype-siffror i gammalt format

Följande text visar standardtal för Teckensnittet Palatino Linotype följt av gamla siffror.

Text som använder OpenType gammaldags siffersnitt

Följande markeringsexempel visar hur du definierar gamla stiltal för teckensnittet Palatino Linotype med hjälp av egenskaperna för objektet Typography.

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

Proportionella och tabellfigurer

OpenType-teckensnitt har stöd för en proportionell och tabellfigursfunktion för att styra justeringen av bredder när du använder siffror. Proportionella siffror behandlar varje siffra med en annan bredd– "1" är smalare än "5". Tabellfigurer behandlas som lika breda siffror så att de justeras lodrätt, vilket ökar läsbarheten för information av finansiell typ.

Följande text visar två proportionella siffror i den första kolumnen med hjälp av miramonte-teckensnittet. Observera skillnaden i bredd mellan siffrorna "5" och "1". Den andra kolumnen visar samma två numeriska värden med bredderna justerade med hjälp av funktionen tabellfigur.

Text med OpenType proportionella & tabellfigurer

Följande markeringsexempel visar hur du definierar proportionella och tabellfigurer för Miramonte-teckensnittet med hjälp av egenskaperna för Typography-objektet.

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

Nolla med snedstreck

OpenType-teckensnitt har stöd för ett snedstreckat nolltalsformat för att betona skillnaden mellan bokstaven "O" och siffran "0". Det snedstreckade noll-talet används ofta för identifierare i finansiell information och affärsinformation.

Följande text visar ett exempel på orderidentifierare med hjälp av teckensnittet Miramonte. Den första raden använder standardtal. Den andra raden använde snedstreckade nollor för att ge bättre kontrast till versala "O":t.

text med opentype-snedstreckade nolltal

Följande markeringsexempel visar hur du definierar snedstreckade nolltal för Miramonte-teckensnittet med hjälp av egenskaperna för objektet Typography.

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

Typografiklass

Det Typography objektet exponerar den uppsättning funktioner som ett OpenType-teckensnitt stöder. Genom att ange egenskaperna för Typography i markering kan du enkelt skapa dokument som använder OpenType-funktioner.

I följande text visas standardbokstäver för Pescadero-teckensnittet, följt av bokstäverna "SmallCaps" och "AllSmallCaps". I det här fallet används samma teckenstorlek för alla tre orden.

Text med OpenType-versaler

Följande markeringsexempel visar hur du definierar versaler för Pescadero-teckensnittet med hjälp av egenskaperna för Typography-objektet. När formatet "SmallCaps" används ignoreras alla inledande versaler.

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

Följande kodexempel utför samma uppgift som föregående markeringsexempel.

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

Egenskaper för typografiklass

I följande tabell visas egenskaperna, värdena och standardinställningarna för Typography-objektet.

Fastighet Värde(n) Standardvärde
AnnotationAlternates Numeriskt värde – byte 0
Capitals AllPetiteCaps | AllSmallCaps | Normal | PetiteCaps | SmallCaps | Titling | Unicase FontCapitals.Normal
CapitalSpacing Boolean false
CaseSensitiveForms Boolean false
ContextualAlternates Boolean true
ContextualLigatures Boolean true
ContextualSwashes Numeriskt värde – byte 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 numeriskt värde – byte 0
StylisticAlternates numeriskt värde – byte 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

Se även