如何使用浮动表格保留 kable 标题? [英] How to I keep a kable caption with a floating table?

查看:45
本文介绍了如何使用浮动表格保留 kable 标题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 RMarkdown 中编写 pdf 报告,并希望 float_left 带有标题的 kable.这在没有标题的情况下有效:

---标题:test2"输出:pdf_document标题-包括:- \usepackage{wrapfig}---```{r 设置,包括 = FALSE}knitr::opts_chunk$set(echo = TRUE)选项(knitr.table.format =乳胶")

```{r, echo=FALSE}图书馆(knitr)图书馆(kableExtra)kbl(head(cars), booktabs=T)%>%kable_styling(latex_options = 条纹",位置 = float_left")

但是将 caption="A Caption" 添加到 kbl 行,如

kbl(head(cars), caption=A Caption", booktabs=T) %>%抛出这个错误:

<代码>!额外的},或被遗忘的\endgroup.\endwraptable ...kip \egroup \box \z@ \fi \egroup\WF@floatstyhook \def \wid...l.164 \end{wraptable}错误:LaTeX 无法编译 test2.tex.有关调试提示,请参阅 https://yihui.org/tinytex/r/#debugging.有关更多信息,请参阅 test2.log.执行停止

我已经搜索过我认为经常出现的情况,但一无所获.这一定是我缺少的一些简单的东西.请帮忙.

解决方案

这里有一个解决方案(虽然标题移到了底部):

I'm writing a pdf report in RMarkdown and want to float_left a kable with a caption. This works without a caption:

---
title: "test2"
output: pdf_document
header-includes:
  - \usepackage{wrapfig}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(knitr.table.format="latex")

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

kbl(head(cars), booktabs=T) %>% 
kable_styling(latex_options = "striped", position = "float_left")

But adding caption="A Caption" to the kbl line, as in

kbl(head(cars), caption="A Caption", booktabs=T) %>% throws this error:

! Extra }, or forgotten \endgroup.
\endwraptable ...kip \egroup \box \z@ \fi \egroup 
                                                  \WF@floatstyhook \def \wid...
l.164 \end{wraptable}

Error: LaTeX failed to compile test2.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See test2.log for more info.
Execution halted

I've searched SO for what I'd think would be a frequent situation, but have found nothing. It must be something simple I'm missing. Help please.

解决方案

There is a solution here (although the caption moves to the bottom): https://github.com/haozhu233/kableExtra/issues/221#issuecomment-400473530

Following this solution, you could try this .Rmd file:

---
title: "test2"
output: pdf_document
header-includes:
  - \usepackage{wrapfig}
---
  
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(knitr.table.format="latex")
```

Lorem ipsum dolor sit amet, consecteturadipiscing elit.  Cras sit amet mauris inex ultricies elementum vel rutrum dolor.Phasellus tempor convallis dui, in hendreritmauris placerat scelerisque. Maecenas a ac-cumsan enim, a maximus velit. Pellentesquein risus eget est faucibus convallis nec atnulla. Phasellus nec lacinia justo. Morbifermentum, orci id varius accumsan, nibhneque porttitor ipsum, consectetur luctusrisus arcu ac ex. Aenean a luctus augue. Suspendisse et auctor nisl. Suspendisse cursus ultrices quam nonvulputate. Phasellus et pharetra neque, vel feugiat erat. Sed feugiat elit at mauris commodo consequat. Sedcongue lectus id mattis hendrerit. Mauris turpis nisl, congue eget velit sed, imperdiet convallis magna. Namaccumsan urna risus, non feugiat odio vehicula eget.

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

xtable2kable <- function(x) {
  out <- capture.output(print(x, table.placement = NULL))[-(1:2)]
  out <- paste(out, collapse = "\n")
  structure(out, format = "latex", class = "knitr_kable")
}

xtable(head(cars), booktabs=T, caption="A Caption") %>%
  xtable2kable() %>%
  kable_styling(latex_options = "striped", position = "float_left")
```

Lorem ipsum dolor sit amet, consecteturadipiscing elit.  Cras sit amet mauris inex ultricies elementum vel rutrum dolor.Phasellus tempor convallis dui, in hendreritmauris placerat scelerisque. Maecenas a ac-cumsan enim, a maximus velit. Pellentesquein risus eget est faucibus convallis nec atnulla. Phasellus nec lacinia justo. Morbifermentum, orci id varius accumsan, nibhneque porttitor ipsum, consectetur luctusrisus arcu ac ex. Aenean a luctus augue. Suspendisse et auctor nisl. Suspendisse cursus ultrices quam nonvulputate. Phasellus et pharetra neque, vel feugiat erat. Sed feugiat elit at mauris commodo consequat. Sedcongue lectus id mattis hendrerit. Mauris turpis nisl, congue eget velit sed, imperdiet convallis magna. Namaccumsan urna risus, non feugiat odio vehicula eget.

Lorem ipsum dolor sit amet, consecteturadipiscing elit.  Cras sit amet mauris inex ultricies elementum vel rutrum dolor.Phasellus tempor convallis dui, in hendreritmauris placerat scelerisque. Maecenas a ac-cumsan enim, a maximus velit. Pellentesquein risus eget est faucibus convallis nec atnulla. Phasellus nec lacinia justo. Morbifermentum, orci id varius accumsan, nibhneque porttitor ipsum, consectetur luctusrisus arcu ac ex. Aenean a luctus augue. Suspendisse et auctor nisl. Suspendisse cursus ultrices quam nonvulputate. Phasellus et pharetra neque, vel feugiat erat. Sed feugiat elit at mauris commodo consequat. Sedcongue lectus id mattis hendrerit. Mauris turpis nisl, congue eget velit sed, imperdiet convallis magna. Namaccumsan urna risus, non feugiat odio vehicula eget.

Output:

这篇关于如何使用浮动表格保留 kable 标题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