add cls file

This commit is contained in:
Mylloon 2024-02-07 11:42:42 +01:00
commit 85cac81e57
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
3 changed files with 237 additions and 0 deletions

8
.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
modele/*
!modele/Makefile
!modele/*.tex
!modele/*.bib
!modele/images

37
README.md Normal file
View file

@ -0,0 +1,37 @@
# Rapport de stage
Classe `rapstage` pour faire un rapport de stage à Paris Cité
## Prérequis
- [Police Windows pour `Arial` et `Times New Roman`](https://aur.archlinux.org/packages/ttf-ms-fonts)
## Options
| Option | Utilité |
| :----: | :---------------------- |
| `code` | Utilisation de `minted` |
| `f` | Pour les étudiantes |
| `n` | Pour les étudiant·e·s |
## Commandes
| Commande | Utilité |
| :-------------------------------------: | :------------------------------------------- |
| `\me{prénom}{nom}{mail}`\* | Défini l'identité de l'étudiant·e |
| `\title{titre}`\* | Défini le titre du rapport |
| `\date{AAAA/AAAA}`\* | Défini l'année universitaire |
| `\location{lieu}`\* | Défini le lieu du stage |
| `\tuteurpedago{prénom nom}{mail}`\* | Défini l'identité du tuteurice pédagogique |
| `\tuteurentreprise{prénom nom}{mail}`\* | Défini l'identité du tuteurice en entreprise |
| `\directeur{prénom nom}`\* | Défini l'identité du directeurice |
| `\subtitle{sous titre}`\* | Défini le sous-titre du rapport |
| `\bibliofile{chemin}` | Défini le chemin vers la bibliographie |
| `\reference`\* | Affiche la bibliographie |
> \* Commande possédant une valeur par défaut.
## Exemple
Le modèle [disponible ici](https://www.informatique.univ-paris-diderot.fr/_media/formations/masters/template_stage_m2.pdf)
est retranscrit en LaTeX dans [./modele](./modele)

192
rapstage.cls Normal file
View file

@ -0,0 +1,192 @@
\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{mathptmx} % Times New Roman
\RequirePackage{fontspec} % Arial
\setmainfont{Times New Roman}
\RequirePackage[french]{babel} % langage
\frenchsetup{SmallCapsFigTabCaptions=false}
% Change page dimensions
\RequirePackage[a4paper]{geometry}
% Style de bibliographie
\addto{\extrasfrench}{\renewcommand\refname{Bibliographie}}
\bibliographystyle{unsrt}
% TODO : Autoriser des commandes sans mail
% Auteur
\newcommand{\me}[3]{
\gdef\@mef{#1} % first name
\gdef\@mel{#2} % last name
\gdef\@mail{mailto:#3} % mail
}
\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
\renewcommand{\date}[1]{\gdef\@date{#1}}
\renewcommand{\@date}{AAAA/AAAA}
% Lieu du stage
\newcommand{\location}[1]{\gdef\@location{#1}}
\newcommand{\@location}{Google}
% Tuteur pédagogique
\newcommand{\tuteurpedago}[2]{
\gdef\@tpn{#1} % nom
\gdef\@tpm{mailto:#2} % mail
}
\newcommand{\@tpn}{John Doe}
\newcommand{\@tpm}{mailto:john.doe@example.com}
% Tuteur entreprise
\newcommand{\tuteurentreprise}[2]{
\gdef\@ten{#1} % nom
\gdef\@tem{mailto:#2} % mail
}
\newcommand{\@ten}{Bob 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{sectsty}
\sectionfont{\color{black}\setmainfont{Arial}\LARGE\bfseries}
\subsectionfont{\color{black}\setmainfont{Arial}\Large\bfseries\itshape}
% 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={Université Paris Cité},
hidelinks,
}
}
% Images
\RequirePackage{graphicx}
\renewcommand{\maketitle}{
\begin{titlepage}
\begin{center}
\includegraphics[height=3.5cm]{images/logo.png}
{
\setmainfont{Arial}
\LARGE
Université de Paris\\
}
\vspace{1cm}
\Large
\textsc{Faculté de Sciences}\\
\vspace{3mm}
UFR d'Informatique\\
Directrice : \@directeur\\
\vspace{15mm}
\textsc{\@subtitle}\\
\LARGE
\textsc{\textbf{\underline{\@title}}}
\vspace{25mm}
\Large
\begin{tabular}{ll}
Tuteur pédagogique : & \href{\@tpm}{\@tpn} \\
Tuteur en entreprise : & \href{\@tem}{\@ten} \\
\end{tabular}
\vspace{1cm}
\hfill
\@student : \href{\@mail}{\@mef~\textsc{\@mel}}
\vfill
\textsc{Année universitaire \@date}
\end{center}
\end{titlepage}
% Nouvelle page vierge
\setcounter{page}{3}
\shipout\null
\newgeometry{
left=4cm,
right=2cm,
top=35mm,
bottom=35mm,
}
}
\newcommand{\reference}{
\newpage
\pagestyle{empty}
\addcontentsline{toc}{section}{\refname}
\bibliography{\@refile}
}