> 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/texlive/de/paketbezogen/minted.md).

# {Minted}

Dieser Artikel zeigt, wie man das [`minted` Paket](https://ctan.org/pkg/minted?lang=en) verwendet, um Quellcode einer Programmiersprache innerhalb eines LaTeX-Dokuments zu formatieren und hervorzuheben, beginnend mit einem Beispiel:

```latex
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
import numpy as np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None # wird die Inzidenzmatrix werden
    VT = np.zeros((n*m,1), int)  # Dummy-Variable
    
    # berechne die bitweise XOR-Matrix
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 

    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;
                
                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)
                
                VT = np.zeros((n*m,1), int)
    
    return M
\end{minted}
\end{document}
```

Dieses Beispiel erzeugt die folgende Ausgabe:

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Example displaying the output of the minted package"></p>

Es gibt hier zwei wichtige Befehle. Im Vorspann wird das Paket importiert, indem man schreibt

```latex
\usepackage{minted}
```

dann kennzeichnen die Tags `\begin{minted}{python}` und `\end{minted}` ein Umfeld, das den Text wortgetreu in Monospace-Schrift ausgibt und außerdem Kommentare, Schlüsselwörter und Funktionen farbig hervorhebt. Der Parameter `python` ist die Programmiersprache, in der der Quellcode geschrieben ist. `minted` unterstützt über 150 Programmiersprachen und Auszeichnungssprachen sowie Konfigurationsdateien, siehe den [Referenzleitfaden](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) für eine Liste der unterstützten Sprachen.

**Hinweis**: Für `minted` mit deiner *lokalen* LaTeX-Distribution funktioniert, muss ein zusätzliches Programm namens [Pygments](https://pygments.org/) installiert sein. [Overleaf](https://www.overleaf.com/) kann dir die Mühe ersparen, es zu installieren und spezielle Befehle zum Kompilieren deines Dokuments auszuführen — auf Overleaf funktionieren Dokumente, die `minted` verwenden, "out of the box".

### Grundlegende Verwendung

Wie im folgenden Beispiel gezeigt, kann das `minted` Umfeld konfiguriert werden, um die visuelle Darstellung des gesetzten Codes zu ändern. Hier verwendet das `minted` Umfeld mehrere durch Kommas getrennte Parameter der Form `key=value`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % um auf die benannte Farbe LightGray zuzugreifen
\definecolor{LightGray}{gray}{0.9}
\begin{document}
\begin{minted}
[
frame=lines,
framesep=2mm,
baselinestretch=1.2,
bgcolor=LightGray,
fontsize=\footnotesize,
linenos
]
{python}
import numpy as np
    
def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None # wird die Inzidenzmatrix werden
    VT = np.zeros((n*m,1), int)  # Dummy-Variable
    
    # berechne die bitweise XOR-Matrix
    M1 = bitxormatrix(genl1)
    M2 = np.triu(bitxormatrix(genl2),1) 

    for i in range(m-1):
        for j in range(i+1, m):
            [r,c] = np.where(M2 == M1[i,j])
            for k in range(len(r)):
                VT[(i)*n + r[k]] = 1;
                VT[(i)*n + c[k]] = 1;
                VT[(j)*n + r[k]] = 1;
                VT[(j)*n + c[k]] = 1;
                
                if M is None:
                    M = np.copy(VT)
                else:
                    M = np.concatenate((M, VT), 1)
                
                VT = np.zeros((n*m,1), int)
    
    return M
\end{minted}
\end{document}
```

Dieses Beispiel erzeugt die folgende Ausgabe:

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Example applying formatting to typeset code produced by the minted package"></p>

Die in diesem Beispiel verwendeten Parameter sind:

* `frame=lines`: zeichnet zwei Linien, eine oben und eine unten am Code, um ihn einzurahmen. Andere mögliche Werte sind `leftline`, `topline`, `bottomline` und `single`.
* `framesep=2mm`: der Rahmenabstand wird auf 2mm gesetzt. Andere [Längeneinheiten](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) können verwendet werden.
* `baselinestretch=1.2`: der Zeilenabstand des Codes wird auf 1.2 gesetzt.
* `bgcolor=LightGray`: Hintergrundfarbe auf `LightGray`gesetzt. Du musst das `xcolor` Paket importieren, damit dies funktioniert. Siehe [Farben in LaTeX verwenden](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) um mehr über Farbmanipulation zu erfahren.
* `fontsize=\footnotesize`: Schriftgröße auf `footnotesize`. Jede andere [Schriftgröße](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) kann eingestellt werden.
* `linenos`: aktiviert Zeilennummern.

Andere Optionen, die nützlich sein können, sind:

* `mathescape`: aktiviert den Mathemodus in Codekommentaren.
* `rulecolor`: ändert die Farbe des Rahmens.
* `showspaces`: aktiviert ein Sonderzeichen, um Leerzeichen sichtbar zu machen.

### Code aus einer Datei einbinden

Code wird normalerweise in einer Quellcodedatei gespeichert, daher ist ein Befehl, der Code automatisch aus einer Datei importiert, sehr praktisch, wie im folgenden Beispiel gezeigt wird:

```latex
\documentclass{article}
\usepackage{minted}
\title{Importieren von Dateien mit minted}
\begin{document}
Der nächste Code wird direkt aus einer Datei importiert:

\inputminted{octave}{BitXorMatrix.m}
\end{document}
```

Dieses Beispiel erzeugt die folgende Ausgabe:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Mit minted eine Codedatei importieren" height="392" width="600">

Der Befehl `\inputminted{octave}{BitXorMatrix.m}` importiert den Code aus der Datei `BitXorMatrix.m`, der Parameter `octave` teilt LaTeX die Programmiersprache des Codes mit. Dieser Befehl kann zwei zusätzliche Parameter annehmen, um nur einen Teil der Datei zu importieren; um beispielsweise Code von Zeile 2 bis Zeile 12 zu importieren, wird der Befehl zu:

```latex
\inputminted[firstline=2, lastline=12]{octave}{BitXorMatrix.m}
```

### Einzeiliger Code

Wenn du nur eine Codezeile eingeben musst, ist der Befehl `\mint`, dessen Syntax im nächsten Beispiel dargestellt wird, genau das Richtige.

{% code overflow="wrap" %}

```latex
Einzeilige Codeformatierung funktioniert auch mit \texttt{minted}. Zum Beispiel kann ein kleiner HTML-Ausschnitt wie dieser:
\mint{html}|<h2>Something <b>here</b></h2>|
\noindent korrekt formatiert werden.
```

{% endcode %}

Dieses Beispiel erzeugt die folgende Ausgabe:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Einzeiliges Codebeispiel mit minted" height="112" width="600">

Der Parameter zwischen den geschweiften Klammern legt die Programmiersprache fest (`html` Markup-Sprache in diesem Fall), wobei der tatsächlich zu formatierende Text durch das Zeichen '|' begrenzt wird.

### Probleme mit selbst gehostetem Overleaf

Wenn du Sandkasten-Compile verwendest und außerdem einen Overleaf-Server zum Bereitstellen von Overleaf, funktioniert minted möglicherweise nicht gut. Für detaillierte Informationen kannst du sehen: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Du musst das ARM-Instruktionsprofil und einige Systemaufrufe aktivieren, damit minted funktioniert.


---

# 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/texlive/de/paketbezogen/minted.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.
