r - 在 rmarkdown 的代码块中插入分页符(转换为 pdf)

标签 r pdf knitr r-markdown pandoc

我正在使用 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/

相关文章:

R:用 dplyr 按小时替换 NA 值

java - 如何在特定行数之后打破表格 xsl-fo 1.0?

ruby-on-rails - Prawn 可以生成带链接的PDF吗?

r - 以编程方式在 Markdown 中创建选项卡和绘图

r - 无法使用 knitr2html 使用 kable/kableExtra 获得漂亮的 table

r - 在 dplyr 链内有条件过滤的正确方法

java - 安装 ReporteRsjars 时无法加载 rJava.dll - 不是有效的 Win32 应用程序

pdf - 如何在不损失质量的情况下从(Linux)命令行注释 PS 或 PDF?

r - 更改小数点会使 stargazer 在数字之间添加额外的空格

r - Excel 函数 =NORM.S.INV(rand()) 在 R 中的函数是什么?