1.8.3 Tipografías

Esta sección presenta la forma en que se manejan las fuentes tipográficas, y cómo se pueden cambiar en las partituras.


Explicación de las fuentes tipográficas

Las fuentes tipográficas se manejan a través de distintas bibliotecas. FontConfig se utiliza para detectar las tipografías disponibles; las tipografías seleccionadas se trazan utilizando Pango.

Además de cualquier fuente tipográfica que ya esté instalada en el sistema operativo, se pueden añadir fuentes adicionales al conjunto que detecta FontConfig (y por ello disponibles en las partituras de LilyPond) a través de las instrucciones siguientes:

#(ly:font-config-add-font "ruta/hacia/archivo-de-fuente.otf")

#(ly:font-config-add-directory "ruta/hacia/directorio/")

Las dos instrucciones admiten rutas absolutas y relativas, lo que permite compilar una partitura en cualquier sistema, simplemente copiando los archivos de fuente necesarios junto al código fuente de la partitura.

Cuando las fuentes han sido instaladas y detectadas, se pueden seleccionar usando los métodos que se describen en Fuentes de un solo elemento y en Fuentes tipográficas del documento completo. Dado que imprime la lista completa de las fuentes tipográficas disponibles en el archivo de registro de la consola, puede ser de utilidad la instrucción #(ly:font-config-display-fonts) para verificar qué fuentes se están efectivamente detectando, y bajo qué nombres (ya que pueden ser diferentes de los propios nombres de archivo).

Las tipografías de notación musical se pueden describir como un conjunto de glifos específicos, ordenados en varias familias. La siguiente sintaxis permite usar directamente varios glifos de la tipografía Feta de LilyPond distintas a las de texto en el modo de marcado:

a'1^\markup {
  \vcenter {
    \override #'(font-encoding . fetaBraces)
    \lookup "brace120"
    \override #'(font-encoding . fetaText)
    \column { 1 3 sf }
    \override #'(font-encoding . fetaMusic)
    \lookup "noteheads.s0petrucci"
  }
}

[image of music]

Sin embargo, todos estos glifos excepto las llaves de varios tamaños que están contenidas en la fuente tipográfica fetaBraces están disponibles utilizando la sintaxis más sencilla que se describe en Notación musical dentro de elementos de marcado.

Cuando se usan los glifos de la fuente de llaves fetaBraces, el tamaño de la llave se especifica por la parte numérica del nombre del glifo, en unidades arbitrarias. Se puede especificar cualquier entero de 0 a 575 inclusive, siendo 0 el que produce la llave más pequeña. El valor óptimo se debe determinar por ensayo y error. Todos estos glifos son llaves izquierdas; las llaves derechas se pueden obtener mediante rotación, véase Rotación de objetos.

Están disponibles tres familias de fuentes tipográficas para el texto: la fuente roman (romana, serif o con remates), la fuente sans (sin remates), y la fuente typewriter o monoespaciada.

Para el backend svg:

FamiliaFuente predeterminada
romanserif
sanssans-serif
typewritermonospace

serif, sans-serif y monospace son generic-family (las familias estándar) en las especificaciones de SVG y CSS.

Para otros backends:

FamiliaFuente predeterminada (alias)Listas de definición del alias
romanLilyPond SerifTeX Gyre Schola, C059, Century SchoolBook URW, Century Schoolbook L, DejaVu Serif, ..., serif
sansLilyPond Sans SerifTeX Gyre Heros, Nimbus Sans, Nimbus Sans L, DejaVu Sans, ..., sans-serif
typewriterLilyPond MonospaceTeX Gyre Cursor, Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, DejaVu Sans Mono, ..., monospace

LilyPond Serif, LilyPond Sans Serif y LilyPond Monospace son alias de las fuentes tipográficas que están definidos en el archivo dedicado de configuración de LilyPond 00-lilypond-fonts.conf. Allí donde un carácter no exista en la primera fuente de la lista, será sustituido por el carácter correspondiente extraído de la siguiente fuente de la lista. Para ver más detalles acerca de las definiciones de los alias, consulte 00-lilypond-fonts.conf dentro de la carpeta de instalación del programa.

