Torsten Hämmerle <torsten.haemme...@web.de> writes:

> dak wrote
>> David Kastrup &lt;
>
>> dak@
>
>> &gt; writes:
>> 
>> I think it's more likely that LilyPond messes up when reusing fonts with
>> a particular size under different circumstances and your "correction"
>> just keeps it from reusing a font, instead calculating a fresh one.
>
> By Belenos, right you are!
>
> The exact value of the additional homoeopathic "correctional" term doesn't
> even matter.
> 0.001 is too small, but changing it to 0.002 will suddenly change the
> spacing from "catastrophic" to "correct".
> Making it too big, however, will result in a noticeable change in glyph size
> (and spacing).
>
> Be that as it may, obviously we need to re-trigger /something/... 

I read in lily/modified-font-metric.cc the following:

Stencil
Modified_font_metric::text_stencil (Output_def *state,
                                    const string &text,
                                    bool feta,
                                    const string &features_str) const
{
  Box b;
  if (Pango_font *pf = dynamic_cast<Pango_font *> (orig_))
    {
      Stencil stc = pf->text_stencil (state, text, feta, features_str);

      Box b = stc.extent_box ();

      b.scale (magnification_);
      Stencil scaled (b, stc.expr ());
      return scaled;
    }

  return Font_metric::text_stencil (state, text, feta, features_str);
}

This only adjusts stencil dimensions for magnification_ without
adjusting the stencil.  For a Pango font, that is.

For a non-Pango font, it doesn't adjust anything.

I have really no clue about how font inclusion works but this appears
extraordinarily fishy.

-- 
David Kastrup

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to