TM_latex/TM.sty

620 lines
20 KiB
Plaintext
Raw Normal View History

2014-03-10 20:39:05 +01:00
%-------------------------------------------------------------------------------
% 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
2014-03-10 20:39:05 +01:00
\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
2015-12-31 00:04:42 +01:00
\usepackage{emptypage}
\usepackage{nextpage} % Permet \cleartooddpage, \cleartoevenpage et \cleartooddpage[\thispagestyle{empty}]
2014-03-10 20:39:05 +01:00
\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}
2015-12-31 00:04:42 +01:00
\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)
2014-03-10 20:39:05 +01:00
%\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
2015-12-31 00:04:42 +01:00
\usepackage{textcase} % Mettre en majuscule ou minuscule sans bugs
2014-03-10 20:39:05 +01:00
% Listings
2015-12-31 00:04:42 +01:00
\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
2014-03-10 20:39:05 +01:00
% Couleurs
\usepackage{color} % Couleurs
% Environnements particuliers
\usepackage[hyphens]{url} % Urls
2014-03-10 20:39:05 +01:00
\usepackage{moreverb} % Texte non interprété. Plus complet que verbatim
\usepackage{acronym} % Acronymes
2017-12-06 20:56:07 +01:00
\usepackage{amsmath} % pour divers modules de maths
2014-03-10 20:39:05 +01:00
2015-12-31 00:04:42 +01:00
% Notes de fin de document
2014-03-10 20:39:05 +01:00
\usepackage{endnotes}
2015-12-31 00:04:42 +01:00
% 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}%
}
2014-03-10 20:39:05 +01:00
% Divers
\usepackage{ifthen} % Tests
2015-12-31 00:04:42 +01:00
\usepackage{ifdraft} % Tests sur la présence de draft dans le documentclass
2014-03-10 20:39:05 +01:00
\usepackage{calc} % Calculs avec latex
%\usepackage{eurosym} % Symbole euro
\usepackage{comment} % Commentaires sur plusieurs lignes
\usepackage{shapepar} % Justification du texte selon une forme
2015-12-31 00:04:42 +01:00
\usepackage{lipsum}
2014-03-10 20:39:05 +01:00
\usepackage{makeidx} % pour permettre de construire un index
2015-12-31 00:04:42 +01:00
\makeindex
% Reste à faire
\usepackage[obeyDraft]{todonotes}
2014-03-10 20:39:05 +01:00
%--------------Gestion des langues------------------------------------------------------
2015-12-31 00:04:42 +01:00
\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
}{}
}
}
}
2014-03-10 20:39:05 +01:00
%--------------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}}}
2014-03-10 20:39:05 +01:00
\begin{tabular}{lcr} \hline
\ifthenelse{\isundefined{\leslogos}}{
2015-12-31 00:04:42 +01:00
\multirow{5}{*}{\includegraphics[height=1cm]{logo1}} & & \multirow{5}{*}{\includegraphics[height=1cm]{logo2}} \\
}{\\}
& \oc & \\
2015-12-31 00:04:42 +01:00
& \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} & \\
2014-03-10 20:39:05 +01:00
& & \\
\end{tabular}
}
%-------------------Les différentes pages---------------------------------------------------------
% Définit le style des entête et pieds de page.
2015-12-31 00:04:42 +01:00
\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}
}
2014-03-10 20:39:05 +01:00
\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}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unepensee}}{\include{pagesspeciales/citations}}
2014-03-10 20:39:05 +01:00
}
% Page de préambule/dédicace/remerciements
\newcommand{\dedicace}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unededicace}}{\include{pagesspeciales/remerciements}}
2014-03-10 20:39:05 +01:00
}
% Page de résumé
\newcommand{\resume}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unresume}}{\include{pagesspeciales/resume}}
2014-03-10 20:39:05 +01:00
}
% Liste des figures
\newcommand{\listefig}{
2015-12-31 00:04:42 +01:00
\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)
}
2014-03-10 20:39:05 +01:00
}
% Commande de crédit photographique
2015-12-31 00:04:42 +01:00
\newcommand{\listcreditsname}{\textnormal{Crédits photographiques}}
2014-03-10 20:39:05 +01:00
\newlistof{credits}{exp}{\listcreditsname}
\newcommand{\credit}[1]{%
\refstepcounter{credits}
\addcontentsline{exp}{credits}
{\protect\numberline{\thefigure } #1}\par}
% Crédits photographiques
\newcommand{\listecredits}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unelistecredits}}{
2014-03-10 20:39:05 +01:00
\listofcredits % liste des crédits photographiques
2015-12-31 00:04:42 +01:00
\cleartooddpage
}
2014-03-10 20:39:05 +01:00
}
% Liste des tables
\newcommand{\listetbl}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unelistetbl}}{
\ifthenelse{\isundefined{\titrelistedestables}}{
}
{\renewcommand{\listtablename}{\titrelistedestables}}
2014-03-10 20:39:05 +01:00
\newpage
2015-12-31 00:04:42 +01:00
\addcontentsline{toc}{chapter}{\listtablename}
2014-03-10 20:39:05 +01:00
\listoftables % liste des tables (fichier .lot)
2015-12-31 00:04:42 +01:00
}
2014-03-10 20:39:05 +01:00
}
% Liste des listings
\newcommand{\listelst}{
2015-12-31 00:04:42 +01:00
\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}}
2014-03-10 20:39:05 +01:00
\newpage
2015-12-31 00:04:42 +01:00
\addcontentsline{toc}{chapter}{\lstlistlistingname}
2014-03-10 20:39:05 +01:00
\lstlistoflistings % liste des listings (fichier .lol)
2015-12-31 00:04:42 +01:00
}
2014-03-10 20:39:05 +01:00
}
% Liste des acronymes
\newcommand{\acronyme}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unacronyme}}{\include{pagesspeciales/acronymes}}{}
2014-03-10 20:39:05 +01:00
}
% Page de licence
\newcommand{\licence}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unelicence}}{\include{pagesspeciales/licence}}{}
2014-03-10 20:39:05 +01:00
}
% Page de site officiel
\newcommand{\site}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unsite}}{\include{pagesspeciales/website}}{}
2014-03-10 20:39:05 +01:00
}
% Page de cdrom officiel
\newcommand{\cdrom}{
2015-12-31 00:04:42 +01:00
\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
}
2014-03-10 20:39:05 +01:00
}
2015-12-31 00:04:42 +01:00
% Page d'index
2014-03-10 20:39:05 +01:00
\newcommand{\lindex}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\unindex}}{
\addcontentsline{toc}{chapter}{\indexname}
\printindex}{}
2014-03-10 20:39:05 +01:00
}
% Pages d'annexes
\newcommand{\annexes}{
2015-12-31 00:04:42 +01:00
\ifthenelse{\isundefined{\lesannexes}}{\touteslesannexes}
2014-03-10 20:39:05 +01:00
}
%------------------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]
2015-12-31 00:04:42 +01:00
{%\ifthenelse{\equal{#1}{}}{\typein{A reference is missing !}}%
\sbox\Citname{\emph{#1}}%
2014-03-10 20:39:05 +01:00
\refstepcounter{Citctr}\begin{description}
\item[Citation \arabic{Citctr}]}
{\hspace*{\fill}\nolinebreak[1]%
\quad\hspace*{\fill}%
\finalhyphendemerits=0
2015-12-31 00:04:42 +01:00
\usebox{\Citname}\end{description}
}
2014-03-10 20:39:05 +01:00
%------------------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)
}{}
}
}
}
2014-03-10 20:39:05 +01:00
\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}
}{}
}
}
}
2014-03-10 20:39:05 +01:00
\newcommand{\online}{[online]}
2015-12-31 00:04:42 +01:00
% Impression d'un filigrane de version provisoire.
2014-03-10 20:39:05 +01:00
% Prints your review date and 'Draft Version' (From Josullvn, CS, CMU)
% Seems no to work properly on Linux. On Windows OK !
2015-12-31 00:04:42 +01:00
% Ai retiré la date, car les accents étaient mal traduits malgré babel.
% Mais la date provisoire est définie sur la page de titre.
2014-03-10 20:39:05 +01:00
\newcommand{\reviewtimetoday}[2]{\special{!userdict begin
/bop-hook{gsave 20 710 translate 45 rotate 0.8 setgray
2015-12-31 00:04:42 +01:00
/Times-Roman findfont 18 scalefont setfont 0 0 moveto () show
2014-03-10 20:39:05 +01:00
0 -12 moveto (#2) show grestore}def end}}
2015-12-31 00:04:42 +01:00
\newcommand{\draftoufinal}{
\ifdraft{
\ifthenelse{\equal{\lalangue}{english}}{
\reviewtimetoday{\today}{* Draft Version *}
}{
\ifthenelse{\equal{\lalangue}{deutch}}{
\reviewtimetoday{\today}{* Draft *}
}{
\reviewtimetoday{\today}{* Version provisoire *}
}
}
}
}
2014-03-10 20:39:05 +01:00
% 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
% --------------------------------------------------------
}