スマートな方法でRmarkdownに\ newpageを追加する方法は?


114

\newpageRマークダウンv2でこれとは異なる方法でLaTeX コマンドを単純に使用できるかどうか疑問に思います。

```{r, results='asis', echo=FALSE}
cat("\\newpage")
```

pdf_outputを生成します。any1にアイデアがある場合は、コメントしてください:)!ありがとう

私はこのようなpdfを作成します:

---
title: " "
author: " "
date: "2014"
output: 
   pdf_document:
      includes:
         in_header: naglowek.tex
      highlight: pygments
      toc: true
      toc_depth: 3
      number_sections: true
      keep_tex: true
---

PDF出力をどのように作成していますか?
Spacedman 2014

質問を編集しました。PDFを作成する方法があります。
MarcinKosiński2014

そして、どのパッケージ/関数を使用していますか?または、RStudioでボタンをクリックするだけですか?
Spacedman 2014

違いは何ですか?私のパッケージまたは関数は、コードの一部に新しいページを追加したいとは関係ありません。
MarcinKosiński2014

完全なワークフローを見るのはいいことです。マークダウンからPDFに移行するにはさまざまな方法があります。それがなければ、私たちは推測しています。@tonytonov
Spacedman、

回答:


177

単に\newpageまたは\pagebreak動作します、例えば

hello world
\newpage
```{r, echo=FALSE}
1+1
```
\pagebreak
```{r, echo=FALSE}
plot(1:10)
```

このソリューションは、PDFを作成することを前提としています。HTMLの場合、タグを追加することで同様の効果を得ることができます<P style="page-break-before: always">。ブラウザーで改ページは表示されない可能性があります(HTML自体にはページはありません)が、印刷レイアウトにはそれがあることに注意してください。


どういうわけかトピックを閉じることはできますか?
MarcinKosiński2014

2
どういたしまして!あなたはすでに答え(緑のマーク)を受け入れました。これは問題が解決したことを示しています。この質問にはこれで十分ですが、他のユーザーが回答やコメントを追加する場合もあります。ここでSOを閉じる質問は、あまり良くない質問をロックしたり、適切でない場合は削除したりする投票ベースのツールです。あなたの質問は大丈夫なので、すぐに閉じたり削除したりする必要はありません。そのままにしておいてください。
tonytonov 2014

htmlに編むときにそれは何か影響がありますか?エラーが発生しますか?
gvrocha 2015年

新しいページの作成についての質問なので。HTML出力で新しいページをどのように作成しますか?
マルチンコジンスキー

1
@MarcinKosińskiHTMLタグを直接挿入できます。詳しくは編集を参照してください。
トニートノフ2016

22

初期化チャンクで関数を定義します

pagebreak <- function() {
  if(knitr::is_latex_output())
    return("\\newpage")
  else
    return('<div style="page-break-before: always;" />')
}

改ページを挿入するマークダウン部分に、次のように入力します

`r pagebreak()`

13

PDFへの編成を条件に改ページを行うことができます。これでうまくいきました。

```{r, results='asis', eval=(opts_knit$get('rmarkdown.pandoc.to') == 'latex')}
cat('\\pagebreak')
```

これはうまく機能し、PDFに改ページを作成しますが、HTMLには何も出力しません(改ページが意味をなさない場合)。この可能性を追加するために、メインの回答を更新するためにそれを麦汁のようです。
マグナス

1
{r, results='asis', eval=(opts_knit$get('rmarkdown.pandoc.to') == 'latex')} cat('\\pagebreak') で結果 Error in eval(x, envir = envir) : object 'opts_knit' not found Calls: <Anonymous> ... process_group.block -> call_block -> eval_lang -> eval -> eval Execution halted opts_knit$getかかわらず、コンソールでの作品の罰金。?
keithpjolley

echo = FALSEknitr optsに追加 してcat('\\pagebreak')、出力ファイル内のステートメントを取得しないようにします。
Akronix 2018

@Akronix cat('\\pagebreak')チャンクで使用しecho = FALSEてknitr optsに追加しましたが、PDFに「## \ newpage」が表示されますが、なぜですか?
Benjamin Telkamp

1
```{r page break, results='asis', eval=(opts_knit$get('rmarkdown.pandoc.to') == 'latex'), echo = FALSE} cat('\\pagebreak') ```
Akronix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.