去年春天,我使用类似于下面的最小工作示例(MWE)的代码来做到这一点:https://cdn.advocacy.sba.gov/wp-content/uploads/2019/04/23142650/2019-Small-Business-Profiles-MA.pdf
根据knitr文档,不应清理表代码。但是,如果您编织了MWE,您会看到几个字符确实被清除了(转义)。例如,\
有时会变成\textbackslash{}
。因此,清理代码后似乎某些软件包更新已更改。如果仅从下面复制RMD表代码并将其粘贴到TeX输出中,则可以正常编译。
我曾尝试恢复到去年的许多软件包,但无济于事。
---
title: "MWE"
output:
pdf_document:
keep_tex: yes
---
\begin{tabular}{@{}lll}
\begin{tabular}{ll}
A & B \\
A & B \\
\end{tabular}
&
\begin{tabular}{ll}
A & B \\
A & B \\
\end{tabular}
&
\begin{tabular}{ll}
A & B \\
A & B \\
\end{tabular}
\end{tabular}
* [在我的原始代码中,它是“ asis”块的一部分。您可以尝试此操作,并找到相同的问题。]
这是一个已知问题,解决方案是将raw attributes
添加到pandoc,以确保不会转义块内的内容。
1)加md_extensions: +raw_attribute
2)添加乳胶块
对于您的示例,其工作方式如下:
---
title: "MWE"
output:
pdf_document:
md_extensions: +raw_attribute
keep_tex: yes
---
```{=latex}
\begin{tabular}{@{}lll}
\begin{tabular}{ll}
A & B \\
A & B \\
\end{tabular}
&
\begin{tabular}{ll}
A & B \\
A & B \\
\end{tabular}
&
\begin{tabular}{ll}
A & B \\
A & B \\
\end{tabular}
\end{tabular}
```
或在代码块中使用它时:
```{r, results = "asis"}
cat("```{=latex}")
// your latex code
cat("```")
```
P.S .:此功能需要pandoc版本2.0.0