diff options
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/README | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.pdf | bin | 768434 -> 770610 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_en.tex | 19 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.pdf | bin | 802544 -> 805275 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/spreadtab/spreadtab_doc_fr.tex | 20 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty | 94 |
6 files changed, 100 insertions, 37 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 Binary files differindex 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 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 Binary files differindex 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 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 # ############################################################################### |