summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-06-08 00:47:54 +0000
committerKarl Berry <karl@freefriends.org>2010-06-08 00:47:54 +0000
commit382d08439593ce35f62e6f2d132c13575a690e5b (patch)
treecde1dc32098562e09c956fee34dc4bc1a3337a21 /Master
parentfe44ae97f5ad74bfe41b87807fb078d7d46cc884 (diff)
spreadtab 0.3b (6jun10)
git-svn-id: svn://tug.org/texlive/trunk@18807 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/spreadtab/README4
-rw-r--r--Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.pdfbin768434 -> 770610 bytes
-rw-r--r--Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.tex19
-rw-r--r--Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.pdfbin802544 -> 805275 bytes
-rw-r--r--Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex20
-rw-r--r--Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty94
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds26
7 files changed, 113 insertions, 50 deletions
diff --git a/Master/texmf-dist/doc/latex/spreadtab/README b/Master/texmf-dist/doc/latex/spreadtab/README
index 88f7329b6f7..d974dae7693 100644
--- a/Master/texmf-dist/doc/latex/spreadtab/README
+++ b/Master/texmf-dist/doc/latex/spreadtab/README
@@ -1,8 +1,8 @@
_____________________
spreadtab package
- v0.3a
- 2010/05/15
+ v0.3b
+ 2010/06/06
_____________________
This package provides spreadsheet features for LaTeX table environments.
diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.pdf b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.pdf
index 02881028218..2cac0295c12 100644
--- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.pdf
+++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.tex b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.tex
index 9cbde6945eb..aaa0398f468 100644
--- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.tex
+++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.tex
@@ -69,7 +69,7 @@
numbersep=1em,classoffset=1,%
morekeywords={% les macros et commandes de spreadtab
spreadtab,SThiderow,SThidecol,STsavecell,STautoround,STmessage,STsetdecimalsep,STtransposecar,STdebug,STdisplaytab,STsetdisplaymarks,%
- STnumericfieldmarker,STtextcell,STcopy,fact,ifeq,ifgt,iflt,numtofrshortdate,%
+ STnumericfieldmarker,STtextcell,STcopy,id,fact,ifeq,ifgt,iflt,numtofrshortdate,%
numtoengshortdate,numtofrlongdate,numtoenglongdate,numtofrmonth,%
numtoengmonth,numtofrday,numtoengday,sum,rand,randint,sumprod,%
frshortdatetonum,engshortdatetonum,englongdatetonum,frlongdatetonum,gcd,lcm},%
@@ -906,6 +906,23 @@ Example :
\end{spreadtab}
\end{center}
+\subsubsection{Identity}
+The simplest macro functions is "\verbinline=id(<number>)=". It returns the number in its argument. Mathematically, it is not very usefull, but with \ST, it makes possible to write mathematical expressions in arguments of macro function where they are not allowed. In the argument of \verbinline=sum= for example.
+
+In the code below, the \verbinline-id- macro function is used to compute the range of cell to add with \verbinline-sum-. In this example, the numeric field of the cell "a2" contains 8. Therefore, "\verbinline=sum([0,-1]:[id(a2-1),-1])/a2=" is equivalent to \verbinline=sum([0,-1]:[7,-1])/8=:
+\begin{lstlisting}
+\begin{spreadtab}{{tabular}{r*{10}c}}
+ @Integers & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\
+Mean of the :={8} first integers & sum([0,-1]:[id(a2-1),-1])/a2 \\
+\end{spreadtab}
+\end{lstlisting}
+\begin{center}
+\begin{spreadtab}{{tabular}{r*{10}c}}
+ @Integers & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\
+Mean of the :={8} first integers & sum([0,-1]:[id(a2-1),-1])/a2 \\
+\end{spreadtab}
+\end{center}
+
\subsection{Tests}
Three macro-functions provide tests:\par\nobreak
\begin{center}
diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.pdf b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.pdf
index 2ba2f35c977..4da9abbdcd0 100644
--- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.pdf
+++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
index 67ff436c8a6..ec155119bd1 100644
--- a/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
+++ b/Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex
@@ -70,7 +70,7 @@
numbersep=1em,classoffset=1,%
morekeywords={% les macros et commandes de spreadtab
spreadtab,SThiderow,SThidecol,STsavecell,STautoround,STmessage,STsetdecimalsep,STtransposecar,STdebug,STdisplaytab,STsetdisplaymarks,%
- STnumericfieldmarker,STtextcell,STcopy,fact,ifeq,ifgt,iflt,numtofrshortdate,%
+ STnumericfieldmarker,STtextcell,STcopy,fact,id,ifeq,ifgt,iflt,numtofrshortdate,%
numtoengshortdate,numtofrlongdate,numtoenglongdate,numtofrmonth,%
numtoengmonth,numtofrday,numtoengday,sum,rand,randint,sumprod,%
frshortdatetonum,engshortdatetonum,englongdatetonum,frlongdatetonum,gcd,lcm},%
@@ -906,6 +906,24 @@ Exemple :
\end{spreadtab}
\end{center}
+\subsubsection{Identité}
+La plus simple des macros fonctions est \og\verbinline=id(<nombre>)=\fg. Celle-ci renvoie le nombre qui se trouve entre parenthèses. Mathématiquement, elle ne sert pas à grand chose, mais avec \ST, elle permet de passer des expressions mathématiques à des macros qui n'en admettent pas. On peut ainsi s'en servir dans les plages de cellules de \verbinline=sum= par exemple.
+
+Dans le code ci dessous, la macro \verbinline=id= est utilisée pour déterminer la plage de cellules à additionner avec \verbinline-sum-. Dans cet exemple, la valeur du champ numérique de la cellule a2 vaut 8. Par conséquent, "\verbinline=sum([0,-1]:[id(a2-1),-1])/a2=" est équivalent à \verbinline=sum([0,-1]:[7,-1])/8= :
+
+\begin{lstlisting}
+\begin{spreadtab}{{tabular}{r*{10}c}}
+ @Entiers & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\
+Moyenne des :={8} premiers entiers & sum([0,-1]:[id(a2-1),-1])/a2 \\
+\end{spreadtab}
+\end{lstlisting}
+\begin{center}
+\begin{spreadtab}{{tabular}{r*{10}c}}
+ @Entiers & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\\
+Moyenne des :={8} premiers entiers & sum([0,-1]:[id(a2-1),-1])/a2 \\
+\end{spreadtab}
+\end{center}
+
\subsection{Macro-fonctions de test}
Elles sont au nombre de 3 et ont la syntaxe suivante :\par\nobreak
\begin{center}
diff --git a/Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty b/Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty
index 3b82d43ee65..049a2910181 100644
--- a/Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty
+++ b/Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty
@@ -1,9 +1,9 @@
% ____________________________________________________________________________
% | |
% | |
-% | spreadtab v0.3a |
+% | spreadtab v0.3b |
% | |
-% | May 15, 2010 |
+% | June 6, 2010 |
% | |
% |___________________________________________________________________________|
%
@@ -37,10 +37,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%% Définitions préalables %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand\ST@ver {0.3a}
-\newcommand\ST@date {2010/05/15}
-\newcommand\ST@fr@date {15 mai 2010}
-\newcommand\ST@eng@date{May $15^\text{th}$ 2010}
+\newcommand\ST@ver {0.3b}
+\newcommand\ST@date {2010/06/06}
+\newcommand\ST@fr@date {6 juin 2010}
+\newcommand\ST@eng@date{June $6^\text{th}$ 2010}
\ProvidesPackage{spreadtab}[\ST@date\space v\ST@ver\space Spreadsheet features for table environments]
\NeedsTeXFormat{LaTeX2e}
@@ -345,7 +345,7 @@
\let\ST@next@readrows\relax
\edef\ST@total@rownumber{\number\ST@rowcount}}%
\ST@Ifinstr\ST@current@row{\@empty\SThiderow}% il est demandé de masquer la colonne ?
- {\edef\ST@row@skiplist{\number\ST@rowcount,\ST@row@skiplist}% on ajoute le numéro de ligne à masquer à la skiplist
+ {\edef\ST@row@skiplist{(\number\ST@rowcount)\ST@row@skiplist}% on ajoute le numéro de ligne à masquer à la skiplist
\StrDel\ST@current@row{\@empty\SThiderow}[\ST@current@row]%
}%
\relax
@@ -365,9 +365,9 @@
\let\ST@next@readcells\relax
\ifnum\ST@colcount>\ST@total@colnumber\edef\ST@total@colnumber{\number\ST@colcount}\fi}%
\ST@Ifinstr\ST@current@cell{\@empty\SThidecol}% on doit masquer cette colonnes ?
- {\ST@Ifinstr{\ST@col@skiplist,}{\number\ST@colcount,}% ça a déjà été demandé ?
+ {\ST@Ifinstr\ST@col@skiplist{\expandafter(\number\ST@colcount)}% ça a déjà été demandé ?
\relax% on fait rien
- {\edef\ST@col@skiplist{\number\ST@colcount,\ST@col@skiplist}% sinon -> ajout à la skiplist
+ {\edef\ST@col@skiplist{(\number\ST@colcount)\ST@col@skiplist}% sinon -> ajout à la skiplist
\ifnum\ST@colcount>\ST@last@skipcol\edef\ST@last@skipcol{\number\ST@colcount}\fi
}%
\StrDel\ST@current@cell{\@empty\SThidecol}[\ST@current@cell]%
@@ -447,7 +447,7 @@
}%
\noexploregroups
\unless\ifnum\csname code@\number\ST@colcount @\number\ST@rowcount\endcsname=\z@% si le code est <> 0
- \ST@try@calc@cell(\number\ST@colcount,\number\ST@rowcount)% on essaie de calculer la cellule en cours TODO : bug
+ \ST@try@calc@cell(\number\ST@colcount,\number\ST@rowcount)% on essaie de calculer la cellule
\fi
\ST@letname{text@\number\ST@colcount @\number\ST@rowcount}\ST@current@cell
\unless\ifx\@empty\ST@multicol@number% si c'est une cellule qui contient \multicolumn
@@ -861,7 +861,6 @@
{%
\ifnum\csname code@#1@#2\endcsname=\@ne% on ne fait quelque chose que si le code est 1 : cellule non calculée
\def\ST@current@colnumber{#1}\def\ST@current@rownumber{#2}%
- \let\ST@nexteval\ST@next@onstack% à priori, on regarde à la fin s'il reste quelque chose sur la pile d'appels
\expandafter\ST@find@first@func\csname formula@#1@#2\endcsname% cherche une fonction dans la formule
\ifx\@empty\ST@function@namefound% il n'y a pas de fonction
\IfSubStr[2]\ST@dependance@tree{(#1,#2)}%
@@ -873,9 +872,13 @@
\ST@calc@cell(#1,#2)% on calcule la cellule en cours
\else
\ST@Ifinstr{\ST@functions@with@textresult,}{\ST@function@namesaved,}% si la dernière fonction rend du texte
- {\@namedef{code@#1@#2}{0}% on met le code à 0, la cellule devient textuelle
- \expandafter\let\csname text@#1@#2\expandafter\endcsname\csname formula@#1@#2\endcsname% copie de la formule vers la zone texte (avec écrasement de ce qui s'y trouvait)
- \ST@letname{formula@#1@#2}\@empty% et plus rien dansla formule
+ {\ifx\ST@stackcall\@empty% et si on est dans la cellule source
+ \@namedef{code@#1@#2}{0}% on met le code à 0, la cellule devient textuelle
+ \expandafter\let\csname text@#1@#2\expandafter\endcsname\csname formula@#1@#2\endcsname% copie de la formule vers la zone texte (avec écrasement de ce qui s'y trouvait)
+ \ST@letname{formula@#1@#2}\@empty% et plus rien dansla formule
+ \else
+ \ST@calc@cell(#1,#2)% sinon, on se trouve dans une cellule appelée par une macrofonction et donc, on la calcule
+ \fi
}%
{\ST@calc@cell(#1,#2)}% c'est une fonction qui donne un arg numérique : on calcule la cellule en cours
\fi
@@ -897,7 +900,7 @@
\relax
% on remplace toutes les références par la valeur distante
\expandafter\ST@expsubst\csname formula@#1@#2\endcsname\ST@ref@found\ST@distant@formula
- \def\ST@nexteval{\ST@eval@cell@i(#1,#2)}% puis, on évalue à nouveau cette cellule
+ \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule
\else% code distant n'est pas {0,1,2} donc est -1, pas bon du tout !
\edef\ST@temp@callcell{#1,#2}% coordonnées de la cellule appelante
\ST@subst\ST@coord @,% coordonnées appelées
@@ -923,11 +926,11 @@
\ST@Ifinstr{\ST@functions@no@calc@arg,}{\ST@function@namefound,}% doit-on calculer l'argument de cette fonction ?
\relax
{\FPeval\ST@function@argfound\ST@function@argfound\FPclip\ST@function@argfound\ST@function@argfound}%
- \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound\ST@result@func% puis on évalue la fonction
+ \csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound\ST@result@func% puis on évalue la fonctionfound
\ST@Iffirstis\ST@result@func-{\expandafter\def\expandafter\ST@result@func\expandafter{\expandafter(\ST@result@func)}}\relax
\ST@expsubst\ST@current@formula\ST@tobereplaced\ST@result@func% on replace dans l'alias
\ST@letname{formula@#1@#2}\ST@current@formula% on l'assigne dans la formule
- \def\ST@nexteval{\ST@eval@cell@i(#1,#2)}% puis, on évalue à nouveau cette cellule
+ \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule
\else
\ifnum\csname code@\ST@temp@formula\endcsname=\tw@% si la référence est calculée, on la replace par sa valeur
\expandafter\let\expandafter\ST@current@formula\csname formula@\ST@temp@formula\endcsname% alias pour la formule distante
@@ -938,7 +941,7 @@
\let\ST@replaced\ST@tobereplaced
\ST@expsubst\ST@replaced\ST@ref@found\ST@current@formula
\expandafter\ST@expsubst\csname formula@#1@#2\endcsname\ST@tobereplaced\ST@replaced
- \def\ST@nexteval{\ST@eval@cell@i(#1,#2)}% puis, on évalue à nouveau cette cellule
+ \edef\ST@stackcall{(#1,#2)\ST@stackcall}%
\else% la référence n'est pas calculée, donc d'abord il faut
\edef\ST@stackcall{(\ST@distant@colnumber,\ST@distant@rownumber)(#1,#2)\ST@stackcall}% l'évaluer, et ensuite ré-evaluer la cellule courante
\edef\ST@dependance@tree{\ST@dependance@tree(\ST@distant@colnumber,\ST@distant@rownumber)}% mise à jour de l'arbre des dépendances
@@ -952,7 +955,7 @@
\ST@Iffirstis\ST@result@func-{\expandafter\def\expandafter\ST@result@func\expandafter{\expandafter(\ST@result@func)}}\relax
\ST@expsubst\ST@current@formula\ST@tobereplaced\ST@result@func% on replace dans l'alias
\ST@letname{formula@#1@#2}\ST@current@formula% on l'assigne dans la formule
- \def\ST@nexteval{\ST@eval@cell@i(#1,#2)}% puis, on évalue à nouveau cette cellule
+ \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule
\fi
\or% le code vaut 3, c'est un fonction dont l'argument est textuel
\let\ST@function@argfound@edefed\ST@function@argfound
@@ -964,7 +967,7 @@
\csname ST@func@\ST@function@namefound\endcsname\ST@function@argfound@edefed\ST@result@func% puis on évalue la fonction
\ST@expsubst\ST@current@formula\ST@tobereplaced\ST@result@func% on replace dans l'alias
\ST@letname{formula@#1@#2}\ST@current@formula% on l'assigne dans la formule
- \def\ST@nexteval{\ST@eval@cell@i(#1,#2)}% puis, on évalue à nouveau cette cellule
+ \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule
\else% il y a une référence dans l'argument de la fontion
\ifnum\csname code@\ST@temp@formula\endcsname=\z@% si la référence est une cellule texte
\expandafter\let\expandafter\ST@current@formula\csname text@\ST@temp@formula\endcsname% alias pour la zone texte distante
@@ -974,14 +977,14 @@
\let\ST@tobereplaced\ST@function@namefound\ST@expadd@tomacro\ST@tobereplaced{\expandafter(\ST@function@argfound)}%
\csname ST@func@\ST@function@namefound\endcsname\ST@current@formula\ST@result@func% puis on évalue la fonction
\expandafter\ST@expsubst\csname formula@#1@#2\endcsname\ST@tobereplaced\ST@result@func
- \def\ST@nexteval{\ST@eval@cell@i(#1,#2)}% puis, on évalue à nouveau cette cellule
+ \edef\ST@stackcall{(#1,#2)\ST@stackcall}% puis, on évalue à nouveau cette cellule
\else
\@latex@error{\ST@errname Macro function \ST@function@namefound\space requires a reference to a text cell!}\ST@seedoc@i
\fi
\fi
\fi
\fi
- \expandafter\ST@nexteval
+ \expandafter\ST@next@onstack
\fi
}
@@ -989,18 +992,27 @@
% Si oui, on enlève le 1er appel de la pile lifo et on l'exécute
\newcommand\ST@next@onstack{%
\unless\ifx\ST@stackcall\@empty
- \ST@split\ST@stackcall)\ST@temp@a\ST@stackcall\ST@add@tomacro\ST@temp@a)%
+ \ST@split\ST@stackcall)\ST@temp@a\ST@stackcall
+ \ST@add@tomacro\ST@temp@a)%
+ \ST@sanitize@stack
\expandafter\expandafter\expandafter\ST@eval@cell@i\expandafter\ST@temp@a
\fi
}
+\newcommand\ST@sanitize@stack{% enlève de \ST@stackcall toutes les occurrences de \ST@temp@a
+ \ST@Ifinstr\ST@stackcall\ST@temp@a
+ {\expandafter\ST@subst\expandafter\ST@stackcall\expandafter{\ST@temp@a}{}%
+ \ST@sanitize@stack}%
+ \relax
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Macro-fonctions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% liste des fonctions dont l'argument est numérique
\newcommand\ST@functions@with@num@arg{%
- fact,ifeq,ifgt,iflt,numtofrshortdate,numtoengshortdate,numtofrlongdate,gcd,lcm,%
+ id,fact,ifeq,ifgt,iflt,numtofrshortdate,numtoengshortdate,numtofrlongdate,gcd,lcm,%
numtoenglongdate,numtofrmonth,numtoengmonth,numtofrday,numtoengday}
% liste des fonctions dont l'argument est une plage ou est vide
@@ -1013,7 +1025,9 @@
\newcommand\ST@functions@with@text@arg{frshortdatetonum,engshortdatetonum,englongdatetonum,frlongdatetonum,scitodec}
% liste des fonctions dont le résultat est un texte
-\newcommand\ST@functions@with@textresult{numtofrshortdate,numtoengshortdate,numtofrlongdate,numtoenglongdate,numtofrmonth,numtoengmonth,numtofrday,numtoengday}
+\newcommand\ST@functions@with@textresult{%
+ numtofrshortdate,numtoengshortdate,numtofrlongdate,numtoenglongdate,%
+ numtofrmonth,numtoengmonth,numtofrday,numtoengday}
% liste totale des fonctions
\edef\ST@functions@list{\ST@functions@with@num@arg,\ST@functions@with@range@arg,\ST@functions@with@text@arg}
@@ -1112,7 +1126,7 @@
\edef\ST@openbrace@catcode{\number\catcode`\(}\edef\ST@closebrace@catcode{\number\catcode`\)}%
\catcode`\(1 \catcode`\)2
\everyeof{\relax}\endlinechar\m@ne
- \afterassignment\ST@gobble@remain% TODO bug
+ \afterassignment\ST@gobble@remain
\expandafter\def\expandafter#2\scantokens\expandafter{#1}%
\catcode`\(\ST@openbrace@catcode\catcode`\)\ST@closebrace@catcode
\def\ST@assignarg##1\relax{\def#2{##1}}%
@@ -1125,11 +1139,11 @@
\ST@for{#1}% on parcourt la <plage de cellules>
{\ifcase\csname code@\number\ST@colcount@i @\number\ST@rowcount@i\endcsname% on ne prend en compte que les code 1 et 2
\or% code=1
- \edef\ST@temp@stack{(\number\ST@colcount@i,\number\ST@rowcount@i)\ST@temp@stack}%
- \edef\ST@dependance@tree{\ST@dependance@tree(\number\ST@colcount@i,\number\ST@rowcount@i)}% mise à jour de l'arbre des dépendances
+ \edef\ST@temp@stack{\ST@temp@stack(\number\ST@colcount@i,\number\ST@rowcount@i)}%
\or% code=2
\ifx\ST@temp@stack\@empty% on ne prend la peine d'additionner que si toutes les cellules sont calculées
\expandafter\FPadd\expandafter#2\expandafter#2\csname formula@\number\ST@colcount@i @\number\ST@rowcount@i\endcsname
+ \edef\ST@dependance@tree{\ST@dependance@tree(\number\ST@colcount@i,\number\ST@rowcount@i)}% mise à jour de l'arbre des dépendances
\fi
\fi
}%
@@ -1178,7 +1192,7 @@
{\def\ST@inter@result{0}% résultat partiel nul pour l'instant
\ifcase\csname code@\number\ST@colcount@i @\number\ST@rowcount@i\endcsname
\or% code =1
- \edef\ST@temp@stack{(\number\ST@colcount@i,\number\ST@rowcount@i)\ST@temp@stack}%
+ \edef\ST@temp@stack{\ST@temp@stack(\number\ST@colcount@i,\number\ST@rowcount@i)}%
\edef\ST@dependance@tree{\ST@dependance@tree(\number\ST@colcount@i,\number\ST@rowcount@i)}% mise à jour de l'arbre des dépendances
\or% code=2
\expandafter\let\expandafter\ST@inter@result\csname formula@\number\ST@colcount@i @\number\ST@rowcount@i\endcsname
@@ -1190,7 +1204,7 @@
\def\ST@inter@result{0}% code =0 -> on met le résultat partiel à 0
\or% code =1
\ST@subst\ST@tempcoord @,%
- \edef\ST@temp@stack{(\ST@tempcoord)\ST@temp@stack}%
+ \edef\ST@temp@stack{\ST@temp@stack(\ST@tempcoord)}%
\edef\ST@dependance@tree{\ST@dependance@tree(\ST@tempcoord)}% mise à jour de l'arbre des dépendances
\or% code=2
\expandafter\FPmul\expandafter\ST@inter@result\expandafter\ST@inter@result\csname formula@\ST@tempcoord\endcsname
@@ -1210,6 +1224,8 @@
\fi
}
+\newcommand\ST@func@id[2]{\expandafter\def\expandafter#2\expandafter{#1}}
+
% Calcule la factorielle du nombre #1 et met le résultat dans la sc #2
\newcommand\ST@func@fact[2]{%
\FPifint{#1}%
@@ -1494,7 +1510,7 @@
}
\newcommand\ST@search@lastshowcol@i{%
- \ST@Ifinstr{\ST@col@skiplist,}{\number\ST@colcount,}%
+ \ST@Ifinstr{\ST@col@skiplist}{\expandafter(\number\ST@colcount)}%
{\advance\ST@colcount\m@ne\ST@search@lastshowcol@i}%
{\edef\ST@lastshowcol{\number\ST@colcount}}%
}
@@ -1529,10 +1545,10 @@
\let\ST@nextcell\relax
\else
\let\ST@nextcell\ST@build@tab@i
- \ST@Ifinstr\ST@row@skiplist{\number\ST@rowcount,}% la ligne fait partie de la skiplist ?
+ \ST@Ifinstr\ST@row@skiplist{\expandafter(\number\ST@rowcount)}% la ligne fait partie de la skiplist ?
{\advance\ST@rowcount\@ne}% on passe à la ligne suivante
{%
- \ST@Ifinstr\ST@col@skiplist{\number\ST@colcount,}% la colonne fait partie de la skiplist ?
+ \ST@Ifinstr\ST@col@skiplist{\expandafter(\number\ST@colcount)}% la colonne fait partie de la skiplist ?
\ST@hiddencoltrue
{%
\ST@hiddencolfalse
@@ -1863,6 +1879,18 @@ v0.3a 2010/05/15
1 Correction d'un bug dans \ST@gobble@remain : ce qui reste à manger peut
contenir des tokens de catcode 1 ou 2 ce qui fait que l'utilisation
d'arguments délimités ne fonctionnerait pas dans ces cas.
+-------------------------------------------------------------------------------
+v0.3b 2010/06/06
+ 1 Correction d'un bug concernant les macro-fonctions renvoyant un texte.
+ Lorsque leur argument contenait une référence, celle-ci devenait une
+ cellule texte.
+ 2 Correction d'un bug sur la macro \ST@stackcall : il faut y enlever
+ toutes les occurrences de la cellule en train d'être calculée
+ 3 Modification de l'ordre de calcul des cellules concernées par les macro
+ fonctions sum et somprod
+ 4 Correction d'un bug dans la façon dont sont produites les skiplist
+ \ST@row@skiplist et \STcol@skiplist
+ 5 Implémentation de la macro fonction "id"
###############################################################################
# TODO list #
###############################################################################
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 1802bd10612..02627994eb6 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -190,7 +190,7 @@ $Master = "$mydir/../..";
'corridx', "die 'skipping, Pascal source'",
'count1to', "die 'skipping, use ms'",
'cpssp', "die 'skipping, requires python'",
- 'crosstex', "die 'skipping for now, investigate self-locating?, sorry'",
+ 'crosstex', "die 'sorry, investigate self-locating?'",
'csplain', "die 'skipping, too hard to automate'",
'csv2latex', "die 'skipping, mac only?, ruby + applescript'",
'csvtools', "&MAKEflatten",
@@ -226,9 +226,9 @@ $Master = "$mydir/../..";
'edmac', "die 'skipping, needs work (unzip xx)'",
'ednotes', "&MAKEnosymlinks",
'eiad', "&MAKEflatten",
- 'elhyphen', "die 'incorporated in hyph-utf8'",
+ 'elhyphen', "die 'skipping, incorporated in hyph-utf8'",
'elsarticle', "&MAKEflatten",
- 'enctex', "die 'engine requiring compilation'",
+ 'enctex', "die 'sjipping, engine requiring compilation'",
'encxvlna', "&MAKEcopy",
'enpassant', "die 'skipping, license unknown'",
'epic', "die 'skipping, license unknown and replaced by eepic'",
@@ -354,7 +354,7 @@ $Master = "$mydir/../..";
'lexitex', "die 'skipping, camel has replaced'",
'lfb', "&MAKElfb",
'lh', "&MAKElh",
- 'lhfonts', "die 'use lh'",
+ 'lhfonts', "die 'skipping, use lh'",
'libertine', "&MAKEcopy",
'librarian', "&MAKEflatten",
'libris', "&MAKEcopy",
@@ -470,13 +470,13 @@ $Master = "$mydir/../..";
'pb-diagram', "&MAKEpbdiagram",
'pclnfss', "&MAKEpclnfss",
'pdcmac', "die 'skipping, needs work'",
- 'pdf-forms-tutorial', "die 'use pdf-forms-tutorial-de or -en'",
+ 'pdf-forms-tutorial', "die 'skipping, use pdf-forms-tutorial-de or -en'",
'pdf-forms-tutorial-de', "&MAKEpdf_forms_tutorial",
'pdf-forms-tutorial-en', "&MAKEpdf_forms_tutorial",
'pdfbook', "die 'skipping, requires compilation'",
'pdfjam', "&MAKEflatten",
'pdfmarginpar',"&MAKEflatten",
- 'pdfrack', "die 'skipping until someone asks for it'",
+ 'pdfrack', "die 'skipping, until someone asks for it'",
'pdfx', "&MAKEflatten",
'pgf', "&MAKEcopy",
'pgfplots', "&MAKEcopy",
@@ -615,7 +615,7 @@ $Master = "$mydir/../..";
'tamil-omega', "die 'skipping, supports nonfree ISM fonts'", #"&MAKEflatten",
'taylor', "die 'skipping, nonfree'",
'tds', "die 'skipping, do by hand from http://tug.org/tds'",
- 'template', "die 'already part of xpackages'",
+ 'template', "die 'skipping, already part of xpackages'",
'tengwarscript',"&MAKEflatten",
'tex-gyre', "&MAKEcopy",
'tex-refs', "die 'skipping, needs work'",
@@ -631,7 +631,7 @@ $Master = "$mydir/../..";
'timescyr', "die 'skipping, monotype font is nonfree'",
'timesnew', "die 'skipping, monotype/ibm font is nonfree'",
'tipa', "&MAKEtipa",
- 'titlepage-uni-dortmund', "die 'needs graphics (too short names) in .'",
+ 'titlepage-uni-dortmund', "die 'skipping, needs graphics (too short names) in .'",
'tksbrief', "die 'skipping, LaTeX 2.09'",
'tkz-tab', "&MAKEflatten",
'tolkienfonts',"die 'skipping, ttf fonts which are not packaged'",
@@ -666,7 +666,7 @@ $Master = "$mydir/../..";
'wntamil', "die 'skipping, nonfree license'",
'wordcount', "&MAKEwordcount",
'wp-conv', "die 'skipping, nonfree license'",
- 'xbase', "die 'renamed to xpackages'",
+ 'xbase', "die 'skipping, use xpackages'",
'xeCJK', "die 'skipping, use xecjk'",
'xecolour', "&MAKEflatten",
'xecyr', "&MAKEcopy",
@@ -674,12 +674,12 @@ $Master = "$mydir/../..";
'xepersian', "&MAKEflatten",
'xetex-pstricks',"&MAKEcopy",
'xfrac', "die 'skipping, use mh (I guess)'",
- 'xinitials', "die 'will be in xpackages when ready (Morten says)'",
+ 'xinitials', "die 'skipping, will be in xpackages when ready (Morten says)'",
'xkeyval', "&MAKExkeyval",
'xmltex', "&MAKExmltex",
- 'xor', "die 'will be in xpackages when ready (Morten says)'",
- 'xparse', "die 'already in xpackages'",
- 'xtheorem', "die 'will be in xpackages when ready (Morten says)'",
+ 'xor', "die 'skipping, will be in xpackages when ready (Morten says)'",
+ 'xparse', "die 'skipping, use xpackages'",
+ 'xtheorem', "die 'skipping, will be in xpackages when ready (Morten says)'",
'xymtex', "&MAKExymtex",
'xypic', "&MAKExypic",
'yi4latex', "die 'skipping, nosell license'",