> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# R-Code (knitr)

Overleaf bietet eine Integration mit **knitr**, mit der Sie R-Code in Ihr LaTeX-Dokument einfügen können, um eine dynamische Ausgabe zu erzeugen.

Dokumente, die R-Code enthalten, müssen mit der Endung `.Rtex` oder `.Rnw` gespeichert werden, da der Code sonst nicht funktioniert. Sehen wir uns ein Beispiel an:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo1.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=4cd20c6acbeeab2b1ae2b115efece70d" alt="KnitrDemo1.png" width="2150" height="681" data-path="images/texlive/knitrdemo1.png" />

[Dieses `knitr`-Beispiel in Overleaf öffnen](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Wie Sie sehen, ist der Text zwischen den Zeichen `<<>>=` und `@` R-Code. Dieser Code und seine Ausgabe werden in einem listingähnlichen Format ausgegeben. Diesem Codeabschnitt können zusätzliche Parameter übergeben werden, um die dynamische Ausgabe anzupassen, wie im nächsten Abschnitt beschrieben.

### Code-Chunks

Ein Codeblock wie der im vorherigen Abschnitt gezeigte wird üblicherweise als *Chunk* bezeichnet. Sie können in knitr-Chunks einige zusätzliche Optionen festlegen. Sehen Sie sich das folgende Beispiel an:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143420.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=9c79c98b1894d1cd22f783c29356de1f" alt="KnitrDemo2.png" width="1910" height="559" data-path="images/texlive/screenshot-2025-12-16-143420.png" />

[Dieses `knitr`-Beispiel in Overleaf öffnen](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Innerhalb von `<<` und `>>` werden zwei zusätzliche Optionen übergeben.

* `echo=FALSE` Blendet den Code aus und gibt nur die von R erzeugte Ausgabe aus.
* `cache=TRUE` Wenn cache auf true gesetzt ist, wird der Chunk nicht ausgeführt, sondern nur die von ihm erzeugten Objekte verwendet. Das spart Zeit, wenn sich die Daten in diesem Chunk nicht geändert haben.

  <Info><em>Beachten Sie, dass die Option cache=TRUE in Overleaf derzeit nicht unterstützt wird, lokal jedoch funktionieren sollte.</em></Info>

Weitere Optionen finden Sie in der [Referenz](https://learn.overleaf.com/learn/Knitr#Reference_guide).

### Inline-Befehle

Es ist möglich, auf in einem Chunk erzeugte Objekte zuzugreifen und sie im Fließtext auszugeben.

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@

So, the mean of the data is $\Sexpr{mean(X)}$
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143647.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=8b59926a477373b2787f884267d7c263" alt="KnitrDemo3.png" width="1910" height="630" data-path="images/texlive/screenshot-2025-12-16-143647.png" />

[Dieses `knitr`-Beispiel in Overleaf öffnen](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Der Befehl `\Sexpr{mean(X)}` gibt die Ausgabe des R-Codes `mean(X)` aus. Innerhalb der geschweiften Klammern kann ein beliebiger R-Befehl übergeben werden.

### Diagramme

Auch Diagramme können einem knitr-Dokument hinzugefügt werden, wie in diesem Beispiel:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

<<plot1, fig.pos="t", fig.height=4, fig.width=4, fig.cap="First plot">>=

xdata = read.csv(file="data.txt", head=TRUE,sep=" ")

hist(xdata$data, main="Overleaf histogram", xlab="Data")

@

The figure \ref{fig:plot1} is simple histogram.

\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/GmaXa-Cu4QQRFT4C/images/texlive/screenshot-2025-12-16-143811.png?fit=max&auto=format&n=GmaXa-Cu4QQRFT4C&q=85&s=af1985b1e5b5ce56b777c5d9e3066420" alt="KnitrDemo4.png" width="1915" height="756" data-path="images/texlive/screenshot-2025-12-16-143811.png" />

[Dieses `knitr`-Beispiel in Overleaf öffnen](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Dieses Histogramm verwendet Daten aus „data.txt“, das im aktuellen Arbeitsverzeichnis gespeichert ist. Dem Chunk werden einige abbildungsbezogene Optionen übergeben.

`plot1` Dies ist das Label, mit dem auf das Diagramm verwiesen wird. Das Präfix „fig:“ ist obligatorisch. Im Beispiel sehen Sie, dass mit `\ref{fig:plot1}` auf die Abbildung verwiesen wird. `fig.pos="t"` Positionierungsparameter. Dieser entspricht dem in [der figure-Umgebung](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment) verwendeten. `fig.height=4, fig.width=4` Breite und Höhe der Abbildung. `fig.cap="First plot"` Beschriftung der Abbildung.

### Externe R-Skripte

Sie können Teile eines externen R-Skripts in ein knitr-Dokument importieren. Das ist sehr hilfreich, da es durchaus üblich ist, das Skript in einem externen Programm zu schreiben und zu debuggen, bevor man es in das Dokument einbindet.

Angenommen, wir haben den folgenden R-Code in einer Datei namens `mycode.R`, die wir in unser LaTeX-Dokument einbinden:

```r theme={null}
## ---- myrcode1
# Create a sequence of numbers
 X = 2:10

## ---- myrcode2
# Display basic statistical measures
summary(X)
```

Beachten Sie die Zeilen:

```r theme={null}
## ---- myrcode1
```

und

```r theme={null}
## ---- myrcode2
```

Diese markieren den Beginn eines Code-Chunks und sind erforderlich, wenn Sie dieses Skript in Ihrem Dokument verwenden möchten, wie im folgenden Codefragment gezeigt:

```r theme={null}
The chunk below will not be printed

<<echo=FALSE, cache=FALSE>>=
read_chunk("mycode.R")
@

The code must show up here

<<myrcode2>>=

@
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo5.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=0f1fd4088c9359058547a7c58f121bd5" alt="KnitrDemo5.png" width="1544" height="436" data-path="images/texlive/knitrdemo5.png" />

Der erste Chunk wird nicht ausgegeben und dient nur dazu, das Skript mit dem Befehl `read_chunk("mycode.R")` zu importieren. Deshalb ist die Option `echo=FALSE` gesetzt. Außerdem dürfen Skripte nicht gecacht werden. Sobald das Skript importiert ist, können Sie einen Chunk über das Label ausgeben, das Sie nach `## ----` festgelegt haben. In diesem Fall ist es `myrcode2`.

Wir haben alle Codefragmente dieses Artikels in einem Projekt zusammengefasst, das [Sie in Overleaf öffnen können](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=).

### Referenz

Einige Chunk-Optionen:

* `results`. Ändert das Verhalten der vom R-Code erzeugten Ergebnisse. Mögliche Werte sind:
  * `markup` LaTeX zur Formatierung der Ausgabe verwenden.
  * `asis` Rohe Ergebnisse aus R ausgeben.
  * `hold` Die Ausgabeergebnisse zurückhalten und ans Ende des Chunks verschieben.
  * `hide` Ergebnisse ausblenden.
* `echo`. Ob der R-Quellcode eingebunden werden soll. Weitere Parameter sind:
  * `echo=2:3` gibt nur die zweite und dritte Zeile aus;
  * `echo=-2:-3` schließt nur die zweite und dritte Zeile aus.
* `cache`. Ob der Code-Chunk gecacht werden soll. Mögliche Werte sind: `TRUE` und `FALSE`
* `highlight`. Ob der Quellcode hervorgehoben werden soll. Mögliche Werte sind: `TRUE` und `FALSE`
* `background`. Hintergrundfarbe des Chunks. Es können RGB- und HTML-Formate verwendet werden. Der Standardwert ist *"#F7F7F7"*.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.