【发布时间】:2020-05-23 23:14:17
【问题描述】:
我正在使用bookdown::pdf_document2 编写一个 Rmarkdown 文档,为此我有一个表格需要做几件非常具体的事情,但我根本找不到让所有这些事情同时工作的解决方案:
- 表格需要浮动到文档的末尾,就像使用乳胶
endfloat包一样。 - 表格元素具有 Markdown 粗体和斜体格式,应在最终 PDF 文档中正确显示
- 表格的其中一列有很多我想在表格单元格中换行的文本。
我试图让这三个选项与@987654323@、kableExtra::column_spec 和pander 的各种组合一起使用,但我找不到让它们同时运行的方法。下面我将粘贴一个包含各种测试的示例 Rmarkdown 文档,但没有一个完全有效。
有没有一种简单的方法可以让桌子做我想做的事?即使是一个好的解决方法也是可以接受的......
谢谢, 大卫
---
title: "Test table formatting"
author: "David M. Kaplan"
date: "5/24/2020"
output: bookdown::pdf_document2
header-includes:
- \usepackage[tablesfirst]{endfloat}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)
```
# Data
```{r}
df.long = data.frame(
char = c('*this is some very long text with lots of words that will cause problems with word wrap if it is not properly handled with something like kableExtra*','**b**','~~c~~'),
num = c(1,2,3))
```
# Kable with format=pandoc
```{r}
knitr::kable(df.long,caption="test1",format="pandoc")
```
**Result:** Handles formatting, but table does not float and no wordwrap.
# Kable with booktab
```{r}
knitr::kable(df.long,caption="test2",booktab=TRUE)
```
**Result:** Floats, but does not handle formatting or do wordwrap.
# kableExtra for wordwrap
```{r}
knitr::kable(df.long,caption="test3",booktab=TRUE) %>%
kableExtra::column_spec(1,width="30em")
```
**Result:** Table floats and has wordwrap, but does not handle formatting.
# Pander
```{r}
pander::panderOptions("table.alignment.default","left")
pander::pander(df.long,caption="test4")
```
**Result:** Wordwrap and formatting, but does not float.
【问题讨论】:
标签: r r-markdown bookdown kable kableextra