GNU LilyPond – Utilisation des programmes: 3.2.1 LaTeX

### 3.2.1 LaTeX

LaTeX peut être considéré comme le standard de publication dans le domaine des sciences exactes. Il repose sur le moteur typographique TeX, le nec plus ultra en la matière.

Consultez The Not So Short Introduction to LaTeX en français pour un aperçu des possibilités de LaTeX.

Afin d’insérer de la musique dans vos fichiers LaTeX, `lilypond-book` dispose des environnements et commandes suivants :

- la commande `\lilypond{…}` qui permet de directement saisir du code LilyPond simple ;
- l’environnement `\begin{lilypond}…\end{lilypond}` qui permet de saisir directement du code LilyPond plus élaboré ;
- la commande `\lilypondfile{…}` qui permet d’insérer un fichier LilyPond ;
- la commande `\musicxmlfile{…}` qui permet d’insérer un fichier MusicXML qui sera alors traité par `musicxml2ly` puis `lilypond`.

Il suffit, pour inclure de la musique, d’utiliser l’une des instructions suivantes :

>     \begin{lilypond}[liste,des,options]
>       VOTRE CODE LILYPOND
>     \end{lilypond}

>     \lilypond[liste,des,options]{ VOTRE CODE LILYPOND }

>     \lilypondfile[liste,des,options]{fichier}

>     \musicxmlfile[liste,des,options]{fichier}

Par ailleurs, la commande `\lilypondversion` vous permet d’afficher le numéro de version de LilyPond. Lancer `lilypond-book` produira un fichier qui sera ensuite traité par LaTeX.

Voici quelques exemples. L’environnement `lilypond`

>     \begin{lilypond}[quote,fragment,staffsize=26]
>       c' d' e' f' g'2 g'2
>     \end{lilypond}

produit

La version abrégée

>     \lilypond[quote,fragment,staffsize=11]{<c' e' g'>}

produit

Dans l’état actuel des choses, il n’est pas possible d’inclure des accolades – `{` ou `}` – dans un `\lilypond{}` ; cette commande n’est donc pertinente que lorsque conjuguée à l’option ‘`fragment`’.

La longueur par défaut des portées sera ajustée en fonction des commandes contenues dans le préambule du document – ce qui précède la ligne `\begin{document}`. La commande `lilypond-book` les transmet à LaTeX afin de connaître la largeur du texte, et par voie de conséquence déterminer la longueur des portées. Notez bien que cet algorithme heuristique n’est pas infaillible ; vous devrez alors recourir à l’option `line-width`.

Dès lors qu’elles auront été définies dans votre document, les macros suivantes seront appelées avant chaque extrait musical :

- `\preLilyPondExample` avant la musique,
- `\postLilyPondExample` après la musique,
- `\betweenLilyPondSystem[1]` entre les systèmes, si tant est que `lilypond-book` a découpé la partition en plusieurs fichiers PostScript. Elle requiert un paramètre et reçoit le nombre de fichiers inclus dans l’extrait. Par défaut, elle insère simplement un `\linebreak`.

#### Morceaux choisis

Lorsque, pour les besoins de la démonstration, certains éléments musicaux tels que des liaisons – de phrasé ou de prolongation – continuent après le fragment qui vous intéresse, il suffit d’insérer un saut de ligne et de limiter le nombre de systèmes à inclure.

En ce qui concerne LaTeX, vous devrez définir `\betweenLilyPondSystem` de telle sorte que l’inclusion cesse dès que le nombre de systèmes requis est atteint. Dans la mesure où `\betweenLilyPondSystem` n’est appelé qu’après le premier système, inclure un seul système est un jeu d’enfant :

>     \def\betweenLilyPondSystem#1{\endinput}

>     \begin{lilypond}[fragment]
>       c'1\( e'( c'~ \break c' d) e f\)
>     \end{lilypond}

Pour un plus grand nombre de systèmes, il suffit d’insérer un test conditionnel TeX avant le `\endinput`. À partir de l’exemple qui suit, remplacez le « 2 » par le nombre de systèmes dont vous aurez besoin :

>     \def\betweenLilyPondSystem#1{
>         \ifnum##1<2\else\expandafter\endinput\fi
>     }

Étant donné que `\endinput` arrête immédiatement le traitement du fichier source en cours, l’insertion du `\expandafter` permet de repousser ce `\endinput` après le `\fi` ; la clause `\if-\fi` sera alors respectée.

Gardez à l’esprit que `\betweenLilyPondSystem` est effectif tant que TeX n’est pas sorti du groupe en cours – tel que l’environnement LaTeX – ou écrasé par une nouvelle définition pour la suite du document la plupart du temps. Pour réinitialiser cette définition, insérez

>     \let\betweenLilyPondSystem\undefined

dans votre document LaTeX.

La création d’une macro TeX permet de se simplifier la vie :

>     \def\onlyFirstNSystems#1{
>         \def\betweenLilyPondSystem##1{%
>           \ifnum##1<#1\else\expandafter\endinput\fi}
>     }

Il suffit alors, avant chacun des fragments à inclure, de spécifier le nombre de systèmes requis :

>     \onlyFirstNSystems{3}
>     \begin{lilypond}…\end{lilypond}
>     \onlyFirstNSystems{1}
>     \begin{lilypond}…\end{lilypond}

#### Voir aussi

`lilypond-book` dispose d’options en ligne de commande particulières. Elles sont consultables, ainsi que d’autres détails spécifiques au traitement de documents LaTeX, au chapitre Utilisation de `lilypond-book`.

#### LilyPond — Utilisation des programmes v2.22.2 (branche stable).