Compartir a través de


Características de fuente OpenType

En este tema se proporciona información general sobre algunas de las características clave de la tecnología de fuentes OpenType en Windows Presentation Foundation (WPF).

Formato de fuente OpenType

El formato de fuente OpenType es una extensión del formato de fuente TrueType®, agregando compatibilidad con los datos de fuente postScript. El formato de fuente OpenType fue desarrollado conjuntamente por Microsoft y Adobe Corporation. Las fuentes OpenType y los servicios del sistema operativo que admiten fuentes OpenType proporcionan a los usuarios una manera sencilla de instalar y usar fuentes, tanto si las fuentes contienen esquemas TrueType como esquemas CFF (PostScript).

El formato de fuente OpenType aborda los siguientes desafíos para desarrolladores:

  • Compatibilidad más amplia con varias plataformas.

  • Mejor compatibilidad con juegos de caracteres internacionales.

  • Mejor protección para los datos de fuente.

  • Tamaños de archivo más pequeños para que la distribución de fuentes sea más eficaz.

  • Compatibilidad más amplia con el control tipográfico avanzado.

Nota:

Windows SDK contiene un conjunto de fuentes OpenType de ejemplo que puedes usar con aplicaciones de Windows Presentation Foundation (WPF). Estas fuentes proporcionan la mayoría de las características que se muestran en el resto de este tema. Para obtener más información, vea Sample OpenType Font Pack.

Para obtener más información sobre el formato de fuente OpenType, consulte la especificación OpenType.

Extensiones tipográficas avanzadas

Las tablas tipográficas avanzadas (tablas openType Layout) amplían la funcionalidad de las fuentes con esquemas TrueType o CFF. Las fuentes OpenType Layout contienen información adicional que amplía las funcionalidades de las fuentes para admitir la tipografía internacional de alta calidad. La mayoría de las fuentes OpenType exponen solo un subconjunto de las características totales de OpenType disponibles. Las fuentes OpenType proporcionan las siguientes características.

  • Asignación enriquecida entre caracteres y glifos que admiten ligaduras, formas posicionales, alternativas y otras sustituciones tipográficas.

  • Compatibilidad con el posicionamiento bidimensional y la unión de glifos.

  • La información explícita del guion y del idioma está contenida en la fuente, por lo que una aplicación de procesamiento de textos puede ajustar su funcionamiento en consecuencia.

Las tablas openType Layout se describen con más detalle en la sección "Tablas de archivos de fuente" de la especificación OpenType.

El resto de esta información general presenta la amplitud y flexibilidad de algunas de las características de OpenType visualmente interesantes expuestas por las propiedades del Typography objeto . Para obtener más información sobre este objeto, vea Clase tipografía.

Variantes

Las variantes se usan para representar diferentes estilos tipográficos, como superíndices y subíndices.

Superíndices y subíndices

La Variants propiedad permite establecer valores de superíndice y subíndice para una fuente OpenType.

En el texto siguiente se muestran superíndices para la fuente Palatino Linotype.

Texto con superíndices OpenType

En el ejemplo de marcado siguiente se muestra cómo definir superíndices para la fuente Palatino Linotype mediante propiedades del Typography objeto .

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

En el texto siguiente se muestran subíndices para la fuente Palatino Linotype.

Texto con subíndices OpenType

En el ejemplo de marcado siguiente se muestra cómo definir subíndices para la fuente Palatino Linotype mediante propiedades del 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 superíndices y subíndices

También puede usar superíndices y subíndices para crear efectos decorativos de texto en mayúsculas y minúsculas combinadas. En el texto siguiente se muestra el superíndice y el texto de subíndice para la fuente Palatino Linotype. Tenga en cuenta que las mayúsculas no se ven afectadas.

Texto usando superíndices y subíndices OpenType

En el ejemplo de marcado siguiente se muestra cómo definir superíndices y subíndices para una fuente mediante propiedades del Typography objeto .

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

Capitales

