latex-homework/cours/cours_beamer.cls

487 lines
9.6 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%%%
%%%
%%% Classe : cours_beamer.cls
%%% Version : 1.6
%%% Date : 08/12/14
%%% Auteur : Jeff LANCE
%%%
%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{cours_beamer}[2014/12/08 Beamer de cours, v1.6]
%-- PARENT CLASS
% inutile de passer l'option [utf8] puisque chargee dans commun.sty
\LoadClassWithOptions{beamer}
%---------------
%-- PACKAGES CALLS
% perso
\RequirePackage{couleurs}
\RequirePackage{commun}
\RequirePackage{shortcuts}
% autres
\RequirePackage{media9}
\RequirePackage{xkeyval}
%-----------------
\makeatletter
%-- DEF OPTIONS
% firstcolor / secondcolor
% option de classe
% couleurs générales du beamer
%
% "classical" way
% \def\firstcolor{lapislazuli}%
% \define@key{cours_beamer.cls}{firstcolor}[lapislazuli]{%
% \def\firstcolor{#1}%
% }
%
% \def\secondcolor{-\firstcolor}%
% \define@key{cours_beamer.cls}{secondcolor}[-\firstcolor]{%
% \def\secondcolor{#1}%
% }
\DeclareOptionX{firstcolor}[lapislazuli]{%
\def\firstcolor{#1}%
}
\DeclareOptionX{secondcolor}[-\firstcolor]{%
\def\secondcolor{#1}%
}
\ExecuteOptionsX{firstcolor, secondcolor}
\ProcessOptionsX
%--------------
%-- SETTINGS
\graphicspath{{images/}}
\addmediapath{{videos/}}
%%% THEME BEAMER %%%
\usetheme{Madrid}
\useinnertheme{circles}
\useoutertheme{default}
\usefonttheme{professionalfonts}
\usecolortheme[named=\firstcolor]{structure}
\setbeamertemplate{footline}{}
%%%%%%%%%%%%%%%%%%%%
%%% ENUMERATE %%%
\setbeamerfont{enumerate item}{family=\rmfamily}
\setbeamercolor{enumerate item}{fg=black}
\setbeamertemplate{enumerate item}{\textbf{\insertenumlabel.}}
%%%%%%%%%%%%%%%%%
%%% ITEMIZE %%%
\setbeamertemplate{itemize item}[circle]
\setbeamercolor{itemize item}{fg=black}
\setbeamertemplate{itemize subitem}{\textendash}
%%%%%%%%%%%%%%%
%%% NAVIGATION %%%
\setbeamertemplate{navigation symbols}{%
\insertframenavigationsymbol
\insertsectionnavigationsymbol
}
%%%%%%%%%%%%%%%%%%
%%% ToC %%%
% change l'espace vertical entre les sections
\patchcmd{\beamer@sectionintoc}
{\vfill}
{\setlength{\itemsep}{10pt}\vskip\itemsep}
{}
{}
% change le symbole pour lister
\defbeamertemplate{subsection in toc}{bullets}{%
\leavevmode
\parbox[t]{1em}{\textbullet\hfill}%
\parbox[t]{\dimexpr\textwidth-1em\relax}{\inserttocsubsection}\par
}
\defbeamertemplate{section in toc}{sections numbered roman}{%
\leavevmode%
{\bfseries
\MakeUppercase{\romannumeral\inserttocsectionnumber}.\ %
\inserttocsection\par
}
}
\setbeamertemplate{section in toc}[sections numbered roman]
\setbeamercolor{section in toc}{fg=\secondcolor}
\setbeamertemplate{subsection in toc}[bullets]
\setbeamercolor{subsection in toc}{fg=\firstcolor}
%%%%%%%%%%%
%%% MDFRAMED %%%
\pgfdeclarehorizontalshading{partiebkg}{100bp}{
color(0bp)=(white!40);color(100bp)=(black!0)
}
%
\pgfdeclarehorizontalshading{sspartiebkg}{100bp}{
color(0bp)=(white!40);color(100bp)=(black!0)
}
\mdfdefinestyle{partie}{
outerlinewidth=1em, outerlinecolor=white,%
% leftmargin=-1em, rightmargin=-1em,%
middlelinewidth=1.2pt, linecolor={\secondcolor},roundcorner=5pt,%
apptotikzsetting={
\tikzset{
mdfbackground/.append style={
shading=partiebkg
}
}
}
}
%
\mdfdefinestyle{sspartie}{
outerlinewidth=1em, outerlinecolor=white,%
% leftmargin=-1em, rightmargin=-1em,%
middlelinewidth=1.2pt, linecolor=\firstcolor,roundcorner=5pt,%
apptotikzsetting={
\tikzset{
mdfbackground/.append style={
shading=partiebkg
}
}
}
}
%%%%%%%%%%%%%%%%
%-----------
%-- OWN COMMANDS
% \titre{TITRE}{ANNÉE}{AUTEUR}{LIEU}
% defini le titre du document
\newcommand{\titre}[4]{%
\title{#1}
\subtitle{#2}
\date{#3}
\author{Cours}
\institute{#4}
}
% \debut et \fin
% renvoie les slides d'intro et de cloture du document
\newcommand{\debut}{%
\begin{frame}
\titlepage
\end{frame}
}
\newcommand{\fin}{%
\section*{Plan}
\begin{frame}
\begin{center}{\Large Plan }\end{center}
\tableofcontents
\end{frame}
}
% \partie{TITRE} et \sspartie{TITRE}
% definie un slide de titre pour une (sous)section
\newcounter{partiecounter}
\newcounter{sspartiecounter}
\NewDocumentCommand \partie { G{Partie} } {%
\def\cType{\Roman}
\stepcounter{partiecounter}
\setcounter{sspartiecounter}{0}
\section{#1}
\begin{frame}
\begin{center}
\begin{mdframed}[style=partie]
\centering \textcolor{\secondcolor}{\textbf{ \cType{partiecounter}. #1}}
\end{mdframed}
\end{center}
\end{frame}
}
\NewDocumentCommand \sspartie { G{Sous-Partie} } {%
\def\cType{\arabic}
\stepcounter{sspartiecounter}
\subsection{#1}
\begin{frame}
\begin{center}
\begin{mdframed}[style=sspartie]
\centering \textcolor{\firstcolor}{\textbf{ \cType{sspartiecounter}) #1}}
\end{mdframed}
\end{center}
\end{frame}
}
% \ftitre
% definie le titre des frames de section et de sous-section en fonction
% des (sous)sections actuellement definies
\NewDocumentCommand \ftitre { }{%
\ifnum \value{partiecounter}>0
\frametitle{\textbf{\Roman{partiecounter}. \insertsection}}
\fi
\ifnum \value{sspartiecounter}>0
\framesubtitle{\textbf{\arabic{sspartiecounter}) \insertsubsection}}
\fi
}
%%% BLOCKS %%%
% definition de divers blocks personnels : definition, theoreme, exemple,
% exercice (avec numerotation), remarque, methode.
% déf(*)(TITRE)
\NewDocumentEnvironment{déf}{ s g }{%begin
\setbeamercolor{block title}{fg=red,bg=blush!10!white}
\IfBooleanTF #1
{
\IfNoValueTF {#2} {
\begin{block} {}
}{
\begin{block} {#2}
}
}{
\IfNoValueTF {#2} {
\begin{block} {Définition}
}{
\begin{block} {Définition - #2}
}
}
}{%end
\end{block}
}
% thm(TITRE)
\NewDocumentEnvironment{thm}{ g }{%begin
\setbeamercolor{block title}{fg=white,bg=red!90!white}
\IfNoValueTF {#1} {
\begin{block} {Théorème}
}{
\begin{block} {Théorème - #1}
}
}{%end
\end{block}
}
% ppt(*)(TITRE)
\NewDocumentEnvironment{ppt}{ s g }{%begin
\setbeamercolor{block title}{fg=white,bg=brickred!90!white}
\IfBooleanTF #1
{
\IfNoValueTF {#2} {
\begin{block} {}
}{
\begin{block} {#2}
}
}{
\IfNoValueTF {#2} {
\begin{block} {Propriété}
}{
\begin{block} {Propriété - #2}
}
}
}{%end
\end{block}
}
% pre(TITRE)
\NewDocumentEnvironment{pre}{ g }{%begin
\setbeamercolor{block title}{fg=hanblue,bg=airforceblue!10!white}
\IfNoValueTF {#1} {
\begin{block} {Preuve}
}{
\begin{block} {#1}
}
}{%end
\end{block}
}
% rmq(TITRE)
\NewDocumentEnvironment{rmq}{ G{Remarque} }{%begin
\setbeamercolor{block title}{fg=blush,bg=blush!10!white}%fg=white,bg=cerisepink!80!white}%
\begin{block} {\faExclamationTriangle \hspace{.125em} #1}
}{%end
\end{block}
}
% met<0|i|I|a|A|1>(TITRE)
\newcounter{methodecounter}
\NewDocumentEnvironment{met} { O{0} g }{%begin
\setbeamercolor{block title}{fg=black,bg=amber!75!white}%
\ifthenelse{ \NOT \equal{#1}{0} }{
\ifthenelse{ \equal{#1}{i} }
{
\def\cType{\roman}
}
{
\ifthenelse{ \equal{#1}{I} }
{
\def\cType{\Roman}
}
{
\ifthenelse{ \equal{#1}{a} }
{
\def\cType{\alph}
}
{
\ifthenelse{ \equal{#1}{A} }
{
\def\cType{\Alph}
}
{
\def\cType{\arabic}
}
}
}
}
\stepcounter{methodecounter}
\IfNoValueTF {#2} {
\begin{block}{\faCogs \hspace{.125em} Méthode \cType{methodecounter}\ }
}{
\begin{block}{\faCogs \hspace{.125em} Méthode \cType{methodecounter}\ - #2}
}
}{
\IfNoValueTF {#2} {
\begin{block}{\faCogs \hspace{.125em} Méthode\ }
}{
\begin{block}{\faCogs \hspace{.125em} Méthode\ - #2}
}
}
}{%end
\end{block}
}
% exe(TITRE)
\NewDocumentEnvironment{exe}{ G{Exemple} }{%begin
\setbeamercolor{block title}{fg=darkspringgreen,bg=green!10!white}%
\begin{block} {\faLightbulbO \hspace{.125em} #1}
}{%end
\end{block}
}
% exo<0|i|I|a|A|1>(TITRE)
\newcounter{exercicecounter}
\NewDocumentEnvironment{exo} { O{0} G{Exercice} }{%begin
\setbeamercolor{block title}{fg=white,bg=airforceblue!90!white}%
\ifthenelse{ \NOT \equal{#1}{0} }{
\ifthenelse{ \equal{#1}{i} }
{
\def\cType{\roman}
}
{
\ifthenelse{ \equal{#1}{I} }
{
\def\cType{\Roman}
}
{
\ifthenelse{ \equal{#1}{a} }
{
\def\cType{\alph}
}
{
\ifthenelse{ \equal{#1}{A} }
{
\def\cType{\Alph}
}
{
\def\cType{\arabic}
}
}
}
}
\stepcounter{exercicecounter}
\begin{block}{#2 \cType{exercicecounter}\ }
}{
\begin{block}{#2\ }
}
}{%end
\end{block}
}
% app<0|i|I|a|A|1>(TITRE)
\newcounter{applicationcounter}
\NewDocumentEnvironment{app} { O{0} G{Application} }{%begin
\setbeamercolor{block title}{fg=white,bg=airforceblue!90!white}%
\ifthenelse{ \NOT \equal{#1}{0} }{
\ifthenelse{ \equal{#1}{i} }
{
\def\cType{\roman}
}
{
\ifthenelse{ \equal{#1}{I} }
{
\def\cType{\Roman}
}
{
\ifthenelse{ \equal{#1}{a} }
{
\def\cType{\alph}
}
{
\ifthenelse{ \equal{#1}{A} }
{
\def\cType{\Alph}
}
{
\def\cType{\arabic}
}
}
}
}
\stepcounter{applicationcounter}
\begin{block}{\faFileTextO \hspace{.125em} #2 \cType{applicationcounter}\ }
}{
\begin{block}{\faFileTextO \hspace{.125em} #2\ }
}
}{%end
\end{block}
}
%%%%%%%%%%%%%%
% \includemovie
% permet d'inclure une video dans une frame
\newcommand{\includemovie}[3]{%
\includemedia[%
width=#1,height=#2,%
activate=pagevisible,%
deactivate=pageclose,%
addresource=#3,%
flashvars={%
source=#3 % same path as in addresource!
&autoPlay=false % default: false; if =true, automatically starts playback after activation (see option activation)
&loop=false % if loop=true, media is played in a loop
&controlBarAutoHideTimeout=0 % time span before auto-hide
}%
]{}{VPlayer.swf}%
}
%---------------
%-- MODIFIED COMMANDS
%--------------------
\makeatother