Environnement, tikz et verbatim

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.

Environnement, tikz et verbatim

Messagepar zariski63 » Mercredi 22 Août 2012, 11:06

Bonjour !

Je souhaiterais le même rendu que le fichier joint (piqué sur un site dont j'admire le travail).
Le fichier joint exemple.jpg n’est plus disponible.


J'arrive presque au bon résultat mais ce qui bug ce sont les "escapechar=§" qui ne sont pas pris en compte et qui dépassent de la boite:

Code: Tout sélectionner
\newlength{\Lboite}
\newlength{\Hboite}
\newsavebox{\maboiteD}
\newenvironment{cadrecoul}{%
   \begin{lrbox}{\maboiteD}
   }%
   {
  \end{lrbox}
  \begin{tikzpicture}[baseline]
   \node[top color=blue!5,bottom color=blue!15,anchor=base,rounded corners=5pt,draw=blue,line width=0.5pt]
   {\settowidth{\Lboite}{\usebox{\maboiteD}}
  \settoheight{\Hboite}{\usebox{\maboiteD}}
   \begin{minipage}[][\Hboite][c]{\Lboite}
      \usebox{\maboiteD}
   \end{minipage}};
    \end{tikzpicture}
   }

\begin{cadrecoul}
\begin{codelatex}[escapechar=§,moretexcs={[4]define@boolkey}]
\define@boolkey[§\color{magenta}\ttfamily PREFIXE§]{§\color{red}\ttfamily macroname§}{§\color{teal}\ttfamily optionname§}[true]{}
\end{codelatex}
\end{cadrecoul}


Merci
Fichiers joints
exemple.jpg
zariski63
Kilo-utilisateur
 
Messages: 222
Inscription: Jeudi 14 Octobre 2010, 08:20
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: environnement, tikz et verbatim

Messagepar GMaths » Jeudi 23 Août 2012, 08:59

Bonjour,
as-tu réalisé que si quelqu'un voulait s'intéresser à ton problème, il ne pourrait pas tester ce que tu proposes avec ce que tu as donné ? :wink:
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: environnement, tikz et verbatim

Messagepar zariski63 » Jeudi 23 Août 2012, 11:23

Ah oui en effet !
Voici donc un bout de code:
Code: Tout sélectionner
\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}

\usepackage{fourier}

\usepackage{amsmath,amsfonts,amssymb,pifont}


\usepackage{xkeyval}

\usepackage{color}

\usepackage[table,dvipsnames,svgnames]{xcolor}

  \definecolor{vertclair}{rgb}{0.10,0.55,0.17}
  \definecolor{vertfonce}{rgb}{0,0.44,0}
  \definecolor{grisclair}{rgb}{0.78,0.78,0.78}
  \definecolor{prune}{rgb}{0.65,0.00,0.00}
  \definecolor{bleufonce}{rgb}{0.06,0.06,1.00}
  \definecolor{violet}{rgb}{0.21,0.18,0.73}
  \definecolor{orange}{rgb}{0.93,0.46,0.00}

\usepackage{array}

\usepackage{graphicx}

\usepackage{multirow}

\usepackage{pgf}
\usepackage{tikz,tkz-base}
   \usetikzlibrary{decorations}
   \usetikzlibrary{decorations.pathmorphing}
   \usetikzlibrary{decorations.pathreplacing}
   \usetikzlibrary{decorations.shapes}
   \usetikzlibrary{decorations.text}
   \usetikzlibrary{decorations.markings}
   \usetikzlibrary{decorations.fractals}
   \usetikzlibrary{decorations.footprints}
   \usetikzlibrary{calc}
   \usetikzlibrary{arrows,plotmarks}


