You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在RStudio中加快Quarto PDF渲染?xelatex多次运行解析

Quarto渲染时多次运行XeLaTeX的原因、优化方法及影响

为什么会跑10次XeLaTeX?

TeX系列引擎(包括XeLaTeX)本身需要多次编译才能处理依赖前次编译结果的元素——比如交叉引用、目录、图表编号,还有hyperref这类处理链接的宏包,都得靠前一次生成的.aux等临时文件才能把内容正确对应上。

Quarto会自动判断编译次数,直到所有元素稳定不再变化。但你这里跑了10次还触发“maximum number of runs (9) reached”警告,大概率是文档存在循环引用(比如A引用B,B又引用A),或是某些宏包/设置导致每次编译都有内容变动,让Quarto认为还需要继续编译,直到触达预设次数上限才停止。

怎么减少运行次数?

  • 排查交叉引用:先检查有没有循环引用的情况,这种循环会让TeX每次编译都更新标记,陷入无限编译的死循环。
  • 精简宏包配置:如果用了自动生成动态内容的宏包,评估是否真的需要,或是调整设置让输出稳定下来。
  • 手动指定编译次数:在Quarto的YAML配置中添加latex-runs参数,直接固定编译次数,比如3次(足够处理大部分常规引用和目录需求):
    format:
      pdf:
        latex-runs: 3
    
  • 清理临时文件:旧的.aux、.toc等临时文件可能干扰编译检测,渲染前删掉这些文件,让Quarto重新生成干净的临时文件。

对最终渲染结果有啥影响?

  • 如果是正常的3-4次编译,最终输出肯定是准确的,所有引用、目录、编号都会正确显示。
  • 但触发次数上限警告后,需要留意两种情况:要么部分引用、编号没更新到位(比如显示成??),要么其实输出已经稳定,只是Quarto的检测机制误判了变化。直接打开生成的PDF检查交叉引用、目录、图表编号是否正确即可——要是一切正常,警告可以忽略;要是有错误,就得回去排查循环引用或宏包的问题。

内容的提问来源于stack exchange,提问作者Jean-Alexandre Patteet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:50:30