Aller au contenu

listings dans Scissor LaTeX

Le package listings fonctionne en partie dans Scissor LaTeX : lstlisting garde le code exactement tel que vous l’avez tapé et le colore quand vous indiquez language= sur l’environnement, et \lstinline fonctionne ; \lstset, les numéros de ligne, les cadres, les légendes et les étiquettes sont ignorés, et \lstinputlisting est ignorée.

Ce que fait le package

listings compose du code source. L’environnement lstlisting conserve les retours à la ligne et les espaces, et avec language=Python (ou C, Java, SQL ...) il compose les mots-clés, les commentaires et les chaînes dans des styles différents. Des options ajoutent des numéros de ligne, des cadres, des légendes et des couleurs, soit pour un listing, soit pour tout le document avec \lstset. \lstinline en est la forme en ligne, et \lstinputlisting lit le code dans un fichier.

Ce qui fonctionne ici

FonctionDans Scissor LaTeXRemarques
\begin{lstlisting} ... \end{lstlisting}FonctionneEn chasse fixe, exactement tel que tapé.
[language=Python] sur l’environnementFonctionneColoration syntaxique selon un schéma fixe.
[language={[Sharp]C}] et autres dialectesFonctionneLe dialecte entre crochets est lu avec le nom.
\lstinline|code|, \lstinline{code}FonctionneEn chasse fixe, sans couleurs.
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolorIgnoréeIgnorées sans message.
caption=, label=IgnoréeAucune légende ne s’affiche, et un \ref vers l’étiquette affiche « ?? ».
\lstset{...}, \lstdefinestyle, style=IgnoréeIgnorées, y compris un language= défini à cet endroit.
\lstinputlisting{file}Non prise en chargeIgnorée avec un message.
\lstlistoflistings, \lstnewenvironmentNon prise en chargeIgnorées avec un message.

Les noms de langages ne tiennent pas compte de la casse. Les couleurs sont disponibles pour les langages courants comme Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML et TeX. Un nom non reconnu, comme Fortran, donne du code en chasse fixe sans couleurs et sans message.

Exemples

Indiquez le langage sur chaque listing :

lstlisting avec language=Python

LaTeXPréambule : \usepackage{listings}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{lstlisting}[language=Python]
def mean(values):
    # average of a list of numbers
    return sum(values) / len(values)

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

Un langage défini avec \lstset n’est pas utilisé : ce listing n’a donc pas de couleurs. Les options de mise en page comme numbers et frame sont ignorées elles aussi :

\lstset est ignorée

\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}

Le code en ligne avec \lstinline accepte n’importe quel délimiteur, comme \verb :

\lstinline dans une phrase

LaTeXPréambule : \usepackage{listings}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Composé par Scissor LaTeX: \lstinline dans une phrase

Un listing avec légende dans une figure

LaTeXPréambule : \usepackage{listings}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.
Composé par Scissor LaTeX: Un listing avec légende dans une figure

Compatibilité

  • D’une installation TeX vers Scissor LaTeX : le code de chaque lstlisting s’affiche. Déplacez language= de \lstset vers chaque listing pour obtenir les couleurs, et collez dans le document le code des fichiers lus par \lstinputlisting.
  • De Scissor LaTeX vers une installation TeX : les documents s’y compilent sans modification, et vos options s’y appliquent.

Le manuel complet se trouve sur CTAN : ctan.org/pkg/listings. Voir aussi Code source en LaTeX et minted.

Questions et réponses

Pourquoi mes listings ne sont-ils pas colorés ?

Le langage est sans doute défini avec \lstset, qui est ignorée ici. Écrivez [language=Python] (ou votre langage) après \begin{lstlisting}.

Puis-je afficher des numéros de ligne ?

Pas encore. numbers=left est acceptée et ignorée.

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.