[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.
filtered-index.ly
Description: Text Data
signature.asc
Description: This is a digitally signed message part.