2 questions : Table des matières et espacement vertical

Bonjour à l'équipe.

Je me permets de regrouper 2 questions, qui ne devraient normalement pas
être difficiles à résoudre, quoique ... :smiley:

- J'ai réalisé une table des matières selon les explications de la
documentation, mais le résultat est assez décevant : les titres à gauches,
les numéros de page à droite, et un énorme vide entre les deux.

J'ai tenté de créer une fonction qui ajoute des blancs devant et derrière la
ligne. C'est mieux, mais les titres sont centrés dans leur colonne et non
plus justifiés à gauche.

- Second problème : je remarque que la distance verticale entre les portées
est souvent trop grande, ce qui conduit généralement à un système par page
(il s'agit d'une partition orchestrale) alors que visiblement deux systèmes
pourraient tenir.

Alors qu'il y a de nombreuses variables permettant le contrôle vertical
(between-scores-system-spacing, between-system-spacing, ...), je n'en vois
aucune qui contrôle la distance entre les portées d'un système.

Avez-vous une idée sur la solution de ces problèmes ?

Merci d'avance,

Jean-François

···

--
View this message in context: http://n2.nabble.com/2-questions-Table-des-matieres-et-espacement-vertical-tp4606828p4606828.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

2010/2/21 Seventies <****@****> :

Bonjour à l'équipe.

Je me permets de regrouper 2 questions, qui ne devraient normalement
pas être difficiles à résoudre, quoique ... :smiley:

- J'ai réalisé une table des matières selon les explications de la
documentation, mais le résultat est assez décevant : les titres à
gauches, les numéros de page à droite, et un énorme vide entre les
deux.

J'ai tenté de créer une fonction qui ajoute des blancs devant et
derrière la ligne. C'est mieux, mais les titres sont centrés dans
leur colonne et non plus justifiés à gauche.

Je n'ai jamais utilisé la table des matières, mais peut-être que si tu
m'envoies le (les) fichier(s) en question avec tes modifications, je
pourrais essayer d'y regarder de plus près. :wink:

- Second problème : je remarque que la distance verticale entre les
portées est souvent trop grande, ce qui conduit généralement à un
système par page (il s'agit d'une partition orchestrale) alors que
visiblement deux systèmes pourraient tenir.

Alors qu'il y a de nombreuses variables permettant le contrôle
vertical (between-scores-system-spacing, between-system-spacing, ...)
je n'en vois aucune qui contrôle la distance entre les portées d'un
système.

Il y a toujours le "VerticalAxisGroup", même si là aussi la syntaxe
a changé (avec ici aussi l'introduction de 'space', 'minimum-distance',
'padding' et 'stretchability').

En intruduisant ça dans le bloc \layout ça devrait le faire, non ?

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

Sinon il y a aussi l'introduction du StaffGrouper, pour l'espacement
entre groupes de portées (et aussi entre les portées au sein du groupe
si je comprends bien).

Bref, cf. la doc :
http://lilypond.org/doc/v2.13/Documentation/notation/vertical-spacing-inside-a-system

- Second problème : je remarque que la distance verticale entre les
portées est souvent trop grande, ce qui conduit généralement à un
système par page (il s'agit d'une partition orchestrale) alors que
visiblement deux systèmes pourraient tenir.

Dernière remarque : LilyPond *approxime* d'abord la place que prendrait
un système pour déterminer le nombre de systèmes qu'il pourra mettre
par page (avant de dessiner le système donc).

Comme il s'agit d'une approximation, LilyPond utilise des "marges" de
sécurité et donc la place que prendrait un système, déterminée par
cette approximation, est donc *plus grande* que la place que prendra
réellement le système une fois dessiné.
Donc le nombre de systèmes que LilyPond pourra mettre par page sera
approximé *vers le bas*.

Voila, ça ne fait pas avancer le schmilblick mais c'est ce que j'ai lu
(et compris). Et ça permet de comprendre pourquoi de temps en temps
LilyPond ne met qu'un seul système par page alors qu'il aurait pu en
faire tenir deux.

Cordialement,
Xavier

···

--
Xavier Scheuer <****@****>

Pour aller plus vite : il faut s'inspirer du code qui initialise le
formattage des tables des matières, et qui se trouve dans ly/toc-init.ly.
En l'occurence, c'est cette définition qu'il faut personnaliser :

\paper {
  tocItemMarkup = \markup \fill-line {
    \fromproperty #'toc:text \fromproperty #'toc:page
  }
}

par exemple de la façon suivante (jouer sur le 70) :

\paper {
  tocItemMarkup = \markup \fill-line {
    \override #'(line-width . 70) \fill-line {
      \fromproperty #'toc:text \fromproperty #'toc:page
    }
  }
}

···

Le 21 févr. 2010 à 18:26, Xavier Scheuer a écrit :

2010/2/21 Seventies <****@****> :

Bonjour à l'équipe.

Je me permets de regrouper 2 questions, qui ne devraient normalement
pas être difficiles à résoudre, quoique ... :smiley:

- J'ai réalisé une table des matières selon les explications de la
documentation, mais le résultat est assez décevant : les titres à
gauches, les numéros de page à droite, et un énorme vide entre les
deux.

