Autor Thema: Instrumentenbezeichnung in Kopfzeile  (Gelesen 1357 mal)

chf

  • Member
Instrumentenbezeichnung in Kopfzeile
« am: Dienstag, 16. Februar 2016, 19:27 »
\version "2.16.2"

#(set-default-paper-size "a6")

% Hier können die Ausnahmen eingetragen werden:
% Format: (<seite> . (<x-offset> <y-offset>)
#(define folio-offset '(
    (3 . (-2 . 1))      ; Seite 3 um 2 nach links und 1 nach oben
    (4 . (-3 . -4))    ; Seite 4 um 3 nach links und 4 nach unten
))

#(define-markup-command (place-folio layout props folio) (markup?)
   (let* ((nn (ly:output-def-lookup layout 'page:page-number-string))
         (pageno (chain-assoc-get 'page:page-number props))
         (offs (assoc-get pageno folio-offset '(0 . 0)))
         (m (interpret-markup layout props  (markup folio)))
         (x-ext (ly:stencil-extent m X))
         (y-ext (ly:stencil-extent m Y)))
   (interpret-markup layout props
     (markup
        #:box   ; nur zum Test - dann auskommentieren!
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)
       ))))

\paper {
  indent = 0
  ragged-right = ##f
  oddHeaderMarkup = \markup \fill-line { \place-folio \fromproperty #'page:page-number-string \null }
  evenHeaderMarkup = \markup \fill-line { \null \place-folio \fromproperty #'page:page-number-string }
  oddFooterMarkup = \markup \column{
    \fill-line {
      \on-the-fly #first-page { \fromproperty #'header:copyright }
    }
    \fill-line {
      \on-the-fly #not-first-page { \fromproperty #'header:tagline  }
    }
  }
}

\header {
  copyright = "Copyright-Text"
  tagline = "Tagline-Text"
}

{ \repeat unfold 10 { s1 \pageBreak } }

Liebe Freunde,

mit dem eingefügten Code von Be-3 habe ich Seitenzahlen nach oben verschieben können.
Jetzt möchte ich die Instrumentenbezeichnung auf die gleiche Höhe bringen.
Wie sieht #(define folio-offset dazu aus? Ist das überhaupt der richtige Weg?

Die Übertragung auf "2.18.2" macht übrigens keine Probleme.

Gruß
chf


Oh, es geht mit "translate" - wieder einmal zu kompliziert gedacht,!
« Letzte Änderung: Mittwoch, 17. Februar 2016, 14:34 von chf »

Pusteblumi

  • Member
Re: Instrumentenbezeichnung in Kopfzeile
« Antwort #1 am: Freitag, 26. Februar 2016, 14:12 »
Hallo chf,

wenn ich dein Beispiel richtig verstanden habe, ist folio-offset nur dazu da, einzelne Seitennummern zu verschieben, wie es auf Seite 3 und 4 zu sehen ist. Wenn du das nicht brauchst, kannst du \place-folio auch weglassen.
Die "unverschobene" Seitenzahl steht ganz normal in der Kopfzeilen-Definition:
oddHeaderMarkup = \markup \fill-line { \place-folio \fromproperty #'page:page-number-string \null }
Den String, der die Instrumentenbezeichnung enthält, bekommst du mit \fromproperty #'header:instrument.
Einfügen in die Kopfzeile:
oddHeaderMarkup = \markup \fill-line { \place-folio \fromproperty #'page:page-number-string \fromproperty #'header:instrument \null }
Noch besser: nicht auf der ersten Seite, damit das Instrument dort nicht doppelt erscheint:
oddHeaderMarkup = \markup \fill-line { \place-folio \fromproperty #'page:page-number-string \on-the-fly #not-first-page \fromproperty #'header:instrument \null }
Also insgesamt:
\version "2.16.2"

#(set-default-paper-size "a6")

% Hier können die Ausnahmen eingetragen werden:
% Format: (<seite> . (<x-offset> <y-offset>)
#(define folio-offset '(
    (3 . (-2 . 1))      ; Seite 3 um 2 nach links und 1 nach oben
    (4 . (-3 . -4))    ; Seite 4 um 3 nach links und 4 nach unten
))

#(define-markup-command (place-folio layout props folio) (markup?)
   (let* ((nn (ly:output-def-lookup layout 'page:page-number-string))
         (pageno (chain-assoc-get 'page:page-number props))
         (offs (assoc-get pageno folio-offset '(0 . 0)))
         (m (interpret-markup layout props  (markup folio)))
         (x-ext (ly:stencil-extent m X))
         (y-ext (ly:stencil-extent m Y)))
   (interpret-markup layout props
     (markup
        #:box   ; nur zum Test - dann auskommentieren!
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)
       ))))

\paper {
  indent = 0
  ragged-right = ##f
  oddHeaderMarkup = \markup \fill-line { \place-folio \fromproperty #'page:page-number-string \on-the-fly #not-first-page \fromproperty #'header:instrument \null }
  evenHeaderMarkup = \markup \fill-line { \null \fromproperty #'header:instrument \place-folio \fromproperty #'page:page-number-string }
  oddFooterMarkup = \markup \column{
    \fill-line {
      \on-the-fly #first-page { \fromproperty #'header:copyright }
    }
    \fill-line {
      \on-the-fly #not-first-page { \fromproperty #'header:tagline  }
    }
  }
}

\header {
  copyright = "Copyright-Text"
  tagline = "Tagline-Text"
  instrument = "Flöte"
}

{ \repeat unfold 10 { s1 \pageBreak } }

Viele Grüße,
Klaus