Autor Thema: Seitenzählung/Instrumentenangabe nach Belieben ein- und ausschalten  (Gelesen 1656 mal)

juppes

  • Member
Liebe Forumsmitglieder,

kennt jemand eine Möglichkeit, den immer mitlaufenden Seitenzähler (nur auf der ersten Seite ist er üblicherweise abgeschaltet) nach Wunsch ab- und wieder anzuschalten? Gelegentlich gibt es bei mir Bedarf für diese Möglichkeit.
Desgleichen betrifft das die Instrumentenangabe. Wenn man zum Beispiel mitten in einer Stimme aus blättertechnischen Gründen eine Leerseite einfügt, könnte die auch vollkommen leer bleiben. Seitenzahlen und Instrumentenangabe sind da eigentlich überflüssig...

Bin gespannt, ob sich das lösen läßt. Ich danke Euch schon mal wie immer für Eure Hilfe

harm6

  • Member
Re: Seitenzählung/Instrumentenangabe nach Belieben ein- und ausschalten
« Antwort #1 am: Samstag, 20. Oktober 2012, 17:05 »
Hallo juppes,

falls Du eine leere Seite zwischen zwei scores haben willst, würde ich auf Roberts Vorschlag hier zurückgreifen. Denn er setzt auch die header/footer auf "null".
Verallgemeinert kann man sagen, daß man die header/footer in jedem bookpart neu definieren kann.

Ansonsten ist das recht schwierig.
Ich habe mir aber mal \page-ref vorgenommen und so verändert, daß im header/footer bestimmte Angaben gelöscht werden.
Das neue markup-command heißt jetzt `delete-on-labeled-page´
Du mußt allerdings \label <...> dort hinsetzen, wo Du z.B. Seitenangabe/Instrument gelöscht haben willst.
`delete-on-labeled-page´ verlangt zwei Argumente:
  1) Das Argument von \label
  2) "Was soll gelöscht werden?"

Im Code habe ich die anderen Angaben aus früheren Threads (blankPage, etc) wieder benutzt.
Die Anwendung sollte sich aus dem Code ergeben, falls nicht, dann frag.
Ich habe keine bookparts benutzt, aber es sollte dort auch funktionieren. Ich bezweifle allerdings, daß es außerhalb eines \paper-Blocks benutzbar ist (habe ich aber nicht getestet).

\version "2.14.2"
   
