lilypond-user
[Top][All Lists]
Advanced

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

Re: Move Page Numbers?


From: Thomas Morley
Subject: Re: Move Page Numbers?
Date: Thu, 6 Feb 2014 01:56:09 +0100

2014-02-05 PMA <address@hidden>:
> Hi List.
>
> Most of my current score's page numbers need
> shifting a little, both vertically and horizontally.
>
> Can "\override ... #'extra-offset = #'( ...  .  ...)"
> or something similar be aimed at PageNumber
> (instead of, say, DynamicText) to shift them?
>
> I could, I know, force the issue, page-numbering
> via markup text from a lucky note on each page.
> But it'd be nice to avoid such a kludge.
>
> Regards,
> Pete



Hi,

how about:

\version "2.18.0"

%% After an idea by Torsten Haemmerle
%% http://www.lilypondforum.de/index.php?topic=1393.msg7673#msg7673

#(set-default-paper-size "a6")

%% Define your generell settings for odd/even page-numbers
%% Exceptions for certain pages are possible, too.
#(define folio-offset '(
    ;; general
    (odd . (-2 . 1))
    (even . (-2 . 1))
    ;; exceptions for page 3 and 4
    (3 . (-1 . -1))
    (4 . (-3 . -4))
))

#(define-markup-command (place-folio layout props folio) (markup?)
   (let* ((page-number (chain-assoc-get 'page:page-number props))
          (general-off
            (if (odd? page-number)
                (assoc-get 'odd folio-offset '(0 . 0))
                (assoc-get 'even folio-offset '(0 . 0))))
          (page-off (assoc-get page-number folio-offset '(0 . 0)))
          (offs
            (cons
              (+ (car general-off) (car page-off))
              (+ (cdr general-off) (cdr page-off))))
          (m (interpret-markup layout props folio))
          (x-ext (ly:stencil-extent m X))
          (y-ext (ly:stencil-extent m Y)))

   (interpret-markup layout props
     (markup
        ;#:box   ;; uncomment for testing
        #:with-dimensions x-ext y-ext
        #:line (#:translate offs folio)))))

\paper {
  indent = 0
  ragged-right = ##f
  oddHeaderMarkup =
  \markup \fill-line {
    \place-folio \fromproperty #'page:page-number-string \null
  }
  evenHeaderMarkup =
  \markup \fill-line {
    \null \place-folio \fromproperty #'page:page-number-string
  }
}

{ \repeat unfold 10 { s1 \pageBreak } }


HTH,
  Harm



reply via email to

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