Verbatim en couleur

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

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.
zorba
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 522
Inscription : lundi 01 juin 2009, 11:35

Verbatim en couleur

Message par zorba »

Bonjour,
je bute sur une erreur quand je souhaite placer une série de lignes de programme dans un verbatim et mettre l'ensemble sur un fond gris clai. J'ai une commande utilisateur qui m'installe les commandes pour ce fond de page, et j'insère mes autres commandes ensuite et out rort impeccable de la largeur souhaitée sur fond clair.
Le HIC, c'est quand je place du code entouré de begin{verbatim} **** en{verbatim}. J'obtiens une erreur de compilation que je ne sais pas traiter.
En utilisant AlgoBox, j'ai vu une façon de faire cette sortie, mais le code utilise des packages et des options de geometry que j'aimerai éviter d'utiliser.
Voici mon exemple, celui qui bloque:

Code : Tout sélectionner

\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage{amsmath,mathrsfs,amssymb}
\everymath{\displaystyle}
\usepackage{lipsum,xcolor,pst-eucl,pstricks-add,pst-fun,pst-tree}
\frenchbsetup{StandardLists=true}
\usepackage{enumitem}
\usepackage{ntheorem}
\usepackage{numprint}
\theorembodyfont{\upshape}
\usepackage{geometry,url}
\geometry{textwidth=130mm,textheight=260mm,top=2cm}

\usepackage[dvips]{graphicx}
%\usepackage[xcas,windows]{tablor}
\usepackage{cancel}
\usepackage{tablists-perso}
\usepackage{cellspace,eurosym,colortbl,slashbox}
\parindent=0pt
\AtBeginDocument{
  \abovedisplayshortskip=3pt
  \abovedisplayskip=3pt
  \belowdisplayshortskip=3pt
  \belowdisplayskip=3pt}

