使用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}
关键修改点
- 替换
&为&:LaTeX的对齐符号就是原生的&,不需要转义——这是HTML输出和PDF输出的核心差异之一。 - 在YAML中添加
amsmath依赖:通过extra_dependencies: amsmath告诉pandoc在生成LaTeX文档时自动加载amsmath包,让align环境能被正常识别。
如果你更习惯用LaTeX原生命令,也可以在文档开头手动引入包(不过YAML配置的方式更符合R Markdown的最佳实践):
\usepackage{amsmath}
验证效果
修改后重新编译PDF,Test 2的align公式应该能正常渲染,效果和HTML输出保持一致。
内容的提问来源于stack exchange,提问作者Guy Dotan
相关产品推荐
相关产品推荐

