> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/de/fragen-and-antworten/16-how-can-i-include-matlab-code-in-my-latex-document.md).

# Wie kann ich MATLAB-Code in mein LaTeX-Dokument einbinden?

Die [`matlab-prettifier` Paket](https://www.ctan.org/pkg/matlab-prettifier) kann zum Setzen von MATLAB-Code verwendet werden und wurde als Antwort auf eine [Frage auf tex.stackexchange geschrieben](https://tex.stackexchange.com/questions/75116/what-can-i-use-to-typeset-matlab-code-in-my-document).

### Die lstlisting-Umgebung

Nach dem Einbinden des `matlab-prettifier` Pakets in Ihr Dokument über

```latex
\usepackage{matlab-prettifier}
```

können Sie die `lstlisting` Umgebung verwenden, um MATLAB-Code zu setzen:

```latex
\begin{lstlisting}[<options>]
MATLAB-Code...
\end{lstlisting}
```

wobei `<options>` ist eine durch Kommas getrennte Liste von Parametern, deren Werte mithilfe von Schlüssel-Wert-Paaren gesetzt werden (d. h., `parameter=Wert`).

* **Hinweis**: Das `matlab-prettifier` Paket basiert auf dem `listings` Paket und ermöglicht die Verwendung von Funktionen, die von `listings`bereitgestellt werden, einschließlich Parametern innerhalb `<options>` der `lstlisting` Umgebung. Allerdings sollten einige `listings` Parameter *nicht* verwendet werden, und den Lesern wird empfohlen, die [`matlab-prettifier` Dokumentation](http://mirrors.ctan.org/macros/latex/contrib/matlab-prettifier/matlab-prettifier.pdf) für weitere Details.

Das visuelle Erscheinungsbild gesetzten MATLAB-Codes kann mit dem `style` Parameter geändert werden, der drei Werte unterstützt:

* `Matlab-editor`
* `Matlab-bw`
* `Matlab-Pyglike`

Die folgenden Beispiele zeigen, wie diese Stile verwendet werden.

### Beispiele

Hier ist ein Beispiel mit MATLAB-Code aus `matlab-prettifier`der Dokumentation von `Matlab-editor` , das den

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}

\begin{lstlisting}[style=Matlab-editor]
%% Beispiel-Matlab-Code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
erzeuge den Zeilenvektor x, dann kehre ihn um
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Öffnen Sie dieses Beispiel in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+matlab-prettifier+example\&snip=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Blstlisting%7D%5Bstyle%3DMatlab-editor%5D%0A%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B%0A%5Cend%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

Dieses Beispiel erzeugt die folgende Ausgabe:

![In LaTeX auf Overleaf gesetzter MATLAB-Code](/files/bc916324b9157e046465a6bbcc6150711ab70e52)

Im nächsten Beispiel werden Werte für die `Rahmen` und `Nummern` Parameter gesetzt, die von der `listings` Paket:

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}

\begin{lstlisting}[
frame=single,
numbers=left,
style=Matlab-Pyglike]
%% Beispiel-Matlab-Code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
erzeuge den Zeilenvektor x, dann kehre ihn um
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Öffnen Sie dieses Beispiel in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+second+matlab-prettifier+example\&snip=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Blstlisting%7D%5B%0Aframe%3Dsingle%2C%0Anumbers%3Dleft%2C%0Astyle%3DMatlab-Pyglike%5D%0A%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B%0A%5Cend%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

Dieses Beispiel erzeugt die folgende Ausgabe:

![In LaTeX auf Overleaf gesetzter MATLAB-Code](/files/6a0c4c031f8171db4458361cbf2de8b2d1bc310d)

### Verwendung von in einer Datei gespeichertem MATLAB-Code

Anstatt MATLAB-Code direkt in Ihr LaTeX-Dokument einzubinden, verwenden Sie den `\lstinputlisting` Befehl, um Code aus einer externen Datei zu importieren und zu setzen:

```latex
\lstinputlisting[<options>]{<filename>}
```

wobei

* `<options>` ist eine durch Kommas getrennte Liste von Parametern, die als Schlüssel-Wert-Paare angegeben werden [(siehe oben)](#matopts);
* `<filename>` ist der Pfad zu einer Datei mit MATLAB-Code.

Zum Beispiel, um die Datei `sample.m` zu importieren und sie in dem `Matlab-bw` style zu setzen, würden Sie schreiben

```latex
\lstinputlisting[style=Matlab-bw]{sample.m}
```

Im nächsten Beispiel wird ein Rahmen um den Code gesetzt, die Codezeilen werden nummeriert (links), und es wird der `Matlab-bw` , das den

```latex
\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-editor
]{sample.m}
```

Wählen Sie die `Öffnen Sie dieses Beispiel in Overleaf` Link ([siehe unten](#openol)) verwendet, um automatisch ein Overleaf-Projekt zu erstellen, das die `sample.m` MATLAB-Code-Datei enthält.

**`main.tex`**

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}
\title{Importieren und Setzen von in einer Datei enthaltenem MATLAB-Code}
\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-bw
]{sample.m}

\end{document}
```

**`sample.m`**

```latex
%% Beispiel-Matlab-Code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
erzeuge den Zeilenvektor x, dann kehre ihn um
%}
x = linspace(0,1,101);
y = x(end:-1:1);
```

[Öffnen Sie dieses Beispiel in Overleaf (es erstellt die `sample.m` Datei).](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctitle%7BImporting+and+typesetting+MATLAB+code+contained+in+a+file%7D%0A%5Clstinputlisting%5B%0Aframe%3Dsingle%2C%0Anumbers%3Dleft%2C%0Astyle%3DMatlab-bw%0A%5D%7Bsample.m%7D%0A%0A%5Cend%7Bdocument%7D\&snip_name\[]=sample.m\&snip\[]=%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B\&main_document=main.tex)

Dieses Beispiel erzeugt die folgende Ausgabe:

![In LaTeX auf Overleaf gesetzter MATLAB-Code](/files/e867235672723f749ac3ee87808416127a7aea00)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/de/fragen-and-antworten/16-how-can-i-include-matlab-code-in-my-latex-document.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
