Listings de code en LaTeX
Placez le code dans un environnement verbatim, lstlisting ou minted, ou utilisez \verb|...| dans le texte ; Scissor LaTeX le compose en police à chasse fixe exactement comme vous l’avez tapé et colore la syntaxe quand vous indiquez le langage.
verbatim
Dans verbatim, rien n’est interprété : les barres obliques inverses, les accolades, $ et % s’affichent tels quels, et les retours à la ligne et les espaces sont conservés. C’est la façon la plus simple d’afficher du code ou la sortie d’un terminal.
Un bloc verbatim
\begin{verbatim}
for i in range(44):
print(i) # $ and \textbf stay as typed
\end{verbatim}Code dans le texte : \verb
\verb affiche un court morceau de code au milieu d’une phrase. Le caractère qui suit directement \verb sert de délimiteur ; choisissez-en un qui n’apparaît pas dans le code, comme | ou +.
Code dans le texte avec \verb et \texttt
Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.\texttt{...} ne change que la police : les caractères spéciaux comme _ et % doivent toujours y être échappés, alors que \verb les prend tels quels.
listings : lstlisting avec un langage
Le package listings fournit lstlisting. Avec language=..., le code reçoit une coloration syntaxique.
lstlisting avec language=Python
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}\lstinline|code| est la forme pour le texte courant, comme \verb.
minted
minted prend le langage en argument. Dans une installation TeX, il a besoin de Python et de l’option -shell-escape ; dans Scissor LaTeX, il fonctionne sans l’un ni l’autre.
minted avec un langage
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}Ce qui est lu
| Commande | Dans Scissor LaTeX | Remarques |
|---|---|---|
verbatim, verbatim* | Fonctionne | |
\verb, \verb* | Fonctionne | |
lstlisting | En partie | language= est lu ; toutes les autres options (numbers, caption, frame, basicstyle, firstline ...) sont ignorées. |
\lstinline | Fonctionne | Pas de coloration syntaxique dans le texte. |
\lstset{...} | Ignoré | Un langage défini ici n’est pas utilisé ; indiquez language= sur chaque listing. |
minted | En partie | Le langage est lu ; les options comme linenos et frame sont ignorées. |
\mintinline{lang}{code} | Fonctionne | Pas de coloration syntaxique dans le texte. |
Verbatim, BVerbatim (fancyvrb) | En partie | Affichés comme du verbatim ; les options sont ignorées. |
\lstinputlisting{file}, \inputminted{lang}{file} | Non pris en charge | Ignorées avec un message ; collez le code dans le document. |
\lstnewenvironment, \newminted | Non pris en charge |
La coloration syntaxique est disponible pour les langages courants, notamment Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX et LaTeX. Les noms de langages ne tiennent pas compte de la casse : Python et python sont équivalents. Un nom non reconnu donne du code à chasse fixe sans couleurs.
Code provenant d’un fichier
Dans une installation TeX, \lstinputlisting et \inputminted lisent le code dans un autre fichier. Scissor LaTeX les ignore et le signale dans l’onglet Problèmes :
\lstinputlisting est ignoré
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.Onglet Problèmes : 1 included file is not part of this conversion
Différences avec une installation TeX
Voir listings et minted pour les pages des packages. Les manuels complets se trouvent sur CTAN : listings, minted et fancyvrb.
Questions et réponses
Comment ajouter un bloc de code en LaTeX ?
Entourez le code de \begin{verbatim} ... \end{verbatim}, ou placez-le dans lstlisting avec [language=Python] pour la coloration syntaxique.
minted fonctionne-t-il sans shell escape ?
Dans Scissor LaTeX, oui : les environnements minted sont colorés sans Python ni -shell-escape. Dans une installation TeX, minted a toujours besoin des deux.
Pourquoi les numéros de ligne de mon listing ont-ils disparu ?
Scissor LaTeX ignore numbers=left et les autres options de mise en page de listings. Seul le langage est lu.
Chaque exemple de cette page est composé par Scissor LaTeX lors de la génération du site. Dernière mise à jour : 2026-11-07.