[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

3.2 Association musique-texte

@translationof Integrating music and text

Nous allons nous intéresser, dans les lignes qui suivent, à la manière d’intégrer LilyPond selon différents types de format.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

3.2.1 LaTeX

@translationof 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 :

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

[image of music]

La version abrégée

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

produit

[image of music]

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 :

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.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

3.2.2 Texinfo

@translationof Texinfo

Texinfo est le format standard pour toute la documentation du projet GNU. À titre d’exemple, toute la documentation de LilyPond – qu’il s’agisse des versions HTML, PDF ou info – est générée à partir de documents Texinfo.

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

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

 
@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, l’utilisation d’un @lilypondversion permet d’afficher la version de LilyPond utilisée.

Le traitement du fichier source par lilypond-book génère un fichier Texinfo (extension ‘.itexi’) qui contiendra les balises @image pour les formats HTML, Info ou imprimable. Les images générées par lilypond-book sont au format EPS et PDF en vue d’une impression, et au format PNG pour leur utilisation en HTML ou Info.

En voici deux exemples. Un environnement lilypond

 
@lilypond[fragment]
c' d' e' f' g'2 g'
@end lilypond

produit

[image of music]

La version abrégée

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

produit

[image of music]

Contrairement à LaTeX, @lilypond{…} ne va pas intégrer d’image dans le document, mais générer un paragraphe.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

3.2.3 HTML

@translationof HTML

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

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

 
<lilypond liste des options>
  VOTRE CODE LILYPOND
</lilypond>

<lilypond liste des options: VOTRE CODE LILYPOND />

<lilypondfile liste des options>fichier</lilypondfile>

<musicxmlfile liste des options>fichier</musicxmlfile>

Il suffit, pour inclure de la musique, d’utiliser

 
<lilypond fragment relative=2>
\key c \minor c4 es g2
</lilypond>

lilypond-book produira alors un fichier HTML contenant les balises d’image pour les fragments de musique :

[image of music]

Pour insérer l’image au fil du texte, il suffit d’utiliser <lilypond … />, tout en séparant options et musique par un caractère deux points, comme ici :

 
De la musique <lilypond relative=2: a b c/> au milieu d'une ligne de texte.

Lorsque l’inclusion concerne des fichiers indépendants, utilisez

 
<lilypondfile option1 option2…>fichier</lilypondfile>

La syntaxe pour <musicXmlfile> est identique à celle de <lilypondfile>, à ceci près qu’elle fait référence à un fichier MusicXML plutôt qu’à un fichier LilyPond.

Une liste des différentes options utilisables avec les balises lilypond et lilypondfile est disponible, à la rubrique Options applicables aux fragments de musique.

Par ailleurs, la commande <lilypondversion/> vous permet d’afficher le numéro de version de LilyPond.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

3.2.4 DocBook

@translationof DocBook

L’inclusion de documents LilyPond ne doit nuire en rien à la conformité du document DocBooK ; l’utilisation d’éditeurs spécialisés ainsi que d’outils de validation en sera ainsi préservée. C’est la raison pour laquelle nous ne définirons pas de balise spécifique ; nous respecterons plutôt les conventions des éléments standard de DocBook.

Conventions communes

Quel que soit le type d’extrait à inclure, nous utiliserons les éléments mediaobject et inlinemediaobject, de telle sorte que ces inclusions soient incorporées directement ou non dans le document final. Les options de formatage des extraits en question sont fournies par la propriété role de l’élément central – voir les paragraphes suivants. Les balises sont déterminées de manière à ce que les éditeurs DocBook prennent en charge du mieux possible leur contenu. Les fichiers DocBook destinés à un traitement par lilypond-book doivent avoir une extension ‘.lyxml’.

Inclusion d’un fichier LilyPond

Il s’agit en fait du cas le plus simple. Le fichier à inclure doit avoir une extension ‘.ly’ et sera inséré comme n’importe quel imageobject, en respectant la structure suivante :

 
<mediaobject>
  <imageobject>
    <imagedata fileref="music1.ly" role="printfilename" />
  </imageobject>
</mediaobject>

Vous pouvez utiliser, en tant que balise externe, aussi bien mediaobject que inlinemediaobject.

Inclusion de code LilyPond

L’inclusion de code LilyPond se réalise à l’aide d’un programlisting auquel on associe le langage lilypond. En voici la syntaxe :

 
<inlinemediaobject>
  <textobject>
    <programlisting language="lilypond" role="fragment verbatim staffsize=16 ragged-right relative=2">
\context Staff \with {
  \remove "Time_signature_engraver"
  \remove "Clef_engraver"}
  { c4( fis) }
    </programlisting>
  </textobject>
</inlinemediaobject>

Comme vous le remarquez, la balise externe – qu’il s’agisse d’un mediaobject ou d’un inlinemediaobject – comporte un bloc textobject qui contiendra le programlisting.

Génération du document DocBook

lilypond-book génère, à partir d’un fichier ‘.lyxml’, un document DocBook tout à fait valide – extension ‘.xml’ – que vous pourrez ensuite traiter avec votre application habituelle. Dans le cas de dblatex, vous obtiendrez alors automatiquement un fichier PDF. Les feuilles de style XSL DocBook officielles permettent de générer du HTML (HTML Help, JavaHelp, etc.) ; vous pourriez néanmoins devoir y apporter quelques adaptations.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]

Ce document a été généré le le 13 juillet 2020 par gub en utilisant texi2html 1.82.

Autres langues : English, català, deutsch, español, italiano, 日本語.
À propos de la sélection automatique de la langue.