%%%%%%%%% Code Latex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{listings}
\usepackage{textcomp}
\lstnewenvironment{codelatex}[1][]{%
     \lstset{
         language = {[LaTeX]TeX},
         upquote = true,
         columns = flexible,
         commentstyle = \color{gray}\ttfamily,
         basicstyle = \ttfamily,
         moretexcs = {piccaption,parpic,subref,includegraphics,cellcolor,rowcolor,doublerulesepcolor,
                    arrayrulecolor,renewcommand,arraystretch,jot,hdashline,dashlinedash,dashlinegap,
                    hhline,tt,newcolumntype,newcommandx,renewcommandx,color,textcolor,definecolor,
                    colorbox,fcolorbox,pagecolor,texteuro,setlength,columncolor,setlongtables,
                    endfirsthead,endhead,endfoot,arrayrulecolor,doublerulesepcolor,savebox,reflectbox,
                    rotatebox,scalebox,resizebox,lstnewenvironment,lstset},
         texcsstyle = *\color{bleufonce}\ttfamily,  %conjointement avec moretexcs
         morekeywords = {SCfigure,sidecap,figure,lrbox,longtable,sideways,sidewaystable,
         turn,tabularx,eqnarray,tabular,minipage,table,tabbing,listings,textcomp,tikzpicture},
         keywordstyle = \color{vertfonce}\ttfamily,  %conjointement avec morekeywords
         texcsstyle = *[2]\color{red}\ttfamily,
         texcsstyle = *[3]\color{Magenta}\ttfamily,
         texcsstyle = *[4]\color{prune}\ttfamily,
         keywordstyle=[2]\color{red}\ttfamily,
         keywordstyle =[3]\color{prune}\ttfamily,
         #1
        }
}{}
%%%%%%%%% Fin Code Latex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%  Code en Boite %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newsavebox{\maboite}
\newenvironment{cadrecoul}{%
   \begin{lrbox}{\maboite}
   }%
   {
  \end{lrbox}
  \begin{tikzpicture}[baseline]
   \node[top color=blue!5,bottom color=blue!15,anchor=base,rounded corners=5pt,draw=blue,line width=0.5pt]
   {\usebox{\maboite}};
    \end{tikzpicture}
   }
%%%%  Fin Code en Boite %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}


%%%%%%%%%%%%%%%  sans minipage  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{cadrecoul}
\begin{codelatex}[escapechar=§,moretexcs={[4]define@boolkey}]
\define@boolkey[§\color{magenta}\ttfamily PREFIXE§]{§\color{red}\ttfamily macroname§}{§\color{teal}\ttfamily optionname§}[true]{}
\end{codelatex}

\end{cadrecoul}
%%%%%%%%%%%%%%% sans minipage  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\vspace{1cm}

%%%%%%%%%%%%%%%  à la main avec minipage  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{cadrecoul}
\begin{minipage}[][0.5cm][c]{10.5cm}
\begin{codelatex}[escapechar=§,moretexcs={[4]define@boolkey}]
\define@boolkey[§\color{magenta}\ttfamily PREFIXE§]{§\color{red}\ttfamily macroname§}{§\color{teal}\ttfamily optionname§}[true]{}
\end{codelatex}
\end{minipage}
\end{cadrecoul}
%%%%%%%%%%%%%%%  Fin à la main avec minipage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\end{document}
zariski63
Kilo-utilisateur
 
Messages: 222
Inscription: Jeudi 14 Octobre 2010, 08:20
Statut actuel: Actif et salarié | Enseignant

Re: environnement, tikz et verbatim

Messagepar pg » Jeudi 23 Août 2012, 13:55

Il y a au moins deux options simples pour résoudre le problème :
  • rajouter une minipage de longueur \textwidth dans la définition de {cadrecoul} pour que toutes les boîtes aient la taille maximale, comme ça plus besoin de se préoccuper de leur taille ;
  • utiliser des keywordstyle au lieu d'escapechar pour mettre les objets en couleur.

Un exemple de la deuxième solution :

Code: Tout sélectionner
\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}

\usepackage{fourier}

\usepackage{amsmath,amsfonts,amssymb,pifont}


\usepackage{xkeyval}

\usepackage{color}

