Ecrire en couleur dans lstlisting

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
XANA
Utilisateur confirmé
Utilisateur confirmé
Messages : 40
Inscription : lundi 04 septembre 2017, 17:56

Ecrire en couleur dans lstlisting

Message non lu par XANA »

Bonjour,
je souhaiterais, pour mettre en valeur certaines lignes d'un code, les mettre d'une certaine couleur (par exemple en rouge). Je n'ai pas trouvé comme faire... J'ai essayé \textcolor, mais évidemment dans l'environnement lstlisting, ça écrit la commande :lol:
Par exemple :

Code : Tout sélectionner

\begin{lstlisting}
def f(n):
  if n==0:
    return n
  else:
    return 1 + f(n-1)
\end{lstlisting}
Faire en sorte que la ligne "return 1 + f(n-1)" apparaisse en rouge dans le document généré.
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1136
Inscription : jeudi 25 novembre 2010, 22:10

Re: écrire en couleur dans lstlisting

Message non lu par marco56 »

Un ecm pour que ce soit plus simple ?
XANA
Utilisateur confirmé
Utilisateur confirmé
Messages : 40
Inscription : lundi 04 septembre 2017, 17:56

Re: écrire en couleur dans lstlisting

Message non lu par XANA »

Par exemple :

Code : Tout sélectionner

\documentclass{article}

\usepackage{xcolor}
\usepackage{listings}
\lstset{%
	language={python},
	breaklines=true,
	numbers=left,
	numberstyle=\footnotesize,
	captionpos=b,
	basicstyle=\ttfamily,
	keywordstyle=\bfseries\color{blue},
	commentstyle=\itshape\color{green}
	}
	
\begin{document}

\begin{lstlisting}
def f(n): # fonction utile
  if n == 0:
    return n
  else:
    return 1 + f(n-1)
\end{lstlisting}

\end{document}
Par exemple ici, faire en sorte que la ligne "return 1+f(n-1)" apparaisse en rouge.
Denis Bitouzé
Utilisateur confirmé
Utilisateur confirmé
Messages : 97
Inscription : vendredi 27 octobre 2006, 20:27
Localisation : Dunkerque
Contact :

Re: Ecrire en couleur dans lstlisting

Message non lu par Denis Bitouzé »

Il suffit de recourir à un délimiteur, invisible, au moyen de moredelim. Par exemple :

Code : Tout sélectionner

\documentclass{article}

\usepackage{xcolor}
\usepackage{listings}
\lstset{%
   language={python},
   breaklines=true,
   numbers=left,
   numberstyle=\footnotesize,
   captionpos=b,
   basicstyle=\ttfamily,
   keywordstyle=\bfseries\color{blue},
   commentstyle=\itshape\color{green},
   moredelim=[il][\color{red}]{/+},%
   }

\begin{document}

\begin{lstlisting}
def f(n): # fonction utile
  if n == 0:
    return n
  else:
/+    return 1 + f(n-1)
\end{lstlisting}

\end{document}
Denis
XANA
Utilisateur confirmé
Utilisateur confirmé
Messages : 40
Inscription : lundi 04 septembre 2017, 17:56

Re: Ecrire en couleur dans lstlisting

Message non lu par XANA »

Cela fonctionne parfaitement !
Merci beaucoup ! : )
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message