Autor Thema: römische Seitenziffern vs arabische Zahlen im Inhaltsverzeichnis  (Gelesen 1886 mal)

harm6

  • Gast
römische Seitenziffern vs arabische Zahlen im Inhaltsverzeichnis
« am: Dienstag, 27. September 2016, 01:26 »
Als Fortsetzung von
https://archiv.lilypondforum.de/index.php?topic=863.msg13360#msg13360

Es geht darum wie man im (mehrseitigen) bookpart des Inhaltsverzeichnis die Seiten mit römischen Ziffern zählen kann, aber wie im eigentlichen Inhaltsverzeichnis auf die späteren arabisch gezählten Seiten verwiesen werden kann.

Ich hab noch keine wirklich nette Lösung aber einen ersten Schnellschuß:

\version "2.19.48"

#(define-markup-command (page-ref layout props label gauge default)
  (symbol? markup? markup?)
  #:category other
  "
@cindex referencing page numbers in text

Reference to a page number.  @var{label} is the label set on the referenced
page (using the @code{\\label} command), @var{gauge} a markup used to estimate
the maximum width of the page number, and @var{default} the value to display
when @var{label} is not found.

(If the current book or bookpart is set to use roman numerals for page numbers,
the reference will be formatted accordingly -- in which case the @var{gauge}'s
width may require additional tweaking.)"
  (let* ((gauge-stencil (interpret-markup layout props gauge))
         (x-ext (ly:stencil-extent gauge-stencil X))
         (y-ext (ly:stencil-extent gauge-stencil Y)))
   (ly:stencil-add
    (make-transparent-box-stencil x-ext y-ext))
    (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))
                       (number-type 'arabic) ;(ly:output-def-lookup layout 'page-number-type))
                       (page-markup (if page-number
                                        (number-format number-type page-number)
                                        default))
                       (page-stencil (interpret-markup layout props page-markup))
                       (gap (- (interval-length x-ext)
                               (interval-length (ly:stencil-extent page-stencil X)))))
                  (interpret-markup layout props
                                    (markup #:hspace gap page-markup))))))
     x-ext
     y-ext)))
     
\paper { print-first-page-number = ##t }

\bookpart {
  \paper {
    ragged-last-bottom = ##t
    page-number-type = #'roman-lower
  }
  \markuplist \table-of-contents
  \pageBreak
  \markuplist \table-of-contents
}


\score {
  {
    \tocItem "foo"
    c'1
  }
}

Gruß,
  Harm

Manuela

  • Gast
Re: römische Seitenziffern vs arabische Zahlen im Inhaltsverzeichnis
« Antwort #1 am: Donnerstag, 29. September 2016, 09:25 »
Danke Harm, das klappt super (ich habe allerdings noch nicht durchblickt wieso  ;) ),
ich habe es jetzt in meine Liedersammlung eingebaut.