2017-07-17 1 views
0

J'ai un fichier RMarkdown que je veux publier à la fois HTML et PDF. J'utilise une commande de saut de page, \newpage, dans le fichier pour insérer un saut de page dans la sortie PDF. Toutefois, dans la sortie HTML, le \newpage apparaît dans le cadre du contenu.Knitr, RMarkdown: Comment faire pour avoir saut de page Latex omis dans la sortie HTML

Comment obtenir knitr/pandoc pour omettre le \newpage de la sortie HTML?

J'ai essayé d'incorporer le \newpage dans un commentaire HTML, mais cela n'a eu aucun effet sur la sortie PDF.

Voici le fichier Rmd.

--- 
title: 'RMarkdown Test' 
author: "Carl Parker" 
date: "July 16, 2017" 
output: 
    pdf_document: default 
    html_document: 
    keep_md: yes 
--- 


# Page 1 # 

\newpage 

# Page 2 # 


**--- END ---** 

Voici le code qui construit/rend.

library("rmarkdown") 
library("knitr") 

render("test-1.rmd", output_format = "all") 


# --- END --- 

Répondre

1

Si vous voulez qu'un code soit exécuté uniquement pour pdf et non pour le HTML, vous pouvez utiliser la fonction knitr::pandoc_to() comme suit. Vous pouvez également l'utiliser pour écrire un texte uniquement pour html ou pdf:
Soyez prudent avec \, il doit être doublé \\ lorsqu'il est appelé dans un paste ou cat dans un code R.

--- 
title: "RMarkdown Test" 
author: "Carl Parker" 
date: "July 16, 2017" 
output: 
    html_document: 
    keep_md: yes 
    pdf_document: default 
--- 

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


# Page 1 # 
<!-- use newpage for latex only --> 
`r if(knitr:::pandoc_to() == "latex") {paste("\\newpage")}` 

<!-- Specific text for html or pdf --> 
`r ifelse(knitr:::pandoc_to() == "html", "Text in html output only", "Text in pdf output only")` 

# Page 2 # 


**--- END ---**