使用 ttf 思源字体后,所有字符都成了豆腐块,如何解决?
现象与原因
思源字体的可变版本提供*.ttf/*.ttf.ttc与*.otf/*.otf.ttc等格式。
思源字体包含很多字形。受*.ttf/*.ttf.ttc格式限制,Typst 使用的底层库 ttf-parser 加载这些格式的思源字体会溢出(65536 > u16::MAX),导致 PNG、SVG 导出与基于 SVG 的 Tinymist 预览无法正常调用字体,字符无论中西全都变成空白或豆腐块。
(导出 PDF 时 Typst 会使用另一种底层库,不受影响。)
解决办法
卸载已安装的
*-VF.ttf*。不想或不能卸载?
如有特殊原因实在不能卸载,那么不卸载,下一步把「字重范围」设置成「可变」亦可。实测 Typst v0.15.0 遇到同名字体时会按「可变
*.otf*→ 可变*.ttf*→ 静态*.otf*」的顺序调用。前往 CERNET 校园网联合镜像站 → Adobe 字体,下载安装
*.otf*版本。该页面「下载链接」一栏始终指向
*.otf*,所以选项任意组合生成的链接都适用于 Typst;不过一般保持默认选项就行。
如果遇到问题,可参考如何设置(中文)字体,尝试重启 VS Code、检查字体名称等。
Y.D.X.