Autor Thema: Neue Einträge definieren für TableOfContents  (Gelesen 1389 mal)

Mat

  • Member
Neue Einträge definieren für TableOfContents
« am: Montag, 25. Februar 2013, 21:44 »
Hallo zusammen,

möchte gern mein TOC strukturieren und Zwischenüberschriften einfügen.
Dazu gibt es im Handbuch auch ein Bsp:

\paper {
  tocActMarkup = \markup \large \column {\hspace #1  \fill-line { \null \italic \fromproperty #'toc:text \null }   \hspace #1 }
}
tocAct =  #(define-music-function (parser location text) (markup?)  (add-toc-item! 'tocActMarkup text)  )

Ich habe das eingebaut, aus "Act" habe ich "Part" gemacht, es funktioniert aber nicht.

Mein Inhaltsverzeichnis ist in einem eigenen Bookpart, welches sich in einer eigenen Datei verbirgt (definition_toc.ly), die dann über include eingebunden ist (siehe unten).

Wenn ich die tocPart-Definition unter den "paper"-Teil hänge - wie im Handbuch -, dann sind die gepunkteten Linien weg.

Das steht im Log-File:
definition_toc.ly:32:8: Fehler: syntax error, unexpected STRING   
        tocPart = Interpretation der Musik...[8][16][24][32][40][48][56][64][72][80][80]
bzw bei der Verwendung von tocPart im Book:
SongBook.ly:30:0: Fehler: Ungültige Fluchtsequenz: »\tocPart«
\tocPart  \markup { Part I }
SongBook.ly:30:0: Fehler: syntax error, unexpected STRING
\tocPart  \markup { Part I }

Dann habe ich mir überlegt, die tocPart-Definition wie unten vor den "paper"-Teil zu hängen.
Dann werden zwar die gepunkteten Linien gedruckt, die Fehler bleiben.

Leider habe ich im Internet keine weiteren Informationen dazu gefunden. Hat jemand Erfahrung mit so etwas ?
Wer kann mir sagen, was ich falsch mache ?

Vielen Dank für Eure Bemühungen
Liebe Grüße, Matthias

Hier der Inhalt meiner definition_toc.ly-Datei:

\bookpart {   

   tocPart =
   #(define-music-function (parser location text) (markup?)
      (add-toc-item! 'tocPartMarkup text))

   \paper {

     two-sided = ##t
     inner-margin = 30\mm
     outer-margin = 30\mm
     top-margin = 20\mm

     tocItemMarkup = \tocItemWithDotsMarkup

       tocPartMarkup = \markup \large \column {
       \hspace #1
       \fill-line { \null \italic \fromproperty #'toc:text \null }
       \hspace #1
     }

   }

   \markuplist \table-of-contents
}

Be-3

  • Member
Re: Neue Einträge definieren für TableOfContents
« Antwort #1 am: Montag, 25. Februar 2013, 22:26 »
Hallo Matthias,

die Definition von \tocPart darf nicht innerhalb von \bookpart { ... } stehen, sondern davor, sozusagen im "globalen" Bereich.

Also

tocPart =
   #(define-music-function (parser location text) (markup?)
      (add-toc-item! 'tocPartMarkup text))

\bookpart {   

  [...]

}

Viele Grüße
Torsten

Mat

  • Member
Re: Neue Einträge definieren für TableOfContents
« Antwort #2 am: Montag, 25. Februar 2013, 22:42 »
Hallo Torsten,

das klingt irgendwie einleuchtend... :)

Das sind dann so Momente, in denen man sich fragt, warum man da nicht selber drauf gekommen ist oder das nicht mal ausprobiert hat....

Na ja, vielen Dank auf jeden Fall.
Klappt prima !