\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{projektor}[2023/04/29 Beamer template] % Options \newif\ifoption@code \DeclareOption{code}{\option@codetrue} \newif\ifoption@fr \DeclareOption{fr}{\option@frtrue} \newif\ifoption@dark \DeclareOption{dark}{\option@darktrue} \newif\ifoption@sec \DeclareOption{sec}{\option@sectrue} \newif\ifoption@subsec \DeclareOption{subsec}{\option@subsectrue} \ProcessOptions \ifoption@code % Intégration code \RequirePackage{minted} \usemintedstyle{emacs} \fi \ifoption@fr % Langue \RequirePackage[french]{babel} \RequirePackage{csquotes} \MakeOuterQuote{"} \fi \RequirePackage{microtype} % Police % Metropolis + barre de progression + numéro de page \usetheme[ progressbar=frametitle, numbering=fraction, block=fill ]{metropolis} % Renomme la table des matières \AtBeginDocument{ \renewcommand{\contentsname}{Plan} } % Table des matières comme frame de nouvelle partie \ifoption@sec \AtBeginSection[]{ \begin{frame}[plain, noframenumbering]{\contentsname} \tableofcontents[ currentsection, subsectionstyle=shaded, ] \end{frame} } \fi % Table des matières comme frame de nouvelle sous-partie \ifoption@subsec \AtBeginSubsection[]{ \begin{frame}[plain, noframenumbering]{\contentsname} \tableofcontents[ currentsubsection, sectionstyle=show/shaded, subsectionstyle=show/shaded, ] \end{frame} } \fi \ifoption@dark % Thème sombre \setbeamercolor{normal text}{fg=white,bg=black!90} \setbeamercolor{alerted text}{fg=orange!65!white} \setbeamercolor{progress bar}{bg=alerted text.fg!20!black!90} \setbeamercolor{frametitle}{bg=black!92} \setbeamercolor*{palette primary}{use=structure,fg=structure.fg} \else % Augmente l'épaisseur de la barre de progression sur les diapos \setlength{\metropolis@progressinheadfoot@linewidth}{0.8pt} \fi % Point au lieu de carré dans les listes \setbeamertemplate{itemize items}[circle] % Métadonnées \hypersetup{ pdfsubject={Présentation}, pdfkeywords={presentation}, pdfcreator={LaTeX with Beamer class and projektor template} } % Plus de "overfull vbox" \def\titlepage{\usebeamertemplate{title page}} % Bas de page \setbeamertemplate{frame footer}{ \insertsection \hfill\hspace{-4em} \insertshorttitle } \setbeamerfont{page number in head/foot}{size=\tiny} \setbeamercolor{footline}{fg=gray} % Enumerate au lieu d'itemize \setbeamertemplate{section in toc}[sections numbered] % Police \RequirePackage{lmodern} % Inverse titre court/titre long dans le plan \RequirePackage{etoolbox} \makeatletter \patchcmd{\beamer@section}{{#2}{\the\c@page}}{{#1}{\the\c@page}}{}{} \patchcmd{\beamer@section}{{\the\c@section}{\secname}}{{\the\c@section}{#1}}{}{} \makeatother % Liste sur plusieurs colonnes \RequirePackage{multicol} % Pas de préfix pour les figures \RequirePackage[figurename=]{caption} % Support des sous-titres \makeatletter \newcommand\startsubtitle{ \renewcommand{\metropolis@frametitlestrut@start}{ \rule{0pt}{1ex + \totalheightof{ \ifcsdef{metropolis@frametitleformat}{\metropolis@frametitleformat X}{X} } } } \renewcommand{\metropolis@frametitlestrut@end}{ \rule[-3ex]{0pt}{\metropolis@frametitle@padding} } } \newcommand\stopsubtitle{ \renewcommand{\metropolis@frametitlestrut@start}{ \rule{0pt}{\metropolis@frametitle@padding + \totalheightof{ \ifcsdef{metropolis@frametitleformat}{\metropolis@frametitleformat X}{X} } } } \renewcommand{\metropolis@frametitlestrut@end}{ \rule[-\metropolis@frametitle@padding]{0pt}{\metropolis@frametitle@padding} } } \makeatother \setbeamercolor{framesubtitle}{fg=white} \setbeamerfont{framesubtitle}{series=\mdseries} \addtobeamertemplate{frametitle}{ \ifx\insertframesubtitle\empty\else \startsubtitle \fi }{ \ifx\insertframesubtitle\empty\else \vspace{-4ex} \usebeamerfont{framesubtitle} \usebeamercolor[fg]{framesubtitle} \insertframesubtitle \stopsubtitle \fi } % Souligne mieux les mots \newcommand{\ul}[1]{\underline{\smash{#1}}} % Avertissement par rapport à l'appendix \renewcommand\appendixname{Appendix}