J'ai tenté de créer une fonction qui ajoute des blancs devant et
derrière la ligne. C'est mieux, mais les titres sont centrés dans
leur colonne et non plus justifiés à gauche.

Je n'ai jamais utilisé la table des matières, mais peut-être que si tu
m'envoies le (les) fichier(s) en question avec tes modifications, je
pourrais essayer d'y regarder de plus près. :wink:

Je n'ai jamais utilisé la table des matières, mais peut-être que si tu
m'envoies le (les) fichier(s) en question avec tes modifications, je
pourrais essayer d'y regarder de plus près. :wink:

Voici le code que j'utilise pour créer la table des matières - ça marche, mais je ne sais pas trop pourquoi ...

#(define-markup-command (toc-line layout props label text textb) (symbol? markup? markup?)
  (interpret-markup layout props(markup #:abs-fontsize 14 #:fill-line (" " text #:page-ref label "8" "?" " "))))

Et son utilisation :

\fill-line { \lower #18 \toc-line #'MvmtI "I - Allergo molto" " "}

Visiblement, ça donne un tableau de 4 colonnes, dont les premières et dernières sont des blancs (sans doute justifiés à gauche et à droite, mais impossible de confirmer), et les secondes et troisièmes sont des textes centrés. Ce qui serait idéal, c'est que la seconde colonne soit justifiée à gauche.

Voir résultat actuel dans le fichier joint.

- Second problème : je remarque que la distance verticale entre les
portées est souvent trop grande, ce qui conduit généralement à un
système par page (il s'agit d'une partition orchestrale) alors que
visiblement deux systèmes pourraient tenir.

Alors qu'il y a de nombreuses variables permettant le contrôle
vertical (between-scores-system-spacing, between-system-spacing, ...)
je n'en vois aucune qui contrôle la distance entre les portées d'un
système.

Il y a toujours le "VerticalAxisGroup", même si là aussi la syntaxe
a changé (avec ici aussi l'introduction de 'space', 'minimum-distance',
'padding' et 'stretchability').

En intruduisant ça dans le bloc \layout ça devrait le faire, non ?

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

Sinon il y a aussi l'introduction du StaffGrouper, pour l'espacement
entre groupes de portées (et aussi entre les portées au sein du groupe
si je comprends bien).

Bref, cf. la doc :
http://lilypond.org/doc/v2.13/Documentation/notation/vertical-spacing-inside-a-system

Ok, je vais voir ça à tête reposée ...
En fait, je compare le résultat obtenu avec Lilypond et la partition de départ. Dans Lilypond, j'ai 1, 2 ou 3 systèmes par page (A4) alors que dans la partition d'origine, (dimension intermédiaire entre A4 et A5), il y a 2 systèmes par page.

Toc.jpg

···

Dernière remarque : LilyPond *approxime* d'abord la place que prendrait
un système pour déterminer le nombre de systèmes qu'il pourra mettre
par page (avant de dessiner le système donc).

Comme il s'agit d'une approximation, LilyPond utilise des "marges" de
sécurité et donc la place que prendrait un système, déterminée par
cette approximation, est donc *plus grande* que la place que prendra
réellement le système une fois dessiné.
Donc le nombre de systèmes que LilyPond pourra mettre par page sera
approximé *vers le bas*.

Voila, ça ne fait pas avancer le schmilblick mais c'est ce que j'ai lu
(et compris). Et ça permet de comprendre pourquoi de temps en temps
LilyPond ne met qu'un seul système par page alors qu'il aurait pu en
faire tenir deux.

Cordialement,
Xavier

--
Xavier Scheuer <****@****>

========================================

- J'ai réalisé une table des matières selon les explications de la
documentation, mais le résultat est assez décevant : les titres à
gauches, les numéros de page à droite, et un énorme vide entre les
deux.

J'ai tenté de créer une fonction qui ajoute des blancs devant et
derrière la ligne. C'est mieux, mais les titres sont centrés dans
leur colonne et non plus justifiés à gauche.

Pour aller plus vite : il faut s'inspirer du code qui initialise le
formattage des tables des matières, et qui se trouve dans ly/toc-init.ly.
En l'occurence, c'est cette définition qu'il faut personnaliser :

\paper {
tocItemMarkup = \markup \fill-line {
   \fromproperty #'toc:text \fromproperty #'toc:page
}
}

par exemple de la façon suivante (jouer sur le 70) :

\paper {
tocItemMarkup = \markup \fill-line {
   \override #'(line-width . 70) \fill-line {
     \fromproperty #'toc:text \fromproperty #'toc:page
   }
}
}

Impeccable : simple et efficace.

Voici le code utilisé :

Définition de la fonction :
#(define-markup-command (toc-line layout props label text) (symbol? markup?)
  (interpret-markup layout props(markup #:abs-fontsize 14 #:fill-line (text #:page-ref label "8" "?"))))

Utilisation :

  \markup {
    \column {
      \fill-line { \lower #15 \couvCompositeur }
      .......
      \fill-line {\override #'(line-width . 70) \lower #10 \toc-line #'MvmtI "I - Allergo molto"}
      .......
    }
  }

Les labels sont définis par :
  \label #'MvmtI
situés au début de chaque bookpart.

Un grand merci,

Jean-François