簡體   English   中英

在代碼塊后插入 Output 的分頁符

[英]Insert Pagebreak for Output after Code Chunk

我有一個 .Rmd 文件,我正在將其轉換為 PDF。出於布局原因,我想在下一頁顯示我的代碼塊生成的 output plot,即使它正好適合下面。

通常與文本等一起使用

\pagebreak

但是我怎樣才能通知代碼塊它應該在下一頁顯示它的 output? 感謝您的幫助!

您可以編寫一個knitr鈎子來設置一個塊選項來執行此操作。

所以在這里我修改了源塊掛鈎並創建了一個塊選項next_page ,如果TRUE ,該塊的 output 將在下一頁上。

---
title: "Chunk Output in Next page"
output: pdf_document
date: "2022-11-25"
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

```{r, include=FALSE}
library(knitr)

default_source_hook <- knit_hooks$get('source')

knit_hooks$set(
  source = function(x, options) {
    if(isTRUE(options$next_page)) {
      paste0(default_source_hook(x, options),
        "\n\n\\newpage\n\n")
    } else {
      default_source_hook(x, options)
    }
  }
)
```

```{r, next_page=TRUE}
plot(mpg ~ disp, data = mtcars)
```

下一頁中的塊輸出


我建議您將 output 保存在文件 (png/jpeg/pdf) 中,然后使用 markdown 或knitr加載它。 這樣的解決方案可以讓您完全控制。

自動的

我在rmarkdown-cookbook中找到了替代解決方案。

我們在此代碼塊中生成一個 plot 但不顯示它:

```{r cars-plot, dev='png', fig.show='hide'}
plot(cars)
```

\newpage

![A nice plot.](\`r knitr::fig_chunk('cars-plot', 'png')\`)

手動的

```{r}
png("NAME.png") 
# your code to generate plot 
dev.off()
```

然后加載圖像

.[LABEL](PATH/NAME.png)或與

```{r echo=FALSE, out.width='100%', ...}
knitr::include_graphics('PATH/NAME.png')
```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM