Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: juppes am Freitag, 12. Oktober 2012, 17:10

Titel: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Freitag, 12. Oktober 2012, 17:10
hallo zusammen,

hier kommt schon wieder ein Formatierungsproblem. Die Ausgangssituation:

Ich habe eine Partitur geschrieben, die ich nun als "Quelle" für die einzelnen Stimmen benutze. Ich kann sie ja mit \include herausziehen.
Das ergibt aber erst einmal nur Rohmaterial, das dann noch nachbearbeitet werden muß.

Einer der Schritte ist es, passende Blätterstellen zu schaffen. Daraus ergibt sich nun für mich die Notwendigkeit, eine leere Seite in die Stimme einzufügen. Habe in der NR unter Layout eine Variable "blank-page-force" entdeckt, habe aber keine Ahnung, wie ich die dann einsetze. Kann mir jemand weiterhelfen?
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Freitag, 12. Oktober 2012, 19:46
Auch wenn man im Forum fragt, sucht man manchmal auch noch an anderer Stelle weiter (und derer gibt es ja sehr viele). Und da habe ich eine Lösung gefunden, die auch unter Lilypond 2.14.2, der Version, mit der ich arbeite, noch funktioniert, obwohl der Thread schon etwas angejahrt ist. Ich gebe ihn hier gerne bekannt:

http://lists.gnu.org/archive/html/lilypond-user/2006-07/msg00405.html (http://lists.gnu.org/archive/html/lilypond-user/2006-07/msg00405.html)

Bin sicher, daß noch einmal wer anders diese Sache brauchen kann.
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: harm6 am Samstag, 13. Oktober 2012, 23:09
Hallo juppes,

Recht trivial ist die Lösung, falls man die leere Seite nach einem score haben möchte:

\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 "|."
}

Falls Du eine leere Seite mitten in einem score haben willst, wird es komplizierter.
Der link, den Du entdeckt hast führt zu einem Code, der zwar das damals aktuelle Problem behoben haben mag, er hat aber auch ein paar Schwächen. Insbesondere dann, wenn vor bzw nach dem Seitenumbruch Wechsel des Taktes, der Tonart und/oder des Schlüssels gesetzt werden.

Deshalb habe ich ihn umgeschrieben (siehe unten). Falls es damit noch unentdeckte Probleme gibt, poste sie.

Der Code enthält außerdem ein neu definiertes markup-command,
`page-text´
welches das markup-Argument horizontal auf der Seite zentriert (genau wie \fill-line).
Darüber hinaus wird die Seitenhöhe ausgelesen und das argument um die Hälfte dieser Höhe versetzt.
Feinjustierung (falls gewünscht) ist möglich via:
     \override #'(x-offset . <number>)
und
     \override #'(y-offset . <number>)

Die naheliegendste Verwendung ist natürlich in einem top-level-markup. -> `titlePageMarkup´

\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
}


HTH,
  Harm
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Montag, 15. Oktober 2012, 21:11
hallo Harm,

bin gerade unterwegs und sitze an einem Gastcomputer. Ganz herzlichen Dank fuer Dein Codebeispiel. Das werde ich auf jeden Fall ausprobieren. Was ich verwendet habe, funktioniert aber fuer meine Zwecke ausreichend gut, da ich nur eine blaettertechnische Leerseite mitten in einer Stimme zwischen zwei Saetzen erzeugen muss, damit der nachfolgende Satz auf zwei gegenueberliegenden Seiten zu stehen kommt. Ende der Woche probiere ich Deinen Vorschlag und melde mich wieder.
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: RobUr am Dienstag, 16. Oktober 2012, 12:41
Hallo juppes,

ganz nebenbei wäre dies ein klassischer Anwendungsfall für \bookpart! Eine echte leere Seite würde durch folgenden Code erzeugt werden:
\version "2.12.3" % und neuer

\bookpart {
\markup { \null }

\paper {
evenHeaderMarkup = \markup { \null }
oddHeaderMarkup = \markup { \null }
evenFooterMarkup = \markup { \null }
oddFooterMarkup = \markup { \null }
}
}

Gruß, Robert
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Donnerstag, 18. Oktober 2012, 23:22
kann ich das dann auch mitten in einer Stimme machen?
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Samstag, 20. Oktober 2012, 10:56
Lieber Harm,

wie 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: durch die Befehlsfolge

