%%% rapportemac.sty
%%% Copyright 2003 Thomas van Oudenhove de Saint Géry
%%%
%%% Package écrit par Thomas van Oudenhove de Saint Géry (*)
%%%         testé par Jean-Philippe Caruana
%%% 
%%% Ce programme peut être distribué et/ou modifié selon les conditions 
%%% de la 'LaTeX Project Public License' (version 1.2 ou ultérieure).
%%% La dernière version de cette licence est disponible sur :
%%% http://www.latex-project.org/lppl.txt
%%%
%%% En cas d'ajouts de fonctionnalités susceptibles d'intéresser l'auteur,
%%% il serait très sympathique à vous de l'en informer, merci !
%%%
%%% * -> http://perso.enstimac.fr/~vanouden/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% Permet d'obtenir des fonctions pour la mise en page de rapports de
%   stage EMAC :
% \myref -> obtenir une concaténation (francaise) de \ref et \pageref
% \pagedetitre -> obtenir une page de titre
% \pagetitredetail -> page de titre plus détaillée
% modif. de \part[]{} -> \part[]{}{'truc' à inclure}, le truc peut être
%   un bloc de texte (résumé, ...), une image, ...
% et quelques packages sont chargés par défaut (il faut donc vérifier
%   leur disponibilité pour éviter des erreurs)
% s'utilise uniquement avec pdfLaTeX
\ProvidesPackage{rapportemac}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%On charge les packages suivants :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% pour les polices accentuées francaises (avec pdfTeX)
\RequirePackage[latin1]{inputenc}
\RequirePackage[T1]{fontenc}
% pour l'impression taille A4
\RequirePackage{vmargin}
\setpapersize{A4}
%\headheight 20.6pt % en cas de titre long
% pour les nouvelles commandes (espace à la fin)
\RequirePackage{xspace}
% pour avoir des couleurs
\RequirePackage{color}
% configuration de la transformation en PDF
\pdfoutput=1
\RequirePackage[linkcolor=black,citecolor=black,urlcolor=blue,anchorcolor=black,bookmarks=true,plainpages=false]{hyperref}
\pdfcompresslevel=9
% pour gérer l'insertion de figures
\RequirePackage{graphicx}
% pour pouvoir inserer des url en bleu sans serif
\RequirePackage{url}
\urlstyle{sf}
\newcommand\urlcolor[1]{\textcolor{blue}{\url{#1}}}
% Pour différents types de tableaux
\RequirePackage{multirow}
\RequirePackage{tabularx}
\RequirePackage{colortbl}
% pour les entetes et pieds de page
\RequirePackage{fancyhdr}
% pour avoir un symbole euro (\EUR{})
\RequirePackage{marvosym}
%Selection de la langue du document
\RequirePackage[frenchb]{babel}

%%%%%%%Définition des entetes et pieds de page%%%%%%%%%%
\fancyhf{}               %initialise tous les champs dans head et foot
\renewcommand{\headrulewidth}{0.2pt}% met la largeur du trait à 0.2pt
\renewcommand{\footrulewidth}{0.2pt}%
\fancyhead[L]{\footnotesize{\textit{\wtitre}}}%
\fancyfoot[R]{\thepage}% le n° de page en bas a droite
\fancyfoot[C]{\footnotesize{---~\wperiode~---}}% la periode au centre
\fancyfoot[L]{\footnotesize{\textit{\wauteur}}}% l'auteur a gauche

\fancypagestyle{chapter}{%
 \fancyhf{} % clear all header and footer fields
 \renewcommand{\headrulewidth}{0pt} % met la largeur du trait à 0.2pt
 \renewcommand{\footrulewidth}{0.2pt}%
 \fancyfoot[R]{\thepage}	% le n° de page en bas a droite
 \fancyfoot[C]{\footnotesize{---~\wperiode~---}} % la periode au centre
 \fancyfoot[L]{\footnotesize {\textit{\wauteur}}}}%

%%% rendre robustes les commandes de style de page ...
\addtocontents{toc}{\protect\thispagestyle{chapter}}
\addtocontents{lof}{\protect\thispagestyle{chapter}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% Définitions des variables et des macros pour les modifier pour la 
% page de titre. dans le texte, utiliser \wxxx pour ecrire xxx dans 
% le document, par exple : \wauteur ecrit l'auteur ...
% Période du stage
\def\@periode{Non renseigné~!}
\def\periode#1{\def\@periode{#1}}
\newcommand{\wperiode}{\@periode}
% Auteur du rapport
\def\@auteur{Non renseigné~!}
\def\auteur#1{\def\@auteur{#1}}
\newcommand{\wauteur}{\@auteur}
% Type de rapport (tfe, stage 2A, 3A, \ldots)
\def\@typerapport{Non renseigné~!}
\def\typerapport#1{\def\@typerapport{#1}}
\newcommand{\wtyperapport}{\@typerapport}
% Titre
\def\@titre{Non renseigné~!}
\def\titre#1{\def\@titre{#1}}
\newcommand{\wtitre}{\@titre}
% Tuteur entreprise
\def\@tuteurent{Non renseigné~!}
\def\tuteurent#1{\def\@tuteurent{#1}}
% Tuteur école
\def\@tuteurstage{Non renseigné~!}
\def\tuteurstage#1{\def\@tuteurstage{#1}}
% Logo entreprise (exple : logo_emac.png)
\def\@logoentrep{}
\def\logoentrep#1{\def\@logoentrep{#1}}
% Nom entreprise
\def\@nomentrep{Non renseigné~!}
\def\nomentrep#1{\def\@nomentrep{#1}}
% Adresse entreprise
\def\@addrentrep{Non renseigné~!}
\def\addrentrep#1{\def\@addrentrep{#1}}
% Logo de l'école, université, \ldots
\def\@logoecole{}
\def\logoecole#1{\def\@logoecole{#1}}
% taille des logos (width)
\newlength{\widthecole}
\newlength{\widthent}
\setlength{\widthecole}{0cm}
\setlength{\widthent}{0cm}
% macros utilisateurs pour spécifier les tailles
\newcommand{\tailleecole}[1]{\addtolength{\widthecole}{#1}}
\newcommand{\tailleent}[1]{\addtolength{\widthent}{#1}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Macros
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% réglage des paramètres pour la création des pdf
% à mettre dans l'entête du document
\def\docpdf{
\hypersetup{
  pdftitle={\@typerapport},
  pdfauthor={\@auteur},
  pdfsubject={\@titre},
}}
% \myref produit une référence à un document numéroté
% par son numéro et la page. #1 est le type de document, 
% #2 est le label du document
\newcommand{\myref}[1]{\ref{#1}, page~\pageref{#1}}
% nouvelle commande : \chapitre pour prendre le fancy style en compte
\newcommand{\chapitre}[1]{\chapter{#1} \thispagestyle{chapter}}
% Création de la page de titre
\newcommand{\pagedetitre}{
\thispagestyle{empty}
\begin{titlepage} %%% page de titre
\begin{center}
\includegraphics[width=\widthecole]{\@logoecole}\\
\vspace{5mm}
\rule{\linewidth}{0.8mm}\vspace{3mm}\\
\setlength{\baselineskip}{1.5\baselineskip}
{\Huge \textsc{\@titre}\par} \\
\setlength{\baselineskip}{0.67\baselineskip}
\vspace{3mm}
{\rule{\linewidth}{0.8mm}}\\
\vspace{1.2cm}
\begin{tabularx}{\linewidth}{>{\centering}p{\linewidth}}
{\LARGE \bf \@typerapport} \cr
~~ \cr
{\Large  \@nomentrep}\cr
\end{tabularx}\\
\vspace{1.3cm}
\begin{tabularx}{\linewidth}{>{\raggedright}p{7.5cm} >{\raggedleft}p{4cm}}
~~ & 
\multirow{5}{0.5cm}{\includegraphics[width=\widthent]{\@logoentrep}}
\tabularnewline 
{\Large Tuteur école~: } \tabularnewline
\hspace{8mm}{\Large \@tuteurstage }\tabularnewline
~~ \tabularnewline
{\Large Tuteur entreprise~: }\tabularnewline
\hspace{8mm}{\Large \@tuteurent}\tabularnewline
\end{tabularx}

\vspace{3cm}

{\Large \@auteur}\\
\vspace{7mm}
\large{---~\@periode~---}
\end{center}
\end{titlepage}
}
% Création de la page de titre détaillée (interieur)
\newcommand{\pagetitredetail}{
\thispagestyle{empty}
\begin{titlepage} %%% page de titre
\begin{center}
\includegraphics[width=\widthecole]{\@logoecole}\\
\vspace{3mm}
\rule{\linewidth}{0.8mm}\vspace{3mm}\\
\setlength{\baselineskip}{1.5\baselineskip}
{\Huge \textsc{\@titre}\par} \\
\setlength{\baselineskip}{0.67\baselineskip}
\vspace{3mm}
{\rule{\linewidth}{0.8mm}}\\
\vspace{1cm}
\begin{tabularx}{\linewidth}{>{\centering}p{\linewidth}}
{\LARGE \bf \@typerapport} \tabularnewline
~~ \tabularnewline
{\Large  \@nomentrep}\tabularnewline
\end{tabularx}\\
\vspace{1cm}
\begin{tabularx}{\linewidth}{>{\raggedright}p{7.5cm} >{\raggedleft}p{4cm}}
~~ & 
\multirow{5}{0.5cm}{\includegraphics[width=.8\widthent]{\@logoentrep}}
\tabularnewline 
{\Large Tuteur école~: } \tabularnewline
\hspace{8mm}{\Large \@tuteurstage }\tabularnewline
~~ \tabularnewline
{\Large Tuteur entreprise~: }\tabularnewline
\hspace{8mm}{\Large \@tuteurent}\tabularnewline
\end{tabularx}\\
\vspace{1cm}
\begin{flushright}
\@addrentrep
\end{flushright}
\vspace{8mm}

{\Large \@auteur}\\
\vspace{5mm}
\large{---~\@periode~---}
\end{center}
\end{titlepage}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%nouvelles commandes pour inserer des images sur les titres de parties. 
% usage : part[nom court]{nom long}{ce qu'on veut}
%                                   ^^^^^^^^^^^^^ (image, texte, ...)
\makeatletter
\def\@part[#1]#2#3{%
  \ifnum \c@secnumdepth >-2\relax \refstepcounter {part}%
    \addcontentsline{toc}{part}{\thepart \hspace {1em}#1}%
  \else
    \addcontentsline {toc}{part}{#1}%
  \fi
  \markboth {}{}{%
  \centering \vfill
  \interlinepenalty \@M \normalfont 
  \ifnum \c@secnumdepth >-2\relax
    \Huge \bfseries \partname ~\thepart \par \vskip 20\p@ 
  \fi 
  \Huge \bfseries #2
  \par}%
  {\centering
  \vfill #3 \vfill}%
  \@endpart}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

