Linux 上的 Typst 中文字体无法显示粗体和斜体的解决方案

Typst 是为科学写作而诞生的基于标记的排版系统。 它被设计之初就是作为一种替代品,用于替代像 LaTeX 这样的高级工具,又或者是像 Word 和 Google Docs 这样的简单工具。

起初,笔者下载了一个 Typst 简历模板,想试一试编译出来如何。笔者在 VS Code 中进行修改编译,但编译出来的字体显示异常,字体的 粗体斜体 完全不显示,和模板作者提供的示例大相径庭。多方查验,发现主要原因是 Typst 不支持可变字体。

笔者工作环境为 Fedora Linux 40,Typst 版本为 0.11.1,主要使用的字体为 思源系列。最初安装字体的时候,尚不清楚各种字体格式的细节,只随便下载了一个 OTF 格式的包(思源黑体思源宋体),我将这些字体文件安装到了 ~/.local/share/fonts/ 目录下,一直以来都是使用这样的配置,在其他软件的界面一直没有出现问题,导致一开始没有向这个方向思考。

参考 Typst 中文用户指南,在 Typst 的一个 Issues 中我找到了答案。

解决方案

首先运行 typst font --variants 来查看字体是否提供粗细变体

如果可以正常显示粗体和斜体将显示:

Source Han Serif
- Style: Normal, Weight: 700, Stretch: 100%
- Style: Normal, Weight: 250, Stretch: 100%
- Style: Normal, Weight: 900, Stretch: 100%
- Style: Normal, Weight: 300, Stretch: 100%
- Style: Normal, Weight: 500, Stretch: 100%
- Style: Normal, Weight: 400, Stretch: 100%
- Style: Normal, Weight: 600, Stretch: 100%

否则:(你在 MS Word 中看到的是合成的字重,而 Typst 尚不支持伪粗体)

Source Han Sans CN VF
- Style: Normal, Weight: 250, Stretch: 100%

因此,我们需要安装静态字体(思源宋体的 Releases ):
思源字体 Releases
然后将字体文件解压到系统的 /usr/share/fonts/ 目录或者用户的 ~/.local/share/fonts/ 目录下。

当然,你也可以只安装简体中文,但是因为 Releases 中没有单独提供简体中文的静态版本,就需要通过 这个链接 中的方案来将可变字体转换为静态字体。步骤略繁琐,因此笔者建议下载全部静态字体。

之后,你的 Typst 生成的 PDF 将可以通过 _斜体_*粗体* 来显示 斜体粗体

对于「楷体」或者「仿宋」的加粗,可以使用 Cuti 这个包实现伪粗体。

参考

https://typst-doc-cn.github.io/docs/chinese/
https://github.com/typst/typst/issues/725
https://github.com/nju-lug/modern-nju-thesis/issues/1
https://github.com/typst/typst/discussions/2508

根据引用中的代码片段,可以看出v-html是Vue.js框架中的一个指令,用于将富文本内容渲染为HTML格式。v-html指令可以将包含HTML标签的字符串内容解析并显示在页面上。因此,如果在v-html内部的字符串中使用了HTML的粗体斜体标签,那么渲染后的内容就会显示粗体斜体。 注意,v-html指令只能渲染静态的HTML内容,而不会执行任何动态绑定或JavaScript代码。所以,如果想要在v-html中动态显示粗体斜体的内容,需要通过在字符串中插入相应的HTML标签来实现。 总结起来,v-html指令可以用于显示包含粗体斜体的HTML内容。在Vue.js中,可以通过在v-html内部的字符串中插入相应的HTML标签来实现粗体斜体显示效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [F5在线HTML编辑器 v4.0](https://download.csdn.net/download/weixin_38666232/12912389)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [v-charts x轴字体斜显示](https://blog.csdn.net/dcf7814/article/details/101863153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [富文本,v-html](https://blog.csdn.net/qq_43780814/article/details/120967692)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值