我开发了 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/