由于更新不希望在针织物中进行消毒(转义)

问题描述 投票:2回答:1

去年春天,我使用类似于下面的最小工作示例(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”块的一部分。您可以尝试此操作,并找到相同的问题。]

r latex escaping r-markdown knitr
1个回答
3
投票

这是一个已知问题,解决方案是将raw attributes添加到pandoc,以确保不会转义块内的内容。

1)加md_extensions: +raw_attribute2)添加乳胶块

对于您的示例,其工作方式如下:

---
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

© www.soinside.com 2019 - 2024. All rights reserved.