Recursos de fonte OpenType
Este tópico fornece uma visão geral de alguns dos principais recursos da tecnologia de fonte OpenType no Windows Presentation Foundation (WPF).
Formato de fonte OpenType
O formato de fonte OpenType é uma extensão do formato de fonte TrueType®, adicionando suporte para dados de fonte PostScript. O formato de fonte OpenType foi desenvolvido em conjunto pela Microsoft e Adobe Corporation. As fontes OpenType e os serviços do sistema operacional que suportam fontes OpenType fornecem aos usuários uma maneira simples de instalar e usar fontes, quer as fontes contenham contornos TrueType ou contornos CFF (PostScript).
O formato de fonte OpenType aborda os seguintes desafios do desenvolvedor:
Suporte mais amplo a várias plataformas.
Melhor suporte para conjuntos de caracteres internacionais.
Melhor proteção para dados de fonte.
Arquivos menores para tornar a distribuição de fonte mais eficiente.
Suporte mais amplo para controle tipográfico avançado.
Observação
O SDK do Windows contém um conjunto de fontes OpenType de exemplo que você pode usar com aplicativos do Windows Presentation Foundation (WPF). Essas fontes oferecem a maioria dos recursos ilustrados no restante deste tópico. Para obter mais informações, consulte Pacote de fontes OpenType de exemplo.
Para obter detalhes do formato de fonte OpenType, consulte a especificação OpenType.
Extensões tipográficas avançadas
As tabelas tipográficas avançadas (tabelas de layout OpenType) estendem a funcionalidade de fontes com contornos TrueType ou CFF. As fontes OpenType Layout contêm informações adicionais que ampliam os recursos das fontes para oferecer suporte a tipografia internacional de alta qualidade. A maioria das fontes OpenType expõe apenas um subconjunto do total de recursos OpenType disponíveis. As fontes OpenType fornecem os seguintes recursos.
O mapeamento avançado entre caracteres e glifos dá suporte a ligaduras, formas posicionais, alternativos e outras substituições de fonte.
Suporte para posicionamento bidimensional e anexação de glifos.
Informações explícitas de script e de linguagem contidas na fonte para que um aplicativo de processamento de texto possa ajustar seu comportamento de acordo.
As tabelas OpenType Layout são descritas em mais detalhes na seção "Font File Tables" da especificação OpenType.
O restante desta visão geral apresenta a amplitude e a flexibilidade de alguns dos recursos OpenType visualmente interessantes que são expostos pelas propriedades do Typography objeto. Para obter mais informações sobre esse objeto, consulte Classe de tipografia.
Variantes
As variantes são usadas para renderizar diferentes estilos tipográficos, como sobrescritos e subscritos.
Sobrescritos e Subscritos
A Variants propriedade permite que você defina valores sobrescritos e subscritos para uma fonte OpenType.
O texto a seguir exibe sobrescritos para a fonte Palatino Linotype.
O exemplo de marcação a seguir mostra como definir sobrescritos para a fonte Palatino Linotype, usando propriedades do Typography objeto.
<Paragraph FontFamily="Palatino Linotype">
2<Run Typography.Variants="Superscript">3</Run>
14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>
O texto a seguir exibe subscritos para a fonte Palatino Linotype.
O exemplo de marcação a seguir mostra como definir subscritos para a fonte Palatino Linotype, usando propriedades do Typography objeto.
<Paragraph FontFamily="Palatino Linotype">
H<Run Typography.Variants="Subscript">2</Run>O
Footnote<Run Typography.Variants="Subscript">4</Run>
</Paragraph>
Usos decorativos de sobrescritos e subscritos
Sobrescritos e subscritos também podem ser utilizados para criar efeitos decorativos em textos que contêm maiúsculas e minúsculas. O texto a seguir exibe texto sobrescrito e subscrito para a fonte Palatino Linotype. Observe que as letras maiúsculas não são afetadas.
O exemplo de marcação a seguir mostra como definir sobrescritos e subscritos para uma fonte, usando propriedades do Typography objeto.
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Superscript">
Chapter One
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Subscript">
Chapter One
</Paragraph>
Letras maiúsculas
As letras maiúsculas são um conjunto de formas tipográficas que renderizam texto em glifos no estilo maiúsculo. Normalmente, quando o texto inteiro é renderizado em letras maiúsculas, o espaçamento entre elas pode parecer muito apertado, e o peso e a proporção das letras, muito pesados. O OpenType suporta vários formatos de estilo para maiúsculas, incluindo maiúsculas pequenas, maiúsculas pequenas, titulação e espaçamento entre maiúsculas. Esses formatos de estilo permitem controlar a aparência das letras maiúsculas.
O texto a seguir exibe letras maiúsculas padrão para a fonte Pescadero, seguidas pelas letras nos estilos “SmallCaps” e “AllSmallCaps”. Nesse caso, o mesmo tamanho de fonte é usado para as três palavras.
O exemplo de marcação a seguir mostra como definir maiúsculas para a fonte Pescadero, usando propriedades do Typography objeto. Quando o formato “SmallCaps” é utilizado, todas as letras maiúsculas à esquerda são ignoradas.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
Letras maiúsculas inclinadas
As letras maiúsculas inclinadas são mais leves, em peso e proporção, e foram concebidas para dar uma aparência mais elegante do que as letras maiúsculas normais. Normalmente, elas são usadas em tamanhos de fonte maiores, como títulos. O texto a seguir exibe maiúsculas normais e inclinadas para a fonte Pescadero. Observe as larguras mais estreitas das hastes na segunda linha do texto.
O exemplo de marcação a seguir mostra como definir maiúsculas de título para a fonte Pescadero, usando propriedades do Typography objeto.
<Paragraph FontFamily="Pescadero">
<Run Typography.Capitals="Titling">chapter one</Run>
</Paragraph>
Espaçamento de letras maiúsculas
O espaçamento de letras maiúsculas é um recurso que permite oferecer um espaçamento maior ao usar somente letras maiúsculas no texto. As letras maiúsculas são normalmente projetadas para se misturar com letras minúsculas. O espaçamento que parece atraente entre uma letra maiúscula e uma letra minúscula pode parecer muito apertado quando todas as letras maiúsculas são usadas. O texto a seguir exibe o espaçamento normal e maiúsculo para a fonte Pescadero.
O exemplo de marcação a seguir mostra como definir o espaçamento maiúsculo para a fonte Pescadero, usando propriedades do Typography objeto.
<Paragraph FontFamily="Pescadero">
<Run Typography.CapitalSpacing="True">CHAPTER ONE</Run>
</Paragraph>
Ligaduras
Ligaduras são dois ou mais glifos que formam um único glifo com o objetivo de criar um texto mais legível ou atraente. As fontes OpenType suportam quatro tipos de ligaduras:
Ligaduras padrão. Concebidas para aumentar a legibilidade. As ligaduras padrão incluem “fi”, “fl” e “ff”.
Ligaduras contextuais. Concebida para aumentar a legibilidade, pois oferece um melhor comportamento de ligação entre os caracteres que compõem a ligadura.
Ligaduras discricionárias. Concebidas para serem ornamentais, não especificamente para facilitar a leitura.
Ligaduras históricas. Concebidas para serem históricas, não especificamente para facilitar a leitura.
O texto a seguir exibe glifos com ligadura padrão para a fonte Pericles.
O exemplo de marcação a seguir mostra como definir glifos de ligadura padrão para a fonte Pericles, usando propriedades do Typography objeto.
<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>
O texto a seguir exibe glifos com ligadura discricionária para a fonte Pericles.
O exemplo de marcação a seguir mostra como definir glifos de ligadura discricionários para a fonte Pericles, usando propriedades do Typography objeto.
<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>
Por padrão, fontes OpenType no Windows Presentation Foundation (WPF) habilitam ligaduras padrão. Por exemplo, se a fonte Palatino Linotype for usada, as ligaduras padrão “fi”, “ff” e “fl” aparecerão como um glifo de caracteres combinados. Observe que o par de caracteres para cada ligadura padrão toca um no outro.
No entanto, é possível desabilitar os recursos de ligadura padrão para que uma ligadura padrão como “ff” seja exibida como dois glifos separados, em vez de como um glifo de caracteres combinados.
O exemplo de marcação a seguir mostra como desabilitar glifos de ligadura padrão para a fonte Palatino Linotype, usando propriedades do Typography objeto.
<!-- 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 são glifos decorativos que utilizam ornamentação elaborada, geralmente associada à caligrafia. O texto a seguir exibe glifos padrão e swash para a fonte Pescadero.
Muitas vezes, os swashes são utilizados como elementos decorativos em frases curtas, como anúncios de eventos. O texto a seguir usa swashes para enfatizar as letras maiúsculas do nome do evento.
O exemplo de marcação a seguir mostra como definir swashes para uma fonte, usando propriedades do Typography objeto.
<Paragraph FontFamily="Pescadero" TextBlock.TextAlignment="Center">
Wishing you a<LineBreak/>
<Run Typography.StandardSwashes="1" FontSize="36">Happy New Year!</Run>
</Paragraph>
Swashes contextuais
Algumas combinações de glifos swash podem causar uma aparência pouco atraente, como descendentes sobrepostos em letras adjacentes. O uso de um swash contextual permite que você use um glifo de swash substituto que produz uma aparência melhor. O texto a seguir mostra a mesma palavra antes e depois de uma varredura contextual ser aplicada.
O exemplo de marcação a seguir mostra como definir uma lavagem contextual para a fonte Pescadero, usando propriedades do Typography objeto.
<Paragraph FontFamily="Pescadero" Typography.StandardSwashes="1">
Lyon <Run Typography.ContextualSwashes="1">L</Run>yon
</Paragraph>
Alternativos
Os alternativos são glifos que podem ser substituídos por um glifo padrão. As fontes OpenType, como a fonte Pericles usada nos exemplos a seguir, podem conter glifos alternativos que você pode usar para criar aparências diferentes para o texto. O texto a seguir exibe glifos padrão para a fonte Pericles.
A fonte Pericles OpenType contém glifos adicionais que fornecem alternativas estilísticas para o conjunto padrão de glifos. O texto a seguir exibe glifos alternativos estilísticos.
O exemplo de marcação a seguir mostra como definir glifos alternativos estilísticos para a fonte Pericles, usando propriedades do Typography objeto.
<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>
O texto a seguir exibe vários outros glifos alternativos estilísticos para a fonte Pericles.
O exemplo de marcação a seguir mostra como definir esses outros glifos alternativos estilísticos.
<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>
Alternativos contextuais aleatórios
Os alternativos contextuais aleatórios fornecem vários glifos substitutos para um único caractere. Quando implementado com fontes do tipo script, esse recurso pode simular a escrita manual usando um conjunto de glifos escolhidos aleatoriamente com pequenas diferenças na aparência. O texto a seguir usa alternativas contextuais aleatórias para a fonte Lindsey. Observe que a letra "a" varia ligeiramente na aparência
O exemplo de marcação a seguir mostra como definir alternativas contextuais aleatórias para a fonte Lindsey, usando propriedades do Typography objeto.
<TextBlock FontFamily="Lindsey">
<Run Typography.ContextualAlternates="True">
a banana in a cabana
</Run>
</TextBlock>
Formas históricas
As formas históricas são convenções tipográficas que foram comuns no passado. O texto a seguir exibe a frase “Boston, Massachusetts” usando uma forma histórica de glifos para a fonte Palatino Linotype.
O exemplo de marcação a seguir mostra como definir formulários históricos para a fonte Palatino Linotype, usando propriedades do Typography objeto.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.HistoricalForms="True">Boston, Massachusetts</Run>
</Paragraph>
Estilos numéricos
As fontes OpenType dão suporte a um grande número de recursos que podem ser usados com valores numéricos em texto.
Frações
As fontes OpenType suportam estilos para frações, incluindo cortadas e empilhadas.
O texto a seguir exibe estilos de fração para a fonte Palatino Linotype.
O exemplo de marcação a seguir mostra como definir estilos de fração para a fonte Palatino Linotype, usando propriedades do Typography objeto.
<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>
Numerais em estilo antigo
As fontes OpenType suportam um formato numérico de estilo antigo. Esse formato é útil para exibir numerais em estilos que não são mais padrão. O texto a seguir exibe uma data do século 18 em formatos de numerais padrão e em estilo antigo para a fonte Palatino Linotype.
O texto a seguir exibe numerais padrão para a fonte Palatino Linotype, seguidos por numerais em estilo antigo.
O exemplo de marcação a seguir mostra como definir numerais de estilo antigo para a fonte Palatino Linotype, usando propriedades do Typography objeto.
<Paragraph FontFamily="Palatino Linotype">
<Run Typography.NumeralStyle="Normal">1234567890</Run>
<Run Typography.NumeralStyle="OldStyle">1234567890</Run>
</Paragraph>
Figuras proporcionais e tabulares
As fontes OpenType oferecem suporte a um recurso de figura proporcional e tabular para controlar o alinhamento das larguras ao usar numerais. As figuras proporcionais tratam cada numeral como tendo uma largura diferente — “1” é mais estreito do que “5”. As figuras tabulares são tratadas como numerais de larguras iguais para se alinharem verticalmente, o que aumenta a legibilidade de informações do tipo financeiro.
O texto a seguir exibe duas figuras proporcionais na primeira coluna, usando a fonte Miramonte. Observe a diferença de largura entre os algarismos "5" e "1". A segunda coluna mostra os mesmos dois valores numéricos com as larguras ajustadas usando o recurso de figura tabular.
O exemplo de marcação a seguir mostra como definir figuras proporcionais e tabulares para a fonte Miramonte, usando propriedades do Typography objeto.
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Proportional">114,131</Run>
</TextBlock>
<TextBlock FontFamily="Miramonte">
<Run Typography.NumeralAlignment="Tabular">114,131</Run>
</TextBlock>
Zero cortado
As fontes OpenType suportam um formato de numeral zero cortado para enfatizar a diferença entre a letra "O" e o numeral "0". Muitas vezes, o número zero cortado é utilizado para identificadores em informações financeiras e comerciais.
O texto a seguir exibe um identificador de ordem de exemplo usando a fonte Miramonte. A primeira linha usa numerais padrão. A segunda linha usou números zero cortados para fornecer melhor contraste com a letra "O" maiúscula.
O exemplo de marcação a seguir mostra como definir algarismos zero cortados para a fonte Miramonte, usando propriedades do Typography objeto.
<Paragraph FontFamily="Miramonte">
<Run>Order #0048-OTC-390</Run>
<LineBreak/>
<Run Typography.SlashedZero="True">Order #0048-OTC-390</Run>
</Paragraph>
Classe de tipografia
O Typography objeto expõe o conjunto de recursos que uma fonte OpenType suporta. Ao definir as propriedades de Typography na marcação, você pode facilmente criar documentos que aproveitam os recursos OpenType.
O texto a seguir exibe letras maiúsculas padrão para a fonte Pescadero, seguidas pelas letras nos estilos “SmallCaps” e “AllSmallCaps”. Nesse caso, o mesmo tamanho de fonte é usado para as três palavras.
O exemplo de marcação a seguir mostra como definir maiúsculas para a fonte Pescadero, usando propriedades do Typography objeto. Quando o formato “SmallCaps” é utilizado, todas as letras maiúsculas à esquerda são ignoradas.
<Paragraph FontFamily="Pescadero" FontSize="48">
<Run>CAPITALS</Run>
<Run Typography.Capitals="SmallCaps">Capitals</Run>
<Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>
O exemplo de código a seguir realiza a mesma tarefa que o exemplo de marcação anterior.
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())
Propriedades da classe de tipografia
A tabela a seguir lista as propriedades, os valores e as Typography configurações padrão do objeto.
Confira também
.NET Desktop feedback
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de