R Markdown: печать реагирующих таблиц с помощью pagedown::chrome_print приводит к тому, что некоторые строки становятся нечитаемыми.

Я пытаюсь создать параметризованные отчеты R markdown, содержащие некоторый текст и таблицу. Сначала я создаю вывод html (и использую css для пользовательского стиля), а затем печатаю их с помощью пакета 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)))
```

Есть ли у вас какие-либо советы о том, что можно настроить по-другому, чтобы заставить его работать?


person martina    schedule 29.01.2021    source источник
comment
Просто примечание, говоря о параметризованных отчетах в Markdown. Знаете ли вы, что вы можете вызывать параметры в заголовке YAML? bookdown.org/yihui/rmarkdown/params-knit.html для дальнейшего использования , может помочь реорганизовать стиль отчета   -  person Daniel Jachetta    schedule 29.01.2021
comment
Привет Даниил, спасибо, что указали на это. Фактический отчет использует параметры в YAML, я просто не привел его в пример, чтобы его было легко воспроизвести. Я упомянул параметризованные отчеты в связи с тем, что ручная настройка каждого отчета (чтобы они лучше помещались на странице) была бы невозможна, и я ищу автоматизированное решение.   -  person martina    schedule 29.01.2021


Ответы (1)


В конце концов я нашел решение в другом пакете для таблиц, поэтому я размещаю его здесь для дальнейшего использования.

Я использовал форматируемый пакет:

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

и для достижения того же форматирования, что и реагирующий, я добавил код 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 }

На самом деле результат печати даже лучше с форматируемым, так как он автоматически добавляет заголовок на новую страницу.

person martina    schedule 16.02.2021