> ## 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.

# {Minted}

Dit artikel laat zien hoe je het [pakket `minted`](https://ctan.org/pkg/minted?lang=en) gebruikt om broncode van programmeertalen in een LaTeX-document op te maken en te markeren. We beginnen met een voorbeeld:

```latex theme={null}
\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 #to become the incidence matrix
    VT = np.zeros((n*m,1), int)  #dummy variable
    
    #compute the bitwise 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}
```

Dit voorbeeld levert de volgende uitvoer op:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Voorbeeld van de uitvoer van het pakket minted" />
</p>

Er zijn hier twee belangrijke opdrachten. In de preamble wordt het pakket geïmporteerd door te schrijven

```latex theme={null}
\usepackage{minted}
```

waarna de tags `\begin{minted}{python}` en `\end{minted}` een omgeving afbakenen die de tekst letterlijk in een monospaced lettertype weergeeft en daarnaast kleur toepast op commentaar, trefwoorden en functies. De parameter `python` is de programmeertaal waarin de broncode is geschreven. `minted` ondersteunt meer dan 150 programmeer- en opmaaktalen, evenals configuratiebestanden; zie de [naslaggids](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) voor een lijst met ondersteunde talen.

**Opmerking**: om `minted` te laten werken met je *lokale* LaTeX-distributie, moet een extra programma genaamd [Pygments](https://pygments.org/) zijn geïnstalleerd. [Overleaf](https://www.overleaf.com/) bespaart je de moeite om het te installeren en speciale opdrachten uit te voeren om je document te compileren: op Overleaf werken documenten die `minted` gebruiken direct "out of the box".

### Basisgebruik

Zoals in het volgende voorbeeld wordt getoond, kan de omgeving `minted` worden geconfigureerd om de visuele weergave van de gezette code aan te passen. Hier gebruikt de omgeving `minted` verschillende door komma's gescheiden parameters in de vorm `key=value`:

```latex theme={null}
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % to access the named colour LightGray
\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 #to become the incidence matrix
    VT = np.zeros((n*m,1), int)  #dummy variable
    
    #compute the bitwise 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}
```

Dit voorbeeld levert de volgende uitvoer op:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Voorbeeld van opmaak toegepast op code gezet met het pakket minted" />
</p>

De parameters die in dit voorbeeld worden gebruikt, zijn:

* `frame=lines`: tekent twee lijnen, één boven en één onder de code, om deze te omkaderen. Andere mogelijke waarden zijn `leftline`, `topline`, `bottomline` en `single`.
* `framesep=2mm`: de afstand tot het kader wordt ingesteld op 2mm. Andere [lengte-eenheden](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) kunnen ook worden gebruikt.
* `baselinestretch=1.2`: de regelafstand van de code wordt ingesteld op 1.2.
* `bgcolor=LightGray`: achtergrondkleur ingesteld op `LightGray`. Hiervoor moet je het pakket `xcolor` importeren. Zie [Using colours in LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) voor meer informatie over het werken met kleuren.
* `fontsize=\footnotesize`: lettergrootte ingesteld op `footnotesize`. Elke andere [lettergrootte](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) kan worden ingesteld.
* `linenos`: schakelt regelnummers in.

Andere opties die nuttig kunnen zijn:

* `mathescape`: schakelt de wiskundemodus in codecommentaar in.
* `rulecolor`: wijzigt de kleur van het kader.
* `showspaces`: schakelt een speciaal teken in om spaties zichtbaar te maken.

### Code uit een bestand opnemen

Code wordt meestal in een bronbestand bewaard; een opdracht die code automatisch uit een bestand importeert is daarom erg handig, zoals in het volgende voorbeeld wordt getoond:

```latex theme={null}
\documentclass{article}
\usepackage{minted}
\title{Importing files using minted}
\begin{document}
The next code will be directly imported from a file:

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

Dit voorbeeld levert de volgende uitvoer op:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="minted gebruiken om een codebestand te importeren" height="392" width="600" />

De opdracht `\inputminted{octave}{BitXorMatrix.m}` importeert de code uit het bestand `BitXorMatrix.m`; de parameter `octave` vertelt LaTeX in welke programmeertaal de code is geschreven. Deze opdracht kan twee extra parameters krijgen om slechts een deel van het bestand te importeren; om bijvoorbeeld code van regel 2 tot regel 12 te importeren, wordt de opdracht:

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

### Code op één regel

Als je slechts één regel code wilt invoegen, volstaat de opdracht `\mint`, waarvan de syntaxis in het volgende voorbeeld wordt getoond.

```latex wrap theme={null}
One-line code formatting also works with \texttt{minted}. For example, a small fragment of HTML like this:
\mint{html}|<h2>Something <b>here</b></h2>|
\noindent can be formatted correctly.
```

Dit voorbeeld levert de volgende uitvoer op:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Voorbeeld van code op één regel met minted" height="112" width="600" />

De parameter tussen accolades bepaalt de programmeertaal (in dit geval de opmaaktaal `html`), waarbij de daadwerkelijk op te maken tekst wordt afgebakend door het teken '|'.

### Problemen met self-hosted Overleaf

Als je sandbox-compilatie gebruikt en Overleaf ook met een Overleaf-server implementeert, werkt minted mogelijk niet goed. Zie voor gedetailleerde informatie: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Je moet het ARM-instructieprofiel en enkele systeemaanroepen inschakelen om minted te laten werken.


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