#(define-markup-command (page-text layout props arg)(markup-list?)
  #:properties ((line-width #f)
                (x-offset 0)
                (y-offset 0))
  (let* ((paper-height (ly:output-def-lookup layout 'paper-height))
         (paper-wdth (ly:output-def-lookup layout 'paper-width))
         (half-height (/ paper-height 2))
         (line-width (or line-width (ly:output-def-lookup layout 'line-width)))
         (m (interpret-markup layout props  (make-fill-line-markup arg)))
         (y-center (interval-center (ly:stencil-extent m Y))))
  (ly:stencil-translate
    m
    (cons x-offset (- (+ (* -0.95 half-height) y-offset) y-center)))))

#(define-markup-command (delete-on-labeled-page layout props label arg)
  (symbol? markup?)
  (let* ((gauge-stencil (interpret-markup layout props "00"))
         (x-ext (ly:stencil-extent gauge-stencil X))
         (y-ext (ly:stencil-extent gauge-stencil Y)))
    (ly:make-stencil
     `(delay-stencil-evaluation
       ,(delay (ly:stencil-expr
           (let* ((table (ly:output-def-lookup layout 'label-page-table))
                  (page-number (if (list? table)
                                   (assoc-get label table)
            #f)))

          (if (= (chain-assoc-get 'page:page-number props -1) page-number)
             empty-stencil
             (interpret-markup layout props arg))))))
     x-ext
     y-ext)))

blankPageMarkup =
\markup {
        \null
        \override #'(x-offset . -10) %% adjusting x/y-offset is possible
        \override #'(y-offset . 30)  %% adjusting x/y-offset is possible
        \page-text {
        "(this page has been left blank to facilitate page turning)"
        }
}

titlePageMarkup =
\markup {
        \page-text {
        \center-column {
                \fontsize #12 "Title"
                \vspace #2
                \fontsize #4 "Subtitle"
                \vspace #35
                \draw-line #'(40 . 0)
                \vspace #2
                " "
        }
        }
}

blankPage = {
        \pageBreak
        \cadenzaOn
        \stopStaff
        \once\override Staff.TimeSignature #'break-visibility = #'#(#t #f #f)
        \set Staff.explicitKeySignatureVisibility = #'#(#t #f #f)
        \once \override Staff.KeySignature #'break-visibility = #'#(#t #f #f)
        \set Staff.explicitClefVisibility = #'#(#t #f #f)
        \once \override Staff.Clef #'break-visibility = #'#(#t #f #f)
        \once \override Score.BarNumber #'transparent = ##t
 
        s1_\blankPageMarkup

        \unset Staff.explicitKeySignatureVisibility
        \unset Staff.explicitClefVisibility
        \once\override Staff.TimeSignature #'break-visibility = #'#(#f #f #t)
        \cadenzaOff
        \bar ""
        \startStaff
        \pageBreak
}

%----- test --------

\paper {
        % two-sided = ##t             
        % top-margin = #15
        % bottom-margin = #10
        % inner-margin = 13\mm
        % outer-margin = 30\mm
        % ragged-last-bottom = ##f
        % ragged-right = ##f
        % first-page-number = #1
        % tagline = ##f
        oddHeaderMarkup = \markup \fill-line {
        \null
        \line {
                \on-the-fly #not-first-page
                \delete-on-labeled-page #'blankPage-1 
                \delete-on-labeled-page #'blankPage-2
                \fromproperty #'header:instrument
        }
        \line {
                \on-the-fly #not-first-page
                \delete-on-labeled-page #'blankPage-1
                \delete-on-labeled-page #'blankPage-2
                \fromproperty #'page:page-number-string
        }
        }
        evenHeaderMarkup = \markup \fill-line {
        \line {
                \on-the-fly #not-first-page
                \delete-on-labeled-page #'blankPage-1
                \delete-on-labeled-page #'blankPage-2
                \fromproperty #'page:page-number-string
        }
        \line {
                \on-the-fly #not-first-page
                \delete-on-labeled-page #'blankPage-1
                \delete-on-labeled-page #'blankPage-2
                \fromproperty #'header:instrument
        }
        \null
        }
}

\titlePageMarkup

\pageBreak

\header {
        instrument = "Klavier"
}

\relative c' {
        \key cis\major
        c1
        \pageBreak
        \key ces\major
        \time 8/8
        \clef alto
        \label #'blankPage-1
        \blankPage
        % If \time changes, this needs to be repeated here:
        \time 8/8
        c1
        \pageBreak
        c
        \break
        \key cis\major
        \clef treble
        \time 2/2
        c
        \label #'blankPage-2
        \blankPage
        d
}


Gruß,
  Harm

juppes

  • Member
Re: Seitenzählung/Instrumentenangabe nach Belieben ein- und ausschalten
« Antwort #2 am: Samstag, 20. Oktober 2012, 19:07 »
Lieber Harm,

toll, das sieht ja hervorragend aus! Werde nachher mal probieren, ob das bei mir auch in der freien Wildbahn funktioniert. Wenn ich den Code sehe, bin ich aber optimistisch, denn ich habe auch in meinen Bookparts manchmal Dinge im paper-Block geändert, ohne daß es zu Schwierigkeiten geführt hätte.

Melde mich wieder...

juppes

  • Member
Re: Seitenzählung/Instrumentenangabe nach Belieben ein- und ausschalten
« Antwort #3 am: Samstag, 20. Oktober 2012, 23:48 »
Lieber Harm,

Unglaublich, aber wahr: mit minimalen Änderungen funktioniert Dein Code auch bei mir! Das war nun wirklich das Sahnehäubchen bei meinem Projekt. Ich habe nicht zuletzt durch Dich eine Menge dazugelernt - ganz, ganz herzlichen Dank dafür!

Das bringt mich noch auf die Idee für einen neuen Thread, in dem ich die Frage aufwerfen will, wie man schnell und mit System fit mit den ganzen Formatierungsoptionen werden kann. Es gibt ja so viele davon. Ich frage mich, ob es ein System gibt. Ich habe einfach gesehen, daß es hier Leute gibt, die man fast fragen kann, was man will, und immer wissen sie Rat. Das ist einfach phantastisch!