Las mayúsculas son un conjunto de formas tipográficas que representan texto en glifos de estilo mayúscula. Normalmente, cuando el texto se representa como mayúsculas, el espaciado entre letras puede parecer demasiado estrecho y el peso y la proporción de las letras demasiado pesadas. OpenType admite una serie de formatos de estilo para mayúsculas, incluidas mayúsculas pequeñas, mayúsculas reducidas, letras de titular y espaciado de mayúsculas. Estos formatos de diseño permiten controlar el aspecto de las mayúsculas.

En el texto siguiente se muestran letras mayúsculas estándar para la fuente Pescadero, seguidas de las letras con estilo "SmallCaps" y "AllSmallCaps". En este caso, se usa el mismo tamaño de fuente para las tres palabras.

Texto con mayúsculas OpenType

En el ejemplo de marcado siguiente se muestra cómo definir mayúsculas para la fuente Pescadero mediante propiedades del Typography objeto . Cuando se usa el formato "SmallCaps", se omite cualquier letra mayúscula inicial.

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

Titling Capitals

Las mayúsculas de título son más ligeras en peso y proporción y están diseñadas para dar un aspecto más elegante que las mayúsculas normales. Los mayúsculas de título se suelen usar en tamaños de fuente mayores como encabezados. En el texto siguiente se muestran mayúsculas normales y de título para la fuente Pescadero. Observe los anchos de tallo más estrechos del texto en la segunda línea.

Texto que usa mayúsculas de título OpenType

En el ejemplo de marcado siguiente se muestra cómo definir mayúsculas de título para la fuente Pescadero mediante propiedades del Typography objeto .

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

Espaciado de mayúsculas

El espaciado de mayúsculas es una característica que permite proporcionar más espacio cuando todas las letras están en mayúsculas en el texto. Las letras mayúsculas suelen diseñarse para combinarse con letras minúsculas. El espaciado que aparece atractivo entre y una letra mayúscula y una letra minúscula puede tener un aspecto demasiado estrecho cuando se usan todas las letras mayúsculas. En el texto siguiente se muestra el espaciado normal y mayúscula para la fuente Pescadero.

Texto que usa el espaciado de mayúsculas de OpenType

En el ejemplo de marcado siguiente se muestra cómo definir el espaciado de mayúsculas para la fuente Pescadero mediante propiedades del Typography objeto .

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

Ligaduras

Las ligaduras son dos o más glifos que se forman en un solo glifo para crear texto más legible o atractivo. Las fuentes OpenType admiten cuatro tipos de ligaduras:

  • Ligaduras estándar. Diseñado para mejorar la legibilidad. Las ligaduras estándar incluyen "fi", "fl" y "ff".

  • Ligaduras contextuales. Diseñado para mejorar la legibilidad al proporcionar un mejor comportamiento de unión entre los caracteres que componen la ligadura.

  • Ligaduras discrecionales. Diseñado para ser ornamental, y no específicamente diseñado para la legibilidad.

  • Ligaduras históricas. Diseñado para ser histórico y no diseñado específicamente para la legibilidad.

En el texto siguiente se muestran glifos de ligadura estándar para la fuente Pericles.

Texto con ligaduras estándar OpenType

En el ejemplo de marcado siguiente se muestra cómo definir glifos de ligadura estándar para la fuente Pericles mediante propiedades del 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>

En el texto siguiente se muestran glifos de ligadura discrecionales para la fuente Pericles.

Texto que usa ligaduras discrecionales de OpenType

En el ejemplo de marcado siguiente se muestra cómo definir glifos de ligadura discrecionales para la fuente Pericles, mediante propiedades del 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>

De forma predeterminada, las fuentes OpenType en Windows Presentation Foundation (WPF) habilitan ligaduras estándar. Por ejemplo, si usa la fuente Palatino Linotype, las ligaduras estándar "fi", "ff" y "fl" aparecen como glifos de caracteres combinados. Observe que el par de caracteres para cada ligadura estándar se tocan entre sí.

