Características de las fuentes OpenType

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

Formato de fuente OpenType

El formato de fuente OpenType es una extensión del formato de fuente TrueType® que incorpora compatibilidad para los datos de fuentes PostScript. El formato de fuente OpenType ha sido desarrollado conjuntamente por Microsoft y Adobe Corporation. Las fuentes OpenType y los servicios del sistema operativo compatibles con las fuentes OpenType proporcionan una forma sencilla de instalar y usar fuentes, tanto si las fuentes contienen esquemas TrueType o CFF (PostScript).

El formato de fuente OpenType pone fin a los siguientes problemas de desarrollo:

  • Más compatibilidad con varias plataformas.

  • Más compatibilidad con juegos de caracteres internacionales.

  • Mejor protección para los datos de fuente.

  • Tamaños de archivo más pequeños para hacer más eficaz la distribución de la fuente.

  • Más compatibilidad con el control tipográfico avanzado.

Nota

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

Para obtener información detallada sobre el formato de fuente OpenType, vea la Especificación OpenType.

Extensiones tipográficas avanzadas

Las tablas tipográficas avanzadas (tablas de diseño OpenType) amplían la funcionalidad de fuentes con esquemas TrueType o CFF. Las fuentes de diseño OpenType contienen información adicional que amplía las capacidades de las fuentes para admitir tipografía internacional de alta calidad. La mayoría de las fuentes OpenType exponen solo un subconjunto del total de características 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 de fuentes.

  • Compatibilidad con datos adjuntos de glifo y posicionamiento en dos dimensiones.

  • Información explícita de script y lenguaje que contiene la fuente, para que una aplicación de procesamiento de textos pueda ajustar su comportamiento en consecuencia.

Las tablas de diseño OpenType se describen con más detalle en la sección de tablas de archivos de fuentes de la especificación OpenType.

En el resto de esta introducción se presenta la amplitud y la flexibilidad de algunas características de OpenType visualmente interesantes que se exponen mediante las propiedades del objeto Typography. Para obtener más información sobre este objeto, consulte Clase de tipografía.

Variantes

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

Superíndices y subíndices

La propiedad Variants permite establecer los valores de superíndice y subíndice de 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 de la fuente Palatino Linotype mediante las propiedades del objeto Typography.

<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 de la fuente Palatino Linotype.

Texto con subíndices OpenType

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

<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 con texto en mayúsculas y minúsculas. En el texto siguiente se muestra texto con superíndices y subíndices para la fuente Palatino Linotype. Tenga en cuenta que las mayúsculas no se ven afectadas.

Texto con superíndices y subíndices OpenType

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

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

Mayúsculas

Las mayúsculas son un conjunto de formatos tipográficos que representan el texto en glifos con estilo de mayúscula. Normalmente, cuando se representa todo un texto en mayúsculas, el espaciado entre las letras puede parecer demasiado estrecho y el espesor y la proporción de las letras, demasiado anchos. OpenType admite varios formatos de estilo de mayúsculas, incluido versales, mayúsculas pequeñas, títulos y espaciado de mayúsculas. Estos formatos de estilo le permiten controlar el aspecto de las mayúsculas.

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

Texto con mayúsculas OpenType

En el ejemplo de marcado siguiente se muestra cómo definir las mayúsculas de la fuente Pescadero mediante las propiedades del objeto Typography. 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>

Mayúsculas de título

Las mayúsculas de título son más estrechas en espesor y proporción y están diseñadas para dar un aspecto más elegante que las mayúsculas corrientes. Normalmente, las mayúsculas de título se usan en tamaños de fuente mayores como títulos. En el texto siguiente se muestran mayúsculas normales y de título de la fuente Pescadero. Fíjese en que el grosor del texto es más fino en la segunda línea.

Texto con mayúsculas de titulación OpenType

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

<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 le permite proporcionar más espacio al usar las mayúsculas en un texto. Normalmente, las letras mayúsculas están diseñadas para combinarse con letras minúsculas. Un espaciado que parece bonito entre y una letra mayúscula y una letra minúscula puede parecer demasiado abigarrado si se usan todas las letras mayúsculas. En el texto siguiente se muestra un espaciado normal y de mayúsculas de la fuente Pescadero.

Texto con espaciado de mayúsculas OpenType

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

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

Ligaduras

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

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

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

  • Ligaduras discrecionales. Diseñadas para ser ornamentales y no específicamente para la legibilidad.

  • Ligaduras históricas. Diseñadas para ser históricas y no 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 de la fuente Pericles mediante las propiedades del objeto 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>

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

