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 – see 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.


GNU LilyPond – Manuel de notation v2.25.22 (development-branch).