summaryrefslogtreecommitdiff
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
parentfe44ae97f5ad74bfe41b87807fb078d7d46cc884 (diff)
spreadtab 0.3b (6jun10)
git-svn-id: svn://tug.org/texlive/trunk@18807 c570f23f-e606-0410-a88d-b1316a301751
-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
-rw-r--r--TODO91
8 files changed, 138 insertions, 116 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'",
diff --git a/TODO b/TODO
index c3ce2cd7c13..b94f1a17cd1 100644
--- a/TODO
+++ b/TODO
@@ -9,6 +9,7 @@ Public domain. TeX Live TODO:
2. Source updates
3. Infrastructure and installer
4. random stuff
+5. Won't do
0. Things that have to hang fire until 2010
@@ -22,10 +23,6 @@ Public domain. TeX Live TODO:
+ my $hide = (defined($keyval{'hide'}) ? $keyval{'hide'} : 1);
-2009: (What is status of these?)
-- Vista/W7: provide a link in the start menu "TeX Live Manager GUI Admin Mode"
-- fix w32 tar.exe to unpack long long file names (context.doc.tar.xz)
-
1. Package updates
==================
Please see http://www.tug.org/texlive/pkgupdate.html.
@@ -53,12 +50,14 @@ etoolbox.pdf from CTAN is incorrectly guessed by svn to be text, thus
the result is corrupted when checked in. So did:
svn propset svn:mime-type application/octet-stream \
/home/texlive/karl/Master/texmf-dist/doc/latex/etoolbox/etoolbox.pdf
-but of course somewhere in ctan2tl should check for this.
+but ctan2tl should check for this.
-We should make the cooked tree start at the top, not in Master, so we
+make the cooked tree start at the top, not in Master, so we
can autocommit the linked_scripts updates.
-check all die messages for "sorry".
+if ask for susy and have Susy, or reverse, complain.
+In general, the package name field should match the directory.
+(Except for our bin-* junk.)
%moreclean
rerun every package listed in this hash to be sure changes
@@ -72,45 +71,29 @@ place should complain about inconsistent line endings and
1d. outstanding package updates
-------------------------------
-run tlpkg-ctan-check --check
-
check all mentioned in staw msg on tldev, 23 Apr 2008 23:56:50.
-
beebe needs tons of work
eulervm vs. euler vs. new euler ... no eulervm.pdf
logic/gn-logic14 conflicts with logic font
lshort-russian # only zip files on CTAN
-ltxmisc various packages
malayalam 07-11-20 (tlpkginfo does not work on this) CTAN dir language/malayalam
malayalam-omega 07-11-20
mathspic # inside pictex later
mx NEW 08-01-26 a mexican dialect of spanish
plnfss # only a zip file on CTAN
-r_und_s plain files should be in tex/plain, but does it matter?
ethiop madness: combines ps-type1/ethiop and other packages.
-pkfix madness: copy in texmf/scripts/pkfix, but no autoupdate there
-- included in bin-dvips.tpm
-- windows .bat version? some magical .exe
-- ctan location is support/pkfix
-
-
-1e. tlpsrc2tlpdb conversion
----------------------------
-maybe should only find package names at the appropriate levels, so that
-graphics.tlpsrc does not have to include lines like
-docpattern +!d texmf-dist/doc/latex/tufte-latex/graphics
-
-if ask for susy and have Susy, or reverse, complain.
-In general, the package name field should match the directory.
-(Except for our bin-* junk.)
-
+bbold - get type1's from yytex repo, put on CTAN, etc.?
2. Sources updates
==================
ptex changes (pdvitype, etc.) should be merged into the main programs,
instead of duplicating all the normal changes.
+kpse: texmfdbs should not have to exclude non-!! dirs, should be able to
+ go back to just TEXMF. kpathsea should search the disk even if ls-R is
+ present, without !!. (koch 29dec06)
+
3. Infrastructure and installer
===============================
@@ -118,12 +101,9 @@ instead of duplicating all the normal changes.
- keep list of forcibly removed packages in tlpdb, so package-to-package
dependencies can really be followed.
-- user mode for tlmgr
-
- _install_package in TLMedia and install_package in TLUtils appear to be
- doing basically the same job. This is bad.
- So rewrite the installer to use TLMedia instead of the horrible hacks of
- TLUtils.
+ doing basically the same job. Bad. Rewrite installer to use
+ TLMedia instead of the TLUtils hacs.
- tlpobj vs actual files vs other packages installation, aka safer^2
currently we just unpack what is in the tar file, but never check that
@@ -134,9 +114,6 @@ instead of duplicating all the normal changes.
Also not checked is that unpacking the container does not overwrite
files from a different package.
-- use Net::ftp/http and keep connection open during download so not to
- open a new connection for all the time...
-
- extend revisions (Master/tlpkg/etc/generalize-revisions.diff)
(implemented and working)
we want: NNN[.RRR]
@@ -151,11 +128,7 @@ instead of duplicating all the normal changes.
release directory (tldev, 2008) instead of hardwiring. Then update
doc/packages.txt.
-- fix the included "include schemes" patch to have the correct default
- path components, it seems that per default 2008 is missing.
-
-
-tlmgr/tlmgr2
+infra: texmf/xindy not reported by check-file-coverage though not in tlp's
MAYBE TODO (needs discussion)
- ordering or collections removal (see below for details)
@@ -166,14 +139,6 @@ MAYBE TODO (needs discussion)
4. random stuff
===============
-lcdf --with-cxx-runtime-hack to get static libs
-
-kpse: texmfdbs should not have to exclude non-!! dirs, should be able to
- go back to just TEXMF. kpathsea should search the disk even if ls-R is
- present, without !!. (koch 29dec06)
-
-see about including pdfjam
-
rewrite updmap/fmtutil, texconfig
. in perl
. work with multiple updmap.cfg files independently
@@ -192,15 +157,6 @@ frank@kuesterei.ch's msgs to tex-live of 23 Oct 2006 19:19:28,
(avantar..zapfding) into psnfss, where really they come from on CTAN?
rk mail to tldev, 19 Sep 2009 01:06:34.
-bbold - get type1's from yytex repo, put on CTAN, etc.?
-
-infra: texmf/xindy not reported by check-file-coverage though not in tlp's
-infra: specify defaults for the package types
- (TLCore/Package/Documentation) in a *.tlpsrc instead of buried in
- the code, for transparency.
-infra: scheme-minimal is not minimal. Neither is collection-basic. It
- ends up installing core latex due to dependencies.
-
repo: make special repo backups
repo: memman.pdf, etoolbox.pdf, hyperref README.pdf -- svn guesses
wrongly that it is text, resulting pdf is junk, pdffonts can't
@@ -211,13 +167,10 @@ repo: memman.pdf, etoolbox.pdf, hyperref README.pdf -- svn guesses
for all *.pdf.
3) report heuristic bug to svn.
-
doc: texlive-en.tex: Explain how (where) to customize texmf.cnf.
doc: web page on TeX (Live?) compilation
doc: utf-8 fails accent chars with texlive-ge
-tex: implement fancier behavior at prompt file name, see knuth update notes
- and thread at http://tug.org/mailman/private/tex-implementors/2008/001925.html
tex: CTRL-C at "please enter file name" should dtrt
tex: --no-mktex=fmt should be supported
pdfopen: fixed http://magic.aladdin.cs.cmu.edu/wp-uploads/mavpdfopensrc.zip
@@ -225,17 +178,14 @@ dvips: comment line break http://groups.google.com/group/comp.text.tex/browse_th
dvips: \special{map: ...} a la \pdfmapline (reinhardk 30dec06)
dvips: maybe stuff from dvipsfnt.txt from yy
-build: --without-omega (and aleph?) doesn't stop omega compilation.
-build: remove ncurses and make dialog use system version
-
iso: optimize image, http://www.tina-vision.net/tina-knoppix/remastering.html
sigh: lm vs. ec, 3jun06/stubner.gz msg
announce: slashdot.org, freshmeat.net, prweb.com, prnewswire.com ?
-WON'T DO:
----------
+5. WON'T DO:
+============
.tds.zip should run through jimh's checker before we believe it.
But unfortunately we can't do this because Jim's stuff is Python-based
and has too many library dependencies.
@@ -243,3 +193,12 @@ and has too many library dependencies.
magyar: should be included in babel but is lacking a dtx, see
http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4018
Up to author(s).
+
+should only find package names at the appropriate levels, so that
+graphics.tlpsrc does not have to include lines like
+docpattern +!d texmf-dist/doc/latex/tufte-latex/graphics
+? No, the special cases involved are worse than the disease.
+
+tex: implement fancier behavior at prompt file name, see knuth update notes
+and thread at http://tug.org/mailman/private/tex-implementors/2008/001925.html
+No, current behavior seems good enough.