当我使用knitr编织到html时,没有表输出

当我使用knitr编织到html时,没有表输出,r,rstudio,knitr,kable,R,Rstudio,Knitr,Kable,我正在使用kableExtra尝试输出一个LaTeX表,但当我将代码编织到html时,该表不会输出。它只是输出我不想要的垃圾。下面是示例代码,也是输出的结果: ```{r, echo=FALSE} library(dplyr) library(kableExtra) library(knitr) x <- seq(1,9,by = 1) kable(x,format = 'latex', booktabs = T, caption = "A KnitR Kable") ``` 出了什

我正在使用
kableExtra
尝试输出一个LaTeX表,但当我将代码编织到
html
时,该表不会输出。它只是输出我不想要的垃圾。下面是示例代码,也是输出的结果:

```{r, echo=FALSE}
library(dplyr)
library(kableExtra)
library(knitr)

x <- seq(1,9,by = 1)

kable(x,format = 'latex', booktabs = T, caption = "A KnitR Kable")
```

出了什么问题?

正如一些评论所指出的,这里的问题是,您使用的是
格式='latex'
,而您使用的是R标记来编织
html
报告。R-markdown在生成
html
时使用markdown语言而不是Latex

生成PDF时,图片看起来不同,因为该过程首先生成一个使用Latex编译的Latex文档

因此,要获得区块,您必须选择
format='markdown'
。这将适用于html和PDF。但是,我建议您根本不要指定格式,因为
rmarkdown
将为您选择格式。您提到的第二个问题是显示启动消息。您可以在区块选项中使用
message=FALSE
关闭此选项。因此,我建议:

```{r echo = FALSE, message = FALSE}
library(dplyr)
library(kableExtra)
library(knitr)

x <- seq(1, 9, by = 1)

kable(x, booktabs = TRUE, caption = "A KnitR Kable")
```
请注意,您可以在此处指定输出文件格式。“全部”表示将生成标题中指定的所有输出格式。例如:

---
title: ''
output:
  pdf_document: default
  html_document: default
---
在这种情况下,上述命令将输出html和PDF文件。如果您无法输出PDF文件,则很可能是缺少latex安装。我再次推荐@Tung推荐的
tinytex
,但您也可以查看Miktex或Texlive


编辑:感谢@camille的评论,我意识到
format='latex'
在编织成PDF时效果很好,只会在编织成html时表现不好。

作为kableExtra的作者,我觉得我需要在这里做一些澄清。当您单独使用
knitr::kable
时,@JonGrub所说的绝对正确<默认情况下,kable中的code>format=“markdown”,您将让pandoc为您确定表格的格式。但是,如果您使用的是只对LaTeX或HTML表有效的
kableExtra
,那么这些降价输出将不起作用。这就是为什么在过去,您需要在kable调用中指定
format


几个月前,我意识到人们需要生成一个同时在HTML和LaTeX中工作的表,特别是随着
bookdown
的流行。因此,我在kableExtra的0.9.0中添加了一些东西,它将自动识别是否在LaTeX环境中使用。如果是,它会将默认的
kable
格式设置为“latex”。否则,您将得到一个HTML表(如果您在常规R会话中使用它,您将在RStudio中看到它的预览)。这个小技巧可以让你摆脱那些
format=“xxx”
调用。它允许您使用在HTML和LaTeX中工作的同一段代码生成自定义表输出。

格式更改为
格式='HTML'
,因为您现在要求knitr生成LaTeX格式,所以更改后仍将以LaTeX格式输出表?我是新来的,所以请容忍我。我需要它是最新的如果你想要latex格式,然后保持
格式='latex'
,但选择knit->knit to PDF生成与latex兼容的PDF。请注意,您需要安装Tex/Latex,我使用Miktex,您可以在渲染PDFso之前找到它,我只是下载它,然后我就可以开始了?没有什么东西可以像普通包一样加载到r中@A.SuliManothing在R中,但根据您的文档,您需要Miktex中的一些库。我认为在文档渲染时,它们将自动安装在Miktex中。如果没有,并且由于MikTex中缺少库而在R中出现错误,则可以打开MikTex控制台并手动安装。问题不是他们在Rmarkdown文档中使用了
format=“latex”
,而是他们使用了
format=“latex”
,但试图结合到html。您可以将表格设置为latex,然后将knit设置为PDF,我相信如果您没有指定表格格式,而是将knit设置为PDFThanks,那么这就是knitr
在幕后所做的。我测试了一个PDF,你是对的。我记得在某个地方读到,
rmarkdown
将首先生成一个.tex文件,然后编译这个文件,而不是.md文件。我想这就是为什么这样做的原因?
rmarkdown::render("C:/path/to/file.Rmd", output_format = "all")
---
title: ''
output:
  pdf_document: default
  html_document: default
---