R flextable automati c регулировка высоты строки (hrule) не работает для вывода PDF - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь отобразить несколько таблиц, в которых ширина столбцов одинакова, но высота строк варьируется в зависимости от объема данных в ячейках документа PDF, созданного из файла .Rmd. Несмотря на явную установку ширины столбцов и размеров шрифта и использование hrule(rule="auto", part="all") для изменения высоты строк, выходные данные изменяют ширину и размеры шрифтов, чтобы сохранить высоту строк одинаковыми.

Содержимое .Rmd:

---
output: pdf_document
---

```{r, echo=FALSE, collapse=TRUE, include=FALSE}
# Load libraries
#webshot::install_phantomjs() # needed for flextable. Don't need to load it as a package.
library(dplyr) # data management
library(flextable) # produce tables
library(OpenRepGrid) # generate random words

# Build data
table1Df <- data_frame(item = paste0(1:5, "."),
                       labels = c(randomSentence(10),
                                  randomSentence(10),
                                  randomSentence(10),
                                  randomSentence(10),
                                  randomSentence(10)
                                  ),
                       score = 11:15
                       )

table2Df <- data_frame(item = paste0(1:5, "."),
                       labels = c(randomSentence(15),
                                  randomSentence(15),
                                  randomSentence(15),
                                  randomSentence(15),
                                  randomSentence(15)
                                  ),
                       score = 16:20
                       )

# Function to build flextable
flexPrintFun <- function(df){
  flextable(df) %>%
    width(j=1, width=0.25) %>%
    width(j=2, width=3) %>%
    width(j=3, width=0.5) %>%
    hrule(rule="auto", part="all") %>%
    fontsize(part="header", size=20) %>%
    fontsize(part="body", size=15) 
}
```

```{r, echo=FALSE}
flexPrintFun(table1Df)
flexPrintFun(table2Df)
```

Вот как это выглядит в итоге (после небольшого увеличения, потому что столбцы разрушены):

enter image description here

В итоговом документе таблицы будут наложены друг на друга, поэтому важно, чтобы ширины столбцов совпадали, размеры шрифтов соответствовали друг другу и т. Д. c.

Я изучил документацию о hrule здесь: https://davidgohel.github.io/flextable/reference/hrule.html, и хотя в нем говорится, что он работает в Word и HTML, но не в выходных данных PowerPoint, он ничего не говорит о PDF.

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

...