% Cette classe de document est basee sur [article].
% Assurez vous d'avoir tous les paquets utiles (par exemple pifont, lmodern, sectsty...)
% Une commande (\docutitre{}) devra être entree dans votre document afin de renseigner le champ de l'en-tete. En cas d'absence, le champ sera vide.
% Pourquoi "Riesling"? parce que cela va tres bien avec les Bredele.

%%%%%% Licence %%%%%%%%%%%%%%%%%%%%%
% la classe LaTeX Riesling est placée sous licence GNU-GPL v3
% copyright 2010 Christophe Masutti
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.

% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.

% You should have received a copy of the GNU General Public License
% along with this program.  If not, see <http://www.gnu.org/licenses/>.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{riesling}[14/09/2010 v0.1]

\LoadClass[twoside]{article}	% notez le "twoside", essentiellement 
								% pour alterner les en-tete et pieds de
								% page gauche et droit
\ExecuteOptions{11pt,a4paper}
\RequirePackage{ifpdf, color, graphicx, fancyhdr}
\RequirePackage{textcomp}
\RequirePackage[utf8]{inputenc} % attention a l'UTF8, on peut choisir latin1...
\RequirePackage{multicol}
\RequirePackage{tikz} % tikz est utilise pour tracer les \boitemagique
\RequirePackage{framed} % utilise pour coloriser les encarts


\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
%\renewcommand*\familydefault{\sfdefault} %% pour tout mettre en sans serif

\RequirePackage[frenchb]{babel}
\RequirePackage{amsmath}
\RequirePackage{amsfonts}
\RequirePackage{amssymb}
\RequirePackage{url}
\RequirePackage{fancyvrb}
\RequirePackage{showexpl}
\RequirePackage[breaklinks,colorlinks,linkcolor=black,citecolor=black, pagecolor=black,urlcolor=black]{hyperref}
\RequirePackage{pifont} % surtout pour les puces
\RequirePackage{graphicx}
\RequirePackage{sectsty, ulem} % obligatoire, pour jouer avec l'apparence des titres
\RequirePackage[a4paper, top=3 cm, bottom=3 cm, left=3 cm, right=3 cm]{geometry}
\RequirePackage{shorttoc} % pour le sommaire, au debut.

\fancyhf{}
\pagestyle{fancy} % mise en page

% francisation (avec frenchb, cf plus haut)

\selectlanguage{francais}
\frenchspacing
\FrenchFootnotes




%%%%%%%%% definition des jeux couleurs %%%%%%%%%%%
% a declarer en option par l'utilisateur lors
% de la declaration de classe

\DeclareOption{rhin}{
\definecolor{fondetsection}{RGB}{69,78,135}
\definecolor{fondtitre}{RGB}{34,40,75}
\definecolor{grisfonce}{RGB}{49,49,49}
\definecolor{grisclair}{RGB}{111,111,111}
\definecolor{blanc}{RGB}{255,255,255}
\definecolor{fonddeboite}{RGB}{218,221,239}
\definecolor{shadecolor}{RGB}{218,221,239}
}
\ProcessOptions

\DeclareOption{rohan}{
\definecolor{fondetsection}{RGB}{40,47,112}
\definecolor{fondtitre}{RGB}{130,55,63}
\definecolor{grisfonce}{RGB}{49,49,49}
\definecolor{grisclair}{RGB}{111,111,111}
\definecolor{blanc}{RGB}{255,255,255}
\definecolor{fonddeboite}{RGB}{223,223,246}
\definecolor{shadecolor}{RGB}{223,223,246}
}
\ProcessOptions


\DeclareOption{noiretblanc}{
\definecolor{fondetsection}{RGB}{130,130,130}
\definecolor{fondtitre}{RGB}{130,130,130}
\definecolor{grisfonce}{RGB}{49,49,49}
\definecolor{grisclair}{RGB}{111,111,111}
\definecolor{blanc}{RGB}{255,255,255}
\definecolor{fonddeboite}{RGB}{232,232,232}
\definecolor{shadecolor}{RGB}{232,232,232}
}
\ProcessOptions

\DeclareOption{strongried}{
\definecolor{fondetsection}{RGB}{44,83,55}
\definecolor{fondtitre}{RGB}{61,3,75}
\definecolor{grisfonce}{RGB}{49,49,49}
\definecolor{grisclair}{RGB}{111,111,111}
\definecolor{blanc}{RGB}{255,255,255}
\definecolor{fonddeboite}{RGB}{223,229,222}
\definecolor{shadecolor}{RGB}{223,229,222}
}
\ProcessOptions

\DeclareOption{ried}{
\definecolor{fondetsection}{RGB}{114,133,87}
\definecolor{fondtitre}{RGB}{96,59,67}
\definecolor{grisfonce}{RGB}{49,49,49}
\definecolor{grisclair}{RGB}{111,111,111}
\definecolor{blanc}{RGB}{255,255,255}
\definecolor{fonddeboite}{RGB}{232,220,195}
\definecolor{shadecolor}{RGB}{232,220,195}
}
\ProcessOptions

\DeclareOption{riedest}{
\definecolor{fondetsection}{RGB}{112,70,109}
\definecolor{fondtitre}{RGB}{59,79,52}
\definecolor{grisfonce}{RGB}{49,49,49}
\definecolor{grisclair}{RGB}{111,111,111}
\definecolor{blanc}{RGB}{255,255,255}
\definecolor{fonddeboite}{RGB}{226,224,244}
\definecolor{shadecolor}{RGB}{226,224,244}
}
\ProcessOptions

