Re: [RFC] target font model on Freedesktop systems

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

 



Nicolas Mailhot wrote:
> 2. fontconfig strives to hide all the legacy ways to designate different
> parts of this ideal font, and strives to expose a single "font" objet no
> matter what quirks exist in individual font files. We stop exposing lots
> of weird quirky bits right and left, that need manual assembling by
> users, or glue-ing with TEX macros.
> 
> No foo variable, foo hebrew, foo narrow, foo caption, just a single foo
> with different available features (full variability or fixed states on
> the default axis, real upstream provided states or fakes generated by
> fontconfig at pango’s request[5], etc)

While such a model sounds really nice in theory, especially if missing 
variants can be synthesized (e.g., automatic slanting to provide italic 
versions where no native one is available), I am worried about some of the 
practical implications:
* There is no longer a way to filter only for native high-quality variants,
  excluding synthesized ones. Or in particular, to just request a bold,
  thin, wide, narrow, or italic version of a font without caring about
  (e.g.) how thick the bold version actually is, but preferring a native
  variant over a synthesized one with some arbitrary thickness.
* The native variant may only support a subset of the characters of the base
  font. See, e.g., Liberation Sans Narrow, which is stuck at an older
  version because it is not part of the upstream "code" drop used as the
  basis for the new version. With your approach, there is also no way to
  explicitly force the use of the synthesized version. Will fontconfig or a
  higher level be smart enough to synthesize from the base font characters
  missing in the native variant but available in the base font?
* How will fontconfig decide which of the versions to pick as the base? If,
  e.g., there is a Foo with 100% width and a Foo Narrow with 50% width,
  which one would be picked for, say, Foo 71%? (Note that 71% is between the
  geometric mean and the arithmetic mean of 100% and 50%.) Or, say, you have
  a Foo with 100% width and a Foo Narrow with 80% width, and the user
  requests Foo 160%, would the integer factor 2 from 80% to 160% potentially
  lead to a better scaling? Or, say, the font provides only Foo Bold and Foo
  Italic, and the user requests Foo Bold Italic, do you bolden Foo Italic or
  slant Foo Bold, or even bolden and slant Foo Regular?
* I see you mentioning pango. What will happen for applications not using
  pango? Qt applications come to my mind, obviously, but also applications
  using neither GTK+ nor Qt (which include popular ones where fonts are
  crucial, such as LibreOffice, where GTK+ and Qt support are only in
  optional plugins).
* The font selectors also need to support all those settings. If an
  application shows some legacy font selector that does not support them,
  the user is stuck with no way to use the variants, whereas the current
  approach of abusing the family name with suffixes does the job. E.g.,
  Liberation Sans Narrow would just vanish from legacy applications with no
  way for the user to select it.

So, to sum it up, I kinda like the idea, but I am very worried about 
functionality regressions popping up in practice.

        Kevin Kofler
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux