259 lines
5.8 KiB
TeX
259 lines
5.8 KiB
TeX
\ProvidesClass{rapstage}[2024/02/06 Rapport de stage de Paris Cité]
|
|
|
|
\LoadClass[12pt]{article}
|
|
|
|
% Options
|
|
\newif\ifoption@code
|
|
\DeclareOption{code}{\option@codetrue}
|
|
\newif\ifoption@f
|
|
\DeclareOption{f}{\option@ftrue}
|
|
\newif\ifoption@n
|
|
\DeclareOption{n}{\option@ntrue}
|
|
|
|
\newcommand\@student{Étudiant}
|
|
|
|
\ProcessOptions
|
|
\ifoption@code
|
|
% Intégration code
|
|
\RequirePackage{minted}
|
|
\usemintedstyle{emacs}
|
|
\fi
|
|
\ifoption@f
|
|
% Mode féminin
|
|
\renewcommand\@student{Étudiante}
|
|
\fi
|
|
\ifoption@n
|
|
% Mode neutre
|
|
\renewcommand\@student{Étudiant·e}
|
|
\fi
|
|
|
|
% Encodage
|
|
\RequirePackage[T1]{fontenc}
|
|
|
|
% Polices
|
|
\RequirePackage[nopatch=footnote]{microtype}
|
|
\RequirePackage{mathptmx} % Times New Roman
|
|
\RequirePackage{fontspec} % Arial
|
|
\setmainfont{Times New Roman}
|
|
|
|
% Langage
|
|
\RequirePackage[french]{babel}
|
|
\frenchsetup{SmallCapsFigTabCaptions=false}
|
|
|
|
% Guillemets
|
|
\RequirePackage[style=english]{csquotes}
|
|
\MakeOuterQuote{"}
|
|
|
|
% Format des pages
|
|
\RequirePackage[a4paper,top=35mm,bottom=33mm,left=5cm,right=5cm]{geometry}
|
|
|
|
% Style de bibliographie
|
|
\newcommand\@bib{Bibliographie}
|
|
\renewcommand\frenchrefname{\hspace{4em}\@bib}
|
|
\bibliographystyle{unsrt}
|
|
|
|
% Auteur
|
|
\newcommand\me@unstarred[3]{
|
|
\gdef\@mef{#1} % first name
|
|
\gdef\@mel{#2} % last name
|
|
\gdef\@mail{mailto:#3} % mail
|
|
}
|
|
\newcommand\me@starred[2]{
|
|
\gdef\@mef{#1} % first name
|
|
\gdef\@mel{#2} % last name
|
|
\gdef\@mail{} % mail
|
|
}
|
|
\newcommand\me{\@ifstar{\me@starred}{\me@unstarred}}
|
|
\newcommand\@mef{Alice}
|
|
\newcommand\@mel{Dubois}
|
|
\newcommand\@mail{mailto:alice.dubois@example.com}
|
|
|
|
% Titre
|
|
\renewcommand\title[1]{\gdef\@title{#1}}
|
|
\renewcommand\@title{TITRE DU RAPPORT}
|
|
|
|
% Date
|
|
\newcount\lastyear
|
|
\lastyear=\year
|
|
\advance\lastyear by -1
|
|
|
|
\renewcommand\date[1]{\gdef\@date{#1}}
|
|
\renewcommand\@date{\the\lastyear{}/\the\year{}}
|
|
|
|
% Tuteur pédagogique
|
|
\newcommand\tuteurpedago@unstarred[2]{
|
|
\gdef\@tpn{#1} % nom
|
|
\gdef\@tpm{mailto:#2} % mail
|
|
}
|
|
\newcommand\tuteurpedago@starred[1]{
|
|
\gdef\@tpn{#1} % nom
|
|
\gdef\@tpm{} % mail
|
|
}
|
|
\newcommand\tuteurpedago{
|
|
\@ifstar{\tuteurpedago@starred}{\tuteurpedago@unstarred}}
|
|
\newcommand\@tpn{John \textsc{Doe}}
|
|
\newcommand\@tpm{mailto:john.doe@example.com}
|
|
|
|
% Tuteur entreprise
|
|
\newcommand\tuteurentreprise@unstarred[2]{
|
|
\gdef\@ten{#1} % nom
|
|
\gdef\@tem{mailto:#2} % mail
|
|
}
|
|
\newcommand\tuteurentreprise@starred[1]{
|
|
\gdef\@ten{#1} % nom
|
|
\gdef\@tem{} % mail
|
|
}
|
|
\newcommand\tuteurentreprise{
|
|
\@ifstar{\tuteurentreprise@starred}{\tuteurentreprise@unstarred}}
|
|
\newcommand\@ten{Bob \textsc{Dupont}}
|
|
\newcommand\@tem{mailto:bob.dupont@example.com}
|
|
|
|
% Directeurice université
|
|
\newcommand\directeur[1]{\gdef\@directeur{#1}}
|
|
\newcommand\@directeur{Carole \textsc{Delporte}}
|
|
|
|
% Sous-titre
|
|
\newcommand\subtitle[1]{\gdef\@subtitle{#1}}
|
|
\newcommand\@subtitle{Rapport de Stage de Master 2}
|
|
|
|
% Fichier de la bibliographie
|
|
\newcommand\bibliofile[1]{\gdef\@refile{#1}}
|
|
|
|
% Mise en page
|
|
\RequirePackage{titlesec}
|
|
\titleformat*{\section}{\fontspec{Arial}\Large\bfseries}
|
|
\titleformat*{\subsection}{\fontspec{Arial}\large\bfseries\itshape}
|
|
|
|
% Point après numéro dans le titre
|
|
\RequirePackage{titlesec}
|
|
\titlelabel{\thetitle.\hspace{0.8em}}
|
|
|
|
% Interligne
|
|
\RequirePackage{setspace}
|
|
\setstretch{1.15}
|
|
|
|
% Page current/max
|
|
\RequirePackage[page]{totalcount}
|
|
\RequirePackage{fancyhdr}
|
|
\pagestyle{fancy}
|
|
\fancyhf{}
|
|
\cfoot{\makebox[\textwidth][c]{\thepage/\totalpages}}
|
|
\renewcommand\headrulewidth{0pt}
|
|
|
|
% Liens cliquable et métadonnées
|
|
\RequirePackage{hyperref}
|
|
\AtBeginDocument{
|
|
\hypersetup{
|
|
pdfauthor={\@mef~\@mel},
|
|
pdftitle={\@title},
|
|
pdfkeywords={rapport, stage},
|
|
pdfsubject={Rapport de stage pour l'Université Paris Cité},
|
|
pdfcreator={LaTeX with rapstage class and hyperref package},
|
|
hidelinks,
|
|
}
|
|
}
|
|
|
|
% Images
|
|
\RequirePackage{graphicx,float}
|
|
|
|
% Figures
|
|
\RequirePackage[font=it,labelsep=colon]{caption}
|
|
\renewcommand\frenchfigurename{Illustration}
|
|
|
|
% Listes
|
|
\AtBeginDocument{\def\labelitemi{\scriptsize$\bullet$}
|
|
\def\labelitemii{\scriptsize$\bullet$}
|
|
\def\labelitemiii{\scriptsize$\bullet$}
|
|
\def\labelitemiv{\scriptsize$\bullet$}}
|
|
|
|
\renewcommand\maketitle{
|
|
\begin{titlepage}
|
|
\begin{center}
|
|
\includegraphics[alt={Logo},height=27mm]{images/logo.png}
|
|
|
|
{
|
|
\vspace{4mm}
|
|
\setmainfont{Arial}
|
|
\Large
|
|
Université Paris Cité \\
|
|
}
|
|
|
|
\vspace{11mm}
|
|
|
|
\large
|
|
\textsc{Faculté de Sciences} \\
|
|
|
|
\vspace{1mm}
|
|
UFR d'Informatique \\
|
|
|
|
\vspace{-2mm}
|
|
Directrice : \@directeur \\
|
|
|
|
\vspace{14mm}
|
|
\Large
|
|
\textsc{\@subtitle} \\
|
|
|
|
\vspace{3mm}
|
|
\LARGE
|
|
\textsc{\textbf{\underline{\@title}}}
|
|
\end{center}
|
|
|
|
\vfill
|
|
|
|
\large
|
|
\noindent
|
|
{
|
|
\setstretch{0.9}
|
|
\begin{tabular}{ll}
|
|
\itshape
|
|
Tuteur pédagogique : & \itshape\href{\@tpm}{\@tpn} \\
|
|
|
|
\itshape
|
|
Tuteur en entreprise : & \itshape\href{\@tem}{\@ten} \\
|
|
\end{tabular}
|
|
}
|
|
|
|
\vspace{19mm}
|
|
|
|
\hfill
|
|
\textit{\@student : \href{\@mail}{\@mef~\textsc{\@mel}}}
|
|
|
|
\vspace{17mm}
|
|
\Large
|
|
\centering\textsc{Année universitaire \@date}
|
|
\end{titlepage}
|
|
|
|
% Nouvelle page vierge
|
|
\setcounter{page}{3}
|
|
\shipout\null
|
|
|
|
\newgeometry{right=2cm,left=4cm,bottom=46mm}
|
|
}
|
|
|
|
% Permet d'ajouter la bibliographie
|
|
\RequirePackage{etoolbox}
|
|
\newcommand\@reference{
|
|
\newpage
|
|
\addcontentsline{toc}{section}{\@bib}
|
|
\bibliography{\@refile}
|
|
|
|
\newpage
|
|
\pagestyle{empty}
|
|
}
|
|
\newcommand\reference@unstarred{\@reference}
|
|
\newcommand\reference@starred[1]{
|
|
\patchcmd{\thebibliography}{\list}{#1 \\ \list}{}{}
|
|
\@reference
|
|
}
|
|
\newcommand\reference{\@ifstar{\reference@starred}{\reference@unstarred}}
|
|
|
|
% Annexe
|
|
\renewcommand\frenchappendixname{\hspace{4em}Annexe}
|
|
|
|
% Souligne mieux les mots
|
|
\newcommand\ul[1]{\underline{\smash{#1}}}
|
|
|
|
% Ne déborde pas sur la marge
|
|
\AtBeginDocument{
|
|
\sloppy
|
|
}
|