summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tablor
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tablor
Initial commit
Diffstat (limited to 'macros/latex/contrib/tablor')
-rw-r--r--macros/latex/contrib/tablor/Figures/TSav-105.mp22
-rw-r--r--macros/latex/contrib/tablor/Figures/capture.eps1509
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.0168
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.1168
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.1094
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.105184
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.11106
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.12203
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.13358
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.14207
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.15207
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.16233
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.17233
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.18169
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.19126
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.287
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.20102
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.21362
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.22341
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.23155
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.24332
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.25122
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.26286
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.27200
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.2878
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.2993
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.3146
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.30108
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.31156
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.32138
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.33115
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.3588
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.36156
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.37111
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.38137
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.39143
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.473
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.40161
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.41162
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.42114
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.43323
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.44144
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.45123
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.47128
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.48109
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.49176
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.5108
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.50206
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.5171
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.52261
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.53206
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.54362
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.55330
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.56352
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.57221
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.669
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.7168
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.8165
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.984
-rw-r--r--macros/latex/contrib/tablor/Figures/tablor_Tab.mp727
-rw-r--r--macros/latex/contrib/tablor/README27
-rw-r--r--macros/latex/contrib/tablor/README-fr.txt28
-rw-r--r--macros/latex/contrib/tablor/auto/tablor-xetex.el51
-rw-r--r--macros/latex/contrib/tablor/auto/tablor.el40
-rw-r--r--macros/latex/contrib/tablor/tablor-xetex.sty3374
-rw-r--r--macros/latex/contrib/tablor/tablor.cfg113
-rw-r--r--macros/latex/contrib/tablor/tablor.html3321
-rw-r--r--macros/latex/contrib/tablor/tablor.pdfbin0 -> 390139 bytes
-rw-r--r--macros/latex/contrib/tablor/tablor.sty3245
-rw-r--r--macros/latex/contrib/tablor/tablor.tex2404
70 files changed, 24889 insertions, 0 deletions
diff --git a/macros/latex/contrib/tablor/Figures/TSav-105.mp b/macros/latex/contrib/tablor/Figures/TSav-105.mp
new file mode 100644
index 0000000000..0f84f2a3c0
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/TSav-105.mp
@@ -0,0 +1,22 @@
+ beginTableau(105)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-50$ etex);val(btex $-\frac{2}{3}$ etex);
+val(btex $-\frac{\sqrt{5}}{5}$ etex);
+val(btex $\frac{\sqrt{5}}{5}$ etex);
+val(btex $50$ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle 3 x+2}$ etex);
+ moins;
+ valBarre(btex 0 etex);plus;barre;
+ plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle 5 x^{2}-1}$ etex);
+ plus;barre;
+ plus;
+ valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle F(x)}$ etex);
+ moins;valBarre(btex 0 etex); plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;
+
+endTableau;
+
+ \ No newline at end of file
diff --git a/macros/latex/contrib/tablor/Figures/capture.eps b/macros/latex/contrib/tablor/Figures/capture.eps
new file mode 100644
index 0000000000..7cf5b460c5
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/capture.eps
@@ -0,0 +1,1509 @@
+%!PS-Adobe-1.0 EPSF-3.0
+%%BoundingBox: 0 1 1384 842
+%%Creator: KDE 3.5.5
+%%CreationDate: sam fv 2 19:51:19 2008
+%%Orientation: Portrait
+%%Pages: 1
+%%DocumentFonts:
+
+%%EndComments
+%%BeginProlog
+% Prolog copyright 1994-2005 Trolltech. You may copy this prolog in any way
+% that is directly related to this document. For other use of this prolog,
+% see your licensing agreement for Qt.
+/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
+/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
+/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
+/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
+pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
+d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
+false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
+0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
+LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
+gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
+SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
+bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
+0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
+exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
+ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
+eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
+64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
+i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
+putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
+1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
+/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
+colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
+QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
+QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
+add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
+{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
+imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
+where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
+/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
+DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
+/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
+h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
+DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
+pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
+WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
+1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
+if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
+2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
+RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
+exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
+BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
+add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
+6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
+}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
+D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
+add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
+ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
+0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
+MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
+{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
+ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
+D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
+w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
+200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
+x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
+-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
+ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
+NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
+D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
+x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
+ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
+div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
+B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
+/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
+exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
+-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
+/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
+maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
+fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
+dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
+definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
+D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
+MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
+stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
+1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
+exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
+showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
+pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
+/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
+ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
+D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
+
+/LArr[ [] [] [ 10.000 3.000 ] [ 3.000 10.000 ] [ 3.000 3.000 ] [ 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 3.000 3.000 ] ] d
+/pageinit {
+% 210*297mm (portrait)
+0 842 translate 1 -1 scale/defM matrix CM d } d
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+QI
+%%EndPageSetup
+[1 0 0 1 0 0]ST
+CLSTART
+0 0 1384 841 ACR
+CLEND
+B P1
+NB
+W BC
+/sl 65048 string uc
+*1III
+III
+XݼI/,8*+ŷ.JGN4-JVG5B.IFB@IWE?/ڰ
+XHK8<GKMM.@@FCZVR8L0T+/3.-/CS77ݽU:L?
+:1,OؿNWG4ö2<<2<=-2,QF5.J;1ZXUHZ338
+ɱ;=/.;SE:8B-FP;>-F.ƿ<?8LԺ<<JMT0:*@:N
+Z¸R81<2+3U?8UF@,گ=5+.D0X8-4C.QA<GF
+ɴ:>P̷*A.=˵E6Q>+FEVL+Q8FHNSX@F=/KX
+?9G2,?S8FO2A4SFIW*O9W18HM,5R@>:9N-7C+,,
+;۶61߶F>-8J,/SMN@3/23-F>JT98KGF*S2SL
+,J>J=8*A89SQFMȶ2Q:GFP-XĹ+*=-A3޳
+7V57:NGHT*>H5OH03>BA*:78I?.H+Ų82-žH
+EʻV<AS3A5;1AM138ޯN>+X6S4<*3J@/J@Ƹ6CM6⹰Z2
+:A84:J2.2X33FF3Z=׵/W/پSSN,3CB
+˷>X<UO1XLӸC,S+.6S??.XNA7>6N/1N*<DZ,Q@
+XM0W:?F.һ1:0-R-<588KV.I.AR4P8J<
+.;@2ʴ>CO:,2<.<XBKſVZYH.6D::8/J,UY;C34
+.11:/涸1<ſFFRX߯K>..KLRRKXWOֻL,̱P@
+-3ݿFYN?5BU7/0COI>88N@/?YG::KLP
+ȿE8;8L=75B0L:NF@WVTDD9Z9.TM+87B+A:XY
+߻ȶ414XG+7IXJ4.5<Nٯ-JO6Sų;8>@Z>
+Ⱦ<70;OJQ**2*?2-3޳GFF:?H<<H*S3
+PDFRP83P-J-/;7F.,׶FPX;7߿,
+4͹72N-2G.0FA11ıIA:1N=F13RX*VK85<ض
+E75+FK84ɿE*:IGX8O4T-ܽ0HKAEI1G9K3
+58ڼ**CH޻5LI,III
+IW,%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 0 di
+/sl 65048 string uc
+*1III
+III
+IIII
+III
+IݽY?JPG.CL471/;CABR,8>Dϳ5:C9O,.űV.IB
+¸:>NHEQ;WN/A5QJFO6<C/3*65GWS@XD;G35U
+5BQ.,=ZۯV:@Z@*65?Y8NEQ?>38J1
+1+.282=ݽZN?*?+1B0/8,Cо51=0AI,8?8FMƶ443F;A53R
+BXL.M+?QF9պP+<Ǿ@BSHUB3,ڿö-MGXQV
+I*UY,=+DT18ELXQ/3O5UHG7˾>Q<UCGL,PJXN
+Q㴰><ڽV0>׺?SU=F+6FQN:/M.:N;>L4QO5=:GN
+16<F>0DA8>O5:VN3-Է5Q.83FL>6;=
+V.75N;ж8SN154R+Ṯ-FG1SL/5=VN.I+63
+ݿNDRN;ŸBXJ޷M.AV61Q;:=FL=0Mö1S4+;15
+;->߿M+>GF.CU<EZٶAYDRN;17JXQ,Q=QO4
+8зF<77V3<7JS5N;.SOJ=J8Q<+Ӽ*=ڳL
+9DF//<L<:9NM-A5A¶9R,S.K4?=I3NH
+0W+%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 47 di
+/sl 65048 string uc
+**N+8N3F=*QT@/L0G2GN:043XN@<UCG<EI5;
+@2Cư9N0Q<D,E/**T,X/G=2?0QOZ68;M<G+;иMYAZ,<
+N>=FɱB8AFVK0I711XPJ954S.TXGXö;<GQɻ+M,G
+ZX-89;FA15*SϻFI;3*+
+YM**@3*N0<V;DW11N=P>QI;M6E7E2NǼFLX
+91*F;OFOYN;M.SJVS2*-**F*B7R1RFJ;O62EB2*:5*T030<,54X*>
+*JVKK+?M...,2=1+*O?Uز**6*AYغ3ʿ+:*JSPC>F-9
+A1*P5б+*-3BS4Z?<8BYN>Q8--=UVP<*:J;*2=
+FL-J0X66->K0²3<8޿*7I˳.2R-R4B.:J87*IOM-+M,=2ϯп-
+0QV86.BPBø*;S:+P//>5..6K.S*-+*O7C6*K/<73HQ*A**
+BJ.JBJ2*ҷ+IF>R+*E-*P82JVBSERG:J3V
+֯NNWXIT״4ּVױWݻEA3EA0WGGVC1=X
+4A+*YX;I86EWׯ۹AYܺ۸WUڷ5*
+EAY?@̺ϹEYFA<:*::*19F**H99@2>B72,21޽P7DXD
+N5AXƯ2RB<.:*-1/XJFR+*ҷHHFJŰ<O,+XJT=UAP?4
+,J5;<6ܻHYH1B9I,D3SS4*H--8>R:JAH
+*J+*..ֺ5,B2ٵYIIH9־Z¶+*صܿB+ݽ*6޽
+.WK>**K-***/6BZ62>.*08-.3DZK*:K2=H:E-1-1=XRLüL
+17DNYER+۱2GBZ.*,Hξķ*A4,/.-7*6龼0<J71ZVN
+.36BZOJJ0U+0*:,B02TT.*PѸ,LSC-2*22T2,2;2.**KJ
+ƾ:*D:ZJ3=+24*./J-2L3.-,,61;8I/*>M42.:,62;09.C<
+8˸6H+/:0=Iհ.2*Z685+*3*JJR*R5Q5L0*3-C*0L
+8NN*NFJ17<6*0P06J**ŵYI?<O>9QE.D>SOHTY4
+ٷ7MVװŻ1-AYUصU/6BZ+0AWׯ-*ٹɵWIE@UQ8OLU
+YV1*TSٴT?Wհ7DWװG5Y˻1QO̺߿1*5AXNJ2J¾ٵ
+ݽPܻH*252AB82+*.?CI/*θ۶*-2FR*12,G*K=X+
+R8O6@G9O,+ްE6Z*8޼07EU6C/-W@WD7ڷ*=<
+Y6BE/+ػ-AXڶٵگ@E07ٴG-,*ױG@>*.***N7ٳ+1:*+J5
+OV*Z*ƴKS5C*0Jض*E10կWٳ,*L2L6Zٴط5C:ü6:,
+=8-UXܻGUXF2A8:,AA9HWڵ@<<,-*.ڵ;EZQ
+K;3.PF4ٳ--R:6@WE޿EOK޻5F4A26JүEM2@*
+;VZ8N9.BB+4<06ƿ>@ZJK5P272YB2R1D2,LPNٵï*XMSھ=AVҶ./1
++*,=,+12M/*6K?/X޷*GMX2+5JEFSְ1F
+EF1YIֺYJɵ.ݽKɵٵYܺ,+ܼ*
+1<1Y2UZGRALM-GJI޶>57?@*/>ǰO1-+>
+2LA3ױJDQٸ7ݿZ-5X@Wװ߸Ӵ/EVص۹/?U8?T
+PPTWVQFܲ3PKM<G4>RCRJ8G03RM4LM0FRN/VC빶ܽ
+8,J۷8*ZۻG**10F:*7Eص71**/*J/*صGX=V+*25*B0;+KG
+V5B*+Ľ,-4,T@WZ۸ø*:@*7*YGWD*,Z*:ݽQY-3:C
+.*F:?5PAUVBZXUղ?ձK37ACZ6AY/9Z޼,@VBDAXٲ4
+-0*VZ/U:?2:L*?UԶ**2@XM/-4Wں54-P+0L+*,߳U94-.
+*+/SXN*շZ*ٳUY9;ǴZL=AC?@D@7DֳSEʷOPش
+K*7ٳS5IPBUN1NAY+532@;ذVVװ?NгXYTSSW,P
+J+BJ:;?V*J/DOڴ4+JB:,֯4*L-JD:<
+,TԶ*װ1@AY7=0/3.,2Y,4ųְ,:CC5R</R?PW
+I>+?1+B;UC94<5ƴPJ>Wٳ+DOTRI:56ݾPF
+F-A8GU19GZ=.+Zڿ5WBDߴWMZԴԸPKEY޻Wٴ*Z/Mױ+2
+S.P6JMJ65@>SPSR/*S5:ݹKX۹76:O@@Y
+>TT@/*@W֯TIG4>OPTOWV/+*PC0TY4CO7GFCPF
+ZڷQGNB6*B?@LEݻܻ˹ֱI**G0*ݴ*+*۸
+R*TDB+DS@MFBRCUNDӷ*FL*4?TJ翶S-.,46NU++
+HӻG<O<GTMM,*Q15AH+*,*W*P,636F=Y*18X-
+CM1,S7MI?::QNF90F:OEBQ90>QT<PNRJ4ԯHXG
+5T?U;D4TZ߸N4Q+*HPF3P+11=R+*S4/T>SVL3P+
+:TJJ;4U22;JLDS>JA*;/T-D62.L@*1?VVT,XشXۺ+-0
+AZ>B*C/E655@B/ٰ߾4*1OR8?NWID:.:V׸8G3J7
+=Q>7*PLO0*:+>HJ9M2R3+PKF.C-A?+*J*T1433G2DE2*,5
+7B?FOVD9<NðQVT5D8T:J/,6>*>PTABSZ?T>P.S,@Xڰ7
+*Xܼ@WVٸ5T@WO:T5K*֯+ø?Z*/CZLAY;+ZT
+5Wټ422ݸD?TֿND.J7.WN?O@DմDүO@V.+BMJM.*B5G
+592C+5@6CB:AXڸ?07>Y,L37+@VOOO6*B.޸M>SN:
+M:OR>Vۻ/UYVM27M9K>MSW?VIEUV@GC=IǸ
+QѴTVHSDYNSNQL0J63L;Q>SNBC4M.C<O@>KNǰ*
+3T=ֵ׻֯ݴ븳RG.UPOQմ7Eֱ56:6.*1*FM
+װAR.8G**Z*,;M4?T>==ֱHJ6?4-*.PVN>1OLR<H@O/
+5<825/Ƴ鵱=I@*7J7,FCM=R,1JX111Q*1*FWF϶:NCDQ:ž
+O4OKQEQ̷L<LS*?9C@D3=PSM=OFNSVJJ
+L2;LN2:Lӻ16L@W>:EWRK2CN>G4QZ<Sز.*4ϾL.Я-RZL>
+:*@/.*2PL=NDB*SR-*4?UT<4TUZú1+Wټ@XUְ
+5AVVRMUڳ.1:*>J-D/*O.342PUY2:J,/D.27ͶN8CL:
+KF*?,8L0?TR3RRVL,YNL6/.64<A8-N;2RRJMZP.KJ+D<M
+-GSQN+L6:M*K*NTR+AS=0SR<4ƸM-X>SV߸4432F
+2WDQ:X,UZV4?T2޿>*?5@V,;4U+@=N8H*RZTO4SH
+BBZLZ3MBTNRK5V,=B@Wۼ/U,4J-W,JӸ5T
+?V:<N,T˴:Wٰ7-+>,ZTLT/**ʲ1,.9ICNAFٱ۴LVE,Q2-Q
+:߿0;CNFMHȳ?UQ<ٲN?MD˸UTGSBSBLB<PF
+B;K-57E⶯L**RL:M.CT2<<Q0/IXر7ݴDQɴ
+O8G2*JI**=K-*HUݴ2+PV*JZ-ͳT19HH=<Z6*.*6
+3*I1Z*.*I*>:J+>J17TR=Xݼ+5A0Z*Y.17<CYL-
+6++F7-=-=:+N16V58C75.϶:NAD<5FRݽ-<1?OF;<U
+IIS3>***/M-RXP<KL:J.32;?>:K*33IP*8G.8GB*
+K.M3Z0+=2B:6**4K,-:J<K62J1.;-3D2;L,**Z+=:
+M,*;M*NN8>S@Ǹ3S+RƹPO=RRT>L,GSF/TH:
+J9*L,B,CI=R008G=Q.O-R*=R+I:++?4NK8ƾ
+9>J,,XJ/.I++@LJϿ-QFC:23N¶IQH;N,6M4B:+B3
+S5G:>G*R+<OFز3=>J4?4IDTW2>SL6OXN*,/T.*
+S;KGG,H2?3P-;NZ.0?W8N>OTW4G-,D8ʾT-3ZLB
+=QAN<.=QJ,?XJT450BSJ@O4**XQñ3ET*RձXN*OXֿ1N/;L
+2?T@+5GJRD;+<:SC5WP=GD69K9O@S63MŶZݼ.@?PVJ
+0;5?PLL/5@ϱ;;H+I@۸WXD?WK9*KڷC
+WP3ڳOHزD˸,*QWD9966I*D+*6C6*-BBZC=֯
+P޾*ӯP*ַ*+*QQ8;G6**Vװ,+L*HʹABG51**07
+6FMQM6K,0Q*I*=>5ZEISOXLH@1޽0VOF<C9YX@<L
+9CN@ZM@Y4,4<@LQྷ߻8P6BYY@WCMPBS
+ZHKP־;ɶ-9MBX޾,<B2BAY.*A+NPA-B5AW.;.XB6*JFK
+ҷPEG8G1J./K4;DM8S<OB>3KNS:ETRK:K8G.;L*
+.JOV/<R-K4P7FK/U,6G.4CZJ5@W>R@VJSNGKO>*Z3-2*
+ZN,.B;+S*:=0.R1JS5*X01TVN/5а/:ƲB=R*ٲLOȰ+O.T
+/E:F*:<.*CR6SZ*82DJ2=BJ=18E.>1H*J:S><=
+4*F3-.2J><*LNZ*EU7NF8G.=M+C޻=:MQP*@*
+-.2J1<J,+,Q>þI+NKM+LQ4=8GB5˸G<*N3XL,FH
+I1:K,1P2BH,=3A.3DSBڼ+C<G߿HYI1ۼ
+*0614>BZJ0;*Q:KK>5YUPK8**5*ڱECCK@S
+DMS@XزCC>+8AM@FVFX63<N2+M***C*2/232;JJ2CUO
+>C.2:K2;K*;*NJJ.=K3>Tغ>7*Ƴ4+ٴس7EݴEY617*R*0*J:
+.JJ?+1޿8N6BFU*QJ,Lĺ3GGNTVP6AZǷ7G
+IAHE6C*?4ANL=3;@S:PֲOҾQ?UVTROH.4>S*4
+@Wڶ<NJٲ@1*Fǰ*JϰOɷ:*<?U,+2?P422B+,3==++5O*+=
+PAY,,6Cڶ+M6Q08FK=QR5L2M6;0;TN:JH.34N4C4.9
+H@?RVJ,۹D3PDXP6>QtR;/>RF33N7T?K;L2;QI:
+3/B-JSV3/*R*>QTOʾF<4ZX*.LL+B3-N>JB8CM2;Q>RT3
+N<N>R0A24=NP7=SL+*BPEB=->P6B,P*85:E,C޾30
+KPOʷ+G0G.2CY/:DT?+CM2K=46+MB*;B**C:
+QI,*,-*ET?Z,:03RF6TQT->O6ί<ZG7EOC
+PGC*8BJWBZ<>T++M*:N*U6űXۺ.094+EQ*=*
+L1M+6GVSPS<0/=99I37<>HH8ڵA.Y*1Fݼ
+?R;SXE8G>W-*G0GDC;-M1U@GP*D92-4ڱ;E
+6װF.ZPGQʶYC+<W³G+*L6JC*B>20DM;;*;V޲ֿ**2,IB
+8GF/6B,*AL>,GP,G,-ZJ*ݽ-+*<-.871N<0V68S-FI1
+KI.EٱP-8K+CܶIӲQD-JE2=TV+;>AZNOB
+.+*ݰ@WZLزC3Xڲ<O>,XO4?WضFJJ*S8*XC,OA-1FLJ־,
+<PNSF<;6B<JR6+ݾ3MZA-P7D;ί08FDQ>29LNR:J.?4*
+4?L2L:J.+4=258KD>2J3<X3=NR.;M9*SP,S>W.BW
+JN3;V2<M23<*J:K9;ǺR<0JZS9-B;R1R-,B322/*K*8=23
+/9L;M.;LF3Q.SN:LR2A<4@U.T=TRBCJN3/*X8M>*6+@*C=
+0P*85D-BY07C-.>5A*:P**S=N*CBXKMPA;+Y*1.06C3<N-
++/5D6-Q˿-5QG-TK*TN54ϰҷ:,JS=μ24>2*-H3>:0M21Z
+0JCJSϯ=T*=Q+I6D38*B**ZP*B*ر2R*?0E۹
+,-,.B*=į*;*Z7KȲ;*EBM90/,AGIQXڷE
+J+-0>:߽Yܺ/2>?XIPK8,M@W˱M-JA亴ZVMP˸
+?A+IB*:+C-7;,-O6B*ڶ;06:KM07E8HK0
+8*N7,***2,I.ݽZݼ6Ƚ,*:,*13,/4.+2*X*.F-;*
+H68BFF0,4380IP:B72CUJWBP1ܱV۰-žDտ-;SZ3
+-RVVR<4?/5@WڶO?AZڶ30Z޶?,80BZܲ/3LZܾ;MZ
+*K.Q6BXֶ+/6AX¯CWN3*RFL?-+>UZ</O+=PJK:ݿM8Gߵ
+KP7E*C*<N-=Q8I:67<NLFJ0;L2;B*N2J0M,K+=
+.=5MZJCH8GC1DOZ=C9M6+K,*2<O>SLNVF:N>*F3-J
+SN3/B3*Q,T2>TL,3<3F2*SM6*M>*3;<N>.;<*B.3<PL4=O6,O,N3
+.Vز,/4>5*4.?**;,*:˯0B0DPS*DP˷-,B5;1*D+X*,0*Z=,0
+NAXԲ*VCW*VL.5@7A+*R*J*ZTL3/JCZS=6:*:4*3E
+.IDZQ.*+Q4<QGP,8KX-0TM4PF-7.1:JK08D-1*
+JE+PK:N1UO0Xڸ.46R:K<<EQ*/*RL2M+5?XZ*:޸9X6;
+03۹Fۼ*06:<Fݼ++H޾+QLII0̻M@A7ر
+I8M?G8W-,:+FEVI-*HZ9M>XFJʴ6CZ.*
+6+*,**Z2*Z.6C*07EBE֯M7E+į*,*F8H2;LK4I+*2;4?
+T.63L3=T5+7J7,D5:-=*4׶*CD<NE.C7JJ<O6FO
+87A747H*J.+3@7FCAKZ5B*FAXڶ5<P6BVKM
+38X<C-BYغ+M03UR@1OCE3B2Z޶?W0*4?UJ,
+.OC3FDM1R*18EC3;<.R9I0K4GRL2;L.;TE>
+M>L<;4>Z6K>9GTZĶ7.;J=V<9MG+LB7F*5/
+=M6K2;LNB<K:J1;ML+P3>SXN*B3KQ:CA*R.JE1QPU***,R*R*+
+N:KF<*JB3:Q´<OB>>+,N<H>:JR7L**B.8*K>:ROʷ
+-;O6E*P0B0QV5AZ=BDCZ2MUֲC:SO=T4P.2:@,Z2;NB:,J
+30:N>2EP+0.6CMQN-19G+:T7>H=<ڿ=4ZJCYCW**P
+P6LJ+7FC,DK.?1*,5V?H6,U*VسѵM޿-G.<F+B6-
+J178F33;L**BZIUC;L*5QX۸H.3@621:JIJ
+:UشVKGYܺC1*BI**SV>62,=Q8EVV
++/6Z޾+-ASBAGKZ2.D+.5+*8M7FƯ-2>*ET+7G,*19H*1
+8E;ޯF޹M:K8IF.*:K>NM<M08*0*J:.JJG+F3MG:+
+FڻM<Z+A.XׯFʽ<EQ޿T-</@X7DXӹ<+.2A
+L9HN31:SպYNP6@4AL:*4=RX*=D7,B/TP6DS4<6D
+@X,73B07EL/8Eܺ+=Pֿ+-AZLWA.R@X޲<?OK2SCL8F
+-9M8H-K,I6T;MM*K6CTIT;N<K2;TPN:K
+IGI00X;0BT2RH߱8=8G3?U=N2;L.3<.;K;@
+̶6K<4*+:=S,*?*4?T>;YZC/0-;+/5*>M06*1:IJQ<O3<P
+JPY.<QLDF3=RBN2+XO>TV32:Sʷ=M,?+PҶ</6AX,F+3P>
+,F;?:*2+.;NFJB*T,5*P.;NC+Q3>RB;>*N.*3-+I*
+@RE92A3*JP6*SP8G.RK*Q*-2S-+Qƾ=<ַ=4*+2DPUV
+B7/D4T=4ZJ޿C8+*+*C̾C>4*V+ַ-HK/5@
+;ʺ.J6*GVBZ>MR0/4,-,ڵE4HJ9IE919A:J
+ܺ15VBLKGHWزGCF*AGKAYװAI07ZZM
+7M0M,-گY.F,د@N56C2*JCZ26*CޯD--2G
+M8*7;.-19IK2;H>2=+*XL2=Pϱ-15?T6F:4+VC*8
+3215AYE1XEX9K1:;HJٷ-JVܼ<8DAS-SZY
+ߺ+0C,N6C+*0DK=@ίP3+C-*3?22:Z9C*XDZKݯ6CWضVֲ
++0CB6E.1AYܾ3/D0D::Q2JK.TA*-ԹI6KM*S2QtR;
+L6?6;L2<OF<L0?S>I/T=O:OLXMFP4?24Ը.UBK*3*LG
+KM061/?O.;:K;I28EO1;-*O:*?LO>6*:C3*O00BXL+*E1M*LD
+0:5?V,.>M29IG2;QJK.3T*Q.:MFC<RZ+N,/C0,R1<5J*,V
+AC*ײ߰5GB9KW3/ZQtJǰ.=?AXز߰+2>T.29K0KJB*;NN*2CM
+IB*YO<JM:K.45R*<1DL9װ,3-޸9J+:KU
+C9B޼F+PE*QG.5T-¿=*TB2FL@N?D*P˷A?VTI
+دD˯-QXF3Y::=*ů*.K*X;M79<A9GԷUL*
+-XGAܽ+;L-II>ɸM8WOKڷ-6OXW
+GGYFװI.9EжK*JF>59۹ݾ+-88AWSOŹ6C
+2*20B,B1ZEP:.*ֿ-;*MƿǾ*-:KKY>۹*.YH**H9HA
+;ܺ.J*U0*M,+SO5@BPT֯*:G2U+2>TWR
+,>15L/5@Yʿ=7EEKPBES=D*4F޷MF<1*J=>,D
+ESP8ED߱1߯P2µ08GWί=7E-+=PB8G=Q5<
+>2:J,71:K,K6GIL<O<:/.0M@3L;OTL?ȵNL>
+G5SʺGS1FQ9K4?7CTRIH0DAUF;,2<N2;MJDY*TOS
+3/=QNBJ,W.+N1*J*TLR*;*ZPZʷ:L.:JA2;LT4K;2<LL.43=
+O=.*<-7-*S6-B;O:*DS<O4?.AJZ-4-+N3<+043<NF8L.F
+,ׯB7GN*ⶱ,B8L.3<N:;3L6.;MBN;7GQ*6GC==*46P,.EQ*F*S
+OJ..LT:L;+H**1*-C5+AH+LG329޿4M.65Gܷ,R3;OLF
+BGXڳW-+N./1H8I+3T296ݽ4GMD
+M8WN8.2,I0WD,;E6C;U<IFF7APZ߾ݾ-18AYW
+0*۸4?S8@DRί;K07BJ8CZƯRRB:E.*>:*7*+;-9+M;
+M*+,--06Z޺/,Z߾4.3EBJ6B,5@AUH*U0*M,+S:TZLO
+:L.3F*,;P4BNN?ճ5S,3;PDFڷ-QF*V7G,,*
+6Cη-Q2=DC?2,޲;M6E0B.0CM7DH06BYܺ+ٷ=?W+4
+P2CַQ9,*G-R:19J23,3:L6L6C><PSN8,OP>O
+D4=NF<PNL?T>1O>SABSFϸRûøTL7S46W89I0W>M>SN6/-7E
+F7CZRL29LN:LߴT+*HN?1>F,.>OR:+4>+-T<T6F3<T4;
+.IT3>TRPޱ;M08G.25:KL*F9K.0MMR*0ST;8-8T3S.DS4?AK>
+3BJT;C32@U,1.;=,/J+<@,.,*9I0,J13/T,+Z.
+206CXN׶+M-3?NR1:,*8+<=*:I>:L.*FF*T2=J*++J.:
+GB+S?PM+O-3S4D9J.3TT:9NRTB8K7.+.>QH@<NJ
+ݽ*=LV4KMT/+T.Z9G8=A8ڳW+N:K,޻ױ1H1ݼ+3L
+=<>9I混1J̯NS<׹FGM8K8WDJGBM;G
+FC;EAPV޿+ܺXٳܻEXUXٰ8+5?38F,O06-*FM6D
+;Ʋ;T*63*7Z*;J29BI:N*;8+N+RL8K4XX,:KXD6CD
+8?TRB*+-</3:HV=18EF8GFC0KM9KF<UKR=ATU<7LMK0E/
+*7F+*0̶=ZPS¾ݷ=F+L-45,,N7D/6B;0=8G.<+=
+ZAZ32Gҷ=7FV9J,/*J,Q9I8R:J*474R3M>**<QFO;4
+QJRBW>SH4>O@4O4SSZEVKLPP678IRX.CN5SPK2S<K
+0ۿPL<N:L209IF2;L63L/?TVLN.=+;+=Y3-Y,3
+>UBO.8E/4<L-*L**C*Z;Yֿ19H:JM198FL719J0*
+:;-ŶBK2<PDJJ2:K23L.3<UZ,3=NƶL*R**L73<OʷZ
+*8F@׹LZ/5,@4PN4+-4K?,-2<L28D:,1:.:T*<2;
+Y>GR߿2,O?WC3=0/J-GMBB:M8G+*P>:32
+AYCCҷ=S.IRK*-J2M7-06AWC?TBC2NS=
+SCQIK/38E>SN8OD6Q7CL:5-1EPWD-3<>BJ
+췸ɵIݾ/5@62ٵW/NPVC07DCK0MHI1*2-
+EF;I5E6C3/10:*AYܯ*Xز55VQWNV7
+2ĺ;*JMJBJ7XZXB82=2.ZE;V:B.+N>27DLڲXھ+=P4CZ>д6D
+ʷ23,*HC*JW:8M5S.4?SEX+RAL.A,7GðT?O/F-P7
+D=EF50E+-AV*+ZP:J*CKPE1-Z=4:V32
+808G9L07<>H,-R9=O8K:G.3<P=Q<O4RPD>R̺=QR
+<?T=SR,1>UٶT7@A0;4CS=Ϸ27>SP=RL3<<.29G?07E
+U3<M.KJ*3N:>U,G>TJ,O4,O3>SN3W<V.@U>S<<29;XM5@
+T:++07F9J:,3=.4>X/ǯ,,K071.Wڶ071ʹޯ06B,N8-:
+M-:KLԿ-:L,O:4<M2J*N=P6A;L@49-O8/5@Xھ+-R,/5*
+,2*ULL/5@T3>;+R/2*@.2:F18B:,B*AK6G0=NM<Q
+Ҳ0H?R;M0+-4NJ毶үڿ==ױQ<CMPM3*;=*R
+3.8V5D2L4;*=*:JIM9QM*C+-5?;N;-Q:MFлɵ9ݺ
+2<NRJ֯N=M2I·=,K,-0V10ٵطWEH:K*+MG
+-2:JGS7EYAY54?<07GA6ND+-*E-*
+11*59@F8YݼAYݺG@۶S.WAM>/26=*+*
+BLM6:2@FE;HM2;L.X0;HTRKOWD6DW@P0WزZ?AB.?0
+W*****/1-9KBN2:L.:HXM2<.3;MZ+MK>RLG,,7F0;7CC/
++=700-L,PگJFN76?6+GQ9IQ*ֿ-=7E¶D>1PE
+M:LNKZR=TR:J2..<NN>S<>O@KD?ULQBLTT>
+RKA=SӲN׶MPG>>WܹU+QC>3=SQPLOJE=C
+>S<N8:L:,4>N3=T0*F>SJ3NN3=RA3O5,/>*аYR+,.29H18
+DVο-16,2=P2;2*Wֶ*18DV.*5@XBZ:>XF*;-06+,.7C2-/18
+5M.M19-:9/.LZJ<JĶ0QKL2<PRT:;6Z*ZJ,N.@/+3=P0*
+Z*B;:LJB:@:L/19F29D*;,.:,/=Z:>*S:J29H;J:J=P4CDD27<
+Q9H9IM18VE,+FS7-Q06BZL3*2L*,+,4D3N2BIY2;
+L8WN8?4I-,*9Iƿ=*@QE8+˾S,MOJVNTV3K4/5B9I8ݽ
+:XRƯL2A=MT;.G޼U1EٳOݾ*MGGEQ
+8FSM۽8Գ1UVز97AVI0*,*VC*8װAM9@FZ+
++1AYܻGYܹɵYYݻOX۸;:IV.߯Ŷ>AA.*.9J2+
+M18:*6V963?:B:.**:/*4@GM5;7KJ;MRB,Q0**R*8
+M18M:4-/4?JEC.?INR@WBEƯP8-8G4G+.9
+H1S=*.9F-/8F,K.XH.+4N2.DX0Kְ-D;-.1E3*
++.RJ+7T*;N2J3@OL2;M<OBR;>SPHOT>R:NL˰?S;A,
+?WزYٰOTU7XX6KNS=>M,KZHK05Q06?R>CJ5
+߸:MJSL:=S.7;K-=*N3=OJǰõO?Qt.KJ2CZJKL.0-*.+*T/5BV2*
+6D*+,2;.3=LG3:LJCZLJ;*J8:ZPZ+MⶲL:+2NRO2BP28BVRLB
+*Z+M7;9-*.KRK.Jֿ206B8HK**B*:8F6Ͼ0,S33;LNZľJJ;
+@MRBM:7@1=̺=IGZK-,A3/7LKI*IZ=QC*
+޴3-PBϻPR-Q7AXܾ+17F+/>C.PG3K6CT2;Y>3<N8CD-3<NR;L*
+H-55*N˵,3=O6L:6FPҸO8H9ݼA8/8;13*-L2MK
++XIU@WDWAYܼܸMX:*۷ڳSWٵ2R쵰
+K׵ܺװEP?YH.9IF9EXʶ6518+1@6YܻݺE*Xܼ
+GUVسXڴS<KVDOο;07D4S/5@LJ:IׯGίM:DN:J2=
+H6A26D0*R8F9K.;<:*.;O63,1:;;J.9*1*2
+;7K0O16:6B*AA:**-*X.51Z;E@:5@+YTI**1*
+2+A8L<WJJAX*-IҼ**V9*5;-XFN毾Z*Iھ06*-
+*N+/+1F01X9BFXM>3ոB;<=F5<+FT,Y+BJBZ*OYXJZ*0
+4*8>J,3/1A68JL׶23S-N6SP6+K-Y,,-**J-P+<ƾV
++ŶR68JL;IG-N63N/J8SJBJE*OYXJZ*04*8>J<3*8B
+.,*N?598DJ4QEVPJ/++.Y,,**J-P+<Ǿ>0R1U-3:*3F
+BF=3VCJBJK*OYXJ**8,N+<Ǿ>0R1UNHN/W-N.N
++3+DL.Y,,*:*Q4:.N*Ÿ:LN3QT6DJ<QQ6=4**JN*FWG
+=G+SJǷF=+ZSA4:OV20̾Z6JN1:/.*Rſ;7OQ;ǽJW2
+=ξ<=AƻAED0+M,?OCT.CY.N.C1N75..F.J-P+<Ǿ>0:GN
+-9;=ڱVH@U8LC+L.Ʊ*PZ/<ξK2:J*/N?*FYLL¶Y-R
+Z4Jڼ.M*3N@Q*H2N*5I0ED=6W,+ZP+
+кX*P.C1N75.***I*M4,A>-3E-N<;X=Q3/WT<U3
+;A*?S,Ӳ+*.:U*,3,WH߶G*KHS2:/.J*P:*-ƱAͿKX
+O=8N>=C;E7XXK5ZDXAUXȹK8.R+H946=ٿND**1+J3,EL
+BJU*@W8JOJͯ,TGG6/R,-GN::LF2,/OZ*++OMJL:
+۾*ǵ7N-,J+:80Kï9W3X>IJW*90J޿JIZ1Qļ4*<
+G-+P0,XKFEζ+-CJW7<2T/0SD3<ǸJ01VAPPD8O*88
+8;;.ZQܽOA.BX97޾=F.=A7=G>R4Y;R*:C1
+VAOA6DFM1ѱ67N,U<+T/J4G;TM/2YQ.?L49;*-,2+8.
+A:J8=-3*,:TR@CVLE5M8GHFAZ*+I/0QLG*JHM
+:*.GCEF0?A?WCHF17Eܴ8X1-LO49ZH@=>Ƕ/X˲R
+MFH@,X97F>:67XFM,X7O;P95,*K*
+YFZ@Z++GC+4J޴S?:>/2ԾL/JܽQ**Z3K*;*C+FL
+F=11:*4F;+=?;*8.3+UKGTS5MIQ-*23KJ.CE20?
+VK,<PI-,8Z2*7:.,P*6SXŶ8?
+MV5S67F>:67XFM,,X7GP95,QG+ز3Ʊ*L=5*Q+-,
+*SK*ڼI<*V9*+,1.:,*VN11=8N+.:AIMJ***+RFUѻ,
+ZSIRED*UJ*1W:ڿR2V߷¹:IO-6JR:O*=
++;-DWO8GM:Q328LSK0ZĴB5867XFM,X
+7PO5,*=-*-3>:+.1Q:6:.:0F,*,/P,**ZDFZJF++B=*
++.Z8BN+O4K5>M8B+JVܱK983F*6IHKP0,
+K+GڲM<391*=UZ۰GBM:-1FX+*/,8VM̹4
+8L46Ų=F.Nź;/DϽK*%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 94 di
+/sl 65048 string uc
+*=-*.NT?:9+***=202,:>0,S*ZJ78JP:۾*˵1.*.,:
+8G*7CF4F2R>1ǵT8NIF<Y+X36<A:6T8OUF<U8DL
+-UR;YF-2F@;0Z.HRD۲*S-2@8VEȶZUOZʵƴB
+ZG<*UMCASM+Y0Z3-V8G.+*N>A+8ӾT4*.HR-CZJ
+PJQBX1SZ5M+YN߿GF4*3J<:21,*1FZ4F湵,+.LQ3/..E?N
+*ŰU=C20?18?8+6F;F-,8Z2*G>.ŰRD۲*
+K-28Eȶ88V06Ų=-MA8<F>ϽU***Z
+-V8G*ECZ:*̺@>/17R/4=51CD;T131GQ41SUC@KD
+UG߿MRGGYX޷4ʶHX-8B/M8C4+ONISL<?*/.:MICE2
+0?18?8+6-D>0JV*-WJSS>5ܶA8*A-I嶵
+369Eȶ6XZN?J,6Ų=-MMAA*ձM3OշM**,*E4
+:*3ײ۸*6,XN8X+,GR9OK-F*?F22IR-DM;ݽAV,@N޳+T
+,ES11.41Z1GP3JDB>B.L82D+-ٹ@+PG84/-2DWYJZON
+JCFEԶ.41Z:9-YPܶA?U.2޾Z*0,.L*R@VFıQ-W==+;V1
+/F5ձɷM/-X/,NZʵƴBɱZG8L009QDA2F.S
+1Z</3ɳM,*J=2-**6*6UPK-LQ̳2ů**922E
+***Z<U7+?M,UMG1R/8аKFZP,513Lܵ
+WZ*00N+H+BJL,,VI;*Z*J**6GAA:**-*M/0*3A
++7***Y*JR<*-NS:/.0**H*BJW,OYXJZ*00/+EA
+Y,,-**Q4+H=,BJ/-OYXJJݽ-2**5*P,,8FYT*-Z:/.*=-
+*.Z:ݽ*1*Q0*22J*A9**6*::+YTI**HC*BJ,OYXJ*
+*HC*BJ,VLC?/+***5+;6N-E4RX/***5
+ð7G;7?J96****˻5˱3۸MUGI614***Z/X6
+͸*Xܻ,>=<**95I*C.?گ/G3-GCN***.MI
+QFBڷWEӽ4F=H>QL;K6*PR6Ϻ,-P
+****5;16ݵ>ڸ-*>XJH-K׵H6*I-ٽXK<ӷU͵1=8L
+0Q5:;F4HKBX8H:1*DS=PH>9P;3F4Sܺ
+U=9YKG2-J1N.CKE9VA-G1;7**HC*BJ
++-VLNA?UF*/8ղ۽A8I<QV<RQZI-G
+0CMP7ZM82M68Զ1YL*AESѲII8X۸R-Q,*P7Ʋ
+4ű<YڱԻNHżܻUȹ<HYY8CF5XC4I7رO
+IM1*6+CJ2ɵS2ANQQV6P>NJJRT<O4L96϶@7GA
+0:WATMI@WO9-5A-4;Lж91N?-P****5/-
+10RٹH6̵Ծ-+ݼN@8@L?42ZG=L2L4=TF
+JQ,0H6Y۴ݴϺBFд׽A?KXE=WP8MD/,*
+Gٳ̯7,0R+KF/DXõޱ@Q5URIYH
+HܻX=AA1K5>0ICIC*6X>.>S:=J?0=4M:Ļ
+D11䵽:U2SHM4F1F03/P۸11=1111X;UEB
+I:H9B+*=-*-Y:A/IB-Mٵ1IA-.8,BU>Y;
++7K?-3-AرDZRG1BJZ+7Q8G2LE6F5HJ÷V׹XD
+HVڸװV7ZQ@R1L빵GFVW8-,?ҹE
+9VUF?T0F1AXF8WPĹ?H-WU<F3XIM;=8-A=
+A>9*1+12:0@80MU6@>:J6W=99J219ԹAöӹ96
+1T6FL9O.GQ8CH1QK˷1KN-P****5˱3۸N
+9MS=@FǴ⳶X42F2W޾D
+?9Q>PLM@ʼ5?3ŶUۼG8ݾUQ-0VQ71ڷG
+*59WYH+빱Fر-A;G1׹XFW̷SU
+WY궿8S1۱AXӷ8=PV>Q9ܷOZX*-L
+*5/NO6?*MBVRK9OHG99VHX6۶96J
+9F:.C²,WH1F:2KR1IZ,*Q0*0XJF
+RIݻGHڵ502F-*3GR8SڸUد?:D8߿+׹
+WG2TJO*?DMFE9IC0ݻ/XR+,F*,
+F-=0*I+@5>Mȴ9E>YLMG.;,104
+HA9иEE2G4141EӸO-UQ>Z2UTEʼZH;=9Ҹ
+PSܹ1*:0L7J<0HJDIT?B8IIڷ/1䵽:UE@6J
+.1F0Hﻹ0з潹1V>**۵HZ0B@9+0823@I3**HC*BJ
+,.W+9XPCB6:0*?WWFI߿=ڵP7UJ1۴
+GU6=1*G-;SJU2PV@Y/Ŷ;?EYJ;1,ٴYG-
+Oذ-YX68-M?PN549=/*8DHM?WM
+7-*JK9XĻDQ/̷PUGSӷZU0XEC@VJ
+QYG3-/+ZXS9*A+,:0?I4BQK94<ڴS
+-I9@AM;>IBIGEMIM*3RI߿ܻT
+58+=***Z/*XٽIػ߹ر+,*޷YеR
+H?W/.>19=,SP.V˸6:VBQIM352FP
+/Lܺ߰;?/US=R31M@XQ9Rٷ=8ͻų
+½VFMSYY*/žLFPDĸE52G43޳1U
+TUB/*TNKM589SAX6޻T0Z<
+7>HGWY+<032ZG9H02ٴ1AMDDC*PG@8Nݹ
+/F8۵0*,I2ZXRI࿵XɰXK7RX1**++
+B-<IBC*R۽USش59YTU׺@?鹸;S-F,QI
+H6BYڲسZ˸9R*5NS9M=5;2V5S@NE;?
+XS/E̲2>P9Rٷ=@˹سUSDڹU7LӰW9
+.ܹLFü@FW?龸E5243/P1S?VTHW/;е
+WE<X5BLB?E1-HAR*@TFH1W
+MN961YWHPR*@9ݵ319G8Y1IO*BU>7;
+*I:J40HLH1A4=S1AAIZ,*Q0*0JX>5Z*UܹQ:ȹ,
+6:1*@DְOOM89@,V1۸8ڴ?5?4౽DACI
+XDU?QM3CQMX-OVDϹٽEֿZO<+-
+M-۹0*5U>SWK8ðF߻=E5243
+/HLO??QX۹YE-XζϱսIIIXZż*
+HR03I.1J<۴=031K:彾>1E8TԳƽQJT9*U
+A*61C,*>IF+QK/9B+*=-*-֯:O++˹ʰ;7@>I.C7
+8ݽ0I8?ڻ;MѿG1FY/3HZJQ۶;,/?9CJHWM@8HMP
+V?MF0BB=DGV.BUGMӽWD6P*0Rٷ=1@
+۵MϿDڹյ739ݱ0FP3F1ݷPEWBN4XGȼ
+YIPF?T@I99ٽIUQFIYUB3M
+TA6*IIL5=03WQ80XQԿ,۵޷IIG.UJQEں޻
+N3=1@.K***6࿿T*9A9U<?=:-*A9B+*=-*-
+N:OM9H-F;:8O4ݵS51-GLӯUJ+ݾ
+*GݺVA5>*߽88ܽ澸8ֲ@6TI93Ŷ3-2Y2GVU3F
+ѸGڹQ+HVS;ż۽>ǹWEJYQ71ѳ8W
+׹-XRA1@VQU@=6ϱFGAIPSR@I9?F
+@FXT̾;?XF+1,.IX+U*:0JϵN>GR8
+FY7AUG1SBUA5C.F1F0OCUUR*89.M2
+91FG8ǺF:06-ͳ0+NTRN9,L>B+BJ?-.W+9WXF
+/C<7FŷF3I7ٶCBܺ4Y+Pۺ7/UT@Y:H-.
+Vڶ0ZضAF5QN++XF@ZL.XPRRTH
+,=N6--Mۻۿ0D64*W-T޿8G8;
+U@UMM0=/CN?<׹EO-W-B?,TGԯ
+Pس@T9*AYż*+A9ݾ0?HX38޷R/;޻Xٰ3
+TѶ?SҰYپU;-X15B+,9*@9016Y<I27N
+9MU>U<M>RN9,*Q0*0JX2H.XIQHձFETȲ.86
+AUHQ?F2վ4MAZ*=ITN:RUAR2ͿI@VFG<RVRBF
+U8=,=1WCCTVݽ۶CVUW/@ݱݵ5ذط߻?Rص5A˹
+-ѿP38?ٴHH־޾93YU+O?TJMXۻH1նI8I8>
+S9=8FSU?WD7EU.<Ѽ׳CRSYVϸ.92+FO91
+̹9LTG5C:R18=8J9V5W8FĻ-7
+V9<TĽ/*2U2*U48,RI޷>J:9-8F@OA>CO;4**HC*BJ
+G-K+,۵ܳD7S:J3HTKSد69ܯ=
+?3/C9458ֱOFS-9½TH=S7TԯFT/8
+ONX۱>Qt;I.5;9IFٷ0Dͷ粲Lݵ̻+
+MHݹ7ĻZܴTWQ25KJ*UFO918DRI31T>OGMVױ
+Z޸縳M11C/9*1ȿRH߷XWرR=DC:R/JRY
+948LOѰ15@UQQWD?H-I̷8P;TVH/Z
+U0-57NM8XQ1**++C5,966X8Xٳ.1K
+9⻹1Ỹݲ5>9+U5رRU6WDXJK-VK9EB䯲<
+FP:*X;./ѹCA.VιJ2X׿A;+L
+-4/O<91*2LMHݵ/H澻ٰD7P25W׶X޷IQ-B޻Pհ
+XHR/506B5@UP3XLX*9*1BG4R9+3+.
+;PJX1/QUŹIHU׵>I:@X/I<I*71R0BŶZϿI4D
+VFI3**HC*BJC-VLEMNCE6DU@ױVBYQSQ0Q-?
+<VְL۶Ǹ-L1=0XVL75*F,7ڹ7OC?Q+/
+OQYEEJ4.<I.JJ;QF1>RA;Tۻ
+?QOSGYʶTWYWI8WY۶/LTKXQ@I:A-:0ز+1?
+>߱<:زԷ̹;JNQL̻ڵ74D4+2TLX5ӽNZ
+IA-57N*UYSQKN9,*Q0*0RJFSNC=R-6޿
+OӵTZ?6κ,XD+3ṷYXZ>XY5/
+<V4SRYP8AR2<L?<Fӽ۹*0XD9ᄉҴ8.Y?./H
+D1UU8F˰C̶X޷OB޻XٰNZ߸4?-?:=
+>9*D:JH=09>FJUEC/M࿹TŽJ@8β1+
+ȶN4NZ.F*J7V-INW****K6;16ݵXY758;
+QڱCLM499뾵;R28Z;T?1R3D?Qս
+M7JTT@AD*RUUԯ/HH*H۹*Y*A38:G
+I@@VVWհXس4UT۴DG<G=*+1
+ྴGF,3Iֻ-ٲǰJT9BII0**6*6ɿ:2V
+QGGUTK*߾@߸Y2<N6E:MFǰPKѹ=A9WӿI
+8*ȻZڿMQI5*K,Fܳ4-;L*8*07B<WNAFJEF2A**
+5V?ݻ-*JY+*U*J?ZE=I:A-NO6W-IZ,*Q0*0RJ8:9:
+*AH+<C*F?R<*;2-Z5*8ó,*Jܵ9LXB;
+-*N;+ٽE;,X/KW*21M+JC<9B+*=-*-:A/IB@K
+04ιů0***ZN0XG;?L89-/*%%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 141 di
+/sl 65048 string uc
+*=-*.:**/0.6N-G?T+*++WEM<6VպVR1*Q0*0
+JܽS52*Q0*0JܽS52*Q0*22J*A9**6*::߿+YTI**HC*J
+J߿--IҼ***Z0Iھ***Z0*XԵ79?C+Q0*0ƴJX2+
+@+BEP,Z9GC*40滿CHK8,***Z0L<Z@*261@V
+B./*C*@-***6*6׿FBD@**Z-.-,0M*Z0C
+T+**Q0*0RJ8;H-**9*YF/M**5**A+7:1.=I-*ۿW3*5J
+T+**Q0*0RJ8K5I-**9:7H*5**O4@*޻F;59**>H6J+
+<G@;.7:CK*2J86JP+K*DYIY8*Vм/BJױ-JCB>9@C18
+U:ZN9A*A.CE04@MH**/.<OXAB14>A+3K2T*
+;**+*SG+*Y+1:+6>,J3+N:<F/D?**JY*6׿M64Q/**6=1
+I*ݱո7V.>Yܵ*F=5JJ.Q/KRS,*滾7**4,
+*P+4**,8O*K**J2J4*3**.KX3//V*7S1***HC*BJ֯-V3BC>5**B
++,-G5**X/Z<ƸB03*HԵ:*U9>B6TYBZ.IAH,R߿V<
+*??/+1*,J,+.RжO2CLP4K8Y޻>S*+W3QRN1*28.
+*7˱;۸1O.**JPI/9F1K1*᳿</@=ŽF+*VT,Z+
++Uǵ@J0-**-.ܹA+*8*ZڷS0CY.+*GT=9S/,2608-XSJ
+*;9FQ@O౶3Ʋ3SHU@J>***=-*-:213+**1-Q+VI
+ؾW:CNF+*VT,+W+Uǵ@*0-@*-.UXڶ
+WٰZ**ۿA***K:*0JP+,U1Q*:H.=NK8XBN<*N3
+R˱I=JR53?**1?+DM,XKHU5@.=8<Գ*:K8C26F?MSK
+2R0QZTA0N-535C,J*/6..A57=*VJ*4ױSZBZ/IA
+H,JQJF0*J**0,:*=@PB?N</**O-*>5;**.**Q2*W**+
+*SF7.L-Y2<*:K2N<J213*D28SGQ0*;U*NIF=+T1-JK
+5D+LG*JG-M*-.:A2@-:߿1**:H.K+8-K,8+:Oǿ/8*B+@F
+EF߳O@1ZER*R:13Ǹ.?E7=*VYFRZHδ?
+E5:-I+CC**+K/*:.+HMN<OF*K*ɿ**?++1B
+*.:J10:*L,JV:,L*N?676J@,FB*+.DO;3AGZ޿M>
+>=T+*0+BJY-žCC.**ε4JD/2,W7**.*Z?/.*18*NX6KO
+72O*-,.GźZA2/:*7.RT+J*JP.*IMEL0;Z>?E
+5:-I+O*-K.*:I;6O>PK<OK+*9:+**A2**F2Ⱦ
+1U޿,*J*F9C,=ݶĵ04J@,FB*.-9ݿ*6LR1*@
+WI,6տR@.6,G*J*FH/UC8-2**,ƾ04Z.*09BJJʴ*5/µA=LR2
+82:G>9PB8F*ƺ:JUIET++<03*HSXUPNQ+Uǵ@*0G,3
+0O*Q5U2*JNZ>WLIJ<ǶD;8:+****A4J.4?4-**
+5*AR+LCJUDĵ04ARC:,*8LP:=T+*4;HB,BJY-L=-Q+
++ܻD@WE:+N,B*A21-*8T>;,0߾*-3-嶯3*C.ܷ߷,*
+TرZ3?E5:-Y=湴NSA**7@.H2***XRJ
+Z0FVU>12**2P**/*>-ñ+?,Q,J0̳ID6:̵/,C8*<;+
+DM.J**+>@XϹ1-,Y*K,=,;-16Z/*0JïA8G8O7239P*0XK14
+@7=*VJZ=Z3;E5:-I+C*+պ0*NOտ*=.
+7Y2Ĺ5=OȲXGUIPK-***X6JN/-N?1X+J4*08NZ2/6*
+?->*.,676+RFC:>89.*:̵6C8*Vм/BJ֯-.WG*J*E/J
+7*0J¾J-1,*AI:8*N.<0Q<A,Q;61Z2+W5F;O03*
+H<*O.@05,CZ>1X,޾JNĺ0**J=U+*;3:*.+HE9>*
+*S.Iп*52V*:**6,6+FL*,1J*+Z*C//-,JRB+5-?:LFE-*
+ռV*KY2:*U2*LG*****ۼ7G,*+*8I=N>C,*
+./I*+U*Z-*51W:;ٵIEFߵ6GI-U3-ַ.G*QD3DFQ***F
+1<>+ͳJ*X:OZNBPV0*B*N3Q*C5+*5.**0,0+4,854
+-,*,*Z60?..:*X;˿H2UI@AH2DKGDLG*>1E
+*-:A2AA=ݳ1*Z*Qƾ*R,1F-2<BAس;.W+9*YFRL.@
+,.@9VOB8;>-:*W**@?+2ZҺ=R-+/:D+S@O**A
+EM4*JNZθ>O4+J>O4.JC2A0**K:*VX2*:**4:*.-*:߻76Y
+Y6J+FL@/6B*貽=VG2H3FMTȾR1*2.*״7ðO+*
+*:1*6*ZN1.-Ӽ*;ýF+*VT,6W1QZA;Lӽ8.XG*
+,*޼3.*9X3Ľٳ1GKöʳ**,61Ǿ1,QJ*+6XK+J
+@*:7*J;*+:M<RPRYKIS>C,X<TT-***6*6:ӿFM/+*;6KV8
+J>9Q**ܿ*H8CZ-RF1,-TNGϼ-<C**Y*4*J*
+3,Ҽ.ݽ̺˹I83Ʒ,**?Z0J*+9,*+::7*JC.M@O7ȻI
+I+0J6>**MOI*6:տFM޻1Z1****UI*Z-F9.+:OM8,*
+GIP+IZIM6NQ+HV./@B@W-Lر**MYF2*տ*,=.793P
+2*-C/**,-,4Z?*B0̿0*3+*D<5-2R/TM+BJױ-.W9,**0Y
+*Z@6+*+NX9ĸ0N-Q9G<5Y,*6.Q/KR,J:***U
+1,*<:*3X6J,,KA@-***6*6:׿M66/**6*K/<7**
+Q?*JOG<5X,*2.Q/.=C-J3U۾*,*@<*41W,/D?KV*
+6:׿M6X/**6*KWB.V/-HJC*,*J=YIY8****Z0L
+<ZE@**Z-N1J;O*NUB1?1Z+ݼPG*****7;I,ۯ*:@*:0
+8X5N@E6MU,JCG7S1***HC*BJױ-žO*L63<75*8*V
+07:O*++WEM,EҾIT.*HC*BJٷ-LVI-***+79*+*+*
+,лEI*O-*=-*0>ٴ:D=*:ݽ*;70**޾0L,*9I*Q0*4J
+6>=7ú31-**ξ0ZPH;ZVƽI*=-*/⹵:0ٵ430EL-+*HC
+*RJ۷-ֻR2S@QI9
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 188 di
+/sl 65048 string uc
+*=-*0E:0ٽ=*:7ú31-**ξ0ZPH;ZVƽI*=-*/N:0ٵ430E
+L-+*HC*RJٵ-ֻR2S@QI9*+,ػE2EZ˰;L+**6*>׿BH
+3P+NP*VA4.VDO/L9I*Q0*4J6Q25Q+ݽV<ҵ=*3WV:
+7;70**ξZ0ZOJ04.F/,Y@5ZIN+*6*>:׿BH;A
+4ARޱ1B:*2G*J<ӿ-W7<2TZ-,:7;70
+**ξ0Z/C*336@ٴX2FM?۽1TոDY*7?8UB
+**1AA/=F2*;19Z*=-*/>:0Q/Z8.**@Y32*8-+R.:Q+**BRJ*4
+BSB߿*20ݽ0-*HC*RJױ-ֻPUJ8JM,E9.**:ۻ<5N--+*-/*1-
+K+LO.1,J.EMD6**J+7C5>*<E<</X*8Bҹ
+VJ.,2*1,,QN.+Z-+:7;70**ξ0Z-;7BC+Z:0Z>
+9R,E/**5YF;=.38.2-ŲB*+,ػE2=AY:*MJA2J
+M2H8J+;.@9V,2*/1,UQN.+Z-+:7;70**ξ0Z@MH4׹
+P,PU4E/.GGYVJ.,*P8A8QN.1Z-+:7;70**ξ
+0ZO4W0:O=F+5޼̹=*@*ܽIEJ/*S*0JF23.;H6**A:1=F
+:*;19ZAC,E2յ5Z,;19Z*=-*/E:0Y@.L9I*Q0*4J
+6W3ZIN+*6*>ٿBSQ.E>5=91**J+7LLPI;**Q0
+*4ƴJ6>=7ú31-**ξ0ZPH;ZVƽI*=-*/>E:0ٵ430EL
+-+*HC*RJٱ-ֻR2S@QI9*:E*U86PEJ+7LLPI;***JX۸
+Z*UD8*/:030/Mܽ,+*8**4*D+4ZJ0/X3FVP-83IL0>K<
+6+/E:0ٵ530ݽ*.-*8*ڸ,,XX72FK14/SJ,7.+ڸ-T1E;7ZJ
+ڷ-+*-޽NB***UA:,PJHF17Fò+X/*N.:B:ڿB13*
+***52+=:980X໴FLUH99<FTZ/=ξ0+***UA:,XP*T*
+180L4RK1X+F׾鯶.1.D82F<5˴/,/:0ӽA=9**1*JX۸++AA,
+߿N45:-QX-8?KĺN@@JJ+7KI-*+*UXJ/˾X3
+<EG*X*VFZ/T6XTJ<<+1;KN.42J6TSYPH**8*ڸ,,XX.-:7>
+5<*46SH.P8,X8J+7KI-*+*UXJ/˾:=F5=*
+46Q޷R6A;/*4RJ6TSYPH**8*ڸ,,XX.-:7>5<*46S
+H.RX=X8J+7KI-*+*UXJ/FMF.P.<Rڸ+JTƲ,.
+G2+/Nٴ:0ӽA=9**1*JX۸++@6/JD=*,CJGY6˾3=+4RJ6TJ3M
+*-*8**4*D+K+A:+E-:ƿ/=-Q46G/迹FDL+7K1*.
+I*+**ڸ?583.ů,6RJ6T*JM+57**+7K1*
+*Q0*62J6T*:MU0**޾Z0-*C*=-*0D:0ӽH*1*
+****Y+*6*B:ٿB*JU-7%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 235 di
+/sl 65048 string uc
+*=-*0:0ӽH*1*****Y+*6*BؿB**5*0XC@,BKL<˾
+N59-**޾05,**DJU㶷GY8U+3;,,X/L;1ܿ
+**6*BؿB***F*CXWY+1:Q:F-:G.27,5+*6*BֿB***F*
+CX?/+RZ>:ZK,J9/*J,-XR/+Zʹ+/*.0B?+UJܻ
+B/ALJ:6б15Rθ1*62J6TQ***8S6G*@GЯN*>
+:3翹UB+CN414ƿW޻Q*G07.F?+LUJ8;41:42=HDZ0=
+31**+7K.**;/XCX2*E2:V.0*=+9EKBG/Q,J2C/*C9
+K-HN*,6U*3A,K:1,L+H.,+*HC*ZJس-RG+**N+U5,*
+1,.-+:NP2P1WK.*1-+**..1F,SϷV18Ͽ:?2J71-A:4JJH2:M.0
+I*9L*Q0*6RJ6TQ***8S6GN*BI2:3FC+R18׿Q0̳+:R++
+J2QS-RR*B?޾C-K>R-M*0:0ӽ=***>JU㶵DZ<*L9
+.RAQ:N*Ƽ-JH8.*Q0KZ,3;Kֹ=4AO:4*J2MFUI*9L
+*Q0*62J6TQ***8S6GN*2F2TO*APJ0B/1>J:8.*KZ<,3
+;K=2ﹹ8NJA,,.;-+ϱO-K>2**+H7K.**;/XC0.Q9
+,H<AU*3S4?F*N50A*PV<-.;,J64D1.8LJ
+>KS.Q=9*+*-,WD2Y2*X0XC0.RJN*D>оĶ.7+̶
++/<@6:@J*;2*4*课M8NJA00B2:3ȶ.<EYX
+*0.:0ӽH*BHPSV9WU-**+P7K1*>PSMD**
+HC*ZJO-R+6G@S0**޾H0-*CX19*=-*0·:0ӽH*
+ܽ޴-*HC*ZJ?-R+6G1E*+*-B2Y9*ݽ*-*HC*ZJ--R
++6GYEE*+*-@2Y9*+*6*B:SB*JLJ5˵FJJ07-/9
+D+*6*B:KB*+*UA;Ͷ6G6.8޳?;.**޾.+*+:R8-
+5N:/?;.**޾.,*.@;>*+շ-65*I=+JB9
+,MQ13VRUKPJ2A@98HZ/=:7DƸTZ2+3KA/*==
+3:M>*UIAS*9<*V69HP5,0@J3*KSUQX
+0:F7,Y*Q0*6J6TQ*JL+W9W0<>T=-,WL-ZװJ*ZF
+/:3۾,;IM+6.+**N,*Z5+.Y6.G5**+O4K.*>յ@J
+K;-+>B*H:JI/-16J2:**..3F:*H8*IR*/*9Ƽ,
+*HC*ZJV,R7+*;0ԯQ,,,1B2,.QDZ*K,1Z4,
+7JYAV/96+BEB*XUT-JIQMSYT+,*/-*ȺK
+R92*/8C.FETY*Q0*62JJ6TI*JR+ڻ9X:*45:**X
+B*F/5I+*AVJ0-1P+87JC1Y*Q0*6TJ6TI*:W*CH
+1EK.*TTY-,8麯IBQt4@JOIBL.4/*Qӿ
+G5**+S,K-*AN+*CLŴ,8KU:-*ABR5=K;+>/;9@JX.2/
+J*=.Q4/=:.5ƻ++B:9EB*J77**+R+K1*
+*Q0*6.4J6T*:MU0**޾Z*-*C*=-*0N3:0ӽH*
+-*HC*ZJ*R+6GYEE*+*-?52Y9*+*6*B:B*J
+77**++1K1**Q0*62LJ6TI*޹J޿QFJU@3J:HJ
+QO+JYT*=-*0J:0ӽ9*B5?QQ6AFJUOF*׽/O,U
+Ṵ+,+*6*B:*B*JT++E1YH8,E-,Y7/4810**
+.-,*W/.4IIXB,NX1.+7U-*+2F;G-2Է12X
+J+%%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 282 di
+/sl 65048 string uc
+*=-*0.H:0ӽ=*ιK+-*>;Y7Q.,*M㽻*
+MQdzM-7*=T95**+1K.*=456:M?F3.A@1/55*,Y
+F-5:U?1,M-+6=9*6HJ6TQ*ZZ,,EQH
+YP0AݽN,/8V52+*7M24,VVɼ//**޾-,*׹/.
+*BоPGOJVI::.:,J24V*B4ZYAA*+*-82
+4*N-A:J̹-87HHK+8MYY*H::.:,JBܽ0ݽ,
+*HC*ZJ+RW+,,Q1¾I2/Q797*-,,?=
+9WI1X*=-*09H:0ӽ9*JN=AFJ̹ߵO*>ٹ>7ر<
+AҰ0.:1<:UH<15**+31K-*V=3.X-
+AP4AG/<3F=D;LTU=-ATKï1.;/,L2ޱ0:*
+Q0*6J6T*:MU0**޾<0.-*C*=-*0>J:0ӽH*ӽ-
+*HC*ZJ41,R+6GYEE*+*-B:2Y9*+*6*B:+B*J77
+*B*J4HƯ;<8-GMB19E,B8Y9*+*3-G5N-C@L;<
+R1H72LJ6T11**+J//K3IV޽0>:H:0-*C
+*J*:ݽQ,F:MVB+EθB83*R=*R6G0D1V1,/N*
+*Z+ݾ8Qݽ-**J:*H*24N*?,O,<.H3>:ER;X=86?L4FS8
+G>/.06B:0ӽ<*B,+E=6UFްA9C2,/;5**4V.X:*TAV0
+**P+80޿2F93C=N2*>8B2M:.JR+RG<*ֿ-
++E=SFްA9C26/*LJ=;G+EBJ+J,1/<0.3?8F:
+ٯ54-̵M@-6M0K6J+D/K.*B4+F*C7;9-ZH*E57D
+,3C/,K**FH-QK,B87R<-ҲJ*OG,CFHKLY
+:-4,L**50OZKW?N*,*1>YB6*4:D1IڱC*ݽ-R-D*1P18Q
+=ڳ4X182BB1R+JEGB21,6WJ6TK*G=7:MG4F:
+SMѵEA=CM/P*+F5I?=HZEW9K-YMY
+45,5I0FL9H::,**R2+*,575,EBPŽ4+Uһ0
+++*B-D*+-O*>L/8I5WMö@1Q@X182B?.Q=58N65C
+*-L62Y2*ս**08/@2JF4G9*D2R3Z*<F*P>*
+++B+ַJ8͸/Q1AYZ7.EM+C1ްS***,V5F25:P--
++UJ1*B*:ݽA-M=+/8DJ03+*K47;B?B߾
+-+*DQR**-MM+4GZI395K2?B+20:V-*14*Q-
+=X*9:2VCG67OI?O5E2J6B++K***+M4*Q4J6,5+
+.2+N0OAZEJ1*B*:ݽA-M=+/8DJ03+*K47;B?B
+߾.-+*;>**+U/*A<*5J2?2+*+8N,AV4*
+޿.Aۼ,5@PѺ*9J*1̾Ƿ*L.J-Ժ*N/>6*+-L3*
+7J7*FBMG*3FW-2*8BJ,5߾:,.+E+UR
+Q*.R-/:BQ+޿:2E/:2-;B<:+:F*6R*,BIG*I
+-Q::1,B*9,B+**,-=,*9;8;S+/*1=,I7>F
+65.,+823FN,,T6</8H.J51,RG?***Q:J̹O49/G3
+HI*D*,C?>*6F2,2+*85K:,M,/E2;:-*AA8,-1DJ<
+9.Z*I.Z,*0>M.02Z2YKV,,*+@QJ1**+W2K/**3.7
+IWUIIۻVݷI>մDW,1*L*>*H.G3;+>E2;
+Qپ*㴸U@ڿ2**J8>>?B-N2+FF1Q@@WHYQ9*
++*-:24**=2:MGEF<DJD0@,GHYR72O?CN޿+,J
+?J..2YLV0-KV*P8=5VEGY6ON4,L**-OS2;V޾59JX.+@4/R*-
+4<03ʻ0+I*Q0*6RJ6T*:MGEFS=6IE2.DV/**6*BοB
+*J<NKͻ7ƽL.ZF*Q0*6R޺J6T*:MI<F.0>*W,BKY8*=-*0
+G:0ӽH*ӽ-*HC*ZJ+R+6GYEE*Z/*JݽBFR02QZ-Q,ZJ+
+R+6GYEE*Z1*:ݽY68GF;?@3Q09H:0-*C*8*JBFQ
+5I4A5-θ*:MU0*+*7ƽ;M;30.G:0ӽH*ӽṱ*
+00L+,E2:-0.8GBF־Q158@XB.FϾٹ,,<9+FN¹=,ڽ,I7
+ڹJ6TK*Z4QDJ̹-S9Z83,H,FB98,8F*=*3-AT0**8>
+.F2M3*AP+8@FW-+1.:FAV,<,3SH-**ڹJ6T1A.**0*
+ZV7-VM,*:Y:FE3*+>*Mۿ?U?-**14R,T*JC-J0Z1
+Bѿ-,L8.F96IQFN+1KA.**0*ZP7-VM,*:YSFE3*+
+-7:+314J=G7ܽC:J*ݽ-*20,>-S***BFٵ,1082QF3
+H:SG>33Q;ǹZJ,,R/+**+EMF9/*V8ZJB*QE*10>踴J
+P-C092+45J77R3J**514ZB+9,M1-<0.,>
+L4F.=BJJ++-*.:8ҾȻME9PJ޳82B8CYF6,K52:*A62
++88FDUX2B8++5E+HF=S7C7U2޾*L.5,*/*5>I
+*CǺQ-+*-520FL9HWS+HS.9I8׷KIE:@
++U5B-2*޿>*:*BW83JZ,F񲳸?VXI=DOJF*,V*
+?,X?O;U7E/-+7*LE2<*@V.XG-+W6,YP*WD˾D
++NN3S-ZJ/E,R/+*Q5۵@.*C3,+*-520:Yݶ+;ղ:6P@*81X
+ھ1CYZJ+3O672MQ,J澿E**418>Z*޶:J<46*@ʾ4:*F8=+AEK1
+ܿ7:Ǻ,PT=+WLN:.J6ν<++<Z6+.*+*18Z40,8/6ڱSZ5
+21082QO3X-CBW8F6H9<-/޾@.,*SS/.8/ԽV8VJB*
+/2I11J+ƼFZ@V95ZV>AJM-*H<0:*-/B6**00B,
+-T,./-+JP68+IS0<8.ʶ4=+,*K973.+:C>IϾ*WA0*0*C
+>/2MMGR6GSI-,31,B-;+O.8**J<,RG?*4XJ6G:D
+S3*+ڶD/,+޽I.AMK77*A1:<0:*4-/
+*+*-L*..J=D*-8/VǾ-<J*,λ+A+QtXP=*,>20B*.*FIJU/
+/--*ڿ=@*P0X=񯶴-A.V1̵?=:AC,8OFٷ1ÿ+N4K
+/*L52:M<FD.2VP+SY921.*4G92*-39QJ772
+I-JƾE**T++*޺Z*R<J<--.*R.XN+3:CF.:U+SG
++CC׾9+GA
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 329 di
+/sl 65048 string uc
+*J5-YV2BRB*JL4++*J=+=5<856:V,RIMJ*
+6N:H+K-,UX*.+.*4JG/*1--.*=+=CBJ:P8.*-PJ002ܿ
+7:,92UJ6B,ܽ.**Y,*U5/0>U:0ӽ9*IJ:/AFJ̹4
+UEYP691.@IYW:+EI>7.I0
+JXN7J**6V4A6@B+SAIǿ+,GMDG,NW@J.8ïZW*
+4WH8H0+*.*@46RJ6TI*ޱEJ:?QFJ̹<T
+Y6ONIVޯQUA@K62+7F1<4ֿ-ŲY=EMQX+,
+*6,G96*5=KA2C0I=JB1*;+0FU=7ίNն-2<038FCM
+7E/-**޾/-*C3;H<54X**-QIR,.AW*6M-2.1
+8M*Q0*62YJ6T*:MTO;FYB<L:@6+T6M̿=JKͶLXS*A
+U8KN:5=*0.B:0ӽH*?H<2TοODK**ѾW,EMѯ-L:7*F
+8ܽF7**6*B:B*J77*8*+*:*2,*8,NC<9P4<BܺB
+*J77*7*L2<>B2.NE·336RJ6T*:MU0*0*;.3C4
+6.,WZY<7*0T:0ӽH*ӽ-*-*66C/F4?AV18*-L4>2Y9*
++*1+*I*M4R2+*6//35KLĺ+:+2F5V<ѹTS8QJW/
+CZJI,R+6GYEE*:*Q4:.F־.*1.:L;T+-FSUI9A-8;,N
+A:1L68BAB*JI*QDJ̹-S9Z38,>.E/+
+06*8>J,3/3,,82JX:;MHӾ-0+1BA:1FEݶEҾ+.3KA
+.*A++E=6UX*6;9.*X?J;*THJKE/*2*=/N,8/5Fƾ
+-,V;NA=+>;952.R+,SN0öN+A41F,0>M:0ӽ9*2췾6G0.T
+I<=+4*+¼,531RA*K*>J<3*AV**Q23J*+NA=*L*5;
+-B8Oǰ813<P/6RMJ6TI*:*C7;,*@1B:6=N7--
+U4GEKV+X6I-1.C/EJ0>MZ.:**5OZKWG
+LI-XJ+׵Y*+,OPH>*IH?2J*N+ZMGA+1.
+18H6:,+/HI7.<C>+O-4B:4B*.-,IͶ6GRNѿ*
+/.-819H>*Ҽ9KZM72ZLY*?W/6
++2**,E01JS:I7IRF5J;MLGS0+*
+8,N+<Ǿ-,ŸX,828F*3CK.53+BN0N85F,0ZK:0ӽ
+9*-><I.AFJ̹>LJ*,+5AXJ?7.:7+=5A+Y562ZJZW?L3M
+-*2DZ0:6U9**VS*,Y5*AF+4JS6:0DY+G*K*
+>J<3*AV3L,82JZ**6+8B>.936;,F.@:0ۻű޾,4.+*
+S>-,QS@1@:6RK,-:Q*NI8HMMYB5@W1/HB@5:
++M*N9Ƕ-2Iǰ8+Y1.+**..E+,-+/8߿8>24-6,*
+8,***>8/8+FE.;+1.1XH6+P*35=?Wö-QG̿
+FZJ,3,R*R4JQ+UOO*90>9YAV4*0*+XY9
+<:Y-I9/+*FƾEZ+.J5BCQ9J+HHS*>0ںY+585
+-*F.*O2A8JB5B*J>I/:?*C?S9NR44AJNI
+/+IQ*:HJJ-N1,ϼF*.+.ͽC1:*J68B*9,2+*2IʳۻY
++PPڱ+*1+J3,-<R=0O:0ӽ9*IQ+NQHAFJ̹O49QOH3:E:+?Y
+*<>C-,J,7-9F:0,ZN7JE*<+J*1K*;*4
+192,,C>FZ**AV*K*Y޽.+3K-*8GF/17
+PUCAG?:ټ++Y=Wɼ5N1/X-1+
+7R53-2;**޿RISTZ޿1S*W,ܾR;;QI9*+*-,>2Y
+2*>T98+N-0WSOY0YEG/F,䰼IG8;J,
+GHYR7EBZ530H?J***1K:L+1HP+YS<2*3Q5,ME.I+
+*Q0*6RTJ6T*:MGEFSH-VKV1+QºJ=RR+*HC*ZJ,R+
+6GAU+@3:FHN+4L5;9:V6>PD**6*B۹B*J*MR40
+@AS::LN->*5-3P?*4*J0/H<޾,10-*C*J*:ݽI
+F-O+;X6K1**+J4+CGKTRF޾2A0-*C*4*J
+098ZJ5-R+6GYEE*Z**I*M4,018JS>6A*0.:0ӽH*ӽ
+-*0*Q4,8/3Fǿ7/JZ;,B:ĿB*J77*B*:ݽIS3>*PN0
+;A-5޾2=0+5*/X6G0E9M4::4*I*=7+8@F.*
+-L+R9+۸K3CJ;33,*J/T,<O7JGA*=/H+,.
+0F:2W+6RJ6TU*:0S۾*C73?H1XI4*I2M..W1387FF=
+GJ4+*+-:?Rƾ=<8RL02A@WNH2.*.IN*;5.NENSY+
+*+*,F;M+*Y*6MX-,1+5KA/*GA<J̹-C+Q+8-
+Z˾F60G2FٿM-LI-6**.F<LUJ=,NSH1BJ<A
+**GZ=J@;*,**-*=/H+,V-V=F,:1޾/,*.*8
+ZAC5OO1.U49*4*NC//?AM>6O+
+6IR@BMO-*R/9>7,S׿5*V0*.K7D9EFDӶ5J.8>ø
+:>8128OT5K0QJ3IBW829G35*+*5J+91R:6;KH**B*:ݽIS
+3>*D,G;:/*0@X:0ӽ>*HGN6GRNYMY1?/PWW8@JP
+7/ɵXQMѵT͵+1ؽ88/9GH߽߸Ҹ**
+5C608428ZC.ӿ/-F,=<+1YXAZ1SWN87D
+;+32*+ZEJKO1*;Y6;KH**B*:ݽIS3>*PN0;A-G1޾/
+,*T=4:MG4FZE0.MA8Vǻ@4*Y5W:,2K*C
+>,-T*.J.KF3:G,205G10108T,8.Z1<0L4+**
+7ǾA18A?+@<0N7I,1,J9GQD/*/?G*º>1G
+ENSY<+*+*,/*1Q*/FFC0BC+5K.*E4:MG4FTP޴ּ
+>J,HWI1߼4J3I1-,*-/**5@V5F/Ƽ<Jα
+3.:Q1F1C5V:I,MB+V8+ӿFT/6+*Eڷ=+-+߸-Ŷ5
+HHU1SWN87DVSD+3>RK*I-0-.Q*;Y6;*+**6*BݾB
+*,.QK=*NM>+YZ+S@SE+9E,M
+,+G62:*+5OA?OFF-9-4+*6->,+ǾA18AI7
+98KT5R8IFRJH3+;ݰE+XF7:FL5Ӵ;Q*+**6*B:B*J
+++U-R93/RRI:9T:L/*ٻ+:F+2,M,Q*J
+F=Xү-O31*F-,-4CC9-**P,0,F¹E4ɹL<
+MC+Z?40*T>/**LI:*B,8SF**+*-LB22*696G
+2HY-/ʽN6/-ΰ9,ƻFYҾN=4JPUU:0A-6*J563ƹK1,,+O:
+VHRE*X9+Z1*FU/***,A<:GM/;XL1SWN47D=
+*0+J-,X*U3RJB:<92XW6+R>O<***+;@6K.*U6:MGEF
+?YRR*<R*ROM-ֻ/1L9G*?U
+G*+*BI8>7F:O+,0B.ۿFYEڶ61:-/9IE4V>D>
+-*SU59+-F,K5T:9***޾.-0E,*K=?07
+6?,F:I4J5D//?++ACZ798EARBJ.**
+91082YLV+C8DZ0EӶ*1*.8/KNV>D><+<-6N
+2Y6-***ZA:=FC4856+5K1*ڱ=AW71޿
+-**ų.85C**>O:V7H83JGA**=-*0X:0ӽH*7S24V;1::Z0̾
+D读S.*,.-M<5*%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 376 di
+/sl 65048 string uc
+*=-*0@W:0ӽH*.*:F.>R*8O85+MмH9**6*BְB*JB5
+VW**HC*ZJ,R+6GYEE*+*-L@2Y9*+*6*B:ٲB*J
+77**+O5K1**Q0*62WJ6T*:MU0**޾/+*H-
+1.-淵*Q,H/*ICFJQ2+*>.O9Ϲ-**޾/+*Y0XS
+-淵*Q4F/*ICFJK+*ް0+RLL3I:E*Q0*6WJ6TI*:6Z,6X6G0
+NO*M=-I**ZC*LIR1P8*+*-UA21*./*58:M+FIR*H
+G@RH:G?-J*//5.8.+R6:+.+C**AJKEKB+T7/4G=޻Z*EM20*
+55B199<FQM<=-,0*M96+B:ݽB*5G۵*C
+3L-+ųQQIC0E=.8.+Z>F4-**85ETW+@
+YU*1ݿEM20*GY9FW?O07Z/EU0+9+*6*B:
+B*JED:*C3,+1M+<+72ξ;+MJ2*F6:=,208޿
+4*=,,۷4RR3Z*+*FRZK?Y++@+J/-NM
+I*BܻB*ڷH*CޯV-*1.WQ=ƾJ;:.BJE3.J
+Qt*1LS*N8<T1:3BB,2?B+20:*-14*9,C1*;X*9:2V+Y0OQ>
+IE;*+*-عA21**58:M<FI.MI*+-<*I,1*P*+2*
+9Z*6*..A<*1=AV/*+8N,*,E:263*I*>IET1*6WJ6TI
+**/;N-AFJ̹OJI3Y05@:,2I,1*P*+2ʱ8ZR4J-.=+4
+:1S*ZH:.:,P+N/Q+XN*PPQ>IE;*+*-L@21*N*58:M
+<FX0I.ݴ/52JQ+V9I:3*+0W8Q+L*U<<JXIBAJG/*1-
+1*L*>*TԶ=,M,*5<:0ݾ*9O*Q0*6J6TI*5òFU:8Y6GFVɸ
+KQ6Y1.Z,+*-6W>IPU+A+IF1Q
+CðOZ-1P+8TUL.-<׾I**Q0*6RJ6TK*<FO=7:MGEF1
+9黿LH7ӿS4*QAAYR,B+**E<:@ij=K,E.W>4D:JQ@S
+-I-1R+:O6<3U2**=Y+<*+*-<U@2Y9*0QT1NQJ0O4
+.@4?*Q0*6VJ6T*:MP6+B0R2QV;4ED*=-*0V:0
+H*GS3>+LS</VL0**+W5K1**Q0*62WJ6
+T*:MU0**޾T/-*C*=-*0R:0ӽH*ӽ-*HC*ZJB,
+R+6GYEE*+*-;2Y9*+*6*Bξ0B*JԷ*LQDJ77
+**+-2K-*8V-/1UA*=-*0NK:0ӽ9*2GFQ+.AFJ̹X
++*6*B:8B*J::I/:+*C?߯޳8DM8JWEF:PFMԸ;*-T<2
+1*.,*58:MG4FUY-++YC*=-*0²S:0ӽ9*FGQ+NQ-AF
+J̹>J**8*AU0GO0**޾P/+*9LQж-,QX*9.K
+9K1W2I*=-*0?U:0ӽ:*Zػ>J57:MG4FJ+,.G*I?FXHQ
+T;*-?24*UTA:J̹>52**T+춾U=-*HC*ZJL,RW+ND,,
+,QV+++*SE89IQ+*6*B:DB*JI3ZQDJ̹>1Y
+8:;-*HC*ZJ9K,R/+JͲ6GFO6<CM**FJZ3FF:
+ZFM0**޾:L.-*C*=-*0¯M:0ӽH*ӽ-*HC*ZJ:O,R+
+6GYEE*+*-T<2Y9*+*6*BFB*J77**+3/4K1*
+*Q0*6J6T*:MU0%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 423 di
+/sl 65048 string uc
+*=-*0T:0ӽH**0**޾/-*C*=-*0@W:0ӽ0*BF*:+
+TD=07Dϼ,?YFBŷ:K.+1Y4*6+<GG=GH5,B:ڵBD*
+ڹ6JK=>,?YF+B:K.+:YU1ARL@.TN11D*Q0*6R
+XJ6T=***T+T*L5>:MW/B:K:/,,2-+;<:AV*=-*0V:0
+ӽ3****S*/4޻TB146H4FJ*XNZ+.8.+R>R/@6,<
+F65EHM0;E:7*MAV*=-*0V:0ӽ3****LS*/4޻
+UF?*-K*FV;E*50+0V8/;9/<͵KμC+=
+Y*Q0*6RJ6T=***T+J./4޻>PT=-,WL4NJF,2F2,*11-.Y
+B1N76;-:V09T*1X=JC+LY*Q0*62VJ6T=***T+J./
+4޻><5-,>2ZNJ-2F2,*1-N.1:0-***,K*ڶ1źA.
+03:5/**޾H/E+**4JTH/:WJ+C41,.Q,+3**
+-O*.4*ǷE261ź*1-2,96,7</F*AV/96+B:MBP***,
+HXQ+.UIARJ,*ȺUK,S*S8JJ3JC,22-+*ǿE261J8I8*M,.1?
+-ҺAR,GNZI*=-*0Q:0ӽ3****S*C/4޻>XUJYƾD
+4JJ,2FR,RP*<+J*޵P8,-792B-*N*K/;F*PP>MA9*+*-4
+=2.**T*II/S,/UHDYK??24޿<E/¯A
+ǿE261PVL,NNK1,=>+I<,*HC*ZJG,R*N.BZ޲
+5޻DB346H4?*R,3IY-R,RP*>/;IC=1,Q1O4QN
+*GY:F*I+YڱR*6J6T*:MW+/A.O.Z+Q;7,**
+޾Z.-*C.I?ĽH;J3+3*GMLE/**+>3K1*W3ΰW,
+EMݽ,*HC*ZJ<G,R+6GYEE*+*-,;2Y9*+*6*B7B*J
+77**+.3K1**Q0*6J6T*:MU0**޾@.-*
+C*=-*0NL:0ӽ0*BF*D+*.@,I*Q.:>QK24;Q:1OO71E**7
+,2XQ+.:AP*?4FMZS1RTX0+/TA0+6***޾K.***Q=Z
+0J:LJ,1:>ܾ*V823,,N+*:4*߸NJUU>0.1-X=8:V6
+,轶X*S*<V4DYZ5**HC*ZJ<,R***G+3X.NҽY1J38V:/
+,Q.<Q.кP-2:=U/NھX7߿/F4E.Ÿ*.Gʱ.:1FFZ>,Y-ֿ9-
+-*+*-4;2.**3J̹TII7/F4FP,:+*>Y6XNZM,Կ
+2,OZK9JBV2@M,TB146Ǽ3QY-L8+?FKDU:79Ƹ
+ѶG:QIS97ZDI6Ƚ4ٹ.+7*7GQ7>R;98O:0J
+ѹN39+K*,ZS*Y3Q,*XNDS;NH*D1*6J6T=***XQ*I+
+Z/4YX@I=*޳>+IEF**7׼3F:*HW
++,5FNW69HP5U/EF7Q=V.;*@IC3.J/+1
+Z*ϾE;Q/OB䳴N-NEL*D,;8*/1I2
+R=N,ܽ+<*Q0*6NJ6T=***XQ*I+ܿ*AU623UF*;4S>
+IE4:*F.**QN*H+A2C6=R+R<*6Q,J:RE:/:,ׯC<*ڷ
+,Y6.=@4,N*84R,P/0*.*C*Ƹ<J@G=+@D,B
+/T5;*W6H*KFVLJ+2*=-*0>Q:0ӽ3***=9G*S*W9
+A1.:9B1PA9.;+*DM,5.HG:.2**,L3J=S
+,F-Ͷ1>01K2YZ.;*+-ٶ;M±O.NJ;+6OV*+4@:
+,J*I/:71=+EI3:G;R1VZؾW.B6LR*T?ER-M=NYRV.V
+;*Q0*6QJ6T=***XQ*I+BFI419W<RYNJ0I2*M,XտA
+W=C.<F<-*.8+J4YXP/0:,BUڼODFRJ82,9
+JI<JA++K*;*14ZB**?XJAJ,ΰ56BQJ*G5GTYRF0:J=Q=
+NYP-M*0>T:0ӽ3***=9G*X65G@J/Z:*.
+X-ٿ;51::1,*.J3+KHGί8JC<*ڸ,䲵BZ0*AUBų
+JQZ0U>JCIT322,:,1ؾ-ؼ:*;,Ѱ+2/32F54J8M*
+<GžGK,**+K4K,**.MG5,ʽ;8/-:MF4,ϳJ*
+630F-G8J<9.*?;3*=,R.;,EN:-.F,HU--ݻM*
+=+-־@4-++JR3+62JT1,>ɹ<JU@*.9JGQ,A>,.Q
+P4Cֺ5L2***滳+<*;-/B:NBP****E*+8TUSZ
+*7.>*7/9:CAƾZL8JM3XNS.麯߶IQNK/0
+ƾIH3ڹ<Y7==D1M+V²NB,,M2A:6+/VHE
+,4+;8**.ATI4U2,M=N;-VR;*M*:40H36Z
+JJ,R*Nɾ;*C+BB*/W3.0.9,2EP+X߿:<:.*5**X
+2:-ON,DB346ü1>3.=*+ENJX..,.1Ǻ<+<*-JL
+D<J3L++N?J*AZ<JQ2G+BDMC,DOFZ+K*LZS*PAX63N<
+?F+A0Qܽ.1;XR64-8TJ@DNZ+7/4K1*7:NB6*51:ڷTK
+:OJ9+Q;I-:V,2G//+*.*LU6R+=+0R:0ӽH*<HB
+*O<1O60*4Z?.8JJ88/:ZFYSHS**/*J+*ǾM=-18>*->2
+Y9*QͰW,EMETX*+TQ78*Z*J*=+H8,ZJV,R+6GYEE*Z
+*J*=+XJS*0T:0ӽH*ӽ-*0*XQ4,8CK*0T:0ӽH*ӽ
+-*0*XQ4**3-.I*BRB*J77*B*:HS-3,CR*-,?2Y9*
++*-*L=/:+PF-6/ZJZ,R+6GYEE*Z*J*=+H8,ZJX,R*
++@+*4-Wܷ+CX5-9BJJ,*̯*1R<SA;N+>4?*
+*21*I1JU/H>RQJM92۵KNH30.*T*9.G<.V,
+OM;*2OHE긲SYC:+6**1*P,8.<F.޾ְ/***/+6*/3
+/38*2-J;3NN*Pʼ-ڻVM9TM7/U3L;A2S;;BJ.
+JD,J4Y1H*-DH뿹1MO,P<=C.5Q:;0F*5.;5?,
+YC0<8W5Z0*Q0*62J6T=***T+.F*L=>:Mֹ/,IM<P**
+SQ.Q+NJԿ*,E2*JG4PR̾/=,:Q/;*;;Kڶ*׽73+η4K
+T5-9</ھF2P=?YN.4XN*PNLQ8JұȳG2-%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 470 di
+/sl 65048 string uc
+*=-*0T:0ӽ3***>JE<++8Y3V1**-:I-/N1.6*.2
+J޳8C8JVEH:PGS.QJ3,.9S*FX:;²KM:B4.VUU,*4+,/
+TJ*Z2-,>2;4X3+HG:A.QNN?DOL=VHN
+U>˱6M<G.EO3J8VFR;+߻KGQ77ٳ2-2̰G
+<J-M*0T:0ӽ3***>J<+Z7ܸ*C/C7J=9ǾK+1N
+:,JI4<++3L2M12RQ+.S*1</6L;0HB4ڵG
++?,;*S<5@J03I1ZCTSAW?D͹=8G:1V+75M5ӽU
+EFXIܯ*G;+@84WE*0US@,,Oҿ+FR:+@H,F2XDJ
+3,B131@D**=-*0T:0ӽ3***<1,?Q@-CS@*C
+17ZZ*޶4J<T<2+:P0,,+VC30;NW-*J;VKB-;Y
+RN1L71*1T182L4/*MO9E8*DQ2:1RWYF-+NF*ۼ
+>*+7̾K-J1.*߿FSEL9Y=8J0G2*T:J*;MXP
+ATY2*:MP7**+*-?2.**=2J,Z*K;-+.B82,**22M=R
+A*,2B.L*/*H*-LN0+3X/:,*-1</<LU49M;90*P
+QLWEL,Z۾3:J,QOS2Q=.Ȼ1RYF-+.,L3L
+MZ0N*L˾11LK@۱8JL2Nڵ;XPA*ZUHWD
+***+4K,**-THL+C@I,޺C+I.J2YU?3>3**,?>:R
+KU߿,OV*-;*,S*X>;FV+I35,071>2>FR5CNC2/5
+/,HIRRC:8I<5KIJո114+XFHڿ-8=ںL646*2T5C?+8
+>3G3N5X7/H*I5+93D+ODJ?-M*0V:0ӽ3***1
+6XU4/C12IZ*+KZ0:*KC9>I/:>3*4οTعZ-0*.
+*L==.>;VGLDVM;I<+*SC2C51,+L=JD06A*
+1ZB8F--+1F2QHUX*T5+3ING5N>>0.TQ
+=5G*RGA-**A*J<+8*H=1*;Y*3FT0:5U5-3HL0O,5E޾/
+E+**4U6/C1ո**:-:*C9F/5J,6XPV;67
+G+*>2.67O<5==>G*,.?L2926779.*G--.Lѵ8K
+=06A*J2-P1F⿸HF*E/=*Z7>*632TQ,*EB1Qۻ5
+:-8.*0;6;.Q=5G*+ۿC>1Y1**X*N,8G3;޾M:,L81
+8;S:-H+*?2.**T*G4U9O6=O+91+麯
+NW+1NU-+2,H:8GU-,;GRW,887O<5CǾ3B5
+̾긺2KĹM.18*3YZLYO9Z7ڰ=;+VMO@018JG/8
+,3๴0NTH*F091ռH8/3RYK.-F.WNL
+9F8W5**V*J3,<>B2.J-ML4EW+-T?2Y-*XN7
+.*AXJJP*D+S4L.59޽I.AJFLJ+AP,MU9+L/BN9+-1JZ
+<+<MU**;+FNKI=.Q>;V/7N3/=49->NCHC>:WPI;-@
+4M:YԿ.I7LGM=-AI8/FR-,-*QI2@;36ȶT?
+8ϱF7L9IAN0KA?Q>HKFNY2G>LLDGAR,*0:ݽI7
++3C,5>,U:EUV-<?M޾P/-*CXM.׸052J*,V>@1:R.
+XN+G6PBJDL-+L2<:1Ͼ¸:N,:GH.I6;5OM5+E+*
++0,XW޿-FT*3C//*QLV2LG.F=/9ZJX78.1->B8L,5VX?,-T?
+2Y9*09*W<񻱸R*+J+L8,;J5帱+3:D1ܵ
+߻6-ү;E*ƹ@1-0*0*C3FM*3CS/FZ=/-Q.*8޿0FL5=73Q
+0FG3MP,62J6T*:M鿴,6+,6ZU2*ǹ2ο?.RAR
+1,*+*U0+0JLĺT+168-X7J2++ڰ=-*ǹ7>AE77UF00C
+E?޾ذ/-*C:YK1@*/*YCG0FF*3C.FZ=/-V*,T*ߴFM3
+A5-F˹:,0?U:0ӽH*ӽ-*X*+8.3M*3C.A*L.
+83KF:5ʶ:+QZREUBFEMI2QZ;KHFO6@=<,0.?T:0ӽH*ӽ-*X*
++K,;9L1F*2-82++537R6/N115=MN3R+->2
+Y9*+*A*J*P:+N1;-XN1:-,3Q<R-<M+Q@:GFV¹Ͷ8G
+=QNL/6RJ6T*:MU*7*G-FF.:;Mܹ-0B/>+,:.*XLO;,-;
+QN0<36:.+7O4K1**0**E2,13JLĺ*=*J/8>J.
+++Fƾ-Ӷ,QD*3Fؾ=.8޷,Fŷ8/1<+?4K+*0B1*4,XH2
+=5F*:0*IZ>/**G*M9A-SW*CX31**+?4K+**4
+,=IU5A:MO߷*49.F<.**G*M9A-*?H,*HC*ZJM,R
+***+52:MO߷/,IM<P**SQC3*J160X2M0+J7NG5**+7O4
+K,**/<XJ6GAİ.Y3V1**-:I-/N1.6*.2J޳8C8JV
+EH:PG+JQJ3Q;,.6*²HKGU-M*0>S:0ӽ3***<//
+>O**Q,H1/F*UE<2*UW*Q*693
+C-2׺ɹ@*+*-T>2.**=12*:*C7W0<>*+C17ZZ
+*޶4J<T<2+:P0,,+VC30*W+F59B-*;Q2GPHD0+C4K
+,**.NֹK+EC>:6:J**22̱=X1,2B.L*/*H*-LN*2
+3=.8B6+VHKAG5**+/?4K,**/EXJ6GB5VFP
+*:*K:8I/:3>3**,O<:RKU+߿,OV+*-;*6F.VHKAGU
+.:ݽQ-.߰:ϼN=*J4Ķ36J6T=***XWN,,12IZ452--6*
+1+28JS*KHMJ.VDEJ-W1I0*L@:׹/*V+*SJDK6N9
+޷4CF޾8/E+**,NW@A:J̹ε8-.-+6I*1+OHS*-.2UJ
+H7+9G-*;Q,***Ҵ::V0<ʴ1;F޾</E
++**4-;˻FJ+CPV2I8M3XNS*K*<θGDYAS齺K??
+=J=*D1P2*GZC-2׺;ɹ@*Z/*:ݽQ-.߰:ϼ=߷8Z
+JG,R*N</QZ5X7.JBYAOKZ+1*,M.BNRZ>N*;JҾ
+1W3.Q3FZ:ZG+JX<JB̽-*+*.ʿ==,XAV+*M*<.
+;8FI=1Q:GF=J@82Y²1XNSJ8Z***<2+6GA5YWQ*RC
+W,.I5Z*L<ٲYK1*B*:ݽIS3J*,BEVK@:LF=9ƻYK2޾E=
+36J6T*:ML+39:*Ȼ0X*G޹>FCU+*0*Q4X,828F׾6005
+:BN;:;J6-<:*0NM:0ӽH*ӽ-*0*Q4X,828F׾6005
+:B+׶*Q9;LNA?*8K޾FX.-*C**N+5*R7J*1QX5
+2EV@5=ѯ12;X33YZG:KX1:QZJ23,R+6GYEE*Z*J
+*1<L-823V>0*1*FɶH18IF==JJ6,.7<F.0.H:0ӽH*
+ӽ-*0*Q4J,X++FF/**׶368X=>L;K+,03̽,
+-82Y9*+*-*=/A+1.1V?IFF5=K@J:V*:O@+R;QZJ
++R+6GYEE***I*E3R2K*1QP+T/߿-FUME.*8CG5F44S?L8
++.THRX+ZJ+R+6GYEE*2*B1>K4G޾-**-V-*BJE
++>FA0*IZ>/**7,2X,RR-B*Tθ*5RJT-DQ-/FT0
+63**HX8.<4+0WPж4+-͹/*;*YJ9RJ>0+1K+
+**V*A/B*/1,8JL,*0+ͳ+־Z?8*G޾
+CQ*IJ-1?/NA2@㿾LQ;IDڼֹ5Q88M.05**/*+
+/,2:B:BP***F*D2E5:MO߷/,IM<P**SQ3V*I=B4K
+R***E<-J>.@T1X:EN*AZ<1,=C5==1:CGQZ2*JF
+A***+1K,**-Tʽ+K>OMUU*.0/B*FRZN
+J*J*,X1*+S3*4-<=+*R*J>*>2-,>2;θ*
+R3+HG*5CB0C*F>LѲSN-2L-Z:W7вU*9ǾP<>
+Pڸı-+M-2̰=ָ+*A?73H<981*62HJ6T=***8B*DA@ܽIXP
++WI-Gմ-<R+CH@A3*?9NI7,J,24,*
++0K+F?A6TTOUP/*>.X*8J-:2/0I/?
+8̽+ιL,VF>*6W2/.:S-I=5F8>YWV04+U@8
+=EC7G1+*+2:3N0ZJ+R****J55Z9G@-I4J2XI+9
+E*+>NN:,JT6.:3/,RװI=7*R-T2:,/2JZ9+AM*IK*1
+:.J2׽->@A:.7L+.:**20.KEZ7+C;+CB>*BG>Q4H
+74HJKSY2*:GZ2ݰBK7**@9*5,.,BδBP***,
+ϻ,F־:*CX64C2JJ3:**FI>:N:,JX*9.:K6/BZ5AL.>˾
+9.:,*JM+,+<K*/N528KW6*?8BE0*,2*J+Z
+MKIKQULWBM,:T.VI>A4XP=XF8>IV0*U@8=5F?Q
++NR*-*A64+*2-C޳BK./+,=M-K<+0AP,XL4C83ZJ+R
+***R/:LTIؾ:*CX@Ƿ*K*J+*Y=R<2+*.NJ*/,R-
+/.++XJ**NJ*YC5I2+BBϰJ*G>1/*B-4-NBQ2Z,5XK+1K4*
+?Z6*2T5C?+8>/X3NAL*6N0*иӲ0U@8=5F5Ż+%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 517 di
+/sl 65048 string uc
+*+*2LYJ7-5H-/4*,+X/3FؿO7-.N3EM޾;-E+**J+*
++4A*D,1,*7K*++>:N:,JT:0K*UZ6+YZ*3Z:
+***,/*J*RHBJNWL/V,*CY*W97=FLK-2/-+1FJHǽ.BI4H߾
+=<*LE:QI+L3/V7+VFPV8Y.X2?Pޯ9+:L
+:*ݽYL6XK4C=.0C:0ӽ3***AJ̹ε8-.-+6I*1+OHS*-
+?QQ90*RBV>**G*,*:*66:2,E**K>8:8IEGB-B*
+TNL98*,*T,>+>*632TQ,*E31Q+.3*ZݰB篷
+;**8*2?,,B2FHH6X.,OGN3EM޾?-E+**,1EK
+<*1*NNKTQY*TTQӿ*Q*ﳴ92,-D2
+R.B,->TT0XC3*K?4:J0N޿6S*1YEGI
+GEE<KWV*IM*Q/N7G9FUӱ9-SY*
+*B**L5*8T+.FJ޾=1-1@/X>GFEٶ/*<,չ38N+<ξ5=?+H.@
+G-?7=TTX/.-T62Y-*XF71F*C/*8->2@H2*GY*-2Y./L
+.:H,4?I@-09=*O,N4M+2+7.>,3L+FQW>-I
+-*,,1T?X/27829,<CPZV68*HR<AXJ=8G-:T
+/1A4+0SNNGZ0<B8*ɶ8,XN2?,,޿2ڶ0-1Z1
+8LM*D=-Z4R,E33C>8FQJ*S=ZJݶ+R+6GA5YWQ*
+-2ڰ,;W3RJLGB-9CXCFCF<DS<3+/R*;Wر**F**;T/.
+-;,6J1KF׾ö0KJF+;1FE33X;Fڶ-,GF+-42Y9*
+8*W-.,;J5帱+3:V9G;5U+*,X+***LE2R+
+<,AX+8+FE=52;,L591<=8L6*1.:1*Z:+.K1*
+H*MT;JT˯1/+*RC7,**8*2?+P+8OS-F-*L5*U>T+=3P
+*:/?FE33=80CKFB-,8H+;,.K1**-*:LHSM3*Ÿ
+*L*348:/?FE33D-,8H+-K1**-*:LH
+SM3*Ÿ*LM*D=-*3XRGǾ̶1SLNN++ڽű޾*,-*C
+*+*2LG>.FMG1=X,CGQ-*<:GǾK;:5QJ*3
+BLʾB*J773?4J+*27**O+:41XJK+ERM=P,XK@4*-*PJ0P-1<
+J48.Tζ12:XJ:++ڲU2+/6RCJ6T*:MU0*VA*R=G9Z
+J,,R+6GYEE*Z*:LC6¼+K2K+*0B1*8N+SF+CX45-9B
+JJ,*8B*.FD.5GGWAU4A*J+Tɯ:ݽQ-6RNJ6T7*ZQG0J,XB
+,B*/1,8JL,*8B*.FDڶY*ZYڱ+*6*B:HBP***ڱ5/
+:MO߷/,IM<P**SQ+0*J16.L0+J7NG5**+/?4K,**G-R
+*CX7н3<98+K+0JB14682B*2:FF<J˸,=H
+2,R:E+/GN=39Y4IB,ZJO,R*****5>IK+C,.0
+ǹX1Nξ-ZBWX<2+UIED/.*;+53,7G<3=C
+Y*Q0*6TJ6T=***8B*Q5۵@.J+C7W0<>*+C17ZZ*޶4J<
+T<2+:P0,,+VC30*W+߾53,7G<3LCY*>+J4ɳ15R
+@C-0?U:0ӽ3***@JT4++EC>:6:J**22̱=X1,2B.L*/*H
+*-LN*23=6*8B3:N/,*.*TƵ5O/;ϳԾ+4K
+,**/4XJ6GB5VFP*:*K:8I/:3>3**,O<:RKU+߿,
+OV-5*X;G<3,9Y4M*Tƴ5KDN8W/6RUJ6T=***XW2,,1
+2IZ452--6*1+28JS*KHMJ.VDEJ-WQ<.EO<N8Iڱ
++*S,GQ?/S,4O+OW4K,**/XJ6GJT1G671:31,B*9,:ɺ+
+*1I3:ԾH3IHEJ-ݻMQ<.EO<PPIڱ+.*/*:P*88F+
+ö,G>FѾF@5QT@*B:FBP***,IJ:/ARJ̹ε35L-RIS4
+2>+SAIHWH:3*--6*8B3:
+N2I<F*00J+*82?*E9R16+8*.7<F33˱+6OJ6T7*;3
+N:4R,5ME+F0OS2;V*:**2+0:B34683JX.2?KU:V,1
+6HVQ*?.>M,*-*23,O*Q:N/Y6++FRB-,/*-<=M*
+ZKй.438L5C*-:2Y9*8<-.FFN+@4JNG+ED-/2
+-J**X1G9>3F=M/:VKöE?G/*6RHJ6T*:ML+39:*.:+R
+*+AV0**8>J6++,G:*2:8G/F..7<FTQ:+62EJ6T
+*:MU*7J7޿,+F:U*-+008G>F4-AH/RF@YN+CE0K1*
+6++FRB-,/*D**Q>/81گ>4;ò3ZJ+R+6GY
+EE-**14:0*X+8J-Q4K0׶.15T0N:*-72Y9*K*
+ݽ-*:2Z,:*+޿8ڹI.@0M=6Q,XIGOFH*0NG:0ӽH*ӽ-
+*HC*ZJ,,R+6GYEE*+*-ȶ;2Y9*+*6*B:>BD**5*޿.
+1F5B*1,>**2JX5JM+T8*RT+0WPR*/T8-I?L
+8F>1GGWAUS+*HC*ZJ?W,R*GB-3ܺ8=A:MO߷*49.F<.
+**7,I,NC+TBIDڼ64J1-6FAM>*-W@/U35@*+
+*-3=2.**T*+G4F,9J;3N=*XLQ>PFJ*36:BJұD/:1+
+5G*DQ;NW+ND8O0+J7N0ܽ6**6*BABP***,2SVϾ6GAİ.Y
+3V1**-:I-/N1.6*.2J޳8C8JVEH:PG+JQJ3HD**/*,:7
+EL87JLR4;5TA66.Q+Dz*5:Q.9ǽFZ?Z.޾.
+E+**4.-,Iξ6GPP+WI-Gմ-<R+CH@A3*?9N
+I7,J,24,*+0K+F?A6TTOUP/*0G5,88
+G===7*J<PXվ0W6-JX*3**M065ZJF,R***R/1RN3Yξ6G
+@-I4R6-0ֻBJ*ZF/:3?3*T=-+WL*T6.-@4,N*+,2M
+JO9E8*:****+ŽS:1ﳯ*+QPD4+N@I;عFDI+GB0X**V
+*-3=2.**T*S>,/õRJ*1C+K**::FQ:8>I/:>3*5-
++.2M+08+:?O=:-+<**R*ܲ³2:JI,MZ1:Ȼ1R
+YN*>-00N3YA1V0X**V*-<2.**T*>:,/õ
+QDZ-:1+2,*S*JJ.*:R<++,6?FX4J78>:V1.2-+*;++ҽXQ
+M.++H+J0帾1,*=7J<2/L*W߻*޹+0O
+:0ӽ3****QS*KX/48;>A:10B*9,:F*<2*S7״YP
+0+NV**+2>*2P-+J*;3?:G-RC*C=8BK=G>7M*J<G
+и/**R-2?++18-?*-<2.**T*>,/10ո**:-:
+**4JA*=+4=ѹC1-ٵ>6JԽ4S*8J+BDI2*002PVQV8.
+*RGJG.ZZ8N3C5Ư*/0J+8O;-K.޾T.E+**4F
+=J+CPV2I8M3XNS*K*<θGDYAS齺K??=J
+=*D1M+V+7.>,O6鼿+4?XM-Z/3F+K?HU
+0<;<?-JX**14R,8F/.I/޾L.*523S0=A:ME3*X
+2-91+/22Z*R*MR+9<03<J߸,VNNF>*IοL*
+IBKNBJ=2,AG>9Z3F+***T?Ӳ+F+N-A<ڰ*
+/0J+8O;-K.޾F.-*CX@M*+51:ڷ/L2<:1Ͼ¸*I6+@4J
+N6?A*
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 564 di
+/sl 65048 string uc
+0X**8..*ZA*6RJ6T*JM.*-<*,;J5ȯ1ѿGG4J
+޶6?AB*,R-:*<>-H9/ZJ7G,R+6G14.2T9+I6*۸++F2
+M3+,B;B*J7+UAD-/>+6/;*-T<2Y9*S۸,**J>
++.FʾQ*6J6T*:MU0**޾V.-*C*=-*0O:0ӽH*
+ӽ-*HC*ZJB,R+6GYEE*+*-C=2Y-*6Z8*>.:/R/SX6*
+-+S4**E,USAJM+6/2L@:J85?W**6QJ6T7*ZQG0-KTA:J
+*?I2N,33**E,SA:P>.JXL*<V4DY-**޾4/E+**,R
+:YN6GA/A2*,8JD+=,NSH1SJL=6/,KF/JL*:8E-**޾D
+/E+**,DQ<J5MYF.@-M*R+9,M-,0*,.:D161:
+79Ƹ*ѶG:=*8IS9/26޾F@++**0532T9KKA;72H<
+T7=+X۸=0/6TJ6T=***8SN,深4<FCEQ췳I=+,8
+ᲯJ.X?O@*=*1-RBD2:B+KFHϿL*UX7V6,58
+4˲,9=;Y*+J˸6AZJ,R***=+Q>JEMɿ9/JһJX
++-H6:*B,.L*Nǿ*@J*?U0+J5JF,N*+,R*37>,:Ӻ92
+P5˲,9L;M=-*6*L1+-T@2.**E3:*CX64C2KJ
+2:**..3Y-Q+.6O,;*,J*K9R+ٶ;M*±O.N0*JA8*U*+ڵ08
+:B2J<01/PD1AV*J*:PG05BڵBP***F*GE>:M?@I,
+ICQ9I.J2Y-Q+,O,;*J..B4ZT*ξZ3G:**G+S+AJ3.BJS
+19UA7YOɹTZ+J+*6.FD5=-Q+,ZJ,R***,+9M>
+:MGEQMSYJR96Z+I.JX-Q+.6O,;*E*7Ͼ5*:75F
+о595QV0=7Oɹ@*Z*J*<,;-A.޾/E+**+69Ͼ6G
+JT1G671:31,B*9,:ɺ+*1I3:ԾH3IHEJ-ݻM>,*Q/̺B
+JS*2TʾؽX4=769/**-*L=/@+O++U*0W:0ӽ3***A8J0
+,-:F<*1*NNKTQY*TTQӿ*Q*
+92X**-V+AHZ6>JGHSETR2;52I<R,*0*XQ4,8;
+-A.޾/*5B4:ܸ+C/*8->2@H2*GY*-2Y./L.:H,4
+?I@-09=*O,N4AD**ۿK,޾59B0R4JW+T1:+ӹFB*NM<޿5J
+3ڱ5۸>.F-+O/*BֱB*J@=HJ*F/.X+>1A>P
++@4JN6?**-*L=/D+ŸF-H4/ZJX,R+6GA5;1O*RNP2,4,G
+޹>FZ+*0*XQ4,8޷0>4޾ִ/-*CXI+N9Y*+*U,F˾
+G*/+B:UB*J7/Z**H*3R7J*Z<P/4.ZJK,R+6GYEE
+*2*XBES*-,T>2Y9*+**J+,BMB*J77*R**5*8V
+T*0NS:0ӽH*ӽ-*HC*ZJJ,R+6GYEE*+*-44?2Y-*6Z8*>.+
+F:OJAXJ:LJ41=B23+-U4*0+.*O+R:+,,F-ݵ>JQDJ
+,MWSE*4T-*;N:WK9*-+F:4շUL69
+λTE24S<J65G1LV@68W+***޾T/***/+
+65<2+H崳:>F*/684I5,:V,F-=3M
+YFϿ4R+8RMJ=Z;+CN=A>5X޸DJU-1@:;SG-ӸJ*OY۸;,:
+-ϻ,;L0TN./SHYC:FJU3@/7V/*Q0*62VJ6T=*
+**T+.-*D5>:MOƹS@*4*,P5⺿*;ѳ3G+><D/+:*Q-N,
+>**TŶ+K9T0J73,CN,5KSEF5;PQ02Ƕ޿/NNTQ*X86W/<XG2+2
+R*ηJJ/L0ƾ7/P>2P+X:;GFDH7V;0*Q0*62WJ6T=***T+./
+*5>:MGE,OGD19*H*DE5-5S:ƾٳZAI>:
+ᰯ0JB14682B*?4+SU4-<=M踽SG3;TX;,WFM81.2
+?-O/117Z+*4*;5R=B;G.**B4T.3X.5F0MMHY
+BA=6L2*1:O6=B5*,0PL.?QC8ZC9<IZ*DIUK
+3FJ5ٶ/L?4AXK-/HE7L˸7Q.PX6-9ۼE:=.:G=3
+LA*LJ+SMVVA-MHB,ZJ,R***R/8EX*68JMLMA
+3FVJRB촾1PY>IHQZ?<**W-PZJS;VMNH5ᲯK.=
+ED/QXK6߽;ĶԷ73*IY@>2ٵ=1ҰͲV97@F:
+*@40RY5705N:KK;.1Y>DTYYB3FU-B0Z;.̽
+V/T*ܳZJ/-880-2Eͯ/NNTMM8?2?9FB,=2J
+.MQ?GMù<*<BK==:GL*AN,߾,а=-***6*BTB
+P***,P>ARJ̹>/T=-,WLW41JL4/Zټ1PL8M,*ٳ
+K-RO>>/>*N6Z7̾?ICKF,OMRP@6.B/*
+@J*W6@A*3K*105XZ6OWY6:*;0J*N:P10;/*.;
+.Jɸ,7ŶJ8;V.+KY2;AF3J/*=Z2/-8U?B,@<
+<EIT6438L3RWJJFW*-*ZVG-C3G2**+CGM
+B׾JG*I*B:KBP***,IDXŽAR*H+WEL/++HMIؽ
+90A+SH/-+κN**0TQƸTSJOJ4J/R4JR2+>4I5;GP
+FUPJ+Rڵ>,7.N4:LX+I*0*ȳQ/73
+RU22*B,2:4J2>>³2:JJ;D28Q8L2:M5L/:B
+R<=,ڷHIռR<<EIT12>86L3RZW*F
+UUQJ9++:9CGMغB׾YR+*=-*0S:0ӽ3****S*/4
+83Ҷ*<IFLM-?.ZJ>9301UGT?Q4BP1+YDZ/?
+4//S-/.++XEHX*Կ-3*3T9.*9782FG=X:7
+K4*XN:F:*,-DLݸMF:HúC>F5L/.T19GKG5F
+5I0NNT2XX*WF4-:I,HM2+<۳F4EU*6G-
+X.N;;G+/*82N/,°5R02+W4K,**J?*>R:7J+C+BF
+/AH9VN4,J*>93014JIRFS4FBI12+,2CV=ִYP
+50+NV79.FD/Z;1ɳL97ZJS*RF=*LGB
+A2,:*P;MFU-=Z*@V߱X2?4L3IU.1:/3ECZ0-
+A<;S77UӸUJBJ>N*B:,NOҹ>*<IE2?+*;T9@
+*.@:?׹***+5K,**J?.4J4,-UJYAZ*.9MIR
+K:P8.*;+JI/:ڳ>8=/*4HAV*8Q+X9R.A޻000=78
+.R/ANA2JCEO.<I5R/Q,<KT:-80*8*U2J:J2:+D
+++α>+2Tܶ=0:Q8˾G:T0?͹9.1+IٴP>@:1R<<ZMI
+/Aմ6438ޱ416L.LѵEDXRP;GQ0ܱ/*,ֹN1O,D5
+C***޾/E+**4A4JFJ+C+BF8T5>/0ο*,*H4,GM
+4308*9H-JHS@YO0麯NW+=JI32׻J
+GE4:L1>ZLV3RAUV6߿*6EM@+;꼼L.ֶS
+ս5ݱص5X:KK:F<Y2+;F,ɯ.5K*WL/8
+Q+F+Y޳F-IC>3Uٶ>8-1XKE5:,WGLMLCK*
+<IE2WYEGWKCAQ<@/@:?NHH***+C/4K+*A<;<JOQX
+J̹A0A0JKU:++*S5:.C.<¯7֯I2ON=/>3.5P5:HX
+R*MQ:.FƻF=UA3:S69/2AYD-LIM0R6CJ26F*JF,
+;@FPGKۻK/FM<Y<CZ.*IU2G.>+3/7D.
+5K*PZ6-/,R+6䯾EQ65M-A<;S-?3VF18,I+*
+FEFQ4°XPGGQ0.:AIG>9;9C=S.N,X7NVA,
+XR*0NH:0ӽH*޻GO+<EղJ.++ؿH@FR*׽.NM7I.:C
+U4J7O/<Lڱ0X<-9BJEFDI6.R,<S>J*5/:<O0,*+*-22
+Y9*Q9T6MS4-<0ƺC0,2,ܵȳGDб6QJ9DYZ>Ƴ
+L81:F7V⺼N<G޹>FC4*Q0*6RAJ6T*:MOHȳ-46>2T
+,7VMP97.RCKF/26EI5TW4@Mճ;**6*B:IB*J
+2**+<0K1**Q0*6RQJ6T*:MU0%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 611 di
+/sl 65048 string uc
+*=-*0NZ:0ӽH**0**޾L0-*C*=-*0.:0ӽH*ӽ
+-*HC*ZJ۹-R*+@+-3XF*T=A:MBXY-0D*Q0*6ƶJ6T7*ZQG0:
+ַF̳ݶ+CXDտ-**޾A1E+**4JF/:FAJ+CXDտ-**޾
+A1E+**4J::I/:+J+CXE9,MQ,*.J+;B@3<Լ6+˽P+-
+FACW=-*0ڷ:0ӽ3****,+S*K/4>ᲯNJ3J˾G/
+8Z?<EQUZ+/@ǿ-0UIA5Jݰ0**+G8K,**J?4JD,
+<O޶4*=I<D+83T*6,8FZ*S:O5ܽ+U**6*BBP***
+,><Y=-ARJP.Q+:6-R,R=+A<Z:**=<;-/*HXY=JQ0
+*62J6T=***8B*M+EIJ+CXE<I/39J3J.*90CGUJǷM/6
+FZ*J0/,D.4*޾Q1E+**,UTA:JP.Q+F6-+ZB*.P
+N::1.*+..0=*X<Y=EKQ0*6J6T=***XWND,,N>V?<1Z*
+F63R+:;O,*J*5J.A6JV+O=>*+S8K,**+-Qӽ?34>
+麯NY4A.L,U*G<RIST8.+ZGQ5X/YC-**޾Ա1
+*523HBRZ=A:M=SNRZ>NJ6VJ1M,YS<2*3QϿENOS2;V*
+5B,?5ܽ+U*62J6T*:M=S-L<ٺG;AVWL+*HC*ZJ-R
++6GNC92BK3/**+8K1*ڴ<XY=:*=-*0N۸:0ӽH*
+ӽ-*HC*ZJ-R+6GYEE*+*-XG2Y9*+*6*BB*J
+77**+S8K1**Q0*6RJ6T*:MU0**޾M1**
+4-W@/RB36D6AտI-7F*=-*0N:0ӽ/*Z*TAO*Q-/S,07
+Ϳ08*+*-F2,*.F*LJ*C躾Ƹ,07Ϳ08*+*-XF2Y
+/*·-**3>Z8>B<<.P1,82׵ǾI@/2<P68B19
+FǷܽ,IC*ZJ-R*<2JTH4:WB+CXE<CH@.>+37M̽+0L
+,-ⷳ5@JIC*MAS5ܽ+U**6*B׿BP*1D4*4M0Xξ6GN3B
+,1.PY7:+K4*;IM*ֺ-16JT6.:3Y*C*=-*0:0ӽ2*8
+-,2<ۿ5?:M=S*F+>+3H3J2**J33+,J*K9LAGO=-*0>
+:0ӽ1*T-4Q+N5AVJP.Q+,-R,2+*+BP1W<RFR+:-16
+*2K*FP@6*B:ؿBD*XU*,N9*5A:M=S*̺+*I6*M,
+KVW<22-,**DL3*S߻A3=-*0Ҹ:0ӽ/*T*K>ʸ-N>
+V?<1Z*F63R+:;O,*J*5J.A6JV+O=>*+7K+*O=3-8F
+:Y6GNY>I5M,DRK2@<FW02;<./XJ2*K??
+Y*C*=-*0¹:0ӽ/*ھ.*H>JMY+QZJPRǾB*GN8.N:*<
+3M-J:L+./AZ.KU:AA,ʷK+B:B*JP1NLX
+,**޾Թ1-*CXEǰPI:ZF3C<4*+*-8H2Y9*N۲=P-K*
+Q0*62J6T*:MU0**޾1-*C*=-*0:0ӽH*ӽ-
+*HC*ZJ-R+6GYEE*+*-DH2Y9*+*6*B:B*J77
+**+Q9K+*@?41V4Z÷*207Ϳ08*+*-DH2,*B*J5<RG
+BMB:MBXY-0D*%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 658 di
+/sl 65048 string uc
+*=-*0Nܺ:0ӽ/*2-+:AD**F+D,**:7C+*HC*ZJ-R*B,,*M=:M
+=STFRZNNJ3J˾D9.F:,<+8W,5;NBFZ*9-I<D/4*޾1
+U+*/.**PJPԴ19;+O*,M@B+ƾ*HX/AQ08B*X?
+OY*C*=-*0Nܺ:0ӽ3*K**2/NȾ>*P*O*,,*G<*2C
+/-G*J*/A,+*HC*ZJ-R**3/**TJP.Q+:6-R,R=+
+A<Z:**=<;-/*HXY=JQ0*6J6T9*JӲ+*;5>+S*
+**L*Z*>.=IT*9+-*,R:JAGO=-*0:0ӽ0*TH**,
+N>=*I*1-*IB.,*GZ,JTO=>*+I9K
++*>4D**F*CXE<F/:5.G6*1M,T*..J<92*,2X6/-2UJǶܽ.IC*Z
+J-RW*V-*M4:M=SUG*>EY2.ZIQ+N¯AB5
+G2,ԹROHYOA5Jݰ0**+I9K+*A:+Iо5B:M=SNRZ>NJ6VJ1M,YS
+<2*3QϿENOS2;V*5B,?5ܽ+U*6J6T*:M=S-L
+<ٺG;AVWL+*HC*ZJ-R+6GNC92BK3/**+I9K1*ڴ<X
+Y=:*=-*0N:0ӽH*ӽ-*HC*ZJ-R+6GYEE*+*-,9H2Y9*
++*6*BB*J77**+19K1**Q0*62J6T*:
+MU0**޾ڹ1**4-WHʾD*CXDտ-**޾ڽ1**0*X
+A+O*0JY-1**+8K+*,J*FN:.>+D6AտI-7F*=-*0:0
+ӽ4*208Q6GNS1J;=+O*,:2ʻ.3VRUIľI=+޳8
+@R+*-G2Y/*NQ@=JPԴ19;+O*,M@B+ƾ*HX/AQ
+08B*X?OY*C*=-*0۹:0ӽ3*K*ڴ<O޶4*=I<D+Z00
+3T*6,8FZ*S:O5ܽ+U**6*BBL*,M=S*F+>+3
+H3J2**J33+,J*K9LAGO=-*0۹:0ӽ1*T˾:*CXE<I/3
+9J3J.*90CGUJǷM/6FZ*J0/,D.4*޾ڵ1**W3B-
+:M=S*̺+*I6*M,KVW<22-,**DL3*S߻A3=-*0G:0ӽ
+/*T˾L*CXE<F/:5.G6*1M,T*..J<92*,2X6/-2UJǶܽ.IC*ZJ
+-RW*,4+NTQG<Cð5Z;+ٲ83>>?PZVL1*
+8TU/A,+*HC*ZJ-RW*/N*<,JPRǾB*GN8.N:*<
+3M-J:L+./AZ.KU:AA,ʷ++BB*JP1NL
+X,**޾Ա1-*CXEǰPI:ZF3C<4*+*-G2Y9*N۲=P
+-K*Q0*6ƸJ6T*:MU0**޾Y1-*C*=-*0>۸:0ӽH*
+-*HC*ZJ-R+6GYEE*+*-HG2Y9*+*6*B:B*J
+77**+K8K+*@?41F3޹J޿QZJZC56-D</+,,9ӿ-S,
+-AE4=-*0>:0ӽ/*Z*TAO*9ȯ,07Cߺ+9̵׷+,
+CZNN725FJK.UA6*BB@*J޷9.:*S/.D6A5Y:GN
+/⺿;;2P+?,/:3O4*+*-G2Y/*·->Jɶ++ڴ<O?I-/N.>+
+3Y-LZ*нG<:I,8:35N67FZ*9-I-2ž?RMU392
+U1NSANL*G/:/G;5PP7.9QF55C1999ΰR05R޾3:A4
+*޾ع1U+*/.ιK+ڴ<OBW83R,R=EF-6:Ѿ@5ͷ+
+UMVZ-;@6/A68BX?OQ=U7;*@:-2:EPO7PP1
+-һ2XQ9ܵ/W++Z/-:?4*޾ֹ1E+*G鸾3//4
+>+S***./+,:-,R99¾*58*N;,4+Z68BDC2J<
+?3;,1װI=Ƕ,Q+N-AF3S-*Z0,:4,?QJX*@Z/
+=V*N6*B:BL*,VF*CXE<>I/9J3J*I0J06.:
+G:.2**,8O9J/TA1,R:Q:42EH-ٶ;E:/,0X7=
+0<=+-+-/Z1A4MͶ*@Zܽ/N-%%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 705 di
+/sl 65048 string uc
+*=-*0:0ӽ1*T*׹/.<*2*Q+,-R,2+*+BP1/<@I,
+ICQJ48Z+1GC51R+*?2::*ıHME<;@,BX7=0,=̷*Z
+++ܽ-6*B:BD*XU-N-A:JP.Q+F6-+ZB*.P
+=O.9B/.+++*B0,416JT12+-YP+<S*U/1گ
+VJC15*N6QF-ɰ9:;4*޾1**W9:ھ*CXE<F/:5.
+G6*1M,T*..Qt*ո**:*5IJ*=*@RҶ*45:ɺH0CN79C1=7
+*7M2JEPO7PPQFZ+<-+бZE+<LQ0*6ƹJ6T5*:WH*9Ҵ۹-
+NTQG<Cð5Z;+ٲZ*EK.*7O6=O/3F:*VF/4
+?8BK??QM4R7NW+=J:3AI38K-BK@:NR-*A
++;.*3=-*0۹:0ӽ/*ھ.1N:KF,-ڴ<O7Y./L.+O4QN
+?O,+:QRPJE+F0OS2;V;+*JP@RҶ58<03IGYG:H,6;F+OZ
+NR7D4RBK<5JO㿺FT*6P.,54V.1IC*ZJ-R+6GNC
+926U6V+@4:VRK**6*BB*JP1.6S0*BL0@J88
+/ƼT@E:*Q0*6J6T*:M=S˺D9.+*HC*ZJ-R+6GYEE*+*-,IH
+2Y9*+*6*B:B*J7,<**;,::8FX.D.B:
+B*J7,<*VLJ,80K4G2HBJ>+0:0ӽH*ӽ=*.*?
+2FƾKL1H1FH>R7O+I9K1*?*A+*X<,1<Z2Ŷ/,;43Z
+J-RW*O@DͲ*,3/ӽ=*.*?2.U1:8ڻE:2L.4HD-B
+B@*+*UA;9ZA>=B:MUPX+3*2*ֿ54U1I.FN;I+I9K
++*,J*F+0ֿ-,-?*A+*X2+,*J6++/G.1A+<3*0
+:0ӽ4*20+ZZ?-,?*A+*X7MA*,*<2G.N8,8JD*-<YH2Y/*
+NQ@*-,?*A+*X7MA*4118XE<1+UM7+A9K,*ҹ*
+J**./U*X,*ڸE,X018N.7@V+0:0ӽ2*8-ϻ,*
+*QTJ7,**2*1LZ4R,D81E23/H-BBH*TU8JH/**
+6GYEE/+*U;+8>.FG*>8K/F*0>ܺ:0ӽ0*THEҶ+
+518K7/F;->>+1X?CQFE8+6RJ6T5*JR+*3.ӽ
+-*8*ڸ,,>:VAZJ-RW*-*=2:MU0**޾1*5*
+3.ӽṹK+BB*J77**+99K1**Q0*6RJ6T
+*:MU0**޾޽1-*9**Q0*6J6T*:ż*0**޾ڹ1
+I*O-*=-*/»:0ӽA=9**6*>BIʺ***ξI1+*
++,F2ݽT1*Q0*4RJ6TSYPH**HC*RJ߿-RQC***J+7K
+I-*=-*/>:0ӽA=9**6*B:߿R13***+/Q80ݽ*R1*
+Q0*22Jܽ*A9**6*6뿺AA:**6*6:?..***Z15WJ
+2//****99=J2-3*%
+d
+1384 47[1 0 0 1 0 0]sl 8 false 0 752 di
+/sl 58128 string uc
+*=-*.G:ݽ*1*Q0*02JܽS52*Q0*0RJܽS52*Q0*02JܽS5
+2*Q0*0JܽS52*Q0*0ƺJܽS52*Q0*0RJ9LA:J4+Q2QXL+JF?
+49**99I:*,:M*<F-??þ49**19N7@+
+:*7E-Q7+ʿ/R?8JT:**HC*BJ-SL5*6*J:1-BI-20PBF
+PPҿAG9G*ͻ6,41.I4248.W?XG*D/1K,-7F뼯,A*+>MMT8>:<
+Z*º6A.JS5***Zܽ1ܽ@+B*U40N1:FS>3R8G
+<ƻ4EG:J*.ڷXADLTƾXEW.+LMTB˼N*X
+-Aݲ+*Q0*0RJ,8FB5*FͶH3G>7;λպJ-G**72*WU
+߿,2;L+,Y-/3*DE:*28*Tӱ3*H@+Y/Z18͵
+/L*8GA@ѺH<*<>+UUKV-Q8޲ȯJ߾FHD*I<*;VUF///*AJVD
+.*>A޿U?*L*/96+66+ʹ+X6-BݲA.-*,8B4.8JF
+6=.*BI2U/M*L8Uն5,<2/@7QJ0޿/CX/@****8N.I@*
+*:0C4:<Jλ?-,M1:/1.*;.52Y/XAN:4VDF߿62BV+6UCݷ
++*,**6*6:ʱ-**O7MAZ55dzFN>8J5;.28X/=*
+21T=<2/1V,U9EYGQ0*0RJ.Q+*X,H4:۸+0>I*F
+-VX:RH22JJS?*ƸF*@QN:4VD8M*6о2+L=-*-һ:ݴ.3<
+6ZJ@**HC*BJ-=IBYIVPI?6*=-*-۹:ݴ2D3,G+*
+*Z޽1POQ-***19A++***8A++***8A++*
+*+80ݽ*R1*Q0*6RJM-I¸***޾1:I*O-*=-*/:0
+A=9**6*>:BNIʺ***ξص1:+*+,G2NݽT1*Q
+0*42J6<SYPH**HC*RJ-QC***J+8KI-*=-*/۹:0Ǽ
+A=9**6*>:BNIʺ***ξܽ1:+*+,49H2NݽT1*Q0*4
+ƺJ6<SYPH**HC*RJ-QC***J+8KI-*=-*/⻹:0Ǽ
+A=9*
+d
+1384 42[1 0 0 1 0 0]sl 8 false 0 799 di
+
+QP
+%%Trailer
+%%Pages: 1
+%%DocumentFonts:
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.0 b/macros/latex/contrib/tablor/Figures/tablor_Tab.0
new file mode 100644
index 0000000000..b829cf87ba
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.0
@@ -0,0 +1,168 @@
+%!PS
+%%BoundingBox: -1 -88 392 1
+%%HiResBoundingBox: -0.25 -87.7667 391.79092 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 67:8004
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 30:c04
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -10.8867 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+158.72443 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+164.81163 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+231.52133 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+301.27463 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+371.17732 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+377.41393 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2456 -37.60394 moveto
+(g) jkpmi 9.96265 fshow
+33.725 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.6309 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0282 -37.60394 moveto
+(t) jkpmi 9.96265 fshow
+43.8737 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+122.77792 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+newpath 163.48657 -15.94019 moveto
+163.48657 -42.6849 lineto stroke
+newpath 165.4791 -15.94019 moveto
+165.4791 -42.6849 lineto stroke
+195.48512 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+231.52133 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 234.23613 -15.94019 moveto
+234.23613 -42.6849 lineto stroke
+265.23842 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 302.99316 -15.94019 moveto
+302.99316 -42.6849 lineto stroke
+newpath 304.98569 -15.94019 moveto
+304.98569 -42.6849 lineto stroke
+337.5546 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.45946 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.45946 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.45946 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.45946 moveto
+(de) jkpmn8r 9.96265 fshow
+34.94391 -71.31996 moveto
+(g) jkpmi 9.96265 fshow
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+82.63193 -77.44139 moveto
+(100) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 82.63193 -78.87598 moveto
+95.01154 -78.87598 lineto stroke
+84.69524 -84.80379 moveto
+(99) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 98.20753 -74.83601 moveto
+145.1079 -55.49161 lineto stroke
+newpath 142.27533 -58.31577 moveto
+145.1079 -55.49161 lineto
+141.108 -55.4856 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 163.48657 -42.6849 moveto
+163.48657 -87.5167 lineto stroke
+newpath 165.4791 -42.6849 moveto
+165.4791 -87.5167 lineto stroke
+147.10802 -53.95761 moveto
+(+) jkpmn8r 9.96265 fshow
+153.34462 -53.95761 moveto
+(1) jkpsy 9.96265 fshow
+166.47536 -80.82428 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 183.1911 -74.59015 moveto
+229.52153 -53.62755 lineto stroke
+newpath 226.78568 -56.54558 moveto
+229.52153 -53.62755 lineto
+225.52362 -53.7563 lineto
+ closepath
+gsave fill grestore stroke
+231.52133 -54.74966 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 238.9505 -53.62741 moveto
+285.28139 -74.59029 lineto stroke
+newpath 281.28345 -74.46155 moveto
+285.28139 -74.59029 lineto
+282.5455 -71.67224 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 302.99316 -42.6849 moveto
+302.99316 -87.5167 lineto stroke
+newpath 304.98569 -42.6849 moveto
+304.98569 -87.5167 lineto stroke
+286.76399 -80.82428 moveto
+(\0001) jkpsy 9.96265 fshow
+305.98195 -53.95761 moveto
+(+) jkpmn8r 9.96265 fshow
+312.21855 -53.95761 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 323.36446 -55.53958 moveto
+374.15364 -76.73926 lineto stroke
+newpath 370.1538 -76.72841 moveto
+374.15364 -76.73926 lineto
+371.33305 -73.90321 lineto
+ closepath
+gsave fill grestore stroke
+376.15367 -81.96252 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+391.54092 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+391.54092 -42.6849 lineto stroke
+newpath 0 0 moveto
+391.54092 0 lineto stroke
+newpath 0 -87.5167 moveto
+391.54092 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 391.54092 0 moveto
+391.54092 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.1 b/macros/latex/contrib/tablor/Figures/tablor_Tab.1
new file mode 100644
index 0000000000..b829cf87ba
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.1
@@ -0,0 +1,168 @@
+%!PS
+%%BoundingBox: -1 -88 392 1
+%%HiResBoundingBox: -0.25 -87.7667 391.79092 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 67:8004
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 30:c04
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -10.8867 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+158.72443 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+164.81163 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+231.52133 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+301.27463 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+371.17732 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+377.41393 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2456 -37.60394 moveto
+(g) jkpmi 9.96265 fshow
+33.725 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.6309 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0282 -37.60394 moveto
+(t) jkpmi 9.96265 fshow
+43.8737 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+122.77792 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+newpath 163.48657 -15.94019 moveto
+163.48657 -42.6849 lineto stroke
+newpath 165.4791 -15.94019 moveto
+165.4791 -42.6849 lineto stroke
+195.48512 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+231.52133 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 234.23613 -15.94019 moveto
+234.23613 -42.6849 lineto stroke
+265.23842 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 302.99316 -15.94019 moveto
+302.99316 -42.6849 lineto stroke
+newpath 304.98569 -15.94019 moveto
+304.98569 -42.6849 lineto stroke
+337.5546 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.45946 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.45946 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.45946 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.45946 moveto
+(de) jkpmn8r 9.96265 fshow
+34.94391 -71.31996 moveto
+(g) jkpmi 9.96265 fshow
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+82.63193 -77.44139 moveto
+(100) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 82.63193 -78.87598 moveto
+95.01154 -78.87598 lineto stroke
+84.69524 -84.80379 moveto
+(99) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 98.20753 -74.83601 moveto
+145.1079 -55.49161 lineto stroke
+newpath 142.27533 -58.31577 moveto
+145.1079 -55.49161 lineto
+141.108 -55.4856 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 163.48657 -42.6849 moveto
+163.48657 -87.5167 lineto stroke
+newpath 165.4791 -42.6849 moveto
+165.4791 -87.5167 lineto stroke
+147.10802 -53.95761 moveto
+(+) jkpmn8r 9.96265 fshow
+153.34462 -53.95761 moveto
+(1) jkpsy 9.96265 fshow
+166.47536 -80.82428 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 183.1911 -74.59015 moveto
+229.52153 -53.62755 lineto stroke
+newpath 226.78568 -56.54558 moveto
+229.52153 -53.62755 lineto
+225.52362 -53.7563 lineto
+ closepath
+gsave fill grestore stroke
+231.52133 -54.74966 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 238.9505 -53.62741 moveto
+285.28139 -74.59029 lineto stroke
+newpath 281.28345 -74.46155 moveto
+285.28139 -74.59029 lineto
+282.5455 -71.67224 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 302.99316 -42.6849 moveto
+302.99316 -87.5167 lineto stroke
+newpath 304.98569 -42.6849 moveto
+304.98569 -87.5167 lineto stroke
+286.76399 -80.82428 moveto
+(\0001) jkpsy 9.96265 fshow
+305.98195 -53.95761 moveto
+(+) jkpmn8r 9.96265 fshow
+312.21855 -53.95761 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 323.36446 -55.53958 moveto
+374.15364 -76.73926 lineto stroke
+newpath 370.1538 -76.72841 moveto
+374.15364 -76.73926 lineto
+371.33305 -73.90321 lineto
+ closepath
+gsave fill grestore stroke
+376.15367 -81.96252 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+391.54092 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+391.54092 -42.6849 lineto stroke
+newpath 0 0 moveto
+391.54092 0 lineto stroke
+newpath 0 -87.5167 moveto
+391.54092 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 391.54092 0 moveto
+391.54092 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.10 b/macros/latex/contrib/tablor/Figures/tablor_Tab.10
new file mode 100644
index 0000000000..44c16b4f36
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.10
@@ -0,0 +1,94 @@
+%!PS
+%%BoundingBox: -1 -62 292 1
+%%HiResBoundingBox: -0.25 -61.02197 291.99532 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 2b:83c200000010026219c
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+83.39214 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+156.18904 -11.22539 moveto
+(2) jkpmn8r 9.96265 fshow
+226.09174 -11.22539 moveto
+(3) jkpmn8r 9.96265 fshow
+281.33441 -11.32748 moveto
+(4) jkpmn8r 9.96265 fshow
+8.7173 -36.28383 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -36.28383 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -36.28383 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -36.28383 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -45.00612 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -60.77197 lineto stroke
+80.34853 -28.43584 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -28.43584 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 93.86562 -28.4161 moveto
+139.6783 -47.52124 lineto stroke
+newpath 135.6785 -47.5117 moveto
+139.6783 -47.52124 lineto
+136.85681 -44.68617 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 157.90758 -15.94019 moveto
+157.90758 -60.77197 lineto stroke
+newpath 159.9001 -15.94019 moveto
+159.9001 -60.77197 lineto stroke
+141.6784 -53.64867 moveto
+(\0001) jkpsy 9.96265 fshow
+160.89636 -27.64378 moveto
+(+) jkpmn8r 9.96265 fshow
+167.13297 -27.64378 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 178.27882 -29.42136 moveto
+224.09193 -49.46857 lineto stroke
+newpath 220.0928 -49.38948 moveto
+224.09193 -49.46857 lineto
+221.3201 -46.5848 lineto
+ closepath
+gsave fill grestore stroke
+226.09174 -54.78691 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 233.52109 -49.28276 moveto
+279.33456 -27.42944 lineto stroke
+newpath 276.65788 -30.40237 moveto
+279.33456 -27.42944 lineto
+275.33968 -27.63885 lineto
+ closepath
+gsave fill grestore stroke
+281.33441 -28.35864 moveto
+(9) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+291.74532 -15.94019 lineto stroke
+newpath 0 0 moveto
+291.74532 0 lineto stroke
+newpath 0 -60.77197 moveto
+291.74532 -60.77197 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -60.77197 lineto stroke
+newpath 291.74532 0 moveto
+291.74532 -60.77197 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.105 b/macros/latex/contrib/tablor/Figures/tablor_Tab.105
new file mode 100644
index 0000000000..3dda71f58e
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.105
@@ -0,0 +1,184 @@
+%!PS
+%%BoundingBox: -1 -95 335 1
+%%HiResBoundingBox: -0.25 -94.81042 334.94821 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:1901
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0f400020010000d42
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 70:8
+%*Font: jkpmn8r 7.57156 9.96265 32:d
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.73221 -12.26105 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.74463 0 moveto
+54.74463 -20.004 lineto stroke
+59.72594 -13.2573 moveto
+(\000) jkpsy 9.96265 fshow
+65.81314 -13.2573 moveto
+(50) jkpmn8r 9.96265 fshow
+126.48543 -12.72011 moveto
+(\000) jkpsy 9.96265 fshow
+133.76813 -8.79482 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 133.76813 -10.2294 moveto
+137.89462 -10.2294 lineto stroke
+133.76813 -16.15721 moveto
+(3) jkpmn8r 7.57156 fshow
+188.90321 -14.01186 moveto
+(\000) jkpsy 9.96265 fshow
+196.18591 -3.24785 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop
+newpath 201.78891 -3.05856 moveto
+205.91542 -3.05856 lineto stroke
+201.78891 -9.72156 moveto
+(5) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 196.18591 -11.52115 moveto
+205.91542 -11.52115 lineto stroke
+198.98741 -17.44896 moveto
+(5) jkpmn8r 7.57156 fshow
+258.11949 -3.24785 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop
+newpath 263.72249 -3.05856 moveto
+267.849 -3.05856 lineto stroke
+263.72249 -9.72156 moveto
+(5) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 258.11949 -11.52115 moveto
+267.849 -11.52115 lineto stroke
+260.92099 -17.44896 moveto
+(5) jkpmn8r 7.57156 fshow
+318.85759 -13.2573 moveto
+(50) jkpmn8r 9.96265 fshow
+8.7173 -29.66277 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -29.66277 moveto
+(de) jkpmn8r 9.96265 fshow
+14.52391 -40.36266 moveto
+(3) jkpmn8r 9.96265 fshow
+19.9535 -40.36266 moveto
+(x) jkpmi 9.96265 fshow
+26.8941 -40.36266 moveto
+(+) jkpmn8r 9.96265 fshow
+34.7911 -40.36266 moveto
+(2) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 54.74463 -20.004 moveto
+54.74463 -42.93802 lineto stroke
+96.61911 -33.96165 moveto
+(\000) cmsy10 9.96265 fshow
+130.07298 -34.7263 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 132.78778 -20.004 moveto
+132.78778 -42.93802 lineto stroke
+161.52307 -33.96165 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 198.00706 -20.004 moveto
+198.00706 -42.93802 lineto stroke
+226.6213 -33.96165 moveto
+(+) cmr10 9.96265 fshow
+newpath 262.98425 -20.004 moveto
+262.98425 -42.93802 lineto stroke
+289.7614 -33.96165 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -52.59677 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -52.59677 moveto
+(de) jkpmn8r 9.96265 fshow
+12.28621 -65.82828 moveto
+(5) jkpmn8r 9.96265 fshow
+17.71591 -65.82828 moveto
+(x) jkpmi 9.96265 fshow
+22.99611 -61.71378 moveto
+(2) jkpmn8r 7.57156 fshow
+29.28111 -65.82828 moveto
+(\000) jkpsy 9.96265 fshow
+37.0287 -65.82828 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 54.74463 -42.93802 moveto
+54.74463 -68.40363 lineto stroke
+96.61911 -58.16147 moveto
+(+) cmr10 9.96265 fshow
+newpath 132.78778 -42.93802 moveto
+132.78778 -68.40363 lineto stroke
+161.52307 -58.16147 moveto
+(+) cmr10 9.96265 fshow
+195.29227 -58.92612 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 198.00706 -42.93802 moveto
+198.00706 -68.40363 lineto stroke
+226.6213 -58.16147 moveto
+(\000) cmsy10 9.96265 fshow
+260.26945 -58.92612 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 262.98425 -42.93802 moveto
+262.98425 -68.40363 lineto stroke
+289.7614 -58.16147 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -78.06236 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -78.06236 moveto
+(de) jkpmn8r 9.96265 fshow
+18.71971 -89.54927 moveto
+(F\() jkpmn8r 9.96265 fshow
+27.6961 -89.54927 moveto
+(x) jkpmi 9.96265 fshow
+32.97621 -89.54927 moveto
+(\)) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.74463 -68.40363 moveto
+54.74463 -94.56042 lineto stroke
+96.61911 -83.97267 moveto
+(\000) cmsy10 9.96265 fshow
+130.07298 -84.73732 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 132.78778 -68.40363 moveto
+132.78778 -94.56042 lineto stroke
+161.52307 -83.97267 moveto
+(+) cmr10 9.96265 fshow
+195.29227 -84.73732 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 198.00706 -68.40363 moveto
+198.00706 -94.56042 lineto stroke
+226.6213 -83.97267 moveto
+(\000) cmsy10 9.96265 fshow
+260.26945 -84.73732 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 262.98425 -68.40363 moveto
+262.98425 -94.56042 lineto stroke
+289.7614 -83.97267 moveto
+(+) cmr10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -20.004 moveto
+334.69821 -20.004 lineto stroke
+newpath 0 -42.93802 moveto
+334.69821 -42.93802 lineto stroke
+newpath 0 -68.40363 moveto
+334.69821 -68.40363 lineto stroke
+newpath 0 0 moveto
+334.69821 0 lineto stroke
+newpath 0 -94.56042 moveto
+334.69821 -94.56042 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -94.56042 lineto stroke
+newpath 334.69821 0 moveto
+334.69821 -94.56042 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.11 b/macros/latex/contrib/tablor/Figures/tablor_Tab.11
new file mode 100644
index 0000000000..c6ed7ccd4d
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.11
@@ -0,0 +1,106 @@
+%!PS
+%%BoundingBox: -1 -62 312 1
+%%HiResBoundingBox: -0.25 -61.02197 311.36264 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 2b:83c000000010026219c
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+160.89635 -11.22539 moveto
+(2) jkpmn8r 9.96265 fshow
+230.79904 -11.22539 moveto
+(3) jkpmn8r 9.96265 fshow
+300.70174 -11.32748 moveto
+(4) jkpmn8r 9.96265 fshow
+8.7173 -36.28383 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -36.28383 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -36.28383 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -36.28383 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -45.00612 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -60.77197 lineto stroke
+newpath 82.06706 -15.94019 moveto
+82.06706 -60.77197 lineto stroke
+newpath 84.05959 -15.94019 moveto
+84.05959 -60.77197 lineto stroke
+85.05585 -28.43584 moveto
+(\000) jkpsy 9.96265 fshow
+91.14305 -28.43584 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 98.57294 -28.4161 moveto
+144.3856 -47.52124 lineto stroke
+newpath 140.3858 -47.5117 moveto
+144.3856 -47.52124 lineto
+141.56412 -44.68617 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 162.61488 -15.94019 moveto
+162.61488 -60.77197 lineto stroke
+newpath 164.6074 -15.94019 moveto
+164.6074 -60.77197 lineto stroke
+146.38571 -53.64867 moveto
+(\0001) jkpsy 9.96265 fshow
+165.60367 -27.64378 moveto
+(+) jkpmn8r 9.96265 fshow
+171.84027 -27.64378 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 182.98613 -29.42136 moveto
+228.79924 -49.46857 lineto stroke
+newpath 224.80011 -49.38948 moveto
+228.79924 -49.46857 lineto
+226.0274 -46.5848 lineto
+ closepath
+gsave fill grestore stroke
+230.79904 -54.78691 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 238.22858 -49.46852 moveto
+284.04146 -29.42136 lineto stroke
+newpath 281.26967 -32.30511 moveto
+284.04146 -29.42136 lineto
+280.04237 -29.50046 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 302.42027 -15.94019 moveto
+302.42027 -60.77197 lineto stroke
+newpath 304.4128 -15.94019 moveto
+304.4128 -60.77197 lineto stroke
+286.04172 -27.64378 moveto
+(+) jkpmn8r 9.96265 fshow
+292.27832 -27.64378 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 0 -15.94019 moveto
+311.11264 -15.94019 lineto stroke
+newpath 0 0 moveto
+311.11264 0 lineto stroke
+newpath 0 -60.77197 moveto
+311.11264 -60.77197 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -60.77197 lineto stroke
+newpath 311.11264 0 moveto
+311.11264 -60.77197 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.12 b/macros/latex/contrib/tablor/Figures/tablor_Tab.12
new file mode 100644
index 0000000000..089f55f636
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.12
@@ -0,0 +1,203 @@
+%!PS
+%%BoundingBox: -1 -88 283 1
+%%HiResBoundingBox: -0.25 -87.87686 282.73007 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 27:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.42322 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+145.5439 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+151.6311 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+206.8738 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+262.11647 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+268.35307 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+26.7811 -37.60394 moveto
+(') jkpmia 9.96265 fshow
+33.7549 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.6608 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0581 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+45.3383 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.7945 lineto stroke
+115.79663 -31.85799 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 149.30978 -15.94019 moveto
+149.30978 -42.7945 lineto stroke
+newpath 151.3023 -15.94019 moveto
+151.3023 -42.7945 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 151.3023 -16.94019 moveto
+152.3023 -15.94019 lineto stroke
+newpath 151.3023 -21.9215 moveto
+157.28362 -15.94019 lineto stroke
+newpath 151.3023 -26.9028 moveto
+162.26492 -15.94019 lineto stroke
+newpath 151.3023 -31.88411 moveto
+167.24623 -15.94019 lineto stroke
+newpath 151.3023 -36.86542 moveto
+172.22754 -15.94019 lineto stroke
+newpath 151.3023 -41.84673 moveto
+177.20885 -15.94019 lineto stroke
+newpath 155.3358 -42.79454 moveto
+182.19016 -15.94019 lineto stroke
+newpath 160.31721 -42.79443 moveto
+187.17146 -15.94019 lineto stroke
+newpath 165.29852 -42.79443 moveto
+192.15277 -15.94019 lineto stroke
+newpath 170.27954 -42.79472 moveto
+197.13408 -15.94019 lineto stroke
+newpath 175.26128 -42.7943 moveto
+202.11539 -15.94019 lineto stroke
+newpath 180.2424 -42.79448 moveto
+207.0967 -15.94019 lineto stroke
+newpath 185.22342 -42.79477 moveto
+209.58864 -18.42955 lineto stroke
+newpath 190.20506 -42.79443 moveto
+209.58852 -23.41098 lineto stroke
+newpath 195.18669 -42.79411 moveto
+209.58849 -28.39232 lineto stroke
+newpath 200.1672 -42.7949 moveto
+209.58864 -33.37347 lineto stroke
+newpath 205.1489 -42.79453 moveto
+209.5887 -38.35472 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 209.5886 -15.94019 moveto
+209.5886 -42.7945 lineto stroke
+newpath 211.58112 -15.94019 moveto
+211.58112 -42.7945 lineto stroke
+235.82375 -31.85799 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.51425 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.51425 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.51425 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.51425 moveto
+(de) jkpmn8r 9.96265 fshow
+34.1967 -71.37476 moveto
+(') jkpmia 9.96265 fshow
+newpath 75.36722 -42.7945 moveto
+75.36722 -87.62628 lineto stroke
+80.34853 -54.122 moveto
+(+) jkpmn8r 9.96265 fshow
+86.58513 -54.122 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 97.7304 -56.14424 moveto
+141.88048 -76.57982 lineto stroke
+newpath 137.88405 -76.41672 moveto
+141.88048 -76.57982 lineto
+139.16997 -73.63855 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 151.3023 -42.7945 moveto
+151.3023 -87.62628 lineto stroke
+143.88019 -82.01732 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 151.3023 -43.7945 moveto
+152.3023 -42.7945 lineto stroke
+newpath 151.3023 -48.7758 moveto
+157.28362 -42.7945 lineto stroke
+newpath 151.3023 -53.75711 moveto
+162.26492 -42.7945 lineto stroke
+newpath 151.3023 -58.73842 moveto
+167.24623 -42.7945 lineto stroke
+newpath 151.3023 -63.71973 moveto
+172.22754 -42.7945 lineto stroke
+newpath 151.3023 -68.70103 moveto
+177.20885 -42.7945 lineto stroke
+newpath 151.3023 -73.68234 moveto
+182.19016 -42.7945 lineto stroke
+newpath 151.3023 -78.66365 moveto
+187.17146 -42.7945 lineto stroke
+newpath 151.3023 -83.64496 moveto
+192.15277 -42.7945 lineto stroke
+newpath 152.30234 -87.62624 moveto
+197.13408 -42.7945 lineto stroke
+newpath 157.28331 -87.62657 moveto
+202.11539 -42.7945 lineto stroke
+newpath 162.2652 -87.62599 moveto
+207.0967 -42.7945 lineto stroke
+newpath 167.24646 -87.62604 moveto
+209.58864 -45.28386 lineto stroke
+newpath 172.22765 -87.62616 moveto
+209.58852 -50.26529 lineto stroke
+newpath 177.20853 -87.62659 moveto
+209.58894 -55.24617 lineto stroke
+newpath 182.1905 -87.62592 moveto
+209.58832 -60.2281 lineto stroke
+newpath 187.1717 -87.62602 moveto
+209.58884 -65.2089 lineto stroke
+newpath 192.15222 -87.62682 moveto
+209.5889 -70.19014 lineto stroke
+newpath 197.13348 -87.62686 moveto
+209.58868 -75.17166 lineto stroke
+newpath 202.11508 -87.62657 moveto
+209.5887 -80.15295 lineto stroke
+newpath 207.09688 -87.62608 moveto
+209.5883 -85.13466 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 209.5886 -42.7945 moveto
+209.5886 -87.62628 lineto stroke
+211.58112 -82.01732 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 219.01056 -76.46011 moveto
+260.49245 -56.20682 lineto stroke
+newpath 257.84312 -59.20384 moveto
+260.49245 -56.20682 lineto
+256.49986 -56.45262 lineto
+ closepath
+gsave fill grestore stroke
+262.11647 -54.122 moveto
+(+) jkpmn8r 9.96265 fshow
+268.35307 -54.122 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+282.48007 -15.94019 lineto stroke
+newpath 0 -42.7945 moveto
+282.48007 -42.7945 lineto stroke
+newpath 0 0 moveto
+282.48007 0 lineto stroke
+newpath 0 -87.62628 moveto
+282.48007 -87.62628 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.62628 lineto stroke
+newpath 282.48007 0 moveto
+282.48007 -87.62628 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.13 b/macros/latex/contrib/tablor/Figures/tablor_Tab.13
new file mode 100644
index 0000000000..cf4dae35b5
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.13
@@ -0,0 +1,358 @@
+%!PS
+%%BoundingBox: -1 -90 531 1
+%%HiResBoundingBox: -0.25 -89.24759 530.7916 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0ca00000012004d4b38
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 31:dc
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+80.42322 -10.8273 moveto
+(\0001) jkpsy 9.96265 fshow
+157.01091 -11.96555 moveto
+(\000) jkpsy 9.96265 fshow
+163.09811 -11.96555 moveto
+(1) jkpmn8r 9.96265 fshow
+218.3408 -11.96555 moveto
+(1) jkpmn8r 9.96265 fshow
+302.4129 -7.50307 moveto
+(5) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 302.4129 -8.93765 moveto
+306.53941 -8.93765 lineto stroke
+302.4129 -14.86546 moveto
+(2) jkpmn8r 7.57156 fshow
+385.18202 -12.06764 moveto
+(4) jkpmn8r 9.96265 fshow
+440.4247 -11.96555 moveto
+(6) jkpmn8r 9.96265 fshow
+510.178 -11.1735 moveto
+(+) jkpmn8r 9.96265 fshow
+516.4146 -11.1735 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -39.08426 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -39.08426 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.16522 lineto stroke
+121.53014 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 160.7768 -17.4205 moveto
+160.7768 -44.16522 lineto stroke
+newpath 162.76932 -17.4205 moveto
+162.76932 -44.16522 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 162.76932 -18.4205 moveto
+163.76932 -17.4205 lineto stroke
+newpath 162.76932 -23.40181 moveto
+168.75063 -17.4205 lineto stroke
+newpath 162.76932 -28.38312 moveto
+173.73193 -17.4205 lineto stroke
+newpath 162.76932 -33.36443 moveto
+178.71324 -17.4205 lineto stroke
+newpath 162.76932 -38.34573 moveto
+183.69455 -17.4205 lineto stroke
+newpath 162.76932 -43.32704 moveto
+188.67586 -17.4205 lineto stroke
+newpath 166.91263 -44.16504 moveto
+193.65717 -17.4205 lineto stroke
+newpath 171.89369 -44.16528 moveto
+198.63847 -17.4205 lineto stroke
+newpath 176.87526 -44.16502 moveto
+203.61978 -17.4205 lineto stroke
+newpath 181.85632 -44.16527 moveto
+208.60109 -17.4205 lineto stroke
+newpath 186.83762 -44.16528 moveto
+213.5824 -17.4205 lineto stroke
+newpath 191.81923 -44.16498 moveto
+218.5637 -17.4205 lineto stroke
+newpath 196.79985 -44.16566 moveto
+221.0556 -19.90991 lineto stroke
+newpath 201.78143 -44.16539 moveto
+221.05576 -24.89107 lineto stroke
+newpath 206.76274 -44.16539 moveto
+221.05545 -29.87268 lineto stroke
+newpath 211.74399 -44.16545 moveto
+221.0555 -34.85394 lineto stroke
+newpath 216.7255 -44.16525 moveto
+221.05576 -39.83499 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 221.0556 -17.4205 moveto
+221.0556 -44.16522 lineto stroke
+newpath 223.04813 -17.4205 moveto
+223.04813 -44.16522 lineto stroke
+258.89156 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+301.76141 -34.04816 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 304.47621 -17.4205 moveto
+304.47621 -44.16522 lineto stroke
+342.31216 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 385.9043 -17.4205 moveto
+385.9043 -44.16522 lineto stroke
+newpath 387.89682 -17.4205 moveto
+387.89682 -44.16522 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 387.89682 -18.4205 moveto
+388.89682 -17.4205 lineto stroke
+newpath 387.89682 -23.40181 moveto
+393.87813 -17.4205 lineto stroke
+newpath 387.89682 -28.38312 moveto
+398.85944 -17.4205 lineto stroke
+newpath 387.89682 -33.36443 moveto
+403.84074 -17.4205 lineto stroke
+newpath 387.89682 -38.34573 moveto
+408.82205 -17.4205 lineto stroke
+newpath 387.89682 -43.32704 moveto
+413.80336 -17.4205 lineto stroke
+newpath 392.04013 -44.16504 moveto
+418.78467 -17.4205 lineto stroke
+newpath 397.0212 -44.16528 moveto
+423.76598 -17.4205 lineto stroke
+newpath 402.00276 -44.16502 moveto
+428.74728 -17.4205 lineto stroke
+newpath 406.98383 -44.16527 moveto
+433.72859 -17.4205 lineto stroke
+newpath 411.96512 -44.16528 moveto
+438.7099 -17.4205 lineto stroke
+newpath 416.94673 -44.16498 moveto
+443.13947 -17.97224 lineto stroke
+newpath 421.92735 -44.16566 moveto
+443.13953 -22.95349 lineto stroke
+newpath 426.90894 -44.16539 moveto
+443.13968 -27.93465 lineto stroke
+newpath 431.89024 -44.16539 moveto
+443.13937 -32.91626 lineto stroke
+newpath 436.87149 -44.16545 moveto
+443.13942 -37.89752 lineto stroke
+newpath 441.853 -44.16525 moveto
+443.13931 -42.87894 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 443.1395 -17.4205 moveto
+443.1395 -44.16522 lineto stroke
+newpath 445.13202 -17.4205 moveto
+445.13202 -44.16522 lineto stroke
+476.62996 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -64.50887 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.50887 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.50887 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.50887 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -73.23116 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -44.16522 moveto
+75.36722 -88.99701 lineto stroke
+80.34853 -55.86882 moveto
+(+) jkpmn8r 9.96265 fshow
+86.58513 -55.86882 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 97.73085 -57.3271 moveto
+143.54373 -75.8653 lineto stroke
+newpath 139.54407 -75.89806 moveto
+143.54373 -75.8653 lineto
+140.69241 -73.06023 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 160.7768 -44.16522 moveto
+160.7768 -88.99701 lineto stroke
+newpath 162.76932 -44.16522 moveto
+162.76932 -88.99701 lineto stroke
+145.54388 -81.8737 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 162.76932 -45.16522 moveto
+163.76932 -44.16522 lineto stroke
+newpath 162.76932 -50.14653 moveto
+168.75063 -44.16522 lineto stroke
+newpath 162.76932 -55.12784 moveto
+173.73193 -44.16522 lineto stroke
+newpath 162.76932 -60.10915 moveto
+178.71324 -44.16522 lineto stroke
+newpath 162.76932 -65.09045 moveto
+183.69455 -44.16522 lineto stroke
+newpath 162.76932 -70.07176 moveto
+188.67586 -44.16522 lineto stroke
+newpath 162.76932 -75.05307 moveto
+193.65717 -44.16522 lineto stroke
+newpath 162.76932 -80.03438 moveto
+198.63847 -44.16522 lineto stroke
+newpath 162.76932 -85.01569 moveto
+203.61978 -44.16522 lineto stroke
+newpath 163.76935 -88.99696 moveto
+208.60109 -44.16522 lineto stroke
+newpath 168.75032 -88.9973 moveto
+213.5824 -44.16522 lineto stroke
+newpath 173.73221 -88.99672 moveto
+218.5637 -44.16522 lineto stroke
+newpath 178.71347 -88.99677 moveto
+221.05565 -46.65459 lineto stroke
+newpath 183.69466 -88.99689 moveto
+221.05553 -51.63602 lineto stroke
+newpath 188.67554 -88.99731 moveto
+221.05595 -56.6169 lineto stroke
+newpath 193.65752 -88.99664 moveto
+221.05533 -61.59883 lineto stroke
+newpath 198.63872 -88.99675 moveto
+221.05585 -66.57962 lineto stroke
+newpath 203.61923 -88.99754 moveto
+221.05591 -71.56087 lineto stroke
+newpath 208.6005 -88.99759 moveto
+221.0557 -76.54239 lineto stroke
+newpath 213.58209 -88.9973 moveto
+221.05571 -81.52368 lineto stroke
+newpath 218.56389 -88.99681 moveto
+221.05531 -86.50539 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 221.0556 -44.16522 moveto
+221.0556 -88.99701 lineto stroke
+newpath 223.04813 -44.16522 moveto
+223.04813 -88.99701 lineto stroke
+223.04813 -81.8737 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 240.28073 -76.32365 moveto
+286.09407 -59.96808 lineto stroke
+newpath 283.12833 -62.65228 moveto
+286.09407 -59.96808 lineto
+282.09897 -59.76892 lineto
+ closepath
+gsave fill grestore stroke
+288.0941 -55.89627 moveto
+(ln) jkpmn8r 9.96265 fshow
+298.2172 -46.36447 moveto
+(\020) jkpex 9.96265 fshow
+303.3479 -51.97098 moveto
+(441) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 303.3479 -53.40556 moveto
+315.72751 -53.40556 lineto stroke
+305.4112 -59.33337 moveto
+(16) jkpmn8r 7.57156 fshow
+316.923 -46.36447 moveto
+(\021) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 322.85817 -59.96803 moveto
+368.6712 -76.32347 lineto stroke
+newpath 364.67613 -76.52261 moveto
+368.6712 -76.32347 lineto
+365.70549 -73.63928 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 385.9043 -44.16522 moveto
+385.9043 -88.99701 lineto stroke
+newpath 387.89682 -44.16522 moveto
+387.89682 -88.99701 lineto stroke
+370.67139 -81.8737 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 387.89682 -45.16522 moveto
+388.89682 -44.16522 lineto stroke
+newpath 387.89682 -50.14653 moveto
+393.87813 -44.16522 lineto stroke
+newpath 387.89682 -55.12784 moveto
+398.85944 -44.16522 lineto stroke
+newpath 387.89682 -60.10915 moveto
+403.84074 -44.16522 lineto stroke
+newpath 387.89682 -65.09045 moveto
+408.82205 -44.16522 lineto stroke
+newpath 387.89682 -70.07176 moveto
+413.80336 -44.16522 lineto stroke
+newpath 387.89682 -75.05307 moveto
+418.78467 -44.16522 lineto stroke
+newpath 387.89682 -80.03438 moveto
+423.76598 -44.16522 lineto stroke
+newpath 387.89682 -85.01569 moveto
+428.74728 -44.16522 lineto stroke
+newpath 388.89685 -88.99696 moveto
+433.72859 -44.16522 lineto stroke
+newpath 393.87782 -88.9973 moveto
+438.7099 -44.16522 lineto stroke
+newpath 398.85971 -88.99672 moveto
+443.13914 -44.71729 lineto stroke
+newpath 403.84097 -88.99677 moveto
+443.13971 -49.69803 lineto stroke
+newpath 408.82216 -88.99689 moveto
+443.13956 -54.67949 lineto stroke
+newpath 413.80304 -88.99731 moveto
+443.13928 -59.66107 lineto stroke
+newpath 418.78502 -88.99664 moveto
+443.13939 -64.64227 lineto stroke
+newpath 423.76622 -88.99675 moveto
+443.13922 -69.62375 lineto stroke
+newpath 428.74673 -88.99754 moveto
+443.13924 -74.60504 lineto stroke
+newpath 433.728 -88.99759 moveto
+443.13966 -79.58592 lineto stroke
+newpath 438.7096 -88.9973 moveto
+443.13972 -84.56717 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 443.1395 -44.16522 moveto
+443.1395 -88.99701 lineto stroke
+newpath 445.13202 -44.16522 moveto
+445.13202 -88.99701 lineto stroke
+445.13202 -81.8737 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 462.36513 -75.86525 moveto
+508.17778 -57.3272 lineto stroke
+newpath 505.32645 -60.13222 moveto
+508.17778 -57.3272 lineto
+504.17813 -57.29439 lineto
+ closepath
+gsave fill grestore stroke
+510.178 -55.86882 moveto
+(+) jkpmn8r 9.96265 fshow
+516.4146 -55.86882 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -17.4205 moveto
+530.5416 -17.4205 lineto stroke
+newpath 0 -44.16522 moveto
+530.5416 -44.16522 lineto stroke
+newpath 0 0 moveto
+530.5416 0 lineto stroke
+newpath 0 -88.99701 moveto
+530.5416 -88.99701 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -88.99701 lineto stroke
+newpath 530.5416 0 moveto
+530.5416 -88.99701 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.14 b/macros/latex/contrib/tablor/Figures/tablor_Tab.14
new file mode 100644
index 0000000000..2c8eec540e
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.14
@@ -0,0 +1,207 @@
+%!PS
+%%BoundingBox: -1 -88 514 1
+%%HiResBoundingBox: -0.25 -87.7667 513.13571 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 30:e04
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+147.13692 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+153.31372 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+219.39682 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+225.48402 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+292.19373 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+361.94702 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+431.87862 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+438.05542 -11.27034 moveto
+(2) jkpmn8r 7.57156 fshow
+492.52211 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+498.75871 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+116.80534 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 152.53767 -15.94019 moveto
+152.53767 -42.6849 lineto stroke
+184.97209 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 224.15897 -15.94019 moveto
+224.15897 -42.6849 lineto stroke
+newpath 226.15149 -15.94019 moveto
+226.15149 -42.6849 lineto stroke
+256.15752 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+292.19373 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 294.90852 -15.94019 moveto
+294.90852 -42.6849 lineto stroke
+325.91081 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 363.66556 -15.94019 moveto
+363.66556 -42.6849 lineto stroke
+newpath 365.65808 -15.94019 moveto
+365.65808 -42.6849 lineto stroke
+397.09624 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 437.27937 -15.94019 moveto
+437.27937 -42.6849 lineto stroke
+464.87196 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+82.63193 -77.0105 moveto
+(100) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 82.63193 -78.44508 moveto
+95.01154 -78.44508 lineto stroke
+84.69524 -84.3729 moveto
+(99) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 98.20667 -76.3357 moveto
+145.10794 -66.63715 lineto stroke
+newpath 141.79926 -68.88434 moveto
+145.10794 -66.63715 lineto
+141.17935 -65.88647 lineto
+ closepath
+gsave fill grestore stroke
+147.10802 -68.3561 moveto
+(10) jkpmn8r 9.96265 fshow
+newpath 159.96748 -63.54532 moveto
+205.7802 -53.95421 lineto stroke
+newpath 202.47662 -56.20988 moveto
+205.7802 -53.95421 lineto
+201.84921 -53.21315 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 224.15897 -42.6849 moveto
+224.15897 -87.5167 lineto stroke
+newpath 226.15149 -42.6849 moveto
+226.15149 -87.5167 lineto stroke
+207.78041 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+214.01701 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+227.14775 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 244.16084 -74.1594 moveto
+290.19351 -53.99106 lineto stroke
+newpath 287.42299 -56.87613 moveto
+290.19351 -53.99106 lineto
+286.19441 -54.07199 lineto
+ closepath
+gsave fill grestore stroke
+292.19373 -55.18056 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 299.6229 -53.99078 moveto
+345.65607 -74.15935 lineto stroke
+newpath 341.65692 -74.07843 moveto
+345.65607 -74.15935 lineto
+342.8855 -71.27426 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 363.66556 -42.6849 moveto
+363.66556 -87.5167 lineto stroke
+newpath 365.65808 -42.6849 moveto
+365.65808 -87.5167 lineto stroke
+347.43639 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+366.65434 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+372.89095 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 384.03679 -53.95421 moveto
+429.84982 -63.54536 lineto stroke
+newpath 425.9188 -64.28644 moveto
+429.84982 -63.54536 lineto
+426.5462 -61.28967 lineto
+ closepath
+gsave fill grestore stroke
+431.84972 -68.3561 moveto
+(10) jkpmn8r 9.96265 fshow
+newpath 444.70918 -66.65628 moveto
+495.49843 -77.28926 lineto stroke
+newpath 491.5676 -78.03029 moveto
+495.49843 -77.28926 lineto
+492.19495 -75.03368 lineto
+ closepath
+gsave fill grestore stroke
+497.49846 -81.53163 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+512.88571 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+512.88571 -42.6849 lineto stroke
+newpath 0 0 moveto
+512.88571 0 lineto stroke
+newpath 0 -87.5167 moveto
+512.88571 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 512.88571 0 moveto
+512.88571 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.15 b/macros/latex/contrib/tablor/Figures/tablor_Tab.15
new file mode 100644
index 0000000000..605ff250f6
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.15
@@ -0,0 +1,207 @@
+%!PS
+%%BoundingBox: -1 -88 515 1
+%%HiResBoundingBox: -0.25 -87.7667 514.45071 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 30:e04
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+158.72443 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+164.81163 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+231.87898 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+238.05579 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+292.85123 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+348.45155 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+354.62836 -11.27034 moveto
+(2) jkpmn8r 7.57156 fshow
+423.93442 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+493.83711 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+500.07372 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+122.77792 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+newpath 163.48657 -15.94019 moveto
+163.48657 -42.6849 lineto stroke
+newpath 165.4791 -15.94019 moveto
+165.4791 -42.6849 lineto stroke
+197.00693 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 237.27974 -15.94019 moveto
+237.27974 -42.6849 lineto stroke
+262.54852 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+292.85123 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 295.56602 -15.94019 moveto
+295.56602 -42.6849 lineto stroke
+320.83481 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 353.85231 -15.94019 moveto
+353.85231 -42.6849 lineto stroke
+386.3764 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 425.65295 -15.94019 moveto
+425.65295 -42.6849 lineto stroke
+newpath 427.64548 -15.94019 moveto
+427.64548 -42.6849 lineto stroke
+460.21439 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+82.63193 -77.0105 moveto
+(100) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 82.63193 -78.44508 moveto
+95.01154 -78.44508 lineto stroke
+84.69524 -84.3729 moveto
+(99) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 98.20753 -74.52771 moveto
+145.1079 -55.79593 lineto stroke
+newpath 142.2436 -58.58833 moveto
+145.1079 -55.79593 lineto
+141.10802 -55.74504 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 163.48657 -42.6849 moveto
+163.48657 -87.5167 lineto stroke
+newpath 165.4791 -42.6849 moveto
+165.4791 -87.5167 lineto stroke
+147.10802 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+153.34462 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+166.47536 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 183.70847 -76.27115 moveto
+229.52147 -66.71849 lineto stroke
+newpath 226.21599 -68.97153 moveto
+229.52147 -66.71849 lineto
+225.59102 -65.97424 lineto
+ closepath
+gsave fill grestore stroke
+231.52133 -68.3561 moveto
+(\000) jkpsy 9.96265 fshow
+237.60854 -68.3561 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 245.03778 -63.3471 moveto
+290.85138 -52.99103 lineto stroke
+newpath 287.58441 -55.29887 moveto
+290.85138 -52.99103 lineto
+286.9094 -52.31276 lineto
+ closepath
+gsave fill grestore stroke
+292.85123 -55.18056 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 300.28062 -52.99098 moveto
+346.094 -63.34706 lineto stroke
+newpath 342.15205 -64.02531 moveto
+346.094 -63.34706 lineto
+342.82707 -61.03923 lineto
+ closepath
+gsave fill grestore stroke
+348.0939 -68.3561 moveto
+(\000) jkpsy 9.96265 fshow
+354.1811 -68.3561 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 361.611 -66.71858 moveto
+407.42368 -76.27115 lineto stroke
+newpath 403.49323 -77.0154 moveto
+407.42368 -76.27115 lineto
+404.1182 -74.01811 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 425.65295 -42.6849 moveto
+425.65295 -87.5167 lineto stroke
+newpath 427.64548 -42.6849 moveto
+427.64548 -87.5167 lineto stroke
+409.42378 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+428.64174 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+434.87834 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 446.02425 -55.84239 moveto
+496.81343 -76.37067 lineto stroke
+newpath 492.81384 -76.40504 moveto
+496.81343 -76.37067 lineto
+493.96103 -73.56679 lineto
+ closepath
+gsave fill grestore stroke
+498.81346 -81.53163 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+514.20071 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+514.20071 -42.6849 lineto stroke
+newpath 0 0 moveto
+514.20071 0 lineto stroke
+newpath 0 -87.5167 moveto
+514.20071 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 514.20071 0 moveto
+514.20071 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.16 b/macros/latex/contrib/tablor/Figures/tablor_Tab.16
new file mode 100644
index 0000000000..b4d5c2b8f2
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.16
@@ -0,0 +1,233 @@
+%!PS
+%%BoundingBox: -1 -94 541 1
+%%HiResBoundingBox: -0.25 -93.83652 540.23279 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000080000000000000008
+%*Font: jkpmn8r 7.57156 9.96265 28:c0d04
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -13.26405 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -22.01001 lineto stroke
+80.34853 -14.2603 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -14.2603 moveto
+(10) jkpmn8r 9.96265 fshow
+148.30351 -9.72147 moveto
+(\() jkpmn8r 7.57156 fshow
+150.88542 -9.72147 moveto
+(\000) jkpsy 7.57156 fshow
+155.51172 -10.25946 moveto
+(\() jkpmn8r 9.96265 fshow
+158.90892 -3.24777 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 164.51192 -3.05847 moveto
+172.76501 -3.05847 lineto stroke
+164.51192 -9.72147 moveto
+(10) jkpmn8r 7.57156 fshow
+172.76501 -10.25946 moveto
+(\)) jkpmn8r 9.96265 fshow
+176.01282 -9.72147 moveto
+(\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 148.30351 -13.52716 moveto
+178.48111 -13.52716 lineto stroke
+161.32912 -19.45497 moveto
+(3) jkpmn8r 7.57156 fshow
+241.10611 -14.2603 moveto
+(\000) jkpsy 9.96265 fshow
+247.19331 -14.2603 moveto
+(1) jkpmn8r 9.96265 fshow
+313.90302 -14.2603 moveto
+(0) jkpmn8r 9.96265 fshow
+383.65631 -14.2603 moveto
+(1) jkpmn8r 9.96265 fshow
+454.7545 -4.25085 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop
+newpath 460.3575 -4.06157 moveto
+468.6105 -4.06157 lineto stroke
+460.3575 -10.72456 moveto
+(10) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 454.7545 -12.52415 moveto
+468.6105 -12.52415 lineto stroke
+459.61931 -18.45197 moveto
+(3) jkpmn8r 7.57156 fshow
+519.61919 -13.46825 moveto
+(+) jkpmn8r 9.96265 fshow
+525.85579 -13.46825 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -31.66887 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -31.66887 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -43.67377 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -39.55928 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -43.67377 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -43.67377 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -43.67377 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -22.01001 moveto
+75.36722 -48.75473 lineto stroke
+122.23267 -37.87302 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 163.39232 -22.01001 moveto
+163.39232 -48.75473 lineto stroke
+201.25406 -37.87302 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 245.86826 -22.01001 moveto
+245.86826 -48.75473 lineto stroke
+newpath 247.86078 -22.01001 moveto
+247.86078 -48.75473 lineto stroke
+277.8668 -37.87302 moveto
+(+) cmr10 9.96265 fshow
+313.90302 -38.63766 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 316.61781 -22.01001 moveto
+316.61781 -48.75473 lineto stroke
+347.6201 -37.87302 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 385.37485 -22.01001 moveto
+385.37485 -48.75473 lineto stroke
+newpath 387.36737 -22.01001 moveto
+387.36737 -48.75473 lineto stroke
+420.15248 -37.87302 moveto
+(\000) cmsy10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 461.68256 -22.01001 moveto
+461.68256 -48.75473 lineto stroke
+490.62209 -37.87302 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -69.09837 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -69.09837 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -69.09837 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -69.09837 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -77.82066 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -48.75473 moveto
+75.36722 -93.58652 lineto stroke
+82.63193 -83.08032 moveto
+(100) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 82.63193 -84.51491 moveto
+95.01154 -84.51491 lineto stroke
+84.69524 -90.44272 moveto
+(99) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 98.20676 -82.68796 moveto
+155.96227 -72.4834 lineto stroke
+newpath 152.58917 -74.63399 moveto
+155.96227 -72.4834 lineto
+152.05646 -71.61891 lineto
+ closepath
+gsave fill grestore stroke
+157.96266 -74.42592 moveto
+(10) jkpmn8r 9.96265 fshow
+newpath 170.82228 -69.84393 moveto
+227.48972 -59.72552 lineto stroke
+newpath 224.12082 -61.88205 moveto
+227.48972 -59.72552 lineto
+223.58267 -58.8682 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 245.86826 -48.75473 moveto
+245.86826 -93.58652 lineto stroke
+newpath 247.86078 -48.75473 moveto
+247.86078 -93.58652 lineto stroke
+229.4897 -60.45833 moveto
+(+) jkpmn8r 9.96265 fshow
+235.7263 -60.45833 moveto
+(1) jkpsy 9.96265 fshow
+248.85704 -86.46321 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 265.87013 -80.22922 moveto
+311.9028 -60.06088 lineto stroke
+newpath 309.13228 -62.94595 moveto
+311.9028 -60.06088 lineto
+307.9037 -60.14182 lineto
+ closepath
+gsave fill grestore stroke
+313.90302 -61.25038 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 321.33218 -60.06061 moveto
+367.36536 -80.22917 lineto stroke
+newpath 363.36621 -80.14825 moveto
+367.36536 -80.22917 lineto
+364.59479 -77.34409 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 385.37485 -48.75473 moveto
+385.37485 -93.58652 lineto stroke
+newpath 387.36737 -48.75473 moveto
+387.36737 -93.58652 lineto stroke
+369.14568 -86.46321 moveto
+(\0001) jkpsy 9.96265 fshow
+388.36363 -60.45833 moveto
+(+) jkpmn8r 9.96265 fshow
+394.60023 -60.45833 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 405.74632 -59.94077 moveto
+454.25269 -69.679 lineto stroke
+newpath 450.3279 -70.45245 moveto
+454.25269 -69.679 lineto
+450.93056 -67.45062 lineto
+ closepath
+gsave fill grestore stroke
+456.2529 -74.42592 moveto
+(10) jkpmn8r 9.96265 fshow
+newpath 469.11195 -72.66216 moveto
+522.59573 -83.39964 lineto stroke
+newpath 518.67163 -84.17297 moveto
+522.59573 -83.39964 lineto
+519.2742 -81.17166 lineto
+ closepath
+gsave fill grestore stroke
+524.59554 -87.60146 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -22.01001 moveto
+539.98279 -22.01001 lineto stroke
+newpath 0 -48.75473 moveto
+539.98279 -48.75473 lineto stroke
+newpath 0 0 moveto
+539.98279 0 lineto stroke
+newpath 0 -93.58652 moveto
+539.98279 -93.58652 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -93.58652 lineto stroke
+newpath 539.98279 0 moveto
+539.98279 -93.58652 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.17 b/macros/latex/contrib/tablor/Figures/tablor_Tab.17
new file mode 100644
index 0000000000..ac1f4d0957
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.17
@@ -0,0 +1,233 @@
+%!PS
+%%BoundingBox: -1 -94 532 1
+%%HiResBoundingBox: -0.25 -93.83652 531.9797 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000080000000000000008
+%*Font: jkpmn8r 7.57156 9.96265 28:c0e04
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -13.26405 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -22.01001 lineto stroke
+80.34853 -14.2603 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -14.2603 moveto
+(10) jkpmn8r 9.96265 fshow
+158.72443 -14.2603 moveto
+(\000) jkpsy 9.96265 fshow
+164.81163 -14.2603 moveto
+(1) jkpmn8r 9.96265 fshow
+232.71683 -9.72147 moveto
+(\() jkpmn8r 7.57156 fshow
+235.29874 -9.72147 moveto
+(\000) jkpsy 7.57156 fshow
+239.92503 -10.25946 moveto
+(\() jkpmn8r 9.96265 fshow
+243.32224 -3.24777 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 248.92523 -3.05847 moveto
+253.05173 -3.05847 lineto stroke
+248.92523 -9.72147 moveto
+(2) jkpmn8r 7.57156 fshow
+253.05173 -10.25946 moveto
+(\)) jkpmn8r 9.96265 fshow
+256.29964 -9.72147 moveto
+(\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 232.71683 -13.52716 moveto
+258.76793 -13.52716 lineto stroke
+243.67914 -19.45497 moveto
+(2) jkpmn8r 7.57156 fshow
+309.77652 -14.2603 moveto
+(0) jkpmn8r 9.96265 fshow
+366.21469 -4.25085 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop
+newpath 371.81769 -4.06157 moveto
+375.9442 -4.06157 lineto stroke
+371.81769 -10.72456 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 366.21469 -12.52415 moveto
+375.9442 -12.52415 lineto stroke
+369.01619 -18.45197 moveto
+(2) jkpmn8r 7.57156 fshow
+441.46341 -14.2603 moveto
+(1) jkpmn8r 9.96265 fshow
+511.3661 -13.46825 moveto
+(+) jkpmn8r 9.96265 fshow
+517.6027 -13.46825 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -31.66887 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -31.66887 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -43.67377 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -39.55928 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -43.67377 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -43.67377 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -43.67377 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -22.01001 moveto
+75.36722 -48.75473 lineto stroke
+122.77792 -37.87302 moveto
+(+) cmr10 9.96265 fshow
+newpath 163.48657 -22.01001 moveto
+163.48657 -48.75473 lineto stroke
+newpath 165.4791 -22.01001 moveto
+165.4791 -48.75473 lineto stroke
+201.23825 -37.87302 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 245.74239 -22.01001 moveto
+245.74239 -48.75473 lineto stroke
+275.2425 -37.87302 moveto
+(+) cmr10 9.96265 fshow
+309.77652 -38.63766 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 312.49132 -22.01001 moveto
+312.49132 -48.75473 lineto stroke
+337.91103 -37.87302 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 371.07945 -22.01001 moveto
+371.07945 -48.75473 lineto stroke
+403.75447 -37.87302 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 443.18195 -22.01001 moveto
+443.18195 -48.75473 lineto stroke
+newpath 445.17447 -22.01001 moveto
+445.17447 -48.75473 lineto stroke
+477.74338 -37.87302 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -69.09837 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -69.09837 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -69.09837 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -69.09837 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -77.82066 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -48.75473 moveto
+75.36722 -93.58652 lineto stroke
+82.63193 -83.08032 moveto
+(100) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 82.63193 -84.51491 moveto
+95.01154 -84.51491 lineto stroke
+84.69524 -90.44272 moveto
+(99) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 98.20753 -80.59753 moveto
+145.1079 -61.86575 lineto stroke
+newpath 142.2436 -64.65816 moveto
+145.1079 -61.86575 lineto
+141.10802 -61.81487 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 163.48657 -48.75473 moveto
+163.48657 -93.58652 lineto stroke
+newpath 165.4791 -48.75473 moveto
+165.4791 -93.58652 lineto stroke
+147.10802 -60.45833 moveto
+(+) jkpmn8r 9.96265 fshow
+153.34462 -60.45833 moveto
+(1) jkpsy 9.96265 fshow
+166.47536 -86.46321 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 183.7085 -82.57777 moveto
+237.98434 -72.5972 lineto stroke
+newpath 234.62677 -74.771 moveto
+237.98434 -72.5972 lineto
+234.07309 -71.76007 lineto
+ closepath
+gsave fill grestore stroke
+239.98398 -74.42592 moveto
+(\000) jkpsy 9.96265 fshow
+246.07118 -74.42592 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 253.50037 -69.63927 moveto
+307.77644 -58.92577 lineto stroke
+newpath 304.44762 -61.143 moveto
+307.77644 -58.92577 lineto
+303.85481 -58.13968 lineto
+ closepath
+gsave fill grestore stroke
+309.77652 -61.25038 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 317.20619 -59.0554 moveto
+363.32104 -69.4259 lineto stroke
+newpath 359.37978 -70.10852 moveto
+363.32104 -69.4259 lineto
+360.0515 -67.12164 lineto
+ closepath
+gsave fill grestore stroke
+365.32104 -74.42592 moveto
+(\000) jkpsy 9.96265 fshow
+371.40825 -74.42592 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 378.8374 -72.78058 moveto
+424.9529 -82.35054 lineto stroke
+newpath 421.02339 -83.09851 moveto
+424.9529 -82.35054 lineto
+421.64546 -80.1008 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 443.18195 -48.75473 moveto
+443.18195 -93.58652 lineto stroke
+newpath 445.17447 -48.75473 moveto
+445.17447 -93.58652 lineto stroke
+426.95277 -86.46321 moveto
+(\0001) jkpsy 9.96265 fshow
+446.17073 -60.45833 moveto
+(+) jkpmn8r 9.96265 fshow
+452.40733 -60.45833 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 463.55324 -61.91222 moveto
+514.34242 -82.44049 lineto stroke
+newpath 510.34283 -82.47487 moveto
+514.34242 -82.44049 lineto
+511.49002 -79.63661 lineto
+ closepath
+gsave fill grestore stroke
+516.34245 -87.60146 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -22.01001 moveto
+531.7297 -22.01001 lineto stroke
+newpath 0 -48.75473 moveto
+531.7297 -48.75473 lineto stroke
+newpath 0 0 moveto
+531.7297 0 lineto stroke
+newpath 0 -93.58652 moveto
+531.7297 -93.58652 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -93.58652 lineto stroke
+newpath 531.7297 0 moveto
+531.7297 -93.58652 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.18 b/macros/latex/contrib/tablor/Figures/tablor_Tab.18
new file mode 100644
index 0000000000..bbdbba6fa9
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.18
@@ -0,0 +1,169 @@
+%!PS
+%%BoundingBox: -1 -92 347 1
+%%HiResBoundingBox: -0.25 -91.00363 346.49118 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 3d:800000000000001
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmia 9.96265 9.96265 19:8
+%*Font: jkpmn8r 7.57156 9.96265 28:c01
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 00:8000000000008
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpmn8r 9.96265 9.96265 28:c0e000000012005d4338
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -11.88246 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -19.24683 lineto stroke
+80.34853 -11.88496 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.88496 moveto
+(\031) jkpmia 9.96265 fshow
+144.179 -8.10117 moveto
+(\() jkpmn8r 7.57156 fshow
+146.76091 -8.10117 moveto
+(\000) jkpsy 7.57156 fshow
+151.3872 -8.10117 moveto
+(\031) jkpmia 7.57156 fshow
+156.5056 -8.10117 moveto
+(\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 144.179 -10.76396 moveto
+158.9739 -10.76396 lineto stroke
+149.5132 -16.69177 moveto
+(3) jkpmn8r 7.57156 fshow
+209.9825 -12.87871 moveto
+(0) jkpmn8r 9.96265 fshow
+270.01837 -7.71582 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 270.01837 -9.1504 moveto
+275.13678 -9.1504 lineto stroke
+270.51437 -15.07822 moveto
+(3) jkpmn8r 7.57156 fshow
+332.13411 -11.88496 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -28.90569 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -28.90569 moveto
+(de) jkpmn8r 9.96265 fshow
+23.3191 -40.91058 moveto
+(cos) jkpmn8r 9.96265 fshow
+37.2169 -36.7961 moveto
+(0) jkpsy 7.57156 fshow
+40.1228 -40.91058 moveto
+(\() jkpmn8r 9.96265 fshow
+43.5201 -40.91058 moveto
+(x) jkpmi 9.96265 fshow
+48.80031 -40.91058 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -19.24683 moveto
+75.36722 -45.92184 lineto stroke
+84.04468 -35.83963 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 86.75948 -19.24683 moveto
+86.75948 -45.92184 lineto stroke
+115.29361 -35.07498 moveto
+(+) cmr10 9.96265 fshow
+newpath 151.57646 -19.24683 moveto
+151.57646 -45.92184 lineto stroke
+178.26253 -35.07498 moveto
+(+) cmr10 9.96265 fshow
+209.9825 -35.83963 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 212.6973 -19.24683 moveto
+212.6973 -45.92184 lineto stroke
+238.76308 -35.07498 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 272.57758 -19.24683 moveto
+272.57758 -45.92184 lineto stroke
+300.16516 -35.07498 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -67.94919 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -67.94919 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -67.94919 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -67.94919 moveto
+(de) jkpmn8r 9.96265 fshow
+30.73471 -75.8097 moveto
+(cos) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -45.92184 moveto
+75.36722 -90.75363 lineto stroke
+81.00107 -86.45227 moveto
+(\000) jkpsy 9.96265 fshow
+87.08827 -86.45227 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 94.51743 -81.41847 moveto
+142.22394 -70.48181 lineto stroke
+newpath 138.96393 -72.79967 moveto
+142.22394 -70.48181 lineto
+138.27982 -69.81554 lineto
+ closepath
+gsave fill grestore stroke
+144.22406 -71.36514 moveto
+(1) jkpmn8r 9.96265 fshow
+149.65366 -71.36514 moveto
+(=) jkpmi 9.96265 fshow
+153.49927 -71.36514 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 160.9289 -66.06407 moveto
+207.98224 -54.62479 lineto stroke
+newpath 204.75266 -56.98543 moveto
+207.98224 -54.62479 lineto
+204.02936 -54.01027 lineto
+ closepath
+gsave fill grestore stroke
+209.9825 -56.7338 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 217.41199 -54.64845 moveto
+263.22478 -66.01683 lineto stroke
+newpath 259.26912 -66.61253 moveto
+263.22478 -66.01683 lineto
+260.00652 -63.64091 lineto
+ closepath
+gsave fill grestore stroke
+265.22517 -71.36514 moveto
+(1) jkpmn8r 9.96265 fshow
+270.65477 -71.36514 moveto
+(=) jkpmi 9.96265 fshow
+274.50038 -71.36514 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 281.93033 -70.54636 moveto
+327.74324 -81.36491 lineto stroke
+newpath 323.79477 -82.0054 moveto
+327.74324 -81.36491 lineto
+324.49841 -79.02576 lineto
+ closepath
+gsave fill grestore stroke
+329.74306 -86.45227 moveto
+(\000) jkpsy 9.96265 fshow
+335.83026 -86.45227 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -19.24683 moveto
+346.24118 -19.24683 lineto stroke
+newpath 0 -45.92184 moveto
+346.24118 -45.92184 lineto stroke
+newpath 0 0 moveto
+346.24118 0 lineto stroke
+newpath 0 -90.75363 moveto
+346.24118 -90.75363 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -90.75363 lineto stroke
+newpath 346.24118 0 moveto
+346.24118 -90.75363 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.19 b/macros/latex/contrib/tablor/Figures/tablor_Tab.19
new file mode 100644
index 0000000000..7c3ed756eb
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.19
@@ -0,0 +1,126 @@
+%!PS
+%%BoundingBox: -1 -88 264 1
+%%HiResBoundingBox: -0.25 -87.7667 263.34793 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 3a:8000000000040002
+%*Font: jkpmn8r 9.96265 9.96265 28:d0fe40000012004d4338
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+149.42934 -11.32748 moveto
+(0) jkpmn8r 9.96265 fshow
+154.85893 -11.32748 moveto
+(:) jkpmi 9.96265 fshow
+157.29984 -11.32748 moveto
+(156422) jkpmn8r 9.96265 fshow
+242.73433 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+248.97093 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.5283 -37.60394 moveto
+(g) jkpmi 9.96265 fshow
+33.0077 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+35.9136 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.3109 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.5911 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+newpath 82.06706 -15.94019 moveto
+82.06706 -42.6849 lineto stroke
+newpath 84.05959 -15.94019 moveto
+84.05959 -42.6849 lineto stroke
+122.48405 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+166.93869 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 169.65349 -15.94019 moveto
+169.65349 -42.6849 lineto stroke
+206.16513 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.45946 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.45946 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.45946 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.45946 moveto
+(de) jkpmn8r 9.96265 fshow
+34.94391 -71.31996 moveto
+(g) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+newpath 82.06706 -42.6849 moveto
+82.06706 -87.5167 lineto stroke
+newpath 84.05959 -42.6849 moveto
+84.05959 -87.5167 lineto stroke
+85.05585 -54.74966 moveto
+(\000) jkpsy 9.96265 fshow
+91.14305 -54.74966 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 98.57234 -54.17224 moveto
+153.66306 -73.18784 lineto stroke
+newpath 149.67035 -73.42905 moveto
+153.66306 -73.18784 lineto
+150.66928 -70.53506 lineto
+ closepath
+gsave fill grestore stroke
+146.38573 -81.98743 moveto
+(\000) jkpsy 9.96265 fshow
+152.47293 -81.98743 moveto
+(1) jkpmn8r 9.96265 fshow
+157.90253 -81.98743 moveto
+(:) jkpmi 9.96265 fshow
+160.34343 -81.98743 moveto
+(145392) jkpmn8r 9.96265 fshow
+newpath 186.03566 -73.18793 moveto
+240.73398 -54.7595 lineto stroke
+newpath 237.72046 -57.39021 moveto
+240.73398 -54.7595 lineto
+236.74292 -54.48875 lineto
+ closepath
+gsave fill grestore stroke
+242.73433 -53.95761 moveto
+(+) jkpmn8r 9.96265 fshow
+248.97093 -53.95761 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+263.09793 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+263.09793 -42.6849 lineto stroke
+newpath 0 0 moveto
+263.09793 0 lineto stroke
+newpath 0 -87.5167 moveto
+263.09793 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 263.09793 0 moveto
+263.09793 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.2 b/macros/latex/contrib/tablor/Figures/tablor_Tab.2
new file mode 100644
index 0000000000..97642f1059
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.2
@@ -0,0 +1,87 @@
+%!PS
+%%BoundingBox: -1 -88 147 1
+%%HiResBoundingBox: -0.25 -87.7667 146.2521 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 28:c0a800000012004d4338
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 1 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+135.5912 -11.22539 moveto
+(2) jkpmn8r 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+80.34853 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -15.94019 moveto
+83.06332 -42.6849 lineto stroke
+106.8103 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+80.34853 -81.53163 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77788 -76.02748 moveto
+133.59135 -54.17416 lineto stroke
+newpath 130.91467 -57.1471 moveto
+133.59135 -54.17416 lineto
+129.59647 -54.38358 lineto
+ closepath
+gsave fill grestore stroke
+135.5912 -55.28265 moveto
+(4) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+146.0021 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+146.0021 -42.6849 lineto stroke
+newpath 0 0 moveto
+146.0021 0 lineto stroke
+newpath 0 -87.5167 moveto
+146.0021 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 146.0021 0 moveto
+146.0021 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.20 b/macros/latex/contrib/tablor/Figures/tablor_Tab.20
new file mode 100644
index 0000000000..70b50bb8ec
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.20
@@ -0,0 +1,102 @@
+%!PS
+%%BoundingBox: -1 -88 222 1
+%%HiResBoundingBox: -0.25 -87.7667 221.2508 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 67:8004
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -10.8867 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+145.39452 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+200.63719 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+206.8738 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2456 -37.60394 moveto
+(g) jkpmi 9.96265 fshow
+33.725 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.6309 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0282 -37.60394 moveto
+(t) jkpmi 9.96265 fshow
+43.8737 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+114.1628 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 147.11305 -15.94019 moveto
+147.11305 -42.6849 lineto stroke
+newpath 149.10558 -15.94019 moveto
+149.10558 -42.6849 lineto stroke
+174.34447 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.45946 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.45946 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.45946 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.45946 moveto
+(de) jkpmn8r 9.96265 fshow
+34.94391 -71.31996 moveto
+(g) jkpmi 9.96265 fshow
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+85.25018 -54.74966 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 92.67935 -53.62741 moveto
+143.39485 -76.57414 lineto stroke
+newpath 139.3972 -76.44539 moveto
+143.39485 -76.57414 lineto
+140.65916 -73.6563 lineto
+ closepath
+gsave fill grestore stroke
+145.39452 -81.96252 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 152.82405 -76.57666 moveto
+203.61351 -53.62498 lineto stroke
+newpath 200.87654 -56.5415 moveto
+203.61351 -53.62498 lineto
+199.61589 -53.75186 lineto
+ closepath
+gsave fill grestore stroke
+205.61354 -54.74966 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+221.0008 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+221.0008 -42.6849 lineto stroke
+newpath 0 0 moveto
+221.0008 0 lineto stroke
+newpath 0 -87.5167 moveto
+221.0008 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 221.0008 0 moveto
+221.0008 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.21 b/macros/latex/contrib/tablor/Figures/tablor_Tab.21
new file mode 100644
index 0000000000..060f24ce34
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.21
@@ -0,0 +1,362 @@
+%!PS
+%%BoundingBox: -1 -161 418 1
+%%HiResBoundingBox: -0.25 -160.87341 417.91089 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 74:8c
+%*Font: jkpmn8r 9.96265 9.96265 28:c0f800000012005d4338
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000080000000000000008
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpmn8r 7.57156 9.96265 28:c0308
+%*Font: jkpsy 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -11.62686 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+80.34853 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+156.15616 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 156.15616 -8.23724 moveto
+161.27457 -8.23724 lineto stroke
+156.65216 -14.16505 moveto
+(8) jkpmn8r 7.57156 fshow
+243.31445 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 243.31445 -8.23724 moveto
+248.43286 -8.23724 lineto stroke
+243.81046 -14.16505 moveto
+(3) jkpmn8r 7.57156 fshow
+328.01 -7.50307 moveto
+(3) jkpmn8r 7.57156 fshow
+332.1365 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 328.01 -8.93765 moveto
+337.2549 -8.93765 lineto stroke
+330.5692 -14.86546 moveto
+(8) jkpmn8r 7.57156 fshow
+406.36568 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 406.36568 -8.23724 moveto
+411.48409 -8.23724 lineto stroke
+406.86168 -14.16505 moveto
+(2) jkpmn8r 7.57156 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+28.3452 -39.08426 moveto
+(x) jkpmi 9.96265 fshow
+33.6254 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.5313 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+39.9285 -39.08426 moveto
+(t) jkpmi 9.96265 fshow
+43.77411 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.09552 lineto stroke
+80.34853 -34.0133 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -17.4205 moveto
+83.06332 -44.09552 lineto stroke
+117.01498 -33.24866 moveto
+(\000) cmsy10 9.96265 fshow
+135.5912 -33.2487 moveto
+(\000) jkpsy 9.96265 fshow
+141.6784 -33.2487 moveto
+(3) jkpmn8r 9.96265 fshow
+148.2149 -33.2487 moveto
+(sin) jkpmn8r 9.96265 fshow
+162.3331 -23.7169 moveto
+(\020) jkpex 9.96265 fshow
+167.4638 -29.32341 moveto
+(3) jkpmn8r 7.57156 fshow
+171.5903 -29.32341 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 167.4638 -30.758 moveto
+176.7087 -30.758 lineto stroke
+170.023 -36.6858 moveto
+(8) jkpmn8r 7.57156 fshow
+177.9042 -23.7169 moveto
+(\021) jkpex 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 158.71536 -17.4205 moveto
+158.71536 -44.09552 lineto stroke
+198.42015 -33.24866 moveto
+(\000) cmsy10 9.96265 fshow
+243.15886 -34.0133 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 245.87366 -17.4205 moveto
+245.87366 -44.09552 lineto stroke
+285.3787 -33.24866 moveto
+(+) cmr10 9.96265 fshow
+314.61514 -33.2487 moveto
+(3) jkpmn8r 9.96265 fshow
+321.15175 -33.2487 moveto
+(sin) jkpmn8r 9.96265 fshow
+335.26984 -23.7169 moveto
+(\020) jkpex 9.96265 fshow
+340.40054 -29.32341 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 340.40054 -30.758 moveto
+345.51894 -30.758 lineto stroke
+340.89655 -36.6858 moveto
+(8) jkpmn8r 7.57156 fshow
+346.71445 -23.7169 moveto
+(\021) jkpex 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 332.63245 -17.4205 moveto
+332.63245 -44.09552 lineto stroke
+366.90431 -33.24866 moveto
+(+) cmr10 9.96265 fshow
+406.21008 -34.0133 moveto
+(3) jkpmn8r 9.96265 fshow
+newpath 408.92488 -17.4205 moveto
+408.92488 -44.09552 lineto stroke
+8.7173 -66.14282 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -66.14282 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -66.14282 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -66.14282 moveto
+(de) jkpmn8r 9.96265 fshow
+35.0435 -74.00333 moveto
+(x) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -44.09552 moveto
+75.36722 -88.9273 lineto stroke
+80.34853 -54.97472 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77774 -52.64122 moveto
+139.46017 -62.74649 lineto stroke
+newpath 135.53958 -63.53966 moveto
+139.46017 -62.74649 lineto
+136.12708 -60.53502 lineto
+ closepath
+gsave fill grestore stroke
+141.45976 -69.0021 moveto
+(cos) jkpmn8r 9.96265 fshow
+156.46457 -59.4703 moveto
+(\020) jkpex 9.96265 fshow
+161.59526 -65.07681 moveto
+(3) jkpmn8r 7.57156 fshow
+165.72186 -65.07681 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 161.59526 -66.5114 moveto
+170.84026 -66.5114 lineto stroke
+164.15446 -72.43921 moveto
+(8) jkpmn8r 7.57156 fshow
+172.03577 -59.4703 moveto
+(\021) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 177.97142 -69.77943 moveto
+238.1153 -79.9867 lineto stroke
+newpath 234.21593 -80.87752 moveto
+238.1153 -79.9867 lineto
+234.72816 -77.85927 lineto
+ closepath
+gsave fill grestore stroke
+240.11525 -84.5587 moveto
+(\000) jkpsy 9.96265 fshow
+246.20245 -84.5587 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 253.63266 -79.98051 moveto
+307.90764 -70.72687 lineto stroke
+newpath 304.52217 -72.85687 moveto
+307.90764 -70.72687 lineto
+304.00761 -69.83905 lineto
+ closepath
+gsave fill grestore stroke
+309.90779 -69.0021 moveto
+(\000) jkpsy 9.96265 fshow
+317.1019 -59.4703 moveto
+(\020) jkpex 9.96265 fshow
+321.0371 -69.0021 moveto
+(cos) jkpmn8r 9.96265 fshow
+336.04189 -59.4703 moveto
+(\020) jkpex 9.96265 fshow
+341.17268 -65.07681 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 341.17268 -66.5114 moveto
+346.29109 -66.5114 lineto stroke
+341.6686 -72.43921 moveto
+(8) jkpmn8r 7.57156 fshow
+347.48659 -59.4703 moveto
+(\021\021) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 357.3574 -61.71762 moveto
+404.21005 -52.63358 lineto stroke
+newpath 400.87337 -54.83984 moveto
+404.21005 -52.63358 lineto
+400.2906 -51.83417 lineto
+ closepath
+gsave fill grestore stroke
+406.21008 -54.97472 moveto
+(0) jkpmn8r 9.96265 fshow
+19.0286 -98.58617 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -98.58617 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2606 -110.59106 moveto
+(y) jkpmi 9.96265 fshow
+33.7101 -106.47658 moveto
+(0) jkpsy 7.57156 fshow
+36.616 -110.59106 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0132 -110.59106 moveto
+(t) jkpmi 9.96265 fshow
+43.8588 -110.59106 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 75.36722 -88.9273 moveto
+75.36722 -115.79163 lineto stroke
+80.34853 -105.71686 moveto
+(4) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -88.9273 moveto
+83.06332 -115.79163 lineto stroke
+117.01498 -104.85011 moveto
+(+) cmr10 9.96265 fshow
+156.00056 -105.61476 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 158.71536 -88.9273 moveto
+158.71536 -115.79163 lineto stroke
+198.42015 -104.85011 moveto
+(\000) cmsy10 9.96265 fshow
+240.11525 -105.61476 moveto
+(\000) jkpsy 9.96265 fshow
+246.20245 -105.61476 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 245.87366 -88.9273 moveto
+245.87366 -115.79163 lineto stroke
+285.3787 -104.85011 moveto
+(\000) cmsy10 9.96265 fshow
+329.91765 -105.61476 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 332.63245 -88.9273 moveto
+332.63245 -115.79163 lineto stroke
+366.90431 -104.85011 moveto
+(+) cmr10 9.96265 fshow
+406.21008 -105.71686 moveto
+(4) jkpmn8r 9.96265 fshow
+newpath 408.92488 -88.9273 moveto
+408.92488 -115.79163 lineto stroke
+8.7173 -136.50642 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -136.50642 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -136.50642 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -136.50642 moveto
+(de) jkpmn8r 9.96265 fshow
+34.9588 -144.36693 moveto
+(y) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -115.79163 moveto
+75.36722 -160.62341 lineto stroke
+80.34853 -155.0095 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77774 -150.06584 moveto
+154.00035 -126.34943 lineto stroke
+newpath 151.03714 -129.03674 moveto
+154.00035 -126.34943 lineto
+150.00482 -126.15427 lineto
+ closepath
+gsave fill grestore stroke
+156.00056 -127.91612 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 163.42996 -125.39362 moveto
+229.65312 -135.68643 lineto stroke
+newpath 225.76591 -136.63158 moveto
+229.65312 -135.68643 lineto
+226.23616 -133.606 lineto
+ closepath
+gsave fill grestore stroke
+232.8481 -136.92398 moveto
+(\() jkpmn8r 7.57156 fshow
+235.43001 -136.92398 moveto
+(\000) jkpsy 7.57156 fshow
+240.0563 -137.46198 moveto
+(\() jkpmn8r 9.96265 fshow
+243.4535 -130.45029 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 249.0565 -130.26099 moveto
+253.183 -130.26099 lineto stroke
+249.0565 -136.92398 moveto
+(3) jkpmn8r 7.57156 fshow
+253.183 -137.46198 moveto
+(\)) jkpmn8r 9.96265 fshow
+256.43091 -136.92398 moveto
+(\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 232.8481 -140.72968 moveto
+258.8992 -140.72968 lineto stroke
+243.81041 -146.65749 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 262.0946 -140.74028 moveto
+324.87431 -150.54283 lineto stroke
+newpath 320.98656 -151.48523 moveto
+324.87431 -150.54283 lineto
+321.45891 -148.46008 lineto
+ closepath
+gsave fill grestore stroke
+326.87404 -155.0095 moveto
+(\000) jkpsy 9.96265 fshow
+332.96124 -155.0095 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 340.39136 -148.99884 moveto
+404.20964 -126.33533 lineto stroke
+newpath 401.23933 -129.01463 moveto
+404.20964 -126.33533 lineto
+400.21477 -126.1295 lineto
+ closepath
+gsave fill grestore stroke
+406.21008 -127.91612 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -17.4205 moveto
+417.66089 -17.4205 lineto stroke
+newpath 0 -44.09552 moveto
+417.66089 -44.09552 lineto stroke
+newpath 0 -88.9273 moveto
+417.66089 -88.9273 lineto stroke
+newpath 0 -115.79163 moveto
+417.66089 -115.79163 lineto stroke
+newpath 0 0 moveto
+417.66089 0 lineto stroke
+newpath 0 -160.62341 moveto
+417.66089 -160.62341 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -160.62341 lineto stroke
+newpath 417.66089 0 moveto
+417.66089 -160.62341 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.22 b/macros/latex/contrib/tablor/Figures/tablor_Tab.22
new file mode 100644
index 0000000000..74791c2995
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.22
@@ -0,0 +1,341 @@
+%!PS
+%%BoundingBox: -1 -160 456 1
+%%HiResBoundingBox: -0.25 -159.3931 455.45958 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 74:8c
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0e800000012004d4338
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 00:8000000000008
+%*Font: jkpmn8r 7.57156 9.96265 31:f58
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -10.8867 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.42322 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+147.42064 -11.32748 moveto
+(\000) jkpsy 9.96265 fshow
+153.50784 -11.32748 moveto
+(4) jkpmn8r 9.96265 fshow
+222.24368 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+228.33089 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+295.18999 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+364.94328 -11.22539 moveto
+(2) jkpmn8r 9.96265 fshow
+434.84598 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+441.08258 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+28.3452 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+33.6254 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.5313 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.9285 -37.60394 moveto
+(t) jkpmi 9.96265 fshow
+43.77411 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6152 lineto stroke
+116.735 -31.76834 moveto
+(\000) cmsy10 9.96265 fshow
+150.46425 -32.53299 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 153.17905 -15.94019 moveto
+153.17905 -42.6152 lineto stroke
+186.71622 -31.76834 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 227.00583 -15.94019 moveto
+227.00583 -42.6152 lineto stroke
+newpath 228.99835 -15.94019 moveto
+228.99835 -42.6152 lineto stroke
+259.07909 -31.76834 moveto
+(+) cmr10 9.96265 fshow
+295.18999 -32.53299 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 297.90479 -15.94019 moveto
+297.90479 -42.6152 lineto stroke
+328.90707 -31.76834 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 366.66182 -15.94019 moveto
+366.66182 -42.6152 lineto stroke
+newpath 368.65434 -15.94019 moveto
+368.65434 -42.6152 lineto stroke
+401.22325 -31.76834 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -64.6625 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.6625 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.6625 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.6625 moveto
+(de) jkpmn8r 9.96265 fshow
+35.0435 -72.52301 moveto
+(x) jkpmi 9.96265 fshow
+newpath 75.36722 -42.6152 moveto
+75.36722 -87.44699 lineto stroke
+85.32487 -53.40721 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 92.75496 -52.30606 moveto
+147.91998 -77.5077 lineto stroke
+newpath 143.92287 -77.36447 moveto
+147.91998 -77.5077 lineto
+145.19493 -74.57999 lineto
+ closepath
+gsave fill grestore stroke
+151.11574 -78.64444 moveto
+(8) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 151.11574 -80.07903 moveto
+155.24225 -80.07903 lineto stroke
+151.11574 -86.00684 moveto
+(9) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 158.43802 -77.50775 moveto
+208.6277 -54.57904 lineto stroke
+newpath 205.9023 -57.5071 moveto
+208.6277 -54.57904 lineto
+204.63008 -54.72227 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 227.00583 -42.6152 moveto
+227.00583 -87.44699 lineto stroke
+newpath 228.99835 -42.6152 moveto
+228.99835 -87.44699 lineto stroke
+210.62727 -52.61516 moveto
+(+) jkpmn8r 9.96265 fshow
+216.86388 -52.61516 moveto
+(1) jkpsy 9.96265 fshow
+229.99461 -82.02733 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 245.9528 -75.79315 moveto
+293.18967 -52.4791 lineto stroke
+newpath 290.55354 -55.48706 moveto
+293.18967 -52.4791 lineto
+289.19868 -52.74197 lineto
+ closepath
+gsave fill grestore stroke
+295.18999 -53.40721 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 302.61916 -52.4845 moveto
+349.7282 -75.79324 lineto stroke
+newpath 345.7367 -75.52638 moveto
+349.7282 -75.79324 lineto
+347.09454 -72.78209 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 366.66182 -42.6152 moveto
+366.66182 -87.44699 lineto stroke
+newpath 368.65434 -42.6152 moveto
+368.65434 -87.44699 lineto stroke
+350.43265 -82.02733 moveto
+(\0001) jkpsy 9.96265 fshow
+369.6506 -52.61516 moveto
+(+) jkpmn8r 9.96265 fshow
+375.8872 -52.61516 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 387.03311 -54.57552 moveto
+437.8223 -77.7582 lineto stroke
+newpath 433.82518 -77.61624 moveto
+437.8223 -77.7582 lineto
+435.09633 -74.83139 lineto
+ closepath
+gsave fill grestore stroke
+439.82233 -83.16557 moveto
+(1) jkpmn8r 9.96265 fshow
+19.0286 -97.10585 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -97.10585 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2606 -109.11075 moveto
+(y) jkpmi 9.96265 fshow
+33.7101 -104.99626 moveto
+(0) jkpsy 7.57156 fshow
+36.616 -109.11075 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0132 -109.11075 moveto
+(t) jkpmi 9.96265 fshow
+43.8588 -109.11075 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 75.36722 -87.44699 moveto
+75.36722 -114.31131 lineto stroke
+116.735 -103.3698 moveto
+(\000) cmsy10 9.96265 fshow
+146.7394 -99.6909 moveto
+(\000) jkpsy 7.57156 fshow
+151.36569 -99.6909 moveto
+(64) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 146.7394 -101.12549 moveto
+159.6187 -101.12549 lineto stroke
+151.1158 -107.0533 moveto
+(9) jkpmn8r 7.57156 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 153.17905 -87.44699 moveto
+153.17905 -114.31131 lineto stroke
+186.71622 -103.3698 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 227.00583 -87.44699 moveto
+227.00583 -114.31131 lineto stroke
+newpath 228.99835 -87.44699 moveto
+228.99835 -114.31131 lineto stroke
+259.07909 -103.3698 moveto
+(\000) cmsy10 9.96265 fshow
+295.18999 -104.13445 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 297.90479 -87.44699 moveto
+297.90479 -114.31131 lineto stroke
+328.90707 -103.3698 moveto
+(+) cmr10 9.96265 fshow
+363.53152 -99.6909 moveto
+(44) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 363.53152 -101.12549 moveto
+371.78462 -101.12549 lineto stroke
+365.59483 -107.0533 moveto
+(9) jkpmn8r 7.57156 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 367.65808 -87.44699 moveto
+367.65808 -114.31131 lineto stroke
+401.22325 -103.3698 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -135.02611 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -135.02611 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -135.02611 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -135.02611 moveto
+(de) jkpmn8r 9.96265 fshow
+34.9588 -142.88661 moveto
+(y) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -114.31131 moveto
+75.36722 -159.1431 lineto stroke
+80.34853 -125.64375 moveto
+(+) jkpmn8r 9.96265 fshow
+86.58513 -125.64375 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 97.73067 -125.1959 moveto
+145.85712 -135.2045 lineto stroke
+newpath 141.92726 -135.95078 moveto
+145.85712 -135.2045 lineto
+142.55061 -132.95331 lineto
+ closepath
+gsave fill grestore stroke
+149.05249 -135.52002 moveto
+(32) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 149.05249 -136.9546 moveto
+157.30559 -136.9546 lineto stroke
+151.1158 -142.88242 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 160.50089 -138.24817 moveto
+208.77678 -148.27635 lineto stroke
+newpath 204.84691 -149.02357 moveto
+208.77678 -148.27635 lineto
+205.46962 -146.02583 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 227.00583 -114.31131 moveto
+227.00583 -159.1431 lineto stroke
+newpath 228.99835 -114.31131 moveto
+228.99835 -159.1431 lineto stroke
+210.77666 -152.39095 moveto
+(\0001) jkpsy 9.96265 fshow
+229.99461 -125.64375 moveto
+(+) jkpmn8r 9.96265 fshow
+236.23122 -125.64375 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 247.37708 -127.54076 moveto
+293.19019 -148.15271 lineto stroke
+newpath 289.19217 -148.03244 moveto
+293.19019 -148.15271 lineto
+290.44827 -145.2406 lineto
+ closepath
+gsave fill grestore stroke
+295.18999 -153.52919 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 302.61984 -149.35818 moveto
+360.3361 -138.1492 lineto stroke
+newpath 356.99994 -140.35658 moveto
+360.3361 -138.1492 lineto
+356.41623 -137.35097 lineto
+ closepath
+gsave fill grestore stroke
+363.53152 -135.52002 moveto
+(16) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 363.53152 -136.9546 moveto
+371.78462 -136.9546 lineto stroke
+365.59483 -142.88242 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 374.97964 -135.40262 moveto
+432.84613 -124.93375 lineto stroke
+newpath 429.48201 -127.09807 moveto
+432.84613 -124.93375 lineto
+428.93694 -124.08528 lineto
+ closepath
+gsave fill grestore stroke
+434.84598 -125.64375 moveto
+(+) jkpmn8r 9.96265 fshow
+441.08258 -125.64375 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+455.20958 -15.94019 lineto stroke
+newpath 0 -42.6152 moveto
+455.20958 -42.6152 lineto stroke
+newpath 0 -87.44699 moveto
+455.20958 -87.44699 lineto stroke
+newpath 0 -114.31131 moveto
+455.20958 -114.31131 lineto stroke
+newpath 0 0 moveto
+455.20958 0 lineto stroke
+newpath 0 -159.1431 moveto
+455.20958 -159.1431 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -159.1431 lineto stroke
+newpath 455.20958 0 moveto
+455.20958 -159.1431 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.23 b/macros/latex/contrib/tablor/Figures/tablor_Tab.23
new file mode 100644
index 0000000000..5b211d96c7
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.23
@@ -0,0 +1,155 @@
+%!PS
+%%BoundingBox: -1 -90 286 1
+%%HiResBoundingBox: -0.25 -89.69534 285.99649 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 7.57156 9.96265 32:c
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0b400000010000d42
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+39.251 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 83.78223 0 moveto
+83.78223 -17.4205 lineto stroke
+88.76353 -10.8273 moveto
+(\0001) jkpsy 9.96265 fshow
+155.00502 -7.50307 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 155.00502 -8.93765 moveto
+159.13153 -8.93765 lineto stroke
+155.00502 -14.86546 moveto
+(2) jkpmn8r 7.57156 fshow
+210.14021 -11.96555 moveto
+(5) jkpmn8r 9.96265 fshow
+265.38289 -11.1735 moveto
+(+) jkpmn8r 9.96265 fshow
+271.61949 -11.1735 moveto
+(1) jkpsy 9.96265 fshow
+23.2361 -27.07927 moveto
+(Signe) jkpmn8r 9.96265 fshow
+49.906 -27.07927 moveto
+(de) jkpmn8r 9.96265 fshow
+25.9991 -37.77916 moveto
+(\000) jkpsy 9.96265 fshow
+32.08621 -37.77916 moveto
+(2) jkpmn8r 9.96265 fshow
+37.5159 -37.77916 moveto
+(x) jkpmi 9.96265 fshow
+44.45651 -37.77916 moveto
+(+) jkpmn8r 9.96265 fshow
+52.3535 -37.77916 moveto
+(3) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 83.78223 -17.4205 moveto
+83.78223 -40.35452 lineto stroke
+122.84981 -31.37816 moveto
+(+) cmr10 9.96265 fshow
+154.35353 -32.1428 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 157.06833 -17.4205 moveto
+157.06833 -40.35452 lineto stroke
+181.08731 -31.37816 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 212.85501 -17.4205 moveto
+212.85501 -40.35452 lineto stroke
+239.09016 -31.37816 moveto
+(\000) cmsy10 9.96265 fshow
+23.2361 -50.01329 moveto
+(Signe) jkpmn8r 9.96265 fshow
+49.906 -50.01329 moveto
+(de) jkpmn8r 9.96265 fshow
+28.71391 -60.71318 moveto
+(\000) jkpsy 9.96265 fshow
+34.8011 -60.71318 moveto
+(x) jkpmi 9.96265 fshow
+41.74161 -60.71318 moveto
+(+) jkpmn8r 9.96265 fshow
+49.6387 -60.71318 moveto
+(5) jkpmn8r 9.96265 fshow
+newpath 83.78223 -40.35452 moveto
+83.78223 -63.28854 lineto stroke
+122.84981 -54.31218 moveto
+(+) cmr10 9.96265 fshow
+newpath 157.06833 -40.35452 moveto
+157.06833 -63.28854 lineto stroke
+181.08731 -54.31218 moveto
+(+) cmr10 9.96265 fshow
+210.14021 -55.07683 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 212.85501 -40.35452 moveto
+212.85501 -63.28854 lineto stroke
+239.09016 -54.31218 moveto
+(\000) cmsy10 9.96265 fshow
+23.23611 -72.94728 moveto
+(Signe) jkpmn8r 9.96265 fshow
+49.906 -72.94728 moveto
+(de) jkpmn8r 9.96265 fshow
+6.1768 -84.43419 moveto
+(\() jkpmn8r 9.96265 fshow
+9.57411 -84.43419 moveto
+(\000) jkpsy 9.96265 fshow
+15.66121 -84.43419 moveto
+(2) jkpmn8r 9.96265 fshow
+21.09091 -84.43419 moveto
+(x) jkpmi 9.96265 fshow
+28.03151 -84.43419 moveto
+(+) jkpmn8r 9.96265 fshow
+35.92851 -84.43419 moveto
+(3\)\() jkpmn8r 9.96265 fshow
+48.0032 -84.43419 moveto
+(\000) jkpsy 9.96265 fshow
+54.0903 -84.43419 moveto
+(x) jkpmi 9.96265 fshow
+61.03091 -84.43419 moveto
+(+) jkpmn8r 9.96265 fshow
+68.9279 -84.43419 moveto
+(5\)) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 83.78223 -63.28854 moveto
+83.78223 -89.44534 lineto stroke
+122.84981 -78.85759 moveto
+(+) cmr10 9.96265 fshow
+154.35353 -79.62224 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 157.06833 -63.28854 moveto
+157.06833 -89.44534 lineto stroke
+181.08731 -78.85759 moveto
+(\000) cmsy10 9.96265 fshow
+210.14021 -79.62224 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 212.85501 -63.28854 moveto
+212.85501 -89.44534 lineto stroke
+239.09016 -78.85759 moveto
+(+) cmr10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -17.4205 moveto
+285.74649 -17.4205 lineto stroke
+newpath 0 -40.35452 moveto
+285.74649 -40.35452 lineto stroke
+newpath 0 -63.28854 moveto
+285.74649 -63.28854 lineto stroke
+newpath 0 0 moveto
+285.74649 0 lineto stroke
+newpath 0 -89.44534 moveto
+285.74649 -89.44534 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -89.44534 lineto stroke
+newpath 285.74649 0 moveto
+285.74649 -89.44534 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.24 b/macros/latex/contrib/tablor/Figures/tablor_Tab.24
new file mode 100644
index 0000000000..97b8b1b2d7
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.24
@@ -0,0 +1,332 @@
+%!PS
+%%BoundingBox: -1 -169 459 1
+%%HiResBoundingBox: -0.25 -168.90076 458.58356 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:80000000000040000000000000008
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: jkpmn8r 9.96265 9.96265 28:d0f000000090000d42
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmn8r 7.57156 9.96265 32:c
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.73221 -12.3736 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.74463 0 moveto
+54.74463 -20.2291 lineto stroke
+59.72594 -12.2316 moveto
+(\0001) jkpsy 9.96265 fshow
+124.77193 -12.60524 moveto
+(\000) jkpsy 9.96265 fshow
+131.96603 -3.07344 moveto
+(\020) jkpex 9.96265 fshow
+135.90123 -4.08714 moveto
+(p) jkpsy 9.96265 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 143.27362 -3.83813 moveto
+148.70323 -3.83813 lineto stroke
+143.27362 -12.60524 moveto
+(2) jkpmn8r 9.96265 fshow
+148.70323 -3.07344 moveto
+(\021) jkpex 9.96265 fshow
+202.45161 -13.36984 moveto
+(\000) jkpsy 9.96265 fshow
+208.53882 -13.36984 moveto
+(1) jkpmn8r 9.96265 fshow
+263.78151 -13.36984 moveto
+(1) jkpmn8r 9.96265 fshow
+319.02419 -5.66121 moveto
+(p) jkpsy 9.96265 fshow
+newpath 326.39648 -5.4122 moveto
+331.82619 -5.4122 lineto stroke
+326.39648 -14.1793 moveto
+(2) jkpmn8r 9.96265 fshow
+382.83476 -8.90736 moveto
+(3) jkpmn8r 7.57156 fshow
+newpath 382.83476 -10.34195 moveto
+386.96127 -10.34195 lineto stroke
+382.83476 -16.26976 moveto
+(2) jkpmn8r 7.57156 fshow
+437.96996 -12.57779 moveto
+(+) jkpmn8r 9.96265 fshow
+444.20656 -12.57779 moveto
+(1) jkpsy 9.96265 fshow
+8.7173 -29.88786 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -29.88786 moveto
+(de) jkpmn8r 9.96265 fshow
+11.4803 -40.58775 moveto
+(\000) jkpsy 9.96265 fshow
+17.56741 -40.58775 moveto
+(2) jkpmn8r 9.96265 fshow
+22.9971 -40.58775 moveto
+(x) jkpmi 9.96265 fshow
+29.93771 -40.58775 moveto
+(+) jkpmn8r 9.96265 fshow
+37.8347 -40.58775 moveto
+(3) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 54.74463 -20.2291 moveto
+54.74463 -43.16312 lineto stroke
+99.14946 -34.18675 moveto
+(+) cmr10 9.96265 fshow
+newpath 138.70523 -20.2291 moveto
+138.70523 -43.16312 lineto stroke
+169.58327 -34.18675 moveto
+(+) cmr10 9.96265 fshow
+newpath 208.21002 -20.2291 moveto
+208.21002 -43.16312 lineto stroke
+233.4788 -34.18675 moveto
+(+) cmr10 9.96265 fshow
+newpath 266.4963 -20.2291 moveto
+266.4963 -43.16312 lineto stroke
+292.0864 -34.18675 moveto
+(+) cmr10 9.96265 fshow
+newpath 325.42519 -20.2291 moveto
+325.42519 -43.16312 lineto stroke
+351.28728 -34.18675 moveto
+(+) cmr10 9.96265 fshow
+382.18327 -34.9514 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 384.89807 -20.2291 moveto
+384.89807 -43.16312 lineto stroke
+411.40523 -34.18675 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -52.82187 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -52.82187 moveto
+(de) jkpmn8r 9.96265 fshow
+15.00111 -66.05338 moveto
+(x) jkpmi 9.96265 fshow
+20.2812 -61.93887 moveto
+(2) jkpmn8r 7.57156 fshow
+26.56631 -66.05338 moveto
+(\000) jkpsy 9.96265 fshow
+34.3139 -66.05338 moveto
+(1) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.74463 -43.16312 moveto
+54.74463 -68.62872 lineto stroke
+99.14946 -58.38657 moveto
+(+) cmr10 9.96265 fshow
+newpath 138.70523 -43.16312 moveto
+138.70523 -68.62872 lineto stroke
+169.58327 -58.38657 moveto
+(+) cmr10 9.96265 fshow
+205.49522 -59.15121 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 208.21002 -43.16312 moveto
+208.21002 -68.62872 lineto stroke
+233.4788 -58.38657 moveto
+(\000) cmsy10 9.96265 fshow
+263.78151 -59.15121 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 266.4963 -43.16312 moveto
+266.4963 -68.62872 lineto stroke
+292.0864 -58.38657 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 325.42519 -43.16312 moveto
+325.42519 -68.62872 lineto stroke
+351.28728 -58.38657 moveto
+(+) cmr10 9.96265 fshow
+newpath 384.89807 -43.16312 moveto
+384.89807 -68.62872 lineto stroke
+411.40523 -58.38657 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -78.28748 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -78.28748 moveto
+(de) jkpmn8r 9.96265 fshow
+14.92632 -91.51898 moveto
+(x) jkpmi 9.96265 fshow
+20.20651 -87.40448 moveto
+(2) jkpmn8r 7.57156 fshow
+26.49161 -91.51898 moveto
+(+) jkpmn8r 9.96265 fshow
+34.38861 -91.51898 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 54.74463 -68.62872 moveto
+54.74463 -94.09433 lineto stroke
+99.14946 -83.85217 moveto
+(+) cmr10 9.96265 fshow
+newpath 138.70523 -68.62872 moveto
+138.70523 -94.09433 lineto stroke
+169.58327 -83.85217 moveto
+(+) cmr10 9.96265 fshow
+newpath 208.21002 -68.62872 moveto
+208.21002 -94.09433 lineto stroke
+233.4788 -83.85217 moveto
+(+) cmr10 9.96265 fshow
+newpath 266.4963 -68.62872 moveto
+266.4963 -94.09433 lineto stroke
+292.0864 -83.85217 moveto
+(+) cmr10 9.96265 fshow
+newpath 325.42519 -68.62872 moveto
+325.42519 -94.09433 lineto stroke
+351.28728 -83.85217 moveto
+(+) cmr10 9.96265 fshow
+newpath 384.89807 -68.62872 moveto
+384.89807 -94.09433 lineto stroke
+411.40523 -83.85217 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -103.7531 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -103.7531 moveto
+(de) jkpmn8r 9.96265 fshow
+17.31342 -114.45299 moveto
+(x) jkpmi 9.96265 fshow
+24.25401 -114.45299 moveto
+(\000) jkpsy 9.96265 fshow
+32.00151 -114.45299 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 54.74463 -94.09433 moveto
+54.74463 -117.02835 lineto stroke
+99.14946 -108.05199 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 138.70523 -94.09433 moveto
+138.70523 -117.02835 lineto stroke
+169.58327 -108.05199 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 208.21002 -94.09433 moveto
+208.21002 -117.02835 lineto stroke
+233.4788 -108.05199 moveto
+(\000) cmsy10 9.96265 fshow
+263.78151 -108.81664 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 266.4963 -94.09433 moveto
+266.4963 -117.02835 lineto stroke
+292.0864 -108.05199 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 325.42519 -94.09433 moveto
+325.42519 -117.02835 lineto stroke
+351.28728 -108.05199 moveto
+(+) cmr10 9.96265 fshow
+newpath 384.89807 -94.09433 moveto
+384.89807 -117.02835 lineto stroke
+411.40523 -108.05199 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -126.6871 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -126.6871 moveto
+(de) jkpmn8r 9.96265 fshow
+15.00111 -139.91861 moveto
+(x) jkpmi 9.96265 fshow
+20.2812 -135.80411 moveto
+(2) jkpmn8r 7.57156 fshow
+26.56631 -139.91861 moveto
+(\000) jkpsy 9.96265 fshow
+34.3139 -139.91861 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 54.74463 -117.02835 moveto
+54.74463 -142.49396 lineto stroke
+99.14946 -132.2518 moveto
+(+) cmr10 9.96265 fshow
+135.99043 -133.01645 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 138.70523 -117.02835 moveto
+138.70523 -142.49396 lineto stroke
+169.58327 -132.2518 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 208.21002 -117.02835 moveto
+208.21002 -142.49396 lineto stroke
+233.4788 -132.2518 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 266.4963 -117.02835 moveto
+266.4963 -142.49396 lineto stroke
+292.0864 -132.2518 moveto
+(\000) cmsy10 9.96265 fshow
+322.71039 -133.01645 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 325.42519 -117.02835 moveto
+325.42519 -142.49396 lineto stroke
+351.28728 -132.2518 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 384.89807 -117.02835 moveto
+384.89807 -142.49396 lineto stroke
+411.40523 -132.2518 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -152.1527 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -152.1527 moveto
+(de) jkpmn8r 9.96265 fshow
+18.4906 -163.6396 moveto
+(P\() jkpmn8r 9.96265 fshow
+27.9252 -163.6396 moveto
+(x) jkpmi 9.96265 fshow
+33.20541 -163.6396 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 54.74463 -142.49396 moveto
+54.74463 -168.65076 lineto stroke
+99.14946 -158.063 moveto
+(\000) cmsy10 9.96265 fshow
+135.99043 -158.82765 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 138.70523 -142.49396 moveto
+138.70523 -168.65076 lineto stroke
+169.58327 -158.063 moveto
+(+) cmr10 9.96265 fshow
+205.49522 -158.82765 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 208.21002 -142.49396 moveto
+208.21002 -168.65076 lineto stroke
+233.4788 -158.063 moveto
+(\000) cmsy10 9.96265 fshow
+263.78151 -158.82765 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 266.4963 -142.49396 moveto
+266.4963 -168.65076 lineto stroke
+292.0864 -158.063 moveto
+(\000) cmsy10 9.96265 fshow
+322.71039 -158.82765 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 325.42519 -142.49396 moveto
+325.42519 -168.65076 lineto stroke
+351.28728 -158.063 moveto
+(+) cmr10 9.96265 fshow
+382.18327 -158.82765 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 384.89807 -142.49396 moveto
+384.89807 -168.65076 lineto stroke
+411.40523 -158.063 moveto
+(\000) cmsy10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -20.2291 moveto
+458.33356 -20.2291 lineto stroke
+newpath 0 -43.16312 moveto
+458.33356 -43.16312 lineto stroke
+newpath 0 -68.62872 moveto
+458.33356 -68.62872 lineto stroke
+newpath 0 -94.09433 moveto
+458.33356 -94.09433 lineto stroke
+newpath 0 -117.02835 moveto
+458.33356 -117.02835 lineto stroke
+newpath 0 -142.49396 moveto
+458.33356 -142.49396 lineto stroke
+newpath 0 0 moveto
+458.33356 0 lineto stroke
+newpath 0 -168.65076 moveto
+458.33356 -168.65076 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -168.65076 lineto stroke
+newpath 458.33356 0 moveto
+458.33356 -168.65076 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.25 b/macros/latex/contrib/tablor/Figures/tablor_Tab.25
new file mode 100644
index 0000000000..cdd68ba201
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.25
@@ -0,0 +1,122 @@
+%!PS
+%%BoundingBox: -1 -89 210 1
+%%HiResBoundingBox: -0.25 -88.28485 209.33554 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c400000010000d42
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.73221 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.74463 0 moveto
+54.74463 -15.94019 lineto stroke
+59.72594 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+65.81314 -11.22539 moveto
+(15) jkpmn8r 9.96265 fshow
+126.48543 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+132.57263 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+193.24492 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+8.7173 -25.59895 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -25.59895 moveto
+(de) jkpmn8r 9.96265 fshow
+14.5986 -36.29884 moveto
+(x) jkpmi 9.96265 fshow
+21.53922 -36.29884 moveto
+(\000) jkpsy 9.96265 fshow
+29.28671 -36.29884 moveto
+(10) jkpmn8r 9.96265 fshow
+newpath 54.74463 -15.94019 moveto
+54.74463 -38.8742 lineto stroke
+97.70453 -29.89784 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 134.95863 -15.94019 moveto
+134.95863 -38.8742 lineto stroke
+162.94225 -29.89784 moveto
+(\000) cmsy10 9.96265 fshow
+195.95978 -30.66249 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 198.67458 -15.94019 moveto
+198.67458 -38.8742 lineto stroke
+8.7173 -48.53297 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -48.53297 moveto
+(de) jkpmn8r 9.96265 fshow
+14.52391 -59.23286 moveto
+(x) jkpmi 9.96265 fshow
+21.4644 -59.23286 moveto
+(+) jkpmn8r 9.96265 fshow
+29.3614 -59.23286 moveto
+(10) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.74463 -38.8742 moveto
+54.74463 -61.80823 lineto stroke
+97.70453 -52.83186 moveto
+(\000) cmsy10 9.96265 fshow
+132.24384 -53.59651 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 134.95863 -38.8742 moveto
+134.95863 -61.80823 lineto stroke
+162.94225 -52.83186 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -71.46698 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -71.46698 moveto
+(de) jkpmn8r 9.96265 fshow
+18.3063 -82.95389 moveto
+(f) jkpmi 9.96265 fshow
+24.513 -82.95389 moveto
+(\() jkpmn8r 9.96265 fshow
+27.91031 -82.95389 moveto
+(x) jkpmi 9.96265 fshow
+33.19041 -82.95389 moveto
+(\)) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.74463 -61.80823 moveto
+54.74463 -88.03485 lineto stroke
+97.70453 -77.41219 moveto
+(+) cmr10 9.96265 fshow
+132.24384 -78.17683 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 134.95863 -61.80823 moveto
+134.95863 -88.03485 lineto stroke
+162.94225 -77.41219 moveto
+(\000) cmsy10 9.96265 fshow
+195.95978 -78.17683 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 198.67458 -61.80823 moveto
+198.67458 -88.03485 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -15.94019 moveto
+209.08554 -15.94019 lineto stroke
+newpath 0 -38.8742 moveto
+209.08554 -38.8742 lineto stroke
+newpath 0 -61.80823 moveto
+209.08554 -61.80823 lineto stroke
+newpath 0 0 moveto
+209.08554 0 lineto stroke
+newpath 0 -88.03485 moveto
+209.08554 -88.03485 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -88.03485 lineto stroke
+newpath 209.08554 0 moveto
+209.08554 -88.03485 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.26 b/macros/latex/contrib/tablor/Figures/tablor_Tab.26
new file mode 100644
index 0000000000..5d30306219
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.26
@@ -0,0 +1,286 @@
+%!PS
+%%BoundingBox: -1 -139 430 1
+%%HiResBoundingBox: -0.25 -138.29916 429.86215 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0fe00000050000d42
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmn8r 7.57156 9.96265 32:f
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.73221 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.74463 0 moveto
+54.74463 -17.4205 lineto stroke
+59.72594 -10.8273 moveto
+(\0001) jkpsy 9.96265 fshow
+124.77193 -12.06764 moveto
+(\000) jkpsy 9.96265 fshow
+130.85913 -12.06764 moveto
+(4) jkpmn8r 9.96265 fshow
+187.29732 -7.50307 moveto
+(5) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 187.29732 -8.93765 moveto
+191.42383 -8.93765 lineto stroke
+187.29732 -14.86546 moveto
+(4) jkpmn8r 7.57156 fshow
+243.628 -7.50307 moveto
+(3) jkpmn8r 7.57156 fshow
+newpath 243.628 -8.93765 moveto
+247.75452 -8.93765 lineto stroke
+243.628 -14.86546 moveto
+(2) jkpmn8r 7.57156 fshow
+298.7632 -11.96555 moveto
+(2) jkpmn8r 9.96265 fshow
+354.00587 -12.06764 moveto
+(4) jkpmn8r 9.96265 fshow
+409.24855 -11.1735 moveto
+(+) jkpmn8r 9.96265 fshow
+415.48515 -11.1735 moveto
+(1) jkpsy 9.96265 fshow
+8.7173 -27.07927 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -27.07927 moveto
+(de) jkpmn8r 9.96265 fshow
+11.4803 -37.77916 moveto
+(\000) jkpsy 9.96265 fshow
+17.56741 -37.77916 moveto
+(2) jkpmn8r 9.96265 fshow
+22.9971 -37.77916 moveto
+(x) jkpmi 9.96265 fshow
+29.93771 -37.77916 moveto
+(+) jkpmn8r 9.96265 fshow
+37.8347 -37.77916 moveto
+(3) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 54.74463 -17.4205 moveto
+54.74463 -40.35452 lineto stroke
+95.06201 -31.37816 moveto
+(+) cmr10 9.96265 fshow
+newpath 130.53033 -17.4205 moveto
+130.53033 -40.35452 lineto stroke
+156.07112 -31.37816 moveto
+(+) cmr10 9.96265 fshow
+newpath 189.36063 -17.4205 moveto
+189.36063 -40.35452 lineto stroke
+213.65161 -31.37816 moveto
+(+) cmr10 9.96265 fshow
+242.97652 -32.1428 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 245.69131 -17.4205 moveto
+245.69131 -40.35452 lineto stroke
+269.7103 -31.37816 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 301.478 -17.4205 moveto
+301.478 -40.35452 lineto stroke
+325.22498 -31.37816 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 356.72067 -17.4205 moveto
+356.72067 -40.35452 lineto stroke
+382.95583 -31.37816 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -50.01328 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -50.01328 moveto
+(de) jkpmn8r 9.96265 fshow
+11.4803 -60.91737 moveto
+(\000) jkpsy 9.96265 fshow
+17.56741 -60.91737 moveto
+(4) jkpmn8r 9.96265 fshow
+22.9971 -60.91737 moveto
+(x) jkpmi 9.96265 fshow
+29.93771 -60.91737 moveto
+(+) jkpmn8r 9.96265 fshow
+37.8347 -60.91737 moveto
+(5) jkpmn8r 9.96265 fshow
+newpath 54.74463 -40.35452 moveto
+54.74463 -63.49274 lineto stroke
+95.06201 -54.41428 moveto
+(+) cmr10 9.96265 fshow
+newpath 130.53033 -40.35452 moveto
+130.53033 -63.49274 lineto stroke
+156.07112 -54.41428 moveto
+(+) cmr10 9.96265 fshow
+186.64583 -55.17892 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 189.36063 -40.35452 moveto
+189.36063 -63.49274 lineto stroke
+213.65161 -54.41428 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 245.69131 -40.35452 moveto
+245.69131 -63.49274 lineto stroke
+269.7103 -54.41428 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 301.478 -40.35452 moveto
+301.478 -63.49274 lineto stroke
+325.22498 -54.41428 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 356.72067 -40.35452 moveto
+356.72067 -63.49274 lineto stroke
+382.95583 -54.41428 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -73.15149 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -73.15149 moveto
+(de) jkpmn8r 9.96265 fshow
+12.28621 -86.383 moveto
+(x) jkpmi 9.96265 fshow
+17.5664 -82.2685 moveto
+(2) jkpmn8r 7.57156 fshow
+23.8515 -86.383 moveto
+(\000) jkpsy 9.96265 fshow
+31.5991 -86.383 moveto
+(16) jkpmn8r 9.96265 fshow
+newpath 54.74463 -63.49274 moveto
+54.74463 -88.95834 lineto stroke
+95.06201 -78.71619 moveto
+(+) cmr10 9.96265 fshow
+127.81554 -79.48083 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 130.53033 -63.49274 moveto
+130.53033 -88.95834 lineto stroke
+156.07112 -78.71619 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 189.36063 -63.49274 moveto
+189.36063 -88.95834 lineto stroke
+213.65161 -78.71619 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 245.69131 -63.49274 moveto
+245.69131 -88.95834 lineto stroke
+269.7103 -78.71619 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 301.478 -63.49274 moveto
+301.478 -88.95834 lineto stroke
+325.22498 -78.71619 moveto
+(\000) cmsy10 9.96265 fshow
+354.00587 -79.48083 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 356.72067 -63.49274 moveto
+356.72067 -88.95834 lineto stroke
+382.95583 -78.71619 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -98.61711 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -98.61711 moveto
+(de) jkpmn8r 9.96265 fshow
+17.31342 -109.317 moveto
+(x) jkpmi 9.96265 fshow
+24.25401 -109.317 moveto
+(\000) jkpsy 9.96265 fshow
+32.00151 -109.317 moveto
+(2) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.74463 -88.95834 moveto
+54.74463 -111.89236 lineto stroke
+95.06201 -102.916 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 130.53033 -88.95834 moveto
+130.53033 -111.89236 lineto stroke
+156.07112 -102.916 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 189.36063 -88.95834 moveto
+189.36063 -111.89236 lineto stroke
+213.65161 -102.916 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 245.69131 -88.95834 moveto
+245.69131 -111.89236 lineto stroke
+269.7103 -102.916 moveto
+(\000) cmsy10 9.96265 fshow
+298.7632 -103.68065 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 301.478 -88.95834 moveto
+301.478 -111.89236 lineto stroke
+325.22498 -102.916 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 356.72067 -88.95834 moveto
+356.72067 -111.89236 lineto stroke
+382.95583 -102.916 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -121.5511 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -121.5511 moveto
+(de) jkpmn8r 9.96265 fshow
+17.4246 -133.03801 moveto
+(Q) jkpmn8r 9.96265 fshow
+25.59401 -133.03801 moveto
+(\() jkpmn8r 9.96265 fshow
+28.99121 -133.03801 moveto
+(x) jkpmi 9.96265 fshow
+34.27141 -133.03801 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 54.74463 -111.89236 moveto
+54.74463 -138.04916 lineto stroke
+95.06201 -127.46141 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 129.53407 -111.89236 moveto
+129.53407 -138.04916 lineto stroke
+newpath 131.5266 -111.89236 moveto
+131.5266 -138.04916 lineto stroke
+156.07112 -127.46141 moveto
+(+) cmr10 9.96265 fshow
+186.64583 -128.22606 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 189.36063 -111.89236 moveto
+189.36063 -138.04916 lineto stroke
+213.65161 -127.46141 moveto
+(\000) cmsy10 9.96265 fshow
+242.97652 -128.22606 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 245.69131 -111.89236 moveto
+245.69131 -138.04916 lineto stroke
+269.7103 -127.46141 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 300.48174 -111.89236 moveto
+300.48174 -138.04916 lineto stroke
+newpath 302.47426 -111.89236 moveto
+302.47426 -138.04916 lineto stroke
+325.22498 -127.46141 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 355.72441 -111.89236 moveto
+355.72441 -138.04916 lineto stroke
+newpath 357.71693 -111.89236 moveto
+357.71693 -138.04916 lineto stroke
+382.95583 -127.46141 moveto
+(+) cmr10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 0 -17.4205 moveto
+429.61215 -17.4205 lineto stroke
+newpath 0 -40.35452 moveto
+429.61215 -40.35452 lineto stroke
+newpath 0 -63.49274 moveto
+429.61215 -63.49274 lineto stroke
+newpath 0 -88.95834 moveto
+429.61215 -88.95834 lineto stroke
+newpath 0 -111.89236 moveto
+429.61215 -111.89236 lineto stroke
+newpath 0 0 moveto
+429.61215 0 lineto stroke
+newpath 0 -138.04916 moveto
+429.61215 -138.04916 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -138.04916 lineto stroke
+newpath 429.61215 0 moveto
+429.61215 -138.04916 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.27 b/macros/latex/contrib/tablor/Figures/tablor_Tab.27
new file mode 100644
index 0000000000..54c525f050
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.27
@@ -0,0 +1,200 @@
+%!PS
+%%BoundingBox: -1 -135 260 1
+%%HiResBoundingBox: -0.25 -134.08307 259.14862 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0d400000050000d42
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.73221 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.74463 0 moveto
+54.74463 -15.94019 lineto stroke
+59.72594 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+65.81314 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+126.48543 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+132.57263 -11.22539 moveto
+(3) jkpmn8r 9.96265 fshow
+187.81532 -11.22539 moveto
+(5) jkpmn8r 9.96265 fshow
+243.058 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+8.7173 -25.59895 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -25.59895 moveto
+(de) jkpmn8r 9.96265 fshow
+14.5986 -36.29884 moveto
+(x) jkpmi 9.96265 fshow
+21.53922 -36.29884 moveto
+(\000) jkpsy 9.96265 fshow
+29.28671 -36.29884 moveto
+(10) jkpmn8r 9.96265 fshow
+newpath 54.74463 -15.94019 moveto
+54.74463 -38.8742 lineto stroke
+96.34714 -29.89784 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 132.24384 -15.94019 moveto
+132.24384 -38.8742 lineto stroke
+157.51262 -29.89784 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 190.53012 -15.94019 moveto
+190.53012 -38.8742 lineto stroke
+215.63454 -29.89784 moveto
+(\000) cmsy10 9.96265 fshow
+245.77286 -30.66249 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 248.48766 -15.94019 moveto
+248.48766 -38.8742 lineto stroke
+8.7173 -48.53297 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -48.53297 moveto
+(de) jkpmn8r 9.96265 fshow
+17.31342 -59.23286 moveto
+(x) jkpmi 9.96265 fshow
+24.25401 -59.23286 moveto
+(\000) jkpsy 9.96265 fshow
+32.00151 -59.23286 moveto
+(5) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.74463 -38.8742 moveto
+54.74463 -61.80823 lineto stroke
+96.34714 -52.83186 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 132.24384 -38.8742 moveto
+132.24384 -61.80823 lineto stroke
+157.51262 -52.83186 moveto
+(\000) cmsy10 9.96265 fshow
+187.81532 -53.59651 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 190.53012 -38.8742 moveto
+190.53012 -61.80823 lineto stroke
+215.63454 -52.83186 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -71.467 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -71.467 moveto
+(de) jkpmn8r 9.96265 fshow
+14.52391 -82.16689 moveto
+(x) jkpmi 9.96265 fshow
+21.4644 -82.16689 moveto
+(+) jkpmn8r 9.96265 fshow
+29.3614 -82.16689 moveto
+(10) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.74463 -61.80823 moveto
+54.74463 -84.74225 lineto stroke
+65.48434 -76.53053 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 68.19914 -61.80823 moveto
+68.19914 -84.74225 lineto stroke
+96.34714 -75.76588 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 132.24384 -61.80823 moveto
+132.24384 -84.74225 lineto stroke
+157.51262 -75.76588 moveto
+(+) cmr10 9.96265 fshow
+newpath 190.53012 -61.80823 moveto
+190.53012 -84.74225 lineto stroke
+215.63454 -75.76588 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -94.40102 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -94.40102 moveto
+(de) jkpmn8r 9.96265 fshow
+17.23871 -105.1009 moveto
+(x) jkpmi 9.96265 fshow
+24.1793 -105.1009 moveto
+(+) jkpmn8r 9.96265 fshow
+32.07631 -105.1009 moveto
+(3) jkpmn8r 9.96265 fshow
+newpath 54.74463 -84.74225 moveto
+54.74463 -107.67627 lineto stroke
+96.34714 -98.6999 moveto
+(\000) cmsy10 9.96265 fshow
+129.52904 -99.46455 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 132.24384 -84.74225 moveto
+132.24384 -107.67627 lineto stroke
+157.51262 -98.6999 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 190.53012 -84.74225 moveto
+190.53012 -107.67627 lineto stroke
+215.63454 -98.6999 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -117.335 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -117.335 moveto
+(de) jkpmn8r 9.96265 fshow
+17.4246 -128.82191 moveto
+(Q) jkpmn8r 9.96265 fshow
+25.59401 -128.82191 moveto
+(\() jkpmn8r 9.96265 fshow
+28.99121 -128.82191 moveto
+(x) jkpmi 9.96265 fshow
+34.27141 -128.82191 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 54.74463 -107.67627 moveto
+54.74463 -133.83307 lineto stroke
+newpath 67.20288 -107.67627 moveto
+67.20288 -133.83307 lineto stroke
+newpath 69.1954 -107.67627 moveto
+69.1954 -133.83307 lineto stroke
+96.34714 -123.24532 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 131.24757 -107.67627 moveto
+131.24757 -133.83307 lineto stroke
+newpath 133.2401 -107.67627 moveto
+133.2401 -133.83307 lineto stroke
+157.51262 -123.24532 moveto
+(+) cmr10 9.96265 fshow
+187.81532 -124.00996 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 190.53012 -107.67627 moveto
+190.53012 -133.83307 lineto stroke
+215.63454 -123.24532 moveto
+(\000) cmsy10 9.96265 fshow
+245.77286 -124.00996 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 248.48766 -107.67627 moveto
+248.48766 -133.83307 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -15.94019 moveto
+258.89862 -15.94019 lineto stroke
+newpath 0 -38.8742 moveto
+258.89862 -38.8742 lineto stroke
+newpath 0 -61.80823 moveto
+258.89862 -61.80823 lineto stroke
+newpath 0 -84.74225 moveto
+258.89862 -84.74225 lineto stroke
+newpath 0 -107.67627 moveto
+258.89862 -107.67627 lineto stroke
+newpath 0 0 moveto
+258.89862 0 lineto stroke
+newpath 0 -133.83307 moveto
+258.89862 -133.83307 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -133.83307 lineto stroke
+newpath 258.89862 0 moveto
+258.89862 -133.83307 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.28 b/macros/latex/contrib/tablor/Figures/tablor_Tab.28
new file mode 100644
index 0000000000..bd6bae4ca2
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.28
@@ -0,0 +1,78 @@
+%!PS
+%%BoundingBox: -1 -43 221 1
+%%HiResBoundingBox: -0.25 -42.34698 220.61975 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c400000010000d42
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+33.08911 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 71.45844 0 moveto
+71.45844 -15.94019 lineto stroke
+76.43974 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+82.52695 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+143.19923 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+149.28644 -11.22539 moveto
+(5) jkpmn8r 9.96265 fshow
+204.52913 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+17.0742 -25.59892 moveto
+(Signe) jkpmn8r 9.96265 fshow
+43.74411 -25.59892 moveto
+(de) jkpmn8r 9.96265 fshow
+6.1768 -37.08583 moveto
+(\() jkpmn8r 9.96265 fshow
+9.57411 -37.08583 moveto
+(x) jkpmi 9.96265 fshow
+16.5146 -37.08583 moveto
+(\000) jkpsy 9.96265 fshow
+24.2622 -37.08583 moveto
+(10\)\() jkpmn8r 9.96265 fshow
+41.7666 -37.08583 moveto
+(x) jkpmi 9.96265 fshow
+48.7071 -37.08583 moveto
+(+) jkpmn8r 9.96265 fshow
+56.6042 -37.08583 moveto
+(5\)) jkpmn8r 9.96265 fshow
+newpath 71.45844 -15.94019 moveto
+71.45844 -42.09698 lineto stroke
+113.06094 -31.50923 moveto
+(+) cmr10 9.96265 fshow
+146.24284 -32.27388 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 148.95764 -15.94019 moveto
+148.95764 -42.09698 lineto stroke
+175.58386 -31.50923 moveto
+(\000) cmsy10 9.96265 fshow
+207.24399 -32.27388 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 209.95879 -15.94019 moveto
+209.95879 -42.09698 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -15.94019 moveto
+220.36975 -15.94019 lineto stroke
+newpath 0 0 moveto
+220.36975 0 lineto stroke
+newpath 0 -42.09698 moveto
+220.36975 -42.09698 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -42.09698 lineto stroke
+newpath 220.36975 0 moveto
+220.36975 -42.09698 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.29 b/macros/latex/contrib/tablor/Figures/tablor_Tab.29
new file mode 100644
index 0000000000..57b4b10601
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.29
@@ -0,0 +1,93 @@
+%!PS
+%%BoundingBox: -1 -56 206 1
+%%HiResBoundingBox: -0.25 -55.9361 205.9148 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0e400000010000d42
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+31.4951 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 68.27042 0 moveto
+68.27042 -15.94019 lineto stroke
+73.25172 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+79.33893 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+140.01122 -11.22539 moveto
+(2) jkpmn8r 9.96265 fshow
+195.25389 -11.22539 moveto
+(5) jkpmn8r 9.96265 fshow
+15.48021 -25.59903 moveto
+(Signe) jkpmn8r 9.96265 fshow
+42.1501 -25.59903 moveto
+(de) jkpmn8r 9.96265 fshow
+17.9642 -37.08594 moveto
+(\() jkpmn8r 9.96265 fshow
+21.36151 -37.08594 moveto
+(x) jkpmi 9.96265 fshow
+28.30211 -37.08594 moveto
+(+) jkpmn8r 9.96265 fshow
+36.19911 -37.08594 moveto
+(10\)) jkpmn8r 9.96265 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 7.37231 -41.34993 moveto
+60.89801 -41.34993 lineto stroke
+7.37231 -50.67494 moveto
+(\() jkpmn8r 9.96265 fshow
+10.7696 -50.67494 moveto
+(x) jkpmi 9.96265 fshow
+17.7102 -50.67494 moveto
+(\000) jkpsy 9.96265 fshow
+25.4577 -50.67494 moveto
+(5\)\() jkpmn8r 9.96265 fshow
+37.53241 -50.67494 moveto
+(x) jkpmi 9.96265 fshow
+44.473 -50.67494 moveto
+(\000) jkpsy 9.96265 fshow
+52.22061 -50.67494 moveto
+(2\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 68.27042 -15.94019 moveto
+68.27042 -55.6861 lineto stroke
+79.01013 -39.06844 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 81.72493 -15.94019 moveto
+81.72493 -55.6861 lineto stroke
+108.35112 -38.30379 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 141.72975 -15.94019 moveto
+141.72975 -55.6861 lineto stroke
+newpath 143.72227 -15.94019 moveto
+143.72227 -55.6861 lineto stroke
+166.47299 -38.30379 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 196.97243 -15.94019 moveto
+196.97243 -55.6861 lineto stroke
+newpath 198.96495 -15.94019 moveto
+198.96495 -55.6861 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 0 -15.94019 moveto
+205.6648 -15.94019 lineto stroke
+newpath 0 0 moveto
+205.6648 0 lineto stroke
+newpath 0 -55.6861 moveto
+205.6648 -55.6861 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -55.6861 lineto stroke
+newpath 205.6648 0 moveto
+205.6648 -55.6861 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.3 b/macros/latex/contrib/tablor/Figures/tablor_Tab.3
new file mode 100644
index 0000000000..84c6938acf
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.3
@@ -0,0 +1,146 @@
+%!PS
+%%BoundingBox: -1 -91 262 1
+%%HiResBoundingBox: -0.25 -90.07895 261.68799 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 7.57156 9.96265 33:a
+%*Font: jkpmia 9.96265 9.96265 27:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0ad00000010000d42
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.78366 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.84753 0 moveto
+54.84753 -17.4205 lineto stroke
+59.82884 -10.8273 moveto
+(\0001) jkpsy 9.96265 fshow
+126.07033 -7.50307 moveto
+(\000) jkpsy 7.57156 fshow
+130.69662 -7.50307 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 126.07033 -8.93765 moveto
+134.82314 -8.93765 lineto stroke
+128.38344 -14.86546 moveto
+(5) jkpmn8r 7.57156 fshow
+185.83171 -11.96555 moveto
+(2) jkpmn8r 9.96265 fshow
+241.07439 -11.1735 moveto
+(+) jkpmn8r 9.96265 fshow
+247.31099 -11.1735 moveto
+(1) jkpsy 9.96265 fshow
+8.7687 -27.07925 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.4387 -27.07925 moveto
+(de) jkpmn8r 9.96265 fshow
+6.1768 -37.98335 moveto
+(\000) jkpsy 9.96265 fshow
+12.264 -37.98335 moveto
+(45) jkpmn8r 9.96265 fshow
+23.1233 -37.98335 moveto
+(x) jkpmi 9.96265 fshow
+30.06381 -37.98335 moveto
+(\000) jkpsy 9.96265 fshow
+37.8114 -37.98335 moveto
+(27) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 54.84753 -17.4205 moveto
+54.84753 -40.55872 lineto stroke
+95.07166 -31.48026 moveto
+(+) cmr10 9.96265 fshow
+127.73193 -32.2449 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 130.44673 -17.4205 moveto
+130.44673 -40.55872 lineto stroke
+155.62227 -31.48026 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 188.54651 -17.4205 moveto
+188.54651 -40.55872 lineto stroke
+214.78166 -31.48026 moveto
+(\000) cmsy10 9.96265 fshow
+8.76875 -50.21748 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.43866 -50.21748 moveto
+(de) jkpmn8r 9.96265 fshow
+17.36487 -60.91737 moveto
+(2) jkpmn8r 9.96265 fshow
+24.45486 -60.91737 moveto
+(\000) jkpsy 9.96265 fshow
+32.20245 -60.91737 moveto
+(x) jkpmi 9.96265 fshow
+newpath 54.84753 -40.55872 moveto
+54.84753 -63.49274 lineto stroke
+95.07166 -54.51637 moveto
+(+) cmr10 9.96265 fshow
+newpath 130.44673 -40.55872 moveto
+130.44673 -63.49274 lineto stroke
+155.62227 -54.51637 moveto
+(+) cmr10 9.96265 fshow
+185.83171 -55.28102 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 188.54651 -40.55872 moveto
+188.54651 -63.49274 lineto stroke
+214.78166 -54.51637 moveto
+(\000) cmsy10 9.96265 fshow
+8.76875 -73.15149 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.43866 -73.15149 moveto
+(de) jkpmn8r 9.96265 fshow
+17.97417 -84.6384 moveto
+(') jkpmia 9.96265 fshow
+24.94806 -84.6384 moveto
+(\() jkpmn8r 9.96265 fshow
+28.34526 -84.6384 moveto
+(x) jkpmi 9.96265 fshow
+33.62546 -84.6384 moveto
+(\)) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 54.84753 -63.49274 moveto
+54.84753 -89.82895 lineto stroke
+95.07166 -79.15149 moveto
+(+) cmr10 9.96265 fshow
+127.73193 -79.91614 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 130.44673 -63.49274 moveto
+130.44673 -89.82895 lineto stroke
+155.62227 -79.15149 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 187.55025 -63.49274 moveto
+187.55025 -89.82895 lineto stroke
+newpath 189.54277 -63.49274 moveto
+189.54277 -89.82895 lineto stroke
+214.78166 -79.15149 moveto
+(+) cmr10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 0 -17.4205 moveto
+261.43799 -17.4205 lineto stroke
+newpath 0 -40.55872 moveto
+261.43799 -40.55872 lineto stroke
+newpath 0 -63.49274 moveto
+261.43799 -63.49274 lineto stroke
+newpath 0 0 moveto
+261.43799 0 lineto stroke
+newpath 0 -89.82895 moveto
+261.43799 -89.82895 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -89.82895 lineto stroke
+newpath 261.43799 0 moveto
+261.43799 -89.82895 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.30 b/macros/latex/contrib/tablor/Figures/tablor_Tab.30
new file mode 100644
index 0000000000..9eb543a0a8
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.30
@@ -0,0 +1,108 @@
+%!PS
+%%BoundingBox: -1 -44 308 1
+%%HiResBoundingBox: -0.25 -43.82742 307.68356 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpmn8r 9.96265 9.96265 28:c0a000000010004d4208
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmn8r 7.57156 9.96265 32:c
+%*Font: jkpmia 9.96265 9.96265 19:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.73221 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.74463 0 moveto
+54.74463 -17.4205 lineto stroke
+59.72594 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+116.16411 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 116.16411 -8.23724 moveto
+121.28252 -8.23724 lineto stroke
+116.66011 -14.16505 moveto
+(2) jkpmn8r 7.57156 fshow
+172.29109 -10.9718 moveto
+(\031) jkpmia 9.96265 fshow
+230.03438 -7.50307 moveto
+(3) jkpmn8r 7.57156 fshow
+234.16089 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 230.03438 -8.93765 moveto
+239.27928 -8.93765 lineto stroke
+232.59358 -14.86546 moveto
+(2) jkpmn8r 7.57156 fshow
+290.28786 -11.89336 moveto
+(2) jkpmn8r 9.96265 fshow
+295.71745 -11.89336 moveto
+(\031) jkpmia 9.96265 fshow
+8.7173 -27.07927 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -27.07927 moveto
+(de) jkpmn8r 9.96265 fshow
+13.71301 -38.62596 moveto
+(tan) jkpmn8r 9.96265 fshow
+29.10631 -38.56616 moveto
+(\() jkpmn8r 9.96265 fshow
+32.5036 -38.62596 moveto
+(x) jkpmi 9.96265 fshow
+37.78381 -38.56616 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 54.74463 -17.4205 moveto
+54.74463 -43.57742 lineto stroke
+59.72594 -33.75426 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 62.44073 -17.4205 moveto
+62.44073 -43.57742 lineto stroke
+86.70767 -32.98961 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 117.72705 -17.4205 moveto
+117.72705 -43.57742 lineto stroke
+newpath 119.71957 -17.4205 moveto
+119.71957 -43.57742 lineto stroke
+143.31653 -32.98961 moveto
+(\000) cmsy10 9.96265 fshow
+172.94365 -33.75426 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 175.65845 -17.4205 moveto
+175.65845 -43.57742 lineto stroke
+201.28328 -32.98961 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 233.66057 -17.4205 moveto
+233.66057 -43.57742 lineto stroke
+newpath 235.65309 -17.4205 moveto
+235.65309 -43.57742 lineto stroke
+261.63908 -32.98961 moveto
+(\000) cmsy10 9.96265 fshow
+293.65526 -33.75426 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 296.37006 -17.4205 moveto
+296.37006 -43.57742 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -17.4205 moveto
+307.43356 -17.4205 lineto stroke
+newpath 0 0 moveto
+307.43356 0 lineto stroke
+newpath 0 -43.57742 moveto
+307.43356 -43.57742 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -43.57742 lineto stroke
+newpath 307.43356 0 moveto
+307.43356 -43.57742 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.31 b/macros/latex/contrib/tablor/Figures/tablor_Tab.31
new file mode 100644
index 0000000000..d122ed1a58
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.31
@@ -0,0 +1,156 @@
+%!PS
+%%BoundingBox: -1 -88 357 1
+%%HiResBoundingBox: -0.25 -87.7667 356.46751 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0e000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 31:c
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+153.29483 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+159.47163 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+216.95303 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+275.23932 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+281.41612 -11.27034 moveto
+(2) jkpmn8r 7.57156 fshow
+335.85391 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+342.09052 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+newpath 85.11067 -15.94019 moveto
+85.11067 -42.6849 lineto stroke
+newpath 87.1032 -15.94019 moveto
+87.1032 -42.6849 lineto stroke
+118.5269 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 158.69559 -15.94019 moveto
+158.69559 -42.6849 lineto stroke
+185.30736 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+216.95303 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 219.66783 -15.94019 moveto
+219.66783 -42.6849 lineto stroke
+246.2796 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+newpath 280.64008 -15.94019 moveto
+280.64008 -42.6849 lineto stroke
+308.21822 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+newpath 85.11067 -42.6849 moveto
+85.11067 -87.5167 lineto stroke
+newpath 87.1032 -42.6849 moveto
+87.1032 -87.5167 lineto stroke
+88.09946 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+94.33606 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 105.48128 -53.95499 moveto
+153.9804 -64.11317 lineto stroke
+newpath 150.04984 -64.8538 moveto
+153.9804 -64.11317 lineto
+150.6774 -61.8575 lineto
+ closepath
+gsave fill grestore stroke
+155.98079 -68.3561 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 163.41064 -66.11969 moveto
+211.90947 -76.59982 lineto stroke
+newpath 207.9742 -77.31544 moveto
+211.90947 -76.59982 lineto
+208.62083 -74.32314 lineto
+ closepath
+gsave fill grestore stroke
+213.90942 -81.53163 moveto
+(\000) jkpsy 9.96265 fshow
+219.99663 -81.53163 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 227.42615 -76.59982 moveto
+275.92493 -66.11969 lineto stroke
+newpath 272.63629 -68.39638 moveto
+275.92493 -66.11969 lineto
+271.98965 -65.40407 lineto
+ closepath
+gsave fill grestore stroke
+277.92528 -68.3561 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 285.35486 -64.11327 moveto
+333.85352 -53.95517 lineto stroke
+newpath 330.55057 -56.21083 moveto
+333.85352 -53.95517 lineto
+329.923 -53.21455 lineto
+ closepath
+gsave fill grestore stroke
+335.85391 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+342.09052 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+356.21751 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+356.21751 -42.6849 lineto stroke
+newpath 0 0 moveto
+356.21751 0 lineto stroke
+newpath 0 -87.5167 moveto
+356.21751 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 356.21751 0 moveto
+356.21751 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.32 b/macros/latex/contrib/tablor/Figures/tablor_Tab.32
new file mode 100644
index 0000000000..fae0464576
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.32
@@ -0,0 +1,138 @@
+%!PS
+%%BoundingBox: -1 -90 278 1
+%%HiResBoundingBox: -0.25 -89.24701 277.77628 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 7.57156 9.96265 00:8000000000008
+%*Font: jkpmn8r 7.57156 9.96265 31:d
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 9.96265 9.96265 31:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0a000000012004d4338
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+81.54402 -7.50307 moveto
+(\000) jkpsy 7.57156 fshow
+86.17032 -7.50307 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 81.54402 -8.93765 moveto
+90.29683 -8.93765 lineto stroke
+83.85713 -14.86546 moveto
+(2) jkpmn8r 7.57156 fshow
+141.3054 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+196.54808 -9.9682 moveto
+(\013) jkpmia 9.96265 fshow
+202.72488 -12.0105 moveto
+(1) jkpmn8r 7.57156 fshow
+257.16267 -11.1735 moveto
+(+) jkpmn8r 9.96265 fshow
+263.39928 -11.1735 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -39.08426 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -39.08426 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.16522 lineto stroke
+111.09596 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+141.3054 -34.04816 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 144.0202 -17.4205 moveto
+144.0202 -44.16522 lineto stroke
+169.11017 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+newpath 201.94884 -17.4205 moveto
+201.94884 -44.16522 lineto stroke
+229.52698 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -64.50887 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.50887 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.50887 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.50887 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -73.23116 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -44.16522 moveto
+75.36722 -88.99701 lineto stroke
+83.85712 -52.1984 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 83.85712 -53.63298 moveto
+87.98363 -53.63298 lineto stroke
+83.85712 -59.56079 moveto
+(4) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 91.17935 -55.79076 moveto
+139.30505 -77.61807 lineto stroke
+newpath 135.30699 -77.48572 moveto
+139.30505 -77.61807 lineto
+136.57164 -74.69739 lineto
+ closepath
+gsave fill grestore stroke
+141.3054 -83.01195 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 148.73503 -78.6843 moveto
+197.23369 -67.65356 lineto stroke
+newpath 193.96947 -69.96597 moveto
+197.23369 -67.65356 lineto
+193.29042 -66.98047 lineto
+ closepath
+gsave fill grestore stroke
+199.23404 -69.83641 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 206.66362 -65.59358 moveto
+255.16228 -55.43549 lineto stroke
+newpath 251.85933 -57.69115 moveto
+255.16228 -55.43549 lineto
+251.23177 -54.69487 lineto
+ closepath
+gsave fill grestore stroke
+257.16267 -55.86882 moveto
+(+) jkpmn8r 9.96265 fshow
+263.39928 -55.86882 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -17.4205 moveto
+277.52628 -17.4205 lineto stroke
+newpath 0 -44.16522 moveto
+277.52628 -44.16522 lineto stroke
+newpath 0 0 moveto
+277.52628 0 lineto stroke
+newpath 0 -88.99701 moveto
+277.52628 -88.99701 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -88.99701 lineto stroke
+newpath 277.52628 0 moveto
+277.52628 -88.99701 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.33 b/macros/latex/contrib/tablor/Figures/tablor_Tab.33
new file mode 100644
index 0000000000..56c06bd47c
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.33
@@ -0,0 +1,115 @@
+%!PS
+%%BoundingBox: -1 -88 232 1
+%%HiResBoundingBox: -0.25 -87.82779 231.33002 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0a000000012004d4b38
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpmn8r 7.57156 9.96265 31:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+150.10182 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+156.27863 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+210.71642 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+216.95302 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59895 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59895 moveto
+(de) jkpmn8r 9.96265 fshow
+25.7599 -37.73485 moveto
+(ln) jkpmn8r 9.96265 fshow
+34.77611 -33.48935 moveto
+(0) jkpsy 7.57156 fshow
+37.682 -37.73485 moveto
+(\() jkpmn8r 9.96265 fshow
+41.07921 -37.73485 moveto
+(x) jkpmi 9.96265 fshow
+46.3594 -37.73485 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.746 lineto stroke
+newpath 82.06706 -15.94019 moveto
+82.06706 -42.746 lineto stroke
+newpath 84.05959 -15.94019 moveto
+84.05959 -42.746 lineto stroke
+115.4086 -31.83374 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 155.50258 -15.94019 moveto
+155.50258 -42.746 lineto stroke
+183.08072 -31.83374 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -64.3301 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.3301 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.3301 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.3301 moveto
+(de) jkpmn8r 9.96265 fshow
+33.1755 -73.0772 moveto
+(ln) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.746 moveto
+75.36722 -87.57779 lineto stroke
+newpath 82.06706 -42.746 moveto
+82.06706 -87.57779 lineto stroke
+newpath 84.05959 -42.746 moveto
+84.05959 -87.57779 lineto stroke
+85.05585 -81.69484 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 102.28915 -77.37128 moveto
+150.78748 -66.24373 lineto stroke
+newpath 147.52809 -68.562 moveto
+150.78748 -66.24373 lineto
+146.84349 -65.5782 lineto
+ closepath
+gsave fill grestore stroke
+152.78778 -68.41719 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 160.21736 -64.08139 moveto
+208.71602 -52.96703 lineto stroke
+newpath 205.45558 -55.2848 moveto
+208.71602 -52.96703 lineto
+204.77165 -52.3004 lineto
+ closepath
+gsave fill grestore stroke
+210.71642 -53.20924 moveto
+(+) jkpmn8r 9.96265 fshow
+216.95302 -53.20924 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+231.08002 -15.94019 lineto stroke
+newpath 0 -42.746 moveto
+231.08002 -42.746 lineto stroke
+newpath 0 0 moveto
+231.08002 0 lineto stroke
+newpath 0 -87.57779 moveto
+231.08002 -87.57779 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.57779 lineto stroke
+newpath 231.08002 0 moveto
+231.08002 -87.57779 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.35 b/macros/latex/contrib/tablor/Figures/tablor_Tab.35
new file mode 100644
index 0000000000..9a488b06ce
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.35
@@ -0,0 +1,88 @@
+%!PS
+%%BoundingBox: -1 -88 157 1
+%%HiResBoundingBox: -0.25 -87.82779 156.2048 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4b38
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+135.5912 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+141.8278 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59895 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59895 moveto
+(de) jkpmn8r 9.96265 fshow
+22.1629 -37.73485 moveto
+(\000) jkpsy 9.96265 fshow
+29.35701 -37.73485 moveto
+(ln) jkpmn8r 9.96265 fshow
+38.37311 -33.48935 moveto
+(0) jkpsy 7.57156 fshow
+41.279 -37.73485 moveto
+(\() jkpmn8r 9.96265 fshow
+44.6763 -37.73485 moveto
+(x) jkpmi 9.96265 fshow
+49.9565 -37.73485 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.746 lineto stroke
+109.29848 -31.83374 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -64.3301 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.3301 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.3301 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.3301 moveto
+(de) jkpmn8r 9.96265 fshow
+29.5785 -73.0772 moveto
+(\000) jkpsy 9.96265 fshow
+36.77261 -73.0772 moveto
+(ln) jkpmn8r 9.96265 fshow
+newpath 75.36722 -42.746 moveto
+75.36722 -87.57779 lineto stroke
+80.34853 -54.0013 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77806 -53.00333 moveto
+134.68349 -75.4608 lineto stroke
+newpath 130.68912 -75.24562 moveto
+134.68349 -75.4608 lineto
+132.01126 -72.48415 lineto
+ closepath
+gsave fill grestore stroke
+135.6659 -81.69484 moveto
+(\0001) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+155.9548 -15.94019 lineto stroke
+newpath 0 -42.746 moveto
+155.9548 -42.746 lineto stroke
+newpath 0 0 moveto
+155.9548 0 lineto stroke
+newpath 0 -87.57779 moveto
+155.9548 -87.57779 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.57779 lineto stroke
+newpath 155.9548 0 moveto
+155.9548 -87.57779 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.36 b/macros/latex/contrib/tablor/Figures/tablor_Tab.36
new file mode 100644
index 0000000000..2d33015dcd
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.36
@@ -0,0 +1,156 @@
+%!PS
+%%BoundingBox: -1 -88 345 1
+%%HiResBoundingBox: -0.25 -87.69699 344.01007 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 3d:800000000000001
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmia 9.96265 9.96265 0b:8002
+%*Font: jkpmn8r 7.57156 9.96265 31:c
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 9.96265 9.96265 28:c0e000000012005d4338
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -10.23164 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -10.23164 moveto
+(\031) jkpmia 9.96265 fshow
+144.93515 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+151.11195 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+207.50139 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+264.69571 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+270.87251 -11.27034 moveto
+(2) jkpmn8r 7.57156 fshow
+329.653 -10.23164 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+23.3191 -37.60394 moveto
+(cos) jkpmn8r 9.96265 fshow
+37.2169 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+40.1228 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+43.5201 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+48.80031 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6152 lineto stroke
+84.04468 -32.53299 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 86.75948 -15.94019 moveto
+86.75948 -42.6152 lineto stroke
+114.67334 -31.76834 moveto
+(+) cmr10 9.96265 fshow
+newpath 150.3359 -15.94019 moveto
+150.3359 -42.6152 lineto stroke
+176.40169 -31.76834 moveto
+(+) cmr10 9.96265 fshow
+207.50139 -32.53299 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 210.21619 -15.94019 moveto
+210.21619 -42.6152 lineto stroke
+236.28197 -31.76834 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 270.09647 -15.94019 moveto
+270.09647 -42.6152 lineto stroke
+297.68405 -31.76834 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -64.64255 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.64255 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.64255 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.64255 moveto
+(de) jkpmn8r 9.96265 fshow
+30.73471 -72.50305 moveto
+(cos) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6152 moveto
+75.36722 -87.44699 lineto stroke
+81.00107 -83.14563 moveto
+(\000) jkpsy 9.96265 fshow
+87.08827 -83.14563 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 94.51834 -78.0769 moveto
+140.98329 -67.21701 lineto stroke
+newpath 137.73297 -69.54878 moveto
+140.98329 -67.21701 lineto
+137.03616 -66.56743 lineto
+ closepath
+gsave fill grestore stroke
+142.9835 -68.0585 moveto
+(1) jkpmn8r 9.96265 fshow
+148.4131 -68.0585 moveto
+(=) jkpmi 9.96265 fshow
+152.25871 -68.0585 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 159.68855 -62.71024 moveto
+205.50159 -51.34177 lineto stroke
+newpath 202.28333 -53.71768 moveto
+205.50159 -51.34177 lineto
+201.54593 -50.74606 lineto
+ closepath
+gsave fill grestore stroke
+207.50139 -53.42715 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 214.93088 -51.34181 moveto
+260.74367 -62.71019 lineto stroke
+newpath 256.78801 -63.3059 moveto
+260.74367 -62.71019 lineto
+257.5254 -60.33427 lineto
+ closepath
+gsave fill grestore stroke
+262.74406 -68.0585 moveto
+(1) jkpmn8r 9.96265 fshow
+268.17366 -68.0585 moveto
+(=) jkpmi 9.96265 fshow
+272.01927 -68.0585 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 279.44922 -67.23972 moveto
+325.26213 -78.05827 lineto stroke
+newpath 321.31366 -78.69876 moveto
+325.26213 -78.05827 lineto
+322.0173 -75.71912 lineto
+ closepath
+gsave fill grestore stroke
+327.26195 -83.14563 moveto
+(\000) jkpsy 9.96265 fshow
+333.34915 -83.14563 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+343.76007 -15.94019 lineto stroke
+newpath 0 -42.6152 moveto
+343.76007 -42.6152 lineto stroke
+newpath 0 0 moveto
+343.76007 0 lineto stroke
+newpath 0 -87.44699 moveto
+343.76007 -87.44699 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.44699 lineto stroke
+newpath 343.76007 0 moveto
+343.76007 -87.44699 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.37 b/macros/latex/contrib/tablor/Figures/tablor_Tab.37
new file mode 100644
index 0000000000..00778727b2
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.37
@@ -0,0 +1,111 @@
+%!PS
+%%BoundingBox: -1 -88 215 1
+%%HiResBoundingBox: -0.25 -87.69699 214.3168 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpmn8r 9.96265 9.96265 28:c0e000000012005d4338
+%*Font: jkpmia 9.96265 9.96265 19:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+137.98225 -10.23164 moveto
+(\031) jkpmia 9.96265 fshow
+196.9211 -11.1532 moveto
+(2) jkpmn8r 9.96265 fshow
+202.3507 -11.1532 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+23.3191 -37.60394 moveto
+(cos) jkpmn8r 9.96265 fshow
+37.2169 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+40.1228 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+43.5201 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+48.80031 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6152 lineto stroke
+80.34853 -32.53299 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -15.94019 moveto
+83.06332 -42.6152 lineto stroke
+108.3321 -31.76834 moveto
+(\000) cmsy10 9.96265 fshow
+138.63481 -32.53299 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 141.34961 -15.94019 moveto
+141.34961 -42.6152 lineto stroke
+168.3021 -31.76834 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -64.64255 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.64255 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.64255 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.64255 moveto
+(de) jkpmn8r 9.96265 fshow
+30.73471 -72.50305 moveto
+(cos) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6152 moveto
+75.36722 -87.44699 lineto stroke
+80.34853 -53.42715 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77792 -52.57571 moveto
+133.5913 -75.93462 lineto stroke
+newpath 129.60342 -75.61967 moveto
+133.5913 -75.93462 lineto
+130.9942 -72.89201 lineto
+ closepath
+gsave fill grestore stroke
+135.5912 -83.14563 moveto
+(\000) jkpsy 9.96265 fshow
+141.6784 -83.14563 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 149.10806 -76.15059 moveto
+198.2886 -52.44443 lineto stroke
+newpath 195.62407 -55.42828 moveto
+198.2886 -52.44443 lineto
+194.29457 -52.67017 lineto
+ closepath
+gsave fill grestore stroke
+200.2885 -53.42715 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+214.0668 -15.94019 lineto stroke
+newpath 0 -42.6152 moveto
+214.0668 -42.6152 lineto stroke
+newpath 0 0 moveto
+214.0668 0 lineto stroke
+newpath 0 -87.44699 moveto
+214.0668 -87.44699 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.44699 lineto stroke
+newpath 214.0668 0 moveto
+214.0668 -87.44699 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.38 b/macros/latex/contrib/tablor/Figures/tablor_Tab.38
new file mode 100644
index 0000000000..3da0c0a0fb
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.38
@@ -0,0 +1,137 @@
+%!PS
+%%BoundingBox: -1 -88 293 1
+%%HiResBoundingBox: -0.25 -87.77652 292.58513 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 74:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d08100000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8002
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpmn8r 7.57156 9.96265 31:c
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -10.92647 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -16.01971 lineto stroke
+80.34853 -11.26515 moveto
+(0) jkpmn8r 9.96265 fshow
+135.5912 -9.2678 moveto
+(\013) jkpmia 9.96265 fshow
+141.768 -11.3101 moveto
+(1) jkpmn8r 7.57156 fshow
+211.02141 -6.10226 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 211.02141 -7.53685 moveto
+216.13982 -7.53685 lineto stroke
+211.51741 -13.46466 moveto
+(2) jkpmn8r 7.57156 fshow
+280.61911 -10.27141 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -25.67857 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.67857 moveto
+(de) jkpmn8r 9.96265 fshow
+23.8421 -37.68347 moveto
+(tan) jkpmn8r 9.96265 fshow
+38.12851 -33.56898 moveto
+(0) jkpsy 7.57156 fshow
+41.03441 -37.68347 moveto
+(\() jkpmn8r 9.96265 fshow
+44.4317 -37.68347 moveto
+(t) jkpmi 9.96265 fshow
+48.2772 -37.68347 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -16.01971 moveto
+75.36722 -42.69473 lineto stroke
+108.15329 -31.84787 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 140.99196 -16.01971 moveto
+140.99196 -42.69473 lineto stroke
+173.41193 -31.84787 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 212.58435 -16.01971 moveto
+212.58435 -42.69473 lineto stroke
+newpath 214.57687 -16.01971 moveto
+214.57687 -42.69473 lineto stroke
+244.90918 -31.84787 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -64.72208 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.72208 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.72208 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.72208 moveto
+(de) jkpmn8r 9.96265 fshow
+30.5404 -72.58258 moveto
+(tan) jkpmn8r 9.96265 fshow
+newpath 75.36722 -42.69473 moveto
+75.36722 -87.52652 lineto stroke
+80.34853 -83.22516 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77815 -78.76045 moveto
+136.27681 -66.32013 lineto stroke
+newpath 133.07736 -68.72125 moveto
+136.27681 -66.32013 lineto
+132.31662 -65.75555 lineto
+ closepath
+gsave fill grestore stroke
+138.27716 -68.36592 moveto
+(7) jkpmn8r 9.96265 fshow
+newpath 145.70674 -63.99689 moveto
+194.2054 -52.54071 lineto stroke
+newpath 190.96104 -54.87982 moveto
+194.2054 -52.54071 lineto
+190.25731 -51.90054 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 212.58435 -42.69473 moveto
+212.58435 -87.52652 lineto stroke
+newpath 214.57687 -42.69473 moveto
+214.57687 -87.52652 lineto stroke
+196.2058 -52.71463 moveto
+(+) jkpmn8r 9.96265 fshow
+202.4424 -52.71463 moveto
+(1) jkpsy 9.96265 fshow
+215.57314 -82.08691 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 231.61208 -75.85283 moveto
+279.27136 -52.55618 lineto stroke
+newpath 276.6233 -55.55458 moveto
+279.27136 -52.55618 lineto
+275.2787 -52.80385 lineto
+ closepath
+gsave fill grestore stroke
+281.27167 -53.50668 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -16.01971 moveto
+292.33513 -16.01971 lineto stroke
+newpath 0 -42.69473 moveto
+292.33513 -42.69473 lineto stroke
+newpath 0 0 moveto
+292.33513 0 lineto stroke
+newpath 0 -87.52652 moveto
+292.33513 -87.52652 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.52652 lineto stroke
+newpath 292.33513 0 moveto
+292.33513 -87.52652 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.39 b/macros/latex/contrib/tablor/Figures/tablor_Tab.39
new file mode 100644
index 0000000000..373cf4f4b5
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.39
@@ -0,0 +1,143 @@
+%!PS
+%%BoundingBox: -1 -88 315 1
+%%HiResBoundingBox: -0.25 -87.77652 314.09352 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 74:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d08100000012004d4338
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpmn8r 7.57156 9.96265 32:8
+%*Font: jkpmia 9.96265 9.96265 19:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -10.92647 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -16.01971 lineto stroke
+80.34853 -11.26515 moveto
+(0) jkpmn8r 9.96265 fshow
+135.5912 -10.5005 moveto
+(a) jkpmn8r 9.96265 fshow
+140.433 -10.5005 moveto
+(tan) jkpmn8r 9.96265 fshow
+155.8264 -10.4407 moveto
+(\() jkpmn8r 9.96265 fshow
+159.2236 -10.5005 moveto
+(7) jkpmn8r 9.96265 fshow
+164.6532 -10.4407 moveto
+(\)) jkpmn8r 9.96265 fshow
+232.5298 -6.10226 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 232.5298 -7.53685 moveto
+237.64821 -7.53685 lineto stroke
+233.0258 -13.46466 moveto
+(2) jkpmn8r 7.57156 fshow
+302.1275 -10.27141 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -25.67857 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.67857 moveto
+(de) jkpmn8r 9.96265 fshow
+23.8421 -37.68347 moveto
+(tan) jkpmn8r 9.96265 fshow
+38.12851 -33.56898 moveto
+(0) jkpsy 7.57156 fshow
+41.03441 -37.68347 moveto
+(\() jkpmn8r 9.96265 fshow
+44.4317 -37.68347 moveto
+(t) jkpmi 9.96265 fshow
+48.2772 -37.68347 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -16.01971 moveto
+75.36722 -42.69473 lineto stroke
+113.53038 -31.84787 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 151.74615 -16.01971 moveto
+151.74615 -42.69473 lineto stroke
+189.54323 -31.84787 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 234.09274 -16.01971 moveto
+234.09274 -42.69473 lineto stroke
+newpath 236.08527 -16.01971 moveto
+236.08527 -42.69473 lineto stroke
+266.41757 -31.84787 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -64.72208 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.72208 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.72208 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.72208 moveto
+(de) jkpmn8r 9.96265 fshow
+30.5404 -72.58258 moveto
+(tan) jkpmn8r 9.96265 fshow
+newpath 75.36722 -42.69473 moveto
+75.36722 -87.52652 lineto stroke
+80.34853 -83.22516 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77834 -78.94978 moveto
+147.03174 -66.13057 lineto stroke
+newpath 143.74355 -68.40811 moveto
+147.03174 -66.13057 lineto
+143.09618 -65.41586 lineto
+ closepath
+gsave fill grestore stroke
+149.03136 -68.36592 moveto
+(7) jkpmn8r 9.96265 fshow
+newpath 156.46112 -64.15948 moveto
+215.71425 -52.20636 lineto stroke
+newpath 212.39427 -54.43777 moveto
+215.71425 -52.20636 lineto
+211.78883 -51.43655 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 234.09274 -42.69473 moveto
+234.09274 -87.52652 lineto stroke
+newpath 236.08527 -42.69473 moveto
+236.08527 -87.52652 lineto stroke
+217.71419 -52.71463 moveto
+(+) jkpmn8r 9.96265 fshow
+223.95079 -52.71463 moveto
+(1) jkpsy 9.96265 fshow
+237.08153 -82.08691 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 253.12047 -75.85283 moveto
+300.77975 -52.55618 lineto stroke
+newpath 298.1317 -55.55458 moveto
+300.77975 -52.55618 lineto
+296.7871 -52.80385 lineto
+ closepath
+gsave fill grestore stroke
+302.78006 -53.50668 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -16.01971 moveto
+313.84352 -16.01971 lineto stroke
+newpath 0 -42.69473 moveto
+313.84352 -42.69473 lineto stroke
+newpath 0 0 moveto
+313.84352 0 lineto stroke
+newpath 0 -87.52652 moveto
+313.84352 -87.52652 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.52652 lineto stroke
+newpath 313.84352 0 moveto
+313.84352 -87.52652 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.4 b/macros/latex/contrib/tablor/Figures/tablor_Tab.4
new file mode 100644
index 0000000000..c9a8187d97
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.4
@@ -0,0 +1,73 @@
+%!PS
+%%BoundingBox: -1 -62 214 1
+%%HiResBoundingBox: -0.25 -61.02197 213.01172 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 30:ad40000002004c4338
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(5) jkpmn8r 9.96265 fshow
+141.67842 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+199.63596 -11.22539 moveto
+(7) jkpmn8r 9.96265 fshow
+8.7173 -36.28383 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -36.28383 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -36.28383 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -36.28383 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -45.00612 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -60.77197 lineto stroke
+80.67728 -28.43584 moveto
+(25) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 93.5368 -28.53957 moveto
+139.6782 -49.39995 lineto stroke
+newpath 135.68013 -49.27242 moveto
+139.6782 -49.39995 lineto
+136.94136 -46.48265 lineto
+ closepath
+gsave fill grestore stroke
+141.67842 -54.78691 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 149.10776 -49.38809 moveto
+194.92116 -28.55852 lineto stroke
+newpath 192.19057 -31.4816 moveto
+194.92116 -28.55852 lineto
+190.92342 -28.69455 lineto
+ closepath
+gsave fill grestore stroke
+196.9211 -28.46074 moveto
+(49) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+212.76172 -15.94019 lineto stroke
+newpath 0 0 moveto
+212.76172 0 lineto stroke
+newpath 0 -60.77197 moveto
+212.76172 -60.77197 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -60.77197 lineto stroke
+newpath 212.76172 0 moveto
+212.76172 -60.77197 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.40 b/macros/latex/contrib/tablor/Figures/tablor_Tab.40
new file mode 100644
index 0000000000..caddb3fb1e
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.40
@@ -0,0 +1,161 @@
+%!PS
+%%BoundingBox: -1 -90 340 1
+%%HiResBoundingBox: -0.25 -89.24701 339.6287 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:c0c000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000080000000000000008
+%*Font: jkpmn8r 7.57156 9.96265 31:f
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+80.34853 -11.96555 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.96555 moveto
+(1) jkpmn8r 9.96265 fshow
+141.67842 -9.9682 moveto
+(\013) jkpmia 9.96265 fshow
+147.85522 -12.0105 moveto
+(1) jkpmn8r 7.57156 fshow
+206.04016 -7.50307 moveto
+(\000) jkpsy 7.57156 fshow
+210.66646 -7.50307 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 206.04016 -8.93765 moveto
+214.79297 -8.93765 lineto stroke
+208.35327 -14.86546 moveto
+(2) jkpmn8r 7.57156 fshow
+268.3532 -9.9682 moveto
+(\013) jkpmia 9.96265 fshow
+274.53 -12.0105 moveto
+(2) jkpmn8r 7.57156 fshow
+328.96779 -11.96555 moveto
+(1) jkpmn8r 9.96265 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -39.08426 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -39.08426 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.16522 lineto stroke
+112.7187 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 147.07918 -17.4205 moveto
+147.07918 -44.16522 lineto stroke
+174.87352 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+207.70177 -34.04816 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 210.41656 -17.4205 moveto
+210.41656 -44.16522 lineto stroke
+238.2109 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 273.75395 -17.4205 moveto
+273.75395 -44.16522 lineto stroke
+298.84392 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -64.50887 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.50887 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.50887 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.50887 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -73.23116 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -44.16522 moveto
+75.36722 -88.99701 lineto stroke
+83.39214 -83.01195 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 90.82199 -78.73776 moveto
+142.36476 -67.59987 lineto stroke
+newpath 139.07611 -69.87651 moveto
+142.36476 -67.59987 lineto
+138.4295 -66.8842 lineto
+ closepath
+gsave fill grestore stroke
+144.36438 -69.83641 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 151.79355 -65.60045 moveto
+200.2933 -55.51143 lineto stroke
+newpath 196.98686 -57.76285 moveto
+200.2933 -55.51143 lineto
+196.36333 -54.76535 lineto
+ closepath
+gsave fill grestore stroke
+203.48851 -53.12514 moveto
+(3) jkpmn8r 7.57156 fshow
+207.61502 -46.65143 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 213.21802 -46.46214 moveto
+217.34451 -46.46214 lineto stroke
+213.21802 -53.12514 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 203.48851 -54.92473 moveto
+217.34451 -54.92473 lineto stroke
+208.35332 -60.85254 moveto
+(4) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 220.54015 -55.51152 moveto
+269.0388 -65.60027 lineto stroke
+newpath 265.1089 -66.34631 moveto
+269.0388 -65.60027 lineto
+265.73244 -63.34888 lineto
+ closepath
+gsave fill grestore stroke
+271.03915 -69.83641 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 278.46878 -67.65347 moveto
+326.96744 -78.6842 lineto stroke
+newpath 323.02417 -79.3573 moveto
+326.96744 -78.6842 lineto
+323.70322 -76.3718 lineto
+ closepath
+gsave fill grestore stroke
+328.96779 -83.01195 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -17.4205 moveto
+339.3787 -17.4205 lineto stroke
+newpath 0 -44.16522 moveto
+339.3787 -44.16522 lineto stroke
+newpath 0 0 moveto
+339.3787 0 lineto stroke
+newpath 0 -88.99701 moveto
+339.3787 -88.99701 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -88.99701 lineto stroke
+newpath 339.3787 0 moveto
+339.3787 -88.99701 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.41 b/macros/latex/contrib/tablor/Figures/tablor_Tab.41
new file mode 100644
index 0000000000..8fc93894b9
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.41
@@ -0,0 +1,162 @@
+%!PS
+%%BoundingBox: -1 -90 370 1
+%%HiResBoundingBox: -0.25 -89.24701 369.99078 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 3a:8000000000080002
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:c0f1c0000012004d4338
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000080000000000000008
+%*Font: jkpmn8r 7.57156 9.96265 31:f
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+80.34853 -11.96555 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.96555 moveto
+(1) jkpmn8r 9.96265 fshow
+141.67842 -11.88835 moveto
+(\000) jkpsy 9.96265 fshow
+147.76563 -11.88835 moveto
+(0) jkpmn8r 9.96265 fshow
+153.19522 -11.88835 moveto
+(:) jkpmi 9.96265 fshow
+155.63612 -11.88835 moveto
+(839287) jkpmn8r 9.96265 fshow
+241.77417 -7.50307 moveto
+(\000) jkpsy 7.57156 fshow
+246.40047 -7.50307 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 241.77417 -8.93765 moveto
+250.52698 -8.93765 lineto stroke
+244.08728 -14.86546 moveto
+(2) jkpmn8r 7.57156 fshow
+304.0872 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+359.32988 -11.96555 moveto
+(1) jkpmn8r 9.96265 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -39.08426 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -39.08426 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.16522 lineto stroke
+121.6522 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 164.94618 -17.4205 moveto
+164.94618 -44.16522 lineto stroke
+201.67403 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+243.43578 -34.04816 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 246.15057 -17.4205 moveto
+246.15057 -44.16522 lineto stroke
+272.60193 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 306.802 -17.4205 moveto
+306.802 -44.16522 lineto stroke
+330.54898 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -64.50887 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.50887 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.50887 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.50887 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -73.23116 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -44.16522 moveto
+75.36722 -88.99701 lineto stroke
+83.39214 -83.01195 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 90.82144 -78.96875 moveto
+160.2308 -67.36916 lineto stroke
+newpath 156.8383 -69.48805 moveto
+160.2308 -67.36916 lineto
+156.33366 -66.46852 lineto
+ closepath
+gsave fill grestore stroke
+162.23138 -69.83641 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 169.66087 -65.81615 moveto
+236.02681 -55.04817 lineto stroke
+newpath 232.62416 -57.15106 moveto
+236.02681 -55.04817 lineto
+232.13383 -54.12903 lineto
+ closepath
+gsave fill grestore stroke
+239.22252 -53.12514 moveto
+(3) jkpmn8r 7.57156 fshow
+243.34903 -46.65143 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 248.95203 -46.46214 moveto
+253.07852 -46.46214 lineto stroke
+248.95203 -53.12514 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 239.22252 -54.92473 moveto
+253.07852 -54.92473 lineto stroke
+244.08733 -60.85254 moveto
+(4) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 256.27425 -55.60477 moveto
+302.0874 -65.55696 lineto stroke
+newpath 298.1509 -66.2684 moveto
+302.0874 -65.55696 lineto
+298.80086 -63.27643 lineto
+ closepath
+gsave fill grestore stroke
+304.0872 -69.83641 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 311.51656 -67.70557 moveto
+357.33003 -78.6322 lineto stroke
+newpath 353.38014 -79.26385 moveto
+357.33003 -78.6322 lineto
+354.09044 -76.2858 lineto
+ closepath
+gsave fill grestore stroke
+359.32988 -83.01195 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -17.4205 moveto
+369.74078 -17.4205 lineto stroke
+newpath 0 -44.16522 moveto
+369.74078 -44.16522 lineto stroke
+newpath 0 0 moveto
+369.74078 0 lineto stroke
+newpath 0 -88.99701 moveto
+369.74078 -88.99701 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -88.99701 lineto stroke
+newpath 369.74078 0 moveto
+369.74078 -88.99701 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.42 b/macros/latex/contrib/tablor/Figures/tablor_Tab.42
new file mode 100644
index 0000000000..2d4d39a08f
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.42
@@ -0,0 +1,114 @@
+%!PS
+%%BoundingBox: -1 -88 230 1
+%%HiResBoundingBox: -0.25 -87.7667 229.00171 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+153.14543 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+208.3881 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+214.62471 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+newpath 85.11067 -15.94019 moveto
+85.11067 -42.6849 lineto stroke
+newpath 87.1032 -15.94019 moveto
+87.1032 -42.6849 lineto stroke
+117.10922 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+153.14543 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 155.86023 -15.94019 moveto
+155.86023 -42.6849 lineto stroke
+182.09538 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+newpath 85.11067 -42.6849 moveto
+85.11067 -87.5167 lineto stroke
+newpath 87.1032 -42.6849 moveto
+87.1032 -87.5167 lineto stroke
+88.09946 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 105.11255 -74.1594 moveto
+151.14522 -53.99106 lineto stroke
+newpath 148.3747 -56.87613 moveto
+151.14522 -53.99106 lineto
+147.14612 -54.07199 lineto
+ closepath
+gsave fill grestore stroke
+153.14543 -55.18056 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 160.57497 -53.98836 moveto
+206.67075 -74.1593 lineto stroke
+newpath 202.67151 -74.08022 moveto
+206.67075 -74.1593 lineto
+203.89883 -71.27544 lineto
+ closepath
+gsave fill grestore stroke
+208.4628 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+228.75171 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+228.75171 -42.6849 lineto stroke
+newpath 0 0 moveto
+228.75171 0 lineto stroke
+newpath 0 -87.5167 moveto
+228.75171 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 228.75171 0 moveto
+228.75171 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.43 b/macros/latex/contrib/tablor/Figures/tablor_Tab.43
new file mode 100644
index 0000000000..5e9cb7d153
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.43
@@ -0,0 +1,323 @@
+%!PS
+%%BoundingBox: -1 -143 486 1
+%%HiResBoundingBox: -0.25 -142.68448 485.51508 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0f000010010000d42
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000000000000000000008
+%*Font: jkpmn8r 7.57156 9.96265 28:c034
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+26.11626 -13.26405 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 57.51273 0 moveto
+57.51273 -22.01001 lineto stroke
+62.49403 -14.2603 moveto
+(\000) jkpsy 9.96265 fshow
+68.58124 -14.2603 moveto
+(10) jkpmn8r 9.96265 fshow
+130.44902 -9.72147 moveto
+(\() jkpmn8r 7.57156 fshow
+133.03093 -9.72147 moveto
+(\000) jkpsy 7.57156 fshow
+137.65723 -10.25946 moveto
+(\() jkpmn8r 9.96265 fshow
+141.05443 -3.24777 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 146.65742 -3.05847 moveto
+150.78392 -3.05847 lineto stroke
+146.65742 -9.72147 moveto
+(5) jkpmn8r 7.57156 fshow
+150.78392 -10.25946 moveto
+(\)) jkpmn8r 9.96265 fshow
+154.03183 -9.72147 moveto
+(\000) jkpsy 7.57156 fshow
+158.65802 -9.72147 moveto
+(3\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 130.44902 -13.52716 moveto
+165.25293 -13.52716 lineto stroke
+145.78772 -19.45497 moveto
+(2) jkpmn8r 7.57156 fshow
+216.26152 -14.2603 moveto
+(\000) jkpsy 9.96265 fshow
+222.34872 -14.2603 moveto
+(1) jkpmn8r 9.96265 fshow
+278.78691 -10.29291 moveto
+(\() jkpmn8r 7.57156 fshow
+281.36882 -3.81921 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop
+newpath 286.97182 -3.62991 moveto
+291.09831 -3.62991 lineto stroke
+286.97182 -10.29291 moveto
+(5) jkpmn8r 7.57156 fshow
+291.09831 -10.29291 moveto
+(\000) jkpsy 7.57156 fshow
+295.72461 -10.29291 moveto
+(3\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 278.78691 -12.9557 moveto
+302.31952 -12.9557 lineto stroke
+288.48991 -18.88351 moveto
+(2) jkpmn8r 7.57156 fshow
+353.32811 -14.2603 moveto
+(1) jkpmn8r 9.96265 fshow
+409.76628 -9.79782 moveto
+(3) jkpmn8r 7.57156 fshow
+newpath 409.76628 -11.2324 moveto
+413.89279 -11.2324 lineto stroke
+409.76628 -17.16022 moveto
+(2) jkpmn8r 7.57156 fshow
+464.90147 -13.46825 moveto
+(+) jkpmn8r 9.96265 fshow
+471.13808 -13.46825 moveto
+(1) jkpsy 9.96265 fshow
+10.10135 -31.66878 moveto
+(Signe) jkpmn8r 9.96265 fshow
+36.77126 -31.66878 moveto
+(de) jkpmn8r 9.96265 fshow
+12.86435 -42.36867 moveto
+(\000) jkpsy 9.96265 fshow
+18.95146 -42.36867 moveto
+(2) jkpmn8r 9.96265 fshow
+24.38115 -42.36867 moveto
+(x) jkpmi 9.96265 fshow
+31.32176 -42.36867 moveto
+(+) jkpmn8r 9.96265 fshow
+39.21875 -42.36867 moveto
+(3) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 57.51273 -22.01001 moveto
+57.51273 -44.94403 lineto stroke
+105.53476 -35.96767 moveto
+(+) cmr10 9.96265 fshow
+newpath 147.85098 -22.01001 moveto
+147.85098 -44.94403 lineto stroke
+181.0611 -35.96767 moveto
+(+) cmr10 9.96265 fshow
+newpath 222.01993 -22.01001 moveto
+222.01993 -44.94403 lineto stroke
+252.41222 -35.96767 moveto
+(+) cmr10 9.96265 fshow
+newpath 290.55322 -22.01001 moveto
+290.55322 -44.94403 lineto stroke
+319.4237 -35.96767 moveto
+(+) cmr10 9.96265 fshow
+newpath 356.04291 -22.01001 moveto
+356.04291 -44.94403 lineto stroke
+380.06189 -35.96767 moveto
+(+) cmr10 9.96265 fshow
+409.11479 -36.73232 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 411.82959 -22.01001 moveto
+411.82959 -44.94403 lineto stroke
+438.33675 -35.96767 moveto
+(\000) cmsy10 9.96265 fshow
+10.10135 -54.6028 moveto
+(Signe) jkpmn8r 9.96265 fshow
+36.77126 -54.6028 moveto
+(de) jkpmn8r 9.96265 fshow
+18.69746 -65.30269 moveto
+(x) jkpmi 9.96265 fshow
+25.63806 -65.30269 moveto
+(\000) jkpsy 9.96265 fshow
+33.38556 -65.30269 moveto
+(1) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 57.51273 -44.94403 moveto
+57.51273 -67.87805 lineto stroke
+105.53476 -58.90169 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 147.85098 -44.94403 moveto
+147.85098 -67.87805 lineto stroke
+181.0611 -58.90169 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 222.01993 -44.94403 moveto
+222.01993 -67.87805 lineto stroke
+252.41222 -58.90169 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 290.55322 -44.94403 moveto
+290.55322 -67.87805 lineto stroke
+319.4237 -58.90169 moveto
+(\000) cmsy10 9.96265 fshow
+353.32811 -59.66634 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 356.04291 -44.94403 moveto
+356.04291 -67.87805 lineto stroke
+380.06189 -58.90169 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 411.82959 -44.94403 moveto
+411.82959 -67.87805 lineto stroke
+438.33675 -58.90169 moveto
+(+) cmr10 9.96265 fshow
+10.10135 -77.53682 moveto
+(Signe) jkpmn8r 9.96265 fshow
+36.77126 -77.53682 moveto
+(de) jkpmn8r 9.96265 fshow
+18.62276 -88.23671 moveto
+(x) jkpmi 9.96265 fshow
+25.56335 -88.23671 moveto
+(+) jkpmn8r 9.96265 fshow
+33.46036 -88.23671 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 57.51273 -67.87805 moveto
+57.51273 -90.81207 lineto stroke
+105.53476 -81.83571 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 147.85098 -67.87805 moveto
+147.85098 -90.81207 lineto stroke
+181.0611 -81.83571 moveto
+(\000) cmsy10 9.96265 fshow
+219.30513 -82.60036 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 222.01993 -67.87805 moveto
+222.01993 -90.81207 lineto stroke
+252.41222 -81.83571 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 290.55322 -67.87805 moveto
+290.55322 -90.81207 lineto stroke
+319.4237 -81.83571 moveto
+(+) cmr10 9.96265 fshow
+newpath 356.04291 -67.87805 moveto
+356.04291 -90.81207 lineto stroke
+380.06189 -81.83571 moveto
+(+) cmr10 9.96265 fshow
+newpath 411.82959 -67.87805 moveto
+411.82959 -90.81207 lineto stroke
+438.33675 -81.83571 moveto
+(+) cmr10 9.96265 fshow
+10.10141 -100.47083 moveto
+(Signe) jkpmn8r 9.96265 fshow
+36.7713 -100.47083 moveto
+(de) jkpmn8r 9.96265 fshow
+6.1768 -113.70233 moveto
+(x) jkpmi 9.96265 fshow
+11.457 -109.58783 moveto
+(2) jkpmn8r 7.57156 fshow
+17.74211 -113.70233 moveto
+(+) jkpmn8r 9.96265 fshow
+25.63911 -113.70233 moveto
+(3) jkpmn8r 9.96265 fshow
+31.06871 -113.70233 moveto
+(x) jkpmi 9.96265 fshow
+38.00931 -113.70233 moveto
+(+) jkpmn8r 9.96265 fshow
+45.90631 -113.70233 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 57.51273 -90.81207 moveto
+57.51273 -116.27768 lineto stroke
+105.53476 -106.03552 moveto
+(+) cmr10 9.96265 fshow
+145.13618 -106.80017 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 147.85098 -90.81207 moveto
+147.85098 -116.27768 lineto stroke
+181.0611 -106.03552 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 222.01993 -90.81207 moveto
+222.01993 -116.27768 lineto stroke
+252.41222 -106.03552 moveto
+(\000) cmsy10 9.96265 fshow
+287.83842 -106.80017 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 290.55322 -90.81207 moveto
+290.55322 -116.27768 lineto stroke
+319.4237 -106.03552 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 356.04291 -90.81207 moveto
+356.04291 -116.27768 lineto stroke
+380.06189 -106.03552 moveto
+(+) cmr10 9.96265 fshow
+newpath 411.82959 -90.81207 moveto
+411.82959 -116.27768 lineto stroke
+438.33675 -106.03552 moveto
+(+) cmr10 9.96265 fshow
+10.10135 -125.93642 moveto
+(Signe) jkpmn8r 9.96265 fshow
+36.77126 -125.93642 moveto
+(de) jkpmn8r 9.96265 fshow
+19.34665 -137.42332 moveto
+(G) jkpmn8r 9.96265 fshow
+26.44006 -137.42332 moveto
+(\() jkpmn8r 9.96265 fshow
+29.83725 -137.42332 moveto
+(x) jkpmi 9.96265 fshow
+35.11746 -137.42332 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 57.51273 -116.27768 moveto
+57.51273 -142.43448 lineto stroke
+105.53476 -131.84673 moveto
+(+) cmr10 9.96265 fshow
+145.13618 -132.61137 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 147.85098 -116.27768 moveto
+147.85098 -142.43448 lineto stroke
+181.0611 -131.84673 moveto
+(\000) cmsy10 9.96265 fshow
+219.30513 -132.61137 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 222.01993 -116.27768 moveto
+222.01993 -142.43448 lineto stroke
+252.41222 -131.84673 moveto
+(+) cmr10 9.96265 fshow
+287.83842 -132.61137 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 290.55322 -116.27768 moveto
+290.55322 -142.43448 lineto stroke
+319.4237 -131.84673 moveto
+(\000) cmsy10 9.96265 fshow
+353.32811 -132.61137 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 356.04291 -116.27768 moveto
+356.04291 -142.43448 lineto stroke
+380.06189 -131.84673 moveto
+(+) cmr10 9.96265 fshow
+409.11479 -132.61137 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 411.82959 -116.27768 moveto
+411.82959 -142.43448 lineto stroke
+438.33675 -131.84673 moveto
+(\000) cmsy10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -22.01001 moveto
+485.26508 -22.01001 lineto stroke
+newpath 0 -44.94403 moveto
+485.26508 -44.94403 lineto stroke
+newpath 0 -67.87805 moveto
+485.26508 -67.87805 lineto stroke
+newpath 0 -90.81207 moveto
+485.26508 -90.81207 lineto stroke
+newpath 0 -116.27768 moveto
+485.26508 -116.27768 lineto stroke
+newpath 0 0 moveto
+485.26508 0 lineto stroke
+newpath 0 -142.43448 moveto
+485.26508 -142.43448 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -142.43448 lineto stroke
+newpath 485.26508 0 moveto
+485.26508 -142.43448 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.44 b/macros/latex/contrib/tablor/Figures/tablor_Tab.44
new file mode 100644
index 0000000000..7524050a0f
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.44
@@ -0,0 +1,144 @@
+%!PS
+%%BoundingBox: -1 -88 320 1
+%%HiResBoundingBox: -0.25 -87.7667 319.9426 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 65:c0001
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0d000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 00:8000000000008
+%*Font: jkpmn8r 7.57156 9.96265 31:9
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+161.38951 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+167.47672 -11.22539 moveto
+(3) jkpmn8r 9.96265 fshow
+238.7144 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+244.8912 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+299.329 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+305.5656 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+123.6821 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+164.43312 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 167.14792 -15.94019 moveto
+167.14792 -42.6849 lineto stroke
+201.75719 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+newpath 244.11516 -15.94019 moveto
+244.11516 -42.6849 lineto stroke
+271.6933 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+82.20657 -55.18056 moveto
+(\000) jkpsy 9.96265 fshow
+88.29378 -55.18056 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 95.72307 -54.50705 moveto
+143.39449 -70.37149 lineto stroke
+newpath 139.40443 -70.65703 moveto
+143.39449 -70.37149 lineto
+140.37123 -67.75197 lineto
+ closepath
+gsave fill grestore stroke
+145.39452 -80.76703 moveto
+(\000) jkpsy 9.96265 fshow
+152.58862 -71.23523 moveto
+(\020) jkpex 9.96265 fshow
+156.52382 -80.76703 moveto
+(e) jkpmi 9.96265 fshow
+160.87752 -77.15063 moveto
+(\000) jkpsy 7.57156 fshow
+165.50381 -77.15063 moveto
+(4) jkpmn8r 7.57156 fshow
+170.12842 -71.23523 moveto
+(\021) jkpex 9.96265 fshow
+175.72412 -80.76703 moveto
+(\000) jkpsy 9.96265 fshow
+183.47162 -80.76703 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 190.90187 -74.21007 moveto
+239.40005 -65.90797 lineto stroke
+newpath 236.01566 -68.04047 moveto
+239.40005 -65.90797 lineto
+235.49905 -65.02267 lineto
+ closepath
+gsave fill grestore stroke
+241.40036 -68.3561 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 248.82994 -64.11327 moveto
+297.3286 -53.95517 lineto stroke
+newpath 294.02565 -56.21083 moveto
+297.3286 -53.95517 lineto
+293.39809 -53.21455 lineto
+ closepath
+gsave fill grestore stroke
+299.329 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+305.5656 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+319.6926 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+319.6926 -42.6849 lineto stroke
+newpath 0 0 moveto
+319.6926 0 lineto stroke
+newpath 0 -87.5167 moveto
+319.6926 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 319.6926 0 moveto
+319.6926 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.45 b/macros/latex/contrib/tablor/Figures/tablor_Tab.45
new file mode 100644
index 0000000000..ec3e5d855c
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.45
@@ -0,0 +1,123 @@
+%!PS
+%%BoundingBox: -1 -88 282 1
+%%HiResBoundingBox: -0.25 -87.7667 281.86539 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0e000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 31:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+145.39452 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+200.63719 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+206.814 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+261.25179 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+267.48839 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+114.1628 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+145.39452 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 148.10931 -15.94019 moveto
+148.10931 -42.6849 lineto stroke
+173.19928 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 206.03795 -15.94019 moveto
+206.03795 -42.6849 lineto stroke
+233.61609 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+85.25018 -81.53163 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 92.67935 -76.21082 moveto
+143.39485 -53.99083 lineto stroke
+newpath 140.62454 -56.87566 moveto
+143.39485 -53.99083 lineto
+139.39606 -54.07173 lineto
+ closepath
+gsave fill grestore stroke
+145.39452 -55.18056 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 152.82414 -52.99762 moveto
+201.3228 -64.02835 lineto stroke
+newpath 197.37953 -64.70145 moveto
+201.3228 -64.02835 lineto
+198.05858 -61.71594 lineto
+ closepath
+gsave fill grestore stroke
+203.32315 -68.3561 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 210.75273 -66.08833 moveto
+259.32683 -76.26222 lineto stroke
+newpath 255.39613 -77.00287 moveto
+259.32683 -76.26222 lineto
+256.02373 -74.00644 lineto
+ closepath
+gsave fill grestore stroke
+261.32648 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+281.61539 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+281.61539 -42.6849 lineto stroke
+newpath 0 0 moveto
+281.61539 0 lineto stroke
+newpath 0 -87.5167 moveto
+281.61539 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 281.61539 0 moveto
+281.61539 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.47 b/macros/latex/contrib/tablor/Figures/tablor_Tab.47
new file mode 100644
index 0000000000..a6f386f837
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.47
@@ -0,0 +1,128 @@
+%!PS
+%%BoundingBox: -1 -89 248 1
+%%HiResBoundingBox: -0.25 -88.17017 247.64279 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4b38
+%*Font: jkpsy 9.96265 9.96265 31:8
+%*Font: jkpex 9.96265 9.96265 12:c
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmi 7.57156 9.96265 65:8
+%*Font: jkpmn8r 7.57156 9.96265 28:d04
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 5.97765 9.96265 31:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+153.68886 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+227.02919 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+233.2658 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+115.85913 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+153.68886 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 156.40366 -15.94019 moveto
+156.40366 -42.6849 lineto stroke
+191.68764 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.23029 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.23029 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.23029 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.23029 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.95258 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.92017 lineto stroke
+80.34853 -81.01111 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77802 -76.1547 moveto
+133.5916 -60.59627 lineto stroke
+newpath 130.58469 -63.23405 moveto
+133.5916 -60.59627 lineto
+129.60019 -60.33519 lineto
+ closepath
+gsave fill grestore stroke
+135.5912 -55.3399 moveto
+(ln) jkpmn8r 9.96265 fshow
+145.7143 -43.2677 moveto
+(\022) jkpex 9.96265 fshow
+150.97461 -50.1864 moveto
+(\() jkpmn8r 7.57156 fshow
+153.5565 -50.1864 moveto
+(e) jkpmi 7.57156 fshow
+156.8652 -47.438 moveto
+(1) jkpmn8r 5.97765 fshow
+160.62111 -50.1864 moveto
+(+1\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 150.97461 -52.8492 moveto
+171.9558 -52.8492 lineto stroke
+157.9329 -59.7418 moveto
+(e) jkpmi 7.57156 fshow
+161.24161 -57.5536 moveto
+(1) jkpmn8r 5.97765 fshow
+173.1514 -43.2677 moveto
+(\023) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 179.21654 -60.10431 moveto
+230.00551 -76.25641 lineto stroke
+newpath 226.01964 -76.59521 moveto
+230.00551 -76.25641 lineto
+226.94756 -73.67749 lineto
+ closepath
+gsave fill grestore stroke
+232.00554 -81.01111 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+247.39279 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+247.39279 -42.6849 lineto stroke
+newpath 0 0 moveto
+247.39279 0 lineto stroke
+newpath 0 -87.92017 moveto
+247.39279 -87.92017 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.92017 lineto stroke
+newpath 247.39279 0 moveto
+247.39279 -87.92017 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.48 b/macros/latex/contrib/tablor/Figures/tablor_Tab.48
new file mode 100644
index 0000000000..9440c2d4ab
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.48
@@ -0,0 +1,109 @@
+%!PS
+%%BoundingBox: -1 -88 230 1
+%%HiResBoundingBox: -0.25 -87.7667 229.09662 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 28:c0c000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8002
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmn8r 7.57156 9.96265 31:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+135.5912 -9.22804 moveto
+(\013) jkpmia 9.96265 fshow
+141.768 -11.27034 moveto
+(1) jkpmn8r 7.57156 fshow
+206.6682 -10.23164 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+108.15329 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 140.99196 -15.94019 moveto
+140.99196 -42.6849 lineto stroke
+171.6394 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+80.34853 -55.18056 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77815 -52.99762 moveto
+136.27681 -64.02835 lineto stroke
+newpath 132.33354 -64.70145 moveto
+136.27681 -64.02835 lineto
+133.01259 -61.71594 lineto
+ closepath
+gsave fill grestore stroke
+138.27716 -68.3561 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 145.70647 -66.00049 moveto
+194.20554 -75.25551 lineto stroke
+newpath 190.28886 -76.06639 moveto
+194.20554 -75.25551 lineto
+190.86269 -73.05931 lineto
+ closepath
+gsave fill grestore stroke
+196.2058 -81.45944 moveto
+(\000) jkpsy 9.96265 fshow
+202.293 -81.45944 moveto
+(\031) jkpmia 9.96265 fshow
+210.6881 -81.45944 moveto
+(\000) jkpsy 9.96265 fshow
+218.4357 -81.45944 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+228.84662 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+228.84662 -42.6849 lineto stroke
+newpath 0 0 moveto
+228.84662 0 lineto stroke
+newpath 0 -87.5167 moveto
+228.84662 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 228.84662 0 moveto
+228.84662 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.49 b/macros/latex/contrib/tablor/Figures/tablor_Tab.49
new file mode 100644
index 0000000000..282f9e9a48
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.49
@@ -0,0 +1,176 @@
+%!PS
+%%BoundingBox: -1 -95 359 1
+%%HiResBoundingBox: -0.25 -94.21893 358.68729 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: jkpmia 9.96265 9.96265 0b:8
+%*Font: jkpsy 5.97765 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmi 7.57156 9.96265 65:8
+%*Font: jkpmn8r 7.57156 9.96265 31:d
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 5.97765 9.96265 31:c
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -13.45526 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -22.39243 lineto stroke
+80.34853 -14.4515 moveto
+(0) jkpmn8r 9.96265 fshow
+150.45947 -12.45416 moveto
+(\013) jkpmia 9.96265 fshow
+156.63628 -14.49646 moveto
+(1) jkpmn8r 7.57156 fshow
+217.11801 -7.50307 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 212.62721 -8.93765 moveto
+225.73521 -8.93765 lineto stroke
+212.62721 -19.86766 moveto
+(e) jkpmi 7.57156 fshow
+217.13152 -13.64206 moveto
+(\000) jkpsy 5.97765 fshow
+220.78381 -13.64206 moveto
+(1) jkpmn8r 5.97765 fshow
+ 0 0.2989 dtransform truncate idtransform setlinewidth pop
+newpath 217.13152 -14.50285 moveto
+224.04161 -14.50285 lineto stroke
+218.95772 -18.90826 moveto
+(2) jkpmn8r 5.97765 fshow
+277.10144 -12.45416 moveto
+(\013) jkpmia 9.96265 fshow
+283.27824 -14.49646 moveto
+(2) jkpmn8r 7.57156 fshow
+338.07368 -13.65945 moveto
+(+) jkpmn8r 9.96265 fshow
+344.31029 -13.65945 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -32.05128 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -32.05128 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -44.05618 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -39.9417 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -44.05618 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -44.05618 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -44.05618 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -22.39243 moveto
+75.36722 -49.13715 lineto stroke
+newpath 82.06706 -22.39243 moveto
+82.06706 -49.13715 lineto stroke
+newpath 84.05959 -22.39243 moveto
+84.05959 -49.13715 lineto stroke
+115.58742 -38.25543 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 155.86023 -22.39243 moveto
+155.86023 -49.13715 lineto stroke
+183.64636 -38.25543 moveto
+(+) cmr10 9.96265 fshow
+216.46642 -39.02008 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 219.18121 -22.39243 moveto
+219.18121 -49.13715 lineto stroke
+246.96735 -38.25543 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 282.5022 -22.39243 moveto
+282.5022 -49.13715 lineto stroke
+310.25916 -38.25543 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -69.48079 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -69.48079 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -69.48079 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -69.48079 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -78.20308 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -49.13715 moveto
+75.36722 -93.96893 lineto stroke
+newpath 82.06706 -49.13715 moveto
+82.06706 -93.96893 lineto stroke
+newpath 84.05959 -49.13715 moveto
+84.05959 -93.96893 lineto stroke
+85.05585 -86.84563 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 102.28896 -82.72339 moveto
+148.10196 -73.17073 lineto stroke
+newpath 144.79648 -75.42377 moveto
+148.10196 -73.17073 lineto
+144.17151 -72.42648 lineto
+ closepath
+gsave fill grestore stroke
+150.10182 -74.80833 moveto
+(\000) jkpsy 9.96265 fshow
+156.18903 -74.80833 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 163.61882 -69.93864 moveto
+213.9222 -59.47179 lineto stroke
+newpath 210.61604 -61.72328 moveto
+213.9222 -59.47179 lineto
+209.99236 -58.72597 lineto
+ closepath
+gsave fill grestore stroke
+217.1179 -57.17032 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 217.1179 -58.6049 moveto
+221.24442 -58.6049 lineto stroke
+217.1179 -64.53271 moveto
+(4) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 224.44023 -59.47179 moveto
+274.74388 -69.93874 lineto stroke
+newpath 270.814 -70.68457 moveto
+274.74388 -69.93874 lineto
+271.43768 -67.68723 lineto
+ closepath
+gsave fill grestore stroke
+276.74379 -74.80833 moveto
+(\000) jkpsy 9.96265 fshow
+282.831 -74.80833 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 290.26042 -73.16881 moveto
+336.14877 -82.72586 lineto stroke
+newpath 332.21855 -83.47101 moveto
+336.14877 -82.72586 lineto
+332.84282 -80.4736 lineto
+ closepath
+gsave fill grestore stroke
+338.14838 -86.84563 moveto
+(\0001) jkpsy 9.96265 fshow
+newpath 0 -22.39243 moveto
+358.43729 -22.39243 lineto stroke
+newpath 0 -49.13715 moveto
+358.43729 -49.13715 lineto stroke
+newpath 0 0 moveto
+358.43729 0 lineto stroke
+newpath 0 -93.96893 moveto
+358.43729 -93.96893 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -93.96893 lineto stroke
+newpath 358.43729 0 moveto
+358.43729 -93.96893 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.5 b/macros/latex/contrib/tablor/Figures/tablor_Tab.5
new file mode 100644
index 0000000000..79c5a2f7a3
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.5
@@ -0,0 +1,108 @@
+%!PS
+%%BoundingBox: -1 -88 222 1
+%%HiResBoundingBox: -0.25 -87.7667 221.40018 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d08000000012004d4338
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.42322 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+145.5439 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+200.78658 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+207.02318 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+114.27483 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+145.5439 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 148.2587 -15.94019 moveto
+148.2587 -42.6849 lineto stroke
+174.49385 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+80.34853 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+86.58513 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 97.73099 -56.16608 moveto
+143.5441 -76.21329 lineto stroke
+newpath 139.54497 -76.1342 moveto
+143.5441 -76.21329 lineto
+140.77226 -73.32951 lineto
+ closepath
+gsave fill grestore stroke
+145.5439 -81.53163 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 152.97343 -76.21324 moveto
+198.78632 -56.16608 lineto stroke
+newpath 196.01453 -59.04984 moveto
+198.78632 -56.16608 lineto
+194.78723 -56.24518 lineto
+ closepath
+gsave fill grestore stroke
+200.78658 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+207.02318 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+221.15018 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+221.15018 -42.6849 lineto stroke
+newpath 0 0 moveto
+221.15018 0 lineto stroke
+newpath 0 -87.5167 moveto
+221.15018 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 221.15018 0 moveto
+221.15018 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.50 b/macros/latex/contrib/tablor/Figures/tablor_Tab.50
new file mode 100644
index 0000000000..2a769043cf
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.50
@@ -0,0 +1,206 @@
+%!PS
+%%BoundingBox: -1 -95 398 1
+%%HiResBoundingBox: -0.25 -94.21893 397.77255 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 65:c0001
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: jkpsy 5.97765 9.96265 00:80000000000000000000000000008
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmi 7.57156 9.96265 65:8
+%*Font: jkpmn8r 5.97765 9.96265 28:d064
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 7.57156 9.96265 31:9
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -13.45526 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -22.39243 lineto stroke
+80.34853 -14.4515 moveto
+(0) jkpmn8r 9.96265 fshow
+150.10182 -19.29482 moveto
+(e) jkpmi 9.96265 fshow
+155.65102 -9.49861 moveto
+(\() jkpmn8r 5.97765 fshow
+157.68932 -9.49861 moveto
+(\000) jkpsy 5.97765 fshow
+161.34163 -10.43512 moveto
+(\() jkpmn8r 9.96265 fshow
+164.73892 -4.38771 moveto
+(p) jkpsy 5.97765 fshow
+ 0 0.2989 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 169.16232 -4.23831 moveto
+172.42012 -4.23831 lineto stroke
+169.16232 -9.49861 moveto
+(5) jkpmn8r 5.97765 fshow
+172.42012 -10.43512 moveto
+(\)) jkpmn8r 9.96265 fshow
+175.66792 -9.49861 moveto
+(+1\)) jkpmn8r 5.97765 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop
+newpath 155.65102 -13.52351 moveto
+184.61632 -13.52351 lineto stroke
+168.50482 -18.04851 moveto
+(2) jkpmn8r 5.97765 fshow
+241.8093 -7.50307 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 237.3185 -8.93765 moveto
+250.4265 -8.93765 lineto stroke
+237.3185 -19.86766 moveto
+(e) jkpmi 7.57156 fshow
+241.8228 -13.64206 moveto
+(\000) jkpsy 5.97765 fshow
+245.4751 -13.64206 moveto
+(1) jkpmn8r 5.97765 fshow
+ 0 0.2989 dtransform truncate idtransform setlinewidth pop
+newpath 241.8228 -14.50285 moveto
+248.7329 -14.50285 lineto stroke
+243.649 -18.90826 moveto
+(2) jkpmn8r 5.97765 fshow
+301.43507 -17.95387 moveto
+(e) jkpmi 9.96265 fshow
+306.98427 -10.10237 moveto
+(\() jkpmn8r 5.97765 fshow
+309.02257 -4.99158 moveto
+(p) jkpsy 5.97765 fshow
+newpath 313.44597 -4.84207 moveto
+316.70378 -4.84207 lineto stroke
+313.44597 -10.10237 moveto
+(5+1\)) jkpmn8r 5.97765 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop
+newpath 306.98427 -12.18257 moveto
+325.65218 -12.18257 lineto stroke
+314.68938 -16.70757 moveto
+(2) jkpmn8r 5.97765 fshow
+377.15895 -13.65945 moveto
+(+) jkpmn8r 9.96265 fshow
+383.39555 -13.65945 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -32.05128 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -32.05128 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -44.05618 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -39.9417 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -44.05618 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -44.05618 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -44.05618 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -22.39243 moveto
+75.36722 -49.13715 lineto stroke
+newpath 82.06706 -22.39243 moveto
+82.06706 -49.13715 lineto stroke
+newpath 84.05959 -22.39243 moveto
+84.05959 -49.13715 lineto stroke
+121.76024 -38.25543 moveto
+(+) cmr10 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 168.20587 -22.39243 moveto
+168.20587 -49.13715 lineto stroke
+202.16483 -38.25543 moveto
+(+) cmr10 9.96265 fshow
+241.1577 -39.02008 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 243.8725 -22.39243 moveto
+243.8725 -49.13715 lineto stroke
+275.25713 -38.25543 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 314.39047 -22.39243 moveto
+314.39047 -49.13715 lineto stroke
+345.74593 -38.25543 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -69.48079 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -69.48079 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -69.48079 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -69.48079 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -78.20308 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -49.13715 moveto
+75.36722 -93.96893 lineto stroke
+newpath 82.06706 -49.13715 moveto
+82.06706 -93.96893 lineto stroke
+newpath 84.05959 -49.13715 moveto
+84.05959 -93.96893 lineto stroke
+85.05585 -86.84563 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 102.28918 -83.05106 moveto
+160.44705 -72.90642 lineto stroke
+newpath 157.06985 -75.04924 moveto
+160.44705 -72.90642 lineto
+156.54382 -72.03352 lineto
+ closepath
+gsave fill grestore stroke
+162.44746 -74.80833 moveto
+(\000) jkpsy 9.96265 fshow
+168.53467 -74.80833 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 175.96465 -70.20204 moveto
+238.61385 -59.29317 lineto stroke
+newpath 235.23596 -61.43504 moveto
+238.61385 -59.29317 lineto
+234.71082 -58.41911 lineto
+ closepath
+gsave fill grestore stroke
+241.80919 -57.17032 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 241.80919 -58.6049 moveto
+245.9357 -58.6049 lineto stroke
+241.80919 -64.53271 moveto
+(4) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 249.13101 -59.36 moveto
+306.63234 -70.10353 lineto stroke
+newpath 302.71889 -70.92949 moveto
+306.63234 -70.10353 lineto
+303.28111 -67.92027 lineto
+ closepath
+gsave fill grestore stroke
+308.63206 -74.80833 moveto
+(\000) jkpsy 9.96265 fshow
+314.71927 -74.80833 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 322.1486 -73.00378 moveto
+375.23381 -82.93039 lineto stroke
+newpath 371.31995 -83.75581 moveto
+375.23381 -82.93039 lineto
+371.88266 -80.74648 lineto
+ closepath
+gsave fill grestore stroke
+377.23364 -86.84563 moveto
+(\0001) jkpsy 9.96265 fshow
+newpath 0 -22.39243 moveto
+397.52255 -22.39243 lineto stroke
+newpath 0 -49.13715 moveto
+397.52255 -49.13715 lineto stroke
+newpath 0 0 moveto
+397.52255 0 lineto stroke
+newpath 0 -93.96893 moveto
+397.52255 -93.96893 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -93.96893 lineto stroke
+newpath 397.52255 0 moveto
+397.52255 -93.96893 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.51 b/macros/latex/contrib/tablor/Figures/tablor_Tab.51
new file mode 100644
index 0000000000..ca4490bd0b
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.51
@@ -0,0 +1,71 @@
+%!PS
+%%BoundingBox: -1 -43 165 1
+%%HiResBoundingBox: -0.25 -42.34698 164.71954 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 78:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000010000d42
+%*Font: cmsy10 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.80396 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 76.88812 0 moveto
+76.88812 -15.94019 lineto stroke
+81.86943 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+87.95663 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+148.62892 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+19.789 -25.59892 moveto
+(Signe) jkpmn8r 9.96265 fshow
+46.45901 -25.59892 moveto
+(de) jkpmn8r 9.96265 fshow
+6.1768 -37.08583 moveto
+(\() jkpmn8r 9.96265 fshow
+9.57411 -37.08583 moveto
+(x) jkpmi 9.96265 fshow
+16.5146 -37.08583 moveto
+(\000) jkpsy 9.96265 fshow
+24.2622 -37.08583 moveto
+(10\)\() jkpmn8r 9.96265 fshow
+41.7666 -37.08583 moveto
+(x) jkpmi 9.96265 fshow
+48.7071 -37.08583 moveto
+(+) jkpmn8r 9.96265 fshow
+56.6042 -37.08583 moveto
+(10\)) jkpmn8r 9.96265 fshow
+newpath 76.88812 -15.94019 moveto
+76.88812 -42.09698 lineto stroke
+87.62784 -32.27388 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 90.34264 -15.94019 moveto
+90.34264 -42.09698 lineto stroke
+118.32625 -31.50923 moveto
+(\000) cmsy10 9.96265 fshow
+151.34378 -32.27388 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 154.05858 -15.94019 moveto
+154.05858 -42.09698 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -15.94019 moveto
+164.46954 -15.94019 lineto stroke
+newpath 0 0 moveto
+164.46954 0 lineto stroke
+newpath 0 -42.09698 moveto
+164.46954 -42.09698 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -42.09698 lineto stroke
+newpath 164.46954 0 moveto
+164.46954 -42.09698 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.52 b/macros/latex/contrib/tablor/Figures/tablor_Tab.52
new file mode 100644
index 0000000000..176cf44fc5
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.52
@@ -0,0 +1,261 @@
+%!PS
+%%BoundingBox: -1 -93 424 1
+%%HiResBoundingBox: -0.25 -92.05618 423.02484 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:80000000000040000000000000008
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: jkpmn8r 9.96265 9.96265 28:d0e000000012004d4338
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -12.3736 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -20.2291 lineto stroke
+80.42322 -12.2316 moveto
+(\0001) jkpsy 9.96265 fshow
+145.5439 -12.60524 moveto
+(\000) jkpsy 9.96265 fshow
+152.738 -3.07344 moveto
+(\020) jkpex 9.96265 fshow
+156.6732 -4.08714 moveto
+(p) jkpsy 9.96265 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 164.0456 -3.83813 moveto
+169.4752 -3.83813 lineto stroke
+164.0456 -12.60524 moveto
+(2) jkpmn8r 9.96265 fshow
+169.4752 -3.07344 moveto
+(\021) jkpex 9.96265 fshow
+223.22359 -13.36984 moveto
+(\000) jkpsy 9.96265 fshow
+229.31079 -13.36984 moveto
+(1) jkpmn8r 9.96265 fshow
+284.55348 -13.36984 moveto
+(1) jkpmn8r 9.96265 fshow
+339.79616 -5.66121 moveto
+(p) jkpsy 9.96265 fshow
+newpath 347.16846 -5.4122 moveto
+352.59816 -5.4122 lineto stroke
+347.16846 -14.1793 moveto
+(2) jkpmn8r 9.96265 fshow
+402.41124 -12.57779 moveto
+(+) jkpmn8r 9.96265 fshow
+408.64784 -12.57779 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -29.88795 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -29.88795 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -41.89285 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -37.77837 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -41.89285 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -41.89285 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -41.89285 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -20.2291 moveto
+75.36722 -46.97382 lineto stroke
+119.88408 -36.0921 moveto
+(\000) cmsy10 9.96265 fshow
+156.7624 -36.85675 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 159.4772 -20.2291 moveto
+159.4772 -46.97382 lineto stroke
+190.35524 -36.0921 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 226.98947 -20.2291 moveto
+226.98947 -46.97382 lineto stroke
+newpath 228.982 -20.2291 moveto
+228.982 -46.97382 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 228.982 -21.2291 moveto
+229.982 -20.2291 lineto stroke
+newpath 228.982 -26.2104 moveto
+234.9633 -20.2291 lineto stroke
+newpath 228.982 -31.19171 moveto
+239.94461 -20.2291 lineto stroke
+newpath 228.982 -36.17302 moveto
+244.92592 -20.2291 lineto stroke
+newpath 228.982 -41.15433 moveto
+249.90723 -20.2291 lineto stroke
+newpath 228.982 -46.13564 moveto
+254.88853 -20.2291 lineto stroke
+newpath 233.1253 -46.97363 moveto
+259.86984 -20.2291 lineto stroke
+newpath 238.10637 -46.97388 moveto
+264.85115 -20.2291 lineto stroke
+newpath 243.08794 -46.97362 moveto
+269.83246 -20.2291 lineto stroke
+newpath 248.069 -46.97386 moveto
+274.81377 -20.2291 lineto stroke
+newpath 253.0503 -46.97388 moveto
+279.79507 -20.2291 lineto stroke
+newpath 258.0319 -46.97357 moveto
+284.77638 -20.2291 lineto stroke
+newpath 263.01253 -46.97426 moveto
+287.26828 -22.7185 lineto stroke
+newpath 267.99411 -46.97398 moveto
+287.26843 -27.69966 lineto stroke
+newpath 272.97542 -46.97398 moveto
+287.26813 -32.68127 lineto stroke
+newpath 277.95667 -46.97404 moveto
+287.26817 -37.66254 lineto stroke
+newpath 282.93817 -46.97385 moveto
+287.26843 -42.64359 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 287.26828 -20.2291 moveto
+287.26828 -46.97382 lineto stroke
+newpath 289.2608 -20.2291 moveto
+289.2608 -46.97382 lineto stroke
+312.85837 -36.0921 moveto
+(\000) cmsy10 9.96265 fshow
+343.48236 -36.85675 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 346.19716 -20.2291 moveto
+346.19716 -46.97382 lineto stroke
+374.27542 -36.0921 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -67.31746 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -67.31746 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -67.31746 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -67.31746 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -76.03975 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -46.97382 moveto
+75.36722 -91.8056 lineto stroke
+80.34853 -58.67741 moveto
+(+) jkpmn8r 9.96265 fshow
+86.58513 -58.67741 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 97.73131 -59.78912 moveto
+151.71844 -79.70331 lineto stroke
+newpath 147.72124 -79.86057 moveto
+151.71844 -79.70331 lineto
+148.78084 -76.988 lineto
+ closepath
+gsave fill grestore stroke
+153.7188 -85.82054 moveto
+(\000) jkpsy 9.96265 fshow
+159.806 -85.82054 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 167.2358 -79.41006 moveto
+219.56003 -58.13147 lineto stroke
+newpath 216.71335 -60.94165 moveto
+219.56003 -58.13147 lineto
+215.56003 -58.10559 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 228.982 -46.97382 moveto
+228.982 -91.8056 lineto stroke
+221.55988 -59.46947 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 228.982 -47.97382 moveto
+229.982 -46.97382 lineto stroke
+newpath 228.982 -52.95512 moveto
+234.9633 -46.97382 lineto stroke
+newpath 228.982 -57.93643 moveto
+239.94461 -46.97382 lineto stroke
+newpath 228.982 -62.91774 moveto
+244.92592 -46.97382 lineto stroke
+newpath 228.982 -67.89905 moveto
+249.90723 -46.97382 lineto stroke
+newpath 228.982 -72.88036 moveto
+254.88853 -46.97382 lineto stroke
+newpath 228.982 -77.86166 moveto
+259.86984 -46.97382 lineto stroke
+newpath 228.982 -82.84297 moveto
+264.85115 -46.97382 lineto stroke
+newpath 228.982 -87.82428 moveto
+269.83246 -46.97382 lineto stroke
+newpath 229.98203 -91.80556 moveto
+274.81377 -46.97382 lineto stroke
+newpath 234.963 -91.8059 moveto
+279.79507 -46.97382 lineto stroke
+newpath 239.94489 -91.80531 moveto
+284.77638 -46.97382 lineto stroke
+newpath 244.92615 -91.80536 moveto
+287.26833 -49.46318 lineto stroke
+newpath 249.90733 -91.80548 moveto
+287.2682 -54.44461 lineto stroke
+newpath 254.88821 -91.80591 moveto
+287.26863 -59.42549 lineto stroke
+newpath 259.8702 -91.80524 moveto
+287.268 -64.40742 lineto stroke
+newpath 264.8514 -91.80534 moveto
+287.26852 -69.38821 lineto stroke
+newpath 269.83191 -91.80614 moveto
+287.26859 -74.36946 lineto stroke
+newpath 274.81317 -91.80618 moveto
+287.26837 -79.35098 lineto stroke
+newpath 279.79477 -91.8059 moveto
+287.26839 -84.33228 lineto stroke
+newpath 284.77657 -91.8054 moveto
+287.26799 -89.31398 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 287.26828 -46.97382 moveto
+287.26828 -91.8056 lineto stroke
+289.2608 -59.46947 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 296.6907 -58.50565 moveto
+338.43912 -78.79492 lineto stroke
+newpath 334.44592 -78.55637 moveto
+338.43912 -78.79492 lineto
+335.78424 -75.80258 lineto
+ closepath
+gsave fill grestore stroke
+340.43875 -85.82054 moveto
+(\000) jkpsy 9.96265 fshow
+346.52596 -85.82054 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 353.9552 -79.36626 moveto
+400.41098 -60.2104 lineto stroke
+newpath 397.57794 -63.03445 moveto
+400.41098 -60.2104 lineto
+396.4108 -60.20398 lineto
+ closepath
+gsave fill grestore stroke
+402.41124 -58.67741 moveto
+(+) jkpmn8r 9.96265 fshow
+408.64784 -58.67741 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -20.2291 moveto
+422.77484 -20.2291 lineto stroke
+newpath 0 -46.97382 moveto
+422.77484 -46.97382 lineto stroke
+newpath 0 0 moveto
+422.77484 0 lineto stroke
+newpath 0 -91.8056 moveto
+422.77484 -91.8056 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -91.8056 lineto stroke
+newpath 422.77484 0 moveto
+422.77484 -91.8056 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.53 b/macros/latex/contrib/tablor/Figures/tablor_Tab.53
new file mode 100644
index 0000000000..adcbf1781f
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.53
@@ -0,0 +1,206 @@
+%!PS
+%%BoundingBox: -1 -88 309 1
+%%HiResBoundingBox: -0.25 -87.76727 308.7077 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d04000000012004d4338
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.42322 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+157.01091 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+163.09811 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+218.3408 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+288.0941 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+294.3307 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+27.1647 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+33.3714 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.2772 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+39.6745 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+44.9547 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+121.53014 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+newpath 160.7768 -15.94019 moveto
+160.7768 -42.6849 lineto stroke
+newpath 162.76932 -15.94019 moveto
+162.76932 -42.6849 lineto stroke
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 162.76932 -16.94019 moveto
+163.76932 -15.94019 lineto stroke
+newpath 162.76932 -21.9215 moveto
+168.75063 -15.94019 lineto stroke
+newpath 162.76932 -26.9028 moveto
+173.73193 -15.94019 lineto stroke
+newpath 162.76932 -31.88411 moveto
+178.71324 -15.94019 lineto stroke
+newpath 162.76932 -36.86542 moveto
+183.69455 -15.94019 lineto stroke
+newpath 162.76932 -41.84673 moveto
+188.67586 -15.94019 lineto stroke
+newpath 166.91263 -42.68472 moveto
+193.65717 -15.94019 lineto stroke
+newpath 171.89369 -42.68497 moveto
+198.63847 -15.94019 lineto stroke
+newpath 176.87526 -42.68471 moveto
+203.61978 -15.94019 lineto stroke
+newpath 181.85632 -42.68495 moveto
+208.60109 -15.94019 lineto stroke
+newpath 186.83762 -42.68497 moveto
+213.5824 -15.94019 lineto stroke
+newpath 191.81923 -42.68466 moveto
+218.5637 -15.94019 lineto stroke
+newpath 196.79985 -42.68535 moveto
+221.0556 -18.4296 lineto stroke
+newpath 201.78143 -42.68507 moveto
+221.05576 -23.41075 lineto stroke
+newpath 206.76274 -42.68507 moveto
+221.05545 -28.39236 lineto stroke
+newpath 211.74399 -42.68513 moveto
+221.0555 -33.37363 lineto stroke
+newpath 216.7255 -42.68494 moveto
+221.05576 -38.35468 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 221.0556 -15.94019 moveto
+221.0556 -42.6849 lineto stroke
+newpath 223.04813 -15.94019 moveto
+223.04813 -42.6849 lineto stroke
+254.54607 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+8.7173 -63.02855 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.02855 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.02855 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.02855 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -71.75084 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+80.34853 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+86.58513 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 97.73085 -55.84679 moveto
+143.54373 -74.38498 lineto stroke
+newpath 139.54407 -74.41774 moveto
+143.54373 -74.38498 lineto
+140.69241 -71.57991 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 160.7768 -42.6849 moveto
+160.7768 -87.5167 lineto stroke
+newpath 162.76932 -42.6849 moveto
+162.76932 -87.5167 lineto stroke
+145.54388 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 162.76932 -43.6849 moveto
+163.76932 -42.6849 lineto stroke
+newpath 162.76932 -48.66621 moveto
+168.75063 -42.6849 lineto stroke
+newpath 162.76932 -53.64752 moveto
+173.73193 -42.6849 lineto stroke
+newpath 162.76932 -58.62883 moveto
+178.71324 -42.6849 lineto stroke
+newpath 162.76932 -63.61014 moveto
+183.69455 -42.6849 lineto stroke
+newpath 162.76932 -68.59145 moveto
+188.67586 -42.6849 lineto stroke
+newpath 162.76932 -73.57275 moveto
+193.65717 -42.6849 lineto stroke
+newpath 162.76932 -78.55406 moveto
+198.63847 -42.6849 lineto stroke
+newpath 162.76932 -83.53537 moveto
+203.61978 -42.6849 lineto stroke
+newpath 163.76935 -87.51665 moveto
+208.60109 -42.6849 lineto stroke
+newpath 168.75032 -87.51698 moveto
+213.5824 -42.6849 lineto stroke
+newpath 173.73221 -87.5164 moveto
+218.5637 -42.6849 lineto stroke
+newpath 178.71347 -87.51645 moveto
+221.05565 -45.17427 lineto stroke
+newpath 183.69466 -87.51657 moveto
+221.05553 -50.1557 lineto stroke
+newpath 188.67554 -87.517 moveto
+221.05595 -55.13658 lineto stroke
+newpath 193.65752 -87.51633 moveto
+221.05533 -60.11852 lineto stroke
+newpath 198.63872 -87.51643 moveto
+221.05585 -65.0993 lineto stroke
+newpath 203.61923 -87.51723 moveto
+221.05591 -70.08055 lineto stroke
+newpath 208.6005 -87.51727 moveto
+221.0557 -75.06207 lineto stroke
+newpath 213.58209 -87.51698 moveto
+221.05571 -80.04337 lineto stroke
+newpath 218.56389 -87.5165 moveto
+221.05531 -85.02507 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 221.0556 -42.6849 moveto
+221.0556 -87.5167 lineto stroke
+newpath 223.04813 -42.6849 moveto
+223.04813 -87.5167 lineto stroke
+223.04813 -80.39339 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 240.28123 -74.38493 moveto
+286.09389 -55.84688 lineto stroke
+newpath 283.24255 -58.6519 moveto
+286.09389 -55.84688 lineto
+282.09424 -55.81407 lineto
+ closepath
+gsave fill grestore stroke
+288.0941 -54.3885 moveto
+(+) jkpmn8r 9.96265 fshow
+294.3307 -54.3885 moveto
+(1) jkpsy 9.96265 fshow
+newpath 0 -15.94019 moveto
+308.4577 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+308.4577 -42.6849 lineto stroke
+newpath 0 0 moveto
+308.4577 0 lineto stroke
+newpath 0 -87.5167 moveto
+308.4577 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 308.4577 0 moveto
+308.4577 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.54 b/macros/latex/contrib/tablor/Figures/tablor_Tab.54
new file mode 100644
index 0000000000..899910641b
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.54
@@ -0,0 +1,362 @@
+%!PS
+%%BoundingBox: -1 -161 418 1
+%%HiResBoundingBox: -0.25 -160.87341 417.91089 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 74:8c
+%*Font: jkpmn8r 9.96265 9.96265 28:c0f800000012005d4338
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000080000000000000008
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpmn8r 7.57156 9.96265 28:c0308
+%*Font: jkpsy 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -11.62686 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+80.34853 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+156.15616 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 156.15616 -8.23724 moveto
+161.27457 -8.23724 lineto stroke
+156.65216 -14.16505 moveto
+(8) jkpmn8r 7.57156 fshow
+243.31445 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 243.31445 -8.23724 moveto
+248.43286 -8.23724 lineto stroke
+243.81046 -14.16505 moveto
+(3) jkpmn8r 7.57156 fshow
+328.01 -7.50307 moveto
+(3) jkpmn8r 7.57156 fshow
+332.1365 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 328.01 -8.93765 moveto
+337.2549 -8.93765 lineto stroke
+330.5692 -14.86546 moveto
+(8) jkpmn8r 7.57156 fshow
+406.36568 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 406.36568 -8.23724 moveto
+411.48409 -8.23724 lineto stroke
+406.86168 -14.16505 moveto
+(2) jkpmn8r 7.57156 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+28.3452 -39.08426 moveto
+(x) jkpmi 9.96265 fshow
+33.6254 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.5313 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+39.9285 -39.08426 moveto
+(t) jkpmi 9.96265 fshow
+43.77411 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.09552 lineto stroke
+80.34853 -34.0133 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -17.4205 moveto
+83.06332 -44.09552 lineto stroke
+117.01498 -33.24866 moveto
+(\000) cmsy10 9.96265 fshow
+135.5912 -33.2487 moveto
+(\000) jkpsy 9.96265 fshow
+141.6784 -33.2487 moveto
+(3) jkpmn8r 9.96265 fshow
+148.2149 -33.2487 moveto
+(sin) jkpmn8r 9.96265 fshow
+162.3331 -23.7169 moveto
+(\020) jkpex 9.96265 fshow
+167.4638 -29.32341 moveto
+(3) jkpmn8r 7.57156 fshow
+171.5903 -29.32341 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 167.4638 -30.758 moveto
+176.7087 -30.758 lineto stroke
+170.023 -36.6858 moveto
+(8) jkpmn8r 7.57156 fshow
+177.9042 -23.7169 moveto
+(\021) jkpex 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 158.71536 -17.4205 moveto
+158.71536 -44.09552 lineto stroke
+198.42015 -33.24866 moveto
+(\000) cmsy10 9.96265 fshow
+243.15886 -34.0133 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 245.87366 -17.4205 moveto
+245.87366 -44.09552 lineto stroke
+285.3787 -33.24866 moveto
+(+) cmr10 9.96265 fshow
+314.61514 -33.2487 moveto
+(3) jkpmn8r 9.96265 fshow
+321.15175 -33.2487 moveto
+(sin) jkpmn8r 9.96265 fshow
+335.26984 -23.7169 moveto
+(\020) jkpex 9.96265 fshow
+340.40054 -29.32341 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 340.40054 -30.758 moveto
+345.51894 -30.758 lineto stroke
+340.89655 -36.6858 moveto
+(8) jkpmn8r 7.57156 fshow
+346.71445 -23.7169 moveto
+(\021) jkpex 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 332.63245 -17.4205 moveto
+332.63245 -44.09552 lineto stroke
+366.90431 -33.24866 moveto
+(+) cmr10 9.96265 fshow
+406.21008 -34.0133 moveto
+(3) jkpmn8r 9.96265 fshow
+newpath 408.92488 -17.4205 moveto
+408.92488 -44.09552 lineto stroke
+8.7173 -66.14282 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -66.14282 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -66.14282 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -66.14282 moveto
+(de) jkpmn8r 9.96265 fshow
+35.0435 -74.00333 moveto
+(x) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -44.09552 moveto
+75.36722 -88.9273 lineto stroke
+80.34853 -54.97472 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77774 -52.64122 moveto
+139.46017 -62.74649 lineto stroke
+newpath 135.53958 -63.53966 moveto
+139.46017 -62.74649 lineto
+136.12708 -60.53502 lineto
+ closepath
+gsave fill grestore stroke
+141.45976 -69.0021 moveto
+(cos) jkpmn8r 9.96265 fshow
+156.46457 -59.4703 moveto
+(\020) jkpex 9.96265 fshow
+161.59526 -65.07681 moveto
+(3) jkpmn8r 7.57156 fshow
+165.72186 -65.07681 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 161.59526 -66.5114 moveto
+170.84026 -66.5114 lineto stroke
+164.15446 -72.43921 moveto
+(8) jkpmn8r 7.57156 fshow
+172.03577 -59.4703 moveto
+(\021) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 177.97142 -69.77943 moveto
+238.1153 -79.9867 lineto stroke
+newpath 234.21593 -80.87752 moveto
+238.1153 -79.9867 lineto
+234.72816 -77.85927 lineto
+ closepath
+gsave fill grestore stroke
+240.11525 -84.5587 moveto
+(\000) jkpsy 9.96265 fshow
+246.20245 -84.5587 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 253.63266 -79.98051 moveto
+307.90764 -70.72687 lineto stroke
+newpath 304.52217 -72.85687 moveto
+307.90764 -70.72687 lineto
+304.00761 -69.83905 lineto
+ closepath
+gsave fill grestore stroke
+309.90779 -69.0021 moveto
+(\000) jkpsy 9.96265 fshow
+317.1019 -59.4703 moveto
+(\020) jkpex 9.96265 fshow
+321.0371 -69.0021 moveto
+(cos) jkpmn8r 9.96265 fshow
+336.04189 -59.4703 moveto
+(\020) jkpex 9.96265 fshow
+341.17268 -65.07681 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 341.17268 -66.5114 moveto
+346.29109 -66.5114 lineto stroke
+341.6686 -72.43921 moveto
+(8) jkpmn8r 7.57156 fshow
+347.48659 -59.4703 moveto
+(\021\021) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 357.3574 -61.71762 moveto
+404.21005 -52.63358 lineto stroke
+newpath 400.87337 -54.83984 moveto
+404.21005 -52.63358 lineto
+400.2906 -51.83417 lineto
+ closepath
+gsave fill grestore stroke
+406.21008 -54.97472 moveto
+(0) jkpmn8r 9.96265 fshow
+19.0286 -98.58617 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -98.58617 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2606 -110.59106 moveto
+(y) jkpmi 9.96265 fshow
+33.7101 -106.47658 moveto
+(0) jkpsy 7.57156 fshow
+36.616 -110.59106 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0132 -110.59106 moveto
+(t) jkpmi 9.96265 fshow
+43.8588 -110.59106 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 75.36722 -88.9273 moveto
+75.36722 -115.79163 lineto stroke
+80.34853 -105.71686 moveto
+(4) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -88.9273 moveto
+83.06332 -115.79163 lineto stroke
+117.01498 -104.85011 moveto
+(+) cmr10 9.96265 fshow
+156.00056 -105.61476 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 158.71536 -88.9273 moveto
+158.71536 -115.79163 lineto stroke
+198.42015 -104.85011 moveto
+(\000) cmsy10 9.96265 fshow
+240.11525 -105.61476 moveto
+(\000) jkpsy 9.96265 fshow
+246.20245 -105.61476 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 245.87366 -88.9273 moveto
+245.87366 -115.79163 lineto stroke
+285.3787 -104.85011 moveto
+(\000) cmsy10 9.96265 fshow
+329.91765 -105.61476 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 332.63245 -88.9273 moveto
+332.63245 -115.79163 lineto stroke
+366.90431 -104.85011 moveto
+(+) cmr10 9.96265 fshow
+406.21008 -105.71686 moveto
+(4) jkpmn8r 9.96265 fshow
+newpath 408.92488 -88.9273 moveto
+408.92488 -115.79163 lineto stroke
+8.7173 -136.50642 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -136.50642 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -136.50642 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -136.50642 moveto
+(de) jkpmn8r 9.96265 fshow
+34.9588 -144.36693 moveto
+(y) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -115.79163 moveto
+75.36722 -160.62341 lineto stroke
+80.34853 -155.0095 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77774 -150.06584 moveto
+154.00035 -126.34943 lineto stroke
+newpath 151.03714 -129.03674 moveto
+154.00035 -126.34943 lineto
+150.00482 -126.15427 lineto
+ closepath
+gsave fill grestore stroke
+156.00056 -127.91612 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 163.42996 -125.39362 moveto
+229.65312 -135.68643 lineto stroke
+newpath 225.76591 -136.63158 moveto
+229.65312 -135.68643 lineto
+226.23616 -133.606 lineto
+ closepath
+gsave fill grestore stroke
+232.8481 -136.92398 moveto
+(\() jkpmn8r 7.57156 fshow
+235.43001 -136.92398 moveto
+(\000) jkpsy 7.57156 fshow
+240.0563 -137.46198 moveto
+(\() jkpmn8r 9.96265 fshow
+243.4535 -130.45029 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 249.0565 -130.26099 moveto
+253.183 -130.26099 lineto stroke
+249.0565 -136.92398 moveto
+(3) jkpmn8r 7.57156 fshow
+253.183 -137.46198 moveto
+(\)) jkpmn8r 9.96265 fshow
+256.43091 -136.92398 moveto
+(\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 232.8481 -140.72968 moveto
+258.8992 -140.72968 lineto stroke
+243.81041 -146.65749 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 262.0946 -140.74028 moveto
+324.87431 -150.54283 lineto stroke
+newpath 320.98656 -151.48523 moveto
+324.87431 -150.54283 lineto
+321.45891 -148.46008 lineto
+ closepath
+gsave fill grestore stroke
+326.87404 -155.0095 moveto
+(\000) jkpsy 9.96265 fshow
+332.96124 -155.0095 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 340.39136 -148.99884 moveto
+404.20964 -126.33533 lineto stroke
+newpath 401.23933 -129.01463 moveto
+404.20964 -126.33533 lineto
+400.21477 -126.1295 lineto
+ closepath
+gsave fill grestore stroke
+406.21008 -127.91612 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -17.4205 moveto
+417.66089 -17.4205 lineto stroke
+newpath 0 -44.09552 moveto
+417.66089 -44.09552 lineto stroke
+newpath 0 -88.9273 moveto
+417.66089 -88.9273 lineto stroke
+newpath 0 -115.79163 moveto
+417.66089 -115.79163 lineto stroke
+newpath 0 0 moveto
+417.66089 0 lineto stroke
+newpath 0 -160.62341 moveto
+417.66089 -160.62341 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -160.62341 lineto stroke
+newpath 417.66089 0 moveto
+417.66089 -160.62341 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.55 b/macros/latex/contrib/tablor/Figures/tablor_Tab.55
new file mode 100644
index 0000000000..1a2e726d11
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.55
@@ -0,0 +1,330 @@
+%!PS
+%%BoundingBox: -1 -161 387 1
+%%HiResBoundingBox: -0.25 -160.87341 386.35431 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 74:8c
+%*Font: jkpmn8r 9.96265 9.96265 28:c0f000000012004d4338
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpsy 7.57156 9.96265 00:80000000000080000000000000008
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpmn8r 7.57156 9.96265 28:d014
+%*Font: jkpmia 9.96265 9.96265 19:8
+%*Font: jkpsy 9.96265 9.96265 00:80000000000000000000000000008
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -11.62686 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+83.39214 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+154.64023 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 154.64023 -8.23724 moveto
+159.75864 -8.23724 lineto stroke
+155.13623 -14.16505 moveto
+(3) jkpmn8r 7.57156 fshow
+224.92458 -10.9718 moveto
+(\031) jkpmia 9.96265 fshow
+296.88202 -7.50307 moveto
+(5) jkpmn8r 7.57156 fshow
+301.00853 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 296.88202 -8.93765 moveto
+306.12692 -8.93765 lineto stroke
+299.44122 -14.86546 moveto
+(3) jkpmn8r 7.57156 fshow
+368.9586 -11.89336 moveto
+(2) jkpmn8r 9.96265 fshow
+374.3882 -11.89336 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+28.3452 -39.08426 moveto
+(x) jkpmi 9.96265 fshow
+33.6254 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.5313 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+39.9285 -39.08426 moveto
+(t) jkpmi 9.96265 fshow
+43.77411 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.09552 lineto stroke
+80.34853 -34.0133 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -34.0133 moveto
+(1) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 86.10693 -17.4205 moveto
+86.10693 -44.09552 lineto stroke
+117.77882 -33.24866 moveto
+(\000) cmsy10 9.96265 fshow
+154.48463 -34.0133 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 157.19943 -17.4205 moveto
+157.19943 -44.09552 lineto stroke
+188.87132 -33.24866 moveto
+(+) cmr10 9.96265 fshow
+225.57713 -34.0133 moveto
+(3) jkpmn8r 9.96265 fshow
+newpath 228.29193 -17.4205 moveto
+228.29193 -44.09552 lineto stroke
+261.02385 -33.24866 moveto
+(+) cmr10 9.96265 fshow
+298.78967 -34.0133 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 301.50447 -17.4205 moveto
+301.50447 -44.09552 lineto stroke
+334.39828 -33.24866 moveto
+(\000) cmsy10 9.96265 fshow
+369.2824 -34.0133 moveto
+(\000) jkpsy 9.96265 fshow
+375.3696 -34.0133 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 375.0408 -17.4205 moveto
+375.0408 -44.09552 lineto stroke
+8.7173 -66.14282 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -66.14282 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -66.14282 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -66.14282 moveto
+(de) jkpmn8r 9.96265 fshow
+35.0435 -74.00333 moveto
+(x) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -44.09552 moveto
+75.36722 -88.9273 lineto stroke
+83.39214 -55.29372 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 90.8214 -53.95796 moveto
+139.67816 -73.85045 lineto stroke
+newpath 135.67859 -73.8746 moveto
+139.67816 -73.85045 lineto
+136.83301 -71.03937 lineto
+ closepath
+gsave fill grestore stroke
+142.87392 -80.27231 moveto
+(\() jkpmn8r 7.57156 fshow
+145.45583 -80.27231 moveto
+(\031) jkpmia 7.57156 fshow
+150.57422 -80.27231 moveto
+(\000) jkpsy 7.57156 fshow
+155.20052 -80.27231 moveto
+(3) jkpmn8r 7.57156 fshow
+159.32703 -73.79861 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 164.93002 -73.60931 moveto
+169.05652 -73.60931 lineto stroke
+164.93002 -80.27231 moveto
+(3\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 142.87392 -82.9351 moveto
+171.52483 -82.9351 lineto stroke
+155.13612 -88.86292 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 174.72089 -77.41737 moveto
+222.9247 -67.60406 lineto stroke
+newpath 219.60881 -69.84131 moveto
+222.9247 -67.60406 lineto
+218.99806 -66.84128 lineto
+ closepath
+gsave fill grestore stroke
+224.92458 -68.77296 moveto
+(\031) jkpmia 9.96265 fshow
+newpath 233.65976 -65.45027 moveto
+281.8631 -55.92122 lineto stroke
+newpath 278.53464 -58.13959 moveto
+281.8631 -55.92122 lineto
+277.94092 -55.1362 lineto
+ closepath
+gsave fill grestore stroke
+285.05891 -51.32632 moveto
+(\(5) jkpmn8r 7.57156 fshow
+291.76743 -51.32632 moveto
+(\031) jkpmia 7.57156 fshow
+296.88571 -51.32632 moveto
+(+3) jkpmn8r 7.57156 fshow
+305.75212 -44.85263 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 311.35512 -44.66333 moveto
+315.48161 -44.66333 lineto stroke
+311.35512 -51.32632 moveto
+(3\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 285.05891 -53.98912 moveto
+317.94992 -53.98912 lineto stroke
+299.44122 -59.91693 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 321.14528 -59.76959 moveto
+366.95844 -77.80295 lineto stroke
+newpath 362.95937 -77.87378 moveto
+366.95844 -77.80295 lineto
+364.08064 -75.0252 lineto
+ closepath
+gsave fill grestore stroke
+368.9586 -84.16751 moveto
+(2) jkpmn8r 9.96265 fshow
+374.3882 -84.16751 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -98.58617 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -98.58617 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2606 -110.59106 moveto
+(y) jkpmi 9.96265 fshow
+33.7101 -106.47658 moveto
+(0) jkpsy 7.57156 fshow
+36.616 -110.59106 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0132 -110.59106 moveto
+(t) jkpmi 9.96265 fshow
+43.8588 -110.59106 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 75.36722 -88.9273 moveto
+75.36722 -115.79163 lineto stroke
+83.39214 -105.61476 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 86.10693 -88.9273 moveto
+86.10693 -115.79163 lineto stroke
+117.77882 -104.85011 moveto
+(\000) cmsy10 9.96265 fshow
+143.26613 -104.85016 moveto
+(\000) jkpsy 9.96265 fshow
+150.46024 -95.31836 moveto
+(\020) jkpex 9.96265 fshow
+154.39543 -96.33206 moveto
+(p) jkpsy 9.96265 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 161.76782 -96.08305 moveto
+167.19743 -96.08305 lineto stroke
+161.76782 -104.85016 moveto
+(3) jkpmn8r 9.96265 fshow
+167.19743 -95.31836 moveto
+(\021) jkpex 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 157.19943 -88.9273 moveto
+157.19943 -115.79163 lineto stroke
+188.87132 -104.85011 moveto
+(\000) cmsy10 9.96265 fshow
+225.57713 -105.61476 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 228.29193 -88.9273 moveto
+228.29193 -115.79163 lineto stroke
+261.02385 -104.85011 moveto
+(+) cmr10 9.96265 fshow
+295.10347 -97.90613 moveto
+(p) jkpsy 9.96265 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 302.47577 -97.65712 moveto
+307.90547 -97.65712 lineto stroke
+302.47577 -106.42422 moveto
+(3) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 301.50447 -88.9273 moveto
+301.50447 -115.79163 lineto stroke
+334.39828 -104.85011 moveto
+(+) cmr10 9.96265 fshow
+372.326 -105.61476 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 375.0408 -88.9273 moveto
+375.0408 -115.79163 lineto stroke
+8.7173 -136.50642 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -136.50642 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -136.50642 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -136.50642 moveto
+(de) jkpmn8r 9.96265 fshow
+34.9588 -144.36693 moveto
+(y) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -115.79163 moveto
+75.36722 -160.62341 lineto stroke
+83.39214 -127.91612 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 90.8214 -125.55919 moveto
+152.4846 -137.30911 lineto stroke
+newpath 148.56798 -138.12106 moveto
+152.4846 -137.30911 lineto
+149.14104 -135.11371 lineto
+ closepath
+gsave fill grestore stroke
+154.48463 -141.46281 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 161.9139 -139.10588 moveto
+220.53352 -150.27586 lineto stroke
+newpath 216.61671 -151.08784 moveto
+220.53352 -150.27586 lineto
+217.1898 -148.08037 lineto
+ closepath
+gsave fill grestore stroke
+222.53352 -155.0095 moveto
+(\000) jkpsy 9.96265 fshow
+228.62073 -155.0095 moveto
+(3) jkpmn8r 9.96265 fshow
+newpath 236.05043 -150.31862 moveto
+296.78937 -139.07997 lineto stroke
+newpath 293.43398 -141.25761 moveto
+296.78937 -139.07997 lineto
+292.87694 -138.24712 lineto
+ closepath
+gsave fill grestore stroke
+298.78967 -141.46281 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 306.21944 -137.33896 moveto
+370.3257 -125.52943 lineto stroke
+newpath 366.9683 -127.70464 moveto
+370.3257 -125.52943 lineto
+366.41359 -124.69344 lineto
+ closepath
+gsave fill grestore stroke
+372.326 -127.91612 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -17.4205 moveto
+386.10431 -17.4205 lineto stroke
+newpath 0 -44.09552 moveto
+386.10431 -44.09552 lineto stroke
+newpath 0 -88.9273 moveto
+386.10431 -88.9273 lineto stroke
+newpath 0 -115.79163 moveto
+386.10431 -115.79163 lineto stroke
+newpath 0 0 moveto
+386.10431 0 lineto stroke
+newpath 0 -160.62341 moveto
+386.10431 -160.62341 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -160.62341 lineto stroke
+newpath 386.10431 0 moveto
+386.10431 -160.62341 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.56 b/macros/latex/contrib/tablor/Figures/tablor_Tab.56
new file mode 100644
index 0000000000..835f85c56f
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.56
@@ -0,0 +1,352 @@
+%!PS
+%%BoundingBox: -1 -161 400 1
+%%HiResBoundingBox: -0.25 -160.82352 399.50952 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:c002
+%*Font: jkpmn8r 9.96265 9.96265 28:c0f800000012005d4338
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpsy 7.57156 9.96265 30:80000000000000008
+%*Font: jkpex 9.96265 9.96265 10:c
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmn8r 7.57156 9.96265 32:ca
+%*Font: jkpsy 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -11.62686 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -17.4205 lineto stroke
+80.34853 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+153.55591 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 153.55591 -8.23724 moveto
+158.67432 -8.23724 lineto stroke
+154.05191 -14.16505 moveto
+(8) jkpmn8r 7.57156 fshow
+229.95316 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 229.95316 -8.23724 moveto
+235.07156 -8.23724 lineto stroke
+230.44916 -14.16505 moveto
+(6) jkpmn8r 7.57156 fshow
+306.04456 -7.50307 moveto
+(3) jkpmn8r 7.57156 fshow
+310.17107 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 306.04456 -8.93765 moveto
+315.28946 -8.93765 lineto stroke
+308.60376 -14.86546 moveto
+(8) jkpmn8r 7.57156 fshow
+385.9606 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 385.9606 -8.23724 moveto
+391.07901 -8.23724 lineto stroke
+386.4566 -14.16505 moveto
+(2) jkpmn8r 7.57156 fshow
+19.0286 -27.07936 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -27.07936 moveto
+(de) jkpmn8r 9.96265 fshow
+27.882 -39.08426 moveto
+(f) jkpmi 9.96265 fshow
+34.0887 -34.96977 moveto
+(0) jkpsy 7.57156 fshow
+36.9946 -39.08426 moveto
+(\() jkpmn8r 9.96265 fshow
+40.3918 -39.08426 moveto
+(t) jkpmi 9.96265 fshow
+44.2374 -39.08426 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -17.4205 moveto
+75.36722 -44.16522 lineto stroke
+80.34853 -34.04816 moveto
+(3) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -17.4205 moveto
+83.06332 -44.16522 lineto stroke
+115.71486 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+135.5912 -33.28355 moveto
+(3) jkpmn8r 9.96265 fshow
+142.1278 -33.28355 moveto
+(cos) jkpmn8r 9.96265 fshow
+157.1326 -23.75175 moveto
+(\020) jkpex 9.96265 fshow
+162.2633 -29.35826 moveto
+(3) jkpmn8r 7.57156 fshow
+166.3898 -29.35826 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 162.2633 -30.79285 moveto
+171.50821 -30.79285 lineto stroke
+164.8225 -36.72066 moveto
+(8) jkpmn8r 7.57156 fshow
+172.7037 -23.75175 moveto
+(\021) jkpex 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 156.11511 -17.4205 moveto
+156.11511 -44.16522 lineto stroke
+190.43938 -33.28351 moveto
+(+) cmr10 9.96265 fshow
+229.79756 -34.04816 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 232.51236 -17.4205 moveto
+232.51236 -44.16522 lineto stroke
+267.71533 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+289.1628 -33.28355 moveto
+(\000) jkpsy 9.96265 fshow
+295.25 -33.28355 moveto
+(3) jkpmn8r 9.96265 fshow
+301.7865 -33.28355 moveto
+(cos) jkpmn8r 9.96265 fshow
+316.79129 -23.75175 moveto
+(\020) jkpex 9.96265 fshow
+321.92209 -29.35826 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+ 0 setlinecap
+newpath 321.92209 -30.79285 moveto
+327.0405 -30.79285 lineto stroke
+322.418 -36.72066 moveto
+(8) jkpmn8r 7.57156 fshow
+328.236 -23.75175 moveto
+(\021) jkpex 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+ [3 3 ] 0 setdash 1 setlinecap
+newpath 310.667 -17.4205 moveto
+310.667 -44.16522 lineto stroke
+345.71906 -33.28351 moveto
+(\000) cmsy10 9.96265 fshow
+385.80501 -34.04816 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 388.5198 -17.4205 moveto
+388.5198 -44.16522 lineto stroke
+8.7173 -64.50887 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -64.50887 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -64.50887 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -64.50887 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -73.23116 moveto
+(f) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -44.16522 moveto
+75.36722 -88.99701 lineto stroke
+80.34853 -83.01195 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77843 -78.90622 moveto
+137.30313 -69.97401 lineto stroke
+newpath 133.93811 -72.13632 moveto
+137.30313 -69.97401 lineto
+133.39474 -69.1235 lineto
+ closepath
+gsave fill grestore stroke
+139.30286 -69.07181 moveto
+(sin) jkpmn8r 9.96265 fshow
+153.42096 -59.54001 moveto
+(\020) jkpex 9.96265 fshow
+158.55176 -65.14651 moveto
+(3) jkpmn8r 7.57156 fshow
+162.67825 -65.14651 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 158.55176 -66.5811 moveto
+167.79666 -66.5811 lineto stroke
+161.11096 -72.50891 moveto
+(8) jkpmn8r 7.57156 fshow
+168.99216 -59.54001 moveto
+(\021) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 174.92764 -63.33667 moveto
+227.7974 -54.2187 lineto stroke
+newpath 224.41594 -56.35518 moveto
+227.7974 -54.2187 lineto
+223.89565 -53.3383 lineto
+ closepath
+gsave fill grestore stroke
+229.79756 -56.66087 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 237.22769 -54.20049 moveto
+286.38594 -62.48775 lineto stroke
+newpath 282.48773 -63.3828 moveto
+286.38594 -62.48775 lineto
+282.99664 -60.36412 lineto
+ closepath
+gsave fill grestore stroke
+288.3857 -69.07181 moveto
+(\000) jkpsy 9.96265 fshow
+295.5798 -59.54001 moveto
+(\020) jkpex 9.96265 fshow
+299.515 -69.07181 moveto
+(sin) jkpmn8r 9.96265 fshow
+313.6332 -59.54001 moveto
+(\020) jkpex 9.96265 fshow
+318.7639 -65.14651 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 318.7639 -66.5811 moveto
+323.8823 -66.5811 lineto stroke
+319.2599 -72.50891 moveto
+(8) jkpmn8r 7.57156 fshow
+325.07779 -59.54001 moveto
+(\021\021) jkpex 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 334.94849 -70.69041 moveto
+380.76154 -78.44365 lineto stroke
+newpath 376.8623 -79.33635 moveto
+380.76154 -78.44365 lineto
+377.37317 -76.31764 lineto
+ closepath
+gsave fill grestore stroke
+382.7614 -83.01195 moveto
+(\000) jkpsy 9.96265 fshow
+388.8486 -83.01195 moveto
+(1) jkpmn8r 9.96265 fshow
+19.0286 -98.65587 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -98.65587 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2456 -110.66077 moveto
+(g) jkpmi 9.96265 fshow
+33.725 -106.54628 moveto
+(0) jkpsy 7.57156 fshow
+36.6309 -110.66077 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0282 -110.66077 moveto
+(t) jkpmi 9.96265 fshow
+43.8737 -110.66077 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 75.36722 -88.99701 moveto
+75.36722 -115.74173 lineto stroke
+80.34853 -105.72676 moveto
+(4) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 83.06332 -88.99701 moveto
+83.06332 -115.74173 lineto stroke
+115.71486 -104.86002 moveto
+(+) cmr10 9.96265 fshow
+153.40031 -105.62466 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 156.11511 -88.99701 moveto
+156.11511 -115.74173 lineto stroke
+190.43938 -104.86002 moveto
+(\000) cmsy10 9.96265 fshow
+226.75395 -105.62466 moveto
+(\000) jkpsy 9.96265 fshow
+232.84116 -105.62466 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 232.51236 -88.99701 moveto
+232.51236 -115.74173 lineto stroke
+267.71533 -104.86002 moveto
+(\000) cmsy10 9.96265 fshow
+307.95221 -105.62466 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 310.667 -88.99701 moveto
+310.667 -115.74173 lineto stroke
+345.71906 -104.86002 moveto
+(+) cmr10 9.96265 fshow
+385.80501 -105.72676 moveto
+(4) jkpmn8r 9.96265 fshow
+newpath 388.5198 -88.99701 moveto
+388.5198 -115.74173 lineto stroke
+8.7173 -136.51628 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -136.51628 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -136.51628 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -136.51628 moveto
+(de) jkpmn8r 9.96265 fshow
+34.94391 -144.37679 moveto
+(g) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -115.74173 moveto
+75.36722 -160.57352 lineto stroke
+80.34853 -155.01935 moveto
+(0) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 87.77843 -150.00761 moveto
+151.39987 -126.30768 lineto stroke
+newpath 148.47133 -129.03206 moveto
+151.39987 -126.30768 lineto
+147.40266 -126.16325 lineto
+ closepath
+gsave fill grestore stroke
+153.40031 -127.80649 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 160.83049 -125.391 moveto
+224.45229 -136.72212 lineto stroke
+newpath 220.54517 -137.58131 moveto
+224.45229 -136.72212 lineto
+221.08203 -134.56685 lineto
+ closepath
+gsave fill grestore stroke
+227.6476 -131.40347 moveto
+(p) jkpsy 7.57156 fshow
+ 0 0.3786 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 233.2506 -131.21419 moveto
+237.3771 -131.21419 lineto stroke
+233.2506 -137.87718 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop
+newpath 227.6476 -139.67677 moveto
+237.3771 -139.67677 lineto stroke
+230.4491 -145.60458 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 240.57275 -139.5609 moveto
+302.90846 -150.41333 lineto stroke
+newpath 299.0052 -151.28758 moveto
+302.90846 -150.41333 lineto
+299.53029 -148.27144 lineto
+ closepath
+gsave fill grestore stroke
+304.9086 -155.01935 moveto
+(\000) jkpsy 9.96265 fshow
+310.9958 -155.01935 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 318.42546 -149.05217 moveto
+383.8052 -126.19914 lineto stroke
+newpath 380.8218 -128.86356 moveto
+383.8052 -126.19914 lineto
+379.8116 -125.97351 lineto
+ closepath
+gsave fill grestore stroke
+385.80501 -127.80649 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 0 -17.4205 moveto
+399.25952 -17.4205 lineto stroke
+newpath 0 -44.16522 moveto
+399.25952 -44.16522 lineto stroke
+newpath 0 -88.99701 moveto
+399.25952 -88.99701 lineto stroke
+newpath 0 -115.74173 moveto
+399.25952 -115.74173 lineto stroke
+newpath 0 0 moveto
+399.25952 0 lineto stroke
+newpath 0 -160.57352 moveto
+399.25952 -160.57352 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -160.57352 lineto stroke
+newpath 399.25952 0 moveto
+399.25952 -160.57352 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.57 b/macros/latex/contrib/tablor/Figures/tablor_Tab.57
new file mode 100644
index 0000000000..2993250c93
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.57
@@ -0,0 +1,221 @@
+%!PS
+%%BoundingBox: -1 -117 387 1
+%%HiResBoundingBox: -0.25 -116.92337 386.16464 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2025
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 28:d0e000000010001d431
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpmn8r 7.57156 9.96265 31:ae
+%*Font: jkpmia 9.96265 9.96265 19:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+28.73436 -10.9693 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 62.74893 0 moveto
+62.74893 -17.4205 lineto stroke
+67.73024 -11.96555 moveto
+(0) jkpmn8r 9.96265 fshow
+124.16841 -6.80266 moveto
+(\031) jkpmia 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 124.16841 -8.23724 moveto
+129.28682 -8.23724 lineto stroke
+124.66441 -14.16505 moveto
+(3) jkpmn8r 7.57156 fshow
+181.49089 -7.50307 moveto
+(7) jkpmn8r 7.57156 fshow
+185.6174 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 181.49089 -8.93765 moveto
+190.7358 -8.93765 lineto stroke
+184.0501 -14.86546 moveto
+(6) jkpmn8r 7.57156 fshow
+242.93987 -7.50307 moveto
+(5) jkpmn8r 7.57156 fshow
+247.06638 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 242.93987 -8.93765 moveto
+252.18477 -8.93765 lineto stroke
+245.49907 -14.86546 moveto
+(3) jkpmn8r 7.57156 fshow
+304.38884 -7.50307 moveto
+(11) jkpmn8r 7.57156 fshow
+312.64194 -7.50307 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 304.38884 -8.93765 moveto
+317.76035 -8.93765 lineto stroke
+309.01134 -14.86546 moveto
+(6) jkpmn8r 7.57156 fshow
+368.76894 -11.89336 moveto
+(2) jkpmn8r 9.96265 fshow
+374.19853 -11.89336 moveto
+(\031) jkpmia 9.96265 fshow
+12.7194 -27.07938 moveto
+(Signe) jkpmn8r 9.96265 fshow
+39.3894 -27.07938 moveto
+(de) jkpmn8r 9.96265 fshow
+6.1768 -44.52386 moveto
+(cos) jkpmn8r 9.96265 fshow
+21.18161 -44.46417 moveto
+(\() jkpmn8r 9.96265 fshow
+24.57881 -44.52386 moveto
+(x) jkpmi 9.96265 fshow
+29.85901 -44.46417 moveto
+(\)) jkpmn8r 9.96265 fshow
+34.76721 -44.52386 moveto
+(+) jkpmn8r 9.96265 fshow
+46.90341 -37.77917 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 43.8598 -42.03326 moveto
+55.3766 -42.03326 lineto stroke
+43.8598 -51.35828 moveto
+(\000) jkpsy 9.96265 fshow
+49.94691 -51.35828 moveto
+(2) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 62.74893 -17.4205 moveto
+62.74893 -53.93362 lineto stroke
+94.71198 -38.16771 moveto
+(+) cmr10 9.96265 fshow
+124.01282 -38.93236 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 126.72762 -17.4205 moveto
+126.72762 -53.93362 lineto stroke
+152.54613 -38.16771 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 186.11334 -17.4205 moveto
+186.11334 -53.93362 lineto stroke
+212.96347 -38.16771 moveto
+(\000) cmsy10 9.96265 fshow
+244.84752 -38.93236 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 247.56232 -17.4205 moveto
+247.56232 -53.93362 lineto stroke
+275.4441 -38.16771 moveto
+(+) cmr10 9.96265 fshow
+ [] 0 setdash
+newpath 311.0746 -17.4205 moveto
+311.0746 -53.93362 lineto stroke
+339.08852 -38.16771 moveto
+(+) cmr10 9.96265 fshow
+12.71942 -63.5925 moveto
+(Signe) jkpmn8r 9.96265 fshow
+39.38942 -63.5925 moveto
+(de) jkpmn8r 9.96265 fshow
+9.66371 -81.03699 moveto
+(sin) jkpmn8r 9.96265 fshow
+23.78181 -80.9773 moveto
+(\() jkpmn8r 9.96265 fshow
+27.17912 -81.03699 moveto
+(x) jkpmi 9.96265 fshow
+32.45932 -80.9773 moveto
+(\)) jkpmn8r 9.96265 fshow
+37.36752 -81.03699 moveto
+(+) jkpmn8r 9.96265 fshow
+46.46002 -74.2923 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 46.46002 -78.54639 moveto
+51.88962 -78.54639 lineto stroke
+46.46002 -87.8714 moveto
+(2) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 62.74893 -53.93362 moveto
+62.74893 -90.44675 lineto stroke
+94.71198 -74.68083 moveto
+(+) cmr10 9.96265 fshow
+newpath 126.72762 -53.93362 moveto
+126.72762 -90.44675 lineto stroke
+152.54613 -74.68083 moveto
+(+) cmr10 9.96265 fshow
+183.39854 -75.44548 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 186.11334 -53.93362 moveto
+186.11334 -90.44675 lineto stroke
+212.96347 -74.68083 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 247.56232 -53.93362 moveto
+247.56232 -90.44675 lineto stroke
+275.4441 -74.68083 moveto
+(\000) cmsy10 9.96265 fshow
+308.3598 -75.44548 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 311.0746 -53.93362 moveto
+311.0746 -90.44675 lineto stroke
+339.08852 -74.68083 moveto
+(+) cmr10 9.96265 fshow
+12.71945 -100.1055 moveto
+(Signe) jkpmn8r 9.96265 fshow
+39.38936 -100.1055 moveto
+(de) jkpmn8r 9.96265 fshow
+22.30846 -111.5924 moveto
+(f) jkpmi 9.96265 fshow
+28.51515 -111.5924 moveto
+(\() jkpmn8r 9.96265 fshow
+31.91246 -111.5924 moveto
+(x) jkpmi 9.96265 fshow
+37.19257 -111.5924 moveto
+(\)) jkpmn8r 9.96265 fshow
+ [] 0 setdash
+newpath 62.74893 -90.44675 moveto
+62.74893 -116.67337 lineto stroke
+94.71198 -106.0507 moveto
+(+) cmr10 9.96265 fshow
+124.01282 -106.81535 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 126.72762 -90.44675 moveto
+126.72762 -116.67337 lineto stroke
+152.54613 -106.0507 moveto
+(\000) cmsy10 9.96265 fshow
+183.39854 -106.81535 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 186.11334 -90.44675 moveto
+186.11334 -116.67337 lineto stroke
+212.96347 -106.0507 moveto
+(+) cmr10 9.96265 fshow
+244.84752 -106.81535 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 247.56232 -90.44675 moveto
+247.56232 -116.67337 lineto stroke
+275.4441 -106.0507 moveto
+(\000) cmsy10 9.96265 fshow
+308.3598 -106.81535 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 311.0746 -90.44675 moveto
+311.0746 -116.67337 lineto stroke
+339.08852 -106.0507 moveto
+(+) cmr10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -17.4205 moveto
+385.91464 -17.4205 lineto stroke
+newpath 0 -53.93362 moveto
+385.91464 -53.93362 lineto stroke
+newpath 0 -90.44675 moveto
+385.91464 -90.44675 lineto stroke
+newpath 0 0 moveto
+385.91464 0 lineto stroke
+newpath 0 -116.67337 moveto
+385.91464 -116.67337 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -116.67337 lineto stroke
+newpath 385.91464 0 moveto
+385.91464 -116.67337 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.6 b/macros/latex/contrib/tablor/Figures/tablor_Tab.6
new file mode 100644
index 0000000000..9b7a071d34
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.6
@@ -0,0 +1,69 @@
+%!PS
+%%BoundingBox: -1 -43 201 1
+%%HiResBoundingBox: -0.25 -42.9349 200.6282 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d08000000010000d42
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+24.73221 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 54.74463 0 moveto
+54.74463 -15.94019 lineto stroke
+59.72594 -10.08714 moveto
+(\0001) jkpsy 9.96265 fshow
+124.77193 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+180.0146 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+186.2512 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+8.7173 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+35.3872 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+16.85341 -37.60394 moveto
+(f) jkpmi 9.96265 fshow
+23.0601 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+25.96591 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+29.3632 -37.60394 moveto
+(x) jkpmi 9.96265 fshow
+34.6434 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 54.74463 -15.94019 moveto
+54.74463 -42.6849 lineto stroke
+93.5402 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+124.77193 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 127.48672 -15.94019 moveto
+127.48672 -42.6849 lineto stroke
+153.72188 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop [] 0 setdash
+newpath 0 -15.94019 moveto
+200.3782 -15.94019 lineto stroke
+newpath 0 0 moveto
+200.3782 0 lineto stroke
+newpath 0 -42.6849 moveto
+200.3782 -42.6849 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -42.6849 lineto stroke
+newpath 200.3782 0 moveto
+200.3782 -42.6849 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.7 b/macros/latex/contrib/tablor/Figures/tablor_Tab.7
new file mode 100644
index 0000000000..b829cf87ba
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.7
@@ -0,0 +1,168 @@
+%!PS
+%%BoundingBox: -1 -88 392 1
+%%HiResBoundingBox: -0.25 -87.7667 391.79092 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 67:8004
+%*Font: jkpsy 9.96265 9.96265 00:8000000000004
+%*Font: jkpmn8r 9.96265 9.96265 28:d0c000000012004d4338
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: jkpsy 7.57156 9.96265 30:8
+%*Font: jkpmn8r 7.57156 9.96265 30:c04
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -10.8867 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+80.34853 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.22539 moveto
+(10) jkpmn8r 9.96265 fshow
+158.72443 -11.22539 moveto
+(\000) jkpsy 9.96265 fshow
+164.81163 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+231.52133 -11.22539 moveto
+(0) jkpmn8r 9.96265 fshow
+301.27463 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+371.17732 -10.43333 moveto
+(+) jkpmn8r 9.96265 fshow
+377.41393 -10.43333 moveto
+(1) jkpsy 9.96265 fshow
+19.0286 -25.59904 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -25.59904 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2456 -37.60394 moveto
+(g) jkpmi 9.96265 fshow
+33.725 -33.48946 moveto
+(0) jkpsy 7.57156 fshow
+36.6309 -37.60394 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0282 -37.60394 moveto
+(t) jkpmi 9.96265 fshow
+43.8737 -37.60394 moveto
+(\)) jkpmn8r 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -42.6849 lineto stroke
+122.77792 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+newpath 163.48657 -15.94019 moveto
+163.48657 -42.6849 lineto stroke
+newpath 165.4791 -15.94019 moveto
+165.4791 -42.6849 lineto stroke
+195.48512 -31.80319 moveto
+(+) cmr10 9.96265 fshow
+231.52133 -32.56784 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 234.23613 -15.94019 moveto
+234.23613 -42.6849 lineto stroke
+265.23842 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+ [] 0 setdash
+newpath 302.99316 -15.94019 moveto
+302.99316 -42.6849 lineto stroke
+newpath 304.98569 -15.94019 moveto
+304.98569 -42.6849 lineto stroke
+337.5546 -31.80319 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -63.45946 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -63.45946 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -63.45946 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -63.45946 moveto
+(de) jkpmn8r 9.96265 fshow
+34.94391 -71.31996 moveto
+(g) jkpmi 9.96265 fshow
+newpath 75.36722 -42.6849 moveto
+75.36722 -87.5167 lineto stroke
+82.63193 -77.44139 moveto
+(100) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 82.63193 -78.87598 moveto
+95.01154 -78.87598 lineto stroke
+84.69524 -84.80379 moveto
+(99) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 98.20753 -74.83601 moveto
+145.1079 -55.49161 lineto stroke
+newpath 142.27533 -58.31577 moveto
+145.1079 -55.49161 lineto
+141.108 -55.4856 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 163.48657 -42.6849 moveto
+163.48657 -87.5167 lineto stroke
+newpath 165.4791 -42.6849 moveto
+165.4791 -87.5167 lineto stroke
+147.10802 -53.95761 moveto
+(+) jkpmn8r 9.96265 fshow
+153.34462 -53.95761 moveto
+(1) jkpsy 9.96265 fshow
+166.47536 -80.82428 moveto
+(\0001) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 183.1911 -74.59015 moveto
+229.52153 -53.62755 lineto stroke
+newpath 226.78568 -56.54558 moveto
+229.52153 -53.62755 lineto
+225.52362 -53.7563 lineto
+ closepath
+gsave fill grestore stroke
+231.52133 -54.74966 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 238.9505 -53.62741 moveto
+285.28139 -74.59029 lineto stroke
+newpath 281.28345 -74.46155 moveto
+285.28139 -74.59029 lineto
+282.5455 -71.67224 lineto
+ closepath
+gsave fill grestore stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 302.99316 -42.6849 moveto
+302.99316 -87.5167 lineto stroke
+newpath 304.98569 -42.6849 moveto
+304.98569 -87.5167 lineto stroke
+286.76399 -80.82428 moveto
+(\0001) jkpsy 9.96265 fshow
+305.98195 -53.95761 moveto
+(+) jkpmn8r 9.96265 fshow
+312.21855 -53.95761 moveto
+(1) jkpsy 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 323.36446 -55.53958 moveto
+374.15364 -76.73926 lineto stroke
+newpath 370.1538 -76.72841 moveto
+374.15364 -76.73926 lineto
+371.33305 -73.90321 lineto
+ closepath
+gsave fill grestore stroke
+376.15367 -81.96252 moveto
+(1) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+391.54092 -15.94019 lineto stroke
+newpath 0 -42.6849 moveto
+391.54092 -42.6849 lineto stroke
+newpath 0 0 moveto
+391.54092 0 lineto stroke
+newpath 0 -87.5167 moveto
+391.54092 -87.5167 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -87.5167 lineto stroke
+newpath 391.54092 0 moveto
+391.54092 -87.5167 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.8 b/macros/latex/contrib/tablor/Figures/tablor_Tab.8
new file mode 100644
index 0000000000..4eb6b62a5e
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.8
@@ -0,0 +1,165 @@
+%!PS
+%%BoundingBox: -1 -92 280 1
+%%HiResBoundingBox: -0.25 -91.07333 279.271 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 67:8004
+%*Font: jkpsy 9.96265 9.96265 00:8
+%*Font: jkpmia 9.96265 9.96265 19:8
+%*Font: jkpmn8r 7.57156 9.96265 28:c07
+%*Font: cmsy10 9.96265 9.96265 00:8
+%*Font: cmr10 9.96265 9.96265 2b:8
+%*Font: jkpsy 7.57156 9.96265 00:8000000000008
+%*Font: jkpmia 7.57156 9.96265 19:8
+%*Font: jkpmn8r 9.96265 9.96265 28:c08000000012004d4338
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.7608 -12.54002 moveto
+(t) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -19.24683 lineto stroke
+80.34853 -11.88496 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -11.88496 moveto
+(\031) jkpmia 9.96265 fshow
+144.179 -8.10117 moveto
+(\() jkpmn8r 7.57156 fshow
+146.76091 -8.10117 moveto
+(\000) jkpsy 7.57156 fshow
+151.3872 -8.10117 moveto
+(\031) jkpmia 7.57156 fshow
+156.5056 -8.10117 moveto
+(\)) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 144.179 -10.76396 moveto
+158.9739 -10.76396 lineto stroke
+149.5132 -16.69177 moveto
+(2) jkpmn8r 7.57156 fshow
+211.178 -7.71582 moveto
+(\031) jkpmia 7.57156 fshow
+newpath 211.178 -9.1504 moveto
+216.2964 -9.1504 lineto stroke
+211.674 -15.07822 moveto
+(2) jkpmn8r 7.57156 fshow
+267.30498 -11.88496 moveto
+(\031) jkpmia 9.96265 fshow
+19.0286 -28.90569 moveto
+(Signe) jkpmn8r 9.96265 fshow
+45.6985 -28.90569 moveto
+(de) jkpmn8r 9.96265 fshow
+28.2456 -40.91058 moveto
+(g) jkpmi 9.96265 fshow
+33.725 -36.7961 moveto
+(0) jkpsy 7.57156 fshow
+36.6309 -40.91058 moveto
+(\() jkpmn8r 9.96265 fshow
+40.0282 -40.91058 moveto
+(t) jkpmi 9.96265 fshow
+43.8737 -40.91058 moveto
+(\)) jkpmn8r 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth 1 setlinecap
+newpath 75.36722 -19.24683 moveto
+75.36722 -45.99155 lineto stroke
+115.29361 -35.10983 moveto
+(\000) cmsy10 9.96265 fshow
+148.86166 -35.87448 moveto
+(0) jkpmn8r 9.96265 fshow
+ [3 3 ] 0 setdash
+newpath 151.57646 -19.24683 moveto
+151.57646 -45.99155 lineto stroke
+178.78247 -35.10983 moveto
+(+) cmr10 9.96265 fshow
+211.0224 -35.87448 moveto
+(0) jkpmn8r 9.96265 fshow
+newpath 213.7372 -19.24683 moveto
+213.7372 -45.99155 lineto stroke
+238.33041 -35.10983 moveto
+(\000) cmsy10 9.96265 fshow
+8.7173 -66.7661 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -66.7661 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -66.7661 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -66.7661 moveto
+(de) jkpmn8r 9.96265 fshow
+34.94391 -74.6266 moveto
+(g) jkpmi 9.96265 fshow
+ [] 0 setdash
+newpath 75.36722 -45.99155 moveto
+75.36722 -90.82333 lineto stroke
+84.69617 -53.59383 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 84.69617 -55.02841 moveto
+88.82268 -55.02841 lineto stroke
+84.69617 -60.95622 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 92.01813 -57.0088 moveto
+144.00446 -78.83484 lineto stroke
+newpath 140.00487 -78.8157 moveto
+144.00446 -78.83484 lineto
+141.1899 -75.9931 lineto
+ closepath
+gsave fill grestore stroke
+147.20006 -80.80669 moveto
+(\000) jkpsy 7.57156 fshow
+151.82635 -80.80669 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 147.20006 -82.24127 moveto
+155.95287 -82.24127 lineto stroke
+149.51317 -88.16908 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 159.14833 -78.69907 moveto
+208.47873 -57.10306 lineto stroke
+newpath 205.7073 -59.98737 moveto
+208.47873 -57.10306 lineto
+204.47952 -57.1828 lineto
+ closepath
+gsave fill grestore stroke
+211.67389 -53.59383 moveto
+(3) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 211.67389 -55.02841 moveto
+215.8004 -55.02841 lineto stroke
+211.67389 -60.95622 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 218.9958 -57.3144 moveto
+265.41368 -79.50043 lineto stroke
+newpath 261.41965 -79.28793 moveto
+265.41368 -79.50043 lineto
+262.73978 -76.52591 lineto
+ closepath
+gsave fill grestore stroke
+268.60902 -80.80669 moveto
+(1) jkpmn8r 7.57156 fshow
+ 0 0.4981 dtransform truncate idtransform setlinewidth pop 0 setlinecap
+newpath 268.60902 -82.24127 moveto
+272.73553 -82.24127 lineto stroke
+268.60902 -88.16908 moveto
+(2) jkpmn8r 7.57156 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 0 -19.24683 moveto
+279.021 -19.24683 lineto stroke
+newpath 0 -45.99155 moveto
+279.021 -45.99155 lineto stroke
+newpath 0 0 moveto
+279.021 0 lineto stroke
+newpath 0 -90.82333 moveto
+279.021 -90.82333 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -90.82333 lineto stroke
+newpath 279.021 0 moveto
+279.021 -90.82333 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.9 b/macros/latex/contrib/tablor/Figures/tablor_Tab.9
new file mode 100644
index 0000000000..a3d2321662
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.9
@@ -0,0 +1,84 @@
+%!PS
+%%BoundingBox: -1 -62 263 1
+%%HiResBoundingBox: -0.25 -61.02197 262.82468 0.25
+%%Creator: MetaPost 1.208
+%%CreationDate: 2010.05.09:2024
+%%Pages: 1
+%*Font: jkpmi 9.96265 9.96265 66:80002
+%*Font: jkpmn8r 9.96265 9.96265 31:f8800000040098867
+%*Font: jkpsy 9.96265 9.96265 00:8
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 0 0 setrgbcolor
+35.0435 -10.22914 moveto
+(x) jkpmi 9.96265 fshow
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth [] 0 setdash
+ 1 setlinecap 1 setlinejoin 10 setmiterlimit
+newpath 75.36722 0 moveto
+75.36722 -15.94019 lineto stroke
+83.39214 -11.22539 moveto
+(1) jkpmn8r 9.96265 fshow
+141.67842 -11.22539 moveto
+(2) jkpmn8r 9.96265 fshow
+196.9211 -11.22539 moveto
+(3) jkpmn8r 9.96265 fshow
+252.16377 -11.32748 moveto
+(4) jkpmn8r 9.96265 fshow
+8.7173 -36.28383 moveto
+(V) jkpmn8r 9.96265 fshow
+14.8941 -36.28383 moveto
+(aria) jkpmn8r 9.96265 fshow
+31.71101 -36.28383 moveto
+(tions) jkpmn8r 9.96265 fshow
+56.00981 -36.28383 moveto
+(de) jkpmn8r 9.96265 fshow
+34.58022 -45.00612 moveto
+(f) jkpmi 9.96265 fshow
+newpath 75.36722 -15.94019 moveto
+75.36722 -60.77197 lineto stroke
+80.34853 -54.78691 moveto
+(\000) jkpsy 9.96265 fshow
+86.43573 -54.78691 moveto
+(1) jkpmn8r 9.96265 fshow
+ 0 0.5 dtransform truncate idtransform setlinewidth pop
+newpath 93.86497 -48.02423 moveto
+139.67857 -27.31203 lineto stroke
+newpath 136.94176 -30.22931 moveto
+139.67857 -27.31203 lineto
+135.68053 -27.43958 lineto
+ closepath
+gsave fill grestore stroke
+141.67842 -28.43584 moveto
+(5) jkpmn8r 9.96265 fshow
+newpath 149.10777 -27.4294 moveto
+194.92125 -49.28271 lineto stroke
+newpath 190.92636 -49.0733 moveto
+194.92125 -49.28271 lineto
+192.24457 -46.30978 lineto
+ closepath
+gsave fill grestore stroke
+196.9211 -54.78691 moveto
+(2) jkpmn8r 9.96265 fshow
+newpath 204.35045 -49.28276 moveto
+250.16393 -27.42944 lineto stroke
+newpath 247.48724 -30.40237 moveto
+250.16393 -27.42944 lineto
+246.16904 -27.63885 lineto
+ closepath
+gsave fill grestore stroke
+252.16377 -28.35864 moveto
+(9) jkpmn8r 9.96265 fshow
+newpath 0 -15.94019 moveto
+262.57468 -15.94019 lineto stroke
+newpath 0 0 moveto
+262.57468 0 lineto stroke
+newpath 0 -60.77197 moveto
+262.57468 -60.77197 lineto stroke
+ 0.5 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 0 moveto
+0 -60.77197 lineto stroke
+newpath 262.57468 0 moveto
+262.57468 -60.77197 lineto stroke
+showpage
+%%EOF
diff --git a/macros/latex/contrib/tablor/Figures/tablor_Tab.mp b/macros/latex/contrib/tablor/Figures/tablor_Tab.mp
new file mode 100644
index 0000000000..260b9b876d
--- /dev/null
+++ b/macros/latex/contrib/tablor/Figures/tablor_Tab.mp
@@ -0,0 +1,727 @@
+input tableauVariation;
+verbatimtex
+%&latex
+\documentclass{article}
+\usepackage[upright]{kpfonts}% ou mathpazo, lmodern, etc. ou rien !
+%\usepackage{amsmath}
+\renewcommand\mbox[1]{ #1 } % pour les mbox intempestifs de xcas
+\renewcommand\cdot{ } % idem pour les cdot
+\begin{document}
+\catcode`\@=0 % pour utiliser le @
+etex
+beginTableau(0) newLigneVariables(btex $t$ etex);val(btex $-10$ etex);
+val(btex $-1$ etex);
+val(btex $0$ etex);
+val(btex $1$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle g'(t)}$ etex); plus; nonDefBarre;plus;valBarre(btex 0 etex);moins;nonDefBarre;moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle g}$ etex);valPos(btex $\frac{100}{99}$ etex,0); limGauche(btex
+ $+\infty $
+ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$
+ etex,1);limGauche(btex
+ $-\infty$
+ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $1$ etex,0);
+endTableau;
+
+beginTableau(1) newLigneVariables(btex $t$ etex);val(btex $-10$ etex);
+val(btex $-1$ etex);
+val(btex $0$ etex);
+val(btex $1$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle g'(t)}$ etex); plus; nonDefBarre;plus;valBarre(btex 0 etex);moins;nonDefBarre;moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle g}$ etex);valPos(btex $\frac{100}{99}$ etex,0); limGauche(btex
+ $+\infty $
+ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$
+ etex,1);limGauche(btex
+ $-\infty$
+ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $1$ etex,0);
+endTableau;
+
+beginTableau(2) newLigneVariables(btex $x$ etex);val(btex $0$ etex);
+val(btex $2$ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);valBarre(btex 0 etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $0$ etex,0);valPos(btex $4$ etex,1);
+endTableau;
+
+
+beginTableau(3)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-\infty $ etex);val(btex $\frac{-3}{5}$ etex);
+val(btex $2$ etex);
+val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -45 x-27}$ etex); plus; valBarre(btex 0 etex);moins;barre;moins;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle 2-x}$ etex); plus;barre;plus;valBarre(btex 0 etex);moins;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @varphi(x)}$ etex); plus;valBarre(btex 0 etex); moins;nonDefBarre;plus;
+endTableau;
+
+beginTableau(4) newLigneVariables(btex $x$ etex);val(btex $-5$ etex);
+val(btex $0$ etex);
+val(btex $7$ etex);
+
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $25$ etex,1); valPos(btex $0$
+ etex,0);
+valPos(btex $49$ etex,1);
+endTableau;
+
+beginTableau(5) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
+val(btex $0$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);moins; valBarre(btex 0 etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $+\infty $ etex,1); valPos(btex $0$
+ etex,0);
+valPos(btex $+\infty $ etex,1);
+endTableau;
+
+
+
+beginTableau(6) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
+val(btex $0$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);moins; valBarre(btex 0 etex);plus;
+endTableau;
+
+beginTableau(7) newLigneVariables(btex $t$ etex);val(btex $-10$ etex);
+val(btex $-1$ etex);
+val(btex $0$ etex);
+val(btex $1$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle g'(t)}$ etex); plus; nonDefBarre;plus;valBarre(btex 0 etex);moins;nonDefBarre;moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle g}$ etex);valPos(btex $\frac{100}{99}$ etex,0); limGauche(btex
+ $+\infty $
+ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$
+ etex,1);limGauche(btex
+ $-\infty$
+ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $1$ etex,0);
+endTableau;
+
+beginTableau(8) newLigneVariables(btex $t$ etex);val(btex $-\pi $ etex);
+val(btex $\frac{(-\pi )}{2}$ etex);
+val(btex $\frac{\pi }{2}$ etex);
+val(btex $\pi $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle g'(t)}$ etex); moins; valBarre(btex 0 etex);plus;valBarre(btex 0 etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle g}$ etex);valPos(btex $\frac{1}{2}$ etex,1); valPos(btex $\frac{-1}{2}$
+ etex,0);
+valPos(btex $\frac{3}{2}$
+ etex,1);valPos(btex $\frac{1}{2}$ etex,0);
+endTableau;
+
+beginTableau(9) newLigneVariables(btex $x$ etex);val(btex $1$ etex);val(btex $2$ etex);val(btex $3$ etex);val(btex $4$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $-1$ etex,0); valPos(btex $5$etex,1);valPos(btex $2$etex,0);valPos(btex $9$ etex,1);
+endTableau;
+
+beginTableau(10) newLigneVariables(btex $x$ etex);val(btex $1$ etex);val(btex $2$ etex);val(btex $3$ etex);val(btex $4$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $-1$ etex,1); limGauche(btex$-\infty $etex,0);nonDefBarre;limDroite(btex$+\infty $etex,1);valPos(btex $2$etex,0);valPos(btex $9$ etex,1);
+endTableau;
+
+beginTableau(11) newLigneVariables(btex $x$ etex);val(btex $1$ etex);val(btex $2$ etex);val(btex $3$ etex);val(btex $4$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);nonDefBarre;limDroite(btex $-1$ etex,1); limGauche(btex$-\infty $etex,0);nonDefBarre;limDroite(btex$+\infty $etex,1);valPos(btex $2$etex,0);limGauche(btex $+\infty $ etex,1);nonDefBarre;
+endTableau;
+
+beginTableau(12) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
+val(btex $-1$ etex);
+val(btex $1$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @varphi'(x)}$ etex);moins; debutNonDefStrict;finNonDefStrict;plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle @varphi}$ etex);valPos(btex $+\infty $ etex,1); limGauche(btex $0$ etex,0);debutNonDef;finNonDef;limDroite(btex $0$ etex,0);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(13) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
+val(btex $-1$ etex);
+val(btex $1$ etex);
+val(btex $\frac{5}{2}$ etex);
+val(btex $4$ etex);
+val(btex $6$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);moins; debutNonDefStrict;finNonDefStrict;plus;valBarre(btex 0 etex);moins;debutNonDefStrict;finNonDefStrict;plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $+\infty $ etex,1); limGauche(btex $-\infty$ etex,0);debutNonDefStrict;finNonDefStrict;limDroite(btex $-\infty$ etex,0);valPos(btex$\ln\left(\frac{441}{16}\right)$etex,1);limGauche(btex $-\infty$ etex,0);debutNonDefStrict;finNonDefStrict;limDroite(btex $-\infty$ etex,0);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(14) newLigneVariables(btex $x$ etex);val(btex $-10$ etex);val(btex $\alpha_1$ etex);val(btex $-1$ etex);val(btex $0$ etex);val(btex $1$ etex);val(btex $\alpha_2$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); plus;valBarre(btex$
+ $ etex);plus; nonDefBarre;plus;valBarre(btex 0 etex);moins;nonDefBarre;moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $\frac{100}{99}$ etex,0);valPos(btex $ 10 $ etex,0.5); limGauche(btex $+\infty $ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$
+ etex,1);limGauche(btex $-\infty$ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex
+ $ 10 $ etex,0.5);
+ valPos(btex $1$ etex,0);
+endTableau;
+
+beginTableau(15) newLigneVariables(btex $x$ etex);val(btex $-10$ etex);val(btex $-1$ etex);val(btex $\alpha_1$ etex);val(btex $0$ etex);val(btex $\alpha_2$ etex);val(btex $1$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); plus; nonDefBarre;plus;valBarre(btex $ $ etex);plus;valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;nonDefBarre;moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $\frac{100}{99}$ etex,0); limGauche(btex $+\infty $ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex
+ $ -1 $ etex,0.5);
+ valPos(btex $0$
+ etex,1);valPos(btex
+ $ -1 $ etex,0.5);
+ limGauche(btex $-\infty$ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $1$ etex,0);
+endTableau;
+
+beginTableau(16) newLigneVariables(btex $x$ etex);val(btex $-10$ etex);val(btex $\frac{(-\left(\sqrt{10}\right))}{3}$ etex);val(btex $-1$ etex);val(btex $0$ etex);val(btex $1$ etex);val(btex $\frac{\sqrt{10}}{3}$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); plus;valBarre(btex$
+ $ etex);plus; nonDefBarre;plus;valBarre(btex 0 etex);moins;nonDefBarre;moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $\frac{100}{99}$ etex,0);valPos(btex $ 10 $ etex,0.5); limGauche(btex $+\infty $ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$
+ etex,1);limGauche(btex $-\infty$ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex
+ $ 10 $ etex,0.5);
+ valPos(btex $1$ etex,0);
+endTableau;
+
+beginTableau(17) newLigneVariables(btex $x$ etex);val(btex $-10$ etex);val(btex $-1$ etex);val(btex $\frac{(-\left(\sqrt{2}\right))}{2}$ etex);val(btex $0$ etex);val(btex $\frac{\sqrt{2}}{2}$ etex);val(btex $1$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); plus; nonDefBarre;plus;valBarre(btex $ $ etex);plus;valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;nonDefBarre;moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $\frac{100}{99}$ etex,0); limGauche(btex $+\infty $ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex
+ $ -1 $ etex,0.5);
+ valPos(btex $0$
+ etex,1);valPos(btex
+ $ -1 $ etex,0.5);
+ limGauche(btex $-\infty$ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $1$ etex,0);
+endTableau;
+
+beginTableau(18) newLigneVariables(btex $x$ etex);val(btex $-\pi $ etex);val(btex $\frac{(-\pi )}{3}$ etex);val(btex $0$ etex);val(btex $\frac{\pi }{3}$ etex);val(btex $\pi $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @cos'(x)}$ etex);valBarre(btex 0 etex);plus;valBarre(btex$
+ $ etex);plus; valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle @cos}$ etex);
+valPos(btex $-1$ etex,0);valPos(btex $ 1/2 $ etex,0.5); valPos(btex $1$
+ etex,1);valPos(btex
+ $ 1/2 $ etex,0.5);valPos(btex $-1$ etex,0);
+endTableau;
+
+beginTableau(19) newLigneVariables(btex $x$ etex);val(btex $0$ etex);
+val(btex $ 0.156422$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle g'(x)}$ etex);nonDefBarre;moins; valBarre(btex 0 etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle g}$ etex);nonDefBarre;limDroite(btex $-1$ etex,1); valPos(btex $ -1.145392$
+ etex,0);
+valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(20) newLigneVariables(btex $t$ etex);val(btex $-\infty $ etex);
+val(btex $0$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle g'(t)}$ etex);moins; nonDefBarre;plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle g}$ etex);valPos(btex $1$ etex,1); valPos(btex
+ $0$
+ etex,0);valPos(btex $1$ etex,1);
+endTableau;
+
+beginTableau(21) newLigneVariables(btex $t$ etex);val(btex $0$ etex);
+val(btex $\frac{\pi }{8}$ etex);
+val(btex $\frac{\pi }{3}$ etex);
+val(btex $\frac{3 \pi }{8}$ etex);
+val(btex $\frac{\pi }{2}$ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x'(t)}$ etex);valBarre(btex $0$ etex);moins;valBarre(btex $-3 \sin\left(\frac{3 \pi }{8}\right)$ etex);moins;valBarre(btex $0$ etex);plus;valBarre(btex $3 \sin\left(\frac{\pi }{8}\right)$ etex);plus;valBarre(btex $3$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle x}$ etex);valPos(btex $1$ etex,1);valPos(btex $\cos\left(\frac{3 \pi }{8}\right)$
+ etex,0.5);valPos(btex $-1$
+ etex,0);
+valPos(btex $-\left(\cos\left(\frac{\pi }{8}\right)\right)$
+ etex,0.5);valPos(btex $0$ etex,1);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle y'(t)}$ etex);valBarre(btex $4$ etex);plus;valBarre(btex $0$ etex);moins;valBarre(btex $-2$ etex);moins;valBarre(btex $0$ etex);plus;valBarre(btex $4$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle y}$ etex);valPos(btex $0$ etex,0);valPos(btex $1$
+ etex,1);valPos(btex $\frac{(-\left(\sqrt{3}\right))}{2}$
+ etex,0.5);valPos(btex $-1$
+ etex,0);
+valPos(btex $0$ etex,1);
+endTableau;
+
+beginTableau(22) newLigneVariables(btex $t$ etex);val(btex $-\infty $ etex);
+val(btex $-4$ etex);
+val(btex $-1$ etex);
+val(btex $0$ etex);
+val(btex $2$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x'(t)}$ etex); moins;valBarre(btex $0$ etex);plus;nonDefBarre;plus;valBarre(btex $0$ etex);moins;nonDefBarre;moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle x}$ etex);valPos(btex $1$ etex,1);valPos(btex $\frac{8}{9}$
+ etex,0);
+limGauche(btex
+ $+\infty $
+ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$
+ etex,1);limGauche(btex
+ $-\infty$
+ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $1$ etex,0);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle y'(t)}$ etex); moins;valBarre(btex $\frac{-64}{9}$ etex);moins;nonDefBarre;moins;valBarre(btex $0$ etex);plus;valBarre(btex $\frac{44}{9}$ etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle y}$ etex);valPos(btex $+\infty $ etex,1);valPos(btex $\frac{32}{3}$
+ etex,0.5);limGauche(btex
+ $-\infty$
+ etex,0);nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $0$
+ etex,0);
+valPos(btex $\frac{16}{3}$
+ etex,0.5);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+
+ beginTableau(23)
+ newLigneVariables(btex $ {x}$ etex);
+ val(btex $-\infty$ etex);val(btex $\frac{3}{2}$ etex);
+val(btex $5$etex);
+val(btex $+\infty$ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -2x+3}$ etex);plus;valBarre(btex 0 etex);moins;barre;moins;
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -x+5}$ etex);plus;barre;plus;valBarre(btex 0 etex);moins;
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle {(-2x+3)(-x+5)}}$ etex);plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;
+endTableau;
+ beginTableau(24)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-\infty $ etex);val(btex $-\left(\sqrt{2}\right)$ etex);
+val(btex $-1$ etex);
+val(btex $1$ etex);
+val(btex $\sqrt{2}$ etex);
+val(btex $\frac{3}{2}$ etex);
+val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -2 x+3}$ etex);
+ plus;barre;
+ plus;barre;
+ plus;barre;
+ plus;barre;
+ plus;valBarre(btex 0 etex);moins;
+
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x^{2}-1}$ etex);
+ plus;barre;
+ plus;
+ valBarre(btex 0 etex);moins;
+ valBarre(btex 0 etex);plus;barre;
+ plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x^{2}+1}$ etex);
+ plus;barre;
+ plus;barre;
+ plus;barre;
+ plus;barre;
+ plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x-1}$ etex);
+ moins;barre;
+ moins;barre;
+ moins;
+ valBarre(btex 0 etex);plus;barre;
+ plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x^{2}-2}$ etex);
+ plus;
+ valBarre(btex 0 etex);moins;barre;
+ moins;barre;
+ moins;
+ valBarre(btex 0 etex);plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle P(x)}$ etex);
+ moins;valBarre(btex 0 etex); plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;valBarre(btex 0 etex);moins;
+
+endTableau;
+
+ beginTableau(25)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-15$ etex);val(btex $-10$ etex);
+val(btex $10$ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x-10}$ etex);
+ moins;barre;moins;
+
+ valBarre(btex 0 etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x+10}$ etex);
+ moins;valBarre(btex 0 etex);plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f(x)}$ etex);
+ plus;valBarre(btex 0 etex); moins;
+ valBarre(btex 0 etex);
+endTableau;
+
+
+beginTableau(26)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-\infty $ etex);val(btex $-4$ etex);
+val(btex $\frac{5}{4}$ etex);
+val(btex $\frac{3}{2}$ etex);
+val(btex $2$ etex);
+val(btex $4$ etex);
+val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -2 x+3}$ etex); plus;barre;plus;barre;plus; valBarre(btex 0 etex);moins;barre;moins;barre;moins;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -4 x+5}$ etex); plus;barre;plus; valBarre(btex 0 etex);moins;barre;moins;barre;moins;barre;moins;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x^{2}-16}$ etex); plus; valBarre(btex 0 etex);moins;barre;moins;barre;moins;barre;moins;valBarre(btex 0 etex);plus;
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x-2}$ etex); moins;barre;moins;barre;moins;barre;moins; valBarre(btex 0 etex);plus;barre;plus;
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle Q(x)}$ etex); moins;nonDefBarre; plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;nonDefBarre;moins;nonDefBarre;plus;
+endTableau;
+
+
+beginTableau(27)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-10$ etex);val(btex $-3$ etex);
+val(btex $5$ etex);
+val(btex $10$ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x-10}$ etex); moins;barre;moins;barre;moins;
+ valBarre(btex 0 etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x-5}$ etex); moins;barre;moins;valBarre(btex 0 etex);plus;
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x+10}$ etex); valBarre(btex 0 etex);plus;barre;plus;barre;plus;
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x+3}$ etex); moins; valBarre(btex 0 etex);plus;barre;plus;
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle Q(x)}$ etex);nonDefBarre;moins;nonDefBarre; plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);
+endTableau;
+
+
+
+beginTableau(28)
+newLigneVariables(btex $\displaystyle {x}$ etex);
+ val(btex $-10$ etex);val(btex $-5$ etex);
+val(btex $10$ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle (x-10) (x+5)}$ etex);
+ plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);
+endTableau;
+
+
+
+beginTableau(29)
+newLigneVariables(btex $\displaystyle {x}$ etex);
+ val(btex $-10$ etex);val(btex $2$ etex);
+val(btex $5$ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle \frac{(x+10)}{(x-5) (x-2)}}$ etex);
+ valBarre(btex 0 etex); plus;nonDefBarre;moins;nonDefBarre;
+endTableau;
+
+
+
+beginTableau(30)
+newLigneVariables(btex $\displaystyle {x}$ etex);
+ val(btex $0$ etex);val(btex $\frac{\pi }{2}$ etex);
+val(btex $\pi $ etex);
+val(btex $\frac{3 \pi }{2}$ etex);
+val(btex $2 \pi $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle \tan\left(x\right)}$ etex);
+ valBarre(btex 0 etex); plus;nonDefBarre;moins;valBarre(btex 0 etex);plus;nonDefBarre;moins;valBarre(btex 0 etex);
+endTableau;
+
+ beginTableau(105)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-50$ etex);val(btex $-\frac{2}{3}$ etex);
+val(btex $-\frac{\sqrt{5}}{5}$ etex);
+val(btex $\frac{\sqrt{5}}{5}$ etex);
+val(btex $50$ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle 3 x+2}$ etex);
+ moins;
+ valBarre(btex 0 etex);plus;barre;
+ plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle 5 x^{2}-1}$ etex);
+ plus;barre;
+ plus;
+ valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle F(x)}$ etex);
+ moins;valBarre(btex 0 etex); plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;
+
+endTableau;
+
+ beginTableau(31) newLigneVariables(btex $x$ etex);val(btex $-1$ etex);val(btex $\alpha_1$ etex);val(btex $0$ etex);val(btex $\alpha_2$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);nonDefBarre;moins;valBarre(btex$
+ $ etex);moins; valBarre(btex 0 etex);plus;valBarre(btex $ $ etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+nonDefBarre;limDroite(btex $+\infty $ etex,1);valPos(btex $ 2 $ etex,0.5); valPos(btex $-1$
+ etex,0);valPos(btex
+ $ 2 $ etex,0.5);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(32) newLigneVariables(btex $x$ etex);val(btex $\frac{-1}{2}$ etex);val(btex $0$ etex);val(btex $\alpha_1$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); moins; valBarre(btex 0 etex);plus;valBarre(btex $ $ etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $\frac{1}{4}$ etex,1); valPos(btex $0$
+ etex,0);valPos(btex
+ $ 2 $ etex,0.5);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(33) newLigneVariables(btex $x$ etex);val(btex $0$ etex);val(btex $\alpha_1$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @ln'(x)}$ etex);nonDefBarre;plus;valBarre(btex$
+ $ etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle @ln}$ etex);
+nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $ 2 $ etex,0.5);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(35) newLigneVariables(btex $x$ etex);val(btex $1$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -@ln'(x)}$ etex); moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle -@ln}$ etex);valPos(btex $0$ etex,1);valPos(btex $-\infty$ etex,0);
+endTableau;
+
+beginTableau(36) newLigneVariables(btex $x$ etex);val(btex $-\pi $ etex);val(btex $\alpha_1$ etex);val(btex $0$ etex);val(btex $\alpha_2$ etex);val(btex $\pi $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @cos'(x)}$ etex);valBarre(btex 0 etex);plus;valBarre(btex$
+ $ etex);plus; valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle @cos}$ etex);
+valPos(btex $-1$ etex,0);valPos(btex $ 1/2 $ etex,0.5); valPos(btex $1$
+ etex,1);valPos(btex
+ $ 1/2 $ etex,0.5);valPos(btex $-1$ etex,0);
+endTableau;
+
+beginTableau(37) newLigneVariables(btex $x$ etex);val(btex $0$ etex);
+val(btex $\pi $ etex);
+val(btex $2 \pi $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @cos'(x)}$ etex);valBarre(btex 0 etex);moins; valBarre(btex 0 etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle @cos}$ etex);valPos(btex $1$ etex,1); valPos(btex $-1$
+ etex,0);
+valPos(btex $1$ etex,1);
+endTableau;
+
+beginTableau(38) newLigneVariables(btex $t$ etex);val(btex $0$ etex);val(btex $\alpha_1$ etex);val(btex $\frac{\pi }{2}$ etex);val(btex $\pi $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @tan'(t)}$ etex); plus;valBarre(btex$
+ $ etex);plus; nonDefBarre;plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle @tan}$ etex);
+valPos(btex $0$ etex,0);valPos(btex $ 7 $ etex,0.5); limGauche(btex $+\infty $ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$ etex,1);
+endTableau;
+
+beginTableau(39) newLigneVariables(btex $t$ etex);val(btex $0$ etex);val(btex $\mathrm{atan}\left(7\right)$ etex);val(btex $\frac{\pi }{2}$ etex);val(btex $\pi $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle @tan'(t)}$ etex); plus;valBarre(btex$
+ $ etex);plus; nonDefBarre;plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle @tan}$ etex);
+valPos(btex $0$ etex,0);valPos(btex $ 7 $ etex,0.5); limGauche(btex $+\infty $ etex,1);nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $0$ etex,1);
+endTableau;
+
+beginTableau(40) newLigneVariables(btex $x$ etex);val(btex $-1$ etex);val(btex $\alpha_1$ etex);val(btex $\frac{-1}{2}$ etex);val(btex $\alpha_2$ etex);val(btex $1$ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); plus;valBarre(btex$
+ $ etex);plus; valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $0$ etex,0);valPos(btex $ 1 $ etex,0.5); valPos(btex $\frac{3 \sqrt{3}}{4}$
+ etex,1);valPos(btex
+ $ 1 $ etex,0.5);valPos(btex $0$ etex,0);
+endTableau;
+
+beginTableau(41) newLigneVariables(btex $x$ etex);val(btex $-1$ etex);val(btex $ -0.839287$ etex);val(btex $\frac{-1}{2}$ etex);val(btex $0$ etex);val(btex $1$ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); plus;valBarre(btex$
+ $ etex);plus; valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $0$ etex,0);valPos(btex $ 1 $ etex,0.5); valPos(btex $\frac{3 \sqrt{3}}{4}$
+ etex,1);valPos(btex
+ $ 1 $ etex,0.5);valPos(btex $0$ etex,0);
+endTableau;
+
+beginTableau(42) newLigneVariables(btex $x$ etex);val(btex $-1$ etex);
+val(btex $0$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);nonDefBarre;plus; valBarre(btex 0 etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);nonDefBarre;limDroite(btex $-\infty$ etex,0); valPos(btex $0$
+ etex,1);valPos(btex $-\infty$ etex,0);
+endTableau;
+
+ beginTableau(43)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $-10$ etex);val(btex $\frac{(-\left(\sqrt{5}\right)-3)}{2}$ etex);
+val(btex $-1$ etex);
+val(btex $\frac{(\sqrt{5}-3)}{2}$ etex);
+val(btex $1$ etex);
+val(btex $\frac{3}{2}$ etex);
+val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle -2 x+3}$ etex);
+ plus;barre;
+ plus;barre;
+ plus;barre;
+ plus;barre;
+ plus;valBarre(btex 0 etex);moins;
+
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x-1}$ etex);
+ moins;barre;
+ moins;barre;
+ moins;barre;
+ moins;
+ valBarre(btex 0 etex);plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x+1}$ etex);
+ moins;barre;
+ moins;
+ valBarre(btex 0 etex);plus;barre;
+ plus;barre;
+ plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x^{2}+3 x+1}$ etex);
+ plus;
+ valBarre(btex 0 etex);moins;barre;
+ moins;
+ valBarre(btex 0 etex);plus;barre;
+ plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle G(x)}$ etex);
+ plus;valBarre(btex 0 etex); moins;valBarre(btex 0 etex);plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;valBarre(btex 0 etex);moins;
+
+endTableau;
+
+ beginTableau(44) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);val(btex $-3$ etex);val(btex $\alpha_1$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);moins; valBarre(btex 0 etex);plus;valBarre(btex $ $ etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $-1$ etex,1); valPos(btex $-\left(e^{-4}\right)-1$
+ etex,0);valPos(btex
+ $ 0 $ etex,0.5);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(45) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);val(btex $0$ etex);val(btex $\alpha_1$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);plus; valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $1$ etex,0); valPos(btex $2$
+ etex,1);valPos(btex
+ $ 0 $ etex,0.5);valPos(btex $-\infty$ etex,0);
+endTableau;
+
+beginTableau(47) newLigneVariables(btex $x$ etex);val(btex $0$ etex);
+val(btex $1$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); plus; valBarre(btex 0 etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $0$ etex,0); valPos(btex $\ln\left(\frac{(e^{1}+1)}{e^{1}}\right)$
+ etex,1);valPos(btex $0$ etex,0);
+endTableau;
+
+beginTableau(48) newLigneVariables(btex $x$ etex);val(btex $0$ etex);val(btex $\alpha_1$ etex);val(btex $\pi $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex); moins;valBarre(btex$
+ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+valPos(btex $1$ etex,1);valPos(btex $ 0 $ etex,0.5);valPos(btex $-\pi -1$ etex,0);
+endTableau;
+
+beginTableau(49) newLigneVariables(btex $x$ etex);val(btex $0$ etex);val(btex $\alpha_1$ etex);val(btex $\frac{1}{e^{\frac{-1}{2}}}$ etex);val(btex $\alpha_2$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);nonDefBarre;plus;valBarre(btex$
+ $ etex);plus; valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $ -1 $ etex,0.5); valPos(btex $\frac{1}{4}$
+ etex,1);valPos(btex
+ $ -1 $ etex,0.5);valPos(btex $-\infty$ etex,0);
+endTableau;
+
+beginTableau(50) newLigneVariables(btex $x$ etex);val(btex $0$ etex);val(btex $e^{\frac{(-\left(\sqrt{5}\right)+1)}{2}}$ etex);val(btex $\frac{1}{e^{\frac{-1}{2}}}$ etex);val(btex $e^{\frac{(\sqrt{5}+1)}{2}}$ etex);val(btex $+\infty $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);nonDefBarre;plus;valBarre(btex$
+ $ etex);plus; valBarre(btex 0 etex);moins;valBarre(btex $ $ etex);moins;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);
+nonDefBarre;limDroite(btex $-\infty$ etex,0);valPos(btex $ -1 $ etex,0.5); valPos(btex $\frac{1}{4}$
+ etex,1);valPos(btex
+ $ -1 $ etex,0.5);valPos(btex $-\infty$ etex,0);
+endTableau;
+
+
+
+beginTableau(51)
+newLigneVariables(btex $\displaystyle {x}$ etex);
+ val(btex $-10$ etex);val(btex $10$ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle (x-10) (x+10)}$ etex);
+ valBarre(btex 0 etex);moins;
+ valBarre(btex 0 etex);
+endTableau;
+
+beginTableau(52) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
+val(btex $-\left(\sqrt{2}\right)$ etex);
+val(btex $-1$ etex);
+val(btex $1$ etex);
+val(btex $\sqrt{2}$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);moins; valBarre(btex 0 etex);plus;debutNonDefStrict;finNonDefStrict;moins;valBarre(btex 0 etex);plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $+\infty $ etex,1); valPos(btex$-2$etex,0);limGauche(btex $0$ etex,1);debutNonDef;finNonDef;limDroite(btex $0$ etex,1);valPos(btex$-2$etex,0);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(53) newLigneVariables(btex $x$ etex);val(btex $-\infty $ etex);
+val(btex $-1$ etex);
+val(btex $1$ etex);
+val(btex $+\infty $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(x)}$ etex);moins; debutNonDefStrict;finNonDefStrict;plus;
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $+\infty $ etex,1); limGauche(btex $-\infty$ etex,0);debutNonDefStrict;finNonDefStrict;limDroite(btex $-\infty$ etex,0);valPos(btex $+\infty $ etex,1);
+endTableau;
+
+beginTableau(54) newLigneVariables(btex $t$ etex);val(btex $0$ etex);
+val(btex $\frac{\pi }{8}$ etex);
+val(btex $\frac{\pi }{3}$ etex);
+val(btex $\frac{3 \pi }{8}$ etex);
+val(btex $\frac{\pi }{2}$ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x'(t)}$ etex);valBarre(btex $0$ etex);moins;valBarre(btex $-3 \sin\left(\frac{3 \pi }{8}\right)$ etex);moins;valBarre(btex $0$ etex);plus;valBarre(btex $3 \sin\left(\frac{\pi }{8}\right)$ etex);plus;valBarre(btex $3$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle x}$ etex);valPos(btex $1$ etex,1);valPos(btex $\cos\left(\frac{3 \pi }{8}\right)$
+ etex,0.5);valPos(btex $-1$
+ etex,0);
+valPos(btex $-\left(\cos\left(\frac{\pi }{8}\right)\right)$
+ etex,0.5);valPos(btex $0$ etex,1);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle y'(t)}$ etex);valBarre(btex $4$ etex);plus;valBarre(btex $0$ etex);moins;valBarre(btex $-2$ etex);moins;valBarre(btex $0$ etex);plus;valBarre(btex $4$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle y}$ etex);valPos(btex $0$ etex,0);valPos(btex $1$
+ etex,1);valPos(btex $\frac{(-\left(\sqrt{3}\right))}{2}$
+ etex,0.5);valPos(btex $-1$
+ etex,0);
+valPos(btex $0$ etex,1);
+endTableau;
+
+beginTableau(55) newLigneVariables(btex $t$ etex);val(btex $0$ etex);
+val(btex $\frac{\pi }{3}$ etex);
+val(btex $\pi $ etex);
+val(btex $\frac{5 \pi }{3}$ etex);
+val(btex $2 \pi $ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle x'(t)}$ etex);valBarre(btex $-1$ etex);moins;valBarre(btex $0$ etex);plus;valBarre(btex $3$ etex);plus;valBarre(btex $0$ etex);moins;valBarre(btex $-1$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle x}$ etex);valPos(btex $0$ etex,1);valPos(btex $\frac{(\pi -3 \sqrt{3})}{3}$
+ etex,0);
+valPos(btex $\pi $
+ etex,0.5);valPos(btex $\frac{(5 \pi +3 \sqrt{3})}{3}$
+ etex,1);valPos(btex $2 \pi $ etex,0);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle y'(t)}$ etex);valBarre(btex $0$ etex);moins;valBarre(btex $-\left(\sqrt{3}\right)$ etex);moins;valBarre(btex $0$ etex);plus;valBarre(btex $\sqrt{3}$ etex);plus;valBarre(btex $0$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle y}$ etex);valPos(btex $1$ etex,1);valPos(btex $0$
+ etex,0.5);valPos(btex $-3$
+ etex,0);
+valPos(btex $0$
+ etex,0.5);valPos(btex $1$ etex,1);
+endTableau;
+
+beginTableau(56) newLigneVariables(btex $t$ etex);val(btex $0$ etex);
+val(btex $\frac{\pi }{8}$ etex);
+val(btex $\frac{\pi }{6}$ etex);
+val(btex $\frac{3 \pi }{8}$ etex);
+val(btex $\frac{\pi }{2}$ etex);
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f'(t)}$ etex);valBarre(btex $3$ etex);plus;valBarre(btex $3 \cos\left(\frac{3 \pi }{8}\right)$ etex);plus;valBarre(btex $0$ etex);moins;valBarre(btex $-3 \cos\left(\frac{\pi }{8}\right)$ etex);moins;valBarre(btex $0$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle f}$ etex);valPos(btex $0$ etex,0);valPos(btex $\sin\left(\frac{3 \pi }{8}\right)$
+ etex,0.5);valPos(btex $1$
+ etex,1);valPos(btex $-\left(\sin\left(\frac{\pi }{8}\right)\right)$
+ etex,0.5);valPos(btex $-1$ etex,0);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle g'(t)}$ etex);valBarre(btex $4$ etex);plus;valBarre(btex $0$ etex);moins;valBarre(btex $-2$ etex);moins;valBarre(btex $0$ etex);plus;valBarre(btex $4$ etex);
+newLigneVariations(btex $\hbox{ Variations de }\atop{\displaystyle g}$ etex);valPos(btex $0$ etex,0);valPos(btex $1$
+ etex,1);valPos(btex $\frac{\sqrt{3}}{2}$
+ etex,0.5);valPos(btex $-1$
+ etex,0);
+valPos(btex $0$ etex,1);
+endTableau;
+
+ beginTableau(57)
+newLigneVariables(btex $ {x}$ etex);
+ val(btex $0$ etex);val(btex $\frac{\pi }{3}$ etex);
+val(btex $\frac{7 \pi }{6}$ etex);
+val(btex $\frac{5 \pi }{3}$ etex);
+val(btex $\frac{11 \pi }{6}$ etex);
+val(btex $2 \pi $ etex);
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle \cos\left(x\right)+\frac{1}{-2}}$ etex);
+ plus;
+ valBarre(btex 0 etex);moins;barre;
+ moins;
+ valBarre(btex 0 etex);plus;barre;plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle \sin\left(x\right)+\frac{1}{2}}$ etex);
+ plus;barre;
+ plus;
+ valBarre(btex 0 etex);moins;barre;
+ moins;valBarre(btex 0 etex);plus;
+
+newLigneSignes(btex $\hbox{ Signe de }\atop{\displaystyle f (x)}$ etex);
+ plus;valBarre(btex 0 etex); moins;valBarre(btex 0 etex);plus;valBarre(btex 0 etex);moins;valBarre(btex 0 etex);plus;
+
+endTableau;
+
+ \ No newline at end of file
diff --git a/macros/latex/contrib/tablor/README b/macros/latex/contrib/tablor/README
new file mode 100644
index 0000000000..d6475d58bf
--- /dev/null
+++ b/macros/latex/contrib/tablor/README
@@ -0,0 +1,27 @@
+The package allows the user to use the computer algebra system XCAS
+to generate tables of signs and of variations (the actual plotting of
+the tables uses the MetaPost macro package "tableauVariation.mp" :
+
+http://frederic.mazoit.free.fr/LaTeX_metapost/tableauVariations/ .
+
+The tablor package requires that shell escape be enabled.
+
+
+For instance :
+
+\begin{TV} TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv) \end{TV}
+
+draws table of variations of x->x^2/(x^2-1).
+
+
+You can download XCAS here:
+
+
+http://www-fourier.ujf-grenoble.fr/%7Eparisse/giac.html
+
+
+The non-french users need to comment out every
+
+" \usepackage[upright]{fourier} "
+
+Just put tablor.sty and tablor.cfg into /texmf/tex/latex/tablor/
diff --git a/macros/latex/contrib/tablor/README-fr.txt b/macros/latex/contrib/tablor/README-fr.txt
new file mode 100644
index 0000000000..df70726545
--- /dev/null
+++ b/macros/latex/contrib/tablor/README-fr.txt
@@ -0,0 +1,28 @@
+L'extension tablor.sty permet de crer des tableaux de signes et de
+variations depuis latex en utilisant XCAS pour les calculs et MetaPOST
+pour les tableaux.
+
+On rentre par exemple:
+
+\begin{TV} TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv) \end{TV}
+
+et on obtient le tableau de variation de x->x^2/(x^2-1).
+
+Les tableaux sont construits partir du fichier tableauVariation.mp de
+Frdric Mazoit disponible l'adresse
+
+http://frederic.mazoit.free.fr/LaTeX_metapost/tableauVariations/
+
+XCAS est tlchargeable l'adresse :
+
+http://www-fourier.ujf-grenoble.fr/%7Eparisse/giac_fr.html
+
+
+Les appels giac ont t amliors grce Yves Delhaye :
+
+http://www.yvesdelhaye.be/?Generateur-d-interrogations-le
+
+
+Il faut activer le shell-escape.
+
+
diff --git a/macros/latex/contrib/tablor/auto/tablor-xetex.el b/macros/latex/contrib/tablor/auto/tablor-xetex.el
new file mode 100644
index 0000000000..2c7fbf4252
--- /dev/null
+++ b/macros/latex/contrib/tablor/auto/tablor-xetex.el
@@ -0,0 +1,51 @@
+(TeX-add-style-hook "tablor-xetex"
+ (lambda ()
+ (LaTeX-add-environments
+ "TSa"
+ "TSq"
+ "TS"
+ "TSc"
+ "TV"
+ "TVP"
+ "TVZ"
+ "TVapp"
+ "TVI"
+ "TVIex"
+ "TVIapp"
+ "TVPC"
+ "TVS")
+ (TeX-add-symbols
+ '("initablor" ["argument"] 0)
+ '("nettoyer" ["argument"] 0)
+ '("dressetoile" 2)
+ '("dresse" 2)
+ '("coultab" 1)
+ '("ech" 1)
+ '("executGiacmp" 1)
+ "rem"
+ "cat"
+ "cp"
+ "echod"
+ "echof"
+ "nomtravail"
+ "tv"
+ "tvbis"
+ "echelle"
+ "couleurtab")
+ (TeX-run-style-hooks
+ "pst-eps"
+ "graphicx"
+ "babel"
+ "frenchb"
+ "fontenc"
+ "T1"
+ "latex2e"
+ "art10"
+ "article"
+ "ifxetex"
+ "ifpdf"
+ "fancyvrb"
+ "ifthen"
+ "filecontents"
+ "tablor")))
+
diff --git a/macros/latex/contrib/tablor/auto/tablor.el b/macros/latex/contrib/tablor/auto/tablor.el
new file mode 100644
index 0000000000..e9cbdd4143
--- /dev/null
+++ b/macros/latex/contrib/tablor/auto/tablor.el
@@ -0,0 +1,40 @@
+(TeX-add-style-hook "tablor"
+ (lambda ()
+ (LaTeX-add-environments
+ "TSa"
+ "TSq"
+ "TS"
+ "TSc"
+ "TV"
+ "TVP"
+ "TVZ"
+ "TVapp"
+ "TVI"
+ "TVIex"
+ "TVIapp"
+ "TVPC"
+ "TVS")
+ (TeX-add-symbols
+ '("initablor" ["argument"] 0)
+ '("nettoyer" ["argument"] 0)
+ '("dressetoile" 2)
+ '("dresse" 2)
+ '("coultab" 1)
+ '("ech" 1)
+ '("executGiacmp" 1)
+ "rem"
+ "cat"
+ "cp"
+ "echod"
+ "echof"
+ "nomtravail"
+ "tv"
+ "tvbis"
+ "echelle"
+ "couleurtab")
+ (TeX-run-style-hooks
+ "ifpdf"
+ "fancyvrb"
+ "ifthen"
+ "filecontents")))
+
diff --git a/macros/latex/contrib/tablor/tablor-xetex.sty b/macros/latex/contrib/tablor/tablor-xetex.sty
new file mode 100644
index 0000000000..2ef9eba220
--- /dev/null
+++ b/macros/latex/contrib/tablor/tablor-xetex.sty
@@ -0,0 +1,3374 @@
+% Last modified: <tablor-xetex.sty modifié par Guillaume CONNAN le dimanche 6 octobre 2013 à 14h 46min 27s>
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{tablor-xetex}[06/10/2013 v4.07-g la machine a creer des
+tableaux de signes et variations compatible xetex]
+
+% \copyleft Connan le Barbare (aka Guillaume Connan) \copyright
+% This work may be distributed and/or mofified under the conditions
+% or the LaTeX Project Public Licence, either v1.3 or (at your option)
+% any later version. The latest version is in
+% http://www.latex-project.org/lppl/
+% This work consists of the files tablor.sty, tablor-xetex.sty, tablor.cfg, tablor.tex,
+% tablor.pdf and tablor.html
+
+
+%% Cree 16 environnements :
+%% tableau de signes de 2 facteurs affines
+% \begin{TSa}
+% TSa(-2,3,-1,5,\tv);
+% \end{TSa}
+% %%%%%% Pour des tableaux de plus de 2 facteurs
+%
+% \begin{TS}
+% TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[a,b],n,\tv);
+% \end{TS}
+%
+% pour les tableaux de signes avec quotient
+%\begin{TSq}
+%TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[a,b],n,\tv)
+%%\end{TSq}
+% un tableau de variation :
+%
+% pour les tableaux de signes à une seule ligne
+% \begin{TSc}
+% TSc((x+10)/((x-5)*(x-2)),[-10,5],[2,5],n,0)
+% \end{TSc}
+%
+%
+% \begin{TV}
+% TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,n,\tv)
+% \end{TV}
+%
+% tableau de variation avec liste de valeurs
+% \begin{TVS}
+% TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",\tv)
+% \end{TVS}
+%
+% tableau de variation avec zones interdites
+%
+% \begin{TVZ}
+% TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,n,\tv)
+% \end{TVZ}
+%
+%
+% tableau avec valeurs intermediares
+%\begin{TVI}
+%TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,\tv)
+%\end{TVI}
+%%%
+%%%
+% tableau avec valeurs intermediares et racines exactes
+%\begin{TVIex}
+%TVIex([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,\tv)
+%\end{TVIex}
+%%%
+%
+%
+% tableau de variations avec f' sans zero formel
+%\begin{TVapp}
+% TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
+% \end{TVapp}
+%
+%
+% tableau de variations avec f' sans zero formel
+%\begin{TVIapp}
+% TVIapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,0,\tv)
+% \end{TVIapp}
+%
+%
+%%%
+% et leurs pendants etoiles qui permettent l'affichage intermediaire du
+% fichier metapost pour le modifier
+%
+%
+% Courbes parametrees
+% \begin{TVP}
+% TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,\tv)
+% \end{TVP}
+%
+%
+% \begin{TVP}
+% TVP([0,pi/2],[[],[]],["x","y"],"t",[2*cos(t),sin(2*t)],1,t,\tv)
+% \end{TVP}
+% %
+% %
+% Fonctions prolongeables par continuité
+% TVPC([intervalles d'étude],[valeurs prolongeables],[valeurs interdites pour f'],"g","t",e^(-1/x^2),1,n,\tv);
+% \begin{TVPC}
+% TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,\tv);
+% \end{TVPC}
+
+
+
+
+%% extensions requises
+%% Il faudra rajouter dans le preambule \usepackage{graphicx} si vous
+%% ne l'avez pas de base
+
+
+\RequirePackage{filecontents}
+\RequirePackage{ifthen}
+\RequirePackage{fancyvrb}
+\RequirePackage{ifpdf}
+\RequirePackage{ifxetex}
+\fvset{gobble=0}
+
+% option xcas present
+
+
+\newboolean{xcas}\setboolean{xcas}{false}
+\DeclareOption{xcas}{\setboolean{xcas}{true}}
+
+
+%% Initialisation du choix d'OS
+\newboolean{windows}\setboolean{windows}{false}
+\DeclareOption{windows}{\setboolean{windows}{true}}
+
+\ProcessOptions\relax
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% pour xelatex (ne marche que sur unix....)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\ifxetex
+
+\begin{filecontents*}{convert-mp-pdf.sh}
+#!/bin/sh
+mpost -interaction=nonstopmode $1 ;
+
+cat>$1.tex<<EOF
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage[frenchb]{babel}
+\usepackage{graphicx}
+\usepackage{pst-eps}
+\thispagestyle{empty}
+\begin{document}
+\begin{TeXtoEPS}
+\includegraphics{$1.$2}
+\end{TeXtoEPS}
+\end{document}
+EOF
+latex $1
+dvips -o $1.eps -E $1.dvi
+epstopdf $1.eps;
+## Fin de convert-mp-pdf.sh
+\end{filecontents*}
+
+%$>>
+
+
+\immediate\write18{chmod 775 ./convert-mp-pdf.sh}
+
+\fi
+
+
+
+%% on configure tablor dans un fichier exterieur pour la plateforme
+%% et l'editeur
+
+\IfFileExists{tablor.cfg}{\input{tablor.cfg}}%\typeout{pas de fichier tablor.cfg}}
+
+
+%% Definit des commandes disque selon l'OS utilise
+\ifthenelse{\boolean{windows}}%
+ {\newcommand{\rem}{DEL } \newcommand{\cat}{TYPE }
+ \newcommand{\cp}{COPY }\newcommand{\echod}{ECHO }
+ \newcommand{\echof}{}}%
+ {\newcommand{\rem}{rm }\newcommand{\cat}{cat }
+ \newcommand{\cp}{cp }\newcommand{\echod}{echo "}
+ \newcommand{\echof}{"}}
+
+
+
+
+
+
+
+%% pour ceux compilant via pdflatex
+
+\ifpdf
+\DeclareGraphicsRule{*}{mps}{*}{}
+\fi
+
+%% pour nettoyer les fichiers auxiliaires
+
+\AtEndDocument{\immediate\write18{\rem *.user XCas* Xcas* *.mpx}
+ }
+
+
+
+
+%% Pour clore les fichiers metapost
+
+
+ \begin{VerbatimOut}{queue.mp}
+
+ end
+
+ \end{VerbatimOut}
+
+
+
+%% Nettoie les fichiers log dont le nom depend du choix de l'utilisateur
+%% Par defaut, c'est le nom du fichier tex courant (\jobname)
+%% Clôt le fichier metapost contenant le recapitulatif de tous les tableaux
+
+
+
+\newcommand{\nettoyer}[1][\jobname]%
+{\immediate\write18{\rem #1_Tab.log queue.mp enteteMP.cfg session.tex config.cxx}
+}
+
+
+
+
+%% Donne comme prefixe aux tableaux le prefixe courant
+%% Peut-être modifie par \initablor
+
+\newcommand{\nomtravail}{\jobname}
+
+%% initialise les compteurs
+
+\newcounter{TVn}
+\newcommand{\tv}{\theTVn}
+
+\newcounter{TVnbis}
+\newcommand{\tvbis}{\theTVnbis}
+
+
+
+%% permet de donner un prefixe aux tableaux produits (\jobname par defaut)
+%% effectue quelques verifications :
+
+
+\newcommand{\initablor}[1][\jobname]{%
+\renewcommand{\nomtravail}{#1}% Arret du nom des tableaux
+\setcounter{TVn}{0}% Initialisation du compteur de tableaux.
+\ifthenelse{\boolean{xcas}}% Avec l'option XCas
+{\IfFileExists{\nomtravail_Tab.mp}% Si Tableaux.mp est present...
+ {\immediate\write18{\rem \nomtravail_Tab.mp}}% le detruire
+ {}%
+ \immediate\write18{\cp enteteMP.cfg \nomtravail_Tab.mp}% Reconstituer l'entête de Tableaux.mp
+}
+{\IfFileExists{\nomtravail_Tab.mp}% Sans l'option XCas, si
+ % Tableaux.mp existe
+{\immediate\write18{mpost -interaction=batchmode \nomtravail_Tab}}% l'executer pour reconstituer les figures
+{\PackageWarning{tablor}{Pas de source metapost pour creer les tableaux.}}% sinon message d'erreur
+ % (mais pas d'arret car les tableaux
+ % peuvent être presents )
+}}%
+
+
+
+%% commande pour lancer giac selon l'OS
+
+\makeatletter
+\newcommand{\executGiacmp}[1]{%
+\ifthenelse{\boolean{windows}}%
+{\immediate\write18{giac #1 }}%
+{\immediate\write18{giac <#1 }}}
+\makeatother
+
+
+
+
+%%%
+%
+%%% LES SCRIPTS GIAC/XCAS
+%
+%%%
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de Variations
+%%
+
+
+\begin{VerbatimOut}{XcasTV.cxx}
+TV(L,F,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic+nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex
+ $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$
+ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+
+
+%%%%
+
+
+%
+%
+% TVPC : pour les fonctions prolongeables par continuité.
+%%
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTVPC.cxx}
+TVPC(L,F,FP,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+Z:=concat(Z,FP);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],FP)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
+ lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],FP)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic+nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "valPos(btex
+ $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$
+ etex,"+if(krm==1){"1);"}else{"0);"} }
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+
+
+
+
+
+%%
+%%
+%% TV avec une zone interdite : on rajoute comme argument la liste des intervalles interdits
+%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[[-1,1]],"f","x",sqrt(x^2-1),1,1)
+%%
+
+\begin{VerbatimOut}{XcasTVZ.cxx}
+
+
+TVZ(L,F,FF,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+nf:=size(FF);
+ Ff:=NULL;IMIN:=NULL;IMAX:=NULL;
+for(k:=0;k<nf;k++){
+if(FF[k][0]>L[0]){Imin[k]:=FF[k][0];LL:=L}else{Imin[k]:=L[0];LL:=[L[1]]};
+if(FF[k][1]<L[1]){Imax[k]:=FF[k][1];LL:=L}else{Imax[k]:=L[1];LL:=[L[0]]};
+ Ff:=Ff,[Imin[k],Imax[k]];
+ IMIN:=IMIN,Imin[k];
+ IMAX:=IMAX,Imax[k];
+ }
+ FF:=[Ff];
+ IMIN:=[IMIN];
+ IMAX:=[IMAX];
+ f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(LL,F);
+
+for(k:=0;k<nf;k++){
+Z:=concat(Z,FF[k]);
+}
+
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ for(k:=0;k<nf;k++){
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ kK:=(evalf(S[j])<evalf(Imin[k])) or (evalf(S[j])>evalf(Imax[k]));
+ Kk:=(kk) and kK;
+ if(Kk==1){Z:=append(Z,simplify(S[j]))};
+ }
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+for(j:=0;j<nf;j++){
+ for(k:=1;k<nz;k++){
+ if ((Z[k]>Imin[j])and(Z[k]<Imax[j])){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1;
+ }
+ }
+}
+nz:=size(Z);
+
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+if(member(Z[0],IMIN)!=0){if((member(Z[0],F)==0) and (fp(Z[0])!=undef)){"debutNonDef;"}else{"debutNonDefStrict;"}}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}}
+
+
+
+
+
+
+
+
+
+// modif 3 avril 2010
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){
+ lsp:=lsp+
+ if(member(Z[r],IMIN)!=0){
+ if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"debutNonDef;"}
+ else{"debutNonDefStrict;"}}
+ else{if(member(Z[r],IMAX)!=0){if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"finNonDef;"}
+ else{"finNonDefStrict;"}+
+ if(evalf(fp(Z[r]+0.01))>0){"plus;"}
+ else{"moins;"}}
+ else{if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}
+ else{"nonDefBarre;"}+
+ if(evalf(fp(Z[r]+0.01))>0){"plus;"}
+ else{"moins;"}
+ }}
+ }};
+
+// fin modif
+
+
+
+
+
+
+
+
+lsf:=if(member(Z[nz-1],IMAX)!=0){if((member(Z[nz-1],F)==0) and (fp(Z[nz-1])!=undef)){"finNonDef;"}else{"finNonDefStrict;"}}else{if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}}
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic +nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+if(nz>2){
+ for(r:=1; r<=nz-2;r++){
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+
+ lp:=lp+if(member(Z[r],IMIN)!=0){"limGauche(btex $"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x,Z[r],-1)))}
+ +"$ etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +if(member(Z[r],F)==0){"debutNonDef;"}else{"debutNonDefStrict;"}
+ }//fsi Zr=Imin
+ else{
+ if (member(Z[r],IMAX)!=0){if(member(Z[r],F)==0){"finNonDef;"}else{"finNonDefStrict;"}+"limDroite(btex $"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}
+ +"$ etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }else{
+ if(member(Z[r],F)){
+ "limGauche(btex $"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x,Z[r],-1)))}
+ +"$ etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +"nonDefBarre;limDroite(btex $"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}
+ +"$ etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }//fsi (member Zr F)
+ else{"valPos(btex$"+latex(simplify(f(Z[r])))+"$etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){
+ "0.5);"}else{
+ if(krp==1){
+ "1);"}else{"0);"}//felse(krp)
+ }//felse(valpos)
+ }//felse(member Zr F)
+ } //felse(Zr=Imax)
+ }//felse(Zr=Imin)
+ };//ffor
+ }//fsi nz
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }
+:;
+
+
+\end{VerbatimOut}
+
+
+%%
+%%
+%% Quand les solutions formelles de f'(x)=0 ne sont pas calculables
+%%
+
+
+
+\begin{VerbatimOut}{XcasTVapp.cxx}
+
+
+
+
+
+
+
+TVapp(L,F,nom,nomv,f,ftt,nmr):={
+
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+
+
+
+S:=op(fsolve(fp(x),x));
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+
+
+
+si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j<size(z);j++){
+ if(z[j]!=undef and (abs(z[j])>1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j<nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic+nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+
+
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de Variations avec
+%% Valeurs intermediaires
+%%
+
+
+
+
+
+\begin{VerbatimOut}{XcasTVI.cxx}
+
+
+TVI(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz>2){ for(r:=1;
+ r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz>2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k<nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
+l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"};
+//chgmt NL->nz
+if(NL>nz){for(k:=0;k<NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp((Z[0]+10^(-3)))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(10^(-3)+Z[0])))==1.0){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$
+ $ etex);"+
+if(evalf(sign(fp(10^(-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+
+if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))>0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $ $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $ $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$ etex);
+"+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "};
+
+
+ if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ $ "+ao+" $ etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[rr-1],1))< evalf(limit(f(x),x,Z[rr],-1));
+ krp:=evalf(limit(f(x),x,Z[rr],1))> evalf(limit(f(x),x,Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[rr],-1)==-infinity;lmrp:=limit(f(x),x,Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ $ "+ao+" $ etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz<NL
+}// else nz<NL
+//if nz=NL
+};//if nz>2
+
+
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+\end{VerbatimOut}
+
+
+
+%%
+%
+%
+%
+% Pour avoir les racines sous forme exacte.... quand c'est possible !
+%
+%
+%
+%%%%%%%%%
+
+
+\begin{VerbatimOut}{XcasTVIex.cxx}
+
+
+
+TVIex(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+Sex:=NULL;
+Zex:=solve(f(x)=ao);
+Zex:=sort(Zex);
+for(j:=0;j<size(Zex);j++){
+if((evalf(Zex[j])>=evalf(L[0])) and (evalf(Zex[j])<=evalf(L[nl-1]))){Sex:=Sex,Zex[j]};
+};
+Sex:=[Sex];
+
+
+
+
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz>2){ for(r:=1;
+ r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz>2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=0;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k<nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $"+latex(simplify(Sex[aa]))+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
+l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"};
+//chgmt NL->nz
+if(NL>nz){for(k:=0;k<NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $"+latex(simplify(Sex[aa]))+"$ etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^(-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^(-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$
+ $ etex);"+
+if(evalf(sign(fp(10^(-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))>0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $ $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $ $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$ etex);
+"+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "};
+
+
+ if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ $ "+ao+" $ etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[rr-1],1))< evalf(limit(f(x),x,Z[rr],-1));
+ krp:=evalf(limit(f(x),x,Z[rr],1))> evalf(limit(f(x),x,Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[rr],-1)==-infinity;lmrp:=limit(f(x),x,Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ $ "+ao+" $ etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz<NL
+}// else nz<NL
+//if nz=NL
+};//if nz>2
+
+
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+%%
+%%
+%% Quand les solutions de f'(x)=0 ne sont pas formellement calculables
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTVIapp.cxx}
+
+TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
+
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+
+
+
+
+S:=op(fsolve(fp(x),x));
+
+
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+
+
+
+
+si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j<size(z);j++){
+ if(z[j]!=undef and (abs(z[j])>1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j<nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz>2){ for(r:=1;
+ r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz>2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+if(NL==nz){for(k:=0;k<nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
+l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"};
+//chgmt NL->nz
+if(NL>nz){for(k:=0;k<NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^(-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^(-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$
+ $ etex);"+
+
+if(evalf(sign(fp(10^(-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))>0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $ $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $ $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$ etex);
+"+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "};
+
+
+ if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ $ "+ao+" $ etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[rr-1],1))< evalf(limit(f(x),x,Z[rr],-1));
+ krp:=evalf(limit(f(x),x,Z[rr],1))> evalf(limit(f(x),x,Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[rr],-1)==-infinity;lmrp:=limit(f(x),x,Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ $ "+ao+" $ etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz<NL
+}// else nz<NL
+//if nz=NL
+};//if nz>2
+
+
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de variations de courbes parametrees
+%%
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XcasTVP.cxx}
+TVP(L,F,nom,nomv,ff,ftt,trigo,nmr):={
+
+nl:=size(L);
+fp:=[];
+S:=[];
+f:=[unapply(ff[0],t),unapply(ff[1],t)];
+fp:=[function_diff(f[0]),function_diff(f[1])];
+Z:=[];
+LLL:=[];
+
+
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+
+for(d:=0;d<=1;d++){
+LLL:=concat(L,F[d]);
+Z:=LLL union Z;
+SS:=solve(factor(simplify(fp[d](t))),t);
+ns:=size(SS);
+
+
+for(k:=0;k<ns;k++){
+if(trigo==t){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+
+}
+}else{
+S:=concat(S,SS);
+}
+}
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+nz:=size(Z);
+u:=1;
+ tantque (u<nz-2) and (nz>2) faire
+ tantque evalf(Z[u])==evalf(Z[u+1]) faire
+ Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=size(Z);
+ ftantque;
+ u:=u+1;
+ ftantque;
+
+
+ };
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+
+ l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:="",""; lf:="","";lsp:="","";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ lsi:="","";
+
+FFF:=[[],[]];
+
+for(d:=0;d<=1;d++){
+FFF[d]:=concat(F[d],[-infinity,+infinity]);
+ k0:= evalf(limit(f[d](x),x=Z[0],1))> evalf(limit(f[d](x),x=Z[1],-1));
+ kz:=evalf(limit(f[d](x),x=Z[nz-1],-1))> evalf(limit(f[d](x),x=Z[nz-2],1));
+//}
+//$
+ lsi[d]:=lsic+nom[d]+"'("+nomv+")}$ etex);"+if(member(Z[0],FFF[d])==0){"valBarre(btex $"+latex(simplify(fp[d](Z[0])))+"$ etex);"}else{if(Z[0]==-infinity){" "}else{"nonDefBarre;
+"}}+
+ if(Z[0]==-infinity){if(sign(evalf(fp[d](if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F[d])==0){
+ if(sign(fp[d](Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{
+ if(sign(fp[d]((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp[d](Z[r]+0.01))>0;
+ lsp[d]:=lsp[d]+if(member(Z[r],F[d])==0){"valBarre(btex $"+latex(simplify(fp[d](Z[r])))+"$ etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf[d]:=if(member(Z[nz-1],FFF[d])==0){"valBarre(btex $"+latex(simplify(fp[d](Z[nz-1])))+"$ etex);"}else{if(Z[nz-1]==+infinity){" "}else{"nonDefBarre;"}}
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+ lm0:=1,2; li:=1,2; krm:=1,2; krp:=1,2; lmrm:=1,2; lmrp:=1,2; lp:="",""; lnz:=1,2; lf:=1,2; Kz:=1,2;K0:=1,2;
+
+
+for(d:=0;d<=1;d++){
+ K0[d]:= evalf(limit(f[d](x),x=Z[0],1))> evalf(limit(f[d](x),x=Z[1],-1));
+ Kz[d]:=evalf(limit(f[d](x),x,Z[nz-1],-1))> evalf(limit(f[d](x),x,Z[nz-2],1));
+//{
+//$
+lm0[d]:=limit(f[d](x),x,Z[0],1)==-infinity;
+ li[d]:=lvic+nom[d]+"}$ etex);"+
+ if(member(Z[0],F[d])==0){"valPos(btex $"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$ etex,"}+
+ if(K0[d]==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm[d]:=evalf(limit(f[d](x),x=Z[r-1],1))< evalf(limit(f[d](x),x=Z[r],-1));
+ krp[d]:=evalf(limit(f[d](x),x=Z[r],1))> evalf(limit(f[d](x),x,Z[r+1],-1)) ;
+ lmrm[d]:=limit(f[d](x),x,Z[r],-1)==-infinity;lmrp[d]:=limit(f[d](x),x,Z[r],1)==-infinity;
+ lp[d]:=lp[d]+if(member(Z[r],F[d])){
+ "limGauche(btex
+ $"+if(lmrm[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],-1)))}+"$
+ etex,"+if(krm[d]==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],1)))}+"$ etex,"+if(krp[d]==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f[d](Z[r])))+"$
+ etex,"+if(sign(evalf(fp[d](Z[r]-0.001)))==sign(evalf((fp[d](Z[r]+0.001))) )){"0.5);"}else{if(krp[d]==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz[d]:=limit(f[d](x),x=Z[nz-1],-1)==-infinity;
+
+
+lf[d]:=if(member(Z[nz-1],F[d])==0){"valPos(btex $"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$ etex,"+
+ if(Kz[d]==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$ etex,"+
+ if(Kz[d]==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi[0]+lsp[0]+lsf[0]+lsi[1]+lsp[1]+lsf[1]+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+lsi[1]+lsf[1]+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lp[0]+
+lf[0]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lf[0]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsp[0]+lsf[0]+
+li[0]+
+lp[0]+
+lf[0]+
+lsi[1]+lsp[1]+lsf[1]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+
+li[0]+
+lf[0]+
+lsi[1]+lsf[1]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}
+}
+}
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+}:;
+\end{VerbatimOut}
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de signes de produits
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTabSignL.cxx}
+
+
+TS(nomf,L,D,trigo,nmr):={
+L:=apply(f->unapply(f,x),L)
+n:=size(L);
+Z:=NULL;
+nl:=size(L);
+S:=[];
+mini:=D[0]; maxi:=D[1];
+
+pour k de 0 jusque n-1 faire
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j<ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))<=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))>=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(L[k](x),x);
+}
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ Z:=sort([op(set[(Z)])]);
+
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+ for(p:=0;p<=n-1;p++){li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)>0){"plus;"}else{"moins;"};
+
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+li+ lsic+nomf+"(x)}$ etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+ lf+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+"
+;
+
+}else{
+
+l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
+
+
+for(p:=0;p<=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
+
+ for(r:=0; r<=nz-2;r++){
+ lp:=lp+if(simplify(L[p](Z[r]))==0){"
+ valBarre(btex 0 etex);"}else{"barre;
+ "}+
+ if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](Z[nz-1]+1.0)>0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"
+ fpour
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+
+ li
+ + lsic+nomf+"(x)}$ etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
+ lr+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+
+ ";
+}
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de signes de quotients
+%%
+
+
+
+\begin{VerbatimOut}{XcasTabSignQ.cxx}
+TSq(nomf,L,Fo,D,trigo,nmr):={
+L:=apply(f->unapply(f,x),L);
+Fo:=apply(f->unapply(f,x),Fo);
+L:=concat(L,Fo);
+n:=size(L);
+Z:=NULL;
+m:=size(Fo);
+F:=NULL;FF:=NULL;
+mini:=D[0]; maxi:=D[1];
+S:=[];
+SF:=[];
+
+pour k de 0 jusque n-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j<ns;j++){
+mm:=0;
+while(evalf(simplify(subst(SS[j],n_1=mm)))<=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SS[j],n_1=mm))>=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+S:=concat(S,solve(L[k](x),x));
+}
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+pour k de 0 jusque m-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SSF:=solve(factor(simplify(Fo[k](x))),x);
+nsf:=size(SSF);
+for(j:=0;j<nsf;j++){
+mm:=0;
+while(evalf(simplify(subst(SSF[j],n_1=mm)))<=evalf(maxi)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SSF[j],n_1=mm))>=evalf(mini)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+SF:=concat(SF,solve(Fo[k](x),x));
+}
+
+ si size(SF)>0 alors pour j de 0 jusque size(SF)-1 faire
+ FF:=FF,simplify(SF[j]);
+ if(SF[j]>mini and SF[j]<maxi){F:=F,simplify(SF[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+Z:=[Z,F];
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+ for(p:=0;p<=n-1;p++){li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)>0){"plus;"}else{"moins;"};
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+li+
+ lsic+nomf+"(x)}$ etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+ lf+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+;
+
+
+
+
+}else{
+
+
+l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
+
+
+for(p:=0;p<=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){" valBarre(btex 0 etex);"}else{" "}+
+ if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
+
+ for(r:=0; r<=nz-2;r++){lp:=lp+if(simplify(L[p](Z[r]))==0){" valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](Z[nz-1]+1.0)>0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"valBarre(btex 0 etex);"}else{" "}
+
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(member(Z[t+1],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}
+ fpour
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+
+ li
+ +
+ lsic+nomf+"(x)}$ etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+
+ if(product(L[s](Z[0]-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
+ lr+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){"valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+
+
+}
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+
+
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+%% Code giac/Xcas pour les Tableaux de signes du produit
+%% de 2 facteurs affines
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTabSigna.cxx}
+TSa(a,b,c,d,nmr):={
+zA:=solve(a*x+b=0,x)[0];
+zB:=solve(c*x+d=0,x)[0];
+zmin:=min(zA,zB);
+zmax:=max(zA,zB);
+ Meta:= "
+ beginTableau("+nmr+")
+ newLigneVariables(btex $ {x}$ etex);
+ val(btex $-\\infty$ etex);val(btex $"+latex(zmin)+"$ etex);
+val(btex $"+latex(zmax)+"$etex);
+val(btex $+\\infty$ etex);
+ "+lsic+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+"}$ etex);"
+ + if(a>0){"moins;"}else{"plus;"}+
+ if(zmin==zA){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zA){si a>0 alors "plus;"; sinon "moins;";fsi}
+ else{si a>0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zA){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(a>0){"plus;"}else{"moins;"}
+ +lsic+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+"}$ etex);"
+ + if(c>0){"moins"}else{"plus"}+";"+
+ if(zmin==zB){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zB){si c>0 alors "plus;"; sinon "moins;";fsi}
+ else{si c>0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zB){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(c>0){"plus;"}else{"moins;"}
+
+ +lsic+"{("+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+")("+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+")}}$ etex);"
+ + si a*c>0 alors plus; sinon moins;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c>0 alors moins; sinon plus;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c>0 alors plus; sinon moins;fsi+";"+"
+endTableau;
+"
+;
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,Meta);
+fclose(sortie);
+
+
+ }:;
+\end{VerbatimOut}
+
+
+
+
+
+
+%%$
+%% Code giac/Xcas pour les Tableaux de Signes d'expression ne contenant
+%% qu'un seul terme
+
+
+
+
+\begin{VerbatimOut}{XcasTSc.cxx}
+TSc(g,D,F,trigo,nmr):={
+f:=unapply(g,x);
+mini:=D[0]; maxi:=D[1];lm:=" ";
+Z:=mini,maxi;
+S:=[];
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(f(x))),x);
+ns:=size(SS);
+for(j:=0;j<ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))<=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))>=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(f(x),x);
+}
+
+
+
+
+
+if(size(S)==0 and size(F)==0){
+l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+li:=if(member(mini,F)!=0){"nonDefBarre;"}else{if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}}+
+if(mini!=-infinity or maxi!=+infinity){if(f((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}}else{if(f(0.3145274774464545777744)>0){"plus;"}else{"moins;"}};
+lf:=if(member(maxi,F)!=0){"nonDefBarre;"}else{if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}};
+}else{
+if(size(S!=0)){pour j de 0 jusque size(S)-1 faire
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplify(S[j])};
+ fpour}
+
+Z:=concat([Z],F);
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" ";li:=" ";lr:=" ";
+if(nz==2){l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+li:=if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}}+
+if(f((mini+maxi)*0.5)>0){"plus;"}else{"moins;"};
+lf:=if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+
+}else{
+l0:="val(btex $"+latex(Z[0])+"$ etex);";li:=" ";
+pour m de 1 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";
+fpour;
+
+
+li:= if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}
+ }
+
+lm:=if(nz>2){for(r:=0; r<nz-2;r++){lm:=lm+if(Z[r]==-infinity){
+if(f((Z[r+1]-1))>0){"plus;"}else{"moins;"}
+}else{if(f((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}}
++
+ if(member(Z[r+1],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}
+ }}else{" "};
+
+lf:=if(f(Z[nz-2]+0.1)>0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+}
+};
+
+
+
+
+MetaLfc:="
+
+beginTableau("+nmr+")
+newLigneVariables(btex $\\displaystyle {x}$ etex);
+ "+l0+lsic+latex(f(x))+"}$ etex);"+
+ li+lm+lf
+ +"
+endTableau;
+
+"
+;
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+ }:;
+
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+
+
+%%$
+
+
+
+
+
+
+
+
+%%%%
+%%%
+%%% Pour des tableaux de variations simples sans fonctions
+%%%
+%%%
+
+
+
+\begin{VerbatimOut}{XcasTVS.cxx}
+TVS(La,Lo,F,nomf,nomv,nmr):={
+
+na:=size(La);
+f:=F;
+if(member(La[0],F)){f:=f[1..size(f)-1]};
+if(member(La[na-1],F)){f:=f[0..size(f)-2]};
+Z:=sort(concat(La,f));
+Zo:=sort([op(set[op(Z)])]);
+nz:=size(Z);
+nzo:=size(Zo);
+
+
+k0:= evalf(Lo[0])> evalf(Lo[1]);
+kz:=evalf(Lo[nz-1])> evalf(Lo[nz-2]);
+
+
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";
+ for(m:=0;m<=nzo-1;m++){l0:=l0+"val(btex $"+latex(Zo[m])+"$ etex);"}
+
+li:=lvic+nomf+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+latex(Lo[0])+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+latex(Lo[0])+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){
+ krm:=evalf(Lo[r-1])< evalf(Lo[r]);
+ krp:=evalf(Lo[r])> evalf(Lo[r+1]) ;
+
+ lp:=lp+if(Z[r]==Z[r+1]){
+ "limGauche(btex$"+latex(Lo[r])+"$etex,"+
+ if(krm==1){"1);"}
+ else{"0);"}
+ }// fin if zr=zr+1
+ else{
+ if(Z[r]==Z[r-1]){
+ "nonDefBarre;limDroite(btex$"+latex(Lo[r])+"$etex,"+
+ if(krp==1){"1);"}
+ else{"0);"}
+ }//fin if zr=zr-1
+ else{
+ "valPos(btex $"+latex(Lo[r])+"$etex,"+
+ if(krp==1){"1);"}else{"0);"}
+}//fin else zr=zr-1
+}//fin else zr=zr+1
+}//fin for
+}//fin de if nz>2
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+latex(Lo[nz-1])+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+latex(Lo[nz-1])+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+MetaLfc:=
+
+ if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}
+
+//return(MetaLfc);
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+}:;
+
+\end{VerbatimOut}
+
+%%$
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%%
+%% traitement des fichiers produits par giac/xcas
+%%
+%%
+
+% pour l'échelle des tableaux taper \ech{facteur de réduction}
+
+\newcommand\echelle{1}
+\newcommand\ech[1]{\renewcommand\echelle{#1}}
+
+
+
+\newcommand\couleurtab{black}
+\newcommand\coultab[1]{\renewcommand\couleurtab{#1}}
+
+\newcommand{\dresse}[2]{%
+
+
+
+\ifxetex
+
+
+
+\ifthenelse{\boolean{xcas}}{% Avec l'option "XCas present"
+ \executGiacmp{XCas#2.giac}% reconstituer le tableau
+ % exporter le source mp
+ % puis lancer metapost pour creer
+ % l'image du tableau
+ \immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab.mp}
+ \immediate\write18{\cat enteteMP.cfg >> \nomtravail_Tab#2.mp}
+\immediate\write18{\echod def beginTableau(expr c) =\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod begingroup\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod charcode:=c;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod clearxy; clearit; clearpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod pickup defaultpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod drawoptions(withcolor(#1));\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod initTableau;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod enddef;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\cat queue.mp >> \nomtravail_Tab#2.mp}
+ \immediate\write18{./convert-mp-pdf.sh \nomtravail_Tab#2 \theTVn}
+ \immediate\write18{\cp \nomtravail_Tab#2.pdf \nomtravail_Tab\theTVn.pdf}
+ \immediate\write18{\rem \nomtravail_Tab#2.mp}
+ }%
+ {% sinon, si le tableau est absent, alerte.
+ \IfFileExists{\nomtravail_Tab.\theTVn}{}{%
+ \PackageError{tablor}{Tableau absent non
+ reconstituable.}{Pour compiler il faut, soit les fichiers de
+ tableaux, soit le fichier \nomtravail_Tab.mp, soit disposer de
+ XCas.}}}
+
+\begin{center}
+ \includegraphics[scale=\echelle]{\nomtravail_Tab\theTVn.pdf}
+\end{center}
+\stepcounter{TVn}
+
+
+
+\else
+\ifthenelse{\boolean{xcas}}{% Avec l'option "XCas present"
+ \executGiacmp{XCas#2.giac}% reconstituer le tableau
+ % exporter le source mp
+ % puis lancer metapost pour creer
+ % l'image du tableau
+ \immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab.mp}
+ \immediate\write18{\cat enteteMP.cfg >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod def beginTableau(expr c) =\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod begingroup\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod charcode:=c;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod clearxy; clearit; clearpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod pickup defaultpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod drawoptions(withcolor(#1));\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod initTableau;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod enddef;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\cat queue.mp >> \nomtravail_Tab#2.mp}
+ \immediate\write18{mpost -jobname=\nomtravail_Tab \nomtravail_Tab#2.mp}
+ \immediate\write18{\rem \nomtravail_Tab#2.mp}
+ }%
+ {% sinon, si le tableau est absent, alerte.
+ \IfFileExists{\nomtravail_Tab.\theTVn}{}{%
+ \PackageError{tablor}{Tableau absent non
+ reconstituable.}{Pour compiler il faut, soit les fichiers de
+ tableaux, soit le fichier \nomtravail_Tab.mp, soit disposer de
+ XCas.}}}
+
+\begin{center}
+ \includegraphics[scale=\echelle]{\nomtravail_Tab.\theTVn}
+\end{center}
+\stepcounter{TVn}
+
+\fi
+
+}
+
+
+%%
+%% traitement des fichiers produits par giac/xcas avec possibilite
+%% de modifier le fichier metapost (environnement etoile))
+%%
+
+
+
+\newcommand{\dressetoile}[2]{%
+
+
+
+\ifxetex
+
+\IfFileExists{\nomtravail_Tab.\theTVn}{% Test sur l'existence du tableau
+% Si oui, inclusion du fichier source de sauvegarde mp dans Tableaux
+\immediate\write18{\cat TSav-\theTVn.mp >> \nomtravail_Tab.mp}}
+% Si non, lancement des operations de fabrication
+{\executGiacmp{XCas#2.giac}%
+\immediate\write18{\editeur XCasmpfc.mp }
+
+ % Modification avec l'editeur choisi
+\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab.mp}
+\immediate\write18{\cp XCasmpfc.mp TSav-\theTVn.mp} % Sauvegarde du
+ % source mp sur le disque pour une
+ % inclusion ulterieure dans Tableaux.mp.
+\immediate\write18{\cat enteteMP.cfg >> \nomtravail_Tab#2.mp}
+\immediate\write18{\echod def beginTableau(expr c) =\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod begingroup\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod charcode:=c;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod clearxy; clearit; clearpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod pickup defaultpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod drawoptions(withcolor(#1));\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod initTableau;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod enddef;\echof >> \nomtravail_Tab#2.mp}
+\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp}} % Inclusion du
+ % source dans le
+ % fichier
+ % Tableaux
+\immediate\write18{\cat queue.mp >> \nomtravail_Tab#2.mp}
+ \immediate\write18{./convert-mp-pdf.sh \nomtravail_Tab#1 \theTVn}
+ \immediate\write18{\cp \nomtravail_Tab#2.pdf \nomtravail_Tab\theTVn.pdf}% Reconstitution des tableaux
+ % et creation du dernier. L'option
+ % pallie l'absence de end en fin de
+ % fichier
+\immediate\write18{\rem \nomtravail_Tab#2.mp}
+
+\begin{center}
+ \includegraphics[scale=\echelle]{\nomtravail_Tab\theTVn.pdf}
+\end{center}
+\ech{1}
+\setcounter{TVn}{\theTVnbis} % Restauration du compteur TVn
+
+
+\else
+
+\IfFileExists{\nomtravail_Tab.\theTVn}{% Test sur l'existence du tableau
+% Si oui, inclusion du fichier source de sauvegarde mp dans Tableaux
+\immediate\write18{\cat TSav-\theTVn.mp >> \nomtravail_Tab.mp}}
+% Si non, lancement des operations de fabrication
+{\executGiacmp{XCas#2.giac}%
+\immediate\write18{\editeur XCasmpfc.mp }
+
+ % Modification avec l'editeur choisi
+\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab.mp}
+\immediate\write18{\cp XCasmpfc.mp TSav-\theTVn.mp} % Sauvegarde du
+ % source mp sur le disque pour une
+ % inclusion ulterieure dans Tableaux.mp.
+\immediate\write18{\cat enteteMP.cfg >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod def beginTableau(expr c) =\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod begingroup\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod charcode:=c;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod clearxy; clearit; clearpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod pickup defaultpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod drawoptions(withcolor(#1));\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod initTableau;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod enddef;\echof >> \nomtravail_Tab#2.mp}
+\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp}} % Inclusion du
+ % source dans le
+ % fichier
+ % Tableaux
+\immediate\write18{\cat queue.mp >> \nomtravail_Tab#2.mp}
+\immediate\write18{mpost -jobname=\nomtravail_Tab \nomtravail_Tab#2.mp}% Reconstitution des tableaux
+ % et creation du dernier. L'option
+ % pallie l'absence de end en fin de
+ % fichier
+\immediate\write18{\rem \nomtravail_Tab#2.mp}
+
+\begin{center}
+ \includegraphics[scale=\echelle]{\nomtravail_Tab.\theTVn}
+\end{center}
+\ech{1}
+\setcounter{TVn}{\theTVnbis} % Restauration du compteur TVn
+
+
+\fi
+
+}
+
+
+
+
+
+
+
+%%
+%%
+%%%
+%%%
+%%% les "giac" qui permettent d'executer la commande rentree dans le fichier tex
+%%% suivis des environnements qui permettront la saisie du code giac/xcas
+%%% Les versions etoilees permettent de modifier le code metapost produit initialement
+%%%
+
+
+
+
+\begin{VerbatimOut}{XCasa.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSigna.cxx");
+read("XCasa.user");
+\end{VerbatimOut}
+
+\newenvironment{TSa}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasa.user}}
+{\end{VerbatimOut}
+ \dresse{\couleurtab}{a}
+}
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasQ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignQ.cxx");
+read("XCasQ.user");
+\end{VerbatimOut}
+
+\newenvironment{TSq}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasQ.user}}
+{\end{VerbatimOut}\dresse{\couleurtab}{Q}}
+
+
+
+\newenvironment{TSq*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasQ.user}}
+{\end{VerbatimOut}\dressetoile{\couleurtab}{Q}}
+
+
+\begin{VerbatimOut}{XCasL.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignL.cxx");
+read("XCasL.user");
+\end{VerbatimOut}
+
+\newenvironment{TS}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasL.user}}
+{\end{VerbatimOut}\dresse{\couleurtab}{L}}
+
+
+\newenvironment{TS*}[1]
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasL.user}}
+{\end{VerbatimOut}\dressetoile{\couleurtab}{L}}
+
+
+\begin{VerbatimOut}{XCasTSc.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTSc.cxx");
+read("XCasTSc.user");
+\end{VerbatimOut}
+
+
+
+
+\newenvironment{TSc*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTSc.user}}
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TSc}}
+
+
+\newenvironment{TSc}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTSc.user}}
+{\end{VerbatimOut}\dresse{\couleurtab}{TSc}}
+
+
+\begin{VerbatimOut}{XCasTV.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTV.cxx");
+read("XCasTV.user");
+\end{VerbatimOut}
+
+\newenvironment{TV}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTV.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TV}}
+
+\newenvironment{TV*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTV.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TV}}
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVP.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVP.cxx");
+read("XCasTVP.user");
+\end{VerbatimOut}
+
+\newenvironment{TVP}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVP.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVP}}
+
+\newenvironment{TVP*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVP.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVP}}
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVZ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVZ.cxx");
+read("XCasTVZ.user");
+\end{VerbatimOut}
+
+\newenvironment{TVZ}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVZ.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVZ}}
+
+\newenvironment{TVZ*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVZ.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVZ}}
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVapp.cxx");
+read("XCasTVapp.user");
+\end{VerbatimOut}
+
+\newenvironment{TVapp}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVapp.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVapp}}
+
+\newenvironment{TVapp*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVapp.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVapp}}
+
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVI.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVI.cxx");
+read("XCasTVI.user");
+\end{VerbatimOut}
+
+\newenvironment{TVI}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVI.user}}%
+{\end{VerbatimOut}\dresse{\couleurtab}{TVI}}
+
+
+\newenvironment{TVI*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVI.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVI}}
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVIex.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIex.cxx");
+read("XCasTVIex.user");
+\end{VerbatimOut}
+
+\newenvironment{TVIex}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIex.user}}%
+{\end{VerbatimOut}\dresse{\couleurtab}{TVIex}}
+
+
+\newenvironment{TVIex*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIex.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVIex}}
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVIapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIapp.cxx");
+read("XCasTVIapp.user");
+\end{VerbatimOut}
+
+\newenvironment{TVIapp}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIapp.user}}%
+{\end{VerbatimOut}\dresse{\couleurtab}{TVIapp}}
+
+
+\newenvironment{TVIapp*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIapp.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVIapp}}
+
+
+
+\begin{VerbatimOut}{XCasTVPC.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVPC.cxx");
+read("XCasTVPC.user");
+\end{VerbatimOut}
+
+\newenvironment{TVPC}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVPC.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVPC}}
+
+\newenvironment{TVPC*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVPC.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVPC}}
+
+
+
+\begin{VerbatimOut}{XCasTVS.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVS.cxx");
+read("XCasTVS.user");
+\end{VerbatimOut}
+
+\newenvironment{TVS}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVS.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVS}}
+
+\newenvironment{TVS*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVS.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVS}}
+
+
+
+
+
+%% pour nettoyer les fichiers auxiliaires
+
+\AtEndDocument{\immediate\write18{\cat queue.mp >> \nomtravail_Tab.mp}
+ }
+
+
+
+
+%%
+%% Zi end -> enjoy :)
diff --git a/macros/latex/contrib/tablor/tablor.cfg b/macros/latex/contrib/tablor/tablor.cfg
new file mode 100644
index 0000000000..82048c7197
--- /dev/null
+++ b/macros/latex/contrib/tablor/tablor.cfg
@@ -0,0 +1,113 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Fichier de configuration de tablor.sty %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% La mise jour de ce fichier permet d'adapter certains paramtres du package tablor.sty
+% au poste de travail et aux habitudes des utilisateurs.
+
+
+%========================================
+% I - Configuration du prambule MetaPOST
+%========================================
+
+\begin{filecontents*}{enteteMP.cfg}
+input tableauVariation;
+verbatimtex
+%&latex
+\documentclass{article}
+\usepackage[upright]{kpfonts}% ou mathpazo, lmodern, etc. ou rien !
+%\usepackage{amsmath}
+\renewcommand\mbox[1]{ #1 } % pour les mbox intempestifs de xcas
+\renewcommand\cdot{ } % idem pour les cdot
+\begin{document}
+\catcode`\@=0 % pour utiliser le @
+etex
+\end{filecontents*}
+
+
+
+%=================================
+% II - Dclaration de l'diteur utilis
+% ================================
+%
+% Remplacez "gedit" par la commande qui lance un autre editeur que votre diteur favori pour pouvoir modifier certains tableaux.
+% Laissez une espace avant de fermer l'accolade.
+
+\newcommand{\editeur}{emacsclient -c }
+
+
+
+
+
+
+
+
+
+
+
+%=================================
+%III - 1re colonne
+%=================================
+%
+%permet de configurer les termes dans la premire colonne des
+%tableaux : "signe de" ou "sign of" ou "" etc.
+%
+
+
+
+\begin{VerbatimOut}{config.cxx}
+
+//reglage de epsilon : seuil du zero de giac
+epsilon:=1e-100;
+
+// POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
+// pour la ligne signe
+lsic:="
+newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle ";
+
+// POUR LES TV, TVI,TVZ,TVapp
+// pour la ligne variation
+lvic:="
+newLigneVariations(btex $\\hbox{ Variations de }\\atop{\\displaystyle ";
+
+\end{VerbatimOut}
+
+
+
+%% you may prefer
+
+% \begin{VerbatimOut}{config.cxx}
+
+% // FOR TV, TVI,TVZ,TVapp,TSq,TSa
+% // for the signs
+% lsic:="
+% newLigneSignes(btex $\\hbox{ Sign of }\\atop{\\displaystyle ";
+
+% // POUR LES TV, TVI,TVZ,TVapp
+% // for the variations
+% lvic:="
+% newLigneVariations(btex $\\hbox{ Variations of }\\atop{\\displaystyle ";
+
+%\end{VerbatimOut}
+
+
+
+%% ou si vous prfrez que ni signe ni variation n'apparaissent
+
+
+
+% \begin{VerbatimOut}{config.cxx}
+
+% // POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
+% // pour la ligne signe
+% lsic:="
+% newLigneSignes(btex ${\\displaystyle ";
+
+% // POUR LES TV, TVI,TVZ,TVapp
+% // pour la ligne variation
+% lvic:="
+% newLigneVariations(btex ${\\displaystyle ";
+
+% \end{VerbatimOut}
+
diff --git a/macros/latex/contrib/tablor/tablor.html b/macros/latex/contrib/tablor/tablor.html
new file mode 100644
index 0000000000..1d5c91754d
--- /dev/null
+++ b/macros/latex/contrib/tablor/tablor.html
@@ -0,0 +1,3321 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!-- Created by htmlize-1.34 in css mode. -->
+<html>
+ <head>
+ <title>tablor.sty</title>
+ <style type="text/css">
+ <!--
+ body {
+ color: #cdba96;
+ background-color: #0d0d0d;
+ font-weight: bold;
+ }
+ .comment {
+ /* font-lock-comment-face */
+ color: #ffd700;
+ background-color: #525252;
+ }
+ .comment-delimiter {
+ /* font-lock-comment-delimiter-face */
+ color: #ffd700;
+ background-color: #525252;
+ }
+ .constant {
+ /* font-lock-constant-face */
+ color: #9932cc;
+ font-weight: bold;
+ }
+ .font-latex-math {
+ /* font-latex-math-face */
+ color: #436eee;
+ }
+ .font-latex-sedate {
+ /* font-latex-sedate-face */
+ color: #d3d3d3;
+ }
+ .font-latex-subscript {
+ /* font-latex-subscript-face */
+ font-size: 80%;
+ }
+ .font-latex-superscript {
+ /* font-latex-superscript-face */
+ font-size: 80%;
+ }
+ .font-latex-warning {
+ /* font-latex-warning-face */
+ color: #8b0000;
+ font-weight: bold;
+ }
+ .function-name {
+ /* font-lock-function-name-face */
+ color: #87ceeb;
+ }
+ .keyword {
+ /* font-lock-keyword-face */
+ color: #6495ed;
+ font-weight: bold;
+ }
+ .variable-name {
+ /* font-lock-variable-name-face */
+ color: #98fb98;
+ }
+
+ a {
+ color: inherit;
+ background-color: inherit;
+ font: inherit;
+ text-decoration: inherit;
+ }
+ a:hover {
+ text-decoration: underline;
+ }
+ -->
+ </style>
+ </head>
+ <body>
+ <pre>
+<span class="font-latex-sedate">\NeedsTeXFormat</span>{LaTeX2e}[1995/12/01]
+<span class="font-latex-sedate">\ProvidesPackage</span>{tablor}[09/05/2010 v4.07 la machine a creer des tableaux de signes et variations]
+
+<span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\copyleft</span></span><span class="comment"> Connan le Barbare (aka Guillaume Connan) </span><span class="font-latex-sedate"><span class="comment">\copyright</span></span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">This work may be distributed and/or mofified under the conditions
+</span><span class="comment-delimiter">% </span><span class="comment">or the LaTeX Project Public Licence, either v1.3 or (at your option)
+</span><span class="comment-delimiter">% </span><span class="comment">any later version. The latest version is in
+</span><span class="comment-delimiter">% </span><span class="comment">http://www.latex-project.org/lppl/
+</span><span class="comment-delimiter">% </span><span class="comment">This work consists of the files tablor.sty, tablor-xetex.sty, tablor.cfg, tablor.tex,
+</span><span class="comment-delimiter">% </span><span class="comment">tablor.pdf and tablor.html
+</span>
+
+<span class="comment-delimiter">%% </span><span class="comment">Cree 16 environnements :
+</span><span class="comment-delimiter">%% </span><span class="comment">tableau de signes de 2 facteurs affines
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TSa}
+</span><span class="comment-delimiter">% </span><span class="comment">TSa(-2,3,-1,5,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TSa}
+</span><span class="comment-delimiter">% </span><span class="comment">%%%%%% Pour des tableaux de plus de 2 facteurs
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TS}
+</span><span class="comment-delimiter">% </span><span class="comment">TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[a,b],n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TS}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">pour les tableaux de signes avec quotient
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TSq}
+</span><span class="comment-delimiter">%</span><span class="comment">TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[a,b],n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">%%</span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TSq}
+</span><span class="comment-delimiter">% </span><span class="comment">un tableau de variation :
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">pour les tableaux de signes &#224; une seule ligne
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TSc}
+</span><span class="comment-delimiter">% </span><span class="comment">TSc((x+10)/((x-5)*(x-2)),[-10,5],[2,5],n,0)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TSc}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TV}
+</span><span class="comment-delimiter">% </span><span class="comment">TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TV}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variation avec liste de valeurs
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVS}
+</span><span class="comment-delimiter">% </span><span class="comment">TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVS}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variation avec zones interdites
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVZ}
+</span><span class="comment-delimiter">% </span><span class="comment">TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVZ}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau avec valeurs intermediares
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVI}
+</span><span class="comment-delimiter">%</span><span class="comment">TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVI}
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau avec valeurs intermediares et racines exactes
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVIex}
+</span><span class="comment-delimiter">%</span><span class="comment">TVIex([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVIex}
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variations avec f' sans zero formel
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVapp}
+</span><span class="comment-delimiter">% </span><span class="comment">TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVapp}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">tableau de variations avec f' sans zero formel
+</span><span class="comment-delimiter">%</span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVIapp}
+</span><span class="comment-delimiter">% </span><span class="comment">TVIapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,0,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVIapp}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">et leurs pendants etoiles qui permettent l'affichage intermediaire du
+</span><span class="comment-delimiter">% </span><span class="comment">fichier metapost pour le modifier
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">Courbes parametrees
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">% </span><span class="comment">TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">% </span><span class="comment">TVP([0,pi/2],[[],[]],["x","y"],"t",[2*cos(t),sin(2*t)],1,t,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">)
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVP}
+</span><span class="comment-delimiter">% </span><span class="comment">%
+</span>
+<span class="comment-delimiter">% </span><span class="comment">Fonctions prolongeables par continuit&#233;
+</span><span class="comment-delimiter">% </span><span class="comment">TVP([intervalles d'&#233;tude],[valeurs prolongeables],[valeurs interdites pour f'],"g","t",e^(-1/x^2),1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span>
+
+<span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\begin</span></span><span class="comment">{TVPC}
+</span><span class="comment-delimiter">% </span><span class="comment">TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,</span><span class="font-latex-sedate"><span class="comment">\tv</span></span><span class="comment">);
+</span><span class="comment-delimiter">% </span><span class="font-latex-sedate"><span class="comment">\end</span></span><span class="comment">{TVPC}
+</span>
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">extensions requises
+</span><span class="comment-delimiter">%% </span><span class="comment">Il faudra rajouter dans le preambule </span><span class="font-latex-sedate"><span class="comment">\usepackage</span></span><span class="comment">{graphicx} si vous
+</span><span class="comment-delimiter">%% </span><span class="comment">ne l'avez pas de base
+</span>
+
+<span class="font-latex-sedate">\RequirePackage</span>{filecontents}
+<span class="font-latex-sedate">\RequirePackage</span>{ifthen}
+<span class="font-latex-sedate">\RequirePackage</span>{fancyvrb}
+<span class="font-latex-sedate">\RequirePackage</span>{ifpdf}
+
+<span class="font-latex-sedate">\fvset</span>{gobble=0}
+
+<span class="comment-delimiter">% </span><span class="comment">option xcas present
+</span>
+
+<span class="font-latex-sedate">\newboolean</span>{xcas}<span class="font-latex-sedate">\setboolean</span>{xcas}{false}
+<span class="font-latex-sedate">\DeclareOption</span>{xcas}{<span class="font-latex-sedate">\setboolean</span>{xcas}{true}}
+
+<span class="comment-delimiter">%% </span><span class="comment">Initialisation du choix d'OS
+</span><span class="font-latex-sedate">\newboolean</span>{windows}<span class="font-latex-sedate">\setboolean</span>{windows}{false}
+<span class="font-latex-sedate">\DeclareOption</span>{windows}{<span class="font-latex-sedate">\setboolean</span>{windows}{true}}
+
+<span class="font-latex-sedate">\ProcessOptions</span><span class="font-latex-sedate">\relax</span>
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">on configure tablor dans un fichier exterieur pour la plateforme
+</span><span class="comment-delimiter">%% </span><span class="comment">et l'editeur
+</span>
+<span class="font-latex-sedate">\IfFileExists</span>{tablor.cfg}{<span class="font-latex-sedate"><span class="keyword">\input</span></span><span class="constant">{tablor.cfg}</span>}<span class="comment">%</span><span class="font-latex-sedate"><span class="comment">\typeout</span></span><span class="comment">{pas de fichier tablor.cfg}}
+</span>
+
+<span class="comment-delimiter">%% </span><span class="comment">Definit des commandes disque selon l'OS utilise
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{windows}}<span class="comment">%
+</span> {<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\rem</span></span><span class="function-name">}</span>{DEL } <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cat</span></span><span class="function-name">}</span>{TYPE }
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cp</span></span><span class="function-name">}</span>{COPY } <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echod</span></span><span class="function-name">}</span>{ECHO }
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echof</span></span><span class="function-name">}</span>{ }}<span class="comment">%
+</span> {<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\rem</span></span><span class="function-name">}</span>{rm }<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cat</span></span><span class="function-name">}</span>{cat }
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\cp</span></span><span class="function-name">}</span>{cp } <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echod</span></span><span class="function-name">}</span>{echo "}
+ <span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\echof</span></span><span class="function-name">}</span>{"}}
+
+
+
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">pour ceux compilant via pdflatex
+</span>
+<span class="font-latex-sedate">\ifpdf</span>
+<span class="font-latex-sedate">\DeclareGraphicsRule</span>{*}{mps}{*}{}
+<span class="font-latex-sedate">\fi</span>
+
+<span class="comment-delimiter">%% </span><span class="comment">pour nettoyer les fichiers auxiliaires
+</span>
+<span class="font-latex-sedate">\AtEndDocument</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> *.user XCas* Xcas* *.mpx}
+ }
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Pour clore les fichiers metapost
+</span>
+
+ <span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{queue.mp}
+
+ end
+
+ <span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Nettoie les fichiers log dont le nom depend du choix de l'utilisateur
+</span><span class="comment-delimiter">%% </span><span class="comment">Par defaut, c'est le nom du fichier tex courant (</span><span class="font-latex-sedate"><span class="comment">\jobname</span></span><span class="comment">)
+</span><span class="comment-delimiter">%% </span><span class="comment">Cl&#244;t le fichier metapost contenant le recapitulatif de tous les tableaux
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\nettoyer</span></span><span class="function-name">}</span>[1][<span class="font-latex-sedate">\jobname</span>]<span class="comment">%
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> #1.Tab.log queue.mp enteteMP.cfg session.tex config.cxx}
+}
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Donne comme prefixe aux tableaux le prefixe courant
+</span><span class="comment-delimiter">%% </span><span class="comment">Peut-&#234;tre modifie par </span><span class="font-latex-sedate"><span class="comment">\initablor</span></span><span class="comment">
+</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\nomtravail</span></span><span class="function-name">}</span>{<span class="font-latex-sedate">\jobname</span>}
+
+<span class="comment-delimiter">%% </span><span class="comment">initialise les compteurs
+</span>
+<span class="font-latex-sedate"><span class="keyword">\newcounter</span></span><span class="function-name">{TVn}</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\tv</span></span><span class="function-name">}</span>{<span class="font-latex-sedate">\theTVn</span>}
+
+<span class="font-latex-sedate"><span class="keyword">\newcounter</span></span><span class="function-name">{TVnbis}</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\tvbis</span></span><span class="function-name">}</span>{<span class="font-latex-sedate">\theTVnbis</span>}
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">permet de donner un prefixe aux tableaux produits (</span><span class="font-latex-sedate"><span class="comment">\jobname</span></span><span class="comment"> par defaut)
+</span><span class="comment-delimiter">%% </span><span class="comment">effectue quelques verifications :
+</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\initablor</span></span><span class="function-name">}</span>[1][<span class="font-latex-sedate">\jobname</span>]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\renewcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\nomtravail</span></span><span class="function-name">}</span>{#1}<span class="comment">% Arret du nom des tableaux
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{0}</span><span class="comment">% Initialisation du compteur de tableaux.
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{xcas}}<span class="comment">% Avec l'option XCas
+</span>{<span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.mp}<span class="comment">% Si Tableaux.mp est present...
+</span> {<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}}<span class="comment">% le detruire
+</span> {}<span class="comment">%
+</span> <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cp</span> enteteMP.cfg <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}<span class="comment">% Reconstituer l'ent&#234;te de Tableaux.mp
+</span>}
+{<span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.mp}<span class="comment">% Sans l'option XCas, si
+</span> <span class="comment">% Tableaux.mp existe
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost -interaction=batchmode <span class="font-latex-sedate">\nomtravail</span>_Tab}}<span class="comment">% l'executer pour reconstituer les figures
+</span>{<span class="font-latex-sedate">\PackageWarning</span>{tablor}{Pas de source metapost pour creer les tableaux.}}<span class="comment">% sinon message d'erreur
+</span> <span class="comment">% (mais pas d'arret car les tableaux
+</span> <span class="comment">% peuvent &#234;tre presents )
+</span>}}<span class="comment">%
+</span>
+
+
+<span class="comment-delimiter">%% </span><span class="comment">commande pour lancer giac selon l'OS
+</span>
+<span class="font-latex-sedate">\makeatletter</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\executGiacmp</span></span><span class="function-name">}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{windows}}<span class="comment">%
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{giac #1 }}<span class="comment">%
+</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{giac &lt;#1 }}}
+<span class="font-latex-sedate">\makeatother</span>
+
+
+
+
+<span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%% </span><span class="comment">LES SCRIPTS GIAC/XCAS
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span>
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de Variations
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTV.cxx}
+TV(L,F,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))&gt;0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic+nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex
+ <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span>
+ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+<span class="comment-delimiter">%%%%</span><span class="comment">
+</span>
+
+<span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">TVPC : pour les fonctions prolongeables par continuit&#233;.
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVPC.cxx}
+TVPC(L,F,FP,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+Z:=concat(Z,FP);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],FP)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))&gt;0;
+ lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],FP)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic+nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "valPos(btex
+ <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span>
+ etex,"+if(krm==1){"1);"}else{"0);"} }
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">TV avec une zone interdite : on rajoute comme argument la liste des intervalles interdits
+</span><span class="comment-delimiter">%% </span><span class="comment">par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[[-1,1]],"f","x",sqrt(x^2-1),1,1)
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVZ.cxx}
+
+
+TVZ(L,F,FF,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+nf:=size(FF);
+ Ff:=NULL;IMIN:=NULL;IMAX:=NULL;
+for(k:=0;k&lt;nf;k++){
+if(FF[k][0]&gt;L[0]){Imin[k]:=FF[k][0];LL:=L}else{Imin[k]:=L[0];LL:=[L[1]]};
+if(FF[k][1]&lt;L[1]){Imax[k]:=FF[k][1];LL:=L}else{Imax[k]:=L[1];LL:=[L[0]]};
+ Ff:=Ff,[Imin[k],Imax[k]];
+ IMIN:=IMIN,Imin[k];
+ IMAX:=IMAX,Imax[k];
+ }
+ FF:=[Ff];
+ IMIN:=[IMIN];
+ IMAX:=[IMAX];
+ f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(LL,F);
+
+for(k:=0;k&lt;nf;k++){
+Z:=concat(Z,FF[k]);
+}
+
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ for(k:=0;k&lt;nf;k++){
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ kK:=(evalf(S[j])&lt;evalf(Imin[k])) or (evalf(S[j])&gt;evalf(Imax[k]));
+ Kk:=(kk) and kK;
+ if(Kk==1){Z:=append(Z,simplify(S[j]))};
+ }
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+for(j:=0;j&lt;nf;j++){
+ for(k:=1;k&lt;nz;k++){
+ if ((Z[k]&gt;Imin[j])and(Z[k]&lt;Imax[j])){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1;
+ }
+ }
+}
+nz:=size(Z);
+
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+if(member(Z[0],IMIN)!=0){if((member(Z[0],F)==0) and (fp(Z[0])!=undef)){"debutNonDef;"}else{"debutNonDefStrict;"}}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}}
+
+
+
+// modif 3 avril 2010
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){
+ lsp:=lsp+
+ if(member(Z[r],IMIN)!=0){
+ if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"debutNonDef;"}
+ else{"debutNonDefStrict;"}}
+ else{if(member(Z[r],IMAX)!=0){if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"finNonDef;"}
+ else{"finNonDefStrict;"}+
+ if(evalf(fp(Z[r]+0.01))&gt;0){"plus;"}
+ else{"moins;"}}
+ else{if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}
+ else{"nonDefBarre;"}+
+ if(evalf(fp(Z[r]+0.01))&gt;0){"plus;"}
+ else{"moins;"}
+ }}
+ }};
+
+// fin modif
+
+
+
+
+
+lsf:=if(member(Z[nz-1],IMAX)!=0){if((member(Z[nz-1],F)==0) and (fp(Z[nz-1])!=undef)){"finNonDef;"}else{"finNonDefStrict;"}}else{if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}}
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic +nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+if(nz&gt;2){
+ for(r:=1; r&lt;=nz-2;r++){
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+
+ lp:=lp+if(member(Z[r],IMIN)!=0){"limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x=Z[r],-1)))}
+ +"$</span> etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +if(member(Z[r],F)==0){"debutNonDef;"}else{"debutNonDefStrict;"}
+ }//fsi Zr=Imin
+ else{
+ if (member(Z[r],IMAX)!=0){if(member(Z[r],F)==0){"finNonDef;"}else{"finNonDefStrict;"}+"limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}
+ +"$</span> etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }else{
+ if(member(Z[r],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x=Z[r],-1)))}
+ +"$</span> etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}
+ +"$</span> etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }//fsi (member Zr F)
+ else{"valPos(btex<span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){
+ "0.5);"}else{
+ if(krp==1){
+ "1);"}else{"0);"}//felse(krp)
+ }//felse(valpos)
+ }//felse(member Zr F)
+ } //felse(Zr=Imax)
+ }//felse(Zr=Imin)
+ };//ffor
+ }//fsi nz
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }
+:;
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Quand les solutions formelles de f'(x)=0 ne sont pas calculables
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVapp.cxx}
+
+
+TVapp(L,F,nom,nomv,f,ftt,nmr):={
+local nl,fp,z0,z,nz,S,k,j,m,kk,kok,Z,l0,lp,lf,lsp,k0,kz,lsi,r,ksp,lsf,lm0,li,krm,krp,lmrm,lmrp,lnz;
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+S:=NULL;
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])&gt;=L[0]) and (evalf(S[j])&lt;=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j&lt;size(z);j++){
+ if(z[j]!=undef and (abs(z[j])&gt;1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j&lt;nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+ li:=lvic+nom+"}$</span> etex);"+
+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de Variations avec
+</span><span class="comment-delimiter">%% </span><span class="comment">Valeurs intermediaires
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVI.cxx}
+
+
+TVI(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz&gt;2){ for(r:=1;
+ r&lt;=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz&gt;2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"}}
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"};
+//chgmt NL-&gt;nz
+if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+Z[0])))==1.0){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$</span>
+ <span class="font-latex-math">$ etex);"+
+if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+
+if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $</span> <span class="font-latex-math">$ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $</span> <span class="font-latex-math">$ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$</span> etex);
+"+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"}else{" "};
+
+
+ if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[rr-1],1))&lt; evalf(limit(f(x),x=Z[rr],-1));
+ krp:=evalf(limit(f(x),x=Z[rr],1))&gt; evalf(limit(f(x),x=Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[rr],-1)==-infinity;lmrp:=limit(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz&lt;NL
+}// else nz&lt;NL
+//if nz=NL
+};//if nz&gt;2
+
+
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">% </span><span class="comment">Pour avoir les racines sous forme exacte.... quand c'est possible !
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%</span><span class="comment">
+</span><span class="comment-delimiter">%%%%%%%%%</span><span class="comment">
+</span>
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVIex.cxx}
+
+
+
+TVIex(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+Sex:=NULL;
+Zex:=solve(f(x)=ao);
+Zex:=sort(Zex);
+for(j:=0;j&lt;size(Zex);j++){
+if((evalf(Zex[j])&gt;=evalf(L[0])) and (evalf(Zex[j])&lt;=evalf(L[nl-1]))){Sex:=Sex,Zex[j]};
+};
+Sex:=[Sex];
+
+
+
+
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k&lt;ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz&gt;2){ for(r:=1;
+ r&lt;=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz&gt;2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=0;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"+"val(btex <span class="font-latex-math">$"+latex(simplify(Sex[aa]))+"$</span> etex);";aa:=aa+1;}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"}}
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"};
+//chgmt NL-&gt;nz
+if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$"+latex(simplify(Sex[aa]))+"$</span> etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$</span>
+ <span class="font-latex-math">$ etex);"+
+if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $</span> <span class="font-latex-math">$ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $</span> <span class="font-latex-math">$ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$</span> etex);
+"+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"}else{" "};
+
+
+ if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[rr-1],1))&lt; evalf(limit(f(x),x=Z[rr],-1));
+ krp:=evalf(limit(f(x),x=Z[rr],1))&gt; evalf(limit(f(x),x=Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[rr],-1)==-infinity;lmrp:=limit(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz&lt;NL
+}// else nz&lt;NL
+//if nz=NL
+};//if nz&gt;2
+
+
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Quand les solutions de f'(x)=0 ne sont pas formellement calculables
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVIapp.cxx}
+
+TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
+
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+
+
+
+
+S:=op(fsolve(fp(x),x));
+
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m&lt;=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+
+
+
+
+
+
+
+
+
+si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])&gt;=L[0]) and (evalf(S[j])&lt;=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j&lt;size(z);j++){
+ if(z[j]!=undef and (abs(z[j])&gt;1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j&lt;nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz&gt;2){ for(r:=1;
+ r&lt;=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz&gt;2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+if(NL==nz){for(k:=0;k&lt;nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;}else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[k])+"$</span> etex);"}}
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"};
+//chgmt NL-&gt;nz
+if(NL&gt;nz){for(k:=0;k&lt;NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);"+"val(btex <span class="font-latex-math">$\\alpha_</span><span class="font-latex-subscript"><span class="font-latex-math">"</span></span><span class="font-latex-math">+aa+"$</span> etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[kk])+"$</span> etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[nz-1])+"$</span> etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x=Z[0],1))&gt; evalf(limit(f(x),x=Z[1],-1));
+ kz:=evalf(limit(f(x),x=Z[nz-1],-1))&gt; evalf(limit(f(x),x=Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}<span class="font-latex-math">$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$</span>
+ <span class="font-latex-math">$ etex);"+
+
+if(evalf(sign(fp(10^</span><span class="font-latex-superscript"><span class="font-latex-math">(</span></span><span class="font-latex-math">-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+if(nz&gt;2){rr:=1; if(nz==NL){for(r:=1; r&lt;=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))&gt;0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $</span> <span class="font-latex-math">$ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r&lt;=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))&gt;0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $</span> <span class="font-latex-math">$ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x=Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$</span> etex);
+"+ if(member(Z[0],F)==0){"valPos(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[0],1)))}+"$</span> etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"}else{" "};
+
+
+ if(nz&gt;2){if(nz==NL){for(r:=1; r&lt;=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[r-1],1))&lt; evalf(limit(f(x),x=Z[r],-1));
+ krp:=evalf(limit(f(x),x=Z[r],1))&gt; evalf(limit(f(x),x=Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[r],-1)==-infinity;lmrp:=limit(f(x),x=Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[r],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[r])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r&lt;=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x=Z[rr-1],1))&lt; evalf(limit(f(x),x=Z[rr],-1));
+ krp:=evalf(limit(f(x),x=Z[rr],1))&gt; evalf(limit(f(x),x=Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x=Z[rr],-1)==-infinity;lmrp:=limit(f(x),x=Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ <span class="font-latex-math">$ "+ao+" $</span> etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex <span class="font-latex-math">$"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],-1)))}+"$</span> etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[rr],1)))}+"$</span> etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f(Z[rr])))+"$</span>
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz&lt;NL
+}// else nz&lt;NL
+//if nz=NL
+};//if nz&gt;2
+
+
+
+lnz:=limit(f(x),x=Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de variations de courbes parametrees
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVP.cxx}
+TVP(L,F,nom,nomv,ff,ftt,trigo,nmr):={
+
+nl:=size(L);
+fp:=[];
+S:=[];
+f:=[unapply(ff[0],t),unapply(ff[1],t)];
+fp:=[function_diff(f[0]),function_diff(f[1])];
+Z:=[];
+LLL:=[];
+
+
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+
+for(d:=0;d&lt;=1;d++){
+LLL:=concat(L,F[d]);
+Z:=LLL union Z;
+SS:=solve(factor(simplify(fp[d](t))),t);
+ns:=size(SS);
+
+
+for(k:=0;k&lt;ns;k++){
+if(trigo==t){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))&lt;=evalf(L[nl-1])){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))&gt;=L[0]){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+
+}
+}else{
+S:=concat(S,SS);
+}
+}
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])&gt;=evalf(L[0])) and (evalf(S[j])&lt;=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+nz:=size(Z);
+u:=1;
+ tantque (u&lt;nz-2) and (nz&gt;2) faire
+ tantque evalf(Z[u])==evalf(Z[u+1]) faire
+ Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=size(Z);
+ ftantque;
+ u:=u+1;
+ ftantque;
+
+
+ };
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+
+ l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:="",""; lf:="","";lsp:="","";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+
+ lsi:="","";
+
+FFF:=[[],[]];
+
+for(d:=0;d&lt;=1;d++){
+FFF[d]:=concat(F[d],[-infinity,+infinity]);
+ k0:= evalf(limit(f[d](x),x=Z[0],1))&gt; evalf(limit(f[d](x),x=Z[1],-1));
+ kz:=evalf(limit(f[d](x),x=Z[nz-1],-1))&gt; evalf(limit(f[d](x),x=Z[nz-2],1));
+//}
+//<span class="font-latex-math">$
+ lsi[d]:=lsic+nom[d]+"'("+nomv+")}$</span> etex);"+if(member(Z[0],FFF[d])==0){"valBarre(btex <span class="font-latex-math">$"+latex(simplify(fp[d](Z[0])))+"$</span> etex);"}else{if(Z[0]==-infinity){" "}else{"nonDefBarre;
+"}}+
+ if(Z[0]==-infinity){if(sign(evalf(fp[d](if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F[d])==0){
+ if(sign(fp[d](Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{
+ if(sign(fp[d]((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}
+
+if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ ksp:=evalf(fp[d](Z[r]+0.01))&gt;0;
+ lsp[d]:=lsp[d]+if(member(Z[r],F[d])==0){"valBarre(btex <span class="font-latex-math">$"+latex(simplify(fp[d](Z[r])))+"$</span> etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf[d]:=if(member(Z[nz-1],FFF[d])==0){"valBarre(btex <span class="font-latex-math">$"+latex(simplify(fp[d](Z[nz-1])))+"$</span> etex);"}else{if(Z[nz-1]==+infinity){" "}else{"nonDefBarre;"}}
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+ lm0:=1,2; li:=1,2; krm:=1,2; krp:=1,2; lmrm:=1,2; lmrp:=1,2; lp:="",""; lnz:=1,2; lf:=1,2; Kz:=1,2;K0:=1,2;
+
+
+for(d:=0;d&lt;=1;d++){
+ K0[d]:= evalf(limit(f[d](x),x=Z[0],1))&gt; evalf(limit(f[d](x),x=Z[1],-1));
+ Kz[d]:=evalf(limit(f[d](x),x,Z[nz-1],-1))&gt; evalf(limit(f[d](x),x,Z[nz-2],1));
+//{
+//<span class="font-latex-math">$
+lm0[d]:=limit(f[d](x),x,Z[0],1)==-infinity;
+ li[d]:=lvic+nom[d]+"}$</span> etex);"+
+ if(member(Z[0],F[d])==0){"valPos(btex <span class="font-latex-math">$"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$</span> etex,"}
+ else{"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$</span> etex,"}+
+ if(K0[d]==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){ krm[d]:=evalf(limit(f[d](x),x=Z[r-1],1))&lt; evalf(limit(f[d](x),x=Z[r],-1));
+ krp[d]:=evalf(limit(f[d](x),x=Z[r],1))&gt; evalf(limit(f[d](x),x,Z[r+1],-1)) ;
+ lmrm[d]:=limit(f[d](x),x,Z[r],-1)==-infinity;lmrp[d]:=limit(f[d](x),x,Z[r],1)==-infinity;
+ lp[d]:=lp[d]+if(member(Z[r],F[d])){
+ "limGauche(btex
+ <span class="font-latex-math">$"+if(lmrm[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],-1)))}+"$</span>
+ etex,"+if(krm[d]==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex <span class="font-latex-math">$"+if(lmrp[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],1)))}+"$</span> etex,"+if(krp[d]==1){"1);"}else{"0);"}}
+ else{"valPos(btex <span class="font-latex-math">$"+latex(simplify(f[d](Z[r])))+"$</span>
+ etex,"+if(sign(evalf(fp[d](Z[r]-0.001)))==sign(evalf((fp[d](Z[r]+0.001))) )){"0.5);"}else{if(krp[d]==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz[d]:=limit(f[d](x),x=Z[nz-1],-1)==-infinity;
+
+
+lf[d]:=if(member(Z[nz-1],F[d])==0){"valPos(btex <span class="font-latex-math">$"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(Kz[d]==1){"1);"}else{"0);"}}
+ else{"limGauche(btex <span class="font-latex-math">$"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$</span> etex,"+
+ if(Kz[d]==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz&gt;2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi[0]+lsp[0]+lsf[0]+lsi[1]+lsp[1]+lsf[1]+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+lsi[1]+lsf[1]+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lp[0]+
+lf[0]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lf[0]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}}else{
+if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsp[0]+lsf[0]+
+li[0]+
+lp[0]+
+lf[0]+
+lsi[1]+lsp[1]+lsf[1]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+
+li[0]+
+lf[0]+
+lsi[1]+lsf[1]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}
+}
+}
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+}:;
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de signes de produits
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignL.cxx}
+
+
+TS(nomf,L,D,trigo,nmr):={
+L:=apply(f-&gt;unapply(f,x),L)
+n:=size(L);
+Z:=NULL;
+nl:=size(L);
+S:=[];
+mini:=D[0]; maxi:=D[1];
+
+pour k de 0 jusque n-1 faire
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j&lt;ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))&lt;=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))&gt;=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(L[k](x),x);
+}
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ Z:=sort([op(set[(Z)])]);
+
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+ for(p:=0;p&lt;=n-1;p++){li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"};
+
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+li+ lsic+nomf+"(x)}$</span> etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+ lf+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+"
+;
+
+}else{
+
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+
+
+for(p:=0;p&lt;=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(L[p](Z[0]-0.01)&gt;0){"plus;"}else{"moins;"};
+
+ for(r:=0; r&lt;=nz-2;r++){
+ lp:=lp+if(simplify(L[p](Z[r]))==0){"
+ valBarre(btex 0 etex);"}else{"barre;
+ "}+
+ if(L[p]((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](Z[nz-1]+1.0)&gt;0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"
+ fpour
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+
+ li
+ + lsic+nomf+"(x)}$</span> etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(product(L[s](Z[0]-0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
+ lr+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+
+ ";
+}
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de signes de quotients
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSignQ.cxx}
+TSq(nomf,L,Fo,D,trigo,nmr):={
+L:=apply(f-&gt;unapply(f,x),L);
+Fo:=apply(f-&gt;unapply(f,x),Fo);
+L:=concat(L,Fo);
+n:=size(L);
+Z:=NULL;
+m:=size(Fo);
+F:=NULL;FF:=NULL;
+mini:=D[0]; maxi:=D[1];
+S:=[];
+SF:=[];
+
+pour k de 0 jusque n-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j&lt;ns;j++){
+mm:=0;
+while(evalf(simplify(subst(SS[j],n_1=mm)))&lt;=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SS[j],n_1=mm))&gt;=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+S:=concat(S,solve(L[k](x),x));
+}
+
+
+
+
+
+ si size(S)&gt;0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+pour k de 0 jusque m-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SSF:=solve(factor(simplify(Fo[k](x))),x);
+nsf:=size(SSF);
+for(j:=0;j&lt;nsf;j++){
+mm:=0;
+while(evalf(simplify(subst(SSF[j],n_1=mm)))&lt;=evalf(maxi)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SSF[j],n_1=mm))&gt;=evalf(mini)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+SF:=concat(SF,solve(Fo[k](x),x));
+}
+
+ si size(SF)&gt;0 alors pour j de 0 jusque size(SF)-1 faire
+ FF:=FF,simplify(SF[j]);
+ if(SF[j]&gt;mini and SF[j]&lt;maxi){F:=F,simplify(SF[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+Z:=[Z,F];
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+ for(p:=0;p&lt;=n-1;p++){li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"};
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+li+
+ lsic+nomf+"(x)}$</span> etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+ lf+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+;
+
+
+
+
+}else{
+
+
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";fpour;
+l0:=l0+"val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+
+
+for(p:=0;p&lt;=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}<span class="font-latex-math">$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){" valBarre(btex 0 etex);"}else{" "}+
+ if(L[p](Z[0]-0.01)&gt;0){"plus;"}else{"moins;"};
+
+ for(r:=0; r&lt;=nz-2;r++){lp:=lp+if(simplify(L[p](Z[r]))==0){" valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p]((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](Z[nz-1]+1.0)&gt;0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"valBarre(btex 0 etex);"}else{" "}
+
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(member(Z[t+1],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}
+ fpour
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $</span> {x}<span class="font-latex-math">$ etex);
+ "+l0+
+ li
+ +
+ lsic+nomf+"(x)}$</span> etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+
+ if(product(L[s](Z[0]-0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
+ lr+
+ if(product(L[s](Z[nz-1]+0.01),s,0,n-1)&gt;0){"plus;"}else{"moins;"}+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){"valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+
+
+}
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+
+
+
+ }:;
+
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de signes du produit
+</span><span class="comment-delimiter">%% </span><span class="comment">de 2 facteurs affines
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTabSigna.cxx}
+TSa(a,b,c,d,nmr):={
+zA:=solve(a*x+b=0,x)[0];
+zB:=solve(c*x+d=0,x)[0];
+zmin:=min(zA,zB);
+zmax:=max(zA,zB);
+ Meta:= "
+ beginTableau("+nmr+")
+ newLigneVariables(btex <span class="font-latex-math">$ {x}$</span> etex);
+ val(btex <span class="font-latex-math">$-\\infty$</span> etex);val(btex <span class="font-latex-math">$"+latex(zmin)+"$</span> etex);
+val(btex <span class="font-latex-math">$"+latex(zmax)+"$</span>etex);
+val(btex <span class="font-latex-math">$+\\infty$</span> etex);
+ "+lsic+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+"}<span class="font-latex-math">$ etex);"
+ + if(a&gt;0){"moins;"}else{"plus;"}+
+ if(zmin==zA){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zA){si a&gt;0 alors "plus;"; sinon "moins;";fsi}
+ else{si a&gt;0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zA){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(a&gt;0){"plus;"}else{"moins;"}
+ +lsic+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+"}$</span> etex);"
+ + if(c&gt;0){"moins"}else{"plus"}+";"+
+ if(zmin==zB){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zB){si c&gt;0 alors "plus;"; sinon "moins;";fsi}
+ else{si c&gt;0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zB){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(c&gt;0){"plus;"}else{"moins;"}
+
+ +lsic+"{("+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+")("+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+")}}<span class="font-latex-math">$ etex);"
+ + si a*c&gt;0 alors plus; sinon moins;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c&gt;0 alors moins; sinon plus;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c&gt;0 alors plus; sinon moins;fsi+";"+"
+endTableau;
+"
+;
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,Meta);
+fclose(sortie);
+
+
+ }:;
+</span><span class="font-latex-sedate"><span class="keyword"><span class="font-latex-math">\end</span></span></span><span class="function-name"><span class="font-latex-math">{VerbatimOut}</span></span><span class="font-latex-math">
+
+
+
+
+
+
+%%$</span>
+<span class="comment-delimiter">%% </span><span class="comment">Code giac/Xcas pour les Tableaux de Signes d'expression ne contenant
+</span><span class="comment-delimiter">%% </span><span class="comment">qu'un seul terme
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTSc.cxx}
+
+TSc(g,D,F,trigo,nmr):={
+f:=unapply(g,x);
+mini:=D[0]; maxi:=D[1];lm:=" ";
+Z:=mini,maxi;
+S:=[];
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(f(x))),x);
+ns:=size(SS);
+for(j:=0;j&lt;ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))&lt;=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))&gt;=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(f(x),x);
+}
+
+
+
+
+
+if(size(S)==0 and size(F)==0){
+l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+li:=if(member(mini,F)!=0){"nonDefBarre;"}else{if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}}+
+if(mini!=-infinity or maxi!=+infinity){if(f((mini+maxi)*0.5&gt;0)){"plus;"}else{"moins;"}}else{if(f(0.3145274774464545777744)&gt;0){"plus;"}else{"moins;"}};
+lf:=if(member(maxi,F)!=0){"nonDefBarre;"}else{if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}};
+}else{
+if(size(S!=0)){pour j de 0 jusque size(S)-1 faire
+ if(S[j]&gt;mini and S[j]&lt;maxi){Z:=Z,simplify(S[j])};
+ fpour}
+
+Z:=concat([Z],F);
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" ";li:=" ";lr:=" ";
+if(nz==2){l0:="val(btex <span class="font-latex-math">$"+latex(D[0])+"$</span> etex);val(btex <span class="font-latex-math">$"+latex(D[1])+"$</span> etex);";
+li:=if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}}+
+if(f((mini+maxi)*0.5)&gt;0){"plus;"}else{"moins;"};
+lf:=if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+
+}else{
+l0:="val(btex <span class="font-latex-math">$"+latex(Z[0])+"$</span> etex);";li:=" ";
+pour m de 1 jusque nz-1 faire l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Z[m])+"$</span> etex);
+";
+fpour;
+
+
+li:= if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}
+ }
+
+lm:=if(nz&gt;2){for(r:=0; r&lt;nz-2;r++){lm:=lm+if(Z[r]==-infinity){
+if(f((Z[r+1]-1))&gt;0){"plus;"}else{"moins;"}
+}else{if(f((Z[r]+Z[r+1])*.5)&gt;0){"plus;"}else{"moins;"}}
++
+ if(member(Z[r+1],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}
+ }}else{" "};
+
+lf:=if(f(Z[nz-2]+0.1)&gt;0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+}
+};
+
+
+
+
+MetaLfc:="
+
+beginTableau("+nmr+")
+newLigneVariables(btex <span class="font-latex-math">$\\displaystyle {x}$</span> etex);
+ "+l0+lsic+latex(f(x))+"}<span class="font-latex-math">$ etex);"+
+ li+lm+lf
+ +"
+endTableau;
+
+"
+;
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+ }:;
+
+</span><span class="font-latex-sedate"><span class="keyword"><span class="font-latex-math">\end</span></span></span><span class="function-name"><span class="font-latex-math">{VerbatimOut}</span></span><span class="font-latex-math">
+
+
+
+
+
+
+
+%%$</span>
+
+
+
+
+
+
+<span class="comment-delimiter">%%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%% </span><span class="comment">Pour des tableaux de variations simples sans fonctions
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XcasTVS.cxx}
+TVS(La,Lo,F,nomf,nomv,nmr):={
+
+na:=size(La);
+f:=F;
+if(member(La[0],F)){f:=f[1..size(f)-1]};
+if(member(La[na-1],F)){f:=f[0..size(f)-2]};
+Z:=sort(concat(La,f));
+Zo:=sort([op(set[op(Z)])]);
+nz:=size(Z);
+nzo:=size(Zo);
+
+
+k0:= evalf(Lo[0])&gt; evalf(Lo[1]);
+kz:=evalf(Lo[nz-1])&gt; evalf(Lo[nz-2]);
+
+
+l0:=" newLigneVariables(btex <span class="font-latex-math">$"+nomv+"$</span> etex);";lp:=" "; lf:=" ";
+ for(m:=0;m&lt;=nzo-1;m++){l0:=l0+"val(btex <span class="font-latex-math">$"+latex(Zo[m])+"$</span> etex);"}
+
+li:=lvic+nomf+"}<span class="font-latex-math">$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $</span>"+latex(Lo[0])+"<span class="font-latex-math">$ etex,"}
+ else{"nonDefBarre;limDroite(btex $</span>"+latex(Lo[0])+"<span class="font-latex-math">$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz&gt;2){ for(r:=1; r&lt;=nz-2;r++){
+ krm:=evalf(Lo[r-1])&lt; evalf(Lo[r]);
+ krp:=evalf(Lo[r])&gt; evalf(Lo[r+1]) ;
+
+ lp:=lp+if(Z[r]==Z[r+1]){
+ "limGauche(btex$</span>"+latex(Lo[r])+"<span class="font-latex-math">$etex,"+
+ if(krm==1){"1);"}
+ else{"0);"}
+ }// fin if zr=zr+1
+ else{
+ if(Z[r]==Z[r-1]){
+ "nonDefBarre;limDroite(btex$</span>"+latex(Lo[r])+"<span class="font-latex-math">$etex,"+
+ if(krp==1){"1);"}
+ else{"0);"}
+ }//fin if zr=zr-1
+ else{
+ "valPos(btex $</span>"+latex(Lo[r])+"<span class="font-latex-math">$etex,"+
+ if(krp==1){"1);"}else{"0);"}
+}//fin else zr=zr-1
+}//fin else zr=zr+1
+}//fin for
+}//fin de if nz&gt;2
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $</span>"+latex(Lo[nz-1])+"<span class="font-latex-math">$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $</span>"+latex(Lo[nz-1])+"<span class="font-latex-math">$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+MetaLfc:=
+
+ if(nz&gt;2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}
+
+//return(MetaLfc);
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+}:;
+
+</span><span class="font-latex-sedate"><span class="keyword"><span class="font-latex-math">\end</span></span></span><span class="function-name"><span class="font-latex-math">{VerbatimOut}</span></span><span class="font-latex-math">
+
+%%$</span>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">traitement des fichiers produits par giac/xcas
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+<span class="comment-delimiter">% </span><span class="comment">pour l'&#233;chelle des tableaux taper </span><span class="font-latex-sedate"><span class="comment">\ech</span></span><span class="comment">{facteur de r&#233;duction}
+</span>
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\echelle</span>{1}
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\ech</span>[1]{<span class="font-latex-sedate"><span class="keyword">\renewcommand</span></span><span class="font-latex-sedate">\echelle</span>{#1}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\couleurtab</span>{black}
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="font-latex-sedate">\coultab</span>[1]{<span class="font-latex-sedate"><span class="keyword">\renewcommand</span></span><span class="font-latex-sedate">\couleurtab</span>{#1}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\dresse</span></span><span class="function-name">}</span>[2]{<span class="comment">%
+</span><span class="font-latex-sedate">\ifthenelse</span>{<span class="font-latex-sedate">\boolean</span>{xcas}}{<span class="comment">% Avec l'option "XCas present"
+</span> <span class="font-latex-sedate">\executGiacmp</span>{XCas#2.giac}<span class="comment">% reconstituer le tableau
+</span> <span class="comment">% exporter le source mp
+</span> <span class="comment">% puis lancer metapost pour creer
+</span> <span class="comment">% l'image du tableau
+</span> <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> enteteMP.cfg &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> def beginTableau(expr c) =<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> begingroup<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> charcode:=c;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> clearxy; clearit; clearpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> pickup defaultpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> drawoptions(withcolor(#1));<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> initTableau;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> enddef;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> queue.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost -jobname=<span class="font-latex-sedate">\nomtravail</span>_Tab <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ }<span class="comment">%
+</span> {<span class="comment">% sinon, si le tableau est absent, alerte.
+</span> <span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}{}{<span class="comment">%
+</span> <span class="font-latex-sedate">\PackageError</span>{tablor}{Tableau absent non
+ reconstituable.}{Pour compiler il faut, soit les fichiers de
+ tableaux, soit le fichier <span class="font-latex-sedate">\nomtravail</span>_Tab.mp, soit disposer de
+ XCas.}}}
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{center}</span>
+ <span class="font-latex-sedate">\includegraphics</span>[scale=<span class="font-latex-sedate">\echelle</span>]{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{center}</span>
+<span class="font-latex-sedate">\stepcounter</span>{TVn}
+}
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">traitement des fichiers produits par giac/xcas avec possibilite
+</span><span class="comment-delimiter">%% </span><span class="comment">de modifier le fichier metapost (environnement etoile))
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span>
+
+
+<span class="font-latex-sedate"><span class="keyword">\newcommand</span></span><span class="function-name">{</span><span class="font-latex-sedate"><span class="function-name">\dressetoile</span></span><span class="function-name">}</span>[2]{<span class="comment">%
+</span><span class="font-latex-sedate">\IfFileExists</span>{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}{<span class="comment">% Test sur l'existence du tableau
+</span><span class="comment-delimiter">% </span><span class="comment">Si oui, inclusion du fichier source de sauvegarde mp dans Tableaux
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> TSav-<span class="font-latex-sedate">\theTVn</span>.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}}
+<span class="comment-delimiter">% </span><span class="comment">Si non, lancement des operations de fabrication
+</span>{<span class="font-latex-sedate">\executGiacmp</span>{XCas#2.giac}<span class="comment">%
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\editeur</span> XCasmpfc.mp }
+
+ <span class="comment">% Modification avec l'editeur choisi
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cp</span> XCasmpfc.mp TSav-<span class="font-latex-sedate">\theTVn</span>.mp} <span class="comment">% Sauvegarde du
+</span> <span class="comment">% source mp sur le disque pour une
+</span> <span class="comment">% inclusion ulterieure dans Tableaux.mp.
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> enteteMP.cfg &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> def beginTableau(expr c) =<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> begingroup<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> charcode:=c;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> clearxy; clearit; clearpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> pickup defaultpen;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> drawoptions(withcolor(#1));<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> initTableau;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+ <span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\echod</span> enddef;<span class="font-latex-sedate">\echof</span> &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> XCasmpfc.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}} <span class="comment">% Inclusion du
+</span> <span class="comment">% source dans le
+</span> <span class="comment">% fichier
+</span> <span class="comment">% Tableaux
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> queue.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{mpost -jobname=<span class="font-latex-sedate">\nomtravail</span>_Tab <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}<span class="comment">% Reconstitution des tableaux
+</span> <span class="comment">% et creation du dernier. L'option
+</span> <span class="comment">% pallie l'absence de end en fin de
+</span> <span class="comment">% fichier
+</span><span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\rem</span> <span class="font-latex-sedate">\nomtravail</span>_Tab#2.mp}
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{center}</span>
+ <span class="font-latex-sedate">\includegraphics</span>[scale=<span class="font-latex-sedate">\echelle</span>]{<span class="font-latex-sedate">\nomtravail</span>_Tab.<span class="font-latex-sedate">\theTVn</span>}
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{center}</span>
+<span class="font-latex-sedate">\ech</span>{1}
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVnbis</span></span><span class="variable-name">}</span> <span class="comment">% Restauration du compteur TVn
+</span>}
+
+
+
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span><span class="comment-delimiter">%%% </span><span class="comment">les "giac" qui permettent d'executer la commande rentree dans le fichier tex
+</span><span class="comment-delimiter">%%% </span><span class="comment">suivis des environnements qui permettront la saisie du code giac/xcas
+</span><span class="comment-delimiter">%%% </span><span class="comment">Les versions etoilees permettent de modifier le code metapost produit initialement
+</span><span class="comment-delimiter">%%%</span><span class="comment">
+</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasa.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSigna.cxx");
+read("XCasa.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSa}</span>
+{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasa.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+ <span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{a}
+}
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasQ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignQ.cxx");
+read("XCasQ.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSq}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasQ.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{Q}}
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSq*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasQ.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{Q}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasL.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignL.cxx");
+read("XCasL.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TS}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasL.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{L}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TS*}</span>[1]
+{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasL.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{L}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTSc.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTSc.cxx");
+read("XCasTSc.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSc*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTSc.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TSc}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TSc}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTSc.user}}
+{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TSc}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTV.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTV.cxx");
+read("XCasTV.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TV}</span>{<span class="comment">%
+</span><span class="font-latex-sedate">\VerbatimEnvironment</span>
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTV.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TV}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TV*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTV.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TV}}
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVP.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVP.cxx");
+read("XCasTVP.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVP}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVP.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVP}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVP*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVP.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVP}}
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVZ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVZ.cxx");
+read("XCasTVZ.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVZ}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVZ.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVZ}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVZ*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVZ.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVZ}}
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVapp.cxx");
+read("XCasTVapp.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVapp}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVapp}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVapp*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVapp}}
+
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVI.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVI.cxx");
+read("XCasTVI.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVI}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVI.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVI}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVI*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVI.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVI}}
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVIex.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIex.cxx");
+read("XCasTVIex.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIex}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIex.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIex}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIex*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIex.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIex}}
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVIapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIapp.cxx");
+read("XCasTVIapp.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIapp}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIapp}}
+
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVIapp*}</span>[1]<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVIapp.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVIapp}}
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVPC.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVPC.cxx");
+read("XCasTVPC.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVPC}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVPC.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVPC}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVPC*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVPC.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVPC}}
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>{XCasTVS.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVS.cxx");
+read("XCasTVS.user");
+<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVS}</span><span class="comment">%
+</span>{<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVS.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span>
+<span class="font-latex-sedate">\dresse</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVS}}
+
+<span class="font-latex-sedate"><span class="keyword">\newenvironment</span></span><span class="function-name">{TVS*}</span>[1]{<span class="comment">%
+</span><span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVnbis}{</span><span class="font-latex-sedate"><span class="variable-name">\theTVn</span></span><span class="variable-name">}</span>
+<span class="font-latex-sedate"><span class="keyword">\setcounter</span></span><span class="variable-name">{TVn}{#1}</span>
+<span class="font-latex-sedate">\VerbatimEnvironment</span><span class="font-latex-sedate"><span class="keyword">\begin</span></span><span class="function-name">{VerbatimOut}</span>[commandchars=<span class="font-latex-warning">\\</span>??]{XCasTVS.user}}<span class="comment">%
+</span>{<span class="font-latex-sedate"><span class="keyword">\end</span></span><span class="function-name">{VerbatimOut}</span><span class="font-latex-sedate">\dressetoile</span>{<span class="font-latex-sedate">\couleurtab</span>}{TVS}}
+
+
+
+
+
+
+
+
+
+
+<span class="comment-delimiter">%% </span><span class="comment">pour nettoyer les fichiers auxiliaires
+</span>
+<span class="font-latex-sedate">\AtEndDocument</span>{<span class="font-latex-sedate">\immediate</span><span class="font-latex-sedate">\write</span>18{<span class="font-latex-sedate">\cat</span> queue.mp &gt;&gt; <span class="font-latex-sedate">\nomtravail</span>_Tab.mp}
+ }
+
+
+
+
+<span class="comment-delimiter">%%</span><span class="comment">
+</span><span class="comment-delimiter">%% </span><span class="comment">Zi end -&gt; enjoy :)
+</span></pre>
+ </body>
+</html>
diff --git a/macros/latex/contrib/tablor/tablor.pdf b/macros/latex/contrib/tablor/tablor.pdf
new file mode 100644
index 0000000000..4577546d55
--- /dev/null
+++ b/macros/latex/contrib/tablor/tablor.pdf
Binary files differ
diff --git a/macros/latex/contrib/tablor/tablor.sty b/macros/latex/contrib/tablor/tablor.sty
new file mode 100644
index 0000000000..7a1dc82fe4
--- /dev/null
+++ b/macros/latex/contrib/tablor/tablor.sty
@@ -0,0 +1,3245 @@
+% Last modified: <tablor.sty modifi par Guillaume CONNAN le dimanche 6 octobre 2013 14h 46min 18s>
+
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{tablor}[06/10/2013 v4.07g la machine a creer des tableaux de signes et variations]
+
+% \copyleft Connan le Barbare (aka Guillaume Connan) \copyright
+% This work may be distributed and/or mofified under the conditions
+% or the LaTeX Project Public Licence, either v1.3 or (at your option)
+% any later version. The latest version is in
+% http://www.latex-project.org/lppl/
+% This work consists of the files tablor.sty, tablor-xetex.sty, tablor.cfg, tablor.tex,
+% tablor.pdf and tablor.html
+
+
+%% Cree 16 environnements :
+%% tableau de signes de 2 facteurs affines
+% \begin{TSa}
+% TSa(-2,3,-1,5,\tv);
+% \end{TSa}
+% %%%%%% Pour des tableaux de plus de 2 facteurs
+%
+% \begin{TS}
+% TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[a,b],n,\tv);
+% \end{TS}
+%
+% pour les tableaux de signes avec quotient
+%\begin{TSq}
+%TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[a,b],n,\tv)
+%%\end{TSq}
+% un tableau de variation :
+%
+% pour les tableaux de signes une seule ligne
+% \begin{TSc}
+% TSc((x+10)/((x-5)*(x-2)),[-10,5],[2,5],n,0)
+% \end{TSc}
+%
+%
+% \begin{TV}
+% TV([0,+infinity],[0],"h","x",ln(x)-(ln(x))^2,1,n,\tv)
+% \end{TV}
+%
+% tableau de variation avec liste de valeurs
+% \begin{TVS}
+% TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",\tv)
+% \end{TVS}
+%
+%
+% tableau de variation avec zones interdites
+%
+% \begin{TVZ}
+% TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",sqrt(x^2-1),1,n,\tv)
+% \end{TVZ}
+%
+%
+% tableau avec valeurs intermediares
+%\begin{TVI}
+%TVI([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,\tv)
+%\end{TVI}
+%%%
+% tableau avec valeurs intermediares et racines exactes
+%\begin{TVIex}
+%TVIex([-1,+infinity],[-1],"f","x",x2/sqrt(x+1)-1,1,2,n,\tv)
+%\end{TVIex}
+%%%
+%
+%
+% tableau de variations avec f' sans zero formel
+%\begin{TVapp}
+% TVapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,\tv)
+% \end{TVapp}
+%
+%
+% tableau de variations avec f' sans zero formel
+%\begin{TVIapp}
+% TVIapp([0,+infinity],[0],"g","x",ln(x)-x*exp(2-x),1,0,\tv)
+% \end{TVIapp}
+%
+%
+%%%
+% et leurs pendants etoiles qui permettent l'affichage intermediaire du
+% fichier metapost pour le modifier
+%
+%
+% Courbes parametrees
+% \begin{TVP}
+% TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,\tv)
+% \end{TVP}
+%
+%
+% \begin{TVP}
+% TVP([0,pi/2],[[],[]],["x","y"],"t",[2*cos(t),sin(2*t)],1,t,\tv)
+% \end{TVP}
+% %
+
+% Fonctions prolongeables par continuit
+% TVP([intervalles d'tude],[valeurs prolongeables],[valeurs interdites pour f'],"g","t",e^(-1/x^2),1,n,\tv);
+
+
+% \begin{TVPC}
+% TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,\tv);
+% \end{TVPC}
+
+
+
+
+
+%% extensions requises
+%% Il faudra rajouter dans le preambule \usepackage{graphicx} si vous
+%% ne l'avez pas de base
+
+
+\RequirePackage{filecontents}
+\RequirePackage{ifthen}
+\RequirePackage{fancyvrb}
+\RequirePackage{ifpdf}
+
+\fvset{gobble=0}
+
+% option xcas present
+
+
+\newboolean{xcas}\setboolean{xcas}{false}
+\DeclareOption{xcas}{\setboolean{xcas}{true}}
+
+%% Initialisation du choix d'OS
+\newboolean{windows}\setboolean{windows}{false}
+\DeclareOption{windows}{\setboolean{windows}{true}}
+
+\ProcessOptions\relax
+
+
+
+%% on configure tablor dans un fichier exterieur pour la plateforme
+%% et l'editeur
+
+\IfFileExists{tablor.cfg}{\input{tablor.cfg}}%\typeout{pas de fichier tablor.cfg}}
+
+
+%% Definit des commandes disque selon l'OS utilise
+\ifthenelse{\boolean{windows}}%
+ {\newcommand{\rem}{DEL } \newcommand{\cat}{TYPE }
+ \newcommand{\cp}{COPY } \newcommand{\echod}{ECHO }
+ \newcommand{\echof}{ }}%
+ {\newcommand{\rem}{rm }\newcommand{\cat}{cat }
+ \newcommand{\cp}{cp } \newcommand{\echod}{echo "}
+ \newcommand{\echof}{"}}
+
+
+
+
+
+
+
+%% pour ceux compilant via pdflatex
+
+\ifpdf
+\DeclareGraphicsRule{*}{mps}{*}{}
+\fi
+
+%% pour nettoyer les fichiers auxiliaires
+
+\AtEndDocument{\immediate\write18{\rem *.user XCas* Xcas* *.mpx}
+ }
+
+
+
+
+%% Pour clore les fichiers metapost
+
+
+ \begin{VerbatimOut}{queue.mp}
+
+ end
+
+ \end{VerbatimOut}
+
+
+
+%% Nettoie les fichiers log dont le nom depend du choix de l'utilisateur
+%% Par defaut, c'est le nom du fichier tex courant (\jobname)
+%% Clt le fichier metapost contenant le recapitulatif de tous les tableaux
+
+
+
+\newcommand{\nettoyer}[1][\jobname]%
+{\immediate\write18{\rem #1.Tab.log queue.mp enteteMP.cfg session.tex config.cxx}
+}
+
+
+
+
+%% Donne comme prefixe aux tableaux le prefixe courant
+%% Peut-tre modifie par \initablor
+
+\newcommand{\nomtravail}{\jobname}
+
+%% initialise les compteurs
+
+\newcounter{TVn}
+\newcommand{\tv}{\theTVn}
+
+\newcounter{TVnbis}
+\newcommand{\tvbis}{\theTVnbis}
+
+
+
+%% permet de donner un prefixe aux tableaux produits (\jobname par defaut)
+%% effectue quelques verifications :
+
+
+\newcommand{\initablor}[1][\jobname]{%
+\renewcommand{\nomtravail}{#1}% Arret du nom des tableaux
+\setcounter{TVn}{0}% Initialisation du compteur de tableaux.
+\ifthenelse{\boolean{xcas}}% Avec l'option XCas
+{\IfFileExists{\nomtravail_Tab.mp}% Si Tableaux.mp est present...
+ {\immediate\write18{\rem \nomtravail_Tab.mp}}% le detruire
+ {}%
+ \immediate\write18{\cp enteteMP.cfg \nomtravail_Tab.mp}% Reconstituer l'entte de Tableaux.mp
+}
+{\IfFileExists{\nomtravail_Tab.mp}% Sans l'option XCas, si
+ % Tableaux.mp existe
+{\immediate\write18{mpost -interaction=batchmode \nomtravail_Tab}}% l'executer pour reconstituer les figures
+{\PackageWarning{tablor}{Pas de source metapost pour creer les tableaux.}}% sinon message d'erreur
+ % (mais pas d'arret car les tableaux
+ % peuvent tre presents )
+}}%
+
+
+
+%% commande pour lancer giac selon l'OS
+
+\makeatletter
+\newcommand{\executGiacmp}[1]{%
+\ifthenelse{\boolean{windows}}%
+{\immediate\write18{giac #1 }}%
+{\immediate\write18{giac <#1 }}}
+\makeatother
+
+
+
+
+%%%
+%
+%%% LES SCRIPTS GIAC/XCAS
+%
+%%%
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de Variations
+%%
+
+
+\begin{VerbatimOut}{XcasTV.cxx}
+TV(L,F,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic+nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex
+ $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$
+ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+
+
+%%%%
+
+
+%
+%
+% TVPC : pour les fonctions prolongeables par continuit.
+%%
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTVPC.cxx}
+TVPC(L,F,FP,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+Z:=concat(Z,FP);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],FP)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.1))>0;
+ lsp:=lsp+if(member(Z[r],FP)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],FP)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic+nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "valPos(btex
+ $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$
+ etex,"+if(krm==1){"1);"}else{"0);"} }
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+
+
+
+
+
+%%
+%%
+%% TV avec une zone interdite : on rajoute comme argument la liste des intervalles interdits
+%% par exemple, pour sqrt(x^2-1) : TVZ([-infinity,100],[],[[-1,1]],"f","x",sqrt(x^2-1),1,1)
+%%
+
+\begin{VerbatimOut}{XcasTVZ.cxx}
+
+
+TVZ(L,F,FF,nom,nomv,f,ftt,trigo,nmr):={
+nl:=size(L);
+nf:=size(FF);
+ Ff:=NULL;IMIN:=NULL;IMAX:=NULL;
+for(k:=0;k<nf;k++){
+if(FF[k][0]>L[0]){Imin[k]:=FF[k][0];LL:=L}else{Imin[k]:=L[0];LL:=[L[1]]};
+if(FF[k][1]<L[1]){Imax[k]:=FF[k][1];LL:=L}else{Imax[k]:=L[1];LL:=[L[0]]};
+ Ff:=Ff,[Imin[k],Imax[k]];
+ IMIN:=IMIN,Imin[k];
+ IMAX:=IMAX,Imax[k];
+ }
+ FF:=[Ff];
+ IMIN:=[IMIN];
+ IMAX:=[IMAX];
+ f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(LL,F);
+
+for(k:=0;k<nf;k++){
+Z:=concat(Z,FF[k]);
+}
+
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ for(k:=0;k<nf;k++){
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ kK:=(evalf(S[j])<evalf(Imin[k])) or (evalf(S[j])>evalf(Imax[k]));
+ Kk:=(kk) and kK;
+ if(Kk==1){Z:=append(Z,simplify(S[j]))};
+ }
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+for(j:=0;j<nf;j++){
+ for(k:=1;k<nz;k++){
+ if ((Z[k]>Imin[j])and(Z[k]<Imax[j])){Z:=augment(Z[0..k-1],Z[k+1..nz-1]);nz:=nz-1;
+ }
+ }
+}
+nz:=size(Z);
+
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+if(member(Z[0],IMIN)!=0){if((member(Z[0],F)==0) and (fp(Z[0])!=undef)){"debutNonDef;"}else{"debutNonDefStrict;"}}else{if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}}
+
+
+
+// modif 3 avril 2010
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){
+ lsp:=lsp+
+ if(member(Z[r],IMIN)!=0){
+ if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"debutNonDef;"}
+ else{"debutNonDefStrict;"}}
+ else{if(member(Z[r],IMAX)!=0){if((member(Z[r],F)==0) and (fp(Z[r])!=undef)){"finNonDef;"}
+ else{"finNonDefStrict;"}+
+ if(evalf(fp(Z[r]+0.01))>0){"plus;"}
+ else{"moins;"}}
+ else{if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}
+ else{"nonDefBarre;"}+
+ if(evalf(fp(Z[r]+0.01))>0){"plus;"}
+ else{"moins;"}
+ }}
+ }};
+
+// fin modif
+
+
+
+
+
+lsf:=if(member(Z[nz-1],IMAX)!=0){if((member(Z[nz-1],F)==0) and (fp(Z[nz-1])!=undef)){"finNonDef;"}else{"finNonDefStrict;"}}else{if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}}
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic +nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+if(nz>2){
+ for(r:=1; r<=nz-2;r++){
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+
+ lp:=lp+if(member(Z[r],IMIN)!=0){"limGauche(btex $"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x,Z[r],-1)))}
+ +"$ etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +if(member(Z[r],F)==0){"debutNonDef;"}else{"debutNonDefStrict;"}
+ }//fsi Zr=Imin
+ else{
+ if (member(Z[r],IMAX)!=0){if(member(Z[r],F)==0){"finNonDef;"}else{"finNonDefStrict;"}+"limDroite(btex $"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}
+ +"$ etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }else{
+ if(member(Z[r],F)){
+ "limGauche(btex $"+if(lmrm==1){
+ "-\\infty"}else{
+ latex(simplify(limit(f(x),x,Z[r],-1)))}
+ +"$ etex,"+if(krm==1){
+ "1);"}else{"0);"}
+ +"nonDefBarre;limDroite(btex $"+if(lmrp==1){
+ "-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}
+ +"$ etex,"+if(krp==1){
+ "1);"}else{"0);"}
+ }//fsi (member Zr F)
+ else{"valPos(btex$"+latex(simplify(f(Z[r])))+"$etex,"+
+ if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){
+ "0.5);"}else{
+ if(krp==1){
+ "1);"}else{"0);"}//felse(krp)
+ }//felse(valpos)
+ }//felse(member Zr F)
+ } //felse(Zr=Imax)
+ }//felse(Zr=Imin)
+ };//ffor
+ }//fsi nz
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }
+:;
+
+
+\end{VerbatimOut}
+
+
+%%
+%%
+%% Quand les solutions formelles de f'(x)=0 ne sont pas calculables
+%%
+
+
+
+\begin{VerbatimOut}{XcasTVapp.cxx}
+
+
+TVapp(L,F,nom,nomv,f,ftt,nmr):={
+local nl,fp,z0,z,nz,S,k,j,m,kk,kok,Z,l0,lp,lf,lsp,k0,kz,lsi,r,ksp,lsf,lm0,li,krm,krp,lmrm,lmrp,lnz;
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+S:=NULL;
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j<size(z);j++){
+ if(z[j]!=undef and (abs(z[j])>1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j<nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(sign(evalf(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp(Z[0]+10^(-5))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp((Z[0]+10^(-5)))))==1.0){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp(Z[r]+0.01))>0;
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf:=if(member(Z[nz-1],F)==0){""}else{"nonDefBarre;
+"}
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+ li:=lvic+nom+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(sign(evalf(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}}
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+
+
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de Variations avec
+%% Valeurs intermediaires
+%%
+
+
+
+
+
+\begin{VerbatimOut}{XcasTVI.cxx}
+
+
+TVI(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+Z:=sort([op(set[op(Z)])]);
+
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz>2){ for(r:=1;
+ r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz>2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k<nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
+l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"};
+//chgmt NL->nz
+if(NL>nz){for(k:=0;k<NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1.0){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(evalf(sign(fp((Z[0]+10^(-3)))))==1.0){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(evalf(sign(fp(10^(-3)+Z[0])))==1.0){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$
+ $ etex);"+
+if(evalf(sign(fp(10^(-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+
+if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))>0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $ $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $ $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$ etex);
+"+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "};
+
+
+ if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ $ "+ao+" $ etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[rr-1],1))< evalf(limit(f(x),x,Z[rr],-1));
+ krp:=evalf(limit(f(x),x,Z[rr],1))> evalf(limit(f(x),x,Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[rr],-1)==-infinity;lmrp:=limit(f(x),x,Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ $ "+ao+" $ etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz<NL
+}// else nz<NL
+//if nz=NL
+};//if nz>2
+
+
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+\end{VerbatimOut}
+
+
+
+%%
+%
+%
+%
+% Pour avoir les racines sous forme exacte.... quand c'est possible !
+%
+%
+%
+%%%%%%%%%
+
+
+\begin{VerbatimOut}{XcasTVIex.cxx}
+
+
+
+TVIex(L,F,nom,nomv,f,ftt,ao,trigo,nmr):={
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+Z:=concat(L,F);
+S:=[];
+
+Sex:=NULL;
+Zex:=solve(f(x)=ao);
+Zex:=sort(Zex);
+for(j:=0;j<size(Zex);j++){
+if((evalf(Zex[j])>=evalf(L[0])) and (evalf(Zex[j])<=evalf(L[nl-1]))){Sex:=Sex,Zex[j]};
+};
+Sex:=[Sex];
+
+
+
+
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(fp(x))),x);
+ns:=size(SS);
+for(k:=0;k<ns;k++){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+}
+}
+}else{
+S:=solve(factor(simplify(fp(x))),x);
+}
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){Z:=append(Z,simplify(S[j]))};
+ fpour
+ fsi;
+
+
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz>2){ for(r:=1;
+ r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz>2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=0;
+kk:=0;
+
+
+
+if(NL==nz){for(k:=0;k<nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $"+latex(simplify(Sex[aa]))+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
+l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"};
+//chgmt NL->nz
+if(NL>nz){for(k:=0;k<NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $"+latex(simplify(Sex[aa]))+"$ etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^(-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^(-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$
+ $ etex);"+
+if(evalf(sign(fp(10^(-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+
+if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))>0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $ $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $ $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$ etex);
+"+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "};
+
+
+ if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ $ "+ao+" $ etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[rr-1],1))< evalf(limit(f(x),x,Z[rr],-1));
+ krp:=evalf(limit(f(x),x,Z[rr],1))> evalf(limit(f(x),x,Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[rr],-1)==-infinity;lmrp:=limit(f(x),x,Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ $ "+ao+" $ etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz<NL
+}// else nz<NL
+//if nz=NL
+};//if nz>2
+
+
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+%%
+%%
+%% Quand les solutions de f'(x)=0 ne sont pas formellement calculables
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTVIapp.cxx}
+
+TVIapp(L,F,nom,nomv,f,ftt,ao,nmr):={
+
+
+nl:=size(L);
+f:=unapply(f,x);
+fp:=function_diff(f);
+z0:=concat(L,F);z:=sort(z0);
+nz:=size(z);
+
+
+
+
+
+
+
+S:=op(fsolve(fp(x),x));
+
+
+
+
+if(L==[-infinity,+infinity]){j:=[seq(-50+2*k,k=0..50)]minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[0]==-infinity){j:=[seq(2*k,k=-25..0.5*floor(L[1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for}
+else{if(L[1]==+infinity){
+j:=[seq(2*k,k=floor(0.5*L[0])..0.5*50)] minus F;
+ for k in j do for(m:=-5;m<=5;m++){ S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for
+}
+else{ j:=[seq(2*k,k=0.5*floor(z[0])..0.5*floor(z[nz-1]))] minus F;
+ for k in j do for(m:=-5;m<=5;m++){S:=S,resoudre_numerique(fp(y),y,k+m*0.1,k+(m+1)*0.1,bisection_solver)};end_for }
+ }};
+
+
+
+
+
+
+
+
+
+
+
+
+
+si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ kk:=(re(S[j])==S[j]);kok:=(evalf(S[j])>=L[0]) and (evalf(S[j])<=L[1]);
+ if(kk==1){if(kok==1){z:=append(z,simplify(S[j]))}};
+ fpour;
+fsi;
+
+
+S:=NULL;
+S:=S,z[0];
+for(j:=1;j<size(z);j++){
+ if(z[j]!=undef and (abs(z[j])>1e-15 or z[j]==0)){
+ S:=S,z[j]};
+}
+z:=[S];
+
+
+
+Z:=sort(z);
+nz:=size(Z);
+
+S:=NULL;
+S:=S,Z[0];
+for(j:=1;j<nz;j++){
+ if(Z[j]!=S[size(S)-1]){
+ S:=S,Z[j]};
+}
+Z:=[S];
+
+
+nz:=size(Z);
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";lsp:=" ";
+
+
+
+LI:=limit(f(x),x,Z[0],1);
+LF:=limit(f(x),x,Z[nz-1],-1);
+LP:=NULL;
+PB:=1;
+if(nz>2){ for(r:=1;
+ r<=nz-2;r++){LP:=LP,if(member(Z[r],F)){limit(f(x),x,Z[r],-1),limit(f(x),x,Z[r],1)}else{f(Z[r])};
+if(member(Z[r],F)){PB:=PB,0,1}else{PB:=PB,1};
+}
+};
+if(nz>2){ LL:=[LI,LP,LF]; PB:=[PB,1]}else{LL:=[LI,LF];PB:=[1,1]};
+
+NL:=size(LL);
+A:=NULL;aa:=1;
+kk:=0;
+
+
+if(NL==nz){for(k:=0;k<nz-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+if(TestS==0){A:=A,aa;l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;}else{l0:=l0+"val(btex $"+latex(Z[k])+"$ etex);"}}
+l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"};
+//chgmt NL->nz
+if(NL>nz){for(k:=0;k<NL-1;k++){TestS:=(evalf(sign(LL[k]-ao))==evalf(sign(LL[k+1]-ao))) or (evalf(sign(LL[k]-ao))==0.0)or (evalf(sign(LL[k+1]-ao))==0.0);
+
+if(PB[k]==1){if(TestS==0){
+ A:=A,aa;l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);"+"val(btex $\\alpha_"+aa+"$ etex);";aa:=aa+1;kk:=kk+1}
+else{l0:=l0+"val(btex $"+latex(Z[kk])+"$ etex);";kk:=kk+1}};
+}
+
+ l0:=l0+"val(btex $"+latex(Z[nz-1])+"$ etex);"
+
+ };
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+ k0:= evalf(limit(f(x),x,Z[0],1))> evalf(limit(f(x),x,Z[1],-1));
+ kz:=evalf(limit(f(x),x,Z[nz-1],-1))> evalf(limit(f(x),x,Z[nz-2],1));
+
+lsi:=lsic+nom+"'("+nomv+")}$ etex);"+
+ if(Z[0]==-infinity){if(evalf(sign(fp(if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F)==0){
+ if(fp(Z[0])==0){"valBarre(btex 0 etex);"}else{" "}+
+ if(sign(fp((Z[0]+10^(-3))))==1){"plus;"}else{"moins;"}}else{"nonDefBarre;"+
+ if(sign(fp(10^(-3)+Z[0]))==1){"plus;"}else{"moins;"} }}+if(TestS==0){"valBarre(btex$
+ $ etex);"+
+
+if(evalf(sign(fp(10^(-3)+ifte(Z[0]==-infinity,ifte(Z[1]==+infinity,ifte(member(0,F)==0,0,0.01),ifte(member(Z[1]-1,F)==0,Z[1]-1,Z[1]-1.1)),Z[0]))))==1.0){"plus;"}else{"moins;"}}else{" "};
+
+
+
+if(nz>2){rr:=1; if(nz==NL){for(r:=1; r<=NL-2;r++){ TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ ksp:=evalf(fp(Z[r]+0.01))>0;
+ TestL:=(abs(LL[r])==abs(LL[r+1]));
+ lsp:=lsp+if(member(Z[r],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}+if(TestS==0){"valBarre(btex $ $ etex);"}else{" "}+if(TestS==0){if(ksp==1){"plus;"}else{"moins;"}}else{" "};
+ }}
+else{for(r:=1; r<=NL-2;r++){kspp:=evalf(fp(Z[rr]+0.01))>0;TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+
+ if(PB[r]==1){if(TestS==0){lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"}+"valBarre(btex $ $ etex);"+if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+ else{lsp:=lsp+if(member(Z[rr],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}+
+ if(kspp==1){"plus;"}else{"moins;"};rr:=rr+1;}
+}}}};
+
+
+
+
+ lsf:=if(member(Z[nz-1],F)==0){" "}else{"nonDefBarre;"}
+
+
+
+lm0:=limit(f(x),x,Z[0],1)==-infinity;
+
+
+
+
+TestS:=(evalf(sign(LL[0]-ao))==evalf(sign(LL[1]-ao))) or (evalf(sign(LL[0]-ao))==0.0) or (evalf(sign(LL[1]-ao))==0.0);
+
+ li:=lvic+nom+"}$ etex);
+"+ if(member(Z[0],F)==0){"valPos(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[0],1)))}+"$ etex,"}+
+ if(k0==1){"1);"}else{"0);"}+if(TestS==0){"valPos(btex $ "+ao+" $ etex,0.5);"}else{" "};
+
+
+ if(nz>2){if(nz==NL){for(r:=1; r<=nz-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[r-1],1))< evalf(limit(f(x),x,Z[r],-1));
+ krp:=evalf(limit(f(x),x,Z[r],1))> evalf(limit(f(x),x,Z[r+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[r],-1)==-infinity;lmrp:=limit(f(x),x,Z[r],1)==-infinity;
+ lp:=lp+if(member(Z[r],F)) {
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[r],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[r])))+"$
+ etex,"+if(evalf(sign(fp(Z[r]-0.01)))==sign(fp(Z[r]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+if(TestS==0){"valPos(btex
+ $ "+ao+" $ etex,0.5);"
+ }else{" "};
+};//for
+}else{rr:=1;for(r:=1; r<=NL-2;r++){TestS:=(evalf(sign(LL[r]-ao))==evalf(sign(LL[r+1]-ao))) or (evalf(sign(LL[r]-ao))==0.0)or (evalf(sign(LL[r+1]-ao))==0.0);
+ krm:=evalf(limit(f(x),x,Z[rr-1],1))< evalf(limit(f(x),x,Z[rr],-1));
+ krp:=evalf(limit(f(x),x,Z[rr],1))> evalf(limit(f(x),x,Z[rr+1],-1)) ;
+ lmrm:=limit(f(x),x,Z[rr],-1)==-infinity;lmrp:=limit(f(x),x,Z[rr],1)==-infinity; TestL:=(abs(LL[r])==abs(LL[r+1]));
+
+if(PB[r]==1){if(TestS==0){lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);"}}}+"valPos(btex
+ $ "+ao+" $ etex,0.5);
+ ";rr:=rr+1;
+}// testS==0
+else{lp:=lp+if(member(Z[rr],F)){
+ "limGauche(btex $"+if(lmrm==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],-1)))}+"$ etex,"+if(krm==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[rr],1)))}+"$ etex,"+if(krp==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f(Z[rr])))+"$
+ etex,"+if(evalf(sign(fp(Z[rr]-0.01)))==sign(fp(Z[rr]+0.01))){"0.5);"}else{if(krp==1){"1);"}else{"0);
+ "}}};rr:=rr+1;
+}//else testS==0
+}//PB[r]==1
+}//for nz<NL
+}// else nz<NL
+//if nz=NL
+};//if nz>2
+
+
+
+lnz:=limit(f(x),x,Z[nz-1],-1)==-infinity;
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz==1){"-\\infty"}else{latex(simplify(limit(f(x),x,Z[nz-1],-1)))}+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+
+MetaLfc:= if(ftt==2){if(nz>2){"beginTableau("+nmr+")"+
+ l0+lsi+lsp+lsf+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+"
+endTableau;
+
+";
+}
+}else{
+if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi+lsp+lsf+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi+lsf+
+li+
+lf
++"
+endTableau;
+
+";}
+}};
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+ }:;
+
+
+
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de variations de courbes parametrees
+%%
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XcasTVP.cxx}
+TVP(L,F,nom,nomv,ff,ftt,trigo,nmr):={
+
+nl:=size(L);
+fp:=[];
+S:=[];
+f:=[unapply(ff[0],t),unapply(ff[1],t)];
+fp:=[function_diff(f[0]),function_diff(f[1])];
+Z:=[];
+LLL:=[];
+
+
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+
+for(d:=0;d<=1;d++){
+LLL:=concat(L,F[d]);
+Z:=LLL union Z;
+SS:=solve(factor(simplify(fp[d](t))),t);
+ns:=size(SS);
+
+
+for(k:=0;k<ns;k++){
+if(trigo==t){
+m:=0;
+while(evalf(simplify(subst(SS[k],n_1=m)))<=evalf(L[nl-1])){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m+1;
+
+};m:=-1;
+while(evalf(subst(SS[k],n_1=m))>=L[0]){
+
+S:=concat(S,simplify(subst(SS[k],n_1=m)));m:=m-1;
+
+}
+}else{
+S:=concat(S,SS);
+}
+}
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ qq:=member(simplify(S[j]),Z)==0;
+ kk:=(evalf(S[j])>=evalf(L[0])) and (evalf(S[j])<=evalf(L[nl-1]));
+ if(kk==1){if(qq==1){Z:=append(Z,simplify(S[j]))}};
+ fpour
+ fsi;
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ tantque evalf(Z[0])==evalf(Z[1]) faire Z:=Z[1..nz-1];nz:=size(Z);
+ ftantque;
+
+
+
+
+nz:=size(Z);
+u:=1;
+ tantque (u<nz-2) and (nz>2) faire
+ tantque evalf(Z[u])==evalf(Z[u+1]) faire
+ Z:=augment(Z[0..u-1],Z[u+1..nz-1]);nz:=size(Z);
+ ftantque;
+ u:=u+1;
+ ftantque;
+
+
+ };
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+
+ l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:="",""; lf:="","";lsp:="","";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+
+ lsi:="","";
+
+FFF:=[[],[]];
+
+for(d:=0;d<=1;d++){
+FFF[d]:=concat(F[d],[-infinity,+infinity]);
+ k0:= evalf(limit(f[d](x),x=Z[0],1))> evalf(limit(f[d](x),x=Z[1],-1));
+ kz:=evalf(limit(f[d](x),x=Z[nz-1],-1))> evalf(limit(f[d](x),x=Z[nz-2],1));
+//}
+//$
+ lsi[d]:=lsic+nom[d]+"'("+nomv+")}$ etex);"+if(member(Z[0],FFF[d])==0){"valBarre(btex $"+latex(simplify(fp[d](Z[0])))+"$ etex);"}else{if(Z[0]==-infinity){" "}else{"nonDefBarre;
+"}}+
+ if(Z[0]==-infinity){if(sign(evalf(fp[d](if(Z[1]==+infinity){0}else{Z[1]-10^(-5)})))==1){"plus;"}else{"moins;"}}else{if(member(Z[0],F[d])==0){
+ if(sign(fp[d](Z[0]+10^(-5)))==1){"plus;"}else{"moins;"}}else{
+ if(sign(fp[d]((Z[0]+10^(-5))))==1){"plus;"}else{"moins;"} }}
+
+if(nz>2){ for(r:=1; r<=nz-2;r++){ ksp:=evalf(fp[d](Z[r]+0.01))>0;
+ lsp[d]:=lsp[d]+if(member(Z[r],F[d])==0){"valBarre(btex $"+latex(simplify(fp[d](Z[r])))+"$ etex);"}else{"nonDefBarre;"}+
+ if(ksp==1){"plus;"}else{"moins;"}
+ }; }
+
+lsf[d]:=if(member(Z[nz-1],FFF[d])==0){"valBarre(btex $"+latex(simplify(fp[d](Z[nz-1])))+"$ etex);"}else{if(Z[nz-1]==+infinity){" "}else{"nonDefBarre;"}}
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+ lm0:=1,2; li:=1,2; krm:=1,2; krp:=1,2; lmrm:=1,2; lmrp:=1,2; lp:="",""; lnz:=1,2; lf:=1,2; Kz:=1,2;K0:=1,2;
+
+
+for(d:=0;d<=1;d++){
+ K0[d]:= evalf(limit(f[d](x),x=Z[0],1))> evalf(limit(f[d](x),x=Z[1],-1));
+ Kz[d]:=evalf(limit(f[d](x),x,Z[nz-1],-1))> evalf(limit(f[d](x),x,Z[nz-2],1));
+//{
+//$
+lm0[d]:=limit(f[d](x),x,Z[0],1)==-infinity;
+ li[d]:=lvic+nom[d]+"}$ etex);"+
+ if(member(Z[0],F[d])==0){"valPos(btex $"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+if(lm0[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[0],1)))}+"$ etex,"}+
+ if(K0[d]==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){ krm[d]:=evalf(limit(f[d](x),x=Z[r-1],1))< evalf(limit(f[d](x),x=Z[r],-1));
+ krp[d]:=evalf(limit(f[d](x),x=Z[r],1))> evalf(limit(f[d](x),x,Z[r+1],-1)) ;
+ lmrm[d]:=limit(f[d](x),x,Z[r],-1)==-infinity;lmrp[d]:=limit(f[d](x),x,Z[r],1)==-infinity;
+ lp[d]:=lp[d]+if(member(Z[r],F[d])){
+ "limGauche(btex
+ $"+if(lmrm[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],-1)))}+"$
+ etex,"+if(krm[d]==1){"1);"}else{"0);"}+"nonDefBarre;limDroite(btex $"+if(lmrp[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x,Z[r],1)))}+"$ etex,"+if(krp[d]==1){"1);"}else{"0);"}}
+ else{"valPos(btex $"+latex(simplify(f[d](Z[r])))+"$
+ etex,"+if(sign(evalf(fp[d](Z[r]-0.001)))==sign(evalf((fp[d](Z[r]+0.001))) )){"0.5);"}else{if(krp[d]==1){"1);"}else{"0);
+"}}}
+ }; }
+
+lnz[d]:=limit(f[d](x),x=Z[nz-1],-1)==-infinity;
+
+
+lf[d]:=if(member(Z[nz-1],F[d])==0){"valPos(btex $"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$ etex,"+
+ if(Kz[d]==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+
+ if(lnz[d]==1){"-\\infty"}else{latex(simplify(limit(f[d](x),x=Z[nz-1],-1)))}+"$ etex,"+
+ if(Kz[d]==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+MetaLfc:=if(ftt==2){if(nz>2){"
+
+beginTableau("+nmr+")"+
+ l0+lsi[0]+lsp[0]+lsf[0]+lsi[1]+lsp[1]+lsf[1]+"
+endTableau;
+
+";}else{
+"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+lsi[1]+lsf[1]+"
+endTableau;
+
+";
+}
+}else{ if(ftt==0){if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lp[0]+
+lf[0]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li[0]+
+lf[0]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}}else{
+if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsp[0]+lsf[0]+
+li[0]+
+lp[0]+
+lf[0]+
+lsi[1]+lsp[1]+lsf[1]+
+li[1]+
+lp[1]+
+lf[1]
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+lsi[0]+lsf[0]+
+li[0]+
+lf[0]+
+lsi[1]+lsf[1]+
+li[1]+
+lf[1]
++"
+endTableau;
+
+";}
+}
+}
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+}:;
+\end{VerbatimOut}
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de signes de produits
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTabSignL.cxx}
+
+
+TS(nomf,L,D,trigo,nmr):={
+L:=apply(f->unapply(f,x),L)
+n:=size(L);
+Z:=NULL;
+nl:=size(L);
+S:=[];
+mini:=D[0]; maxi:=D[1];
+
+pour k de 0 jusque n-1 faire
+
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j<ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))<=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))>=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(L[k](x),x);
+}
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+
+
+Z:=sort(Z);
+nz:=size(Z);
+
+
+ Z:=sort([op(set[(Z)])]);
+
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+ for(p:=0;p<=n-1;p++){li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)>0){"plus;"}else{"moins;"};
+
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+li+ lsic+nomf+"(x)}$ etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+ lf+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+"
+;
+
+}else{
+
+l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
+
+
+for(p:=0;p<=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
+
+ for(r:=0; r<=nz-2;r++){
+ lp:=lp+if(simplify(L[p](Z[r]))==0){"
+ valBarre(btex 0 etex);"}else{"barre;
+ "}+
+ if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](Z[nz-1]+1.0)>0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"
+ fpour
+
+MetaLfc:=" beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+
+ li
+ + lsic+nomf+"(x)}$ etex);"+
+ if(mini!=-infinity and product(L[s](mini),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+ if(product(L[s](evalf(Z[0])-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+"valBarre(btex 0 etex);"+
+ lr+
+ if(product(L[s](evalf(Z[nz-1])+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(maxi!=+infinity and product(L[s](maxi),s,0,n-1)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+"
+endTableau;
+
+ ";
+}
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+%%
+%% Code giac/Xcas pour les Tableaux de signes de quotients
+%%
+
+
+
+\begin{VerbatimOut}{XcasTabSignQ.cxx}
+TSq(nomf,L,Fo,D,trigo,nmr):={
+L:=apply(f->unapply(f,x),L);
+Fo:=apply(f->unapply(f,x),Fo);
+L:=concat(L,Fo);
+n:=size(L);
+Z:=NULL;
+m:=size(Fo);
+F:=NULL;FF:=NULL;
+mini:=D[0]; maxi:=D[1];
+S:=[];
+SF:=[];
+
+pour k de 0 jusque n-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(L[k](x))),x);
+ns:=size(SS);
+for(j:=0;j<ns;j++){
+mm:=0;
+while(evalf(simplify(subst(SS[j],n_1=mm)))<=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SS[j],n_1=mm))>=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+S:=concat(S,solve(L[k](x),x));
+}
+
+
+
+
+
+ si size(S)>0 alors pour j de 0 jusque size(S)-1 faire
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplify(S[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+pour k de 0 jusque m-1 faire
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SSF:=solve(factor(simplify(Fo[k](x))),x);
+nsf:=size(SSF);
+for(j:=0;j<nsf;j++){
+mm:=0;
+while(evalf(simplify(subst(SSF[j],n_1=mm)))<=evalf(maxi)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm+1;
+};mm:=-1;
+while(evalf(subst(SSF[j],n_1=mm))>=evalf(mini)){
+SF:=concat(SF,simplify(subst(SSF[j],n_1=mm)));mm:=mm-1;
+}
+}
+
+}else{
+SF:=concat(SF,solve(Fo[k](x),x));
+}
+
+ si size(SF)>0 alors pour j de 0 jusque size(SF)-1 faire
+ FF:=FF,simplify(SF[j]);
+ if(SF[j]>mini and SF[j]<maxi){F:=F,simplify(SF[j]);}
+ fpour;
+ fsi;
+fpour;
+
+
+
+Z:=[Z,F];
+
+
+Z:=sort([op(set[op(Z)])]);
+
+nz:=size(Z);
+
+if(nz==0){li:="";l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+ for(p:=0;p<=n-1;p++){li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+if(mini!=-infinity and L[p](mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}+
+if(L[p]((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}+if(maxi!=+infinity and L[p](maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}
+
+}
+ lf:=if(product(L[s]((mini+maxi)*.5),s,0,n-1)>0){"plus;"}else{"moins;"};
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+li+
+ lsic+nomf+"(x)}$ etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+ lf+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+;
+
+
+
+
+}else{
+
+
+l0:="val(btex $"+latex(D[0])+"$ etex);";li:=" ";lr:=" ";
+pour m de 0 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";fpour;
+l0:=l0+"val(btex $"+latex(D[1])+"$ etex);";
+
+
+for(p:=0;p<=n-1;p++){lp:="";
+ li:=li+lsic+latex(L[p](x))+"}$ etex);"+
+ if(mini!=-infinity and L[p](mini)==0){" valBarre(btex 0 etex);"}else{" "}+
+ if(L[p](Z[0]-0.01)>0){"plus;"}else{"moins;"};
+
+ for(r:=0; r<=nz-2;r++){lp:=lp+if(simplify(L[p](Z[r]))==0){" valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p]((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}};
+
+ li:=li+lp+ if(simplify(L[p](Z[nz-1]))==0){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(L[p](evalf(Z[nz-1])+1.0)>0){"plus;"}else{"moins;
+ "}+if(maxi!=+infinity and L[p](maxi)==0){"valBarre(btex 0 etex);"}else{" "}
+
+ };
+
+
+pour t de 0 jusque nz-2 faire
+ lr:=lr+if(product(L[s]((Z[t]+Z[t+1])*.5),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(member(Z[t+1],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}
+ fpour
+
+
+
+
+MetaLfc:="
+beginTableau("+nmr+")
+newLigneVariables(btex $ {x}$ etex);
+ "+l0+
+ li
+ +
+ lsic+nomf+"(x)}$ etex);"+
+ if(member(mini,FF)==0){if((mini!=-infinity) and (product(L[s](mini),s,0,n-1)==0)){" valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+
+ if(product(L[s](evalf(Z[0])-0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(member(Z[0],FF)==0){"valBarre(btex 0 etex);"}else{ "nonDefBarre;"}+
+ lr+
+ if(product(L[s](evalf(Z[nz-1])+0.01),s,0,n-1)>0){"plus;"}else{"moins;"}+
+ if(member(maxi,FF)==0){if((maxi!=+infinity) and (product(L[s](maxi),s,0,n-1)==0)){"valBarre(btex 0 etex);"}else{" "}}else{"nonDefBarre;"}+"
+endTableau;
+
+"
+
+
+}
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+
+
+
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+%% Code giac/Xcas pour les Tableaux de signes du produit
+%% de 2 facteurs affines
+%%
+
+
+
+
+\begin{VerbatimOut}{XcasTabSigna.cxx}
+TSa(a,b,c,d,nmr):={
+zA:=solve(a*x+b=0,x)[0];
+zB:=solve(c*x+d=0,x)[0];
+zmin:=min(zA,zB);
+zmax:=max(zA,zB);
+ Meta:= "
+ beginTableau("+nmr+")
+ newLigneVariables(btex $ {x}$ etex);
+ val(btex $-\\infty$ etex);val(btex $"+latex(zmin)+"$ etex);
+val(btex $"+latex(zmax)+"$etex);
+val(btex $+\\infty$ etex);
+ "+lsic+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+"}$ etex);"
+ + if(a>0){"moins;"}else{"plus;"}+
+ if(zmin==zA){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zA){si a>0 alors "plus;"; sinon "moins;";fsi}
+ else{si a>0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zA){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(a>0){"plus;"}else{"moins;"}
+ +lsic+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+"}$ etex);"
+ + if(c>0){"moins"}else{"plus"}+";"+
+ if(zmin==zB){"valBarre(btex 0 etex);"}else{"barre;"}+
+ if(zmin==zB){si c>0 alors "plus;"; sinon "moins;";fsi}
+ else{si c>0 alors "moins;"; sinon "plus;"; fsi}+
+ if(zmin==zB){"barre;"}else{"valBarre(btex 0 etex);"}+
+ if(c>0){"plus;"}else{"moins;"}
+
+ +lsic+"{("+if(a==1){"x+"}else{if(a==-1){"-x+"}else{a+"x+"}}+b+")("+if(c==1){"x+"}else{if(c==-1){"-x+"}else{c+"x+"}}+d+")}}$ etex);"
+ + si a*c>0 alors plus; sinon moins;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c>0 alors moins; sinon plus;fsi+";"+
+ "valBarre(btex 0 etex);"+
+ si a*c>0 alors plus; sinon moins;fsi+";"+"
+endTableau;
+"
+;
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,Meta);
+fclose(sortie);
+
+
+ }:;
+\end{VerbatimOut}
+
+
+
+
+
+
+%%$
+%% Code giac/Xcas pour les Tableaux de Signes d'expression ne contenant
+%% qu'un seul terme
+
+
+
+
+\begin{VerbatimOut}{XcasTSc.cxx}
+
+TSc(g,D,F,trigo,nmr):={
+f:=unapply(g,x);
+mini:=D[0]; maxi:=D[1];lm:=" ";
+Z:=mini,maxi;
+S:=[];
+
+
+
+if(trigo==t){
+all_trig_solutions:=1;
+reset_solve_counter(-1,-1);
+SS:=solve(factor(simplify(f(x))),x);
+ns:=size(SS);
+for(j:=0;j<ns;j++){
+m:=0;
+while(evalf(simplify(subst(SS[j],n_1=m)))<=evalf(maxi)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m+1;
+};m:=-1;
+while(evalf(subst(SS[j],n_1=m))>=evalf(mini)){
+S:=concat(S,simplify(subst(SS[j],n_1=m)));m:=m-1;
+}
+}
+
+}else{
+S:=solve(f(x),x);
+}
+
+
+
+
+
+if(size(S)==0 and size(F)==0){
+l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+li:=if(member(mini,F)!=0){"nonDefBarre;"}else{if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}}+
+if(mini!=-infinity or maxi!=+infinity){if(f((mini+maxi)*0.5>0)){"plus;"}else{"moins;"}}else{if(f(0.3145274774464545777744)>0){"plus;"}else{"moins;"}};
+lf:=if(member(maxi,F)!=0){"nonDefBarre;"}else{if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{"
+ "}};
+}else{
+if(size(S!=0)){pour j de 0 jusque size(S)-1 faire
+ if(S[j]>mini and S[j]<maxi){Z:=Z,simplify(S[j])};
+ fpour}
+
+Z:=concat([Z],F);
+
+ Z:=sort([op(set[op(Z)])]);
+
+
+nz:=size(Z);
+l0:=" ";li:=" ";lr:=" ";
+if(nz==2){l0:="val(btex $"+latex(D[0])+"$ etex);val(btex $"+latex(D[1])+"$ etex);";
+li:=if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}}+
+if(f((mini+maxi)*0.5)>0){"plus;"}else{"moins;"};
+lf:=if(maxi!=+infinity and f(maxi)==0){"
+ valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+
+}else{
+l0:="val(btex $"+latex(Z[0])+"$ etex);";li:=" ";
+pour m de 1 jusque nz-1 faire l0:=l0+"val(btex $"+latex(Z[m])+"$ etex);
+";
+fpour;
+
+
+li:= if(mini!=-infinity and f(mini)==0){"
+ valBarre(btex 0 etex);"}else{if(member(mini,F)==0){"
+ "}else{"nonDefBarre;"}
+ }
+
+lm:=if(nz>2){for(r:=0; r<nz-2;r++){lm:=lm+if(Z[r]==-infinity){
+if(f((Z[r+1]-1))>0){"plus;"}else{"moins;"}
+}else{if(f((Z[r]+Z[r+1])*.5)>0){"plus;"}else{"moins;"}}
++
+ if(member(Z[r+1],F)==0){"valBarre(btex 0 etex);"}else{"nonDefBarre;"}
+ }}else{" "};
+
+lf:=if(f(Z[nz-2]+0.1)>0){"plus;"}else{"moins;"}+if(maxi!=+infinity and f(maxi)==0){"valBarre(btex 0 etex);"}else{if(member(maxi,F)==0){"
+ "}else{"nonDefBarre;"}
+ };
+}
+};
+
+
+
+
+MetaLfc:="
+
+beginTableau("+nmr+")
+newLigneVariables(btex $\\displaystyle {x}$ etex);
+ "+l0+lsic+latex(f(x))+"}$ etex);"+
+ li+lm+lf
+ +"
+endTableau;
+
+"
+;
+
+
+
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+ }:;
+
+\end{VerbatimOut}
+
+
+
+
+
+
+
+%%$
+
+
+
+
+
+
+%%%%
+%%%
+%%% Pour des tableaux de variations simples sans fonctions
+%%%
+%%%
+
+
+
+\begin{VerbatimOut}{XcasTVS.cxx}
+TVS(La,Lo,F,nomf,nomv,nmr):={
+
+na:=size(La);
+f:=F;
+if(member(La[0],F)){f:=f[1..size(f)-1]};
+if(member(La[na-1],F)){f:=f[0..size(f)-2]};
+Z:=sort(concat(La,f));
+Zo:=sort([op(set[op(Z)])]);
+nz:=size(Z);
+nzo:=size(Zo);
+
+
+k0:= evalf(Lo[0])> evalf(Lo[1]);
+kz:=evalf(Lo[nz-1])> evalf(Lo[nz-2]);
+
+
+l0:=" newLigneVariables(btex $"+nomv+"$ etex);";lp:=" "; lf:=" ";
+ for(m:=0;m<=nzo-1;m++){l0:=l0+"val(btex $"+latex(Zo[m])+"$ etex);"}
+
+li:=lvic+nomf+"}$ etex);"+
+ if(member(Z[0],F)==0){"valPos(btex $"+latex(Lo[0])+"$ etex,"}
+ else{"nonDefBarre;limDroite(btex $"+latex(Lo[0])+"$ etex,"}+
+ if(k0==1){"1"}else{"0"}+
+ ");";
+
+ if(nz>2){ for(r:=1; r<=nz-2;r++){
+ krm:=evalf(Lo[r-1])< evalf(Lo[r]);
+ krp:=evalf(Lo[r])> evalf(Lo[r+1]) ;
+
+ lp:=lp+if(Z[r]==Z[r+1]){
+ "limGauche(btex$"+latex(Lo[r])+"$etex,"+
+ if(krm==1){"1);"}
+ else{"0);"}
+ }// fin if zr=zr+1
+ else{
+ if(Z[r]==Z[r-1]){
+ "nonDefBarre;limDroite(btex$"+latex(Lo[r])+"$etex,"+
+ if(krp==1){"1);"}
+ else{"0);"}
+ }//fin if zr=zr-1
+ else{
+ "valPos(btex $"+latex(Lo[r])+"$etex,"+
+ if(krp==1){"1);"}else{"0);"}
+}//fin else zr=zr-1
+}//fin else zr=zr+1
+}//fin for
+}//fin de if nz>2
+
+
+
+lf:=if(member(Z[nz-1],F)==0){"valPos(btex $"+latex(Lo[nz-1])+"$ etex,"+
+ if(kz==1){"1);"}else{"0);"}}
+ else{"limGauche(btex $"+latex(Lo[nz-1])+"$ etex,"+
+ if(kz==1){"1);nonDefBarre;"}else{"0);nonDefBarre;"}};
+
+
+MetaLfc:=
+
+ if(nz>2){"beginTableau("+nmr+")"+
+ l0+
+li+
+lp+
+lf
++"
+endTableau;
+
+";}else{"beginTableau("+nmr+")"+
+ l0+
+li+
+lf
++"
+endTableau;
+
+";}
+
+//return(MetaLfc);
+
+sortie:=fopen("XCasmpfc.mp");
+fprint(sortie,Unquoted,MetaLfc);
+fclose(sortie);
+
+
+}:;
+
+\end{VerbatimOut}
+
+%%$
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%%
+%% traitement des fichiers produits par giac/xcas
+%%
+%%
+
+% pour l'chelle des tableaux taper \ech{facteur de rduction}
+
+\newcommand\echelle{1}
+\newcommand\ech[1]{\renewcommand\echelle{#1}}
+
+
+\newcommand\couleurtab{black}
+\newcommand\coultab[1]{\renewcommand\couleurtab{#1}}
+
+
+\newcommand{\dresse}[2]{%
+\ifthenelse{\boolean{xcas}}{% Avec l'option "XCas present"
+ \executGiacmp{XCas#2.giac}% reconstituer le tableau
+ % exporter le source mp
+ % puis lancer metapost pour creer
+ % l'image du tableau
+ \immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab.mp}
+ \immediate\write18{\cat enteteMP.cfg >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod def beginTableau(expr c) =\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod begingroup\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod charcode:=c;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod clearxy; clearit; clearpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod pickup defaultpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod drawoptions(withcolor(#1));\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod initTableau;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod enddef;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\cat queue.mp >> \nomtravail_Tab#2.mp}
+ \immediate\write18{mpost -jobname=\nomtravail_Tab \nomtravail_Tab#2.mp}
+ \immediate\write18{\rem \nomtravail_Tab#2.mp}
+ }%
+ {% sinon, si le tableau est absent, alerte.
+ \IfFileExists{\nomtravail_Tab.\theTVn}{}{%
+ \PackageError{tablor}{Tableau absent non
+ reconstituable.}{Pour compiler il faut, soit les fichiers de
+ tableaux, soit le fichier \nomtravail_Tab.mp, soit disposer de
+ XCas.}}}
+
+\begin{center}
+ \includegraphics[scale=\echelle]{\nomtravail_Tab.\theTVn}
+\end{center}
+\stepcounter{TVn}
+}
+
+
+%%
+%% traitement des fichiers produits par giac/xcas avec possibilite
+%% de modifier le fichier metapost (environnement etoile))
+%%
+
+
+
+\newcommand{\dressetoile}[2]{%
+\IfFileExists{\nomtravail_Tab.\theTVn}{% Test sur l'existence du tableau
+% Si oui, inclusion du fichier source de sauvegarde mp dans Tableaux
+\immediate\write18{\cat TSav-\theTVn.mp >> \nomtravail_Tab.mp}}
+% Si non, lancement des operations de fabrication
+{\executGiacmp{XCas#2.giac}%
+\immediate\write18{\editeur XCasmpfc.mp }
+
+ % Modification avec l'editeur choisi
+\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab.mp}
+\immediate\write18{\cp XCasmpfc.mp TSav-\theTVn.mp} % Sauvegarde du
+ % source mp sur le disque pour une
+ % inclusion ulterieure dans Tableaux.mp.
+\immediate\write18{\cat enteteMP.cfg >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod def beginTableau(expr c) =\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod begingroup\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod charcode:=c;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod clearxy; clearit; clearpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod pickup defaultpen;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod drawoptions(withcolor(#1));\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod initTableau;\echof >> \nomtravail_Tab#2.mp}
+ \immediate\write18{\echod enddef;\echof >> \nomtravail_Tab#2.mp}
+\immediate\write18{\cat XCasmpfc.mp >> \nomtravail_Tab#2.mp}} % Inclusion du
+ % source dans le
+ % fichier
+ % Tableaux
+\immediate\write18{\cat queue.mp >> \nomtravail_Tab#2.mp}
+\immediate\write18{mpost -jobname=\nomtravail_Tab \nomtravail_Tab#2.mp}% Reconstitution des tableaux
+ % et creation du dernier. L'option
+ % pallie l'absence de end en fin de
+ % fichier
+\immediate\write18{\rem \nomtravail_Tab#2.mp}
+
+\begin{center}
+ \includegraphics[scale=\echelle]{\nomtravail_Tab.\theTVn}
+\end{center}
+\ech{1}
+\setcounter{TVn}{\theTVnbis} % Restauration du compteur TVn
+}
+
+
+
+
+
+
+
+%%
+%%
+%%%
+%%%
+%%% les "giac" qui permettent d'executer la commande rentree dans le fichier tex
+%%% suivis des environnements qui permettront la saisie du code giac/xcas
+%%% Les versions etoilees permettent de modifier le code metapost produit initialement
+%%%
+
+
+
+
+\begin{VerbatimOut}{XCasa.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSigna.cxx");
+read("XCasa.user");
+\end{VerbatimOut}
+
+\newenvironment{TSa}
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasa.user}}
+{\end{VerbatimOut}
+ \dresse{\couleurtab}{a}
+}
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasQ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignQ.cxx");
+read("XCasQ.user");
+\end{VerbatimOut}
+
+\newenvironment{TSq}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasQ.user}}
+{\end{VerbatimOut}\dresse{\couleurtab}{Q}}
+
+
+
+\newenvironment{TSq*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasQ.user}}
+{\end{VerbatimOut}\dressetoile{\couleurtab}{Q}}
+
+
+\begin{VerbatimOut}{XCasL.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTabSignL.cxx");
+read("XCasL.user");
+\end{VerbatimOut}
+
+\newenvironment{TS}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasL.user}}
+{\end{VerbatimOut}\dresse{\couleurtab}{L}}
+
+
+\newenvironment{TS*}[1]
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasL.user}}
+{\end{VerbatimOut}\dressetoile{\couleurtab}{L}}
+
+
+\begin{VerbatimOut}{XCasTSc.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTSc.cxx");
+read("XCasTSc.user");
+\end{VerbatimOut}
+
+
+
+
+\newenvironment{TSc*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTSc.user}}
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TSc}}
+
+
+\newenvironment{TSc}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTSc.user}}
+{\end{VerbatimOut}\dresse{\couleurtab}{TSc}}
+
+
+\begin{VerbatimOut}{XCasTV.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTV.cxx");
+read("XCasTV.user");
+\end{VerbatimOut}
+
+
+
+\newenvironment{TV}{%
+\VerbatimEnvironment
+\begin{VerbatimOut}[commandchars=\\??]{XCasTV.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TV}}
+
+\newenvironment{TV*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTV.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TV}}
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVP.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVP.cxx");
+read("XCasTVP.user");
+\end{VerbatimOut}
+
+\newenvironment{TVP}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVP.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVP}}
+
+\newenvironment{TVP*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVP.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVP}}
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVZ.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVZ.cxx");
+read("XCasTVZ.user");
+\end{VerbatimOut}
+
+\newenvironment{TVZ}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVZ.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVZ}}
+
+\newenvironment{TVZ*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVZ.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVZ}}
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVapp.cxx");
+read("XCasTVapp.user");
+\end{VerbatimOut}
+
+\newenvironment{TVapp}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVapp.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVapp}}
+
+\newenvironment{TVapp*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVapp.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVapp}}
+
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVI.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVI.cxx");
+read("XCasTVI.user");
+\end{VerbatimOut}
+
+\newenvironment{TVI}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVI.user}}%
+{\end{VerbatimOut}\dresse{\couleurtab}{TVI}}
+
+
+\newenvironment{TVI*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVI.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVI}}
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVIex.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIex.cxx");
+read("XCasTVIex.user");
+\end{VerbatimOut}
+
+\newenvironment{TVIex}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIex.user}}%
+{\end{VerbatimOut}\dresse{\couleurtab}{TVIex}}
+
+
+\newenvironment{TVIex*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIex.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVIex}}
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVIapp.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVIapp.cxx");
+read("XCasTVIapp.user");
+\end{VerbatimOut}
+
+\newenvironment{TVIapp}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIapp.user}}%
+{\end{VerbatimOut}\dresse{\couleurtab}{TVIapp}}
+
+
+\newenvironment{TVIapp*}[1]%
+{\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVIapp.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVIapp}}
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVPC.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVPC.cxx");
+read("XCasTVPC.user");
+\end{VerbatimOut}
+
+\newenvironment{TVPC}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVPC.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVPC}}
+
+\newenvironment{TVPC*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVPC.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVPC}}
+
+
+
+
+
+
+
+
+
+
+
+
+\begin{VerbatimOut}{XCasTVS.giac}
+maple_mode(0);
+approx_mode:=0;
+read("config.cxx");
+read("XcasTVS.cxx");
+read("XCasTVS.user");
+\end{VerbatimOut}
+
+\newenvironment{TVS}%
+{\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVS.user}}%
+{\end{VerbatimOut}
+\dresse{\couleurtab}{TVS}}
+
+\newenvironment{TVS*}[1]{%
+\setcounter{TVnbis}{\theTVn}
+\setcounter{TVn}{#1}
+\VerbatimEnvironment\begin{VerbatimOut}[commandchars=\\??]{XCasTVS.user}}%
+{\end{VerbatimOut}\dressetoile{\couleurtab}{TVS}}
+
+
+
+
+
+
+
+
+
+
+%% pour nettoyer les fichiers auxiliaires
+
+\AtEndDocument{\immediate\write18{\cat queue.mp >> \nomtravail_Tab.mp}
+ }
+
+
+
+
+%%
+%% Zi end -> enjoy :)
diff --git a/macros/latex/contrib/tablor/tablor.tex b/macros/latex/contrib/tablor/tablor.tex
new file mode 100644
index 0000000000..70afb09205
--- /dev/null
+++ b/macros/latex/contrib/tablor/tablor.tex
@@ -0,0 +1,2404 @@
+% \copyleft Connan le Barbare (aka Guillaume Connan) \copyright
+% This work may be distributed and/or mofified under the conditions
+% or the LaTeX Project Public Licence, either v1.3 or (at your option)
+% any later version. The latest version is in
+% http://www.latex-project.org/lppl/
+% This work consists of the files tablor.sty, tablor-xetex.sty, tablor.cfg, tablor.tex,
+% tablor.pdf and tablor.html
+
+
+
+
+\documentclass[11pt]{article}
+\usepackage{etex}
+\usepackage[height=250mm,width=183mm]{geometry}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[french]{babel}
+\usepackage[upright]{kpfonts}
+\usepackage{bold-extra}
+\usepackage[scaled=0.85]{luximono}
+\usepackage[xcas]{tablor}
+\usepackage{listings,keystroke}
+\usepackage{graphicx,bclogo,amssymb,amsbsy,amsfonts,amstext,amscd,amsopn,amsxtra}
+% bclogo est tlchargeable ici : http://melusine.eu.org/syracuse/wiki/doku.php/mc/bclogo
+
+
+\usepackage{tocloft}
+%ajoute de l'espace entre le
+%numero de chapitre (chap) et le titre
+%dans la table des matieres
+
+\addtolength{\cftsecnumwidth}{2em}
+\addtolength{\cftsubsecnumwidth}{1em}
+
+% pour une TdM hyperactive...
+\usepackage[dvips,colorlinks=true,linkcolor=blue]{hyperref}
+
+% quelques gris
+
+\usepackage{color}
+\definecolor{0.9white}{rgb}{.9,.9,.9}
+\definecolor{0.8white}{rgb}{.8,.8,.8}
+\definecolor{0.2white}{rgb}{.2,.2,.2}
+\definecolor{0.4white}{rgb}{.4,.4,.4}
+\definecolor{0.6white}{rgb}{.6,.6,.6}
+\definecolor{0.1white}{rgb}{.1,.1,.1}
+\definecolor{bleu}{rgb}{0.4,0.2,1} \newrgbcolor{bleu}{0.4 0.2 1}
+\definecolor{orange}{rgb}{0.589999,0.269997,0.080004}
+\definecolor{rouge}{rgb}{1,0,0} \newrgbcolor{rouge}{1 0 0}
+% style des listings
+
+
+\newcommand\lat{\lstset{numbers=none,language=[LaTeX]{TeX},xleftmargin=10pt,%
+keywordstyle =\color{bleu}\bfseries,basicstyle=\ttfamily\color{0.1white},commentstyle=\normalfont\scriptsize\slshape,breaklines=true,backgroundcolor=\color{green!20},frame=trBL,framerule=1pt,framesep=4pt,rulesep=1pt,showstringspaces=false,stringstyle=\slshape,captionpos=b}
+}
+
+
+\newcommand\xcas{\lstset{numbers=none,language=XCAS,xleftmargin=10pt,%
+keywordstyle =\color{rouge!70!black}\bfseries,basicstyle=\ttfamily\color{0.1white},commentstyle=\normalfont\scriptsize\slshape,breaklines=true,backgroundcolor=\color{orange!20},frame=trBL,framerule=1pt,framesep=4pt,rulesep=1pt,showstringspaces=false,stringstyle=\slshape,captionpos=b}
+}
+
+
+
+% petits environnements bclogo
+
+
+
+\newenvironment{DANGER}[1]{%
+\begin{bclogo}[logo=\bctakecare,arrondi=0.1,couleur=0.9white]{#1}}
+{\end{bclogo}}
+
+\newenvironment{Idee}[1]{%
+\begin{bclogo}[logo=\bclampe,arrondi=0.1,couleur=0.9white]{#1}}
+{\end{bclogo}}
+
+
+
+% style des sections
+\usepackage{sectsty}
+
+
+\sectionfont{\LARGE \color{0.2white}}
+\subsectionfont{\color{0.4white}}
+\renewcommand\thesection{\Roman{section} -}
+\renewcommand\thesubsection{\alph{subsection}. }
+\subsubsectionfont{\color{0.6white}}
+\renewcommand\thesubsubsection{\roman{subsection}. }
+
+\graphicspath{{./figures/}}
+
+
+
+% titre
+
+\title{\texttt{tablor.sty} \\La machine crer des tableaux de signes et de variations }
+
+\author{Guillaume \textsc{Connan} \\ \href{http://tehessin.tuxfamily.org/}{http://tehessin.tuxfamily.org/}\\
+avec l'efficace participation de Jean-Michel \textsc{Boucart}\\
+Forum d'aide ~:~\href{http://gconnan.free.fr/punbb/upload/index.php}{http://gconnan.free.fr/punbb/upload/index.php}}
+
+\date{9 mai 2010 - Version 4.07}
+
+
+
+
+
+
+
+
+%%
+%
+% Dbut du document
+%
+%%
+
+
+
+
+\begin{document}
+
+\setlength{\parindent}{0mm}
+
+\maketitle
+
+
+\vspace{1cm}
+
+\initablor
+
+\section{a sert quoi~?}
+
+Il s'agit d'obtenir rapidement un tableau de signe ou un tableau de variation en entrant un
+minimum de commandes.
+
+\section{Nouveauts}
+
+\subsection{Changements depuis la version 3.00}
+
+
+\begin{figure}[!h]
+ \begin{DANGER}{Attention~!}
+ partir de la version 4.03 de \texttt{tablor}, il est
+ ncessaire d'avoir la nouvelle version de
+ tableauVariation.mp (la 2.1 datant de dcembre 2008) mais
+ pour l'instant elle n'est pas prsente sur CTAN~!
+ Rcuprez plutt le fichier l'adresse
+ \href{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}.
+
+Cela ne posera de problmes que si vous utilisez l'environnement TVZ.
+ \end{DANGER}
+ \end{figure}
+
+
+
+La version 4.01 n'est malheureusement plus compatible avec les versions
+antrieures car une option supplmentaire a t ajoute pour traiter les
+fonctions trigonomtriques.
+
+Une possibilit a de plus t ajoute pour rduire la taille des
+tableaux.
+
+Les tableaux de signes courts (TSc) ont un argument de plus pour traiter
+les valeurs interdites (version 4.01).
+
+
+Une extension pour une compilation via Xe\TeX{} a t
+cr~:~\verb+tablor-xetex.sty+ (version 4.01) ne fonctionnant que sous
+unix.
+
+
+
+Un environnement TVPC a t cr pour traiter les fonctions
+prolongeables par continuit (version 4.02).
+
+
+Une possibilit a t ajoute pour donner un nom une fonction
+ncessitant l'emploi d'une macro \LaTeX{} (version 4.02b).
+
+
+Les frontires des zones interdites sont assorties de doubles
+barres si ncessaire. (version 4.03)
+
+
+Un nouvel environnement TVIex est cr pour avoir les racines des
+valeurs intermdiaires sous forme exacte quand c'est possible.(version 4.04)
+
+Un bug dans tous les TVI est corrig.(Version 4.04).
+
+Un bug d une mise jour de XCAS (version 4.04-b compatible avec les
+prcdentes).
+
+Des bugs dans TVapp et TVIapp corrigs (version 4.04-c... puis 4.04-d).
+
+Bug dans TVc (version 4.04-h)
+
+Nouvel environnement TVS pour des tableaux de variations de fonctions
+dont on ne connait qu'une liste d'images (version 4.05).
+
+
+Petites modifs dans le code pour s'adapter aux nouvelles versions de
+MetaPOST et pour contrer certains bugs dus certaines configurations
+personnelles de xcas (4.05-b).
+
+
+Cration de l'option windows : on peu maintenant dclarer l'utilisation
+de l'OS windows en option sans aller modifier le fichier tablor.cfg
+(version 4.06).
+
+
+Nouveau \verb+tablor.cfg+ : on peut rgler l'epsilon de XCAS qui fixe le
+seuil du zro des flottants. Il est rgl $10^{-100}$ par
+dfaut. Il faut une version rcente de XCAS, postrieure au 20 novembre
+2009. (version tablor : 4.06-c)
+
+
+Tableaux en couleurs ! Merci \texttt{fp} du forum
+\href{http://forum.mathematex.net/latex-f6/tableau-de-variations-redige-en-bleu-t10826.html}{\texttt{mathematex}}
+(version tablor : 4.07)
+
+\xcas
+\begin{lstlisting}[caption={}]
+//reglage de epsilon : seuil du zero de giac
+epsilon:=1e-100;
+\end{lstlisting}
+
+\subsection{Professor.sty}
+
+
+\texttt{tablor.sty} a fait des petits... Grce une efficace
+collaboration avec Denis \textsc{LE FUR}, vous disposez prsent de
+toute une panoplie d'outils similaires pour tracer des courbes, des
+histogrammes, des arbres de probabilits, des graphes probabilistes, des
+lissages par moyennes mobiles et j'en passe et des meilleures... Allez
+dcouvrir ces trsors sur
+\href{http://mathsp.tuxfamily.org/spip.php?rubrique46}{http://mathsp.tuxfamily.org/spip.php?rubrique46}.
+
+
+
+\subsection{Plugin TeXmacs}
+
+
+Emmanul Corcelle a crit un plugin pour que les utilisateurs de TeXmacs
+puissent eux aussi profiter de \texttt{tablor} et
+\texttt{professor}. Pour cela visitez le site \href{http://corcelle.wordpress.com/}{http://corcelle.wordpress.com/}
+
+
+
+
+\section{Comment a marche~?}
+
+\subsection{Principe gnral}
+
+On entre une instruction qu'on envoie via \LaTeX{} \texttt{XCAS} qui effectue un certain nombre de
+calculs (rsolution d'quations, calcul de limites). \texttt{XCAS} renvoie un rsultat sous la forme
+d'un script \texttt{MetaPOST} qui est compil. Un tableau est cr et ensuite insr dans le document
+\texttt{tex}.
+
+
+\subsection{Rentrons dans les dtails}
+
+En utilisant un environnement \texttt{tablor}, de nombreux fichiers sont crs dans le rpertoire
+courant puis effacs par la commande \texttt{nettoyer} si vous le souhaitez~:
+
+\begin{itemize}
+\item des fichiers d'extension \texttt{.cxx}~:~il s'agit du fichier le plus important. C'est le
+ programme \texttt{XCAS} qui ~fabrique~ le tableau. Vous pouvez l'utilisez tel quel dans une
+ session \texttt{XCAS} ou \texttt{giac}.
+\item des fichiers d'extension \texttt{.giac} qui regroupent des instructions lues et excutes par
+ \texttt{giac}.
+Il est trs court~:
+
+
+\xcas
+
+\begin{lstlisting}
+maple_mode(0); // au cas o certains travailleraient en mode maple, mupad ou ti
+read("config.cxx"); // pour configurer la 1re colonne (signe de ou sign of etc.)
+read("XcasTV.cxx"); // giac charge le programme
+read("XCasTV.user"); // giac lit les paramtres rentrs dans le source
+tex et fabrique la vole le source MetaPOST.
+\end{lstlisting}
+
+\item des fichiers d'extension \texttt{.user} qui sont crs par \LaTeX{} grce l'environnement
+ \texttt{VerbatimOut} de l'extension \texttt{fancyvrb} : il s'agit en fait de la commande qui se
+ trouve par exemple entre \verb+\begin{TV}+ et \verb+\end{TV}+.
+
+
+
+\end{itemize}
+
+\subsection{Code XCAS}
+
+Toutes les procdures suivent le mme principe~:
+
+\begin{itemize}
+\item la plus grande partie s'occupe de crer les lignes du tableaux
+ l'aide de nombreux tests et boucles;
+\item ensuite, on regroupe ces lignes dans une variable
+ \texttt{MetaLfc};
+
+\item on exporte le tableau l'aide des trois dernires lignes~:
+
+\xcas
+
+\begin{lstlisting}
+sortie:=fopen("XCasmpfc.mp"); // on cre un fichier XCasmpfc.mp
+fprint(sortie,Unquoted,MetaLfc); // on y met MetaLfc
+fclose(sortie); // on ferme XCasmpfc.mp
+\end{lstlisting}
+
+
+
+
+\lat
+\end{itemize}
+
+
+
+
+\begin{figure}[!h]
+ \begin{Idee}{Autres collaborations XCAS/\LaTeX{}}
+On peut suivre ce mme principe pour crer d'autres associations de
+vos outils prfrs. Voir par exemple~:
+
+\href{http://gconnan.free.fr/?page=53}{http://gconnan.free.fr/?page=53}
+
+et
+
+\href{http://melusine.eu.org/syracuse/giac/}{http://melusine.eu.org/syracuse/giac/}
+ \end{Idee}
+ \end{figure}
+
+
+
+
+
+\section{De quoi a-t-on besoin~?}
+
+\begin{figure}[!h]
+ \begin{Idee}{Conseils en lignes}
+ N'hsitez pas explorer la page suivante :
+
+\href{http://mathsp.tuxfamily.org/spip.php?article186}{http://mathsp.tuxfamily.org/spip.php?article186}
+
+surtout si vous tes sur XP :-)
+
+De nombreux problmes ont t rgls sur le forum~: \href{http://gconnan.free.fr/punbb/upload/index.php}{http://gconnan.free.fr/punbb/upload/index.php}
+ \end{Idee}
+ \end{figure}
+
+
+ \begin{figure}[!h]
+ \begin{Idee}{MikTeX et TeXLive}
+ \texttt{tablor} est prsent sur MikTeX et
+ TeXLive. \texttt{tableauVariation.mp} est sur
+ MikTeX mais la version n'est pas jour ( la date du 7 fvrier 2009).
+ \end{Idee}
+ \end{figure}
+
+
+\begin{itemize}
+
+\item Il faut avoir install \texttt{XCAS}, logiciel multi-plateforme de calcul et de programmation~:
+
+\href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}~;
+
+\item il faut avoir le fichier de macros \texttt{MetaPOST}
+\texttt{tableauVariation.mp} de Frdric Mazoit~:
+\href{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}{http://download.tuxfamily.org/tehessinmath/les\_sources/tableauVariation.mp}~;
+
+Pour ceux qui sont gure habitus \texttt{MetaPOST}, cela ne pose aucun problme car les
+scripts et compilations \texttt{MetaPOST} se font automatiquement. Il suffit de crer dans son
+\texttt{texmf} personnel une arborescence du style~: \texttt{./texmfperso/metapost/tablor/} et d'y
+placer \texttt{tableauVariation.mp} puis un \texttt{rehash}. C'est exactement la mme dmarche que
+pour installer une nouvelle extension \LaTeX{}.
+
+
+\item il faut tre en mode \texttt{shell-escape} pour autoriser
+ les sorties de la compilation \texttt{tex}. Pour \texttt{emacs}, on rajoute en
+ fin de fichier \verb+%%% LaTeX-command: "latex --shell-escape" ***+; pour les autres diteurs, il faut modifier
+ la commande de compilation. Sinon, on peut modifier le fichier \texttt{texmf.cnf}
+ pour que le mode soit automatis en modifiant la ligne
+ suivante~:~\texttt{shell-escape t} mais ce n'est pas recommand car il
+ faut activer le shell-escape le moins possible et toujours sous contrle~;
+
+
+
+\begin{figure}[!h]
+ \begin{Idee}{shell-escape sur KILE}
+ On peut crer une compilation en allant dans les menus de configuration, l'associer un raccourci clavier et hop, quand on veut une compil rapide c'est facile.
+
+On va dans \texttt{configuration>kile>outils>nouvel outil}
+
+On l'appelle par exemple shellEscape et on le base sur LateX
+
+Ensuite en commande on met \texttt{latex} (ou \texttt{pdflatex})
+et en option \verb+-shell-escape -interaction=nonstopmode '%source'+
+et on clique sur OK.
+
+Ensuite on va dans \texttt{configuration>raccourci clavier > rechercher sh}.
+On tombe sur shellEscape. On clique sur personnaliser et on choisi un raccourci, par exemple
+la touche windows et s (S-s en langage emacs...)
+
+Et voil : quand on veut compiler un document appelant tablor, on appuie sur windows+s.
+ \end{Idee}
+ \end{figure}
+
+
+
+
+
+
+\begin{figure}[!h]
+
+ \begin{Idee}{shell-escape sur TeXnicCenter}
+ Pour les utilisateurs de TeXnicCenter, observez cette
+\href{http://img221.imageshack.us/img221/27/capture20080114215233hu7.png}{explication} du
+paramtrage du \texttt{shell-escape}. On peut par exemple mettre~:
+
+\texttt{-enable-write18 --shell-escape --src -interaction=nonstopmode "\%Wm"}.
+
+Sur TeXmaker, c'est \texttt{latex -enable-write18 --shell-escape -interaction=nonstopmode \%.tex}.
+
+Pour faire comprendre \texttt{Microsoft Windows XP} o trouver \texttt{giac}, vous pouvez modifier le \texttt{path} en suivant
+ces instructions~:
+
+Demarrer->Panneau de configuration->Systme onglet Avanc->Variable d'environnement. Il faut cliquer sur la ligne PATH puis sur le bouton modifier
+et l il faut ajouter
+
+\begin{center}
+ \verb+;C:\repertoire_d'installation_de_xcas+
+\end{center}
+
+
+
+(Merci Gatan et Daniel).
+\end{Idee}
+
+ \end{figure}
+
+
+
+\item il faut avoir disposition les extensions \texttt{fancyvrb},
+ \texttt{filecontents}, \texttt{ifthen} et \texttt{ifpdf};
+
+\item pour ceux qui compilent avec \texttt{pdf\LaTeX{}}, il n'y a aucun problme et rien faire car \texttt{tablor}
+ contient dj ce qu'il faut pour s'adapter~:
+ \verb+\ifpdf \DeclareGraphicsRule{*}{mps}{*}{} \fi+
+
+\item il faut installer le fichier \texttt{tablor.sty} dans son \texttt{texmf} personnel. Pour ceux
+ qui ont une version rcente de \texttt{MiKTeX} ou \texttt{TeXLive},
+ \texttt{tablor} est dj install. Pour les
+ utilisateurs de \texttt{Unix}, vous devez savoir comment faire... Par commodit, vous pouvez en
+ profiter pour installer la version \texttt{Unix} de \emph{MiKTeX package manager}. J'ai fait un
+ petit script pour vous y aider ici :
+
+ \href{http://gconnan.free.fr/?page=52}{http://gconnan.free.fr/?page=52}
+
+\item il faut installer le fichier de configuration
+ \texttt{tablor.cfg} dans le mme
+ rpertoire de \texttt{tablor.sty} ce qui est fait automatiquement
+ soit par dcompression d'une archive \texttt{tablor.zip} soit par
+ l'intermdiaire des distributions \texttt{MikTeX} et \texttt{TeXLive}.
+
+
+
+\end{itemize}
+
+
+
+
+
+
+\begin{figure}[!h]
+ \begin{DANGER}{Conflit d'extensions}
+ L'extension \verb+fancybox+ rentre en conflit avec \verb+fancyvrb+ qu'utilise
+ \verb+tablor+ car elles dfinissent toutes deux diffremment l'environnement \verb+VerbatimOut+.
+ \end{DANGER}
+ \end{figure}
+
+
+
+ \begin{DANGER}{Commandes cres}
+ Huit nouvelles commandes sont cres~:~\verb+\tv, \tvbis, \nettoyer, \initablor,+
+
+ \verb+ \dresse, \dressetoile, \executGiacmp+.
+ Attention aux conflits si de tels noms existent quelque part dans vos
+ fichiers personnels.
+ \end{DANGER}
+
+
+
+
+
+\section{Comment l'utiliser~?}
+
+
+
+\begin{figure}[!h]
+ \begin{Idee}{Faut-il savoir utiliser MetaPOST et XCAS~?}
+ Non~! Tous les appels ces logiciels se font sans aucune
+ intervention de l'utilisateur.
+ \end{Idee}
+ \end{figure}
+
+
+
+\subsection{Prambule}
+
+Les ECM donns en exemple ne dpendent pas du moteur de compilation~:~\texttt{\LaTeX{}+dvi+dvips} ou
+\texttt{pdf\LaTeX{}} conviennent.
+
+Le prambule sera toujours sous Linux ou Mac~:
+
+\lat
+
+\begin{lstlisting}
+\documentclass{article}
+\usepackage{graphicx}
+\usepackage[french]{babel} % or eunozer langouage
+\usepackage[xcas]{tablor} % xcas en option : cf plus loin
+\end{lstlisting}
+
+Le prambule sera toujours sous Windows~:
+
+\lat
+
+\begin{lstlisting}
+\documentclass{article}
+\usepackage{graphicx}
+\usepackage[french]{babel} % or eunozer langouage
+\usepackage[xcas,windows]{tablor} % xcas et windows en option : cf plus loin
+\end{lstlisting}
+
+
+
+% \begin{figure}[!h]
+% \begin{Idee}
+% Les fontes utilises dans les tableaux sont \verb+[upright]{fourier}+. Il est tout
+% fait possible d'utiliser d'autres fontes. Il suffit de modifier le fichier
+% \texttt{tablor.sty} en remplaant partout o il apparat \verb+[upright]{fourier}+ par \verb+lmodern+ ou ce
+% que vous voulez. Ce n'est pas trs pratique, mais cela vite de le mettre en option
+% chaque utilisation et on utilise souvent la mme fonte dans ses documents.
+% \end{Idee}
+% \end{figure}
+
+
+
+\subsection{L'option xcas}\label{option}
+
+
+On met \texttt{xcas} si l'on a install \texttt{giac/XCAS} sur son
+ ordinateur et on ne met rien si \texttt{giac/XCAS} n'est pas
+ install ou (et) que l'on a rcupr un
+ fichier \texttt{tex} avec les fichiers sources \texttt{MetaPOST}; Ainsi, \texttt{tablor} ne fera
+ pas appel \texttt{giac/XCAS} et se contentera de compiler les fichiers \texttt{MetaPOST}.
+
+
+
+
+\subsection{L'option windows}
+
+Si vous utilisez encore Windows\textregistered, dclarez-le en option~:~
+
+\begin{lstlisting}
+\usepackage[xcas,windows]{tablor}
+\end{lstlisting}
+
+Pour les utilisateurs de Linux et Mac, il n'y a rien dclarer...
+
+\subsection{Fichier de configuration \texttt{tablor.cfg}}
+
+\subsubsection*{Contenu}
+
+{\small
+
+
+\begin{lstlisting}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Fichier de configuration de tablor.sty %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% La mise jour de ce fichier permet d'adapter certains paramtres du package tablor.sty
+% au poste de travail et aux habitudes des utilisateurs.
+
+
+%========================================
+% I - Configuration du prambule MetaPOST
+%========================================
+
+\begin{filecontents*}{enteteMP.cfg}
+input tableauVariation;
+verbatimtex
+%&latex
+\documentclass{article}
+\usepackage[upright]{fourier} % ou mathpazo, lmodern, etc. ou rien !
+\usepackage{amsmath}
+\renewcommand\mbox[1]{ #1 } % pour les mbox intempestifs de xcas
+\renewcommand\cdot{ } % idem pour les cdot
+\begin{document}
+\catcode`\@=0 % pour utiliser le @
+etex
+\end{filecontents*}
+
+
+
+
+%=================================
+% II - Dclaration de l'diteur utilis
+% ================================
+%
+% Remplacez "emacsclient -c" par la commande qui lance un autre editeur que
+% votre diteur favori pour afficher les tableaux a modifier.
+% Laissez une espace avant de fermer l'accolade.
+
+\newcommand{\editeur}{emacsclient -c }
+
+
+
+
+%=================================
+%III - 1ere colonne
+%=================================
+%
+%permet de configurer les termes dans la premiere colonne des
+%tableaux : "signe de" ou "sign of" ou "" etc.
+%
+
+
+
+\begin{VerbatimOut}{config.cxx}
+
+//reglage de epsilon : seuil du zero de giac
+epsilon:=1e-100;
+
+// POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
+// pour la ligne signe
+lsic:="
+newLigneSignes(btex $\\hbox{ Signe de }\\atop{\\displaystyle ";
+
+// POUR LES TV, TVI,TVZ,TVapp
+// pour la ligne variation
+lvic:="
+newLigneVariations(btex $\\hbox{ Variations de }\\atop{\\displaystyle ";
+
+\end{VerbatimOut}
+
+
+
+%% you may prefer
+
+% \begin{VerbatimOut}{config.cxx}
+
+% // FOR TV, TVI,TVZ,TVapp,TSq,TSa
+% // for the signs
+% lsic:="
+% newLigneSignes(btex $\\hbox{ Sign of }\\atop{\\displaystyle ";
+
+% // POUR LES TV, TVI,TVZ,TVapp
+% // for the variations
+% lvic:="
+% newLigneVariations(btex $\\hbox{ Variations of }\\atop{\\displaystyle ";
+
+%\end{VerbatimOut}
+
+
+
+%% ou si vous prfrez que ni signe ni variation n'apparaissent
+
+
+
+% \begin{VerbatimOut}{config.cxx}
+
+% // POUR LES TV, TVI,TVZ,TVapp,TSq,TSa
+% // pour la ligne signe
+% lsic:="
+% newLigneSignes(btex ${\\displaystyle ";
+
+% // POUR LES TV, TVI,TVZ,TVapp
+% // pour la ligne variation
+% lvic:="
+% newLigneVariations(btex ${\\displaystyle ";
+
+% \end{VerbatimOut}
+
+
+
+\end{lstlisting}
+}
+
+
+
+Vous le placerez dans la mme arborescence que \texttt{tablor.sty} et le modifierez si besoin est.
+
+\subsubsection*{Rle}
+
+\begin{itemize}
+\item La premire partie permet de configurer le prambule \texttt{tex} qui sera utilis par
+\texttt{MetaPOST} pour crer les tableaux. La ligne contenant
+l'extension des fontes est en particulier optionnelle~:~vous pouvez la
+modifier, voire la supprimer selon vos choix de fontes;
+
+
+\item si vous utilisez \texttt{ Microsoft-Windows}, il faudra dcommenter la
+ligne spcifie afin que les commandes \texttt{unix} soient remplaces
+automatiquement par des commandes \texttt{dos};
+
+
+\item l'diteur sera appel dans certains cas pour modifier
+ l'aspect des tableaux dans les fichiers sources \texttt{MetaPOST}. Il faudra choisir un diteur
+ comme par exemple \texttt{emacs, xemacs, texmaker, vi, winshell, notepad, vim, kate, gedit,
+ textmate,texshop}, \texttt{kile}, etc.
+Pour viter certains problmes, choisissez un autre diteur que celui
+que vous utilisez pour \LaTeX{} afin que la fentre s'ouvre sans problme.
+
+Voir aussi le paragraphe~\ref{modif};
+
+\item par dfaut, on voit apparatre dans la premire colonne des tableaux ~signe de ~ ou
+ ~variations de ~. Vous pouvez modifier ces rglages ici comme indiqu; deux exemples sont
+ donns~:~en anglais ou en n'crivant que les expressions.
+
+\item on peut rgler l'epsilon de XCAS qui fixe le
+seuil du zro des flottants. Il est rgl $10^{-100}$ par dfaut.
+\end{itemize}
+
+
+\subsection{Initialisation de \texttt{tablor} et prfixe des tableaux}\label{prefix}
+
+
+Les fichiers \texttt{MetaPOST} des tableaux sont regroups dans un fichier de suffixe
+\texttt{\_Tab.mp}. Le prfixe est par dfaut celui du fichier \texttt{tex} appelant
+\texttt{tablor}. Il est possible, pour des raisons de classement personnel, de modifier ce prfixe
+la suite du \verb+\begin{document}+ en entrant~:
+
+ \begin{lstlisting}
+\initablor
+ \end{lstlisting}
+
+si l'on veut avoir comme prfixe le prfixe courant (obtenu par \verb+\jobname+) ou bien~:
+
+ \begin{lstlisting}
+\initablor[Waouh]
+ \end{lstlisting}
+
+si l'on veut que le fichier \texttt{MetaPOST} des tableaux s'appelle \verb+Waouh\_Tab.mp+
+
+\medskip
+
+Si tout s'est bien pass, on doit supprimer les fichiers \texttt{log} de \texttt{MetaPOST} et clore le
+fichier \texttt{\_Tab.mp} en entrant juste avant \verb+\end{document}+ la commande~:
+
+\begin{lstlisting}
+ \nettoyer
+\end{lstlisting}
+
+
+ou bien, selon les cas~:
+
+\begin{lstlisting}
+\nettoyer[Waouh]
+ \end{lstlisting}
+
+
+
+\medskip
+
+\textbf{En rsum}, notre fichier \texttt{tex} aura cette ossature~:
+
+
+\begin{lstlisting}
+\documentclass{article}
+\usepackage{graphicx}
+\usepackage[french]{babel} % or eunozer langouage
+\usepackage[xcas]{tablor} % options modifiables
+
+\begin{document}
+
+\initablor
+
+...
+
+\nettoyer
+
+\end{document}
+\end{lstlisting}
+
+
+\section{Facteur de rduction}
+
+Si vous trouvez le tableau trop grand, vous pouvez utilisez la commande
+\verb+\ech{nombre}+ o \texttt{nombre} reprsente le coefficienr de
+rduction ou d'agrandissement du tableau.
+
+Par exemple, comparez~:
+
+ \begin{lstlisting}
+\begin{TV}
+TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv)
+\end{TV}
+ \end{lstlisting}
+
+ \begin{center}
+
+
+\begin{TV}
+TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv)
+\end{TV}
+
+\end{center}
+
+et
+
+ \begin{lstlisting}
+\ech{0.7}
+\begin{TV}
+TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv)
+\end{TV}
+\ech{1}
+ \end{lstlisting}
+
+ \begin{center}
+
+ \ech{0.7}
+\begin{TV}
+TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv)
+\end{TV}
+\ech{1}
+
+\end{center}
+
+\begin{figure}[!h]
+ \begin{DANGER}{Remise l'chelle 1}
+ N'oubliez pas de remettre l'chelle 1 en entrant la
+ suite de l'environnement \verb+\ech{1}+
+ \end{DANGER}
+ \end{figure}
+
+
+
+\section{Tableaux en couleur}
+
+Grce la trs efficace intervention de \texttt{fp} du forum
+\href{http://forum.mathematex.net/latex-f6/tableau-de-variations-redige-en-bleu-t10826.html}{\texttt{mathematex}},
+on peut prsent avoir des tableaux en couleur. Cette couleur est noire
+par dfaut. Si on veut gayer sa prsentation, on utilise la commande
+\verb+\coultab{couleur}+ o \verb+couleur+ est le nom de la couleur
+dsire selon les standards \textbf{MetaPOST}~:
+\begin{itemize}
+\item \verb+blue+, \verb+red+, \verb+green+, etc.
+\item pour les gris : \verb+0.1white+, \verb+0.2white+, etc.
+\item un code RGB : \verb+(0.4,0.2,1)+, etc.
+\end{itemize}
+
+\begin{lstlisting}[caption={}]
+\coultab{blue}
+\begin{TV}
+TV([0,2],[],"f","x",x^2,1,n,\tv)
+\end{TV}
+\end{lstlisting}
+
+
+\coultab{blue}
+\begin{center}
+ \begin{TV}
+ TV([0,2],[],"f","x",x^2,1,n,\tv)
+ \end{TV}
+ \end{center}
+\coultab{black}
+
+
+
+
+
+\section{Nom des fonctions et commandes \LaTeX{}}
+
+Si vous voulez donner un nom de fonction ncessitant l'emploi d'une
+commande \LaTeX{}, il faudra utiliser le caractre \verb+@+ au lieu de
+\verb+\+.
+
+Par exemple, pour nommer une fonction $\varphi$, il faudra entrer
+\verb+@varphi+~:
+
+
+\begin{lstlisting}
+\begin{TSq}
+TSq("@varphi",[-45*x-27],[2-x],[-infinity,+infinity],n,\tv)
+\end{TSq}
+\end{lstlisting}
+
+
+\begin{center}
+
+\begin{TSq}
+TSq("@varphi",[-45*x-27],[2-x],[-infinity,+infinity],n,\tv)
+\end{TSq}
+
+\end{center}
+
+
+
+\section{Utilisation du moteur Xe\LaTeX}
+
+
+On peut prsent compiler via Xe\LaTeX{} en utilisant l'extension ddie
+\verb+tablor-xetex.sty+ qui ne fonctionnera que dans un environnement
+UNIX puisqu'elle utilise un script \texttt{shell} pour convertir les
+sorties MetaPOST en \texttt{pdf} :
+
+
+\begin{lstlisting}
+
+\ifxetex
+
+\begin{filecontents*}{convert-mp-pdf.sh}
+#!/bin/sh
+mpost -interaction nonstopmode $1 ;
+
+cat>$1.tex<<EOF
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage[frenchb]{babel}
+\usepackage{graphicx}
+\usepackage{pst-eps}
+\thispagestyle{empty}
+\begin{document}
+\begin{TeXtoEPS}
+\includegraphics{$1.0}
+\end{TeXtoEPS}
+\end{document}
+EOF
+latex $1
+dvips -o $1.eps -E $1.dvi
+epstopdf $1.eps;
+## Fin de convert-mp-pdf.sh
+\end{filecontents*}
+
+%$>>
+
+
+\immediate\write18{chmod 775 ./convert-mp-pdf.sh}
+
+\fi
+
+\end{lstlisting}
+
+
+
+Il n'y a rien faire. Cette version peut mme tre utilise avec
+pdf\LaTeX{} ou pdf\TeX{}~!
+
+
+
+
+\section{Tableaux des variations}
+
+\subsection{Tableau standard}
+
+L'environnement s'appelle \texttt{TV}. On utilise une commande au format \texttt{XCAS}~:
+
+
+\xcas
+
+\begin{lstlisting}
+TV([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,lignes,trigo,\tv)
+\end{lstlisting}
+
+\begin{itemize}
+
+\item \texttt{[borne inf,borne sup]} dsigne les bornes de l'ensemble de
+ dfinition.
+
+On note
+ $+\infty$~:~\texttt{+infinity} et $-\infty$~:~\texttt{-infinity}. N'oubliez pas
+ les crochets~!
+\item \texttt{[valeurs interdites]} dsigne la liste des valeurs interdites~;
+\item \texttt{"nom fonction"} dsigne la lettre reprsentant la fonction telle que vous voulez
+ qu'elle apparaisse : $f$, $g$, $\varphi$, etc.
+\item \texttt{"nom variable"}~:~mme chose pour la variable, selon que vous voulez la dsigner par
+ $x$, $t$, etc. N'oubliez pas les guillemets~!
+\item \texttt{expression en fonction de x} dsigne l'expression de la fonction. Attention~! Utilisez
+ ici toujours $x$ pour dsigner la variable~;
+\item le paramtre \texttt{lignes} est remplacer par 1 si vous voulez voir apparatre une ligne
+ avec le signe de la drive, par 0 si vous ne voulez pas de cette ligne et par 2 si vous ne voulez
+ que le signe de la drive~;
+\item le paramtre \texttt{trigo} est remplacer par \texttt{t} si la
+ fonction tudie est trigonomtrique et par tout autre symbole sinon~;
+\item on termine par \verb+\tv+, une commande permettant de numroter les tableaux en interne.
+
+\end{itemize}
+
+\lat
+
+Voyons prsent quelques exemples.
+
+\begin{enumerate}
+\item Le tableau de variation sans signe de la drive de la fonction $f~:~x\mapsto x^2$ sur $[-5;7]$.
+
+
+On obtient~:
+
+\begin{TV}
+TV([-5,7],[],"f","x",x^2,0,n,\tv);
+\end{TV}
+
+
+aprs avoir entr~:
+
+\begin{lstlisting}
+\begin{TV}
+TV([-5,7],[],"f","x",x^2,0,n,\tv)
+\end{TV}
+\end{lstlisting}
+
+
+
+\item Si on veut la mme fonction sur \textbf{R} avec le signe de la drive~:
+
+ \begin{lstlisting}
+\begin{TV}
+TV([-infinity,+infinity],[],"f","x",x^2,1,n,\tv)
+\end{TV}
+ \end{lstlisting}
+
+\begin{TV}
+TV([-infinity,+infinity],[],"f","x",x^2,1,n,\tv)
+\end{TV}
+
+\item Avec la mme fonction sur \textbf{R} avec uniquement le signe de la drive~:
+
+
+
+ \begin{lstlisting}
+\begin{TV}
+TV([-infinity,+infinity],[],"f","x",x^2,2,n,\tv)
+\end{TV}
+ \end{lstlisting}
+
+\begin{TV}
+TV([-infinity,+infinity],[],"f","x",x^2,2,n,\tv)
+\end{TV}
+
+
+
+
+\item Voici ce que cela donne pour $g~:~t\mapsto \frac{t^2}{t^2-1}$ sur $[-10; +\infty[$~:
+
+ \begin{lstlisting}
+\begin{TV}
+TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv)
+\end{TV}
+ \end{lstlisting}
+
+ \begin{center}
+
+
+\begin{TV}
+TV([-10,+infinity],[-1,1],"g","t",x^2/(x^2-1),1,n,\tv)
+\end{TV}
+
+\end{center}
+
+
+\item Pour la fonction $x\mapsto \sin(x)+\frac{1}{2}$ on n'oublie pas le
+ paramtre \texttt{t}~:
+
+ \begin{lstlisting}
+\begin{TV}
+TV([-pi,pi],[],"g","t",sin(x)+1/2,1,t,\tv)
+\end{TV}
+ \end{lstlisting}
+
+ \begin{center}
+\begin{TV}
+TV([-pi,pi],[],"g","t",sin(x)+1/2,1,t,\tv)
+\end{TV}
+\end{center}
+
+
+
+
+\item Il y aura des problmes pour des quations $f'(x)=0$ que \texttt{XCAS} ne saurait pas rsoudre
+ de manire formelle. Il faudrait alors utiliser une rsolution numrique et remplacer
+ \texttt{resoudre} par \texttt{fsolve}. Mais dans les tudes demandes au Bac, l'tude des signes
+ de la drive est possible formellement. Dans les cas plus exotiques, on peut faire le tableau ~
+ la main~.
+\end{enumerate}
+
+
+
+\subsection{Tableaux dont on ne connat qu'une liste d'images}
+
+Au dbut du cours de Seconde, il peut tre utile de crer des tableaux
+partir de liste d'images.
+
+On rentre la liste des abscisses, la liste des ordonnes avec
+ventuellement les limites gauche et droite des valeurs interdites,
+les valeurs interdites ventuelles, le nom de la fonction et le nom de
+la variable.
+
+\subsubsection{Sans valeur interdite}
+
+\begin{lstlisting}
+\begin{TVS}
+TVS([1,2,3,4],[-1,5,2,9],[],"f","x",\tv)
+\end{TVS}
+\end{lstlisting}
+
+\begin{TVS}
+TVS([1,2,3,4],[-1,5,2,9],[],"f","x",\tv)
+\end{TVS}
+
+\subsubsection{Avec valeurs interdites}
+
+
+\begin{lstlisting}
+ \begin{TVS}
+TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",\tv)
+\end{TVS}
+\end{lstlisting}
+
+\begin{TVS}
+TVS([1,2,3,4],[-1,-infinity,+infinity,2,9],[2],"f","x",\tv)
+\end{TVS}
+
+
+\begin{lstlisting}
+ \begin{TVS}
+TVS([1,2,3,4],[-1,-infinity,+infinity,2,+infinity],[1,2,4],"f","x",\tv)
+\end{TVS}
+\end{lstlisting}
+
+
+
+\begin{TVS}
+TVS([1,2,3,4],[-1,-infinity,+infinity,2,+infinity],[1,2,4],"f","x",\tv)
+\end{TVS}
+
+\subsection{Tableau de variation avec ~zone(s) interdite(s)~}
+
+
+Pour certaines fonctions, tout un (ou plusieurs) intervalle(s) est(sont) exclu(s) de l'ensemble de dfinition.
+
+Par exemple, la fonction $x\mapsto \sqrt{x^2-1}$ est dfinie sur $]-\infty; -1]\cup[1;
++\infty[$.
+
+On utilise alors l'environnement \texttt{TVZ} (Z comme zone...).
+
+
+\begin{lstlisting}
+\begin{TVZ}
+ TVZ([-infinity,+infinity],[],[[-1,1]],"@varphi","x",sqrt(x^2-1),1,n,\tv)
+\end{TVZ}
+\end{lstlisting}
+
+
+\begin{center}
+ \begin{TVZ}
+ TVZ([-infinity,+infinity],[],[[-1,1]],"@varphi","x",sqrt(x^2-1),1,n,\tv)
+\end{TVZ}
+\end{center}
+
+
+\begin{figure}[!h]
+ \begin{DANGER}{Listes des intervalles interdits}
+ Le troisime argument est une liste d'intervalles : la liste des ~zones interdites~
+ qui peut ventuellemnt se rduire un seul intervalle comme dans l'exemple prcdent.
+ \end{DANGER}
+ \end{figure}
+
+Voici un exemple comportant plusieurs zones interdites~:~$x\mapsto
+\ln\big((x-5)^2-1\big)+\ln\big(x^2-1\big)$
+
+
+\begin{lstlisting}
+\begin{TVZ}
+ TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,n,\tv)
+\end{TVZ}
+\end{lstlisting}
+
+
+
+\begin{center}
+ \begin{TVZ}
+ TVZ([-infinity,+infinity],[-1,1,4,6],[[-1,1],[4,6]],"f","x",ln((x-5)^2-1)+ln(x^2-1),1,n,\tv)
+\end{TVZ}
+\end{center}
+
+
+\subsection{Tableau des variations avec thorme des valeurs intermdiaires}
+
+Si l'on veut mettre en vidence les solutions de l'quation $f(x)=a$, on utilise l'environnement
+\texttt{TVI}.
+
+La syntaxe est~:
+
+\begin{lstlisting}
+TVI([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,a,trigo,\tv)
+\end{lstlisting}
+
+Les paramtres sont les mmes que pour \texttt{TV} mais on ajoute la valeur \texttt{a} bien sr.
+
+
+Par exemple, pour $f~:~x\mapsto \frac{x^2}{x^2-1}$ et l'quation $f(x)=10$ on entre~:
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+
+et on obtient~:
+
+\ech{0.9}
+\begin{TVI}
+TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,n,\tv)
+\end{TVI}
+\ech{1}
+
+Les solutions sont notes $\alpha_1$, $\alpha_2$, etc.
+
+Si l'quation est plutt $f(x)=-1$~:
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+
+et on obtient~:
+
+\begin{TVI}
+TVI([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,n,\tv)
+\end{TVI}
+
+
+
+
+\subsection{Tableau des variations avec thorme des valeurs
+ intermdiaires et racines sous forme exacte}
+
+Si l'on veut mettre en vidence les solutions de l'quation $f(x)=a$ et
+qu'on veut faire apparatre les racines sous forme exacte et pas
+seulement sous forme d'$\alpha_i$, on utilise l'environnement
+\texttt{TVIex}.
+
+La syntaxe est la mme que \texttt{TVI}~:
+
+\begin{lstlisting}
+TVIex([borne inf,borne sup],[valeurs interdites],"nom fonction","nom variable",expression en fonction de x,t,a,trigo,\tv)
+\end{lstlisting}
+
+Les paramtres sont les mmes que pour \texttt{TV} mais on ajoute la valeur \texttt{a} bien sr.
+
+
+Par exemple, pour $f~:~x\mapsto \frac{x^2}{x^2-1}$ et l'quation $f(x)=10$ on entre~:
+
+\begin{lstlisting}
+\begin{TVIex}
+TVIex([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,n,\tv)
+\end{TVIex}
+\end{lstlisting}
+
+
+et on obtient~:
+
+\ech{0.9}
+\begin{TVIex}
+TVIex([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,10,n,\tv)
+\end{TVIex}
+\ech{1}
+
+Si l'quation est plutt $f(x)=-1$~:
+
+
+\begin{lstlisting}
+\begin{TVIex}
+TVIex([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,n,\tv)
+\end{TVIex}
+\end{lstlisting}
+
+
+et on obtient~:
+
+\begin{TVIex}
+TVIex([-10,+infinity],[-1,1],"f","x",x^2/(x^2-1),1,-1,n,\tv)
+\end{TVIex}
+
+Avec une quation trigonomtrique~:
+
+\begin{lstlisting}
+\begin{TVIex}
+TVIex([-pi,pi],[],"@cos","x",cos(x),1,1/2,t,\tv)
+\end{TVIex}
+\end{lstlisting}
+
+\begin{TVIex}
+TVIex([-pi,pi],[],"@cos","x",cos(x),1,1/2,t,\tv)
+\end{TVIex}
+
+
+\begin{figure}[!h]
+ \begin{DANGER}{Racines formelles non calculables}
+ XCAS peut ne pas pouvoir trouver une expression exacte des racines
+ et affichera un message barbare du style~:
+
+\texttt{Unable to isolate x in ...}
+
+Le tableau ne sera alors pas construit et vous aurez un message d'erreur.
+ \end{DANGER}
+ \end{figure}
+
+
+\subsection{Tableaux de variations avec approximation des zros de la drive}
+
+Il n'est parfois pas possible d'obtenir une valeur formelle des zros de la drive. On est donc
+amen rechercher une approximation numrique de ces zros. Cela est possible grce la commande
+\texttt{fsolve} de \texttt{XCAS} utilise bon escient. On appelera les environnements \texttt{TVapp} et
+\texttt{TVIapp} ainsi que leurs associs toils.
+
+Voyons sur un exemple.
+
+\subsubsection*{Exemple}
+
+On veut rsoudre l'quation $\ln(x)=\mathrm{e}^{-x}$ sur $]0,+\infty[$.
+
+Soit $g$ la fonction $x\mapsto x\ln(x)-e^{-x} $.
+
+
+\begin{lstlisting}
+\begin{TVapp}
+TVapp([0,+infinity],[0],"g","x",x*ln(x)-exp(-x),1,\tv)
+\end{TVapp}
+\end{lstlisting}
+
+
+\begin{center}
+\begin{TVapp}
+TVapp([0,+infinity],[0],"g","x",x*ln(x)-exp(-x),1,\tv)
+\end{TVapp}
+\end{center}
+
+
+\begin{figure}[!h]
+ \begin{DANGER}
+ {TVapp et TVIapp ne sont pas infaillibles~!~!}
+
+Chercher \emph{toutes} les approximations des racines de la drives
+c'est se lancer dans la thorie du tout c'est--dire concilier la
+ recherche de solutions approches pouvant tre extrmement proches
+sur des intervalles pouvant tre extrmement tendus. Un concepteur
+de logiciel de calcul formel s'y refuse. Je devais m'y coller par souci
+d'efficacit.
+ Normalement, le code
+devrait fonctionner pour \emph{la plupart} des cas tudis par des profs pas
+trop sadiques. a ralentit lgrement la compilation. Le balayage se
+fait avec une prcision de
+0,1. C'est sr qu'on peut trouver de nombreux exemples qui ne
+fonctionneront pas mais plus on veut resserrer les mailles du filet,
+plus on passe de temps les tricoter sauf dans le cas des fonctions
+polynomiales grce XCAS.
+
+ Se pose aussi le problme des
+images et des tests de signes et de leurs approximations. Par exemple
+
+\begin{lstlisting}
+\begin{TVapp}
+TVapp([0,+infinity],[0],"g","x",1/3*x^3-0.0015*x^2+2e-06*x,1,\tv)
+\end{TVapp}
+\end{lstlisting}
+
+renvoie un tableau curieux car les images des racines de la drives
+sont de l'ordre de $10^{-10}$.
+
+
+% \begin{TVapp}
+% TVapp([0,+infinity],[0],"g","x",1/3*x^3-0.0015*x^2+2e-06*x,1,\tv)
+% \end{TVapp}
+
+a peut s'arranger en donnant en argument supplmentaire le nombre de
+chiffres affichs. Cela rendrait les diffrentes versions incompatibles
+et le jeu n'en vaut pas forcment la chandelle.
+ \end{DANGER}
+ \end{figure}
+
+
+
+
+\subsection{Tableaux de variations de fonctions prolongeables par continuit}
+
+On peut avoir prolonge une fonction par continuit et donc ne plus
+avoir de double barre sur la ligne des variations mais toujours une sur
+la ligne du signe de la drive.
+
+On entre trois listes~:
+\begin{enumerate}
+\item les bornes de l'intervalle d'tude, comme toujours~;
+\item les valeurs o la fonction sera prolonge par continuit~;
+\item les valeurs o la fonction n'est pas drivable.
+\end{enumerate}
+
+Cela donne pour $x\mapsto {\rm e}^{-1/x^2}$~:
+
+
+\begin{lstlisting}
+\begin{TVPC}
+TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,\tv);
+\end{TVPC}
+\end{lstlisting}
+
+
+\begin{TVPC}
+TVPC([-infinity,+infinity],[0],[0],"g","t",e^(-1/x^2),1,n,\tv);
+\end{TVPC}
+
+
+
+\subsection{Tableaux de variations et courbes paramtres}
+
+On peut obtenir le tableau de variations correspondant des courbes paramtres dfinies par un
+systme du type~:
+
+\[\begin{cases} x=f(t) \\
+ y=g(t)
+\end{cases}\]
+
+La syntaxe est la suivante~:
+
+\begin{lstlisting}
+ \begin{TVP}
+TVP(IE,VI,["x","y"],"t",[x(t),y(t)],a,trigo,n,\tv)
+ \end{TVP}
+\end{lstlisting}
+
+
+avec \texttt{IE} l'intervalle d'tude, \texttt{VI} la liste des listes de valeurs interdites
+respectives pour les deux fonctions, \texttt{a} pour avoir un tableau complet ou partiel comme dans
+les autres "TV", enfin \texttt{trigo} qui vaut \texttt{t} si interviennent des
+fonctions trigonomtrqiues, autre chose
+sinon.
+
+
+\begin{figure}[!h]
+ \begin{DANGER}{Version de XCAS}
+ L'utilisation de TVP implique l'utilisation d'une version de XCAS d'une date postrieure au 14 juin
+ 2008 !
+ \end{DANGER}
+ \end{figure}
+
+
+\subsubsection{Cas des fonctions trigonomtriques}
+
+tudions par exemple sur $\left[0\ ;\ \frac{\pi}{2}\right]$
+
+
+\[
+\begin{cases} x(t)=\cos(3t) \\
+ y(t)=\sin(4t)
+\end{cases}\]
+
+\begin{lstlisting}
+
+ \begin{TVP}
+ TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
+ \end{TVP}
+
+\end{lstlisting}
+
+ \begin{TVP}
+ TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
+ \end{TVP}
+
+
+
+\subsubsection{Les autres cas}
+
+
+
+tudions par exemple sur $]-\infty\ ;\ +\infty[$
+
+
+\[
+\begin{cases}
+x(t)=\frac{t^2}{(t+1)(t-2)} \\
+y(t)=\frac{t^2(t+2)}{t+1}
+\end{cases}
+\]
+
+\begin{lstlisting}
+\begin{TVP}
+TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,\tv)
+\end{TVP}
+\end{lstlisting}
+
+
+
+\begin{TVP}
+TVP([-infinity,+infinity],[[-1,2],[-1]],["x","y"],"t",[t^2/((t+1)*(t-2)),t^2*(t+2)/(t+1)],1,n,\tv)
+\end{TVP}
+
+
+
+\section{Tableaux de signes}
+
+
+\subsection{Cas du produit de deux facteurs affines}
+
+Pour tudier le signe de $(-2x+3)(-x+5)$ sur \textbf{R}, on entre~:
+
+\begin{lstlisting}
+\begin{TSa}
+ TSa(-2,3,-1,5,\tv);
+\end{TSa}
+\end{lstlisting}
+
+
+On obtient~:
+
+\begin{TSa}
+TSa(-2,3,-1,5,\tv);
+\end{TSa}
+
+
+\subsection{Cas du produit d'un nombre quelconque de facteurs quelconques sur un intervalle quelconque}
+
+
+
+
+\begin{figure}[!h]
+ \begin{DANGER}{Nouveaut partir de la version 2.08}
+Par souci de cohrence avec l'environnement TSq, on doit rajouter maintenant en premier argument le
+nom de la fonction produit dans l'environnement TS.
+ \end{DANGER}
+ \end{figure}
+
+
+
+
+
+
+
+
+Certains cas pathologiques ne vont pas fonctionner, mais sinon, pour tudier le signe de
+\[(-2x+3)(x^2-1)(x^2+1)(x-1)(x^2-2)\] on entre cette fois les expressions sous cette forme en
+prcisant l'intervalle d'tude~:
+
+\begin{lstlisting}
+\begin{TS}
+ TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],n,\tv);
+\end{TS}
+\end{lstlisting}
+
+On obtient~:
+
+
+\begin{TS}
+ TS("P",[-2*x+3,x^2-1,x^2+1,x-1,x^2-2],[-infinity,+infinity],n,\tv);
+\end{TS}
+
+
+
+Ou bien, sur un intervalle born~:
+
+\begin{lstlisting}
+\begin{TS}
+TS("f",[x-10,x+10],[-15,10],n,\tv)
+\end{TS}
+\end{lstlisting}
+
+
+\begin{TS}
+TS("f",[x-10,x+10],[-15,10],n,\tv)
+\end{TS}
+
+
+
+\subsection{Signe d'un quotient}
+
+On entre dans deux listes diffrentes les facteurs du numrateur et du dnominateur~:
+
+
+\begin{lstlisting}
+\begin{TSq}
+TSq("nom du quotient",[liste des facteurs du numrateur],[liste des facteurs du dnominateur],[inf,sup],trigo,\tv)
+\end{TSq}
+\end{lstlisting}
+
+Par exemple, pour tudier le signe de $\frac{(-2x+3)(-4x+5)}{(x^2-16)(x-2)}$ sur \textbf{R}~:
+
+\begin{lstlisting}
+\begin{TSq}
+TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],n,\tv)
+\end{TSq}
+\end{lstlisting}
+
+
+
+
+\begin{TSq}
+TSq("Q",[-2*x+3,-4*x+5],[x^2-16,x-2],[-infinity,+infinity],n,\tv)
+\end{TSq}
+
+ Sur un intervalle born~:
+
+\begin{lstlisting}
+\begin{TSq}
+TSq("Q",[x-10,x-5],[x+10,x+3],[-10,10],n,\tv)
+\end{TSq}
+\end{lstlisting}
+
+
+\begin{TSq}
+TSq("Q",[x-10,x-5],[x+10,x+3],[-10,10],n,\tv)
+\end{TSq}
+
+
+
+
+\subsection{Signe d'une seule expression}
+
+
+On utilise l'environnement \texttt{TSc} comme \emph{Tableau de Signe court} en prcisant
+l'expression tudie, l'intervalle considr et les valeurs interdites~:
+
+\begin{lstlisting}
+\begin{TSc}
+TSc((x-10)*(x+5),[-10,10],[],n,\tv)
+\end{TSc}
+\end{lstlisting}
+
+
+
+\begin{TSc}
+TSc((x-10)*(x+5),[-10,10],[],n,\tv)
+\end{TSc}
+
+avec valeurs interdites~:
+
+\begin{lstlisting}
+\begin{TSc}
+TSc((x+10)/((x-5)*(x-2)),[-10,5],[2,5],n,\tv)
+\end{TSc}
+\end{lstlisting}
+
+
+\begin{TSc}
+TSc((x+10)/((x-5)*(x-2)),[-10,5],[2,5],n,\tv)
+\end{TSc}
+
+valeurs interdites et fonction trigonomtrique~:
+
+\begin{lstlisting}
+\begin{TSc}
+TSc(tan(x),[0,2*pi],[pi/2,3*pi/2],t,\tv)
+\end{TSc}
+\end{lstlisting}
+
+
+\begin{TSc}
+TSc(tan(x),[0,2*pi],[pi/2,3*pi/2],t,\tv)
+\end{TSc}
+
+
+\section{Comment modifier les tableaux partir des fichiers MetaPOST~?}\label{modif}
+
+
+\subsection{Tableau par tableau}
+
+Il est impossible de prvoir toutes les requtes des diffrents utilisateurs. Le style du tableau
+produit peut nanmoins vous dplaire. Vous pouvez le modifier en intervenant directement sur le
+fichier \texttt{MetaPOST} cr pour chaque tableau. Pour cela, il suffit d'ajouter une toile au nom de
+l'environnement utilis et de donner un numro votre nouvelle figure pour qu'elle ne soit pas
+crase par les compilations suivantes. Numrotez partir de 100 par exemple.
+
+Si vous tapez~:
+
+\begin{lstlisting}
+\begin{TV*}{100}
+ TV([-1,+infinity],[],"f","x",x-ln(x+1),1,n,\tv)
+\end{TV*}
+\end{lstlisting}
+
+l'diteur que vous avez mis en option (voir le paragraphe~\ref{option}) est directement lanc et le fichier
+\texttt{MetaPOST} correspondant votre tableau qui portera le numro 100
+est affich. Vous pouvez alors le modifier, taper sur \Ctrl + \keystroke{S} pour l'enregistrer et
+\Ctrl + \keystroke{Q} pour fermer l'diteur\footnote{Ces combinaisons de touches correspondent la
+ plupart des diteurs mais ne sont pas universelles : vrifiez pour celui que vous avez choisi.}. La compilation s'achve alors automatiquement comme
+pour un environnement non toil.
+
+\begin{figure}[!h]
+ \begin{DANGER}{Choix de l'diteur}
+ vitez de choisir votre diteur habituel~:~sur
+ \texttt{Linux} prenez par exemple \texttt{gedit} ou
+ \texttt{kate}, sur \texttt{Windows} prenez
+ \texttt{wordpad}, etc.
+ \end{DANGER}
+ \end{figure}
+
+
+
+Par exemple, je tape~:
+
+\begin{lstlisting}
+\begin{TS*}{100}
+ TS("F",[3*x+2,5*x^2-1],[-50,50],n,\tv)
+\end{TS*}
+\end{lstlisting}
+
+
+et apparat une fentre de l'diteur (ici \TeX maker) avec le fichier correspondant au tableau. Je le modifie
+volont~:
+
+\begin{center}
+ \includegraphics[height=9cm]{capture.eps}
+\end{center}
+
+
+Je tape sur \Ctrl + \keystroke{S} puis \Ctrl + \keystroke{Q} et la compilation reprend
+automatiquement pour m'afficher le tableau voulu~:
+
+
+\begin{center}
+ \begin{TS*}{105}
+ TS("F",[3*x+2,5*x^2-1],[-50,50],n,\tv)
+ \end{TS*}
+\end{center}
+
+
+
+Une fois la modification faite, on ne vous redemandera pas d'effectuer de modifications, sauf si
+vous changez le numro de la figure.
+
+\subsection{Traitement global dans un unique fichier MetaPOST}\label{global}
+
+Un fichier \texttt{prfixe\_Tab.mp} est cr o sont copis les sources de chaque tableau. Vous pouvez
+ainsi retravailler globalement sur les tableaux si besoin ou les transmettre une personne n'ayant
+pas install \texttt{XCAS}. Voir le paragraphe~\ref{prefix} pour plus de dtails.
+
+
+\section{Merci...}
+
+\begin{itemize}
+
+\item \href{http://frederic.mazoit.free.fr/LaTeX\_metapost/tableauVariations/}{Frdric \textsc{Mazoit}} pour son fichier \texttt{tableauVariation.mp};
+
+\item \href{http://www.yvesdelhaye.be/?Generateur-d-interrogations-le}{Yves \textsc{Delhaye}} pour ses ides sur le \texttt{shell-escape}
+
+\item \href{http://www-fourier.ujf-grenoble.fr/\%7Eparisse/giac\_fr.html}{Bernard
+ \textsc{Parisse}} pour \texttt{XCAS};
+
+\item Jean-Michel \textsc{Boucart} pour ses prcieuses et efficaces
+ amliorations de la partie \LaTeX{} du code.
+
+
+\end{itemize}
+
+
+\section{Erreurs habituelles}
+
+
+Avez-vous rendu possible le \texttt{shell-escape}~? Avez-vous install
+toutes les extensions listes en dbut de ce document~? Est-ce que \texttt{XCAS}
+ est dans votre \texttt{PATH}~?
+
+La premire chose est d'analyser le fichier \texttt{log}.
+
+En cas de problme, n'hsitez pas me contacter l'adresse indique
+sur mon site en joignant le fichier \texttt{log}.
+
+
+
+\section{\texttt{Tablor} et Emacs}
+
+Pour les heureux utilisateurs de tempo, voici quelques lignes pour faciliter votre vie rajouter
+dans un fichier \texttt{latex-tempo}:
+
+\begin{lstlisting}
+;;
+;; TABLOR
+;;;
+;cas tableau de variation
+ ("TV" (& > "\\begin{center}"n>
+ "\\begin{TV}" n>
+"TV(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
+ "["(p "liste de valeurs interdites (,) :")"],"
+ "\""(p "nom de la fonction :")"\","
+ "\""(p "nom de la variable :")"\","
+ ""(p "expression de la fonction (utiliser x) :")","
+""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
+""(p "trigo ? (t:oui, n:non) :")","
+ "\\tv)" n>
+ "\\end{TV}" n>
+ "\\end{center}" > % ))
+ ;cas TVI
+ ("TVI" (& > "\\begin{center}"n>
+ "\\begin{TVI}" n>
+"TVI(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
+ "["(p "liste de valeurs interdites (,) :")"],"
+ "\""(p "nom de la fonction :")"\","
+ "\""(p "nom de la variable :")"\","
+ ""(p "expression de la fonction (utiliser x) :")","
+""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
+""(p "trigo ? (t:oui, n:non) :")","
+ ""(p "f(x)=l pour la valeur l :")","
+ "\\tv)" n>
+ "\\end{TVI}" n>
+ "\\end{center}" > % ))
+ ;cas signe produit
+ ("TS" (& > "\\begin{center}"n>
+ "\\begin{TS}" n>
+ "TS(\""(p "nom du produit :")"\","
+ "["(p "liste des facteurs (,) :")"],"
+ "["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
+ ""(p "trigo ? (t:oui, n:non) :")","
+ "\\tv)" n>
+ "\\end{TS}" n>
+ "\\end{center}" > % ))
+ ;cas signe quotient
+ ("TSq" (& > "\\begin{center}"n>
+ "\\begin{TSq}" n>
+ "TSq(\""(p "nom du quotient :")"\","
+ "["(p "liste des facteurs du numerateur (,) :")"],"
+ "["(p "liste des facteurs du denominateur (,) :")"],"
+ "["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
+ ""(p "trigo ? (t:oui, n:non) :")","
+ "\\tv)" n>
+ "\\end{TSq}" n>
+ "\\end{center}" > % ))
+
+; Tableau signe court
+ ("TSc" (& > "\\begin{center}"n>
+ "\\begin{TSc}" n>
+ "TSc("(p "expression :")",""["
+(p "debut de l'intervalle:")","
+(p "fin de l'intervalle:")"],""["
+(p "liste de valeurs interdites (,) :")"],"""
+(p "trigo ? (t:oui, n:non) :")","
+ "\\tv)" n>
+ "\\end{TSc}" n>
+ "\\end{center}" > % ))
+
+ ;cas tableau de variation avec zone interdite
+ ("TVZ" (& > "\\begin{center}"n>
+ "\\begin{TV}" n>
+"TVZ(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
+ "["(p "liste de valeurs interdites (,) :")"],"
+ "["(p "liste des zones interdites ([,],[,]) :")"],"
+ "\""(p "nom de la fonction :")"\","
+ "\""(p "nom de la variable :")"\","
+ ""(p "expression de la fonction (utiliser x) :")","
+""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
+""(p "trigo ? (t:oui, n:non) :")","
+ "\\tv)" n>
+ "\\end{TV}" n>
+ "\\end{center}" > % ))
+;cas TVP
+ ("TVP" (& > "\\begin{center}"n>
+ "\\begin{TVI}" n>
+"TVP(["(p "debut de l'intervalle:")","(p "fin de l'intervalle:")"],"
+ "[["(p "liste de valeurs interdites de x(t)(,) :")"],"
+ "["(p "liste de valeurs interdites de y(t)(,) :")"]],"
+ "[\""(p "nom de la fonction x :")"\","
+ "\""(p "nom de la fonction y :")"\"],"
+ "\""(p "nom de la variable :")"\","
+ "["(p "expression de la fonction x (utiliser t) :")","
+ ""(p "expression de la fonction y (utiliser t) :")"],"
+""(p "type de tableau (1:complet, 0:sans signe, 2:que le signe) :")","
+ ""(p "t si fonctions trigo, n sinon :")","
+ "\\tv)" n>
+ "\\end{TVP}" n>
+ "\\end{center}" > % ))
+\end{lstlisting}
+
+Merci \href{http://phil.pham.free.fr/}{Phil Pham}.
+
+
+\section{Galerie}
+
+Voici quelques exemples de tableaux~:
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-1,+infinity],[-1],"f","x",x^2/sqrt(x+1)-1,1,2,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([-1,+infinity],[-1],"f","x",x^2/sqrt(x+1)-1,1,2,n,\tv)
+\end{TVI}
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-1/2,+infinity],[],"f","x",x^2,1,2,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+
+\begin{TVI}
+TVI([-1/2,+infinity],[],"f","x",x^2,1,2,n,\tv)
+\end{TVI}
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([0,+infinity],[0],"@ln","x",ln(x),1,2,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([0,+infinity],[0],"@ln","x",ln(x),1,2,n,\tv)
+\end{TVI}
+
+\stepcounter{TVn}
+
+\begin{lstlisting}
+\begin{TV}
+TV([1,+infinity],[],"-@ln","x",-ln(x),1,n,\tv)
+\end{TV}
+\end{lstlisting}
+
+\begin{TV}
+TV([1,+infinity],[],"-@ln","x",-ln(x),1,n,\tv)
+\end{TV}
+
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-pi,pi],[],"@cos","x",cos(x),1,1/2,t,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([-pi,pi],[],"@cos","x",cos(x),1,1/2,t,\tv)
+\end{TVI}
+
+\begin{lstlisting}
+\begin{TV}
+TV([0,2*pi],[],"@cos","x",cos(x),1,t,\tv)
+\end{TV}
+\end{lstlisting}
+
+\begin{TV}
+TV([0,2*Pi],[],"@cos","x",cos(x),1,t,\tv)
+\end{TV}
+
+
+
+
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([0,pi],[pi/2],"@tan","t",tan(x),1,7,t,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([0,pi],[pi/2],"@tan","t",tan(x),1,7,t,\tv)
+\end{TVI}
+
+
+\begin{lstlisting}
+\begin{TVIex}
+TVIex([0,pi],[pi/2],"@tan","t",tan(x),1,7,t,\tv)
+\end{TVIex}
+\end{lstlisting}
+
+\begin{TVIex}
+TVIex([0,pi],[pi/2],"@tan","t",tan(x),1,7,t,\tv)
+\end{TVIex}
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,n,\tv)
+\end{TVI}
+
+
+
+
+\begin{lstlisting}
+\begin{TVIex}
+TVIex([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,n,\tv)
+\end{TVIex}
+\end{lstlisting}
+
+\begin{TVIex}
+TVIex([-1,1],[],"f","x",(1-x)*sqrt(1-x^2),1,1,n,\tv)
+\end{TVIex}
+
+
+
+
+
+\begin{lstlisting}
+\begin{TV}
+TV([-1,+infinity],[-1],"f","x",ln(1+x)-(x-x^2/2+x^3/3),1,n,\tv)
+\end{TV}
+\end{lstlisting}
+
+\begin{TV}
+TV([-1,+infinity],[-1],"f","x",ln(1+x)-(x-x^2/2+x^3/3),1,n,\tv)
+\end{TV}
+
+
+\begin{lstlisting}
+\begin{TS}
+TS("G",[-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],n,\tv);
+\end{TS}
+\end{lstlisting}
+
+\begin{TS}
+TS("G",[-2*x+3,x-1,x+1,x^2+3*x+1],[-10,+infinity],n,\tv);
+\end{TS}
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-infinity,+infinity],[],"f","x",(x+2)*exp(x-1)-1,1,0,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([-infinity,+infinity],[],"f","x",(x+2)*exp(x-1)-1,1,0,n,\tv)
+\end{TVI}
+
+
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([-infinity,+infinity],[],"f","x",1+(-2*x+1)*exp(2*x),1,0,n,\tv)
+\end{TVI}
+
+\stepcounter{TVn}
+
+
+\begin{lstlisting}
+\begin{TV}
+TV([0,+infinity],[],"f","x",ln(exp(x)+x)-x,1,n,\tv)
+\end{TV}
+\end{lstlisting}
+
+\begin{TV}
+TV([0,+infinity],[],"f","x",ln(exp(x)+x)-x,1,n,\tv)
+\end{TV}
+
+
+
+
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([0,pi],[],"f","x",cos(x)-x,1,0,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+\begin{TVI}
+TVI([0,pi],[],"f","x",cos(x)-x,1,0,n,\tv)
+\end{TVI}
+
+\begin{lstlisting}
+\begin{TVI}
+TVI([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,n,\tv)
+\end{TVI}
+\end{lstlisting}
+
+
+
+\begin{TVI}
+TVI([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,n,\tv)
+\end{TVI}
+
+
+\begin{lstlisting}
+\begin{TVIex}
+TVIex([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,n,\tv)
+\end{TVIex}
+\end{lstlisting}
+
+
+
+\begin{TVIex}
+TVIex([0,+infinity],[0],"f","x",ln(x)-(ln(x))^2,1,-1,n,\tv)
+\end{TVIex}
+
+
+
+\begin{lstlisting}
+\begin{TSc}
+TSc((x-10)*(x+10),[-10,10],[],n,\tv)
+\end{TSc}
+\end{lstlisting}
+
+
+
+\begin{TSc}
+TSc((x-10)*(x+10),[-10,10],[],n,\tv)
+\end{TSc}
+
+
+\begin{lstlisting}
+\begin{TVZ}
+ TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,n,\tv)
+\end{TVZ}
+\end{lstlisting}
+
+ \begin{TVZ}
+ TVZ([-infinity,+infinity],[],[[-1,1]],"f","x",(sqrt(x^2-1))*(x^2-4),1,n,\tv)
+ \end{TVZ}
+
+ \begin{lstlisting}
+\begin{TVZ}
+ TVZ([-infinity,+infinity],[-1,1],[[-1,1]],"f","x",ln(x^2-1),1,n,\tv)
+\end{TVZ}
+ \end{lstlisting}
+
+ \begin{TVZ}
+ TVZ([-infinity,+infinity],[-1,1],[[-1,1]],"f","x",ln(x^2-1),1,n,\tv)
+ \end{TVZ}
+
+
+
+ \begin{lstlisting}
+\begin{TVP}
+TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
+\end{TVP}
+ \end{lstlisting}
+
+
+
+\begin{TVP}
+TVP([0,pi/2],[[],[]],["x","y"],"t",[cos(3*t),sin(4*t)],1,t,\tv)
+\end{TVP}
+
+
+\begin{lstlisting}
+\begin{TVP}
+TVP([0,2*pi],[[],[]],["x","y"],"t",[t-2*sin(t),-1+2*cos(t)],1,t,\tv)
+\end{TVP}
+\end{lstlisting}
+
+
+\begin{TVP}
+TVP([0,2*pi],[[],[]],["x","y"],"t",[t-2*sin(t),-1+2*cos(t)],1,t,\tv)
+\end{TVP}
+
+
+% \begin{lstlisting}
+% \begin{TVZ}
+% TVZ([-infinity,+infinity],[],[[-1,1],[4,6]],"f","x",sqrt((x-5)^2-1)+sqrt(x^2-1),1,n,\tv)
+% \end{TVZ}
+% \end{lstlisting}
+
+
+
+% \begin{center}
+% \begin{TVZ}
+% TVZ([-infinity,+infinity],[],[[-1,1],[4,6]],"f","x",sqrt((x-5)^2-1)+sqrt(x^2-1),1,n,\tv)
+% \end{TVZ}
+% \end{center}
+
+
+
+\begin{lstlisting}
+ \begin{TVP}
+ TVP([0,pi/2],[[],[]],["f","g"],"t",[(sin(3*t)),(sin(4*t))],1,t,\tv)
+ \end{TVP}
+\end{lstlisting}
+
+
+\begin{center}
+ \begin{TVP}
+ TVP([0,pi/2],[[],[]],["f","g"],"t",[(sin(3*t)),(sin(4*t))],1,t,\tv)
+ \end{TVP}
+ \end{center}
+
+\begin{lstlisting}
+\begin{TS}
+ TS(" f ",[cos(x)-1/2,sin(x)+1/2],[0,2*pi],t,\tv)
+\end{TS}
+\end{lstlisting}
+
+
+\begin{center}
+\begin{TS}
+ TS(" f ",[cos(x)-1/2,sin(x)+1/2],[0,2*pi],t,\tv)
+\end{TS}
+\end{center}
+
+% \begin{lstlisting}
+% \begin{TVIapp}
+% TVIapp([-1,+infinity],[-1,0],"g'","x",diff(ln(x+1)/x^2,x),1,0,\tv)
+% \end{TVIapp}
+% \end{lstlisting}
+
+% \begin{center}
+% \begin{TVIapp}
+% TVIapp([-1,+infinity],[-1,0],"g'","x",diff(ln(x+1)/x^2,x),1,0,\tv)
+% \end{TVIapp}
+% \end{center}
+
+
+
+
+% \lat
+
+% \begin{lstlisting}
+% \begin{enumerate}
+% \item
+
+% Selon le tableau de variation de la fonction $f$
+% ci-dessous, on peut affirmer que \ldots
+
+% \begin{TV}
+% TV([-5,10],[],"f","x",(5/2)*x^2-2*x+12,0,n,\tv)
+% \end{TV}
+
+% \VF
+% \begin{itemize}
+
+% \item[\ldots] 5 n'a pas d'antcdent \Rep
+% \item[\ldots] 5 n'a pas d'image \Rep
+% \item[\ldots] 5 a deux antcdents \Rep
+% \item[\ldots] 5 a une image suprieure celle de $\sqrt{2}$\Rep
+
+% \end{itemize}
+
+
+
+% \item Soit $f$ la fonction dfinie par $f~:~x\mapsto 3x^3-5x^2+2x-7$. Les tableaux suivants peuvent
+% correspondre $f$~:
+
+% \VF
+
+% \begin{enumerate}
+
+
+% \item Tableau 1 \Rep
+
+% \begin{TV}
+% TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,n,\tv)
+% \end{TV}
+
+% \item Tableau 2 \Rep
+
+% \begin{TV}
+% TV([-20,20],[],"f","x",-3*x^3+5*x^2-2*x+7,0,n,\tv)
+% \end{TV}
+
+% \item Tableau 3 \Rep
+
+% \begin{TSc}
+% TSc(-3*x^3+5*x^2-2*x+7,[-20,20],n,\tv)
+% \end{TSc}
+
+
+% \item Tableau 4 \Rep
+
+% \begin{TSc}
+% TSc(3*x^3-5*x^2+2*x-7,[-20,20],n,\tv)
+% \end{TSc}
+
+
+% \end{enumerate}
+
+% \end{enumerate}
+
+% \end{lstlisting}
+
+
+
+
+
+% \begin{enumerate}
+% \item
+
+% Selon le tableau de variation de la fonction $f$
+% ci-dessous, on peut affirmer que \ldots
+
+% \begin{TV}
+% TV([-5,10],[],"f","x",(5/2)*x^2-2*x+12,0,n,\tv)
+% \end{TV}
+
+% \VF
+% \begin{itemize}
+
+% \item[\ldots] 5 n'a pas d'antcdent \Rep
+% \item[\ldots] 5 n'a pas d'image \Rep
+% \item[\ldots] 5 a deux antcdents \Rep
+% \item[\ldots] 5 a une image suprieure celle de $\sqrt{2}$\Rep
+
+% \end{itemize}
+
+
+
+% \item Soit $f$ la fonction dfinie par $f~:~x\mapsto 3x^3-5x^2+2x-7$. Les tableaux suivants peuvent-ils
+% correspondre la fonction $f$~:
+
+% \VF
+
+% \begin{enumerate}
+
+
+% \item Tableau 1 \Rep
+
+
+% \begin{TV}
+% TV([-20,20],[],"f","x",3*x^3-5*x^2+2*x-7,0,n,\tv)
+% \end{TV}
+
+% \item Tableau 2 \Rep
+
+% \begin{TV}
+% TV([-20,20],[],"f","x",-3*x^3+5*x^2-2*x+7,0,n,\tv)
+% \end{TV}
+
+% \item Tableau 3 \Rep
+
+% \begin{TSc}
+% TSc(-3*x^3+5*x^2-2*x+7,[-20,20],n,\tv)
+% \end{TSc}
+
+
+% \item Tableau 4 \Rep
+
+% \begin{TSc}
+% TSc(3*x^3-5*x^2+2*x-7,[-20,20],n,\tv)
+% \end{TSc}
+
+
+% \end{enumerate}
+
+% \end{enumerate}
+
+
+
+% \begin{lstlisting}
+% On considre la fonction $f$ dfinie sur \textbf{R} par $f(x)=\frac{1}{2}\bigl(x+(1-x){\rm e}^{2x}\bigr)$
+
+% tudions sa drive~:
+
+
+% \begin{TVIapp}
+% TVIapp([-infinity,+infinity],[],"f'","x",diff(1/2*(x+(1-x)*exp(2*x)),x),1,0,\tv)
+% \end{TVIapp}
+
+% On en dduit le tableau de variation de $f$
+
+
+% \begin{TVapp}
+% TVapp([-infinity,+infinity],[],"f","x",1/2*(x+(1-x)*exp(2*x)),1,\tv)
+% \end{TVapp}
+% \end{lstlisting}
+
+% On considre la fonction $f$ dfinie sur \textbf{R} par $f(x)=\frac{1}{2}\bigl(x+(1-x){\rm e}^{2x}\bigr)$
+
+% tudions sa drive~:
+
+
+% \begin{TVIapp}
+% TVIapp([-infinity,+infinity],[],"f'","x",diff(1/2*(x+(1-x)*exp(2*x)),x),1,0,\tv)
+% \end{TVIapp}
+
+% On en dduit le tableau de variation de $f$
+
+
+% \begin{TVapp}
+% TVapp([-infinity,+infinity],[],"f","x",1/2*(x+(1-x)*exp(2*x)),1,\tv)
+% \end{TVapp}
+
+
+
+
+\pagebreak
+
+\tableofcontents
+
+\nettoyer
+
+
+
+%\bouger{/home/moi/Desktop/}
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End: