答案1
问题是传统的日文字体(MS Gothic、MS PGothic、MS Mincho……)也包括位图除了轮廓字体外,还有小尺寸的字体(通常为 22pt 及以下的字符)。这些位图不能应用任何类型的平滑,因此会导致非常丑陋的锯齿,让人眼睛难受。有几种解决方案:
麦克类型是一个开源替代品(还有其他,但目前它是最新的)用于 Windows 字体渲染器基于自由类型。它将直接跳过这些位图并使用轮廓来输出平滑的字符。
但目前 Mactype 无法模拟直接绘图调用,因此有些程序使用直接绘制/直接写入(例如 MS Office 2013、IE7+、Firefox…)仍然有字体别名,但这种情况很少见。在 Google Chrome 上,您需要禁用 DirectWrite让它发挥作用
更新:最新的 Mactype 已经具有更好的 DirectWrite 支持
更好的选择是删除所有位图根据本教程。你需要一些日语能力才能读懂,但你也可以读懂粗略翻译来自 Google。步骤比较长,请到最后查找。结果是:
- 位图字体无抗锯齿(小于 23pt 的日文字符的默认设置)
- 清晰类型剥离位图后
- 标准抗锯齿剥离位图后
- 无位图(轮廓)、无抗锯齿
- 位图字体无抗锯齿(小于 23pt 的日文字符的默认设置)
从字体中剥离位图的步骤:
复制你需要删除的字体文件,例如msgothic.ttc,从
\Windows\Fonts
文件夹在复制字体的文件夹中打开命令提示符并输入
BREAKTTC msgothic.ttc
。之后,您可以看到 ttc 中的所有 ttf 文件都被提取为FONT00.ttf ~ FONTxx.ttf现在你可以下载字体工具从微软排版。之后提取
SBIT32
删除 EBDT(嵌入式位图数据表)所需的工具。命令语法如下SBIT32 -d <original font file> <metric file> [output file]
您需要针对每个位图大小(通常为 7 到 22)运行此操作以删除所有位图,如果手动输入则相当笨拙。自动化脚本将大有帮助。
@echo off copy %1 %2 >nul for /l %%i in ( 7,1,22 ) do ( echo PPEM %%i > mtemp.txt echo END >> mtemp.txt sbit32 -d %2 mtemp.txt ftemp.ttf del %2 ren ftemp.ttf %2 ) del mtemp.txt
将以上内容保存为
rmEBDT.bat
并运行以下命令(对于 MS Gothic 为 3,因为我们有 3 个提取的 ttf 文件)rmEBDT font00.ttf msgot2.ttf rmEBDT font01.ttf msgotp2.ttf rmEBDT font02.ttf msuigot2.ttf
现在我们已经剥离了字体文件,我们可以重命名这些字体名称(这与字体文件名), 类似于 MS Gothic NB -无位图,与旧字体一起使用,或者直接使用旧名称并替换原始 ttc 文件,这有点棘手。无论哪种方式,我们都需要将它们重新打包为 ttc 文件,以便重新安装到 Windows。使用与 同一文件夹中的
工具,或者您也可以找到它们MAKETTC
BREAKTTC
这里。 跑步MAKETTC <TTC output file name> <TTF file 1> <TTF file 2> ...
获取 ttc 文件后,如果您更改了字体名称,则只需直接将其复制到以
\Windows\Fonts
将其注册为新字体,然后将 UI、应用程序等中的默认字体更改为该字体。如果您想使用旧字体名称,则必须从另一个操作系统(如 Linux live USB 或 Windows PE)启动,因为 Windows 总是在启动时加载 MS Gothic。
答案2
这取决于字体。不同的字体具有不同的特性,包括字体平滑的不同行为。您可能正在使用 Mincho 组中的字体,因为它们通常用作默认字体,并且它们可能存在这样的问题;Gothic 字体在屏幕上可能效果更好。
答案3
明良,Windows Vista/7 的默认日文字体,以及一些其他日文字体包含小尺寸的位图(像素)字符。
回到你的例子,我能够使用 Firefox 来确认这一点:
ClearType(提示)字符:
较小的字体;位图字符:
默认情况下,Firefox 对日文字体使用以下设置:
因此,解决方案在于使用更大的字体大小或将应用程序中使用的默认日文字体替换为支持所有大小的提示字符的字体(例如Arial 统一码)。
要在 Windows 中全局重新映射/替换字体,您可以修改或添加注册表值在下面:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes