0

抱歉,如果这不是这里的有效问题。

我正在尝试将 DejaVu Sans Mono 字体与另一种免费字体合并,以便它涵盖 CJK unicode 区域并在 Windows 命令提示符下可用。结果是:它在所有其他文本编辑器上都清晰显示,但在 Windows 命令提示符设置中无法选择。看起来系统没有将合并的字体确定为等宽字体,但我不知道为什么。如果您提出任何可能的原因,我将不胜感激。

这是我所有的条件。

  1. 目标:将 DejaVu Sans Mono(ver.2.37) 与 D2Coding(一种包含大量中文、日文和韩文字符的开源等宽字体。ver.1.3.2)与 FontForge 合并。(ver.20201107)

  2. 事实证明,DejaVu Sans Mono 的所有字符的宽度均为 1233。所以我从 D2Coding(unicode 脚本:hani、jamo、hang、kana)中制作了宽度为 2466 的所有 CJK 字符,并删除了任何其他字符。(当然等宽字体需要所有字符具有一致的宽度。但是,我正在尝试寻找其他解决方案,因为大多数与 CJK 兼容的等宽字体的 CJK 字符的宽度是其他 ANSI 字符的两倍。我检查了其他等宽字体具有此属性,并且仍然可以在 Windows 命令提示符设置上进行选择,因此我认为强制所有具有相同窄宽度 1233 的字形并不是我的情况的最佳解决方案。)

  3. 我使用 Element>Merge Fonts 将此字符添加到 DejaVu Sans Mono 中。我发现每个未定义的字形都有其默认宽度为全宽(2466),在添加不同字体的字形之前是半宽(1233)。看起来默认宽度是由整个字形的最大宽度设置的。这可能是最可能的原因,但我不知道如何在 FontForge 上设置未定义字符的“默认”宽度。

在此处输入图像描述

  1. 在 ttf 中渲染结果并安装在计算机中后,它在其他文本编辑器上看起来很好,但我无法在 windows 命令设置中选择我的字体。(命令提示符>属性>字体,代码页 cp949)

我的自定义字体显示良好的记事本++ 示例。

  1. 我还检查了我的注册表区域。有一些建议可以为命令提示设置添加自定义字体,去HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Console\TrueTypeFont. 事实证明我在控制台键下没有任何注册表键(Windows ver.1909 build 18363.1556)。通过自己创建密钥来强制密钥是行不通的。我有可能弄乱了我的注册表,但是由于命令提示属性上出现的任何其他等宽字体都没有问题,所以我认为这对我来说不是问题。

我试图解释在哪种情况下我有问题,但如果您需要,请随时询问其他情况。

4

0 回答 0