\usepackage[table,dvipsnames,svgnames]{xcolor}

  \definecolor{vertclair}{rgb}{0.10,0.55,0.17}
  \definecolor{vertfonce}{rgb}{0,0.44,0}
  \definecolor{grisclair}{rgb}{0.78,0.78,0.78}
  \definecolor{prune}{rgb}{0.65,0.00,0.00}
  \definecolor{bleufonce}{rgb}{0.06,0.06,1.00}
  \definecolor{violet}{rgb}{0.21,0.18,0.73}
  \definecolor{orange}{rgb}{0.93,0.46,0.00}

\usepackage{array}

\usepackage{graphicx}

\usepackage{multirow}

\usepackage{pgf}
\usepackage{tikz,tkz-base}
   \usetikzlibrary{decorations}
   \usetikzlibrary{decorations.pathmorphing}
   \usetikzlibrary{decorations.pathreplacing}
   \usetikzlibrary{decorations.shapes}
   \usetikzlibrary{decorations.text}
   \usetikzlibrary{decorations.markings}
   \usetikzlibrary{decorations.fractals}
   \usetikzlibrary{decorations.footprints}
   \usetikzlibrary{calc}
   \usetikzlibrary{arrows,plotmarks}


%%%%%%%%% Code Latex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{listings}
\usepackage{textcomp}
\lstnewenvironment{codelatex}[1][]{%
     \lstset{
         language = {[LaTeX]TeX},
         upquote = true,
         columns = flexible,
         commentstyle = \color{gray}\ttfamily,
         basicstyle = \ttfamily,
         moretexcs = {piccaption,parpic,subref,includegraphics,cellcolor,rowcolor,doublerulesepcolor,
                    arrayrulecolor,renewcommand,arraystretch,jot,hdashline,dashlinedash,dashlinegap,
                    hhline,tt,newcolumntype,newcommandx,renewcommandx,color,textcolor,definecolor,
                    colorbox,fcolorbox,pagecolor,texteuro,setlength,columncolor,setlongtables,
                    endfirsthead,endhead,endfoot,arrayrulecolor,doublerulesepcolor,savebox,reflectbox,
                    rotatebox,scalebox,resizebox,lstnewenvironment,lstset},
         texcsstyle = *\color{bleufonce}\ttfamily,  %conjointement avec moretexcs
         morekeywords = {SCfigure,sidecap,figure,lrbox,longtable,sideways,sidewaystable,
         turn,tabularx,eqnarray,tabular,minipage,table,tabbing,listings,textcomp,tikzpicture},
         keywordstyle = \color{vertfonce}\ttfamily,  %conjointement avec morekeywords
         texcsstyle = *[2]\color{red}\ttfamily,
         texcsstyle = *[3]\color{Magenta}\ttfamily,
         texcsstyle = *[4]\color{prune}\ttfamily,
         keywordstyle=[2]\color{red}\ttfamily,
         keywordstyle=[3]\color{prune}\ttfamily,
         keywordstyle=[12]\color{red}\ttfamily,
         keywordstyle=[13]\color{Magenta}\ttfamily,
         keywordstyle=[14]\color{teal}\ttfamily,
         #1
        }
}{}
%%%%%%%%% Fin Code Latex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%  Code en Boite %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newsavebox{\maboite}
\newenvironment{cadrecoul}{%
   \begin{lrbox}{\maboite}
   %\begin{minipage}[][0.5cm][c]{\dimexpr\textwidth-5pt}
   }%
   {
  %\end{minipage}
  \end{lrbox}
  \par\addvspace{6pt}
  \noindent\begin{tikzpicture}[baseline]
      \node[top color=blue!5,bottom color=blue!15,anchor=base,rounded corners=5pt,draw=blue,line width=0.5pt]
   {\usebox{\maboite}};
   \end{tikzpicture}
   \par\addvspace{6pt}
   }
%%%%  Fin Code en Boite %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

