Page 1 sur 1

Ecrire en couleur dans lstlisting

MessagePosté: Lundi 29 Avril 2019, 18:33
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é.

Re: écrire en couleur dans lstlisting

MessagePosté: Lundi 29 Avril 2019, 18:39
par marco56
Un ecm pour que ce soit plus simple ?

Re: écrire en couleur dans lstlisting

MessagePosté: Lundi 29 Avril 2019, 18:50
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.

Re: Ecrire en couleur dans lstlisting

MessagePosté: Lundi 29 Avril 2019, 19:51
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}

Re: Ecrire en couleur dans lstlisting

MessagePosté: Mercredi 01 Mai 2019, 10:21
par XANA
Cela fonctionne parfaitement !
Merci beaucoup ! : )