Am 12.11.2014 um 13:35 schrieb Werner LEMBERG:
Well, I was about to answer, but somehow ...
:-)
I defined some \abs-... markup commands myself
Ha! Where are they? I guess this would have saved me many hours of
wading through obscure LilyPond Scheme code...
D'oh. A closer look into the sources of my old project dates 2011, and I
did not use \abs-... but \...-mm instead and gave all dimensions in
millimetres.
Anyway, here are the definitions, in case they might be useful for somebody:
#(define-markup-command (hspace-mm layout props amount) (number?)
(let ((o-s (ly:output-def-lookup layout 'output-scale)))
(ly:make-stencil "" (cons 0 (abs (/ amount o-s))) '(0 . 0) )))
#(define-markup-command (vspace-mm layout props amount) (number?)
(let ((o-s (ly:output-def-lookup layout 'output-scale)))
(ly:make-stencil "" '(0 . 0) (cons 0 (abs (/ amount o-s))))))
#(define-markup-command (epsfile-mm layout props axis size file-name)
(number? number? string?)
(let* ((o-s (ly:output-def-lookup layout 'output-scale))
(scaled-size (abs (/ size o-s))))
(if (ly:get-option 'safe)
(interpret-markup layout props "not allowed in safe")
(eps-file->stencil axis scaled-size file-name)
)))
and wondered if it would be feasible to implement a "switch" –
something like
\absoluteSizeOn
or similar, to avoid the need of defining everything twice – with
relative sizes and absolute sizes, respectively.
Having an `\abs-' prefix is easy to remember. I would favor this more
than `\absoluteSizeOn', but I fully agree that defining everything
twice is error-prone. What about adding a `meta macro' (or special
form, or whatever) that generates absolute and non-absolute versions?
I imagine something like
(make-relative-absolute
(define-markup-command (foo ...)
...))
to create \foo and \abs-foo. No idea whether this is possible at all,
however. In case it *is* possible, we should probably continue the
discussion on lilypond-devel.
I like the idea of this 'meta macro' but I don't have a clue whether
this is possible or not (I assume yes, but I won't be able to program it
myself).
Marc
Werner
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user