Seitenzahl außer der Reihe

Begonnen von chf, Sonntag, 18. Februar 2018, 18:11

« vorheriges - nächstes »

chf

Liebe Freunde,
bitte wundert euch nicht über die Version, es handelt sich um eine graphisch sehr kitzlige Datei, an der ich nicht rühren möchte.
Ihr habt schon seit ein paar Jahren an dieser Datei großen Anteil. Es ist eine von meinen "interessanteren" Partituren...
Sie soll jetzt endlich in Druck kommen, aber  für die Ausgabe brauche ich eine alternative Seitenzahl.
In der Spielpartitur müssen 3 Seiten nebeneinander zu liegen kommen, und aus technischen Gründen heißt die dritte Seite
3a und soll rechts stehen, und die folgende Seite 4 leer bleiben. Dann geht es geregelt weiter.

Gruß
chf
version "2.16.2" 
\paper {
        page-count = 4
        left-margin = #20
        line-width = #40
        first-page-number = #[color=red]2[/color]           
}

\relative c ''{
g g g g            % (Seite  2)
  \pageBreak
g g g g            % (Seite  3)
  \pageBreak
g g g g             %(Seite 3a    rechts!)
  \pageBreak  % (Seite 4 blank!)

}



harm6

Hallo,

zur Seitenzahl:


\version "2.16.2"

#(define (tst layout props arg)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-page-number
           (cond ((= page-number 4)
                  "3a")
                 ((> page-number 4)
                  (number->string (1- page-number)))
                 (else (number->string page-number)))))
     (interpret-markup layout props new-page-number)))


\paper {
  oddHeaderMarkup =
  \markup \fill-line {
    \on-the-fly #tst \fromproperty #'page:page-number-string
    \null
  }
  evenHeaderMarkup =
  \markup \fill-line {
    \null \on-the-fly #tst \fromproperty #'page:page-number-string
  }
}

\paper {
        %page-count = 4
        %left-margin = #20
        %line-width = #40
        first-page-number = 2         
}

\relative c ''{
  g4 g g g            % (Seite  2)
  \pageBreak
  g g g g            % (Seite  3)
  \pageBreak
  g g g g             %(Seite 3a    rechts!)
  \pageBreak          % (Seite 4 blank!)
  s1
}


Gruß,
  Harm

chf

#2
\version "2.16.2"
#(set-default-paper-size "a4")

% Hier können die Ausnahmen eingetragen werden:
% Format: (<seite> . (<x-offset> <y-offset>)
#(define folio-offset '(
    (3 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (4 . (-1 . 2))
    (5 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (6 . (-1 . 2))
    (7a . (1 . 2))
    (8 . (1 . 2))
  ))
#(define-markup-command (place-folio layout props folio) (markup?)
   (let* (
         (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
         ; nur zum Test - dann auskommentieren!
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)
       ))))


#(define (tst layout props arg)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-page-number
           (cond ((= page-number 8)
                  "7a")
                 ((> page-number 8)
                  (number->string (1- page-number)))
                 (else (number->string page-number)4))))
     (interpret-markup layout props new-page-number)))



\paper {
#(layout-set-staff-size 17)
        page-count = 6         
        side-width = #40       
        first-page-number = #4
        print-page-number = ##f
        print-first-page-number = ##t
       
       
       oddHeaderMarkup = \markup \abs-fontsize #10 {
                        \on-the-fly #first-page
                        \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
                        \on-the-fly #not-first-page
                        \fill-line \pad-markup #1 {\null \null                             
                        \number \normal-text \fontsize #2 \place-folio \fromproperty #'page:page-number-string
                        }
                }
      evenHeaderMarkup = \markup \abs-fontsize #10 {
                        \on-the-fly #first-page
                        \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
                        \on-the-fly #not-first-page
                        \fill-line \pad-markup #1 {
                        \number \normal-text \fontsize #2 \place-folio         
                        \fromproperty #'page:page-number-string \null \null
                        }
              }

oddHeaderMarkup =
  \markup \fill-line {
    \on-the-fly #tst \fromproperty #'page:page-number-string
    \null
  }
  evenHeaderMarkup =
  \markup \fill-line {
    \null \on-the-fly #tst \fromproperty #'page:page-number-string     
  }             
}