\startStaff \stopStaff
entstehen nämlich 5 winzige Punkte oben rechts auf der Seite, die zwar kaum wahrnehmbar sind. Hat man sie aber einmal entdeckt, stören sie dennoch, denn sie gehören da nicht hin.

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?
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: harm6 am Samstag, 20. Oktober 2012, 16:48
Hallo juppes,

Zitat von: juppes
wie 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

Schön, daß es Dir gefällt.
Ich habe aber mittlerweile doch noch eine Schwäche entdeckt.

Insofern solltest Du folgendes verwenden, falls Du eine leere Seite in einem score haben möchtest:

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
}

Für eine leere Seite zwischen zwei scores ist Roberts Vorschlag der beste.

Zitat
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?

Hierzu mehr in Deinem anderen (https://liarchiv.joonet.de/index.php?topic=1246.0) Thread.


Gruß,
  Harm
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Samstag, 20. Oktober 2012, 23:52
Danke, danke! Morgen probiere ich den auch noch aus. Welche Unzulänglichkeit ist Dir denn noch aufgefallen?
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Sonntag, 21. Oktober 2012, 11:42
hallo Harm,

ich habe Deine andere verbesserte blankPage-Variable ausprobiert, und natürlich funktioniert sie wunderbar. Aber eines mußt Du mir jetzt doch noch verraten: vielleicht habe ich ja Tomaten auf den Augen.

Was hast Du gegenüber der Fassung davor verändert? Ich habe den Code Zeile für Zeile gelesen, konnte aber keinen Unterschied erkennen.

Danke für "Erleuchtung"
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Sonntag, 21. Oktober 2012, 16:40
lieber Harm,

und noch eine Rückmeldung: sowohl bei Deiner Lösung als auch bei Roberts Vorschlag, den ich auch einmal ausprobiert habe, wobei ich einen Bookpart mit vielen scores zerlegt habe, gibt es eine Nebenwirkung, die ich nicht verstehe, die aber leider auch unbefriedigend ist. Vielleicht kommt sich da etwas in die Quere? Ich wüßte aber nicht, was das sein könnte.

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?

Zur Illustration hänge ich zwei Bildschirmfotos an.
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: harm6 am Montag, 22. Oktober 2012, 01:15
Hallo juppes,

a)
Zitat
Welche Unzulänglichkeit ist Dir denn noch aufgefallen?

Ich hatte den Code auf alle möglichen Eventualitäten getestet, dabei aber den Fall das nichts besonderes (außer der Leerseite) passiert ausgelassen. Das hatte ich nachgeholt und festgestellt, daß in manchen Situationen doch Notenschlüssel und/oder Vorzeichen geschrieben werden.

b)
Zitat
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.2012Mein 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
}


Klar?

c)
Zitat
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?

Also ich kann keinen essentiellen Unterschied im spacing ausmachen, egal welchen Code ich für eine leere Seite benutze.
Ich vermute eher es liegt am page-header.

Die page-header werden ja so definiert:

    oddHeaderMarkup = \markup \fill-line { <was-auch-immer> }
(evenHeaderMarkup entsprechend)

Setze doch mal \box zur besseren Visualisierung wie folgt ein:

    oddHeaderMarkup = \markup \box \fill-line { <was-auch-immer> }
Ist die Box, dann unterschiedlich hoch?
Wenn ja, dann hast Du die Ursache, wenn nein, dann mußt Du einen Beispiel-Code posten.

Aber Du könntest in jedem Fall mit ein paar spacing-Variablen rumspielen, vielleicht wird das Problem schon dadurch behoben:

        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 = ##t
annotate-spacing ist beim debugging manchmal hilfreich.


