R Markdown:使用 pagedown::chrome_print 打印可反应的表格会导致一些不可读的行

R Markdown: Printing reactable tables with pagedown::chrome_print causes some unreadable rows

我正在尝试创建包含一些文本和 table 的参数化 R markdown 报告。我首先创建 html 输出(并使用 css 自定义样式),然后使用 pagedown 包打印它们。除了在某些报告中 tables 在分页符上的打印效果不佳外,一切都接近完美。我找不到问题是来自 reactable 包还是 pagedown。但我也尝试从 Chrome 手动打印,但输出看起来并不完全相同。在某些情况下,结果很好,在某些情况下,新页面上的第一行仍然有点压扁(尽管比 pagedown::chrome_print 少)。

这是输出的样子:1

它应该是什么样子:2

示例代码:

---
title: "test"
output: html_document
knit: pagedown::chrome_print
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(reactable)
# create some input
sometext <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In mattis nec erat et pellentesque. Integer varius rhoncus velit, a luctus lectus aliquam vitae. Mauris pulvinar turpis nibh, ut porttitor velit congue luctus. Mauris cursus convallis dui molestie ornare. Vestibulum enim nibh, iaculis aliquam velit in, aliquam placerat enim. Sed interdum non ex et fringilla. Quisque massa orci, auctor nec consequat non, posuere eget mi. Vestibulum lacinia quis arcu vel malesuada. In risus lacus, auctor at nisi non, tincidunt condimentum enim. Maecenas posuere pellentesque feugiat. Cras vel lectus placerat, euismod ipsum a, vulputate felis. Morbi bibendum ex id quam consectetur dapibus. Ut vel magna ac nulla venenatis imperdiet sit amet in mi."
sometext <- strsplit(sometext, split = ",")[[1]]
sometext <- rep(sometext, 3)
sometext <- as.data.frame(matrix(sometext, ncol = 2))
```
<br><br>

```{r}
reactable::reactable(sometext, sortable = FALSE, highlight = TRUE, pagination = FALSE, rownames = TRUE, columns = list('V1' = colDef(maxWidth = 355),'V2' = colDef(maxWidth = 355)))
```

对于可以通过哪些不同的方式进行设置以使其发挥作用,您有什么建议吗?

最后我在不同的表格包中找到了解决方案,所以我post将其放在这里以供将来参考。

我使用了格式化包:

```{r}
row.names(sometext) <- NULL
formattable::format_table(sometext, align = "l")
```

为了实现与 reactable 相同的格式,我添加了一个 css 代码:

.table tbody tr td {
    padding: 7px 9px;
    line-height: 1.42857143;
    vertical-align: top;
    border-top: .5px solid #f2f2f2 }

.table thead tr th {
    padding: 7px 9px;
    vertical-align: bottom;
    border-bottom: 2px solid #e9e9e9 }

实际上,使用 formattable 打印效果更好,因为它会自动在新页面上添加页眉。