如何使用 Alt+code 而不是默认 (ASCII) 字符输出我的字体字符?

Posted

技术标签:

【中文标题】如何使用 Alt+code 而不是默认 (ASCII) 字符输出我的字体字符?【英文标题】:How to output my font characters with Alt+code instead of default (ASCII) characters? 【发布时间】:2021-11-14 23:12:09 【问题描述】:

我正在创建自己的字体。问题是,我的字体基于符号(而不是字符),我的字体中有 120,000 个符号。显然这是一个巨大的数字,使用普通的 A-Z 字符根本不可能写出所需的符号。

所以我在想是否可以使用 Alt+code 方法输入我的符号编号以便打印它。是否可以(在 Windows 7 上)更改我的计算机设置以打印我所需的符号而不是使用 Alt+code 方法的常规 ASCII 字符?

如果不能使用 Alt+code 方法,是否可以使用 Ctrl+字母代码来打印我的符号?我的意思是 Ctrl+A-B-C 应该打印一个符号,而 Ctrl+A-B-T 应该打印一些其他符号(正如我指定的那样)?

非常感谢。

【问题讨论】:

【参考方案1】:

字体不能支持 120,000 种不同的符号。在内部,它们具有 16 位数字字形 ID,因此不能支持超过 64K 的字形。

您说您使用“符号而不是字符”。这听起来像是您不想使用 Unicode 编码。但唯一的选择是使用Windows symbol encoding。虽然原则上可以使用格式 4 cmap 子表将 64K 代码从 0x0 映射到 0xFFFF,但在实践中,一些实现预计不超过 224 个图形字符。

最好将符号编码为 Unicode PUA 字符,使用平台 3 编码 10(Windows / 完整 Unicode)和 format 12 cmap subtable。这样,您可以使用任何 Unicode PUA 代码点,U+E000 - U+F800 或 U+F0000 - U+1FFFFF。这足以容纳 120,000 个符号。

但是,单一字体仍将限制为 64K 字形,因此您必须将符号分成两种字体。

至于键盘输入...祝你好运记住 120,000 个符号中的每一个的数字。但是,无论您能记住多少,您都可以使用 ALT + 在数字键盘上输入它们。但是,您可能想为此创建一个特殊的输入法:如果您只记得如何输入十几个符号,那么拥有 120,000 个符号有什么意义。

【讨论】:

谢谢。我想我会放弃麻烦,只需在 VB 或 C# 中创建一个符号数组。

以上是关于如何使用 Alt+code 而不是默认 (ASCII) 字符输出我的字体字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Visual Studio Code 作为 mercurial 的默认 MergeTool

如何默认到其他目录而不是主目录

如何在 VS Code 中默认打开文本换行

如何让Edge浏览器整体作为一个窗口,而不是每个标签页(选项卡)作为一个窗口?

如何让Edge浏览器整体作为一个窗口,而不是每个标签页(选项卡)作为一个窗口?

安装时,由于与多个python库不兼容,目标文件不能包含非asci字符,求详细解决方案