diff --git a/toc_include.ly b/toc_include.ly index 9ded83e..fee4010 100644 --- a/toc_include.ly +++ b/toc_include.ly @@ -171,21 +171,6 @@ (cdr revlist))))))))) \paper { - indexTitleMarkup = \markup \column { - \fontsize #5 \sans \bold \fill-line { \null \fromproperty #'index:text \null } - \vspace #.5 - \justify { - Da die allermeisten Lieder unter verschiedenen Namen bekannt sind, - wollen wir euch ein Inhaltsverzeichnis an die Hand geben, mit dem ihr hoffentlich auf verschiedene Arten fündig werdet. - Die Liedtitel, die auch die Überschriften sind, findet ihr normal gedruckt. - Alle weiteren Alternativtitel oder Liedanfänge sind zur Unterscheidung kursiv gedruckt. - } - \vspace #1 - } - categoryTitleMarkup = \markup \column { - \fontsize #5 \sans \bold \fill-line { \null \fromproperty #'index:text \null } - \vspace #1 - } indexItemMarkup = \markup \with-link-symbol-ref #'index:label { \index-item-with-pattern } @@ -199,29 +184,7 @@ } } -%{ -#(define-markup-list-command (index layout props) () - ( _i "Outputs an alphabetical sorted index, using the paper - variable @code{indexTitleMarkup} for its title, then the list of - lines built using the @code{indexItem} music function - Usage: @code{\\markuplines \\index}" ) - (cons (interpret-markup layout (cons (list (cons 'index:text "Inhaltsverzeichnis")) props) - (ly:output-def-lookup layout 'indexTitleMarkup)) - (space-lines (chain-assoc-get 'baseline-skip props) - (map (lambda (index-item) - (let ((label (car index-item)) - (index-markup (cadr index-item)) - (text (caddr index-item))) - (interpret-markup - layout - (cons (list (cons 'index:page - (markup #:page-ref label "XXX" "?")) - (cons 'index:text text) - (cons 'index:label label)) - props) - (ly:output-def-lookup layout index-markup)))) - (index-items))))) -%} + #(define (prepare-item-markup items layout) (map (lambda (index-item) (let ((label (car index-item)) @@ -233,33 +196,18 @@ (ly:output-def-lookup layout index-markup)))) (items))) - -#(define-markup-list-command (colindex layout props) () - ( _i "Outputs an alphabetical sorted index, using the paper - variable @code{indexTitleMarkup} for its title, then the list of - lines built using the @code{indexItem} music function - Usage: @code{\\markuplines \\index}" ) - (let ((title (interpret-markup layout (cons (list (cons 'index:text "Inhaltsverzeichnis")) props) - (ly:output-def-lookup layout 'indexTitleMarkup)))) - (cons title - (interpret-markup-list layout props - (make-columnlayout-markup-list songTocColumns 2 - (let ((h (- (ly:output-def-lookup layout 'paper-height) 12))) - (cons (- h (interval-length (ly:stencil-extent title Y))) h)) - (prepare-item-markup index-items layout)))))) - -#(define-markup-list-command (categoryindex layout props) () - ( _i "Outputs categorized song titles" ) - (if (null-list? (category-index-items)) - (list) - (let ((title (interpret-markup layout (cons (list (cons 'index:text "Inhaltsverzeichnis nach Kategorien")) props) - (ly:output-def-lookup layout 'categoryTitleMarkup)))) - (cons title - (interpret-markup-list layout props - (make-columnlayout-markup-list songTocColumns 2 - (let ((h (- (ly:output-def-lookup layout 'paper-height) 12))) - (cons (- h (interval-length (ly:stencil-extent title Y))) h)) - (prepare-item-markup category-index-items layout))))))) +#(define-markup-list-command (index-in-columns-with-title layout props index-type title-markup) (symbol? markup?) + ( _i "Outputs index alphabetical sorted or in categories" ) + (let ((items (case index-type + ((alphabetical) index-items) + ((categories) category-index-items))) + (title (interpret-markup layout props title-markup))) + (cons title + (interpret-markup-list layout props + (make-columnlayout-markup-list songTocColumns 2 + (let ((h (- (ly:output-def-lookup layout 'paper-height) 12))) + (cons (- h (interval-length (ly:stencil-extent title Y))) h)) + (prepare-item-markup items layout)))))) indexItem = #(define-music-function (parser location sorttext text) (string? markup?) @@ -271,18 +219,6 @@ indexSection = "Add a section line to the alphabetical index, using @code{indexSectionMarkup} paper variable markup. This can be used to divide the alphabetical index into different sections, for example one section for each first letter." (add-index-item! 'indexSectionMarkup text sorttext)) -%{ -addTitleToTOC = #(define-music-function (parser location title) (string?) - #{ - \indexItem #title \markup { #title } - #}) - -addAltTitleToTOC = #(define-music-function (parser location title) (string?) - #{ - \indexItem #title \markup { \italic #title } - #}) -%} - #(define (extract-var-from-module module sym) (let ((variableref (assoc-ref module sym))) (if variableref (variable-ref variableref) #f))