> 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/cs/otazky-a-odpovedi/16-how-can-i-include-matlab-code-in-my-latex-document.md).

# Jak mohu do svého LaTeXového dokumentu vložit kód MATLABu?

Ta [`matlab-prettifier` accents](https://www.ctan.org/pkg/matlab-prettifier) lze použít k sazbě kódu MATLABu a byl napsán v reakci na [otázku na tex.stackexchange](https://tex.stackexchange.com/questions/75116/what-can-i-use-to-typeset-matlab-code-in-my-document).

### Prostředí lstlisting

Po zahrnutí `matlab-prettifier` balíčku do vašeho dokumentu pomocí

```latex
\usepackage{matlab-prettifier}
```

můžete použít `lstlisting` prostředí k sazbě kódu MATLABu:

```latex
\begin{lstlisting}[<options>]
Kód MATLABu...
\end{lstlisting}
```

kde `<options>` je seznam parametrů oddělených čárkami, jejichž hodnoty se nastavují pomocí dvojic klíč–hodnota (tj., `parameter=value`).

* **Poznámka**: Ten `matlab-prettifier` balíček je založen na `listings` balíčku, což umožňuje používat funkce poskytované `listings`, včetně parametrů uvnitř `<options>` toho `lstlisting` prostředí. Nicméně některé `listings` parametry by se *ne* měly používat a čtenářům se doporučuje nahlédnout do [`matlab-prettifier` dokumentace](http://mirrors.ctan.org/macros/latex/contrib/matlab-prettifier/matlab-prettifier.pdf) pro další podrobnosti.

Vizuální vzhled vysázeného kódu MATLABu lze změnit pomocí `parametru stylu` , který podporuje tři hodnoty:

* `Matlab-editor`
* `Matlab-bw`
* `Matlab-Pyglike`

Následující příklady ukazují, jak tyto styly používat.

### Příklady

Zde je příklad s kódem MATLABu z `matlab-prettifier`dokumentace, která používá `Matlab-editor` styl:

```latex
\\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}

\\begin{lstlisting}[style=Matlab-editor]
%% Ukázkový kód MATLABu
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
vytvořte řádkový vektor x a pak ho obraťte
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Otevřete tento příklad v Overleafu](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+matlab-prettifier+example\&snip=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Blstlisting%7D%5Bstyle%3DMatlab-editor%5D%0A%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B%0A%5Cend%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

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

![Kód MATLABu vysázený v LaTeXu na Overleafu](/files/7e6f6cb46d4d166bbf77f1fb79f829a32847b8a1)

Další příklad nastavuje hodnoty pro `rámec` a `číslování` parametry poskytované `listings` balíček:

```latex
\\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}

\\begin{lstlisting}[
frame=single,
numbers=left,
style=Matlab-Pyglike]
%% Ukázkový kód MATLABu
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
vytvořte řádkový vektor x a pak ho obraťte
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Otevřete tento příklad v Overleafu](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+second+matlab-prettifier+example\&snip=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Blstlisting%7D%5B%0Aframe%3Dsingle%2C%0Anumbers%3Dleft%2C%0Astyle%3DMatlab-Pyglike%5D%0A%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B%0A%5Cend%7Blstlisting%7D%0A%5Cend%7Bdocument%7D)

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

![Kód MATLABu vysázený v LaTeXu na Overleafu](/files/650df834a266647edd762db6f440de7b6942fb54)

### Použití kódu MATLABu uloženého v souboru

Místo přímého vkládání kódu MATLABu přímo do dokumentu LaTeXu použijte `\\lstinputlisting` příkaz k importu a sazbě kódu obsaženého v externím souboru:

```latex
\\lstinputlisting[<options>]{<filename>}
```

kde

* `<options>` je seznam parametrů oddělených čárkami poskytovaný jako dvojice klíč–hodnota [(viz výše)](#matopts);
* `<filename>` je cesta k souboru obsahujícímu kód MATLABu.

Například pro import souboru `sample.m` a vysázet jej ve `Matlab-bw` stylu byste napsali

```latex
\\lstinputlisting[style=Matlab-bw]{sample.m}
```

Další příklad umístí kolem kódu rámeček, očísluje řádky kódu (vlevo) a použije `Matlab-bw` styl:

```latex
\\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-editor
]{sample.m}
```

Vyberte `Otevřete tento příklad v Overleafu` odkaz ([viz níže](#openol)) k automatickému vytvoření projektu v Overleafu, který zahrnuje `sample.m` soubor s kódem MATLABu.

**`main.tex`**

```latex
\\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}
\\title{Importování a sazba kódu MATLABu obsaženého v souboru}
\\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-bw
]{sample.m}

\end{document}
```

**`sample.m`**

```latex
%% Ukázkový kód MATLABu
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
vytvořte řádkový vektor x a pak ho obraťte
%}
x = linspace(0,1,101);
y = x(end:-1:1);
```

[Otevřete tento příklad v Overleafu (vytvoří `sample.m` soubor).](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%5Ba4paper%5D%7Barticle%7D%0A%5Cusepackage%7Bmatlab-prettifier%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctitle%7BImporting+and+typesetting+MATLAB+code+contained+in+a+file%7D%0A%5Clstinputlisting%5B%0Aframe%3Dsingle%2C%0Anumbers%3Dleft%2C%0Astyle%3DMatlab-bw%0A%5D%7Bsample.m%7D%0A%0A%5Cend%7Bdocument%7D\&snip_name\[]=sample.m\&snip\[]=%25%25+Sample+Matlab+code%0A%21mv+test.txt+test2.txt%0AA+%3D+%5B1%2C+2%2C+3%3B...+foo%0A+++++4%2C+5%2C+6%5D%3B%0As+%3D+%27abcd%27%3B%0Afor+k+%3D+1%3A4%0A++Disp%28s%28k%29%29+%25+bar%0Aend%0A%25%7B%0Acreate+row+vector+x%2C+then+reverse+it%0A%25%7D%0Ax+%3D+linspace%280%2C1%2C101%29%3B%0Ay+%3D+x%28end%3A-1%3A1%29%3B\&main_document=main.tex)

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

![Kód MATLABu vysázený v LaTeXu na Overleafu](/files/c427010d4486cf4a40d1cb42f2f5d8854eb42b87)


---

# 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/cs/otazky-a-odpovedi/16-how-can-i-include-matlab-code-in-my-latex-document.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.
