繁体   English   中英

Stargazer 的 Rmarkdown:如果 align 设置为 TRUE,则 LaTeX 错误

[英]Rmarkdown of Stargazer: LaTeX Error if align is set to TRUE

我正在与stargazer ,我想为一个简单的lm对象生成LaTeX输出。 问题是我无法设置align = TRUE而不会出错。

LaTeX 错误:\\caption 外浮动。

我检查了它,消息说的是错误的。 Stargazer输出直接复制到 Latex 文档中可以正常工作。 将其复制到rmarkdown文档中会产生相同的错误(这并不奇怪,但我只是想确定一下)。 在玩了一会儿之后,我rmarkdown如果删除了重要的星星(*)(或精确的^{***} ),它可以在rmarkdown工作。 但是, stargazer默认生成它们,它们也是输出的重要组成部分。

有没有办法让它工作?

---
header-includes:
- \usepackage{dcolumn}
output: pdf_document
---

## R Markdown
```{r, include = FALSE}
library(stargazer)
df <- data.frame(x = 1:10 + rnorm(100),
                 y = 1:10 + rnorm(100))
reg <- lm(y ~ x, data = df)
```

```{r, results='asis', echo = FALSE}
stargazer(reg, header = FALSE, align = TRUE)
```

在 linux 系统上,将 stargazer 包装在invisiblesuppressMessages可以抑制否则会呈现的垃圾。 不幸的是,此解决方案似乎不适用于 Windows 计算机。

---
header-includes:
- \usepackage{dcolumn}
output: pdf_document
---

## R Markdown
```{r, include = FALSE}

library(stargazer)
df <- data.frame(x = 1:10 + rnorm(100),
                 y = 1:10 + rnorm(100))
reg <- lm(y ~ x, data = df)
```

```{r, results='asis', echo = FALSE}
invisible(stargazer(reg, header = FALSE, align = TRUE))
# suppressMessages(stargazer(reg, header = FALSE, align = TRUE)) # also works
```

在此处输入图片说明

原因是(来自帮助页面)

stargazer 使用 cat() 为表格输出 LaTeX/HTML 代码或 ASCII 文本。 为了允许进一步处理此输出,stargazer 还以不可见的方式返回与字符向量相同的输出。

我们使用suppressMessagesinvisible来确保只呈现第一个输出(由cat 产生)。 当 rmarkdown 尝试使用print而不是cat呈现它时,字符向量输出变成垃圾

我有同样的问题。 我尝试安装最新版本的 pandoc 并解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM