【发布时间】:2015-12-29 12:59:37
【问题描述】:
我正在 Linux 中创建一个小 (bash) 脚本来转换等宽字体,并且我想在提供的字体不是等宽字体时返回错误。
我一直在查看 fontconfig fc-query 命令,它具有 spacing 属性,但很多时候该属性没有设置(或者我不知道如何检索它)。有没有更好的方法来检查字体是否为等宽字体?
我目前支持的字体是 TrueType (.ttf) 和 X11 type (.pcf.gz, .pfb) 字体。
【问题讨论】:
-
即使元数据告诉你字体也可以是等宽字体。只看字形的 with 。比较“i”和“m”和/或其他字形的宽度。
-
@allcaps 有没有办法在 bash 脚本中做到这一点?
-
Bash 本身不会做太多事情。您需要额外的软件。我会使用 FontForge,因为它有 Python 和命令行界面。作为奖励,您可以获得一些额外的字体信息。
-
@allcaps 抱歉,这就是我的意思,命令行界面。我会调查 FontForge!
-
真正的问题是“等宽是什么意思”?正如 allcaps 所提到的,即使没有设置相关的元数据位,字体也可以是等宽的,但即使它不是统一等宽的,它也可能有一个字形子集,它们都使用相同的水平度量,所以你要去必须检查与您的需求相关的所有字符 - 要求 FontForge 执行此操作的 python 脚本是迄今为止最好的解决方案。
标签: linux bash fonts truetype fontconfig