\DeclareOption{confiture}{
\definecolor{fondetsection}{RGB}{143,76,22}
\definecolor{fondtitre}{RGB}{187,40,0}
\definecolor{grisfonce}{RGB}{49,49,49}
\definecolor{grisclair}{RGB}{111,111,111}
\definecolor{blanc}{RGB}{255,255,255}
\definecolor{fonddeboite}{RGB}{246,233,222}
\definecolor{shadecolor}{RGB}{246,233,222}
}
\ProcessOptions

%%%%%%%%%%%%%%%


%%%%%%% Definir l'en-tete et le pied de page (fancyhdr)%%%%%%%%

%%%% Commande \docutitre pour l'en-tete.
%%%% Il faut entrer le contenu via la commande: \docutitre{blablabla}
\newcommand*{\docutitre}[1]{\gdef\@docutitre{#1}}
\docutitre{}

%% En-tete
%pages impaires
\fancyhead[RO]{\sffamily
\color{grisfonce}\@docutitre % ici le contenu de \docutitre{xxx}
}
\fancyhead[LO]{\sffamily
\color{grisfonce}\@date % ici la date
}

%pages paires
\fancyhead[RE]{\sffamily
\color{grisfonce}\@date % ici la date
}

\fancyhead[LE]{\sffamily
\color{grisfonce}\@docutitre % ici le contenu de \docutitre{xxx}
}


%%%Pieds de page
%pages impaires
\fancyfoot[RO]{\sffamily
\fcolorbox{fondtitre}{fondtitre}{\color{blanc}page \thepage}} % ici le num de page
\fancyfoot[LO]{\sffamily
\fcolorbox{blanc}{blanc}{\color{grisfonce}\@author}} % ici l'auteur
%pages paires
\fancyfoot[LE]{\sffamily
\fcolorbox{fondtitre}{fondtitre}{\color{blanc}page \thepage}} % ici le num de page
\fancyfoot[RE]{\sffamily
\fcolorbox{blanc}{blanc}{\color{grisfonce}\@author}} % ici l'auteur


%%%%%%% ligne de l'entete %%%%%%%%%%%
% pour la rendre invisible, sur un fond blanc... on la peint en blanc

\renewcommand{\headrule}{{\color{blanc}
\hrule width\headwidth height\headrulewidth \vskip-\headrulewidth}}

%%%%%%% Titre du document %%%%%%%%
%% mise en page du titre

\makeatletter
\def\maketitle{%
\thispagestyle{empty} %si on veut que la premiere page n'ai pas d'en-tete
\begin{center}
	\fcolorbox{grisfonce}{fondtitre}{
	\begin{minipage}{0.97\textwidth}
	\vspace{0.8cm}
	\begin{center}
		\begin{LARGE}\sffamily\color{blanc}
			\@title
		\end{LARGE}
		\vfill
	\end{center}
	\begin{flushright}\sffamily\color{blanc}
		\@date \\ %si pas d'en-tete premiere page, alors mettre date ici
		\@author
	\end{flushright}
	\end{minipage}
	}
\end{center}
}
\makeatother


%%%%%%% on utilise sectsty, qui permet de definir des styles de titre

%%%%%%%%%% definir le titre de section %%%%%%%
\renewcommand*{\hrulefill}[1][0.3mm]{\leavevmode \leaders \hrule height #1 \hfill \kern 0pt}

\makeatletter
\newcommand*{\encart}[1]{
	\begin{center}
\fcolorbox{fondetsection}{fondetsection}{
		\parbox[m]{11cm}{
			\color{blanc}\sffamily
			\begin{center}
 					#1
			\end{center}
		}
	}
\end{center}
}
\makeatother

%%%% Definir titre de sous-section
\makeatletter
\newcommand*{\entreligne}[1]{%
%\noindent\color{fondetsection}\hrulefill \\ %rajouter une ligne au dessus
\color{fondetsection}\sffamily
 #1
\noindent\color{fondetsection}\hrulefill}
\makeatother


%%%%%%%%%% Definir le titre de sous-sous-section %%%%%%%%
\makeatletter
\newcommand*{\jolisubsub}[1]{%
\noindent\parbox[m]{0.4cm}{\color{fondetsection}\ding{229}}
\color{fondtitre}\bf\nohang
 #1
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%% Puis jouer avec sectsty%%%%%

\sectionfont{\raggedright\encart}
\subsectionfont{\raggedright\entreligne}
\subsubsectionfont{\raggedright\jolisubsub}

\paragraphfont{\color{fondtitre}\sffamily}
\subparagraphfont{\color{grisfonce}\sffamily}

%%%%%%%%%%%%%%%%%%%%%%%%

%%% Definir les puces (grace au package frenchb)
\frenchbsetup{ItemLabeli=\color{fondetsection}\ding{251}}


%%%%%%%%%% Boitemagique
\newcommand*{\boitemagique}[2]{
\begin{center}
\begin{tikzpicture}
% la boite
\node[rectangle,draw=fondtitre!100,fill=fonddeboite!100,inner sep=10pt, inner ysep=20pt] (mabox)
{
\begin{minipage}{12cm}
#2
\end{minipage}
};
% le titre de la boite
\node[fill=fondtitre!100, text=white, rectangle] at (mabox.north) {\sffamily\textbf{#1}};
\end{tikzpicture}
\end{center}
}

%%%%%% Encart %%%%%
\newcommand*{\boitesimple}[1]{%
\begin{shaded}
	#1
\end{shaded}
}



