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

Tento článek ukazuje, jak pomocí [balíčku `minted`](https://ctan.org/pkg/minted?lang=en) formátovat a zvýrazňovat zdrojový kód programovacích jazyků v dokumentu LaTeX. Začneme příkladem:

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

Tento příklad vytvoří následující výstup:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Příklad zobrazující výstup balíčku minted" />
</p>

Jsou zde dva důležité příkazy. V preambuli se balíček importuje zápisem

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

poté značky `\begin{minted}{python}` a `\end{minted}` vymezují prostředí, které vysází text doslovně neproporcionálním písmem a zároveň obarví komentáře, klíčová slova a funkce. Parametr `python` udává programovací jazyk, ve kterém je zdrojový kód napsán. `minted` podporuje přes 150 programovacích a značkovacích jazyků i konfiguračních souborů; seznam podporovaných jazyků najdete v [referenční příručce](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide).

**Poznámka**: Aby `minted` fungoval s vaší *lokální* distribucí LaTeXu, musí být nainstalován další program s názvem [Pygments](https://pygments.org/). [Overleaf](https://www.overleaf.com/) vám může ušetřit starosti s jeho instalací a se spouštěním speciálních příkazů pro kompilaci dokumentu — na Overleaf fungují dokumenty používající `minted` „hned po vybalení“.

### Základní použití

Jak ukazuje následující příklad, prostředí `minted` lze nakonfigurovat tak, aby se změnila vizuální podoba vysázeného kódu. Zde prostředí `minted` používá několik parametrů ve tvaru `key=value` oddělených čárkami:

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

Tento příklad vytvoří následující výstup:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Příklad formátování vysázeného kódu vytvořeného balíčkem minted" />
</p>

V tomto příkladu jsou použity tyto parametry:

* `frame=lines`: nakreslí dvě čáry, jednu nad kódem a jednu pod ním, které jej orámují. Další možné hodnoty jsou `leftline`, `topline`, `bottomline` a `single`.
* `framesep=2mm`: vzdálenost rámečku je nastavena na 2 mm. Lze použít i jiné [jednotky délky](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX).
* `baselinestretch=1.2`: řádkování kódu je nastaveno na 1,2.
* `bgcolor=LightGray`: barva pozadí je nastavena na `LightGray`. Aby to fungovalo, musíte importovat balíček `xcolor`. Více o práci s barvami se dozvíte v článku [Používání barev v LaTeXu](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX).
* `fontsize=\footnotesize`: velikost písma je nastavena na `footnotesize`. Lze nastavit jakoukoli jinou [velikost písma](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide).
* `linenos`: zapne číslování řádků.

Další užitečné volby jsou:

* `mathescape`: zapne matematický režim v komentářích kódu.
* `rulecolor`: změní barvu rámečku.
* `showspaces`: zapne zobrazení speciálního znaku, který zviditelní mezery.

### Vložení kódu ze souboru

Kód je obvykle uložen ve zdrojovém souboru, proto je velmi praktický příkaz, který kód ze souboru automaticky naimportuje, jak ukazuje následující příklad:

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

Tento příklad vytvoří následující výstup:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Použití minted k importu souboru s kódem" height="392" width="600" />

Příkaz `\inputminted{octave}{BitXorMatrix.m}` naimportuje kód ze souboru `BitXorMatrix.m`, parametr `octave` sděluje LaTeXu programovací jazyk kódu. Tento příkaz může přijmout dva další parametry pro import pouze části souboru; například pro import kódu od řádku 2 do řádku 12 bude příkaz vypadat takto:

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

### Jednořádkový kód

Pokud potřebujete vložit jen jeden řádek kódu, poslouží příkaz `\mint`, jehož syntaxe je uvedena v dalším příkladu.

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

Tento příklad vytvoří následující výstup:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Příklad jednořádkového kódu s minted" height="112" width="600" />

Parametr ve složených závorkách nastavuje programovací jazyk (v tomto případě značkovací jazyk `html`), přičemž samotný text k formátování je ohraničen znakem '|'.

### Problémy s self-hosted Overleaf

Pokud používáte sandboxovou kompilaci a zároveň nasazujete Overleaf na vlastním serveru, nemusí minted fungovat správně. Podrobné informace najdete zde: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Aby minted fungoval, musíte povolit profil instrukcí arm a některá systémová volání.


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