GNU LilyPond – Manuel de notation: 3.1.5 Structure de fichier

### 3.1.5 Structure de fichier

Un fichier `.ly` peut contenir un certain nombre d’expression de haut niveau. Les expressions de haut niveau sont les suivantes :

- Une définition de sortie, comme `\paper`, `\midi` et `\layout`. Ces définitions, lorsqu’elles se trouvent à un niveau supérieur, s’appliqueront à l’intégralité de l’ouvrage. Si l’une de ces expression apparaît à plusieurs reprises, la dernière aura préséance.
- Une expression scheme pure, telle que `#(set-default-paper-size "a7" 'landscape)` ou `#(ly:set-option 'point-and-click #f)`.
- Un bloc `\header`, dont le contenu sera de portée globale – ce qui est le cas en général pour le titre ou l’auteur entre autres.
- Un bloc `\score` pour la partition. Cette partition sera assemblée avec les autres partitions se trouvant au même niveau pour composer le `\book`. Vous pouvez modifier ce comportement à l’aide de la variable `toplevel-score-handler` placée en tête.
- Un bloc `\book` permet de regrouper naturellement plusieurs mouvements – autrement dit plusieurs blocs `\score` – dans un même document. Lorsqu’il y a plusieurs `\score`s, LilyPond génère un seul fichier dans lequel les mouvements sont mis les uns à la suite des autres, ce pour chacun des blocs `\book` rencontrés. La seule raison qui peut vous demander d’expliciter plusieurs blocs `\book` dans un fichier ‘`.ly`’ est lorsque vous avez besoin de générer différents documents à partir d’une même source. La présence explicite d’un bloc `\book` est aussi nécessaire lorsque vous travaillez sur un document lilypond-book qui reprendrait plusieurs `\score`s ou `\markup`s dans un même extrait. Vous pouvez modifier ce comportement à l’aide de la variable `toplevel-score-handler` placée en tête.
- Un bloc `\bookpart`. Un ouvrage peut se découper en plusieurs parties à l’aide de blocs `\bookpart`, aussi bien pour alléger le travail de l’algorithme de calcul des sauts de page, que si les réglages du bloc `\paper` diffèrent d’une partie à l’autre.
- Une expression musicale telle que

  >     { c'4 d' e'2 }

  Ce bout de code sera placé dans un `\score` et intégré à l’ouvrage en même temps que tous les autres `\score`s ou expressions musicales. En d’autres termes, un fichier qui ne contiendrait que cette simple expression musicale sera traduit en

  >     \book {
  >       \score {
  >         \new Staff {
  >           \new Voice {
  >             { c'4 d' e'2 }
  >           }
  >         }
  >       }
  >     	\layout { }
  >     	\header { }
  >     }

  Vous pouvez modifier ce comportement à l’aide de la variable `toplevel-music-handler` placée en tête.

- Du texte sous forme de markup comme les paroles d’un couplet

  >     \markup {
  >        2.  Le première ligne du deuxième couplet.
  >     }

  De tels markups seront imprimés là où ils apparaissent, avant, après ou entre les expressions musicales.

- Une variable, ou identificateur, telle que

  >     toto = { c4 d e d }

  Vous pourrez la réutiliser plus loin dans votre fichier en saisissant simplement `\toto`. Le nom des indentificateurs ne doit être formés que de caractères alphabétiques – sans chiffre ni caractère souligné ou tiret.

Voici trois éléments que vous pouvez placer à un niveau supérieur :

>     \layout {
>       % pas en pleine largeur
>       ragged-right = ##t
>     }

>     \header {
>        title = "Do-re-mi"
>     }

>     { c'4 d' e2 }

Vous pouvez placer, n’importe où dans votre fichier, les instruction suivantes :

- `\version`
- `\include`
- `\sourcefilename`
- `\sourcefileline`
- Une ligne de commentaire, introduite par le signe `%`.
- Un bloc de commentaire, délimité par `%{ .. %}`.

Vous pouvez insérer des espaces dans votre fichier source afin de lui apporter une meilleure lisibilité. Les espaces superflus sont normalement ignorés. Notez cependant qu’il est des cas où l’espace est requis pour éviter tout risque d’erreur :

- Autour d’une accolade, qu’elle soit ouvrant ou fermante ;
- Après chaque commande ou variable, autrement dit tout élément qui commence par un `\` ;
- Après tout élément qui sera interprété comme une expression Scheme, autrement dit tout élément qui commence par un `#` ;
- Pour séparer les éléments d’une expression Scheme ;
- En mode parole – `lyricmode` – pour séparer les termes des commandes `\override` et `\set`. Précisons à ce sujet qu’en plus d’ajouter une espace avant et après l’intégralité de la commande, vous devrez encadrer d’espace le point et le signe égal qu’elle peut contenir, comme dans `\override Score . LyricText #'font-size = #5`.

#### Voir aussi

Manuel d’initiation : Organisation des fichiers LilyPond.

Autres langues : English, deutsch, español, 日本語.

#### LilyPond — Manuel de notation