为什么 Windows 下 cmd 和 PowerShell 不能方便地自定义字体

 我来答
炸飞的老头
2016-02-28 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6525
采纳率:0%
帮助的人:2175万
展开全部
当然能!
前两天刚刚折腾完这个。

首先是这个回答的理念:
改代码页(字符集)的方法都是耍流氓
如果不介意这点,可以参考其他答案更方便的完成任务。

题主提到的思源黑体HW也恰恰符合了这个理念。
关于思源黑体HW可以看看我的另一个答案:最好的编程字体是?

下面是修改的方法:

注意:
修改注册表前先备份!
修改注册表前先备份!

修改注册表前先备份!

Windows 下的 cmd 和 PowerShell 支持字体更换,默认提供了点阵字体和新宋体两个字体。添加自定义字体需要修改注册表,支持添加点阵字体和 TTF 字体。本答案只讨论 TTF 字体。

与 cmd 相关的注册表项在:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\

其中 TrueTypeFont 下的项就是各种不同代码页下的字体名称,会显示在命令提示符设置的字体选择列表中。

这里每一项都是一个字符串值,网上有教程提到可以用多字符串值,但我个人前期测试时失败了,觉得有兴趣的可以试试。
项的名称代表该项支持的代码页,例如默认是0,简体中文是936,日文是932等。
项的值就是字体的名称,具体名称与字体文件名的对应关系可以在下面的注册表项查看:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

可以需要注意的是,这里的字体必须是等宽字体,将非等宽字体加入列表会导致整个列表崩溃,字体回到点阵字体。微软在默认的中文和日文字体名称前都加上了一个星号(*),原因暂未查到,我照做了。
需要在一个代码页下加入多个字体,只要在项名称前加"0",例如需要三个中文字体,则应该有三个项,分别为“936”、“0936”、“00936”,日文就是“932”、“0932”、“00932”,字体越多0越多。

字体添加好后打开命令提示符设置窗口,加入的字体就出现在字体选择列表中了。

P.S.
题主提到的思源黑体HW,从 GitHub 上下载的编译好的字体文件版本并没有设置等宽字体属性,不能直接用在命令提示符,需要自行修改文件。直接修改貌似也会引起一些字形变化的问题,我修改字体的经验几乎为0,如何完美修改请参考其他大神的教程。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式