[Knitr-Resolu] ligne blanche après \includegraphics

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Jean-Emmanuel Longueville
Messages : 310
Enregistré le : 23 Fév 2011, 08:03

[Knitr-Resolu] ligne blanche après \includegraphics

Messagepar Jean-Emmanuel Longueville » 25 Nov 2013, 14:10

Bonjour,
Je voudrais placer deux figures cotes dans LaTeX mais knitr place automatiquement une ligne vide après un include graphics ?
Sauriez vous comment changer ce comportement ?
Jean-Emmanuel
Ingénieur d'étude LNEC

Perceval Sondag
Messages : 126
Enregistré le : 09 Avr 2012, 09:55

Messagepar Perceval Sondag » 25 Nov 2013, 14:43

Bonjour Jean-Emmanuel,

Je n'ai jamais trouvé la solution avec Knitr...

Tu peux le faire directement dans R par contre, en les mettant sur la même image (par(mfrow=c(2,1)).
Perceval Sondag

Jean-Emmanuel Longueville
Messages : 310
Enregistré le : 23 Fév 2011, 08:03

Messagepar Jean-Emmanuel Longueville » 25 Nov 2013, 15:25

Je cherche justement à eviter le par(mfrow) pour avoir deux pdf distinct dans le dossier image en cas de besoin.

J'ai trouvé une façon vraiment batarde qui consiste à faire "taire" la ligne blanche par le code suivant :

Code : Tout sélectionner

  <<toto, echo=FALSE, comment=NA, results='asis'>>=
    #Data
         a<- c(1:100)
         b<- c(100:200)
    #Plot1
        plot(a)
        cat("%")
  #Plot2
        plot(b)
  @

Mais bon ce code n'est pas concis produit un fichier latex pas top
Je vais du coup poser la question sur Stack overflow si nous sommes plusieurs intéressé.
Jean-Emmanuel
Ingénieur d'étude LNEC

Perceval Sondag
Messages : 126
Enregistré le : 09 Avr 2012, 09:55

Messagepar Perceval Sondag » 25 Nov 2013, 15:40

J'applaudit l'astuce, je n'ai jamais pensé à ça et c'est pourtant si simple :o

Pour être honnête, je suis plus ou moins resté à Sweave et me prend peu la tête avec Knitr malgré les conseils des internautes. Ca nécessite parfois beaucoup de bricolages pour s'en sortir mais on finit toujours par avoir ce qu'on veut.
Perceval Sondag

Jean-Emmanuel Longueville
Messages : 310
Enregistré le : 23 Fév 2011, 08:03

Messagepar Jean-Emmanuel Longueville » 25 Nov 2013, 16:26

J'ai jamais réussi à me mettre à Sweave d'où mon apprentissage de Knitr, mais c'est vrai que pour des petites choses et à pinnailler je galère.

Edit question posée sur Stackoverflow : Ici
Jean-Emmanuel
Ingénieur d'étude LNEC

Victor Perrier
Messages : 34
Enregistré le : 24 Avr 2012, 09:24

Messagepar Victor Perrier » 25 Nov 2013, 16:34

Bonjour,
Ceci marche chez moi (les deux graphiques apparaissent côte à côte) :

Code : Tout sélectionner

<<two-high, fig.width=3, fig.height=2.5, out.width='.49\\linewidth', fig.show='hold'>>=
data(cars)
plot(cars)
boxplot(cars$dist,xlab='dist')
@



Avec knitr 1.5.

Victor

Jean-Emmanuel Longueville
Messages : 310
Enregistré le : 23 Fév 2011, 08:03

Messagepar Jean-Emmanuel Longueville » 25 Nov 2013, 16:51

Comment puis je vérifier la version de mon paquet ?
Cela vient il du fig.show='hold' ?
Jean-Emmanuel
Ingénieur d'étude LNEC

Victor Perrier
Messages : 34
Enregistré le : 24 Avr 2012, 09:24

Messagepar Victor Perrier » 25 Nov 2013, 17:00

Avec

Code : Tout sélectionner

packageVersion("knitr")


Mais cela marchait aussi avec les anciennes versions.

Cela vient de la combinaison des options, out.width pour que les graphiques prennent moins de la moitié de la page et fig.show="hold" pour les sortir en fin de chunks (en même temps).

Jean-Emmanuel Longueville
Messages : 310
Enregistré le : 23 Fév 2011, 08:03

Messagepar Jean-Emmanuel Longueville » 25 Nov 2013, 17:20

Merci il place alors la ligne vide qu'en fin d'appel des include graphics ?
Jean-Emmanuel
Ingénieur d'étude LNEC

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 25 Nov 2013, 18:44

Pourquoi ne pas mettre deux chunks dans un environnement tabular ? Qque chose comme

Code : Tout sélectionner

\documentclass{article}

\begin{document}

Blabla

\begin{tabular}{rl}
<<"plota", echo=FALSE, out.width="7cm", fig=TRUE>>=
x <- 1:10
y <- runif(10)
plot(x, y)
@
&
<<"plotb", echo=FALSE, out.width="7cm", fig=TRUE>>=
x <- 1:10
y <- runif(10)
plot(x, y)
@
\end{tabular}

Blabla encore

\end{document}
Renaud


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité