如何设置(中文)字体?
Typst 内置字体不含汉字,请按下文设置中文字体,否则随机选出的中文字体可能非常魔幻。
简单需求
在*.typ文档开头添加以下代码,即可设置语言为中文,设置字体为 Noto Serif CJK SC(谷歌发行的思源宋体简体中文版)。
#set text(lang: "zh", font: "Noto Serif CJK SC")以上设置只有安装了 Noto Serif CJK SC 字体才会生效。typst.app 已预装该字体,保证生效;如果本地使用发现无效,请按以下步骤安装思源宋体,或者参考后文使用自己安装的其它字体。
前往 CERNET 校园网联合镜像站 → Adobe 字体 → 思源宋体 → 下载链接,保持默认选项,复制 Regular、Bold 两个链接并下载。
安装上一步所得
*.otf,一般双击文件即可。(仅限 VS Code 用户)重启 VS Code。
编辑
*.typ文档,在开头添加以下代码。typst#set text(lang: "zh", font: "Source Han Serif SC")
复杂需求
中英文分设字体
请如下设置,详见专门页面中英文如何使用不同字体。
#set text(lang: "zh", font: (
(name: "New Computer Modern", covers: "latin-in-cjk"), // English
"Source Han Serif SC", // 中文
))
分别设置“中文”和English字体
使用自己安装的其它字体
安装字体很简单,上传到 typst.app 或本地双击就行;但确定字体名称有时比较复杂。比如系统里显示「霞鹜文楷」,而 typst 的#set text(font: …)目前只认LXGW WenKai;再比如系统里显示 jf-openhuninn-2.1,而 typst 反而只认jf open 粉圓 2.1。
确定字体名称有下面这些方法。
编辑
*.typ文档,输入#set text(font: ",利用自动补全确定字体名。用 VS Code 打开
*.typ文档,单击左边栏 → Tinymist → TOOL → Fonts,在新出现的窗口中搜索查看字体,单击 Copy / Insert / #set。如果左边栏没有 Tinymist,可按 F1 调出命令面板,搜索 Typst: Show Font View 或「Typst: 显示字体视图」,回车。
在命令行调用
typst fonts。调用
typst fonts --variants可显示字体文件路径,再加参数--ignore-system-fonts --font-path …可限制搜索目录。详见typst fonts --help。
设置的字体未生效?
如果全篇都无效,请检查字体名称是否有误
这种情况编译应该会警告
warning: unknown font family: …。如果只是粗体、斜体无效,请保证字体有所需变体
这种情况编译没有警告。
可用 VS Code Tinymist 字体视图或
typst fonts --variants查看字体变体。若缺少,请检查是否完全安装了字体;确实没有可考虑用其它方法补救:粗、斜。
typst fonts --variants输出示例以下 Source Han Serif 有多种字重(weight),支持加粗;
Source Han Serif ├ C:\WINDOWS\Fonts\SourceHanSerifCN-ExtraLight.otf │ Style: Normal, Weight: 250, Stretch: 100% ├ C:\WINDOWS\Fonts\SourceHanSerifCN-Light.otf │ Style: Normal, Weight: 300, Stretch: 100% ├ C:\WINDOWS\Fonts\SourceHanSerifCN-Regular.otf │ Style: Normal, Weight: 400, Stretch: 100% ├ C:\WINDOWS\Fonts\SourceHanSerifCN-Medium.otf │ Style: Normal, Weight: 500, Stretch: 100% ├ C:\WINDOWS\Fonts\SourceHanSerifCN-Bold.otf │ Style: Normal, Weight: 700, Stretch: 100% ├ C:\WINDOWS\Fonts\SourceHanSerifCN-SemiBold.otf │ Style: Normal, Weight: 600, Stretch: 100% └ C:\WINDOWS\Fonts\SourceHanSerifCN-Heavy.otf Style: Normal, Weight: 900, Stretch: 100%而以下 SimSun 只有 400 一种常规字重,不支持加粗。
SimSun └ C:\WINDOWS\Fonts\simsun.ttc Style: Normal, Weight: 400, Stretch: 100%
使用不全局安装的字体
如果不想全局安装字体,可将 font path(s) 指向字体所在目录。
- 命令行:使用参数
--font-path或环境变量$TYPST_FONT_PATHS。详见typst info和typst compile --help。 - VS Code Tinymist:设置
tinymist.fontPaths。不过注意使用 VS Code 打开单文件(区别于打开文件夹)时这一功能可能不可用。
另请参见
- 差距分析:若不配置字体就写中文,回落出的字体会很混乱(级别:Advanced)
- Writing non-Latin (e.g. Chinese) text without a configured font leads to unpredictable font fallback · typst#5040 (open issue)
- Chinese rendering error · typst#5900 (open issue)
- Chinese text spacing and bold rendering issues · webapp-issues#590 (closed issue, not planned)
- Support variable fonts · typst#185 (closed issue)
Y.D.X.