> 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/texlive/fr/lie-aux-paquets/minted.md).

# {Minted}

Cet article montre comment utiliser le [`minted` package](https://ctan.org/pkg/minted?lang=en) pour formater et mettre en évidence le code source d’un langage 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 #doit 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}
```

Cet exemple produit la sortie suivante :

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/f0/OLV2minted.png" alt="Example displaying the output of the minted package"></p>

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 en police à 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](https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted#Reference_guide) pour une liste des langages pris en charge.

**Remarque**: Pour `minted` fonctionner avec votre *locale* distribution LaTeX, 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 la présentation visuelle du code composé. Ici, l’environnement `minted` utilise plusieurs paramètres séparés par des virgules de la forme `key=value`:

```latex
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor} % to access the named colour 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 #doit 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}
```

Cet exemple produit la sortie suivante :

<p align="center"><img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/f/ff/OLV2minted2.png" alt="Example applying formatting to typeset code produced by the minted package"></p>

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](https://www.overleaf.com/learn/latex/Lengths_in_LaTeX) peuvent être utilisées.
* `baselinestretch=1.2`: l’interligne du code est fixé à 1,2.
* `bgcolor=LightGray`: la couleur d’arrière-plan est fixée à `LightGray`. Vous devez importer le `xcolor` package pour que cela fonctionne. Voir [Utilisation des couleurs dans LaTeX](https://www.overleaf.com/learn/latex/Using_colours_in_LaTeX) pour en savoir plus sur la manipulation des couleurs.
* `fontsize=\footnotesize`: la taille de police est fixée à `footnotesize`. Toute autre [taille de police](https://www.overleaf.com/learn/latex/Font_sizes_and_kinds%23Reference_guide) peut être définie.
* `linenos`: active les numéros de ligne.

D’autres options qui peuvent être utiles sont :

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

### Inclure du code à partir d’un fichier

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

```latex
\documentclass{article}
\usepackage{minted}
\title{Importing files using minted}
\begin{document}
Le code suivant sera importé directement depuis un fichier :

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

Cet exemple produit la sortie suivante :

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/c/c8/OLV2mintedinput.png" alt="Utiliser minted pour importer un fichier de code" height="392" width="600">

La commande `\inputminted{octave}{BitXorMatrix.m}` importe le code depuis le 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 avez besoin de n’insérer qu’une seule ligne de code, la commande `\mint`, dont la syntaxe est présentée dans l’exemple suivant, fera l’affaire.

{% code overflow="wrap" %}

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

{% endcode %}

Cet exemple produit la sortie suivante :

<img src="https://sharelatex-wiki-cdn-671420.c.cdn77.org/learn-scripts/images/d/d9/OLV2mintedHTML.png" alt="Exemple de code sur une seule ligne avec minted" height="112" width="600">

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

### Problèmes avec Overleaf auto-hébergé

Si vous utilisez une compilation sandbox et également un serveur Overleaf pour déployer Overleaf, minted peut ne pas bien fonctionner. Pour plus d’informations détaillées, vous pouvez voir : [issues/131](https://github.com/yu-i-i/overleaf-cep/issues/131). Vous devez activer le profil d’instructions ARM et certains appels système pour que minted fonctionne.


---

# 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/texlive/fr/lie-aux-paquets/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.
