Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Manuela am Sonntag, 20. November 2016, 10:31

Titel: Kapitelüberschrift in Fußzeilen
Beitrag von: Manuela am Sonntag, 20. November 2016, 10:31
Nachdem das Problem mit den Kopf- bzw. Fußzeilen geklärt (https://liarchiv.joonet.de/index.php?topic=2428.0) wäre, hätte ich noch ein Problem. Wahrscheinlich schlage ich mehrmals mit dem Kopf gegen die Wand, wenn ich die Lösung erfahre, weil ich wieder mal irgend eine Kleinigkeit übersehe...

Ich hätte gerne die Kapitelüberschrift in der Fußzeile stehen, aber es klappt nicht. Was mache ich falsch, die Fußzeile ist leer

\version "2.19.42"

tocAct =
#(define-music-function (text) (markup?)
   (add-toc-item! 'tocActMarkup text))

\paper {
  evenFooterMarkup = \markup {
    \fill-line {
      \null \fromproperty #'toc:text
      \null
    }
  }
  oddFooterMarkup = \markup {
    \fill-line {
      \null \fromproperty #'toc:text
      \null
    }
  }
}

\tocAct \markup "Kirchenlieder"

\new Staff { \repeat unfold 3 { c'1 \pageBreak } }
Titel: Re: Kapitelüberschrift in Fußzeilen
Beitrag von: harm6 am Dienstag, 22. November 2016, 00:34
Hallo Manuela,

Zitat
Was mache ich falsch, die Fußzeile ist leer

Gar nichts. Die gewünschte Information ist zum Zeitpunkt, da Du sie haben willst einfach noch nicht da.

Zur Überprüfung nehme ich häufig ein markup-command, hier fromproperty, kopiere es in mein file, benenne es neu, wende es mit dem neuen Namen an und laß mir diverse Dinge anzeigen:

\version "2.19.42"

tocAct =
#(define-music-function (text) (markup?)
   (add-toc-item! 'tocActMarkup text))

#(define-markup-command (my-fromproperty layout props symbol)
  (symbol?)
  (let ((m (chain-assoc-get symbol props)))
 
;(pretty-print props)
;(display-scheme-music (ly:module->alist (ly:output-def-scope layout)))
(display (ly:output-def-lookup layout 'label-page-table))
    (if (markup? m)
        ;; prevent infinite loops by clearing the interpreted property:
        (interpret-markup layout (cons (list (cons symbol `(,property-recursive-markup ,symbol))) props) m)
        empty-stencil)))

\paper {
  evenFooterMarkup = \markup {
    \fill-line {
      \null \my-fromproperty #'toc:text
      \null
    }
  }
  oddFooterMarkup = \markup {
    \fill-line {
      \null \my-fromproperty #'toc:text
      \null
    }
  }
}

\tocAct \markup "Kirchenlieder"

\new Staff { \repeat unfold 3 { c'1 \pageBreak } }

Die Daten sind nicht da!

Aber...
Du könntest ein header-field verwenden:

\version "2.19.42"

\paper {
  evenFooterMarkup = \markup {
    \fill-line {
      \null \fromproperty #'header:section
      \null
    }
  }
  oddFooterMarkup = \markup {
    \fill-line {
      \null \fromproperty #'header:section
      \null
    }
  }
}

\bookpart {
  \header { section = "Kirchenlieder" }
  \new Staff { \repeat unfold 3 { c'1 \pageBreak } }
}
\bookpart {
  \header { section = "Trinklieder" }
  \new Staff { \repeat unfold 3 { c'1 \pageBreak } }
}



HTH,
  Harm
Titel: Re: Kapitelüberschrift in Fußzeilen
Beitrag von: Manuela am Dienstag, 22. November 2016, 06:15
Danke Harm.

Ich bin deswegen im Kreis gerannt.

Leider kann ich meine Scores nicht in bookparts einsperren (wegen der Variablendefinitionen), mal sehen, ob ich es so hinkriege.
Titel: Re: Kapitelüberschrift in Fußzeilen
Beitrag von: Manuela am Mittwoch, 23. November 2016, 15:29
Wie ich gedacht hatte, header wirkt sich auf das ganze Dokument aus, daher enthalten alle Fußzeilen den gleichent Text.

Bis mir etwas anderes einfällt, bleiben die Fußzeilen auf den linken Seiten halt leer.
Titel: Re: Kapitelüberschrift in Fußzeilen
Beitrag von: harm6 am Mittwoch, 23. November 2016, 22:46
Zitat
Wie ich gedacht hatte, header wirkt sich auf das ganze Dokument aus, daher enthalten alle Fußzeilen den gleichent Text.
Natürlich, deshalb die bookparts. ;)
Wenn Du die nicht haben willst oder kannst, könntest Du versuchen die page-header/footer-Definitionen auszuweiten.
Das LSR-snippet zu page-range könnte man vielleicht verändern, um auf ausgewählten Seiten Text zu drucken.
Außerdem gibt es ja on-page (->titling-init.ly)

Ich kann das momentan aber nicht alles selbst kodieren, bin sehr beschäftigt:
http://lilypond.1069038.n5.nabble.com/guile-2-0-and-debian-tt196306.html (http://lilypond.1069038.n5.nabble.com/guile-2-0-and-debian-tt196306.html)
und hab nur dann Zeit wenn mein computer gerade dabei ist einen neuen build/regtest-comparison/make-doc/etc zu berechnen

Gruß,
  Harm
Titel: Re: Kapitelüberschrift in Fußzeilen
Beitrag von: Manuela am Donnerstag, 24. November 2016, 09:32
Danke Harm für deine Bemühungen  :)

Wenn ich früher gewusst hätte, dass man Variablendefinitionen nirgends inkludieren kann, wo sie zwischen geschwungenen Klammern stehen, hätte ich meinen Code anders organisiert. Mir war klar, dass ich in einen Musikausdruck keine Variablendefinitionen einfügen kann, aber dass das auch für book/bookpart gilt, war dann doch einigermaßen überraschend.

Wie gesagt, diese Fußzeilen mit den Kapitelüberschriften wären "nice-to-have" gewesen, aber momentan sind für mich andere Themen vordringlicher, daher möchte ich meine Zeit momentan anderswo investieren. Außer es drängt sich plötzlich eine einfach umzusetzende Lösung auf  ;)