Documentation pas-tableur
Version 2.01 – 31 janvier 2016
Stéphane Pasquet
Sommaire
1 Introduction et installation . . . . 1
2 \tableur et \tableur* : construire un tableur . . . . 2
2.1 \tableur . . . 2
2.2 \tableur* . . . 3
2.3 Les noms de colonnes . . . 4
2.4 Les couleurs par défaut . . . 4
2.5 La police de caractère des en-tête . . . 4
2.6 Nomination des cellules . . . 4
3 \celtxt et \celtxt* : insérer du texte dans une cellule . . . 5
3.1 Formater le texte . . . 6
3.2 Mode mathématique dans une cellule . . . 7
4 Sélection de cellules . . . . 9
4.1 \selecCell : sélection d’une cellule . . . 9
4.2 \multiSelec : sélection de plusieurs colonnes . . . 9
4.3 Les couleurs par défaut . . . 10
5 Résumé des commandes à travers des exemples . . . . 10
6 Implantation . . . . 11
1 Introduction et installation
L’extensionpas-tableur.stya pour but d’imiter l’apparence des tableurs.
Il ne permet en aucun cas d’effectuer des calculs type tableur.
Pour cette version 2 de l’extension, j’ai souhaité utiliser une syntaxe dans le fichier sty plus intuitive et plus pratique pour effectuer d’autres opérations par rapport à la version 1.
Cette extension charge automatiquement les extensions suivantes : tikz (avec la librairie : calc)
xkeyval xstring
On pourra décompresserpas-tableur.zipde sorte à avoir :
— Sous Ubuntu :
./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
— Sous Windows :
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
Après installation, n’oubliez pas de taper la commandetexhashdans le terminal pour mettre à jour la base de données des extensions.
Sous Mac OS, j’imagine que l’arborescence ressemble à ce qui est écrit précédem- ment.
2 \tableur et \tableur* : construire un tableur
Pour créer un tableur, il faudra se mettre dans un environnementtikzpictureet utiliser la commande \tableur ou sa version étoilée.
2.1 \tableur
1 \begin{ tikzpicture }
2 \ tableur [< nombre de lignes >]{ < colonnes >}
3 \end{ tikzpicture }
L’argument « colonnes » peut se présenter de deux façons différentes :
Exemple 1
1 \begin{ tikzpicture }
2 \ tableur [2]{A,B,C}
3 \end{ tikzpicture }
A
A BB CC
1 1 2 2
Exemple 2
1 \begin{ tikzpicture }
2 \ tableur [2]{A-D}
3 \end{ tikzpicture }
A
A BB CC DD
1 1 2 2
Pour cette macro, les valeurs par défaut sont :
— la hauteur de chaque ligne : 1.57em ;
— la largeur de chaque colonne : 7em ;
— la largeur de la 1recolonne (contenant le numéros des lignes) : 3em ;
— le nombre de lignes : si l’option entre crochets n’est pas informée, il y aura 1 ligne.
Pour changer ces valeurs par défaut, on utilisera les commandes :
1 \ tabcolwidth {2 cm} % pour que chaque colonne ait une largeur de 2 cm
2 \ tabnumlinewidth {1 cm} % pour que la 1\` ere colonne fasse 1 cm de large
3 \ tablineheight {15 mm} % pour que chaque ligne ait une hauteur de 15 mm
Attention : il faut impérativement mettre l’unité (cm, mm, em, ex ou pt).
2.2 \tableur*
La version étoilée de \tableurpermet de construire un tableur dont les colonnes n’ont pas les mêmes dimensions.
1 \begin{ tikzpicture }
2 \ tableur *[2]{ A/2cm ,B/4cm ,C/1cm ,D/3 cm}
3 \end{ tikzpicture }
A
A BB CC DD
1 1 2 2
2.3 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 « AA » par exemple.
Quant aux lignes, elles commencent toujours par « 1 ».
2.4 Les couleurs par défaut
Deux couleurs sont utilisées pour les cases « en-t-êtes » :
1 \definecolor{ grayTopCell }{ cmyk }{0.08 ,0.05 ,0.06 ,0}
2 \definecolor{ grayBottomCell }{ cmyk }{0.1 ,0.07 ,0.08 ,0}
Pour les changer, vous pouvez les redéfinir après avoir appelépas-tableur. Le gris de séparation des cellules est, quant à lui, défini par :
1 \definecolor{ graySepCell }{ cmyk }{0.29 ,0.21 ,0.21 ,0}
2.5 La police de caractère des en-tête
1 \newcommand{\ helvbx }{\ usefont {T 1}{ phv }{m}{n}}
Ainsi, si vous souhaitez insérer le nom d’une cellule dans votre document, vous pou- vez utiliser la syntaxe suivante :
1 Dans la cellule {\ helvbx A3}, nous
2 avons ins \'er\'e la formule ...
Dans la celluleA3, nous avons inséré la formule...
2.6 Nomination des cellules
Toujours dans un logique de simplifier la rédaction des documents, j’ai souhaité nommer chaque cellule de façon intuitive.
Ainsi, la celluleA1est nommée : cellA-1.
Cette précision est utile lorsque l’on souhaite ajouter des flèches vers certaines cel- lules comme dans l’exemple suivant :
1 \begin{ tikzpicture }
2 \ tableur [3]{A-D}
3 \ draw [<-,>= latex '] (cellB -2. center ) to[ bend right =30] ($( cellB -2) +(2 , -1.7) $)
4 node [ right ] {C' est la cellule {\ helvbx B 2}};
5 \end{ tikzpicture }
A
A BB CC DD
1 1 2 2 3 3
C’est la celluleB2
3 \celtxt et \celtxt* : insérer du texte dans une cellule
1 % Ins \' erer une formule ou un texte
2 \ celtxt [< options >}{ < colonne >}{ < ligne >}{ < texte >}
3 % Ins \' erer un texte en mode math \' ematiques ou non
4 \ celtxt *[< options >}{ < colonne >}{ < ligne >}{ < texte >}
Les options sont :
— c: pour centrer le texte ;
— l: pour positionner le texte à gauche (c’est cette valeur qui est désignée par défaut) ;
— r: pour positionner le texte à droite ;
— width=: pour spécifier la largeur de la colonne dans le cas où nous avons utilisé la commande\tableur*. Par défaut,la largeur est 7em (largeur par défaut de chaque colonne) ;
— color=: couleur du texte. Par défaut, la couleur est noire.
Le texte peut être formaté de deux façons différentes selon qu’il désigne une formule ou un texte normal, comme le montre l’exemple suivant :
Exemple 1
1 \begin{ tikzpicture }
2 \ tableur [2]{M-O}
3 \ celtxt {M }{1}{= B 1^2}
4 \ celtxt [r]{N }{2}{ Du texte ici }
5 \end{ tikzpicture }
M
M NN OO
1 1 2 2
=B1^2
Du texte ici
Exemple 2
1 \begin{ tikzpicture }
2 \ tableur *[2]{ M /13 mm ,N/3 cm}
3 \ celtxt [ width =13 mm ]{M }{1}{= B 1^2}
4 \ celtxt [r, width =3 cm ]{N }{2}
5 {Du texte ici }
6 \end{ tikzpicture }
M
M NN
1 1 2 2
=B1^2
Du texte ici
3.1 Formater le texte
On peut mettre en italique : Écrire en italique
1 \begin{ tikzpicture }
2 \ tableur [2]{M-O}
3 \ celtxt {M }{1}{= B 1^2}
4 \ celtxt [r]{N }{2}
5 {\ itshape Du texte ici }
6 \end{ tikzpicture }
M
M NN OO
1 1 2 2
=B1^2
Du texte ici
ou même en gras : Écrire en gras
1 \begin{ tikzpicture }
2 \ tableur [2]{M-O}
3 \ celtxt {M }{1}{= B 1^2}
4 \ celtxt [r]{N }{2}
5 {\ bfseries Du texte ici }
6 \end{ tikzpicture }
M
M NN OO
1 1 2 2
=B1^2
Du texte ici
voire même en petites majuscules : Écrire en petites majuscules
1 \begin{ tikzpicture }
2 \ tableur [2]{M-O}
3 \ celtxt {M }{1}{= B 1^2}
4 \ celtxt [r, color = red ]{N }{2}
5 {\ scshape Du texte ici }
6 \end{ tikzpicture }
M
M NN OO
1 1 2 2
=B1^2
DU TEXTE ICI
3.2 Mode mathématique dans une cellule
Génération des premiers termes de la suite définie par
½ u0=5
un+1=aun+0, 1 oùaest une valeur mise dans la cellule C1.
Écrire en mode mathématique
1 \begin{ tikzpicture }
2 \ tableur *[3]{ A/2cm ,B/3cm ,C/2 cm}
3 \ celtxt *[c]{A }{1}{$ n$}
4 \ celtxt *[c]{B }{1}{$ u_n$}
5 \ celtxt [c]{C }{1}{0.85}
6 \ celtxt [c]{A }{2}{0}
7 \ celtxt [c]{B }{2}{5}
8 \ celtxt {A }{3}{= A 2+1}
9 \ celtxt {B }{3}{=$ C $1* B 2+0.1}
10 \end{ tikzpicture }
A
A BB CC
1 1 2 2 3 3
n un 0.85
0 5
=A2+1 =$C$1*B2+0.1
Remarque : les commandes\celtxt et sa version étoilée (introduites dans la version 2.01 du 31 janvier 2016) ont été ré-écrites et imaginées sur la page
https://groups.google.com/forum/#!topic/fr.comp.text.tex/7K1r9fUd_
Rs. J’ai donc décidé d’introduire ce nouveau code car il semblerait que certains utilisateurs aient expressément envie d’insérer du texte en mode mathéma- tique dans certaines cellules.
4 Sélection de cellules
4.1 \selecCell : sélection d’une cellule
1 \ selecCell {< colonne >}{ < ligne >}
Permet de simuler le cas où une cellule est sélectionnée, comme le montre l’exemple suivant :
1 \begin{ tikzpicture }
2 \ tableur [2]{M-O}
3 \ selecCell {N }{2}
4 \end{ tikzpicture }
M
M NN OO
1 1 2 2 2
N
4.2 \multiSelec : sélection de plusieurs colonnes
Voyons un exemple pour comprendre la syntaxe :
1 \begin{ tikzpicture }
2 \ tableur [3]{M-O}
3 \ multiSelec {N -2}{O -3}
4 \end{ tikzpicture }
M
M NN OO
1 1 2 2 3 3
N O
2 3
4.3 Les couleurs par défaut
1 % Pour les en - tetes
2 \definecolor{ blueSelecCellTop }{ cmyk }{0.52 ,0.17 ,0 ,0}
3 \definecolor{ blueSelecCellBottom }{ cmyk }{0.75 ,0.34 ,0 ,0}
4
5 % Pour les cellules s\' electionn \' ees
6 \definecolor{ blueSelec }{ cmyk }{0.23 ,0.06 ,0 ,0}
À noter qu’une opacité de 50 % est appliquée pour les cellules sélectionnées (afin de voir les traits de séparation des cellules).
5 Résumé des commandes à travers des exemples
\tableur[3]{A-F} Trace un tableur sur 3 lignes, avec les colonnes A, B, C, D, E, F.
\tableur[2]{A,B,C} Trace un tableur sur 2 lignes, avec les colonnes A, B, C.
\tableur*[3]{A/2cm,B/5cm} Trace un tableur sur 3 lignes, avec des colonnes A et B de largeur dif- férente.
\celtxt[c]{A}{1}{=B2*2} Affiche la formule « =B2*2 » dans la cellule A1 centrée horizontalement.
\celtxt[color=red]{A}{1}{=B2*2} Affiche en rouge la formule
« =B2*2 » dans la cellule A1.
\celtxt[width=5cm]{A}{1}{=B2*2} Affiche la formule « =B2*2 » dans la cellule A1, de largeur 5 cm.
\celtxt*[r]{A}{1}{$u_n$} Affiche «un» dans la cellule A1, ali- gné à droite.
\selecCell{A}{1} Dessine un cadre autour de la cel- lule A1.
\multiSelec{A-1}{C-2} Simule la sélection des cellules al- lant de A1 à C2.
\helvbx{A1} Affiche A1.
6 Implantation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% pas−t a b l e u r . s t y v 2.01 encodage : UTF8 %
4% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% Cree par Stephane PASQUET %
% %
9%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\d e f\ f i l e v e r s i o n { 2 . 1 }
\d e f\ f i l e d a t e { 2 0 1 6 / 0 1 / 3 1 }
\ NeedsTeXFormat { LaTeX2e } [ 1 9 9 9 / 1 2 / 0 1 ]
14 \ P r o v i d e s C l a s s { pas−t a b l e u r } [%
\ f i l e d a t e \space v \ f i l e v e r s i o n \space LaTeX package by Stephane PASQUET]
\RequirePackage{ t i k z }
\u s e t i k z l i b r a r y{ c a l c }
19 \RequirePackage{ x s t r i n g }
\RequirePackage{ x k e y v a l }
%
% D e f i n i t i o n des c o u l e u r s
%
24 \d e f i n e c o l o r{ g r a y T o p C e l l } { cmyk } { 0 . 0 8 , 0 . 0 5 , 0 . 0 6 , 0 }
\d e f i n e c o l o r{ g r a y B o t t o m C e l l } { cmyk } { 0 . 1 , 0 . 0 7 , 0 . 0 8 , 0 }
\d e f i n e c o l o r{ g r a y S e p C e l l } { cmyk } { 0 . 2 9 , 0 . 2 1 , 0 . 2 1 , 0 }
\d e f i n e c o l o r{ b l u e S e l e c C e l l T o p } { cmyk } { 0 . 5 2 , 0 . 1 7 , 0 , 0 }
\d e f i n e c o l o r{ b l u e S e l e c C e l l B o t t o m } { cmyk } { 0 . 7 5 , 0 . 3 4 , 0 , 0 }
29 \d e f i n e c o l o r{ b l u e S e l e c } { cmyk } { 0 . 2 3 , 0 . 0 6 , 0 , 0 }
%
% D e f i n i t i o n des dimensions par d e f a u t
%
\d e f\ col@width { 7em}
34 \d e f\ numline@width { 3em} % l a r g e u r de l a colonne i n d i q u a n t l e numeros des l i g n e s
\d e f\ l i n e @ h e i g h t { 1 . 5 7em}
%
%==> Changer l e s v a l e u r s par d e f a u t
\newcommand* { \ t a b c o l w i d t h } [ 1 ] { \d e f\ col@width { # 1 } }
39 \newcommand* { \ t a b n u m l i n e w i d t h } [ 1 ] { \d e f\ numline@width { # 1 } }
\newcommand* { \ t a b l i n e h e i g h t } [ 1 ] { \d e f\ l i n e @ h e i g h t { # 1 } }
%
% D e f i n i t i o n des p o l i c e s de c a r a c t e r e s
%
44 \newcommand{ \ h e l v b x } { \ u s e f o n t { T 1 } { phv } {m} { n } }
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% C o n s t r u c t i o n du t a b l e u r %
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
49 %==> Macro i n t e r m e d i a i r e : t r a c e de l a p r e m i e r e c e l l u l e
%
\newcommand{ \ pastab@draw@cell } [ 5 ]
% #1 : \ f i r s t @ w i d t h , #2 : \ first@name , #3 : 0= colonne 1 / 1=
a u t r e s colonnes /
% 2 = l i g n e 1 , #4 : coord . , #5 : contenu
54 {%
\if nu m#3=0%
\t i k z s t y l e{ c e l l s t y l e } = [ celhead , minimum w i d t h = { # 1 } , minimum h e i g h t = \ l i n e @ h e i g h t ]%
\d e f\ pastableur@coord { ( 0 , 0 ) }%
\e l s e%
59 \if nu m#3=1%
\t i k z s t y l e{ c e l l s t y l e } = [ celhead , r i g h t , minimum w i d t h
= { # 1 } , minimum h e i g h t = \ l i n e @ h e i g h t ]%
\e l s e
\i fn um#3=2%
\t i k z s t y l e{ c e l l s t y l e } = [ below l e f t , celhead , minimum w i d t h = { # 1 } , minimum h e i g h t = \ l i n e @ h e i g h t ]
64 \e l s e%
\t i k z s t y l e{ c e l l s t r y l e } = [ below , celhead , minimum w i d t h
= { # 1 } , minimum h e i g h t = \ l i n e @ h e i g h t ]
\f i%
\f i%
\d e f\ pastableur@coord { ( # 4 ) }%
69 \f i%
\node[ c e l l s t y l e ] ( # 2 ) a t \ pastableur@coord { \ h e l v b x # 5 } ;%
\f i l l [ g r a y B o t t o m C e l l ] ( # 2 . so uth west ) −−
( # 2 . so uth e a s t ) −−
74 ( $ 0 . 5 * ( # 2 . south east ) + 0 . 5 * ( # 2 . north east ) $) −−
( $ 0 . 5 * ( # 2 . south west ) + 0 . 5 * ( # 2 . north west ) $) −−
c y c l e ;%
\f i l l [ g r a y T o p C e l l ] ( # 2 . n o r t h west ) −−
79 ( # 2 . n o r t h e a s t ) −−
( $ 0 . 5 * ( # 2 . south east ) + 0 . 5 * ( # 2 . north east ) $) −−
( $ 0 . 5 * ( # 2 . south west ) + 0 . 5 * ( # 2 . north west ) $) −−
c y c l e ;%
\node[ minimum w i d t h = { # 1 } , minimum h e i g h t = \ l i n e @ h e i g h t , c e l l s t y l e ] a t \ pastableur@coord { \ h e l v b x # 5 } ;%
84 }
%
%==> Macro i n t e r m e d i a i r e : t r a c e de l a g r i l l e
%
\newcommand{ \ p a s t a b l e u r @ g r i d } [ 4 ] % #1 : w i d t h , #2 : name , #3 : numline , #4 : coord .
89 {%
\node[ celempty , below , minimum h e i g h t = \ l i n e @ h e i g h t , minimum w i d t h =#1] ( c e l l #2−#3) a t ( # 4 ) { } ;%
\draw[ g r a y S e p C e l l ] ( $ ( c e l l #2−#3. so uth west ) + ( 0 . 2 5 pt , 0 ) $ ) −−
( c e l l #2−#3. so uth e a s t ) −− ( $ ( c e l l #2−#3. n o r t h e a s t ) +(0 ,−0.25 p t ) $ ) ;%
}
%
94 %==> S t y l e des c e l l u l e s
%
\t i k z s t y l e{ celempty } = [ o u t e r sep=0 p t ]
\t i k z s t y l e{ celhead } = [draw= b l a c k , r e c t a n g l e , o u t e r sep=0 p t ]
%
99 %==> Macro de r e d i r e c t i o n : e t o i l e e ou pas e t o i l e e ?
%
\newcommand{ \ t a b l e u r } { \ @ i f s t a r { \ t a b l e u r @ s t a r } { \ t a b l e u r @ n o s t a r } }
%
%==> Macro e t o i l e e : \ t a b l e u r * { A/ < l 1 > ,B/ < l 2 > , . . . } . Tableur avec colonnes de l a r g e u r s d i f f e r e n t e s
104%
\newcommand{ \ t a b l e u r @ s t a r } [ 2 ] [ 1 ] {%
\x d e f\ l i s t @ o f @ c o l { # 2 }%
% Placement de l a p r e m i e r e c e l l u l e en−t à ª t e
109 \S t r C h a r{ # 2 } { 1 } [ \ first@name ]%
\StrBetween{ # 2 } { / } { , } [ \ f i r s t @ w i d t h ]%
\ pastab@draw@cell { \ f i r s t @ w i d t h } { \ first@name } { 0 } { } { \ first@name }
% Placement des a u t r e s en−t à ª t e s de colonnes
\f o r e a c h \ name / \ w [ remember = \ name as \ lastname , cou nt = \ colnumber ] i n { # 2 }
114 {%
\i f x\ name \ first@name%
\e l s e%
\ pastab@draw@cell { \ w } { \ name } { 1 } { \ lastname . e a s t } { \ name }
\f i%
119 }%
% Placement des en−t à ª t e s de l i g n e s
\ pastab@draw@cell { \ numline@width } { numline 1 } { 2 } { \ first@name . so uth west } { 1 }
\i f nu m#1>1%
\f o r e a c h \ num@line [ remember = \ num@line as \ lastnum ( i n i t i a l l y 1 ) ] i n { 2 , . . . , # 1 }
124 {%
\ pastab@draw@cell { \ numline@width } { numline \ num@line } { 3 } { numline \ lastnum . sou th e a s t } { \ num@line }%
}%
\f i%
% Trace de l a g r i l l e
129 \f o r e a c h \ name / \ w i n { # 2 } {%
\ p a s t a b l e u r @ g r i d { \ w } { \ name } { 1 } { \ name . sou th }%
}%
\if nu m#1>1%
134 \f o r e a c h\ numline [ remember = \ numline as \ l a s t n u m l i n e ( i n i t i a l l y 1 ) ] i n { 2 , . . . , # 1 }
{%
\f o r e a c h \ name / \ w i n { # 2 } {%
\ p a s t a b l e u r @ g r i d { \ w } { \ name } { \ numline } { c e l l \ name−\ l a s t n u m l i n e . sou th }%
139 }%
}%
\f i%
} %−−> F i n de \ t a b l e u r *
%
144%==> Macro non e t o i l e e : \ t a b l e u r { A , B , C , . . . } ou \ t a b l e u r { A−C}
%
\x d e f\ col@names {ABCDEFGHIJKLMNOPQRSTUVWXYZ} %−−−−−−−−−−> L i s t e des noms de colonnes <−−−−−−−−−−
%
\newcommand{ \ t a b l e u r @ n o s t a r } [ 2 ] [ 1 ] % [ # 1 ] −> nombre de l i g n e s ( par d e f a u t , " 1 " ) , #2 −> A , B , . . . , Z
149 {%
\I f S u b S t r{ # 2 } {−} {%
\S t r B e f o r e{ # 2 } {−} [ \ s t r @ s t a r t ] % 1 ere l e t t r e , par ex . "G"
\S t r B e h i n d{ # 2 } {−} [ \ str@end ] % 2eme l e t t r e , par ex . " L "
154 \StrBetween{ \ col@names } { \ s t r @ s t a r t } { \ str@end } [ \ s t r @ c o l ] % r e t o u r n e par exemple " HIJK "
\edef\ s t r @ c o l { \ s t r @ s t a r t \ s t r @ c o l \ str@end } % r e t o u r n e a l o r s " GHIJKL "
\S t r L e n{ \ s t r @ c o l } [ \ nb@columns ] % nombre de colonnes
%−−> On p l a c e l a p r e m i e r e c e l l u l e en−t à ª t e
\ pastab@draw@cell { \ col@width } { \ s t r @ s t a r t } { 0 } { } { \ s t r @ s t a r t }%
159 %−−> On p l a c e l e s a u t r e s en−t à ª t e s
\f o r e a c h \i [ remember = \i as \ l a s t i ( i n i t i a l l y 1 ) ] i n { 2 , . . . , \ nb@columns }
{%
\S t r C h a r{ \ s t r @ c o l } { \ i} [ \ name ]%
\S t r C h a r{ \ s t r @ c o l } { \ l a s t i } [ \ lastname ]%
164 \ pastab@draw@cell { \ col@width } { \ name } { 1 } { \ lastname . e a s t } { \ name }%
}%
}%
{%
\S t r C h a r{ # 2 } { 1 } [ \ s t r @ s t a r t ]%
169 \ pastab@draw@cell { \ col@width } { \ s t r @ s t a r t } { 0 } { } { \ s t r @ s t a r t }%
\f o r e a c h \ name [ remember = \ name as \ lastname ] i n { # 2 } {%
\i f x\ name \ s t r @ s t a r t%
\e l s e%
174 \ pastab@draw@cell { \ col@width } { \ name } { 1 } { \ lastname . e a s t } { \ name }%
\f i%
}%
}%
% Placement des en−t à ª t e s de l i g n e s
179 \S t r C h a r{ # 2 } { 1 } [ \ first@name ]%
\ pastab@draw@cell { \ numline@width } { numline 1 } { 2 } { \ first@name . so uth west } { 1 }
\if nu m#1>1%
\f o r e a c h \ num@line [ remember = \ num@line as \ lastnum ( i n i t i a l l y 1 ) ] i n { 2 , . . . , # 1 }
{%
184 \ pastab@draw@cell { \ numline@width } { numline \ num@line
} { 3 } { numline \ lastnum . sou th e a s t } { \ num@line }%
}%
\f i%
% Trace de l a g r i l l e
\I f S u b S t r{ # 2 } {−}
189 {%
\f o r e a c h \i i n { 1 , . . . , \ nb@columns } {%
\S t r C h a r{ \ s t r @ c o l } { \ i} [ \ name ]%
\ p a s t a b l e u r @ g r i d { \ col@width } { \ name } { 1 } { \ name . sou th }%
194 }%
\i fn um#1>1%
\f o r e a c h\ numline [ remember = \ numline as \ l a s t n u m l i n e ( i n i t i a l l y 1 ) ] i n { 2 , . . . , # 1 }
{%
\f o r e a c h \i i n { 1 , . . . , \ nb@columns }
199 {%
\S t r C h a r{ \ s t r @ c o l } { \ i } [ \ name ]%
\ p a s t a b l e u r @ g r i d { \ col@width } { \ name } { \ numline } { c e l l \ name−\ l a s t n u m l i n e . so uth }%
}%
}%
204 \f i%
} {%
\f o r e a c h \ name i n { # 2 } {%
209 \ p a s t a b l e u r @ g r i d { \ col@width } { \ name } { 1 } { \ name . sou th }%
}%
\i fn u m#1>1%
\f o r e a c h\ numline [ remember = \ numline as \ l a s t n u m l i n e ( i n i t i a l l y 1 ) ] i n { 2 , . . . , # 1 }
{%
214 \f o r e a c h \ name i n { # 2 } {%
\ p a s t a b l e u r @ g r i d { \ col@width } { \ name } { \ numline } { c e l l \ name−\ l a s t n u m l i n e . so uth }%
}%
}%
219 \f i%
}%
} %−−> F i n de \ t a b l e u r
%
% I n s e r e r quelque chose dans une c e l l u l e : \ c e l t x t [ m od if . du 2016/01/21 due \ ‘ a " Un bon p e t i t " ]
224%
\ define@cmdkey [ PAS ] { c e l t x t } { w i d t h } { }
\ define@cmdkey [ PAS ] { c e l t x t } { c o l o r } { }
\ define@boolkey [ PAS ] { c e l t x t } { l } [ t r u e ] { }
\ define@boolkey [ PAS ] { c e l t x t } { r } [ t r u e ] { }
229 \ define@boolkey [ PAS ] { c e l t x t } { c } [ t r u e ] { }
\ p r e s e t k e y s [ PAS ] { c e l t x t } { w i d t h = \ col@width , c o l o r = b l a c k
} { }
%
\newcommand* \ celtxt@catcoderegime@begin { }
\newcommand* \ celtxt@catcoderegime@end { }
234%
\newcommand* \ c e l t x t {%
\ @ i f s t a r {%
\l e t\ celtxt@catcoderegime@end \ @empty
239 \l e t\ celtxt@catcoderegime@begin \ @empty
\ c e l t x t @ i } {%
\d e f\ celtxt@catcoderegime@begin {%
\begingroup
244 \ @makeother \ ^%
\ @makeother \ $%
}%
\l e t\ celtxt@catcoderegime@end \endgroup
\ c e l t x t @ i
249 }%
}
%
\newcommand* { \ c e l t x t @ i } [ 1 ] [ ] { \ c e l t x t @ i i { # 1 } }
%
254 \newcommand* \ c e l t x t @ i i [ 3 ] {%
\ s e t k e y s [ PAS ] { c e l t x t } { # 1 }%
\ celtxt@catcoderegime@begin
\ c e l t x t @ i i i { # 1 } { # 2 } { # 3 }%
259 }
%
\newcommand* \ c e l t x t @ i i i [ 4 ] {%
\ celtxt@catcoderegime@end
264 \I f B e g i n W i t h{ # 4 } { = } { \l e t\ pastab@style \ t e x t t t } { \l e t\ pastab@style \ @empty }
\ ifPAS@celtxt@c
\d e f\ pos@align { c }%
\e l s e
\ ifPAS@celtxt@r
269 \d e f\ pos@align { r }%
\e l s e
\d e f\ pos@align { l }%
\f i
\f i
274 \node a t ( c e l l #2−#3) { \makebox[ \dimexpr\
cmdPAS@celtxt@width−2 p t ] [ \ pos@align ] { \ pastab@style { \ t e x t c o l o r { \ cmdPAS@celtxt@color } { # 4 } } } } ;%
}
%
% C e l l u l e s e l e c t i o n n e e : \ s e l e c C e l l
%
279 \newcommand* \ s e l e c C e l l [ 2 ] {%
%==> En−t à ª t e l i g n e
%
\ p a s t a b l e u r @ c o l o r c e l l { numline # 2 } { 0 }
284 \node[ celhead , minimum w i d t h = \ numline@width , minimum h e i g h t = \ l i n e @ h e i g h t ] a t ( numline #2) { \ h e l v b x # 2 } ;%
%
%==> En−t à ª t e colonne
%
\ p a s t a b l e u r @ c o l o r c e l l { # 1 } { 1 }
289 \node a t ( # 1 ) { \ h e l v b x # 1 } ;%
%
%==> C e l l u l e c e l l #1−#1
%
\draw[ v e r y t h i c k ] ( c e l l #1−#2. sou th west ) r e c t a n g l e ( c e l l
#1−#2. n o r t h e a s t ) ;%
294 \f i l l [ b l a c k ] ( $ ( c e l l #1−#2. so uth e a s t ) +(−1 pt , 1 p t ) $ ) r e c t a n g l e +(3 pt ,−3 p t ) ;%
} % f i n de \ s e l e c C e l l
%
% S e l e c t i o n de p l u s i e u r s c e l l u l e s : \ m u l t i S e l e c { A−1 } {B−2} _ / ! \ _ N o u v e l l e s y n t a x e 2014
%
299 \newcommand* \ m u l t i S e l e c [ 2 ] {%
\f i l l [ blueSelec , o p a c i t y = 0 . 5 ] ( $ ( c e l l # 1 . n o r t h west ) + ( 0 . 2 5 pt ,−0.25 p t ) $ ) r e c t a n g l e ( $ ( c e l l # 2 . sou th e a s t ) +(−0.25 pt , 0 . 2 5 p t ) $ ) ;%
\draw[ v e r y t h i c k ] ( c e l l # 1 . s ou th west ) r e c t a n g l e ( c e l l # 1 . n o r t h e a s t ) ;%
\f i l l [ b l a c k ] ( $ ( c e l l # 2 . s out h e a s t ) +(−0.5 pt , 0 . 5 p t ) $ ) r e c t a n g l e +(3 pt ,−3 p t ) ;%
304 %
%==> On c o l o r i e l e s en−t à ª t e s " colonnes "
%
\S t r C h a r{ # 1 } { 1 } [ \ s t r @ s t a r t ] % par exemple , "G"
\S t r C h a r{ # 2 } { 1 } [ \ str@end ] % par exemple , " L "
309 \StrBetween{ \ col@names } { \ s t r @ s t a r t } { \ str@end } [ \ s t r @ c o l ] % r e t o u r n e par exemple " HIJK "
\edef\ s t r @ c o l { \ s t r @ s t a r t \ s t r @ c o l \ str@end } % r e t o u r n e a l o r s
" GHIJKL "
\S t r L e n{ \ s t r @ c o l } [ \ nb@columns ] % nombre d ’ en−t à ª t e s "
colonnes " \ ‘ a c o l o r i e r
\f o r e a c h \i i n { 1 , . . . , \ nb@columns } {%
314 \S t r C h a r{ \ s t r @ c o l } { \ i} [ \ name ]%
\ p a s t a b l e u r @ c o l o r c e l l { \ name } { 1 }
\node a t ( \ name ) { \ h e l v b x \ name } ;%
}%
%
319 %==> On c o l o r i e l e s en−t à ª t e s " l i g n e s "
%
\S t r G o b b l e L e f t{ # 1 } { 2 } [ \ first@num ]%
\S t r G o b b l e L e f t{ # 2 } { 2 } [ \ second@num ]%
\f o r e a c h \i i n { \ first@num , . . . , \ second@num }
324 {%
\ p a s t a b l e u r @ c o l o r c e l l { numline \i} { 0 }
\node[ celhead , minimum w i d t h = \ numline@width , minimum h e i g h t
= \ l i n e @ h e i g h t ] a t ( numline \i) { \ h e l v b x \i} ;%
}%
}% f i n de \ m u l t i S e l e c
329%
%
%
\ newlength \ pastableur@decal
\newcommand{ \ p a s t a b l e u r @ c o l o r c e l l } [ 2 ] % #1 : name , #2 : 0=en− t e t e s " l i g n e s " / 1=en−t e t e s " colonnes "
334 {%
\if nu m#2=0%
\s e t l e n g t h\ pastableur@decal { 0 p t }%
\e l s e%
\s e t l e n g t h\ pastableur@decal { 0 . 2 5 p t }%
339 \f i%
\f i l l [ b l u e S e l e c C e l l B o t t o m ]
( $ ( # 1 . s out h west ) + ( \ pastableur@decal ,−\ pastableur@decal ) $ ) −−
( $ ( # 1 . s out h e a s t ) +(−\ pastableur@decal , \ pastableur@decal ) $ ) −−
( $ 0 . 5 * ( # 1 . south east ) + 0 . 5 * ( # 1 . north east ) +(−\ pastableur@decal , 0 ) $ ) −−
344 ( $ 0 . 5 * ( # 1 . south west ) + 0 . 5 * ( # 1 . north west ) + ( \ pastableur@decal , 0 ) $ ) −−
c y c l e ;%
\f i l l [ b l u e S e l e c C e l l T o p ]
( $ ( # 1 . n o r t h west ) + ( \ pastableur@decal ,−\ pastableur@decal ) $ ) −−
( $ ( # 1 . n o r t h e a s t ) +(−\ pastableur@decal ,−\ pastableur@decal ) $ ) −−
349 ( $ 0 . 5 * ( # 1 . south east ) + 0 . 5 * ( # 1 . north east ) +(−\ pastableur@decal , 0 ) $ ) −−
( $ 0 . 5 * ( # 1 . south west ) + 0 . 5 * ( # 1 . north west ) + ( \ pastableur@decal , 0 ) $ ) −−
c y c l e ;%
}%
\e n d i n p u t