lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Alphabetised table of contents?


From: Valentin Petzel
Subject: Re: Alphabetised table of contents?
Date: Fri, 23 Sep 2022 10:58:11 +0200

Hej Brent!

Creating multiple indices is not a big thing. The problem is that the code for 
the toc has to be executed at initialisation (see toc-init.ly), so we cannot 
simply add more kinds of toc. But we can easily extend this toc code to allow 
for filtering to specific entries.

The appended file makes use of the optional label toc items might have to 
filter 
the toc.
You might want to modify the formatting a bit though.

Also one thing to keep in mind: Ordering is done lexicographically, so for 
example "Z" would come before "a". You might want to use a slightly more 
natural ordering that handles things like cases or typography before the first 
word-letter (e.g. "Zadok the priest" would come before "”Alas!“, he spoke, 
”this does not quite cut it!“)

Cheers,
Valentin

Am Freitag, 23. September 2022, 08:11:20 CEST schrieb Brent Annable:
> Thanks for all the tips everyone! I will look into these snippets.
> 
> I do actually need to create multiple indices (alphabetical by first line
> and by tune name0, so maybe my dream won't be possible for the time being,
> but it's good to know this functionality exists.
> 
> Brent.
> 
> On Thu, 22 Sept 2022 at 04:49, Jean Abou Samra <jean@abou-samra.fr> wrote:
> > Le 21/09/2022 à 20:39, Valentin Petzel a écrit :
> > > Hello Jean,
> > > 
> > > at least for me this code fails to change the order of the toc. The
> > 
> > reason for
> > 
> > > this is that toc-markup does not in fact contain the markup, but the
> > 
> > symbol
> > 
> > > under which the formatting markup is saved in layout.
> > > 
> > > So I suppose you rather want to use the text property:
> > > 
> > > (sorted-toc-alist
> > > 
> > >             (sort toc-alist
> > >             
> > >                   ;; Could use comparator-from-key in 2.23
> > >                   (lambda (item1 item2)
> > >                   
> > >                     (let ((mkup1 (assoc-get 'text (cdr item1)))
> > >                     
> > >                           (mkup2 (assoc-get 'text (cdr item2))))
> > >                        
> > >                        (string<?
> > >                        (markup->string mkup1)
> > >                        (markup->string mkup2))))))
> > 
> > Whoops, yes. Not sure how I didn't see that they weren't sorted.
> > Maybe I did a test and sent the wrong version? Weird. Anyway,
> > thanks for the correction.

Attachment: filtered-index.ly
Description: Text Data

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]