Subject: Sortie en png limitée à la partie utile

From: Vincent Gay <[email-masked]>
Date: Mon, 1 Aug 2022 10:13:53 +0200

Bonjour,

pour illustrer mon blog (ou mes posts dans cette liste)  j'aimerai que 
mes sorties en png soient découpée juste à la partie utile ( + une marge 
de quelques millimètres). J'ai trouvé quelques indication ici :
https://lilypond.org/doc/v2.23/Documentation/usage/luatex#other-programs

Je modifie mon fichier en conséquence (ci-dessous) mais que je le 
compile avec Frescobaldi (avec les options qui vont bien) ou en ligne de 
commande la sortie reste en A4.
Si je veux voir un fichier eps (juste en enlevant le --png comme précisé 
dans la doc) j'obtiens un fichier... pdf ! Toujours en A4

Qu'y a-t-il que je n'ai pas compris ?

Merci d'avance

ma ligne de commande :
~/bin/lilypond-2.23.11/bin/lilypond -dbackend=eps -dno-gs-load-fonts 
-dinclude-eps-fonts --png GridWithRhythmII.ly

mon code :
\version "2.23.11"
#(set-global-staff-size 18)
#(ly:set-option 'eps-box-padding 3.000000)

\paper {
   indent = 0
   ragged-right = ##f
   system-system-spacing =
   #'((basic-distance . 0)
      (minimum-distance . 20)
      (padding . 0)
      (stretchability . 0))
   line-width = 160\mm
   line-width = #(- line-width (* mm  3.000000) (* mm 1))
   line-width = 160\mm - 2.0 * 10.16\mm
   line-width = #(- line-width (* mm  3.000000) (* mm 1))
   oddFooterMarkup=##f
   oddHeaderMarkup=##f
}

\layout {
   \context {
     \RhythmicStaff
     \override VerticalAxisGroup.staff-affinity = #DOWN
     \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 8.5 )
        (padding . 0)
        (stretchability . 0))
     \RemoveAllEmptyStaves
     \improvisationOn
     \override StaffSymbol.line-count = 0
     \remove Time_signature_engraver
     \remove Bar_engraver
   }
}

grille = \chordmode {
   \override Score.RehearsalMark.self-alignment-X = #LEFT
   \mark \markup \box Intro
   \repeat volta 2 { \repeat unfold 2 { f1:9+5+ bes:13/d } } \break \bar 
"||"
   \mark \markup \fontsize #-1 { \box Head \raise #1 \with-color #red 
\musicglyph "scripts.segno" }
   \repeat unfold 2 { f1:9+5+ bes:13/d } \break
   ges2:6.9 e:7 es1 b2:7 f:7 bes1:m \break
}

GridRhythm = { s1* 8 \repeat unfold 2 { r4 c4 4. 8~ 1 }}

\new ChordGridScore <<
   \new RhythmicStaff \magnifyMusic 0.66 \GridRhythm
   \new ChordGrid \grille

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/  -http://photos.vintherine.org/

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 1 Aug 2022 10:31:39 +0200

> Le 1 août 2022 à 10:21, Vincent Gay <[email-masked]> a écrit :
> 
>  Bonjour,
> 
> pour illustrer mon blog (ou mes posts dans cette liste)  j'aimerai que mes sorties en png soient découpée juste à la partie utile ( + une marge de quelques millimètres). J'ai trouvé quelques indication ici : 
> Je modifie mon fichier en conséquence (ci-dessous) mais que je le compile avec Frescobaldi (avec les options qui vont bien) ou en ligne de commande la sortie reste en A4. 
> Si je veux voir un fichier eps (juste en enlevant le --png comme précisé dans la doc) j'obtiens un fichier... pdf ! Toujours en A4
> 

Je ne sais plus exactement comment marchent ces options, et cela a changé en 2.23, mais en tous cas ce n’est pas le bon outil. Elles réduisent les marges à l’intérieur de la page A4 dans le but d’intégrer la partition dans un PDF créé par un programme qui ajoute ses propres marges. Toi, tu veux carrément avoir une taille de page ajustée à la musique. Pour cela, il y a l’option -dcrop, qui à côté du .png normal génère un .cropped.png à la bonne taille.

Cordialement,
Jean

> 
> ma ligne de commande :
> ~/bin/lilypond-2.23.11/bin/lilypond -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts --png GridWithRhythmII.ly 
> 
> mon code :
> \version "2.23.11"
>   \repeat volta 2 { \repeat unfold 2 { f1:9+5+ bes:13/d } } \break \bar "||"
>   \mark \markup \fontsize #-1 { \box Head \raise #1 \with-color #red \musicglyph "scripts.segno" }
> https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

---

From: Vincent Gay <[email-masked]>
Date: Mon, 1 Aug 2022 11:00:03 +0200

Le 01/08/2022 à 10:31, Jean Abou Samra a écrit :
> Pour cela, il y a l’option -dcrop, qui à côté du .png normal génère un 
> .cropped.png à la bonne taille.
>

Merci. Ça marche en ligne de commande

~/bin/lilypond-2.23.11/bin/lilypond -I 
~/Nextcloud2/Musique/Lilypond/Inclusions/ -dbackend=eps 
-dno-gs-load-fonts -dinclude-eps-fonts -dcrop --png GridWithRhythmII.ly

