如何在Typst中让字符串内容自动应用排版字符转换?
解决Typst外部读取字符串的智能标点转换问题
Typst在普通文本模式下会自动将直撇号、直引号等字符转换为排版规范的弯形符号,但从CSV/TOML等外部文件读取的字符串,直接输出或嵌入内容块时无法触发这一转换。以下是两种可行的解决方法:
方法一:使用text()函数触发全文本解释
text()函数会将传入的原始字符串当作普通Typst文本重新解析,既会转换智能标点,也会识别文本内的Typst语法(比如粗体、斜体标记)。示例代码:
// 读取TOML文件 #let config = toml.read("content.toml") // 用text()包裹读取到的字符串 #text(config.description) // 读取CSV文件示例 #let items = csv.read("items.csv") #for item in items { text(item.note) }
方法二:使用smart()函数仅转换标点
如果你只需要转换标点符号,不想解析字符串内的Typst语法,推荐使用smart()函数,它专门处理智能标点转换,不会触发其他语法解析:
#let data = toml.read("data.toml") #smart(data.intro)
这两种方法都能让外部读取的字符串实现和普通文本一致的标点排版效果。
内容的提问来源于stack exchange,提问作者dufei
相关产品推荐
相关产品推荐