Cada familia puede incluir distintas formas y series. El ejemplo siguiente muestra la posibilidad de seleccionar familias, formas, series y tamaños alternativos. El valor que se da a font-size es el cambio requerido a partir del tamaño predeterminado.

\override Score.RehearsalMark.font-family = #'typewriter
\mark \markup "Ouverture"
\override Voice.TextScript.font-shape = #'italic
\override Voice.TextScript.font-series = #'bold
d''2.^\markup "Allegro"
\override Voice.TextScript.font-size = #-3
c''4^smaller

[image of music]

Se puede usar una sintaxis similar en el modo de marcado, aunque en este caso es preferible usar la sintaxis sencilla que se explica en Seleccionar la tipografía y su tamaño:

\markup {
  \column {
    \line {
      \override #'((font-shape . italic) (font-size . 4))
      Idomeneo,
    }
    \line {
      \override #'(font-family . typewriter)
      {
        \override #'(font-series . bold)
        re
        di
      }
      \override #'(font-family . sans)
      Creta
    }
  }
}

[image of music]

Al usar fuentes tipográficas de OpenType, pueden usarse las funcionalidades de fuente o font features. No se pueden especificar los idiomas ni los scripts de OpenType. Nota: no todas las fuentes de OpenType tienen todas las funciones. Si se requiere una funcionalidad que no existe en la fuente seleccionada, la funcionalidad sencillamente se ignora.

% Versalitas auténticas
\markup { Estilo normal: Hola HOLA }
\markup { \caps { Falsa versalita: Hola } }
\markup { \override #'(font-features . ("smcp"))
          { Versalitas auténticas: Hola } }

% Estilos de números
\markup { Cifras de estilo normal: 0123456789 }
\markup { \override #'(font-features . ("onum"))
          { Cifras de estilo antiguo: 0123456789 } }

% Alternativas de estilo
\markup { \override #'(font-features . ("salt 0"))
          { Alternativa de estilo 0: εφπρθ } }
\markup { \override #'(font-features . ("salt 1"))
          { Alternativa de estilo 1: εφπρθ } }

% Acumulación de funcionalidades
\markup { \override #'(font-features . ("onum" "smcp" "salt 1"))
          { Acumulación de funcionalidades: Hola 0123456789 εφπρθ } }

[image of music]

Para ver la lista completa de funcionalidades de fuente de OpenType font, consulte: https://www.microsoft.com/typography/otspec/featurelist.htm

Para la identificación de las funcionalidades de fuente de OpenType, consulte: https://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html

Aunque es fácil cambiar entre las fuentes tipográficas preconfiguradas, también es posible usar otras fuentes, como se explica en las siguientes secciones: Fuentes de un solo elemento y Fuentes tipográficas del documento completo.

Véase también

Referencia de la notación: La tipografía Emmentaler, Notación musical dentro de elementos de marcado, Rotación de objetos, Seleccionar la tipografía y su tamaño, Tipografías.


Fuentes de un solo elemento

Se puede usar en una partitura cualquier fuente tipográfica que esté instalada en el sistema operativo y reconocida por parte de FontConfig, usando la siguiente sintaxis:

\override Staff.TimeSignature.font-name = "Bitstream Charter"
\override Staff.TimeSignature.font-size = #2
\time 3/4

a'1_\markup {
  \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
    { Vera Oblique Bold }
}

[image of music]

font-name puede describirse usando una lista de ‘fuentes tipográfcias’ separadas por comas y una lista de ‘estilos’ separados por espacios. En la medida en que la ‘fuente tipográfica’ de la lista esté instalada y contenga el glifo solicitado, se usará. En caso contrario, se usará como sustitución la siguiente fuente tipográfica de la lista.

