hi
I am quite new as a Fedora package maintainer. I submitted
a few Chinese font packages to Fedora, and luckily, Jens Petersen
has been extremely patient and guided me through
package submission processes. I am glad that these fonts are
now serving the Chinese Fedora users and we got quite good
feedbacks from them.
Today, I would like to ask for your help to create a robust
fontconfig file for wqy-bitmap-fonts. This font was installed
by default in Fedora 8 for Chinese users. It recently caused
some problems displaying Latins for non-Chinese users.
Please see bug #381311 for more details.
https://bugzilla.redhat.com/show_bug.cgi?id=381311
I will describe my goals, the achieved results and the
problems.
===================================
1. Motivations and goals
As an active developer and Linux user for couple of years,
I strongly feel that there is a consensus among most Chinese users
(both Mainland and Taiwan) for font rendering. These consensus
can be summarized as the followings:
1. given the fact that most Chinese vector font rendering are
quite blurry on nearly all Linux distributions, plus the fact that
there is
no free Chinese fonts with high quality hinting, hand-tuned
bitmap glyphs are preferred for on screen display of Chinese characters
2. Latin glyphs has low stroke density and autohinting is becoming
sufficient, using vector glyphs of these non-CJK characters is preferred
3. ideally, the requirement #1 should be locale independent (maybe
exclude ko/ja
users, if it conflicts with their consensus); requirement #2 is virtually
true for most modern Linux desktops nowadays (for non-CJK locales)
The following two pictures may shine some light on what
a normal Chinese user considers as a "good" font rendering:
* under non-Chinese locales (use en_US as an example)
[can not be achieved for now, used post-processing]
http://wenq.org/gallery/albums/userpics/10002/confopt_preferred_rendering_en-us.png
* under Chinese locales (use zh_TW as an example)
[achieved on F8 with wqy-bitmap-fonts 0.9.9-1]
http://wenq.org/gallery/albums/userpics/10002/confopt_preferred_rendering_zh.png
the main features include:
A. when rendering Hanzi for generic aliases (i.e. sans/serif/mono):
A.1: if font sizes are common on screen, such as 8pt-12pt, use bitmap
Chinese font
A.2: for sizes above or below, use the first preferred vector Chinese font
B. when rendering non-Hanzi (or non-CJK) glyphs, use the preferred fonts
determined by fontconfig
C. when a specific Chinese font was chosen, exclusively use this font
for all covered characters
===================================
2. Default rendering of Hanzi on F8 without wqy-bitmap-fonts
Without installing wqy-bitmap-fonts, the screenshots of F8 is shown below:
* under non-Chinese locales (use en_US as an example)
http://wenq.org/gallery/albums/userpics/10002/confopt_F8_no_wqy-bitmap_en-us.png
unsatisfactories:
1) no bitmap fonts were used for screen-sized Hanzi
2) garbled text with a mixture of Japanese and Chinese fonts (the headings)
3) Hanzi glyphs are blurry, getting worse for large blocks of text
* under Chinese locales (use zh_TW as an example)
http://wenq.org/gallery/albums/userpics/10002/confopt_F8_no_wqy-bitmap_zh.png
unsatisfactories:
1) generally looks OK if Uming is installed
2) for mono, the Latins in Uming were used, rather than Dejavu/Vera
3) for serif, no bitmap glyphs because UKai has no embedded bitmaps
===================================
3. Hanzi rendering on F8 with 85-wqy-bitmapsong.conf
The devel. of wqy-bitmap-fonts started from expanding the embedded
bitmap fonts
in Uming (both originated from firefly-bitmap-font) 3 years ago. After
3 years development at wenq.org, our project website, we have completed
all bitmap glyphs for CJK Basic (U4E00-U9FA5) and CJK Extension A
(U3400-U4DB5), covering 27,484 characters at 4 point sizes, nearly
twice of the Uming's embed bitmaps (only ~15,000 characters). In addition,
80% of the old firefly(uming) glyphs were fine-tuned. The improvements are
quite significant, making the font a popular choice among Chinese users.
The following sample shows the difference between uming and
wqy-bitmap-fonts:
http://wenq.org/gallery/albums/userpics/10002/confopt_wqy-bitmap_vs_uming.png
In package wqy-bitmap-fonts, we provided a default fontconfig file,
85-wqy-bitmapsong.conf (see attachment). Using this file, we raised
the priority of wqy-bitmap-fonts for rendering Hanzi, while trying to
keep it
lower than the default sans/serif/mono Latin fonts. With this
file, Chinese users are able to get the preferred rendering as
shown above, i.e.
http://wenq.org/gallery/albums/userpics/10002/confopt_preferred_rendering_zh.png
however, for English locales, it did not seem to improve the situation, nor
make it worse (at least with my copy)
http://wenq.org/gallery/albums/userpics/10002/en_US_with_wqy-bitmap-fonts.png
I do noticed that this file has side effects, the bug thread (#381311)
as an example,
however, so far I have not yet been able to identify the exact cause.
These reports
are rather random and mostly non-repeatable. Debugging fontconfig outputs
constantly gives me confusing results. My guess is that we might use some
fragile fontconfig syntax and are not consistently executed over
different systems.
===================================
4. Questions
That's all I want to learn from you: do you see a robust implementation
of fontconfig font selection mechanism to achieve my goals above?
if yes, how? if no, to whom should I file bug reports to?
I apologize for the long email, I wish you read to this line before
giving up.
thank you so much and looking forward to hearing back from you.
Qianqian
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- WenQuanYi Bitmap Font for CJK users -->
<fontconfig>
<!--
Enable WenQuanYi Bitmap Song only
by carlos liu
-->
<selectfont>
<acceptfont>
<pattern>
<patelt name="family"><string>WenQuanYi Bitmap Song</string></patelt>
</pattern>
</acceptfont>
</selectfont>
<!--
Use WenQuanYi Bitmap Song for specified font sizes
by Funda Wang
Updated by Qianqian Fang on Mar. 28,2007
Updated by Qianqian Fang on May 9,2007
Updated by Qianqian Fang on Nov. 17,2007
-->
<match target="pattern">
<test equal="any" compare="eq" name="lang">
<string>en</string>
<string>en-us</string>
<string>zh-cn</string>
<string>zh-tw</string>
<string>zh-hk</string>
<string>zh-sg</string>
</test>
<test compare="more_eq" name="pixelsize">
<double>11</double>
</test>
<test compare="less_eq" name="pixelsize">
<double>16</double>
</test>
<edit name="family" mode="prepend_first">
<string>WenQuanYi Bitmap Song</string>
</edit>
</match>
<match target="pattern">
<test equal="any" compare="eq" name="lang">
<string>en</string>
<string>en-us</string>
<string>zh-cn</string>
<string>zh-tw</string>
<string>zh-hk</string>
<string>zh-sg</string>
</test>
<test compare="more_eq" name="size">
<double>8</double>
</test>
<test compare="less_eq" name="size">
<double>12</double>
</test>
<edit name="family" mode="prepend_first">
<string>WenQuanYi Bitmap Song</string>
</edit>
</match>
<match target="pattern">
<test equal="any" compare="eq" name="family">
<string>WenQuanYi Bitmap Song</string>
</test>
<test equal="any" compare="eq" name="family">
<string>monospace</string>
</test>
<edit name="family" mode="prepend">
<string>Bitstream Vera Sans Mono</string>
</edit>
<edit name="family" mode="prepend" binding="strong">
<string>DejaVu LGC Sans Mono</string>
</edit>
</match>
</fontconfig>
_______________________________________________
Fedora-fonts-list mailing list
Fedora-fonts-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-fonts-list