Hintergrundfarbe für ganze Seite einstellen

Begonnen von Jan Christoph, Donnerstag, 7. Juli 2022, 21:48

« vorheriges - nächstes »

Jan Christoph

Hallo zusammen,
besteht die Möglichkeit, wie etwa in LaTeX, eine Hintergrundfarbe für die ganze Seite einzustellen? In LaTeX gibt es dafür den Befehl \pagecolor. Wenn solch ein Befehl nicht existiert, wäre es dann denkbar, dass über eine Einbindung von Lilyponddateien in LaTeX, LaTeX die Erstellung der Hintergrundfarbe übernimmt? Ich kann die Hintergrundfarbe nicht mit einem externen pdf-Editor einstellen, da ich ein solch einen Editor nicht besitze.
Mit musikalischen Grüßen
Jan Christoph

Malte

Hallo Jan Christoph,

LilyPond hat von Haus aus nicht die Möglichkeit, man kann es aber nachbauen: Dafür wird irgendwo auf der Seite ein farbiges Rechteck sehr großer Ausdehnung gezeichnet. Du kannst es mit der hier vorgeschlagenen Lösung versuchen und die so anpassen, daß sie auf allen Seiten verwendet wird, indem evenHeaderMarkup und oddHeaderMarkup angepasst werden. Das kann dann so aussehen:
\version "2.22.2"

#(define-markup-command (on-color layout props color arg) (color? markup?)
   (let* ((stencil (interpret-markup layout props arg))
          (X-ext (cons -200 200))
          (Y-ext (cons -200 200)))
     (ly:stencil-add (ly:make-stencil
                      (list 'color color
                            (ly:stencil-expr (ly:round-filled-box X-ext Y-ext
                                                                  0))
                            X-ext Y-ext)) stencil)))

\paper {

  oddHeaderMarkup = \markup
  \on-color #yellow
  \fill-line {
    " "
    \on-the-fly #not-part-first-page \fromproperty #'header:instrument
    \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
  }

  evenHeaderMarkup = \markup
  \on-color #darkgreen
  \fill-line {
    \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string
    \on-the-fly #not-part-first-page \fromproperty #'header:instrument
    " "
  }

}

{ R1*800 }
Ich habe die Original-Definitionen der HeaderMarkups genommen und lediglich den \on-color-Befehl hinzugefügt und "" zu " " geändert; letzteres war nötig, da auf der ersten Seite sonst ein leeres HeaderMarkup stünde und daher offenbar auch keine Farbe hinzugefügt würde.

Viele Grüße
Malte

Jan Christoph

Hallo Malte,

das sieht ja sehr vielversprechnd aus. Vielen Dank für den Hinweis. Ich werde dies gleich am Wochenende ausprobieren. Ich wünsche Dir ein schönes Wochenende.

Viele Grüße

Jan Christoph

Lilysetter

#3
Das kannst Du auch mit Postscript machen:
\version"2.19.84"
\paper{oddHeaderMarkup=\markup\postscript"-199 -199 moveto
  199 -199 lineto 199 199 lineto -199 199 lineto closepath %ausreichend großes Rechteck
  0.9 0.6 0.7 setrgbcolor fill" %evenHeaderMarkup=\oddHeaderMarkup %gleiche Farbe
  evenHeaderMarkup=\markup\postscript"-199 -199 moveto  %andere Farbe
  199 -199 lineto 199 199 lineto -199 199 lineto closepath
  0.7 0.6 0.9 setrgbcolor fill"}
\relative\repeat unfold155{c'd e f}