我正在使用 rmarkdown、pandoc 和 knit 创建一个包含 r 代码块的 pdf。在代码块中,我有一个 for 循环,它打印许多图表和一些统计输出。
我想在循环中插入分页符(以出现在 pdf 输出中)。此分页符将在打印每个图表后发生,以确保每个图表打印在一页上,而统计输出打印在下一页上。
我一直无法找到在我的 r 代码块中包含分页符的方法。我尝试过 cat("\\newpage")
和 cat("\\pagebreak")
希望它能被 pandoc 识别,但没有成功(它是刚刚在最终的 pdf 中逐字打印)。
建议表示赞赏。这是我到目前为止的代码:
```{r, echo =FALSE, message=FALSE, warning=FALSE, comment=NA, results='asis'}
library("markdown")
library("rmarkdown")
library("knitr")
library("ggplot2")
for (v in Values){
# read in file
testR <- read.csv(file.path, header=T)
print(ggplot(testR, aes(x=Time, y=Value, color=Batch)) + geom_point(size = 3) +
xlab ("Timepoint") +
ylab (v) +
scale_x_continuous(breaks=seq(0, 60, by=6)) +
ggtitle(paste("Scatterplot of Batches for ", v, sep="")))
ggsave(paste(timestamp, "__",
"Scatterplot of Batches for ", v, ".jpeg", sep = ""))
cat("\\pagebreak")
writeLines(v)
writeLines("\n")
writeLines("\n Test for homogenity of slopes \n")
av1 <- aov(Value~Time*Batch, data=testR)
print(summary(av1))
}
```
最佳答案
请参阅下面的简化且可重现的示例。答案和一些一般性评论:
- 要在 Markdown 文档中动态创建新页面或部分,请在 block 选项中使用
results='asis'
。 - 您必须在
\\pagebreak
之后添加换行符 (\n
),否则"ValueForV"
将直接粘贴在之后>“\linebreak”
,这会导致未定义的控制序列
错误。 - 在前面使用换行符
\n
,确保\newpage
和\pagebreak
位于单独的行中。 转义
\newpage
和\pagebreak
(即\\newpage
、\\pagebreak
)。--- title: "test" output: pdf_document --- ```{r, echo=FALSE, results='asis'} for (i in 1:3) { print(ggplot2::qplot(i, i+1)) cat("\n\n\\pagebreak\n") writeLines("ValueForV") } ```
关于r - 在 rmarkdown 的代码块中插入分页符(转换为 pdf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830974/