En lisant la documentation de algorithm2e et en m'inspirant de ce fil, j'ai écrit cet exemple d'algorithme :
Code : Tout sélectionner
\documentclass[11pt,a4paper]{book}
\usepackage{geometry}
\geometry{a4paper,textheight=26cm,textwidth=19cm,hcentering,top=1cm,footnotesep=.5cm}
\pagestyle{empty}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
%------algorithm2e---------
\usepackage[linesnumbered,french,commentsnumbered]{algorithm2e}
\SetAlFnt{\small\sffamily}
\SetAlCapFnt{\tiny \color{red}}
\SetAlCapNameSty{textsl}
\SetAlCapNameFnt{\tiny \color{blue}}
\DontPrintSemicolon
\SetAlgoNoLine
\SetKwComment{tcp}{"}{"}
\SetKw{entrer}{\textcolor{DarkRed}{Entrer}}
\SetKw{afficher}{\textcolor{DarkRed}{Afficher}}
\SetKw{commentaire}{"}
\SetKwIF{si}{sinonsi}{sinon}{\textcolor{DarkRed}{Si}}{\textcolor{DarkRed}{Alors}}{\textcolor{DarkRed}{SinonSi}}{\textcolor{DarkRed}{Sinon}}{\textcolor{DarkRed}{FinSi}}
\SetKwFor{tq}{\textcolor{DarkRed}{TantQue}}{\textcolor{DarkRed}{Faire}}{\textcolor{DarkRed}{FinTantQue}}
%-----couleur fond---------
\usepackage{algpseudocode}
\usepackage{framed}
\usepackage{mdframed}
\usepackage[usenames,dvipsnames,svgnames]{xcolor}
\frenchbsetup{StandardLists=true}
\definecolor{FondNumero}{RGB}{000,255,000}
\definecolor{FondAlgo}{RGB}{255,255,128}
%\definecolor{fond}{RGB}{136,136,136}
%\definecolor{sicolor}{RGB}{128,0,128}
%\definecolor{tantquecolor}{RGB}{221,111,6}
%\definecolor{pourcolor}{RGB}{187,136,0}
%\definecolor{bloccolor}{RGB}{128,0,0}
\newenvironment{cadrecode}{%
\def\FrameCommand{{\color{FondNumero}\vrule width 13pt}\fcolorbox{FondNumero}{FondAlgo}}%
\MakeFramed {\hsize \linewidth \advance\hsize-\width \FrameRestore}\begin{scriptsize}}%
{\end{scriptsize}\endMakeFramed}
\makeatletter
\def\therule{\makebox[\algorithmicindent][l]{\hspace*{.5em}\color{FondNumero} \vrule width 1pt height .75\baselineskip depth .25\baselineskip}}%
\newtoks\therules
\therules={}
\def\appendto#1#2{\expandafter#1\expandafter{\the#1#2}}
\def\gobblefirst#1{#1\expandafter\expandafter\expandafter{\expandafter\@gobble\the#1}}%
\def\Ligne{\State\unskip\the\therules}%
\def\pushindent{\appendto\therules\therule}%
\def\popindent{\gobblefirst\therules}%
\def\printindent{\unskip\the\therules}%
\def\printandpush{\printindent\pushindent}%
\def\popandprint{\popindent\printindent}%
%%------
\parindent=0cm
\newlength{\temp@boite}
\newlength{\saveparindent}
\setlength{\saveparindent}{\parindent}
\def\breakboxparindent{\saveparindent}
\def\encadrement#1{%
\def\bkvz@before@breakbox{\ifhmode\par\fi\vskip5pt\vskip\breakboxskip\relax}%
\fboxrule=0.8pt
\fboxsep=5pt
\def\bkvz@set@linewidth{\advance\linewidth -2\fboxrule
\advance\linewidth -2\fboxsep}%
\def\bkvz@left{\color{black}\vrule \@width\fboxrule\hskip\fboxsep\color{black}}%
\def\bkvz@right{\color{black}\hskip\fboxsep\vrule \@width\fboxrule\color{black}}%
\def\bkvz@top{\hbox to \hsize{%
\color{black}%
\setlength{\temp@boite}{\fboxrule+0.5ex}%
\vrule\@width\fboxrule\@height \temp@boite %
\rule[0.5ex]{2em}{\fboxrule}%
{#1}%
\setlength{\temp@boite}{\linewidth-2em-\widthof{#1}-2\fboxrule}%
\rule[0.5ex]{\temp@boite}{\fboxrule}%
\setlength{\temp@boite}{\fboxrule+0.5ex}%
\vrule\@width\fboxrule\@height \temp@boite}}%
\def\bkvz@bottom{\color{black}\hrule\@height\fboxrule}%
\breakbox\vspace{0pt}}
\def\endencadrement{\vspace{3pt}\endbreakbox}
\makeatother
\newcommand{\cadregrise}[2]{
\colorbox{#1}{
\begin{minipage}[t]{0.8\columnwidth}
\setlength\parindent{0pt}
\smallskip {#2}%
\smallskip \par
\end{minipage}}
\medskip
}
\newenvironment{algo}%
{%
\begin{ttfamily}
\begin{algorithm}[H]
\begin{cadrecode}
}
{%
\end{cadrecode}
\end{algorithm}
\end{ttfamily}
}
\begin{document} %------------------------------------------
\begin{minipage}{10cm}
\begin{algorithm}[H]
\begin{algo}
\tcp*[l]{commentaire 1}
$n \leftarrow 0$ \tcp*[l,f]{commentaire 2}
$u \leftarrow 5$ \;
\tq{$u \leq 100$}{
$n \leftarrow n+1$ \;
$u \leftarrow u*1,2$
}
\afficher{n}
\caption{titre}
\end{algo}
\end{algorithm}
\end{minipage}
\end{document} %--------------------------------------------
J'ai plusieurs questions :
1- Comment faire pour supprimer le "1" qui apparaît sur la gauche de l'algorithme ? D'où vient-il ?
2- Comment faire pour écrire le guillemet droit de la ligne 1 juste après commentaire 1 ?
3- Comment gérer (supprimer/mettre) l'indentation et le trait vertical à gauche du bloc ?
4- Comment gérer l'espace entre le cadre de l'algo et son titre ?
5- Comment définir la couleur des commentaires ?
Merci infiniment !