commit 85cac81e5785d38d656c110070d405543748230f Author: Mylloon Date: Wed Feb 7 11:42:42 2024 +0100 add cls file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dd9165e --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +modele/* + +!modele/Makefile + +!modele/*.tex +!modele/*.bib + +!modele/images diff --git a/README.md b/README.md new file mode 100644 index 0000000..d1136d3 --- /dev/null +++ b/README.md @@ -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) diff --git a/rapstage.cls b/rapstage.cls new file mode 100644 index 0000000..fb372cb --- /dev/null +++ b/rapstage.cls @@ -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} +}