微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 RMarkdown 不能正确转义第二个 LaTeX 表?

如何解决为什么 RMarkdown 不能正确转义第二个 LaTeX 表?

我开发了 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,out = 'latex')
```

请注意,如果我省略了 b2 块,这可以很好地构建为 PDF。但是有了它,构建就会失败,因为只有 first 表可以正常运行。在 .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}"

问题解决了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。