在 Rmarkdown 标题上方打印 table
Kable printing table above heading in Rmarkdown
使用我的 Rmarkdown 中的以下摘录
for (swimmer in swimmers) {
cat('\newpage')
cat('## ', swimmer, '\n\n')
dtEvents <- dtClub[name == swimmer, ][order(event)]
for (r in 1:nrow(dtEvents)) {
row <- dtEvents[r,]
title <- paste0('Event ', row$event, ' ', row$race_gender, ' ', row$age_group, ' ', row$distance, ' ', row$stroke)
dtRace <- dt[event == row$event & seed %between% c(row$seed-5, row$seed+5)][order(seed)]
cat(kbl(dtRace[, .(seed, name, age, club, seed_time_str, seed, heat, lane)],
align = c('r','l','c','l','r','r','r','r'), caption = title, longtable = FALSE) %>%
kable_styling(latex_options = c('striped','scale_down','repeat_header')))
cat('\n')
}
}
我最终将此人姓名的标题打印在第一页的表格下方,而不是表格上方。我得到每个人的分页符和表格中的所有数据,只有带有他们名字的标题在第一页上所有数据表的下方,其余表格在后面的页面上。
编辑:经进一步检查,\newpage 似乎根本不起作用。 \pagebreak 似乎也不起作用。
我发现通过使用 答案中的信息,我能够解决问题。作为 kable/latex 的完全菜鸟,我不知道表格在文档中的位置。
通过将 kable_styling(latex_options = "HOLD_position")
添加到 kable 语句,一切都按要求工作。在 R 代码中输出 latex 语句时,确保在正确的位置使用 '\n'
也很奇怪,否则它会有点不高兴。
使用我的 Rmarkdown 中的以下摘录
for (swimmer in swimmers) {
cat('\newpage')
cat('## ', swimmer, '\n\n')
dtEvents <- dtClub[name == swimmer, ][order(event)]
for (r in 1:nrow(dtEvents)) {
row <- dtEvents[r,]
title <- paste0('Event ', row$event, ' ', row$race_gender, ' ', row$age_group, ' ', row$distance, ' ', row$stroke)
dtRace <- dt[event == row$event & seed %between% c(row$seed-5, row$seed+5)][order(seed)]
cat(kbl(dtRace[, .(seed, name, age, club, seed_time_str, seed, heat, lane)],
align = c('r','l','c','l','r','r','r','r'), caption = title, longtable = FALSE) %>%
kable_styling(latex_options = c('striped','scale_down','repeat_header')))
cat('\n')
}
}
我最终将此人姓名的标题打印在第一页的表格下方,而不是表格上方。我得到每个人的分页符和表格中的所有数据,只有带有他们名字的标题在第一页上所有数据表的下方,其余表格在后面的页面上。
编辑:经进一步检查,\newpage 似乎根本不起作用。 \pagebreak 似乎也不起作用。
我发现通过使用
通过将 kable_styling(latex_options = "HOLD_position")
添加到 kable 语句,一切都按要求工作。在 R 代码中输出 latex 语句时,确保在正确的位置使用 '\n'
也很奇怪,否则它会有点不高兴。