使用我的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似乎也不起作用。
发布于 2021-03-22 09:02:47
我发现通过使用this answer中的信息,我能够解决这个问题。作为kable/latex的新手,我不知道表在文档中的位置。
通过将kable_styling(latex_options = "HOLD_position")添加到kable语句中,一切都按要求工作。还有一个奇怪的地方是,在R代码中输出latex语句时,要确保在正确的位置使用'\n',否则会让人有点不爽。
https://stackoverflow.com/questions/66672703
复制相似问题