layout_syllabus_ffg/ffgTemplate.sty

347 lines
12 KiB
TeX

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Copyleft Trullemans Gregory %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% @version 2.1 %
% @date 2021-04-03 %
% %
% Seconde version du template de la Fédération francophone de Gymnastique et de fitness. %
% Suite à la mise à jour du site internet fin 2020, le FfG définit une nouvelle charte graphique %
% complète. %
% %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Package definition
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\ProvidesPackage{ffgTemplate}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Required Package
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\RequirePackage[a4paper, top=2cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry} % Gestion des marges
\RequirePackage[french]{babel} % Gestion du français
\RequirePackage{graphicx} % Gestion des images
\RequirePackage{xcolor} % Gestion des couleurs
\RequirePackage{hyperref} % Gestion des hyperliens
\RequirePackage{fancyhdr} % Gestion des en-têtes et pieds de pages.
\RequirePackage{pifont} % Gestion des symbols (\ding{55} dans le footer)
\RequirePackage{array} % Gestion (améliorée) des tableaux
\RequirePackage{ulem} % Gestion (avancée) des soulignements
\RequirePackage{mathtools, amsmath, amstext, amssymb, amsthm} % Package de l'AMS + mathtools
\RequirePackage{gensymb} % symbole \degree
\RequirePackage{cancel}
\RequirePackage{nicefrac} % Gestion des fractions
\RequirePackage{xspace} % Gestion intelligente de l'espace après une commande
\RequirePackage{lmodern} % Police de caractère
\RequirePackage{calc} % Syntaxe naturelle pour les calculs
\RequirePackage{framed}
\RequirePackage{tcolorbox} % Pour créer des boites colorées.
\RequirePackage{multirow} % Pour fusionner des lignes dans un tableau
% Layout fisrt page
\RequirePackage{eso-pic} % Gestion du background de la page de garde.
\RequirePackage[absolute,overlay]{textpos} % Gestion des positions du texte (option de config : showboxes, textblock, …)
\RequirePackage{fontspec} % Gestion de "arial" ET "arial narrow" comme font.
\RequirePackage{anyfontsize} % Gestion des tailles de police hors dictionnaire
\RequirePackage{shadowtext} % Gestion des ombres
% Layout Document
\RequirePackage[explicit]{titlesec} % Gestion des sections
\RequirePackage{titletoc} % Gestion de la table des matière
\RequirePackage{titling} % Gestion des titres
\RequirePackage{enumitem} % Gestion des listes
% Tools kit
\RequirePackage{fancybox} % pour dessiner des boites ;-)
\RequirePackage{etoolbox} % Renew command & robust command
\RequirePackage{float}
% other package
\RequirePackage{bm} % Notation mathématique en gras
\RequirePackage{lscape} % Gestion du mode "paysage"
\RequirePackage{svg}
% \RequirePackage[inkscapeformat=png]{svg}
\frenchbsetup{StandardItemLabels=true}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Define global variable for document
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\def\federationName{Fédération francophone de Gymnastique et de fitness}
\def\federationAcronym{FfG}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% (Re)Define parametres for document
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\setmainfont{Arial}
\addto\captionsfrench{\def\tablename{Tableau}} % Définition du mot pour les tableaux
\addto\captionsfrench{\def\figurename{Figure}} % Définition du mot pour les Figures
% Color definition
\definecolor{ffg_darkblue}{RGB}{21,29,76}
\definecolor{ffg_lightblue}{RGB}{0, 112, 192}
\definecolor{ffg_red}{RGB}{241, 83, 60}
\definecolor{ffg_title_color}{RGB}{12, 97, 158}
\definecolor{ffg_section_color}{RGB}{24, 146, 239}
\definecolor{footer_color}{RGB}{128, 128, 128}
\definecolor{flyingblue}{RGB}{49, 123, 181}
\definecolor{greymoreknowledge}{RGB}{200, 200, 200}
% Parametres for TextPos
\setlength{\TPHorizModule}{1mm}
\textblockorigin{5mm}{5mm} % start everything near the top-left corner
\setlength{\parindent}{0pt} % Pas d'indentation au placement du texte
\setlength\fboxrule{0.75pt}
\newcommand{\mybox}[1]{\fbox{$~~~ \displaystyle#1 ~~~$}}
\newcommand\NextYear{%
\advance\year by 1 \the\year\advance\year by -1
}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Image's first page definition
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\newcommand\BackgroundPic{%
\put(0,0){%
\parbox[b][\paperheight]{\paperwidth}{%
\vfill
\centering
\includegraphics[scale=1]{firstpage.png}%
\vfill
}
}
}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% First Page's definition
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\def\maketitle{%
\null
\thispagestyle{empty}%
% Logo FfG en haut à gauche
\begin{textblock}{50}(6,0.35)
\includegraphics[scale=0.05]{ffg_logo.png}%
\end{textblock}
% Titre du document
\begin{textblock}{200}(0,3)
\centering
\textcolor{ffg_darkblue}{\fontsize{33}{42}\selectfont {\bfseries \formationType~\discipline}}\par
\vspace{2.5cm}
\textcolor{ffg_red}{\fontsize{33}{42}\selectfont {\bfseries Module : \moduleTitle}}\par
\end{textblock}
% Type de document
\begin{textblock}{200}(0,9)
\centering
\textcolor{ffg_lightblue}{\fontsize{28}{42}\selectfont {\bfseries Formation des Cadres}}\par
\end{textblock}
% Saisons concernées
\begin{textblock}{200}(0,11.68)
\centering
\textcolor{white}{\fontsize{30}{84}\selectfont {\the\year}\hspace{3cm} {\NextYear}}\par
\end{textblock}
% FfG en bas à gauche
\begin{textblock}{65}(7.9,14.44)
\textcolor{white}{\fontsize{16}{20}\selectfont Fédération francophone de Gymnastique et de Fitness}\par
\end{textblock}
% site web en bas à droite
\begin{textblock}{50}(144.5,14.69)
\textcolor{white}{\fontsize{18}{20}\selectfont \textbf{www.FfGym.be}}\par
\end{textblock}
\null
\cleardoublepage
}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Other page definition
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\fancypagestyle{plain}{%
\renewcommand\headrulewidth{0pt}
\fancyhead[C]{}
\fancyhead[L]{}
\fancyhead[R]{}
\fancyhf{}
%% Footer
\renewcommand{\footrulewidth}{0pt}
\fancyfoot[L]{\fontsize{9}{10}\selectfont \textit{\textcolor{footer_color}{Formation des Cadres\\ \discipline}}}
\fancyfoot[C]{\fontsize{9}{10}\selectfont \textit{\textcolor{footer_color}{p. \thepage}}}
\fancyfoot[R]{\fontsize{9}{10}\selectfont \textit{\textcolor{footer_color}{Edition \the\year~-~\NextYear}}}
}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Titles layout redefinition
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\makeatletter
\colorlet{shadecolor}{ffg_title_color}
% Numbered chapter title
\titleformat{\chapter}[display]
{\fontsize{16pt}{12pt}\selectfont\color{white}\begin{shaded*}}
{\thechapter \qquad #1}
{0pt}
{\end{shaded*}}
\titlespacing{\chapter}
{0pt}
{0pt}
{0pt}
% Unnumbered chapter title
\titleformat{name=\chapter, numberless}[display]
{\fontsize{16pt}{12pt}\selectfont\color{white}\begin{shaded*}}
{#1}
{0pt}
{\end{shaded*}}
\titlespacing{name=\chapter, numberless}
{0pt}
{-20pt}
{-20pt}
% Numbered section title
\titleformat{\section}[display]
{\fontsize{14pt}{12pt}\selectfont\color{ffg_section_color}}
{\thesection \qquad #1}
{0pt}
{}
[\vspace{-4mm} {\color{ffg_lightblue}\titlerule[.6mm]} \enlargethispage{-\parskip}]
\titlespacing*{\section}
{0pt} % left
{24pt} % top
{10pt} % bottom
% Unnumbered section title
\titleformat{name=\section, numberless}[display]
{\fontsize{14pt}{12pt}\selectfont\color{ffg_section_color}}
{\qquad #1}
{0pt}
{}
[\vspace{-4mm} {\color{ffg_lightblue}\titlerule[.6mm]} \enlargethispage{-\parskip}]
% Numbered subsection title
\titleformat{\subsection}[display]
{\fontsize{13pt}{12pt}\selectfont\color{ffg_title_color}}
{\quad \thesubsection \quad #1}
{0pt}
{}
\titlespacing*{\subsection}
{0pt}
{18pt}
{0pt}
% Unnumbered subsection title
\titleformat{name=\subsection, numberless}[display]
{\fontsize{13pt}{12pt}\selectfont\color{ffg_title_color}}
{\quad #1}
{0pt}
{}
\titlespacing*{\subsection}
{0pt}
{18pt}
{0pt}
% Numbered subsubsection title
\titleformat{\subsubsection}[display]
{\fontsize{11pt}{12pt}\selectfont\color{ffg_title_color}}
{\qquad \thesubsubsection \quad #1}
{0pt}
{}
\titlespacing*{\subsubsection}
{0pt}
{12pt}
{-10pt}
% Unnumbered subsubsection title
\titleformat{name=\subsubsection, numberless}[display]
{\fontsize{11pt}{12pt}\selectfont\color{ffg_title_color}}
{\qquad #1}
{0pt}
{}
\titlespacing*{name=\subsubsection, numberless}
{0pt}
{12pt}
{-10pt}
\makeatother
\pagestyle{plain}
\AtBeginDocument{
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\AddToShipoutPicture*{\BackgroundPic}
}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Redefine Theoreme & Definition
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\renewenvironment{leftbar}[1][\hsize]
{
\def\FrameCommand
{
{\color{ffg_title_color}\vrule width 3pt}
\hspace{0pt}
}
\MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}
}
{\endMakeFramed}
\newtheoremstyle{new_theorem_style}
{\topsep} % space before \topsep
{\topsep} % space after\topsep
{\itshape} % body font
{} % indent
{\bfseries} % header font
{} % punctuation
{\newline} % after theorem header
{\thmname{#1}~\thmnumber{#2}\thmnote{\ -\ #3}\\*[-1.5ex]}% header specification (empty for default)
\theoremstyle{new_theorem_style}
\newtheorem*{definitionT}{\color{ffg_title_color}{Définition}}
\newenvironment{definition}
{
\begin{leftbar}
\begin{definitionT}
\mbox{}\noindent\ignorespaces}{
\end{definitionT}
\end{leftbar}
}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
% Define colorbox
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
\newtcolorbox{knowledgebox}{colback=ffg_red!5!white, colframe=ffg_red!100!black, fonttitle=\bfseries, title={Savoir}, breakable} %breakable
\newtcolorbox{skillsbox}{colback=flyingblue!5!white, colframe=flyingblue!100!black, fonttitle=\bfseries, title={Savoir faire}, breakable} %breakable
\newtcolorbox{morebox}{colback=greymoreknowledge!5!white, colframe=greymoreknowledge!100!black, fonttitle=\bfseries, title={Allez plus loin\ldots}, breakable}
\newtcolorbox{dangerbox}[1]{colback=red!5!white, colframe=red!100!black, fonttitle=\bfseries, title={Important}, breakable} %breakable
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% References
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% http://www.liv.ac.uk/~maryrees/posterproduction/textpos.pdf
% http://latex-community.org/forum/viewtopic.php?f=4&t=23421
% http://www.grappa.univ-lille3.fr/FAQ-LaTeX/6.3.html
% https://www.overleaf.com/2177757tknnqv#/5555417/
% http://tutex.tug.org/pracjourn/2005-4/hefferon/hefferon.pdf
% http://tex.stackexchange.com/questions/528/style-class-tutorials