X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Ftoc-init.ly;h=ad7c64b72c5e421876ed74796e6a9ca37ba57921;hb=2c894ac3f60274f9fdd0bf2593cfb856c5c7b13f;hp=32eeb462f8e77e0f3893058708334d68ddafc2b9;hpb=1a4ee6dc75714f53e4723552390dfec8f0ad7d04;p=lilypond.git diff --git a/ly/toc-init.ly b/ly/toc-init.ly index 32eeb462f8..ad7c64b72c 100644 --- a/ly/toc-init.ly +++ b/ly/toc-init.ly @@ -1,4 +1,4 @@ -\version "2.16.0" +\version "2.19.22" %% defined later, in a closure #(define-public (add-toc-item! markup-symbol text) @@ -9,18 +9,18 @@ #(let ((toc-item-list (list))) (call-after-session (lambda () (set! toc-item-list '()))) (set! add-toc-item! - (lambda (markup-symbol text) - (let ((label (gensym "toc"))) - (set! toc-item-list - (cons (list label markup-symbol text) - toc-item-list)) - (make-music 'EventChord - 'page-marker #t - 'page-label label - 'elements (list (make-music 'LabelEvent - 'page-label label)))))) + (lambda (markup-symbol text) + (let ((label (gensym "toc"))) + (set! toc-item-list + (cons (list label markup-symbol text) + toc-item-list)) + (make-music 'EventChord + 'page-marker #t + 'page-label label + 'elements (list (make-music 'LabelEvent + 'page-label label)))))) (set! toc-items (lambda () - (reverse toc-item-list)))) + (reverse toc-item-list)))) \paper { tocTitleMarkup = \markup \huge \column { @@ -36,29 +36,30 @@ tocItemWithDotsMarkup = \markup \fill-with-pattern #1 #RIGHT . \fromproperty #'toc:text \fromproperty #'toc:page #(define-markup-list-command (table-of-contents layout props) () + #:properties ((baseline-skip)) ( _i "Outputs the table of contents, using the paper variable @code{tocTitleMarkup} for its title, then the list of lines built using the @code{tocItem} music function Usage: @code{\\markuplist \\table-of-contents}" ) (cons (interpret-markup layout props - (ly:output-def-lookup layout 'tocTitleMarkup)) - (space-lines (chain-assoc-get 'baseline-skip props) - (map (lambda (toc-item) - (let ((label (car toc-item)) - (toc-markup (cadr toc-item)) - (text (caddr toc-item))) - (interpret-markup - layout - (cons (list (cons 'toc:page - (markup #:with-link label #:page-ref label "XXX" "?")) - (cons 'toc:text (markup #:with-link label text)) - (cons 'toc:label label)) - props) - (ly:output-def-lookup layout toc-markup)))) - (toc-items))))) + (ly:output-def-lookup layout 'tocTitleMarkup)) + (space-lines baseline-skip + (map (lambda (toc-item) + (let ((label (car toc-item)) + (toc-markup (cadr toc-item)) + (text (caddr toc-item))) + (interpret-markup + layout + (cons (list (cons 'toc:page + (markup #:with-link label #:page-ref label "XXX" "?")) + (cons 'toc:text (markup #:with-link label text)) + (cons 'toc:label label)) + props) + (ly:output-def-lookup layout toc-markup)))) + (toc-items))))) -tocItem = -#(define-music-function (parser location text) (markup?) +tocItem = +#(define-music-function (text) (markup?) "Add a line to the table of content, using the @code{tocItemMarkup} paper variable markup" (add-toc-item! 'tocItemMarkup text))