Rmarkdown에 \ newpage를 현명하게 추가하는 방법은 무엇입니까?


114

\newpageR markdown 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-08-11

내 질문을 수정했습니다. pdf를 만드는 방법이 있습니다.
Marcin Kosiński 2014-08-11

그리고 어떤 패키지 / 기능을 사용합니까? 아니면 RStudio에서 버튼을 클릭합니까?
Spacedman 2014-08-11

차이점이 뭐야? 내 패키지 또는 함수는 코드의 일부에 newpage를 추가하려는 것과 관련이 없습니다.
Marcin Kosiński 2014-08-11

전체 워크 플로우를 확인하는 것이 좋습니다. 마크 다운에서 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에는 페이지 자체가 없음) 인쇄 레이아웃에는 표시됩니다.


어떻게 든 주제를 닫을 수 있습니까?
Marcin Kosiński 2014-08-11

2
아니에요! 이미 답변을 수락했습니다 (녹색 표시). 그것은 문제가 해결되었다는 표시입니다. 다른 사용자가 여전히 자신의 답변이나 댓글을 추가 할 수 있지만이 질문으로 충분합니다. 여기에 SO 마감 질문은 좋지 않은 질문을 잠 그거나 적절하지 않은 경우 삭제하는 투표 기반 도구입니다. 귀하의 질문은 문제가 없으므로 지금 닫거나 삭제할 필요가 없습니다. 그대로 두십시오.
tonytonov

HTML로 뜨개질 할 때 효과가 있습니까? 오류가 발생합니까?
gvrocha

새 페이지 생성에 대한 질문이기 때문입니다. html 출력에서 ​​새 페이지를 어떻게 생성합니까?
Marcin Kosiński 2013

1
@ MarcinKosiński HTML 태그를 직접 삽입 할 수 있습니다. 자세한 내용은 편집을 참조하십시오.
tonytonov

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로 아무것도 출력하지 않습니다 (페이지 나누기가 의미가없는 경우). 이 가능성을 추가하기 위해 주요 답변을 업데이트하기 위해 wort 것 같습니다.
Magnus

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 = FALSE명령문을 가져 오지 않도록하려면 knitr opts에 추가 cat('\\pagebreak')하십시오.
Akronix

@Akronix cat('\\pagebreak')청크에서 사용 echo = FALSE하고 knitr 옵션에 추가 했지만 여전히 내 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.