Subject: Re: [Espacement vertical] (long)

From: Bernard Choppy <[email-masked]>
Date: Fri, 1 Apr 2022 09:14:20 +0200

Bonjour,

Le 30/03/2022 à 17:28, Jean Abou Samra a écrit :
> Deux problèmes ici :
> 
> - La propriété default-staff-staff-spacing règle l'espacement par
>    défaut pour des portées isolées, or vos portées sont regroupées
>    dans un GrandStaff, qui regroupe les portées. Il faut la remplacer
>    par staff-staff-spacing.

Ah, je comprends !
Je viens de retourner sur la doc et je trouve que c'est très peu clair ici :

https://lilypond.org/doc/v2.20/Documentation/source/Documentation/notation/flexible-vertical-spacing-within-systems.fr.html#within_002dsystem-spacing-properties

Dans l'exemple donné, il n'est question que de 
default-staff-staff-spacing alors que le titre de l'article est 
Propriétés d’espacement au sein d’un système, ce qui explique que j'ai 
recopié...

Est-il possible de proposer des modifications dans la doc ? Quel est le 
processus ?

> - Vous n'avez mis le \override que pour une seule portée, ce qui
>    règle l'espacement entre cette portée et la suivante. Un moyen
>    pratique de le faire pour toutes les portées est de placer le
>    \override dans un \with sur le GrandStaff.

Ça fonctionne parfaitement, effectivement, grand merci !

Cordialement,

-- 
Bernard Choppy

---

From: Jean Abou Samra <[email-masked]>
Date: Fri, 1 Apr 2022 10:03:27 +0200

> https://lilypond.org/doc/v2.20/Documentation/source/Documentation/notation/flexible-vertical-spacing-within-systems.fr.html#within_002dsystem-spacing-properties 

Euh, personnellement je ne trouve pas, il y a tout ce paragraphe :

        Propriétés de l’objet |VerticalAxisGroup|

Les propriétés de l’objet |VerticalAxisGroup| s’ajustent à l’aide d’un 
|\override| au niveau d’un contexte |Staff| (ou son équivalent).

|staff-staff-spacing|

    Il s’agit de la distance entre la portée en cours et la portée qui
    suit au sein du même regroupement, qu’il y ait ou des lignes de
    non-portée (|Lyrics| ou autre entre les deux. Cette propriété ne
    s’applique pas à la dernière portée d’un système.

    En tout état de cause, la fonction Scheme |staff-staff-spacing| d’un
    |VerticalAxisGroup| affectera les propriétés du |StaffGrouper| si la
    portée est incluse dans un regroupement ; elle s’appliquera au
    |default-staff-staff-spacing| en l’absence de regroupement. Les
    portées peuvent donc s’aligner différemment selon qu’elles sont ou
    non regroupées. Pour obtenir le même espacement sans tenir compte
    des éventuels regroupements, cette fonction peut faire place à une
    complète redéfinition des espacements fluctuants à l’aide de règles
    dérogatoires comme vu précédemment.

|default-staff-staff-spacing|

    Il s’agit de la distance qui s’appliquera par défaut aux portées
    isolées, à moins que |staff-staff-spacing| n’ait été redéfini
    explicitement par un |\override|.

> Est-il possible de proposer des modifications dans la doc ? Quel est 
> le processus ? 

Écrire à la liste bug-lilypond. Plus d'infos ici :

https://lilypond.org/doc/v2.23/Documentation/contributor/documentation-suggestions

Cordialement,
Jean

---

From: Bernard Choppy <[email-masked]>
Date: Fri, 1 Apr 2022 19:13:27 +0200

Bonsoir à tous,

>         Propriétés de l’objet |VerticalAxisGroup|

Oui... mais pour le coup, VerticalAxisGroup, ça ne me parle pas du tout, 
alors je lis plus haut (où il est question de liste associative) et... 
je me trompe !

Bon, le problème n'est pas réglé dans mon cas particulier, mais c'est un 
usage particulier : dans LibreOffice (OOly)

Je m'aperçois que cette mise en page ne fonctionne pas à cause de la 
directive :

\include "lilypond-book-preamble.ly"

qui est incluse automatiquement.
Ce "preamble" semble destiné à limiter strictement la taille de page au 
rectangle imprimé (un peu comme une fonction "crop" automatique).

Sauf que lorsqu'il est inclus, la directive
     \override VerticalAxisGroup.staff-staff-spacing.basic-distance = 50
ne fonctionne plus :-(

Je m'aperçois qu'en retirant des portées du système, j'obtiens bien un 
écartement des portées... comme si le "preamble" limitait la hauteur 
totale, mais je ne trouve pas où.

Tout ce que j'ai trouvé, c'est ce fichier lilypond-book-preamble.ly dans
C:\Program Files (x86)\LilyPond\usr\share\lilypond\current\ly
----------
%%%% This file is part of LilyPond, the GNU music typesetter.
%%%%
%%%% Copyright (C) 2006--2020 Han-Wen Nienhuys <[email-masked]>
%%%%
%%%% LilyPond is free software: you can redistribute it and/or modify
%%%% it under the terms of the GNU General Public License as published by
%%%% the Free Software Foundation, either version 3 of the License, or
%%%% (at your option) any later version.
%%%%
%%%% LilyPond is distributed in the hope that it will be useful,
%%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%%%% GNU General Public License for more details.
%%%%
%%%% You should have received a copy of the GNU General Public License
%%%% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.

\version "2.16.0"

%% toplevel \book gets output per page,
%% everything else gets output per system/title
#(define default-toplevel-book-handler
   print-book-with-defaults-as-systems )

#(define toplevel-book-handler
   (lambda ( . rest)
   (set! output-empty-score-list #f)
   (apply print-book-with-defaults rest)))

#(define toplevel-music-handler
   (lambda ( . rest)
    (apply collect-music-for-book rest)))

#(define toplevel-score-handler
   (lambda ( . rest)
    (apply collect-scores-for-book rest)))

#(define toplevel-text-handler
   (lambda ( . rest)
    (apply collect-scores-for-book rest)))

#(set! output-empty-score-list #t)

#(ly:set-option 'backend 'eps)
#(ly:set-option (quote no-point-and-click))
#(define inside-lilypond-book #t)
#(define version-seen #t)
----------

Cordialement,

-- 
Bernard Choppy