Mais pas avec les mêmes options et Frescobaldi. Bizarre !

---

From: Vincent Gay <[email-masked]>
Date: Mon, 1 Aug 2022 11:48:29 +0200

> Mais pas avec les mêmes options et Frescobaldi. Bizarre !

Hum... ça vient de l'option "Effacer les fichiers de sortie 
intermédiaires". Si je décoche cette option ça fonctionne.

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 1 Aug 2022 11:59:07 +0200

> Le 1 août 2022 à 11:01, Vincent Gay <[email-masked]> a écrit :
> 
> 
>> Pour cela, il y a l’option -dcrop, qui à côté du .png normal génère un .cropped.png à la bonne taille.
>> 
> 
> ~/bin/lilypond-2.23.11/bin/lilypond -I ~/Nextcloud2/Musique/Lilypond/Inclusions/ -dbackend=eps -dno-gs-load-fonts -dinclude-eps-fonts -dcrop --png GridWithRhythmII.l

Pas besoin d’autant d’options.

~/bin/lilypond -I ~/Nextcloud2/Musique/Lilypond/Inclusions -dcrop --png fichier.ly

---

From: Ya Gloops <[email-masked]>
Date: Mon, 1 Aug 2022 10:23:38 +0000 (UTC)

Bonjour !
La fonction d-crop m'intéresse beaucoup mais j'utilise exclusivement Frescobaldy...
Est-il possible de l'utiliser avec Frescobaldy et si oui comment ?
Gilles

---

From: Vincent Gay <[email-masked]>
Date: Mon, 1 Aug 2022 12:37:00 +0200

> Est-il possible de l'utiliser avec Frescobaldy et si oui comment ?
Comme ça :

Pour obtenir cette fenêtre

  * soit tenir le Shift appuyé et cliquer sur l'icône en forme de nénuphar
  * soit dans le menu Lilypond choisir l'option Graver (personnalisé)...

---

From: Ya Gloops <[email-masked]>
Date: Mon, 1 Aug 2022 10:44:54 +0000 (UTC)

Genial merci Vincent !
Et dernière petite question ton option #(ly:set-option 'eps-box-padding 3.000000)
marche t'elle avec les png ?
Gilles

Le lundi 1 août 2022 à 12:38:19 UTC+2, Vincent Gay <[email-masked]> a écrit : 

Comme ça :

---

From: Vincent Gay <[email-masked]>
Date: Mon, 1 Aug 2022 15:42:43 +0200

> marche t'elle avec les png ?
Nop, ça je ne sais pas faire

---

From: Ya Gloops <[email-masked]>
Date: Mon, 1 Aug 2022 13:59:02 +0000 (UTC)

Merci de ton aide !

Le lundi 1 août 2022 à 15:54:50 UTC+2, Vincent Gay <[email-masked]> a écrit :

---

From: Jean Goujon <[email-masked]>
Date: Tue, 2 Aug 2022 10:06:34 +0200

> Merci de ton aide !
Bonjour,
il y a aussi clic-droit de la souris sur l'image de la partition et on 
sélectionne la partie utile > on obtient la même fenêtre.
Amicalement.

-- 
Jean GOUJON,

---

From: Jean Abou Samra <[email-masked]>
Date: Tue, 2 Aug 2022 10:30:30 +0200 (CEST)

> Le 01/08/2022 12:44 CEST, Ya Gloops <[email-masked]> a écrit :
> 
> Genial merci Vincent !

Il n'y a pas d'équivalent prévu par défaut, mais
il est possible d'en construire un.

\version "2.23.11"

#(ly:set-option 'crop)

margin =
#(define-music-function (axis pad) (index? number?)
   (let ((axis-sym (if (eqv? axis 1)
                       'Y-extent
                       'X-extent)))
     #{ \override System . $axis-sym =
          #(grob-transformer
            axis-sym
            (lambda (grob original)
              (interval-widen original pad)))
     #}))

\layout {
  \context {
    \Score
    \margin #X 2.0
    \margin #Y 3.0
  }
}

{
  c'
}

Au fait, vous constaterez qu'au lieu de lancer
LilyPond avec l'option -dcrop en ligne de commande,
on peut aussi mettre #(ly:set-option 'crop) dans
le fichier (de même que le #(ly:set-option 'eps-box-padding x)
peut se transformer en un -deps-box-padding=x en
ligne de commande).

Cordialement,
Jean

---

From: Ya Gloops <[email-masked]>
Date: Tue, 2 Aug 2022 09:21:35 +0000 (UTC)

Enooooooooorme comme d'habitude Jean !
Merci, ça va m'économiser beaucoup de temps, je faisais les réglages manuellement...
Gilles

\version "2.23.11"

#(ly:set-option 'crop)

margin =

\layout {
  \context {
    \Score
    \margin #X 2.0
    \margin #Y 3.0

  }
}

{
  c'

}

Cordialement,
Jean

---

From: Ya Gloops <[email-masked]>
Date: Tue, 2 Aug 2022 09:24:26 +0000 (UTC)

Bonjour Jean GOUJON !
Merci, je trouve que cette méthode n'est pas très précise mais ça fonctionne aussi très bien...
Gilles

Le mardi 2 août 2022 à 11:06:54 UTC+2, Jean Goujon <[email-masked]> a écrit : 

Bonjour,

-- 
Jean GOUJON,