| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Breaks
| 4.3.1 Sauts de ligne | ||
| 4.3.2 Sauts de page |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Line breaking
Les sauts de ligne sont normalement gérés de façon automatique. Ils interviennent de telle sorte qu’une ligne ne soit ni trop resserrée, ni trop aérée, et que des lignes consécutives aient à peu près la même densité.
Vous pouvez cependant insérer l’instruction \break à l’endroit où
vous le jugez utile pour « forcer » le passage à la ligne suivante :
\relative c'' { c4 c c c | \break c4 c c c | }
Par défaut, un saut de ligne ne saurait intervenir au beau milieu d’une
mesure ; LilyPond vous le signalera par un message lors de la
compilation du fichier. Si d’aventure vous voulez forcer un saut de
ligne en l’absence de barre de mesure, vous devrez auparavant insérer
une barre invisible – à l’aide de \bar "".
\relative c'' { c4 c c \bar "" \break c | c4 c c c | }
LilyPond ignorera un \break placé sur une barre à la fin d’une
mesure dès lors que la précédente avait une note en suspend – c’est
typiquement le cas lorsqu’un n-olet est à cheval sur deux mesures.
L’instruction \break sera toutefois opérationnelle si vous avez
auparavant désactivé le Forbid_line_break_engraver du contexte
Voice concerné. Notez bien qu’en pareil cas, les sauts de ligne
forcés doivent être saisis au sein d’une expression polyphonique :
\new Voice \with { \remove "Forbid_line_break_engraver" } \relative { << { c''2. \tuplet 3/2 { c4 c c } c2. | } { s1 | \break s1 | } >> }
Selon le même principe, un saut de ligne ne peut intervenir alors qu’une
ligature s’étend sur deux mesures consécutives. Il faut en ce cas là
introduire la dérogation \override Beam.breakable = ##t.
\relative c'' { \override Beam.breakable = ##t c2. c8[ c | \break c8 c] c2. | }
L’instruction opposée, \noBreak, interdira toute tentative de
saut de ligne à la fin de la mesure où elle est explicitée.
Au sein même d’une pièce, les sauts de lignes automatiques sont inhibés
dans la musique encadrée par les commandes \autoLineBreaksOff et
\autoLineBreaksOn. Dans le cas où les sauts de page
automatiques devraient eux aussi être inhibés, ce sont les commandes
\autoBreaksOff et \autoBreaksOn qu’il faudrait utiliser.
Les sauts de ligne ou de page manuels ne sont pas affectés par ces
commandes. Notez bien que la désactivation du positionnement
automatique des sauts des ligne peut avoir pour effet un débordement de
la musique dans la marge de droite si tout ne peut être contenu sur une
ligne.
Des sauts de ligne automatiques peuvent cependant être autorisés en un
point particulier à l’aide d’un \once \autoLineBreaksOn sur une
barre de mesure. Ceci ne concerne pas les sauts de page. Ceci indique
qu’un saut de ligne peut intervenir à cet endroit précis, mais ne le
force en aucun cas.
LilyPond dispose de deux variables de base pour influencer l’espacement
au niveau des lignes. Toutes deux se définissent dans un bloc
\layout, indent réglant l’indentation de la première
ligne, et line-width la longueur des lignes.
L’activation du commutateur ragged-right au sein du bloc
\layout aura pour effet de terminer les systèmes là où ils
prendraient fin normalement plutôt que de les étirer sur toute la
longueur de la ligne. Ceci est particulièrement utile pour de petits
fragments ou pour vérifier la densité induite par l’espacement naturel.
Le commutateur ragged-last est équivalent à ragged-right,
à ceci près qu’il n’affecte que la dernière ligne de la pièce.
\layout {
indent = 0\mm
line-width = 150\mm
ragged-last = ##t
}
|
L’utilisation conjointe de \break et de blancs dans une section
\repeat vous permettra de positionner des sauts de ligne à
intervalle régulier. Par exemple, les 28 mesures de ce qui suit, si
l’on est à 4/4, seront coupées toutes les quatre mesures, pas
ailleurs :
<<
\repeat unfold 7 {
s1 \noBreak s1 \noBreak
s1 \noBreak s1 \break
}
{ et ici la musique… }
>>
|
\break,
\noBreak,
\autoBreaksOff,
\autoBreaksOn,
\autoLineBreaksOff,
\autoLineBreaksOn.
Recours à une voix supplémentaire pour gérer les sauts
Il est souvent plus pratique de séparer ce qui est purement musical et
les informations concernant les sauts de ligne ou de page en créant une
voix supplémentaire dédiée. Cette voix spécifique ne contiendra que des
blancs – des silences invisibles \skip –, des \break,
des \pageBreak et autres informations concernant les ruptures.
Cette manière de procéder est tout à fait indiquée lorsque vous ajustez
les line-break-system-details et autres propriétés fort
intéressantes de NonMusicalPaperColumnGrob.
music = \relative c'' { c4 c c c } \score { \new Staff << \new Voice { s1 * 2 \break s1 * 3 \break s1 * 6 \break s1 * 5 \break } \new Voice { \repeat unfold 2 { \music } \repeat unfold 3 { \music } \repeat unfold 6 { \music } \repeat unfold 5 { \music } } >> }
Manuel de notation :
Le bloc \layout,
Variables de gestion des sauts de ligne.
Référence des propriétés internes : (internals)LineBreakEvent section ‘LineBreakEvent’ dans Référence des propriétés internes.
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
Les commandes \autoLineBreaksOff et \autoBreaksOff doivent
impérativement se placer après le début de la musique pour éviter tout
message d’erreur.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Page breaking
Cette section présente les différentes méthodes de gestion des sauts de page, ainsi que les moyens de les modifier.
| Saut de page manuel | ||
| Optimisation des sauts de page | ||
| Minimisation des sauts de page | ||
| Présentation en page continue | ||
| Présentation en ligne continue | ||
| Présentation en rouleau | ||
| Optimisation des tournes |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Manual page breaking
La gestion automatique des sauts de page se contrôle à l’aide des
commandes \pageBreak et \noPageBreak. Ces commandes
fonctionnent de manière analogue à \break et \noBreak pour
les sauts de ligne et se placent donc au moment d’une barre de mesure.
Elles permettent de forcer, ou d’interdire, un saut de page à la
prochaine barre de mesure. Comme on peut s’y attendre,
\pageBreak force aussi le saut de ligne.
Les commandes \pageBreak et \noPageBreak peuvent se
trouver à des niveaux supérieurs, entre deux partitions ou
markups de premier rang.
Au sein même d’une pièce, les sauts de page automatiques sont inhibés
dans la musique encadrée par les commandes \autoPageBreaksOff et
\autoPageeBreaksOn. Les sauts de page manuels ne sont pas
affectés par ces commandes.
Tout comme ragged-right et ragged-last qui permettent de
gérer la répartition horizontale, LilyPond dispose de commutateurs
équivalents au niveau de la verticalité. ragged-bottom, une fois
activé, empèchera les systmèes de se répartir sur la page. Quant à
ragged-last-bottom (valorisé à #t par défaut), il laissera
un espace vide en dernière page, y compris pour chaque \bookpart.
Pour de plus amples détails, reportez-vous à
Variables d’espacement vertical fixe.
Les sauts de page sont générés par la fonction page-breaking.
LilyPond dispose de plusieurs algorithmes en la matière :
ly:optimal-breaking, ly:page-turn-breaking et
ly:minimal-breaking. C’est ly:optimal-breaking qui est
activé par défaut, mais rien ne vous empêche d’en changer, par
l’intermédiaire du bloc \paper :
\paper {
page-breaking = #ly:page-turn-breaking
}
|
Lorsqu’un ouvrage contient plusieurs partitions et un certain nombre de
pages, la gestion des sauts de page finit par devenir très gourmande,
tant au niveau du processeur que de la mémoire. Vous pouvez cependant
alléger la charge en recourant à des blocs \bookpart afin de
sectionner l’ouvrage que vous traitez ; les sauts de page seront
alors gérés individuellement au niveau de chacune des parties. Par
ailleurs, cela vous autorisera une gestion différente selon les
sections.
\bookpart {
\header {
subtitle = "Préface"
}
\paper {
%% Pour une partie constituée principalement de texte
%% ly:minimal-breaking est plus judicieux.
page-breaking = #ly:minimal-breaking
}
\markup { … }
…
}
\bookpart {
%% Cette partie étant purement musicale,
%% retour au style par défaut (optimal-breaking).
\header {
subtitle = "Premier mouvement"
}
\score { … }
…
}
|
\pageBreak,
\noPageBreak,
\autoPageBreaksOn,
\autoPageBreaksOff.
Manuel de notation : Variables de gestion des sauts de page.
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
Le préfixe \once est ineffectif en ce qui concerne les commandes
\autoPageBreaksOn et \autoPageBreaksOff. Si le
positionnement automatique des sauts de page est désactivé et qu’il est
réactivé pour permettre un saut de page, il doit le rester pendant
quelques mesures (le nombre précis de mesures dépendant de la pièce)
avant d’être à nouveau désactivé, autrement l’opportunité de passer à la
page suivante ne sera pas saisie.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Optimal page breaking
LilyPond, pour déterminer où placer un saut de page, utilise par défaut
la fonction ly:optimal-breaking. Celle-ci tend à trouver une
rupture qui évite d’obtenir à la fois une page trop dense ou exagérément
aérée. Contrairement à la fonction ly:page-turn-breaking, elle
n’a aucune notion de ce qu’est une « tourne ».
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Minimal page breaking
La fonction ly:minimal-breaking est celle qui réalise le moins de
calculs pour positionner les sauts de page. Elle mettra le plus de
systèmes possible sur une page avant de passer à la suivante. On peut
donc la préférer lorsque la partition s’étend sur beaucoup de pages ou
lorsque les autres fonctions de gestion des sauts de page ralentissent
nettement le traitement, sont trop gourmandes en mémoire ou qu’il y a
beaucoup de texte. Il suffit de la mentionner au sein du bloc
\paper :
\paper {
page-breaking = #ly:minimal-breaking
}
|
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof One-page page breaking
La fonction ly:one-page-breaking constitue un algorithme de
calcul des sauts de page particulier en ceci que la hauteur de page sera
automatiquement ajustée à la longueur de la partition, de telle sorte
que toute la musique tienne sur une seule page. La variable
paper-height du bloc \paper est ignorée, mais les autres
réglages restent disponibles. En particulier, l’espacement entre le
dernier système (ou un markup de premier niveau) et le pied de
page est réglable à l’aide de la variable last-bottom-spacing
du bloc \paper. La largeur de page n’est, par défaut, pas
modifiée ; ceci peut s’ajuster à l’aide de la variable
paper-width du bloc \paper.
ly:one-page-breaking est à ce jour incompatible avec
l’utilisation de \bookpart.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof One-line page breaking
La fonction ly:one-line-breaking constitue un algorithme de
calcul des sauts de page particulier en ceci que chaque partition fait
l’objet d’une page unique, d’une seule ligne. Cette fonctionnalité
s’affranchit de l’impression des titres et marges ; seule la partition
est affichée.
La largeur de page est ajustée de telle sorte que la pièce la plus
longue tienne sur une seule ligne. En particulier, les variables
paper-width, line-width et indent du bloc
\paper seront ignorées ; les left-margin et
right-margin seront honorées. La hauteur de page ne sera pas
modifiée.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof One-line-auto-height page breaking
La fonction ly:one-line-auto-height-breaking opère comme
ly:one-line-breaking, à ceci près que la hauteur de page s’adapte
automatiquement à la hauteur de la musique. Dans les faits, la variable
paper-height du bloc \paper s’ajuste de façon à englober
la hauteur de la partition la plus étendue, plus les top-margin
et bottom-margin.
L’affectation d’une valeur à top-system-spacing influencera le
positionnement vertical de la musique. Sa désactivation – valorisation
à ##f au sein du bloc \paper – aura pour effet de
simplement placer la musique entre les marges supérieure et inférieure.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Optimal page turning
Aboutir à une configuration des sauts de page de telle sorte que les
pages de droite se terminent toujours par un silence devient souvent une
nécessité. En effet, l’exécutant pourra alors tourner la page sans
risquer de manquer des notes. La fonction ly:page-turn-breaking
tend à trouver une rupture qui évite d’obtenir à la fois une page trop
dense ou exagérément aérée, tout en tenant compte du fait qu’une tourne
ne saurait intervenir qu’à certains endroits.
L’utilisation de cette fonction se fait en deux étapes. Il vous faut
tout d’abord l’activer au sein du bloc \paper comme indiqué à la
rubrique Sauts de page. Vous devrez, dans un deuxième temps,
informer la fonction des endroits où les sauts de page sont permis.
Cette deuxième étape se réalise de deux manières différentes. Vous
pouvez spécifier manuellement chaque tourne potentielle en insérant un
\allowPageTurn à l’endroit approprié de votre fichier source.
Toutefois, cette option peut vite se révéler fastidieuse selon l’ampleur
de l’œuvre. Vous pouvez alors recourir au Page_turn_engraver que
vous mentionnerez dans un contexte de voix ou de portée. Ce graveur de
tournes recherchera dans le contexte en question les passages sans note.
Notez bien qu’il ne recherche pas des silences, mais l’absence de
notes ; autrement dit, il ne restera pas inactif dans le cadre
d’une portée polyphonique dont l’une des parties contiendrait des
silences. Lorsqu’il rencontre un fragment suffisamment long ne
contenant aucune note, il insère un \allowPageTurn à la barre
terminant ce fragment, à moins qu’il ne rencontre en chemin une
« barre spéciale » – telle une double barre – auquel cas il y
déposera le \allowPageTurn.
Le Page_turn_engraver examine la propriété de contexte
minimumPageTurnLength pour déterminer quelle doit être la
longueur d’un fragment sans note avant une tourne. La valeur par
défaut de minimumPageTurnLength est
(ly:make-moment 1 1), soit une ronde, et s’ajuste de
la manière suivante :
\new Staff \with { \consists "Page_turn_engraver" }
{
a4 b c d |
R1 | % une tourne peut se placer ici
a4 b c d |
\set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
R1 | % il ne peut pas y avoir de tourne ici
a4 b r2 |
R1*2 | % une tourne peut se placer ici
a1
}
|
Le Page_turn_engraver tient compte des reprises. C’est pourquoi
il ne permettra une tourne que dans le cas où il y aura suffisamment de
temps au début et à la fin de la reprise pour que l’exécutant puisse
aisément revenir à la page précédente. Le Page_turn_engraver est
même capable d’interdire un tourne dans le cas d’une reprise de courte
durée, ajustable au travers de la propriété de contexte
minimumRepeatLengthForPageTurn.
Les commandes de tourne – \pageTurn, \noPageTurn et
\allowPageTurn – peuvent s’utiliser à des niveaux supérieurs,
entre des blocs \score ou des markups de haut niveau.
\pageTurn,
\noPageTurn,
\allowPageTurn.
Manuel de notation : Variables de gestion des sauts de ligne.
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
Une partition ne devrait contenir qu’une seule instance du
Page_turn_engraver, au risque de les voir se contredire.
| [ < ] | [ > ] | [ << ] | [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.