Le package `minted` offre plus de souplesse que `listings` mais ce dernier est plus simple à mettre en œuvre (pas de nécessité de recourir à une compilation avec `-shell-escape`) et est déjà extrêmement puissant. Voici un exemple avec un code `Python` différent de celui demandé qui met en évidence davantage de fonctionnalités.
fonctionnalités (plus de détails sur `listings` par exemple [ici][1]).
\begin{filecontents*}{facto.py}
# Calcul de la factorielle en langage Python
def factorielle(x):
if x < 2:
return 1
else:
return x * factorielle(x-1)
str(5) + "! = " + str(factorielle(5))
\end{filecontents*}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{listings}
\lstset{%
language=Python,
basicstyle = \ttfamily,
keywordstyle = \color{magenta},
keywordstyle = [2]\color{orange},
commentstyle = \color{gray}\itshape,
stringstyle = \color{cyan},
numbers = left,
frame = single,
framesep = 2pt,
aboveskip = 1ex
}
\begin{document}
\lstinputlisting{facto.py}
\end{document}
<img src="/upfiles/test_VS3bZtI.png" src="/upfiles/test_jqAmpAZ.png" style="width: 100%;"/>
Plus de détails sur `listings` par exemple [ici][1].
[1]: https://frama.link/en-ligne4