2016-05-31 12 views
3

Ich schreibe eine .rmd-Datei, die mit Knitr in eine .pdf konvertiert werden soll. In meiner Markdown-Datei habe ich eine Reihe von klassischen R-Plots, die in Chunks erzeugt werden und daher sowohl nummeriert als auch von knitr betitelt sind.Bildunterschrift für LaTeX-Diagramm in R Markdown mit Knitr

Nun möchte ich ein einfaches, in LaTeX erzeugtes kausales Diagramm hinzufügen und beschriften, bevor ich meine R-Plots zeige. Wie gehe ich vor, um mein LaTeX-Diagramm als eine Zahl in der gleichen Reihenfolge meiner anderen R-Plots zu nummerieren? Und wie wäre es mit einer Beschriftung meiner LaTeX-Figur?

Ein einfaches Beispiel für mein rmarkdown Dokument zu veranschaulichen:

--- 
title: "Figure captions" 
output: 
    pdf_document: 
     fig_caption: yes 
     number_sections: yes 
header-includes: 
    - \usepackage{tikz} 
    - \usetikzlibrary{arrows, shapes, positioning, calc} 
--- 

# A simple LaTeX diagram with no caption 

This LaTeX diagram should register as 'Figure 1': 

\tikzset{line/.style = {draw, -latex}, 
     cloud/.style = {draw, ellipse, node distance=3cm, 
         minimum height=2em} 
} 
\begin{tikzpicture}[node distance = 6cm, auto] 
    \node [cloud] (init) {Z1}; 
    \node [cloud, below left = 2 of init] (X1) {X1}; 
    \node [cloud, below right = 2 of init] (Y1) {Y1}; 
    \node [cloud, below = of init] (Z2) {Z2}; 
    \path [line] (X1) -- (Y1); 
    \path [line] (init) -- ($(X1)!0.5!(Y1)$); 
    \path [line] (Z2) -- ($(X1)!0.5!(Y1)$); 
\end{tikzpicture} 


# A simple R plot with a caption 

Here is a generic R plot that should be 'Figure 2', but is generated as 'Figure 1': 

```{r figure2, echo=FALSE, fig.cap="This should be called Figure 2"} 
library(ggplot2) 
qplot(mpg, wt, data = mtcars) 
``` 

Mit anderen Worten, ich bin auf der Suche nach einer Möglichkeit, meine habe knitr mein LaTeX Diagramm als Kurve auf dem Niveau erkennen mit erzeugten Plots in Code-Chunks, so kann ich es einfach als eine andere Figur in der Sequenz zählen. Wie kann ich das machen?

Antwort

1

Da es so aussieht, als würden Sie bereits LaTeX-Code in Ihre Markdown-Datei einfügen, können Sie Ihren Tikz-Code einfach in eine Standard-Figurenumgebung einbinden? Ich glaube, dass die Nummerierung von LaTeX gemacht wird, nicht von Knitr, also sollte knitr nicht wissen müssen, dass dies eine Figur ist.

+0

Sieht aus, als hättest du recht, wenn du den Tikz-Code in einer Figurenumgebung mit einer einfachen LaTeX-Beschriftung verpackst, löst das Problem! Vielen Dank! – ageil

+0

Wenn Sie mehr als ein paar davon haben, können Sie sie auch separat in PDF rendern ('\ documentclass {standalone}' und dann '\ includegraphics {}' in der Figurenumgebung verwenden – user101089

Verwandte Themen