Siehe auch NR Vertikale \paper-Variablen mit flexiblen Abständen (http://lilypond.org/doc/v2.14/Documentation/notation-big-page.de.html#flexible-vertical-spacing-_005cpaper-variables):

Zitat

  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.

HTH,
  Harm
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Montag, 22. Oktober 2012, 09:19
hallo Harm,

das mit der Box ist ein tolles Instrument zum Sichtbarmachen! Die page-header sind es. Dann werde ich wohl mal etwas herumspielen müssen. Interessant ist noch, daß das Problem in der gleichen Stimme erst nach der Leerseite auftritt, wenn ich Roberts Leerseite einbaue, und immer, wenn ich Deinen Code verwende. Das scheint etwas mit der Tatsache zu tun zu haben, daß ich im Bookpart nach der Leerseite noch einmal die \paper-Definitionen noch einmal im neuen Bookpart wiederholt habe.

Hier sind die Screenshots:
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: harm6 am Montag, 22. Oktober 2012, 11:55
Hallo juppes,

wie man an Deinen PNGs deutlich sieht sind die page-header unterschiedlich hoch. Es scheint, daß manche einzeilig, andere zweizeilig sind, mit Instrument/Seitennummer in verschiedenen Zeilen.
Das würde ich auf jeden Fall vereinheitlichen.
Darüberhinaus mag es trotzdem etwas zu gedrängt aussehen. Insofern solltest Du vielleicht die oben genannten spacing-Variablen einsetzen, allerdings in einem book-paper, also auf top-level-Niveau, nicht in einem bookpart-paper.


HTH,
  Harm
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Montag, 22. Oktober 2012, 14:24
Ja, das will ich auch;  so kann man das nicht  lassen. Was mich nur wundert, ist, daß  das irgendwie von selbst passiert zu sein scheint. Ich habe ja nichts anderes gemacht als Deinen Code in meine Datei "eingebaut". Ich werde dann mal ein bißchen herumprobieren. Komme aber wohl erst wieder am Ende der Woche dazu.

Auf jeden Fall Dank für die Schützenhilfe
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Sonntag, 28. Oktober 2012, 16:21
hallo Harm,

grippebedingt komme ich erst heute dazu, Deine Vorschläge zu probieren. Die gute Nachricht zuerst: beinahe alles hat sich mit den Toplevel-Spacing-Einstellungen erledigt. Außerdem hat eine nochmalige genaue Betrachtung der Boxes ergeben, daß eine Markup-Leerzeile, die ich bei "instrument" als centercolum eingetragen hatte, zu einer Leerzeile in der Box führte, die als Nebeneffekt einen guten Abstand auch auf der linken Seite zwischen Seitenzahl und Taktzahl hatte. Ich brauchte sie aber im Titel, weil sonst Untertitel und Instrumentenangabe zu eng beieinander gestanden hätten. Diese Leerzeile habe ich nun an den Untertitel gehängt, was am Aussehen des Titels nichts ändert, aber die Kopfzeilen der bookparts vereinheitlicht.
Aus mir unerfindlichen Gründen wurde diese Leerzeile in der Instrumentenangabe nun nach der Leerseite nicht wieder übernommen, so daß dort dann Seitenzahl und Taktzahl auf den linken Seiten zu eng standen.

Jetzt bleibt noch ein kleiner Rest, und ich hoffe, auch den kannst Du mir noch helfen wegzubekommen:

auf der "Titelseite" des bookpart nach der Leerseite stehen Seitenzahl und Instrumentenangabe nicht wie sonst immer in einer Zeile oder innerhalb der Box. Diesen bookpart hatten wir angewiesen, nicht noch einmal den vollen Titel, sondern nur noch die Instrumentenangabe in der Kopfzeile wie auf den anderen Folgeseiten im bookpart vor der Leerseite zu übernehmen. Nur dort steht die Seitenzahl allein in der Box und das Instrument drunter. Hat sicher was mit der Tatsache zu tun, daß diese Seite als Titelseite oder Erste Seite gesehen wird.

Gäbe es eine Möglichkeit, das auch noch zu vereinheitlichen und das Instrument wieder in die Box zur Seitenzahl zu verpflanzen?

Im bookpart vor der Leerseite stört das ja nicht, weil eben das ganze vollständige Titelgedöns steht. Erst ohne Gedöns fällt es auf.

Bin auf Deine Antwort gespannt
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Sonntag, 28. Oktober 2012, 20:45
hallo Harm,

unbedingt noch ein Nachtrag und eine viel einfachere Frage mit Codebeispiel danach:

Vergiß den größten Teil des im vorigen Post Geschriebenen wieder. Ich habe die Ursache dessen gefunden, was ich noch beseitigen wollte: ich hatte mir irgendwann einen Header für das betreffende Bookpart gebaut mit Formatierungen. Darum hatte der auch exakt die Größe von den in den Boxen stehenden Header-Strings. Das war nur eine Krücke, die ich vergessen hatte. Habe lange an diesem Projekt gearbeitet und mal wieder den Überblick verloren...

Die Frage lautet: warum wird nach der Leerseite der Header-String von vorher nicht wieder übernommen?
Zum Diagnostizieren habe ich ein Beispiel mit meiner Konstellation/Struktur gebaut. Was fehlt da?
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: harm6 am Sonntag, 28. Oktober 2012, 22:56
Hallo juppes,

Zitat
Die Frage lautet: warum wird nach der Leerseite der Header-String von vorher nicht wieder übernommen?

Die dumme Antwort lautet: weil Du es so geschrieben hast.. ;)

