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 ?.