Autor Thema: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten  (Gelesen 2326 mal)

juppes

  • Member
Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« am: Donnerstag, 21. Februar 2013, 16:04 »
hallo zusammen,

ich habe mitten in einer Einzelstimme eine Leerseite als Bookpart eingefügt, um eine unmögliche Blätterstelle zu vermeiden. In diesem Bookpart sind alle Kopf- und Fußzeilen ausgeschaltet. Im folgenden Bookpart müssen sie wieder angeworfen werden, aber es sieht so aus, als ob sich da zwei Dinge in die Quere kommen mit der Folge, daß ich entweder die Instrumentenangabe oder die Seitenzahlen bekomme, aber nicht beides.

Per

\paper {oddHeaderMarkup = \markup \fill-line { "instrument" }}
zum Beispiel bekomme ich meine Instrumentenbezeichnung wieder, aber die Seitenzahlen sind futsch, weil sie überschrieben werden. Definiere ich dort keinen HeaderMarkup, habe ich wieder Seitenzahlen. Was tun, sprach Zeus...

eluze

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #1 am: Donnerstag, 21. Februar 2013, 16:45 »
hallo juppes!

ich habe dein beispiel kompiliert un sehe keine fehler

das log sagt:
Zitat
GNU LilyPond 2.17.12
Processing `test3.ly'
Parsing...
Success: compilation successfully completed

Eluze

juppes

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #2 am: Donnerstag, 21. Februar 2013, 17:16 »
welches test3.ly ist denn gemeint? Ich kann es nicht finden, nachdem ich hier gesucht habe.

eluze

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #3 am: Donnerstag, 21. Februar 2013, 18:11 »
es enhält dein programm da unten...
Eluze

juppes

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #4 am: Donnerstag, 21. Februar 2013, 18:38 »
ach so, das war gemeint...

ich hänge mal ein Codebeispiel an, um noch besser zu illustrieren, was mich stört. Da sieht man, daß nach der Leerseite die Instrumentenangabe nicht mehr da ist, obwohl ich sie da haben möchte.

harm6

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #5 am: Freitag, 22. Februar 2013, 01:10 »
Hallo juppes,

Zitat von: juppes
obwohl ich sie da haben möchte.
wenn man immer alles bekäme, was man sich wünscht...

Die Gemengelage von book-header, score-header, page-header, page-footer in Verbindung mit \book, \bookpart ist zugegebenermaßen schwierig zu durchschauen bzw zu managen, aber durch schlichtes ausprobieren wirklich kleiner Code-Beispiele in Verbindung mit begleitender Manual-Lektüre sollte man aber eigentlich einigermaßen durchsteigen können.

Dein Code hat folgende Struktur:

\header { ... } <- nur für die tagline

\paper { ... }

\book {
   
    \bookpart {
        \header { ... } <- hier steht instrument = ...
        \paper { ... }
        \score { ... }
   }

   \bookpart {
        <leere Seite>
   }
   \bookpart {
        \score { ... }
   }
}

Die header und paper-Angaben im rot markierten bookpart gelten also nur für diesen bookpart!!
Das kannst Du schon im bookpart mit der leeren Seite beobachten, falls Du die page-header/footer-Setzungen auskommentierst.
Anders gesagt: Der zweite und jeder weitere bookpart hat gar keine instrument-Angabe. (Isch 'abe gar kein Auto)

Nun willst Du aber offensichtlich das Instrument in jedem bookpart (außer der leeren Seite) im page-header haben.
Konsequenz: diese Angabe muß woanders hin.
Zwei Möglichkeiten:

(1)
\header { instrument = ... }
\book {
  \bookpart { }
  \bookpart { }
  \bookpart { }
}

(2)
\book {
  \header { instrument = ... }
  \bookpart { }
  \bookpart { }
  \bookpart { }
}

Problem: In 2.14.2 wird durch beide Positionierungen der book-header in jeden book-part geschrieben.
(IIRC, so verhält sich 2.17 hier ein wenig anders, habe ich jetzt aber nicht noch zusätzlich überprüft.)

Lösung:
Offensichtlich muß man das abstellen.
Das geht mit bookTitleMarkup = ##f in \paper
(Wenn die Situation komplizierter wird kann man auch über andere Lösungen nachdenken, die dann naturgemäß auch komplizierter ausfallen)

Im simplifizierten Beispiel unten habe ich instrument = ... in den dem book vorangestellten header geschrieben; den header aus dem ersten bookpart aber ansonsten so belassen wie er war. In den folgenden bookparts habe ich dann in ein \paper
bookTitleMarkup = ##f eingefügt.
(Also die erste der oben genannten Lösungsmöglichkeiten. Falls Du jedoch mehrere books in einem file haben möchtest wird die zweite Möglichkeit auf jeden Fall vorzuziehen sein.)

Es ergibt sich folgende Struktur:

\version ...

\header { <tagline> <instrument> }

\paper { <generelle Angaben> }

\book {
  \bookpart {
    \header { <title-für-diesen-bookpart> <subtitle-für-diesen-bookpart> <composer-für-diesen-bookpart> }
    \paper { <Setzungen-für-diesen-bookpart> }
    \score { ... }
    \score { ... }
  \bookpart {
    <null-markup>
    \paper { <footer/header/bookTitlemarkup-für-diesen-bookpart-auf-null-bzw-##f> }
  }
  \bookpart {
    \paper { <bookTitlemarkup-für-diesen-bookpart-auf-##f> }
    \score { ... }
  }
}
   
\version "2.14.2"

\header {
        tagline = \markup \fill-line { "my-whatever-tagline" }
        instrument = "– Violino Secondo –"
}

\paper { ragged-right = ##f }

\book {
  \bookpart {   
     \header {
       title = "TITEL"
       subtitle = "SUBTITLE"
       composer = "COMPOSER"
     }
     
     \paper { indent = #0 }
     
     \score { { \repeat unfold 4 c''1 \bar "|." } }
       
     \pageBreak
     
     \score { { \repeat unfold 4 cis''1 \bar "|." } }
   
  }
  \bookpart {
     \markup { \null }
     \paper {
       bookTitleMarkup = ##f
       evenHeaderMarkup = \markup { \null }
       oddHeaderMarkup = \markup { \null }
       evenFooterMarkup = \markup { \null }
       oddFooterMarkup = \markup { \null }
     }
   }
   \bookpart {
     \paper { bookTitleMarkup = ##f }
     \score { { \repeat unfold 4 d''1 \bar "|." } }
   }
}


HTH,
  Harm

P.S. Tatsächlich deckt sich so einiges von dem oben geschriebenen mit Roberts Beitrag hier.
Die Lektüre dieses Beitrags kann ich nicht oft genug empfehlen.
Die Lektüre dieses Beitrags kann ich nicht oft genug empfehlen.
Die Lektüre dieses Beitrags kann ich nicht oft genug empfehlen.
Die Lektüre dieses Beitrags kann ich nicht oft genug empfehlen.
Die Lektüre dieses Beitrags kann ich nicht oft genug empfehlen.
Die Lektüre dieses Beitrags kann ich nicht oft genug empfehlen.
...

eluze

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #6 am: Freitag, 22. Februar 2013, 02:12 »
ich sehe das noch einfacher:
\book {
  \header {
    instrument = "– Violino Secondo –"
  }
  \bookpart {
    \score { \relative { c1 -"erste seite des bookparts"} }
    \pageBreak
    \score { \relative { c1-"zweite seite des bookparts" } }
  }
  \bookpart {
    \header {
      instrument = ##f
      copyright=copyright
    }
    \markup {}
  }
  \bookpart { \score { c1 } }
}

allerdings verwende ich 2.17.12

gruss
Eluze

harm6

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #7 am: Freitag, 22. Februar 2013, 02:32 »
ich sehe das noch einfacher:
[ ... ]
allerdings verwende ich 2.17.12

Hallo Eluze,

2.17.12 verhält sich anders (ich habe Deinen Code mit 2.17.10 kompiliert aber der Unterschied dürfte hier quasi nicht existent sein), jedoch hast Du möglicherweise übersehen, daß die instrument-Angaben in Deinem Beispiel unterschiedlich formatiert sind.
Vergleiche mal die zweite Seite mit den anderen.

Ich denke das liegt daran, daß auf Seite 1 und Seite 4 die instrument-Angabe aus dem book-header stammt und dort ist es mit \large \bold vorformatiert. ->/ly/titling-init.ly

Ob mein obiger Vorschlag mit 2.17 wirklich gut funktioniert, habe ich nicht geprüft.
Da juppes dankenswerterweise seine Version angegeben hat, habe ich auch für diese Version geantwortet und die war nun mal 2.14.2

Gruß,
  Harm

harm6

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #8 am: Freitag, 22. Februar 2013, 03:02 »
Zitat von: harm
ich habe Deinen Code mit 2.17.10 kompiliert aber der Unterschied dürfte hier quasi nicht existent sein

Hallo Eluze nochmal,

ich habe auf die Schnelle 2.17.12 installiert und Deinen Code noch mal mit dieser Version probiert.
Die instrument-Angaben sind tatsächlich unterschiedlich formatiert.

Gruß,
  Harm

eluze

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #9 am: Freitag, 22. Februar 2013, 09:56 »
hallo Harm

ich war gestern nacht zu müde um das nachzuschauen

in der tat ist der oddHeaderMarkup anders definiert wenn es nicht die erste seite ist:

oddHeaderMarkup =

\on-the-fly #not-part-first-page \fromproperty #'header:instrument

gruss
Eluze

juppes

  • Member
Re: Instrumentenangabe und Seitenzahlen nach Leerseite wieder einschalten
« Antwort #10 am: Freitag, 22. Februar 2013, 12:55 »
hallo Eluze und Harm,

ich danke Euch sehr für die anregende Unterhaltung und für die sehr hilfreichen Hinweise und Erläuterungen. Bevor ich das nächste größere Projekt beginne, werde ich das alles an Beispieldateien ausführlich testen. Ich habe das Problem im Moment mit Mitteln gelöst, die mir aus einem vorigen Projekt schon zu Gebote standen. Die Lösung ist zwar nicht sehr elegant und auch nicht 100%ig zufriedenstellend, aber ich kann damit leben.

Wenn man ein schon sehr weit gediehenes Großprojekt noch umbauen muß, verliert man viel Zeit, und die Wahrscheinlichkeit, alles zu versauen und noch mehr Zeit zu verlieren, wird auch immer größer. Allein schon die Wartezeiten, bis eine größere Datei wieder kompiliert ist, können sich ganz schön addieren, bis man dann sieht, ob die vorgenommen(en) Änderung(en) die erwünschte Wirkung tun.

Mir wird immer klarer: bevor man etwas "einfüllt", muß die Grundstruktur stimmen. Gerade bei großen Vorhaben, denn die können sonst so unübersichtlich werden, daß man den Wald vor Bäumen nicht mehr sieht.

Nochmals vielen Dank und bis zum nächsten Mal, denn das kommt bestimmt. Weiß nur noch nicht, was :D