Texto mediante ligaduras estándar de OpenType con Palatino Linotype

Sin embargo, puede deshabilitar las características de ligadura estándar para que una ligadura estándar como "ff" se muestre como dos glifos independientes, en lugar de como un glifo de caracteres combinado.

Texto con ligaduras estándar openType deshabilitadas

En el ejemplo de marcado siguiente se muestra cómo deshabilitar glifos de ligadura estándar para la fuente Palatino Linotype, mediante propiedades del 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>

Lavados

Los floreos son glifos decorativos que usan ornamentos elaborados a menudo asociados con la caligrafía. En el texto siguiente se muestran glifos estándar y ornamentales para la fuente Pescadero.

Texto que utiliza el estándar OpenType y glifos ornamentales

Los trazos ornamentales se suelen usar como elementos decorativos en textos breves como anuncios de eventos. El texto siguiente usa swashes para resaltar las letras mayúsculas del nombre del evento.

Texto que usa ornamentos OpenType

En el siguiente ejemplo de marcado se muestra cómo definir swashes para una fuente mediante las propiedades del objeto Typography.

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

Adornos contextuales

Ciertas combinaciones de glifos ornamentales pueden provocar una apariencia poco atractiva, como descendentes superpuestos en letras adyacentes. El uso de una floritura contextual le permite usar un glifo alternativo de floritura que produce un mejor aspecto. En el texto siguiente se muestra la misma palabra antes y después de aplicar un ornamento tipográfico contextual.

Texto usando swashes contextuales de OpenType

En el ejemplo de marcado siguiente se muestra cómo definir un adornado contextual para la fuente Pescadero, mediante propiedades del objeto Typography.

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

Alterna

Las alternativas son glifos que se pueden sustituir por un glifo estándar. Las fuentes OpenType, como la fuente Pericles usada en los ejemplos siguientes, pueden contener glifos alternativos que puede usar para crear diferentes apariencias para el texto. En el texto siguiente se muestran glifos estándar para la fuente Pericles.

Texto que usa glifos estándar OpenType

La fuente OpenType de Pericles contiene glifos adicionales que proporcionan alternativas estilísticas al conjunto estándar de glifos. En el texto siguiente se muestran glifos alternativos estilísticos.

Texto que usa glifos estilísticos alternativos de OpenType

En el ejemplo de marcado siguiente se muestra cómo definir glifos alternativos estilísticos para la fuente Pericles mediante propiedades del 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>

En el texto siguiente se muestran otros glifos alternativos estilísticos para la fuente Pericles.

Texto que usa glifos alternativos estilísticos OpenType para la fuente Pericles

En el ejemplo de marcado siguiente se muestra cómo definir estos otros 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>

Alternativas contextuales aleatorias

Las alternativas contextuales aleatorias proporcionan varios glifos sustitutos para un solo carácter. Cuando se implementa con fuentes de tipo script, esta característica puede simular la escritura a mano mediante un conjunto de glifos elegidos aleatoriamente con ligeras diferencias de apariencia. En el texto siguiente se usan alternativas contextuales aleatorias para la fuente Lindsey. Observe que la letra "a" varía ligeramente en apariencia

Texto que usa alternativas contextuales aleatorias OpenType

En el ejemplo de marcado siguiente se muestra cómo definir alternativas contextuales aleatorias para la fuente Lindsey, mediante propiedades del Typography objeto .

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

Formularios históricos

Las formas históricas son convenciones tipográficas que eran comunes en el pasado. En el texto siguiente se muestra la frase "Boston, Massachusetts", utilizando una forma histórica de glifos para la fuente Palatino Linotype.

Texto con formularios históricos de OpenType

En el ejemplo de marcado siguiente se muestra cómo definir formularios históricos para la fuente Palatino Linotype mediante propiedades del Typography objeto .

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

Estilos numéricos

