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

Den här artikeln visar hur du använder [paketet `minted`](https://ctan.org/pkg/minted?lang=en) för att formatera och syntaxmarkera källkod i programmeringsspråk i ett LaTeX-dokument, med början i ett exempel:

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

Exemplet ger följande resultat:

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

Här finns två viktiga kommandon. I preambeln importeras paketet genom att skriva

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

därefter avgränsar taggarna `\begin{minted}{python}` och `\end{minted}` en miljö som skriver ut texten ordagrant i ett teckensnitt med fast bredd och dessutom färglägger kommentarer, nyckelord och funktioner. Parametern `python` är det programmeringsspråk som källkoden är skriven i. `minted` stöder över 150 programmerings- och märkspråk samt konfigurationsfiler; se [referensguiden](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) för en lista över språk som stöds.

**Obs!** För att `minted` ska fungera med din *lokala* LaTeX-distribution måste ett extra program som heter [Pygments](https://pygments.org/) vara installerat. [Overleaf](https://www.overleaf.com/) kan bespara dig besväret att installera det och att behöva köra särskilda kommandon för att kompilera ditt dokument — på Overleaf fungerar dokument som använder `minted` direkt.

### Grundläggande användning

Som följande exempel visar kan miljön `minted` konfigureras för att ändra den visuella presentationen av den typsatta koden. Här använder miljön `minted` flera kommaseparerade parametrar 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}
```

Exemplet ger följande resultat:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Exempel där formatering tillämpas på typsatt kod från paketet minted" />
</p>

Parametrarna som används i exemplet är:

* `frame=lines`: ritar två linjer, en ovanför och en under koden, som ram. Andra möjliga värden är `leftline`, `topline`, `bottomline` och `single`.
* `framesep=2mm`: avståndet till ramen sätts till 2 mm. Andra [längdenheter](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) kan användas.
* `baselinestretch=1.2`: kodens radavstånd sätts till 1,2.
* `bgcolor=LightGray`: bakgrundsfärgen sätts till `LightGray`. Du måste importera paketet `xcolor` för att detta ska fungera. Se [Använda färger i LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) för mer om hantering av färger.
* `fontsize=\footnotesize`: teckenstorleken sätts till `footnotesize`. Vilken annan [teckenstorlek](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) som helst kan anges.
* `linenos`: aktiverar radnummer.

Andra alternativ som kan vara användbara är:

* `mathescape`: aktiverar matematikläge i kodkommentarer.
* `rulecolor`: ändrar ramens färg.
* `showspaces`: aktiverar ett specialtecken som gör mellanslag synliga.

### Inkludera kod från en fil

Kod lagras vanligtvis i en källfil, och därför är ett kommando som automatiskt importerar kod från en fil mycket praktiskt, vilket följande exempel visar:

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

Exemplet ger följande resultat:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Använda minted för att importera en kodfil" height="392" width="600" />

Kommandot `\inputminted{octave}{BitXorMatrix.m}` importerar koden från filen `BitXorMatrix.m`, och parametern `octave` talar om för LaTeX vilket programmeringsspråk koden är skriven i. Kommandot kan ta två extra parametrar för att importera endast en del av filen; för att till exempel importera koden från rad 2 till rad 12 blir kommandot:

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

### Kod på en rad

Om du bara behöver infoga en enda kodrad räcker kommandot `\mint`, vars syntax visas i nästa exempel.

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

Exemplet ger följande resultat:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Exempel på kod på en rad med minted" height="112" width="600" />

Parametern inom klammerparenteser anger programmeringsspråket (i det här fallet märkspråket `html`), och den faktiska text som ska formateras avgränsas av tecknet '|'.

### Problem med självhostad Overleaf

Om du använder sandlådad kompilering (sandbox compile) och dessutom driftsätter Overleaf på en egen server kanske minted inte fungerar som det ska. Detaljerad information finns i: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Du behöver aktivera ARM-instruktionsprofilen och vissa systemanrop för att minted ska fungera.


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