\version "2.14.2"
{
\repeat unfold 2 { c''1 \pageBreak }
c''1
\bar "|."
}
% blank page:
\pageBreak
\markup \null
\pageBreak
{
\repeat unfold 2 { c'''1 \pageBreak }
c'''1
\bar "|."
}\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)))))
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)
\set Staff.explicitClefVisibility = #'#(#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 --------
\titlePageMarkup
\pageBreak
\relative c' {
\key cis\major
c1
\pageBreak
\key ces\major
\time 8/8
\clef alto
\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
}
\version "2.12.3" % und neuer
\bookpart {
\markup { \null }
\paper {
evenHeaderMarkup = \markup { \null }
oddHeaderMarkup = \markup { \null }
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}
}
\startStaff \stopStaffwie angekündigt habe ich nun auch Deinen Leerseitenvorschlag "probegefahren". Ich muß sagen, daß er dem älteren absolut überlegen ist. Der hat nämlich auch noch eine Macke, die erst auf den zweiten Blick auffällt
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
}Das Sahnehäubchen obendrauf wäre jetzt nur noch, die Seitenzählung und die Intrumentenangabe für die Leerseite "abzuschalten", aber das ist vielleicht gar nicht möglich, oder doch?
Welche Unzulänglichkeit ist Dir denn noch aufgefallen?
Was hast Du gegenüber der Fassung davor verändert? Ich habe den Code Zeile für Zeile gelesen, konnte aber keinen Unterschied erkennen.
| Mein Code vom 13.10.2012 | Mein Code vom 21.10.2012 |
| blankPage = { \pageBreak \cadenzaOn \stopStaff \once\override Staff.TimeSignature #'break-visibility = #'#(#t #f #f) \set Staff.explicitKeySignatureVisibility = #'#(#t #f #f) \set Staff.explicitClefVisibility = #'#(#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 } | 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 } |
Die Nebenwirkung (sie ist mir auch erst auf den zweiten Blick aufgefallen) ist folgende: jeweils auf den linken Seiten stehen die Taktzahlen und die Seitenzahlen zu eng beieinander. Ist z.B. auch noch eine Tempobezeichnung dort, rückt das Notensystem nach unten. Das Phänomen stört also nur, wenn nichts dergleichen vorhanden ist. Darum fällt es auch nur auf, wenn man alle Seiten nacheinander anschaut. In Deinem Codebeispiel sehe ich das gleiche: die Notenzeile steht ziemlich dicht an der Seitenzahl.
Und das Interessante ist, daß in der mängelbehafteten älteren Lösung dieser Effekt nicht auftritt. Ich habe keine Erklärung dafür...
Gibt es noch irgendwelche Padding-Einstellungen, an denen man herumschrauben könnte?
oddHeaderMarkup = \markup \fill-line { <was-auch-immer> } oddHeaderMarkup = \markup \box \fill-line { <was-auch-immer> } top-system-spacing #'basic-distance = #4
top-system-spacing #'minimum-distance = #4
top-system-spacing #'padding = #4
top-markup-spacing #'basic-distance = #4
top-markup-spacing #'minimum-distance = #4
top-markup-spacing #'padding = #4
annotate-spacing = ##tannotate-spacing ist beim debugging manchmal hilfreich.
top-system-spacing
der Abstand zwischen dem oberen Rand des bedruckbaren Bereichs (also dem Ende des oberen Rands) und dem ersten System auf der Seite, wenn keine (Titel-)Beschriftung (auf höchster Ebene) dazwischen kommt.
top-markup-spacing
der Abstand vom oberen Rand des bedruckbaren Bereichs (also dem Ende des oberen Randes) zur ersten (Titel-)Beschriftung (auf höchster Ebene) auf einer Seite, wenn keine Systemgruppe dazwischen kommt.
Die Frage lautet: warum wird nach der Leerseite der Header-String von vorher nicht wieder übernommen?
\version "2.14.2"
#(define (not-part-first-page layout props arg)
(if (not (= (chain-assoc-get 'page:page-number props -1)
(ly:output-def-lookup layout 'first-page-number)))
(interpret-markup layout props arg)
empty-stencil))
#(define (print-page-number-check-part-first layout props arg)
(if (or (not (= (chain-assoc-get 'page:page-number props -1)
(ly:output-def-lookup layout 'first-page-number)))
(eq? (ly:output-def-lookup layout 'print-first-page-number) #t))
(create-page-number-stencil layout props arg)
empty-stencil))
\include "deutsch.ly"
\header {
title = "Titel"
subtitle = \markup \center-column { "Untertitel" " "}
instrument = "Tenor"
}
\paper {
#(set-paper-size "henle")
outer-margin =25\mm
inner-margin = 18\mm
two-sided = ##t
annotate-spacing = ##f
ragged-bottom = ##f
top-margin = 10\mm
bottom-margin = 15\mm
ragged-last-bottom = ##t
top-system-spacing #'basic-distance = #4
top-system-spacing #'minimum-distance = #4
top-system-spacing #'padding = #4
top-markup-spacing #'basic-distance = #4
top-markup-spacing #'minimum-distance = #4
top-markup-spacing #'padding = #4
}
\book {
\bookpart {
\paper {
oddHeaderMarkup = \markup \box
\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 " "
}
evenHeaderMarkup = \markup \box
\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 " "
}
}
\relative c' { c1 \pageBreak c }
}
\bookpart {
\markup { \null }
\paper {
bookTitleMarkup = ##f
evenHeaderMarkup = \markup { \null }
oddHeaderMarkup = \markup { \null }
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}
}
\bookpart {
\paper {
oddHeaderMarkup = \markup \box
\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 " "
}
evenHeaderMarkup = \markup \box
\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 " "
}
}
\relative c' { cis1 \pageBreak ces }
}
}
Was ich geschrieben habe, das habe ich geschrieben.
Da ich aber von Scheme (darum handelt es sich doch, oder?) keine Ahnung habe, habe ich lieber die Finger davon gelassen.
mir scheint, Du bist Programmierer,
Als Lohn der Mühe würde ich gerne Deine Initiative Kastrup-Sponsoring unterstützen, die ich sehr sinnvoll finde. Hast Du eine Bankverbindung oder muß ich ihn selber kontaktieren?