3.3.1 Inclusió de fitxers del LilyPond

Un projecte gran es pot dividir en diversos fitxers. Per referir-se a un altre fitxer, utilitzeu

\include "unaltrefitxer.ly"

La línia \include "unaltrefitxer.ly" equival a enganxar el contingut de unaltrefitxer.ly al fitxer actual al lloc en el qual apareix l’\include. Por exemple, a un projecte gran podríem voler fitxer diferents per a cada part instrumental i crear un fitxer de “partitura completa” que reuneix els fitxers individuals dels instruments. Normalment el fitxer inclòs defineix un cert nombre de variables que a partir d’aleshores queden disponibles per poder-les utilitzar al fitxer de la partitura completa. Als fitxers inclosos es poden marcar les seccions etiquetades per ajudar a fer-les utilitzables a diferents llocs de la partitura. Vegeu Diferents edicions a partir d’una mateixa font.

Els fitxers que estan al directori de treball actual es poden referenciar simplement especificant el nom després de l’ordre \include. Els fitxers a d’altres llocs es poden incloure proporcionant una referència de ruta completa o una ruta relativa (però utilitzeu la barra inclinada normal de l’UNIX, /, no la barra invertida de DOS/Windows, \, com a separador de directori). Per exemple, si material.ly està ubicat un directori per sobre del directori de treball actual, utilitzeu

\include "../material.ly"

o si els fitxers de les parts orquestrals incloses estan tots situats en un subdirectori anomenat parts dins del directori actual, useu

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

Els fitxers d’inclusió també poden contenir enunciats \include al seu cop. De forma predeterminada, aquests enunciats \include de segon nivell no s’interpreten fins que s’incorporen al fitxer principal, per la qual cosa els noms de fitxer que especifiquen han de ser relatius al directori que conté el fitxer principal, no al directori que conté el fitxer inclòs. Malgrat això, aquest comportament es pot modificar globalment passant l’opció -drelative-includes a la línia d’ordres (o mitjançant l’addició de #(ly:set-option 'relative-includes #t) al principi del fitxer principal d’entrada).

Quan relative-includes està establert al valor #t, la ruta de cada ordre \include es considera relativa al fitxer que conté aquesta ordre. Aquest comportament és el recomanat i es convertirà en el comportament predeterminat a una versió futura del LilyPond.

Tant els fitxers relatius al directori principal com els fitxers relatius a algun altre directori es poden incloure (\include) mitjançant l’establiment de relative-includes al valor #t o a #f als llocs apropiats dins dels fitxers. Per exemple, si s’ha creat una biblioteca genèrica, libA, que al seu cop utilitza sub-fitxers que s’inclouen (\include) per mitjà del fitxer d’entrada d’aquesta biblioteca, aquestes instruccions \include hauran d’anar precedides per #(ly:set-option #relative-includes #t) de manera que s’interpretin correctament en construir el fitxer d’entrada .ly principal, d’aquesta forma:

libA/
  libA.ly
  A1.ly
  A2.ly
  …

aleshores el fitxer d’entrada, libA.ly, conté

#(ly:set-option 'relative-includes #t)
\include "A1.ly"
\include "A2.ly"
…
% retorn a l'ajustament predeterminat
#(ly:set-option 'relative-includes #f)

Qualsevol fitxer .ly pot aleshores incloure la biblioteca completa, simplement amb

\include "~/libA/libA.ly"

Es poden utilitzar estructures de fitxer més complexes instant els canvis als llocs adequats.

També es poden incloure fitxers d’un directori que està a una ruta de cerca especificada com opció en invocar al LilyPond des de la línia d’ordres. Els fitxers inclosos s’especifiquen usant sols el seu nom de fitxer. Per exemple, per compilar mitjançant aquest mètode un fitxer principal.ly que inclou fitxers situats a un subdirectori anomenat parts, canvieu el directori que conté principal.ly e introduïu

lilypond --include=parts principal.ly

i a principal.ly escriviu

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

Els fitxers que s’inclouen a moltes partitures es poden posar al directori del LilyPond ../ly (la localització d’aquest directori depèn de la instal·lació: vegeu Altres fonts d’informació). Aquests fitxers es poden incloure senzillament pel seu nom a una ordre \include. D’aquesta forma s’inclouen els fitxers dependents de la llengua com catala.ly.

El LilyPond inclou de forma predeterminada certes fitxers quan s’inicia el programa. Aquestes inclusions no són visibles per a l’usuari, però els fitxers es poden identificar executant lilypond --verbose des de la línia d’ordres. Això presentarà una llista de rutes i fitxers que fa servir el LilyPond, junt amb moltes altres indicacions. De forma alternativa, poden veure’s explicacions sobre els fitxers més importants d’aquest conjunt a Altres fonts d’informació. Aquests fitxers es poden editar, però els canvis realitzats sobre ells es perdran en instal·la una nova versió del LilyPond.

Es poden veure exemples senzills sobre l’ús de \include a en Partitures i particel·les.

Vegeu també

Manual d’aprenentatge Altres fonts d’informació, Partitures i particel·les.

Advertiments i problemes coneguts

Si un fitxer inclòs rep un nom igual al d’un dels fitxers d’instal·lació del LilyPond, el fitxer que té prioritat és el dels fitxers d’instal·lació del LilyPond.


Referència de la notació del GNU LilyPond v2.25.21 (branca de desenvolupament).