Skip to content

使用 ttf 思源字体后,所有字符都成了豆腐块,如何解决?

使用 ttf 思源字体后,所有字符都成了豆腐块,如何解决?

现象与原因

思源字体的可变版本提供*.ttf/*.ttf.ttc*.otf/*.otf.ttc等格式。

思源字体包含很多字形。受*.ttf/*.ttf.ttc格式限制,Typst 使用的底层库 ttf-parser 加载这些格式的思源字体会溢出(65536 > u16::MAX),导致 PNG、SVG 导出与基于 SVG 的 Tinymist 预览无法正常调用字体,字符无论中西全都变成空白或豆腐块。

(导出 PDF 时 Typst 会使用另一种底层库,不受影响。)

解决办法

  1. 卸载已安装的*-VF.ttf*

    不想或不能卸载?

    如有特殊原因实在不能卸载,那么不卸载,下一步把「字重范围」设置成「可变」亦可。实测 Typst v0.15.0 遇到同名字体时会按「可变*.otf* → 可变*.ttf* → 静态*.otf*」的顺序调用。

  2. 前往 CERNET 校园网联合镜像站 → Adobe 字体,下载安装*.otf*版本。

    该页面「下载链接」一栏始终指向*.otf*,所以选项任意组合生成的链接都适用于 Typst;不过一般保持默认选项就行。

如果遇到问题,可参考如何设置(中文)字体,尝试重启 VS Code、检查字体名称等。

另请参见

贡献者

页面历史

Comments
  • Latest
  • Oldest
  • Hottest

基于 MIT 许可发布