%%%%%%%%%%%%%%%  avec escapechar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{cadrecoul}
\begin{codelatex}[escapechar=§,moretexcs={[4]define@boolkey}]
\define@boolkey[§\color{magenta}\ttfamily PREFIXE§]{§\color{red}\ttfamily macroname§}{§\color{teal}\ttfamily optionname§}[true]{}
\end{codelatex}
\end{cadrecoul}
%%%%%%%%%%%%%%% avec escapechar  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%  sans escapechar  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{cadrecoul}
\begin{codelatex}[moretexcs={[4]define@boolkey},morekeywords={[13]PREFIXE},morekeywords={[12]macroname},morekeywords={[14]optionname}]
\define@boolkey[PREFIXE]{macroname}{optionname}[true]{}
\end{codelatex}
\end{cadrecoul}
%%%%%%%%%%%%%%% sans escapechar  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}

J'ai modifié un peu la définition de {cadrecoul} pour enlever l'indentation et rajouter un peut d'espace avant et après.
pg
Modérateur
 
Messages: 2585
Inscription: Jeudi 14 Juin 2007, 23:31

Re: environnement, tikz et verbatim

Messagepar zariski63 » Jeudi 23 Août 2012, 14:11

Marrant, j' ai eu ma même idée pour les "escapechar" !
Mais je suis preneur pour les espaces "avant" et "après".
Par contre je n'ai pas trouvé de solution lorsque le code est indenté, genre :
Code: Tout sélectionner
\begin{cadrecoul}
\begin{codelatex}[moretexcs={[4]define@boolkey},morekeywords={[5]PREFIXE},
            morekeywords={[2]macroname},morekeywords={[4]optionname}]
\define@boolkey[PREFIXE]{macroname}{optionname}[true]{}
\end{codelatex}


... Il sort alors du cadre. Solution satisfaisante mais peu convaincante : faire attention à l'écrire correctement (sans indenter).
zariski63
Kilo-utilisateur
 
Messages: 222
Inscription: Jeudi 14 Octobre 2010, 08:20
Statut actuel: Actif et salarié | Enseignant

Re: environnement, tikz et verbatim

Messagepar zariski63 » Jeudi 23 Août 2012, 14:11

ah j'ai oublié le mot magique : MERCI
zariski63
Kilo-utilisateur
 
Messages: 222
Inscription: Jeudi 14 Octobre 2010, 08:20
Statut actuel: Actif et salarié | Enseignant

Re: environnement, tikz et verbatim

Messagepar pg » Jeudi 23 Août 2012, 14:34

Quelle indentation ? Merci de donner un code complet qui montre le problème.
pg
Modérateur
 
Messages: 2585
Inscription: Jeudi 14 Juin 2007, 23:31

Re: environnement, tikz et verbatim

Messagepar zariski63 » Jeudi 23 Août 2012, 14:46

euh euh :oops: je n'ai rien dit !!!

merci
zariski63
Kilo-utilisateur
 
Messages: 222
Inscription: Jeudi 14 Octobre 2010, 08:20
Statut actuel: Actif et salarié | Enseignant

Re: environnement, tikz et verbatim

Messagepar zariski63 » Jeudi 23 Août 2012, 22:58

Je reviens sur mes soucis de verbatim.
J'ai glané le code suivant sur le forum:
Code: Tout sélectionner

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[frenchb]{babel}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{textcomp}


\usepackage{xcolor}
  \definecolor{vertclair}{rgb}{0.10,0.55,0.17}
  \definecolor{vertfonce}{rgb}{0,0.44,0}
  \definecolor{grisclair}{rgb}{0.78,0.78,0.78}
  \definecolor{prune}{rgb}{0.65,0.00,0.00}
  \definecolor{bleufonce}{rgb}{0.06,0.06,1.00}
  \definecolor{violet}{rgb}{0.21,0.18,0.73}
  \definecolor{orange}{rgb}{0.93,0.46,0.00}
 
 
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{verbatim}


