> 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/pl/pytania-i-odpowiedzi/16-how-can-i-include-matlab-code-in-my-latex-document.md).

# Jak mogę włączyć kod MATLAB do mojego dokumentu LaTeX?

Ta [`matlab-prettifier` pakietu](https://www.ctan.org/pkg/matlab-prettifier) może być używany do składu kodu MATLAB i został napisany w odpowiedzi na [pytanie na tex.stackexchange](https://tex.stackexchange.com/questions/75116/what-can-i-use-to-typeset-matlab-code-in-my-document).

### Środowisko lstlisting

Po dołączeniu `matlab-prettifier` pakietu w swoim dokumencie za pomocą

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

możesz użyć `lstlisting` środowiska do składu kodu MATLAB:

```latex
\begin{lstlisting}[<options>]
Kod MATLAB...
\end{lstlisting}
```

gdzie `<options>` jest listą parametrów oddzielonych przecinkami, których wartości są ustawiane za pomocą par klucz–wartość (tj., `parametr=wartość`).

* **Uwaga**: Pakiet `matlab-prettifier` jest zbudowany wokół pakietu `listings` umożliwiając korzystanie z funkcji oferowanych przez `listings`, w tym parametrów w `<options>` środowisku `lstlisting` . Jednak niektóre `listings` parametry powinny *nie* być używane, a czytelnikom zaleca się zapoznanie z [`matlab-prettifier` dokumentację](http://mirrors.ctan.org/macros/latex/contrib/matlab-prettifier/matlab-prettifier.pdf) aby uzyskać więcej szczegółów.

Wygląd składanego kodu MATLAB można zmienić za pomocą `parametru` styl, który obsługuje trzy wartości:

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

Poniższe przykłady pokazują, jak używać tych stylów.

### Przykłady

Oto przykład, wykorzystujący kod MATLAB z `matlab-prettifier`dokumentacji, który stosuje `Matlab-editor` styl:

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

\begin{lstlisting}[style=Matlab-editor]
%% Przykładowy kod Matlab
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
utwórz wektor wierszowy x, a następnie odwróć go
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Otwórz ten przykład w Overleaf](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)

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

![Kod MATLAB składany w LaTeX-u w Overleaf](/files/651babe1a9ebc54f66989cf6659027ce60f39144)

Następny przykład ustawia wartości dla `ramki` i `numerów` parametrów udostępnianych przez `listings` pakiet:

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

\begin{lstlisting}[
frame=single,
numbers=left,
style=Matlab-Pyglike]
%% Przykładowy kod Matlab
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
utwórz wektor wierszowy x, a następnie odwróć go
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Otwórz ten przykład w Overleaf](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)

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

![Kod MATLAB składany w LaTeX-u w Overleaf](/files/e424b8e41c172d42d4442f0a19bd1c1182f7c487)

### Korzystanie z kodu MATLAB zapisanego w pliku

Zamiast dołączać kod MATLAB bezpośrednio w dokumencie LaTeX, użyj `\lstinputlisting` polecenia, aby zaimportować i złożyć kod zawarty w zewnętrznym pliku:

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

gdzie

* `<options>` jest listą parametrów podawanych jako pary klucz–wartość [(zobacz powyżej)](#matopts);
* `<filename>` jest ścieżką do pliku zawierającego kod MATLAB.

Na przykład, aby zaimportować plik `sample.m` i sformatować go w `Matlab-bw` stylu, napisałbyś

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

Następny przykład umieszcza ramkę wokół kodu, numeruje wiersze kodu (po lewej) i używa `Matlab-bw` styl:

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

Wybierz `Otwórz ten przykład w Overleaf` odnośnik ([patrz poniżej](#openol)) aby automatycznie utworzyć projekt Overleaf, który zawiera `sample.m` plik z kodem MATLAB.

**`main.tex`**

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}
\title{Importowanie i składanie kodu MATLAB zawartego w pliku}
\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-bw
]{sample.m}

\end{document}
```

**`sample.m`**

```latex
%% Przykładowy kod Matlab
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
utwórz wektor wierszowy x, a następnie odwróć go
%}
x = linspace(0,1,101);
y = x(end:-1:1);
```

[Otwórz ten przykład w Overleaf (tworzy on `sample.m` plik).](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)

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

![Kod MATLAB składany w LaTeX-u w Overleaf](/files/8cd7a0af8bfc3c0b3919c6e9098c5ea95c639ace)


---

# 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/pl/pytania-i-odpowiedzi/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.
