lilypond-user
[Top][All Lists]
Advanced

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

Re: Make TOC entries available to LaTeX


From: Federico Bruni
Subject: Re: Make TOC entries available to LaTeX
Date: Fri, 25 May 2018 07:48:58 +0200



Il giorno gio 24 mag 2018 alle 9:09, Urs Liska <address@hidden> ha scritto:

This is the function as it ended up in my project files:

% Print table of contents entries to <basename>.toc
% Based on
% http://lilypond.org/doc/v2.19/Documentation/usage-big-page#sharing-the-table-of-contents
% Pointed to by "Thomas Morley"
#(define (oly:create-toc-file layout pages)
   (let*
    ((label-table (ly:output-def-lookup layout 'label-page-table))
     (toc-items (toc-items)))
    (if (not (null? label-table))
        (let*
( ;; We need a page-offset so entries are offset to begin with p.1
           ;; (for use in \includepdf)
(page-offset (- (ly:output-def-lookup layout 'first-page-number) 1))
          (format-line
           (lambda (toc-item)
             (let*
              ((label (car toc-item))
               (text  (caddr toc-item))
               (page (- (assoc-ref label-table label) page-offset)))
              (format #f "~a,subsection,2,{~a},~a" page text label))))
          (formatted-toc-items (map format-line toc-items))
          (whole-string (string-join formatted-toc-items ",\n"))
          (output-name (ly:parser-output-name))
          (outfilename (format "~a.toc" output-name))
          (outfile (open-output-file outfilename)))
         (if (output-port? outfile)
             (display whole-string outfile)
(ly:warning (_ "Unable to open output file ~a for the TOC information") outfilename))
         (close-output-port outfile)))))

page-offset calculates the offset of the first-page-number versus '1' and subtracts that from the actual page number of the TOC entry. That means when your score starts on page 16 a TOC item on the third page of the score will still get a TOC entry with page 3, and \includepdf will generate the appropriate TOC entry in the enclosing LaTeX document.

I get an error:

Drawing systems....brani.ly:35:23: In procedure - in expression (- (assoc-ref label-table label) page-offset):
brani.ly:35:23: Wrong type argument in position 1: #f

The offending line is:

(page (- (assoc-ref label-table label) page-offset)))






reply via email to

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