https://bugzilla.redhat.com/show_bug.cgi?id=1954716
Bug ID: 1954716 Summary: Fonts not used correctly Product: Fedora Version: rawhide Status: NEW Component: fontconfig Assignee: tagoh@redhat.com Reporter: barbarah.duarte@fluocomunicacao.com.br QA Contact: extras-qa@fedoraproject.org CC: ajax@redhat.com, caillon+fedoraproject@gmail.com, fonts-bugs@lists.fedoraproject.org, gnome-sig@lists.fedoraproject.org, i18n-bugs@lists.fedoraproject.org, mclasen@redhat.com, pnemade@redhat.com, rhughes@redhat.com, rstrode@redhat.com, sandmann@redhat.com, tagoh@redhat.com Target Milestone: --- Classification: Fedora
Created attachment 1776799 --> https://bugzilla.redhat.com/attachment.cgi?id=1776799&action=edit LibreOffice with all three fonts displayed in regular, italic and bold face.
I have installed some company-provided fonts for use in presentations etc.:
$ ls /usr/share/fonts/neo-sans-intel/ NeoSansIntel-Italic.ttf NeoSansIntel-MediumItalic.ttf NeoSansIntel-LightItalic.ttf NeoSansIntel-Medium.ttf NeoSansIntel-Light.ttf NeoSansIntel.ttf
In LibreOffice I have a choice of three separate fonts: Neo Sans Intel, Neo Sans Intel Medium, and Neo Sans Intel Light.
For each of those three, the italic version of the font (from the separate TTF file) is used. I can tell by the tail on the 'f' character. For bold text, however, an 'emboldening' algorithm seems to be used instead of using the appropriate separate font file.
In GNOME font selection dialogs, I see just one 'Neo Sans Intel' family, with a choice of 8 styles. I'll ignore the italic versions since those do actually seem to work as expected, so there are four weights listed: - Light (== Neo Sans Intel Light) - Regular (== Neo Sans Intel Medium) - Medium (== Neo Sans Intel Medium) - Bold (== Neo Sans Intel Medium + emboldening algorithm?)
I *don't* seem to have an option in GNOME which will just use the straight 'Neo Sans Intel' font.
So both seem to be getting it wrong, in different ways. Or perhaps there's something wrong with the fonts themselves?
https://bugzilla.redhat.com/show_bug.cgi?id=1954716
Nicolas Mailhot nicolas.mailhot@laposte.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Doc Type|--- |If docs needed, set a value
--- Comment #1 from Nicolas Mailhot nicolas.mailhot@laposte.net --- If you ask:
1. LibreOffice is definitely wrong because it tries to force fonts to fit in the regular/italic/bold/bold italic model, which has not been true in font formats for decades. It should display a single font family with the real font face names instead of relying on legacy compatibility metadata layers (which are increasingly unreliable because who cares the world has moved on)
2. The GNOME font selector is usually more correct, but also suffers from attempts to make things up instead of relying on Opentype face names, making a mess more often than not (but less often that LibreOffice). Also it does not understand font faces split over multiple files.
3. font files are often buggy because font authors do weird things in legacy compatibility metadata layers to fix misbehaviours in legacy windows apps that do not understand modern font faces (breaking things for apps like Libreoffice that take the result at face value). Again, from the font maker point of view who cares, legacy metadata layers are for legacy apps, no modern app should try to interpret those, the weird things are only tested in legacy windows apps.
If you want to sort this mess, run
fc-scan -f \
"%{family[0]};%{style[0]};%{fullname[0]};%{width};%{weight};%{slant};%{fontversion};%{file}\n" \ /usr/share/fonts/neo-sans-intel/ | sort -t ';' -k1,1d -k4,4n -k5,5n -k6,6n -k2,2d -k7,7dr \ | uniq | column --separator ';' -t
If the font metadata is sane you should see Neo Sans Intel in the first column, the real font face names (Regular, Italic, Medium, Medium Italic, Light, Light Italic) in the second column, and sensible width weight and slant values in the 4th to 6th columns
If that is not the case the font files are buggy, and you need to either get their metadata fixed or declare overrides at the fontconfig level
(see https://docs.fedoraproject.org/en-US/packaging-guidelines/FontsPolicy)
Once the fontconfig output is sane everything else is an application (Libre Office, Gnome Font selector, etc) bug. Usually due to someone not understanding the OpenType font model and trying to shove font files into a simplistic regular/bold/italic/bold italic one face per file deprecated legacy model.
https://bugzilla.redhat.com/show_bug.cgi?id=1954716
--- Comment #2 from Nicolas Mailhot nicolas.mailhot@laposte.net --- BTW Bold is not the same as Medium, there is no more reason to expect Medium to be used when asking a Bold Regular, than expecting Regular to be used when asking a Bold Light. Since your font family does not provide any Bold weight using the Bold button is open to interpretations.
https://bugzilla.redhat.com/show_bug.cgi?id=1954716
--- Comment #3 from Nicolas Mailhot nicolas.mailhot@laposte.net --- Of course some font makers DO expect apps to understand Bold when they use some other hipster designation. It works in their Apple apps (and they did not test anything else).
What can I say, you want apps to understand Bold you state Bold in the face name, simple easy, stupid and reliable.
https://bugzilla.redhat.com/show_bug.cgi?id=1954716
--- Comment #4 from Matthias Clasen mclasen@redhat.com ---
- The GNOME font selector is usually more correct, but also suffers from attempts to make things up instead of relying on Opentype face names, making a mess more often than not (but less often that LibreOffice). Also it does not understand font faces split over multiple files.
The gnome font selector is not in the business of understanding how font faces are split over files. It shows the fonts that fontconfig tells us about
https://bugzilla.redhat.com/show_bug.cgi?id=1954716
--- Comment #5 from Nicolas Mailhot nicolas.mailhot@laposte.net --- Exactly, it has no business of understanding how font faces are split over files, it should display one entry per face detected by fontconfig, and let fontconfig handle the assembling, instead of duplicating entries for the same face when it is split over multiple files.
https://bugzilla.redhat.com/show_bug.cgi?id=1954716
--- Comment #8 from Ben Cotton bcotton@redhat.com --- This message is a reminder that Fedora Linux 35 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora Linux 35 on 2022-12-13. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a 'version' of '35'.
Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, change the 'version' to a later Fedora Linux version.
Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora Linux 35 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora Linux, you are encouraged to change the 'version' to a later version prior to this bug being closed.
https://bugzilla.redhat.com/show_bug.cgi?id=1954716
Akira TAGOH tagoh@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |UPSTREAM Status|NEW |CLOSED Version|35 |rawhide Last Closed| |2022-12-08 06:48:16
--- Comment #9 from Akira TAGOH tagoh@redhat.com --- You could work around if you write some fontconfig config to modify family/style to drop extra names and keep "Neo Sans Intel" only in family and proper names in style. but it can't be done automatically. this is a known task in upstream and we don't want to keep track of this here.
i18n-bugs@lists.fedoraproject.org