我正在使用rmarkdown,pandoc和knitr创建一个包含大量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))
}
3条答案
按热度按时间nzkunb0c1#
参见下面的简化和可再现的示例。答案和一些一般性评论:
results='asis'
。\\pagebreak
之后添加一个换行符(\n
),否则"ValueForV"
将直接粘贴在"\linebreak"
之后,这将导致Undefined control sequence
错误。\newpage
和\pagebreak
在一个单独的行中,之前使用了换行符\n
。\newpage
和\pagebreak
(即\\newpage
,\\pagebreak
)。hk8txs482#
如何在转换为PDF后仍然存在的Rstudio.rmd代码块中插入分页符:
如果
\newpage
和\pagebreak
latex宏对您不起作用,这里有一个使用HTML的解决方法。例如:
This is post chunk text.
flvlnr443#
对于beamer演示,在帧头后插入
{.allowframebreaks}
。通过这种方式,使用
allowframebreaks
选项(即,\being{frame}[allowframebreaks]
.然后,您可以使用
\framebreak
或\pagebreak
或newpage
来插入帧分割符。确保应该适合一帧的图实际上适合一帧,否则beamer将自动将图放入下一帧。您可以使用
out.height
和/或out.width
选项(请参见R Markdown cookbok)使打印适合单个帧。