4

想知道TrueType 字体中cmap 表的“字符代码”是什么。Microsoft 谈论Character to Glyph Index Mapping Table,但我不明白字符或字形索引的含义。

想知道您是否在字体文件中的某处指定了编码,例如 Unicode 11.0,然后字符代码等于 Unicode 代码点,例如U+0061for a。或者,如果字符代码是“浏览器”字符代码(我猜是十进制代码),例如97for a

基本上想知道如何将键盘字符映射到字体字形,以及这意味着什么。我认为您并不想将键盘代码映射到字体字形,而是将 unicode 代码映射U+0061到字体字形,所以如果在 JavaScript(例如)中您可以这样做,并且如果您的字体支持\u03A9它,它会给您。Ω

试图理解字体文件的结构,即它如何将数学字形映射为向量/路径,到某种字符或代码。

4

1 回答 1

7

简短但可能并不需要的答案当然是“阅读 OpenType 规范。这需要一段时间”,所以稍微长一点但更简单且不太详细的答案是http://pomax.github.io/CFF-glyphlet -fonts,虽然它跳过了TTF,所以让我们在这里看看:

考虑到您将字体应用到的上下文,您的输入代码将通过任何适用的 CMAP 运行,它将计算机的代码(ascii 代码、unicode 代码点、ISO-2022-jp、你有什么)映射到字形 id。特别是对于 TTF,该 id 然后用作“loca”表中的数组偏移量,该表是“数据位置的字形索引”表,并为字体包含的每个字形指定“glyf”表中的字节偏移量。然后您在该字节偏移处查阅 glyf 表,并开始解析https://docs.microsoft.com/en-us/typography/opentype/spec/glyf指定的字节

于 2018-09-18T19:56:50.893 回答