PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

【教程】修改Win8.x系统的默认字体

[复制链接]
跳转到指定楼层
1#
iFive 发表于 2014-8-25 10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:20998|回复数:30
本帖最后由 iFive 于 2014-8-31 12:45 编辑

注意:我不会提供文中所需工具/字体的下载链接。这是因为FontCreator是共享软件(尽管国内只有XX版,但本着不给论坛找麻烦的原则,我不提供下载链接),方正字体受版权保护,UniteTTC可能会被国内某杀软报毒,信不信由你^﹏^。
前五个回帖的坛友每个人都加5分。

  • 注意:修改注册表是存在风险的,建议你在修改注册表前做好备份或系统还原还原点!
  • 修改宋体可能会造成软件兼容问题,个人不推荐修改。
  • 此教程仅适用于Windows 8/Windows 8.1用户,由于Vista/Win7内置字体与Win8系列的内置字体不完全相同,因此请不要照搬教程!

在修改字体之前,让我们先了解了解和Windows字体相关的注册表项和文件。
(本文中[LMCurVer]\皆指注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\)

  • ?:\Windows\Fonts文件夹,这个就不用说了吧,系统字体文件夹。
  • ?:\Windows\System32\FNTCACHE.DAT文件,我猜测这个文件是当前字体映射关系的缓存。如果你想通过直接替换掉msyh*.ttc的方法修改雅黑字体,请务必要删除该文件。
  • 注册表项[LMCurVer]\Fonts,这个项目记录着系统安装的所有字体。
  • 注册表项[LMCurVer]\FontLink\SystemLink,这个项目是字体链接,稍后我会提到这个的。
  • 注册表项[LMCurVer]\FontSubstitutes,这个注册表项的功能是,在一个字体不存在时,调用指定的备用字体,下面是微软官方对FontSubstitutes的解释
The FontSubstitues subkey stores the names of alternative fonts that can be used when a requested font or a font that appears in a document either is not available or is unsupported.

在修改字体前,我们还需要了解中英文版Windows的默认字体:
中文版 Windows:默认字体宋体,默认UI字体微软雅黑。
英文版 Windows:默认字体Tahoma,默认UI字体Segoe UI。

这些都是Windows 8以前的规则,在Windows 8 简体中文版中,系统默认字体仍为宋体,UI字体却变成了Microsoft YaHei UI,并且在几乎所有多国语言文件中(*.mui),对话框的字体都设置为了雅黑UI,而Win7中大部分为宋体,这就是为什么Win8的字体“被撑大”的原因,也是HD-Tune无法在简体/繁体中文系统(MUI字体已从MingLiu变为Microsoft Jhenghei UI)显示完整的原因。
而在英文版系统的mui文件中,我们可以看到两个奇怪的字体:MS Shell Dlg和MS Shell Dlg 2,难道它们是隐藏字体?
不是的。这两个字体正是用FontSubstitutes虚拟出来的,MS Shell Dlg对应Microsoft Sans Serif,MS Shell Dlg 2对应Tahoma,你可以直接通过修改FontSubstitutes来调节英文版Windows对话框的字体,这也是英文版Windows在修改字体方面比中文版Windows方便的地方。

