Ecrire en couleur dans lstlisting

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Ecrire en couleur dans lstlisting

Messagepar XANA » Lundi 29 Avril 2019, 18:33

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é.
XANA
Déca-utilisateur
 
Messages: 32
Inscription: Lundi 04 Septembre 2017, 16:56
Statut actuel: Post-bac | CPGE

Publicité

Re: écrire en couleur dans lstlisting

Messagepar marco56 » Lundi 29 Avril 2019, 18:39

Un ecm pour que ce soit plus simple ?
marco56
Giga-utilisateur
 
Messages: 765
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: écrire en couleur dans lstlisting

Messagepar XANA » Lundi 29 Avril 2019, 18:50

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.
XANA
Déca-utilisateur
 
Messages: 32
Inscription: Lundi 04 Septembre 2017, 16:56
Statut actuel: Post-bac | CPGE

Re: Ecrire en couleur dans lstlisting

Messagepar Denis Bitouzé » Lundi 29 Avril 2019, 19:51

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
Denis Bitouzé
Hecto-utilisateur
 
Messages: 68
Inscription: Vendredi 27 Octobre 2006, 19:27
Localisation: Dunkerque
Statut actuel: Actif et salarié | Maître de conférence

Re: Ecrire en couleur dans lstlisting

Messagepar XANA » Mercredi 01 Mai 2019, 10:21

Cela fonctionne parfaitement !
Merci beaucoup ! : )
XANA
Déca-utilisateur
 
Messages: 32
Inscription: Lundi 04 Septembre 2017, 16:56
Statut actuel: Post-bac | CPGE


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Grapeshot [Crawler] et 4 invités