From e066a2653aa5e5c726e2efd07e147b70147df99e Mon Sep 17 00:00:00 2001 From: Pierre-antoine Comby Date: Wed, 9 Jan 2019 20:45:49 +0100 Subject: [PATCH] Create custom latex class --- cours.cls | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 cours.cls diff --git a/cours.cls b/cours.cls new file mode 100644 index 0000000..97a51a3 --- /dev/null +++ b/cours.cls @@ -0,0 +1,186 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{cours}[2019/01/09 LaTeX class for Lessons] +\makeatletter +% Base Class + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}} + + +\ProcessOptions\relax +% Main packages + +\LoadClass[12pt,a4paper,french,titlepage]{book} + + +\RequirePackage[french]{babel} % pour ecrire en francais +\RequirePackage[left=2.00cm, right=2.00cm, top=3.00cm, bottom=3.00cm]{geometry} % la mise en page + +% Packages +\RequirePackage[utf8]{inputenc} % encodage + +\RequirePackage{fancyhdr} % la mise en page +\RequirePackage[dvipsnames,x11names]{xcolor} % Un peu de couleur ! +\RequirePackage{float} +\RequirePackage{subcaption} +\RequirePackage{subfiles} + +\RequirePackage{hyperref} +\hypersetup{ + bookmarks=true, % show bookmarks bar? + unicode=true, % non-Latin characters in Acrobat’s bookmarks + pdftoolbar=true, % show Acrobat’s toolbar? + pdfmenubar=true, % show Acrobat’s menu? + pdffitwindow=false, % window fit to page when opened + pdfstartview={FitH}, % fits the width of the page to the window + pdftitle=\@title, % title + pdfauthor=\@author, % author + colorlinks=true, % false: boxed links; true: colored links + linkcolor=black, % color of internal links + citecolor=OliveGreen, % color of links to bibliography + filecolor=magenta, % color of file links + urlcolor=BlueViolet % color of external links +} + + + +\RequirePackage{tikz} +\usetikzlibrary{fit} +\usetikzlibrary{positioning} +\RequirePackage{schemabloc} +\RequirePackage{circuitikz} +\RequirePackage{pgfplots} +\RequirePackage{mathtools} +\RequirePackage{amsfonts} +\RequirePackage{mathrsfs} +\RequirePackage{amssymb} +\RequirePackage[section]{placeins} % Oblige a placer toutes les figures avant de passer a la section suivante + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%% Custom title Page %%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\teacher#1{\gdef\@teacher{#1}} +\def\module#1{\gdef\@module{#1}} + +\renewcommand{\maketitle}{% + \begin{titlepage} + \centering + {\huge \textsc{M1 E3A - Voie André Ampère}} + \vspace{1cm} + % \includegraphics[height=4cm]{Saphire} \\ + \vfill + \@ifundefined{@module} + {} + {% + {\LARGE \textsc{Module \@module}}\\ + } + \vspace{1cm}\vfill + \@ifundefined{@title} + {} + {{\Huge \textbf{\@title}}} + \vfill + \@ifundefined{@author} + {}{% + {\Large + \underline{Un cours de :}\\ \vspace{1em} + \textsc{\@teacher} \\ \vspace{0.5cm} + \underline{Rédigé et complété par :} \\ \vspace{1em} + \textsc{\@author}} + \vfill} + \@ifundefined\@date{}{% + {\LARGE Version du \@date} + \vfill} +% \includegraphics[width=6cm]{ENSPS} +% \hfill +% \includegraphics[width=6cm]{UPS} + \end{titlepage}} + +% pas de début de section dans la moitié inférieure d'une page + + \RequirePackage{needspace} + + \renewcommand{\section}{ + \needspace{0.3\textheight}% + \@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\reset@font\Large\bfseries}} +\raggedbottom + +\setcounter{secnumdepth}{3} +\renewcommand{\thesection}{\arabic{section}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% BOITES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\RequirePackage{tikz,environ} +\tikzstyle{mybox} = [draw=black, very thick, + rectangle, inner sep=10pt, inner ysep=20pt] +\tikzstyle{fancytitle} = [draw=black, fill=white, text=black] + +\NewEnviron{defin}{\par +\begin{center} +\begin{tikzpicture} +\node [mybox] (box){% + \begin{minipage}{0.8\textwidth} + \BODY + \end{minipage} }; +\node[fancytitle, right=10pt] at (box.north west) {\textbf{Définition}}; +\end{tikzpicture}\end{center}\par +} + +% \NewEnviron{thm}{\par +% \begin{center} +% \begin{tikzpicture} +% \node [mybox] (box){% +% \begin{minipage}{0.8\textwidth} +% \BODY +% \end{minipage} }; +% \node[fancytitle, right=10pt] at (box.north west) {\textbf{Théorème}}; +% \end{tikzpicture}\end{center}\par +%} + +\RequirePackage{thmbox} +\RequirePackage{xparse} +\NewDocumentEnvironment{prop}{o}{% +\begin{center}\begin{minipage}{0.8\textwidth} + \thmbox[M]{\textbf{Proposition \IfNoValueTF{#1}{}{\em (#1)}}}% + %\hspace*{-1.5em}% + } + {% + \endthmbox\vspace*{.75ex}\end{minipage}\end{center}% + } + +\NewDocumentEnvironment{thm}{o}{% +\begin{center}\begin{minipage}{0.8\textwidth} + \thmbox[M]{\textbf{Théorème \IfNoValueTF{#1}{}{\em (#1)}}}% + %\hspace*{-1.5em}% + } + {% + \endthmbox\vspace*{.75ex}\end{minipage}\end{center}% + } + + +\NewDocumentEnvironment{corol}{o}{% + \begin{center}\begin{minipage}{0.8\textwidth} + \thmbox[M]{\textbf{Corollaire \IfNoValueTF{#1}{}{\em (#1)}}}% + %\hspace*{-1.5em}% + } + {% + \endthmbox\vspace*{.75ex}\end{minipage}\end{center}% +} + +\NewDocumentEnvironment{lemEM}{o}{% + \begin{center}\begin{minipage}{0.8\textwidth} + \thmbox[M]{\textbf{Lemme ergodique maximal \IfNoValueTF{#1}{}{\em (#1)}}}% + %\hspace*{-1.5em}% + } + {% + \endthmbox\vspace*{.75ex}\end{minipage}\end{center}% +} + +\newenvironment{rem}{\par\textbf{Remarque: }\nopagebreak}{\par} +\newenvironment{exemple}{\par\textbf{Exemple: }\nopagebreak}{\par} +\newenvironment{preuve}{\par\textit{Démonstration: }\nopagebreak}{\par}