From a6bb9af34fc611f264533becc578285ea678033e Mon Sep 17 00:00:00 2001 From: Thomas Morley Date: Sun, 12 Jul 2015 18:18:02 +0200 Subject: [PATCH] Table Of Contents crash with negative first-page-number Issue 4494 Let \with-link point to the physical page-number --- scm/define-markup-commands.scm | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 5a08facce2..d7c0f22e46 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -529,18 +529,24 @@ only works in the PDF backend. (x-ext (ly:stencil-extent arg-stencil X)) (y-ext (ly:stencil-extent arg-stencil Y))) (ly:stencil-add - (ly:make-stencil - `(delay-stencil-evaluation - ,(delay (let* ((table (ly:output-def-lookup layout 'label-page-table)) - (page-number (if (list? table) - (assoc-get label table) - #f))) - (list 'page-link page-number - `(quote ,x-ext) `(quote ,y-ext))))) - x-ext - y-ext) - arg-stencil))) - + (ly:make-stencil + `(delay-stencil-evaluation + ,(delay (let* ((table (ly:output-def-lookup layout 'label-page-table)) + (table-page-number + (if (list? table) + (assoc-get label table) + #f)) + (first-page-number + (ly:output-def-lookup layout 'first-page-number)) + (current-page-number + (if table-page-number + (1+ (- table-page-number first-page-number)) + #f))) + (list 'page-link current-page-number + `(quote ,x-ext) `(quote ,y-ext))))) + x-ext + y-ext) + arg-stencil))) (define-markup-command (beam layout props width slope thickness) (number? number? number?) -- 2.39.2