Texto con ligaduras discrecionales OpenType

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

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

Texto con ligaduras estándar 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 un glifo de caracteres combinados.

Texto con ligaduras estándar OpenType deshabilitadas

En el ejemplo de marcado siguiente se muestra cómo deshabilitar glifos de ligadura estándar de la fuente Palatino Linotype mediante las propiedades del objeto Typography.

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

Caracteres floreados

Los caracteres floreados son glifos decorativos que usan adornos elaborados que suelen asociarse a la caligrafía. En el texto siguiente se muestran glifos estándar y de caracteres floreados de la fuente Pescadero.

Texto con glifos OpenType estándar y floreados

Los caracteres floreados se usan a menudo como elementos decorativos en frases cortas, como anuncios de eventos. En el texto siguiente se usan caracteres floreados para resaltar las letras mayúsculas del nombre del evento.

Texto con caracteres floreados OpenType

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

Caracteres floreados contextuales

Algunas combinaciones de glifos floreados pueden producir un aspecto poco atractivo, como trazos superpuestos descendentes en letras adyacentes. El uso de un carácter floreado contextual le permite usar un glifo de carácter floreado sustituto que produce una mejor apariencia. En el texto siguiente se muestra la misma palabra antes y después de aplicar un carácter floreado contextual.

Texto con caracteres floreados contextuales OpenType

En el ejemplo de marcado siguiente se muestra cómo definir un carácter floreado contextual de la fuente Pescadero mediante las propiedades del objeto Typography.

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

Alternativas

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 se puede usar para crear diferentes aspectos de texto. En el texto siguiente se muestran glifos estándar para la fuente Pericles.

Texto con glifos OpenType estándar

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

Texto con glifos estilísticos alternativos OpenType

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

En el texto siguiente se muestran algunos otros glifos alternativos de estilo de la fuente Pericles.

Texto con glifos estilísticos alternativos OpenType para la fuente Pericles

En el ejemplo de marcación siguiente se muestra cómo se definen estos otros glifos alternativos de estilo.

<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 único 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 de la fuente Lindsey. Fíjese en que la apariencia de la letra "a" varía ligeramente

Texto con alternativas contextuales aleatorias OpenType

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

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

Formas históricas

Las formas históricas son convenciones tipográficas usadas comúnmente en el pasado. En el texto siguiente se muestra la frase "Boston, Massachusetts" utilizando una forma histórica de los glifos de la fuente Palatino Linotype.

Texto con formas históricas OpenType

En el ejemplo de marcado siguiente se muestra cómo definir formas históricas de la fuente Palatino Linotype mediante las propiedades del objeto Typography.

<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 de fracciones, ya sean verticales o con barra diagonal.

En el texto siguiente se muestran estilos de fracciones para la fuente Palatino Linotype.

Texto con fracciones OpenType verticales o con barra diagonal

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

Números de estilo antiguo

Las fuentes OpenType admiten un formato de números 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 XVIII en los formatos de números de estilo estándar y antiguo de la fuente Palatino Linotype.

Texto con numerales OpenType de estilo antiguo

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

Texto con conjuntos numéricos OpenType de estilo antiguo

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

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

Cifras proporcionales y tabulares

Las fuentes OpenType admiten una característica de cifra proporcional y tabular para controlar la alineación de ancho al usar números. Las cifras proporcionales tratan los números como si tuvieran un ancho diferente: "1" es más estrecho que "5". Las cifras tabulares se consideran números con el mismo ancho para que se alineen verticalmente, lo que aumenta la legibilidad de la información de tipo financiero.

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

Texto que usa cifras tabulares y proporcionales OpenType

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

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

Cero con barra diagonal

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 se usa a menudo para identificadores en información financiera y comercial.

En el texto siguiente se muestra un identificador de pedido de ejemplo con la fuente Miramonte. En la primera línea se usan números estándar. En la segunda línea se han usado ceros con barra diagonal para proporcionar un mejor contraste con la letra "O" mayúscula.

Texto con números cero con barra diagonal OpenType

En el ejemplo de marcado siguiente se muestra cómo definir ceros con barras diagonales de la fuente Miramonte mediante las 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 objeto Typography expone el conjunto de características que una fuente OpenType admite. Al establecer las propiedades del objeto Typography en el marcado, se pueden crear fácilmente documentos que saquen partido de las características OpenType.

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

Texto con mayúsculas OpenType

En el ejemplo de marcado siguiente se muestra cómo definir las mayúsculas de la fuente Pescadero mediante las propiedades del objeto Typography. 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 en el ejemplo anterior de marcación.

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 de tipografía

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

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