> 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/fi/muotoilu/12-code-highlighting-with-minted.md).

# Koodin korostus mintedillä

## Johdanto

Tässä artikkelissa näytetään, miten käyttää [`minted` paketti](https://ctan.org/pkg/minted?lang=en) ohjelmointikielten lähdekoodin muotoiluun ja korostamiseen LaTeX-asiakirjassa, alkaen esimerkistä:

```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 #josta tulee incidenssimatriisi
    VT = np.zeros((n*m,1), int)  #apumuuttuja

    #laske bittikohtainen XOR-matriisi
    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}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki, joka näyttää minted-paketin tulosteen](/files/29fc8e41602a71f6f9289b970666459f816e1257)

Tässä on kaksi tärkeää komentoa. Esipuheessa paketti tuodaan kirjoittamalla

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

sitten tunnisteet `\begin{minted}{python}` ja `\end{minted}` rajaavat ympäristön, joka tulostaa tekstin sellaisenaan tasalevyisellä fontilla ja lisää myös väriä kommentteihin, avainsanoihin ja funktioihin. Parametri `python` on ohjelmointikieli, jolla lähdekoodi on kirjoitettu. `minted` tukee yli 150 ohjelmointi- ja merkintäkieltä sekä asetustiedostoja; katso [viiteopas](#reference-guide) tuettujen kielten luetteloa varten.

**Huomaa**: Jotta `minted` toimisi sinun *paikallisen* LaTeX-jakelusi kanssa, lisäohjelma nimeltä [Pygments](https://pygments.org/) on asennettava. [Overleaf](https://www.overleaf.com/) voi säästää sinut sen asentamiselta ja erityisten komentojen suorittamiselta asiakirjan kääntämiseksi—Overleafissa asiakirjat, jotka käyttävät `minted` toimivat "sellaisenaan".

## Peruskäyttö

Kuten seuraavassa esimerkissä osoitetaan, `minted` ympäristö voidaan määrittää muuttamaan ladotun koodin ulkoasua. Tässä, `minted` ympäristö käyttää useita pilkuilla erotettuja parametreja muodossa `key=value`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % jotta nimetty väri LightGray on käytettävissä
\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 #josta tulee incidenssimatriisi
    VT = np.zeros((n*m,1), int)  #apumuuttuja

    #laske bittikohtainen XOR-matriisi
    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}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Another+example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%7Bxcolor%7D+%25+to+access+the+named+colour+LightGray%0A%5Cdefinecolor%7BLightGray%7D%7Bgray%7D%7B0.9%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%0A%5B%0Aframe%3Dlines%2C%0Aframesep%3D2mm%2C%0Abaselinestretch%3D1.2%2C%0Abgcolor%3DLightGray%2C%0Afontsize%3D%5Cfootnotesize%2C%0Alinenos%0A%5D%0A%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Esimerkki, jossa muotoilu sovelletaan minted-paketin tuottamaan ladottuun koodiin](/files/799508c142693d5710675c7043bafeaaf2d20c8d)

Tässä esimerkissä käytetyt parametrit ovat:

* `frame=lines`: piirtää kaksi viivaa, yhden koodin ylä- ja yhden alapuolelle kehykseksi. Muita mahdollisia arvoja ovat `leftline`, `topline`, `bottomline` ja `single`.
* `framesep=2mm`: kehysten väli asetetaan 2 mm:iin. Muut [pituusyksiköt](/latex/fi/muotoilu/01-lengths-in-latex.md) voidaan käyttää.
* `baselinestretch=1.2`: koodin riviväliksi asetetaan 1,2.
* `bgcolor=LightGray`: taustaväriksi asetetaan `LightGray`. Sinun täytyy tuoda paketti `xcolor` jotta tämä toimisi. Katso [Värien käyttäminen LaTeXissa](/latex/fi/muotoilu/13-using-colors-in-latex.md) oppiaksesi lisää värien käsittelystä.
* `fontsize=\footnotesize`: fonttikooksi asetetaan `footnotesize`. Myös mikä tahansa muu [fonttikoko](/latex/fi/fontit/01-font-sizes-families-and-styles.md#reference-guide) voidaan asettaa.
* `linenos`: ottaa rivinumerot käyttöön.

Muita hyödyllisiä vaihtoehtoja ovat:

* `mathescape`: ottaa matematiikkatilan käyttöön koodikommenteissa.
* `rulecolor`: muuttaa kehyksen väriä.
* `showspaces`: ottaa käyttöön erikoismerkin välilyöntien näkyviin tekemiseksi.

## Koodin sisällyttäminen tiedostosta

Koodi tallennetaan yleensä lähdetiedostoon, joten komento, joka tuo koodin automaattisesti tiedostosta, on erittäin kätevä, kuten seuraava esimerkki osoittaa:

```latex
\documentclass{article}
\usepackage{minted}
\title{Tiedostojen tuominen mintedillä}
\begin{document}
Seuraava koodi tuodaan suoraan tiedostosta:

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

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BImporting+files+using+minted%7D%0A%5Cbegin%7Bdocument%7D%0AThe+next+code+will+be+directly+imported+from+a+file%3A%0A%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=function+X+%3D+BitXorMatrix%28A%2CB%29%0A%25function+to+compute+the+sum+without+charge+of+two+vectors%0A%09%0A%09%25convert+elements+into+usigned+integers%0A%09A+%3D+uint8%28A%29%3B%0A%09B+%3D+uint8%28B%29%3B%0A%0A%09m1+%3D+length%28A%29%3B%0A%09m2+%3D+length%28B%29%3B%0A%09X+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A%09for+n1%3D1%3Am1%0A%09%09for+n2%3D1%3Am2%0A%09%09%09X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A%09%09end%0A%09end\&main_document=main.tex)

