Subject: Encore des problèmes de mise en page

From: Seventies <[email-masked]>
Date: Wed, 10 Mar 2010 10:45:50 -0800 (PST)

Bonsoir à tous,

J'ai déjà cité des problèmes de mise en page aléatoires (systèmes s'arrêtant
au milieu de la page : 
http://n2.nabble.com/Problemes-recurrents-de-mise-en-page-td4165994.html#a4165994
http://n2.nabble.com/Problemes-recurrents-de-mise-en-page-td4165994.html#a4165994
).

Ces problèmes ont été résolus depuis que je travaille sur des \voice plutôt
que sur des \staff - erreur de débutant, pas facile de faire la différence
;-)

Toutefois, aujourd'hui, c'est la mise en page verticale qui pose problème
(je travaille sur la version 2.13).

Mes systèmes comportent 13 portées, et j'ai optimisé la position des signes
dynamique pour économiser de la place.

J'utilise le set-global-staff-size à 11.5, mais de nombreuses pages ne
comprennent qu'un seul système, évidemment très distendu et peu esthétique,
alors que d'autres pages affichent confortablement 2 sytèmes.

J'ai diminué le set-global-staff-size jusqu'à 10, et là, certaines pages
contiennent jusqu'à 3 systèmes (j'utilise également le
\RemoveEmptyStaffContext), 26 portées cohabitent sans le moindre problème,
avec des notes et des nuances qui débordent largement des portées, puis,
subitement, un seul système par page alors que rien ne le justifie.

Mais déjà, avec set-global-staff-size à 10, la lisibilité devient pénible.

Les marges sont réduites au minimum. Je compare alors avec la partition
Breitkopf qui sert de modèle :
hauteur utile : 19 cm et 26 portées lisibles sur la page
LyliPond : 
hauteur utile : 27 cm et 13 portées illisibles, tant les symboles sont
petits.

N'existe-t-il pas un moyen de forcer un espace entre les portées d'un
système à une valeur maximum, ou toute autre méthode, pour obtenir
l'équivalent des partitions d'étude classiques.

J'ai placé la partition en question sur 
http://www.espace-midi.com/lilypond/Serenade_Nr1M1.pdf
http://www.espace-midi.com/lilypond/Serenade_Nr1M1.pdf 

Voyez page 7 le problème qui se pose (avec set-global-staff-size à 10 - si
je passe à des valeurs plus élevées, quasi tous les systèmes occupent une
page entière).

Voilà, j'ai été un peu long, mais il est dommage après tant de travail, de
voir un résultat gâché par un petit détail inesthétique.

Merci de votre aide,

Jean-François
-- 
View this message in context: http://n2.nabble.com/Encore-des-problemes-de-mise-en-page-tp4711415p4711415.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Xavier Scheuer <[email-masked]>
Date: Wed, 10 Mar 2010 20:26:05 +0100

Bonsoir,

2010/3/10 Seventies <[email-masked]> :

> Bonsoir à tous,
>
> J'ai déjà cité des problèmes de mise en page aléatoires (systèmes
> s'arrêtant au milieu de la page :
> Ces problèmes ont été résolus depuis que je travaille sur des \voice
> plutôt que sur des \staff - erreur de débutant, pas facile de faire
> la différence
> ;-)

Tu saurais développer ?
Tu veux dire qu'en explicitant toute les voix (\new Voice) le problème
est résolu ?

> Toutefois, aujourd'hui, c'est la mise en page verticale qui pose
> problème (je travaille sur la version 2.13).

Peut-être regarder avec la toute dernière version de la 2.13, il est
possible que cela se soit amélioré (je ne sais pas quelle 2.13 tu
utilises).

> Mes systèmes comportent 13 portées, et j'ai optimisé la position des
> signes dynamique pour économiser de la place.

Je voix ça.
Simple curiosité, tu as fait ça comment ?  Avec des \tweak, des
'extra-offset, ... ?

> J'utilise le set-global-staff-size à 11.5, mais de nombreuses pages
> ne comprennent qu'un seul système, évidemment très distendu et peu
> esthétique, alors que d'autres pages affichent confortablement
> 2 sytèmes.

Si tu en veux tout le temps 2 tu as pensé à essayer "system-count"
(dans le bloc \paper) ?

> J'ai diminué le set-global-staff-size jusqu'à 10, et là, certaines
> pages contiennent jusqu'à 3 systèmes (j'utilise également le
> \RemoveEmptyStaffContext), 26 portées cohabitent sans le moindre
> problème, avec des notes et des nuances qui débordent largement des
> portées, puis, subitement, un seul système par page alors que rien ne
> le justifie.

Pfiou, c'est tout petit.
Juste pour comparaison, la partition Breitkopf est de quelle taille ?
Avec combien de systèmes, ...

> Mais déjà, avec set-global-staff-size à 10, la lisibilité devient

Oui, c'est vraiment tout petit !  oO