Etwas ausführlicher:

Du hast im dritten bookpart folgenden page-header definiert:

     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 " "
      }

Also wird auf der ersten  Seite des neuen bookparts kein instrument geschrieben.
Diese Angabe einfach streichen.

Ansonsten:
Es wird nie ein Header von einem in den anderen bookpart übernommen. Falls im neuen bookpart kein header definiert wurde, wird auf den book-header zurückgegriffen. Falls der nicht definiert ist, dann wird der default aus titling-init.ly genommen. Für andere toplevel-Angaben wie \paper, \layout gilt das gleiche.

Du brauchst die Definitionen für `not-part-first-page´ etc nicht in jedes \paper zu schreiben. einmal ganz oben genügt.

Auf der leeren Seite habe ich die \pageBreak-Angaben gelöscht, sie sind nicht nur überflüssig, da der \bookpart schon für den Seitenumbruch sorgt, sondern sie haben sogar zu zwei leeren Seiten geführt.

Im \paper der leeren Seite habe ich noch
    bookTitleMarkup = ##f
eingefügt, da sonst der bookheader auf die eigentlich leere Seite geschrieben wird.

\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 }

    }
}
 

Gruß,
  Harm

P.S.
Ich meine irgendwo gelesen zu haben, daß deutsche Umlaute in file-Namen schon mal Probleme bereiten. Sollte man vermeiden.
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: juppes am Montag, 29. Oktober 2012, 09:16
hallo Harm,

ich zitiere aus der Johannes-Passion:
Zitat
Was ich geschrieben habe, das habe ich geschrieben.

Daß das so einfach ist, hätte ich nie gedacht. Die von Dir bezeichnete Anweisung hatte ich natürlich auch im Verdacht. Da ich aber von Scheme (darum handelt es sich doch, oder?) keine Ahnung habe, habe ich lieber die Finger davon gelassen. Man soll nicht an etwas herumschrauben, das man nicht versteht...

Danke auch fuer den Hinweis auf die Umlaute in Dateinamen. Das war mir nicht bekannt, und ich habe es auch noch nie erlebt. Ich glaube Dir aber gerne - mir scheint, Du bist Programmierer, zumindest auch das.

Wenn das hier das Restproblemchen löst, vovon ich ausgehe, kann ich Dir nur noch einmal sehr herzlich danken für all Deine Mühe und den Zeitaufwand, der damit verbunden war. Ich habe hierbei sehr viel Nützliches gelernt und ein paar neue Techniken und Verfahren, die mir auch in Zukunft helfen werden.

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?
Titel: Re: Wie füge ich in einer Instrumentalstimme eine Leerseite ein?
Beitrag von: harm6 am Montag, 29. Oktober 2012, 13:37
Hallo juppes,

Zitat
Da ich aber von Scheme (darum handelt es sich doch, oder?) keine Ahnung habe, habe ich lieber die Finger davon gelassen.

Nunja, scheme ist die Erweiterungssprache von LilyPond.
Tatsächlich ist die LilyPond-Syntax und scheme eng verwoben: jeder LilyPond-Ausdruck der mit "#" eingeleitet wird ist ein scheme-Ausdruck.
Meistens handelt es sich natürlich nur um einfache Daten wie in
  \override NoteHead #'extra-offset = #'(-3 . 3)
'(-3 . 3) ist ein pair und somit eine native scheme-Daten-Struktur.

#not-part-first-page ist dann natürlich auch ein scheme Ausdruck. Er ist allerdings nur der Name der Definition, die aufgerufen werden soll.

Zitat
mir scheint, Du bist Programmierer,

Hier irrst Du Dich. :)
Ich bin Musiker und Musikschullehrer und bevor ich mit LilyPond anfing hatte ich keinerlei Programmiererfahrung.
Da ich nach einiger Zeit der Benutzung jedoch immer wieder feststellen mußte, daß nicht alles was ich benötigte als default erhältlich war, habe ich angefangen scheme zu lernen, um es selbst zu bauen.
Sehr hilfreich dabei ist im Forum jedes gepostete Problem zu bedenken und eine Lösung zu versuchen.
Kann ich nur empfehlen. ;)

Zitat
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?

Du solltest ihn direkt (auf deutsch) kontaktieren.
e-mail-Adresse ist hier zu finden:
http://lilypond.org/doc/v2.17/Documentation/web/sponsoring (http://lilypond.org/doc/v2.17/Documentation/web/sponsoring)


Gruß,
  Harm