rapport-stage/rapstage.cls

240 lines
5.4 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=3.51cm,bottom=3.3cm,left=5cm,right=5cm]{geometry}
% Style de bibliographie
\addto{\extrasfrench}{\renewcommand\refname{Bibliographie}}
\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.\quad}
% Interligne
\RequirePackage{setspace}
\setstretch{1.15}
% Page current/max
\RequirePackage[page]{totalcount}
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\cfoot{\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}
\addto\captionsfrench{\renewcommand{\figurename}{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=3cm]{images/logo.png}
{
\setmainfont{Arial}
\Large
Université Paris Cité\\
}
\vspace{12mm}
\large
\textsc{Faculté de Sciences}\\
UFR d'Informatique\\
Directrice : \@directeur\\
\vspace{13mm}
\Large
\textsc{\@subtitle}\\
\vspace{3mm}
\LARGE
\textsc{\textbf{\underline{\@title}}}
\end{center}
\vfill
\large
\noindent
\begin{tabular}{ll}
\itshape
Tuteur pédagogique : & \itshape\href{\@tpm}{\@tpn} \\
\itshape
Tuteur en entreprise : & \itshape\href{\@tem}{\@ten} \\
\end{tabular}
\vspace{2cm}
\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,top=35mm,bottom=46mm}
}
% Permet d'ajouter la bibliographie
\newcommand{\reference}{
\newpage
\addcontentsline{toc}{section}{\refname}
\bibliography{\@refile}
\newpage
\pagestyle{empty}
}
% Souligne mieux les mots
\newcommand{\ul}[1]{\underline{\smash{#1}}}
% Ne déborde pas sur la marge
\AtBeginDocument{
\sloppy
}