3.3.2 Titrages personnalisés


Mise en forme personnalisée des champs de titrage

Toutes les commandes de mise en forme d’un \markup permettent de personnaliser le texte des entête, pied de page et éléments de titrage contenus dans un bloc \header.

\score {
  \header {
    piece = \markup { \fontsize #4 \bold "PRAELUDIUM I" }
    opus = \markup { \italic "BWV 846" }
  }
  { s1 }
}

[image of music]

Voir aussi

Manuel de notation : Mise en forme du texte.


Mise en forme personnalisée des titrages

L’utilisation de commandes \markup au sein d’un bloc \header permet de modifier aisément l’apparence du texte, mais n’influence en rien le positionnement précis des éléments de titrage. L’accès au positionnement des champs de titrage est géré par les deux variables suivantes, attachées au bloc \paper :

Le positionnement des titres, avec les valeurs par défaut de ces variables \markup, est illustré à la rubrique Mise en forme par défaut des titrages subalternes.

Voici les réglages par défaut de scoreTitleMarkup, tels que définis dans le fichier ‘ly/titling-init.ly’ :

scoreTitleMarkup = \markup { \column {
  \if \should-print-all-headers { \bookTitleMarkup \hspace #1 }
  \fill-line {
    \fromproperty #'header:piece
    \fromproperty #'header:opus
  }
}
}

Ceci aura donc pour effet de positionner les champs piece et opus sur la même ligne, en opposition :

\score {
  \header {
    piece = "PRAELUDIUM I"
    opus = "BWV 846"
  }
  { s1 }
}

[image of music]

Voici comment redéfinir le scoreTitleMarkup de telle sorte que le champ piece, dont nous modifions la taille et la graisse, se place au centre de cette ligne :

\book {
  \paper {
    indent = 0\mm
    scoreTitleMarkup = \markup {
      \fill-line {
        \null
        \fontsize #4 \bold \fromproperty #'header:piece
        \fromproperty #'header:opus
      }
    }
  }
  \header { tagline = ##f }
  \score {
    \header {
      piece = "PRAELUDIUM I"
      opus = "BWV 846"
    }
    { s1 }
  }
}

[image of music]

Les champs normalement absents du \header d’un bloc \score seront toutefois imprimés dès lors que vous aurez activé l’instruction print-all-headers au sein du bloc \paper. Le principal inconvénient de cette fonction réside dans le fait que les champs dévolus au titrage des parties devront être supprimés dans chacun des blocs \score de votre fichier source – voir Généralités en matière de titrages.

Afin d’éviter ce désagrément, ajoutez le champ que vous désirez voir apparaître à la définition de scoreTitleMarkup. Nous allons, dans l’exemple suivant, ajouter au scoreTitleMarkup le champ composer, normalement associé au bookTitleMarkup ; chaque \score pourra alors mentionner un compositeur différent.

\book {
  \paper {
    indent = 0\mm
    scoreTitleMarkup = \markup {
      \fill-line {
        \null
        \fontsize #4 \bold \fromproperty #'header:piece
        \fromproperty #'header:composer
      }
    }
  }
  \header { tagline = ##f }
  \score {
    \header {
      piece = "MENUET"
      composer = "Christian Petzold"
    }
    { s1 }
  }
  \score {
    \header {
      piece = "RONDEAU"
      composer = "François Couperin"
    }
    { s1 }
  }
}

[image of music]

Rien ne vous empêche de créer votre propre champ personnalisé, puis d’y faire référence dans la définition du markup.

\book {
  \paper {
    indent = 0\mm
    scoreTitleMarkup = \markup {
      \fill-line {
        \null
        \override #`(direction . ,UP)
        \dir-column {
          \center-align \fontsize #-1 \bold
            \fromproperty #'header:mycustomtext %% User-defined field
          \center-align \fontsize #4 \bold
            \fromproperty #'header:piece
        }
        \fromproperty #'header:opus
      }
    }
  }
  \header { tagline = ##f }
  \score {
    \header {
      piece = "FUGA I"
      mycustomtext = "A 4 VOCI" %% User-defined field
      opus = "BWV 846"
    }
    { s1 }
  }
}

[image of music]

Voir aussi

Manuel de notation : Généralités en matière de titrages.


Mise en forme personnalisée des entête et pied de page

L’utilisation de commandes \markup au sein d’un bloc \header permet de modifier aisément l’apparence du texte, mais n’influence en rien le positionnement précis des entête et pied de page. L’accès au positionnement des champs concernés est géré par les quatre variables suivantes, attachées au bloc \paper :

L’instruction \if au sein d’un \markup permet d’ajouter des éléments au texte des entêtes et pieds de page définis dans le bloc \paper, et ce uniquement lorsque certaines conditions sont vérifiées. En voici la syntaxe :

\if \condition argument

La condition est testée à chaque fois que le markup où elle apparaît est évalué. Le markup argument sera imprimé si et seulement si cette condition est remplie.

LilyPond dispose d’ores et déjà d’un certain nombre de conditions relatives à la numérotation des pages (la première, la dernière, une page spécifique, etc.). Le test renversant la condition s’obtient en remplaçant le \if par un \unless.

L’exemple suivant illustre la manière de centrer son numéro au bas de chaque page. Il nous faut tout d’abord annuler les définitions de oddHeaderMarkup et evenHeaderMarkup à l’aide d’un markup \null. Nous redéfinissons ensuite oddFooterMarkup pour qu’il contienne le numéro de page, centré. Enfin, nous appliquons le même paramétrage au \evenFooterMarkup.

\book {
  \paper {
    print-page-number = ##t
    print-first-page-number = ##t
    oddHeaderMarkup = \markup \null
    evenHeaderMarkup = \markup \null
    oddFooterMarkup = \markup {
      \fill-line {
        \if \should-print-page-number
        \fromproperty #'page:page-number-string
      }
    }
    evenFooterMarkup = \oddFooterMarkup
  }
  \score {
    \new Staff { s1 \break s1 \break s1 }
  }
}

[image of music]

Voici une liste des procédures prédéfinies utilisables avec \if ou \unless.

SyntaxeCondition testée
\on-first-pagec’est la première page du book.
\on-last-pagec’est la dernière page du book.
\on-first-page-of-partc’est la première page de la partie.
\on-last-page-of-partc’est la dernière page de la partie.
\on-page nombrececi est la page nombre
\single-pagece book tient sur une page.
\should-print-page-numbers-globalil faut imprimer les numéros de page. 1
\should-print-page-numberil faut imprimer le numéro de cette page.
\should-print-all-headersprint-all-headers est vrai.

Voir aussi

Manuel de notation : Conditions, Généralités en matière de titrages, Mise en forme par défaut des titrages subalternes.

fichiers d’initialisation : ‘../ly/titling-init.ly’.


Notes de bas de page

[1] \should-print-page-numbers-global peut être différent de \should-print-page-number pour la première page de l’ouvrage, selon le réglage affecté à print-first-page-number dans le bloc \paper.


LilyPond — Manuel de notation v2.24.4 (branche stable).