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

Denne artikkelen viser hvordan du bruker [`minted`-pakken](https://ctan.org/pkg/minted?lang=en) til å formatere og fremheve kildekode i programmeringsspråk i et LaTeX-dokument, med utgangspunkt i et eksempel:

```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}
```

Dette eksempelet gir følgende resultat:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Eksempel som viser resultatet av minted-pakken" />
</p>

Her er det to viktige kommandoer. I preamblet importeres pakken ved å skrive

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

deretter avgrenser taggene `\begin{minted}{python}` og `\end{minted}` et miljø som skriver ut teksten ordrett med skrift med fast bredde, og som også fargelegger kommentarer, nøkkelord og funksjoner. Parameteren `python` er programmeringsspråket kildekoden er skrevet i. `minted` støtter over 150 programmerings- og markeringsspråk samt konfigurasjonsfiler; se [referanseguiden](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) for en liste over støttede språk.

**Merk**: For at `minted` skal fungere med din *lokale* LaTeX-distribusjon, må et tilleggsprogram kalt [Pygments](https://pygments.org/) være installert. [Overleaf](https://www.overleaf.com/) kan spare deg for bryet med å installere det og å måtte kjøre spesielle kommandoer for å kompilere dokumentet — på Overleaf fungerer dokumenter som bruker `minted`, rett ut av boksen.

### Grunnleggende bruk

Som vist i følgende eksempel kan `minted`-miljøet konfigureres for å endre den visuelle presentasjonen av den typesatte koden. Her bruker `minted`-miljøet flere kommaseparerte parametere på formen `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}
```

Dette eksempelet gir følgende resultat:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Eksempel på formatering av typesatt kode produsert av minted-pakken" />
</p>

Parameterne som brukes i dette eksempelet, er:

* `frame=lines`: tegner to linjer, én over og én under koden, for å ramme den inn. Andre mulige verdier er `leftline`, `topline`, `bottomline` og `single`.
* `framesep=2mm`: avstanden til rammen settes til 2 mm. Andre [lengdeenheter](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) kan brukes.
* `baselinestretch=1.2`: linjeavstanden i koden settes til 1,2.
* `bgcolor=LightGray`: bakgrunnsfargen settes til `LightGray`. Du må importere pakken `xcolor` for at dette skal fungere. Se [Bruke farger i LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) for å lære mer om håndtering av farger.
* `fontsize=\footnotesize`: skriftstørrelsen settes til `footnotesize`. Enhver annen [skriftstørrelse](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) kan angis.
* `linenos`: aktiverer linjenumre.

Andre alternativer som kan være nyttige, er:

* `mathescape`: aktiverer matematikkmodus i kodekommentarer.
* `rulecolor`: endrer fargen på rammen.
* `showspaces`: aktiverer et spesialtegn som gjør mellomrom synlige.

### Inkludere kode fra en fil

Kode lagres vanligvis i en kildefil, så en kommando som automatisk importerer kode fra en fil, er svært praktisk, som vist i følgende eksempel:

```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}
```

Dette eksempelet gir følgende resultat:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Bruke minted til å importere en kodefil" height="392" width="600" />

Kommandoen `\inputminted{octave}{BitXorMatrix.m}` importerer koden fra filen `BitXorMatrix.m`, og parameteren `octave` forteller LaTeX hvilket programmeringsspråk koden er skrevet i. Kommandoen kan ta to ekstra parametere for å importere bare en del av filen; for eksempel, for å importere kode fra linje 2 til linje 12, blir kommandoen:

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

### Kode på én linje

Hvis du bare trenger å sette inn én kodelinje, gjør kommandoen `\mint`, hvis syntaks vises i neste eksempel, jobben.

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

Dette eksempelet gir følgende resultat:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Eksempel på kode på én linje med minted" height="112" width="600" />

Parameteren mellom klammeparentesene angir programmeringsspråket (i dette tilfellet markeringsspråket `html`), og selve teksten som skal formateres, avgrenses av tegnet '|'.

### Problemer med selvdriftet Overleaf

Hvis du bruker sandboxed kompilering og i tillegg en Overleaf-server til å drifte Overleaf, er det ikke sikkert at minted fungerer godt. For detaljert informasjon, se: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Du må aktivere ARM-instruksjonsprofilen og enkelte systemkall for at minted skal fungere.


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