35 votes

Étiquette de figure LaTeX à partir d'un tracé R utilisant KnitR ?

Je n'arrive pas à faire en sorte que R/KnitR crée le fichier LaTeX. \label{} pour une figure. Le site manuel semble indiquer qu'un \label{} sera créée en concaténant la chaîne de caractères dans fig.lp ("fig :" par défaut) avec le libellé du chunk de code R. Cependant, je n'ai pas réussi à faire fonctionner cette méthode. Non \label{} est créé pour la première figure créée en tricotant le MWE ci-dessous. L'étiquette de la deuxième figure est ajoutée à l'aide d'une solution de contournement que je viens de découvrir, en plaçant le chunk R dans un environnement de figure, et en mettant la balise \label après ou à l'intérieur de la balise \caption étiquette.

\documentclass[12pt, english, oneside]{amsart}
\begin{document}

Figure \ref{fig:plot} doesn't have it's label.

<<plot>>=
plot(x=0, y=0)
@

Figure \ref{fig:plot2} has its label.

\begin{figure}
\caption{\label{fig:plot2}}
<<>>=
plot(x=1,y=1)
@
\end{figure}

\end{document}

Ok, j'ai trouvé une solution en mettant le morceau R dans un fichier \begin{figure} . . .\end{figure} dans LaTeX. Je peux créer l'étiquette dans ce même environnement. Cependant, j'aimerais comprendre comment Yihui souhaite que cela soit géré avec KnitR.

34voto

mnel Points 48160

Vous devez définir fig.cap = '' (ou ce que vous voulez) pour s'assurer qu'un environnement de chiffres est utilisé dans le fichier latex document. (vous avez peut-être remarqué que le \begin{figure} ... \end{figure} est manquant ainsi que le \label{} composant

par exemple

\documentclass[12pt, english, oneside]{amsart}
\begin{document}
See Figure \ref{fig:plot}.
<<plot, fig.lp="fig:", fig.cap = ''>>=
plot(x=0, y=0)
@
\end{document}

Je suis d'accord pour dire que le description du site web est moins clair quant à la nécessité de cette mesure.

  • fig.env : ('figure') l'environnement LaTeX pour les figures, par exemple, définissez fig.env='marginfigure' pour obtenir \begin {marginfigure}

  • fig.cap : (NULL ; caractère) légende de la figure à utiliser dans un environnement de figure dans LaTeX (en \caption {}) ; si elle est NULL ou NA, elle sera ignoré, sinon un environnement de figure sera utilisé pour les graphiques dans le chunk (sortie dans \begin {figure} et \end {figure})

Bien que le le manuel graphique est clair et le raisonnement est logique

Légende de la figure

Si l'option fig.cap du chunk n'est pas NULL ou NA, les tracés seront placés dans un environnement figure lorsque le format de sortie est LATEX, et cette option est utilisée pour écrire une légende dans cet environnement en utilisant \caption {}. Les deux autres options liées sont fig.scap et fig.lp qui définissent la légende courte et une chaîne de préfixe pour la figure. étiquette. La légende courte par défaut est extraite de la légende en la tronquant au premier point, deux-points ou point-virgule. en la tronquant au premier point, deux-points ou point-virgule. L'étiquette est une combinaison de fig.lp et du label de la figure. Comme figure est un environnement flottant environnement flottant, il peut s'éloigner de la sortie du chunk vers d'autres endroits comme le haut ou le bas d'une page lorsque le document TEX est compilé.

Si vous souhaitez reproduire un R vous ne voudriez pas que les chiffres s'éloignent de la ligne de code qui définit comment ils ont été créés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X