> 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/fr/questions-et-reponses/16-how-can-i-include-matlab-code-in-my-latex-document.md).

# Comment puis-je inclure du code MATLAB dans mon document LaTeX ?

Le [`matlab-prettifier` paquet](https://www.ctan.org/pkg/matlab-prettifier) peut être utilisé pour composer du code MATLAB et a été écrit en réponse à une [question sur tex.stackexchange](https://tex.stackexchange.com/questions/75116/what-can-i-use-to-typeset-matlab-code-in-my-document).

### L’environnement lstlisting

Après avoir inclus le `matlab-prettifier` paquet dans votre document via

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

vous pouvez utiliser l’ `lstlisting` environnement pour composer du code MATLAB :

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

où `<options>` est une liste de paramètres séparés par des virgules, dont les valeurs sont définies à l’aide de paires clé–valeur (c.-à-d., `parameter=value`).

* **Remarque** : Le `matlab-prettifier` paquet est construit autour du `listings` paquet, ce qui permet d’utiliser les fonctionnalités fournies par `listings`, y compris des paramètres à l’intérieur de `<options>` de l’ `lstlisting` environnement. Cependant, certains `listings` paramètres ne doivent *pas* être utilisés, et il est conseillé aux lecteurs de consulter la [`matlab-prettifier` documentation](http://mirrors.ctan.org/macros/latex/contrib/matlab-prettifier/matlab-prettifier.pdf) pour plus de détails.

L’apparence visuelle du code MATLAB composé peut être modifiée à l’aide du `style` paramètre, qui prend en charge trois valeurs :

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

Les exemples suivants montrent comment utiliser ces styles.

### Exemples

Voici un exemple, utilisant du code MATLAB tiré de `matlab-prettifier`la documentation, qui applique le `Matlab-editor` style :

```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
%{
créez le vecteur ligne x, puis inversez-le
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![Code MATLAB composé en LaTeX sur Overleaf](/files/e9dd5ffb540c6fa692e2b1775e4b98f1d77950dc)

L’exemple suivant définit des valeurs pour les `cadre` et `numéros` paramètres fournis par le `listings` paquet :

```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
%{
créez le vecteur ligne x, puis inversez-le
%}
x = linspace(0,1,101);
y = x(end:-1:1);
\end{lstlisting}
\end{document}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![Code MATLAB composé en LaTeX sur Overleaf](/files/a999b2cdd53c14e7477b46daac057bee1c8d1a8d)

### Utilisation de code MATLAB stocké dans un fichier

Au lieu d’inclure directement du code MATLAB dans votre document LaTeX, utilisez la `\lstinputlisting` commande pour importer et composer le code contenu dans un fichier externe :

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

où

* `<options>` est une liste de paramètres séparés par des virgules, fournis sous forme de paires clé–valeur [(voir ci-dessus)](#matopts);
* `<filename>` est le chemin d’accès à un fichier contenant du code MATLAB.

Par exemple, pour importer le fichier `sample.m` et le composer dans le `Matlab-bw` style, vous écririez

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

L’exemple suivant place un cadre autour du code, numérote les lignes de code (à gauche) et utilise le `Matlab-bw` style :

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

Sélectionnez le `Ouvrez cet exemple dans Overleaf` lien ([voir ci-dessous](#openol)) pour créer automatiquement un projet Overleaf qui inclut le `sample.m` fichier de code 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
%{
créez le vecteur ligne x, puis inversez-le
%}
x = linspace(0,1,101);
y = x(end:-1:1);
```

[Ouvrez cet exemple dans Overleaf (il crée le `sample.m` fichier).](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)

Cet exemple produit le résultat suivant :

![Code MATLAB composé en LaTeX sur Overleaf](/files/e9cc9749ac668f13ec1d43c3e95446942aff6da7)


---

# 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/fr/questions-et-reponses/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.
