Comment présenter du code informatique avec le package minted ?#

minted est un package permettant de mettre en forme du code informatique. Il en existe d’autres, par exemple listings.

Pour les autres possibilités, voir Comment mettre en forme du code informatique ?.

Attention

  • L’utilisation de minted nécessite une compilation avec l’option shell-escape.

    À noter

    Cette page ne permet pas la compilation avec l’option shell-escape pour des raisons de sécurité.

  • La coloration se fait à l’aide de la bibliothèque Python Pygments qui doit être installée sur la machine.

1.  Installer Pygments#

Pour l’installation, on utilise son gestionnaire de paquets Python (pip, conda ou autre…).

Par exemple, dans un environement Python on peut entrer :

pip install Pygments

2.  Un premier exemple#

Une fois Pygments installé, on peut utiliser minted très simplement (à condition de lancer la compilation avec l’option shell-escape).

Ci-dessous un permier exemple.

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{minted}

\begin{document}
\begin{minted}{python}
# Une  boucle
for i in range(0,5): 
    print(i)
# Une autre boucle 
while i != 4: 
    print("Encore ?? Et oui, on est reparti pour un tour de plus !!!!")
\end{minted}
\end{document}

La compilation du code donne :

3.  Avec quelques options supplémentaires#

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{minted}

\begin{document}
\begin{minted}[breaklines,linenos,numbersep=3mm]{python}
# Une  boucle
for i in range(0,5): 
    print(i)
# Une autre boucle 
while i != 4: 
    print("Encore ? Eh bien oui, on est reparti pour un tour
    supplémentaire... c'est sans fin !")
\end{minted}
\end{document}

La compilation du code donne :

Note

L’option breaklines permet le retour à la ligne automatique.

4.  Code en mode inline#

Pour insérer de cours extraits de code dans du texte, minted fournit la commande \mintinline{⟨langage⟩} dont la syntaxe générale est la suivante :

\mintinline{⟨langage⟩}⟨caractère au choix⟩⟨code⟩⟨(même) caractère au choix⟩

Un exemple ci-dessous :

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{minted}

\begin{document}
En Python, on utilise \mintinline{python}|for| pour les boucles bornées et
\mintinline{python}|while| pour les boucles non bornées.
\end{document}

La compilation du code donne :

Note

  • On note l’absence d’accolades pour délimiter le code après \mintinline{python}, mais la présence d’un « caractère au choix », qui doit être le même au début et à la fin.

  • Dans cet exemple, on a choisi « | » comme caractère.

Info

Pour une mise en page plus élaborée, on pourra utiliser le package tcolorbox : cf. Comment présenter du code informatique avec le package tcolorbox ?.