| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Text
Nous allons voir ici comment insérer du texte dans une partition, ainsi que différentes manières de le mettre en forme.
| 1.8.1 Ajout de texte | ||
| 1.8.2 Mise en forme du texte | ||
| 1.8.3 Fontes |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Writing text
Cette partie constitue une introduction aux différentes manières d’ajouter du texte à une partition.
Note : Pour écrire des accents et autres caractères spéciaux, il suffit de les insérer directement dans votre fichier LilyPond. Ce fichier devra être sauvegardé avec l’encodage UTF-8. Pour plus d’informations, voir Codage du texte.
| Vue d’ensemble des objets textuels | ||
| Commentaires textuels | ||
| Indication textuelle avec extension | ||
| Indications textuelles | ||
| Texte indépendant |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Text objects overview
Les objets textuels se saisissent soit comme de simples chaînes de
caractères entre quillemets informatique, soit dans un bloc
\markup qui acceptte une mise en forme fine du texte et des
réhaussements graphiques comme indiqué dans
Mise en forme du texte.
En tant que tels, les blocs markup peuvent s’utiliser :
TextScript attaché à des notes par
-, ^ ou _ ; voir
see Commentaires textuels ;
RehearsalMark ou MetronomeMark introduits respectivement
par les mots-clé \mark ou \tempo ; voir
Indications textuelles ;
\score – dans ce cas précis la commande
\markup {...} est obligatoire et ne saurait être remplacée
par du simple texte borné par des guillemets informatiques ; voir
Texte indépendant ;
\header (par ex.
title, subtitle, composer), ou dans des éléments
spécifiques au bloc \paper tel que evenHeaderMarkup pour
les numéros de page. Ceci est abordé dans
Titres et entêtes.
De nombreux autres objets basés sur du texte peuvent se saisir sous forme de bloc markup même si ce n’esp pas leur usage premier.
\finger ; voir
Doigtés.
\markup ; voir
Vue d’ensemble de la musique vocale.
crescendoText ; voir Nuances.
Il est en fait possible d’utiliser \markup pour personnaliser
l’apparence de pratiquement n’importe quel objet graphique (grob)
en appliquant une dérogation soit à sa propriété text s’il en
dispose ou de sa propriété stencil. Une partie de la logique qui
rend ceci possible est expliquée dans
(essay)Flexibilité architecturale section ‘Flexibilité architecturale’ dans Essai.
L’exemple qui suit illustre l’ubiquité des blocs markup non seulement comme les objets ci-dessus présentés, mais aussi en remplaçant des objets musicaux par des objets textuels de différentes manières.
\header { title = \markup "Header" } dyn = #(make-dynamic-script #{ \markup \text "DynamicText" #}) \markup \box "Top-level markup" \score { << \new ChordNames \with { majorSevenSymbol = \markup "majorSevenSymbol" } \chordmode { c1:maj7 } \new Staff { \tempo \markup "MetronomeMark" \mark \markup \smaller "RehearsalMark" \once \override TupletNumber.text = \markup "TupletNumber" \tuplet 3/2 { \once \override NoteHead.stencil = #ly:text-interface::print \once \override NoteHead.text = \markup \lower #0.5 "NoteHead" c''8^\markup \italic "TextScript" a'\finger \markup \text "Fingering" \once \override Rest.stencil = #(lambda (grob) (grob-interpret-markup grob #{ \markup "Rest" #})) r } } \new Lyrics \lyricmode { \markup \smallCaps "LyricText" 1 } \new Dynamics { s1\dyn } >> }
Manuel de notation : Commentaires textuels, Doigtés, Gravure des accords, Indication textuelle avec extension, Indications textuelles, Info-bulle, Mise en forme du texte, Nuances, Personnalisation des indications de nuance, Texte indépendant, Vue d’ensemble de la musique vocale.
Essai sur la gravure musicale automatisée : (essay)Flexibilité architecturale section ‘Flexibilité architecturale’ dans Essai.
Morceaux choisis : (snippets)Text section ‘Text’ dans Morceaux choisis.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Text scripts
Vous pouvez ajouter à une partition des indications sous forme textuelle, comme dans l’exemple suivant. Ces indications se placeront manuellement au-dessus ou au-dessous de la portée selon la syntaxe utilisée – cf. Direction et positionnement.
\relative { a'8^"pizz." g f e a4-"scherz." f }
Cette syntaxe est en fait un raccourci. Des constructions plus
élaborées d’annotation peuvent être obtenues en ayant recours à un bloc
\markup et selon les préceptes énoncés dans
Mise en forme du texte.
\relative { a'8^\markup { \italic pizz. } g f e a4_\markup { \tiny scherz. \bold molto } f }
Par défaut, ces indications n’affectent en rien l’espacement des notes. Leur longueur peut néanmoins être prise en considération : dans l’exemple qui suit, le premier commentaire n’influe pas sur l’espacement, à l’inverse du second.
\relative { a'8^"pizz." g f e \textLengthOn a4_"scherzando" f }
En plus d’indications textuelles, les notes peuvent se voir attacher des articulations, comme indiqué au chapitre Articulations et ornements.
Pour de plus amples détails sur la manière de combiner indications textuelles et articulations, reportez-vous au chapitre (learning)Positionnement des objets section ‘Positionnement des objets’ dans Manuel d’initiation.
\textLengthOn,
\textLengthOff.
Manuel d’initiation : (learning)Positionnement des objets section ‘Positionnement des objets’ dans Manuel d’initiation.
Manuel de notation : Articulations et ornements, Direction et positionnement, Mise en forme du texte.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextScript section ‘TextScript’ dans Référence des propriétés internes.
S’assurer que tous les éléments textuels et les paroles respectent les marges du document requiert des calculs relativement lourds ; vous pouvez toutefois vous en affranchir en ajoutant
\override Score.PaperColumn.keep-inside-line = ##f |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Text spanners
Certaines indications d’interprétation comme rallentando, accelerando ou trilles, s’inscrivent textuellement et se prolongent sur plusieurs notes à l’aide d’une ligne pleine, pointillée ou ondulée. Ces objets, que l’on appelle « extenseurs », se dessinent entre deux notes à l’aide de la syntaxe suivante :
\relative { \override TextSpanner.bound-details.left.text = "rit." b'1\startTextSpan e,\stopTextSpan }
Le texte à imprimer est spécifié en tant que propriété de l’objet
TextSpanner. Il apparaîtra par défaut en italique ;
cependant, rien ne s’oppose à un autre graphisme dès lors que vous
faites appel à un bloc \markup –
voir Mise en forme du texte.
\relative { \override TextSpanner.bound-details.left.text = \markup { \upright "rit." } b'1\startTextSpan c e,\stopTextSpan }
Le style de ligne se définit lui aussi comme une propriété de l’objet. Les détails concernant la syntaxe à utiliser sont expliqués au chapitre Styles de ligne.
\textSpannerUp,
\textSpannerDown,
\textSpannerNeutral.
Extensions de nuance postfix
Les lignes d’extension des commandes \cresc, \dim et
\decresc peuvent désormais être personnalisées facilement sous
forme d’opérateurs postfix. Soufflets et (de)crescendos peuvent
cohabiter. \< et \> produiront par défaut des
soufflets, alors que \cresc, etc. produiront une indication
textuelle avec extension.
% Some sample text dynamic spanners, to be used as postfix operators crpoco = #(make-music 'CrescendoEvent 'span-direction START 'span-type 'text 'span-text "cresc. poco a poco") \relative c' { c4\cresc d4 e4 f4 | g4 a4\! b4\crpoco c4 | c4 d4 e4 f4 | g4 a4\! b4\< c4 | g4\dim a4 b4\decresc c4\! }
Personnalisation des extenseurs de nuance postfix
Il s’agit de fonctions postfix pour personnaliser l’extension des
crescendos textuels. L’extension devrait débuter sur la première note
de la mesure. Il faut utiliser -\mycresc – comme une
articulation – sous peine que le départ de l’extension n’apparaisse
qu’à la note suivante.
% Two functions for (de)crescendo spanners where you can explicitly give the % spanner text. mycresc = #(define-music-function (mymarkup) (markup?) (make-music 'CrescendoEvent 'span-direction START 'span-type 'text 'span-text mymarkup)) mydecresc = #(define-music-function (mymarkup) (markup?) (make-music 'DecrescendoEvent 'span-direction START 'span-type 'text 'span-text mymarkup)) \relative c' { c4-\mycresc "custom cresc" c4 c4 c4 | c4 c4 c4 c4 | c4-\mydecresc "custom decresc" c4 c4 c4 | c4 c4\! c4 c4 }
Manuel de notation : Mise en forme du texte, Nuances, Styles de ligne.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis, (snippets)Expressive marks section ‘Signes d’interprétation’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextSpanner section ‘TextSpanner’ dans Référence des propriétés internes.
LilyPond ne peut traiter qu’un seul extenseur à la fois par voix.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Text marks
La commande \mark est tout d’abord conçue pour les
Indications de repère.
\relative { \mark "Verse" c'2 g' \bar "||" \mark "Chorus" g2 c, \bar "|." }
Cette syntaxe rend possible l’adjonction de n’importe quel texte à une
barre de mesure. Ce texte peut être mis en forme de différentes
manières dès lors qu’est utilisé un bloc \markup, comme indiqué
au chapitre Mise en forme du texte.
\relative { <c' e>1 \mark \markup { \italic { colla parte } } <d f>2 <e g> <c f aes>1 }
Elle peut aussi servir à insérer des signes de coda ou de
segno, ou bien un point d’orgue, au-dessus d’une
barre de mesure. Couplez-la alors à la commande \markup pour
avoir accès au symbole approprié, selon les indications contenues au
chapitre Notation musicale dans du texte formaté.
\relative { <bes' f>2 <aes d> \mark \markup { \musicglyph "scripts.ufermata" } <e g>1 }
Le résultat de \mark n’apparaîtra que sur la portée supérieure
d’un système. Si vous introduisez la commande \mark au moment
d’une barre de mesure, la marque se placera au-dessus de la barre. Si
vous y faites appel au milieu d’une mesure, cette marque sera
positionnée entre les notes. Si elle intervient en début de ligne,
elle sera placée juste avant la première note de cette portée. Enfin,
une marque qui tomberait sur un saut de ligne sera imprimée au début
de la ligne suivante.
\relative c'' { \mark "Allegro" c1 c \mark "assai" \break c c }
\markLengthOn,
\markLengthOff.
Indication d’un repère en fin de ligne
Les indications de repère peuvent être imprimées à la fin d’une ligne plutôt qu’en tête de la suivante. L’alignement sur la barre de mesure devra alors s’effectuer par l’extrémité droite de l’indication.
\relative c'' { g2 c d,2 a' \once \override Score.RehearsalMark.break-visibility = #end-of-line-visible \once \override Score.RehearsalMark.self-alignment-X = #RIGHT \mark "D.C. al Fine" \break g2 b, c1 \bar "||" }
Impression des indications sur toutes les portées d’un système
Bien que ces indications textuelles ne soient habituellement imprimées qu’au niveau de la portée supérieure d’un système, leur affectation peut être répercutée à chacune des portées.
\score { << \new Staff { c''1 \mark "molto" c'' } \new Staff { c'1 \mark "molto" c' } >> \layout { \context { \Score \remove "Mark_engraver" \remove "Staff_collecting_engraver" } \context { \Staff \consists "Mark_engraver" \consists "Staff_collecting_engraver" } } }
Manuel de notation : Indications de repère, La fonte Emmentaler, Mise en forme du texte, Notation musicale dans du texte formaté.
Morceaux choisis: (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)MarkEvent section ‘MarkEvent’ dans Référence des propriétés internes, (internals)Mark_engraver section ‘Mark_engraver’ dans Référence des propriétés internes, (internals)RehearsalMark section ‘RehearsalMark’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Separate text
Un bloc \markup peut exister en lui-même, indépendamment de tout
bloc \score, et venir en préambule par exemple – voir le
chapitre Structure de fichier à ce propos.
\markup { Tomorrow, and tomorrow, and tomorrow... }
De cette manière, vous pouvez insérer du texte en dehors de la musique. Ceci devient particulièrement utile lorsque le fichier source contient plusieurs morceaux. Pour plus d’informations à ce propos, reportez-vous au chapitre Plusieurs partitions dans un même ouvrage.
\score { c'1 } \markup { Tomorrow, and tomorrow, and tomorrow... } \score { c'1 }
Les blocs de textes peuvent s’étendre sur plusieurs pages, ce qui permet de générer des ouvrages complets uniquement grâce à LilyPond. Cette fonctionnalité, ainsi que la syntaxe appropriée, est abordée plus en détail au chapitre Texte avec sauts de page.
\markup,
\markuplist.
Bloc de texte indépendant sur deux colonnes
L’utilisation de la commande \markup permet de distribuer un bloc
de texte indépendant sur plusieurs colonnes.
\markup { \fill-line { \hspace #1 \column { \line { O sacrum convivium } \line { in quo Christus sumitur, } \line { recolitur memoria passionis ejus, } \line { mens impletur gratia, } \line { futurae gloriae nobis pignus datur. } \line { Amen. } } \hspace #2 \column \italic { \line { O sacred feast } \line { in which Christ is received, } \line { the memory of His Passion is renewed, } \line { the mind is filled with grace, } \line { and a pledge of future glory is given to us. } \line { Amen. } } \hspace #1 } }
Manuel de notation : Mise en forme du texte, Plusieurs partitions dans un même ouvrage, Structure de fichier, Texte avec sauts de page.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextScript section ‘TextScript’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Formatting text
Nous allons voir dans les lignes qui suivent la manière de mettre en
forme du texte à l’aide de la syntaxe propre au mode \markup.
| Introduction au formatage de texte | ||
| Sélection de la fonte et de la taille | ||
| Alignement du texte | ||
| Éléments graphiques dans du texte formaté | ||
| Notation musicale dans du texte formaté | ||
| Texte avec sauts de page |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Text markup introduction
La commande \markup permet d’ajouter du texte et dispose de sa
propre syntaxe que nous appellerons le « mode markup ». De tels
blocs peuvent s’utiliser partout, comme indiqué dans
Vue d’ensemble des objets textuels.
La syntaxe du mode markup n’est pas différente de celle des
autres modes de LilyPond : une expression \markup est bornée
par des accolades { … }. Un mot unique sera
considéré comme une expression minimale, et n’aura donc pas besoin
d’être mis entre accolades.
Contrairement aux indications simples, du type "entre guillemets", les
blocs \markup peuvent contenir des expressions imbriquées ou
d’autres commandes markup, dès lors qu’elles sont précédées du
caractère \. Ces commandes n’affecteront que la première
expression qui les suit.
\relative { a'1-\markup intenso a2^\markup { poco \italic più forte } c e1 d2_\markup { \italic "string. assai" } e b1^\markup { \bold { molto \italic agitato } } c }
Un bloc \markup peut contenir du texte entre guillemets. De
telles chaînes seront considérées comme des expressions textuelles
minimales ; à ce titre, toute commande de type markup ou
tout caractère spécial – tel un \ ou un # –
sera imprimé littéralement et sans influer sur le formatage du texte.
Il est de ce fait possible d’imprimer des guillemets
informatiques " dès lors qu’ils sont précédés d’une oblique
inverse.
\relative { a'1^"\italic markup..." a_\markup { \italic "... imprime des lettres en \"italique\" !" } a a }
Une liste de mots, pour pouvoir être traitée en tant qu’expression
distincte, doit être bornée par des " ou précédée d’une commande.
La manière de définir les expressions markup aura une influence
sur la manière dont elles seront empilées, centrées ou alignées. Dans
l’exemple qui suit, la deuxième expression \markup est traitée
tout comme la première :
\relative c'' { c1^\markup { \center-column { a bbb c } } c1^\markup { \center-column { a { bbb c } } } c1^\markup { \center-column { a \line { bbb c } } } c1^\markup { \center-column { a "bbb c" } } }
Vous pouvez stocker les étiquettes textuelles en tant que variables, et attacher ces identificateurs à des notes, comme ici :
allegro = \markup { \bold \large Allegro } { d''8.^\allegro d'16 d'4 r2 }
Pour une liste des différentes commandes spécifiques au mode
\markup, consultez l’annexe Commandes pour markup (en
anglais).
Le fonctionnement interne de ces commandes et la façon d’en implémenter
de nouveaux est abordée dans
(extending)Fonctions pour markups section ‘Fonctions pour markups’ dans Extension de LilyPond.
Manuel de notation : Commandes pour markup, Vue d’ensemble des objets textuels.
Manuel d’extension des fonctionnalités : (extending)Fonctions pour markups section ‘Fonctions pour markups’ dans Extension de LilyPond
Fichiers d’initialisation : ‘scm/markup.scm’.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Les messages d’erreur de syntaxe en mode markup sont peu explicites.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Selecting font and font size
Le mode markup autorise des changements élémentaires de la fonte :
\relative { d''1^\markup { \bold { Più mosso } \italic { non troppo \underline Vivo } } r2 r4 r8 d,_\markup { \italic quasi \smallCaps Tromba } f1 d2 r }
La taille des caractères se modifie, relativement à la taille globale des portées, de différentes manières.
Vous pouvez adopter l’une des tailles prédéfinies, comme ici :
\relative b' { b1_\markup { \huge Sinfonia } b1^\markup { \teeny da } b1-\markup { \normalsize camera } }
Vous pouvez la modifier relativement à sa valeur précédente :
\relative b' { b1_\markup { \larger Sinfonia } b1^\markup { \smaller da } b1-\markup { \magnify #0.6 camera } }
Vous pouvez l’augmenter ou la diminuer par rapport à la taille globale de portée :
\relative b' { b1_\markup { \fontsize #-2 Sinfonia } b1^\markup { \fontsize #1 da } b1-\markup { \fontsize #3 camera } }
Vous pouvez lui attribuer une valeur arbitraire quelle que soit la taille de portée globale :
\relative b' { b1_\markup { \abs-fontsize #20 Sinfonia } b1^\markup { \abs-fontsize #8 da } b1-\markup { \abs-fontsize #14 camera } }
Lorsque le texte comporte des espaces, mieux vaut le borner par des guillemets informatiques ; s’en suivra une meilleure adéquation entre la taille des espaces et celle des autres caractères :
\markup \fontsize #6 \bold { Sinfonia da camera } \markup \fontsize #6 \bold { "Sinfonia da camera" }
Vous pouvez imprimer du texte en indice ou en exposant. Celui-ci sera dans une taille plus petite, mais rien ne s’oppose à ce que vous lui affectiez un taille normale :
\markup { \column { \line { 1 \super st movement } \line { 1 \normal-size-super st movement \sub { (part two) } } } }
Le mode markup vous permet de sélectionner d’autres familles de fontes. Par défaut, LilyPond utilise une police avec empattement, du type roman, et tout changement doit être explicite. Dans la dernière ligne de l’exemple qui suit, vous noterez qu’il n’y a aucune différence entre les premier et deuxième mots.
\markup { \column { \line { Act \number 1 } \line { \sans { Scene I. } } \line { \typewriter { Verona. An open place. } } \line { Enter \roman Valentine and Proteus. } } }
Certaines familles de police spécifiques aux nombres ou aux nuances par exemple, ne disposent pas de tous les caractères, comme nous l’avons vu dans les chapitres Personnalisation des indications de nuance et Indications de reprise manuelles.
Lorsqu’un changement survient au milieu d’un mot, il se peut qu’un espacement supplémentaire apparaisse. Il suffit en pareil cas de concaténer les différents éléments :
\markup { \column { \line { \concat { 1 \super st } movement } \line { \concat { \dynamic p , } \italic { con dolce espressione } } } }
Une liste des différentes commandes permettant de changer de fonte ou d’utiliser des fontes personnalisées est disponible à l’annexe Font.
Pour savoir comment personnaliser des fontes, reportez-vous au chapitre Fontes.
\teeny,
\tiny,
\small,
\normalsize,
\large,
\huge,
\smaller,
\larger.
Manuel de notation : (notation)Font section ‘Fonte’ dans Manuel de notation, Fontes, Indications de reprise manuelles, Personnalisation des indications de nuance.
Fichiers d’initialisation : ‘scm/define-markup-commands.scm’.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextScript section ‘TextScript’ dans Référence des propriétés internes.
Le recours aux commandes \teeny, \tiny, \small,
\normalsize, \large et \huge produiront des
espacements nettement moins réguliers que si vous utilisez
\fontsize.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Text alignment
Cette partie traite de la manière de positionner du texte en mode markup. On déplace l’intégralité d’un objet markup en utilisant la syntaxe décrite au chapitre (learning)Déplacement d’objets section ‘Déplacement d'objets’ dans Manuel d’initiation.
Les objets de type markup peuvent s’aligner de différentes manières. Une indication textuelle est par défaut alignée sur son extrémité gauche. Dans l’exemple qui suit, il n’y a aucune différence entre les deux premiers markups.
\relative { d''1-\markup { poco } f d-\markup { \left-align poco } f d-\markup { \center-align { poco } } f d-\markup { \right-align poco } }
L’alignement horizontal peut être ajusté à l’aide d’une valeur numérique :
\relative { a'1-\markup { \halign #-1 poco } e' a,-\markup { \halign #0 poco } e' a,-\markup { \halign #0.5 poco } e' a,-\markup { \halign #2 poco } }
Certains objets possèdent leurs propres procédures d’alignement, qui annuleront toute spécification d’alignement que vous pourriez leur affecter. La solution consiste alors à déplacer l’intégralité de ces objets markup, comme indiqué par exemple au chapitre Indications textuelles.
L’alignement vertical est quant à lui un peu plus compliqué. Comme nous l’avons vu ci-avant, les objets markup peuvent être déplacés dans leur intégralité. Il est néanmoins possible de déplacer certains éléments spécifiques au sein d’un bloc markup. En pareil cas, l’élément à déplacer doit être précédé d’un « point d’ancrage » – un autre élément du markup ou un objet invisible. L’exemple qui suit illustre ces deux possibilités. Vous noterez par ailleurs que le dernier markup, dépourvu de point d’ancrage, n’est de ce fait pas déplacé.
\relative { d'2^\markup { Acte I \raise #2 { Scène 1 } } a' g_\markup { \null \lower #4 \bold { Très modéré } } a d,^\markup { \raise #4 \italic { Une forêt. } } a'4 a g2 a }
Certaines commandes permettent de régler l’alignement des objets textuels en mode markup, tant au niveau horizontal que vertical. Tout objet soumis à ces commandes doit être précédé d’un point d’ancrage.
\relative { d'2^\markup { Acte I \translate #'(-1 . 2) "Scène 1" } a' g_\markup { \null \general-align #Y #3.2 \bold "Très modéré" } a d,^\markup { \null \translate-scaled #'(-1 . 2) \teeny "Une forêt." } a'4 a g2 a }
Un objet de type markup peut contenir plusieurs lignes de texte. Dans l’exemple suivant, chaque élément ou expression ira se placer sur sa propre ligne, tantôt alignée à gauche, tantôt centrée.
\markup { \column { a "b c" \line { d e f } } \hspace #10 \center-column { a "b c" \line { d e f } } }
Pareillement, une liste d’éléments ou d’expressions sera répartie sur une ligne entière, voire même centrée sur toute la page s’il n’y a qu’un seul élément. De telles expressions peuvent à leur tour contenir du texte multiligne ou une autre expression markup.
\markup { \fill-line { \line { William S. Gilbert } \center-column { \huge \smallCaps "The Mikado" or \smallCaps "The Town of Titipu" } \line { Sir Arthur Sullivan } } } \markup { \fill-line { 1885 } }
Les éléments peuvent se répartir sur une largeur spécifiée par une
dérogation à la propriété line-width. Celle-ci est réglé par
défaut à #f, autrement dit l’entièreté de la ligne :
\markup { \column { \fill-line { left center right } \null \override #'(line-width . 30) \fill-line { left center right } } }
Les indications textuelles, lorsqu’elles sont relativement longues, peuvent se répartir sur plusieurs lignes en fonction de la largeur de ligne. Le texte sera alors soit aligné à gauche, soit justifié, comme le montre l’exemple suivant :
\markup { \column { \line \smallCaps { La vida breve } \line \bold { Acto I } \wordwrap \italic { (La escena representa el corral de una casa de gitanos en el Albaicín de Granada. Al fondo una puerta por la que se ve el negro interior de una Fragua, iluminado por los rojos resplandores del fuego.) } \hspace #0 \line \bold { Acto II } \override #'(line-width . 50) \justify \italic { (Calle de Granada. Fachada de la casa de Carmela y su hermano Manuel con grandes ventanas abiertas a través de las que se ve el patio donde se celebra una alegre fiesta) } } }
Une liste des différentes commandes permettant d’aligner du texte en mode markup est disponible à l’annexe Align.
Manuel d’initiation : (learning)Déplacement d’objets section ‘Déplacement d'objets’ dans Manuel d’initiation.
Manuel de notation : (notation)Align section ‘Alignement’ dans Manuel de notation, Indications textuelles.
Fichiers d’initialisation : ‘scm/define-markup-commands.scm’.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextScript section ‘TextScript’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Graphic notation inside markup
Vous pouvez, grâce au mode markup, ajouter divers objets graphiques à votre partition.
Certaines commandes de markup permettent d’ornementer des éléments textuels avec des graphismes, à l’instar de l’exemple suivant :
\markup \fill-line { \center-column { \circle Jack \box "in the box" \null \line { Erik Satie \hspace #3 \bracket "1866 - 1925" } \null \rounded-box \bold Prelude } }
Certaines directives peuvent nécessiter d’accroître l’espacement autour du texte – voir l’annexe Align pour une liste des différentes commandes particulières au mode markup ainsi que leur description.
\markup \fill-line { \center-column { \box "Charles Ives (1874 - 1954)" \null \box \pad-markup #2 "THE UNANSWERED QUESTION" \box \pad-x #8 "A Cosmic Landscape" \null } } \markup \column { \line { \hspace #10 \box \pad-to-box #'(-5 . 20) #'(0 . 5) \bold "Largo to Presto" } \pad-around #3 "String quartet keeps very even time, Flute quartet keeps very uneven time." }
Vous pouvez imprimer certains graphismes ou symboles sans qu’il n’y ait de texte. Ces objets peuvent même se combiner, à l’instar de n’importe quelle expression markup.
\markup { \combine \draw-circle #4 #0.4 ##f \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1 \hspace #5 \center-column { \triangle ##t \combine \draw-line #'(0 . 4) \arrow-head #Y #DOWN ##f } }
Des fonctionnalités graphiques avancées vous permettent même d’inclure
dans une partition un fichier image converti au format PostScript
encapsulé (extension eps), ou bien de tracer un graphique
directement dans le fichier source à partir d’instructions PostScript
pures. Nous vous conseillons, en pareil cas, de toujours spécifier les
dimensions du dessin, comme dans ce qui suit :
c'1^\markup { \combine \epsfile #X #10 "./context-example.eps" \with-dimensions #'(0 . 6) #'(0 . 10) \postscript " -2 3 translate 2.7 2 scale newpath 2 -1 moveto 4 -2 4 1 1 arct 4 2 3 3 1 arct 0 4 0 3 1 arct 0 0 1 -1 1 arct closepath stroke" } c'
L’annexe Graphic répertorie les différentes commandes en matière de graphisme.
Manuel de notation : (notation)Align section ‘Alignement’ dans Manuel de notation, Annotations éditoriales, Dimensions, (notation)Graphic section ‘Graphique’ dans Manuel de notation.
Fichiers d’initialisation : ‘scm/define-markup-commands.scm’, ‘scm/stencil.scm’.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextScript section ‘TextScript’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Music notation inside markup
Divers éléments de notation peuvent orner une partition, au moyen d’un objet markup.
Notes et altérations sont données à l’aide d’instructions markup :
a'2 a'^\markup { \note {4} #1 = \note-by-number #1 #1 #1.5 } b'1_\markup { \natural \semiflat \flat \sesquiflat \doubleflat } \glissando a'1_\markup { \natural \semisharp \sharp \sesquisharp \doublesharp } \glissando b'
Le mode markup permet d’accéder à d’autres objets de notation :
\relative { g1 bes ees\finger \markup \tied-lyric "4~1" fis_\markup { \dynamic rf } bes^\markup { \beam #8 #0.1 #0.5 } cis d-\markup { \markalphabet #8 \markletter #8 } }
En règle générale, tout symbole musical peut être inclus dans un markup, comme le montre l’exemple qui suit. Ces différents symboles sont répertoriés dans l’annexe La fonte Emmentaler.
\relative { c''2 c'^\markup { \musicglyph "eight" } c,4 c,8._\markup { \musicglyph "clefs.G_change" } c16 c2^\markup { \musicglyph "timesig.neomensural94" } }
La rubrique Tout savoir sur les fontes contient d’autres informations sur l’impression de glyphes non alphabétiques, tels que des crochets ou accolades.
Le mode markup supporte aussi les diagrammes spécifiques à certains instruments :
\relative { c''1^\markup { \fret-diagram-terse "x;x;o;2;3;2;" } c^\markup { \harp-pedal "^-v|--ov^" } c c^\markup { \combine \musicglyph "accordion.discant" \combine \raise #0.5 \musicglyph "accordion.dot" \raise #1.5 \musicglyph "accordion.dot" } }
La documentation sur ces diagrammes se trouve à l’annexe Instrument Specific Markup.
Rien ne s’oppose à ce qu’une étiquette ne comporte une partition.
\relative { c'4 d^\markup { \score { \relative { c'4 d e f } \layout { } } } e f | c d e f }
Les différentes commandes markup relatives à la notation musicale sont répertoriées à l’annexe Music.
Manuel de notation : La fonte Emmentaler, (notation)Music section ‘Musique’ dans Manuel de notation, Tout savoir sur les fontes.
Fichiers d’initialisation : ‘scm/define-markup-commands.scm’, ‘scm/fret-diagrams.scm’, ‘scm/harp-pedals.scm’.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextScript section ‘TextScript’ dans Référence des propriétés internes.
L’espacement vertical d’un \score contenu dans un objet
markup se contrôle par la propriété baseline-skip. Tout
réglage au sein d’un bloc \paper est ignoré.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Page wrapping text
Alors que \markup s’utilise pour traiter un bloc de texte
insécable, \markuplist permet, employé en tête de partition,
d’obtenir un bloc de lignes réparties différemment et, le cas échéant,
sur plusieurs pages.
\markuplist { \justified-lines { Un long texte constitué de lignes justifiées. ... } \wordwrap-lines { Un autre grand paragraphe. ... } ... }
Cette syntaxe prend en charge une liste de markups ; il peut s’agir
Les différentes commandes permettant de générer des listes de lignes se trouve dans l’annexe Commandes pour liste de markups (en anglais).
\markuplist.
Manuel de notation : Commandes pour liste de markups.
Manuel d’extension : (extending)Définition d’une nouvelle commande de liste de markups section ‘Définition d'une nouvelle commande de liste de markups’ dans Extension de LilyPond.
Fichiers d’initialisation : ‘scm/define-markup-commands.scm’.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
Référence des propriétés internes : (internals)TextScript section ‘TextScript’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Fonts
Ce chapitre est consacré aux fontes et polices de caractère, à leur gestion. Vous y apprendrez aussi comment changer de fonte en cours de partition.
| Tout savoir sur les fontes | ||
| Attribution d’une fonte en particulier | ||
| Choix des fontes par défaut |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Fonts explained
La gestion des fontes est assurée par plusieurs bibliothèques : FontConfig se charge de répertorier les différentes fontes disponibles ; quant à Pango, elle se charge plus particulièrement de leur rendu.
En sus de celles déjà installées sur le système, d’autres fontes peuvent s’ajouter au répertoire de FonConfig, ce qui les rendra donc disponibles pour les partitions LilyPond, à l’aide des commandes suivantes :
#(ly:font-config-add-font "chemin/au/fichier-fonte.otf") #(ly:font-config-add-directory "chemin/au/dossier/") |
Le chemin fourni à ces deux commandes peut être absolu ou relatif, ce qui permet de compiler une partition sur n’importe quel système dans la mesure où les fichiers de fontes concernés sont transmis avec les fichiers sources de la partition.
Une fois qu’elles ont été détectées, les fontes se sélectionnent selon
les méthodes indiquées dans Attribution d’une fonte en particulier
et Choix des fontes par défaut. Dès lors que la liste affichée est
exhaustive, l’instruction #(ly:font-config-display-fonts)
permettra de vérifier quelles fontes auront été détectées ainsi que leur
nom exact, celui-ci pouvant être différent du nom du fichier.
Les fontes musicales peuvent se décrire comme un jeu de glyphes
spécifiques regroupés dans plusieurs familles. L’exemple qui suit
montre la syntaxe à utiliser pour accéder, en mode markup, aux
différents glyphes Feta non textuels de LilyPond.
a'1^\markup { \vcenter { \override #'(font-encoding . fetaBraces) \lookup "brace120" \override #'(font-encoding . fetaText) \column { 1 3 sf } \override #'(font-encoding . fetaMusic) \lookup "noteheads.s0petrucci" } }
Tous ces glyphes, à l’exception des accolades qui sont regroupées dans
fetaBraces, sont accessibles avec la syntaxe indiquée dans
Notation musicale dans du texte formaté.
Une remarque s’impose au sujet des glyphes contenus dans
fetaBraces : chacun d’eux est formé du mot brace auquel
est accolé un numéro d’ordre. Lorsque vous désirez imprimer une
accolade, vous devez la « chercher » par son numéro d’ordre – d’où la
fonction \lookup de l’exemple ci-dessus –, tout en sachant qu’il
est compris entre 0 (la plus petite) et 575 (la plus
grande). Vous serez souvent amené à procéder par tâtonnement pour
arriver au résultat optimal. Par ailleurs, fetaBraces ne comporte
que des accolades ouvrantes. Pour obtenir une accolade fermante, il
suffit d’appliquer une rotation au glyphe sélectionné, comme indiqué à
la rubrique Rotation des objets.
Vous disposez de trois familles de fontes textuelles : roman pour la police sérif ou avec empattement, une police sans empattement (sans sérif) et une police à chasse fixe (monospace ou typewriter).
Pour le moteur svg :
| Famille | Fonte par défaut |
|---|---|
| roman | serif |
| sans | sans-serif |
| typewriter | monospace |
serif, sans-serif et monospace sont des
generic-family au titre des spécifications SVG et CSS.
Pour les autres moteurs :
| Famille | Fonte par défaut (alias) | Listes de définition des alias |
|---|---|---|
| roman | LilyPond Serif | TeX Gyre Schola, C059, Century SchoolBook URW, Century Schoolbook L, DejaVu Serif, ..., serif |
| sans | LilyPond Sans Serif | TeX Gyre Heros, Nimbus Sans, Nimbus Sans L, DejaVu Sans, ..., sans-serif |
| typewriter | LilyPond Monospace | TeX Gyre Cursor, Nimbus Mono PS, Nimbus Mono, Nimbus Mono L, DejaVu Sans Mono, ..., monospace |
LilyPond Serif, LilyPond Sans Serif et LilyPond
Monospace sont des alias de fonte définis dans le fichier de
configuration de FontConfig spécifique à LilyPond
00-lilypond-fonts.conf. Lorsqu’un caractère est absent de la
première fonte listée, il sera remplacé par celui de la fonte suivante.
Pour plus de détails sur les définitions des alias, consultez le fichier
00-lilypond-fonts.conf dans le répertoire d’installation.
Chaque famille dispose en principe de différents styles et niveaux de
gras. L’exemple qui suit illustre la manière de changer la famille, le
style, la graisse ou la taille. Notez bien que l’argument fourni à
font-size correspond à la correction à apporter à la taille par
défaut.
\override Score.RehearsalMark.font-family = #'typewriter \mark \markup "Ouverture" \override Voice.TextScript.font-shape = #'italic \override Voice.TextScript.font-series = #'bold d''2.^\markup "Allegro" \override Voice.TextScript.font-size = #-3 c''4^smaller
Cette syntaxe s’applique aussi en mode markup, bien que celui-ci dispose d’une syntaxe allégée comme nous l’avons vu dans Sélection de la fonte et de la taille :
\markup { \column { \line { \override #'((font-shape . italic) (font-size . 4)) Idomeneo, } \line { \override #'(font-family . typewriter) { \override #'(font-series . bold) re di } \override #'(font-family . sans) Creta } } }
Le recours aux fontes OpenType permet d’utiliser certaines fonctionnalités de ces fontes. Toutefois, les fontes OpenType ne disposent pas toutes de l’intégralité de ces fonctions. Dans le cas où la fonctionnalité demandée n’est pas disponible dans la fonte choisie, cette fonctionnalité est tout bonnement ignorée.
% Vraies petites capitales \markup { Style normal : Hello HELLO } \markup { \caps { Petites capitales : Hello } } \markup { \override #'(font-features . ("smcp")) { Vraies petites capitales : Hello } } % Styles numériques \markup { Style numérique normal : 0123456789 } \markup { \override #'(font-features . ("onum")) { Style numérique ancien : 0123456789 } } % Alternatives stylistiques \markup { \override #'(font-features . ("salt 0")) { Alternative stylistique 0 : εφπρθ } } \markup { \override #'(font-features . ("salt 1")) { Alternative stylistique 1 : εφπρθ } } % Fonctionnalités multiples \markup { \override #'(font-features . ("onum" "smcp" "salt 1")) { Fonctionnalités multiples : Hello 0123456789 εφπρθ } }
Une liste exhaustive des fonctionnalités des fontes OpenType est disponible à l’adresse https://www.microsoft.com/typography/otspec/featurelist.htm
Les différents types de fonctionnalité des fontes OpenType sont recensées dans le message http://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html
En plus de pouvoir jongler entre les différentes fontes prédéfinies, LilyPond vous permet d’en utiliser d’autres, ce qui fait l’objet des deux prochaines parties : Attribution d’une fonte en particulier et Choix des fontes par défaut.
Manuel de notation : La fonte Emmentaler, Notation musicale dans du texte formaté, Rotation des objets, Sélection de la fonte et de la taille, (notation)Font section ‘Fonte’ dans Manuel de notation.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Single entry fonts
Vous pouvez utiliser n’importe quelle police installée sur votre système, dès lors qu’elle est accessible par Fontconfig et que vous respectez la syntaxe suivante :
\override Staff.TimeSignature.font-name = "Bitstream Charter" \override Staff.TimeSignature.font-size = #2 \time 3/4 a'1_\markup { \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold") { Vera Oblique Bold } }
font-name peut se décrire sous la forme d’une liste de polices séparées par une virgule, une espace et une liste de styles. Dès lors que la police présente dans la liste est installée et comporte le glyphe requis, elle sera utilisée ; c’est la suivante dans la liste qui sera utilisée dans le cas contraire.
LilyPond, lancé avec l’option suivante, affiche la liste de toutes les polices disponibles sur votre machine :
lilypond -dshow-available-fonts |
Manuel de notation : Choix des fontes par défaut, Tout savoir sur les fontes.
Morceaux choisis : (snippets)Text section ‘Texte’ dans Morceaux choisis.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Entire document fonts
Vous pouvez tout à fait préférer un autre jeu de polices par défaut que celui de LilyPond. Il vous faudra alors spécifier les différentes familles, en respectant l’ordre roman, sans empattement et monospace, comme dans l’exemple suivant ; ces fontes seront automatiquement mises à l’échelle de la taille globale des portées. Tout comme indiqué dans Attribution d’une fonte en particulier, il peut s’agir d’une liste de polices séparées par une virgule, à ceci près qu’il n’est pas possible de spécifier de style. Pour plus d’explications sur les fontes, relisez Tout savoir sur les fontes.
\paper { #(define fonts (make-pango-font-tree "Times New Roman" "Nimbus Sans,Nimbus Sans L" "Luxi Mono" (/ staff-height pt 20))) } \relative c'{ c1-\markup { roman, \sans sans, \typewriter typewriter. } }
Note : make-pango-font-tree réinitialise les fontes musicales à
leur valeur par défaut, à savoir Emmentaler.
La syntaxe suivante permet de substituer une fonte particulière tout en
laissant les autres à leur valeur par défaut. L’exemple ci-dessous
produit les mêmes effets que celui utilisant
make-pango-font-tree. De même qu’avec
make-pango-font-tree, il est possible de fournir une liste de
fontes séparées par une virgule pour les catégories roman,
sans et typewriter. Dès lors que la taille de portée reste
à sa valeur par défaut de 20 pt, l’instruction
#:factor (/ staff-height pt 20) n’est pas nécessaire.
\paper {
#(define fonts
(set-global-fonts
#:roman "Times New Roman"
#:sans "Nimbus Sans,Nimbus Sans L"
#:typewriter "Luxi Mono"
#:factor (/ staff-height pt 20) ; inutile si taille de portée par défaut
))
}
|
Il est aussi posible de substituer les fontes musicales. L’exemple ci-dessous produit les mêmes effets que ceux qui précèdent dans la mesure où les fontes musicales sont fixées à leur valeur par défaut. Pour de plus amples informations, voir Changement des fontes musicales.
\paper {
#(define fonts
(set-global-fonts
#:music "emmentaler" ; défaut
#:brace "emmentaler" ; défaut
#:roman "Times New Roman"
#:sans "Nimbus Sans,Nimbus Sans L"
#:typewriter "Luxi Mono"
#:factor (/ staff-height pt 20) ; inutile si taille de portée par défaut
))
}
|
En tout état de cause, tout appel à set-global-fonts réinitialise
aussi bien les fontes musicales que les fontes textuelles. Dès lors que
l’une de ces catégories n’est pas mentionnée sera utilisée la fonte par
défaut y afférente.
Par ailleurs, chaque appel à set-global-fonts affecte les fontes
du bloc \book qui le suit ; chaque bloc \book consécutif
peut donc disposer de son propre jeu de fontes grâce à un simple appel à
set-global-fonts, comme ici :
\paper {
#(define fonts
(set-global-fonts
…
))
}
\book {
…
}
\paper {
#(define fonts
(set-global-fonts
…
))
}
\book {
…
}
|
Manuel de notation : Attribution d’une fonte en particulier, (notation)Font section ‘Fonte’ dans Manuel de notation, Changement des fontes musicales, Sélection de la fonte et de la taille, Tout savoir sur les fontes.
| [ < ] | [ > ] | [ << ] | [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.