> Les marges sont réduites au minimum. Je compare alors avec la
> partition Breitkopf qui sert de modèle :
> hauteur utile : 27 cm et 13 portées illisibles, tant les symboles
> sont petits.

Qu'est-ce qui rend la partition Breitkopf si lisible et celle de
LilyPond pas ?

> l'équivalent des partitions d'étude classiques.

Il n'y a pas de valeur maximale mais il faudrait diminuer la
"stretchability".

Donc soit :

  \override VerticalAxisGroup #'next-staff-spacing =
    #'((stretchability . 0))

Soit jouer sur les valeurs de "space" et "minimum-distance"...
Une fois que tu as des valeurs qui vont bien, n'hésite pas à les
suggérer aux développeurs en expliquant le pourquoi (cf. ton problème
ci-dessus).

http://kainhofer.com/~lilypond/Documentation/notation/vertical-spacing-inside-a-system.html

> http://www.espace-midi.com/lilypond/Serenade_Nr1M1.pdf

C'est déjà pas mal !  Bravo.

Bonne continuation,
Xavier

--
Xavier Scheuer <[email-masked]>

---

From: "j-f.lucarelli" <[email-masked]>
Date: Wed, 10 Mar 2010 21:38:29 +0100

>Tu veux dire qu'en explicitant toute les voix (\new Voice) le problème
Exact, j'ai placé partout des instructions telles que 
staffSaMaFlote = \new Staff {\voiceSaMaFlote}
staffSaMaOboe = \new Staff {\voiceSaMaOboe}
et le problème a disparu ... j'avoue ne pas comprendre ...

>possible que cela se soit amélioré (je ne sais pas quelle 2.13 tu

Il m'annonce 2.13.17, alors que la dernière version disponible est la 2.13.15 (sous XP)  ;-)
>Simple curiosité, tu as fait ça comment ?  Avec des \tweak, des

avec des extra-offset, mais le gros du travail a été de remonter les soufflets et les 'cresc'. En effet, si on n'interrompt pas les signes de nuance dynamiques, ils s'alignent sur la nuance la plus basse, même si on place un \!
Ainsi,
d2 \< r2 c4 \! \f
produira l'alignement du soufflet sur le 'forte' et par conséquent sur le plus bas des deux.
Remarque importante également, si on utilise
\crescTextCresc et \override DynamicTextSpanner #'dash-period = #-1.0, les pointillés ne sont pas imprimés, mais le texte est descendu de telle manière à ce que les pointillés invisibles n'entrent pas en collision avec les autres éléments. Il est donc bon d'introduire un \! dès que possible après le \<

Tous ces détails ont fait gagner plusieurs pages, tout en gardant l'esthétique au niveau des soufflets et des nuances. Il faut trouver des compromis comme dans une partition réelle.

>Si tu en veux tout le temps 2 tu as pensé à essayer "system-count"

Je dois encore essayer ce paramètre, mais je crains qu'il ne travaille à l'envers (c'est le nombre maximum de systèmes, et non le minimum, à lire la doc - ... à moins que ce soit un nombre imposé)

>Avec combien de systèmes, ...

Ça correspond à peu près à du 11, mais les portées sont beaucoup plus proches.

>Qu'est-ce qui rend la partition Breitkopf si lisible et celle de

Parce que Breitkopf est en 11 et lilypond en 10, avec des distances énormes entre portées

>  \override VerticalAxisGroup #'next-staff-spacing =
Encore un truc à essayer  ;-)
Je viens de tenter 	"bottom-system-spacing = #'((space . 4)  (padding . 1) (minimum-distance . 0) (stretchability . 0)) "
mais rien ne change

>http://kainhofer.com/~lilypond/Documentation/notation/vertical-spacing-inside-a-system.html

Le problème, c'est qu'il faut 15 minutes pour une compilation - donc les essais sont peu nombreux ...

Merci de tous ces conseils, je vais les essayer un à un.

Amicalement,

Jean-François

---

From: "j-f.lucarelli" <[email-masked]>
Date: Wed, 10 Mar 2010 23:02:49 +0100

>  \override VerticalAxisGroup #'next-staff-spacing =
Encore un paramètre qui ne change rien :-/

Quant à system-count, c'est le désastre : si on le met à 2, il cherche à placer tout le morceau (les 26 pages) sur 2 systèmes ... ça devrait sans doute être préciser dans la doc ;-)

>Soit jouer sur les valeurs de "space" et "minimum-distance"...

minimum-distance ne s'applique malheureusement qu'à la distance entre 2 systèmes : http://lilypond.org/doc/v2.12/Documentation/user/lilypond-internals/Scheme-functions

On va continuer à chercher ...

Bonne soirée,

Jean-François

---

From: Xavier Scheuer <[email-masked]>
Date: Thu, 11 Mar 2010 00:06:20 +0100

2010/3/10 j-f.lucarelli <[email-masked]> :

> Quant à system-count, c'est le désastre : si on le met à 2, il
> cherche à placer tout le morceau (les 26 pages) sur 2 systèmes ...
> ça devrait sans doute être préciser dans la doc ;-)

