--- Begin Message ---
Subject: |
Font choice in Emacs 23 does not match weight/traits |
Date: |
Sun, 31 Jan 2010 23:44:49 -0500 |
The fonts chosen for non-latin (here: Asian) characters are not very similar to
the face font.
For example, if "Lucida Grande" is selected as the frame's default font, the
following:
DOUBLETはあなたと->世 界をつなげる翻訳会社です。
is displayed using a much to lightweight (skinny) font for all the non-Latin
glyphs. The Hiragana portion at the beginning is set in PMingLiU, while the
Kanji (Han script) is displayed in LiSung.
These fonts appear very thin compared to the Latin text.
This is despite there being the "Osaka" font present on my system, which is a
medium-weight, very suitable font.
-apple-PMingLiU-medium-normal-normal-*-13-*-*-*-p-0-iso10646-1 (#x303)
-apple-Apple_LiSung-medium-normal-normal-*-13-*-*-*-p-0-iso10646-1 (#x7CD)
This is under NS, whereas I am not positive that this is actually due to NS.
This worked great on Emacs 22 - Osaka is chosen there [well, I have tried with
Aquamacs].
I have received concrete complaints from users who say that they're not using
Emacs 23 because of that.
The user also said that matching the font according to further traits
(serif/sans) would be desirable/expected.
I advised the user of setting Osaka directly (which works), and of fontsets
(which appear inappropriate for such simple use-cases in 2010).
For what it's worth, I have been trying to fix this myself.
So far I know that Osaka has 95% "han" script coverage and is returned among
the list of (many) fonts in the font driver's "list" function.
It seems that exact weight and more specific traits are not being made
available to Emacs by the NS font driver (e.g., nsfont.m:532, call to
ns_descriptor_to_entity, last argument is NULL). Font weight should go into
"ADSTYLE", which is one matching criterion in font_find_for_lface.
font_select_entity() presumably doesn't have enough weight information.
ns_descriptor_to_entity() sets weight, but only to Qbold and Qmedium. If I
comment some code in:
FONT_SET_STYLE (font_entity, FONT_WEIGHT_INDEX,
make_number (100 + 100
* ns_attribute_fvalue (desc, NSFontWeightTrait)));
.. then the "han" portion in the above examples is rendered with a matching
font (LiGothic), but not any of the Hiragana text (still in PMingLiU).
FWIW, the AppKit port of 23 shows the same behavior as NS.
Again, Emacs 22 got it right - unfortunately I haven't managed to figure out
how the Emacs 22 code works.
PGP.sig
Description: This is a digitally signed message part
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#5503: Font choice in Emacs 23 does not match weight/traits |
Date: |
Thu, 18 Aug 2016 04:51:52 -0400 |
On Aug 18, 2016, at 1:04 AM, Andrew Hyatt <address@hidden> wrote:
>> For example, if "Lucida Grande" is selected as the frame's default font, the
>> following:
>>
>> DOUBLETはあなたと->世 界をつなげる翻訳会社です。
>>
>> is displayed using a much to lightweight (skinny) font for all the non-Latin
>> glyphs. The Hiragana portion at the beginning is set in PMingLiU, while the
>> Kanji (Han script) is displayed in LiSung.
> I can't reproduce this in Emacs 25 on a Mac w / El Capitan. I get a nice
> font for the Japanese - Hiragino Sans. Do you still see a problem when
> you try?
This bug was fixed since I originally reported it in 2010. The font engine in
NS was replaced since then as far as I remember.
--- End Message ---