我报告了一个问题https://github.com/rstudio/rmarkdown/issues/967,想知道是否有解决方法(如何使之工作)?

Rmarkdown重叠输出-LMLPHP

下面的可重现示例(改变n和nGroup以查看效果-当n = 100且nGroup = 10时不重叠):

---
title: "Test links to sections in DT"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo=FALSE)
knitr::opts_chunk$set(message=FALSE)
knitr::opts_chunk$set(warning=FALSE)

## DT Test

```{r echo=FALSE}
library(DT)

n <- 1000
nGroup <- 100

testDF <- data.frame(text=paste0("Section", 1:n),
                     number=1:n,
                     group=rep(1:(n/nGroup), n/nGroup))

datatable(head(testDF), caption="Whole table", rownames=FALSE, escape=FALSE, options=list(paging=FALSE, info=FALSE))

getDT<-function(x) {
  a <- list()
  a[[1]] <- htmltools::tags$h3("test1")
  a[[2]] <- datatable(x[, c("text", "number")], caption=htmltools::tags$caption(style="caption-side: top; text-align: left;", "Group: ", htmltools::strong(x$group)), rownames=FALSE, escape=FALSE, filter=c("none"), options=list(paging=FALSE, info=FALSE))
  a[[3]] <- htmltools::tags$h4("test1")

  return(a)
}

res <- lapply(split(testDF, testDF$group), getDT)

htmltools::tagList(res)
```

最佳答案

查看您的示例生成的HTML,我看到了一堆类似于div的标签:

<div class="datatables html-widget html-widget-static-bound"
     id="htmlwidget-3efe8ca4aa087193f03e"
     style="width:960px;height:500px;">

请注意将高度设置为500像素的内联样式。但是,div内的内容比500像素高得多,因此它超出了div的边界。

我不确定500px的来源,但是作为一种解决方法,您可以使用其他样式覆盖它。例如,将其添加到RMarkdown的顶部(在标题之后):
<style type="text/css">
    div.datatables { height: auto !important;}
</style>

或者,如果您希望RMarkdown保持CSS整洁,请放
div.datatables {
    height: auto !important;
}

在一个单独的CSS文件中,并在RMarkdown header 中链接到它,如下所示:
---
title: "Test links to sections in DT"
output:
  html_document:
    css: overlap_workaround.css
---

关于Rmarkdown重叠输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42361888/

10-12 20:00