3.3.1 Insertion de fichiers LilyPond

Lorsqu’un projet prend de l’importance en volume, il est judicieux de le scinder en plusieurs fichiers, auxquels vous ferez référence avec un simple

\include "autrefichier.ly"

Une ligne \include "autrefichier.ly" dans un fichier revient à recopier intégralement le contenu de ‘autrefichier.ly’ à l’endroit même ou est placée l’instruction \include. Vous pouvez par exemple écrire un fichier individuel par instrument, puis les regrouper pour former le fichier « conducteur ». Les différentes variables définies dans les fichiers séparés seront normalement reprises et utilisables dans le fichier formant le conducteur. Les sections balisées dans les fichiers individuels peuvent être réutilisées en différents endroit de la partition, comme expliqué à la rubrique Différentes éditions à partir d’une même source.

Lorsque le fichier auquel il est fait référence se trouve dans le même répertoire, donner seulement son nom en argument à la commande \include suffit. S’il se trouve ailleurs, vous devrez indiquer le chemin d’accès, absolu ou relatif, en respectant toutefois la syntaxe UNIX – autrement dit, le séparateur de répertoire est une oblique normale / et non l’oblique inverse \ de DOS ou Windows. Par exemple, si le fichier ‘truc.ly’ se trouve dans le répertoire supérieur au répertoire de travail, la ligne devra être

\include "../truc.ly"

ou bien, si les fichiers correspondant aux parties d’orchestre se trouvent dans le sous-répertoire ‘parties’ relativement au répertoire courant, vous devrez mentionner

\include "parties/VI.ly"
\include "parties/VII.ly"
... etc.

Les fichiers à inclure peuvent eux-mêmes contenir des instructions \include. Ces instructions \include de second niveau ne pourront, par défaut, être interprétées qu’une fois intégrées dans le fichier principal ; leur argument doit donc comporter le chemin relativement au fichier principal et non par rapport au fichier dans lequel cette inclusion est mentionnée. Vous pouvez toutefois influer sur ce comportement de manière globale à l’aide de l’option -drelative-includes en ligne de commande ou en ajoutant une clause #(ly:set-option 'relative-includes #t) en tête du fichier principal.

Lorsque relative-include est valorisé à #t, le chemin à suivre pour chacune des commandes \include sera pris relativement au fichier qui la contient. Cette option est vouée à être activée par défaut dans une future version de LilyPond.

Selon l’endroit où relative-includes est valorisé à #t ou #f, la commande \include permettra d’incorporer des fichiers contenus dans l’arborescence du répertoire principal et des fichiers situés ailleurs. Si, par exemple, une biblothèque générale libA a été créée pour utiliser des sous-fichiers à l’aide de d’inclusions dans un fichier catalogue, les clauses \include devront être précédées d’un#(ly:set-option #relative-includes #t) de telle sorte qu’elles soient interprétées correctement lorsque rapatriées dans le fichier ‘.ly’ principal. Examinons cela dans les faits :

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

puis le fichier catalogue, libA.ly, qui contient

#(ly:set-option 'relative-includes #t)
\include "A1.ly"
\include "A2.ly"
...
% retour au réglage par défaut
#(ly:set-option 'relative-includes #f)

Tout fichier .ly peut désormais consulter l’intégralité de cette bibliothèque grâce à un simple

\include "~/libA/libA.ly"

Un positionnement judicieux des commutateurs permet de gérer des structures de fichiers plus complexes.

Vous pouvez inclure des fichiers dont vous spécifierez le chemin d’accès sur la ligne de commande au moment de lancer la compilation. L’appel à ces fichiers ne mentionnera alors que leur nom. Par exemple, si vous voulez compiler avec cette méthode le fichier ‘principal.ly’ qui inclut des fichiers situés dans le sous-répertoire ‘parties’, placez vous dans le répertoire contenant ‘principal.ly’, puis tapez

lilypond --include=parties principal.ly

tout en ayant bien dans ‘principal.ly

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

Lorsqu’un fichier est voué à être inclus dans nombre de partitions, vous pouvez le placer dans le répertoire de LilyPond ‘../ly’. Attention : ce répertoire varie selon votre installation, comme indiqué au chapitre Autres sources de documentation. Ce fichier sera inclus dès lors que vous fournirez uniquement son nom en argument à la fonction \include. C’est par exemple le cas du fichier de définition particulier ‘gregorian.ly’.

Au moment où vous lancez LilyPond, un certain nombre de fichiers se retrouvent inclus par défaut ; il suffit d’activer le mode verbeux en faisant lilypond --verbose pour s’en rendre compte. Vous verrez ainsi défiler, en plus de nombreuses informations, le nom d’un certain nombre de fichiers et de chemins d’accès. Les fichiers les plus important sont mentionnés au chapitre Autres sources de documentation. Si vous venez à les modifier, rappelez-vous qu’ils seront écrasés à l’installation d’une nouvelle version de LilyPond.

Vous trouverez quelques exemples simples d’utilisation de la commande \include au chapitre Conducteurs et parties.

Voir aussi

Manuel d’initiation : Autres sources de documentation, Conducteurs et parties.

Problèmes connus et avertissements

Lorsque vous incluez un fichier qui porte le même nom que l’un des fichiers d’initialisation de LilyPond, le fichier de la distribution de LilyPond aura préséance.


Autres langues : English, deutsch, español, italiano, 日本語.
About automatic language selection.

LilyPond — Manuel de notation