繁体   English   中英

防止使用kableExtra(position ='float_left')在kable表之后换行

[英]Prevent text wrapping after kable table with kableExtra(position='float_left')

我试图将多个表放在R Markdown文档中的一行上。 我可以通过kable %>% kableStyling(... ,position='float_left')做到这一点,并且表格在整个页面上kable %>% kableStyling(... ,position='float_left')

在此处输入图片说明

但是,在这些表之后恢复文本(标题,文本,任何东西,实际上)时,它从该行最后一个表的右边开始。 这是一个简单的示例:

---
output:
  html_document: default
  pdf_document: default
---

```{r setup, include=FALSE}
  knitr::opts_chunk$set(echo = TRUE)
  require(kableExtra)
``` and
```{r Test, echo=F}
  d1 <- data.frame(Item=c('A','B','C'),Value = c(1,2,3),Units=c('X','Y','Z'))
  knitr::kable(d1,format='html') %>%
    kable_styling(position='float_left',full_width=F)
```

## Next heading

在此处输入图片说明

我希望## Next heading将从新的一行开始。 在format ='html'和format ='latex'时都会发生这种情况:

正如kableExtra 文档中有关float选项的说明:

您还可以使用向左浮动或向右浮动选项将文字环绕表格。

因此,您所看到的行为与程序包所期望的一样。

一种简单的解决方法是使每行的最后一个表使用参数position='left'代替position='float_left'

---
output: html_document
---

```{r setup, include=FALSE}
  knitr::opts_chunk$set(echo = TRUE)
  require(kableExtra)
```

```{r Test, echo=F}
  d1 <- data.frame(Item=c('A','B','C'),Value = c(1,2,3),Units=c('X','Y','Z'))
  knitr::kable(d1,format='html', caption = "Table 1") %>%
    kable_styling(position='float_left',full_width=F)


    knitr::kable(d1,format='html', caption = "Table 2") %>%
    kable_styling(position='float_left',full_width=F)

      knitr::kable(d1,format='html', caption = "Table 3") %>%
    kable_styling(position='left',full_width=F)

```    
# Next heading

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM