web-dev-qa-db-fra.com

Centrage de l'image et du texte dans R Markdown pour un rapport PDF

Je veux centrer une image et/ou du texte en utilisant R Markdown et tricoter un rapport PDF).

J'ai essayé d'utiliser:

->Text<-

->![](image1.jpg)<-

Cela ne fait pas l'affaire! Une autre façon de faire cela?

26
Next Door Engineer

Si vous centrez la sortie d'un bloc de code R, par exemple, un tracé, vous pouvez utiliser le fig.alignoption dans knitr .

```{r fig.align="center"}
plot(mtcars)
```
34
Lincoln Mullen

J'avais la même question. J'ai essayé toutes les solutions fournies ci-dessus et aucune d'entre elles n'a fonctionné ... Mais j'ai trouvé une solution qui fonctionne pour moi, et j'espère pour les autres aussi.

<center>

![your image caption](image.png)

</center>

Ce code centrera à la fois l'image et la légende. Il est essentiel de laisser des lignes entre <center>, le code image et </center>, sinon l'image sera centrée mais la légende disparaîtra.

Si vous voulez que votre image ait un lien cliquable, vous pouvez intégrer des choses comme

[![your image caption](image.png)](www.link_to_image.com)

Cependant, la légende n'apparaîtra plus.

Donc, si vous voulez une légende cliquable, vous devrez le faire en deux étapes:

<center>

![](image.png)

[your image caption](www.link_to_image.com)

</center>

Même chose ici, assurez-vous qu'il y a des lignes vides entre chaque commande. Si vous voulez que l'image et la légende soient cliquables, alors combinez le milieu et les derniers codes ci-dessus. J'espère que cela aide un peu.

33
François Birgand

J'ai utilisé la réponse de Jonathan à Google pour insérer des images dans LaTeX et si vous souhaitez insérer une image nommée image1.jpg et la centrer, votre code pourrait ressembler à ceci dans Rmarkdown

\begin{center}
\includegraphics{image1}
\end{center}

Gardez à l'esprit que LaTex ne demande pas l'extension du fichier (.jpg). Cette question m'a aidé à obtenir ma réponse. Merci.

10
cylondude

Vous pouvez utiliser du LaTeX brut dans R Markdown. Essaye ça:

\begin{center}
Text
\end{center}

Il y a bien sûr un hic: tout entre begin{...} et \end{...} est interprété comme LaTeX brut par Pandoc, vous ne pouvez donc pas utiliser cette technique pour centrer la sortie de blocs de code R ou de contenu Markdown.

9
Jonathan

Vous pouvez définir l'alignement central (ou autre) pour l'ensemble du document en tant qu'option Knitr, en utilisant:

knitr::opts_chunk$set(echo = TRUE, fig.align="center")
8
Antonio Canepa

Si vous savez que votre format est PDF, je ne vois pas en quoi la balise HTML peut être utile ... Cela ne semble certainement pas fonctionner pour moi. Les autres solutions pures LaTeX fonctionnent évidemment très bien. Mais le but de Markdown n'est pas de faire LaTeX mais de permettre la compilation de plusieurs formats je crois, y compris HTML.

Par conséquent, avec cela à l'esprit, ce qui fonctionne pour moi est une variation de la réponse de Nicolas Hamilton à question Color Stackoverflow :

#############
## CENTER TXT
ctrFmt = function(x){
  if(out_type == 'latex' || out_type == 'beamer')
    paste0("\\begin{center}\n", x, "\n\\end{center}")
  else if(out_type == 'html')
    paste0("<center>\n", x, "\n</center>")
  else
    x
}

J'ai mis cela dans mon morceau de configuration initiale. Je l'utilise ensuite très facilement dans mon .rmd fichier:

`r ctrFmt("Centered text in html and pdf!")`
2
tchevrier

La solution simple donnée par Jonathan fonctionne avec une modification pour tricher Pandoc. Au lieu de commandes Latex directes telles que

\begin{center}
Text
\end{center}

vous pouvez définir vos propres commandes dans l'en-tête YAML:

header-includes:
- \newcommand{\bcenter}{\begin{center}}
- \newcommand{\ecenter}{\end{center}}

Et puis vous utilisez:

\bcenter
Text and more
\ecenter

Cela fonctionne pour moi pour centrer un document entier avec de nombreux morceaux de code et des commandes de démarque entre les deux.

2
JuergenL