RMarkdown Kable 宽度问题

RMarkdown Kable width issues

我正在尝试创建一个 table 以在 RMarkdown 中使用 Kable 保存一些基本信息,这些信息将在 HTML、PDF 和 Word 中生成。这是我的代码

---
title: "test"
author: ''
date: "2015/03/24"
output:
 pdf_document:
 keep_tex: yes  
---

```{r kable1, echo=FALSE}
Variable <- c("VAR1", "VAR2", "VAR3", "VAR4")
Label <- c("LABEL", "A very       loooooooooooooooooooooooooooooooooooooooooooo     ooooooooooooooooooooooooooooooooooooooo nnnnnnngggggggg label yall", "LAB3", "LAB4")
Classification <- c("Type1", "Type2", "Type1", "Type1")
data <- data.frame(Variable, Label, Classification)
library(knitr)
kable(data)
```

```{r kable2, echo=FALSE}
Variable <- c("VAR1", "VAR2", "VAR3", "VAR4")
Label <- c("LABEL", "LabLE", "LAB3", "LAB4")
Classification <- c("Type1", "Type2", "Type1", "Type1")
data <- data.frame(Variable, Label, Classification)
library(knitr)
kable(data)
```

HTML输出如下。 这就是我要的。我喜欢 table 填充 html 的方式。但是,当我生成 PDF 时,我得到以下信息。

正如我们所见,PDF 存在问题,第一个 table 超出了页面,第二个没有填满整个宽度。不幸的是,当涉及到 R、Kable 和 RMarkdown 时,我是一个 n00b。有没有办法在 kable table 上设置选项,以便 PDF 在页面位置和宽度方面看起来与 HTML 一样好?谢谢!

LaTeX 不会为您打断 table 单元格内的长行——或者您应该为此使用自定义环境,这在编写要由 Pandoc 处理的 markdown 时有时会非常令人沮丧。这就是为什么我想出在通过 pander package 转换为降价之前打破单元格内的长行的原因。快速示例:

> pander(data, split.cells = 30, split.table = Inf)

-------------------------------------------------------------------------
 Variable                      Label                      Classification 
---------- --------------------------------------------- ----------------
   VAR1                        LABEL                          Type1      

   VAR2                       A very                          Type2      
           loooooooooooooooooooooooooooooooooooooooooooo                 
              ooooooooooooooooooooooooooooooooooooooo                    
                    nnnnnnngggggggg label yall                           

   VAR3                        LAB3                           Type1      

   VAR4                        LAB4                           Type1      
-------------------------------------------------------------------------

或者,如果您有多个 table 遇到同样的问题,请指定一次 split 值:

> panderOptions('table.split.table', Inf)
> pander(data)

-------------------------------------------------------------------------
 Variable                      Label                      Classification 
---------- --------------------------------------------- ----------------
   VAR1                        LABEL                          Type1      

   VAR2                       A very                          Type2      
           loooooooooooooooooooooooooooooooooooooooooooo                 
              ooooooooooooooooooooooooooooooooooooooo                    
                    nnnnnnngggggggg label yall                           

   VAR3                        LAB3                           Type1      

   VAR4                        LAB4                           Type1      
-------------------------------------------------------------------------

简而言之,寻找 table.split.tabletable.split.cells global options,尽管还有许多其他有用的调整。