> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/ja/to-2/16-how-can-i-include-matlab-code-in-my-latex-document.md).

# LaTeX文書にMATLABコードを含めるにはどうすればよいですか?

この [`matlab-prettifier` パッケージ](https://www.ctan.org/pkg/matlab-prettifier) MATLABコードを組版するために使用でき、ある [tex.stackexchange の質問](https://tex.stackexchange.com/questions/75116/what-can-i-use-to-typeset-matlab-code-in-my-document).

### lstlisting 環境

次を含めた後 `matlab-prettifier` パッケージを文書に導入するには

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

次を使用できます `lstlisting` 環境を使ってMATLABコードを組版します：

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

ここで `<options>` は、値をキーと値の組で設定する、コンマ区切りのパラメータ一覧です（つまり、 `parameter=value`).

* **注**：The `matlab-prettifier` パッケージは次を基盤として構築されています `listings` パッケージを基盤にしており、次によって提供される機能を使用できるようにしています `listings`、次の中のパラメータを含め `<options>` の `lstlisting` 環境。とはいえ、一部の `listings` パラメータは *使用しては* なりません。詳細については、読者は次を参照することをお勧めします [`matlab-prettifier` ドキュメント](http://mirrors.ctan.org/macros/latex/contrib/matlab-prettifier/matlab-prettifier.pdf) さらなる詳細

組版されたMATLABコードの見た目は次を使って変更できます `style` パラメータで、次の3つの値に対応しています：

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

以下の例では、それらのスタイルの使い方を示します。

### 例

以下に、次のMATLABコードを使った例を示します `matlab-prettifier`のドキュメントからのもので、次のスタイルを適用します `Matlab-editor` スタイル：

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

\begin{lstlisting}[style=Matlab-editor]
%% Sample Matlab code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
create row vector x, then reverse it
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[この例を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)

この例では次の出力が生成されます：

![Overleaf上のLaTeXで組版されたMATLABコード](/files/961897b1d0f37e98291bf3da578d1d5ed00551ac)

次の例では、次の値を設定します `frame` および `numbers` パラメータ、次によって提供される `listings` パッケージ：

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

\begin{lstlisting}[
frame=single,
numbers=left,
style=Matlab-Pyglike]
%% Sample Matlab code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
create row vector x, then reverse it
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[この例を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)

この例では次の出力が生成されます：

![Overleaf上のLaTeXで組版されたMATLABコード](/files/4a4ad708137fba953f4a4968dbc051136cd1a7d1)

### ファイルに保存されたMATLABコードを使用する

MATLABコードをLaTeX文書に直接含める代わりに、次を使って `\lstinputlisting` 外部ファイルに含まれるコードを読み込み、組版します：

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

ここで

* `<options>` は、キーと値の組で指定するパラメータのコンマ区切り一覧です [（上記参照）](#matopts);
* `<filename>` MATLABコードを含むファイルへのパスです。

たとえば、次のファイルを読み込むには `sample.m` を次の `Matlab-bw` スタイルで組版するには、次のように書きます

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

次の例では、コードの周囲に枠を付け、コード行に番号を振り（左側に）、次を使用します `Matlab-bw` スタイル：

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

次を選択してください `この例をOverleafで開く` リンク（[下記参照](#openol)）を押すと、次を含むOverleafプロジェクトが自動的に作成されます `sample.m` MATLABコードファイル。

**`main.tex`**

```latex
\documentclass[a4paper]{article}
\usepackage{matlab-prettifier}
\begin{document}
\title{Importing and typesetting MATLAB code contained in a file}
\lstinputlisting[
frame=single,
numbers=left,
style=Matlab-bw
]{sample.m}

\end{document}
```

**`sample.m`**

```latex
%% Sample Matlab code
!mv test.txt test2.txt
A = [1, 2, 3;... foo
     4, 5, 6];
s = 'abcd';
for k = 1:4
  Disp(s(k)) % bar
end
%{
create row vector x, then reverse it
%}
x = linspace(0,1,101);
y = x(end:-1:1);
```

[この例をOverleafで開く（次を作成します `sample.m` ファイル）。](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)

この例では次の出力が生成されます：

![Overleaf上のLaTeXで組版されたMATLABコード](/files/f0c104c37ff7c2152d41ae2cf8d5848f023f4ee0)


---

# 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://ayakaleaf-pro.ayaka.space/latex/ja/to-2/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.
