Skip to content

中英文如何使用不同的字体?

中英文如何使用不同的字体?

✅ Typst 0.13 已改进

#5305 增加了covers选项。例如西文用 Times New Roman,中文用 SimSun(中易宋体),请这样设置:

typst
#set text(font: (
  (name: "Times New Roman", covers: "latin-in-cjk"),
  "SimSun"
))
分别设置“中文”和English字体
Typst compiled image

其中covers: "latin-in-cjk"的作用在于禁止中西共用标点(引号“”、破折号——等)使用 Times,从而让这些标点使用第二项 SimSun;若删除covers: "latin-in-cjk",由于 Times 位列第一且有相应字形,中西共用标点会错误地使用西文字体,导致其宽度不符合中文习惯,参考以下旧方案的效果。

如果中西引号需要同时使用,可进一步使用智能引号

如果你使用旧版本,请使用以下旧方案。

设置字体可以使用一个列表,Typst 会按照列表中的顺序依次尝试使用字体。因此只需把英文字体放在中文字体前面即可。例如:

typst
#set text(font: ("Times New Roman", "SimSun"))
分别设置“中文”和English字体
Typst compiled image

当然,这种方式严格来说并不是“中英文使用不同的字体”,但是 99% 的情况下已经够用了。

如果你是剩下的 1%

如果你发现了中文引号等标点不对劲,那么你可以用这个修复 #show regex("[“‘’”]|——|……"): set text(font: "SimSun")

如果你还需要对中文字体进行特殊处理,例如只缩小中文字体的大小,请参考如何协调中西字体的字号

另请参见

Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v3.8.0

基于 MIT 许可发布