V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Khlieb
V2EX  ›  字体排印

分享字体测试工具: hb-shape 和 hb-view

  •  
  •   Khlieb · 2018-03-08 17:27:25 +08:00 · 4351 次点击
    这是一个创建于 2481 天前的主题,其中的信息可能已经有所发展或是发生改变。

    HarfBuzz 的开发者推出了两个测试工具:hb-shape 和 hb-view。二者都是命令行程序,既用来测试 HarfBuzz 本身,又可以用来测试字体的使用效果。区别在于 hb-shape 生成实际显现字符的 id 或者索引加上方位信息,hb-view 以图片形式产生字体的排版效果。

    在 HarfBuzz 的下载页面找到 harfbuzz-<版本号>-win32.zip 的文件,下载完毕后解压到当前文件夹即可通过命令提示符食用,还可以可以通过 --help 命令输出帮助信息来了解用法。

    我根据二者输出的帮助信息内容做了翻译,供大家参考:

    用法:
      hb-shape.exe [选项...] [字体文件] [文本]
      hb-view.exe [选项...] [字体文件] [文本]
    
    帮助选项:
      -h, --help                             显示帮助选项
      --help-all                             显示所有帮助选项
      --help-font                            关于字体的选项
      --help-variations                      关于所用字体变化的选项
      --help-text                            关于输入文本的选项
      --help-shape                           关于塑形进程的选项
      --help-features                        关于所用字体特性的选项
      --help-output                          关于目标文件夹和输出形式的选项
      --help-view                            关于输出渲染的选项
    
    字体选项:
      --font-file=文件名                      设置字体文件名
      --face-index=索引                       设置 face 索引(默认:0 )
      --font-size=数字或"upem"                字号(默认:upem (hb-shape)、256 (hb-view))
      --font-funcs=impl                      设置要用的字体功能实现(默认:ft )
    
        受支持的的字体功能实现有:ft/ot
    
    变化选项:
      --variations=列表                      字体变化的逗号分隔列表
    
        字体变化是全局设置的。用于指定变化设置的格式如下。所有有效的 CSS font-
        variation-settings 属性值除“ normal ”和“ inherited ”外也都可接受,虽然并未
        记载在下面。
    
        其格式是一个标签,可选择性地附上等号和数字。例如:
    
          "wght=500"
          "slnt=-7.5"
    
    
    文本选项:
      --text=字符串                           设置输入的文本
      --text-file=文件名                      设置输入文本的文件名
    
        如果没有提供文本,用标准输入方式输入。
    
      -u, --unicodes=16 进制数列              设置输入的 Unicode 码点
      --text-before=字符串                    设置每一行之前的文本内容
      --text-after=字符串                     设置每一行之后的文本内容
    
    塑形选项:
      --list-shapers                         列举可用的塑形器并退出
      --shapers=列表                          设置逗号分隔的塑形器列表以尝试
      --direction=ltr/rtl/ttb/btt            设置文本方向(默认:auto )
      --language=langstr                     设置文本语言(默认:$LANG )
      --script=ISO-15924 标签                 设置文本脚本(默认:auto )
      --bot                                  文本作为段首对待
      --eot                                  文本作为段末对待
      --preserve-default-ignorables          保留默认可忽略的字符
      --remove-default-ignorables            移除默认可忽略的字符
      --utf8-clusters                        使用 UTF8 字节指数,不是字符指数
      --cluster-level=0/1/2                  集群合并级别(默认:0 )
      --normalize-glyphs                     以名义顺序重排字形集群
      --verify                               对塑形结果的表现完善性检测
      --num-iterations=N                     运行塑形器 N 次(默认:1 )
    
    特性选项:
      --features=列表                         字体特性的逗号分隔列表
    
        字体特性可以启用或者禁用,可以全局或者限定指定字符集。用于指定特性设置的格式如
        下。所有有效的 CSS font-feature-settings 属性值除“ normal ”和“ inherited ”外
        也都可接受,虽然并未记载在下面。
    
        范围指数涉及 Unicode 字符之间的方位,除非提供了 --utf8-clusters。后者的范围涉
        及 UTF-8 字节指数。第 1 个字符之前的方位始终是 0。
    
        其格式是 Python 格式的。这里面是它们都怎样运行的:
    
          语法:        值:      开头:    结束:
    
        设置值:
          "kern"        1         0         ∞         # 开启特性
          "+kern"       1         0         ∞         # 开启特性
          "-kern"       0         0         ∞         # 关闭特性
          "kern=0"      0         0         ∞         # 关闭特性
          "kern=1"      1         0         ∞         # 开启特性
          "aalt=2"      2         0         ∞         # 选择第 2 个替代字形
    
        设置索引:
          "kern[]"      1         0         ∞         # 开启特性
          "kern[:]"     1         0         ∞         # 开启特性
          "kern[5:]"    1         5         ∞         # 开启特性,局部性
          "kern[:5]"    1         0         5         # 开启特性,局部性
          "kern[3:5]"   1         3         5         # 开启特性,范围性
          "kern[3]"     1         3         3+1       # 开启特性,单一字符
    
        结合全部:
    
          "aalt[3:5]=2" 2         3         5         # 为某一范围开启第 2 个替代字形
    
    输出目标及文件夹选项:
      -o, --output-file=filename             设置输出文件名(默认:stdout )
      -O, --output-format=format             设置输出格式
    
        支持的输出格式有:text/json (hb-shape)、ansi/png/svg/pdf/ps/eps (hb-view)
    
    查看选项(仅 hb-view ):
      --annotate                             注释输出的渲染成果
      --background=rrggbb/rrggbbaa           设置背景色(默认:#FFFFFF )
      --foreground=rrggbb/rrggbbaa           设置前景色(默认:#000000 )
      --line-space=units                     设置行间距(默认:0 )
      --margin=one to four numbers           输出之外留白(默认:16 )
    
    输出语法(仅 hb-shape ):
        文本:[<字型名称或索引>=<输入过程中的字形集群索引>@<横向位移>,<纵向位移>+<横向推进量>,<纵向推进量>|...]
        json:[{"g": <字型名称或索引>, "ax": <横向推进量>, "ay": <纵向推进量>, "dx": <横向位移>, "dy": <纵向位移>, "cl": <输入过程中的字形集群索引>}, ...]
    
    输出语法选项(仅 hb-shape ):
      --show-text                            输出的每一行之前缀上相应的输入文本
      --show-unicode                         输出的每一行之前缀上相应的输入码点
      --show-line-num                        输出的每一行之前缀上相应的输入行号
      -v, --verbose                          输出的每一行之上的前缀
      --no-glyph-names                       输出字形指数而非名称
      --no-positions                         不输出字形方位
      --no-advances                          不输出字形推进量
      --no-clusters                          不输出集群指数
      --show-extents                         输出字形界限
      --show-flags                           输出字形旗标
      --ned                                  无额外数据:不输出集群或推进量
      -V, --trace                            输出临时的塑形结果
    
    查看选项(仅 hb-view ):
      --annotate                             注释输出的渲染成果
      --background=rrggbb/rrggbbaa           设置背景色(默认:#FFFFFF )
      --foreground=rrggbb/rrggbbaa           设置前景色(默认:#000000 )
      --line-space=units                     设置行间距(默认:0 )
      --margin=one to four numbers           输出之外留白(默认:16 )
    
    应用选项:
      --version                              显示版本号
      --debug                                退出前释放所有资源
    
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2584 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:00 · PVG 19:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.