Я пытаюсь отобразить несколько таблиц, в которых ширина столбцов одинакова, но высота строк варьируется в зависимости от объема данных в ячейках документа 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)
```
Вот как это выглядит в итоге (после небольшого увеличения, потому что столбцы разрушены):
В итоговом документе таблицы будут наложены друг на друга, поэтому важно, чтобы ширины столбцов совпадали, размеры шрифтов соответствовали друг другу и т. Д. c.
Я изучил документацию о hrule
здесь: https://davidgohel.github.io/flextable/reference/hrule.html, и хотя в нем говорится, что он работает в Word и HTML, но не в выходных данных PowerPoint, он ничего не говорит о PDF.
Я изучил kable
и kableExtra
, но они не совсем делают все, что мне нужно, с некоторыми другими функциями, которые я здесь не обсуждаю.