> 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/fr/mise-en-forme/12-code-highlighting-with-minted.md).

# Coloration du code avec minted

## Introduction

Cet article montre comment utiliser le [`minted` package](https://ctan.org/pkg/minted?lang=en) pour formater et mettre en évidence du code source de langages de programmation dans un document LaTeX, en commençant par un exemple :

```latex
\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 #pour devenir la matrice d'incidence
    VT = np.zeros((n*m,1), int)  #variable factice

    #calculer la matrice xor bit à bit
    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}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple affichant le résultat du package minted](/files/d0744cfd98cc90c09e23afd210678f65ee75ad64)

Il y a ici deux commandes importantes. Dans le préambule, le package est importé en écrivant

```latex
\usepackage{minted}
```

puis les balises `\begin{minted}{python}` et `\end{minted}` délimitent un environnement qui affiche le texte tel quel dans des polices à chasse fixe et applique également de la couleur aux commentaires, mots-clés et fonctions. Le paramètre `python` est le langage de programmation dans lequel le code source est écrit. `minted` prend en charge plus de 150 langages de programmation et de balisage ainsi que des fichiers de configuration ; voir le [guide de référence](#reference-guide) pour une liste des langages pris en charge.

**Remarque**: Pour `minted` fonctionner avec votre *distribution LaTeX* locale, un programme supplémentaire appelé [Pygments](https://pygments.org/) doit être installé. [Overleaf](https://www.overleaf.com/) peut vous éviter d'avoir à l'installer et à exécuter des commandes spéciales pour compiler votre document — sur Overleaf, les documents qui utilisent `minted` fonctionneront « prêts à l'emploi ».

## Utilisation de base

Comme le montre l'exemple suivant, l'environnement `minted` peut être configuré pour modifier l'aspect visuel du code typographié. Ici, l'environnement `minted` utilise plusieurs paramètres séparés par des virgules de la forme `clé=valeur`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % pour accéder à la couleur nommée 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 #pour devenir la matrice d'incidence
    VT = np.zeros((n*m,1), int)  #variable factice

    #calculer la matrice xor bit à bit
    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}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Another+example+of+the+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%7Bxcolor%7D+%25+to+access+the+named+colour+LightGray%0A%5Cdefinecolor%7BLightGray%7D%7Bgray%7D%7B0.9%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%0A%5B%0Aframe%3Dlines%2C%0Aframesep%3D2mm%2C%0Abaselinestretch%3D1.2%2C%0Abgcolor%3DLightGray%2C%0Afontsize%3D%5Cfootnotesize%2C%0Alinenos%0A%5D%0A%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple appliquant une mise en forme au code typographié produit par le package minted](/files/6f6478006142323defc0a69b4eb7ca03015c58fe)

Les paramètres utilisés dans cet exemple sont :

* `frame=lines`: trace deux lignes, une en haut et une en bas du code pour l'encadrer. Les autres valeurs possibles sont `leftline`, `topline`, `bottomline` et `single`.
* `framesep=2mm`: l'espacement du cadre est fixé à 2 mm. D'autres [unités de longueur](/latex/fr/mise-en-forme/01-lengths-in-latex.md) peuvent être utilisées.
* `baselinestretch=1.2`: l'interligne du code est fixé à 1,2.
* `bgcolor=LightGray`: la couleur de fond est fixée à `LightGray`. Vous devez importer le package `xcolor` pour que cela fonctionne. Voir [Utiliser les couleurs dans LaTeX](/latex/fr/mise-en-forme/13-using-colors-in-latex.md) pour en savoir plus sur la manipulation des couleurs.
* `fontsize=\footnotesize`: la taille de police est définie sur `footnotesize`. Toute autre [taille de police](/latex/fr/polices/01-font-sizes-families-and-styles.md#reference-guide) peut être définie.
* `linenos`: active les numéros de ligne.

D'autres options pouvant être utiles sont :

* `mathescape`: active le mode math dans les commentaires du code.
* `rulecolor`: change la couleur du cadre.
* `showspaces`: active un caractère spécial pour rendre les espaces visibles.

## Inclure du code depuis un fichier

Le code est généralement stocké dans un fichier source, c'est pourquoi une commande qui importe automatiquement le code depuis un fichier est très pratique, comme le montre l'exemple suivant :

```latex
\documentclass{article}
\usepackage{minted}
\title{Importation de fichiers à l'aide de minted}
\begin{document}
Le code suivant sera importé directement depuis un fichier :

\inputminted{octave}{BitXorMatrix.m}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BImporting+files+using+minted%7D%0A%5Cbegin%7Bdocument%7D%0AThe+next+code+will+be+directly+imported+from+a+file%3A%0A%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=function+X+%3D+BitXorMatrix%28A%2CB%29%0A%25function+to+compute+the+sum+without+charge+of+two+vectors%0A%09%0A%09%25convert+elements+into+usigned+integers%0A%09A+%3D+uint8%28A%29%3B%0A%09B+%3D+uint8%28B%29%3B%0A%0A%09m1+%3D+length%28A%29%3B%0A%09m2+%3D+length%28B%29%3B%0A%09X+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A%09for+n1%3D1%3Am1%0A%09%09for+n2%3D1%3Am2%0A%09%09%09X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A%09%09end%0A%09end\&main_document=main.tex)

Cet exemple produit le résultat suivant :

![Utiliser minted pour importer un fichier de code](/files/84eae8f2e157e9347759dddf03955fd0f3ed7b1d)

La commande `\inputminted{octave}{BitXorMatrix.m}` importe le code du fichier `BitXorMatrix.m`, le paramètre `octave` indique à LaTeX le langage de programmation du code. Cette commande peut prendre deux paramètres supplémentaires pour n'importer qu'une partie du fichier ; par exemple, pour importer le code de la ligne 2 à la ligne 12, la commande devient :

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

## Code sur une seule ligne

Si vous devez saisir une seule ligne de code, la commande `\mint`, dont la syntaxe est présentée dans l'exemple suivant, fera l'affaire.

```latex
La mise en forme d'une seule ligne fonctionne aussi avec \texttt{minted}. Par exemple, un petit fragment de HTML comme celui-ci :
\mint{html}|<h2>Quelque chose <b>ici</b></h2>|
peut être formaté correctement.
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=One+line+code+example+with+minted\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cbegin%7Bdocument%7D%0AOne-line+code+formatting+also+works+with+%5Ctexttt%7Bminted%7D.+For+example%2C+a+small+fragment+of+HTML+like+this%3A%0A%5Cmint%7Bhtml%7D%7C%3Ch2%3ESomething+%3Cb%3Ehere%3C%2Fb%3E%3C%2Fh2%3E%7C%0A%5Cnoindent+can+be+formatted+correctly.%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple de code sur une ligne avec minted](/files/5f7328437b779b49b7785ccef16d509137842a95)

Le paramètre entre accolades définit le langage de programmation (`html` langage de balisage dans ce cas) ; le texte à mettre en forme est délimité par le caractère '|'.

## Analyseurs lexicaux personnalisés

**(Veuillez noter qu'en raison de changements dans `minted` depuis 2023, l'approche suivante ne fonctionnera que dans** [**TeX Live 2022 ou antérieur**](/latex/fr/base-de-connaissances/148-using-the-overleaf-project-menu.md#tex-live-version)**.)**

Par défaut, `minted` ne prend en charge que les langages dont les analyseurs lexicaux sont déjà installés ou enregistrés auprès de `pygmentize`. Si vous avez écrit un analyseur lexical personnalisé, ou si vous souhaitez utiliser un analyseur pour un langage qui n'a pas encore été installé sur Overleaf, vous pouvez tout de même l'utiliser dans votre propre projet Overleaf en suivant l'approche mentionnée [ici](https://tex.stackexchange.com/questions/18083/how-to-add-custom-c-keywords-to-be-recognized-by-minted#comment930474_42392).

Supposons que vous ayez défini un analyseur lexical dans le fichier `nl-lexer.py`, contenant la classe `NetLogoLexer` pour le langage NetLogo. Téléversez `nl-lexer.py` dans votre projet Overleaf, puis indiquez `nl-lexer.py:NetLogoLexer` comme « nom du langage » lors de l'utilisation de `minted`. Par exemple :

```latex
\begin{minted}{nl-lexer.py:NetLogoLexer -x}
   ... votre code ici ...
\end{minted}
```

[Voici](http://quantixed.org/2018/10/23/new-lexicon-how-to-add-a-custom-minted-lexer-in-overleaf/) un autre exemple pour le langage ImageJ Macro.

## Couleurs et feuilles de style

Les schémas de couleurs utilisés pour la coloration syntaxique sont enregistrés dans des feuilles de style. Vous pouvez créer les vôtres ou en utiliser une déjà disponible dans votre distribution LaTeX. Voir le [guide de référence](#reference-guide) pour une liste des feuilles de style incluses dans [Overleaf](https://www.overleaf.com).

```latex
\documentclass{article}
\usepackage{minted}
\usemintedstyle{borland}
\begin{document}
\begin{minted}{python}
import numpy as np

def incmatrix(genl1,genl2):
    m = len(genl1)
    n = len(genl2)
    M = None #pour devenir la matrice d'incidence
    VT = np.zeros((n*m,1), int)  #variable factice

    #calculer la matrice xor bit à bit
    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}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+stylesheets+with+minted+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusemintedstyle%7Bborland%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bminted%7D%7Bpython%7D%0Aimport+numpy+as+np%0A++++%0Adef+incmatrix%28genl1%2Cgenl2%29%3A%0A++++m+%3D+len%28genl1%29%0A++++n+%3D+len%28genl2%29%0A++++M+%3D+None+%23to+become+the+incidence+matrix%0A++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29++%23dummy+variable%0A++++%0A++++%23compute+the+bitwise+xor+matrix%0A++++M1+%3D+bitxormatrix%28genl1%29%0A++++M2+%3D+np.triu%28bitxormatrix%28genl2%29%2C1%29+%0A%0A++++for+i+in+range%28m-1%29%3A%0A++++++++for+j+in+range%28i%2B1%2C+m%29%3A%0A++++++++++++%5Br%2Cc%5D+%3D+np.where%28M2+%3D%3D+M1%5Bi%2Cj%5D%29%0A++++++++++++for+k+in+range%28len%28r%29%29%3A%0A++++++++++++++++VT%5B%28i%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28i%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+r%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++VT%5B%28j%29%2An+%2B+c%5Bk%5D%5D+%3D+1%3B%0A++++++++++++++++%0A++++++++++++++++if+M+is+None%3A%0A++++++++++++++++++++M+%3D+np.copy%28VT%29%0A++++++++++++++++else%3A%0A++++++++++++++++++++M+%3D+np.concatenate%28%28M%2C+VT%29%2C+1%29%0A++++++++++++++++%0A++++++++++++++++VT+%3D+np.zeros%28%28n%2Am%2C1%29%2C+int%29%0A++++%0A++++return+M%0A%5Cend%7Bminted%7D%0A%5Cend%7Bdocument%7D)

