3.3.1 Inclusión de archivos de LilyPond

Un proyecto grande se puede dividir en varios archivos. Para referirse a otro archivo, utilice

\include "otroarchivo.ly"

La línea \include "otroarchivo.ly" equivale a pegar todo el contenido de otroarchivo.ly en el archivo actual en el lugar en que aparece el \include. Por ejemplo, en un proyecto grande podríamos querer archivos distintos para cada parte instrumental y crear un archivo de “partitura completa” que reúne los archivos individuales de los instrumentos. Normalmente el archivo incluido define un cierto número de variables que a partir de entonces quedan disponibles para poderlas utilizar en el archivo de la partitura completa. En los archivos incluidos se pueden marcar las secciones etiquetadas para ayudar a hacerlas utilizables en distintos lugares de la partitura, véase Distintas ediciones a partir de una misma fuente.

Los archivos que están en el directorio de trabajo actual se pueden referenciar simplemente especificando el nombre después de la instrucción \include. Los archivos en otros lugares se pueden incluir proporcionando una referencia de ruta completa o una ruta relativa (pero utilice la barra inclinada normal del UNIX, /, no la barra invertida de DOS/Windows, \, como separador de directorio). Por ejemplo, si material.ly está situado un directorio por encima del directorio de trabajo actual, utilice

\include "../material.ly"

o si los archivos de las partes orquestales incluidas están todos situados en un subdirectorio llamado partes dentro del directorio actual, use

\include "partes/VI.ly"
\include "partes/VII.ly"
… etc.

Los archivos de inclusión también pueden contener enunciados \include a su vez. Estos enunciados \include de segundo nivel se interpretan de manera relativa a la ruta del archivo que contiene dicha instrucción, lo que es conveniente para varios archivos ubicados dentro del mismo subdirectorio. Por ejemplo, una biblioteca general, bibA, puede a su vez usar sub-archivos que son incluidos por el archivo principal de dicha biblioteca, así:

bibA/
  bibA.ly
  A1.ly
  A2.ly
  …

entonces el archivo de entrada, bibA.ly, contiene

\include "A1.ly"
\include "A2.ly"
…

Cualquier archivo .ly puede entonces incluir la biblioteca completa, simplemente con

\include "~/bibA/bibA.ly"

Sin embargo, este comportamiento se puede modificar de forma global pasando la opción -drelative-includes=#f en la línea de órdenes (o añadiendo #(ly:set-option 'relative-includes #f) al principio del archivo principal de entrada). En tal caso, cada archivo se incuirá relativamente a la ubicación del archivo principal, sin importar dónde está situado su instrucción \include. Estructuras de archivo complejas que requieren realizar la inclusión tanto de archivos relativos al directorio principal como de archivos relativos a algún otro directorio, pueden incluso configurarse estableciendo relative-includes a los valores #f o #t en los lugares adecuados dentro de dichos archivos.

También se pueden incluir archivos de un directorio que está en una ruta de búsqueda especificada como opción al invocar a LilyPond desde la línea de órdenes. Los archivos incluidos se especifican usando solamente su nombre de archivo. Por ejemplo, para compilar mediante este método un archivo principal.ly que incluye archivos situados en un subdirectorio llamado partes, cambie al directorio que contiene principal.ly e introduzca

lilypond --include=partes principal.ly

y en principal.ly escriba

\include "VI.ly"
\include "VII.ly"
… etc.

Los archivos que se incluyen en muchas partituras se pueden poner en el directorio de LilyPond ../ly (la localización de este directorio depende de la instalación: véase Otras fuentes de información). Estos archivos se pueden incluir sencillamente por su nombre en un enunciado \include. De esta forma se incluyen los archivos dependientes del idioma como espanol.ly.

LilyPond incluye de forma predeterminada ciertos archivos cuando se inicia el programa. Estas inclusiones no son visibles para el usuario, pero los archivos se pueden identificar ejecutando lilypond --verbose desde la línea de órdenes. Esto presentará una lista de rutas y archivos que utiliza LilyPond, junto a muchas otras indicaciones. De forma alternativa, pueden verse explicaciones sobre los archivos más importantes de este conjunto en Otras fuentes de información. Estos archivos se pueden editar, pero los cambios realizados sobre ellos se perderán al instalar una nueva versión de LilyPond.

Pueden verse ejemplos sencillos sobre el uso de \include en Partituras y particellas.

Véase también

Manual de aprendizaje: Otras fuentes de información, Partituras y particellas.

Advertencias y problemas conocidos

Si un archivo incluido recibe un nombre igual al de uno de los archivos de instalación de LilyPond, el archivo que tiene prioridad es el de los archivos de instalación de LilyPond.


Referencia de la notación de GNU LilyPond v2.25.21 (rama de desarrollo).