Tämä esimerkki tuottaa seuraavan tulosteen:

![mintedin käyttäminen kooditiedoston tuontiin](/files/07ba05996725c9c8e4a4a34ebd98c6e0aa6f780f)

Komento `\inputminted{octave}{BitXorMatrix.m}` tuo koodin tiedostosta `BitXorMatrix.m`, parametri `octave` kertoo LaTeXille koodin ohjelmointikielen. Tämä komento voi ottaa kaksi lisäparametria, jotta se tuo vain osan tiedostosta; esimerkiksi tuodaksesi koodin riviltä 2 riville 12, komento muuttuu muotoon:

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

## Yhden rivin koodi

Jos sinun tarvitsee tuoda vain yksi koodirivi, komento `\mint`, jonka syntaksi esitellään seuraavassa esimerkissä, hoitaa asian.

```latex
Yhden rivin koodin muotoilu toimii myös \texttt{mintedillä}. Esimerkiksi pieni HTML-pätkä, kuten tämä:
\mint{html}|<h2>Jotakin <b>täällä</b></h2>|
\noindent voidaan muotoilla oikein.
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One+line+code+example+with+minted\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0AOne-line+code+formatting+also+works+with+%5Ctexttt%7Bminted%7D.+For+example%2C+a+small+fragment+of+HTML+like+this%3A%0A%5Cmint%7Bhtml%7D%7C%3Ch2%3ESomething+%3Cb%3Ehere%3C%2Fb%3E%3C%2Fh2%3E%7C%0A%5Cnoindent+can+be+formatted+correctly.%0A%5Cend%7Bdocument%7D)

Tämä esimerkki tuottaa seuraavan tulosteen:

![Yhden rivin koodiesimerkki mintedillä](/files/1b331bdde57f8c9d7977143f9c26a8e5f4689cfd)

Aaltosulkeiden välinen parametri määrittää ohjelmointikielen (`html` tässä tapauksessa merkintäkielen) ja varsinainen muotoiltava teksti rajataan '|' -merkillä.

## Mukautetut lexerit

**(Huomaa, että muutosten vuoksi `minted` vuodesta 2023 alkaen seuraava tapa toimii vain** [**TeX Live 2022 or earlier**](/latex/fi/tietopankki/148-using-the-overleaf-project-menu.md#tex-live-version)**.)**

Oletusarvoisesti, `minted` tukee vain kieliä, joiden lexerit on jo asennettu tai rekisteröity `pygmentize`. Jos olet kirjoittanut mukautetun lexer-ohjelman tai haluat käyttää lexer-ohjelmaa kielelle, jota ei vielä ole asennettu Overleafiin, voit silti käyttää sitä omassa Overleaf-projektissasi käyttämällä edellä mainittua lähestymistapaa [täällä](https://tex.stackexchange.com/questions/18083/how-to-add-custom-c-keywords-to-be-recognized-by-minted#comment930474_42392).

Oletetaan, että olet määrittänyt lexer-ohjelman tiedostossa `nl-lexer.py`, joka sisältää luokan `NetLogoLexer` NetLogo-kieltä varten. Lataa `nl-lexer.py` Overleaf-projektiisi ja määritä sitten `nl-lexer.py:NetLogoLexer` käytettäessä "kielen nimeksi" `minted`. Esimerkiksi:

```latex
\begin{minted}{nl-lexer.py:NetLogoLexer -x}
   ... koodisi tähän ...
