TM_latex/TM.sty.bak

759 lines
25 KiB
Plaintext
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[pageref]{biblatex}
%\usepackage[autocite=plain]{biblatex}
\usepackage{csquotes}
% biblatex est dans un commande pour permettre le choix du style de biblio dans
% le fichier config.tex
\newcommand{\choixstylebiblio}{
\usepackage[backend=biber,sortcites,hyperref=true,backref=true,style=\lestyledebiblio,labeldate=long]{biblatex}
\addbibresource{main.bib}
% Pour permettre une biblio complète (\nocite{•}) en plus des autres
% on ajoute tous les éléments cités dans le texte à la catégorie « cited ».
\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}
}
%\addbibresource{mini.bib}
%\usepackage{multibib} % Plusieurs bibliographies
\usepackage{tocloft} % Pour faire une table des crédits photographiques
% Images
\usepackage{graphicx} % Placement des figures
\usepackage{fix-cm} % Pour avoir des fontes plus grandes que Huge (corr.bug)
\usepackage{epsfig}
\usepackage{float}
\usepackage{pdfpages} % Pour inclure des pdf
% 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
}
% Unités et graphes
\usepackage{siunitx}
\usepackage[siunitx]{gnuplottex} % pour permettre l'utilisation de gnuplot avec siunitx
% Subfig
%\usepackage{subfig} % Pour faire des sous-figures
% Subfigures (attention, subfig est incompatible avec subcaption,
% mais subcaption est bien supporté par hyperref
\usepackage{subcaption}
% Couleurs
\usepackage{color} % Couleurs
\usepackage{xcolor}
% Environnements particuliers
%\usepackage[hyphens]{url} % Urls
\usepackage[hyphens]{url} % Urls
\usepackage{moreverb} % Texte non interprété. Plus complet que verbatim
\usepackage{acronym} % Acronymes
\usepackage{amsmath} % pour divers modules de maths
\usepackage{textcomp}
% Notes de fin de document
\usepackage{enotez}
\setenotez{
reset = true,
backref = true,
totoc = chapter,
split = chapter,
list-style = itemize
}
% 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}%
% }
\usepackage{tocbibind} % Table des matières, liste des figures, liste des tableaux
% dans la table des matières.
% 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
}{}
}
}
}
% Traduction pour le package enotez en fonction de la langue
% Pas besoin d'if car la traduction se fait en fonction de la
% langue choisie pour babel
\DeclareTranslation{French}{enotez-title}{Remarques}
\DeclareTranslation{French}{enotez-splitted-title}{Remarques au <name> <ref>}
\DeclareTranslation{French}{enotez-section}{section}
\DeclareTranslation{French}{enotez-chapter}{chapitre}
\DeclareTranslation{English}{enotez-title}{Notes}
\DeclareTranslation{English}{enotez-splitted-title}{Notes for <name> <ref>}
\DeclareTranslation{English}{enotez-section}{section}
\DeclareTranslation{English}{enotez-chapter}{chapter}
\DeclareTranslation{German}{enotez-title}{Anmerkungen}
\DeclareTranslation{German}{enotez-splitted-title}{Anmerkungen zu <name> <ref>}
\DeclareTranslation{German}{enotez-section}{Abschnitt}
\DeclareTranslation{German}{enotez-chapter}{Kapitel}
%--------------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
%-------------En raison d'erreurs dues à la présence de déclarations de fontes
%-------------obsolètes telles que \rm, remplacée par \rmfamily et qui apparaissent
%-------------au passage de la classe book à scrbook.
\renewcommand{\rm}{\rmfamily}
\renewcommand{\sf}{\sffamily}
\renewcommand{\tt}{\ttfamily}
\renewcommand{\bf}{\bfseries}
\renewcommand{\sc}{\scshape}
%----------------Les éléments de la page de titre------------------------------------------------------------------------------
% Placement de la page de titre.
% - si on compile en postscript, la page de titre est pagetitre.tex dans les pages spéciales.
% - si on compile en latex2pdf et si une page de titre spéciale nommée page_titre.pdf
% n'existe pas, la page de titre est pagetitre.tex.
% - si on compile en latex2pdf et si une page de titre spéciale nommée page_titre.pdf
% existe, alors on l'inclut à la place de la page de titre normale.
\newcommand{\pagetitre}{
\ifthenelse{\boolean{pdf}}{
\IfFileExists{./pagesspeciales/page_titre.pdf}{
\includepdf{pagesspeciales/page_titre.pdf}
}{
\ifthenelse{\equal{\typedepagetitre}{defautpagetitre}}{\include{pagesspeciales/pagetitre}}{}
\ifthenelse{\equal{\typedepagetitre}{imagepagetitre}}{\include{pagesspeciales/pagetitreimage}}{}
}
}{
\ifthenelse{\equal{\typedepagetitre}{defautpagetitre}}{\include{pagesspeciales/pagetitre}}{}
\ifthenelse{\equal{\typedepagetitre}{imagepagetitre}}{\include{pagesspeciales/pagetitreimage}}{}
}
}
% 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}
}
\cleardoublepage
\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}
% Liste des tables
\newcommand{\listetbl}{
\ifthenelse{\isundefined{\unelistetbl}}{
\ifthenelse{\isundefined{\titrelistedestables}}{
}
{\renewcommand{\listtablename}{\titrelistedestables}}
\cleardoublepage
\listoftables % liste des tables (fichier .lot)
}
}
% Liste des crédits photographiques
% En raison d'une limitation du nombre de listes par LaTeX qui donnait l'erreur
% "no room for a \string", les crédits photographiques ont été déplacé dans les
% notes de fin. À l'appel d'une commande de figure, une note de fin de document
% est créée contenant le paramètre #5 de la fonction \credit. Une commande \url
% peut y être placée et hyperref en tiendra compte.
% 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}}
\cleardoublepage
\lstlistoflistings % liste des listings (fichier .lol)
\addcontentsline{toc}{chapter}{\lstlistlistingname}
}
}
% 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}}{}
}
% ``<name> <ref>'' is a placeholder for e.g. ``section 1'':
% Page de note de fin (probablement non fonctionnel avec enotez
% mais laissé au cas où endnotes serait le paquet choisi.
\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}}{}{
%\cleardoublepage
\printindex
%\addcontentsline{toc}{chapter}{\indexname}
}
}
% Pages d'annexes
\newcommand{\annexes}{
\ifthenelse{\isundefined{\lesannexes}}{
\ifthenelse{\equal{\lalangue}{english}}
{\newcommand{\entetedannexe}{Appendix}}
{\ifthenelse{\equal{\lalangue}{deutch}}
{\newcommand{\entetedannexe}{Anhang}}
{\newcommand{\entetedannexe}{Annexe}}
}
\renewcommand\chaptername{\entetedannexe}
\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 de la bibliographie web et de son titre
%\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[#3]{\label{#4} #3 \endnote{\protect #5}}
\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é
\ifthenelse{\boolean{pdf}}{
\pdftrue % on compile en pdflatex
\pdfcompresslevel=9 % niveau de compression pour le texte et les images ;
\DeclareGraphicsExtensions{.pdf,.jpg,.png}
}{
\pdffalse
\DeclareGraphicsExtensions{.eps}
}
% Ce code permet de ne pas activer hyperref si le choix de la fortie papier est
% fait dans la configuration (config.tex), d'activer hyperref pour pdflatex si
% les images sont .pdf, .jpg ou .png ou d'activer hyperref pour LaTeX-dvi si les
% images sont en eps.
\newcommand{\choixsortie}{
\ifthenelse{\not\isundefined{\laversionpdf}}{
\ifthenelse{\boolean{pdf}}{
\usepackage[pdftex]{hyperref}
\hypersetup{
breaklinks=true,
plainpages=false,
colorlinks=true,
%pdfborder={0 0 0},
linkcolor=blue,
citecolor=blue,
urlcolor=blue
}
}{
%\usepackage{xcolor}
% pagebackref ne doit pas être dans hypersetup
\usepackage[dvips,ps2pdf]{hyperref}
%\usepackage{hyperref}
\hypersetup{
breaklinks=true,
plainpages=false,
colorlinks=true,
linkcolor=blue,
citecolor=blue,
urlcolor=blue,
hypertexnames=true
}
%\usepackage{hypdvips}
\usepackage[hyphenbreaks]{breakurl}
%\urlstyle{sf}
}
}{}
}
% Commandes de styles de bibliographie
\newcommand{\ressources}{
\ifthenelse{\equal{\lalangue}{english}}
{\newcommand{\lesressources}{Books}
\newcommand{\lesressourcesenligne}{Online resources}}
{\ifthenelse{\equal{\lalangue}{deutch}}
{\newcommand{\lesressources}{Bücher}
\newcommand{\lesressourcesenligne}{Online Ressourcen}}
{\newcommand{\lesressources}{Livres}
\newcommand{\lesressourcesenligne}{Ressources en ligne}}
}
}
\newcommand{\choixstyledebiblio}{
\bibliographystyle{\lestyledebiblio}
}
% 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
% --------------------------------------------------------
}