\documentclass[a4paper,french]{article}
\usepackage[latin1]{inputenc}
	\usepackage[T1]{fontenc}
\usepackage{babel} 
\usepackage{etex}
\usepackage{fourier}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\usepackage{cellspace}
	\setlength{\cellspacetoplimit}{4pt}
	\setlength{\cellspacebottomlimit}{4pt}
\usepackage[colorlinks=true,urlcolor=blue]{hyperref}
\usepackage{pas-tableur}
\usepackage{titlesec}
\usepackage{tcolorbox}
	\tcbuselibrary{skins}
	\tcbuselibrary{theorems}
	\tcbuselibrary{breakable}	
\usepackage{listings}
% ----------------------

\usetikzlibrary{arrows}

\setlength{\parindent}{0pt}

\input{doc.codes.tex}
\input{doc.styles.tex}

\begin{document}

\begin{center}
\begin{tcolorbox}[head]
{\bfseries\LARGE Documentation \texttt{pas-tableur} }\\[3mm]
{\large Version 2.01 -- \today}
\end{tcolorbox}

{\large 
\href{http://www.mathweb.fr/contact.html}{St\'ephane Pasquet}}
\end{center}

\begin{tcolorbox}[toc]
\makeatletter
\@starttoc{toc}
\makeatother
\end{tcolorbox}

\section{Introduction et installation}

L'extension \texttt{pas-tableur.sty} a pour but d'imiter l'apparence des tableurs.

Il ne permet en aucun cas d'effectuer des calculs type tableur.

\medskip

Pour cette version 2 de l'extension, j'ai souhait\'e utiliser une syntaxe dans le fichier sty plus intuitive et plus pratique pour effectuer d'autres op\'erations par rapport \`a la version 1.

\medskip

Cette extension charge automatiquement les extensions suivantes :

\medskip

\begin{quote}
tikz (avec la librairie : calc) \\
xkeyval\\
xstring
\end{quote}

\newpage

On pourra d\'ecompresser \texttt{pas-tableur.zip} 
de sorte \`a avoir :

\begin{itemize}
\item Sous Ubuntu :

\begin{verbatim}
./texlive/texmf-local/tex/latex/pas-tableur/pas-tableur.sty
./texlive/texmf-local/doc/latex/pas-tableur/pas-tableur.tex
./texlive/texmf-local/doc/latex/pas-tableur/pas-tableur.pdf
./texlive/texmf-local/doc/latex/pas-tableur/doc.codes.tex
./texlive/texmf-local/doc/latex/pas-tableur/doc.styles.tex
\end{verbatim}

\item Sous Windows :

\begin{verbatim}
C:\texmf\latex\pas-tableur\pas-tableur.sty
C:\texmf\doc\pas-tableur\pas-tableur.tex
C:\texmf\doc\pas-tableur\pas-tableur.pdf
C:\texmf\doc\pas-tableur\doc.codes.tex
C:\texmf\doc\pas-tableur\doc.styles.tex
\end{verbatim}
\end{itemize}

\medskip

Apr\`es installation, n'oubliez pas de taper la commande \texttt{texhash} dans le terminal pour mettre \`a jour la base de donn\'ees des extensions.

\bigskip 

Sous Mac OS, j'imagine que l'arborescence ressemble \`a ce qui est \'ecrit pr\'ec\'edemment.


\section{\textbackslash tableur et \textbackslash tableur* : construire un tableur}

Pour cr\'eer un tableur, il faudra se mettre dans un environnement \texttt{tikzpicture} et utiliser la commande \textbackslash tableur ou sa version \'etoil\'ee.

\subsection{\textbackslash tableur}

\begin{tcblisting}{codeTEX}
\begin{tikzpicture}
\tableur[<nombre de lignes>]{<colonnes>}
\end{tikzpicture}
\end{tcblisting}

\bigskip

L'argument \og colonnes \fg{} peut se pr\'esenter de deux fa\c cons diff\'erentes :

\bigskip

\begin{tcblisting}{listing,title=Exemple 1}
\begin{tikzpicture}
\tableur[2]{A,B,C}
\end{tikzpicture}
\end{tcblisting}

\bigskip

\begin{tcblisting}{listing,title=Exemple 2}
\begin{tikzpicture}
\tableur[2]{A-D}
\end{tikzpicture}
\end{tcblisting}

\bigskip

Pour cette macro, les valeurs par d\'efaut sont :

\medskip

\begin{itemize}
\item la hauteur de chaque ligne : 1.57em ;
\item la largeur de chaque colonne : 7em ;
\item la largeur de la 1\iere{} colonne (contenant le num\'eros des lignes) : 3em ;
\item le nombre de lignes : si l'option entre crochets n'est pas inform\'ee, il y aura 1 ligne.
\end{itemize}

\medskip

Pour changer ces valeurs par d\'efaut, on utilisera les commandes :

\medskip

\begin{tcblisting}{codeTEX}
\tabcolwidth{2cm} % pour que chaque colonne ait une largeur de 2 cm
\tabnumlinewidth{1cm} % pour que la 1\`ere colonne fasse 1 cm de large
\tablineheight{15mm} % pour que chaque ligne ait une hauteur de 15 mm
\end{tcblisting}

\paragraph*{Attention :} il faut imp\'erativement mettre l'unit\'e (cm, mm, em, ex ou pt).

\subsection{\textbackslash tableur*}

La version \'etoil\'ee de \textbackslash\texttt{tableur} permet de construire un tableur dont les colonnes n'ont pas les m\^emes dimensions.


\begin{tcblisting}{listing}
\begin{tikzpicture}
\tableur*[2]{A/2cm,B/4cm,C/1cm,D/3cm}
\end{tikzpicture}
\end{tcblisting}

\newpage

\subsection{Les noms de colonnes}

Les colonnes peuvent porter n'importe quelle lettre majuscule de l'alphabet latin :

ABCDEFGHIJKLMNOPKRSTUVWXYZ.

On ne peut pas nommer les colonnes par \og AA \fg{} par exemple.

\medskip

Quant aux lignes, elles commencent toujours par \og 1 \fg.


\subsection{Les couleurs par d\'efaut}

Deux couleurs sont utilis\'ees pour les cases \og en-t-\^etes \fg{} :

\medskip

\begin{tcblisting}{codeTEX}
\definecolor{grayTopCell}{cmyk}{0.08,0.05,0.06,0}
\definecolor{grayBottomCell}{cmyk}{0.1,0.07,0.08,0}
\end{tcblisting}

\medskip

Pour les changer, vous pouvez les red\'efinir apr\`es avoir appel\'e \texttt{pas-tableur}.

\medskip

Le gris de s\'eparation des cellules est, quant \`a lui, d\'efini par :

\medskip

\begin{tcblisting}{codeTEX}
\definecolor{graySepCell}{cmyk}{0.29,0.21,0.21,0}
\end{tcblisting}

\subsection{La police de caract\`ere des en-t\^ete}

\begin{tcblisting}{codeTEX}
\newcommand{\helvbx}{\usefont{T1}{phv}{m}{n}}
\end{tcblisting}

\medskip

Ainsi, si vous souhaitez ins\'erer le nom d'une cellule dans votre document, vous pouvez utiliser la syntaxe suivante :

\medskip

\begin{tcblisting}{listing}
Dans la cellule {\helvbx A3}, nous 
avons ins\'er\'e la formule...
\end{tcblisting}


\subsection{Nomination des cellules}

Toujours dans un logique de simplifier la r\'edaction des documents, j'ai souhait\'e nommer chaque cellule de fa\c con intuitive.

Ainsi, la cellule {\helvbx A1} est nomm\'ee : cellA-1.

Cette pr\'ecision est utile lorsque l'on souhaite ajouter des fl\`eches vers certaines cellules comme dans l'exemple suivant :

\medskip

\begin{tcblisting}{listing}
\begin{tikzpicture}
\tableur[3]{A-D}
\draw[<-,>=latex'] (cellB-2.center) to[bend right=30] ($(cellB-2)+(2,-1.7)$) 
node[right] {C'est la cellule {\helvbx B2}};
\end{tikzpicture}
\end{tcblisting}

\section{\textbackslash celtxt et \textbackslash celtxt* : ins\'erer du texte dans une cellule}


\begin{tcblisting}{codeTEX}
% Ins\'erer une formule ou un texte
\celtxt[<options>}{<colonne>}{<ligne>}{<texte>}
% Ins\'erer un texte en mode math\'ematiques ou non
\celtxt*[<options>}{<colonne>}{<ligne>}{<texte>}
\end{tcblisting}

\medskip

Les options sont :

\medskip

\begin{itemize}
\item \texttt{c} : pour centrer le texte ;
\item \texttt{l} : pour positionner le texte \`a gauche (c'est cette valeur qui est d\'esign\'ee par d\'efaut) ;
\item \texttt{r} : pour positionner le texte \`a droite ;

\item \texttt{width=} : pour sp\'ecifier la largeur de la colonne dans le cas o\`u nous avons utilis\'e la commande \texttt{\textbackslash tableur*}. Par d\'efaut,la largeur est 7em (largeur par d\'efaut de chaque colonne) ;

\item \texttt{color=} : couleur du texte. Par d\'efaut, la couleur est noire.
\end{itemize}

\medskip

Le texte peut \^etre format\'e de deux fa\c cons diff\'erentes selon qu'il d\'esigne une formule ou un texte normal, comme le montre l'exemple suivant :

\bigskip

\begin{tcblisting}{listing,title=Exemple 1}
\begin{tikzpicture}
\tableur[2]{M-O}
\celtxt{M}{1}{=B1^2}
\celtxt[r]{N}{2}{Du texte ici}
\end{tikzpicture}
\end{tcblisting}

\medskip

\begin{tcblisting}{listing,title=Exemple 2}
\begin{tikzpicture}
\tableur*[2]{M/13mm,N/3cm}
\celtxt[width=13mm]{M}{1}{=B1^2}
\celtxt[r,width=3cm]{N}{2}
{Du texte ici}
\end{tikzpicture}
\end{tcblisting}

\subsection{Formater le texte}

On peut mettre en italique :

\medskip

\begin{tcblisting}{listing,title=\'Ecrire en italique}
\begin{tikzpicture}
\tableur[2]{M-O}
\celtxt{M}{1}{=B1^2}
\celtxt[r]{N}{2}
{\itshape Du texte ici}
\end{tikzpicture}
\end{tcblisting}

\medskip

ou m\^eme en gras :

\medskip

\begin{tcblisting}{listing,title=\'Ecrire en gras}
\begin{tikzpicture}
\tableur[2]{M-O}
\celtxt{M}{1}{=B1^2}
\celtxt[r]{N}{2}
{\bfseries Du texte ici}
\end{tikzpicture}
\end{tcblisting}

voire m\^eme en petites majuscules :

\medskip

\begin{tcblisting}{listing,title=\'Ecrire en petites majuscules}
\begin{tikzpicture}
\tableur[2]{M-O}
\celtxt{M}{1}{=B1^2}
\celtxt[r,color=red]{N}{2}
{\scshape Du texte ici}
\end{tikzpicture}
\end{tcblisting}

\subsection{Mode math\'ematique dans une cellule}

G\'en\'eration des premiers termes de la suite d\'efinie par $\left\{\begin{array}{l}
u_0=5\\
u_{n+1}=au_n+0,1
\end{array}
\right.$ o\`u $a$ est une valeur mise dans la cellule \helvbx{
C1}.

\begin{tcblisting}{listing,title=\'Ecrire en mode math\'ematique}
\begin{tikzpicture}
\tableur*[3]{A/2cm,B/3cm,C/2cm}
\celtxt*[c]{A}{1}{$n$}
\celtxt*[c]{B}{1}{$u_n$}
\celtxt[c]{C}{1}{0.85}
\celtxt[c]{A}{2}{0}
\celtxt[c]{B}{2}{5}
\celtxt{A}{3}{=A2+1}
\celtxt{B}{3}{=$C$1*B2+0.1}
\end{tikzpicture}
\end{tcblisting}

\paragraph*{Remarque :} les commandes \texttt{\textbackslash celtxt} et sa version \'etoil\'ee (introduites dans la version 2.01 du 31 janvier 2016) ont \'et\'e r\'e-\'ecrites et imagin\'ees sur la page \url{https://groups.google.com/forum/#!topic/fr.comp.text.tex/7K1r9fUd_Rs}. J'ai donc d\'ecid\'e d'introduire ce nouveau code car il semblerait que certains utilisateurs aient express\'ement envie d'ins\'erer du texte en mode math\'ematique dans certaines cellules.

\section{S\'election de cellules}

\subsection{\textbackslash selecCell : s\'election d'une cellule}

\begin{tcblisting}{codeTEX}
\selecCell{<colonne>}{<ligne>}
\end{tcblisting}

\medskip

Permet de simuler le cas o\`u une cellule est s\'electionn\'ee, comme le montre l'exemple suivant :

\medskip

\begin{tcblisting}{listing}
\begin{tikzpicture}
\tableur[2]{M-O}
\selecCell{N}{2}
\end{tikzpicture}
\end{tcblisting}


\subsection{\textbackslash multiSelec : s\'election de plusieurs colonnes}

Voyons un exemple pour comprendre la syntaxe :

\medskip

\begin{tcblisting}{listing}
\begin{tikzpicture}
\tableur[3]{M-O}
\multiSelec{N-2}{O-3}
\end{tikzpicture}
\end{tcblisting}

\newpage

\subsection{Les couleurs par d\'efaut}

\begin{tcblisting}{codeTEX}
% Pour les en-tetes
\definecolor{blueSelecCellTop}{cmyk}{0.52,0.17,0,0}
\definecolor{blueSelecCellBottom}{cmyk}{0.75,0.34,0,0}

% Pour les cellules s\'electionn\'ees
\definecolor{blueSelec}{cmyk}{0.23,0.06,0,0}
\end{tcblisting}

\medskip

\`A noter qu'une opacit\'e de 50\,\% est appliqu\'ee pour les cellules s\'electionn\'ees (afin de voir les traits de s\'eparation des cellules).

\section{R\'esum\'e des commandes \`a travers des exemples}

\begin{tabularx}{\linewidth}{|Sl|X|}
\hline
\texttt{\textbackslash tableur[3]\{A-F\}} & Trace un tableur sur 3 lignes, avec les colonnes A, B, C, D, E, F.
\\
\hline
\texttt{\textbackslash tableur[2]\{A,B,C\}} & Trace un tableur sur 2 lignes, avec les colonnes A, B, C.\\
\hline
\texttt{\textbackslash tableur*[3]\{A/2cm,B/5cm\}} & Trace un tableur sur 3 lignes, avec des colonnes A et B de largeur diff\'erente.\\
\hline
\texttt{\textbackslash celtxt[c]\{A\}\{1\}\{=B2*2\}} & Affiche la formule \og =B2*2 \fg{} dans la cellule A1 centr\'ee horizontalement.\\
\hline
\texttt{\textbackslash celtxt[color=red]\{A\}\{1\}\{=B2*2\}} & Affiche en rouge la formule \og =B2*2 \fg{} dans la cellule A1.\\
\hline
\texttt{\textbackslash celtxt[width=5cm]\{A\}\{1\}\{=B2*2\}} & Affiche la formule \og =B2*2 \fg{} dans la cellule A1, de largeur 5 cm.\\
\hline
\texttt{\textbackslash celtxt*[r]\{A\}\{1\}\{\verb+$+u\verb+_+n\verb+$+\}} & Affiche \og $u_n$ \fg{} dans la cellule A1, align\'e \`a droite.\\
\hline
\texttt{\textbackslash selecCell\{A\}\{1\}} & Dessine un cadre autour de la cellule A1.\\
\hline
\texttt{\textbackslash multiSelec\{A-1\}\{C-2\}} & Simule la s\'election des cellules allant de A1 \`a C2.\\
\hline
\texttt{\textbackslash helvbx\{A1\}} & Affiche \helvbx{A1}.\\
\hline
\end{tabularx}

\newpage
\section{Implantation}

\lstset{%
numbers=left,
numberstyle=\tiny,
tabsize=2,
stepnumber=5,
numbersep=5pt,
language=TeX,
breaklines=true,
basicstyle=\small,%
keywordstyle=\color{red!50!black},%
identifierstyle=, %
commentstyle=\color{gray},%
stringstyle=\ttfamily,%
showstringspaces=true,
morekeywords={newcommand,definecolor,RequirePackage, usetikzlibrary,fill,node,draw,tikzstyle,StrChar,StrBetween, foreach,IfSubStr,StrBefore,StrBehind,StrLen,IfBeginWith,makebox, dimexpr,StrGobbleLeft,setlength}}

\lstinputlisting{pas-tableur.sty}

\end{document}