summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/spreadtab
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-02-02 23:55:51 +0000
committerKarl Berry <karl@freefriends.org>2010-02-02 23:55:51 +0000
commit129f318fb1cc3e45e4b00f8e7246b2eff17d7d2b (patch)
tree6b3ef0425a6ada7261fafef0eb7e737d644333d4 /Master/texmf-dist/tex/latex/spreadtab
parent1bff437d863e613ca9eae59ff26d9c9231913ecc (diff)
spreadtab update (2feb10)
git-svn-id: svn://tug.org/texlive/trunk@16904 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/spreadtab')
-rw-r--r--Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty58
1 files changed, 48 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty b/Master/texmf-dist/tex/latex/spreadtab/spreadtab.sty
index a35d324c957..cc07b217401 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.2 |
+% | spreadtab v0.2a |
% | |
-% | January 24, 2010 |
+% | February 2, 2010 |
% | |
% |___________________________________________________________________________|
%
@@ -12,11 +12,12 @@
% Copyright Christian Tellechea 2009-2010
% email : unbonpetit@gmail.com
%
-% The "spreadtab" package consists of the 6 following files:
+% The "spreadtab" package consists of the 8 following files:
% spreadtab.sty (this file)
% README
% spreadtab_doc_fr.tex, spreadtab_doc_fr.pdf (manual in french)
% spreadtab_doc_en.tex, spreadtab_doc_en.pdf (manual in english)
+% spreadtab_doc_vn.tex, spreadtab_doc_vn.pdf (manual in vietnamese)
%
% -------------------------------------------------------------------
% This work may be distributed and/or modified under the
@@ -37,10 +38,10 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%% Définitions préalables %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand\ST@ver {0.2}
-\newcommand\ST@date {2010/01/20}
-\newcommand\ST@fr@date {24 janvier 2010}
-\newcommand\ST@eng@date{January $24^\text{th}$ 2010}
+\newcommand\ST@ver {0.2a}
+\newcommand\ST@date {2010/02/02}
+\newcommand\ST@fr@date {2 f\'evrier 2010}
+\newcommand\ST@eng@date{February $2^\text{nd}$ 2010}
\ProvidesPackage{spreadtab}[\ST@date\space v\ST@ver\space Spreadsheet features for table environments]
\NeedsTeXFormat{LaTeX2e}
@@ -1017,14 +1018,14 @@
% liste des fonctions dont l'argument est numérique
\newcommand\ST@functions@with@num@arg{%
- fact,ifeq,ifgt,iflt,numtofrshortdate,numtoengshortdate,numtofrlongdate,%
+ 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
\newcommand\ST@functions@with@range@arg{sum,rand,randint,sumprod}
% liste des fonctions dont l'argument ne doit pas être calculé
-\newcommand\ST@functions@no@calc@arg{ifeq,ifgt,iflt}
+\newcommand\ST@functions@no@calc@arg{ifeq,ifgt,iflt,gcd,lcm}
% liste des fonctions dont l'argument est un texte
\newcommand\ST@functions@with@text@arg{frshortdatetonum,engshortdatetonum,englongdatetonum,frlongdatetonum}
@@ -1201,6 +1202,36 @@
\fi
}
+\newif\ifST@gcd
+\newcommand\ST@arithmetic[2]{% #1 est une liste de nombres séparés par des virgules, #2 la sc qui reçoit leur pgcd ou ppcm selon \ifST@gcd
+ \ST@split{#1},#2\ST@argB
+ \ST@Ifinstr\ST@argB,{\ST@split\ST@argB,\ST@argB\ST@remain\let\ST@next\ST@arithmetic}{\let\ST@remain\@empty\let\ST@next\@gobbletwo}%
+ \let\ST@argA#2%
+ \FPeval\ST@argA\ST@argA\FPeval\ST@argB\ST@argB% évalue les 2 nombres au cas où il y ait des opérations
+ \FPeval#2{trunc(abs(max(\ST@argB,\ST@argA)),0)}%
+ \FPeval\ST@argB{trunc(abs(min(\ST@argB,\ST@argA)),0)}%
+ \FPifzero\ST@argB\else% si 0, on ignore puisque tous les nombres divisent 0 ou en sont leur multiple
+ \ifST@gcd\else\FPmul\ST@argC#2\ST@argB\fi
+ \loop
+ \let\ST@argA\ST@argB
+ \FPeval\ST@argB{trunc(#2-trunc(#2/\ST@argB,0)*\ST@argB,0)}% reste de la division #2/\ST@argB
+ \let#2\ST@argA
+ \FPifzero\ST@argB\else
+ \repeat
+ \ifST@gcd\else\FPeval#2{trunc(\ST@argC/#2,0)}\fi
+ \fi
+ \csname @\ifST@gcd firstofone\else gobble\fi\endcsname{\FPifeq#21\let\ST@next\@gobbletwo\fi}% pour le pgcd, inutile de continuer si le pgcd est 1
+ \expandafter\expandafter\expandafter\ST@next\expandafter\expandafter\expandafter{\expandafter#2\expandafter,\ST@remain}#2%
+}
+
+\newcommand\ST@func@gcd[2]{% #1 est une liste de nombres séparés par des virgules, #2 la sc qui reçoit leur pgcd
+ \ST@gcdtrue\ST@arithmetic{#1}#2%
+}
+
+\newcommand\ST@func@lcm[2]{% #1 est une liste de nombres séparés par des virgules, #2 la sc qui reçoit leur ppcm
+ \ST@gcdfalse\ST@arithmetic{#1}#2%
+}
+
% détermine la graine pour fp en fonction de la date et de l'heure
\newcommand\ST@seed{\FPseed\number\time\number\day\number\month}
@@ -1246,6 +1277,8 @@
\newcommand\ST@func@ifgt[2]{\ST@def@funcif#1#2{gt}}
\newcommand\ST@func@iflt[2]{\ST@def@funcif#1#2{lt}}
+
+
% Transforme une date en nombre
\newcommand\ST@datetonum[4]{% #1=sc recevant le résultat #2=jj #3=mm #4=aa
\FPeval#1{#3+9-12*trunc((#3+9)/12,0)}%
@@ -1732,12 +1765,17 @@ v0.2 2010/01/24
5 Suppression d'espaces indésirables
6 Mise en place d'un mode débogage où l'on peut visualiser les champs
numériques, les champs textuels ou les codes des cellules du tableau
+-------------------------------------------------------------------------------
+v0.2a 2010/02/02
+ 1 Ajout de la traduction en vietnamien et correction d'erreurs dans la
+ documentation française.
+ 2 Implementation beta et donc non visible des macros fonctions gcd, lcm
+ Ces macro-fonctions ne sont pas encore documentées.
###############################################################################
# TODO list #
###############################################################################
1 Augmenter le nombre de macro-fonctions
- - arithmetique : calcul de pgcd, ppcm, de reste de division
- conversion : deg-rad-gra et système métrique <-> anglo saxon
- autres...
2 Améliorer l'algorithme pour \STcopy : enlever une formule de