Ah oui, maintenant que tu le dis, il me semble que j'en avais fait
l'expérience aussi.

> minimum-distance ne s'applique malheureusement qu'à la distance entre
> 2 systèmes :
> http://lilypond.org/doc/v2.12/Documentation/user/lilypond-internals/Scheme-functions

Non, ce n'est pas ce que je comprends en lisant la doc que je t'avais
donnée en lien :
http://kainhofer.com/~lilypond/Documentation/notation/vertical-spacing-inside-a-system.html

Le "minimum-distance" en question est celui de

  \override VerticalAxisGroup #'next-staff-spacing =
    #'((space . 1) (minimum-distance . 1)

autrement dit entre les portées d'un même système.  ;-)

Mets le dans un

   \layout {
     \context {
       \Staff
       \override VerticalAxisGroup #'next-staff-spacing =
         #'((space . 1) (minimum-distance . 1)
     }
   }

pour que ça s'applique à toutes les portées.
En fait il faut peut-être jouer sur le "padding" aussi.

Malheureusement je ne connais pas les valeurs par défaut et je ne sais
pas comment les trouver.
Ils pourraient les mettre dans la doc, comme c'était le cas avant.

Peut-être que quelqu'un de plus expérimenté (Nicolas ?) pourra te
conseiller à ce sujet.

> On va continuer à chercher ...

Bonne chance,

Xavier

---

From: "j-f.lucarelli" <[email-masked]>
Date: Thu, 11 Mar 2010 00:22:52 +0100

>Peut-être que quelqu'un de plus expérimenté (Nicolas ?) pourra te
Eh oui, je me rappelle avoir vu cette page, mais il y en a tant.

On va donc reprendre à zéro, ça semble être une bonne voie

Grand merci, et le reste pour demain

Jean-François

---

From: Valentin Villenave <[email-masked]>
Date: Thu, 11 Mar 2010 00:35:39 +0100

> C'est déjà pas mal !  Bravo.

Elle me paraît très correcte moi, cette partition...

En ce qui concerne la page 7, je ne la trouve pas si choquante. Comme
l'a indiqué Xavier, de nouvelles propriétés ont été introduites dans
les toutes dernières versions, qui ne sont pas encore pleinement
documentées (voire pas du tout).

Bon courage !

Valentin

---

From: "j-f.lucarelli" <[email-masked]>
Date: Thu, 11 Mar 2010 22:08:01 +0100

>Peut-être que quelqu'un de plus expérimenté (Nicolas ?) pourra te
Voilà, ça fonctionne enfin. Cette instruction était bien cachée dans la doc, elle permet à peu près tout, y compris des portées collées les unes aux autres ;-)

Malheureusement, elle s'applique à tout un mouvement. Il y a certainement moyen de l'appliquer de manière différente à des portions plus petites, en jouant sur des voix différentes qui seraient associées, mais à chaque jour sa peine ...

Qui plus est, Lilypond ne vérifie pas la syntaxe : j'avais une faute dans 'stretchability' et Lilypond ne signalait rien - d'où plusieurs essais et beaucoup de temps perdu.

Voici les valeurs qui, pour le moment s'adaptent le mieux à mon cas :

staffSaMaFlote = \new Staff \with {
	\override VerticalAxisGroup #'next-staff-spacing = #'((space . 0.0) (padding . 0.0) (minimum-distance . 3.0) ( stretchability . 20.0))}
	{\voiceSaMaFlote}

Pour rappel, 13 portées par système, activation de RemoveEmptyStaffContext, set-global-staff-size = 11.2

Pour les premiers violons, j'ai placé (minimum-distance . 10.0) pour séparer les cordes du reste de l'orchestre.

Il me semble que la méthode pour arriver systématiquement au bon résultat est la suivante :

- Mettre tout à zéro :
	\override VerticalAxisGroup #'next-staff-spacing = #'((space . 0.0) (padding . 0.0) (minimum-distance . 0.0) ( stretchability . 0.0))}

- Vérifier qu'il ne reste pas des ^\ff ou autres signes dynamiques qui débordent de trop (ça se remarque aisément sur une partition compressée de la sorte)

- augmenter (ou diminuer) set-global-staff-size de sorte qu'il reste deux systèmes au moins par page

- augmenter minimum-distance de manière à garder la même pagination (2.5 est vraiment une valeur minimum)

- mettre stretchability à une valeur quelconque de sorte à remplir correctement la page.

Ceci est évidemment utile pour le format dit "partition d'étude" ou "study partition".
Pour la 'directrice', le set-global-staff-size est mis à minimum 18, RemoveEmptyStaffContext est désactivé et il n'y a qu'un système par page. 

Merci à tous pour l'aide dans la résolution de ce délicat problème.

Jean-François