带有长文本、项目符号和特定表格宽度的表格

sym*_*ush 7 r knitr r-markdown pander kable

我希望表格在一列中有项目符号并具有特定的表格宽度(以便在呈现为 PDF 时放置在一页上)。

如何通过rmarkdown使用众多软件包之一来实现这一目标?


到目前为止我尝试过的和拥有的:

---
output: pdf_document
---

```{r, include = FALSE}
df <- data.frame(col1 = "Some really long text here. I mean some reeeeeaaly loooong text. So long, it should be wrapped. Really.",
                 col2 = "* bullet point 1\n * bullet point 2", col3 = "Yes, there is still another column.")
```

# Attempt 1: kableExtra
```{r, echo = FALSE, warning = FALSE}
library(kableExtra)
df1 <- df
df1$col2 <- linebreak(df1$col2)
knitr::kable(df1, escape = FALSE) %>% column_spec(1, width = "15em")
```

# Attempt 2: pander
```{r, echo = FALSE}
pander::pander(df, keep.line.breaks = TRUE, style = 'grid', justify = 'left')
```
Run Code Online (Sandbox Code Playgroud)

这导致:

在此处输入图片说明

如您所见,这两个选项都有警告。该kableExtra版本确实具有适合一页的特定表格宽度,但不能很好地显示项目符号。而pander解决方案很好地呈现项目符号但跨越多个页面,因为我不知道如何在pander.

有没有可以做到这两点的解决方案?

相关问题例如在这里那里

dar*_*zig 1

使用split.table参数(在后台pandoc.table调用)或通过's一般禁用表拆分,例如panderpanderOptionstable.split.table

pander::pander(df, keep.line.breaks = TRUE, style = 'grid', justify = 'left', split.table = Inf)
Run Code Online (Sandbox Code Playgroud)

或者

library(pander)
panderOptions('table.style', 'grid')
panderOptions('table.alignment.default', 'left')
panderOptions('table.split.table', Inf)
panderOptions('keep.line.breaks', TRUE)
pander(df)
Run Code Online (Sandbox Code Playgroud)

迎合例子