\NeedsTeXFormat{LaTeX2e}% écrit pour pour LaTeX-2ε
%
\ProvidesPackage{chimakehelps}[2016/11/02 Extension pour standardiser mes fichiers d'aide V0.1]%par LeChi
%
% % % % % % % % % % % % % % % % % % % % % % % % %
% % %                                       % % %
% % %    Commandes pour écrire                                   % % %
% % %    du faux texte                                   % % %
% % %                                       % % %
%
\RequirePackage{lipsum}%
\setlipsumdefault{1-2}% choisit des paragraphes par défaut
\newcounter{lipsumpar}% crée un compteur à utiliser pour lipsum
\newcounter{lipsumparfin}% crée un compteur à utiliser pour lipsum
\setcounter{lipsumpar}{1}% initialise le compteur pour lipsum
% % %---------------------------
\newcommand{\lipsumpardeb}[1]{\setcounter{lipsumpar}{#1}}% remettre le compteur lipsumpar à 1
% % %---------------------------
\newcommand{\dutexte}[1]{%  Insérer du texte
 \setcounter{lipsumparfin}{#1}\addtocounter{lipsumparfin}{\thelipsumpar}%
 {\color{gray}\lipsum*[\thelipsumpar-\thelipsumparfin]}%
 \setcounter{lipsumpar}{1+\thelipsumparfin}}%
%
\newcommand{\lipsumun}{{\color{gray}\lipsum*[1]}}%
%
\newcommand{\lipsumdeux}{{\color{gray}\lipsum*[2]}}%
%
%
% % % % % % % % % % % % % % % % % % % % % % % % %
% % %                                       % % %
% % % Commandes pour les mises en pages     % % %
% % % et les entêtes et pieds-de-page       % % %
% % %                                       % % %
% % % % % % % % % % % % % % % % % % % % % % % % %
%
\newlength{\myoddoffset}%
\newlength{\myevenoffset}
\RequirePackage{calc}% pour faire de petits calculs
\RequirePackage{colortbl}% pour utiliser facilement des couleurs dans les tableaux...
\RequirePackage{ifthen}% pour faire des tests dans les macros
\RequirePackage{multicol}% pour avoir des pages avec plusieurs colonnes
%
\RequirePackage[includehead,includefoot,includemp,%
bindingoffset=25mm,% la marge de reliure
left=10mm,right=10mm,top=10mm,bottom=10mm,% les marges
headheight=6mm,headsep=3mm,footskip=6mm,% hauteur et séparation entête + hauteur chipied de page
marginparwidth=50mm,marginparsep=2mm]{geometry}% largeur et séparation notes latérales
%
\RequirePackage{fancyhdr}%  en-têtes et chipieds de pages personnalisés.
\RequirePackage{lastpage}%  pour insérer le nombre de pages
\fancyhf{}% pour avoir les entêtes et des pieds de page.
\pagestyle{fancy}% en-têtes et pieds de pages personnalisés.
%
%
\newcommand{\chihelpentetpied}{% Définit les pieds de pages et entêtes
\fancyhead{}%
\renewcommand{\headrule}{{\color{red}\hrule \headwidth \headrulewidth \vskip-\headrulewidth}}%
\rhead[\nouppercase{\footnotesize \leftmark{}}]{\nouppercase{\footnotesize \rightmark{}}}% {} par défaut, [] en recto-verso
\chead{\footnotesize }%
\lhead[\nouppercase{\footnotesize \rightmark{}}]{\nouppercase{\footnotesize \leftmark{}}}% {} par défaut, [] en recto-verso
\fancyfoot{}
\renewcommand{\footrule}{{\color{blue}\vskip-\footruleskip\vskip-\footrulewidth\hrule\headwidth \footrulewidth\vskip\footruleskip}}%
\rfoot[\footnotesize \auteur]{\nouppercase{\footnotesize \jour}}% {} par défaut, [] en recto-verso
\lfoot[\footnotesize \jour]{\nouppercase{\footnotesize \auteur}}% {} par défaut, [] en recto-verso
\cfoot{\footnotesize \thepage{}}%
}%
%
\newcommand{\chihelppages}{% définit quelques mises en page.
	\geometry{reversemarginpar=false}
	% Mise en page pour la Une
	\geometry{bindingoffset=0mm,%                    la marge de reliure                                     
	left=10mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=0mm,headsep=0mm,footskip=0mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=0mm,marginparsep=0mm}%            largeur de la zone latérale de notes et sa séparation    
	\savegeometry{helplaune}\geometry{reversemarginpar=true}%
	\savegeometry{helplaune_r}\geometry{reversemarginpar=false}%
	% --------------------------------------------------------------------------------------------------- 
	% Pour les pages de titres
	% ^^^^^^^^^^^^^^^^^^^^^^^^
	\geometry{bindingoffset=25mm,%                   la marge de reliure                                     
	left=10mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=0mm,headsep=0mm,footskip=6mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=0mm,marginparsep=0mm}%            largeur de la zone latérale de notes et sa séparation
	\savegeometry{helppourtitres}\geometry{reversemarginpar=true}%
	\savegeometry{helppourtitres_r}\geometry{reversemarginpar=false}%
	% --------------------------------------------------------------------------------------------------- 
	% Avec une très large zone de notes
	% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	\geometry{bindingoffset=25mm,%                   la marge de reliure                                     
	left=10mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=6mm,headsep=3mm,footskip=6mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=80mm,marginparsep=2mm}%           largeur de la zone latérale de notes et sa séparation
	\savegeometry{helptreslargezonenotes}\geometry{reversemarginpar=true}%
	\savegeometry{helptreslargezonenotes_r}\geometry{reversemarginpar=false}%
	% --------------------------------------------------------------------------------------------------- 
	% Avec une large zone de notes
	% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	\geometry{bindingoffset=25mm,%                   la marge de reliure                                     
	left=10mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=6mm,headsep=3mm,footskip=6mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=50mm,marginparsep=2mm}%           largeur de la zone latérale de notes et sa séparation    
	\savegeometry{helplargezonenotes}\geometry{reversemarginpar=true}%
	\savegeometry{helplargezonenotes_r}\geometry{reversemarginpar=false}%
	% --------------------------------------------------------------------------------------------------- 
	% Avec une zone moyenne de notes
	% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	\geometry{bindingoffset=25mm,%                   la marge de reliure                                     
	left=10mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=6mm,headsep=3mm,footskip=6mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=25mm,marginparsep=2mm}%           largeur de la zone latérale de notes et sa séparation     
	\savegeometry{helpmoyennezonenotes}\geometry{reversemarginpar=true}%
	\savegeometry{helpmoyennezonenotes_r}\geometry{reversemarginpar=false}%
	% --------------------------------------------------------------------------------------------------- 
	% Avec une fine zone de notes
	% ^^^^^^^^^^^^^^^^^^^^^^^^^^^
	\geometry{bindingoffset=25mm,%                   la marge de reliure                                     
	left=10mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=6mm,headsep=3mm,footskip=6mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=15mm,marginparsep=2mm}%           largeur de la zone latérale de notes et sa séparation    
	\savegeometry{helpfinezonenotes}\geometry{reversemarginpar=true}%
	\savegeometry{helpfinezonenotes_r}\geometry{reversemarginpar=false}%
	% --------------------------------------------------------------------------------------------------- 
	% Sans zone de notes
	% ^^^^^^^^^^^^^^^^^^
	\geometry{bindingoffset=25mm,%                   la marge de reliure                                     
	left=10mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=6mm,headsep=3mm,footskip=6mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=0mm,marginparsep=0mm}%            largeur de la zone latérale de notes et sa séparation   
	\savegeometry{helpsanszonenotes}\geometry{reversemarginpar=true}%
	\savegeometry{helpsanszonenotes_r}\geometry{reversemarginpar=false}%
	% --------------------------------------------------------------------------------------------------- 
	% pour les pages de code
	% ^^^^^^^^^^^^^^^^^^
	\geometry{bindingoffset=10mm,%                   la marge de reliure                                     
	left=15mm,right=15mm,top=10mm,bottom=10mm,%      les marges                                              
	headheight=6mm,headsep=3mm,footskip=6mm,%        hauteur et séparation entête + hauteur chipied de page     
	marginparwidth=0mm,marginparsep=0mm}%           largeur de la zone latérale de notes et sa séparation   
	\savegeometry{helplisting}\geometry{reversemarginpar=true}%
	\savegeometry{helplisting_r}\geometry{reversemarginpar=false}%
}% 
%
\newcommand{\loadchihelpgeometry}[2][N]{%
  \ifthenelse{\equal{#1}{R}}%
   {%
   \loadgeometry{#2_r}%
   \setlength{\myevenoffset}{\marginparsep}%
   \setlength{\myoddoffset}{\marginparwidth + \marginparsep}%
   \fancyheadoffset[leh,roh]{\myevenoffset}%
   \fancyheadoffset[loh,reh]{\myoddoffset}%
   \fancyfootoffset[leh,roh]{\myevenoffset}%
   \fancyfootoffset[loh,reh]{\myoddoffset}%
   }%
   {%
   \loadgeometry{#2}%
   \setlength{\myevenoffset}{\marginparsep}%
   \setlength{\myoddoffset}{\marginparwidth + \marginparsep}%
   \fancyheadoffset[leh,roh]{\myoddoffset}%
   \fancyheadoffset[loh,reh]{\myevenoffset}%
   \fancyfootoffset[leh,roh]{\myoddoffset}%
   \fancyfootoffset[loh,reh]{\myevenoffset}%
   }%
}%     
%
% % %  Variables pour les pages multicolonnes
\setlength{\columnseprule}{0pt}% largeur du trait séparant les colonnes
\setlength{\columnsep}{30pt}% séparation des deux colonnes
%
% % % % % % % % % % % % % % % % % % % % % % % % %
% % %                                       % % %
% % % Commandes pour écrire les commandes,  % % %
% % % variables%et noms de fichier          % % %
% % %                                       % % %
% % % % % % % % % % % % % % % % % % % % % % % % %
%
\RequirePackage{xcolor}% https://en.wikibooks.org/wiki/LaTeX/Colors
\newcommand{\chicom}[1]{\textsf{\footnotesize{\textcolor{blue}{\textbf{\textbackslash{}#1}}}}}%
\newcommand{\chivar}[1]{\textsf{\footnotesize{\textcolor{violet}{\textbf\textbackslash{}{#1}}}}}%
\newcommand{\chifich}[1]{\textsf{\footnotesize{\textcolor{darkgray}{\textbf{#1}}}}}%
%
%
% % % % % % % % % % % % % % % % % % % % % % % % %
% % %                                       % % %
% % % Pour établir l'index des commandes    % % %
% % %                                       % % %
% % % % % % % % % % % % % % % % % % % % % % % % %
%
\RequirePackage{makeidx}%                pour créer l'index
\RequirePackage[columns=1]{idxlayout}%   pour que l'index n'ait qu'une seule colonne
\makeindex%                              demande la création de l'index
%
%
%
%
%
% % % % % % % % % % % % % % % % % % % % % % % % %
% % %                                       % % %
% % % Environnement pour verbatimer         % % %
% % % la commande                           % % %
% % %                                       % % %
% % % % % % % % % % % % % % % % % % % % % % % % %
%
%\RequirePackage{alltt}% pour écrire les commandes en verbatim mais avec gras etc.
\RequirePackage{fvrb-ex}%pour écrire une fonction et son résultat à côté
\RequirePackage{fancyvrb}% pour écrire mieux en verbatim
%
%
\DefineVerbatimEnvironment{chicitecommande}{Verbatim}%
{gobble=0,%
baselinestretch=1.25,%
fontfamily=lmss,fontseries=b,fontsize=\footnotesize,fontshape=auto,formatcom=\color{blue},%
frame=single,rulecolor=\color{black},xrightmargin=0.15\textwidth,xleftmargin=0.15\textwidth}%
% % %
\DefineVerbatimEnvironment{chicitecommandelarge}{Verbatim}%
{gobble=0,%
baselinestretch=1.25,% 
fontfamily=lmss,fontseries=b,fontsize=\footnotesize,fontshape=auto,formatcom=\color{blue},%
frame=single,rulecolor=\color{black},xrightmargin=0\textwidth,xleftmargin=0\textwidth}%
% % %
% % % avec possibilité de lancer des commandes \textbf{...} -> |textbf"...!%
% % %
\DefineVerbatimEnvironment{chicitecommandechars}{Verbatim}%
{commandchars=|\"\!,gobble=0,% 
baselinestretch=1.25,% 
fontfamily=lmss,fontseries=b,fontsize=\footnotesize,fontshape=auto,formatcom=\color{blue},%
frame=single,rulecolor=\color{black},xrightmargin=0.15\textwidth,xleftmargin=0.15\textwidth}%
% % %---------------------------------------------------------------------------------------------------% % %
% % %
\def\CommandeEcrite{\textbf{{\textcolor{blue}{Résultat obtenu}}}}% 
% % %
% % %
% % %
% % %---------------------------------------------------------------------------------------------------% % %
% % %
% % % création de la liste des commandes et variables des extensions% 
\RequirePackage{array,multirow,makecell}%
\setcellgapes{1pt}%
\makegapedcells% 
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash }b{#1}}% 
\newcolumntype{L}[1]{>{\raggedright\arraybackslash }b{#1}}%
\newcolumntype{C}[1]{>{\centering\arraybackslash }b{#1}}%
\newcommand{\chinonante}[1]{{\begin{sideways}#1~~\end{sideways}}}% 
% % %
\newenvironment{chitableaucommandes}%
{\begin{tabular}{|L{5cm} L{5cm} L{3cm}|}\hline Nom & Type & Extension \\ \hline}%
{\hline \end{tabular} \bigskip{}}% 
% % %
\newcommand{\chilstcom}[3]{\textbf{#1} & #2 & \emph{#3}\index{\textbf{\textsc{#2}}!#1\,(\emph{#3})}\\}%
%
%
% % % % % % % % % % % % % % % % % % % % % % % % %
% % %                                       % % %
% % % Sortie du listing du package pour     % % %
% % % lequel l'aide est écrite              % % % 
% % %                                       % % %
% % % % % % % % % % % % % % % % % % % % % % % % %
%
\RequirePackage{listings}%
\lstloadlanguages{TeX}%
\lstset{extendedchars=true,numbers=left,breaklines=true,fontadjust=true,%
basicstyle=\scriptsize\ttfamily,frame=single}%
