lilypond-devel
[Top][All Lists]
Advanced

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

glyph placement does not use font baseline


From: Kieren MacMillan
Subject: glyph placement does not use font baseline
Date: Thu, 8 Jun 2006 10:39:53 -0400

Hello, all --

The following example finally clarifies something that has been nagging at me for a while, but I've never been able to figure out exactly why...

Note how the markup is placed: not according to the baseline of the font, but according to the extreme edge of each particular glyph (e.g., bottom of 'p' descender, top of the 'b' ascender), and thus how the 'n', 'p', 's', and 'b' in the example do not rest on the same baseline, even though the padding (placement) would lead one to believe they should. [The same is true of dynamic markup text, obviously, which is where this irritation first became apparent to me.]

I really think this should be fixed -- all other graphics/layout programs I've used consider the font baseline as the anchor point for glyph placement, which naturally leads to a more consistent user (and, probably, programmer) experience.

I'm happy to hunt down the culprit and fix it myself, but I need to know whether it's
    1. a font problem (fixed in metafont or FontForge?);
    2. a PostScript problem (fixed in C++ code?);
    3. a Lilypond layout problem (fixed in Scheme?); or,
    4. some combination of #1-3.

Any thoughts?

Thanks,
Kieren.

___________________________________________

%%% CODE SNIPPET BEGINS
\version "2.9.7"

pFour = \once \override TextScript #'padding = #4
sFour = \once \override TextScript #'staff-padding = #4

\paper
{
        indent = 0
        line-width = 5.5\in
        ragged-bottom = ##t
}

\relative c'
{
        f4^"n" \pFour f^"p" \sFour f^"s" \pFour\sFour f^"b"
        g,4^"n" \pFour g^"p" \sFour g^"s" \pFour\sFour g^"b"
        f'4_"n" \pFour f_"p" \sFour f_"s" \pFour\sFour f_"b"
        d''4_"n" \pFour d_"p" \sFour d_"s" \pFour\sFour d_"b"
}
%%% CODE SNIPPET BEGINS





reply via email to

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