Aller au contenu

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.
Composé par Scissor LaTeX: Code dans le texte avec \verb et \texttt

\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

LaTeXPréambule : \usepackage{listings}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{lstlisting}[language=Python]
def total(xs):
    """Add up the numbers in xs."""
    return sum(xs)

print(total([40, 4]))  # 44
\end{lstlisting}
Composé par Scissor LaTeX: lstlisting avec language=Python

\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

LaTeXPréambule : \usepackage{minted}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{minted}{rust}
fn main() {
    let answer = 40 + 4;
    println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}
Composé par Scissor LaTeX: minted avec un langage

Ce qui est lu

CommandeDans Scissor LaTeXRemarques
verbatim, verbatim*Fonctionne
\verb, \verb*Fonctionne
lstlistingEn partielanguage= est lu ; toutes les autres options (numbers, caption, frame, basicstyle, firstline ...) sont ignorées.
\lstinlineFonctionnePas de coloration syntaxique dans le texte.
\lstset{...}IgnoréUn langage défini ici n’est pas utilisé ; indiquez language= sur chaque listing.
mintedEn partieLe langage est lu ; les options comme linenos et frame sont ignorées.
\mintinline{lang}{code}FonctionnePas de coloration syntaxique dans le texte.
Verbatim, BVerbatim (fancyvrb)En partieAffichés comme du verbatim ; les options sont ignorées.
\lstinputlisting{file}, \inputminted{lang}{file}Non pris en chargeIgnorées avec un message ; collez le code dans le document.
\lstnewenvironment, \newmintedNon 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é

LaTeXPréambule : \usepackage{listings}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
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.