Re: TOC entries listed in order of \include

2022-09-28 Thread Brent Annable
Valentin,

You're quite right. Sorry about my previous response, I read it after a
long and frustrating night of typesetting with a deadline close at hand,
and was just frustrated that there was no ready-made solution that my
non-programmer mind could instantly grasp.

But I got a good night's sleep, 'manned-up,' and put your solution into
practice, which - of course - worked just fine. Thank you.

Brent.

On Sun, 25 Sept 2022 at 17:54, Valentin Petzel  wrote:

> Hi Brent,
>
> this is exactly what my suggestion does. There are of course multiple ways
> of achieving things. You could give the toc Items labels and then order
> them by these labels.
>
> But my suggestion simply delays interpretation of \tocItem to the point
> where you need it, by using a function (code is executed while calling the
> function) instead of a macro (code is executed while parsing).
>
> Cheers,
> Valentin
>
> 24.09.2022 18:52:12 Brent Annable :
>
> Hey Valentin,
>
> Thanks so much for the reply, but I have to say I don't understand your
> suggestion at all. Isn't there a way for me to put in the tocItems so that
> when I move the scores in the master file, they all just reorder as they
> should?
>
> Brent.
>
> On Sat, 24 Sep 2022, 11:41 pm Valentin Petzel, 
> wrote:
>
>> Hi Brent,
>>
>> you could simply delay the execution of your code until the point where
>> you need it like this:
>>
>> bpI =
>> #(define-scheme-function (parser location) ()
>> #{
>> \bookpart {
>> \tocItem "toc1" "a"
>> { c' }
>> }
>> #})
>>
>> bpII =
>> #(define-scheme-function (parser location) ()
>> #{
>> \bookpart {
>> \tocItem "toc2" "b"
>> { d' }
>> }
>> #})
>>
>> \markuplist \table-of-contents
>>
>> $(bpII)
>> $(bpI)
>>
>> (Sorry for the mess, I'm writing from my phone.)
>>
>> Cheers,
>> Valentin
>>
>> 24.09.2022 13:36:04 Brent Annable :
>>
>> Hi all,
>>
>> I'm creating a book of music using a master file where I call on
>> \bookpart variables from lots of different files, which are included in the
>> master file using the \include function. I have a list of included files in
>> a separate file, and the master just includes that one file.
>>
>> I want to create a table of contents at the beginning of the book, so I
>> need to add a \tocItem to each score. The only place I have found where
>> that works is inside the \bookpart variable in each individual file, before
>> the score. So in my master file, each score entry looks like this:
>>
>> \bookpart { \myBookPart }
>>
>> And the variables in the individual files look like this:
>>
>> myBookPart = \bookpart {  \tocItem \markup "Name of song"
>> {c1 c1 c1 c1}
>> }
>>
>> I'm currently putting all the separate scores into the master file, and I
>> plan to shuffle them around later to get the ordering right.
>>
>> I've noticed that when the table of contents is generated, the items are
>> always listed *in the order in which the files are \included*, not the
>> order in which the scores actually appear in the book. So even though the
>> page numbers are correct, the TOC lists the songs in the order in which I
>> include the files in the \include file. When I start shifting things around
>> later in the master, I really don't want to have to re-order the \include
>> list as well, that will be double the work.
>>
>> I've attached some files that replicate my problem. One thing I noticed
>> that the master wouldn't compile at all when the version number was set to
>> 2.22.1, it only worked when I set it to 2.19.65, the version number in all
>> the files I'm using. Does that mean I'm using incorrect syntax for the TOC?
>>
>> Otherwise, is there anywhere else I can put the \tocItem command so that
>> the items are automatically re-ordered when I switch them around in the
>> master file?
>>
>> Sorry for the voluminous email and thanks for any help,
>>
>> Brent.
>>
>>
>>


Re: TOC entries listed in order of \include

2022-09-25 Thread Valentin Petzel
Hi Brent,

this is exactly what my suggestion does. There are of course multiple ways of 
achieving things. You could give the toc Items labels and then order them by 
these labels.

But my suggestion simply delays interpretation of \tocItem to the point where 
you need it, by using a function (code is executed while calling the function) 
instead of a macro (code is executed while parsing).

Cheers,
Valentin

24.09.2022 18:52:12 Brent Annable :

> Hey Valentin,
> 
> Thanks so much for the reply, but I have to say I don't understand your 
> suggestion at all. Isn't there a way for me to put in the tocItems so that 
> when I move the scores in the master file, they all just reorder as they 
> should?
> 
> Brent.
> 
> On Sat, 24 Sep 2022, 11:41 pm Valentin Petzel,  wrote:
>> Hi Brent,
>> 
>> you could simply delay the execution of your code until the point where you 
>> need it like this:
>> 
>> bpI =
>> #(define-scheme-function (parser location) ()
>>     #{
>>     \bookpart {
>>     \tocItem "toc1" "a"
>>     { c' }
>>     }
>>     #})
>> 
>> bpII =
>> #(define-scheme-function (parser location) ()
>>     #{
>>     \bookpart {
>>     \tocItem "toc2" "b"
>>     { d' }
>>     }
>>     #})
>> 
>> \markuplist \table-of-contents
>> 
>> $(bpII)
>> $(bpI)
>> 
>> (Sorry for the mess, I'm writing from my phone.)
>> 
>> Cheers,
>> Valentin
>> 
>> 24.09.2022 13:36:04 Brent Annable :
>> 
>>> Hi all,
>>> 
>>> I'm creating a book of music using a master file where I call on \bookpart 
>>> variables from lots of different files, which are included in the master 
>>> file using the \include function. I have a list of included files in a 
>>> separate file, and the master just includes that one file.
>>> 
>>> I want to create a table of contents at the beginning of the book, so I 
>>> need to add a \tocItem to each score. The only place I have found where 
>>> that works is inside the \bookpart variable in each individual file, before 
>>> the score. So in my master file, each score entry looks like this:
>>> 
>>> \bookpart { \myBookPart }
>>> 
>>> And the variables in the individual files look like this:
>>> 
>>> myBookPart = \bookpart {  \tocItem \markup "Name of song"
>>> {c1 c1 c1 c1}
>>> }
>>> 
>>> I'm currently putting all the separate scores into the master file, and I 
>>> plan to shuffle them around later to get the ordering right.
>>> 
>>> I've noticed that when the table of contents is generated, the items are 
>>> always listed *in the order in which the files are \included*, not the 
>>> order in which the scores actually appear in the book. So even though the 
>>> page numbers are correct, the TOC lists the songs in the order in which I 
>>> include the files in the \include file. When I start shifting things around 
>>> later in the master, I really don't want to have to re-order the \include 
>>> list as well, that will be double the work.
>>> 
>>> I've attached some files that replicate my problem. One thing I noticed 
>>> that the master wouldn't compile at all when the version number was set to 
>>> 2.22.1, it only worked when I set it to 2.19.65, the version number in all 
>>> the files I'm using. Does that mean I'm using incorrect syntax for the TOC?
>>> 
>>> Otherwise, is there anywhere else I can put the \tocItem command so that 
>>> the items are automatically re-ordered when I switch them around in the 
>>> master file?
>>> 
>>> Sorry for the voluminous email and thanks for any help,
>>> 
>>> Brent.
>>> 
>>> 


Re: TOC entries listed in order of \include

2022-09-24 Thread Valentin Petzel
Hi Brent,

you could simply delay the execution of your code until the point where you 
need it like this:

bpI =
#(define-scheme-function (parser location) ()
    #{
    \bookpart {
    \tocItem "toc1" "a"
    { c' }
    }
    #})

bpII =
#(define-scheme-function (parser location) ()
    #{
    \bookpart {
    \tocItem "toc2" "b"
    { d' }
    }
    #})

\markuplist \table-of-contents

$(bpII)
$(bpI)

(Sorry for the mess, I'm writing from my phone.)

Cheers,
Valentin

24.09.2022 13:36:04 Brent Annable :

> Hi all,
> 
> I'm creating a book of music using a master file where I call on \bookpart 
> variables from lots of different files, which are included in the master file 
> using the \include function. I have a list of included files in a separate 
> file, and the master just includes that one file.
> 
> I want to create a table of contents at the beginning of the book, so I need 
> to add a \tocItem to each score. The only place I have found where that works 
> is inside the \bookpart variable in each individual file, before the score. 
> So in my master file, each score entry looks like this:
> 
> \bookpart { \myBookPart }
> 
> And the variables in the individual files look like this:
> 
> myBookPart = \bookpart {  \tocItem \markup "Name of song"
> {c1 c1 c1 c1}
> }
> 
> I'm currently putting all the separate scores into the master file, and I 
> plan to shuffle them around later to get the ordering right.
> 
> I've noticed that when the table of contents is generated, the items are 
> always listed *in the order in which the files are \included*, not the order 
> in which the scores actually appear in the book. So even though the page 
> numbers are correct, the TOC lists the songs in the order in which I include 
> the files in the \include file. When I start shifting things around later in 
> the master, I really don't want to have to re-order the \include list as 
> well, that will be double the work.
> 
> I've attached some files that replicate my problem. One thing I noticed that 
> the master wouldn't compile at all when the version number was set to 2.22.1, 
> it only worked when I set it to 2.19.65, the version number in all the files 
> I'm using. Does that mean I'm using incorrect syntax for the TOC?
> 
> Otherwise, is there anywhere else I can put the \tocItem command so that the 
> items are automatically re-ordered when I switch them around in the master 
> file?
> 
> Sorry for the voluminous email and thanks for any help,
> 
> Brent.
> 
> 


TOC entries listed in order of \include

2022-09-24 Thread Brent Annable
Hi all,

I'm creating a book of music using a master file where I call on \bookpart
variables from lots of different files, which are included in the master
file using the \include function. I have a list of included files in a
separate file, and the master just includes that one file.

I want to create a table of contents at the beginning of the book, so I
need to add a \tocItem to each score. The only place I have found where
that works is inside the \bookpart variable in each individual file, before
the score. So in my master file, each score entry looks like this:

\bookpart { \myBookPart }

And the variables in the individual files look like this:

myBookPart = \bookpart {  \tocItem \markup "Name of song"
{c1 c1 c1 c1}
}

I'm currently putting all the separate scores into the master file, and I
plan to shuffle them around later to get the ordering right.

I've noticed that when the table of contents is generated, the items are
always listed *in the order in which the files are \included*, not the
order in which the scores actually appear in the book. So even though the
page numbers are correct, the TOC lists the songs in the order in which I
include the files in the \include file. When I start shifting things around
later in the master, I really don't want to have to re-order the \include
list as well, that will be double the work.

I've attached some files that replicate my problem. One thing I noticed
that the master wouldn't compile at all when the version number was set to
2.22.1, it only worked when I set it to 2.19.65, the version number in all
the files I'm using. Does that mean I'm using incorrect syntax for the TOC?

Otherwise, is there anywhere else I can put the \tocItem command so that
the items are automatically re-ordered when I switch them around in the
master file?

Sorry for the voluminous email and thanks for any help,

Brent.
\version "2.19.65"


\include "SongThree.ly"
\include "SongTwo.ly"
\include "SongOne.ly"


\book {
  
\bookpart {\markuplist \table-of-contents}
  \pageBreak
  
\bookpart { \scoreOne }
\bookpart { \scoreTwo }
\bookpart { \scoreThree }
}\version "2.19.65"

scoreTwo =  \bookpart { \tocItem \markup "Song number two"
 \score { \relative c' {e1 e e e} }
 
 
}
 \version "2.19.65"

scoreThree =  \bookpart { \tocItem \markup "Song number three"
 \score { \relative c'' {g1 g g g} }
 
 
}
 \version "2.19.65"

scoreOne =  \bookpart { \tocItem \markup "Song number one"
 \score { \relative c' {c1 c c c} }
}



master.pdf
Description: Adobe PDF document