TM_latex/TM.sty
2018-02-04 23:05:16 +01:00

620 lines
20 KiB
TeX
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%-------------------------------------------------------------------------------
% Module créé par Vincent Guyot pour définir un modèle de travail de maturité
% Mis à jour le 2 février 2012
% Ce fichier est soumis à la licence libre GFDL dont on peut trouver
% les conditions sur le net.
%--------------------------------------------------------------------------------
\ProvidesPackage{TM}
% Définitions générales
\usepackage[german,english,french]{babel} % Gestion de la typographie française
\usepackage[utf8]{inputenc} % Accents
%\usepackage[OT1]{fontenc} % Encodage
\usepackage[T1]{fontenc} % Encodage
% Géométrie de la page
\usepackage{geometry}
%\geometry{verbose,a4paper,lmargin=2cm,rmargin=2cm} % règle les marges de la page
% Structure du document
\usepackage{emptypage}
\usepackage{nextpage} % Permet \cleartooddpage, \cleartoevenpage et \cleartooddpage[\thispagestyle{empty}]
\usepackage[Lenny]{fncychap} % Titres de chapitres avec un filet
\usepackage{fancybox} % Styles de filets de boites
%\usepackage{fancyheadings} % Entêtes et pieds de page
\usepackage{fancyhdr}
\fancypagestyle{plain}{%
\fancyhf{} % clear all header and footer fields
\fancyfoot[C]{\bfseries \thepage} % except the center
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\setlength{\headheight}{22.5pt} % pour éliminer une erreur qui disait que la largeur de l'entête était trop petite (12pt)
%\usepackage{minitoc} % Minitable des matières des chapitres
\usepackage{layout} % Redéfinition des caractéristiques de la page
\usepackage{setspace} % Interligne du document
% Bibliographie
\usepackage{multibib} % Plusieurs bibliographies
\usepackage{tocloft} % Pour faire une table des crédits photographiques
% Images
\usepackage{graphicx} % Placement des figures
\usepackage{epsfig}
% Tableaux
\usepackage{longtable}
\usepackage{multirow} % Fusion des lignes d'un tableau
\usepackage{longtable} % Longues tables
\usepackage{tabularx} % Tableaux
\usepackage{rotating} % Rotation
\usepackage{lscape} % En format paysage
% Listes
\usepackage{paralist} % Divers styles de listes
\usepackage{textcase} % Mettre en majuscule ou minuscule sans bugs
% Listings
\usepackage{listings} % Listings et sa configuration pour les accents dans le code
%\lstloadlanguages{Python}
%\lstset{language=Python,escapechar=|}
\lstset{literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{}{{\EUR}}1 {£}{{\pounds}}1
}
% Subfig
\usepackage{subfig} % Pour faire des sous-figures
% Couleurs
\usepackage{color} % Couleurs
% Environnements particuliers
\usepackage[hyphens]{url} % Urls
\usepackage{moreverb} % Texte non interprété. Plus complet que verbatim
\usepackage{acronym} % Acronymes
\usepackage{amsmath} % pour divers modules de maths
% Notes de fin de document
\usepackage{endnotes}
% Notes de bas de page
\renewcommand{\thefootnote}{\alph{footnote}} % pour mettre les notes de bas de page en alphabétique
\renewcommand{\enoteheading}{% Redéfinit les entêtes de notes
\chapter{\notesname}% Redéfinit le titre des notes comme chapitre
%\newcommand{\titreheaderendnotes}{\MakeUp­per­case{\notesname}}
%\markboth{NOTES FINALES}{NOTES FINALES}%
}
% Divers
\usepackage{ifthen} % Tests
\usepackage{ifdraft} % Tests sur la présence de draft dans le documentclass
\usepackage{calc} % Calculs avec latex
%\usepackage{eurosym} % Symbole euro
\usepackage{comment} % Commentaires sur plusieurs lignes
\usepackage{shapepar} % Justification du texte selon une forme
\usepackage{lipsum}
\usepackage{makeidx} % pour permettre de construire un index
\makeindex
% Reste à faire
\usepackage[obeyDraft]{todonotes}
%--------------Gestion des langues------------------------------------------------------
\newcommand{\choixdelalangue}{
\ifthenelse{\equal{\lalangue}{francais}}{
\selectlanguage{french} % Gestion de la typographie française
}{
\ifthenelse{\equal{\lalangue}{english}}{
\selectlanguage{english} % Gestion de la typographie anglaise
}{
\ifthenelse{\equal{\lalangue}{deutch}}{
\selectlanguage{german} % Gestion de la typographie allemande
}{}
}
}
}
%--------------Définition des fontes-----------------------------------------------------------------------------------------------
% Choisissez la fonte que vous désirez : \usefont{encoding}{family}{series}{shape}
\newcommand{\courrier}{\fontfamily{pcr}\selectfont}
\newcommand{\helv}{\fontfamily{phv}\selectfont}
\newcommand{\helvbold}{\fontfamily{phv}\fontseries{b}\selectfont}
%\newcommand{\helv}{\fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont}
%\newcommand{\helv}{\fontfamily{phv}}\selectfont}
\newcommand{\palatino}{\fontfamily{ppl}\selectfont}
\newcommand{\cmdunhill}{\usefont{OT1}{cmdh}{m}{n}} % computer modern dunhill
%----------------Les éléments de la page de titre------------------------------------------------------------------------------------
% La date du travail
\newcommand{\workdate}{\workdatemonth~\workdateyear}
% Titre du travail
\newcommand{\theworktitle}{
\begin{Huge}
{\sf \worktitle \\}
\end{Huge}
\vspace{0.2cm}%
\ifthenelse{\equal{\worksubtitle}{}}{}{\begin{Large} {\sf \worksubtitle} \end{Large}}%
}
% Pied de page
\newcommand{\titlepagefooter}{
\ifthenelse{\equal{\loption}{Atelier interdisciplinaire} \or \equal{\loption}{Interdisciplinary workshop} \or \equal{\loption}{Interdisziplinärer Arbeitsgruppe}}{\newcommand{\oc}{\loption}}{\newcommand{\oc}{\loption{} \textsc{\domaine}}}
\begin{tabular}{lcr} \hline
\ifthenelse{\isundefined{\leslogos}}{
\multirow{5}{*}{\includegraphics[height=1cm]{logo1}} & & \multirow{5}{*}{\includegraphics[height=1cm]{logo2}} \\
}{\\}
& \oc & \\
& \ifthenelse{\isundefined{\ecole}}
{\ifthenelse{\equal{\lalangue}{english}}
{\newcommand{\ecole}{Blaise-Cendrars high school}\ecole}
{\ifthenelse{\equal{\lalangue}{deutch}}
{\newcommand{\ecole}{Gymnasium Blaise Cendrars}\ecole}
{\newcommand{\ecole}{Lycée Blaise-Cendrars}\ecole}
}
}{\ecole} & \\
& \ifthenelse{\isundefined{\adressedelecole}}
{\ifthenelse{\equal{\lalangue}{english}}
{\newcommand{\adressedelecole}{La Chaux-de-Fonds (Switzerland)}%
\adressedelecole}
{\ifthenelse{\equal{\lalangue}{deutch}}
{\newcommand{\adressedelecole}{La Chaux-de-Fonds (Schweiz)}%
\adressedelecole}
{\newcommand{\adressedelecole}{La Chaux-de-Fonds (Suisse)}%
\adressedelecole}
}
}{\adressedelecole} & \\
& & \\
\end{tabular}
}
%-------------------Les différentes pages---------------------------------------------------------
% Définit le style des entête et pieds de page.
\fancypagestyle{videavecpage}{%
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
}
\fancypagestyle{videsanspage}{%
\fancyhead{}
\fancyfoot{}
\renewcommand{\headrulewidth}{0pt}
}
\fancypagestyle{laposteface}{%
\fancyhf{}
\renewcommand{\chaptermark}[1]{\markboth{\uppercase{##1}}{}}
\fancyhead[RE,LO,LE,RO]{\leftmark}
\renewcommand{\headrulewidth}{0pt}
}
\pagestyle{fancy}
% Retire le filet sous l'entête
\renewcommand{\headrulewidth}{0pt}
% Profondeur de la table des matières
\setcounter{tocdepth}{5}
% Page de pensée ou de citations
\newcommand{\pensee}{
\ifthenelse{\isundefined{\unepensee}}{\include{pagesspeciales/citations}}
}
% Page de préambule/dédicace/remerciements
\newcommand{\dedicace}{
\ifthenelse{\isundefined{\unededicace}}{\include{pagesspeciales/remerciements}}
}
% Page de résumé
\newcommand{\resume}{
\ifthenelse{\isundefined{\unresume}}{\include{pagesspeciales/resume}}
}
% Liste des figures
\newcommand{\listefig}{
\ifthenelse{\isundefined{\unelistefig}}{
\ifthenelse{\isundefined{\titrelistedesfigures}}{
\ifthenelse{\equal{\lalangue}{francais}}{
\renewcommand{\listfigurename}{Liste des figures}}{}
}{
\renewcommand{\listfigurename}{\titrelistedesfigures}
}
\newpage
\addcontentsline{toc}{chapter}{\listfigurename}
\listoffigures % liste des figures (fichier .lof)
}
}
% Commande de crédit photographique
\newcommand{\listcreditsname}{\textnormal{Crédits photographiques}}
\newlistof{credits}{exp}{\listcreditsname}
\newcommand{\credit}[1]{%
\refstepcounter{credits}
\addcontentsline{exp}{credits}
{\protect\numberline{\thefigure } #1}\par}
% Crédits photographiques
\newcommand{\listecredits}{
\ifthenelse{\isundefined{\unelistecredits}}{
\listofcredits % liste des crédits photographiques
\cleartooddpage
}
}
% Liste des tables
\newcommand{\listetbl}{
\ifthenelse{\isundefined{\unelistetbl}}{
\ifthenelse{\isundefined{\titrelistedestables}}{
}
{\renewcommand{\listtablename}{\titrelistedestables}}
\newpage
\addcontentsline{toc}{chapter}{\listtablename}
\listoftables % liste des tables (fichier .lot)
}
}
% Liste des listings
\newcommand{\listelst}{
\ifthenelse{\isundefined{\unelistelst}}{
\ifthenelse{\isundefined{\titrelistedescodes}}{
\ifthenelse{\equal{\lalangue}{english}}{
\renewcommand{\lstlistlistingname}{Listings}}
{\ifthenelse{\equal{\lalangue}{deutch}}{
\renewcommand{\lstlistlistingname}{Liste der Quellcodes}}
{\renewcommand{\lstlistlistingname}{Liste des codes sources}}
}
}{\renewcommand{\lstlistlistingname}{\titrelistedescodes}}
\newpage
\addcontentsline{toc}{chapter}{\lstlistlistingname}
\lstlistoflistings % liste des listings (fichier .lol)
}
}
% Liste des acronymes
\newcommand{\acronyme}{
\ifthenelse{\isundefined{\unacronyme}}{\include{pagesspeciales/acronymes}}{}
}
% Page de licence
\newcommand{\licence}{
\ifthenelse{\isundefined{\unelicence}}{\include{pagesspeciales/licence}}{}
}
% Page de site officiel
\newcommand{\site}{
\ifthenelse{\isundefined{\unsite}}{\include{pagesspeciales/website}}{}
}
% Page de cdrom officiel
\newcommand{\cdrom}{
\ifthenelse{\isundefined{\uncdrom}}{\include{pagesspeciales/cdrom}}{}
}
% Page de note de fin
\newcommand{\notesdefin}{
\ifthenelse{\isundefined{\lesnotesdefin}}{
\ifthenelse{\isundefined{\titrelistedesnotesdefin}}{
\ifthenelse{\equal{\lalangue}{english}}{
\renewcommand\notesname{Endnotes}
}{\ifthenelse{\equal{\lalangue}{deutch}}{
\renewcommand\notesname{Endnoten}
}{\renewcommand\notesname{Notes finales}}
}
}{\renewcommand\notesname{\titrelistedesnotesdefin}}
\theendnotes
\cleartooddpage
}
}
% Page d'index
\newcommand{\lindex}{
\ifthenelse{\isundefined{\unindex}}{
\addcontentsline{toc}{chapter}{\indexname}
\printindex}{}
}
% Pages d'annexes
\newcommand{\annexes}{
\ifthenelse{\isundefined{\lesannexes}}{\touteslesannexes}
}
%------------------Les chapitres-------------------------------------------------------
\newcommand{\leschapitres}{
\ifthenelse{\not{\equal{\nbchap}{}}}{
\newcounter{comptechap}
\def\StartValue{1}
\def\MaxValue{\nbchap}
\setcounter{comptechap}{\StartValue}
\whiledo{\not{\value{comptechap}>\MaxValue}}{
\include{chapitres/chapter\thecomptechap}
\stepcounter{comptechap}
}
}{}
}
%------------------Les annexes-------------------------------------------------------
\newcommand{\touteslesannexes}{
\ifthenelse{\not{\equal{\nbannexes}{}}}{
\newcounter{compteannexes}
\def\StartValue{1}
\def\MaxValue{\nbannexes}
\setcounter{compteannexes}{\StartValue}
\whiledo{\not{\value{compteannexes}>\MaxValue}}{
\include{chapitres/annexe\thecompteannexes}
\stepcounter{compteannexes}
}
}{}
}
%------------------Environnements-----------------------------------------
% Redéfinition de l'environnement de citations
\newcounter{Citctr} \newsavebox{\Citname}
\newenvironment{Citation}[1]
{%\ifthenelse{\equal{#1}{}}{\typein{A reference is missing !}}%
\sbox\Citname{\emph{#1}}%
\refstepcounter{Citctr}\begin{description}
\item[Citation \arabic{Citctr}]}
{\hspace*{\fill}\nolinebreak[1]%
\quad\hspace*{\fill}%
\finalhyphendemerits=0
\usebox{\Citname}\end{description}
}
%------------------Commandes diverses------------------------------------------
% Redéfinition de la commande \url
\renewcommand\url{\begingroup \small \urlstyle{sf}\Url}
% Commande pour les urls dans la bibliographie des sites web
% Par exemple \biburl{http://www.cvgg.org/}{1}{January}{2012}
\newcommand{\lastVisited}[3]{
\ifthenelse{\equal{\lalangue}{francais}}{
(dernière consultation le #1 #2 #3)
}{
\ifthenelse{\equal{\lalangue}{english}}{
(last consulted on #2 #1, #3)
}{
\ifthenelse{\equal{\lalangue}{deutch}}{
(letzte Konsultation zu #1 #2 #3)
}{}
}
}
}
\newcommand{\biburl}[4]{{\apath{#1} \lastVisited{#2}{#3}{#4}}}
% Par exemple \biburlarticle{http://www.cvgg.org/article.html}{14}{juillet}{2012}
\newcommand{\biburlarticle}[4]{[Obtenu le #2 #3 #4 de {\small\apath{#1}}]}
% Définition du titre de la bibliographie web
\newcommand{\titredelabiblioweb}{
\ifthenelse{\equal{\lalangue}{francais}}{
\newcites{web}{Sites web}
}{
\ifthenelse{\equal{\lalangue}{english}}{
\newcites{web}{Websites}
}{
\ifthenelse{\equal{\lalangue}{deutch}}{
\newcites{web}{Webseiten}
}{}
}
}
}
\newcommand{\online}{[online]}
% Impression d'un filigrane de version provisoire.
% Prints your review date and 'Draft Version' (From Josullvn, CS, CMU)
% Seems no to work properly on Linux. On Windows OK !
% Ai retiré la date, car les accents étaient mal traduits malgré babel.
% Mais la date provisoire est définie sur la page de titre.
\newcommand{\reviewtimetoday}[2]{\special{!userdict begin
/bop-hook{gsave 20 710 translate 45 rotate 0.8 setgray
/Times-Roman findfont 18 scalefont setfont 0 0 moveto () show
0 -12 moveto (#2) show grestore}def end}}
\newcommand{\draftoufinal}{
\ifdraft{
\ifthenelse{\equal{\lalangue}{english}}{
\reviewtimetoday{\today}{* Draft Version *}
}{
\ifthenelse{\equal{\lalangue}{deutch}}{
\reviewtimetoday{\today}{* Draft *}
}{
\reviewtimetoday{\today}{* Version provisoire *}
}
}
}
}
% Entête et pied de page
\renewcommand{\chaptermark}[1]{ % pour avoir Chapter 1. Introduction
\markboth{\chaptername\
\thechapter.\ #1}{}}
\renewcommand{\sectionmark}[1]{ % pour avoir 1.2. Strucutre du document
\markright{\thesection.\ #1}{}}
%\lhead[\fancyplain{} \rmfamily \thepage]{\fancyplain{} \itshape \rightmark}
%\lhead[\fancyplain{} \itshape \rightmark]{\fancyplain{} \itshape \rightmark}
%\chead{}
%\rhead[\fancyplain{} \itshape \leftmark]{\fancyplain{} \rmfamily \thepage}
%\rhead{}
\fancyhead[RO,LE]{\fancyplain{} \itshape \rightmark}
\fancyfoot[C]{\fancyplain{} \rmfamily \thepage}
%\lfoot{}
%\cfoot{}
%\cfoot[\fancyplain{} \rmfamily \thepage]{\fancyplain{} \rmfamily \thepage}
%\rfoot{}
% Pour les énumérations à l'intérieur d'un paragraphe, par exemple, "il y a trois possibilités :
% (i) blabla1 (ii) blabla2 (iii) blabla3"
\newenvironment{sinparaenum}%
{\begin{inparaenum}[\itshape(i)\upshape]}%
{\end{inparaenum}}
%-------------Les figures---------------------------------------------------
% Dimensions des figures insérées.
\newlength{\bigfigurewidth}
\setlength{\bigfigurewidth}{0.96\textwidth}
\newlength{\normalfigurewidth}
\setlength{\normalfigurewidth}{0.77\textwidth}
\newlength{\smallfigurewidth}
\setlength{\smallfigurewidth}{0.57\textwidth}
\newlength{\tinyfigurewidth}
\setlength{\tinyfigurewidth}{0.27\textwidth}
% La structure pour insérer les figures.
\newcommand{\tmfigure}[5]{
\begin{figure} [t]
\begin{center}
\includegraphics[width=#2]{#1}
\caption{\label{#4} #3}
\credit{#5}
\end{center}
\end{figure}
}
% Quatre types de figures sont possibles : grande (B), normale (N), petite (S) et très petite (T).
\newcommand{\tmfigureB}[4]{\tmfigure{#1}{\bigfigurewidth}{#2}{#3}{#4}}
\newcommand{\tmfigureN}[4]{\tmfigure{#1}{\normalfigurewidth}{#2}{#3}{#4}}
\newcommand{\tmfigureS}[4]{\tmfigure{#1}{\smallfigurewidth}{#2}{#3}{#4}}
\newcommand{\tmfigureT}[4]{\tmfigure{#1}{\tinyfigurewidth}{#2}{#3}{#4}}
%----------------Les références-----------------------------------------------------------------
% Commande pour référencer les figures
% Je préfère sans le mot 'figure' automatiquement devant car on peut devoir le mettre au pluriel
\newcommand{\figref}[1]{\ref{#1}}
% Commande pour référencer les tables
\newcommand{\tableref}[1]{\ref{#1}}
% Commande pour référencer les codes
\newcommand{\listingref}[1]{\ref{#1}}
%----------------Le code en ligne-------------------------------------------------------------
% On peut utiliser cette commande pour le code en ligne
%\newcommand{\src}[1]{\begin{sf}\small{#1}\end{sf}}
\newcommand\src[1]{{\helv{\footnotesize{#1}}}} % le code source est mis en Helvetica
% Une meilleures solution pourrait être :
% \newcommand{\src}[1]{\listinline!#1!}
% Finalement, il est plus simple de mettre directement : \lstinline|code|
\newcommand\footsrc[1]{{\helv{\scriptsize{#1}}}} % le code source est mis en Helvetica - dans les notes de bas de page
% On peut utiliser cette commande pour les url, chemins, ...
\newcommand{\apath}[1]{\url{#1}}
\newcommand*{\indexsection}[1]{%
\ifx\empty#1\empty\else
\hspace{0pt plus 2fil}{{\sectfont #1}}\hspace{0pt plus
1fil}\nopagebreak
\fi
}
% Pour mettre le texte entre guillemets. Par exemple : \squote{de facto}
\newcommand{\squote}[1]{``#1''}
% Définition et configuration de l'environnement listings
\definecolor{listinggray}{gray}{0.9}
\definecolor{commentgreen}{rgb}{0,0.7,0}
\lstset {
showstringspaces=false,
frame=none,
extendedchars=true,
basicstyle=\normalfont\helv\footnotesize,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
stepnumber=2,
language=Java,
breaklines,
tabsize=2,
backgroundcolor=\color{listinggray},
rulecolor=\color{blue},
linewidth=\linewidth,
keywordstyle=\bfseries\color{blue},
commentstyle=\color{commentgreen},
captionpos=b,
abovecaptionskip=\medskipamount,
belowcaptionskip=\medskipamount,
escapeinside={(*@}{@*)},
}
% Ce code permet de compiler avec latex ou pdflatex en changeant le suffix du nom
% de fichier des figures :
%.eps si latex est utilisé et .pdf, .jpg ou .png si pdflatex est utilisé
%%%%%%%%%% Attention, j'ai rajouté les lignes : \ifnum\pdfoutput=0 \pdffalse \else pour corriger le fait qu'il ne choisissait pas
%%%%%%%%%% les eps à la compilation latex
\newif\ifpdf
\ifx\pdfoutput\undefined
\pdffalse % on ne compile pas en pdflatex
\DeclareGraphicsExtensions{.eps} \else
\ifnum\pdfoutput=0
\pdffalse
\else
\pdfoutput=1 % on compile en pdflatex
\pdfcompresslevel=9 % niveau de compression pour le texte et les images ;
\pdftrue \DeclareGraphicsExtensions{.pdf,.jpg,.png} \fi
\ifpdf
%%% passer les références en lien
%\usepackage[pdftex,pagebackref=true,plainpages=false,colorlinks=false,pdfborder=0]{hyperref}
\usepackage[pdftex,pagebackref=true,plainpages=false,colorlinks=true,pdfborder=0,linkcolor=blue, citecolor=blue, urlcolor=blue]{hyperref}
%plainpages=false: activer les liens même si la numérotation est réinitialisée après le titre
%autres options... backref, pagebackref (liens en retour de l'index vers les chapitres/pages) urlcolor=blue,citecolor=red
\else
\fi
% Définition des valeurs de pénalités pour éléminer les coupures de premières et dernières lignes de page.
\clubpenalty=9999
\widowpenalty=9999
\newcommand{\corrbug}{
% --------------------------------------------------------
% Correction d'un petit bug de listings qui mène sans cela à un : Undefined control sequence. \lstlistoflistings
\makeatletter
\@ifundefined{float@listhead}{}{%
\renewcommand*{\lstlistoflistings}{%
\begingroup
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\float@listhead{\lstlistlistingname}%
\setlength{\parskip}{\z@}%
\setlength{\parindent}{\z@}%
\setlength{\parfillskip}{\z@ \@plus 1fil}%
\@starttoc{lol}%
\if@restonecol\twocolumn\fi
\endgroup
}%
}
\makeatother
% --------------------------------------------------------
}