L'utilisation de la feuille de style `borland` produit le résultat suivant :

![Résultat du package minted en utilisant la feuille de style borland](/files/795319fdcff60bd8cd6fae11970c915a5e753f13)

La syntaxe pour définir un style de couleur est simple ; la commande `\usemintedstyle{borland}` utilise le thème de couleurs `borland` pour mettre en forme le code source. Vous pouvez trouver davantage de schémas de couleurs dans le [guide de référence](#reference-guide).

## Légendes, étiquettes et la liste des listings

Les listings de code mis en forme avec **minted** peuvent être inclus dans un flottant, tout comme [les figures](/latex/fr/autres-sujets/27-inserting-images.md#positioning) et [les tableaux](/latex/fr/figures-et-tableaux/01-tables.md#positioning-tables). Des légendes et des étiquettes peuvent être attribuées aux listings de code, puis être référencées plus tard et incluses dans une « liste des listings ».

```latex
\documentclass{article}
\usepackage{minted}
\title{Exemples de code listés}
\begin{document}
\begin{listing}[!ht]
\inputminted{octave}{BitXorMatrix.m}
\caption{Exemple à partir d'un fichier externe}
\label{listing:1}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{c}
#include <stdio.h>
int main() {
   printf("Bonjour, le monde !"); /*printf() affiche la chaîne entre guillemets*/
   return 0;
}
\end{minted}
\caption{Bonjour le monde en C}
\label{listing:2}
\end{listing}

\begin{listing}[!ht]
\begin{minted}{lua}
function fact (n)--définit une fonction factorielle
  if n == 0 then
    return 1
  else
    return n * fact(n-1)
  end
end

print("entrez un nombre :")
a = io.read("*number") -- lit un nombre
print(fact(a))
\end{minted}
\caption{Exemple tiré du manuel Lua}
\label{listing:3}
\end{listing}
\noindent\texttt{minted} fait un bel effet pour la mise en page des listings \ref{listing:1}, \ref{listing:2} et \ref{listing:3}.
\renewcommand\listoflistingscaption{Liste des codes sources}
\listoflistings
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Ctitle%7BListing+code+examples%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cinputminted%7Boctave%7D%7BBitXorMatrix.m%7D%0A%5Ccaption%7BExample+from+external+file%7D%0A%5Clabel%7Blisting%3A1%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Bc%7D%0A%23include+%3Cstdio.h%3E%0Aint+main%28%29+%7B%0A+++printf%28%22Hello%2C+World%21%22%29%3B+%2F%2Aprintf%28%29+outputs+the+quoted+string%2A%2F%0A+++return+0%3B%0A%7D%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BHello+World+in+C%7D%0A%5Clabel%7Blisting%3A2%7D%0A%5Cend%7Blisting%7D%0A%0A%5Cbegin%7Blisting%7D%5B%21ht%5D%0A%5Cbegin%7Bminted%7D%7Blua%7D%0Afunction+fact+%28n%29--defines+a+factorial+function%0A++if+n+%3D%3D+0+then%0A++++return+1%0A++else%0A++++return+n+%2A+fact%28n-1%29%0A++end%0Aend%0A%0Aprint%28%22enter+a+number%3A%22%29%0Aa+%3D+io.read%28%22%2Anumber%22%29+--+read+a+number%0Aprint%28fact%28a%29%29%0A%5Cend%7Bminted%7D%0A%5Ccaption%7BExample+from+the+Lua+manual%7D%0A%5Clabel%7Blisting%3A3%7D%0A%5Cend%7Blisting%7D%0A%5Cnoindent%5Ctexttt%7Bminted%7D+makes+a+nice+job+of+typesetting+listings+%5Cref%7Blisting%3A1%7D%2C+%5Cref%7Blisting%3A2%7D+and+%5Cref%7Blisting%3A3%7D.%0A%5Crenewcommand%5Clistoflistingscaption%7BList+of+source+codes%7D%0A%5Clistoflistings%0A%5Cend%7Bdocument%7D\&snip_name\[]=BitXorMatrix.m\&snip\[]=%25This+code+is+directly+imported+from+a+file%0A%25A+function+to+compute+the+sum+without+charge+of+two+vectors%0Afunction+X+%3D+BitXorMatrix%28A%2CB%29%0A%25convert+elements+into+unsigned+integers%0AA+%3D+uint8%28A%29%3B%0AB+%3D+uint8%28B%29%3B%0A%0Am1+%3D+length%28A%29%3B%0Am2+%3D+length%28B%29%3B%0AX+%3D+uint8%28zeros%28m1%2C+m2%29%29%3B%0A+for+n1%3D1%3Am1%0A++for+n2%3D1%3Am2%0A+++X%28n1%2C+n2%29+%3D+bitxor%28A%28n1%29%2C+B%28n2%29%29%3B%0A++end%0Aend\&main_document=main.tex)

La première page de cet exemple contient le résultat suivant :

![Exemple de fragments de code listés](/files/38e82ea9e560e669da435dc2911b0b90d3a58c31)

Pour afficher la liste avec tous les éléments « listing », utilisez `\listoflistings`. Dans l'exemple ci-dessus, le titre par défaut `Liste des listings` est remplacé par `Liste des codes sources` en écrivant

```latex
\renewcommand\listoflistingscaption{Liste des codes sources}
\listoflistings % Maintenant, composez la liste
```

La deuxième page produite par l'exemple ci-dessus contient le listing suivant :

![Un exemple de listing de codes sources](/files/bcb569d45b62142c5e6cd42a922533c75796094c)

## Guide de référence

**Styles de couleur pour minted**

| nom      | sortie                                                                | nom      | sortie                                                                 |
| -------- | --------------------------------------------------------------------- | -------- | ---------------------------------------------------------------------- |
| manni    | ![MintedStyles1.png](/files/003eff409d8a442bd91618f0d2c2ded8fa88646b) | fruity   | ![MintedStyles10.png](/files/99f7af5d35f3b42c3e253883e8f9ca3cabb7dd43) |
| rrt      | ![MintedStyles2.png](/files/dc3a5b936af3c96ffcc7dc5fb8a4b5653308c841) | autumn   | ![MintedStyles11.png](/files/a2b868e10ba1983d769e9b096ee9d668246d9584) |
| perldoc  | ![MintedStyles3.png](/files/e76461b7856eef326876460619fbf32e75bc38f6) | bw       | ![MintedStyles12.png](/files/0e992c26d829f6ee757dd9b255fc2d99a6af6dec) |
| borland  | ![MintedStyles4.png](/files/c2e21e3e2b12aed8c28839503d850fef053efd0b) | emacs    | ![MintedStyles13.png](/files/14c83b98c55dbd9fcd21db9da82c0825f38ef3d3) |
| colorful | ![MintedStyles5.png](/files/f8296bdeb7e09d4d4d767f30093e0c4270e675dd) | vim      | ![MintedStyles14.png](/files/2d7806804e0e0dae3548299a46fc4868191ac627) |
| murphy   | ![MintedStyles6.png](/files/0f6124cce59f856b928c4c8f624c0ef12600c797) | pastie   | ![MintedStyles15.png](/files/ac13429cb3a51bfa073283e7fc10b3e90b0008c4) |
| vs       | ![MintedStyles7.png](/files/be5d4e8680f462a897b5fa56227ca62e9721b91a) | friendly | ![MintedStyles16.png](/files/c8efbc123d5d332fe2d1c6e2ae2a09f6eae35eac) |
| trac     | ![MintedStyles8.png](/files/317e1abfbad02858f081b4c40057302f653c2db0) | native   | ![MintedStyles17.png](/files/3b7d66003f8531d352bff182f2ad94a881d1edd2) |
| tango    | ![MintedStyles9.png](/files/0cb294726c7bdf0a49bdb6471084a8c3d4373cd7) | monokai  | ![MintedStyles18.png](/files/dce95f2b6eb068f74fb4c821f2e70a76a00bb9af) |

Certains schémas de couleurs nécessitent un fond sombre pour être lisibles.

**Principaux langages de programmation pris en charge et fichiers de configuration**

|          |            |             |           |
| -------- | ---------- | ----------- | --------- |
| cucumber | abap       | ada         | ahk       |
| antlr    | apacheconf | applescript | as        |
| aspectj  | autoit     | asy         | awk       |
| basemake | bash       | bat         | bbcode    |
| befunge  | bmax       | boo         | brainfuck |
| bro      | bugs       | c           | ceylon    |
| cfm      | cfs        | cheetah     | clj       |
| cmake    | cobol      | cl          | console   |
| control  | coq        | cpp         | croc      |
| csharp   | css        | cuda        | cyx       |
| d        | dg         | diff        | django    |
| dpatch   | duel       | dylan       | ec        |
| erb      | evoque     | fan         | fancy     |
| fortran  | gas        | genshi      | glsl      |
| gnuplot  | go         | gosu        | groovy    |
| gst      | haml       | haskell     | hxml      |
| html     | http       | hx          | idl       |
| irc      | ini        | java        | jade      |
| js       | json       | jsp         | kconfig   |
| koka     | lasso      | livescrit   | llvm      |
| logos    | lua        | mako        | mason     |
| matlab   | minid      | monkey      | moon      |
| mxml     | myghty     | mysql       | nasm      |
| newlisp  | newspeak   | numpy       | ocaml     |
| octave   | ooc        | perl        | php       |
| plpgsql  | postgresql | postscript  | pot       |
| prolog   | psql       | puppet      | python    |
| qml      | ragel      | raw         | ruby      |
| rhtml    | sass       | scheme      | smalltalk |
| sql      | ssp        | tcl         | tea       |
| tex      | text       | vala        | vgl       |
| vim      | xml        | xquery      | yaml      |

## Lectures complémentaires

Pour plus d'informations, voir :

* [Longueurs en LaTeX](/latex/fr/mise-en-forme/01-lengths-in-latex.md)
* [Listing de code](/latex/fr/mise-en-forme/11-code-listing.md)
* [Compteurs](/latex/fr/mise-en-forme/10-counters.md)
* [Utiliser les couleurs dans LaTeX](/latex/fr/mise-en-forme/13-using-colors-in-latex.md)
* [Tailles, familles et styles de police](/latex/fr/polices/01-font-sizes-families-and-styles.md)
* [Familles de polices](/latex/fr/polices/02-font-typefaces.md)
* [Gestion dans un grand projet](/latex/fr/structure-du-document/07-management-in-a-large-project.md)
* [Projets LaTeX multi-fichiers](/latex/fr/structure-du-document/08-multi-file-latex-projects.md)
* [Table des matières](/latex/fr/structure-du-document/02-table-of-contents.md)
* [Documents recto et recto-verso](/latex/fr/mise-en-forme/08-single-sided-and-double-sided-documents.md)
* [Le **minted** documentation du paquet](https://texdoc.org/serve/minted/0)


---

# 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/fr/mise-en-forme/12-code-highlighting-with-minted.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.