\end{minted}
```

[Tässä on](http://quantixed.org/2018/10/23/new-lexicon-how-to-add-a-custom-minted-lexer-in-overleaf/) toinen esimerkki ImageJ Macro -kielelle.

## Värit ja tyylitiedostot

Koodin korostuksessa käytetyt värimaailmat tallennetaan tyylitiedostoihin. Voit luoda oman tai käyttää jotakin jo LaTeX-jakelussasi olevaa. Katso [viiteopas](#reference-guide) luettelo tyylitiedostoista, jotka sisältyvät [Overleaf](https://www.overleaf.com).

```latex
\documentclass{article}
\usepackage{minted}
\usemintedstyle{borland}
\begin{document}
\begin{minted}{python}
import numpy as np

def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #josta tulee incidenssimatriisi
    VT = np.zeros((n*m,1), int)  #apumuuttuja

    #laske bittikohtainen XOR-matriisi
    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}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+stylesheets+with+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusemintedstyle%7Bborland%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Käyttämällä `borland` tyylitiedostoa saadaan seuraava tulos:

![minted-paketin tulos borland-tyylitiedostoa käyttäen](/files/146d255d00cae9ee0b9552078bc57975b4efd1e9)

Väritystyylin asettamisen syntaksi on helppo: komento `\usemintedstyle{borland}` käyttää väriteemaa `borland` lähdekoodin muotoiluun. Lisää värimaailmoja löydät [viiteopas](#reference-guide).

## Kuvatekstit, tunnisteet ja listausluettelo

Koodilistaukset, jotka on muotoiltu **minted** voidaan sisällyttää kelluvaan elementtiin aivan kuten [kuvat](/latex/fi/lisaa-aiheita/27-inserting-images.md#positioning) ja [taulukot](/latex/fi/kuvat-ja-taulukot/01-tables.md#positioning-tables). Koodilistauksille voidaan antaa kuvatekstit ja tunnisteet, ja niitä voidaan myöhemmin viitata sekä sisällyttää "listausluetteloon".

```latex
\documentclass{article}
\usepackage{minted}
\title{Koodiesimerkkien listaus}
\begin{document}
\begin{listing}[!ht]
\inputminted{octave}{BitXorMatrix.m}
\caption{Esimerkki ulkoisesta tiedostosta}
\label{listing:1}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{c}
#include <stdio.h>
int main() {
   printf("Hei, maailma!"); /*printf() tulostaa lainausmerkeissä olevan merkkijonon*/
   return 0;
}
\end{minted}
\caption{Hei maailma C:llä}
\label{listing:2}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{lua}
function fact (n)--määrittelee kertoma-funktion
  if n == 0 then
    return 1
  else
    return n * fact(n-1)
  end
end

print("anna luku:")
a = io.read("*number") -- lue luku
print(fact(a))
\end{minted}
\caption{Esimerkki Lua-manuaalista}
\label{listing:3}
\end{listing}
\noindent\texttt{minted} hoitaa listauksien \ref{listing:1}, \ref{listing:2} ja \ref{listing:3} ladonnan hienosti.
\renewcommand\listoflistingscaption{Lähdekoodien luettelo}
\listoflistings
\end{document}
```

[Avaa tämä esimerkki Overleafissa](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BListing+code+examples%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Ccaption%7BExample+from+external+file%7D%0A%5Clabel%7Blisting%3A1%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Bc%7D%0A%23include+%3Cstdio.h%3E%0Aint+main%28%29+%7B%0A+++printf%28%22Hello%2C+World%21%22%29%3B+%2F%2Aprintf%28%29+outputs+the+quoted+string%2A%2F%0A+++return+0%3B%0A%7D%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BHello+World+in+C%7D%0A%5Clabel%7Blisting%3A2%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Blua%7D%0Afunction+fact+%28n%29--defines+a+factorial+function%0A++if+n+%3D%3D+0+then%0A++++return+1%0A++else%0A++++return+n+%2A+fact%28n-1%29%0A++end%0Aend%0A%0Aprint%28%22enter+a+number%3A%22%29%0Aa+%3D+io.read%28%22%2Anumber%22%29+--+read+a+number%0Aprint%28fact%28a%29%29%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BExample+from+the+Lua+manual%7D%0A%5Clabel%7Blisting%3A3%7D%0A%5Cend%7Blisting%7D%0A%5Cnoindent%5Ctexttt%7Bminted%7D+makes+a+nice+job+of+typesetting+listings+%5Cref%7Blisting%3A1%7D%2C+%5Cref%7Blisting%3A2%7D+and+%5Cref%7Blisting%3A3%7D.%0A%5Crenewcommand%5Clistoflistingscaption%7BList+of+source+codes%7D%0A%5Clistoflistings%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=%25This+code+is+directly+imported+from+a+file%0A%25A+function+to+compute+the+sum+without+charge+of+two+vectors%0Afunction+X+%3D+BitXorMatrix%28A%2CB%29%0A%25convert+elements+into+unsigned+integers%0AA+%3D+uint8%28A%29%3B%0AB+%3D+uint8%28B%29%3B%0A%0Am1+%3D+length%28A%29%3B%0Am2+%3D+length%28B%29%3B%0AX+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A+for+n1%3D1%3Am1%0A++for+n2%3D1%3Am2%0A+++X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A++end%0Aend\&main_document=main.tex)

Tämän esimerkin ensimmäinen sivu sisältää seuraavan tulosteen:

![Esimerkki listattavista koodipätkistä](/files/8705d3e99c96ca59e32f8e87edb68bfb652f4198)

Tulostaaksesi luettelon kaikista "listing"-elementeistä käytä `\listoflistings`. Yllä olevassa esimerkissä oletusarvoinen otsikko `List of listings` muutetaan muotoon `Lähdekoodien luettelo` kirjoittamalla

```latex
\renewcommand\listoflistingscaption{Lähdekoodien luettelo}
\listoflistings % Ladotaan luettelo nyt
```

Yllä olevan esimerkin tuottama toinen sivu sisältää seuraavan listauksen:

![Esimerkki lähdekoodien listauksesta](/files/603da805fbcdae82d18cb388f13afbfc3b9e28bd)

## Viiteopas

**mintedin värityylit**

| nimi     | tulos                                                                 | nimi     | tulos                                                                  |
| -------- | --------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| manni    | ![MintedStyles1.png](/files/de519b935790bd77a1cead8e0ac2aa01e6f3ee65) | fruity   | ![MintedStyles10.png](/files/91c35bb34cc48493ce19069b81cb3a1c447062d3) |
| rrt      | ![MintedStyles2.png](/files/79742d4000b544913eee1939dbbaa6910b025b69) | autumn   | ![MintedStyles11.png](/files/96d8475c633773c2222b98025196d76143944f32) |
| perldoc  | ![MintedStyles3.png](/files/a25f2302cb758cd3ff220cc8c936ad62d9dba39f) | bw       | ![MintedStyles12.png](/files/1e6df88e98b51091f5b94d6274735990eb17bd62) |
| borland  | ![MintedStyles4.png](/files/ce2394a1cb36af99149f0cde8fa6fcd92994e686) | emacs    | ![MintedStyles13.png](/files/1cd197ccbf4d31c72d8a87395392244c896e1e40) |
| colorful | ![MintedStyles5.png](/files/ff6f038138d5dad483f62497801d3b5e7f3636c7) | vim      | ![MintedStyles14.png](/files/775c6840ef29bda58f0e47d4e41ffbd022cf7219) |
| murphy   | ![MintedStyles6.png](/files/2116995eaa881ddb703cbb9a5457ab0542acb7ef) | pastie   | ![MintedStyles15.png](/files/bda0c365522aecfdbe7dac22d874a75aa11ea22d) |
| vs       | ![MintedStyles7.png](/files/cce4d2bc590a376a21893ef82b8a42df5bade8a0) | friendly | ![MintedStyles16.png](/files/37e42d1c8aae55a18f72dbdecf6ee0aa2445139b) |
| trac     | ![MintedStyles8.png](/files/0824a88b998feea02423ec0a7eb63fc2142c3212) | native   | ![MintedStyles17.png](/files/72a3de686fe9231a6a56ef9d325ea432a3786e16) |
| tango    | ![MintedStyles9.png](/files/d113fbaf5b59625ada1cd807bb08886c8981c67c) | monokai  | ![MintedStyles18.png](/files/f1d4204fa240ebb3ab7467476ff0496ab351f65b) |

Jotkin värimaailmat vaativat tumman taustan ollakseen luettavia.

**Tärkeimmät tuetut ohjelmointikielet ja asetustiedostot**

|          |            |             |           |
| -------- | ---------- | ----------- | --------- |
| cucumber | abap       | ada         | ahk       |
| antlr    | apacheconf | applescript | as        |
| aspectj  | autoit     | asy         | awk       |
| basemake | bash       | bat         | bbcode    |
| befunge  | bmax       | boo         | brainfuck |
| bro      | bugs       | c           | ceylon    |
| cfm      | cfs        | cheetah     | clj       |
| cmake    | cobol      | cl          | console   |
| control  | coq        | cpp         | croc      |
| csharp   | css        | cuda        | cyx       |
| d        | dg         | diff        | django    |
| dpatch   | duel       | dylan       | ec        |
| erb      | evoque     | fan         | fancy     |
| fortran  | gas        | genshi      | glsl      |
| gnuplot  | go         | gosu        | groovy    |
| gst      | haml       | haskell     | hxml      |
| html     | http       | hx          | idl       |
| irc      | ini        | java        | jade      |
| js       | json       | jsp         | kconfig   |
| koka     | lasso      | livescrit   | llvm      |
| logos    | lua        | mako        | mason     |
| matlab   | minid      | monkey      | moon      |
| mxml     | myghty     | mysql       | nasm      |
| newlisp  | newspeak   | numpy       | ocaml     |
| octave   | ooc        | perl        | php       |
| plpgsql  | postgresql | postscript  | pot       |
| prolog   | psql       | puppet      | python    |
| qml      | ragel      | raw         | ruby      |
| rhtml    | sass       | scheme      | smalltalk |
| sql      | ssp        | tcl         | tea       |
| tex      | teksti     | vala        | vgl       |
| vim      | xml        | xquery      | yaml      |

## Lisälukemista

Lisätietoja löydät:

* [Pituudet LaTeXissa](/latex/fi/muotoilu/01-lengths-in-latex.md)
* [Koodiluettelo](/latex/fi/muotoilu/11-code-listing.md)
* [Laskurit](/latex/fi/muotoilu/10-counters.md)
* [Värien käyttäminen LaTeXissa](/latex/fi/muotoilu/13-using-colors-in-latex.md)
* [Kirjasinkoot, -perheet ja -tyylit](/latex/fi/fontit/01-font-sizes-families-and-styles.md)
* [Kirjasinlajit](/latex/fi/fontit/02-font-typefaces.md)
* [Hallinta suuressa projektissa](/latex/fi/asiakirjan-rakenne/07-management-in-a-large-project.md)
* [Useita tiedostoja sisältävät LaTeX-projektit](/latex/fi/asiakirjan-rakenne/08-multi-file-latex-projects.md)
* [Sisällysluettelo](/latex/fi/asiakirjan-rakenne/02-table-of-contents.md)
* [Yksipuoliset ja kaksipuoliset asiakirjat](/latex/fi/muotoilu/08-single-sided-and-double-sided-documents.md)
* [Se **minted** pakettidokumentaatio](https://texdoc.org/serve/minted/0)


---

# 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/fi/muotoilu/12-code-highlighting-with-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.