\newcounter{exo}
\newtheorem{tempexo}[exo]{Exercice}
\newenvironment{exo}[1][]{\begin{tempexo}\leavevmode\par\nobreak
\noindent\ignorespaces#1\par\nobreak\medskip}{\vspace{2mm} \hrule \vspace{2mm}\end{tempexo}}

\newsavebox{\boiteretournee}

\newenvironment{retourne}{%
  \par\textcolor{white}{Bla bla}\par\vspace{-\baselineskip}\nobreak
       \begin{lrbox}{\boiteretournee}%
       \begin{minipage}{0.95\textwidth}%
       \small\color{blue}%
    }{%
       \end{minipage}\end{lrbox}%
       \rotatebox{180}{%
       \usebox{\boiteretournee}%
       }%
    }

\newenvironment{rappels}[1][green]%[green]%
  {\begin{flushright}\small\slshape\color{#1}}%
  {\end{flushright}}

\def\siecle#1{\textsc{\romannumeral #1}\textsuperscript{e}~siècle}

% pour avoir des majuscules droites automatiquement

\DeclareMathSymbol{A}{\mathalpha}{operators}{`A}
\DeclareMathSymbol{B}{\mathalpha}{operators}{`B}
\DeclareMathSymbol{C}{\mathalpha}{operators}{`C}
\DeclareMathSymbol{D}{\mathalpha}{operators}{`D}
\DeclareMathSymbol{E}{\mathalpha}{operators}{`E}
\DeclareMathSymbol{F}{\mathalpha}{operators}{`F}
\DeclareMathSymbol{G}{\mathalpha}{operators}{`G}
\DeclareMathSymbol{H}{\mathalpha}{operators}{`H}
\DeclareMathSymbol{I}{\mathalpha}{operators}{`I}
\DeclareMathSymbol{J}{\mathalpha}{operators}{`J}
\DeclareMathSymbol{K}{\mathalpha}{operators}{`K}
\DeclareMathSymbol{L}{\mathalpha}{operators}{`L}
\DeclareMathSymbol{M}{\mathalpha}{operators}{`M}
\DeclareMathSymbol{N}{\mathalpha}{operators}{`N}
\DeclareMathSymbol{O}{\mathalpha}{operators}{`O}
\DeclareMathSymbol{P}{\mathalpha}{operators}{`P}
\DeclareMathSymbol{Q}{\mathalpha}{operators}{`Q}
\DeclareMathSymbol{R}{\mathalpha}{operators}{`R}
\DeclareMathSymbol{S}{\mathalpha}{operators}{`S}
\DeclareMathSymbol{T}{\mathalpha}{operators}{`T}
\DeclareMathSymbol{U}{\mathalpha}{operators}{`U}
\DeclareMathSymbol{V}{\mathalpha}{operators}{`V}
\DeclareMathSymbol{W}{\mathalpha}{operators}{`W}
\DeclareMathSymbol{X}{\mathalpha}{operators}{`X}
\DeclareMathSymbol{Y}{\mathalpha}{operators}{`Y}
\DeclareMathSymbol{Z}{\mathalpha}{operators}{`Z}

\newcommand{\et}{\llap{et \quad\,\,}}

\renewcommand{\textbf}[1]{\begingroup\bfseries\mathversion{bold}#1\endgroup}
\newcommand{\resultats}[2][blue]{{\centering{\textcolor{#1}{\fbox{#2}}}}}
\newcommand{\resul}[1]{\hspace{\stretch{1}}\textcolor{red}{$#1$}}
\newcounter{parties}
\newenvironment{parties}{\begin{list}
  {\hspace{\labelsep}\bfseries Partie \Alph{parties} --}
  {\leftmargin=0pt
   \labelwidth=0cm
   \usecounter{parties}
   \def\makelabel##1{##1}}}{\end{list}}

\newcounter{questions}
\renewcommand{\thequestions}{\textbf{\arabic{questions})}}
\newenvironment{questions}{\begin{list}
  {\hspace{\labelsep}\bfseries\arabic{questions})}
  {\leftmargin=0pt 
   \labelwidth=0cm
   \usecounter{questions}
   \def\makelabel##1{##1}}}{\end{list}}

\newcounter{sousquestions}
\renewcommand{\thesousquestions}{\textbf{\alph{sousquestions})}}
\newenvironment{sousquestions}{\begin{list}
  {\hspace{\labelsep}\bfseries\alph{sousquestions})}
  {\leftmargin=0pt
   \labelwidth=0cm
   \usecounter{sousquestions}
   \def\makelabel##1{##1}}}{\end{list}}
\newenvironment{regroup}{\left\lbrace\def\arraystretch{1.2}
  \begin{array}{@{}l@{}}}{\end{array}\right.}   

\newcommand{\manus}[1]{\ensuremath {\mathscr{\MakeUppercase{#1}}}}
\newcommand{\grastab}[1]{\ensuremath {\mathbb{#1}}}
\newcommand{\AO}[2]{\ensuremath{(\overrightarrow {#1},\,\overrightarrow{#2})}}
\newcommand{\intervalle}[2]{\ensuremath {\left[#1\,;#2\right]}}
\newcommand{\intervallefo}[2]{\ensuremath{\left[#1\,;#2\right[}}
\newcommand{\intervalleof}[2]{\ensuremath{\left]#1\,;#2\right]}}
\newcommand{\intervalleoo}[2]{\ensuremath{\left]#1\,;#2\right[}}
\def\R{{\ensuremath{\mathbb R}}\xspace} % les réels
\def\Q{{\ensuremath{\mathbb Q}}\xspace}  % les rationnels
\def\Z{{\ensuremath{\mathbb Z}}\xspace}  % les entiers relatifs
\def\D{{\ensuremath{\mathbb D}}\xspace}  % les décimaux
\def\N{{\ensuremath{\mathbb N}}\xspace}  % les entiers naturels
\def\C{{\ensuremath{\mathbb C}}\xspace}  % les complexes
\newcommand{\V}{\ensuremath{\overrightarrow}}
\newcommand{\pscal}[2]{\ensuremath{\V{#1}\cdot \V{#2}}}
\newcommand{\Pm}{\ensuremath{P_{-1}}}
\newcommand{\pv}{\ensuremath{\,;\,}}
\pagestyle{empty}
\newcommand{\xa}[1]{{\scriptstyle #1}}
\newcommand{\xb}[1]{\textcolor{blue}{\scriptstyle #1}}
\newcommand{\xc}[1]{\ensuremath{ \scriptscriptstyle #1}}
\DeclareMathOperator{\e}{e}
\newcommand{\Cn}{\ensuremath{\manus{C}_n}\xspace}
\newcommand\I{\ensuremath{\textup{i}}\xspace}
\newcommand{\Conj}[1]{\ensuremath{\overline{ #1 }} \xspace}
\newcommand{\Mod}[1]{{\left \vert #1 \right \vert } \xspace}
\newcommand{\Reel}[1]{\ensuremath {\mathscr{R}\mathrm e #1}}
\newcommand{\Ima}[1]{\ensuremath {\mathscr{I}\mathrm m #1}}
\renewcommand{\Re}{\operatorname{\mathscr{R}e}}
\renewcommand{\Im}{\operatorname{\mathscr{I}m}}
\newcommand{\modulo}[1]{{\,\left [ #1 \right ] } \xspace}
\newcommand{\logoBAC}{%
\rotatebox{7}{$\underline{\kern0.15em\overline{\kern-0.05em\text{\fontencoding{T1}\color{red}\fontfamily{ugq}\selectfont
     \bfseries BAC}\kern0.25em}\kern-0.15em}\,\,$}%
}
\begin{document}
%\initablor
\newcount\hh
\newcount\mm
\mm=\time
\hh=\time
\divide\hh by 60
\divide\mm by 60
\multiply\mm by 60
\mm=-\mm
\advance\mm by \time
\def\hhmm{\number\hh\string:\ifnum\mm<10{}0\fi\number\mm}
\noindent \today\, à \hhmm\\
\jobname\\
\setlength{\arrayrulewidth}{0.5pt}
\setlength{\cellspacetoplimit}{1pt}
\setlength{\cellspacebottomlimit}{1pt}
%\renewcommand{\descriptionlabel}[1]{\normalfont #1}
\newenvironment{outerdesc}[1][blue]
  {\begin{description}[font=\normalfont\color{#1}]}
  {\end{description}}
\definecolor{ffccff}{rgb}{1,0.8,1}
%\definecolor{myCol}{rgb}{1,0.95,0.95}
\definecolor{bleupale}{cmyk}{0.10,0.00,0.00,0.00}
\definecolor{jaunepale}{cmyk}{0.00,0.00,0.20,0.00}
\definecolor{vertpale}{cmyk}{0.10,0.00,0.10,0.0}
\definecolor{rosepale}{cmyk}{0.00,0.10,0.10,0.0}
\definecolor{grispale}{cmyk}{0.10,0.10,0.10,0.0}


\begin{exo}[Belin Exo-025-p174  Tirage de trois entiers et probabilité Chap 12 Probabilités]

On tire trois nombres entiers au hasard $x$, $y$ et $z$ entre 1 et 10. On cherche à déterminer la probabilité pour que $xy>3z$. \'Ecrire un prgramme qui énumère \numprint{1000} tirages possibles et compte ceux qui vérifient la condition $xy>3y$. Un élève annonce que la probabilité d'obtenir un triplet qui vérifie la condition est $\dfrac{634}{\numprint{1000}}\cdot$ Confirmez-vous sa réponse?

\vspace{2mm} \hrule \vspace{2mm}

\begin{center}
\colorbox[gray]{0.95}{
\begin{minipage}{0.95\textwidth}
*********************\\
\begin{verbatim}
lllllll
*******
\end{verbatim}
ùùùùùùùùùùùùùùùùùùùùù
\end{minipage}
}
\end{center}
\end{exo}
%\nettoyer
\end{document}




Je remercie toute personne courageuse en ce lendemain de fête pour l'aide apportée.
Bonne soirée à tous.
Pierre
Dernière modification par zorba le dimanche 26 décembre 2010, 17:12, modifié 1 fois.
On se lasse de tout, excepté d'apprendre. Virgile

rebouxo
Modérateur général
Modérateur général
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre

Re: Verbatim en couleur

Message par rebouxo »

Le verbatim c'est fait pour qu'il n'y ai pas d'interprétation du code, donc...
As-tu essayé l'extension listing qui pour la mise en forme des programmes informatiques est certainement ce qui se fait de mieux.

Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.

zorba
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 522
Inscription : lundi 01 juin 2009, 11:35

Re: Verbatim en couleur

Message par zorba »

Bonsoir,
merci d'avoir répondu avec l'idée d'utiliser le package listings. Je me lance et reviendrai sur ce fil un pu plus tard, j'aurai probablement des points à approfondir ou à me faire préciser, la documentation fait quand même 58 pages.
Pierre
On se lasse de tout, excepté d'apprendre. Virgile

Francky
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 681
Inscription : dimanche 11 avril 2010, 14:01

Re: Verbatim en couleur

Message par Francky »

ceci devrait t'aider.

Code : Tout sélectionner

\usepackage{listings}
\lstset{%
language=[LaTeX]TeX,
basicstyle=\ttfamily,       % the size of the fonts that are used for the code
numbers=left,                   % where to put the line-numbers
numberstyle=\footnotesize,      % the size of the fonts that are used for the line-numbers
stepnumber=1,                   % the step between two line-numbers. If it's 1 each line 
                                % will be numbered
numbersep=5pt,                  % how far the line-numbers are from the code
%backgroundcolor=\color{gray},  % choose the background color. You must add \usepackage{color}
showspaces=false,               % show spaces adding particular underscores
showstringspaces=false,         % underline spaces within strings
showtabs=false,                 % show tabs within strings adding particular underscores
frame=single,	                % adds a frame around the code
tabsize=2,	                % sets default tabsize to 2 spaces
captionpos=b,                   % sets the caption-position to bottom
breaklines=true,                % sets automatic line breaking
breakatwhitespace=false,        % sets if automatic breaks should only happen at whitespace
title=\lstname,                 % show the filename of files included with \lstinputlisting;
                                % also try caption instead of title
escapeinside={*!}{!*},         % if you want to add a comment within your code
%morekeywords={*,...}            % if you want to add more keywords to the set
framexleftmargin=5mm, frame=shadowbox, rulesepcolor=\color{SkyBlue},
%commentstyle=\color{blue}\small,
%keywordstyle=\ttfamily\bfseries,
%identifierstyle=\ttfamily\bfseries,
literate={é}{{\'e}}1 {è}{{\`e}}1 {à}{{\`a}}1 {ç}{{\c{c}}}1 {œ}{{\oe}}1 {ù}{{\`u}}1
{É}{{\'E}}1 {È}{{\`E}}1 {À}{{\`A}}1 {Ç}{{\c{C}}}1 {Œ}{{\OE}}1 {î}{{\^i}}1
}% à compléter au besoin, pour éviter les soucis d'accents
% listings n'est pas cool avec les caractères spéciaux.
%
Utilisation :

Code : Tout sélectionner

\begin{lstlistings}

ton code
---même avec du verbatim--
blabla
*! \tacommande !*

\end{lstlistings}
tu peux alors même insérer une commande qui sera "effectuée"
si elle est entre les caractères d'échappement *! et !* . (option modifiable)
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem

zorba
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 522
Inscription : lundi 01 juin 2009, 11:35

Re: Verbatim en couleur

Message par zorba »

Merci pour ce dernier exemple.
Je me rends compte que l'on ne peut pas mettre, en standard, du code dans un environnement verbatim sur un fond gris pâle et qu'il faut passer par listings pour le faire,
ou dit autrement, on ne peut pas mettre du verbatin sur un fond coloré, par exemple avec un
{colorbox{couleur}{\begin{verbatim}**** kkkk uuuu \end{verbatim}}}.
Je trouve cette limitation curieuse.
Je vais approfondir l'exemple produit par AlgoBox pour voir comment l'insérer dans mes documents qui deviennent de plus en plus touffus.
Bonne journée.
On se lasse de tout, excepté d'apprendre. Virgile

projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1916
Inscription : samedi 29 décembre 2007, 00:58

Re: Verbatim en couleur

Message par projetmbc »

Bonjour,
j'ai retrouvé ceci dans ma liste de "snippets" :

Code : Tout sélectionner

% Source : http://forum.mathematex.net/latex-f6/un-probleme-avec-verbatim-t11259.html#p109458

    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[a4paper,margin=3cm]{geometry}
    \usepackage{fancyvrb}
    \usepackage{tikz}
    \usetikzlibrary{calc}
    \usepackage{xcolor}
    \usepackage[frenchb]{babel}

    \newenvironment{code}
       {\SaveVerbatim{VerbEnv}}
       {\endSaveVerbatim\parindent0pt
       \begin{tikzpicture}
       \node [fill=gray!10,rectangle,inner xsep=10pt,inner ysep=10pt] (box)
          {\begin{minipage}{\dimexpr\textwidth-21.66pt\relax}
          \UseVerbatim{VerbEnv}
          \end{minipage}
          };
       \node[text=white,fill=gray,rectangle, shading=ball, ball color=gray, above right] (title) at ($(box.north west)+(-0.03,0)$){\textbf{CODE}};
       \draw[color=gray!50!black,very thick] (box.north west)--(box.south west)--(box.south east);
       \end{tikzpicture}
       }

    \begin{document}

    \begin{code}
    truc too much $1=1$%
    &=#% \relax
    \end{code}

    \end{document}

Francky
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 681
Inscription : dimanche 11 avril 2010, 14:01

Re: Verbatim en couleur

Message par Francky »

zorba a écrit :on ne peut pas mettre ...
{colorbox{couleur}{\begin{verbatim}**** kkkk uuuu \end{verbatim}}}.
Je trouve cette limitation curieuse.
En effet, mais je crois qu'on peut changer la couleur du texte, c'est déjà ça.

J'utilise

Code : Tout sélectionner

Du texte en noir,
{\color{ma-couleur}{\verb!mon-code!}} % code en couleur
Retour au texte en noir
Ça permet de faire ressortir le code,
mais impossible (pour moi) d'en faire une commande,
\verb y est interdit.
Je dois coller le truc à chaque fois.
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 825
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Verbatim en couleur

Message par un bon petit »

Francky a écrit :Ça permet de faire ressortir le code,
mais impossible (pour moi) d'en faire une commande,
\verb y est interdit.
Je dois coller le truc à chaque fois.
On peut facilement se servir du \verb existant pour créer une commande \colorverb qui affiche du "verb" en couleur :

Code : Tout sélectionner

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\makeatletter
\newcommand\colorverb{%
	\@ifstar{\let\next@colorverb\@sverb\@colorverb}
	{\let\next@colorverb\@verb\@colorverb}}
\newcommand\@colorverb[1][black]{%
	\relax\ifmmode\hbox\else\leavevmode\null\fi
	\bgroup
	\color{#1}%
	\verb@eol@error \let\do\@makeother \dospecials
	\verbatim@font\@noligs
	\next@colorverb}
\makeatother
\begin{document}
\tracingonline=1
Voici du verb en couleur : \colorverb[red]!\verb en rouge!

Il y a aussi \colorverb*[blue]/du bleu étoilé ^_\/ puis par défaut \colorverb-du noir ###- !
\end{document}

Francky
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 681
Inscription : dimanche 11 avril 2010, 14:01

Re: Verbatim en couleur

Message par Francky »

Merci, terrible.
Linux Mint | TeXLive - TexMaker - asymptote | Python3 & C - Geany - Project Euler - SPOJ
Entia non sunt multiplicanda praeter necessitatem

projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1916
Inscription : samedi 29 décembre 2007, 00:58

Re: Verbatim en couleur

Message par projetmbc »

Bonsoir,
je remonte ce post pour savoir s'il serait possible d'ajouter deux petites fonctionnalités.
  1. Avoir la possibilité d'ajouter une couleur de fond.
  2. Avoir la possibilité de mettre en gras.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 825
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Verbatim en couleur

Message par un bon petit »

Avec le package listings, ce genre de fioritures est très simple via la commande \lstinline

projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1916
Inscription : samedi 29 décembre 2007, 00:58

Re: Verbatim en couleur

Message par projetmbc »

Oui mais je ne vais pas utiliser les capacités de coloration de listing qui sont limitées à mon goût. Le souci est que je n'ai pas de caractère d'échappement pour les listings en ligne...
Dernière modification par projetmbc le dimanche 26 juin 2011, 11:49, modifié 1 fois.

projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1916
Inscription : samedi 29 décembre 2007, 00:58

Re: Verbatim en couleur

Message par projetmbc »

C'est bon, j'ai trouvé comment faire...