Hangul glyphs in "WenQuanYi Micro Hei" overlap one another in Chromium (incorrect advanceWidth in hmtx table)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ttf-wqy-microhei (Debian) |
Fix Released
|
Unknown
|
|||
ttf-wqy-microhei (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Hangul glyphs stack on top of one another, and hence unreadable, especially in Chromium browser.
See:
* https:/
"WenQuanYi Micro Hei" is rendered incorrectly on Linux (2011-06-13)
* https:/
WenQuanYiMi
(an anonymous user reported the problem upstream on 2013-03-29)
* https:/
korean fonts stacking vertically onto eachother and/or replaced with pinyin
after updating to linux raring ringtail 13.04 (2013-04-19)
* http://
ttf-
(with a suggested fix)
Using FontTools/TTX for analysis, e.g. by running:
ttx -x glyf -y 0 wqy-microhei.ttc
an XML file is generated, showing the following Horizontal Matrix table:
<hmtx>
...
<mtx name="uni9FC0" width="2048" lsb="104"/>
<mtx name="uni9FC1" width="2048" lsb="96"/>
<mtx name="uni9FC2" width="2048" lsb="104"/>
<mtx name="uni9FC3" width="2048" lsb="112"/>
<mtx name="uniAC00" width="256" lsb="128"/>
<mtx name="uniAC01" width="256" lsb="112"/>
<mtx name="uniAC02" width="256" lsb="112"/>
<mtx name="uniAC03" width="256" lsb="112"/>
<mtx name="uniAC04" width="256" lsb="112"/>
...
<mtx name="uniAC6E" width="256" lsb="72"/>
<mtx name="uniAC6F" width="256" lsb="72"/>
<mtx name="uniAC70" width="2048" lsb="88"/>
<mtx name="uniAC71" width="256" lsb="72"/>
<mtx name="uniAC72" width="256" lsb="72"/>
...
<mtx name="uniACA6" width="256" lsb="72"/>
<mtx name="uniACA7" width="256" lsb="72"/>
<mtx name="uniACA8" width="2048" lsb="88"/>
<mtx name="uniACA9" width="256" lsb="72"/>
<mtx name="uniACAA" width="256" lsb="72"/>
...
<mtx name="uniD7A1" width="256" lsb="168"/>
<mtx name="uniD7A2" width="256" lsb="168"/>
<mtx name="uniD7A3" width="256" lsb="168"/>
<mtx name="uniF900" width="256" lsb="136"/>
<mtx name="uniF901" width="2048" lsb="104"/>
<mtx name="uniF902" width="2048" lsb="104"/>
<mtx name="uniF903" width="256" lsb="168"/>
<mtx name="uniF904" width="256" lsb="88"/>
<mtx name="uniF905" width="2048" lsb="216"/>
<mtx name="uniF906" width="2048" lsb="128"/>
<mtx name="uniF907" width="2048" lsb="96"/>
<mtx name="uniF908" width="2048" lsb="96"/>
<mtx name="uniF909" width="256" lsb="80"/>
<mtx name="uniF90A" width="2048" lsb="80"/>
<mtx name="uniF90B" width="256" lsb="160"/>
<mtx name="uniF90C" width="256" lsb="104"/>
<mtx name="uniF90D" width="256" lsb="80"/>
<mtx name="uniF90E" width="2048" lsb="72"/>
<mtx name="uniF90F" width="256" lsb="96"/>
<mtx name="uniF910" width="256" lsb="128"/>
<mtx name="uniF911" width="256" lsb="128"/>
...
<mtx name="uniFA25" width="2048" lsb="96"/>
<mtx name="uniFA26" width="256" lsb="104"/>
<mtx name="uniFA27" width="256" lsb="88"/>
<mtx name="uniFA28" width="256" lsb="88"/>
<mtx name="uniFA29" width="256" lsb="168"/>
<mtx name="uniFA2A" width="2048" lsb="80"/>
<mtx name="uniFA2B" width="256" lsb="80"/>
<mtx name="uniFA2C" width="2048" lsb="80"/>
<mtx name="uniFA2D" width="256" lsb="48"/>
...
</hmtx>
Apparently, WenQuanYi Micro Hei uses a horizontal advance width of 2048 for CJK characters by default, e.g.:
<mtx name="uni9FC0" width="2048" lsb="104"/>
<mtx name="uni9FC1" width="2048" lsb="96"/>
<mtx name="uni9FC2" width="2048" lsb="104"/>
<mtx name="uni9FC3" width="2048" lsb="112"/>
whereas DroidSansFallba
Perhaps something went wrong when the Hangul (and related Korean Han fallback glyphs) from DroidSansFallba
Related branches
no longer affects: | chromium-browser |
description: | updated |
no longer affects: | chromium-browser |
Changed in ttf-wqy-microhei (Debian): | |
status: | Unknown → New |
Changed in ttf-wqy-microhei (Ubuntu): | |
status: | New → Confirmed |
Changed in ttf-wqy-microhei (Debian): | |
status: | New → Confirmed |
Changed in ttf-wqy-microhei (Debian): | |
status: | Confirmed → Fix Released |