Cet article explique comment utiliser le paquet minted pour mettre en forme et colorer le code source de langages de programmation dans un document LaTeX, en commençant par un exemple :
\documentclass{article}\usepackage{minted}\begin{document}\begin{minted}{python}import numpy as npdef incmatrix(genl1,genl2): m = len(genl1) n = len(genl2) M = None #to become the incidence matrix VT = np.zeros((n*m,1), int) #dummy variable #compute the bitwise xor matrix 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 le résultat suivant :
Il y a ici deux commandes importantes. Dans le préambule, le paquet est importé en écrivant
\usepackage{minted}
puis les balises \begin{minted}{python} et \end{minted} délimitent un environnement qui affiche le texte tel quel (verbatim) dans une police à chasse fixe et colore également les commentaires, les mots-clés et les fonctions. Le paramètre python indique 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 ; consultez le guide de référence pour la liste des langages pris en charge.Remarque : pour que minted fonctionne avec votre distribution LaTeX locale, un programme supplémentaire appelé Pygments doit être installé. Overleaf vous évite d’avoir à l’installer et à exécuter des commandes spéciales pour compiler votre document : sur Overleaf, les documents qui utilisent minted fonctionnent « tels quels ».
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 de la forme key=value, séparés par des virgules :
\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 npdef incmatrix(genl1,genl2): m = len(genl1) n = len(genl2) M = None #to become the incidence matrix VT = np.zeros((n*m,1), int) #dummy variable #compute the bitwise xor matrix 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 le résultat suivant :
Les paramètres utilisés dans cet exemple sont :
frame=lines : trace deux lignes, l’une au-dessus et l’autre en dessous 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 peuvent être utilisées.
baselinestretch=1.2 : l’interligne du code est fixé à 1,2.
bgcolor=LightGray : la couleur d’arrière-plan est définie sur LightGray. Vous devez importer le paquet xcolor pour que cela fonctionne. Consultez Utiliser les couleurs dans LaTeX 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 peut être utilisée.
linenos : active la numérotation des lignes.
Autres options potentiellement utiles :
mathescape : active le mode mathématique dans les commentaires du code.
rulecolor : modifie la couleur du cadre.
showspaces : affiche un caractère spécial pour rendre les espaces visibles.
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 :
\documentclass{article}\usepackage{minted}\title{Importing files using minted}\begin{document}The next code will be directly imported from a file:\inputminted{octave}{BitXorMatrix.m}\end{document}
Cet exemple produit le résultat suivant :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 accepte 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 :
Si vous n’avez besoin d’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.
One-line code formatting also works with \texttt{minted}. For example, a small fragment of HTML like this:\mint{html}|<h2>Something <b>here</b></h2>|\noindent can be formatted correctly.
Cet exemple produit le résultat suivant :Le paramètre entre accolades définit le langage de programmation (ici le langage de balisage html), le texte à mettre en forme étant délimité par le caractère ’|’.
Si vous utilisez les compilations en bac à sable avec un serveur Overleaf auto-hébergé, minted risque de ne pas fonctionner correctement. Pour plus de détails, consultez : issues/131. Vous devez activer le profil d’instructions arm et certains appels système pour que minted fonctionne.
Dernière modification le 4 octobre 2026
Cette page vous a-t-elle été utile ?
Assistant
Responses are generated using AI and may contain mistakes.