Thanks, Nicolas, for the code, but I think this is very complicated for me... I solve the problem using other tag, like arranger, or opus, to place the year....
-- jEfF_[Feliks] On Sun, 14 Nov 2004 12:09:53 +0100, Nicolas Sceaux <[EMAIL PROTECTED]> wrote: > Jefferson dos Santos Felix <[EMAIL PROTECTED]> writes: > > > > > I try to put the composer's year of birth and death below his name, > > right-aligned, but I can't do it. > > See the attempt below: > > > > \version "2.4.1" > > \header > > { > > title = "A Title Song" > > composer = \markup \column <{"Composer Name"} {\right-align > > "(1900-1950)"}> > > poet = "J.S.F." > > } > > \score {c'} > > > > Is anything wrong? > > > > Thaks, > > I don't know if this is a good advice as it is a bit extreme, but, > supposing that you can write Scheme code: > > You can define your own titling style if you want. > Just write a `my-book-title' function (see `default-book-title' in > scm/titling.scm for inspiration) and register it in the \layout > block. You can do the same for score titling (see > `default-score-title'). > > \layout { > ... > #(define-public book-title my-book-title) > #(define-public score-title my-score-title) > ... > } > > For instance, the following functions define the titles of an > opera. Note that it uses custom keywords in \header blocks, such as > act, scene, etc. (sorry for the very long lines.) > > #(defmacro with-keyword-accessor (scopes . body) > "Locally define two functions, `get' and `has', for > accessing keyword in `scopes'." > (let ((gscopes (gensym "scopes"))) > `(let ((,gscopes scopes)) > (define (get sym) > (let ((x (ly:modules-lookup ,gscopes sym))) > (if (markup? x) x ""))) > (define (has sym) > (markup? (ly:modules-lookup ,gscopes sym))) > ,@body))) > #(defmacro when-keyword (keyword . body) > (let ((gmarkup (gensym "markup"))) > `(if (has ,keyword) > (let ((,gmarkup (let ((it (get ,keyword))) > ,@body))) > (list ,gmarkup)) > '()))) > > #(define-public (opera-book-title layout scopes) > "Generate book title from header strings. > Keywords are title, subtitle, composer, librettist, edition, opus, date" > (with-keyword-accessor > scopes > (let ((props (page-properties layout))) > (interpret-markup > layout props > (markup #:override '(baseline-skip . 4) > (make-column-markup (append (when-keyword 'composer > (markup #:fill-line > (#:large #:bigger #:bigger #:bigger > > #:bigger #:bigger #:bigger #:italic it) > #:column ("" > "" ""))) > (when-keyword 'title > (markup #:fill-line > (#:huge #:bigger #:bigger #:bigger > > #:bigger #:bigger #:bigger #:bigger #:bigger #:bold it) > #:column ("" > ""))) > (when-keyword 'subtitle > (markup #:fill-line > (#:large #:bigger #:bigger #:bigger #:bigger #:bigger #:bigger #:bold it) > #:column ("" > "" ""))) > (when-keyword 'edition > (markup #:fill-line > (#:large #:bigger #:bigger #:left-align it) > #:column ("" > "" "" ""))) > ;; TODO: other keywords. > ))))))) > > #(define-public (opera-score-title layout scopes) > "Generate score title from header strings. > Keywords are act, scene, scenedescr, piece." > (with-keyword-accessor > scopes > (let ((props (page-properties layout))) > (interpret-markup > layout props > (markup #:override '(baseline-skip . 4) > (make-column-markup (append (when-keyword 'act > (markup #:fill-line > (#:huge #:bigger #:bigger #:bigger #:bigger #:bold it) > #:column ("" > "" ""))) > (when-keyword 'scene > (markup #:fill-line > (#:large #:bigger it))) > (when-keyword 'scenedescr > (markup #:fill-line > (#:left-align it))) > (when-keyword 'piece > (markup #:column ("" > #:fill-line (#:large #:bigger it) "")))))))))) > > Then it can be used like that: > > \layout { > #(define-public book-title opera-book-title) > #(define-public score-title opera-score-title) > } > > \header { > title = "GIULIO CESARE" > subtitle = "in Egitto" > composer = "George Frideric Haendel" > edition = \markup \center-align < > { From the Deutsche Händelgesellschaft Edition } > { Edited by } > { Frideric Chrysander }> > tagline = "LilyPond, mutopia, public domain, etc." > copyright = "Public Domain" > } > > ... > > \score { > \header { > act="ATTO PRIMO" > scene="SCENA I." > scenedescr=\markup \center-align < > { Campagna d'Egitto con antico ponte sopra un ramo del Nilo. } > { \caps {Giulio Cesare} e \caps Curio che passano il ponte con > seguito. } > > piece = "CORO." > } > > ... > } > > > nicolas > > -- jEfF_[Feliks] _______________________________________________ lilypond-user mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/lilypond-user