如何在Quarto的YAML头中引入自定义数学命令(如关联.sty文件)
在Quarto中全局使用自定义数学命令的方法
当然可以通过引入.sty文件的方式,在Quarto文档中复用自定义数学命令,甚至能配置成全局生效,不用每个文档重复设置。
1. 单个文档引入.sty文件
直接在文档的YAML头部添加include-in-header字段,指向你的自定义数学命令.sty文件:
--- title: "我的Quarto文档" include-in-header: - file: "custom-math.sty" ---
注意:.sty文件的路径要和当前文档相对应,比如放在同一目录下就直接写文件名,子目录的话写./subdir/custom-math.sty。
2. 全局配置(所有文档自动加载)
如果想让所有Quarto文档都自动加载这些命令,在项目根目录创建_quarto.yml配置文件,在里面针对不同输出格式设置include-in-header:
project: type: default format: html: include-in-header: "custom-math.sty" pdf: include-in-header: "custom-math.sty"
这样不管是生成HTML还是PDF格式,所有文档都会自动加载custom-math.sty里的命令。
3. 无需.sty文件:直接在YAML中定义命令
如果不想单独维护.sty文件,也可以直接在YAML头部写自定义命令:
--- title: "示例文档" include-in-header: - text: | \newcommand{\R}{\mathbb{R}} \newcommand{\norm}[1]{\left\|#1\right\|} \newcommand{\inner}[2]{\langle #1, #2 \rangle} ---
同样,把这段text内容放到_quarto.yml的对应位置,就能全局生效。
注意事项
- HTML输出时,Quarto会通过MathJax解析LaTeX命令,确保你的自定义命令是MathJax支持的(绝大多数标准LaTeX数学命令都兼容)。
- PDF输出时,LaTeX编译器会直接处理
.sty文件里的命令,和常规LaTeX文档一致。
内容的提问来源于stack exchange,提问作者rturquier
相关产品推荐
相关产品推荐