La ejecución de lilypond con la opción siguiente presenta una lista de todas las tipografías disponibles en el sistema operativo:

lilypond -dshow-available-fonts

Véase también

Referencia de la notación: Explicación de las fuentes tipográficas, Fuentes tipográficas del documento completo.

Fragmentos de código: Text.


Fuentes tipográficas del documento completo

Se pueden cambiar las fuentes tipográficas que se usan como tipografías predeterminadas en las familias romana, sans-serif y monoespaciada, especificándolas en este orden como se ve en el ejemplo de abajo, que escala las tipografías automáticamente con el valor fijado para el tamaño global del pentagrama. De forma parecida a Fuentes de un solo elemento, se puede describir usando una lista de ‘fuentes tipográficas’ separadas por comas. Sin embargo, los ‘estilos’ de fuente no se pueden describir. Para leer más explicaciones sobre las fuentes tipográficas, consulte Explicación de las fuentes tipográficas.

\paper  {
  #(define fonts
    (make-pango-font-tree "Linux Libertine O"
                          "Nimbus Sans, Nimbus Sans L"
                          "DejaVu Sans Mono"
                          (/ staff-height pt 20)))
}

\relative c'{
  c1-\markup {
    roman,
    \sans sans,
    \typewriter typewriter. }
}

[image of music]

Nota: make-pango-font-tree reinicia las fuentes tipográficas al tipo predeterminado Emmentaler.

La sintaxis siguiente nos permite cambiar las tipografías específicas, dejando el resto en sus valores predeterminados. El siguiente ejemplo tiene el mismo efecto que el ejemplo anterior de utilización de make-pango-font-tree. De igual manera que con make-pango-font-tree, podemos especificar una lista de valores separados por comas de ‘fonts’ para las categorías Romana, Sans serif y Monoespaciada (roman, sans y typewriter). Si no queremos cambiar el tamaño del pentagrama a otro distinto del predeterminado de 20 pt, no es necesaria la parte #:factor (/ staff-height pt 20).

\paper {
  #(define fonts
    (set-global-fonts
     #:roman "Linux Libertine O"
     #:sans "Nimbus Sans, Nimbus Sans L"
     #:typewriter "DejaVu Sans Mono"
     #:factor (/ staff-height pt 20) ; innecesario si el tamaño del pentagrama es el predeterminado
    ))
}

También se pueden especificar las fuentes de la notación. El ejemplo siguiente también tiene el mismo efecto que en los casos anteriores, porque establece las fuentes para la notación como las predeterminadas. Para más información, véase Sustituir la tipografía de la notación.

\paper {
  #(define fonts
    (set-global-fonts
     #:music "emmentaler"            ; predeterminado
     #:brace "emmentaler"            ; predeterminado
     #:roman "Linux Libertine O"
     #:sans "Nimbus Sans, Nimbus Sans L"
     #:typewriter "DejaVu Sans Mono"
     #:factor (/ staff-height pt 20) ; innecesario si el tamaño del pentagrama es el predeterminado
    ))
}

Nota: cada llamada a set-global-fonts reinicia completamente tanto la fuente tipográfica de la notación como las de texto. Si se deja sin especificar una cualquiera de las categorías, entonces se utiliza la fuente predeterminada para dicha categoría. Cada llamada a set-global-fonts afecta a cada uno de los bloques \book que le siguen. Si existen varios bloques \book y queremos usar distintas fuentes tipográficas para cada uno de ellos, sencillamente llamamos de nuevo a set-global-fonts, así:

\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

\paper {
  #(define fonts
    (set-global-fonts
     …
    ))
}
\book {
  …
}

Véase también

Referencia de la notación: Explicación de las fuentes tipográficas, Fuentes de un solo elemento, Seleccionar la tipografía y su tamaño, Tipografías, Sustituir la tipografía de la notación.


LilyPond — Referencia de la notación v2.23.82 (rama de desarrollo).