Inhaltsverzeichniserzeugung refactored
This commit is contained in:
parent
55db0e0e31
commit
c26fddd963
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user