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

使用Knitr在R Markdown中编译多行LaTeX公式PDF报错求助

解决R Markdown编译PDF时多行LaTeX公式报错的问题

看起来你遇到的问题根源有两个:一是在LaTeX的align环境里错误使用了HTML转义字符&(应该用原生的&),二是需要确保你的LaTeX文档加载了amsmath包(align环境属于这个包)。

问题分析

  • 转义字符错误:你在align里写的&是HTML中表示&的转义字符,但输出PDF时,pandoc会把这个直接传给LaTeX——而LaTeX的align环境需要用&来对齐公式,&会被判定为无效语法,直接触发编译报错。
  • 缺少依赖包:align是amsmath宏包提供的环境,默认的pandoc模板可能没有自动加载这个包,导致LaTeX无法识别该环境。

解决方案

修改你的R Markdown代码如下:

---
title: "Test"
date: "1/16/2018"
output: 
  pdf_document:
    extra_dependencies: amsmath
---
## R Markdown
Testing to see if a multi-line latex equation works.
#### Test 1:
$$ f(x) = x^5 + x^3 + x $$
$$ g(x) = y^{x+1} $$
#### Test 2:
\begin{align}
f(x) &= x^5 + x^3 + x \\
g(x) &= y^{x+1}
\end{align}

关键修改点

  1. 替换&为&:LaTeX的对齐符号就是原生的&,不需要转义——这是HTML输出和PDF输出的核心差异之一。
  2. 在YAML中添加amsmath依赖:通过extra_dependencies: amsmath告诉pandoc在生成LaTeX文档时自动加载amsmath包,让align环境能被正常识别。

如果你更习惯用LaTeX原生命令,也可以在文档开头手动引入包(不过YAML配置的方式更符合R Markdown的最佳实践):

\usepackage{amsmath}

验证效果

修改后重新编译PDF,Test 2的align公式应该能正常渲染,效果和HTML输出保持一致。

内容的提问来源于stack exchange,提问作者Guy Dotan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:25:00