\relative c''{
 
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
}

Hallo Harm,

danke für Deine Lösung!
Leider komme ich in meiner Originaldatei noch nicht damit klar. Vielleicht war mein Beispiel zu knapp?
Deshalb hier im Zusammenhang, also nicht mehr minimal ... Oder kommen sich die beiden Seitenzahl-Definitionen ins Gehege?
Jedenfalls wird so nur die "7a" ausgegeben - alle anderen Seiten bleiben ohne Nummer.
Kannst Du mir nochmal helfen?

Christa
 

harm6

Hallo,

eine Ursache des Mißerfolgs ist die eingemogelte 4:
Zitat
#(define (tst layout props arg)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-page-number
           (cond ((= page-number 8)
                  "7a")
                 ((> page-number 8)
                  (number->string (1- page-number)))
                 (else (number->string page-number)4))))
     (interpret-markup layout props new-page-number)))

Aber natürlich muß `tst' in die bestehenden even/oddHeaderMarkups integriert werden, sonst überschreiben sie sich.
Wenn Du Torstens `place-folio' verwendest, beachte zuätzlich, daß die tatsächlichen Seitenzahlen referenziert werden müssen.
Seite 7a gibt es intern nicht (es sieht nur so aus), sondern Du mußt Seite 8 in `folio-offset' codieren.

Z.B.:


\version "2.16.2"

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

% Hier können die Ausnahmen eingetragen werden:
% Format: (<seite> . (<x-offset> <y-offset>)
#(define folio-offset '(
    (3 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (4 . (-1 . 2))
    (5 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (6 . (-1 . 2))
    (7 . (1 . 2))
    (8 . (1 . 2))      ; Seite 7a
  ))
#(define-markup-command (place-folio layout props folio) (markup?)
   (let* (
         (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
         ; nur zum Test - dann auskommentieren!
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)
       ))))


#(define (tst layout props arg)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-page-number
           (cond ((= page-number 8)
                  "7a")
                 ((> page-number 8)
                  (number->string (1- page-number)))
                 (else (number->string page-number)))))
     (interpret-markup layout props new-page-number)))



\paper {
#(layout-set-staff-size 17)
        page-count = 6         
        side-width = #40       
        first-page-number = #4
        print-page-number = ##f
        print-first-page-number = ##t
       
       
       oddHeaderMarkup = \markup \abs-fontsize #10 {
                        \on-the-fly #first-page
                        \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
                        \on-the-fly #not-first-page
                        \fill-line \pad-markup #1 {\null \null                             
                        \number \normal-text \fontsize #2
                        \place-folio
                        \on-the-fly \tst
                        \fromproperty #'page:page-number-string
                        }
                }
      evenHeaderMarkup = \markup \abs-fontsize #10 {
                        \on-the-fly #first-page
                        \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
                        \on-the-fly #not-first-page
                        \fill-line \pad-markup #1 {
                        \number \normal-text \fontsize #2 \place-folio       
                        \on-the-fly \tst
                        \fromproperty #'page:page-number-string \null \null
                        }
              }
           
}

\relative c''{

  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
}


HTH,
  Harm

chf

#4
Hallo Harm,

es gibt noch ein kleines Problem:
DIe "7a" steht jetzt links, sie soll rechts stehen,  die tatsächliche "8" dann wieder links.
Kannst Du das auch noch möglich machen?

Christa

harm6

So?

\version "2.16.2"

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

% Hier können die Ausnahmen eingetragen werden:
% Format: (<seite> . (<x-offset> <y-offset>)
#(define folio-offset '(
    (3 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (4 . (-1 . 2))
    (5 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (6 . (-1 . 2))
    (7 . (1 . 2))
    (8 . (1 . 2))      ; Seite 7a
  ))
#(define-markup-command (place-folio layout props folio) (markup?)
   (let* (
         (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
         ; nur zum Test - dann auskommentieren!
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)
       ))))


#(define (tst layout props arg)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-page-number
           (cond ((= page-number 8)
                  "7a")
                 ((> page-number 8)
                  (number->string (1- page-number)))
                 (else (number->string page-number)))))
     (interpret-markup layout props new-page-number)))

#(define-markup-list-command (tst-switch layout props arg)(markup-list?)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-arg
           (if (and (markup-list? arg) (>= page-number 8))
               (reverse arg)
               arg)))
     (interpret-markup-list layout props new-arg)))

\paper {
  #(layout-set-staff-size 17)
  page-count = 6         
  side-width = #40       
  first-page-number = #4
  print-page-number = ##f
  print-first-page-number = ##t
 
 
  oddHeaderMarkup = \markup \abs-fontsize #10 {
                   \on-the-fly #first-page
                   \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) \null
                   \on-the-fly #not-first-page
                   \fill-line \pad-markup #1 {
                     \tst-switch {
                       \null                             
                       \number \normal-text \fontsize #2
                       \place-folio
                       \on-the-fly \tst
                       \fromproperty #'page:page-number-string
                     }
                   }
           }
  evenHeaderMarkup = \markup \abs-fontsize #10 {
                    \on-the-fly #first-page
                    \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) \null
                    \on-the-fly #not-first-page
                    \fill-line \pad-markup #1 {
                      \tst-switch {
                        \number \normal-text \fontsize #2.0 \place-folio       
                        \on-the-fly \tst
                        \fromproperty #'page:page-number-string
                        \null
                      }
                    }
          }
       
}

\relative c''{

  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
}


Gruß,
  Harm

chf

gibt bei mir leider eine Fehlermeldung:
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:60:0: Fehler: syntax error, unexpected EXPECT_NO_MORE_ARGS, expecting markup?

                   \on-the-fly #not-first-page
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:62:21: Fehler: Ungültige Fluchtsequenz: »\tst-switch«
                     
                     \tst-switch {
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:63:23: Fehler: Ungültige Fluchtsequenz: »\null«
                       
                       \null                             
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:64:23: Fehler: Ungültige Fluchtsequenz: »\number«
                       
                       \number \normal-text \fontsize #2
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:64:31: Fehler: Ungültige Fluchtsequenz: »\normal-text«
                       \number
                               \normal-text \fontsize #2
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:64:44: Fehler: Ungültige Fluchtsequenz: »\fontsize«
                       \number \normal-text
                                            \fontsize #2
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:64:54: Warnung: Nicht-musikalischer Ausdruck wird ignoriert
                       \number \normal-text \fontsize
                                                      #2
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:65:23: Fehler: Ungültige Fluchtsequenz: »\place-folio«
                       
                       \place-folio
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:66:23: Fehler: Ungültige Fluchtsequenz: »\on-the-fly«
                       
                       \on-the-fly \tst
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:66:35: Warnung: Nicht-musikalischer Ausdruck wird ignoriert
                       \on-the-fly
                                   \tst
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:67:23: Fehler: Ungültige Fluchtsequenz: »\fromproperty«
                       
                       \fromproperty #'page:page-number-string
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:67:37: Warnung: Nicht-musikalischer Ausdruck wird ignoriert
                       \fromproperty
                                     #'page:page-number-string
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:74:0: Fehler: syntax error, unexpected EXPECT_NO_MORE_ARGS, expecting markup?

                    \on-the-fly #not-first-page
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:74:33: Fehler: GUILE signalisierte einen Fehler für den hier beginnenden Ausdruck
                    \on-the-fly #
                                 not-first-page
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/Seitenzahl.ly:77:55: Warnung: Nicht-musikalischer Ausdruck wird ignoriert
                        \number \normal-text \fontsize

und so fort...

harm6

Ok, ich hatte einerseits ein paar Klammern gelöscht und offensichtlich nicht mehr kontrolliert :(
Andererseits funktioniert es mit neueren devel-Versionen (nach Klammer-korrektur)

Ich habe frühestens heute abend Zeit wieder reinzuschauen.

Warum wilst Du eigentlich unbedingt auf 2.16.2 bleiben?
Du könntest doch zumindest versuchen eine Kopie des files mit convert-ly upzugraden und zu schauen, was passiert.

Gruß,
  Harm

chf

ZitatWarum wilst Du eigentlich unbedingt auf 2.16.2 bleiben?

Diese Datei, an der ich seit mehreren Jahren arbeite, ist eine solche "Bastelarbeit" (zu der ich viel Hilfestellung von euch bekommen habe),
dass ich glücklich bin, meinen Verleger endlich zufriedenzustellen. Ich möchte sie nicht wieder verderben.
Es ist ein musikalisch-graphisches "Würfelspiel" zu Zweien.
Sonst bin ich ja bei "2.18.2", weil stabil...
Mit "2.19..." habe ich noch nichts probiert - das passiert sicher demnächst mit einer neuen Arbeit.

Christa

harm6

Zitat von: chf am Samstag, 24. Februar 2018, 13:58
ZitatWarum wilst Du eigentlich unbedingt auf 2.16.2 bleiben?

Diese Datei, an der ich seit mehreren Jahren arbeite, ist eine solche "Bastelarbeit" (zu der ich viel Hilfestellung von euch bekommen habe),
dass ich glücklich bin, meinen Verleger endlich zufriedenzustellen. Ich möchte sie nicht wieder verderben.
Eine Kopie mittels convert-ly hochzuziehen, zu kompilieren und dann das Ergebnis zu begutachten verdirbt doch gar nichts.
Neuere Versionen bieten ja nicht nur neue features sondern auch bug-fixes und verbessertes default-Verhalten.
Natürlich ist das nicht garantiert, sondern man muß es testen.
2.16.2 wird auch nicht in alle Ewigkeit lauffähig bleiben, zumindest 2.10 (oder war es 2.8. ?) funktioniert bei mir nicht mehr.

Nichtsdestotrotz hier eine 2.16.2-geteste Fassung:

\version "2.16.2"

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

% Hier können die Ausnahmen eingetragen werden:
% Format: (<seite> . (<x-offset> <y-offset>)
#(define folio-offset '(
    (3 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (4 . (-1 . 2))
    (5 . (1 . 2))      ; Seite 3 um 2 nach links und 1 nach oben
    (6 . (-1 . 2))
    (7 . (1 . 2))
    (8 . (1 . 2))      ; Seite 7a
    (9 . (-1 . 2))     ; Seite 8
  ))
#(define-markup-command (place-folio layout props folio) (markup?)
   (let* (
         (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
         ; nur zum Test - dann auskommentieren!
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)
       ))))


#(define (tst layout props arg)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-page-number
           (cond ((= page-number 8)
                  "7a")
                 ((> page-number 8)
                  (number->string (1- page-number)))
                 (else (number->string page-number)))))
     (interpret-markup layout props new-page-number)))

#(define-markup-list-command (tst-switch layout props arg)(markup-list?)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-arg
           (if (and (markup-list? arg) (>= page-number 8))
               (reverse arg)
               arg)))
     (interpret-markup-list layout props new-arg)))

\paper {
  #(layout-set-staff-size 17)
  page-count = 6         
  side-width = #40       
  first-page-number = #4
  print-page-number = ##f
  print-first-page-number = ##t

  oddHeaderMarkup =
    \markup
      \abs-fontsize #10 {
        \on-the-fly #first-page
          \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
        \on-the-fly #not-first-page
          \fill-line
            \tst-switch {
              \null           
              \pad-markup #1
              \number \normal-text \fontsize #2
              \place-folio
              \on-the-fly \tst
              \fromproperty #'page:page-number-string
            }
      }
  evenHeaderMarkup =
    \markup
      \abs-fontsize #10 {
        \on-the-fly #first-page
          \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
        \on-the-fly #not-first-page
          \fill-line
            \tst-switch {
              \pad-markup #1
              \number \normal-text \fontsize #2.0 \place-folio       
              \on-the-fly \tst
              \fromproperty #'page:page-number-string
              \null
            }
      }
}

\relative c''{

  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
  g4 g g g
  \pageBreak
}


Gruß,
  Harm

chf

Hallo Harm,

was macht "tst-switch"? Meine Originaldatei wehrt sich dagegen.
Wenn ich das ausklammere, funktionieren die Seitenzahlen. Allerdings steht die "7a" außerhalb der place-folio-Vorgaben.
Hast Du auch dafür eine Lösung?

Christa



harm6

#11
Zitatwas macht "tst-switch"?
tst-switch ist ein murkup-list-command, es gibt also eine Liste von stencils aus. Es erwartet auch eine markup-list, deshalb die geschweiften Klammern: \tst-switch { ... }
Falls eine bestimmte Bedingung wahr wird (Seitenzahl ist größer/gleich 8) wird die Eingabeliste umgedreht, also nicht von vorn sondern von hinten abgearbeitet.

ZitatMeine Originaldatei wehrt sich dagegen.
Wie sieht denn das \paper jetzt dort aus? Gibts eine error-message? Wenn ja welche?
Ohne diese infos kann niemand weiterhelfen.

ZitatAllerdings steht die "7a" außerhalb der place-folio-Vorgaben.
Wie schon angemerkt ist 7a intern 8 die nachfolgenden Seitenzahlen verschieben sich ebenfalls
8 ist intern 9
9 ist intern 10
etc

Gruß,
  Hrm


chf

#12

Ich habe mich missverständlich ausgedrückt:
wenn ich  \tst-switch" harausnehme, sind alle Seitenzahlen richtig, aber die "7a" ist nicht gut plaziert - sie steht ganz am Rand des Blattes (das meinte ich mit den Vorgaben)...

Starte lilypond 2.16.2 [01_1_Spielgaben2.16.2. 2018 02 25.ly]...
»/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/01_1_Spielgaben2.16.2. 2018 02 25.ly« wird verarbeitet
Analysieren...
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/01_1_Spielgaben2.16.2. 2018 02 25.ly:66:13: Fehler: Ungültige Fluchtsequenz: »\tst-switch«
             
             \tst-switch {
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/01_1_Spielgaben2.16.2. 2018 02 25.ly:66:13: Fehler: syntax error, unexpected STRING
             
             \tst-switch {
/home/fietz/Dokumente/EFietz/FRÖBEL/FröbelSpielEndfassung/01_1_Spielgaben2.16.2. 2018 02 25.ly:67:14: Fehler: Ungültige Fluchtsequenz: »\null«
             
(danach alle Folgeauswirkungen)

harm6

Zitat von: harmWie sieht denn das \paper jetzt dort aus?

Lass Dir doch nicht jedes kleinste Stück Information einzeln aus der Nase heraus operieren.


chf

#14
Entschuldige bitte - ist es das, was Du brauchst?




\version "2.16.2"
#(set-default-paper-size "a4")

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

#(define-markup-command (place-folio layout props folio) (markup?)
   (let* (
         (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
         ; nur zum Test - dann auskommentieren!
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)
       ))))


#(define (tst layout props arg)
  (let* ((page-number (chain-assoc-get 'page:page-number props))
         (new-page-number
           (cond ((= page-number 8)
                  "7a")
                 ((> page-number 8)
                  (number->string (1- page-number)))
                 (else (number->string page-number)))))
     (interpret-markup layout props new-page-number)))


\paper {
#(layout-set-staff-size 17)     
        page-count = 5 
        %indent = #30
        top-margin = #12
        inner-margin = #14
        outer-margin = #18
        two-sided = ##t
        side-width = #178
        bottom-margin = #20
        ragged-last-bottom = ##t
        ragged-right = ##f
        tagline = ##t       
        first-page-number = #4
        print-page-number = ##f
        print-first-page-number = ##t
               
      oddHeaderMarkup =
    \markup
      \abs-fontsize #10 {
        \on-the-fly #first-page
          \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
        \on-the-fly #not-first-page
          \fill-line
             \tst-switch {
              \null           
              \pad-markup #1
              \number \normal-text \fontsize #2
              \place-folio
              \on-the-fly \tst
              \fromproperty #'page:page-number-string
            }
      }
  evenHeaderMarkup =
    \markup
      \abs-fontsize #10 {
        \on-the-fly #first-page
          \fill-line \with-dimensions #'(0 . 5) #'(0 . 5) { \null }
        \on-the-fly #not-first-page
          \fill-line
             \tst-switch {
              \pad-markup #1
              \number \normal-text \fontsize #2.0 \place-folio       
              \on-the-fly \tst
              \fromproperty #'page:page-number-string
              \null
            }
      }

     
  oddFooterMarkup = \markup \column{
    \fill-line {
      \on-the-fly #first-page { \fromproperty #'header:copyright \null}
    }
    \fill-line {
      \on-the-fly #not-first-page { \fromproperty #'header:tagline  }
    }                   
  }
}