On 2019-03-11 2:49 am, Urs Liska wrote:
Hi,
...
A *hack* using transparent glyphs to force alignment:
%%%%
\version "2.19.82"
#(define-markup-command (ascender-descender-placeholder layout props) ()
(let* ((sten (interpret-markup layout props #{
\markup \transparent \overlay { d p } #} ))
(yex (ly:stencil-extent sten Y)))
(ly:make-stencil (ly:stencil-expr sten) empty-interval yex)))
#(define-markup-command (apply-hack layout props arg) (markup?)
(interpret-markup layout props #{ \markup \concat {
\ascender-descender-placeholder $arg } #} ))
bad = -\tweak color #(rgb-color 0.9 0 0) \etc
good = -\tweak color #(rgb-color 0 0.8 0) \etc
{ \time 3/4
f'4\bad^"d" _"d" f'4\bad^"x" \bad_"x" f'4^"p" \bad_"p"
f'4\good^\markup \apply-hack "d" _\markup \apply-hack "d"
f'4\good^\markup \apply-hack "x" \good_\markup \apply-hack "x"
f'4^\markup \apply-hack "p" \good_\markup \apply-hack "p"
f'2.^\markup \override #'(line-width . 35) \wordwrap \apply-hack
{ raucous racoon commune consume cocoa-cream macaroons }
_\markup \override #'(line-width . 35) \wordwrap \apply-hack
{ museum owner unaware wax moose wears mauve mascara }
}
%%%%
This presumes that "d" and "p" are suitable exemplars of ascenders and
descenders in the font being used.
If you want to visualize what is happening, replace "\transparent" in
the markup command definition with something like "\with-color #blue".