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

Ten artykuł pokazuje, jak używać [pakietu `minted`](https://ctan.org/pkg/minted?lang=en) do formatowania i podświetlania kodu źródłowego języków programowania w dokumencie LaTeX. Zacznijmy od przykładu:

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

Ten przykład daje następujący wynik:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Przykład pokazujący wynik działania pakietu minted" />
</p>

Są tu dwa ważne polecenia. W preambule pakiet jest importowany przez wpisanie

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

następnie znaczniki `\begin{minted}{python}` i `\end{minted}` wyznaczają środowisko, które wypisuje tekst dosłownie czcionką o stałej szerokości, a także koloruje komentarze, słowa kluczowe i funkcje. Parametr `python` to język programowania, w którym napisany jest kod źródłowy. `minted` obsługuje ponad 150 języków programowania i znaczników, a także pliki konfiguracyjne — listę obsługiwanych języków znajdziesz w [przewodniku referencyjnym](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide).

**Uwaga**: Aby `minted` działał z Twoją *lokalną* dystrybucją LaTeX, musi być zainstalowany dodatkowy program o nazwie [Pygments](https://pygments.org/). [Overleaf](https://www.overleaf.com/) oszczędza Ci kłopotu z jego instalacją i uruchamianiem specjalnych poleceń do kompilacji dokumentu — w Overleaf dokumenty używające `minted` działają "od razu".

### Podstawowe użycie

Jak pokazano w poniższym przykładzie, środowisko `minted` można skonfigurować tak, aby zmienić wygląd składanego kodu. Tutaj środowisko `minted` używa kilku parametrów rozdzielonych przecinkami w postaci `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}
```

Ten przykład daje następujący wynik:

<p style={{ textAlign: "center" }}>
  <img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Przykład formatowania kodu składanego przez pakiet minted" />
</p>

Parametry użyte w tym przykładzie to:

* `frame=lines`: rysuje dwie linie, jedną nad kodem i jedną pod nim, tworząc ramkę. Inne możliwe wartości to `leftline`, `topline`, `bottomline` i `single`.
* `framesep=2mm`: odstęp ramki jest ustawiony na 2 mm. Można używać innych [jednostek długości](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX).
* `baselinestretch=1.2`: interlinia kodu ustawiona na 1,2.
* `bgcolor=LightGray`: kolor tła ustawiony na `LightGray`. Aby to działało, musisz zaimportować pakiet `xcolor`. Więcej o pracy z kolorami dowiesz się z artykułu [Używanie kolorów w LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX).
* `fontsize=\footnotesize`: rozmiar czcionki ustawiony na `footnotesize`. Można ustawić dowolny inny [rozmiar czcionki](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide).
* `linenos`: włącza numerowanie wierszy.

Inne przydatne opcje to:

* `mathescape`: włącza tryb matematyczny w komentarzach kodu.
* `rulecolor`: zmienia kolor ramki.
* `showspaces`: włącza specjalny znak, który uwidacznia spacje.

### Dołączanie kodu z pliku

Kod zazwyczaj jest przechowywany w pliku źródłowym, dlatego polecenie automatycznie importujące kod z pliku jest bardzo wygodne, co pokazuje poniższy przykład:

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

Ten przykład daje następujący wynik:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Użycie minted do zaimportowania pliku z kodem" height="392" width="600" />

Polecenie `\inputminted{octave}{BitXorMatrix.m}` importuje kod z pliku `BitXorMatrix.m`, a parametr `octave` informuje LaTeX o języku programowania kodu. Polecenie może przyjmować dwa dodatkowe parametry, aby zaimportować tylko część pliku; na przykład, aby zaimportować kod od wiersza 2 do wiersza 12, polecenie wygląda tak:

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

### Kod w jednym wierszu

Jeśli potrzebujesz wstawić tylko jeden wiersz kodu, wystarczy polecenie `\mint`, którego składnię przedstawia następny przykład.

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

Ten przykład daje następujący wynik:

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Przykład kodu w jednym wierszu z minted" height="112" width="600" />

Parametr w nawiasach klamrowych określa język programowania (w tym przypadku język znaczników `html`), a właściwy tekst do sformatowania jest ograniczony znakami '|'.

### Problemy z samodzielnie hostowanym Overleaf

Jeśli używasz sandbox compile i wdrażasz Overleaf na własnym serwerze, minted może nie działać poprawnie. Szczegółowe informacje znajdziesz tutaj: [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Aby minted działał, musisz włączyć profil instrukcji arm oraz niektóre wywołania systemowe.


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