lilypond-user
[Top][All Lists]
Advanced

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

Re: Roman page numbers.


From: Hwaen Ch'uqi
Subject: Re: Roman page numbers.
Date: Wed, 22 Aug 2012 10:44:14 -0400

On 8/18/12, David Nalesnik <address@hidden> wrote:
> Hello,
>
> On Thu, Aug 16, 2012 at 5:59 AM, Hwaen Ch'uqi <address@hidden> wrote:
>> Greetings All,
>>           There must surely be an easy answer to this, though I have yet
>> to
>> find it. How does one produce page numbers in Roman numerals? And how
>> does one then revert to Arabic numerals?
>
> If there's an easy answer to this, I must not have found it :)  In the
> example below, I've created a markup command which converts page
> numbers into Roman numerals, and added it to the default definitions
> of oddHeaderMarkup and evenHeaderMarkup.  The command takes an
> integer: above that value, page numbers will revert to Arabic
> numerals.  I've made the Roman numerals lowercase.
>
>> In a related question, will
>> the output from a generated Table of Contents display a mix of Roman
>> and Arabic page numbers?
>
> This won't affect the table of contents, and unfortunately, I don't
> have time right now to work on a solution :(
>
> HTH,
> David
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> \version "2.15.42"
>
> %%% roman numeral page numbers
>
> #(define-markup-command (roman-numeral-page-number layout props arg)
> (integer?)
>   (let ((page-number (chain-assoc-get 'page:page-number props -1)))
>     (interpret-markup layout props
>       (if (and (> page-number 0) ; only positive integers can be
> `romanized'
>                (<= page-number arg))
>           (format #f "~(address@hidden)" page-number)
>           (chain-assoc-get 'page:page-number-string props -1)))))
>
>
> \paper {
>   print-first-page-number = ##t
>   print-page-number = ##t
>   oddHeaderMarkup = \markup
>     \fill-line {
>       " "
>       \on-the-fly #not-first-page \fromproperty #'header:instrument
>       \on-the-fly #print-page-number-check-first \roman-numeral-page-number
> #4
>     }
>   evenHeaderMarkup = \markup
>     \fill-line {
>       \on-the-fly #print-page-number-check-first \roman-numeral-page-number
> #4
>       \on-the-fly #not-first-page \fromproperty #'header:instrument
>       " "
>   }
> }
>
> \score {
>   \new Staff {
>     \repeat unfold 10 {
>       s1
>       \pageBreak
>     }
>   }
> }
>

Greetings David,
          I have only now had a chance to try your code: This is wonderful.
Thank you very much.
Hwaen Ch'uqi



reply via email to

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