r - 为什么 RMarkdown 无法正确转义第二个 LaTeX 表?

标签 r latex r-markdown

我开发了 R 包 vtable,最近有人报告了这个错误,我发现它对于 RMarkdown 非常令人困惑。

具体来说,当编织为 PDF 时,我输出的第一个表格很好,但第二个表格没有正确转义。 但仅限于第一行

这是一个例子:

---
title: "Untitled"
author: "Author"
date: "Date"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(vtable)
d <- data.frame(a = 1)
```

```{r b1, results = 'asis'}
vtable(d, out = 'latex')
```

```{r b2, results = 'asis'}
vtable(d, out = 'latex')
```

请注意,如果我省略 b2 block ,则可以正常构建为 PDF。但有了它,构建就会失败,因为只有第一个表可以正常运行。在 .tex 输出中,其代码为

\begin{table}[!htbp] \centering 
 \renewcommand*{\arraystretch}{1.1} 

\caption{Variable Table}

\begin{tabular}{p{0.290909090909091\textwidth}p{0.145454545454545\textwidth}p{0.363636363636364\textwidth}}
\hline
\hline
Name & Class & Values \\ 
\hline
a & numeric & Num: 1 to 1\\ 
\hline
\hline
\end{tabular}
\end{table}

但是第二个搞砸了,一些字符被错误地转义并被视为文本。更奇怪的是,只有第一行被搞乱了。该表的 LaTeX 代码与前面的代码块完全相同,只是第一行是

\textbackslash begin\{table\}{[}!htbp{]} \centering 

其余的工作正常。如果我添加第三个/第四个/等等。表他们同样有一个困惑的第一行。

那么,在 RMarkdown 中,是什么导致仅第二个表及后续表格的第一行被不正确地转义呢?并且,关于如何使表格正确显示有什么想法吗?谢谢!

最佳答案

根据上面 @user20650 的评论:

vtable() 的输出(通过 dftoHTML())在转义之前开始

"\\begin{table}[!htbp] \\centering \n \\renewcommand*{\\arraystretch}{1.1} \n"

RMarkdown 很难处理所有这些换行符 \n

通过将转义前输出更改为

"\\begin{table}[!htbp] \\centering \\renewcommand*{\\arraystretch}{1.1}"

问题已解决。

关于r - 为什么 RMarkdown 无法正确转义第二个 LaTeX 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66982509/

相关文章:

r - 如何在 RMarkdown Latex 文档中写入特殊字符?

R markdown,隐藏库输出

r - knitr:运行Rmarkdown文档中的所有 block

r - 我应该如何在 Rmarkdown 中打印数据框中的分数?

r - 在多行中减去一行值

regex - 在输出中查找并替换为正则表达式

r - valueBox shinydashboard/shiny 中的货币符号

python - 我的一长行 Python 代码在投影仪幻灯片中没有很好地显示

r - purrr::pmap 用于具有多个输入和多个返回值的函数

r - 使用身份标度时为 alpha 添加图例