%%%%%%%%% Code Latex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{listings}
\usepackage{textcomp}
%\lstnewenvironment{codelatex}[1][]{%
     \lstset{
         language = {[LaTeX]TeX},
         upquote = true,
         columns = flexible,
         commentstyle = \color{gray}\ttfamily,
         basicstyle = \ttfamily,
         moretexcs = {piccaption,parpic,subref,includegraphics,cellcolor,rowcolor,doublerulesepcolor,
                    arrayrulecolor,renewcommand,arraystretch,jot,hdashline,dashlinedash,dashlinegap,
                    hhline,tt,newcolumntype,newcommandx,renewcommandx,color,textcolor,definecolor,
                    colorbox,fcolorbox,pagecolor,texteuro,setlength,columncolor,setlongtables,
                    endfirsthead,endhead,endfoot,arrayrulecolor,doublerulesepcolor,savebox,reflectbox,
                    rotatebox,scalebox,resizebox,lstnewenvironment,lstset,usetikzlibrary,
                    overset,underset,sideset,genfrac,binom,underrightarrow,underleftarrow,
                    underleftrightarrow,xrightarrow,overleftrightarrow,xleftarrow,systeme,
                    dfrac,tfrac,mathfrak,xleftrightarrow,xhookleftarrow,xLeftarrow,
                    xhookrightarrow,xRightarrow,xmapsto,xLeftrightarrow,prescript,adjustlimits,
                    mathclap,mathllap,mathrlap,smashoperator,substack,DeclareMathOperator,
                    DeclarePairedDelimiter,DeclarePairedDelimiterX
                    },
         texcsstyle = *\color{bleufonce}\ttfamily,  %conjointement avec moretexcs
         morekeywords = {SCfigure,sidecap,figure,lrbox,longtable,sideways,sidewaystable,
         turn,tabularx,eqnarray,tabular,minipage,table,tabbing,listings,textcomp,tikzpicture,
         pgf,tikz,math,displaymath,subarray,matrix,pmatrix, bmatrix,Bmatrix, vmatrix, Vmatrix,smallmatrix,cases,align,drcases,equation},
         keywordstyle = \color{vertfonce}\ttfamily,  %conjointement avec morekeywords
         texcsstyle = *[2]\color{red}\ttfamily,
         texcsstyle = *[3]\color{Magenta}\ttfamily,
         keywordstyle=[2]\color{red} \ttfamily,
         keywordstyle =[3]\color{prune} \ttfamily,
         %#1
        }
%}{}
%%%%%%%%% Fin Code Latex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%écrire le code dans un fichier temporaire puis en le lire avec \lstinputlisting:


\makeatletter
\newwrite{\temp@listing@out}
\newenvironment{code}{%
\immediate\openout\temp@listing@out \jobname-temp.tex
\bgroup\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\temp@listing@out{\the\verbatim@line}%
}%
\verbatim@start}
{\@esphack\egroup
\immediate\closeout \temp@listing@out
\begin{tikzpicture}
    \node [fill=red!10,rectangle,inner xsep=10pt,inner ysep=10pt] (box)
       {\begin{minipage}{\dimexpr\textwidth-21.66pt\relax}
       \lstinputlisting{\jobname-temp.tex}
       \end{minipage}
       };
    \node[text=white,fill=red,rectangle, shading=ball, ball color=red, above right] (title) at ($(box.north west)+(-0.03,0)$){\textbf{CODE}};
    \draw[color=red!50!black,very thick] (box.north west)--(box.south west)--(box.south east);
\end{tikzpicture}

}
\makeatother


\begin{document}

\begin{code}
\catcode`\^=13
\symbol{"23}\symbol{'20}

\makeatletter
\define@cmdkey[EX]{cercle}{r}{} % On déclare le rayon "r"
\define@cmdkey[EX]{cercle}{x}{} % On déclare l'abscisse du centre

$\genfrac{(}{)}{0pt}{0}{n}{p}$

\end{code}

\end{document}


Je l'ai un peu modifié. Cependant il me reste un soucis: comment coloriser un mot particulier de mon listing ?
Exemple : je veux avoir "cercle" en rouge ...

Merci
zariski63
Kilo-utilisateur
 
Messages: 222
Inscription: Jeudi 14 Octobre 2010, 08:20
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: DotBot [Crawler], Google [Bot] et 8 invités