看了这些基础知识之后,我们可以知道,有两种方法可以修改系统字体:
一:干掉微软雅黑/Microsoft YaHei UI,然后安装新字体,并使用FontSubstitutes替换掉雅黑。
这就是我在之前的帖子(http://bbs.pceva.com.cn/thread-97687-1-1.html)中使用的方法,但是楼主在实验之后,认为这个方法并不完美。
  • 缺失微软雅黑字体之后,部分软件的兼容性可能会出现问题(未测试)。
  • Metro UI 下,Windows对字体的调用方法略有不同。在 Metro UI 环境下,FontSubstitutes 是无法起到作用的。
    这是因为在 Metro UI 环境下,Windows 是使用“优先级列表”调用字体的(个人猜测,因为WP7系统就是这样调用字体的)。一旦Microsoft YaHei UI挂掉,宋体就会跳出来作Metro UI 默认字体。
    因此我在原帖中使用FontCreator创建了一个冒牌的Microsoft YaHei UI。既然如此,为什么不创建一个完整的冒牌“微软雅黑&Microsoft YaHei UI”TTC字体?
基于上面的原因,我建议大家使用方法二:创建一个冒牌“微软雅黑&Microsoft YaHei UI”TTC字体,并使用它替换Windows字体。

###下面是正文###
必备工具:FontCreator、UniteTTC
本例中所用的字体:方正准圆体
  • 首先,你需要将原版的“微软雅黑 常规”字体复制出来,它的位置在“控制面板\外观和个性化\字体”或者“C:\Windows\Fonts”中
    (C指系统盘,下同)
    然后你可以使用FontCreator或者UniteTTC.exe将其拆开,拆开后会得到两个TTF。
  • 拆开后,我们要使用FontCreator获取这两个字体的信息,方法是点击菜单栏的“格式”》“命名”,你需要将下图中标黄的信息复制到记事本中备用
    注意:你需要复制四套信息:微软雅黑_ English(United States)、微软雅黑_Chinese(PRC)、Microsoft YaHei UI_ English(United States)、Microsoft YaHei UI_Chinese(PRC)。
  • 使用FontCreator打开你喜欢的字体,点击“格式”》“命名”,确认字体命名中有且只有美国英语English - United States、简体中文Chinese - PRC。然后将微软雅黑的字体信息粘贴进去,点确定,然后使用另存为,另存到1.ttf,再将Microsoft YaHei UI的字体信息粘贴进去,另存到2.ttf。
  • 先双击预览一下,如果像下图右面一样显示的(字距过近),请换一个字体重新制作。

    (这种不标准的字体可能会影响部分系统组件的字体显示。)
    然后将1.ttf和2.ttf移动到UniteTTC的文件夹中,确保文件夹中没有其他字体后,双击AllUniteTTC.exe合并字体,最后将Fonts.TTC改名为msyh_modified.ttc。
    双击预览一下吧~在预览过程中你也可以点击打印按钮,会弹出打印对话框,可以预览新字体的显示效果。这应该算是字体预览功能的一个妙用吧~

OK,新字体制作完毕了,让我们开始替换吧~
  • 将msyh_modified.ttf放置到一个文件夹中,点击资源管理器的“文件”,打开一个管理员权限的命令提示符。
  • 输入 copy msyh_modified.ttf c:\windows\fonts 回车
  • 输入 regedit 回车打开注册表编辑器,先备份上面我提到的注册表,按图修改注册表(涂黄部分)
    (之所以设置为desktop.ini,是为了防止优化软件误删注册表,PS: c:\windows\fonts\desktop.ini是fonts目录唯一的非字体文件)
    (msyh相关的TTC全部都要改成msyh_modified.ttc,将键值中的Microsoft YaHei UI Bold/Light中的Bold/Light删掉)
  • 如果英文版要修改对话框字体,还要作设置

    注意:如果你要替换掉Segoe UI,请使用任意一个英文字体替换(其实中文字体也可以,不过我建议大家使用英文字体),替换方法与替换微软雅黑的方法类似。
  • 重启,Enjoy!



Q&A:
Q:怎样修改Win7的雅黑字体?
A:方法基本相同,只不过你不需要用UniteTTC了。
Q:怎样在Win8.x下彻底移除微软雅黑换用宋体?
A:直接给你一个注册表吧:(如果需要恢复,逆向操作就OK,bug修正:我没有考虑到微软雅黑在中英文环境下名称不同的问题,已修正)
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
  3. "Microsoft YaHei (TrueType) & Microsoft YaHei UI (TrueType)"="desktop.ini"
  4. "Microsoft YaHei Bold (TrueType) & Microsoft YaHei UI Bold (TrueType)"="desktop.ini"
  5. "Microsoft YaHei Light (TrueType) & Microsoft YaHei UI Light (TrueType)"="desktop.ini"

  6. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
  7. "Microsoft YaHei"="SimSun"
  8. "Microsoft YaHei UI"="SimSun"
  9. "微软雅黑"="SimSun"
复制代码
Q:什么是TTF,什么是TTC?
A:TTF就是Truetype Font的缩写,TTC就是Truetype Font Collection的缩写,简单的说,TTC就是TTF的“多合一打包”。
Q:为什么Win8.x中有两个雅黑(微软雅黑和Microsoft YaHei UI)?
A:据说是UI版的雅黑优化了部分数字和字母,Win8版的雅黑UI还优化了行间距,可惜,Win8.1版的雅黑,字模变差了,行间距也变回来了。
Q:为什么Win8.x下微软雅黑的格式是TTC,而不是Win7/Vista下的TTF?
A:因为TTC格式的字体可以合并多余的字模(我不是字体制作者,不清楚这个功能怎么用)。
Q:为什么Win8.1中新增了微软雅黑 Light系列字体?
A:在没有微软雅黑 Light之前,微软雅黑字体在某些文字尺寸下表现得不好。
Q:为什么替换字体时要将YaHei Bold和YaHei Light设为无效的字体?
A:先说说字体中的粗体字吧,常规的字体加粗方法为:将字模向右平移一个单位,并与原来的字模重叠,可是,这样的方法会造成字模宽度整体增加一个单位,一旦对文字进行加粗时,文档往往需要重新排版,并且,对于微软雅黑这类字体,使用平移法虚拟出的粗体字模显示效果往往不尽人意。
为了避免这个问题,粗体字体就诞生了。(注:Msyhbd是从Win7开始新增的,但是Win2K就应该能支持Bold Font)
在教程中,我考虑到大家并不一定能找到对应字体的粗体字体,并且即使没有粗体字体,字体也能正常加粗显示,所以,我略去了粗体字体的创建过程,如果你想创建粗体字体,照葫芦画瓢就可以啦。
Light字体我在上面已经提到了,基于上面的原因,我不建议一般的系统美化用户创建Light字体。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 5活跃度 +120 收起 理由
guangyunjian + 5 很给力!
xiaoguan + 5 很给力!
仙賢戀軒 + 100 很给力!
nonsole + 5 赞一个!
nighttob + 5 很给力!

查看全部评分

2#
nonsole 发表于 2014-8-28 21:37 | 只看该作者
很给力        

评分

参与人数 1活跃度 +5 收起 理由
iFive + 5 谢谢支持

查看全部评分

3#
ascii 发表于 2014-8-28 21:45 | 只看该作者
赞一个!

评分

参与人数 1活跃度 +5 收起 理由
iFive + 5 谢谢支持!

查看全部评分

4#
solonace 发表于 2014-8-28 21:46 | 只看该作者
5分

点评

我没有剩余分数了,明天补上~  发表于 2014-8-28 22:44

评分

参与人数 1活跃度 +5 收起 理由
iFive + 5 很给力!

查看全部评分

5#
sizhou 发表于 2014-8-30 17:20 | 只看该作者
还有分吗

点评

当然有~  发表于 2014-8-30 17:28

评分

参与人数 1活跃度 +5 收起 理由
iFive + 5 很给力!

查看全部评分

6#
frontwing 发表于 2014-8-30 17:29 | 只看该作者
我觉得mactype渲染一下就够了,动默认字体容易有不可预料的后果。

评分

参与人数 1活跃度 +5 收起 理由
iFive + 5 刚刚发现二楼是灌水狂魔,二楼已删,分补上.

查看全部评分

7#
红色狂想 发表于 2014-8-30 17:48 | 只看该作者
还有比微软雅黑更好看更具工业美学的系统默认字体吗?
8#
axinge2011 发表于 2014-8-30 18:52 | 只看该作者
不知道改成雅圆会不会好看
我手机都用这个的

点评

浪漫雅圆其实就是方正准圆的盗版~方正准圆有的hinting bug浪漫雅圆也有~  发表于 2014-8-31 08:32
9#
RexChow 发表于 2014-8-30 18:52 | 只看该作者
本帖最后由 RexChow 于 2014-8-30 18:56 编辑

感觉系统默认字体对我而言是够用了,就不折腾了。这个教程对于有需要的同学想必是极好的~~~
LZ要是不提我还不知道HDtune里边文字显示不全呢,刚刚去试了下才知道。。。
我比较纠结的是电影字幕的字体,总是找不到一个中文英文都好看的字体。。。
这篇教程是极好的,只是能否说明一下目前win8.x默认字体有什么缺点或者要替换它的原因呢?

点评

解决小屏幕win8平板窗口显示不全…  发表于 2014-9-2 22:49
10#
woyaoxiayi 发表于 2014-8-30 19:50 | 只看该作者
修改字体如果出问题就麻烦了,雅黑字体用习惯了
11#
xiaoguan 发表于 2014-8-30 21:58 | 只看该作者
不错的教程.可惜已经过了折腾系统的时候了
12#
iFive  楼主| 发表于 2014-8-31 06:36 | 只看该作者
红色狂想 发表于 2014-8-30 17:48
还有比微软雅黑更好看更具工业美学的系统默认字体吗?

这只是提供一个修改思路……
你可以只修改YaHei UI为防撑大版的雅黑,这样在SP3等设备上开200%缩放都不会有超出屏幕边界的对话框了

评分

参与人数 1活跃度 +5 收起 理由
红色狂想 + 5 我很赞同

查看全部评分

13#
guangyunjian 发表于 2014-8-31 10:05 | 只看该作者
前段时间还想折腾玩玩的,想了下还是算了。
自己用怎么都好解决,这边改了字体客户的机子也得修改。
显示不一样又麻烦。
14#
CheyTac 发表于 2014-8-31 11:19 | 只看该作者
  Mactype渲染一下也是挺方便的,教程不错
15#
toystory 发表于 2014-9-1 10:48 | 只看该作者
不错的折腾普及帖,赞!
16#
imslei 发表于 2014-9-1 11:20 | 只看该作者
技术贴,支持下
我觉得系统默认的字体也还可以啊
17#
frank9991984 发表于 2014-9-2 08:31 | 只看该作者
支持,收着看看
18#
印第安纳琼斯 发表于 2014-9-2 12:13 | 只看该作者
还是喜欢点阵字,雅黑发虚,尤其是小字发虚,我很讨厌。但是已经习惯了。第一次用感觉就像回到CRT时代,模模糊糊的,现在想起还是感觉有点恶心。
19#
65302666 发表于 2014-9-2 21:42 | 只看该作者
请问怎么恢复原来字体,就是逆向。。。现在打开软件导致字体乱码了

点评

你备份注册表了吗?备份了的话就直接恢复吧  发表于 2014-9-2 22:47
20#
65302666 发表于 2014-9-3 17:56 | 只看该作者
问题是我没有备份注册表现在软件基本都乱码了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部