Las fuentes OpenType admiten un gran número de características que se pueden usar con valores numéricos en texto.

Fracciones

Las fuentes OpenType admiten estilos para fracciones, incluyendo las con barra diagonal y las apiladas.

En el texto siguiente se muestran los estilos de fracción para la fuente Palatino Linotype.

Texto que usa fracciones diagonales y apiladas de OpenType

En el ejemplo de marcado siguiente se muestra cómo definir estilos de fracción para la fuente Palatino Linotype mediante propiedades del 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>

Números de estilo antiguo

Las fuentes OpenType admiten un formato numérico de estilo antiguo. Este formato es útil para mostrar números en estilos que ya no son estándar. En el texto siguiente se muestra una fecha del siglo XIX en formatos numéricos de estilo estándar y antiguo para la fuente Palatino Linotype.

Texto con números de estilo antiguo OpenType

En el texto siguiente se muestran números estándar para la fuente Palatino Linotype, seguido de números de estilo antiguos.

Texto que usa conjuntos de números de estilo antiguo OpenType

En el ejemplo de marcado siguiente se muestra cómo definir números de estilo antiguos para la fuente Palatino Linotype, mediante propiedades del Typography objeto .

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

Figuras proporcionales y tabulares

Las fuentes OpenType admiten una característica de figura proporcional y tabular para controlar la alineación de anchos cuando se usan números. Las figuras proporcionales tratan cada número como tener un ancho diferente: "1" es más estrecho que "5". Las cifras tabulares se tratan como números de ancho igual para que se alineen verticalmente, lo que aumenta la legibilidad de la información de tipo financiero.

En el texto siguiente se muestran dos ilustraciones proporcionales en la primera columna mediante la fuente Miramonte. Observe la diferencia de ancho entre los números "5" y "1". La segunda columna muestra los mismos dos valores numéricos con los anchos ajustados mediante la característica de figura tabular.

Texto con figuras proporcionales y tabulares OpenType

En el ejemplo de marcado siguiente se muestra cómo definir ilustraciones proporcionales y tabulares para la fuente Miramonte mediante propiedades del Typography objeto .

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

Cero tachado

Las fuentes OpenType admiten un formato numérico de cero con barra diagonal para resaltar la diferencia entre la letra "O" y el número "0". El número cero con barra diagonal suele usarse para identificadores en información financiera y empresarial.

En el texto siguiente se muestra un identificador de pedido de ejemplo mediante la fuente Miramonte. La primera línea usa números estándar. La segunda línea utilizó ceros tachados para ofrecer un mejor contraste con la letra "O" mayúscula.

Texto que utiliza numerales cero con barra diagonal OpenType

En el siguiente ejemplo de marcado se muestra cómo definir ceros barrados para la fuente Miramonte, utilizando propiedades del objeto Typography.

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

Clase de Tipografía

El Typography objeto expone el conjunto de características que admite una fuente OpenType. Al establecer las propiedades de Typography en el marcado, puede crear fácilmente documentos que aprovechen las características de OpenType.

En el texto siguiente se muestran letras mayúsculas estándar para la fuente Pescadero, seguidas de las letras con estilo "SmallCaps" y "AllSmallCaps". En este caso, se usa el mismo tamaño de fuente para las tres palabras.

Texto con mayúsculas OpenType

En el ejemplo de marcado siguiente se muestra cómo definir mayúsculas para la fuente Pescadero mediante propiedades del Typography objeto . Cuando se usa el formato "SmallCaps", se omite cualquier letra mayúscula inicial.

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

En el ejemplo de código siguiente se realiza la misma tarea que el ejemplo de marcado 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())

Propiedades de la clase Typography

En la tabla siguiente se enumeran las propiedades, los valores y la configuración predeterminada del Typography objeto.

Propiedad Valor(es) Valor predeterminado
AnnotationAlternates Valor numérico: 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 Valor numérico: 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 valor numérico: byte 0
StylisticAlternates valor numérico: 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

Consulte también