发布网友 发布时间:2022-04-23 19:13
共3个回答
热心网友 时间:2023-10-14 10:54
中文字体上市时附带在字体文件中的信息不是很方便管理。比如方正的雅宋系列,磅值从粗到细分为:特雅、大雅、粗雅、中粗雅、中雅、标雅、准雅、细雅、纤雅。此外还有三个不同的字型:风雅、博雅、博雅方刊。但这些字体装入电脑后,通常是按照拼音首字母的顺序来排列的,所以使用查找时,很不方便无法一次浏览本字族下所有磅值的字体。所以想问,有没有什么方式是可以重新编辑字体信息的。比如我想改为方正雅宋-准、方正雅宋-特......类似 Helvetica Litgt, Helvetica Regular 这样。安全的做法之一是用命令行工具 ttx(建议从 AFDKO 获得)修改 name 表的相关的 name ID(影响字体与家族的名称和关系——如果只关心在 InDesign 之类非微软环境下的字体名称显示,那么正确填写 name ID 16 和 17 就够了,不用去管编号较小的几个字体名 ID 的历史遗留烂摊子)以及 OS/2.usWeightClass(影响字重排序)。目前的典型情况是在 TrueType 与 OpenType 字体中用 `cmap` 表记录 glyph 与 Unicode 字符的对应关系。也有内部用各种遗留(legacy)编码的,字体内部会标明自己的 `cmap` 存的是什么编码。对,字符是一个抽象概念,你的理解很正确(如果我没理解错你的意思的话),所以,以 Unicode 字体为例,`cmap` 里可以理解为是用16位整数记录字形所对应的 Unicode 字符,因此你可以把它理解为 UCS-2 或 UTF-16,而且是 big-endian 的(因为 TrueType/OpenType 文件是 big-endian 的)。其他内部编码的字体就用8位或16位或32位整数记录其他字符集的编码。但是,注意但是,尽管 `cmap` 表的目的就是存储字形与字符的映射,但它不是那么平白地存储一条一条的「字形ID:字符」数据,而是为了性能与存储优化而有特殊的结构。比如,如果基本对应范围确定的字符集,就按字符集里的字符顺序挨个排列字形ID,或者如果字形分布很零散,就一段一段地排列字形ID,并记录每一段之间的差值。
热心网友 时间:2023-10-14 10:54
加载字体文件。确定要输出的字体大小。输入这个字符的编码值根据字体文件里面的Charmap,把编码值转换成字形索引(就是这个字符对应字体文件中的第几个形状)根据索引从字体中加载这个字形。将这个字形渲染成位图,有可能进行加粗,倾斜等变换。注意这里的倾斜和倾斜字体不同,它只是从算法上对位图进行变换,与专门制作的加粗字体是不一样的。字符编码,就是通过步骤3里面的Charmap来查找对应字形的。常用的Charmap就两种,一种是Apple Roman编码的,一种是Unicode编码的。大部分时候我们用的都是Unicode,Apple Roman是老版本的Mac OS所用的一种只有8bit的字符编码Mac OS Roman。一般渲染系统也都会优先选择Unicode的Charmap。具体包含什么样的Charmap取决于你的字体。比如Windows内置的宋体就包含Apple Roman和Unicode两种,雅黑带了两个Unicode,Adobe的SourceCode Pro则是带了两个Unicode和一个Apple Roman的Charmap。在选择Charmap时,如果和你输入的字符编码不一样的话,输出的字形要么是错的,要么就根本找不到对应的字形。
热心网友 时间:2023-10-14 10:55
我以前手头也有几百款 Typeface,后来发现风格大量雷同不说,各种风格质量尚佳的也就那么几款。于是我在尝试把字体备份到 Dropbox 里时,刻意只留下风格独特、质量优秀的字体,觉得瞬间清爽了很多。更重要的是,当我尝试通过正规途径购买几款心仪的 Font (搞不清 typeface 和 font 区别的朋友们,先不要想着整理了,补补基本常识吧)时,我反而不再想用另外几款相同风格、质量不错的下载字体。然后我就把它们都删了。如何有效地整理字体、音乐、电影、软件等等这些,当你投入正版怀抱后,一是你不会再有那么多需要整理的杂七杂八,二是你不会再去想用那些杂七杂八。