summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/ketcindy/ketlib
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-06-24 21:05:25 +0000
committerKarl Berry <karl@freefriends.org>2019-06-24 21:05:25 +0000
commit6df3fe57362cbe88636ba77df481c3329fcdd66f (patch)
tree4193e5de76d13069a1cf83f6aea42386f9a7f271 /Master/texmf-dist/scripts/ketcindy/ketlib
parent210b1a78e3075d3c7a5aefa3aac2683de9281af8 (diff)
ketcindy (24jun19)
git-svn-id: svn://tug.org/texlive/trunk@51444 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/ketcindy/ketlib')
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt38
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs1041
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt52
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs2441
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt77
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs6669
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3logr.txt61
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3r.cs4162
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt7
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt4
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs10
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt11
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs90
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r86
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r80
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r671
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/maximaL/pdefourier.mac1199
17 files changed, 9592 insertions, 7107 deletions
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
index d95eabc503f..169d22e7674 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
@@ -1,3 +1,41 @@
+// 20190511
+// Start3d changed (KetcindyDataList initialized)
+// 20190506
+// Skeletonparadata debugged ( parseparse for pfe3d )
+// Vertexedgeface debugged (vname)
+// 20190505
+// Xyzax3data changed ( Lightarrowdata used,"axx,axy,axz" generated )
+// isselected changed to Ptselected
+// text(pt) => pt.name
+// PointonCurve => Poinoncurve
+// Makeskeletondata changed (floor() => re(floor())
+// 20190504
+// Ketinit3d changed (Slider part moved to Start3d)
+// Start3d changed ( optionjs (slider,removept) added )
+// Start3d debugged ( SLIDEFLG )
+// 20190502
+// Vertexedgeface changed ( Label=n )
+// VertexEdgeFace added ( for compatibility with conventional files)
+// 20190416
+// Xyzaxparaname debugged ( Label )
+// 20190415
+// parse( ..= ) changed ( ; added )
+// 20190413
+// Nohiddenbyfaces debugged (for Arg1,Arg2, Arg3)
+// 20190401
+// VertexEdgeFace changed ( for MeasureDepth==1 )
+// Nohiddenbyfaces debugged (for Arg1,Arg2 and making faceL)
+// Mkseg3d changed ( no display when "geoseg3d" is null )
+// IntersectsgpL changed ( varialble set when "draw" )
+// 20190331
+// VertexEdgeFace changed (Labelsize option added)
+// Nohiddensegs, Nohiddenbyfaces majorly changed (segL,faceL)
+// 20190330
+// Spacecurve debugged (Precision, string data)
+// 20190329
+// Start3d,Ptseg3d Setangle changed/debugged (PTEXCEPTION)
+// 20190320
+// Skeletonparadata maintained, debugged (FI => F)
// 20190301
// MeasureDepth => Measuredepth
// 20190209
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
index f14e3ff603e..956e726b438 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
@@ -14,27 +14,21 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylib3d[20190301] loaded");
+println("ketcindylib3d[20190511] loaded");
//help:start();
////%Ketinit3d start////
Ketinit3d():=Ketinit3d(1);
-Ketinit3d(sf):=(
- regional(tmp);
- tmp=round(4*SW.y)/4;
-// Ketinit3d(sf,[round(SW.x)+1,tmp-0.5,tmp-1]);
- Ketinit3d(sf,[-5,tmp-0.5,tmp-1]);
-);
-Ketinit3d(subflg,position):=(
+Ketinit3d(subflg):=(
//help:Ketinit3d();
//help:Ketinit3d(0);
- regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4,xPos,yTh,yPh);
- BezierNumber3=1; //15.02.28
+ regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4);
+ BezierNumber3=1; //15.02.28 // no ketjs on
if(!islist(BZLIST3),
BZLIST3=[]; //15.02.28
,
- tmp=apply(allpoints(),text(#));
+ tmp=apply(allpoints(),#.name); //190505
tmp1=select(tmp,substring(#,length(#)-1,length(#))=="p");
tmp2=[];
forall(tmp1,ctr,
@@ -45,35 +39,10 @@ Ketinit3d(subflg,position):=(
);
);
BZLIST3=tmp2;
- );
- SUBSCR=subflg;
+ ); // no ketjs off
+ SUBSCR=subflg; // no ketjs
+ // SUBSCR=0 // only ketjs
Setwindow("Msg=no");
- if(length(position)>2,
- xPos=position_1;
- yTh=position_2;
- yPh=position_3;
- ,
- xPos=0;
- yTh=position_1;
- yPh=position_2;
- );
-// THETA=60*pi/180;
-// PHI=30*pi/180;
- FocusPoint=[0,0,0];
- EyePoint=[5,5,5];
- Listplot("th",[[xPos,yTh],[xPos+9,yTh]],["notex","linecolor->[0,1,0]","Msg=no"]);
- Listplot("ph",[[xPos,yPh],[xPos+9,yPh]],["notex","linecolor->[0,1,0]","Msg=no"]);
- //16.02.10
- PutonCurve("TH",sgth,[xPos,xPos+9,"Msg=no"]);
- PutonCurve("FI",sgph,[xPos,xPos+9,"Msg=no"]);
- THETA=(TH.x-xPos)*20*pi/180;
- PHI=(FI.x-xPos)*40*pi/180;
-// Defvar("THETA",THETA); // 16.06.20
-// Defvar("PHI",PHI); // 16.06.20
- drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
- drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
- tmp="Setangle("+text((TH.x-xPos)*20)+","+text((FI.x-xPos)*40)+")";
- GLIST=append(GLIST,tmp);
Addax(0);
TSIZE=10;
TSIZEZ=10;
@@ -82,55 +51,84 @@ Ketinit3d(subflg,position):=(
////%Ketinit3d end////
////%Start3d start////
-Start3d():=Start3d([]);
-Start3d(ptexception):=(
+Start3d():=Start3d([],[]);
+Start3d(Arg):=( //190503from
+ regional(tmp);
+ tmp=select(Arg,indexof(#,"=")>0);
+ if(length(tmp)==0,
+ Start3d(Arg,[]);
+ ,
+ Start3d([],Arg);
+ );
+);
+Start3d(ptexception,optionjs):=(//190503to
//help:Start3d();
//help:Start3d(["A","B"](exceptionptlist));
+//help:Start3d(optionjs=["Slider=n","Removept=[]");
regional(xmn,xMx,ymn,yMx,pt,pt3,pt2,
xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4);
PTEXCEPTION=[];
- Setfiles(Namecdy); //180608
- ConstantListC=[[50,50],[5000,1500,500,200],[0.00001,0.01,0.1]];
+ SLIDEFLG="Y";
+ forall(optionjs,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="S",
+ SLIDEFLG=Toupper(substring(tmp_2,0,1));
+ );
+ if(tmp1=="R",
+ tmp2=tmp_2;
+ if(substring(tmp2,0,1)=="[",tmp2=substring(tmp2,1,length(tmp2)-1));
+ tmp2=tokenize(tmp2,",");
+ REMOVEPTJS=concat(REMOVEPTJS,tmp2);
+ );
+ );
+ Setfiles(Namecdy); //180608 // no ketjs
+ ConstantListC=[[50,50],[5000,1500,500,200],[0.00001,0.01,0.1]]; // no ketjson
FuncListC=[];
CommandListC=[]; //180531
CutFunList=[];//180601
EraseList=[];//180601
- ADDPACK=[]; //180606
+ ADDPACK=[]; //180606 // no ketjs off
GCLIST=[];
- GLIST=[];
+ GLIST=[]; // no ketjs on
FUNLIST=[];
COM0thlist=[];
COM1stlist=[];
- COM2ndlist=[];
+ COM2ndlist=[]; // no ketjs off
SEG3dlist=[];
- OutFileList=[];
+ OutFileList=[]; // no ketjs on
FigPdfList=[]; // 16.04.08
ErrFlag=0;
- OBJCMD=[]; // 16.11.29from
+ OBJCMD=[]; // 161129from
OCNAME=Fhead;
- OCOPTION=["m","v"];// 16.11.29until
+ OCOPTION=["m","v"];// 161129to //no ketjs off
+ KETJSOP=[]; //190129
+ REMOVEPTJS=[]; SLIDEFLG="Y"; //190504
+ KetcindyjsDataList=[]; //190511
ArrowlineNumber=1; // 16.01.31
ArrowheadNumber=1;
BezierNumber=1; //16.01.31
BezierNumber3=1; //16.08.19
- Fnametex=Fhead+".tex"; // 15.04.06
+ Fnametex=Fhead+".tex"; // 15.04.06 //no ketjs on
FnameR=Fhead+".r";
FnameRbody=Fhead+"body.r";
- Fnameout=Fhead+".txt";
+ Fnameout=Fhead+".txt"; // no ketjs off
Setwindow("Msg=no"); // 16.06.20from
- tmp=round(4*SW.y)/4;
- xPos=-5; yTh=tmp-0.5; yPh=tmp-1;
- Slider("TH",[xPos,yTh],[xPos+9,yTh],["Color=green"]); //190209
- Slider("FI",[xPos,yPh],[xPos+9,yPh],["Color=green"]); //190209
- drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
- drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
- tmp="Setangle(" //no ketjs on
- +format((TH.x-xPos)*20,5)+","
+ tmp=round(4*SW.y)/4;
+ xPos=-5; yTh=tmp-0.5; yPh=tmp-1;
+// if(SLIDEFLG=="Y", // only ketjs //190503from
+ Slider("TH",[xPos,yTh],[xPos+9,yTh],["Color=green"]); //190209
+ Slider("FI",[xPos,yPh],[xPos+9,yPh],["Color=green"]); //190209
+ drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
+ drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
+// ); // only ketjs //190503to
+ tmp="Setangle(" //no ketjs on
+ +format((TH.x-xPos)*20,5)+","
+format((FI.x-xPos)*40,5)+")";
GLIST=append(GLIST,tmp); //no ketjs off
THETA=(TH.x-xPos)*20*pi/180;
PHI=(FI.x-xPos)*40*pi/180; // 16.06.20until
- if(isselected(TH) % isselected(FI), // 17.05.18from
+ if(Ptselected(TH) % Ptselected(FI), //190505
if(length(Ch)>0,
ChNum=Ch_(length(Ch));
if(ChNum==0, ChNum=1);
@@ -138,8 +136,8 @@ Start3d(ptexception):=(
ChNum=1;
);
Ch=[0];
- );// 17.05.18to
- if(SUBSCR==1,
+ );
+ if(SUBSCR==1, // no ketjs on
xmn=SW.x+NE.x-SW.x;
xMx=NE.x+NE.x-SW.x;
ymn=SW.y;
@@ -148,18 +146,18 @@ Start3d(ptexception):=(
[xmn,ymn],[xMx,ymn]],color->[1,1,1]);
connect([[NE.x-SW.x,yMx],[NE.x-SW.x,ymn]],
color->[0.5,0.5,0.5]);
- );
+ ); // no ketjs off
// for Presentation //17.07.01from //no ketjs on
letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged
SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
letterc,mboxc,mboxc,mboxc,62,2,letterc];
- ThinDense=0.1; //17.07.01to //no ketjs off
+ ThinDense=0.1; //17.07.01to //no ketjs off
tmp=ptexception; //181106
if(!islist(tmp),tmp=[tmp]); //190209
- PTEXCEPTION=concat(PTEXCEPTION,tmp); //190209
+ PTEXCEPTION=concat(PTEXCEPTION,tmp); //190209
// if(!islist(tmp),PTEXCEPTION=[tmp],PTEXCEPTION=tmp);
- Ptseg3data(PTEXCEPTION); //16.08.23
+ Ptseg3data(PTEXCEPTION);//16.08.23
// PTEXCEPTION=ptexception; //180916 //190209[del]
);
////%Start3d end////
@@ -180,14 +178,14 @@ Setangle(theta,phi):=( //16.12.24
FI.x=phi/40+xPos;
// drawtext([xPos-0.8,yTh-0.1],text(theta)); //17.05.05
// drawtext([xPos-0.8,yPh-0.1],text(phi));
- tmp="Setangle("
+ tmp="Setangle(" // no ketjs on
+format(theta,5)+","+format(phi,5)+")";
- GLIST=append(GLIST,tmp);
- if(length(VLIST)==0, // 16.06.20
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,PTEXCEPTION); //180916
+ GLIST=append(GLIST,tmp); //no ketjs off
+ if(length(VLIST)==0, // 16.06.20
+ tmp=apply(allpoints(),#.name); //190505
+ tmp4=remove(tmp,PTEXCEPTION); //190329
forall(tmp4,pt,
- tmp1=text(pt);
+ tmp1=pt;
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
if(tmp!="z",
tmp=parse(tmp1+"z.xy"); //181028[2lines];
@@ -198,11 +196,11 @@ Setangle(theta,phi):=( //16.12.24
);
);
,
- if(isselected(NE) % isselected(SW),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,PTEXCEPTION); //180916
+ if(Ptselected(NE) % Ptselected(SW), //190505
+ tmp4=apply(allpoints(),#.name); //190505
+ tmp4=remove(tmp4,PTEXCEPTION);
forall(tmp4,pt,
- tmp1=text(pt);
+ tmp1=pt;
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
if(tmp!="z",
tmp=select(VLIST,#_1==tmp1+"3d");
@@ -212,14 +210,14 @@ Setangle(theta,phi):=( //16.12.24
);
);
,
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
+ tmp=apply(allpoints(),#.name); //190505
tmp4=remove(tmp,PTEXCEPTION); //180916
forall(tmp4,pt,
- tmp1=text(pt);
+ tmp1=pt;
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
if(tmp!="z",
tmp2=parse(tmp1+"z");
- if(isselected(pt) % isselected(tmp2),
+ if(Ptselected(pt) % Ptselected(tmp2),
Defvar(tmp1+"2d",pt.xy);
tmp=parse(tmp1+"z.xy"); //181028[2lines]
tmp=Xyzcoord(pt.xy,tmp);
@@ -228,14 +226,14 @@ Setangle(theta,phi):=( //16.12.24
);
);
);
- );
+ );
forall(Datalist3d(),#,
tmp1=replace(#,"3d","2d");
tmp2=Projpara(#,["nodata"]);
- tmp=tmp1+"="+textformat(tmp2,5);
+ tmp=tmp1+"="+textformat(tmp2,5)+";"; //190415
parse(tmp);
);
- Ptseg3data(PTEXCEPTION); //180916
+ Ptseg3data(PTEXCEPTION); //180916
);
////%Setangle end////
@@ -267,7 +265,7 @@ Angleselected():=IsAngle(); //180713
////%Angleselected end////
////%Isangle start////
-Isangle():=isselected(TH)%isselected(FI); //180517
+Isangle():=Ptselected(TH)%Ptselected(FI); //180517
////%Isangle end////
////%Changestyle3d start////
@@ -303,13 +301,13 @@ Dist3d(pt1,pt2):=(
if(islist(pt1),
p1=pt1;
,
- if(ispoint(pt1),p1=text(pt1),p1=pt1);
+ if(ispoint(pt1),p1=pt1.name,p1=pt1); //190505
p1=parse(p1+"3d");
);
if(islist(pt2),
p2=pt2;
,
- if(ispoint(pt2),p2=text(pt2),p2=pt2);
+ if(ispoint(pt2),p2=pt2.name,p2=pt2); //190505
p2=parse(p2+"3d");
);
sqrt((p2-p1)*(p2-p1));
@@ -417,8 +415,8 @@ Mainsubpt3d(pm,psv):=( //181027
);
////%Mainsubpt3d end////
-////%ProjCurve start////
-ProjCurve(crv):=(
+////%Projcurve start////
+Projcurve(crv):=(
//help:Projcurve("sl3d1");
regional(CurveL,Curve,Eps,AnsL,Out,sp,cp,st,,ct,ii,pt,
Xz,Yz,tmp,tmp1,tmp2);
@@ -469,7 +467,7 @@ ProjCurve(crv):=(
);
Out;
);
-////%ProjCurve end////
+////%Projcurve end////
////%Projpara start////
Projpara(ptdata):=Projpara(ptdata,[]);
@@ -513,7 +511,7 @@ Projpara(ptdata,optionsorg):=(
if(msgflg==1,//180602from
println("generate projparadata "+name2);
);//180602to
- tmp=name2+"="+textformat(ptL,5);
+ tmp=name2+"="+textformat(ptL,5)+";"; //190415
parse(tmp);
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
@@ -523,7 +521,7 @@ Projpara(ptdata,optionsorg):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -544,8 +542,8 @@ Projpara(ptdata,optionsorg):=(
);
////%Projpara end////
-////%InvparaptPp start////
-InvparaptPp(pt,pd):=(
+////%Invparaptpp start////
+Invparaptpp(pt,pd):=(
regional(Eps,fk,nfk,ph,fh,ah,bh,ak,bk,v1,v2,
nn,s0,t2,out,tmp,tmp1,tmp2,flg);
Eps=10^(-4);
@@ -580,7 +578,7 @@ InvparaptPp(pt,pd):=(
);
if(flg==0,
if(nfk>2,
- nn=floor(ph);
+ nn=re(floor(ph)); //190505
s0=ph-nn;
if(ph>Numptcrv(fh)-Eps,
out=[Ptend(fk),Numptcrv(fh)];
@@ -601,12 +599,12 @@ InvparaptPp(pt,pd):=(
);
out;
);
-////%InvparaptPp end////
+////%Invparaptpp end////
////%Invparapt start////
Invparapt(pt,pd):=(
regional(tmp);
- tmp=InvparaptPp(pt,pd);
+ tmp=Invparaptpp(pt,pd);
tmp_1;
);
////%Invparapt end////
@@ -625,7 +623,7 @@ Subgraph(name3,opcindy):=( //181029
);
sub2d=append(sub2d,tmp2);
);
- tmp=name+"="+Textformat(sub2d,5);
+ tmp=name+"="+Textformat(sub2d,5)+";";
parse(tmp);
GCLIST=append(GCLIST,[name,[0,1],opcindy]); //190127
sub2d;
@@ -639,7 +637,7 @@ Spaceline(Arg1,Arg2):=(
if(isstring(Arg1),
Spaceline(Arg1,Arg2,[]);
,
- tmp=text(Arg1);
+ tmp=Arg1.name; //190505
tmp=substring(tmp,1,length(tmp)-1);
name="-"+replace(tmp,",","");
Spaceline(name,Arg1,Arg2);
@@ -651,7 +649,8 @@ Spaceline(nm,ptlistorg,optionorg):=(
//help:Spaceline(options=["Msg=y(n)"]);
regional(name2,name3,options,Out,tmp,tmp1,tmp2,
opstr,opcindy,Ltype,Noflg,eqL,ptlist, Msg,color);
- ptlist=apply(ptlistorg,if(ispoint(#),parse(text(#)+"3d"),#)); // 16.02.10
+ ptlist=apply(ptlistorg,if(ispoint(#),parse(#.name+"3d"),#)); // 190505
+ ptlist=apply(ptlist,if(isstring(#),parse(#),#)); //190330
if(substring(nm,0,2)=="bz",
name2=replace(nm,"bz","bz2d");
name3=replace(nm,"bz","bz3d");
@@ -687,22 +686,22 @@ Spaceline(nm,ptlistorg,optionorg):=(
if(Msg==1,
println("generate Spaceline "+name3);
);
- tmp=name3+"="+ptlist;
+ tmp=name3+"="+Textformat(ptlist,6)+";"; //190330//190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp="[";
forall(ptlist, //17.07.13from
if(isstring(#),
tmp=tmp+#+",";
,
- tmp=tmp+textformat(#,5)+",";
+ tmp=tmp+Textformat(#,5)+",";
);
);
tmp=substring(tmp,0,length(tmp)-1)+"]";
- tmp=name3+"=Spaceline("+tmp+")"; //17.07.13until
-// tmp=name3+"=Spaceline("+textformat(ptlist,5)+")"; //17.05.24
+ tmp=name3+"=Spaceline("+tmp+")"; //17.07.13to
+// tmp=name3+"=Spaceline("+Textformat(ptlist,5)+")"; //17.05.24
GLIST=append(GLIST,tmp);
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
@@ -712,7 +711,7 @@ Spaceline(nm,ptlistorg,optionorg):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -720,9 +719,9 @@ Spaceline(nm,ptlistorg,optionorg):=(
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
+ if(SUBSCR==1, //no ketjs on// 15.02.11
Subgraph(name3,opcindy);
- );
+ ); //no ketjs off
);
ptlist;
);
@@ -864,10 +863,10 @@ Spacecurve(nm,funstr,variable,optionorg):=(
if(Msg==1,
println("generate Spacecurve "+name3);
);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=name3+"=Spacecurve(Assign('"+funstr+"'),'"+variable+"'"+opstr+")";
GLIST=append(GLIST,tmp);
@@ -879,7 +878,7 @@ Spacecurve(nm,funstr,variable,optionorg):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -910,7 +909,7 @@ Partcrv3d(nm,pA,pB,PkLstr,options):=(
if(islist(pA),
tmp=pA;
,
- if(ispoint(pA),tmp=text(pA),tmp=pA);
+ if(ispoint(pA),tmp=pA.name,tmp=pA); //190505
tmp=parse(tmp+"3d");
);
p1=parapt(tmp);
@@ -922,7 +921,7 @@ Partcrv3d(nm,pA,pB,PkLstr,options):=(
if(islist(pB),
tmp=pB;
,
- if(ispoint(pB),tmp=text(pB),tmp=pB);
+ if(ispoint(pB),tmp=pB.name,tmp=pB); //190505
tmp=parse(tmp+"3d");
);
p2=parapt(tmp);
@@ -1001,10 +1000,10 @@ Joincrvs3d(nm,plotstrL,options):=(
);
if(Noflg<3,
println("generate Joincurves3d "+name3);
- tmp=name3+"="+textformat(PtL,5);
+ tmp=name3+"="+textformat(PtL,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=text(plotstrL);
tmp=substring(tmp,1,length(tmp)-1);
@@ -1018,7 +1017,7 @@ Joincrvs3d(nm,plotstrL,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1040,13 +1039,14 @@ Joincrvs3d(nm,plotstrL,options):=(
////%Xyzax3data start////
Xyzax3data(nm,Xrange,Yrange,Zrange):=
Xyzax3data(nm,Xrange,Yrange,Zrange,[]);
-Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
+Xyzax3data(nm,Xrange,Yrange,Zrange,optionorg):=(
//help:Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
-//help:Xyzax3data(Options2=["a1","Osw"]);
- regional(name2,name3,Out,tmp,tmp1,tmp2,eqL,reL,strL,
- opstr,opcindy,Ltype,Noflg,Axname,Arrow,Origin,color);
+//help:Xyzax3data(Options2=["a1,18","Osw"]);
+ regional(name2,name3,Out,tmp,tmp1,tmp2,ops,eqL,reL,strL,msgflg,
+ options,opstr,opcindy,Ltype,Noflg,Axname,Arrow,Origin,color);
name2="ax2d"+nm;
name3="ax3d"+nm;
+ options=optionorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -1056,7 +1056,7 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
Axname=1;
- Arrow=0; // 16.08.14
+ Arrow=[]; // 190505
Origin=""; // 16.08.14
if(length(reL)>0,
Axname=reL_1;
@@ -1066,9 +1066,8 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
if(tmp1=="A",
tmp=substring(#,1,length(#));
if(length(tmp)>0,
- Arrow=parse(tmp);
- ,
- Arrow=1;
+ Arrow=tokenize(tmp,","); //190505
+ if(length(Arrow)==1,Arrow=append(Arrow,18));
);
);
if(tmp1=="O",
@@ -1084,7 +1083,18 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
);
);
- ); // 16.08.14until
+ ); // 16.08.14to
+ options=remove(options,reL);
+ options=remove(options,strL);
+ msgflg="Y"; //190506from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //190506to
tmp1=indexof(Xrange,"=");
tmp=parse(substring(Xrange,tmp1,length(Xrange)));
Px=[tmp_1,0,0]; Qx=[tmp_2,0,0];
@@ -1094,16 +1104,26 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
tmp1=indexof(Zrange,"=");
tmp=parse(substring(Zrange,tmp1,length(Zrange)));
Pz=[0,0,tmp_1]; Qz=[0,0,tmp_2];
+ tmp=["nodisp","Msg=n"];
+ Spaceline("-axx3d"+nm,[Px,Qx],tmp);
+ Spaceline("-axy3d"+nm,[Py,Qy],tmp);
+ Spaceline("-axz3d"+nm,[Pz,Qz],tmp);
Out=[[Px,Qx],[Py,Qy],[Pz,Qz]];
if(Axname>0,
Xyzaxparaname(Xrange,Yrange,Zrange,[Axname]);
);
if(Noflg<3,
- println("generate axes "+name3);
- tmp=name3+"="+textformat(Out,5);
+ if(msgflg=="Y",
+ tmp="generate axes "+name3;
+ tmp=tmp+" : axx3d"+nm+",axy3d"+nm+",axz3d"+nm;
+ println(tmp);
+ );
+ tmp="["+"axx3d"+nm+","+"axy3d"+nm+",";
+ tmp=tmp+"axz3d"+nm+"]";
+ tmp=name3+"="+tmp;
parse(tmp);
tmp1=Projpara([name3],["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=name3+"=Xyzax3data("+
Dq+Xrange+Dq+","+Dq+Yrange+Dq+","+Dq+Zrange+Dq+")";
@@ -1116,7 +1136,7 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1125,14 +1145,15 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
if(Noflg<1, // 16.08.14from
- if(Arrow>0,
+ if(length(Arrow)==2, //190505from
tmp1=Parapt(Px); tmp2=Parapt(Qx);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
+ ops=[Arrow_1,Arrow_2,"Line=n"];
+ Lightarrowdata("ax1",[tmp2,tmp2-tmp1],ops);
tmp1=Parapt(Py); tmp2=Parapt(Qy);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
+ Lightarrowdata("ax2",[tmp2,tmp2-tmp1],ops);
tmp1=Parapt(Pz); tmp2=Parapt(Qz);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
- );
+ Lightarrowdata("ax3",[tmp2,tmp2-tmp1],ops);
+ ); //190505to
if(length(Origin)>0,
Letter([Parapt([0,0,0]),Origin,"O"]);
);
@@ -1145,7 +1166,7 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
////%Xyzax3data end////
-////%Xyzax3paraname start////
+////%Xyzaxparaname start////
Xyzaxparaname(Xrange,Yrange,Zrange):=
Xyzaxparaname(Xrange,Yrange,Zrange,[]);
Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
@@ -1189,7 +1210,7 @@ Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
Expr(ch,"c",Zname);
);
);
-////%Xyzax3paraname end////
+////%Xyzaxparaname end////
////%Datalist3d start////
Datalist3d():=(
@@ -1267,10 +1288,10 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
if(Noflg<3,
println("generate Embed "+name3);
if(length(Out)>0,
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
);
if(!islist(Pd2str),
@@ -1289,7 +1310,7 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1433,10 +1454,10 @@ Rotatedata3d(nm,P3data,w1,w2,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Rotatedata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=Textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); //180602
@@ -1455,7 +1476,7 @@ Rotatedata3d(nm,P3data,w1,w2,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1531,10 +1552,10 @@ Translatedata3d(nm,P3data,w1,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Translatedata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); // 180602
@@ -1552,7 +1573,7 @@ Translatedata3d(nm,P3data,w1,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1627,10 +1648,10 @@ Reflectdata3d(nm,P3data,vecL,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Reflectdata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+Textformat(tmp1,5);
+ tmp=name2+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=Textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); // 180602
@@ -1649,7 +1670,7 @@ Reflectdata3d(nm,P3data,vecL,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1722,10 +1743,10 @@ Scaledata3d(nm,P3data,ratio,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Scaledata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+Textformat(tmp1,5);
+ tmp=name2+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=Textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); // 180602
@@ -1745,7 +1766,7 @@ Scaledata3d(nm,P3data,ratio,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1771,9 +1792,9 @@ Xyzcoord(X,Y,ps):=(
);
////%Xyzcoord end////
-////%PutonCurve3d start////
-PutonCurve3d(name,pdstr):=(
-//help:PutonCurve3d("T","sc3d1");
+////%Putoncurve3d start////
+Putoncurve3d(name,pdstr):=(
+//help:Putoncurve3d("T","sc3d1");
regional(pt,pd2str,tmp,tmp1,tmp2);
pd2str=replace(pdstr,"3d","2d");
PutonCurve(name,pd2str);
@@ -1781,15 +1802,15 @@ PutonCurve3d(name,pdstr):=(
tmp=Nearestpt(pt,pd2str); // 15.03.13
tmp1=Paramoncurve(tmp_1,tmp_2,pd2str);
tmp="sub"+pd2str;
- tmp2=PointonCurve(tmp1,tmp);
+ tmp2=Pointoncurve(tmp1,tmp);
// pt=append(pt,tmp2_2); //181028[2lines]
pt=Xyzcoord(pt,tmp2); // 15.03.13
- tmp=name+"z.xy="+textformat(tmp2,5);
+ tmp=name+"z.xy="+textformat(tmp2,5)+";"; //190415
parse(tmp);
// VLIST=select(VLIST,#_1!=name+"3d");
Defvar(name+"3d",pt);
);
-////%PutonCurve3d end////
+////%Putoncurve3d end////
////%Mkpointlist start////
Mkpointlist():=Mkpointlist([]); //16.11.12
@@ -1799,7 +1820,7 @@ Mkpointlist(options):=( //181030
dp=pi/24;
mv=NE.x-SW.x;
Eps=10^(-4);
- pos=[NE.x+1,NE.y];
+ pos=[NE.x+1,NE.y+0.1];
worklist=Workprocess(); //181030
plist=select(worklist,length(#_3)!=2);
plist=apply(plist,#_1);
@@ -1820,9 +1841,9 @@ Mkpointlist(options):=( //181030
inspect(pt,"ptsize",3);
inspect(pt,"color",2);
inspect(pt,"textsize",TSIZE);
- ptz=text(pt)+"z";
+ ptz=pt.name+"z"; //190505
tmp=Finddef(pt);
- tmp=select(VLIST,#_1==text(pt)+"3d");
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
if(length(tmp)==0,
tmp=parse(ptz); //181108from
if(ispoint(tmp),
@@ -1843,37 +1864,37 @@ Mkpointlist(options):=( //181030
pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
);
); //181028to
- Defvar(text(pt)+"3d",pt3);
- Defvar(text(pt)+"fix",0);
+ Defvar(pt.name+"3d",pt3); //190505
+ Defvar(pt.name+"fix",0); //190505
);
flg=0;
if(isstring(ptz),ptz=parse(ptz));//181029from
inspect(ptz,"ptsize",3);
inspect(ptz,"color",3);
inspect(ptz,"textsize",TSIZEZ);//181029to
- if(isselected(pt),
- if(parse(text(pt)+"fix")!=1,
- tmp=select(VLIST,#_1==text(pt)+"3d");
+ if(Ptselected(pt),
+ if(parse(pt.name+"fix")!=1, //190505
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
tmp1=tmp_1_2;
pt3=Mainsubpt3d(pt.xy,ptz.xy); //181029
- Putpoint(text(ptz),Parasubpt(pt3));
+ Putpoint(ptz.name,Parasubpt(pt3));
if(Norm(tmp1-pt3)>Eps,
- Defvar(text(pt)+"3d",pt3);
+ Defvar(pt.name+"3d",pt3); //190505
);
flg=1;
);
);
- if(isselected(ptz),//181108from
- tmp=select(VLIST,#_1==text(pt)+"3d");
+ if(Ptselected(ptz),//181108from
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
tmp1=tmp_1_2;
tmp=Parasubpt(tmp1); //181108from
if(abs(cos(THETA))>Eps,
- tmp=text(ptz)+".x="+format(tmp_1,6);
+ tmp=tptz.name+".x="+format(tmp_1,6)+";"; //190505
parse(tmp);
tmp=Parapt([tmp1_1,tmp1_2,ptz.y]);
- Putpoint(text(pt),tmp);
+ Putpoint(pt.name,tmp); //190505
,
- tmp=text(ptz)+".y="+format(tmp_2,6);
+ tmp=ptz.name+".y="+format(tmp_2,6)+";"; //190505
parse(tmp);
if(abs(sin(PHI+dp))>abs(cos(PHI+dp)), //181108
tmp=-(ptz.x-mv-tmp1_2*cos(PHI+dp))/sin(PHI+dp);
@@ -1882,30 +1903,30 @@ Mkpointlist(options):=( //181030
tmp=(ptz.x-mv+tmp1_1*sin(PHI+dp))/cos(PHI+dp); //181109pm
tmp=Parapt([tmp1_1,tmp,tmp1_3]);
);
- Putpoint(text(pt),tmp);
+ Putpoint(pt.name,tmp); //190505
);
pt3=Mainsubpt3d(pt.xy,ptz.xy);
- Defvar(text(pt)+"3d",pt3);//181108to
+ Defvar(pt.name+"3d",pt3); //190505
flg=2;
);
- if(isselected(TH) % isselected(FI), //181029
- tmp=select(VLIST,#_1==text(pt)+"3d");
+ if(Ptselected(TH) % Ptselected(FI), //181029
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
if(length(tmp)>0, //17.10.07
tmp1=Parapt(tmp_1_2);
- Putpoint(text(pt),tmp1); //181029
+ Putpoint(pt.name,tmp1); //190505
tmp2=Parasubpt(tmp_1_2);//181027[2lines]
- Putpoint(text(ptz),tmp2); //181029
+ Putpoint(ptz.name,tmp2); //190505
flg=3;
); //17.10.07
);
if(flg==0, //181030from
pt3=Mainsubpt3d(pt.xy,ptz.xy);
- Defvar(text(pt)+"3d",pt3);
+ Defvar(pt.name+"3d",pt3); //190505
); //181030to
- if(isselected(pt) % isselected(ptz),
- drawtext(pos,text(pt3));
+ if(Ptselected(pt) % Ptselected(ptz),
+ drawtext(pos,pt3.xy,size->12); // no ketjs //190505
);
- if(!contains(["p","q"],text(pt)),
+ if(!contains(["p","q"],pt.name), //190505
ptL=append(ptL,pt);
);
);
@@ -1944,14 +1965,16 @@ Mkseg3d(options):=(
);
);
);
- println("generate totally "+name);
+ if(length(parse(name))>0, //190401
+ println("generate totally "+name);
+ );
if(length(segL)>0, // 15.03.06
strg=substring(strg,0,length(strg)-1)+")";
if(Noflg<3,
GLIST=append(GLIST,strg);
);
tmp1=apply(segL,Dq+#+Dq); //15.03.02
- tmp=name+"="+text(tmp1);
+ tmp=name+"="+tmp1.name; //190505
parse(tmp);
);
segL;
@@ -1963,36 +1986,37 @@ Ptseg3data():=Ptseg3data([]);
//help:Ptseg3data();
//help:Ptseg3data([A,B]);
Ptseg3data(options):=(
- regional(pt,pt3,plist,tmp,tmp1,tmp2);
- if(isselected(TH) % isselected(FI),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp=remove(tmp,options); //16.11.12
- tmp=apply(tmp,text(#));
- plist=select(tmp,substring(#,length(#)-1,length(#))!="z");
+ regional(pt,ptz,pt3,plist,plistz,tmp,tmp1,tmp2);
+ tmp=remove(allpoints(),options);
+ tmp=remove(tmp,[SW,NE,TH,FI]);
+ plist=select(tmp,indexof(#.name,"z")==0);
+ plistz=select(tmp,indexof(#.name,"z")>0);
+ if(Ptselected(TH) % Ptselected(FI),
forall(plist,pt,
- tmp1=text(pt);
- tmp=select(VLIST,#_1==tmp1+"3d"); //17.10.07
+ tmp=select(plistz,#.name==pt.name+"z");
+ if(length(tmp)>0,
+ ptz=tmp_1;
+ ,
+ ptz=[];
+ );
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190506
if(length(tmp)>0,
pt3=tmp_1_2;
- tmp=tmp1+".xy="+Textformat(Parapt(pt3),6);//181107
- parse(tmp);
- if(SUBSCR==1,
- tmp=tmp1+"z"+".xy="+Textformat(Parasubpt(pt3),6);//181107
- parse(tmp);
- );
+ pt.xy=Parapt(pt3);
+ ptz.xy=Parasubpt(pt3);
,
- tmp=Mainsubpt3d(parse(pt+".xy"),parse(tmp1+"z.xy")); //181107[2lines]
- Defvar(tmp1+"3d",tmp);
+ pt3=Mainsubpt3d(pt.xy,ptz.xy); //181107[2lines]
+ Defvar(pt+"3d",pt3);
);
);
,
Mkpointlist(options); // 16.12.18
);
- forall(alllines(),
+ forall(alllines(), // no ketjs on
#.color=[0.5,0.5,1];
);
SEG3dlist=Mkseg3d(options);
- SEG3dlist;
+ SEG3dlist; // no ketjs off
);
////%Ptseg3data end////
@@ -2027,11 +2051,11 @@ Putonseg3d(name,pt1,pt2,options):=(
inspect(parse(name+"z"),"color",3);
inspect(parse(name+"z"),"textsize",TSIZEZ);
if(ispoint(pt1),
- pn1=text(pt1);
- pn2=text(pt2);
+ pn1=pt1.name; //190505
+ pn2=pt2.name; //190505
tmp1=replace("PCz.xy=PAz.xy+|PC-PA|/|PB-PA|*(PBz.xy-PAz.xy)","PC",name);
tmp1=replace(tmp1,"PA",pn1);
- tmp1=replace(tmp1,"PB",pn2);
+ tmp1=replace(tmp1,"PB",pn2)+";";
parse(tmp1);
,
pn1=Textformat(Parapt(pt1),5); //181030from
@@ -2042,7 +2066,7 @@ Putonseg3d(name,pt1,pt2,options):=(
pn1=Textformat(Parasubpt(pt1),5); //181030from
pn2=Textformat(Parasubpt(pt2),5);
tmp1=replace(tmp1,"PAs",pn1);
- tmp1=replace(tmp1,"PBs",pn2);
+ tmp1=replace(tmp1,"PBs",pn2)+";"; //190415
parse(tmp1);
);
tmp1=parse(name+".xy"); //181028[3lines]
@@ -2125,7 +2149,7 @@ Fixpoint3d(ptlist):=(
pt2=Parapt(pt3);
tmp1=textformat(pt2_1,5);
tmp2=textformat(pt2_2,5);
- tmp=name+".xy=["+tmp1+","+tmp2+"]";
+ tmp=name+".xy=["+tmp1+","+tmp2+"];";
parse(tmp);
tmp1=name+".x+NE.x-SW.x";
tmp2=textformat(pt3_3,5);
@@ -2151,7 +2175,7 @@ Letter3d(dtlist,options):=(
forall(1..nall,
jj=#*3-2;
tmp=dt_jj;
- if(ispoint(tmp),tmp=parse(text(tmp)+"3d"));
+ if(ispoint(tmp),tmp=parse(tmp.name+"3d")); //190505
dt_jj=Parapt(tmp);
);
Letter(dt,options);
@@ -2175,7 +2199,7 @@ Expr3d(dtlist,options):=(
forall(1..nall,
jj=#*3-2;
tmp=dt_jj;
- if(ispoint(tmp),tmp=parse(text(tmp)+"3d"));
+ if(ispoint(tmp),tmp=parse(tmp.name+"3d")); //190505
dt_jj=Parapt(tmp);
);
Expr(dt,options);
@@ -2298,10 +2322,10 @@ Drawpoint3d(pt3,options):=(
opcindy=tmp_(length(tmp));
if(Measuredepth(pt3)==0,ptL=[pt3],ptL=pt3);
forall(ptL,
- tmp="draw("+Textformat(Parapt(#),6)+opcindy+")";
+ tmp="draw("+Textformat(Parapt(#),6)+opcindy+");";
parse(tmp);
if(SUBSCR==1,
- tmp="draw("+Textformat(Parasubpt(#),6)+opcindy+")";
+ tmp="draw("+Textformat(Parasubpt(#),6)+opcindy+");";
parse(tmp);
);
);
@@ -2316,7 +2340,7 @@ Pointdata3d(nm,pt3,options):=( //181017from
if(Measuredepth(pt3)==0,pt3L=[pt3],pt3L=pt3);
pt2L=apply(pt3L,Parapt(#));
Pointdata("2d"+nm,pt2L,append(options,"Disp=n"));
- tmp="pt3d"+nm+"="+format(pt3L,6);
+ tmp="pt3d"+nm+"="+format(pt3L,6)+";"; //190415
parse(tmp);
); //181017to
////%Pointdata3d end////
@@ -2341,8 +2365,8 @@ IntersectsgpL(name,sgstr,pLstr):=
IntersectsgpL(name,sgstr,pLstr,["ie"]);
IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
//help:IntersectsgpL("R","P-Q","A-B-C");
-//help:IntersectsgpL("",[p1,p2],[p3,p4,p5]);
-//help:IntersectsgpL(options=["draw(put)","ie","Screen=n"+pointoptions]);
+//help:IntersectsgpL("pR","pP-pQ","A-B-C");
+//help:IntersectsgpL(options=["draw(put)","ie","Screen=n"+pointoptions,"Color="]);
regional(options,eqL, strL,ptflg,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,
flg,scrflg,nvec,tmp,tmp1,tmp2,tmp3,tmp4);
options=optionsorg; //181026from
@@ -2439,9 +2463,14 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
if(tmp1&tmp2&(scrflg=="Y"), //181031
if(ptflg_1=="P", //181025
Putpoint3d([name,pR],"fix");
-// Fixpoint3d([name,pR]); //190114
,
Drawpoint3d(pR,options);
+ tmp=name; //190401from
+ if(indexof(name,"3d")==0,
+ tmp=name+"3d";
+ );
+ tmp=tmp+"="+Textformat(pR,6)+";"; //190415
+ parse(tmp); //190401to
);
);
,
@@ -2517,10 +2546,10 @@ Bezier3(nm,ptlistorg,ctrlistorg,options):=( //17.10.08 greatly changed
);
if(Noflg<3,
println("generate Beziercurve "+name3);
- tmp=name3+"="+tmp1;
+ tmp=name3+"="+tmp1+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
ptlist=apply(ptlistorg,#+"3d");
ptlist=RSform(text(ptlist),1);
@@ -2539,7 +2568,7 @@ Bezier3(nm,ptlistorg,ctrlistorg,options):=( //17.10.08 greatly changed
if(Noflg<2,
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -2606,7 +2635,7 @@ Mkbezierptcrv3(ptdata,options):=( //17.10.08 greatly changed
Eps=10^(-4);
pos=[NE.x+1,NE.y];
Out=[];
- tmp=floor((BezierNumber3-1)/26);// 15.02.23 from
+ tmp=re(floor((BezierNumber3-1)/26)); //190505 // 15.02.23 from
if(tmp==0,tmp="",tmp=text(tmp));
tmp2=mod(BezierNumber3,26);
if(tmp2==0,tmp2=26);
@@ -2848,7 +2877,7 @@ Mkobjfile(path,fnameorg,objL):=(
forall(vtx,tmp1,
tmp2=tmp1;
if(ispoint(tmp1),
- tmp2=parse(text(tmp1)+"3d");
+ tmp2=parse(tmp1.name+"3d"); //190505
);
tmp="v "+format(tmp2_1,5)+" "+format(tmp2_2,5)+" "+format(tmp2_3,5);
println(SCEOUTPUT,tmp);
@@ -2866,14 +2895,20 @@ Mkobjfile(path,fnameorg,objL):=(
); //end of skip
+////%VertexEdgeFace start//// //190502
+VertexEdgeFace(nm,vfnL):=Vertexedgeface(nm,vfnL,[]);
+VertexEdgeFace(nm,vfnLorg,optionorg):=Vertexedgeface(nm,vfnLorg,optionorg);
////%VertexEdgeFace start////
-VertexEdgeFace(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); // 16.02.10
-VertexEdgeFace(nm,vfnLorg,optionorg):=(
-//help:VertexEdgeFace("1",[vL,fnL]);
-//help:VertexEdgeFace("1",["A","B","C"]);
-//help:VertexEdgeFace(options=["Pt=fix","Vtx=n(y)","Edg=n(y)"]);
- regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL,
- vL,eL,enL,face,edge,vtx,vname,fixflg,vtxflg, edgflg,dispflg,tmp,tmp1,tmp2);
+
+////%Vertexedgeface start////
+Vertexedgeface(nm,vfnL):=Vertexedgeface(nm,vfnL,[]); // 16.02.10
+Vertexedgeface(nm,vfnLorg,optionorg):=(
+//help:Vertexedgeface("1",[vL,fnL]);
+//help:Vertexedgeface("1",["A","B","C"]);
+//help:Vertexedgeface(options=["Vtx=n(y)" ',"Pt=fix") ,"Edg=n(y)","Label=8(/0)"]);
+ regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL, Lsize,msgflg,
+ Eps,vL,eL,enL,face,edge,vtx,vname,fixflg,vtxflg, edgflg,dispflg,tmp,tmp1,tmp2);
+ Eps=10^(-5);
name3="phvef"+nm;
namev="phv3d"+nm;
namee="phe3d"+nm;
@@ -2891,9 +2926,11 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
eqL=tmp_5;
strL=tmp_7;
fixflg=1;
- vtxflg=0; //180905
- edgflg=0;
+ vtxflg="N"; //180905
+ edgflg="N";
dispflg=1; //181106
+ Lsize="8"; //190331
+ msgflg="Y"; //190506
forall(eqL,
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
@@ -2903,23 +2940,22 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
options=remove(options,[#]);
);
if(tmp1=="V", //180905from
- if((tmp2=="Y")%(tmp2==G), //181107
- vtxflg=1;
- );
+ vtxflg=tmp2;
options=remove(options,[#]);
); //180905to
if(tmp1=="E",
- if((tmp2=="Y")%(tmp2=="G"),//181107[2lines]
- if(vtxflg==1,edgflg=1);
- );
+ edgflg=tmp2;
options=remove(options,[#]);
);
- if(tmp1=="D", //181106from
- if(substring(tmp2,0,1)=="N",
- dispflg=0; vtxflg=0; edgflg=0;
- );
+ if(tmp1=="L", //190331from
+ Lsize=tmp_2;
+ if(Lsize=="0",dispflg=0); //190502
+ options=remove(options,[#]);
+ ); //190331to
+ if(tmp1=="M", //190506from
+ msgflg=Toupper(substring(tmp_2,0,1));
options=remove(options,[#]);
- ); //181106to
+ ); //190506to
);
forall(strL,
if(Toupper(#)=="FREE",
@@ -2927,30 +2963,39 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
options=remove(options,[#]);
);
);
+ tmp=select(allpoints(),indexof(#.name,"z")==0); //190506from
+ tmp1=remove(tmp,[SW,NE,TH,FI]);
vL=[];
forall(1..length(vfnL_1),
vtx=vfnL_1_#; // 16.02.10 from
if(isstring(vtx),vtx=parse(vtx)); // 16.06.19
if(ispoint(vtx),
- tmp=parse(text(vtx)+"3d");
- vname=text(vtx);
+ tmp=parse(vtx.name+"3d"); //190506
+ vname=vtx.name;
,
- vname="V"+nm+text(#); //181212
- if(vtxflg==1, //180905
+ tmp=select(tmp1,|#.xy-Parapt(vtx)|<Eps);
+ if(length(tmp)>0,
+ tmp=tmp_1;
+ vname=tmp.name;
+ ,
+ vname="V"+nm+text(#); //181212
+ ); //190506to
+ if(vtxflg=="Y",
if(fixflg==1,
Putpoint3d([vname,vtx],"fix");
,
Putpoint3d([vname,vtx]);
);
- , //180905from
- tmp=vname+"3d="+format(vtx,6);
+ ,
+ tmp=vname+"3d="+format(vtx,6)+";"; //190415
parse(tmp);
Defvar(vname+"3d",parse(vname+"3d"));
- tmp=vname+"2d=Parapt("+vname+"3d)";
+ tmp=vname+"2d=Parapt("+vname+"3d);"; //190415
parse(tmp);
Defvar(vname+"2d",parse(vname+"2d"));
if(dispflg==1, //181106
- drawtext(parse(vname+"2d"),vname,size->8); //190128
+ tmp="drawtext(parse(vname+"+Dqq("2d")+"),vname,size->"; //190331
+ parse(tmp+Lsize+");"); //190331
draw(parse(vname+"2d"),pointsize->3,color->[0,1,0]); //190128
);
); //180905to
@@ -2980,7 +3025,7 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
if(Noflg<3,
enL=[];
forall(eL,edge,
- if(edgflg==0,
+ if(edgflg=="N",
if(Noflg<2,
tmp1=edge_1;//parse(edge_1);
tmp2=edge_2;//parse(edge_2);
@@ -3007,17 +3052,16 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
);
);
if(Noflg<2,
- println("generate "+name3);
- println(" generate totally "+namee);
- println(" generate vertexes "+namev);
- println(" generate faces "+namef);
+ if(msgflg=="Y",
+ println("generate "+namev+","+namee+","+namef);
+ );
);
tmp1="";
forall(enL,
tmp1=tmp1+Dq+#+Dq+",";
);
tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp=namee+"=["+tmp1+"]";
+ tmp=namee+"=["+tmp1+"];"; //190415
parse(tmp);
tmp=namee+"=list("+tmp1+")";
tmp=replace(tmp,Dq,"");
@@ -3025,21 +3069,21 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
tmp1=apply(vL,Dq+#+"3d"+Dq);
tmp1=text(tmp1);
tmp1=substring(tmp1,1,length(tmp1)-1);
- tmp=namev+"=["+tmp1+"]";
+ tmp=namev+"=["+tmp1+"];"; //190415
parse(tmp);
tmp1=replace(tmp1,Dq,"");
tmp=namev+"=list("+tmp1+")";
GLIST=append(GLIST,tmp);
- tmp1=text(vfnL_2);
+ tmp1=Textformat(vfnL_2,6);
tmp1=substring(tmp1,1,length(tmp1)-1);
- tmp=namef+"=["+tmp1+"]";
+ tmp=namef+"=["+tmp1+"];";
parse(tmp);
tmp=namef+"=list("+tmp1+")";
GLIST=append(GLIST,tmp);
);
[namev,namee,namef];
);
-////%VertexEdgeFace end////
+////%Vertexedgeface end////
////%Phparadata start////
Phparadata(nm,nmvf):=(
@@ -3122,7 +3166,7 @@ Phparadata(nm,nmvf,vfL,options):=(
if(Noflg<2,
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -3177,7 +3221,7 @@ Nohiddenseg(seg,rng,triang,Eps):=(
ss1=Parapt(sg1);
ss2=Parapt(sg2);
if(|ss2-ss1|>Eps & abs(Crossprod(pB-pA,pC-pA))>Eps,
- tmp=IntersectcrvsPp([ss1,ss2],[pA,pB,pC,pA]);
+ tmp=Intersectcrvspp([ss1,ss2],[pA,pB,pC,pA]);
parL=apply(tmp,#_2-1);
parL=sort(parL);
if(length(parL)==0,
@@ -3221,7 +3265,7 @@ Nohiddenseg(seg,rng,triang,Eps):=(
sghid=[parL_(#-1),parL_#];
tmp1=ss1+sghid_1*(ss2-ss1);
tmp2=ss1+sghid_2*(ss2-ss1);
- tmp=IntersectcrvsPp([tmp1,tmp2],[pA,pB,pC,pA]);
+ tmp=Intersectcrvspp([tmp1,tmp2],[pA,pB,pC,pA]);
if(length(tmp)<2,
veB=pB-pA;
veC=pC-pA;
@@ -3281,10 +3325,8 @@ Nohiddenseg(seg,rng,triang,Eps):=(
////%Nohiddenseg end////
////%Nohiddensegs start////
-Nohiddensegs(seg,range,faceno,vtxL,Eps):=(
- regional(rng,face,vtx,out,ra,rb,tmp,tmp1,tmp2);
-// Eps=10^(-2);
- face=apply(faceno,vtxL_#); // 16.02.10
+Nohiddensegs(seg,range,face,Eps):=( //190331
+ regional(rng,vtx,out,ra,rb,tmp,tmp1,tmp2);
rng=range;
out=rng;
forall(2..(length(face)-1),vtx,
@@ -3322,128 +3364,106 @@ Nohiddensegs(seg,range,faceno,vtxL,Eps):=(
////%Nohiddensegs end////
////%Nohiddenbyfaces start////
-Nohiddenbyfaces(nm,facestr):=
- Nohiddenbyfaces(nm,Datalist3d(),facestr,[],["do"]);
-Nohiddenbyfaces(nm,Arg1,Arg2):=(
- regional(segstr,facestr,options);
- if(islist(Arg2),
- segstr=Datalist3d();
- facestr=Arg1;
- options=Arg2;
- ,
- segstr=Arg1;
- facestr=Arg2;
+Nohiddenbyfaces(nm,faceL):=
+ Nohiddenbyfaces(nm,Datalist3d(),faceL,[],["do"]);
+Nohiddenbyfaces(nm,Arg1,Arg2):=( //190331
+ regional(tmp1,tmp2,tmp3,segL,faceL,options);
+ tmp1=select(Arg2,indexof(#,"=")>0); //190401from
+ tmp2=select(Arg2,indexof(#,",")>0);
+ tmp3=select(Arg2,length(#)<=2);
+ if(length(tmp1)+length(tmp2)+length(tmp3)==0, //190401to
+ segL=Arg1;
+ faceL=Arg2;
options=[];
- );
- Nohiddenbyfaces(nm,segstr,facestr,options,["do"]);
-);
-Nohiddenbyfaces(nm,Arg1,Arg2,Arg3):=(
- regional(segstr,facestr,options,optionsh);
- if(islist(Arg2),
- segstr=Datalist3d();
- facestr=Arg1;
- options=Arg2;
- optionsh=Arg3;
- ,
- segstr=Arg1;
- facestr=Arg2;
- options=Arg3;
- optionsh=["do"];
- );
- Nohiddenbyfaces(nm,segstr,facestr,options,optionsh); // 16.02.21
-);
-Nohiddenbyfaces(nm,segstr,Arg1,Arg2,Arg3):=( //180815from
- regional(facestr,faceL,vtxL,options,optionsh);
- if(isstring(Arg1),
- facestr=Arg1;
- options=Arg2;
- optionsh=Arg3;
- if(substring(facestr,0,3)=="phf",
- faceL=parse(facestr);
- tmp=replace(facestr,"phf","phv");
- tmp=parse(tmp);
- vtxL=apply(tmp,replace(#,"3d",""));
-
- ,
- faceL=parse(facestr);
- );
,
+ segL=Datalist3d();
faceL=Arg1;
- vtxL=Arg2;
- options=Arg3;
- optionsh=[];
+ options=Arg2;
);
- Nohiddenbyfaces(nm,segstr,faceL,vtxL,options,optionsh);
+ Nohiddenbyfaces(nm,segL,faceL,options,["do"]);
);
-Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
-//help:Nohiddenbyfaces("1","phf3d1");
-//help:Nohiddenbyfaces("1","ax3d","phf3d1");
-//help:Nohiddenbyfaces("1","ax3d",phf3d1,phv3d1);
-//help:Nohiddenbyfaces(options1=["dr","Eps=10^(-2)"]);
-//help:Nohiddenbyfaces(options2=["do"]);
- regional(Eps,namen,nameh,options,segL,rng,seg,face,
- ctr,tmp,tmp1,tmp2,Ltype,Noflg,eqL,color,opstr,opcindy,frnL,frhL);
- Eps=10^(-2);
+//Nohiddenbyfaces(nm,segL,faceL,options):=( //190331
+Nohiddenbyfaces(nm,Arg1,Arg2,Arg3):=( //190413from
+ if(islist(Arg1),
+ Nohiddenbyfaces(nm,Arg1,Arg2,Arg3,["do"]);
+ ,
+ Nohiddenbyfaces(nm,Datalist3d(),Arg1,Arg2,Arg3);
+ );
+); //190413to
+Nohiddenbyfaces(nm,segLorg,faceLorg,optionorg,optionsh):=(//190331
+//help:Nohiddenbyfaces("1",["phf3d1"]);
+//help:Nohiddenbyfaces("1",["ax3d"],["phf3d1"]);
+//help:Nohiddenbyfaces("1",["ax3d","phe3d1"],["phv3d1"]);
+//help:Nohiddenbyfaces(options=["dr","Eps=10^(-2)"]);
+//help:Nohiddenbyfaces(optionsh=["do"]);
+ regional(Eps,namen,nameh,options,segL,faceL,rng,vtxL,msgflg,
+ ctr,tmp,tmp1,tmp2,tmp3,tmp4,Ltype,Noflg,eqL,color,frnL,frhL);
namen="frn"+nm;
nameh="frh"+nm;
- if(isstring(segstr),
- tmp=parse(segstr);//180714from
- if(islist(tmp),
- if(isstring(tmp_1),
- segL=tmp;
- ,
- segL=[segstr];
- );
- );//180714to
- ,
- segL=segstr;
- );
- tmp2=[]; // 16.02.29 from
- forall(segL,seg,
- tmp=replace(seg,"3d","2d");
- tmp1=select(GCLIST,#_1==tmp);
- tmp1=tmp1_1;
- if(tmp1_2_1==0, //190127
- tmp2=append(tmp2,seg);
- );
- );
- segL=tmp2;
- Changestyle3d(segL,["nodisp"]); // 16.02.29 until
- if(islist(segL),
- if(isstring(segL_1),
- segL=apply(segL,parse(#));
- );
- );
- tmp1=Flattenlist(segL); //180816from
- segL=[];
- forall(tmp1,tmp2,
- forall(1..(length(tmp2)-1),
- segL=append(segL,[tmp2_#,tmp2_(#+1)]);
- );
- ); //180816from
options=optionorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
eqL=tmp_5;
color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
+ Eps=10^(-2);
+ msgflg="Y";
forall(eqL, //180815from
tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1)); //181111
- if(substring(tmp1,0,3)=="E",
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="E",
Eps=parse(tmp_2);
options=remove(options,[#]);
);
- );//180815to
+ if(tmp1=="M", //190506from
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ ); //190506to
+ );//180815to
+ tmp1=segLorg; //190331from
+ if(!islist(tmp1),tmp1=[tmp1]);
+ Changestyle3d(tmp1,["nodisp"]);
+ segL=[];
+ forall(tmp1,tmp4, // 190401[seg=>tmp4]
+ if(isstring(tmp4),
+ tmp3=parse(tmp4);
+ if(MeasureDepth(tmp3)==1,tmp3=[tmp3]); //190401
+ tmp2=[];
+ forall(tmp3,
+ if(isstring(#),tmp=parse(#),tmp=#);
+ tmp2=append(tmp2,tmp);
+ );
+ ,
+ tmp2=[#];
+ );
+ segL=concat(segL,tmp2);
+ );
+ tmp1=faceLorg;
+ if(!islist(tmp1),tmp1=[tmp1]);
+ faceL=[];
+ forall(tmp1,tmp4, // 190401[face=>tmp4]
+ if(isstring(tmp4),
+ tmp2=parse(tmp4);
+ if(indexof(tmp4,"phf")>0,
+ tmp=replace(tmp4,"phf","phv");
+ vtx=parse(tmp);
+ vtx=apply(vtx,parse(#));
+ tmp2=apply(tmp2,vtx_#);
+ ,
+ tmp2=[tmp2]; //190401
+ );
+ ,
+ tmp2=tmp4;
+ );
+ faceL=concat(faceL,tmp2);
+ ); //190331to
ctr=1;
frnL=[];
frhL=[];
forall(segL,seg,
rng=[0,1];
forall(faceL,face,
- rng=Nohiddensegs(seg,rng,face,vtxL,Eps);
+ rng=Nohiddensegs(seg,rng,face,Eps);
);
forall(1..length(rng)/2,
tmp=rng_(2*#-1);
@@ -3484,13 +3504,14 @@ Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
);
);
tmp1=apply(frnL,Dq+#+Dq);
- tmp="frn3d"+nm+"="+text(tmp1);
+ tmp="frn3d"+nm+"="+text(tmp1)+";"; //190415
parse(tmp);
- println(" generate totally "+"frn3d"+nm);
tmp1=apply(frhL,Dq+#+Dq);
- tmp="frh3d"+nm+"="+text(tmp1);
+ tmp="frh3d"+nm+"="+text(tmp1)+";"; //190415
parse(tmp);
- println(" generate totally "+"frh3d"+nm);
+ if(msgflg=="Y",
+ println("generate "+"frn3d"+nm+",frh3d"+nm+""); //190331
+ );
[frnL,frhL]; //181106
);
////%Nohiddenbyfaces end////
@@ -3550,7 +3571,7 @@ Faceremovaldata(nm,vfdata,crvdata,options):=(
if(Noflg<2,
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -3769,7 +3790,7 @@ Sf3data(nm,funstr,var1org,var2org,optionorg):=(
tmp2=tmp2+Dq+#+Dq+",";
);
tmp2=substring(tmp2,0,length(tmp2)-1);
- tmp="sf3d"+nm+"=[["+tmp1+"],["+tmp2+"]]";
+ tmp="sf3d"+nm+"=[["+tmp1+"],["+tmp2+"]];"; //190415
parse(tmp);
);
[sfdtuL,sfdtvL];
@@ -4393,7 +4414,7 @@ IntersectcrvsfR(nm,crvstr,fdorg,bdyeq,optionorg):=(
ReadOutData(fname);
);
println("generate "+name);
- parse(name);
+ parse(name+";"); //190415
);
////%IntersectcrvsfR end////
@@ -4498,6 +4519,8 @@ SfcutparadataR(nm,eqstrorg,sf,fdorg,optionorg,optionsh):=(
);
////%SfcutparadataR end////
+////////////// current skeleton 2018.01.04 ////////////////
+
////%Skeletonparadata start////
Skeletonparadata(nm):=Skeletondatacindy(nm,[]);
Skeletonparadata(nm,options):=Skeletondatacindy(nm,options);
@@ -4506,8 +4529,7 @@ Skeletonparadata(nm,pltdata1org,pltdata2org,options):=
Skeletondatacindy(nm,pltdata1org,pltdata2org,options);
////%Skeletonparadata end////
-////////////// new skeleton 2018.01.04 not completed and slow////////////////
-
+////%Skeletondatacindy start////
Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
Skeletondatacindy(nm,options):=(
regional(tmp);
@@ -4516,225 +4538,27 @@ Skeletondatacindy(nm,options):=(
);
Skeletondatacindy(nm,pltdata1,pltdata2):=
Skeletondatacindy(nm,pltdata1,pltdata2,[]);
-Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
+Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
//help:Skeletonparadata("1");
//help:Skeletonparadata("1",[pdata1,pdata2],[pdata3]);
-//help:Skeletondata(options2=[1(width)]);
- regional(Eps,Eps2,name2,name3,Ltype,Noflg,reL,opcindy,color,
- Data,Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data,
- Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2);
- name2="sk2d"+nm;
- name3="sk3d"+nm;
- pltdata1=[];// 16.01.31
- forall(pltdata1org,tmp1,
- tmp=parse(tmp1);
- pltdata1=append(pltdata1,tmp);
- );
- pltdata2=[];// 16.01.31
- forall(pltdata2org,tmp1,
- tmp=parse(tmp1);
- pltdata2=append(pltdata2,tmp);
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6; //16.02.28
- color=tmp_(length(tmp)-2);
- opcindy=tmp_(length(tmp));
- Rr=0.15*1000/2.54/MilliIn;
- size=1;
- Eps2=0.05;
- if(length(reL)>0, //16.02.28
- size=reL_1;
- Rr=size*Rr;
- if(length(reL)>1,Eps2=reL_2);
- );
- Eps=10^(-4);
- ObjL=Flattenlist(pltdata1);
- PltL=Flattenlist(pltdata2);
- Data=Makeskeletondata(ObjL,PltL,Rr);
- Out=select(Data,length(Projcurve(#))>0);
- Out=Flattenlist(Out);
- tmp1=apply(Out,textformat(#,5));
- tmp=name3+"="+tmp1;
- parse(tmp);
- tmp=name2+"=Projcurve("+name3+");";
- parse(tmp);
- Changestyle3d(pltdata1org,["nodisp"]);
- if(Noflg<3,
- println("generate skeleton :"+name3);
- tmp1=text(pltdata1org);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=text(pltdata2org);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- tmp=name3+"=Skeletonpara3data("+tmp1+","+tmp2+",";
- tmp=tmp+text(size)+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if(color!=KCOLOR, //180904
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- );
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(color!=KCOLOR, //180904
- Texcom("}");//180722
- );
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1,
- Subgraph(name3,opcindy);
- );
- );
- Out;
-);
-
-Makeskeletondata(ObjL,PltL,R0):=(
- regional(Allres,res,Eps1,obj,plt,obj2,remov,flg,koc,z1,z2,Rr,str,
- mm,nn,kk,ptk,pL,pt,ptL,tmp,tmp1,tmp2,tmp3,tmp3d);
- Eps1=10.0^(-2);
- Allres=[];
- forall(1..(length(ObjL)),mm,
- obj=ObjL_mm;
- remov=[];
- obj2=Projcurve(obj);
- forall(1..(length(PltL)),nn,
- plt=PltL_nn;
- tmp=Projcurve(plt);
- koc=IntersectcurvesPp(obj2,tmp);
- forall(1..(length(koc)),kk,
- ptk=koc_kk;
- tmp=PointonCurve(ptk_2,obj);
- z1=Zparapt(tmp);
- tmp=PointonCurve(ptk_3,plt);
- z2=Zparapt(tmp);
- if(z1<z2-Eps1,
- tmp=max([sqrt(1-(ptk_5)^2),0.75]);
- Rr=R0/tmp;
- tmp2=[];
- flg=0;
- tmp=reverse(1..(floor(ptk_2)));
- forall(tmp,
- if(flg==0,
- if(|obj2_#-ptk_1|>Rr,
- tmp2=[#];
- flg=1;
- );
- );
- );
- if(length(tmp2)==0,tmp2=[1]);
- flg=0;
- tmp=(ceil(ptk_2))..(length(obj2));
- forall(tmp,
- if(flg==0,
- if(|obj2_#-ptk_1|>Rr,
- tmp2=append(tmp2,#);
- flg=1;
- );
- );
- );
- if(length(tmp2)==1,tmp2=append(tmp2,length(obj2)));
- tmp=obj2_((tmp2_1)..(tmp2_2));
- tmp1=Circledata("",[ptk_1,ptk_1+[Rr,0]],["Num=8","nodata"]);
- tmp1=Intersectcurves(tmp,tmp1);
- if(length(tmp1)==2,
- tmp=sort([tmp1_1_2,tmp1_2_2]);
- tmp=[[tmp2_1-1+tmp_1,1],[tmp2_1-1+tmp_2,-1]];
- remov=concat(remov,tmp);
- );
- if(length(tmp1)==1,
- if(tmp2_1==1,
- tmp=[[1,1],[tmp2_1-1+tmp1_1_2,-1]];
- ,
- tmp=[[tmp2_1-1+tmp1_1_2,1],[length(obj2),-1]];
- );
- remov=concat(remov,tmp);
- );
- );
- );
- );
- if(length(remov)==0,
- res=obj;
- ,
- res=[];
- remov=sort(remov,[#_1,#_2]);
- tmp=select(remov,#_1<1-Eps1);
- if(length(tmp)==0,
- flg=0;
- res=[1];
- ,
- flg=length(tmp);
- res=[];
- );
- forall(remov,
- tmp=flg;
- if(#_2==-1,
- flg=flg-1;
- if(flg==0,res=append(res,#_1));
- );
- if(#_2==1,
- flg=flg+1;
- if(tmp==0,res=append(res,#_1));
- );
- );
- if((flg==0)&(res_(length(res))<length(obj)),
- res=append(res,length(obj));
- );
- tmp=res;
- res=[];
- forall(1..(length(tmp)/2),nn,
- tmp1=tmp_(2*nn-1);
- tmp2=tmp_(2*nn);
- pL=(ceil(tmp1))..(floor(tmp2));
- if(tmp1<ceil(tmp1)-Eps1,pL=prepend(tmp1,pL));
- if(tmp2>floor(tmp2)+Eps1,pL=append(pL,tmp2));
- ptL=[];
- forall(pL,
- pt=PointonCurve(#,obj);
- ptL=append(ptL,pt);
- );
- res=append(res,ptL);
- );
- );
- Allres=append(Allres,res);
- );
- Allres;
-);
-
-////////////// current skeleton 2018.01.04 ////////////////
-
-////%Skeletonparadata start////
-Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
-Skeletondatacindy(nm,options):=(
- regional(tmp);
- tmp=Datalist3d();
- Skeletondatacindy(nm,tmp,tmp,options);
-);
-Skeletondatacindy(nm,pltdata1,pltdata2):=
- Skeletondatacindy(nm,pltdata1,pltdata2,[]);
-Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
-//help:Skeletondatacindy("1");
-//help:Skeletondatacindy("1",[pdata1,pdata2],[pdata3]);
-//help:Skeletondatacindy(options=[1(width),"File=y(/m/n)","Not=ptlist","Check=ptlist"]);
+//help:Skeletonparadatac(options=[1(width),"File=y(/m/n)","Not=ptlist","Check=ptlist"]);
regional(Eps,Eps2,name2,name3,options,Ltype,Noflg,reL,eqL,opcindy,
Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data,
Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2,color,
fileflg,wflg,mkflg,fname,varL,nn,chkL); //181101
name2="sk2d"+nm;
name3="sk3d"+nm;
- fname=Fhead+"sk"+nm+".txt"; //181102
+ fname=Fhead+"sk"+nm+".txt"; // no ketjs //181102
pltdata1=[];// 16.01.31
forall(pltdata1org,tmp1,
tmp=parse(tmp1);
+ tmp=apply(tmp,if(isstring(#),parse(#),#));//190506
pltdata1=append(pltdata1,tmp);
);
pltdata2=[];// 16.01.31
forall(pltdata2org,tmp1,
tmp=parse(tmp1);
+ tmp=apply(tmp,if(isstring(#),parse(#),#));//190506
pltdata2=append(pltdata2,tmp);
);
options=optionsorg;
@@ -4755,10 +4579,10 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
Rr=size*Rr;
if(length(reL)>1,Eps2=reL_2);
);
- forall(eqL, //181101from
+ forall(eqL, // no ketjs on //181101from
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
- if(tmp1=="FI",
+ if(tmp1=="F", //190320
fileflg=Toupper(substring(tmp_2,0,1));
options=remove(options,[#]);
);
@@ -4773,13 +4597,13 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
chkL=parse(tmp_2);
options=remove(options,[#]);
);
- );
+ );// no ketjs off
Eps=10^(-4);
ObjL=Flattenlist(pltdata1);
Plt3L=Flattenlist(pltdata2);
- tmp=apply(Plt3L,ProjcoordCurve(#));
+ tmp=apply(Plt3L,Projcoordcurve(#));
Plt2L=Flattenlist(tmp);
- if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), //181101from, 181103
+ if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), // no ketjs on //181101from, 181103
wflg=1;
tmp=flatten(pltdata1org);
varL=tmp;
@@ -4814,21 +4638,21 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
if(isexists(Dirwork,fname),
mkflg=0;
ReadOutData(fname);
- tmp=name3+"="+Textformat(parse(name3),5);
+ tmp=name3+"="+Textformat(parse(name3),5)+";"; //190415
parse(tmp);
- tmp=name2+"="+Textformat(parse(name2),5);
+ tmp=name2+"="+Textformat(parse(name2),5)+";"; //190415
parse(tmp);
);
);
);
- );
- );
+ );
+ );// no ketjs off
if(mkflg==1, //181102
///////////// tmp=apply(pltdata1,replace(#,"3d","2d"));
Out=[];
forall(1..(length(ObjL)),ii,
Obj3=ObjL_ii;
- tmp=ProjcoordCurve(Obj3);
+ tmp=Projcoordcurve(Obj3);
Data=Makeskeletondata([tmp],Plt2L,Rr,Eps2);
forall(1..(length(Data)),jj,
Gd=Data_jj;
@@ -4846,7 +4670,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
);
Out=select(Out,length(Projcurve(#))>0); // 16.12.19
tmp1=apply(Out,textformat(#,5));
- tmp=name3+"="+tmp1;
+ tmp=name3+"="+tmp1+";"; //190415
parse(tmp);
tmp=name2+"=Projcurve("+tmp1+");";
parse(tmp);
@@ -4854,7 +4678,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
if(mkflg>-1,
Changestyle3d(pltdata1org,["nodisp"]);
);
- if((Noflg<3)&(mkflg>-1), //181103
+ if((Noflg<3)&(mkflg> -1), //no ketjs on //181103
if(fileflg!="Y", //181102
println("generate skeleton :"+name3);
tmp1=text(pltdata1org);
@@ -4869,11 +4693,11 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
,
GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102
);
- );
+ ); //no ketjs off
if((Noflg<2)&(mkflg>-1), //181103
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -4883,7 +4707,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
Subgraph(name3,opcindy);
);
);
- if(mkflg>-1,
+ if(mkflg>-1, // no ketjs on
if((fileflg=="Y")&(wflg==1), //181102from
tmp1="skeleton"+nm+".txt";
SCEOUTPUT = openfile(tmp1);
@@ -4892,11 +4716,11 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
);
closefile(SCEOUTPUT);
WriteOutData(fname,[name3,parse(name3),name2,parse(name2)]);
- ); //181102to
+ ); //181102to
Out;
- );
+ );// no ketjs off
);
-////%Skeletonparadata end////
+////%Skeletondatacindy end////
////%Makeskeletondata start////
Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
@@ -4925,7 +4749,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
tmp=Dind_ii;
tmp=Dmat_(Dind_ii_1..Dind_ii_2);
pt2=Columnlist(tmp,1..2);
- koc=IntersectcrvsPp(pt1,pt2,[Eps]);
+ koc=Intersectcrvspp(pt1,pt2,[Eps]);
if(length(koc)>0,
breakflg=0;
forall(1..(length(koc)),jj,
@@ -5014,7 +4838,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
forall(reverse(1..nn),jj,
contflg=0;
if(breakflg==0,
- ptq=PointonCurve(jj,pt1);
+ ptq=Pointoncurve(jj,pt1);
if(Norm(pt-ptq)<Rr,
contflg=1;
);
@@ -5032,7 +4856,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
hh=t2-t1;
forall(1..10,
hh=hh*0.5;
- ptq=PointonCurve(t1+hh,pt1);
+ ptq=Pointoncurve(t1+hh,pt1);
if(Norm(pt-ptq)<Rr,
t2=t2-hh;
,
@@ -5046,7 +4870,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
forall((nn+1)..te,jj,
contflg=0;
if(breakflg==0,
- ptq=PointonCurve(jj,pt1);
+ ptq=Pointoncurve(jj,pt1);
if(Norm(pt-ptq)<Rr,
contflg=1;
);
@@ -5064,7 +4888,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
hh=t2-t1;
forall(1..10,
hh=hh*0.5;
- ptq=PointonCurve(t1+hh,pt1);
+ ptq=Pointoncurve(t1+hh,pt1);
if(Norm(pt-ptq)<Rr,
t1=t1+hh;
,
@@ -5079,19 +4903,19 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
Res=[];
forall(1..(length(KukanL)),ii,
tmp=KukanL_ii;
- t1=tmp_1; nn1=floor(t1);
- t2=tmp_2; nn2=floor(t2);
- PtL=[];
+ t1=tmp_1; nn1=re(floor(t1));
+ t2=tmp_2; nn2=re(floor(t2));
+ PtL=[];
if(t1-nn1<1-Eps,
- tmp=PointonCurve(t1,pt1);
+ tmp=Pointoncurve(t1,pt1);
PtL=[tmp];
);
forall((nn1+1)..nn2,jj,
- tmp=PointonCurve(jj,pt1);
+ tmp=Pointoncurve(jj,pt1);
PtL=append(PtL,tmp);
);
if(t2-nn2>Eps,
- tmp=PointonCurve(t2,pt1);
+ tmp=Pointoncurve(t2,pt1);
PtL=append(PtL,tmp);
);
tmp=Listplot("",PtL,["nodata"]);
@@ -5099,6 +4923,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
);
Allres=concat(Allres,Res);
);
+
Allres;
);
////%Makeskeletondata end////
@@ -5160,8 +4985,8 @@ Kukannozoku(Jokyo,KukanL):=(
////////////////// end of current skeleton//////////////
-////%ProjcoordCurve start////
-ProjcoordCurve(Curve):=(
+////%Projcoordcurve start////
+Projcoordcurve(Curve):=(
regional(SP,CP,ST,CT,Out,jj,pt,x,y,z,xz,yz,zz);
SP=sin(PHI); CP=cos(PHI);
ST=sin(THETA); CT=cos(THETA);
@@ -5176,7 +5001,7 @@ ProjcoordCurve(Curve):=(
);
Out;
);
-////%ProjcoordCurve end////
+////%Projcoordcurve end////
////%Divnohidhid start////
Divnohidhid(nm,dt3dorg,nvec):=Divnohidhid(nm,dt3dorg,nvec,[],["do"]);
@@ -5235,11 +5060,11 @@ Divnohidhid(nm,dt3dorg,nvec,optionorg,options2):=(
);
tmp1="[";
forall(nohid,tmp1=tmp1+textformat(#,5)+",");
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
+ tmp1=substring(tmp1,0,length(tmp1)-1)+"];"; //190415
parse(name+"nh="+tmp1);
tmp1="[";
forall(hid,tmp1=tmp1+textformat(#,5)+",");
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
+ tmp1=substring(tmp1,0,length(tmp1)-1)+"];"; //190415
parse(name+"h="+tmp1);
[nohid,hid];
);
@@ -5282,7 +5107,7 @@ Beziersurf(nm,m,n,pL):=(
"y"
]);
if(ispoint(pL_1),
- p3dL=apply(pL,parse(text(#)+"3d"));
+ p3dL=apply(pL,#.name+"3d"); //190505
,
p3dL=apply(pL,parse(#+"3d"));
);
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
index 79cc8fc315b..d77763598c8 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
@@ -1,3 +1,55 @@
+// 20190622
+// Implicitplot changed ("x","y" supported)
+// 20190603
+// Initglist changed (XMIN,... added )
+// 20190530
+// Initglist, Setglist, Addglist added
+// 20190514
+// Setenglish removed
+// 20190511
+// Implicitplot changed (Eps=>10^(-6))
+// Ketinit changed (KetcindyDataList initialized)
+// 20190508
+// Implicitplot debugged (bisection method employed )
+// 20190507
+// Replaceall added
+// 20190505
+// Ptselected changed (for KeTCinyJS, one point)
+// text(pt) => pt.name
+// 20190504
+// Ketinit changed (REMOVEPT,SLIDEFLG)
+// Colorname2rgb changed ("cindycolor" added)
+// 20190502
+// Pp -> pp, etc
+// 20190429
+// Colorname2rgb changed (lightgray added)
+// 20190426
+// Pointdata debugged ( case of geo-point )
+// 20190428
+// Ketinit changed (TABLECOUNT added )
+// 20190424
+// Framedata majorly changed/debugged
+// 20190423
+// Ketinit changed ( Frame not appeared in KeTCindyJS )
+// MeasureDepth majorly changed
+// 20190420
+// Plotdata changed (name in case of "-...")
+// 20190416
+// Ketinit changed (zenkaku space)
+// 20190415
+// parse( ..= ) changed ( ; added )
+// 20190412
+// Some functions moved to basic2
+// 20190409
+// Pointdata changed (color)
+// 20190406
+// Pointdata changed (size)
+// Implicitplot debugged (opstr )
+// 20190405
+// Pointdata changed (color,inside )
+// 20190323
+// Circledata changed ([Center,r] supported
+// Colorname2rgb changed ( in the case of no color, "Assign" added )
// 20190311
// Shade changed ( order of COM2ndlist)
// Com2nd changed ("before" removed )
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
index 4957f56cd83..c68a550dd11 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
@@ -14,9 +14,9 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("KeTCindy V.3.2.5");
+println("KeTCindy V.3.2.9");
println(ketjavaversion());
-println("ketcindylibbasic1[20190311] loaded");
+println("ketcindylibbasic1[20190622] loaded");
//help:start();
@@ -58,7 +58,8 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
MARKLEN=0.05;
MARKLENInit=MARKLEN; //180504
MARKLENNow= MARKLEN;
- GENTEN=[0,0];//18.01.15until
+ GENTEN=[0,0];//18.01.15to
+ TABLECOUNT=0; //190428
KETPICLAYER=20;
MilliIn=1/2.54*1000;
PenThick=round(MilliIn*0.02);
@@ -69,17 +70,17 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
YaCut=0; YasenStyle="dr,1"; Yajiristyle="tf";
KETPICCOUNT=1;
KCOLOR=[0,0,0];
- GLIST=[];
+ GLIST=[]; // no ketjs
GCLIST=[];
-// GDATALIST=[]; //no ketjs
+// GDATALIST=[]; //no ketjs on
GOUTLIST=[];
- POUTLIST=[];
+ POUTLIST=[]; // no ketjs off
VLIST=[];
FUNLIST=[];
LETTERlist=[];
- COM0thlist=[];
+ COM0thlist=[]; // no ketjs on
COM1stlist=[];
- COM2ndlist=[];
+ COM2ndlist=[]; // no ketjs off
// COM2ndlistb=[]; //180612
ADDAXES="1";
AXSTYLE=["l","x","e","y","n","O","sw","","",""]; //181216
@@ -99,14 +100,15 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
GPACK="tpic"; //180817
ErrFlag=0;
KETJSOP=[]; //190129
- // no ketjs on 190122
+ REMOVEPTJS=[]; SLIDEFLG="Y"; //190504
+ KetcindyjsDataList=[];
// setdirectory(Dirwork);
if(!isstring(Fhead), // 17.10.13from, 17.11.12
Fhead=text(curkernel());
Fhead=replace(Fhead,".cdy","");
Slidename=Fhead; //17.10.24
);//17.11.12
- Dircdy=replace(Dircdy,"%E3%80%80"," ");//180405
+ Dircdy=replace(Dircdy,"%E3%80%80",unicode("3000"));//190416
Namecdy=Cindyname();//180608
tmp1=Indexall(Dircdy,"%"); //180329from
if(length(tmp1)>0,
@@ -170,15 +172,53 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
);
////%Ketinit end////
+////%Initglist start//// 190530
+Initglist():=(
+ GLIST=[]; // no ketjs
+ GCLIST=[];
+ COM0thlist=[]; // no ketjs on
+ COM1stlist=[];
+ COM2ndlist=[]; // no ketjs off
+ KCOLOR=[0,0,0];
+ SCALEX=1;
+ SCALEY=1;
+ XMIN=SW.x; XMAX=NE.x; //190603[2lines]
+ YMIN=SW.y; YMAX=NE.y;
+);
+////%Initglist end////
+
+////%Setglist start//// 190530
+Setglist():=(
+ GLISTadd=GLIST;
+ GCLISTadd=GCLIST;
+ COM0thlistadd=COM0thlist; // no ketjs on
+ COM1stlistadd=COM1stlist;
+ COM2ndlistadd=COM2ndlist; // no ketjs off
+);
+////%Setglist end////
+
+////%Addglist start//// 190530
+Addglist():=(
+ GLIST=GLISTadd;
+ GCLIST=GCLISTadd;
+ COM0thlist=COM0thlist; // no ketjs on
+ COM1stlist=COM1stlistadd;
+ COM2ndlist=COM2ndlistadd; // no ketjs off
+);
+////%Addglist end////
+
////%Fillstore start////
Fillstore():=(
regional(tmp,tmp1,out,dtL,txtL,clrL,txt,clr,nn,jj);
dtL=[ //181209from
["Figure",[1,0.29,0.29]],["Parent",[1,1,0]],
- ["ParaF",[0,1,1]],["Flip",[0,0,1]],["Anime",[0.51,0.95,1]],
+ ["ParaF",[1,0.93,0.6]],["Flip",[0,0,1]],["Anime",[0.51,0.95,1]],
["Title",[0,1,0]],["Slide",[0.47,0,0.72]],["Digest",[1,0.74,0.47]],
["KeTJS",[0,1,1]],["KeTJSoff",[0,1,1]],
- ["Objview",[0,1,0]]
+ ["Objview",[0,1,0]],
+ ["Play",[1.0, 0.741, 0.467]],["Pause",[1.0, 0.741, 0.467]], //190426[2lines]
+ ["Rev",[1.0, 0.741, 0.467]],["Stop",[1.0, 0.741, 0.467]],
+ ["Skele",[1.0, 0.741, 0.467]],["Nohid",[1.0, 0.741, 0.467]]
];
txtL=apply(dtL,#_1);
clrL=apply(dtL,#_2);
@@ -212,7 +252,7 @@ Fillblack(str):=(
tmp=select(tmp1,#.name=="Text0");
if(length(tmp)==0,
forall(store,
- tmp=parse(#_1);
+ tmp=parse(#_1+";");
tmp.fillcolor=[0,0,0];
);
,
@@ -304,13 +344,13 @@ Setwindow(str):=(
Putpoint("SW",Pcrd([XMIN,YMIN]));
Putpoint("NE", Pcrd([XMAX,YMAX]));
);
- if(msg=="y",
+ if(msg=="y", // no ketjs on
println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])");
);
layer(KETPICLAYER);
autoclearlayer(KETPICLAYER,true);
drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
- Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
+ Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]); // no ketjs off
);
Setwindow(xrange,yrange):=(
//help:Setwindow([2,3],[-1,1]);
@@ -787,7 +827,7 @@ Changework(dirorg):=Changework(dirorg,["Sub=y"]);
Changework(dirorg,options):=( //16.10.21
//help:Changework(directory);
//help:Changework(Dircdy+"fig");
-//help:Changework(options=["Sub=n"(not to make folder fig]);
+//help:Changework(options=["Sub=n"<not to make folder fig>);
regional(dir,subdir,tmp,,eqL,makesub);
tmp=Divoptions(options);
eqL=tmp_5; //180605from
@@ -865,7 +905,7 @@ Changestyle(nameL,style):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -896,17 +936,19 @@ Op(n,object):=( // 16.05.25
////%Op end////
////%Ptselected start////
-Ptselected():=Isptselected(allpoints());//180711[2lines]
-Ptselected(ptlist):=Isptselected(ptlist);
-Isptselected():=Isptselected(allpoints()); //180706
-Isptselected(ptlist):=(
+Ptselected():=Isptselected(allpoints()); //180706
+Ptselected(ptlistorg):=(
//help:Ptselected();
-//help:Isptselected();
- regional(flg);
+//help:Ptselected(geopoint);
+ regional(ptlist,flg,Eps);
+ Eps=(XMAX-XMIN)/10; //190505
flg=0;
+ ptlist=ptlistorg; //190505[2lines]
+ if(!islist(ptlist),ptlist=[ptlist]);
forall(ptlist,
if(flg==0,
- if(isselected(#),flg=1);
+ if(isselected(#),flg=1); // no ketjs
+// if(|mouse().xy-#.xy|<Eps,flg=1); // only ketjs //190505
);
);
if(flg==0,false,true);
@@ -970,7 +1012,7 @@ Dependgeo(geo):=(
regional(tmp,tmp1,tmp2,out);
tmp=Finddef(geo);
if(!iscircle(geo),
- out=[text(geo)];
+ out=[geo.name]; //190505
,
out=[geo];
);
@@ -1013,7 +1055,7 @@ Drawprocess(nn,options):=(
); //181030to
tmp=remove(allpoints(),[NE,SW,TH,FI]);
tmp1=select(tmp,
- substring(text(#),length(text(#))-1,length(text(#)))!="z");
+ substring(#.name,length(#.name)-1,length(#.name))!="z"); //190505
tmp1=concat(tmp1,alllines());
// tmp1=concat(tmp1,allcircles());
All=apply(tmp1,Dependgeo(#));
@@ -1149,6 +1191,20 @@ Sprintf(value,dig):=(
);
////%Sprintf end////
+////%Replaceall start//// 190507
+Replaceall(str,repL):=(
+ regional(tmp1,tmp2,out);
+ out=str;
+ forall(1..(length(repL)/2),
+ tmp1=repL_(2*#-1);
+ tmp2=repL_(2*#);
+ if(!isstring(tmp2),tmp2=text(tmp2));
+ out=replace(out,tmp1,tmp2);
+ );
+ out;
+);
+////%Replaceall end////
+
////%Assign start////
Assign(str):=( //190125from
regional(tmp);
@@ -1210,7 +1266,6 @@ Assign(funstr,varname,rep):=(
);
////%Assign end////
-////%Measuredepth start////
Measuredepth(list):=(
regional(tmp,tmp1,Depth,Flg);
Flg=0;
@@ -1237,6 +1292,22 @@ Measuredepth(list):=(
);//180501
Depth;
);
+
+////%Measuredepth start////
+Measuredepth(list):=( //190423
+ regional(str,nn,tmp,tmp1,tmp2);
+ str=text(list);
+ tmp1=Indexall(str,"[");
+ tmp2=select(tmp1,!contains(tmp1,#+1));
+ nn=tmp2_1;
+ tmp1=substring(str,nn,length(str));
+ tmp=indexof(tmp1,",");
+ tmp1=substring(tmp1,0,tmp-1);
+ if(!ispoint(parse(tmp1)),
+ nn=nn-1;
+ );
+ nn;
+);
////%Measuredepth end////
////%Flattenlist start////
@@ -1456,19 +1527,19 @@ Ptcrv(Num,Fig):=(
////%Invert start////
Invert(Fig):=(
-//help:Invert("gr1");
+//help:Invert("gr1"); //no ketjs
regional(tmp);
if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27
reverse(tmp);
);
-Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27
+Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 160127
Invert(nm,Fig,options):=(
//help:Invert("1","gr1");
regional(name,tmp);
name="-inv"+nm;
tmp=Invert(Fig);
Listplot(name,tmp,options);
-);// until 16.01.27
+);// to 160127
////%Invert end////
////%Paramoncrv start////
@@ -1643,11 +1714,11 @@ Koutenseg(pA,pB,pC,pD,options):=(
///////// Start of old Intersect ////////////
-////%IntersectcrvsPp start////
-IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
-IntersectcrvsPp(Gr1,Gr2,options):=(
-//help:IntersectcrvsPp("gr1","pa1");
-//help:IntersectcrvsPp(options=[Eps2(0.1),"Dif=0.05"]);
+////%Intersectcrvspp start////
+Intersectcrvspp(Gr1,Gr2):=Intersectcrvspp(Gr1,Gr2,[]);
+Intersectcrvspp(Gr1,Gr2,options):=(
+//help:Intersectcrvspp("gr1","pa1");
+//help:Intersectcrvspp(options=[Eps2(0.1),"Dif=0.05"]);
regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2,
Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj,
pP,pQ,rT,Flg,eqL,realL,opstr,Dif);
@@ -1788,14 +1859,14 @@ IntersectcrvsPp(Gr1,Gr2,options):=(
); // 15.04.06 until
Out;
);
-////%IntersectcrvsPp end////
+////%Intersectcrvspp end////
////%Intersectcrvs start////
Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
//help:Intersectcrvs("gr1","pa1");
Intersectcrvs(Gr1,Gr2,options):=(
regional(tmp,tmp1,tmp2);
- tmp1=IntersectcrvsPp(Gr1,Gr2,options);
+ tmp1=Intersectcrvspp(Gr1,Gr2,options);
apply(tmp1,#_1);
);
////%Intersectcrvs end////
@@ -2107,11 +2178,11 @@ Collectsameseg(ptdL):=(
);
////%Collectsameseg end////
-////%IntersectcurvesPp start////
-IntersectcurvesPp(crv1org,crv2org):=IntersectcurvesPp(crv1org,crv2org,[]);
-IntersectcurvesPp(crv1org,crv2org,options):=(
-//help:IntersectcurvesPp(crv1,crv2);
-//help:IntersectcurvesPp(options=[Eps1(0.01),Eps2(0.1),Dist(2)])
+////%Intersectcurvespp start////
+Intersectcurvespp(crv1org,crv2org):=Intersectcurvespp(crv1org,crv2org,[]);
+Intersectcurvespp(crv1org,crv2org,options):=(
+//help:Intersectcurvespp(crv1,crv2);
+//help:Intersectcurvespp(options=[Eps1(0.01),Eps2(0.1),Dist(2)])
regional(Eps,Eps1,Eps2,Dist,crv1,crv2,ii,jj,seg1,seg2,self,loopL,out,
flg,tmp,tmp1,tmp2);
Eps=10^(-4);
@@ -2215,7 +2286,7 @@ IntersectcurvesPp(crv1org,crv2org,options):=(
); //190221to
out;
);
-////%IntersectcurvesPp end////
+////%Intersectcurvespp end////
////%Intersectcurves start////
Intersectcurves(crv1org,crv2org):=Intersectcurves(crv1org,crv2org,[]);
@@ -2223,15 +2294,15 @@ Intersectcurves(crv1org,crv2org,options):=(
//help:Intersectcurves(crv1,crv2);
//help:Intersectcurves(options=[Eps1(0.1),Dist(2)])
regional(tmp);
- tmp=IntersectcurvesPp(crv1org,crv2org,options);
+ tmp=Intersectcurvesop(crv1org,crv2org,options);
tmp=apply(tmp,#_1);
);
////%Intersectcurves end////
///////////End of new Intersect //////////////
-////%NearestptcrvPhy start////
-NearestptcrvPhy(point,PL):=(
+////%Nearestptcrvphy start////
+Nearestptcrvphy(point,PL):=(
regional(tmp,pP,plist);
pP=Pcrd(point);
if(isstring(PL),plist=parse(PL),plist=PL);
@@ -2241,7 +2312,7 @@ NearestptcrvPhy(point,PL):=(
tmp=tmp_1;
[tmp_1/SCALEX,tmp_2/SCALEY];
);
-////%NearestptcrvPhy end////
+////%Nearestptcrvphy end////
////%Nearestptcrv start////
Nearestptcrv(point,plist):=(
@@ -2339,7 +2410,7 @@ Derivative(Arg1,Arg2,Arg3):=(//1807120
,
tmp1=Lineplot("",[[0,v],[1,v]],["nodata"]);
);
- tmp=IntersectcurvesPp(pdstr,tmp1);
+ tmp=Intersectcurvespp(pdstr,tmp1);
if(length(tmp)==0,
println(" Derivative cannot be found");
out="";
@@ -2432,7 +2503,7 @@ Tangentplot(nm,pdstr,ptinfo,optionsorg):=(
,
tmp1=Lineplot("",[[0,v],[1,v]],["nodata"]);
);
- tmp=IntersectcurvesPp(pdstr,tmp1);
+ tmp=Intersectcurvespp(pdstr,tmp1);
if(length(tmp)==0,//1807120
println(" Derivative cannot be calculated");
flg=1;
@@ -2611,8 +2682,8 @@ IntegrateO(pltdata,rangeorg):=(
range=reverse(range);
pmflg=-1;
);
- va1=MeetCurve(pdata,range_1,0);
- va2=MeetCurve(pdata,range_2,0);
+ va1=Meetcurve(pdata,range_1,0);
+ va2=Meetcurve(pdata,range_2,0);
list=select(pdata,(#_1>range_1 & #_1<range_2));
if(length(list)>0, // 16.09.25
if(list_1_1>list_(length(list))_1, //16.11.03
@@ -2850,13 +2921,6 @@ Dottedline(gstr):=(
);
////%Dottedline end////
-////%SetEnglish start////
-SetEnglish():=(
-//help:SetEnglish();
- Com0th("setlanguage('en')");
-);
-////%SetEnglish end////
-
////%Drawlinetype start////
Drawlinetype(name,type):=(
//help:Drawlinetype("gr1","da,1");
@@ -2942,7 +3006,7 @@ Setunitlen(UI):=(
Setmarklen(ratio):=(
//help:Setmarklen(0.2);
MARKLEN=ratio*0.2;//16.11.01
- Com2nd("Setmarklen("+Textformat(ratio,5)+")");
+ Com2nd("Setmarklen("+Textformat(ratio,5)+")"); //no ketjs
);
////%Setmarklen end////
@@ -2950,14 +3014,14 @@ Setmarklen(ratio):=(
Setorigin(point):=(
//help:Setorigin([1,2]);
GENTEN=point; //181231
- Com2nd("Setorigin("+Textformat(point,5)+")");
+ Com2nd("Setorigin("+Textformat(point,5)+")"); //no ketjs
);
////%Setorigin end////
////%Fontsize start////
Fontsize(sizestr):=(
//help:Fontsize("s");
- Com2nd("Fontsize('"+sizestr+"')");
+ Com2nd("Fontsize('"+sizestr+"')"); //no ketjs
);
////%Fontsize end////
@@ -2965,7 +3029,7 @@ Fontsize(sizestr):=(
Setpen(width):=(
//help:Setpen(2);
PenThick=PenThickInit*width; // 16.04.09
- Com2nd("Setpen("+text(width)+")");
+ Com2nd("Setpen("+text(width)+")"); //no ketjs
);
////%Setpen end////
@@ -3401,6 +3465,8 @@ Colorname2rgb(name):=( //181212
["olivegreen",[0.64,0,0.95,0.4]],["rawsienna",[0,0.72,1,0.45]],
["sepia",[0,0.83,1,0.7]],["brown",[0,0.81,1,0.6]],
["tan",[0.14,0.42,0.56,0]],["gray",[0,0,0,0.5]],
+ ["lightgray",[0,0,0,0.17]], //190429
+ ["cindycolor",[0.66,0,69,0.71]], //190504
["black",[0,0,0,1]],["white",[0,0,0,0]]
];
tmp=select(dL,#_1==name);
@@ -3410,13 +3476,13 @@ Colorname2rgb(name):=( //181212
code=Colorcmyk2rgb(code);
,
println(" "+name+" not found");
- code=[0,0,0];
+ code=Assign(name); //190323
);
);
////%Colorname2rgb end////
-////%GetLinestyle start////
-GetLinestyle(str,name):=(
+////%Getlinestyle start////
+Getlinestyle(str,name):=(
regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
Ltype=-1;
Dop="";
@@ -3483,7 +3549,7 @@ GetLinestyle(str,name):=(
);
Ltype;
);
-////%GetLinestyle end////
+////%Getlinestyle end////
////%Chunderscore start////
Chunderscore(str):=(
@@ -3557,7 +3623,7 @@ AddGraph(nm,pltdata,options):=(
pdata=tmp1;
if(Noflg<3,
println("generate addgraph "+name);
- tmp=name+"="+Textformat(pdata,5);
+ tmp=name+"="+Textformat(pdata,5)+";"; //190415
parse(tmp);
if(isstring(pltdata), // 16.04.04 from
if(indexof(pltdata,"]")>0,
@@ -3599,14 +3665,14 @@ AddGraph(nm,pltdata,options):=(
forall(1..(length(pdata)),
tmp=name+"p"+Textformat(#,5)+"=";
if(length(pdata_#)>1, // 15.01.22
- tmp=tmp+"Listplot("+Textformat(pdata_#,5)+")";
+ tmp=tmp+"Listplot("+Textformat(pdata_#,5)+");"; //190425
,
- tmp=tmp+"Pointdata("+Textformat(pdata_#_1,5)+")";
+ tmp=tmp+"Pointdata("+Textformat(pdata_#_1,5)+");"; //190425
);
GLIST=append(GLIST,tmp); //no ketjs
tmp1=tmp1+name+"p"+Textformat(#,5)+",";
);
- tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")";
+ tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+");"; //190425
);
GLIST=append(GLIST,tmp1); //no ketjs
);
@@ -3616,7 +3682,7 @@ AddGraph(nm,pltdata,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -3701,7 +3767,7 @@ Joincrvs(nm,plotstrL,options):=(
if(Noflg<3,
println("generate joincurve "+name);
tmp1=apply(PtL,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";";
parse(tmp);
tmp1="";
forall(plotstrL,
@@ -3715,7 +3781,7 @@ Joincrvs(nm,plotstrL,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -3791,7 +3857,7 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
if(Noflg<3,
println("generate partcrv "+name);
tmp1=apply(Ans,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
// GLIST=append(GLIST, // 16.04.03
if(DepthFlg==0,
@@ -3808,7 +3874,7 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -3838,8 +3904,8 @@ Pointdata(nm,list):=Pointdata(nm,list,[]);
Pointdata(nm,listorg,options):=(
//help:Pointdata("1",[2,4],["Size=5"]);
//help:Pointdata("2",[[2,3],[4,1]]);
-//help:Pointdata(options=["Size=(1)","Disp=(y)","Inside="]);
-//help:Pointdata("Inside=1(def)/ratio/rgblist/colorname/-1"]);
+//help:Pointdata(options=["Size=(1)","Disp=(y)","Msg=(y)","Inside=","Color="]);
+//help:Pointdata("Inside=color/ratio/no"]);
regional(list,name,nameL,ptlist,opstr,opcindy,Msg,
eqL,dispflg,size,thick,tmp,tmp1,tmp2,tmp3,
Ltype,Noflg,color,inside);
@@ -3849,9 +3915,9 @@ Pointdata(nm,listorg,options):=(
Ltype=tmp_1;
Noflg=tmp_2;
eqL=tmp_5;
- opcindy=tmp_(length(tmp));
-// opstr=tmp_(length(tmp)-1);
+ opstr=tmp_(length(tmp)-1);
color=tmp_(length(tmp)-2);
+ opcindy=tmp_(length(tmp));
size="";
dispflg="Y";
inside=color;
@@ -3860,27 +3926,27 @@ Pointdata(nm,listorg,options):=(
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
if(tmp1=="S",
- size=Toupper(substring(tmp_2,0,1));;
- opcindy=opcindy+",size->"+text(size); //181013
+ size=tmp_2; //190406from
+ tmp1=parse(size);
+ opcindy=opcindy+",size->"+text(tmp1); //190409to
);
if(tmp1=="D", //181030from
dispflg=Toupper(substring(tmp_2,0,1));
);
- if(tmp1=="I", //181229from
- if(contains(["","no"],tmp_2),
- if(tmp_2=="no",inside=append(inside,-1));
+ if(tmp1=="I", //190405from
+ if(Toupper(substring(tmp_2,0,1))=="N",
+ inside=[-1,-1,-1];
,
- tmp2=substring(tmp_2,0,1);
- if(contains(["-","0","1",".","["],tmp2),
- tmp=parse(tmp_2);
- if(length(tmp)==4,tmp=Colorcmyk2rgb(tmp)); //190115
- if(!isstring(tmp),tmp=[tmp]);
+ tmp3=["0","1","2","3","4","5","6","7","8","9"];
+ if(contains(tmp3,substring(tmp_2,0,1)),
+ inside=parse(tmp_2)*color;
,
- tmp=Colorname2rgb(tmp_2);
+ tmp3=Divoptions(["Color="+text(tmp_2)]);
+ inside=tmp3_(length(tmp3)-2);
);
- inside=concat(inside,tmp);
+ opcindy=opcindy+",pointcolor->"+text(inside);
);
- ); //181229to
+ ); //100405to
if(tmp1=="M", //190206from
Msg=Toupper(substring(tmp_2,0,1));
); //190206to
@@ -3891,10 +3957,11 @@ Pointdata(nm,listorg,options):=(
);
); //181030to
if(isstring(listorg),
- list=parse(listorg)
+ list=parse(listorg);
,
- list=listorg
- ); //17.10.23
+ list=listorg;
+ ); //17.10.23
+ list=apply(list,Lcrd(#)); //190426
if(Measuredepth(list)==0,list=[list]);//180530
tmp=Measuredepth(list);
if(tmp==1,ptlist=list,ptlist=list_1); //190126from
@@ -3906,9 +3973,9 @@ Pointdata(nm,listorg,options):=(
if(length(tmp)==1, //190301from
tmp1=Textformat(tmp_1,5);
); //190301to
- tmp=name+"="+tmp1;
+ tmp=name+"="+tmp1+";"; //190415
parse(tmp);
- tmp=nameL+"="+tmp3;
+ tmp=nameL+"="+tmp3+";"; //190415
parse(tmp); //190126to
if(Noflg<3,
if(isstring(listorg), //17.10.23
@@ -3920,7 +3987,7 @@ Pointdata(nm,listorg,options):=(
tmp=#;
,
if(ispoint(#),
- tmp=text(#);
+ tmp=#.name; //190505
,
tmp=Textformat(#,6);
);
@@ -3928,7 +3995,7 @@ Pointdata(nm,listorg,options):=(
tmp2=tmp2+tmp+",";
);
tmp2=substring(tmp2,0,length(tmp2)-1)+")";
- //17.10.10until
+ //17.10.10to
);
GLIST=append(GLIST,name+"=Pointdata("+tmp2+")"); //no ketjs
);
@@ -3939,10 +4006,7 @@ Pointdata(nm,listorg,options):=(
if(length(size)>0,
Com2nd("Setpt("+size+")");
);
- thick=PenThick/PenThickInit; // 16.04.09 from
- if(length(size)>0,tmp1=parse(size),tmp1=1);
- tmp1=max(tmp1,1)/8;
- Setpen(tmp1); // 16.04.09 until
+ thick=PenThick/PenThickInit; // 16.04.09
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");
Com2nd("Setcolor("+color+")");//180711
@@ -3952,7 +4016,6 @@ Pointdata(nm,listorg,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180711
); //no ketjs off
- Setpen(thick); // 16.04.09
if(length(size)>0, //no ketjs on
tmp=Textformat(TenSize/TenSizeInit,1);
Com2nd("Setpt("+tmp+")");
@@ -4025,7 +4088,7 @@ Listplot(nm,list,options):=(
ptlist_1=ptlist_1+tmp*cutend_1;
ptlist_(length(ptlist))=ptlist_(length(ptlist))-tmp*cutend_2;
);//180719to
- tmp=name+"="+Textformat(ptlist,5);
+ tmp=name+"="+Textformat(ptlist,5)+";"; //190415
parse(tmp);
GLIST=append(GLIST,name+"=Listplot("+Textformat(ptlist,5)+")"); // 180719 //no ketjs
);
@@ -4034,7 +4097,7 @@ Listplot(nm,list,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180711
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180711
); //no ketjs off
@@ -4096,7 +4159,7 @@ Lineplot(nm,list,optionorg):=(
println("generate Lineplot "+name);
);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
GLIST=append(GLIST,name+"=Lineplot("+Textformat(list,5)+opstr+")"); //no ketjs
);
@@ -4105,7 +4168,7 @@ Lineplot(nm,list,optionorg):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -4144,7 +4207,11 @@ Plotdata(name1,func,variable,options):=(
regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
PdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,Msg,
Ltype,Noflg,Inflg,Outflg,opstr,opcindy,color);
- name="gr"+name1;
+ if(substring(name1,0,1)!="-", //190420from
+ name="gr"+name1;
+ ,
+ name=substring(name1,1,length(name1));
+ ); //190420to
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -4297,7 +4364,7 @@ Plotdata(name1,func,variable,options):=(
tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
);
);
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";";
parse(tmp);
tmp1=replace(func,LFmark,""); //no ketjs on
tmp2=replace(variable,LFmark,"");
@@ -4309,7 +4376,7 @@ Plotdata(name1,func,variable,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -4325,7 +4392,7 @@ Plotdata(name1,func,variable,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -4362,6 +4429,7 @@ Paramplot(nm,funstr,variable,options):=(
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
eqL=tmp_5;
+ Msg="Y"; //190322
Num=50;
Ec=[];
Exfun="";
@@ -4472,7 +4540,7 @@ Paramplot(nm,funstr,variable,options):=(
tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
);
);
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";";
parse(tmp);
tmp1=replace(funstr,LFmark,""); // 15.11.13 //no ketjs on
tmp2=replace(variable,LFmark,"");
@@ -4484,7 +4552,7 @@ Paramplot(nm,funstr,variable,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -4500,7 +4568,7 @@ Paramplot(nm,funstr,variable,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -4596,14 +4664,21 @@ Connectseg(Pdata):=(
////%Implicitplot start////
Implicitplot(name1,func,xrng,yrng):=Implicitplot(name1,func,xrng,yrng,[]);
-Implicitplot(name1,func,xrng,yrng,optionsorg):=(
+Implicitplot(name1,func,xrngorg,yrngorg,optionsorg):=(
//help:Implicitplot("1","x^2+x*y+y^2=1","x=[-3,3]","y=[-3,3]");
-//help:Implicitplot(options=["Num=[50,50]","Msg=y(n)"]);
- regional(name,options,Fn,varx,vary,rngx,rngy,Mdv,Ndv,tmp,tmp1,tmp2,
- Eps,Ltype,Noflg,eqL,color,opsr,opcindy,dx,dy,out,jj,ii,kk,msg,
+//help:Implicitplot(options=["Num=[50,50]","Msg=y(n)","Bisection=y(n)]);
+ regional(name,options,Fn,xrng,yrng,varx,vary,rngx,rngy,Mdv,Ndv,tmp,tmp1,tmp2,
+ Eps,Ltype,Noflg,eqL,color,opsr,opcindy,dx,dy,out,jj,ii,kk,msg,biflg,flg,
yval1,yval2,xval1,xval2,eval11,eva12,eval21,eval22,pL,vL,qL);
name="imp"+name1;
- Eps=10^(-4);
+ xrng=xrngorg; yrng=yrngorg; //190622from
+ if(indexof(xrng,"=")==0,
+ xrng=xrng+"="+Textformat([XMIN,XMAX],5);
+ );
+ if(indexof(yrng,"=")==0,
+ yrng=yrng+"="+Textformat([YMIN,YMAX],5);
+ ); //190622to
+ Eps=10^(-6); //190511
options=optionsorg;
tmp=Divoptions(options);
Ltype=tmp_1;
@@ -4611,8 +4686,10 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=(
eqL=tmp_5;
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
+ opstr=tmp_(length(tmp)-1); //190406
Mdv=50;Ndv=50;
msg="Y";
+ biflg="Y";
forall(eqL,
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
@@ -4631,6 +4708,10 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=(
msg=Toupper(substring(tmp2,0,1));
options=remove(options,[#]);
); //181112to
+ if(substring(#,0,1)=="B", //190509from
+ biflg==Toupper(substring(tmp2,0,1));
+ options=remove(options,[#]);
+ ); //190509to
);
tmp=indexof(func,"=");
if(tmp==0,
@@ -4646,7 +4727,7 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=(
tmp=indexof(yrng,"=");
vary=substring(yrng,0,tmp-1);
rngy=parse(substring(yrng,tmp,length(yrng)));
- tmp="Impfun("+varx+","+vary+"):="+Fn;
+ tmp="Impfun("+varx+","+vary+"):="+Fn+";";
parse(tmp);
dx=(rngx_2-rngx_1)/Mdv;
dy=(rngy_2-rngy_1)/Ndv;
@@ -4673,14 +4754,46 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=(
,
if(vL_kk>Eps,
if(vL_(kk+1)< -Eps,
- tmp=1/(vL_kk-vL_(kk+1))*
+ if(biflg=="n", //190508
+ tmp=1/(vL_kk-vL_(kk+1))*
(-vL_(kk+1)*pL_kk+vL_kk*pL_(kk+1));
+ ,
+ tmp1=pL_(kk); tmp2=pL_(kk+1); //190508from
+ flg=0;
+ forall(1..20, //190511
+ if(flg==0,
+ tmp=(tmp1+tmp2)/2;
+ eval11=Impfun(tmp_1,tmp_2);
+ if(abs(eval11)<=Eps,
+ flg=1;
+ ,
+ if(eval11>Eps,tmp1=tmp,tmp2=tmp);
+ );
+ );
+ ); //190508to
+ );
qL=append(qL,tmp);
);
- ,
+ ,
if(vL_(kk+1)>Eps,
- tmp=1/(-vL_kk+vL_(kk+1))*
+ if(biflg=="n", //190508
+ tmp=1/(-vL_kk+vL_(kk+1))*
(vL_(kk+1)*pL_kk-vL_kk*pL_(kk+1));
+ ,
+ tmp1=pL_(kk); tmp2=pL_(kk+1); //190508from
+ flg=0;
+ forall(1..20, //190511
+ if(flg==0,
+ tmp=(tmp1+tmp2)/2;
+ eval11=Impfun(tmp_1,tmp_2);
+ if(abs(eval11)<=Eps,
+ flg=1;
+ ,
+ if(eval11>Eps,tmp2=tmp,tmp1=tmp);
+ );
+ );
+ ); //190508to
+ );
qL=append(qL,tmp);
);
);
@@ -4712,19 +4825,20 @@ Implicitplot(name1,func,xrng,yrng,optionsorg):=(
tmp1=append(tmp1,apply(tmp2,Pcrd(#)));
);
);
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- tmp=name+"=Implicitplot('"+func+"','"+xrng+"','"+yrng+"'"+opstr+")"; //no ketjs
+ tmp=name+"="+Textformat(tmp1,5); //190415
+ parse(tmp+";");
+ tmp=name+"=Implicitplot('"+func+"','"+xrng+"','"+yrng+"'"+opstr+")";
GLIST=append(GLIST,tmp); //no ketjs
+// Drawfigures(name,[name],[options]); //190508
);
if(Noflg<2,
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
- Texcom("}");//180722
+ Texcom("}");//180722
); //no ketjs off
,
if(Noflg==1,Ltype=0);
@@ -4787,6 +4901,9 @@ Circledata(nm,cenrad,options):=(
if(length(cenrad)==2,
Ctr=Lcrd(cenrad_1);
Ptcir=Lcrd(cenrad_2);
+ if(!islist(Ptcir), //190323from
+ Ptcir=Ctr+[Ptcir,0];
+ ); //190323to
ra=dist(Ctr,Ptcir);
,
Eps=10^(-1);
@@ -4805,9 +4922,9 @@ Circledata(nm,cenrad,options):=(
,
Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1;
ra=|pA-Ctr|;
- tmp=name+"center="+Ctr;
+ tmp=name+"center="+Textformat(Ctr,5)+";";
parse(tmp);
- Defvar(name+"center",Ctr);
+ Defvar(name+"center",re(Ctr));
);
);
if(ra>0,
@@ -4824,7 +4941,7 @@ Circledata(nm,cenrad,options):=(
println("generate Circledata "+name);
);
tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
if(length(cenrad)==2, //no ketjs on
tmp=name+"=Circledata("+cenrad+opstr+")";
@@ -4842,7 +4959,7 @@ Circledata(nm,cenrad,options):=(
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -4883,105 +5000,32 @@ Framedata(Arg1,Arg2):=(
Framedata(name,list,options);
);
);
-Framedata(nm,list,optionsorg):=(
+Framedata(nm,list,optionsorg):=( //190424modified
//help:Framedata();
-//help:Framedata([C,A]);
//help:Framedata("1",[C,A]);
-//help:Framedata("1",[A,B],["corner"]);
//help:Framedata("1",[C,dx,dy]);
- regional(name,options,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,strL,type,cent,dx,dy,color);
+ regional(name,options,Out,tmp,tmp1,x1,x2,y1,y2,dx,dy,
+ opcindy,Ltype,Noflg,strL,cent,dx,dy,color);
name="fr"+nm;
options=optionsorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
- strL=tmp_7; //180801from
- type="center";
- forall(strL,
- if(Toupper(#)=="CORNER",
- type="corner";
- options=remove(options,[#]);
- );
- if(Toupper(#)=="CENTER",
- type="center";
- options=remove(options,[#]);
- );
- );
- if(type=="corner",
- Out=Framedata2(nm,list,options);
- , //180801to
- color=tmp_(length(tmp)-2);
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")"); //no ketjs
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //181020 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- Out;
-);
-Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]);
-Framedata(nm,cent,dx,dy,options):=(
- regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg,color);
- name="fr"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
- x1=cent.x-dx; x2=cent.x+dx;
- y1=cent.y-dy; y2=cent.y+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")"); //no ketjs
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ if(length(list)==2, // 15.05.12
+ cent=Lcrd(list_1); tmp=Lcrd(list_2);
+ dx=abs(tmp_1-cent_1); dy=abs(tmp_2-cent_2);
+ ,
+ cent=Lcrd(list_1);
+ dx=list_2; dy=list_3;
);
- Out;
+ x1=cent_1-dx; x2=cent_1+dx;
+ y1=cent_2-dy; y2=cent_2+dy;
+ Listplot("-"+name,[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]],options);
);
+Framedata(nm,cent,dx,dy):=Framedata(nm,[cent,dx,dy],[]);
+Framedata(nm,cent,dx,dy,options):=Framedata(nm,[cent,dx,dy],options);
////%Framedata end////
////%Framedata2 start////
@@ -5042,7 +5086,7 @@ Ovaldata(nm,Pdata,options):=(
if(Noflg<3,
println("generate Ovaldata "+name);
tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
GLIST=append(GLIST, //no ketjs
name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30 //no ketjs
@@ -5052,7 +5096,7 @@ Ovaldata(nm,Pdata,options):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -5061,7 +5105,7 @@ Ovaldata(nm,Pdata,options):=(
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
tmp1=apply(Graph,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=Textformat(Ctr,5)+","+Textformat(Dx,5)+","+Textformat(Dy,5);
);
@@ -5374,1956 +5418,5 @@ Putintersect(nm,pdata1,pdata2,ptno):=(
);
////%Putintersect end////
-////%Setarrow start////
-Setarrow():=Setarrow([]);
-Setarrow(arglist):=(
-//help:Setarrow([-1,-1,-1,1,0.3]);
-//help:Setarrow([size(1),angle(18),position(1),cut(0),segstyle("dr,1")]);
- regional(tmp);
- tmp=select(arglist,isreal(#));
- if(length(tmp)==0,
- println([YaSize,YaAngle,YaPosition,YaCut,YasenStyle]);
- );
- if(length(tmp)>=1,
- if((tmp_1>0),YaSize=tmp_1);
- );
- if(length(tmp)>=2,
- if((tmp_2>0)&(tmp_2<90),YaAngle=tmp_2);
- );
- if(length(tmp)>=3,
- if((tmp_3>=0)&(tmp_3<=1),YaPosition=tmp_3);
- );
- if(length(tmp)>=4,
- if((tmp_4>=0)&(tmp_4<1),YaCut=tmp_4);
- );
- tmp=select(arglist,isstring(#));
- if(length(tmp)>0,
- YasenStyle=tmp_1;
- );
- [YaSize,YaAngle,YaPosition,YaCut,YasenStyle];
-);
-////%Setarrow end////
-
-
-////%Arrowheaddata start////
-Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
-Arrowheaddata(point,direction,options):=(
-// help:Arrowheaddata(A,B);
-// help:Arrowheaddata(options=[size(1),angle(18), "Coord=phy"]);
- regional(list,ookisa,hiraki,Houkou,Str,Flg,Ev,Nv,pA,pB,
- reL,eqL,coord,pP,rF,gG,Flg,Nj,Eps,scx,scy,tmp,tmp1,tmp2);
- Eps=10^(-3);
- coord="P";
- ookisa=0.2*YaSize;
- hiraki=YaAngle;
- iti=1;
- kiri=0;
- Futosa=0;
- Str=YaStyle;
- tmp=Divoptions(options);
- eqL=tmp_5; //181018from
- reL=tmp_6;
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=substring(tmp_1,0,1);
- tmp2=substring(tmp_2,0,1);
- if(Toupper(tmp1)=="C",
- coord=Touppera(tmp2);
- );
- ); //181018to
- forall(1..(length(reL)), //181110from
- tmp=reL_#;
- if(#==1,ookisa=ookisa*tmp);
- if(#==2,
- if(tmp<5,
- hiraki=hiraki*tmp;
- ,
- hiraki=tmp;
- );
- );
- ); //181110to
- Flg=0;
- hiraki=hiraki*pi/180;
- if(ispoint(direction),Houkou=direction.xy); //181018
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(Measuredepth(Houkou)==2,Houkou=Houkou_1);
- if(coord=="P",//181018from
- if(ispoint(point),pP=point.xy,pP=point);
- ,
- pP=Pcrd(point);
- if(!islist(Houkou_1),
- Houkou=Pcrd(Houkou);
- ,
- Houkou=apply(Houkou,Pcrd(#));
- );
- );//181018to
- if(islist(Houkou_1),
- tmp=Nearestpt(pP,Houkou);
- pP=tmp_1;
- rF=floor(tmp_2);
- if(rF==1,
- if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
- rF=Numptcrv(Houkou);
- );
- );
- gG=apply(0..10,pP+ookisa*cos(hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
- Flg=0;
- forall(1..rF,Nj,
- if(Flg==0,
- pB=Ptcrv(rF+1-Nj,Houkou);
- tmp1=apply([pP,pB],LLcrd(#));
- tmp2=apply(gG,LLcrd(#));
- tmp=IntersectcrvsPp([pP,pB],gG);
- if(length(tmp)>0,
- Houkou=pP-Pcrd(tmp_1_1);
- Flg=1;
- );
- );
- );
- if(Flg==0,
- println("Arrowhead may be too large (no intersect)");
- Flg=2;
- );
- );
- if(Flg<2,
- Ev=-1/|Houkou|*Houkou;
- Nv=[-Ev_2, Ev_1];
- if(indexof(Str,"c")>0,
- pP=pP-0.5*ookisa*cos(hiraki)*Ev;
- );
- if(indexof(Str,"b")>0,
- pP=pP-ookisa*cos(hiraki)*Ev;
- );
- pA=pP+ookisa*cos(hiraki)*Ev+ookisa*sin(hiraki)*Nv;
- pB=pP+ookisa*cos(hiraki)*Ev-ookisa*sin(hiraki)*Nv;
- list=[pA,pP,pB];
- list;
- );
-);
-////%Arrowheaddata end////
-
-////%Arrowhead start////
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]); //181018from
-Arrowhead(Arg1,Arg2,Arg3):=(
- if(isstring(Arg1),
- Arrowhead(Arg1,Arg2,Arg3,[]);
- ,
- Arrowhead(text(ArrowheadNumber),Arg1,Arg2,Arg3);
- );
-);
-Arrowhead(nm,point,direction,optionsorg):=(//181018from
-//help:Arrowhead("1",B,B-A);
-//help:Arrowhead(options=[size(1),angle(18),position(1),cut(0),"Coord=P(L)"]);
-//help:Arrowhead(the default is -1 for numeric option);
-//help:Arrowhead(A,"gr1");
- regional(name,Ltype,Noflg,reL,opstr,opcindy,color,eqL,coord,
- options,cut,pP,Houkou,ptstr,hostr,tmp,tmp1,tmp2,list);
- name="arh"+nm; //181018
- ArrowheadNumber=ArrowheadNumber+1;
- options=optionsorg;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6;
- color=tmp_(length(tmp)-2);
- eqL=tmp_5;
- coord="P";
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=substring(tmp_1,0,1);
- tmp2=substring(tmp_2,0,1);
- if(Toupper(tmp1)=="C",
- coord=Toupper(tmp2);
- options=remove(options,[#]);
- );
- ); //181018to
- tmp1=[YaSize,YaAngle,YaPosition,YaCut]; //181214from
- forall(1..(length(reL)),
- if(reL_#<0, reL_#=tmp1_#);
- );
- forall((length(reL)+1)..4,
- reL=append(reL,tmp1_#);
- );
- cut=reL_4;
- tmp=reL_(1..3);
- options=select(options,!isreal(#));
- options=concat(options,tmp); //181214to
- if(ispoint(direction),Houkou=direction.xy); //181018
- if(isstring(direction),Houkou=parse(direction),Houkou=direction);
- if(Measuredepth(Houkou)==2,Houkou=Houkou_1);
- if(coord=="P",//181018from
- if(ispoint(point),pP=point.xy,pP=point);
- ,
- pP=Pcrd(point);
- if(!islist(Houkou_1),
- Houkou=Pcrd(Houkou);
- ,
- Houkou=apply(Houkou,Pcrd(#));
- );
- );//181018to
- list=Arrowheaddata(pP,Houkou,options);
- if(!Inwindow(LLcrd(pP)),Noflg=2);//181018
- if(Noflg<3,
- tmp1=apply(list,LLcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Listplot("-arh"+nm,apply(list,LLcrd(#)),concat(options,["notex","Msg=n"]));
- );
- );
- if(Noflg==0,
- tmp=Divoptions(options);
- opstr=tmp_(length(tmp)-1);
- opstr=opstr+","+Dqq("Cut="+format(cut,5));
- ptstr=Textformat(LLcrd(pP),5);
- if(isstring(direction), //181019
- hostr=direction;
- ,
- if(!islist(Houkou_1),
- hostr=format(LLcrd(Houkou),5);
- ,
- hostr=format(apply(Houkou,LLcrd(#)),5);
- );
- );
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- );
-);
-////%Arrowhead end////
-
-////%Arrowdata start////
-Arrowdata(ptlist):=Arrowdata(ptlist,[]); //181110from
-Arrowdata(Arg1,Arg2):=(
- regional(name);
- if(isstring(Arg1),
- Arrowdata(Arg1,Arg2,[]);
- ,
- name="";
- forall(Arg1,
- if(ispoint(#),
- name=name+text(#);
- );
- );
- Arrowdata(name,Arg1,Arg2);
- );
-); //181110from
-Arrowdata(nm,ptlist,optionsorg):=(
-//help:Arrowdata("1",[A,B]);
-//help:Arrowdata("1",[pt1,pt2]);
-//help:Arrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Coord=p/l"]);
-//help:Arrowdata(optionsadded=["line"]);
- regional(options,Ltype,Noflg,name,opstr,opcindy,eqL,reL,strL,color,size,coord,
- flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos,cut);
- name="ar"+nm;
- options=optionsorg;
- tmp=select(options,isstring(#)); //181214from
- tmp1=select(tmp,contains(["dr","da","do","id"],substring(#,0,2)));
- if(length(tmp1)==0,options=append(options,YasenStyle)); //181214to
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- reL=tmp_6;
- strL=tmp_7;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- tmp1=[YaSize,YaAngle,YaPosition,YaCut]; //181214from
- forall(1..(length(reL)),
- if(reL_#<0, reL_#=tmp1_#);
- );
- forall((length(reL)+1)..4,
- reL=append(reL,tmp1_#);
- );
- size=reL_1;
- angle=reL_2;
- segpos=reL_3;
- cut=reL_4;
- lineflg=0;
- if(contains(strL,"l")%contains(strL,"L"),
- lineflg=1;
- );//181018from
- options=remove(options,strL);
- cutend=[0,0];//180719
- coord="P";//181018
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,2));
- tmp2=tmp_2;
- if(tmp1=="CU",//180719from
- tmp2=replace(tmp2,"[","");
- tmp2=replace(tmp2,"]","");
- cutend=tokenize(tmp2,",");
- if(length(cutend)==1,cutend=[cutend_1,cutend_1]);
- options=remove(options,[#]);
- );
- if(tmp1=="CO",//181018from
- coord=Toupper(substring(tmp2,0,1));
- options=remove(options,[#]);
- );
- );
- if(|cutend|>0,//181110from
- tmp=ptlist_2-ptlist_1;
- tmp=tmp/|tmp|;
- ptlist_1=ptlist_1+tmp*cutend_1;
- ptlist_2=ptlist_2-tmp*cutend_2;
- );//181110to
- if(coord=="P",
- pA=ptlist_1; pB=ptlist_2;
- if(ispoint(pA),pA=pA.xy);
- if(ispoint(pB),pB=pB.xy);
- ,
- pA=Pcrd(ptlist_1); pB=Pcrd(ptlist_2);
- );//181018to
- if(Noflg<3,
- println("generate Arrowdata "+name);
- tmp=name+"="+Textformat([pA,pB],5);
- parse(tmp);
- if(lineflg==0, // 16.04.09 from
- tmp=pA-0.2*size/2*(pB-pA)/|pB-pA|; // 15.06.11
- ,
- tmp=pB;
- ); // 16.04.09 until
- tmp=format([LLcrd(pA),LLcrd(tmp)],6);
- );
- if(Noflg<2,
- if(isstring(Ltype),
- Listplot("-ar"+nm,[LLcrd(pA),LLcrd(pB)],append(options,"Msg=n"));
- Arrowhead(nm,pA+segpos*(pB-pA),pB-pA,options); //181110
- ,
- if(Noflg==1,Ltype=0);
- );
- );
- [Lcrd(pA),Lcrd(pB)];
-);
-////%Arrowdata end////
-
-////%Anglemark start////
-Anglemark(plist):=Anglemark(plist,[]);
-Anglemark(Arg1,Arg2):=( // 2015.04.28 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Anglemark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=Textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Anglemark(nm,plist,options);
- );
-); // to
-Anglemark(nm,plist,options):=(
-//help([A,B,C],["E=\theta",2]);
-//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
-// help:Anglemark("1",[A,B,2*pi]);
-//help:Anglemark(options=[size,"E/L=(sep,)letter"]);
- regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,color,
- Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg,Msg);
- name="ag"+nm;
- Bpos="md"+name;
- ra=0.5;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- color=tmp_(length(tmp)-2);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- Bname="";
- Brat=1.2; //180530
- Num=20;
- Msg="Y";
- opstr="";
- if(length(realL)>0,
- ra=realL_1*ra;
- opstr=","+text(realL_1);//180530
- );
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1));
- if((tmp1=="L")%(tmp1=="E"),
- if(tmp1=="L",Bname="Letter(");
- if(tmp1=="E",Bname="Expr(");
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29
- tmp1=indexof(tmp_2,",");
- Bname=Bname+substring(tmp_2,tmp1,length(tmp_2))+Dq+")"; //190219
- if(tmp1>0,
- Brat=parse(substring(tmp_2,0,tmp1-1));
- );
- );
- if(tmp1=="M", //190206from
- Msg=Toupper(substring(tmp_2,0,1));
- ); //190206to
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); sab=pB-pA;
- Ctr=pA;
- if((length(plist_3)>1)%(ispoint(plist_3)), //180506from
- pC=Lcrd(plist_3);
- sac=pC-pA;
- Rg=[arctan2(sab)+0,arctan2(sac)+0];
- ,
- sac=pB-pA;
- Rg=[arctan2(sab)+0,arctan2(sab)+plist_3];
- ); //180506to
- if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
- Out=[];
- if(ra>min(|sab|,|sac|), // 16.12.29
- println(" segments too short");
- ,
- forall(0..Num,
- Th=Rg_1+#*(Rg_2-Rg_1)/Num;
- Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
- );
- Th=(Rg_1+Rg_2)/2; //16.10.31from[moved]
- tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
- tmp="Defvar("+Dq+Bpos+"=";
- tmp=tmp+Textformat(tmp1,5)+Dq+");";
- parse(tmp);//16.10.31to[moved]
- if(length(Bname)>0,
- parse(Bname);
- );
- if(Noflg<3,
- if(Msg=="Y", //190206
- println("generate anglemark "+name+" and "+Bpos);
- );
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- tmp=Textformat(plist,5); //no ketjs on
- tmp1=substring(tmp,1,length(tmp)-1);
- tmp=name+"=Anglemark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp); //no ketjs off
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- );
- Out;
-);
-////%Anglemark end////
-
-////%Paramark start////
-Paramark(plist):=Paramark(plist,[]);
-Paramark(Arg1,Arg2):=( // 17.03.27 from
- regional(nm,plist,options,tmp);
- if(isstring(Arg1),
- nm=Arg1;
- plist=Arg2;
- Paramark(nm,plist,[]);
- ,
- plist=Arg1;
- options=Arg2;
- tmp=Textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Paramark(nm,plist,options);
- );
-);// to
-Paramark(nm,plist,options):=(
-//help:Paramark([A,B,C],["E=\theta"]);
-//help:Paramark("1",[p1,p2,p3],["E=\theta"]);
- regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
- Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy,color);
- name="pm"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- ra=0.5;
- Bname="";
- Brat=1.2;
- if(length(realL)>0,
- tmp=realL_1;
- ra=tmp*ra;
- opstr=opstr+","+text(tmp);
- );
- forall(eqL,
- if(substring(#,0,1)=="L",Bname="Letter(");
- if(substring(#,0,1)=="E",Bname="Expr(");
- Bpos="md"+name;
- Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq; //180705
- tmp=substring(#,indexof(#,"="),length(#));
- tmp1=indexof(tmp,",");
- Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
- if(tmp1>0,
- Brat=parse(substring(tmp,0,tmp1-1));
- );
- );
- pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
- Ctr=Lcrd(pA);
- Out=[];
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
- Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
- Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
- if(length(Bname)>0,
- tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
- tmp="Defvar("+Dq+Bpos+"="+Textformat(tmp1,5)+Dq+");";
- parse(tmp);
- parse(Bname);
- );
- if(Noflg<3,
- println("generate paramark "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(Textformat(plist,5),1,length(Textformat(plist,5))-1); //no ketjs on
- tmp=name+"=Paramark("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp); //no ketjs off
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- Out;
-);
-////%Paramark end////
-
-////%MakeBowdata start////
-MakeBowdata(pA,pB,Hgt):=(
- regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
- angle=arctan2(pB-pA)+0;
- pB2=Rotatepoint(pB,-angle,pA);
- tmp=Lcrd(pA);
- pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
- dMA=|tmp-pB2|/2;
- ra=(dMA^2+Hgt^2)/(2*Hgt);
- pC2=[pH2_1,pB2_2+(ra-Hgt)];
- pC=Rotatepoint(pC2,angle,pA);
- Th1=arctan2(pA-pC2)+angle;
- Th2=arctan2(pB2-pC2)+angle;
- [pC,ra,Th1,Th2];
-);
-////%MakeBowdata end////
-
-////%Bowdata start////
-Bowdata(plist):=Bowdata(plist,[]);
-Bowdata(plist,options):=(
- regional(nm,tmp);
- if(islist(plist), // 16.12.04from
- tmp=Textformat(plist,5);
- tmp=replace(tmp,",","");
- nm=substring(tmp,1,length(tmp)-1);
- Bowdata(nm,plist,options);
- ,
- nm=plist;
- tmp=options;
- Bowdata(nm,tmp,[]);
- ); // 16.12.04until
-);
-Bowdata(nm,plist,options):=(
-//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
-//help:Bowdata([A,B],["Expr=t0n3,a"]);
-//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
- regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
- Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,Msg,
- Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev,color);
- name="bw"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- eqL=tmp_5;
- realL=tmp_6;
- pA=Lcrd(plist_1); pB=Lcrd(plist_2);
- Hgt=1/2*|pB-pA|*0.2;
- Cut=0;
- Num=24;
- Bname="";
- Msg="Y"; //190206
- Tmov=0;//16.11.01from
- Nmov=0;
- Bmov="";
- rev=0;//16.11.01until
- if(length(realL)>0,
- Hgt=realL_1*Hgt; // 15.04.12
- if(length(realL)>1,Cut=realL_2);
- );
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1));
- if(tmp1=="L",
- if(indexof(#,"rot")>0,
- Bname="Letterrot(";
- ,
- Bname="Letter(";
- );
- Bops=tmp_2;
- );
- if(tmp1=="E",
- if(indexof(#,"rot")>0,
- Bname="Exprrot(";
- ,
- Bname="Expr(";
- );
- Bops=tmp_2;
- );
- if(tmp1=="M", //190206from
- Msg=Toupper(substring(tmp_2,0,1));
- ); //190206to
- );
- Ydata=MakeBowdata(pA,pB,Hgt);
- pC=Ydata_1;
- ra=Ydata_2;
- Th=(Ydata_3+Ydata_4)*0.5;
- BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
- Bpos="md"+name; // 16.10.31from[moved]
- tmp="Defvar("+Dq+Bpos+"="+Textformat(BOWMIDDLE,5)+Dq+");";
- parse(tmp);// 16.10.31to[moved]
- if(length(Bname)>0, //16.11.01from
- tmp=indexof(Bops,",");
- if(tmp>0,
- tmp1=substring(Bops,0,tmp-1);
- if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
- Bmov=tmp1;
- Bops=substring(Bops,tmp,length(Bops));
- );
- );
- if(length(Bmov)>0,
- tmp=indexof(Bmov,"t");
- if(tmp>0,
- tmp1=indexof(Bmov,"n");
- Tmov=parse(substring(Bmov,tmp,tmp1-1));
- tmp=indexof(Bmov,"r");
- if(tmp>0,
- Nmov=parse(substring(Bmov,tmp1,tmp-1));
- rev=1;
- ,
- Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
- );
- );
- );
- Bname=Bname+Bpos;//16.11.01
- if(abs(Tmov)+abs(Nmov)>0,
- tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/Norm(tmp)*tmp;
- tmp2=[-tmp1_2,tmp1_1];
- tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
- tmp=LLcrd(tmp);
- Bname=Bname+"+"+text(tmp);
- );
- Bname=Bname+",";
- if(indexof(Bname,"rot")>0,
- if(rev==1,tmp=pB-pA,tmp=pA-pB);
- Bname=Bname+Textformat(tmp,5)+",";
- ,
- Bname=Bname+Dq+"c"+Dq+",";
- );
- Bname=Bname+Dq+Bops+Dq+")";
- parse(Bname);
- );//16.11.01until
- if(Cut==0,
- Th1=Ydata_3;
- Th2=Ydata_4;
- Out=[];
- forall(0..Num,
- tmp=Th1+#*(Th2-Th1)/Num;
- Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
- );
- ,
- Th1=Ydata_3;
- Th2=Th-Cut/(2*ra);
- tmp1=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Th1=Th+Cut/(2*ra);
- Th2=Ydata_4;
- tmp2=[];
- forall(0..Num/2,
- tmp=Th1+#*(Th2-Th1)/(Num/2);
- tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
- );
- Out=[tmp1,tmp2];
- );
- if(Noflg<3,
- if(Msg=="Y", //190206
- println("generate bowdata "+name+" and "+Bpos);//16.10.31
- );
- if(Measuredepth(Out)==1,Out=[Out]);
- tmp1=[];
- forall(Out,tmp2,
- tmp=apply(tmp2,Pcrd(#));
- tmp1=append(tmp1,tmp);
- );
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- tmp1=substring(Textformat(plist,5),1,length(Textformat(plist,5))-1); //no ketjs on
- tmp=name+"=Bowdata("+tmp1+opstr+")";
- GLIST=append(GLIST,tmp); //no ketjs off
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-////%Bowdata end////
-
-////%Bowname start////
-Bowname(str):=Bowname("c",str);
-Bowname(dir,str):=(
- Expr([BOWMIDDLE,dir,str]);
-);
-////%Bowname end////
-
-////%Bownamerot start////
-Bownamerot(bwdata,str):=Bownamerot(bwdata,0,0,str,1);
-Bownamerot(bwdata,str,updown):=Bownamerot(bwdata,0,0,str,updown);
-Bownamerot(bwdata,tmov,nmov,str):=Bownamerot(bwdata,tmov,nmov,str,1);
-Bownamerot(bwdata,tmov,nmov,str,updown):=(
- regional(bdata,tmp);
- tmp=Measuredepth(bwdata);
- if(tmp==1,bdata=[bwdata],bdata=bwdata);
- if(length(bdata)>1,
- tmp=Ptend(bdata_2)-Ptstart(bdata_1);
- ,
- tmp=Ptend(bdata_1)-Ptstart(bdata_1);
- );
- if(updown<0,tmp=-tmp);
- Exprrot(BOWMIDDLE,tmp,tmov,nmov,str);
-);
-////%Bownamerot end////
-
-////%Deqdata start////
-Deqdata(deq,rng,initt,initf,Num):=( //17.10.04
-// Deqdata("[x1,...xn]`=[f1,...fn]","t=[0,20]",0,[...],50);
- regional(Eps,Inf,tname,Xname,func,t1,t2,dt,tt,X0,flg,
- kl1,kl2,kl3,kl4,pdL,tmp,tmp1,tmp2);
- Eps=10^(-3);
- Inf=10^3;
- tmp=tokenize(deq,"=");
- tmp1=replace(tmp_1,"`","");
- tmp1=substring(tmp1,1,length(tmp1)-1);
- Xname=tokenize(tmp1,",");
- func=tmp_2;
- forall(1..(length(Xname)),
- func=replace(func,Xname_#,"X_"+text(#));
- );
- tmp=tokenize(rng,"=");
- tname=tmp_1;
- tmp=parse(tmp_2);
- t1=tmp_1;
- t2=tmp_2;
- tmp="funP("+tname+",X):="+func+";";
- parse(tmp);
- tmp="funN("+tname+",X):=-"+func+";";
- parse(tmp);
- dt=(t2-t1)/Num;
- tt=initt;
- X0=Lcrd(initf);
- pdL=[flatten([tt,X0])];
- flg=0;
- forall(1..floor((t2-initt)/dt),
- if(flg==0,
- kl1=dt*funP(tt,X0);
- kl2=dt*funP(tt+dt/2,X0+kl1/2);
- kl3=dt*funP(tt+dt/2,X0+kl2/2);
- kl4=dt*funP(tt+dt,X0+kl3);
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6;
- tt=initt+#*dt;
- tmp=flatten([tt,X0]);
- pdL=append(pdL,tmp);
- if(|tmp|>Inf,flg=1);
- );
- );
- tt=initt;
- X0=Lcrd(initf);
- flg=0;
- forall(1..floor((initt-t1)/dt),
- if(flg==0,
- kl1=dt*funN(tt,X0);
- kl2=dt*funN(tt+dt/2,X0+kl1/2);
- kl3=dt*funN(tt+dt/2,X0+kl2/2);
- kl4=dt*funN(tt+dt,X0+kl3);
- X0=X0+(kl1+2*kl2+2*kl3+kl4)/6;
- tt=initt-#*dt;
- tmp=flatten([tt,X0]);
- pdL=prepend(tmp,pdL);
- if(|tmp1|>Inf,flg=1);
- );
- );
- pdL;
-);
-////%Deqdata end////
-
-////%Deqplot start////
-Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
-Deqplot(nm,deq,rng,Arg1,Arg2):=(
- regional(initt,initf,options);
- if(isreal(Arg1) & !islist(Arg1),
- initt=Arg1;
- initf=Arg2;
- options=[];
- ,
- initf=Lcrd(Arg1);
- initt=initf_1;
- options=Arg2;
- );
- Deqplot(nm,deq,rng,initt,initf,options);
-);
-Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
-//help:Deqplot("2","y'=y*(1-y)","x",0, 0.5,["Num=100"]);
-//help:Deqplot("1","y''=-y","x",0, [1,0]);
-//help:Deqplot("3","[x,y]'=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",0,[1,0.5]);
- regional(deq,rng,Ltype,Noflg,eqL,opcindy,Num,name,nn,pdL,phase,
- sel,tmp,tmp1,tmp2,tmp3,color);
- name="de"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- color=tmp_(length(tmp)-2);
- opcindy=tmp_(length(tmp));
- Num=50;
- forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,0,1);
- tmp2=Toupper(tmp2);
- tmp1=substring(#,tmp,length(#));
- if(Toupper(substring(#,0,1))=="N",
- Num=parse(tmp1);
- );
- );
- rng=rngorg;
- if(indexof(rng,"=")==0,
- rng=rng+"="+Textformat([XMIN,XMAX],6);
- );
- deq=replace(deqorg,"‘","`"); //190206
- deq=replace(deq,"'","`"); //180527
- tmp3=indexof(deq,"=");
- tmp1=substring(deq,0,tmp3-1);
- tmp2=substring(deq,tmp3,length(deq));
- if(indexof(tmp1,"[")==0,
- phase=0;
- sel=[1,2];
- ,
- phase=1;
- sel=[2,3];
- );
- nn=length(Indexall(tmp1,"`"));
- if(nn==0, //190211from
- println(" Lhs of equation has no single/back quotation "+tmp1);
- );
- if(nn>0,
- tmp=Indexall(tmp1,"`");
- if(tmp_(length(tmp))!=tmp3-1,
- nn=0;
- ,
- forall(reverse(2..(length(tmp))),
- if((nn>0)&(!contains(tmp,tmp_#-1)),
- nn=0;
- );
- );
- );
- if(nn==0,
- println(" Lhs of equation is not correct");
- );
- ); //190211to
- if(nn==1,
- if(indexof(tmp1,"[")==0,
- tmp1="["+replace(tmp1,"`","]`");
- deq=tmp1+"="+tmp2;
- );
- );
- if(nn>1,
- tmp=indexof(tmp1,"`");
- tmp1=substring(tmp1,0,tmp-1);
- deq="[";
- forall(1..nn,
- deq=deq+tmp1+"N"+text(#)+",";
- );
- deq=substring(deq,0,length(deq)-1)+"]`=[";
- forall(1..(nn-1),
- deq=deq+tmp1+"N"+text(#+1)+",";
- );
- forall(reverse(1..(nn)),jj,
- tmp=tmp1;
- forall(1..jj,
- tmp=tmp+"`";
- tmp2=replace(tmp2,tmp,tmp1+"N"+text(#+1));
- );
- );
- tmp2=tmp2+"]";
- forall(1..(length(tmp2)-1),
- tmp=substring(tmp2,#-1,#);
- if(tmp!=tmp1,
- deq=deq+tmp;
- ,
- tmp=substring(tmp2,#,#+1);
- if(tmp=="N",
- deq=deq+tmp1;
- ,
- deq=deq+tmp1+"N1"
- );
- );
- );
- deq=deq+"]";
- );
- if((nn>0)&(Noflg<3), //190211
- pdL=Deqdata(deq,rng,initt,initf,Num);
- if(phase==1,
- pdL=apply(pdL,#_(2..3));
- );
- tmp1=apply(pdL,Pcrd(#));
- tmp=name+"="+Textformat(tmp1,5);
- parse(tmp);
- );
- if((nn>0)&(Noflg<1), //190211 //no ketjs on
- tmp=Assign(deq);
- tmp=replace(deq,"'","`");
- tmp=name+"=Deqplot('"+tmp+"','"+rng+"',";
- tmp=tmp+format(initt,6)+","+Textformat(initf,6);
- tmp=tmp+","+text(sel)+",'Num="+text(Num)+"')";
- tmp=RSform(tmp);
- GLIST=append(GLIST,tmp);
- ); //no ketjs off
- if((nn>0)&(Noflg<2), //190211
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
-);
-////%Deqplot end////
-
-////////// old enclosing ///////////////
-
-Enclosing(nm,plist):=EnclosingS(nm,plist);
-Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
-EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
-EnclosingS(nm,plist,options):=(
-// help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
- regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,color
- t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
- name="en"+nm;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-5); // 16.12.05
- EEps=0.05;
- Start=[];
- Flg=0;
- forall(realL,
- if(islist(#) % ispoint(#),
- Start=Lcrd(#); // 15.09.12
- ,
- Flg=Flg+1;
- if(Flg==1,Eps=#);
- if(Flg==2,EEps=#);
- );
- );
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcrvsPp(Fdata,Gdata);
- if(length(KL)==1,
- pt=KL_1_1;
- t1=KL_1_2;
- );
- if(length(KL)==0,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- pt=tmp_1;
- t1=tmp_2;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- pt=tmp_3;
- t1=tmp_4;
- );
- );
- if(length(KL)>1,
- if(Start==[],
- err("No Start Point");
- ,
- pt=KL_1_1;
- t1=KL_1_2;
- tmp=Norm(pt-Start);
- forall(2..(length(KL)),ii, // 15.04.20
- tmp1=KL_ii_1;
- tmp2=Norm(tmp1-Start); // 15.04.20
- if(tmp2<tmp,
- pt=tmp1;
- t1=KL_ii_2;
- tmp=tmp2;
- );
- );
- );
- );
-// pt=Pcrd(pt); // 15.09.12
- Start=pt;
- AnsL=[];
- forall(1..(length(plist)),nn,
- Fdata=plist_nn;
- if(nn>1, pt=qt);
- if(nn==length(plist),
- qt=Start;
- ,
- Flg=0;
- Gdata=plist_(nn+1);
-// tmp1=concat([Eps,EEps],eqL); // 15.04.06
- KL=IntersectcrvsPp(Gdata,Fdata);
- if(length(KL)==1,
- tmp=KL_1;
- qt=KL_1_1;
- t3=KL_1_2;
- Flg=10;
- );
- if(length(KL)==0,Flg=1);
- if(length(KL)>1,
- tmp1=KL_1_1;
- tmp2=KL_2_1;
- tmp=|tmp1-tmp2|;
- if(tmp<Eps*10, Flg=1);
- );
- if(Flg==1,
- if(Numptcrv(Fdata)>Numptcrv(Gdata),
- tmp=Nearestpt(Fdata,Gdata);
- qt=tmp_1;
- t3=tmp_4;
- Flg=10;
- ,
- tmp=Nearestpt(Gdata,Fdata);
- qt=tmp_3;
- t3=tmp_2;
- Flg=10;
- );
- );
- if(Flg<10,
- t2=10^6; //%inf;
- forall(1..(length(KL)),ii,
- tmp1=KL_ii_1;
- tmp=KL_ii_3;
- tmp2=Paramoncurve(tmp1,tmp,Fdata);
- tmp3=KL_ii_2;
- if(tmp2>t1+Eps & tmp2<t2+Eps,
- qt=tmp1;
- t2=tmp2;
- t3=tmp3;
- );
- );
- );
- );
- tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
- t1=t3;
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..(length(tmp))));
- );
- );
- AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
- AnsL_(length(AnsL))=AnsL_1;//16.10.20
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+Textformat(AnsL,5);
- parse(tmp);
- tmp=name+"=Enclosing(";//16.11.07from //no ketjs on
- tmp1="list"+PaO();
- forall(plist,
- tmp1=tmp1+#+",";
- );
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-
-/////////// new enclosing ///////////
-
-////%Enclosing start////
-Enclosing(nm,plist):=Enclosing2(nm,plist,[]);//180706[2lines]
-Enclosing(nm,plistorg,options):=Enclosing2(nm,plistorg,options);
-Enclosing2(nm,plist):=Enclosing2(nm,plist,[]);
-Enclosing2(nm,plistorg,options):=(
-//help:Enclosing("1",["sg2","gr1","Invert(sg2)"]);
-//help:Enclosing(options=[startpoint,epspara(1)]);
- regional(name,plist,AnsL,Start,Eps,Eps1,Eps2,flg,Fdata,Gdata,KL,
- t1,t2,tst,ss,ii,nn,nxtno,Ltype,Noflg,realL,eqL,opstr,opcindy,
- tmp,tmp1,tmp2,color,epspara,p1,p2);
- name="en"+nm;
- plist=plistorg;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- realL=tmp_6;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- Eps=10^(-5); // 16.12.05
- epspara=1; //180707
- Eps1=0.01;
- Eps2=0.1;
- Start=[];
- flg=0;
- forall(realL,
- if(isList(#) % ispoint(#),
- Start=Lcrd(#); // 18.02.02
- ,
- if(flg==0,epspara=#);//180707
- if(flg==1,Eps1=#);
- if(flg==2,Eps2=#);
- flg=flg+1;
- );
- );
- flg=0;
- AnsL=[];
- if(length(plist)==1,
- Fdata=parse(plist_1);
- tmp1=Fdata_1;
- tmp2=Fdata_(length(Fdata));
- if(|tmp1-tmp2|<Eps,
- AnsL=Fdata;
- ,
- AnsL=append(Fdata,tmp1);
- );
- flg=1;
- );
- if(flg==0,
- Fdata=plist_1;
- Gdata=plist_(length(plist));
- KL=IntersectcurvesPp(Fdata,Gdata);
- if(length(KL)==0,
- tmp=parse(Gdata);
- tmp1=LLcrd(Op(length(tmp),tmp)); //18.02.02from
- tmp=parse(Fdata);
- tmp2=LLcrd(Op(1,tmp));
- tmp=Listplot(name,[tmp1,tmp2],["nodisp"]);
- plist=append(plist,"sg"+name);
- Start=tmp2;
- tst=1; //18.02.02to
- p1=Start;
- ,
- if(length(KL)==1,
- tst=KL_1_2;
- Start=Pointoncurve(tst,Fdata);
- );
- if(length(KL)>1,
- KL=sort(KL,[#_2]);
- if(Start==[],
- tst=KL_1_2;
- Start=Pointoncurve(tst,Fdata);
- ,
- tmp=apply(KL,|#_1-Start|);
- tmp=min(tmp);
- tmp1=select(KL,|#_1-Start|<tmp+Eps1);//180718
- tst=tmp1_1_2;
- Start=Pointoncurve(tst,Fdata);
- );
- );
- );
- );
- if(flg==0,
- t1=tst;
- p1=Pointoncurve(t1,Fdata); //180713
- println("Start point of enclosing is "+text(Start));
- forall(1..(length(plist)),nn,
- Fdata=plist_nn;
- if(nn==length(plist),nxtno=1,nxtno=nn+1);
- Gdata=plist_nxtno;
- KL=IntersectcurvesPp(Fdata,Gdata);
- if(length(KL)==0,
- tmp1=parse(Fdata); //18.02.02from
- tmp2=parse(Gdata);
- tmp2=Prepend(Op(length(tmp1),tmp),tmp2);
- Gdata=replace(Gdata,"(","");
- Gdata=replace(Gdata,")","");
- tmp=Gdata+"="+Textformat(tmp2,6);
- parse(tmp);
- plist_nxtno=Gdata;
- t2=Length(tmp1);
- p2=Pointoncurve(t2,Fdata); //180713
- ss=1; //18.02.02to
- ,
- KL=sort(KL,[#_2]);//180706
- tmp=parse(Fdata);
- tmp1=t1+epspara/50*length(tmp);
-// KL=select(KL,#_2>t1+epspara/50*length(tmp)); //180707
- KL=select(KL,(#_2>tmp1)%((#_2>t1)&(|#_1-p1|>Eps1))); //180713,16
- t2=KL_1_2;
- ss=KL_1_3;
- if(abs(t2-t1)<Eps,//180707
- if(length(KL)>1,
- t2=KL_2_2;
- ss=KL_2_3;
- ,
- println(text(nn)+" and "+text(nxtno)+" not intersect");
- flg=1;
- );
- );
- );
- if(flg==0,
- tmp=Partcrv("",t1,t2,Fdata,["nodata"]);
- if(nn==1,
- AnsL=tmp;
- ,
- AnsL=concat(AnsL,tmp_(2..(length(tmp))));
- );
- );
- t1=ss;//180706
- p1=Pointoncurve(t1,Gdata); //180713
- );
- );
- if(flg==0,
- AnsL=apply(AnsL,Pcrd(#));
- );
- if(Noflg<3,
- println("generate Enclosing "+name);
- tmp=name+"="+Textformat(AnsL,5);
- parse(tmp);
- tmp=name+"=Enclosing2(";//16.11.07from
- tmp1="list"+PaO();
- forall(plistorg, //18.02.02
- tmp1=tmp1+#+",";
- );
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")";//18.0706from //no ketjs on
- if(length(Start)>0,tmp=tmp+","+Textformat(Start,6));
- tmp=tmp+","+text(epspara)+")";//18.0706to,180707
- GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
- );
- if(Noflg<2,
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- tmp=apply(AnsL,LLcrd(#));//16.10.20
- tmp;
-);
-////%Enclosing end////
-
-/////////// end of new enclosing ///////////
-
-/////////// new Hatchdata(cindy) ///////////
-
-////%Makehatch start////
-Makehatch(iolistorg,pt,vec,bdylist):=(
- regional(Eps,iolist,sg,bdy,out,nb,tenL,ns,ne,ioL,
- ii,jj,kk,nvec,nbdy,sgn1,sgn2,flg,rmL,p0,p1,p2,pL,
- Scalebkup,tmp,tmp1,tmp2);
- Eps=10^(-5);
- nvec=[-vec_2,vec_1];
- nvec=nvec/|nvec|;
- if(!islist(iolistorg),iolist=[iolistorg],iolist=iolistorg);
- forall(1..(length(iolist)),
- tmp=replace(iolist_#,"i","1,");
- tmp=replace(tmp,"o","0,");
- tmp="["+substring(tmp,0,length(tmp)-1)+"]";
- iolist_#=parse(tmp);
- );
- Scalebkup=[SCALEX,SCALEY];//181020[2lines]
- SCALEX=1;
- SCALEY=1;
- sg=Lineplot("",[pt,pt+vec],["nodata"]);
- nb=length(bdylist);
- if(nb>0,
- tenL=[];
- forall(1..nb,ii,
- rmL=[];
- bdy=bdylist_ii;
- nbdy=length(bdy)-1;
- pL=[];
- forall(1..nbdy,jj,
- p1=bdy_jj;
- p2=bdy_(mod(jj+1-1,nbdy)+1);
- tmp=Intersectseg(sg,[p1,p2],Eps);
- if(abs(tmp_1)<Eps, //18.02.01
- p0=tmp_2; t=tmp_3; s=tmp_4;
- flg=0; //181003from
- forall(pL,
- if(flg==0,
- if(Norm(#_1-p0)<Eps,
- flg=1;
- );
- );
- );
- if(flg==0,
- pL=append(pL,[p0,t,s,ii]);
- ); //181003to
- );
- );
- if(length(pL)>0,
- pL=sort(pL,[#_2]);
- pL=apply(1..(length(pL)),append(pL_#,mod(#,2)));
- tenL=concat(tenL,pL);
- );
- );
- tenL=sort(tenL,[#_2]);
- if(length(tenL)>0, //180619from
- tmp1=tenL; tenL=[tmp1_1];
- forall(2..(length(tmp1)),ii, //180717from
- tmp=tmp1_ii;
- flg=0;
- forall(tenL,
- if((Norm(tmp_1-#_1)<Eps1)&(tmp_4==#_4),
- flg=1;
- );
- );
- if(flg==0,
- tenL=append(tenL,tmp);
- );
- );//180717to
- ); //180619to
- ioL=apply(1..nb,0);
- ns=1;
- ne=length(tenL);
- if(ne>0,tmp=tenL_1_1,tmp=sg_2);
- if(|sg_1-tmp|>Eps,
- tmp=[sg_1,-1,1,ioL];
- tenL=prepend(tmp,tenL);
- ns=ns+1;
- ne=ne+1;
- );
- if(|sg_2-tenL_(length(tenL))_1|>Eps,
- tmp=[sg_2,-1,2,ioL];
- tenL=append(tenL,tmp);
- );
- forall(ns..(ne-1),ii, //180619 ne=>ne-1
- tmp=tenL_ii;
- tmp1=tmp_4;
- tmp2=tmp_5;
- ioL_tmp1=tmp2;
- tmp=[tmp_1,tmp_2,tmp_4,ioL];
- tenL_ii=tmp;
- );
- out=[];
- forall(1..(length(tenL)-1),ii,
- tmp1=tenL_ii;
- if(contains(iolist,tmp1_4),
- tmp2=tenL_(ii+1);
- tmp=Listplot("",[tmp1_1,tmp2_1],["nodata"]);
- out=append(out,tmp);
- );
- );
- );
- SCALEX=Scalebkup_1; //181020
- SCALEY=Scalebkup_2;
- out;
-);
-////%Makehatch end////
-
-////%Anyselected start////
-Anyselected(ptL):=(
- regional(tmp,out);
- out=false;
- forall(ptL,
- if(isstring(#),tmp=parse(#),tmp=#);
- out=(out)%(isselected(tmp));
- );
- out;
-);
-////%Anyselected end////
-
-////%Hatchdata start////
-Hatchdata(nm,iostr,bdylist):=Hatchdatacindy(nm,iostr,bdylist,[]);//180619
-Hatchdata(nm,iostr,bdylist,optionsorg):=( //181003from
- regional(options,tmp,tmp1,tmp2,eqL,strL,chkL,outflg);
- options=optionsorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- strL=tmp_7;
- outflg=0;
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(tmp_1);
- if(substring(tmp1,0,1)=="O",
- tmp2=tmp_2;
- if(tmp2!="n",
- outflg=1;
- option=remove(options,[#]);
- if((tmp2=="m")%(tmp2=="r"),
- options=append(options,tmp2);;
- );
- );
- );
- );
- if(outflg==0,
- options=remove(options,strL);
- Hatchdatacindy(nm,iostr,bdylist,options);
- ,
- HatchdataR(nm,iostr,bdylist,options);
- );
-); //181003to
-Hatchdatacindy(nm,iostr,bdylist):=Hatchdata(nm,iostr,bdylist,[]);
-Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
- //help:Hatchdata("1",["ii"],[["ln1","Invert(gr1)"],["gr2","n"]]);
-//help:Hatchdata(options=["Not=pointlist","File=y(/m/n)","Max=50","Check=",angle,width]);
- regional(name,bdylist,bdynameL,bname,Ltype,Noflg,opstr,opcindy,reL,
- options,eqL,maxnum,startP,angle,interval,vec,nvec,ctr,pt,kk,delta,sha,AnsL,
- color,tmp,tmp1,tmp2,tmp3,namep,x1,y1,x2,y2,p1,p2, //180717
- fname,fileflg,mkflg,vaL,pL,nL,nn,str,is,ie); //181102
- name="ha"+nm;
- fname=Fhead+name+".txt";
- bdylist=[];
- bdynameL=[];
- forall(1..(length(bdylistorg)),kk,
- tmp1=bdylistorg_kk;
- if(length(tmp1)==1,
- bname=tmp1_1;
- ,
- tmp=tmp1_(length(tmp1));
- if(contains(["n","s","e","w"],tmp),
- namep=tmp1_1;//180717from
- tmp2=parse(namep);
- if(substring(namep,0,2)=="ln", //180717from
- if(contains(["n","s"],tmp),
- x1=tmp2_1_1; y1=tmp2_1_2; x2=tmp2_2_1; y2=tmp2_2_2;
- p1=[NE.x,(y2-y1)/(x2-x1)*(NE.x-x1)+y1];
- p2=[SW.x,(y2-y1)/(x2-x1)*(SW.x-x1)+y1];
- Listplot(name+text(kk),[p1,p2],["nodisp"]);
- namep="sg"+name+text(kk);
- tmp2=parse(namep);
- );
- if(contains(["e","w"],tmp),
- x1=tmp2_1_1; y1=tmp2_1_2; x2=tmp2_2_1; y2=tmp2_2_2;
- p1=[(x2-x1)/(y2-y1)*(NE.y-y1)+x1,NE.y];
- p2=[(x2-x1)/(y2-y1)*(SW.y-y1)+x1,SW.y];
- Listplot(name+text(kk),[p1,p2],["nodisp"]);
- namep="sg"+name+text(kk);
- tmp2=parse(namep);
- );
- );//180717to
- if(tmp=="s",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMIN-YMAX], //180717[2lines]
- [tmp2_(length(tmp2))_1,2*YMIN-YMAX],LLcrd(tmp2_(length(tmp2)))],
- ["nodisp"]);
- Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
- bname="join"+text(kk)+name;
- );
- if(tmp=="n",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMAX-YMIN], //180717[2lines]
- [tmp2_(length(tmp2))_1,2*YMAX-YMIN],LLcrd(tmp2_(length(tmp2)))],
- ["nodisp"]);
- Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);
- bname="join"+text(kk)+name;
- );
- if(tmp=="e",
- Listplot(name,apply([tmp2_1,[XMAX,tmp2_1_2],
- [XMAX,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
- Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
- bname="join"+text(kk)+name;
- );
- if(tmp=="w",
- Listplot(name,apply( [tmp2_1,[XMIN,tmp2_1_2],
- [XMIN,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
- Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
- bname="join"+text(kk)+name;
- );
- ,
- Enclosing2(text(kk)+name,tmp,["nodisp"]);//180619[2lines]
- bname="en"+text(kk)+name;
- );
- );
- bdylist=append(bdylist,parse(bname));
- bdynameL=append(bdynameL,bname);
- );
- options=optionsorg;
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- eqL=tmp_5;
- reL=tmp_6;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- angle=45;
-// interval=0.125*1000/2.54/MilliIn;
- interval=0.25*1000/2.54/MilliIn; //180706
- startP=[(XMIN+XMAX)/2, (YMIN+YMAX)/2];
- maxnum=[50,0]; //181109changed [first,second]
- fileflg="N";//181102from
- mkflg=1;
- chkL=[]; //181109
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1));
- if(tmp1=="M",
- maxnum=parse(tmp_2);
- if(!islist(maxnum),
- maxnum=[maxnum,0];
- );
- options=remove(options,[#]);
- );
- if(tmp1=="F", //181102from
- fileflg=Toupper(substring(tmp_2,0,1));
- options=remove(options,[#]);
- ); //181102to
- if(tmp1=="N", //181103from
- tmp=parse(tmp_2);
- if(Anyselected(tmp),
- mkflg=-1;
- );
- options=remove(options,[#]);
- );
- if(tmp1=="C",
- chkL=parse(tmp_2);
- options=remove(options,[#]);
- );
- );//181102,03to
- tmp1=1;
- forall(reL,
- if(islist(#),
- startP=#;
- ,
- if(tmp1==1,
- angle=#;
- tmp1=tmp1+1;
- ,
- interval= interval*#;
- );
- );
- );
- if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), //181102from
- wflg=1;
- varL=flatten(bdylistorg);
- varL=select(varL,length(#)>1);
- varL=sort(varL);
- pL=[];
- forall(1..(length(varL)),nn,
- tmp1=varL_nn;
- tmp=select(GLIST,substring(#,0,length(tmp1))==tmp1);
- str=tmp_1;
- varL_nn=str;
- tmp1=Bracket(str,"()");
- tmp2=max(apply(tmp1,#_2));
- nL=select(1..(length(tmp1)),tmp1_#_2==tmp2);
- forall(nL,nn,
- is=tmp1_nn_1; ie=tmp1_(nn+1)_1;
- tmp=substring(str,is,ie-1);
- tmp=replace(tmp,"'",Dq);
- tmp=parse("["+tmp+"]");
- tmp2=flatten(tmp);
- tmp2=flatten(tmp2);
- tmp2=flatten(tmp2);
- forall(tmp2,
- if(ispoint(#),
- if(!contains(pL,text(#)),
- pL=append(pL,text(#));
- );
- );
- );
- );
- );
- forall(chkL,
- if(!contains(pL,#),pL=append(pL,#));
- );
- forall(pL,
- tmp=#+"="+Textformat(parse(#+".xy"),5);
- varL=append(varL,tmp);
- );
- tmp="reL="+Textformat(reL,5);
- varL=append(varL,tmp);
- if(fileflg=="M",
- fileflg="Y";
- ,
- tmp1="hatch"+nm+".txt";
- if(isexists(Dirwork,tmp1),
- tmp2=load(tmp1);
- tmp2=tokenize(tmp2,"//");
- tmp2=tmp2_(1..(length(tmp2)-1));
- if(tmp2==varL,
- wflg=0;
- if(isexists(Dirwork,fname),
- mkflg=0;
- ReadOutData(fname);
- tmp=name+"="+Textformat(parse(name),5);
- parse(tmp);
- );
- );
- );
- );
- );
- if(mkflg==1, //181102to
- angle=angle*pi/180;
- vec=[cos(angle),sin(angle)];
- nvec=[-sin(angle),cos(angle)];
- AnsL=[];
- ctr=0;//181005[2lines]
- forall(0..(maxnum_1), kk,
- pt=startP+kk*interval*nvec;
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha!=-1)&(length(sha)>0),
- AnsL=concat(AnsL,sha);
- ctr=ctr+1; //181005
- );
- );
- maxnum_2=maxnum_2+(maxnum_1-ctr); //181005
- forall(1..(maxnum_2),kk, //181005
- pt=startP-kk*interval*nvec;
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha!=-1)&(length(sha)>0),
- AnsL=concat(AnsL,sha);
- );
- );
- tmp1=apply(AnsL,Textformat(#,5));
- tmp=name+"="+tmp1;
- parse(tmp);
- );
- if((Noflg<3)&(mkflg>-1),
- if(fileflg!="Y", //181102
- println("generate Hatchdata "+name);
- tmp=name+"="+Textformat(AnsL,5);
- parse(tmp);
- if(!islist(iostr),tmp1=[iostr],tmp1=iostr); //no ketjs on
- tmp="c"+PaO();
- forall(tmp1,
- tmp=tmp+Dq+#+Dq+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+")";
- tmp2=name+"=Hatchdata("+tmp;
- forall(bdynameL,
- tmp2=tmp2+",list"+PaO()+#+")";
- );
- tmp2=tmp2+opstr+")";
- GLIST=append(GLIST,tmp2); //no ketjs off
- ,
- GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102 //no ketjs
- );
- );
- if((Noflg<2)&(mkflg>-1),
- if(isstring(Ltype),
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("{");Com2nd("Setcolor("+color+")");//180722
- ); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
- Texcom("}");//180722
- ); //no ketjs off
- ,
- if(Noflg==1,Ltype=0);
- );
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
- );
- if(mkflg>-1,
- if((fileflg=="Y")&(wflg==1), //181102from
- tmp1="hatch"+nm+".txt";
- SCEOUTPUT = openfile(tmp1);
- forall(varL,
- println(SCEOUTPUT,#+"//");
- );
- closefile(SCEOUTPUT);
- WriteOutData(fname,[name,parse(name)]);
- ); //181102to
- tmp2=[];
- forall(AnsL,tmp1,
- tmp=apply(tmp1,LLcrd(#));
- tmp2=append(tmp2,tmp);
- );
- tmp2;
- );
-);
-////%Hatchdata end////
-
-////%Shadein start////
-Shadein(pstrorg):=( //190220
- regional(pstr,ptL,pL,crv,nn,
- tmp,tmp1,tmp2,pm1,pm2,p1,p2,flg);
- if(islist(pstrorg),pstr=pstrorg_1,pstr=pstrorg);
- crv=[];
- Framedata(["nodisp"]);
- ptL=IntersectcurvesPp(pstr,frwin);
- if(length(ptL)>0,
- pL=apply(ptL,#_2);
- forall(1..(length(pL)),nn,
- if(nn<length(pL),
- tmp1=pL_nn;
- tmp2=pL_(nn+1);
- tmp=Pointoncrv((tmp1+tmp2)/2,pstr);
- ,
- tmp1=pL_nn;
- tmp2=pL_1;
- tmp=parse(pstr);
- if(pL_nn==length(tmp),
- tmp=tmp_1;
- ,
- tmp=tmp_(length(tmp));
- );
- );
- if(Inwindow(tmp),
- tmp=Partcrv("",tmp1,tmp2,pstr,["nodata"]);
- ,
- tmp1=Pointoncrv(tmp1,pstr);
- tmp2=Pointoncrv(tmp2,pstr);
- pm1=Paramoncrv(tmp1,frwin);
- pm2=Paramoncrv(tmp2,frwin);
- if(floor(pm1)==floor(pm2),
- tmp=Listplot("",[tmp1,tmp2],["nodata"]);
- ,
- tmp=floor(pm1);
- p1=Pointoncrv(tmp,"frwin");
- p2=Pointoncrv(mod(tmp,4)+1,"frwin");
- tmp=p1-10*(p2-p1);
- Listplot("frwin",[p1,tmp],["nodisp","Msg=n"]);
- tmp=IntersectcurvesPp("sgfrwin",pstr);
- if(mod(length(tmp),2)==0, //190223from
- if(pm2<pm1,pm2=pm2+4);
- tmp=[tmp1];
- pm1=floor(pm1)+1;
- flg=0;
- forall(1..3,
- if(flg==0,
- if(pm1<pm2,
- p1=Pointoncrv(mod(pm1-1,4)+1,"frwin");
- tmp=append(tmp,p1);
- pm1=pm1+1;
- ,
- flg=1;
- );
- );
- );
- if(pm1-1<pm2,tmp=append(tmp,tmp2));
- ,
- if(pm2>pm1,pm2=pm2-4);
- tmp=[tmp1];
- pm1=floor(pm1);
- flg=0;
- forall(1..3,
- if(flg==0,
- if(pm1>pm2,
- p1=Pointoncrv(mod(pm1-1,4)+1,"frwin");
- tmp=append(tmp,p1);
- pm1=pm1-1;
- ,
- flg=1;
- );
- );
- );
- if(pm1+1>pm2,tmp=append(tmp,tmp2));
- ); //190223to
- );
- );
- if(length(crv)==0,
- crv=tmp;
- ,
- crv=Joincrvs("",[crv,tmp],["nodata"]);
- );
- );
- ,
- if(Inwindow(parse(pstr+"_1")),crv=pstr,crv=frwin);
- );
- crv;
-);
-////%Shadein end////
-
-////%Shade start////
-Shade(plist):=Shade(plist,[]);
-Shade(Arg1,Arg2):=(
- if(!isstring(Arg1),
- Shade(text(SHADECTR),Arg1,Arg2); //190222
- ,
- Shade(Arg1,Arg2,[]);
- );
-);
-Shade(nm,plistorg,options):=(
-//help:Shade(["gr1"],[0.5]);
-//help:Shade(["gr1"],["Color=red"]);
-//help:Shade(["gr1"],["Trim=y(n)"]); //190224
-// help:Shade(["gr1","sg1"],["Color=[1,0,0]"]);
-// help:Shade([[A,B,C,A]]);
-//help:Shade(["gr2","Invert(sg1)"],["Enc=y",(Startpoint)]);
- regional(name,plist,jj,nn,trim,tmp,tmp1,tmp2,
- opstr,opcindy,eqL,reL,Str,G2,flg,encflg,startpt,color,ctr);
- name="shade"+nm;
- plist=plistorg;
- if(isstring(plist_1), // 16.01.24
- println("output Shade of "+plist);
- ,
- println("output Shade of lists");
- );
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- tmp=select(plist,indexof(#,"Invert")>0); //180929from
- if(length(tmp)>0,encflg=1,encflg=0);
- trim="N";
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(tmp_1);
- tmp2=Toupper(tmp_2);
- if(substring(tmp1,0,1)=="E",
- if(substring(tmp2,0,1)=="Y",
- encflg=1;
- );
- if(substring(tmp2,0,1)=="N",
- encflg=0;
- );
- );
- if(substring(tmp1,0,1)=="T",
- trim=substring(tmp2,0,1);
- );
- );
- startpt=[];
- forall(reL,
- if(islist(#),
- startpt=#;
- );
- ); //180929to
- if(length(color)==4, //180602from
- tmp=Colorcmyk2rgb(color);
- );
- flg=0; ctr=1;
- if(encflg==1, //180929from
- if(length(startpt)==2,
- Enclosing(nm,plist,[startpt,"nodisp"]);
- ,
- Enclosing(nm,plist,["nodisp"]);
- );
- plist=["en"+nm];
- ); //180929to
- if((length(plist)==1)&(trim=="Y"), //190220from,109224
- plist=[Shadein(plist)];
- ); //190220to
- forall(1..(length(plist)),jj, //180613from
- if(flg==0,
- tmp1=plist_jj;
- if(isstring(tmp1),tmp=parse(tmp1),tmp=tmp1);
- if(!islist(tmp),
- flg=1;
- ,
- if(!isstring(tmp1),
- tmp2=[];
- forall(tmp1,if(ispoint(#),tmp=#.xy,tmp=#);
- tmp2=append(tmp2,tmp);
- );
- tmp1=Dqq("-"+name+text(ctr));
- tmp2=Textformat(tmp2,6)+",["+Dqq("nodisp")+"]";
- tmp=name+text(ctr)+"=Listplot("+tmp1+","+tmp2+")";
- parse(tmp);
- plist_jj=name+text(ctr);
- ctr=ctr+1;
- );
- );
- );
- );//180613to
- if(flg==1,
- println(" some data not defined properly");
- ,
- G2=Joincrvs("1",plist,["nodata"]);
- G2=apply(G2,Pcrd(#));
- tmp1="fillpoly("+Textformat(G2,5)+opcindy+");";
- parse(tmp1);
- );
- Str="Shade("; //no ketjs on
- tmp1="list"+PaO();
- forall(plist,
- if(isstring(#), // from 16.01.24
- if(length(#)>1,
- tmp1=tmp1+#+",";
- ,
- tmp1=tmp1+Dq+#+Dq+",";
- );
- ,
- tmp1=tmp1+"Listplot("+Textformat(#,5)+"),";
- ); //16.01.24to
- );
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+")"; //180929
- nn=length(COM2ndlist); //190311from
- jj=nn;
- forall(plist,tmp1,
- tmp=select(1..nn,indexof(COM2ndlist_#,tmp1)>0);
- jj=min(append(tmp,jj));
- );
- tmp1=["Texcom("+Dqq("{")+")","Setcolor("+color+")",Str,"Texcom("+Dqq("}")+")"];
- tmp2=COM2ndlist_(1..(jj-1));
- tmp=COM2ndlist_(jj..(length(COM2ndlist)));
- if(!islist(tmp),tmp=[tmp]);
- COM2ndlist=concat(tmp2,tmp1);
- COM2ndlist=concat(COM2ndlist,tmp); //190311to
- //no ketjs off
- SHADECTR=SHADECTR+1;
-);
-////%Shade end////
-
-/////////// end of new Hatchdata(cindy) ///////////
-
-
-
-
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
index fb2ec442dcf..35a48c5d4d9 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
@@ -1,3 +1,80 @@
+// 20190531
+// Drawfigures (Drwfigs) changed
+// 20190524
+// Anglemark,Paramark changed ( "E/L" option )
+// 20190523
+// Deqdata debugged ( floor => round )
+// Mkcstable added
+// Fourierseries changed ( for table data )
+// 20190520
+// Anglemark,Paramark debugged
+// Shade changed ( Listplot )
+// 20190512
+// Windispg changed (Dashlinedata)
+// 20190511
+// Periodfun changed ( println for debug removed)
+// 20190508
+// Changetablestyle debugged
+// Tabledatageo majorly changed
+// Tseginfo,Tsegrmv removed
+// 20190507
+// Tabledata debugged ( for "r_c_c_" )
+// Changetablestyle majorly changed
+// 20190505
+// Periodfun changed ( equal option added )
+// text(pt) => pt.name
+// 20190504
+// Lightarrowdata changed ("Line=" added )
+// 20190429
+// Pp => pp, Bow => bow
+// 20190429
+// Tabledatalight changed ( rng=n when move option used )
+// 20190428
+// Tabledata changed to Tabledatageo
+// Tabledata added ( Tabldetadalight if "Geo=n(defalt)", Tabledatageo if "Geo=y")
+// Tgrid changed ( TableMove added )
+// Changetablestyle changed ( for multiple tables )
+// 20190427
+// Drawfigures debugged ( N added )
+// Drwxy debugged ( KCOLOR added )
+// 20190426
+// Drawfigures added
+// 20190425
+// Rotatedata,Trans,Scale,Reflectdata changed (Msg option added)
+// Windispg changed ( for pointdata)
+// 20190424
+// Tabledatalight debugged ( tick)
+// 20190421
+// Tabledatalight changed ( 0 for notick)
+// 20190420
+// Periodfun majorly changed
+// Fourierseries changed ( range )
+// 20190419
+// Lightarrowdata added ( only for case of segment)
+/ 20190417
+// Arrowdata debugged ( for geo-points )
+// 20190416
+// Deqplot changed ( "`" )
+// Findfun, Extractun, Extractall move to basic3
+// 20190415
+// parse( ..= ) changed ( ; added )
+// Bowdata changed (Bpos)
+// 20190414
+// Helplist changed ( for basic3 )
+// 20190412
+// Some functions moved from basic1, moved to basic3
+// Arrowdata debugge ( for Setscaling )
+// 20190409
+// Mkketcindyjs debugged (color option )
+// Expr debugged ( type of pos,dir,text,option added )
+// 20190405
+// Mkketcindyjs changed (size of NE,SW. "Nolabe=all" )
+// 20190329
+// Slider debugged (PTEXCEPTION)
+// 20190325
+// Drwxy changed ( Msg=n for Listplot )
+// 20190324
+// Viewtex,Figpdf changed (for tikz )
// 20190301
// MeasureDepth => Measuredepth
// 20190228
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
index 0ff8a34535b..c1e21281ede 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
@@ -14,33 +14,2197 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindybasic2[20190301] loaded");
+println("ketcindylibbasic2[20190531] loaded");
//help:start();
-////%Dispchoice start////
-Dispchoice():=(
- if(islist(Ch),
- if(!isreal(ChNum),ChNum=1);
- drawtext(mouse().xy,"Ch="+text(Ch)+" N="+text(ChNum),size->24,color->[0,0,1]);
+////%Drwfigs start//// 190530
+Drwfigs(nm,figlist):=Drawfigures(nm,figlist,[]);
+Drwfigs(nm,figlist,optionlist):=Drawfigures(nm,figlist,optionlist,[]);
+Drwfigs(nm,figlist,optionlist,commonops):=Drawfigures(nm,figlist,optionlist,commonops);
+////%Drwfigs end////
+
+////%Drawfigures start//// 190426
+Drawfigures(nm,figlist):=Drawfigures(nm,figlist,[]);
+Drawfigures(nm,figlist,optionlist):=Drawfigures(nm,figlist,optionlist,[]);
+Drawfigures(nm,figlistorg,optionlistorg,commonops):=(
+//help:Drawfigures(["pt1","cr1"], [["Size=3"],[]],["Msg=n"]);
+ regional(figlist,name,figL,optionlist,nn,kk,fig,eqL,msg,tmp,tmp1,tmp2);
+ name="figs"+nm;
+ tmp=Divoptions(commonops);
+ eqL=tmp_5;
+ msg="Y";
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ msg=Toupper(substring(tmp_2,0,1));
+ );
+ );
+ figlist=figlistorg;
+ if(isstring(figlist),figlist=parse(figlist));
+ nn=length(figlist);
+ optionlist=optionlistorg;
+ if(length(optionlist)==0, //190531from
+ optionlist=apply(1..nn,[]);
+ );
+ if(!islist(optionlist_1),
+ optionlist=apply(1..nn,optionlist);
+ );
+ if(length(optionlist)<nn,
+ tmp=optionlist_(length(optionlist));
+ tmp2=length(optionlist);
+ tmp1=apply(tmp2..nn,tmp);
+ optionlist=concat(optionlist,tmp1);
+ ); //190531to
+ figL=[];
+ forall(1..nn,kk,
+ fig=figlist_kk;
+ if(isstring(fig),fig=parse(fig));
+ if(length(fig)>0,
+ if(Measuredepth(fig)==0,fig=[fig]); //190531from
+ if(Measuredepth(fig)==1,fig=[fig]);
+ forall(1..(length(fig)),
+ tmp1=fig_#;
+ tmp2=name+"n"+text(kk)+"p"+text(#);
+ if(length(tmp1)==1,
+ Pointdata(tmp2,tmp1,optionlist_kk);
+ figL=append(figL,"pt"+tmp2);
+ ,
+ Listplot("-"+tmp2,tmp1,optionlist_kk);
+ figL=append(figL,tmp2); //190427
+ );
+ ); //190531to
+ );
+ );
+ tmp=apply(figL,Dqq(#));
+ tmp=name+"="+text(tmp)+";";
+ parse(tmp);
+ if(msg=="Y",
+ println("generate "+name+"="+text(figL));
);
+ figL;
);
-////%Dispchoice end////
+////%Drawfigures end////
-////%Datetime start////
-Datetime():=(
-//help:Datetime();
- regional(names,dt,tmp);
- tmp=getdatetime();
- dt=tokenize(tmp," ");
- dt=apply(dt,if(!isstring(#),text(#),#));
- names=["Jan","Feb","Mar","Apr","May","Jun",
- "Jul","Aug","Sep","Oct","Nov","Dec"];
- tmp=select(1..12,names_#==dt_2);
- tmp=text(tmp_1);
- tmp=[dt_6+"/"+tmp+"/"+dt_3,dt_4];
+////%Setarrow start////
+Setarrow():=Setarrow([]);
+Setarrow(arglist):=(
+//help:Setarrow([-1,-1,-1,1,0.3]);
+//help:Setarrow([size(1),angle(18),position(1),cut(0),segstyle("dr,1")]);
+ regional(tmp);
+ tmp=select(arglist,isreal(#));
+ if(length(tmp)==0,
+ println([YaSize,YaAngle,YaPosition,YaCut,YasenStyle]);
+ );
+ if(length(tmp)>=1,
+ if((tmp_1>0),YaSize=tmp_1);
+ );
+ if(length(tmp)>=2,
+ if((tmp_2>0)&(tmp_2<90),YaAngle=tmp_2);
+ );
+ if(length(tmp)>=3,
+ if((tmp_3>=0)&(tmp_3<=1),YaPosition=tmp_3);
+ );
+ if(length(tmp)>=4,
+ if((tmp_4>=0)&(tmp_4<1),YaCut=tmp_4);
+ );
+ tmp=select(arglist,isstring(#));
+ if(length(tmp)>0,
+ YasenStyle=tmp_1;
+ );
+ [YaSize,YaAngle,YaPosition,YaCut,YasenStyle];
+);
+////%Setarrow end////
+
+////%Arrowheaddata start////
+Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
+Arrowheaddata(point,direction,options):=(
+// help:Arrowheaddata(A,B);
+// help:Arrowheaddata(options=[size(1),angle(18), "Coord=phy"]);
+ regional(list,ookisa,hiraki,Houkou,Str,Flg,Ev,Nv,pA,pB,
+ reL,eqL,coord,pP,rF,gG,Flg,Nj,Eps,scx,scy,tmp,tmp1,tmp2);
+ Eps=10^(-3);
+ coord="P";
+ ookisa=0.2*YaSize;
+ hiraki=YaAngle;
+ iti=1;
+ kiri=0;
+ Futosa=0;
+ Str=YaStyle;
+ tmp=Divoptions(options);
+ eqL=tmp_5; //181018from
+ reL=tmp_6;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=substring(tmp_1,0,1);
+ tmp2=substring(tmp_2,0,1);
+ if(Toupper(tmp1)=="C",
+ coord=Touppera(tmp2);
+ );
+ ); //181018to
+ forall(1..(length(reL)), //181110from
+ tmp=reL_#;
+ if(#==1,ookisa=ookisa*tmp);
+ if(#==2,
+ if(tmp<5,
+ hiraki=hiraki*tmp;
+ ,
+ hiraki=tmp;
+ );
+ );
+ ); //181110to
+ Flg=0;
+ hiraki=hiraki*pi/180;
+ if(ispoint(direction),Houkou=direction.xy); //181018
+ if(isstring(direction),Houkou=parse(direction),Houkou=direction);
+ if(Measuredepth(Houkou)==2,Houkou=Houkou_1);
+ if(coord=="P",//181018from
+ if(ispoint(point),pP=point.xy,pP=point);
+ ,
+ pP=Pcrd(point);
+ if(!islist(Houkou_1),
+ Houkou=Pcrd(Houkou);
+ ,
+ Houkou=apply(Houkou,Pcrd(#));
+ );
+ );//181018to
+ if(islist(Houkou_1),
+ tmp=Nearestpt(pP,Houkou);
+ pP=tmp_1;
+ rF=floor(tmp_2);
+ if(rF==1,
+ if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
+ rF=Numptcrv(Houkou);
+ );
+ );
+ gG=apply(0..10,pP+ookisa*cos(hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
+ Flg=0;
+ forall(1..rF,Nj,
+ if(Flg==0,
+ pB=Ptcrv(rF+1-Nj,Houkou);
+ tmp1=apply([pP,pB],LLcrd(#));
+ tmp2=apply(gG,LLcrd(#));
+ tmp=Intersectcrvspp([pP,pB],gG);
+ if(length(tmp)>0,
+ Houkou=pP-Pcrd(tmp_1_1);
+ Flg=1;
+ );
+ );
+ );
+ if(Flg==0,
+ println("Arrowhead may be too large (no intersect)");
+ Flg=2;
+ );
+ );
+ if(Flg<2,
+ Ev=-1/|Houkou|*Houkou;
+ Nv=[-Ev_2, Ev_1];
+ if(indexof(Str,"c")>0,
+ pP=pP-0.5*ookisa*cos(hiraki)*Ev;
+ );
+ if(indexof(Str,"b")>0,
+ pP=pP-ookisa*cos(hiraki)*Ev;
+ );
+ pA=pP+ookisa*cos(hiraki)*Ev+ookisa*sin(hiraki)*Nv;
+ pB=pP+ookisa*cos(hiraki)*Ev-ookisa*sin(hiraki)*Nv;
+ list=[pA,pP,pB];
+ list;
+ );
+);
+////%Arrowheaddata end////
+
+////%Arrowhead start////
+Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]); //181018from
+Arrowhead(Arg1,Arg2,Arg3):=(
+ if(isstring(Arg1),
+ Arrowhead(Arg1,Arg2,Arg3,[]);
+ ,
+ Arrowhead(text(ArrowheadNumber),Arg1,Arg2,Arg3);
+ );
+);
+Arrowhead(nm,point,direction,optionsorg):=(//181018from
+//help:Arrowhead("1",B,B-A);
+//help:Arrowhead(options=[size(1),angle(18),position(1),cut(0),"Coord=P(L)"]);
+//help:Arrowhead(the default is -1 for numeric option);
+//help:Arrowhead(A,"gr1");
+ regional(name,Ltype,Noflg,reL,opstr,opcindy,color,eqL,coord,
+ options,cut,pP,Houkou,ptstr,hostr,tmp,tmp1,tmp2,list);
+ name="arh"+nm; //181018
+ ArrowheadNumber=ArrowheadNumber+1;
+ options=optionsorg;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ reL=tmp_6;
+ color=tmp_(length(tmp)-2);
+ eqL=tmp_5;
+ coord="P";
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=substring(tmp_1,0,1);
+ tmp2=substring(tmp_2,0,1);
+ if(Toupper(tmp1)=="C",
+ coord=Toupper(tmp2);
+ options=remove(options,[#]);
+ );
+ ); //181018to
+ tmp1=[YaSize,YaAngle,YaPosition,YaCut]; //181214from
+ forall(1..(length(reL)),
+ if(reL_#<0, reL_#=tmp1_#);
+ );
+ forall((length(reL)+1)..4,
+ reL=append(reL,tmp1_#);
+ );
+ cut=reL_4;
+ tmp=reL_(1..3);
+ options=select(options,!isreal(#));
+ options=concat(options,tmp); //181214to
+ if(ispoint(direction),Houkou=direction.xy); //181018
+ if(isstring(direction),Houkou=parse(direction),Houkou=direction);
+ if(Measuredepth(Houkou)==2,Houkou=Houkou_1);
+ if(coord=="P",//181018from
+ if(ispoint(point),pP=point.xy,pP=point);
+ ,
+ pP=Pcrd(point);
+ if(!islist(Houkou_1),
+ Houkou=Pcrd(Houkou);
+ ,
+ Houkou=apply(Houkou,Pcrd(#));
+ );
+ );//181018to
+ list=Arrowheaddata(pP,Houkou,options);
+ if(!Inwindow(LLcrd(pP)),Noflg=2);//181018
+ if(Noflg<3,
+ tmp1=apply(list,LLcrd(#));
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
+ parse(tmp);
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ Listplot("-arh"+nm,apply(list,LLcrd(#)),concat(options,["notex","Msg=n"]));
+ );
+ );
+ if(Noflg==0,
+ tmp=Divoptions(options);
+ opstr=tmp_(length(tmp)-1);
+ opstr=opstr+","+Dqq("Cut="+format(cut,5));
+ ptstr=Textformat(LLcrd(pP),5);
+ if(isstring(direction), //181019
+ hostr=direction;
+ ,
+ if(!islist(Houkou_1),
+ hostr=format(LLcrd(Houkou),5);
+ ,
+ hostr=format(apply(Houkou,LLcrd(#)),5);
+ );
+ );
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ );
);
-////%Datetime end////
+////%Arrowhead end////
+
+////%Arrowdata start////
+Arrowdata(ptlist):=Arrowdata(ptlist,[]); //181110from
+Arrowdata(Arg1,Arg2):=(
+ regional(name);
+ if(isstring(Arg1),
+ Arrowdata(Arg1,Arg2,[]);
+ ,
+ name="";
+ forall(Arg1,
+ if(ispoint(#),
+ name=name+#.name; //190505
+ );
+ );
+ Arrowdata(name,Arg1,Arg2);
+ );
+); //181110from
+Arrowdata(nm,ptlistorg,optionsorg):=(
+//help:Arrowdata("1",[A,B]);
+//help:Arrowdata("1",[pt1,pt2]);
+//help:Arrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Coord=p/l"]);
+//help:Arrowdata(optionsadded=["line"]);
+ regional(options,Ltype,Noflg,name,opstr,opcindy,eqL,reL,strL,color,size,coord,
+ flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos,cut,scaley,ptlist);
+ name="ar"+nm;
+ scaley=SCALEY; //190412
+ Setscaling(1); //190412
+ ptlist=[];
+ forall(ptlistorg,
+ if(ispoint(#),tmp=[#.x, scaley*#.y], tmp=[#_1,scaley*#_2]);
+ ptlist=append(ptlist,tmp);
+ );
+// ptlist=apply(ptlistorg,[#_1,scaley*#_2]); //190412
+ options=optionsorg;
+ tmp=select(options,isstring(#)); //181214from
+ tmp1=select(tmp,contains(["dr","da","do","id"],substring(#,0,2)));
+ if(length(tmp1)==0,options=append(options,YasenStyle)); //181214to
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ eqL=tmp_5;
+ reL=tmp_6;
+ strL=tmp_7;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ tmp1=[YaSize,YaAngle,YaPosition,YaCut]; //181214from
+ forall(1..(length(reL)),
+ if(reL_#<0, reL_#=tmp1_#);
+ );
+ forall((length(reL)+1)..4,
+ reL=append(reL,tmp1_#);
+ );
+ size=reL_1;
+ angle=reL_2;
+ segpos=reL_3;
+ cut=reL_4;
+ lineflg=0;
+ if(contains(strL,"l")%contains(strL,"L"),
+ lineflg=1;
+ );//181018from
+ options=remove(options,strL);
+ cutend=[0,0];//180719
+ coord="P";//181018
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,2));
+ tmp2=tmp_2;
+ if(tmp1=="CU",//180719from
+ tmp2=replace(tmp2,"[","");
+ tmp2=replace(tmp2,"]","");
+ cutend=tokenize(tmp2,",");
+ if(length(cutend)==1,cutend=[cutend_1,cutend_1]);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="CO",//181018from
+ coord=Toupper(substring(tmp2,0,1));
+ options=remove(options,[#]);
+ );
+ );
+ if(|cutend|>0,//181110from
+ tmp=ptlist_2-ptlist_1;
+ tmp=tmp/|tmp|;
+ ptlist_1=ptlist_1+tmp*cutend_1;
+ ptlist_2=ptlist_2-tmp*cutend_2;
+ );//181110to
+ if(coord=="P",
+ pA=ptlist_1; pB=ptlist_2;
+ if(ispoint(pA),pA=pA.xy);
+ if(ispoint(pB),pB=pB.xy);
+ ,
+ Setscaling(scaley); //190419
+ pA=Pcrd(ptlist_1); pB=Pcrd(ptlist_2);
+ Setscaling(1); //190419
+ );//181018to
+ if(Noflg<3,
+ println("generate Arrowdata "+name);
+ tmp=name+"="+Textformat([pA,pB],5)+";";
+ parse(tmp);
+ if(lineflg==0, // 16.04.09 from
+ tmp=pA-0.2*size/2*(pB-pA)/|pB-pA|; // 15.06.11
+ ,
+ tmp=pB;
+ ); // 16.04.09 until
+ tmp=format([LLcrd(pA),LLcrd(tmp)],6);
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ Listplot("-ar"+nm,[LLcrd(pA),LLcrd(pB)],append(options,"Msg=n"));
+ Arrowhead(nm,pA+segpos*(pB-pA),pB-pA,options); //181110
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ );
+ Setscaling(scaley); //190412
+ [Lcrd(pA),Lcrd(pB)];
+);
+////%Arrowdata end////
+
+////%Lightarrowdata start////
+Lightarrowdata(ptlist):=Lightarrowdata(ptlist,[]); //181110from
+Lightarrowdata(Arg1,Arg2):=(
+ regional(name);
+ if(isstring(Arg1),
+ Lightarrowdata(Arg1,Arg2,[]);
+ ,
+ name="";
+ forall(Arg1,
+ if(ispoint(#),
+ name=name+#.name; //190505
+ );
+ );
+ Lightarrowdata(name,Arg1,Arg2);
+ );
+); //181110from
+Lightarrowdata(nm,ptlist,optionsorg):=(
+//help:Lightarrowdata("1",[pt1,pt2]);
+//help:Lightarrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Line=y(n)"]);
+ regional(options,Ltype,Noflg,opstr,opcindy,eqL,reL,strL,color,size,coord,lineflg,
+ flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos,cut,scaley,Ev,Nv,pP);
+ pA=Pcrd(ptlist_1); pB=Pcrd(ptlist_2);
+ scaley=SCALEY; //190412
+ Setscaling(1);
+ ptlist=[];
+ forall(ptlistorg,
+ if(ispoint(#),tmp=[#.x, scaley*#.y], tmp=[#_1,scaley*#_2]);
+ ptlist=append(ptlist,tmp);
+ );
+ options=optionsorg;
+ tmp=select(options,isstring(#)); //181214from
+ tmp1=select(tmp,contains(["dr","da","do","id"],substring(#,0,2)));
+ if(length(tmp1)==0,options=append(options,YasenStyle)); //181214to
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ eqL=tmp_5;
+ reL=tmp_6;
+ strL=tmp_7;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ tmp1=[YaSize,YaAngle,YaPosition,YaCut]; //181214from
+ forall(1..(length(reL)),
+ if(reL_#<0, reL_#=tmp1_#);
+ );
+ forall((length(reL)+1)..4,
+ reL=append(reL,tmp1_#);
+ );
+ size=reL_1;
+ angle=reL_2;
+ segpos=reL_3;
+ cut=reL_4;
+ lineflg=0;
+ if(contains(strL,"l")%contains(strL,"L"),
+ lineflg=1;
+ );//181018from
+ options=remove(options,strL);
+ cutend=[0,0];//180719
+ coord="P";//181018
+ lineflg=1; //190504
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,2));
+ tmp2=tmp_2;
+ if(tmp1=="CU",//180719from
+ tmp2=replace(tmp2,"[","");
+ tmp2=replace(tmp2,"]","");
+ cutend=tokenize(tmp2,",");
+ if(length(cutend)==1,cutend=[cutend_1,cutend_1]);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="LI",//190504from
+ tmp2=Toupper(substring(tmp2,0,1));
+ if(tmp2=="N",lineflg=0);
+ options=remove(options,[#]);
+ );//190504to
+ );
+ if(Noflg<3,
+ tmp="ar"+nm+"="+Textformat([pA,pB],5)+";";
+ parse(tmp);
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if(lineflg==1, //190504from
+ Listplot("-ar"+nm,[LLcrd(pA),LLcrd(pB)],append(options,"Msg=n"));
+ ,
+ tmp=pB;
+ pB=pA;
+ pA=pB-tmp;
+ ); //190504to
+ size=0.2*size;
+ angle=angle*pi/180;
+ pP=pA+segpos*(pB-pA);
+ Ev=-1/|pB-pA|*(pB-pA);
+ Nv=[-Ev_2, Ev_1];
+ tmp1=pP+size*cos(angle)*Ev+size*sin(angle)*Nv;
+ tmp2=pP+size*cos(angle)*Ev-size*sin(angle)*Nv;
+ ArrowheadNumber=ArrowheadNumber+1;
+ Listplot("-arh"+nm,[tmp1,pP,tmp2],append(options,"Msg=n"));
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Setscaling(scaley);
+ tmp1=Textformat(LLcrd(pP),5);
+ tmp2=Textformat(LLcrd(pB-pA),5);
+ Com2nd("Arrowhead("+tmp1+","+tmp2+opstr+")");
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ );
+ Setscaling(scaley); //190412
+ [Lcrd(pA),Lcrd(pB)];
+);
+////%Lightarrowdata end////
+
+////%Anglemark start////
+Anglemark(plist):=Anglemark(plist,[]);
+Anglemark(Arg1,Arg2):=( // 2015.04.28 from
+ regional(nm,plist,options,tmp);
+ if(isstring(Arg1),
+ nm=Arg1;
+ plist=Arg2;
+ Anglemark(nm,plist,[]);
+ ,
+ plist=Arg1;
+ options=Arg2;
+ tmp=Textformat(plist,5);
+ tmp=replace(tmp,",","");
+ nm=substring(tmp,1,length(tmp)-1);
+ Anglemark(nm,plist,options);
+ );
+); // to
+Anglemark(nm,plist,options):=(
+//help([A,B,C],["E=\theta",2]);
+//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]);
+// help:Anglemark("1",[A,B,2*pi]);
+//help:Anglemark(options=[size,"E/L=(sep,)letter"]);
+ regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos,color,
+ Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg,Msg);
+ name="ag"+nm;
+ Bpos="md"+name;
+ ra=0.5;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ color=tmp_(length(tmp)-2);
+ opcindy=tmp_(length(tmp));
+ eqL=tmp_5;
+ realL=tmp_6;
+ Bname="";
+ Brat=1.2; //180530
+ Num=20;
+ Msg="Y";
+ opstr="";
+ if(length(realL)>0,
+ ra=realL_1*ra;
+ opstr=","+text(realL_1);//180530
+ );
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if((tmp1=="L")%(tmp1=="E"),
+ if(tmp1=="L",Bname="Letter(");
+ if(tmp1=="E",Bname="Expr(");
+ Bname=Bname+Bpos+","+Dqq("c")+",";//16.10.29
+ tmp=tmp_2; //190524from
+ tmp1=Indexall(tmp,",");
+ if(length(tmp1)==0,
+ Bname=Bname+Dqq(tmp);
+ ,
+ if(length(tmp1)>1,
+ Brat=parse(substring(tmp,0,tmp1_1-1));
+ tmp=substring(tmp,tmp1_1,length(tmp));
+ tmp1=Indexall(tmp,",");
+ ,
+ if(substring(tmp,tmp1_1,tmp1_1+1)!="[",
+ Brat=parse(substring(tmp,0,tmp1_1-1));
+ tmp=substring(tmp,tmp1_1,length(tmp))+",[]";
+ tmp1=Indexall(tmp,",");
+ );
+ );
+ Bname=Bname+Dqq(substring(tmp,0,tmp1_1-1));
+ tmp=substring(tmp,tmp1_1+1,length(tmp)-1);
+ tmp=Strsplit(tmp,",");
+ tmp1=apply(tmp,Dqq(#));
+ Bname=Bname+","+text(tmp1);
+ );
+ Bname=Bname+");"; //190524to
+ );
+ if(tmp1=="M", //190206from
+ Msg=Toupper(substring(tmp_2,0,1));
+ ); //190206to
+ );
+ pB=Lcrd(plist_1); pA=Lcrd(plist_2); sab=pB-pA;
+ Ctr=pA;
+ if((length(plist_3)>1)%(ispoint(plist_3)), //180506from
+ pC=Lcrd(plist_3);
+ sac=pC-pA;
+ Rg=[arctan2(sab)+0,arctan2(sac)+0];
+ ,
+ sac=pB-pA;
+ Rg=[arctan2(sab)+0,arctan2(sab)+plist_3];
+ ); //180506to
+ if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi);
+ Out=[];
+ if(ra>min(|sab|,|sac|), // 16.12.29
+ println(" segments too short");
+ ,
+ forall(0..Num,
+ Th=Rg_1+#*(Rg_2-Rg_1)/Num;
+ Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]);
+ );
+ Th=(Rg_1+Rg_2)/2; //16.10.31from[moved]
+ tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)];
+ tmp="Defvar("+Dq+Bpos+"="; //no ketjs
+ tmp=tmp+Textformat(tmp1,5)+Dq+")"; //no ketjs
+// tmp=Bpos+"="+Textformat(tmp1,5); ; //only ketjs
+ parse(tmp+";");//16.10.31to[moved]
+ if(length(Bname)>0,
+ parse(Bname);
+ );
+ if(Noflg<3,
+ if(Msg=="Y", //190206
+ println("generate anglemark "+name+" and "+Bpos);
+ );
+ tmp1=apply(Out,Pcrd(#));
+ tmp=name+"="+Textformat(tmp1,5)+";";
+ parse(tmp);
+ tmp=Textformat(plist,5); //no ketjs on
+ tmp1=substring(tmp,1,length(tmp)-1);
+ tmp=name+"=Anglemark("+tmp1+opstr+")";
+ GLIST=append(GLIST,tmp); //no ketjs off
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
+ );
+ Out;
+);
+////%Anglemark end////
+
+////%Paramark start////
+Paramark(plist):=Paramark(plist,[]);
+Paramark(Arg1,Arg2):=( // 17.03.27 from
+ regional(nm,plist,options,tmp);
+ if(isstring(Arg1),
+ nm=Arg1;
+ plist=Arg2;
+ Paramark(nm,plist,[]);
+ ,
+ plist=Arg1;
+ options=Arg2;
+ tmp=Textformat(plist,5);
+ tmp=replace(tmp,",","");
+ nm=substring(tmp,1,length(tmp)-1);
+ Paramark(nm,plist,options);
+ );
+);// to
+Paramark(nm,plist,options):=(
+//help:Paramark([A,B,C],["E=\theta"]);
+//help:Paramark("1",[p1,p2,p3],["E=\theta"]);
+ regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos,
+ Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy,color);
+ name="pm"+nm;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ eqL=tmp_5;
+ realL=tmp_6;
+ ra=0.5;
+ Bname="";
+ Brat=1.2;
+ if(length(realL)>0,
+ tmp=realL_1;
+ ra=tmp*ra;
+ opstr=opstr+","+text(tmp);
+ );
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if((tmp1=="L")%(tmp1=="E"),
+ if(tmp1=="L",Bname="Letter(");
+ if(tmp1=="E",Bname="Expr(");
+ Bname=Bname+Bpos+","+Dqq("c")+",";//16.10.29
+ tmp=tmp_2; //190524from
+ tmp1=Indexall(tmp,",");
+ if(length(tmp1)==0,
+ Bname=Bname+Dqq(tmp);
+ ,
+ if(length(tmp1)>1,
+ Brat=parse(substring(tmp,0,tmp1_1-1));
+ tmp=substring(tmp,tmp1_1,length(tmp));
+ tmp1=Indexall(tmp,",");
+ ,
+ if(substring(tmp,tmp1_1,tmp1_1+1)!="[",
+ Brat=parse(substring(tmp,0,tmp1_1-1));
+ tmp=substring(tmp,tmp1_1,length(tmp))+",[]";
+ tmp1=Indexall(tmp,",");
+ );
+ );
+ Bname=Bname+Dqq(substring(tmp,0,tmp1_1-1));
+ tmp=substring(tmp,tmp1_1+1,length(tmp)-1);
+ tmp=Strsplit(tmp,",");
+ tmp1=apply(tmp,Dqq(#));
+ Bname=Bname+","+text(tmp1);
+ );
+ Bname=Bname+");"; //190524to
+ );
+ if(tmp1=="M", //190206from
+ Msg=Toupper(substring(tmp_2,0,1));
+ ); //190206to
+ );
+ pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3);
+ Ctr=Lcrd(pA);
+ Out=[];
+ Out=append(Out,pA+ra*(pB-pA)/|pB-pA|);
+ Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|);
+ Out=append(Out,pA+ra*(pC-pA)/|pC-pA|);
+ if(length(Bname)>0,
+ tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|;
+ tmp="Defvar("+Dq+Bpos+"="+Textformat(tmp1,5)+Dq+")";// no ketjs
+ tmp=Bpos+"="+Textformat(tmp1,5);// only ketjs
+ parse(tmp+";");
+ parse(Bname+";") //190415;
+ );
+ if(Noflg<3,
+ println("generate paramark "+name);
+ tmp1=apply(Out,Pcrd(#));
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
+ parse(tmp);
+ tmp1=substring(Textformat(plist,5),1,length(Textformat(plist,5))-1); //no ketjs on
+ tmp=name+"=Paramark("+tmp1+opstr+")";
+ GLIST=append(GLIST,tmp); //no ketjs off
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
+ Out;
+);
+////%Paramark end////
+
+////%Makebowdata start////
+Makebowdata(pA,pB,Hgt):=(
+ regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
+ angle=arctan2(pB-pA)+0;
+ pB2=Rotatepoint(pB,-angle,pA);
+ tmp=Lcrd(pA);
+ pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt];
+ dMA=|tmp-pB2|/2;
+ ra=(dMA^2+Hgt^2)/(2*Hgt);
+ pC2=[pH2_1,pB2_2+(ra-Hgt)];
+ pC=Rotatepoint(pC2,angle,pA);
+ Th1=arctan2(pA-pC2)+angle;
+ Th2=arctan2(pB2-pC2)+angle;
+ [pC,ra,Th1,Th2];
+);
+////%Makebowdata end////
+
+////%Bowdata start////
+Bowdata(plist):=Bowdata(plist,[]);
+Bowdata(plist,options):=(
+ regional(nm,tmp);
+ if(islist(plist), // 16.12.04from
+ tmp=Textformat(plist,5);
+ tmp=replace(tmp,",","");
+ nm=substring(tmp,1,length(tmp)-1);
+ Bowdata(nm,plist,options);
+ ,
+ nm=plist;
+ tmp=options;
+ Bowdata(nm,tmp,[]);
+ ); // 16.12.04until
+);
+Bowdata(nm,plist,options):=(
+//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]);
+//help:Bowdata([A,B],["Expr=t0n3,a"]);
+//help:Bowdata([A,B],["Exprrot=t0n2r,a"]);
+ regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL,
+ Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC,Msg,
+ Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev,color);
+ name="bw"+nm;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ eqL=tmp_5;
+ realL=tmp_6;
+ pA=Lcrd(plist_1); pB=Lcrd(plist_2);
+ Hgt=1/2*|pB-pA|*0.2;
+ Cut=0;
+ Num=24;
+ Bname="";
+ Msg="Y"; //190206
+ Tmov=0;//161101from
+ Nmov=0;
+ Bmov="";
+ rev=0;//16.11.01until
+ if(length(realL)>0,
+ Hgt=realL_1*Hgt; // 15.04.12
+ if(length(realL)>1,Cut=realL_2);
+ );
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="L",
+ if(indexof(#,"rot")>0,
+ Bname="Letterrot(";
+ ,
+ Bname="Letter(";
+ );
+ Bops=tmp_2;
+ );
+ if(tmp1=="E",
+ if(indexof(#,"rot")>0,
+ Bname="Exprrot(";
+ ,
+ Bname="Expr(";
+ );
+ Bops=tmp_2;
+ );
+ if(tmp1=="M", //190206from
+ Msg=Toupper(substring(tmp_2,0,1));
+ ); //190206to
+ );
+ Ydata=Makebowdata(pA,pB,Hgt);
+ pC=Ydata_1;
+ ra=Ydata_2;
+ Th=(Ydata_3+Ydata_4)*0.5;
+ BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)];
+ Defvar("md"+name,BOWMIDDLE); //190415
+ Bpos=Textformat(BOWMIDDLE,5); //190415
+ if(length(Bname)>0, //16.11.01from
+ tmp=indexof(Bops,",");
+ if(tmp>0,
+ tmp1=substring(Bops,0,tmp-1);
+ if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0,
+ Bmov=tmp1;
+ Bops=substring(Bops,tmp,length(Bops));
+ );
+ );
+ if(length(Bmov)>0,
+ tmp=indexof(Bmov,"t");
+ if(tmp>0,
+ tmp1=indexof(Bmov,"n");
+ Tmov=parse(substring(Bmov,tmp,tmp1-1));
+ tmp=indexof(Bmov,"r");
+ if(tmp>0,
+ Nmov=parse(substring(Bmov,tmp1,tmp-1));
+ rev=1;
+ ,
+ Nmov=parse(substring(Bmov,tmp1,length(Bmov)));
+ );
+ );
+ );
+ Bname=Bname+Bpos; //190415
+ if(abs(Tmov)+abs(Nmov)>0,
+ tmp=Pcrd(pA)-Pcrd(pB);
+ tmp1=1/Norm(tmp)*tmp;
+ tmp2=[-tmp1_2,tmp1_1];
+ tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
+ tmp=LLcrd(tmp);
+ Bname=Bname+"+"+Textformat(tmp,5);
+ );
+ Bname=Bname+",";
+ if(indexof(Bname,"rot")>0,
+ if(rev==1,tmp=pB-pA,tmp=pA-pB);
+ Bname=Bname+Textformat(tmp,5)+",";
+ ,
+ Bname=Bname+Dq+"c"+Dq+",";
+ );
+ Bname=Bname+Dqq(Bops)+");"; //190415
+ parse(Bname);
+ );//161101to
+ if(Cut==0,
+ Th1=Ydata_3;
+ Th2=Ydata_4;
+ Out=[];
+ forall(0..Num,
+ tmp=Th1+#*(Th2-Th1)/Num;
+ Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]);
+ );
+ ,
+ Th1=Ydata_3;
+ Th2=Th-Cut/(2*ra);
+ tmp1=[];
+ forall(0..Num/2,
+ tmp=Th1+#*(Th2-Th1)/(Num/2);
+ tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]);
+ );
+ Th1=Th+Cut/(2*ra);
+ Th2=Ydata_4;
+ tmp2=[];
+ forall(0..Num/2,
+ tmp=Th1+#*(Th2-Th1)/(Num/2);
+ tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]);
+ );
+ Out=[tmp1,tmp2];
+ );
+ if(Noflg<3,
+ if(Msg=="Y", //190206
+ println("generate bowdata "+name+" and "+Bpos);//16.10.31
+ );
+ if(Measuredepth(Out)==1,Out=[Out]);
+ tmp1=[];
+ forall(Out,tmp2,
+ tmp=apply(tmp2,Pcrd(#));
+ tmp1=append(tmp1,tmp);
+ );
+ tmp=name+"="+Textformat(tmp1,5)+";";
+ parse(tmp);
+ tmp1=substring(Textformat(plist,5),1,length(Textformat(plist,5))-1); //no ketjs on
+ tmp=name+"=Bowdata("+tmp1+opstr+")";
+ GLIST=append(GLIST,tmp); //no ketjs off
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
+);
+////%Bowdata end////
+
+////%Bowname start////
+Bowname(str):=Bowname("c",str);
+Bowname(dir,str):=(
+ Expr([BOWMIDDLE,dir,str]);
+);
+////%Bowname end////
+
+////%Bownamerot start////
+Bownamerot(bwdata,str):=Bownamerot(bwdata,0,0,str,1);
+Bownamerot(bwdata,str,updown):=Bownamerot(bwdata,0,0,str,updown);
+Bownamerot(bwdata,tmov,nmov,str):=Bownamerot(bwdata,tmov,nmov,str,1);
+Bownamerot(bwdata,tmov,nmov,str,updown):=(
+ regional(bdata,tmp);
+ tmp=Measuredepth(bwdata);
+ if(tmp==1,bdata=[bwdata],bdata=bwdata);
+ if(length(bdata)>1,
+ tmp=Ptend(bdata_2)-Ptstart(bdata_1);
+ ,
+ tmp=Ptend(bdata_1)-Ptstart(bdata_1);
+ );
+ if(updown<0,tmp=-tmp);
+ Exprrot(BOWMIDDLE,tmp,tmov,nmov,str);
+);
+////%Bownamerot end////
+
+////%Deqdata start////
+Deqdata(deq,rng,initt,initf,Num):=( //17.10.04
+//help:Deqdata("[x1,...xn]`=[f1,...fn]","t=[0,20]",0,[...],50);
+ regional(Eps,Inf,tname,Xname,func,t1,t2,dt,tt,X0,flg,
+ kl1,kl2,kl3,kl4,pdL,tmp,tmp1,tmp2);
+ Eps=10^(-3);
+ Inf=10^3;
+ tmp=tokenize(deq,"=");
+ tmp1=replace(tmp_1,"`",""); tmp1=replace(tmp1,"'","");//190410
+ tmp1=substring(tmp1,1,length(tmp1)-1);
+ Xname=tokenize(tmp1,",");
+ func=tmp_2;
+ forall(1..(length(Xname)),
+ func=replace(func,Xname_#,"X_"+text(#));
+ );
+ tmp=tokenize(rng,"=");
+ tname=tmp_1;
+ tmp=parse(tmp_2);
+ t1=tmp_1;
+ t2=tmp_2;
+ tmp="funP("+tname+",X):="+func+";";
+ parse(tmp);
+ tmp="funN("+tname+",X):=-"+func+";";
+ parse(tmp);
+ dt=(t2-t1)/Num;
+ tt=initt;
+ X0=Lcrd(initf);
+ pdL=[flatten([tt,X0])];
+ flg=0;
+ forall(1..(round((t2-initt)/dt)), //190523
+ if(flg==0,
+ kl1=dt*funP(tt,X0);
+ kl2=dt*funP(tt+dt/2,X0+kl1/2);
+ kl3=dt*funP(tt+dt/2,X0+kl2/2);
+ kl4=dt*funP(tt+dt,X0+kl3);
+ X0=X0+(kl1+2*kl2+2*kl3+kl4)/6;
+ tt=initt+#*dt;
+ tmp=flatten([tt,X0]);
+ pdL=append(pdL,tmp);
+ if(|tmp|>Inf,flg=1);
+ );
+ );
+ tt=initt;
+ X0=Lcrd(initf);
+ flg=0;
+ forall(1..(round((initt-t1)/dt)), //190523
+ if(flg==0,
+ kl1=dt*funN(tt,X0);
+ kl2=dt*funN(tt+dt/2,X0+kl1/2);
+ kl3=dt*funN(tt+dt/2,X0+kl2/2);
+ kl4=dt*funN(tt+dt,X0+kl3);
+ X0=X0+(kl1+2*kl2+2*kl3+kl4)/6;
+ tt=initt-#*dt;
+ tmp=flatten([tt,X0]);
+ pdL=prepend(tmp,pdL);
+ if(|tmp1|>Inf,flg=1);
+ );
+ );
+ pdL;
+);
+////%Deqdata end////
+
+////%Deqplot start////
+Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
+Deqplot(nm,deq,rng,Arg1,Arg2):=(
+ regional(initt,initf,options);
+ if(isreal(Arg1) & !islist(Arg1),
+ initt=Arg1;
+ initf=Arg2;
+ options=[];
+ ,
+ initf=Lcrd(Arg1);
+ initt=initf_1;
+ options=Arg2;
+ );
+ Deqplot(nm,deq,rng,initt,initf,options);
+);
+Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
+//help:Deqplot("2","y'=y*(1-y)","x",0, 0.5,["Num=100"]);
+//help:Deqplot("1","y''=-y","x",0, [1,0]);
+//help:Deqplot("3","[x,y]'=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",0,[1,0.5]);
+ regional(deq,rng,Ltype,Noflg,eqL,opcindy,Num,name,nn,pdL,phase,
+ sel,tmp,tmp1,tmp2,tmp3,color);
+ name="de"+nm;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ eqL=tmp_5;
+ color=tmp_(length(tmp)-2);
+ opcindy=tmp_(length(tmp));
+ Num=50;
+ forall(eqL,
+ tmp=indexof(#,"=");
+ tmp2=substring(#,0,1);
+ tmp2=Toupper(tmp2);
+ tmp1=substring(#,tmp,length(#));
+ if(Toupper(substring(#,0,1))=="N",
+ Num=parse(tmp1);
+ );
+ );
+ rng=rngorg;
+ if(indexof(rng,"=")==0,
+ rng=rng+"="+Textformat([XMIN,XMAX],6);
+ );
+ deq=replace(deqorg,unicode("2018"),"`"); //190296//0416
+ deq=replace(deq,"'","`"); //180527
+ tmp3=indexof(deq,"=");
+ tmp1=substring(deq,0,tmp3-1);
+ tmp2=substring(deq,tmp3,length(deq));
+ if(indexof(tmp1,"[")==0,
+ phase=0;
+ sel=[1,2];
+ ,
+ phase=1;
+ sel=[2,3];
+ );
+ nn=length(Indexall(tmp1,"`"));
+ if(nn==0, //190211from
+ println(" Lhs of equation has no single/back quotation "+tmp1);
+ );
+ if(nn>0,
+ tmp=Indexall(tmp1,"`");
+ if(tmp_(length(tmp))!=tmp3-1,
+ nn=0;
+ ,
+ forall(reverse(2..(length(tmp))),
+ if((nn>0)&(!contains(tmp,tmp_#-1)),
+ nn=0;
+ );
+ );
+ );
+ if(nn==0,
+ println(" Lhs of equation is not correct");
+ );
+ ); //190211to
+ if(nn==1,
+ if(indexof(tmp1,"[")==0,
+ tmp1="["+replace(tmp1,"`","]`");
+ deq=tmp1+"="+tmp2;
+ );
+ );
+ if(nn>1,
+ tmp=indexof(tmp1,"`");
+ tmp1=substring(tmp1,0,tmp-1);
+ deq="[";
+ forall(1..nn,
+ deq=deq+tmp1+"N"+text(#)+",";
+ );
+ deq=substring(deq,0,length(deq)-1)+"]`=[";
+ forall(1..(nn-1),
+ deq=deq+tmp1+"N"+text(#+1)+",";
+ );
+ forall(reverse(1..(nn)),jj,
+ tmp=tmp1;
+ forall(1..jj,
+ tmp=tmp+"`";
+ tmp2=replace(tmp2,tmp,tmp1+"N"+text(#+1));
+ );
+ );
+ tmp2=tmp2+"]";
+ forall(1..(length(tmp2)-1),
+ tmp=substring(tmp2,#-1,#);
+ if(tmp!=tmp1,
+ deq=deq+tmp;
+ ,
+ tmp=substring(tmp2,#,#+1);
+ if(tmp=="N",
+ deq=deq+tmp1;
+ ,
+ deq=deq+tmp1+"N1"
+ );
+ );
+ );
+ deq=deq+"]";
+ );
+ if((nn>0)&(Noflg<3), //190211
+ pdL=Deqdata(deq,rng,initt,initf,Num);
+ if(phase==1,
+ pdL=apply(pdL,#_(2..3));
+ );
+ tmp1=apply(pdL,Pcrd(#));
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
+ parse(tmp);
+ );
+ if((nn>0)&(Noflg<1), //190211 //no ketjs on
+ tmp=Assign(deq);
+ tmp=replace(deq,"'","`");
+ tmp=name+"=Deqplot('"+tmp+"','"+rng+"',";
+ tmp=tmp+format(initt,6)+","+Textformat(initf,6);
+ tmp=tmp+","+text(sel)+",'Num="+text(Num)+"')";
+ tmp=RSform(tmp);
+ GLIST=append(GLIST,tmp);
+ ); //no ketjs off
+ if((nn>0)&(Noflg<2), //190211
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
+);
+////%Deqplot end////
+
+////////// old enclosing ///////////////
+
+Enclosing(nm,plist):=EnclosingS(nm,plist);
+Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
+EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
+EnclosingS(nm,plist,options):=(
+// help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
+ regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,color
+ t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
+ name="en"+nm;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ eqL=tmp_5;
+ realL=tmp_6;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ Eps=10^(-5); // 16.12.05
+ EEps=0.05;
+ Start=[];
+ Flg=0;
+ forall(realL,
+ if(islist(#) % ispoint(#),
+ Start=Lcrd(#); // 15.09.12
+ ,
+ Flg=Flg+1;
+ if(Flg==1,Eps=#);
+ if(Flg==2,EEps=#);
+ );
+ );
+// tmp1=concat([Eps,EEps],eqL); // 15.04.06
+ Fdata=plist_1;
+ Gdata=plist_(length(plist));
+ KL=Intersectcrvspp(Fdata,Gdata);
+ if(length(KL)==1,
+ pt=KL_1_1;
+ t1=KL_1_2;
+ );
+ if(length(KL)==0,
+ if(Numptcrv(Fdata)>Numptcrv(Gdata),
+ tmp=Nearestpt(Fdata,Gdata);
+ pt=tmp_1;
+ t1=tmp_2;
+ ,
+ tmp=Nearestpt(Gdata,Fdata);
+ pt=tmp_3;
+ t1=tmp_4;
+ );
+ );
+ if(length(KL)>1,
+ if(Start==[],
+ err("No Start Point");
+ ,
+ pt=KL_1_1;
+ t1=KL_1_2;
+ tmp=Norm(pt-Start);
+ forall(2..(length(KL)),ii, // 15.04.20
+ tmp1=KL_ii_1;
+ tmp2=Norm(tmp1-Start); // 15.04.20
+ if(tmp2<tmp,
+ pt=tmp1;
+ t1=KL_ii_2;
+ tmp=tmp2;
+ );
+ );
+ );
+ );
+// pt=Pcrd(pt); // 15.09.12
+ Start=pt;
+ AnsL=[];
+ forall(1..(length(plist)),nn,
+ Fdata=plist_nn;
+ if(nn>1, pt=qt);
+ if(nn==length(plist),
+ qt=Start;
+ ,
+ Flg=0;
+ Gdata=plist_(nn+1);
+// tmp1=concat([Eps,EEps],eqL); // 15.04.06
+ KL=Intersectcrvspp(Gdata,Fdata);
+ if(length(KL)==1,
+ tmp=KL_1;
+ qt=KL_1_1;
+ t3=KL_1_2;
+ Flg=10;
+ );
+ if(length(KL)==0,Flg=1);
+ if(length(KL)>1,
+ tmp1=KL_1_1;
+ tmp2=KL_2_1;
+ tmp=|tmp1-tmp2|;
+ if(tmp<Eps*10, Flg=1);
+ );
+ if(Flg==1,
+ if(Numptcrv(Fdata)>Numptcrv(Gdata),
+ tmp=Nearestpt(Fdata,Gdata);
+ qt=tmp_1;
+ t3=tmp_4;
+ Flg=10;
+ ,
+ tmp=Nearestpt(Gdata,Fdata);
+ qt=tmp_3;
+ t3=tmp_2;
+ Flg=10;
+ );
+ );
+ if(Flg<10,
+ t2=10^6; //%inf;
+ forall(1..(length(KL)),ii,
+ tmp1=KL_ii_1;
+ tmp=KL_ii_3;
+ tmp2=Paramoncurve(tmp1,tmp,Fdata);
+ tmp3=KL_ii_2;
+ if(tmp2>t1+Eps & tmp2<t2+Eps,
+ qt=tmp1;
+ t2=tmp2;
+ t3=tmp3;
+ );
+ );
+ );
+ );
+ tmp=Partcrv("",pt,qt,Fdata,["nodata"]);
+ t1=t3;
+ if(nn==1,
+ AnsL=tmp;
+ ,
+ AnsL=concat(AnsL,tmp_(2..(length(tmp))));
+ );
+ );
+ AnsL=apply(AnsL,Pcrd(#)); // 15.09.12
+ AnsL_(length(AnsL))=AnsL_1;//16.10.20
+ if(Noflg<3,
+ println("generate Enclosing "+name);
+ tmp=name+"="+Textformat(AnsL,5)+";";
+ parse(tmp);
+ tmp=name+"=Enclosing(";//16.11.07from //no ketjs on
+ tmp1="list"+PaO();
+ forall(plist,
+ tmp1=tmp1+#+",";
+ );
+ tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
+ GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
+ tmp=apply(AnsL,LLcrd(#));//16.10.20
+ tmp;
+);
+
+/////////// new enclosing ///////////
+
+////%Enclosing start////
+Enclosing(nm,plist):=Enclosing2(nm,plist,[]);//180706[2lines]
+Enclosing(nm,plistorg,options):=Enclosing2(nm,plistorg,options);
+Enclosing2(nm,plist):=Enclosing2(nm,plist,[]);
+Enclosing2(nm,plistorg,options):=(
+//help:Enclosing("1",["sg2","gr1","Invert(sg2)"]);
+//help:Enclosing(options=[startpoint,epspara(1)]);
+ regional(name,plist,AnsL,Start,Eps,Eps1,Eps2,flg,Fdata,Gdata,KL,
+ t1,t2,tst,ss,ii,nn,nxtno,Ltype,Noflg,realL,eqL,opstr,opcindy,
+ tmp,tmp1,tmp2,color,epspara,p1,p2);
+ name="en"+nm;
+ plist=plistorg;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ eqL=tmp_5;
+ realL=tmp_6;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ Eps=10^(-5); // 16.12.05
+ epspara=1; //180707
+ Eps1=0.01;
+ Eps2=0.1;
+ Start=[];
+ flg=0;
+ forall(realL,
+ if(isList(#) % ispoint(#),
+ Start=Lcrd(#); // 18.02.02
+ ,
+ if(flg==0,epspara=#);//180707
+ if(flg==1,Eps1=#);
+ if(flg==2,Eps2=#);
+ flg=flg+1;
+ );
+ );
+ flg=0;
+ AnsL=[];
+ if(length(plist)==1,
+ Fdata=parse(plist_1);
+ tmp1=Fdata_1;
+ tmp2=Fdata_(length(Fdata));
+ if(|tmp1-tmp2|<Eps,
+ AnsL=Fdata;
+ ,
+ AnsL=append(Fdata,tmp1);
+ );
+ flg=1;
+ );
+ if(flg==0,
+ Fdata=plist_1;
+ Gdata=plist_(length(plist));
+ KL=Intersectcurvespp(Fdata,Gdata);
+ if(length(KL)==0,
+ tmp=parse(Gdata);
+ tmp1=LLcrd(Op(length(tmp),tmp)); //18.02.02from
+ tmp=parse(Fdata);
+ tmp2=LLcrd(Op(1,tmp));
+ tmp=Listplot(name,[tmp1,tmp2],["nodisp"]);
+ plist=append(plist,"sg"+name);
+ Start=tmp2;
+ tst=1; //18.02.02to
+ p1=Start;
+ ,
+ if(length(KL)==1,
+ tst=KL_1_2;
+ Start=Pointoncurve(tst,Fdata);
+ );
+ if(length(KL)>1,
+ KL=sort(KL,[#_2]);
+ if(Start==[],
+ tst=KL_1_2;
+ Start=Pointoncurve(tst,Fdata);
+ ,
+ tmp=apply(KL,|#_1-Start|);
+ tmp=min(tmp);
+ tmp1=select(KL,|#_1-Start|<tmp+Eps1);//180718
+ tst=tmp1_1_2;
+ Start=Pointoncurve(tst,Fdata);
+ );
+ );
+ );
+ );
+ if(flg==0,
+ t1=tst;
+ p1=Pointoncurve(t1,Fdata); //180713
+ println("Start point of enclosing is "+text(Start));
+ forall(1..(length(plist)),nn,
+ Fdata=plist_nn;
+ if(nn==length(plist),nxtno=1,nxtno=nn+1);
+ Gdata=plist_nxtno;
+ KL=Intersectcurvespp(Fdata,Gdata);
+ if(length(KL)==0,
+ tmp1=parse(Fdata); //18.02.02from
+ tmp2=parse(Gdata);
+ tmp2=Prepend(Op(length(tmp1),tmp),tmp2);
+ Gdata=replace(Gdata,"(","");
+ Gdata=replace(Gdata,")","");
+ tmp=Gdata+"="+Textformat(tmp2,6)+";"; //190415
+ parse(tmp);
+ plist_nxtno=Gdata;
+ t2=Length(tmp1);
+ p2=Pointoncurve(t2,Fdata); //180713
+ ss=1; //18.02.02to
+ ,
+ KL=sort(KL,[#_2]);//180706
+ tmp=parse(Fdata);
+ tmp1=t1+epspara/50*length(tmp);
+// KL=select(KL,#_2>t1+epspara/50*length(tmp)); //180707
+ KL=select(KL,(#_2>tmp1)%((#_2>t1)&(|#_1-p1|>Eps1))); //180713,16
+ t2=KL_1_2;
+ ss=KL_1_3;
+ if(abs(t2-t1)<Eps,//180707
+ if(length(KL)>1,
+ t2=KL_2_2;
+ ss=KL_2_3;
+ ,
+ println(text(nn)+" and "+text(nxtno)+" not intersect");
+ flg=1;
+ );
+ );
+ );
+ if(flg==0,
+ tmp=Partcrv("",t1,t2,Fdata,["nodata"]);
+ if(nn==1,
+ AnsL=tmp;
+ ,
+ AnsL=concat(AnsL,tmp_(2..(length(tmp))));
+ );
+ );
+ t1=ss;//180706
+ p1=Pointoncurve(t1,Gdata); //180713
+ );
+ );
+ if(flg==0,
+ AnsL=apply(AnsL,Pcrd(#));
+ );
+ if(Noflg<3,
+ println("generate Enclosing "+name);
+ tmp=name+"="+Textformat(AnsL,5)+";"; //190415
+ parse(tmp);
+ tmp=name+"=Enclosing2(";//16.11.07from
+ tmp1="list"+PaO();
+ forall(plistorg, //18.02.02
+ tmp1=tmp1+#+",";
+ );
+ tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")";//18.0706from //no ketjs on
+ if(length(Start)>0,tmp=tmp+","+Textformat(Start,6));
+ tmp=tmp+","+text(epspara)+")";//18.0706to,180707
+ GLIST=append(GLIST,tmp);//16.11.07to //no ketjs off
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
+ tmp=apply(AnsL,LLcrd(#));//16.10.20
+ tmp;
+);
+////%Enclosing end////
+
+/////////// end of new enclosing ///////////
+
+/////////// new Hatchdata(cindy) ///////////
+
+////%Makehatch start////
+Makehatch(iolistorg,pt,vec,bdylist):=(
+ regional(Eps,iolist,sg,bdy,out,nb,tenL,ns,ne,ioL,
+ ii,jj,kk,nvec,nbdy,sgn1,sgn2,flg,rmL,p0,p1,p2,pL,
+ Scalebkup,tmp,tmp1,tmp2);
+ Eps=10^(-5);
+ nvec=[-vec_2,vec_1];
+ nvec=nvec/|nvec|;
+ if(!islist(iolistorg),iolist=[iolistorg],iolist=iolistorg);
+ forall(1..(length(iolist)),
+ tmp=replace(iolist_#,"i","1,");
+ tmp=replace(tmp,"o","0,");
+ tmp="["+substring(tmp,0,length(tmp)-1)+"]";
+ iolist_#=parse(tmp);
+ );
+ Scalebkup=[SCALEX,SCALEY];//181020[2lines]
+ SCALEX=1;
+ SCALEY=1;
+ sg=Lineplot("",[pt,pt+vec],["nodata"]);
+ nb=length(bdylist);
+ if(nb>0,
+ tenL=[];
+ forall(1..nb,ii,
+ rmL=[];
+ bdy=bdylist_ii;
+ nbdy=length(bdy)-1;
+ pL=[];
+ forall(1..nbdy,jj,
+ p1=bdy_jj;
+ p2=bdy_(mod(jj+1-1,nbdy)+1);
+ tmp=Intersectseg(sg,[p1,p2],Eps);
+ if(abs(tmp_1)<Eps, //18.02.01
+ p0=tmp_2; t=tmp_3; s=tmp_4;
+ flg=0; //181003from
+ forall(pL,
+ if(flg==0,
+ if(Norm(#_1-p0)<Eps,
+ flg=1;
+ );
+ );
+ );
+ if(flg==0,
+ pL=append(pL,[p0,t,s,ii]);
+ ); //181003to
+ );
+ );
+ if(length(pL)>0,
+ pL=sort(pL,[#_2]);
+ pL=apply(1..(length(pL)),append(pL_#,mod(#,2)));
+ tenL=concat(tenL,pL);
+ );
+ );
+ tenL=sort(tenL,[#_2]);
+ if(length(tenL)>0, //180619from
+ tmp1=tenL; tenL=[tmp1_1];
+ forall(2..(length(tmp1)),ii, //180717from
+ tmp=tmp1_ii;
+ flg=0;
+ forall(tenL,
+ if((Norm(tmp_1-#_1)<Eps1)&(tmp_4==#_4),
+ flg=1;
+ );
+ );
+ if(flg==0,
+ tenL=append(tenL,tmp);
+ );
+ );//180717to
+ ); //180619to
+ ioL=apply(1..nb,0);
+ ns=1;
+ ne=length(tenL);
+ if(ne>0,tmp=tenL_1_1,tmp=sg_2);
+ if(|sg_1-tmp|>Eps,
+ tmp=[sg_1,-1,1,ioL];
+ tenL=prepend(tmp,tenL);
+ ns=ns+1;
+ ne=ne+1;
+ );
+ if(|sg_2-tenL_(length(tenL))_1|>Eps,
+ tmp=[sg_2,-1,2,ioL];
+ tenL=append(tenL,tmp);
+ );
+ forall(ns..(ne-1),ii, //180619 ne=>ne-1
+ tmp=tenL_ii;
+ tmp1=tmp_4;
+ tmp2=tmp_5;
+ ioL_tmp1=tmp2;
+ tmp=[tmp_1,tmp_2,tmp_4,ioL];
+ tenL_ii=tmp;
+ );
+ out=[];
+ forall(1..(length(tenL)-1),ii,
+ tmp1=tenL_ii;
+ if(contains(iolist,tmp1_4),
+ tmp2=tenL_(ii+1);
+ tmp=Listplot("",[tmp1_1,tmp2_1],["nodata"]);
+ out=append(out,tmp);
+ );
+ );
+ );
+ SCALEX=Scalebkup_1; //181020
+ SCALEY=Scalebkup_2;
+ out;
+);
+////%Makehatch end////
+
+////%Anyselected start////
+Anyselected(ptL):=(
+ regional(tmp,out);
+ out=false;
+ forall(ptL,
+ if(isstring(#),tmp=parse(#),tmp=#);
+ out=(out)%(isselected(tmp));
+ );
+ out;
+);
+////%Anyselected end////
+
+////%Hatchdata start////
+Hatchdata(nm,iostr,bdylist):=Hatchdatacindy(nm,iostr,bdylist,[]);//180619
+Hatchdata(nm,iostr,bdylist,optionsorg):=( //181003from
+ regional(options,tmp,tmp1,tmp2,eqL,strL,chkL,outflg);
+ options=optionsorg;
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ strL=tmp_7;
+ outflg=0;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(tmp_1);
+ if(substring(tmp1,0,1)=="O",
+ tmp2=tmp_2;
+ if(tmp2!="n",
+ outflg=1;
+ option=remove(options,[#]);
+ if((tmp2=="m")%(tmp2=="r"),
+ options=append(options,tmp2);;
+ );
+ );
+ );
+ );
+ if(outflg==0,
+ options=remove(options,strL);
+ Hatchdatacindy(nm,iostr,bdylist,options);
+ ,
+ HatchdataR(nm,iostr,bdylist,options);
+ );
+); //181003to
+Hatchdatacindy(nm,iostr,bdylist):=Hatchdata(nm,iostr,bdylist,[]);
+Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
+ //help:Hatchdata("1",["ii"],[["ln1","Invert(gr1)"],["gr2","n"]]);
+//help:Hatchdata(options=["Not=pointlist","File=y(/m/n)","Max=50","Check=",angle,width]);
+ regional(name,bdylist,bdynameL,bname,Ltype,Noflg,opstr,opcindy,reL,
+ options,eqL,maxnum,startP,angle,interval,vec,nvec,ctr,pt,kk,delta,sha,AnsL,
+ color,tmp,tmp1,tmp2,tmp3,namep,x1,y1,x2,y2,p1,p2, //180717
+ fname,fileflg,mkflg,vaL,pL,nL,nn,str,is,ie); //181102
+ name="ha"+nm;
+ fname=Fhead+name+".txt";
+ bdylist=[];
+ bdynameL=[];
+ forall(1..(length(bdylistorg)),kk,
+ tmp1=bdylistorg_kk;
+ if(length(tmp1)==1,
+ bname=tmp1_1;
+ ,
+ tmp=tmp1_(length(tmp1));
+ if(contains(["n","s","e","w"],tmp),
+ namep=tmp1_1;//180717from
+ tmp2=parse(namep);
+ if(substring(namep,0,2)=="ln", //180717from
+ if(contains(["n","s"],tmp),
+ x1=tmp2_1_1; y1=tmp2_1_2; x2=tmp2_2_1; y2=tmp2_2_2;
+ p1=[NE.x,(y2-y1)/(x2-x1)*(NE.x-x1)+y1];
+ p2=[SW.x,(y2-y1)/(x2-x1)*(SW.x-x1)+y1];
+ Listplot(name+text(kk),[p1,p2],["nodisp"]);
+ namep="sg"+name+text(kk);
+ tmp2=parse(namep);
+ );
+ if(contains(["e","w"],tmp),
+ x1=tmp2_1_1; y1=tmp2_1_2; x2=tmp2_2_1; y2=tmp2_2_2;
+ p1=[(x2-x1)/(y2-y1)*(NE.y-y1)+x1,NE.y];
+ p2=[(x2-x1)/(y2-y1)*(SW.y-y1)+x1,SW.y];
+ Listplot(name+text(kk),[p1,p2],["nodisp"]);
+ namep="sg"+name+text(kk);
+ tmp2=parse(namep);
+ );
+ );//180717to
+ if(tmp=="s",
+ Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMIN-YMAX], //180717[2lines]
+ [tmp2_(length(tmp2))_1,2*YMIN-YMAX],LLcrd(tmp2_(length(tmp2)))],
+ ["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
+ bname="join"+text(kk)+name;
+ );
+ if(tmp=="n",
+ Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMAX-YMIN], //180717[2lines]
+ [tmp2_(length(tmp2))_1,2*YMAX-YMIN],LLcrd(tmp2_(length(tmp2)))],
+ ["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);
+ bname="join"+text(kk)+name;
+ );
+ if(tmp=="e",
+ Listplot(name,apply([tmp2_1,[XMAX,tmp2_1_2],
+ [XMAX,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
+ bname="join"+text(kk)+name;
+ );
+ if(tmp=="w",
+ Listplot(name,apply( [tmp2_1,[XMIN,tmp2_1_2],
+ [XMIN,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
+ bname="join"+text(kk)+name;
+ );
+ ,
+ Enclosing2(text(kk)+name,tmp,["nodisp"]);//180619[2lines]
+ bname="en"+text(kk)+name;
+ );
+ );
+ bdylist=append(bdylist,parse(bname));
+ bdynameL=append(bdynameL,bname);
+ );
+ options=optionsorg;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ eqL=tmp_5;
+ reL=tmp_6;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ angle=45;
+// interval=0.125*1000/2.54/MilliIn;
+ interval=0.25*1000/2.54/MilliIn; //180706
+ startP=[(XMIN+XMAX)/2, (YMIN+YMAX)/2];
+ maxnum=[50,0]; //181109changed [first,second]
+ fileflg="N";//181102from
+ mkflg=1;
+ chkL=[]; //181109
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ maxnum=parse(tmp_2);
+ if(!islist(maxnum),
+ maxnum=[maxnum,0];
+ );
+ options=remove(options,[#]);
+ );
+ if(tmp1=="F", //181102from
+ fileflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ ); //181102to
+ if(tmp1=="N", //181103from
+ tmp=parse(tmp_2);
+ if(Anyselected(tmp),
+ mkflg=-1;
+ );
+ options=remove(options,[#]);
+ );
+ if(tmp1=="C",
+ chkL=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ );//181102,03to
+ tmp1=1;
+ forall(reL,
+ if(islist(#),
+ startP=#;
+ ,
+ if(tmp1==1,
+ angle=#;
+ tmp1=tmp1+1;
+ ,
+ interval= interval*#;
+ );
+ );
+ );
+ if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), //181102from
+ wflg=1;
+ varL=flatten(bdylistorg);
+ varL=select(varL,length(#)>1);
+ varL=sort(varL);
+ pL=[];
+ forall(1..(length(varL)),nn,
+ tmp1=varL_nn;
+ tmp=select(GLIST,substring(#,0,length(tmp1))==tmp1);
+ str=tmp_1;
+ varL_nn=str;
+ tmp1=Bracket(str,"()");
+ tmp2=max(apply(tmp1,#_2));
+ nL=select(1..(length(tmp1)),tmp1_#_2==tmp2);
+ forall(nL,nn,
+ is=tmp1_nn_1; ie=tmp1_(nn+1)_1;
+ tmp=substring(str,is,ie-1);
+ tmp=replace(tmp,"'",Dq);
+ tmp=parse("["+tmp+"]");
+ tmp2=flatten(tmp);
+ tmp2=flatten(tmp2);
+ tmp2=flatten(tmp2);
+ forall(tmp2,
+ if(ispoint(#),
+ if(!contains(pL,#.name), //190505
+ pL=append(pL,#.name); //190505
+ );
+ );
+ );
+ );
+ );
+ forall(chkL,
+ if(!contains(pL,#),pL=append(pL,#));
+ );
+ forall(pL,
+ tmp=#+"="+Textformat(parse(#+".xy"),5);
+ varL=append(varL,tmp);
+ );
+ tmp="reL="+Textformat(reL,5);
+ varL=append(varL,tmp);
+ if(fileflg=="M",
+ fileflg="Y";
+ ,
+ tmp1="hatch"+nm+".txt";
+ if(isexists(Dirwork,tmp1),
+ tmp2=load(tmp1);
+ tmp2=tokenize(tmp2,"//");
+ tmp2=tmp2_(1..(length(tmp2)-1));
+ if(tmp2==varL,
+ wflg=0;
+ if(isexists(Dirwork,fname),
+ mkflg=0;
+ ReadOutData(fname);
+ tmp=name+"="+Textformat(parse(name),5)+";"; //190415
+ parse(tmp);
+ );
+ );
+ );
+ );
+ );
+ if(mkflg==1, //181102to
+ angle=angle*pi/180;
+ vec=[cos(angle),sin(angle)];
+ nvec=[-sin(angle),cos(angle)];
+ AnsL=[];
+ ctr=0;//181005[2lines]
+ forall(0..(maxnum_1), kk,
+ pt=startP+kk*interval*nvec;
+ sha=Makehatch(iostr,pt,vec,bdylist);
+ if((sha!=-1)&(length(sha)>0),
+ AnsL=concat(AnsL,sha);
+ ctr=ctr+1; //181005
+ );
+ );
+ maxnum_2=maxnum_2+(maxnum_1-ctr); //181005
+ forall(1..(maxnum_2),kk, //181005
+ pt=startP-kk*interval*nvec;
+ sha=Makehatch(iostr,pt,vec,bdylist);
+ if((sha!=-1)&(length(sha)>0),
+ AnsL=concat(AnsL,sha);
+ );
+ );
+ tmp1=apply(AnsL,Textformat(#,5));
+ tmp=name+"="+tmp1+";"; //190415
+ parse(tmp);
+ );
+ if((Noflg<3)&(mkflg>-1),
+ if(fileflg!="Y", //181102
+ println("generate Hatchdata "+name);
+ tmp=name+"="+Textformat(AnsL,5)+";"; //190415
+ parse(tmp);
+ if(!islist(iostr),tmp1=[iostr],tmp1=iostr); //no ketjs on
+ tmp="c"+PaO();
+ forall(tmp1,
+ tmp=tmp+Dq+#+Dq+",";
+ );
+ tmp=substring(tmp,0,length(tmp)-1)+")";
+ tmp2=name+"=Hatchdata("+tmp;
+ forall(bdynameL,
+ tmp2=tmp2+",list"+PaO()+#+")";
+ );
+ tmp2=tmp2+opstr+")";
+ GLIST=append(GLIST,tmp2); //no ketjs off
+ ,
+ GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102 //no ketjs
+ );
+ );
+ if((Noflg<2)&(mkflg>-1),
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ ); //no ketjs off
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
+ Texcom("}");//180722
+ ); //no ketjs off
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+ );
+ if(mkflg>-1,
+ if((fileflg=="Y")&(wflg==1), //181102from
+ tmp1="hatch"+nm+".txt";
+ SCEOUTPUT = openfile(tmp1);
+ forall(varL,
+ println(SCEOUTPUT,#+"//");
+ );
+ closefile(SCEOUTPUT);
+ WriteOutData(fname,[name,parse(name)]);
+ ); //181102to
+ tmp2=[];
+ forall(AnsL,tmp1,
+ tmp=apply(tmp1,LLcrd(#));
+ tmp2=append(tmp2,tmp);
+ );
+ tmp2;
+ );
+);
+////%Hatchdata end////
+
+////%Shadein start////
+Shadein(pstrorg):=( //190220
+ regional(pstr,ptL,pL,crv,nn,
+ tmp,tmp1,tmp2,pm1,pm2,p1,p2,flg);
+ if(islist(pstrorg),pstr=pstrorg_1,pstr=pstrorg);
+ crv=[];
+ Framedata(["nodisp"]);
+ ptL=Intersectcurvespp(pstr,frwin);
+ if(length(ptL)>0,
+ pL=apply(ptL,#_2);
+ forall(1..(length(pL)),nn,
+ if(nn<length(pL),
+ tmp1=pL_nn;
+ tmp2=pL_(nn+1);
+ tmp=Pointoncrv((tmp1+tmp2)/2,pstr);
+ ,
+ tmp1=pL_nn;
+ tmp2=pL_1;
+ tmp=parse(pstr);
+ if(pL_nn==length(tmp),
+ tmp=tmp_1;
+ ,
+ tmp=tmp_(length(tmp));
+ );
+ );
+ if(Inwindow(tmp),
+ tmp=Partcrv("",tmp1,tmp2,pstr,["nodata"]);
+ ,
+ tmp1=Pointoncrv(tmp1,pstr);
+ tmp2=Pointoncrv(tmp2,pstr);
+ pm1=Paramoncrv(tmp1,frwin);
+ pm2=Paramoncrv(tmp2,frwin);
+ if(floor(pm1)==floor(pm2),
+ tmp=Listplot("",[tmp1,tmp2],["nodata"]);
+ ,
+ tmp=floor(pm1);
+ p1=Pointoncrv(tmp,"frwin");
+ p2=Pointoncrv(mod(tmp,4)+1,"frwin");
+ tmp=p1-10*(p2-p1);
+ Listplot("frwin",[p1,tmp],["nodisp","Msg=n"]);
+ tmp=Intersectcurvespp("sgfrwin",pstr);
+ if(mod(length(tmp),2)==0, //190223from
+ if(pm2<pm1,pm2=pm2+4);
+ tmp=[tmp1];
+ pm1=floor(pm1)+1;
+ flg=0;
+ forall(1..3,
+ if(flg==0,
+ if(pm1<pm2,
+ p1=Pointoncrv(mod(pm1-1,4)+1,"frwin");
+ tmp=append(tmp,p1);
+ pm1=pm1+1;
+ ,
+ flg=1;
+ );
+ );
+ );
+ if(pm1-1<pm2,tmp=append(tmp,tmp2));
+ ,
+ if(pm2>pm1,pm2=pm2-4);
+ tmp=[tmp1];
+ pm1=floor(pm1);
+ flg=0;
+ forall(1..3,
+ if(flg==0,
+ if(pm1>pm2,
+ p1=Pointoncrv(mod(pm1-1,4)+1,"frwin");
+ tmp=append(tmp,p1);
+ pm1=pm1-1;
+ ,
+ flg=1;
+ );
+ );
+ );
+ if(pm1+1>pm2,tmp=append(tmp,tmp2));
+ ); //190223to
+ );
+ );
+ if(length(crv)==0,
+ crv=tmp;
+ ,
+ crv=Joincrvs("",[crv,tmp],["nodata"]);
+ );
+ );
+ ,
+ if(Inwindow(parse(pstr+"_1")),crv=pstr,crv=frwin);
+ );
+ crv;
+);
+////%Shadein end////
+
+////%Shade start////
+Shade(plist):=Shade(plist,[]);
+Shade(Arg1,Arg2):=(
+ if(!isstring(Arg1),
+ Shade(text(SHADECTR),Arg1,Arg2); //190222
+ ,
+ Shade(Arg1,Arg2,[]);
+ );
+);
+Shade(nm,plistorg,options):=(
+//help:Shade(["gr1"],[0.5]);
+//help:Shade(["gr1"],["Color=red"]);
+//help:Shade(["gr1"],["Trim=y(n)"]); //190224
+// help:Shade(["gr1","sg1"],["Color=[1,0,0]"]);
+// help:Shade([[A,B,C,A]]);
+//help:Shade(["gr2","Invert(sg1)"],["Enc=y",(Startpoint)]);
+ regional(name,plist,jj,nn,trim,tmp,tmp1,tmp2,
+ opstr,opcindy,eqL,reL,Str,G2,flg,encflg,startpt,color,ctr);
+ name="shade"+nm;
+ plist=plistorg;
+ if(isstring(plist_1), // 16.01.24
+ println("output Shade of "+plist);
+ ,
+ println("output Shade of lists");
+ );
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ reL=tmp_6;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ tmp=select(plist,indexof(#,"Invert")>0); //180929from
+ if(length(tmp)>0,encflg=1,encflg=0);
+ trim="N";
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(tmp_1);
+ tmp2=Toupper(tmp_2);
+ if(substring(tmp1,0,1)=="E",
+ if(substring(tmp2,0,1)=="Y",
+ encflg=1;
+ );
+ if(substring(tmp2,0,1)=="N",
+ encflg=0;
+ );
+ );
+ if(substring(tmp1,0,1)=="T",
+ trim=substring(tmp2,0,1);
+ );
+ );
+ startpt=[];
+ forall(reL,
+ if(islist(#),
+ startpt=#;
+ );
+ ); //180929to
+ if(length(color)==4, //180602from
+ tmp=Colorcmyk2rgb(color);
+ );
+ flg=0; ctr=1;
+ if(encflg==1, //180929from
+ if(length(startpt)==2,
+ Enclosing(nm,plist,[startpt,"nodisp"]);
+ ,
+ Enclosing(nm,plist,["nodisp"]);
+ );
+ plist=["en"+nm];
+ ); //180929to
+ if((length(plist)==1)&(trim=="Y"), //190220from,109224
+ plist=[Shadein(plist)];
+ ); //190220to
+ forall(1..(length(plist)),jj, //180613from
+ if(flg==0,
+ tmp1=plist_jj;
+ if(isstring(tmp1),tmp=parse(tmp1),tmp=tmp1);
+ if(!islist(tmp),
+ flg=1;
+ ,
+ if(!isstring(tmp1),
+ tmp2=[];
+ forall(tmp1,if(ispoint(#),tmp=#.xy,tmp=#);
+ tmp2=append(tmp2,tmp);
+ );
+ Listplot("-"+name+text(ctr),tmp2,["nodisp"]); //190520
+// tmp1=Dqq("-"+name+text(ctr));
+// tmp2=Textformat(tmp2,6)+",["+Dqq("nodisp")+"]";
+// tmp=name+text(ctr)+"=Listplot("+tmp1+","+tmp2+");";parse(tmp);
+ plist_jj=name+text(ctr);
+ ctr=ctr+1;
+ );
+ );
+ );
+ );//180613to
+ if(flg==1,
+ println(" some data not defined properly");
+ ,
+ G2=Joincrvs("1",plist,["nodata"]);
+ G2=apply(G2,Pcrd(#));
+ tmp1="fillpoly("+Textformat(G2,5)+opcindy+");";
+ parse(tmp1);
+ );
+ Str="Shade("; //no ketjs on
+ tmp1="list"+PaO();
+ forall(plist,
+ if(isstring(#), // from 16.01.24
+ if(length(#)>1,
+ tmp1=tmp1+#+",";
+ ,
+ tmp1=tmp1+Dq+#+Dq+",";
+ );
+ ,
+ tmp1=tmp1+"Listplot("+Textformat(#,5)+"),";
+ ); //16.01.24to
+ );
+ Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+")"; //180929
+ nn=length(COM2ndlist); //190311from
+ jj=nn;
+ forall(plist,tmp1,
+ tmp=select(1..nn,indexof(COM2ndlist_#,tmp1)>0);
+ jj=min(append(tmp,jj));
+ );
+ tmp1=["Texcom("+Dqq("{")+")","Setcolor("+color+")",Str,"Texcom("+Dqq("}")+")"];
+ tmp2=COM2ndlist_(1..(jj-1));
+ tmp=COM2ndlist_(jj..(length(COM2ndlist)));
+ if(!islist(tmp),tmp=[tmp]);
+ COM2ndlist=concat(tmp2,tmp1);
+ COM2ndlist=concat(COM2ndlist,tmp); //190311to
+ //no ketjs off
+ SHADECTR=SHADECTR+1;
+);
+////%Shade end////
+
+/////////// end of new Hatchdata(cindy) ///////////
////%Rotatepoint start////
Rotatepoint(point,Theta,ctr):=(
@@ -115,20 +2279,31 @@ Reflectpoint(point,symL):=(
////%Rotatedata start////
Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
-Rotatedata(nm,plist,angle,options):=(
+Rotatedata(nm,plist,angle,optionorg):=(
//help:Rotatedata("1",["crAB","pt1"],pi/3,[[1,5],"dr,2"]);
//help:Rotatedata("1",[[A.xy],[B.xy]],pi/3,[[1,5],"dr,2"]);
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,
- opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name,color);
+ regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL,options,
+ opcindy,eqL,msgflg,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name,color);
name="rt"+nm;
+ options=optionorg;
Pt=[0,0];
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
+ eqL=tmp_5;
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
tmp1=tmp_6;
if(length(tmp1)>0,Pt=Lcrd(tmp1_1));
+ msgflg="Y"; //190425from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //190425to
pdata=plist;
if(isstring(pdata),pdata=[pdata]);
if(!isstring(pdata_1) & Measuredepth(pdata)==1,
@@ -157,14 +2332,16 @@ Rotatedata(nm,plist,angle,options):=(
PdL=concat(PdL,tmp2);
);
if(Noflg<3,
- println("generate Rotatedata "+name);
+ if(msgflg=="Y",
+ println("generate Rotatedata "+name);
+ );
tmp1=[];
forall(PdL,tmp2,
tmp=apply(tmp2,Pcrd(#));
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1);// 180602
@@ -177,7 +2354,7 @@ Rotatedata(nm,plist,angle,options):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -192,16 +2369,27 @@ Rotatedata(nm,plist,angle,options):=(
////%Translatedata start////
Translatedata(nm,plist,mov):=Translatedata(nm,plist,mov,[]);
-Translatedata(nm,plist,mov,options):=(
+Translatedata(nm,plist,mov,optionorg):=(
//help:Translatedata("1",["gr1","pt1"],[1,2]);
- regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,
- opcindy,X2,Y2,Ltype,Noflg,name,color,leveL);
+ regional(options,tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj,eqL,
+ opcindy,X2,Y2,Ltype,Noflg,name,color,leveL,msgflg);
name="tr"+nm;
+ options=optionorg; //190425
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
+ eqL=tmp_5; //190424
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
+ msgflg="Y"; //190425from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //190425to
pdata=plist;
if(isstring(pdata),pdata=[pdata]);
if(!isstring(pdata_1) & Measuredepth(pdata)==1,
@@ -227,14 +2415,16 @@ Translatedata(nm,plist,mov,options):=(
PdL=concat(PdL,tmp2);
);
if(Noflg<3,
- println("generate Translatedata "+name);
+ if(msgflg=="Y", //190425
+ println("generate Translatedata "+name);
+ );
tmp1=[];
forall(PdL,tmp2,
tmp=apply(tmp2,Pcrd(#));
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1);// 180602
@@ -246,7 +2436,7 @@ Translatedata(nm,plist,mov,options):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -281,20 +2471,31 @@ Scaledata(nm,plist,Arg1,Arg2):=(
Scaledata(nm,plist,Arg1,Arg2,[]);
);
);
-Scaledata(nm,plist,rx,ry,options):=(
- regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,
- opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name,color);
+Scaledata(nm,plist,rx,ry,optionorg):=(
+ regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL,options,eqL,
+ opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name,color,msgflg);
name="sc"+nm;
+ options=optionorg;
Pt=[0,0];
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
+ eqL=tmp_5;
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
tmp1=tmp_6;
if(length(tmp1)>0,
Pt=Lcrd(tmp1_1);
);
+ msgflg="Y"; //190425from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //190425to
pdata=plist;
if(isstring(pdata),pdata=[pdata]);
if(!isstring(pdata_1) & Measuredepth(pdata)==1,
@@ -319,14 +2520,16 @@ Scaledata(nm,plist,rx,ry,options):=(
PdL=concat(PdL,tmp2);
);
if(Noflg<3,
- println("generate Scaledata "+name);
+ if(msgflg=="Y",
+ println("generate Scaledata "+name);
+ );
tmp1=[];
forall(PdL,tmp2,
tmp=apply(tmp2,Pcrd(#));
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1); // 180602
@@ -339,7 +2542,7 @@ Scaledata(nm,plist,rx,ry,options):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -354,17 +2557,28 @@ Scaledata(nm,plist,rx,ry,options):=(
////%Reflectdata start////
Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
-Reflectdata(nm,plist,symL,options):=(
+Reflectdata(nm,plist,symL,optionorg):=(
//help:Reflectdata("1",["crAB"],[C]);
- regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,
+ regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL,options,eqL,
opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name,color);
name="re"+nm;
+ options=optionorg;
Pt=[0,0];
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
+ eqL=tmp_5;
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
+ msgflg="Y"; //190425from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //190425to
pdata=plist;
if(isstring(pdata),pdata=[pdata]);
if(!isstring(pdata_1) & Measuredepth(pdata)==1,
@@ -405,14 +2619,16 @@ Reflectdata(nm,plist,symL,options):=(
PdL=concat(PdL,tmp2);
);
if(Noflg<3,
- println("generate Reflectdata "+name);
+ if(msgflg=="Y",
+ println("generate Reflectdata "+name);
+ );
tmp1=[];
forall(PdL,tmp2,
tmp=apply(tmp2,Pcrd(#));
tmp1=append(tmp1,tmp);
);
if(length(tmp1)==1,tmp1=tmp1_1);
- tmp=name+"="+Textformat(tmp1,5);
+ tmp=name+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp1=text(plist); //no ketjs on
tmp1=RSform(tmp1,1);// 180602
@@ -424,7 +2640,7 @@ Reflectdata(nm,plist,symL,options):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -628,10 +2844,12 @@ Drwxy(add,optionsorg):=( //190103to
yrng=[YMIN,YMAX]; //190103
ax=AXSTYLE;
linesty=ax_8;
- if(isstring(ax_9),colorax=ax_9,colorax=text(ax_9));
- if(length(colorax)>0,
- colorax="Color="+colorax;
+ if(length(ax_9)>0, //190427
+ if(isstring(ax_9),colorax=ax_9,colorax=text(ax_9));
+ ,
+ colorax=KCOLOR; //190427
);
+ colorax="Color="+colorax; //190427[if removed]
if(isstring(ax_10),colorla=ax_10,colorla=text(ax_10));
if(length(colorla)>0, //181217from
colorla="Color="+colorla;
@@ -679,15 +2897,15 @@ Drwxy(add,optionsorg):=( //190103to
if(length(tmp)>0,size=parse(tmp),size=YaSize);
tmp1=concat(options,[size,YaAngle,YaPosition,YaCut,colorax]);//181216
tmp=[[xrng_1,org_2],[xrng_2,org_2]];
- Arrowdata("axx"+text(AXCOUNT),tmp,tmp1);
+ Lightarrowdata("axx"+text(AXCOUNT),tmp,tmp1);
tmp=[[org_1,yrng_1],[org_1,yrng_2]];
- Arrowdata("axy"+text(AXCOUNT),tmp,tmp1);
+ Lightarrowdata("axy"+text(AXCOUNT),tmp,tmp1); //190419
,
tmp=[[xrng_1,org_2],[xrng_2,org_2]];
- tmp1=append(options,colorax);//181216
- Listplot("axx"+text(AXCOUNT),tmp,tmp1);
+ tmp1=concat(options,[colorax,"Msg=n"]);//181216,190325
+ Listplot("-axx"+text(AXCOUNT),tmp,tmp1);
tmp=[[org_1,yrng_1],[org_1,yrng_2]];
- Listplot("axy"+text(AXCOUNT),tmp,tmp1);
+ Listplot("-axy"+text(AXCOUNT),tmp,tmp1);
);
AXCOUNT=AXCOUNT+1;
Expr([[xrng_2,org_2],ax_3,ax_2],[colorla]);//181216[3lines]
@@ -753,6 +2971,7 @@ Addax(param):=(
////%Expr start////
Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
Expr(list):=Expr(list,[]);
+Expr(Pt,Dr,St,options):=Expr([Pt,Dr,St],options); //190409
Expr(listorg,options):=( //16.10.09
//help:Expr([A,"e","f(x)=x^2"]);
//help:Expr([A,"e","f(x)=x^2"],["size->24"]);
@@ -1006,7 +3225,7 @@ Slider(ptstr,p1,p2,options):=(//190120
tmp=pC+"l"+pC+pC+"r";
Listplot(tmp,[p1,p2],["Msg=n","notex",color,size]);
Putonseg(pC,parse("sg"+tmp));
- PTEXCEPTION=concat(TEXCEPTION,[pC]);
+ PTEXCEPTION=concat(PTEXCEPTION,[pC]); //190329
); //190209to
);
////%Slider end////
@@ -1016,13 +3235,13 @@ Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
Putpoint(name,Ptinit,Pt):=(
//help:Putpoint("A",[1,2],[1,A.y]);
regional(ptstr);
- ptstr=apply(allpoints(),#.name);//16.10.06
+ ptstr=apply(allpoints(),#.name); //no ketjs on
if(!contains(ptstr,name),
createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
- ,
- ptstr=name+".xy="+Textformat(Pcrd(Pt),5);
+ , //no ketjs off
+ ptstr=name+".xy="+Textformat(Pcrd(Pt),5)+";";
parse(ptstr);
- );
+ ); //no ketjs
);
////%Putpoint end////
@@ -1035,7 +3254,7 @@ Putpoint(name,Ptinit,Pt):=(
if(!contains(ptstr,name),
createpoint(name,Pcrd([Ptinit_1,Ptinit_2]));
,
- ptstr=name+".xy="+Textformat(Pcrd(Pt),5);
+ ptstr=name+".xy="+Textformat(Pcrd(Pt),5)+";";
parse(ptstr);
);
);
@@ -1071,23 +3290,24 @@ Bezierpt(t,ptlist,ctrlist):=(
////%Bezierpt end////
////%Bezier start////
-Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
+Bezier(ptctrlist):=Beziercurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
Bezier(Arg1,Arg2):=( //190202from
regional(nm,ptctrlist,options);
if(islist(Arg1),
ptctrlist=Arg1; options=Arg2;
- BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
+ Beziercurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
,
nm=Arg1; ptctrlist=Arg2;
- BezierCurve(nm,ptctrlist_1,ptctrlist_2,[]);
+ Beziercurve(nm,ptctrlist_1,ptctrlist_2,[]);
);
); //190202to
-Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
+Bezier(nm,ptlist,ctrlist):=Beziercurve(nm,ptlist,ctrlist,[]);
+Bezier(nm,ptlist,ctrlist,options):=Beziercurve(nm,ptlist,ctrlist,options);
////%Bezier end////
-////%BezierCurve start////
-BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
-BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
+
+////%Beziercurve start////
+Beziercurve(nm,ptlist,ctrlist):=Beziercurve(nm,ptlist,ctrlist,[]);
+Beziercurve(nm,ptlistorg,ctrlistorg,options):=(
//help:Bezier("1",[A,D],[B,C]);
//help:Bezier(options=["Num=10"]);
regional(name,Ltype,Noflg,opstr,opcindy,Num,
@@ -1139,7 +3359,7 @@ BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
if(Noflg<3,
println("generate Bezier "+name);
out=apply(list,Pcrd(#));
- tmp=name+"="+Textformat(out,5);
+ tmp=name+"="+Textformat(out,5)+";"; //190415
parse(tmp);
tmp1=Textformat(ptlist,5); //no ketjs on
tmp1=RSform(tmp1,2); //17.12.23
@@ -1152,7 +3372,7 @@ BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -1164,84 +3384,32 @@ BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
BezierCtrL=ctrlist; //181001
list;
);
-////%BezierCurve end////
-
-////%Readcsvsla start////
-Readcsvsla(fname):=Readplotdigdata(fname,[]);
-Readcsvsla(fname,options):=Readplotdigdata(fname,options);
-Readplotdigdata(fname):=Readplotdigdata(fname,[]);
-Readplotdigdata(fname,options):=(
- regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
- tmp=Divoptions(options);
- tmp1=tmp_6;
- sc=1;//10;
- mv=[0,0];//[5,5];
- forall(tmp1,
- if(!islist(#),sc=#,mv=#);
- );
- if(indexof(fname,".")>0,
- tmp=load(fname);
- ,
- tmp=load(fname+".txt");
- );
- cmdall=tokenize(tmp,"//");
- dataL=[];
- forall(2..length(cmdall),ii,
- tmp1=parse("["+cmdall_ii+"]");
- dataL=append(dataL,tmp1);
- );
- if(length(dataL_(length(dataL)))<2,
- dataL=dataL_(1..(length(dataL)-1));
- );
- nd=length(dataL_1)/2;
- npt=length(dataL);
- ptdata=[];
- forall(1..nd,ii,
- tmp3=[];
- forall(1..npt,
- tmp1=dataL_#_(2*ii-1);
- tmp2=dataL_#_(2*ii);
- if(isreal(tmp1),
- tmp3=append(tmp3,[tmp1,tmp2]);
- );
- );
- ptdata=append(ptdata,tmp3);
- );
- tmp1=[];
- forall(ptdata,
- tmp=#/sc;
- tmp=Translatedata("1",[tmp],-mv,["nodata"]);
- tmp1=append(tmp1,tmp);
- );
- ptdata=tmp1;
- ptdata;
-);
-////%Readcsvsla end////
+////%Beziercurve end////
////%Putbezierdata start////
Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
Putbezierdata(name,ptL,options):=(
regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
tmp=Divoptions(options);
- psize=3;
+ psize=3; //no ketjs
Deg=3;
tmp1=tmp_5;
forall(tmp1,
- if(substring(#,0,1)=="D",
+ if(substring(#,0,1)=="D", //no ketjs on
tmp=indexof(#,"=");
Deg=parse(substring(#,tmp,length(#)));
);
if(substring(#,0,1)=="S",
tmp=indexof(#,"=");
psize=parse(substring(#,tmp,length(#)));
- );
+ ); //no ketjs off
);
pts=[];
ctrs=[];
forall(1..length(ptL),
p2=ptL_#; // 16.08.16
if(ispoint(p2),
- tmp1=text(p2);
+ tmp1=p2.name; //190505
,
tmp1=name+text(#);
Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16
@@ -1298,11 +3466,11 @@ Mkbezierptcrv(ptdata,options):=(
//help:Mkbezierptcrv(options=["Num=10"]);
// global BezierNumber
regional(ptlist,Out,tmp,tmp1,tmp2);
- if(isstring(ptdata),
+ if(isstring(ptdata), //no ketjs on
ptlist=Readcsvsla(ptdata,options);
- ,
+ , //no ketjs off
ptlist=ptdata;
- );
+ ); //no ketjs
if(Measuredepth(ptlist)==1,ptlist=[ptlist]);
Out=[];
forall(1..length(ptlist),
@@ -1335,108 +3503,6 @@ Mkbeziercrv(nm,ptctrL,options):=(
);
////%Mkbeziercrv end////
-////%Writebezier start////
-Writebezier():=Writebezier(Fhead,"all");
-Writebezier(head):=Writebezier(head,"all");
-Writebezier(head,seL):=(
-//help:Writebezier(file);
-//help:Writebezier(file,"acd");
- regional(bz,dt,name,tmp,tmp1,tmp2);
- bz=select(GLIST,indexof(#,"=Bezier")>0);
- tmp1=[]; // 16.04.22from
- if(seL!="all",
- forall(1..length(seL),
- tmp=substring(seL,#-1,#);
- tmp=select(bz,indexof(#,"bz"+tmp)>0);
- tmp1=concat(tmp1,tmp);
- );
- bz=tmp1;// 16.04.22until
- );
- dt=[head+"n",[[length(bz),0]]];
- forall(1..length(bz),
- tmp=indexof(bz_#,"=");
- name=substring(bz_#,0,tmp-1);
- tmp=indexof(bz_#,","+Dq);
- if(tmp>0,
- tmp1=substring(bz_#,0,tmp-1)+")";
- ,
- tmp1=bz_#;
- );
- tmp1=replace(tmp1,"Bezier(","[");
- tmp1=replace(tmp1,"list"+PaO(),"[");
- tmp1=replace(tmp1,")","]");
- tmp1=replace(tmp1,",",".xy,");
- tmp1=replace(tmp1,"]",".xy]");
- tmp1=replace(tmp1,".xy,[",",[");
- tmp1=replace(tmp1,"].xy","]");
- tmp1=replace(tmp1,name,head+text(#));
- parse(tmp1);
- tmp=parse(head+text(#)+"_1");
- dt=concat(dt,[head+text(#)+"k",tmp]);
- tmp=parse(head+text(#)+"_2");
- dt=concat(dt,[head+text(#)+"c",tmp]);
- );
- WriteOutData(head+".txt",dt);
- dt;
-);
-////%Writebezier end////
-
-////%Readbezier start////
-Readbezier(file):=Readbezier(file,[]);
-Readbezier(file,optionorg):=(
-//help:Readbezier("xsr");
-//help:Readbezier(options=["Num=10","nogeo"]);
- regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
- options=optionorg;
- tmp=Divoptions(options);
- stL=tmp_7;
- geo=0;
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="G",geo=1);
- options=remove(options,[#]);
- );
- ReadOutData(file);
- tmp=file+"n_1_1";
- nn=parse(tmp);
- out=[];
- forall(1..nn,nc,
- tmp=file+text(nc);
- tmp1=parse(tmp+"k");
- tmp2=parse(tmp+"c");
- if(Measuredepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
- if(geo==1,
- alpha="abcdefghijklmnopqrstuvwxyz";
- forall(1..length(tmp1),
- tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
- Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"ptsize",3);
- tmp1_#=parse(tmp+".xy");
- );
- forall(1..length(tmp2),
- tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
- Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_1=parse(tmp+".xy");
- tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
- Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
- inspect(parse(tmp),"labeled",false);
- inspect(parse(tmp),"color",4);
- inspect(parse(tmp),"ptsize",3);
- tmp2_#_2=parse(tmp+".xy");
- );
- BezierNumber=BezierNumber+1;
- );
- Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22until
- out=append(out,"bz"+tmp);
- );
- out;
-);
-////%Readbezier end////
-
////%Ospline start////
Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
Ospline(nm,ptlist,options):=(
@@ -1637,7 +3703,7 @@ Bzsspline(nm,ptLorg,options):=(
if(#<length(ptL) % cflg==1,
pt=ptL_#;
pt1=parse("C"+text(#-1)+"q");
- tmp2="C"+text(#)+"p=2*pt-pt1";
+ tmp2="C"+text(#)+"p=2*pt-pt1;"; //190415
parse(tmp2);
);
);
@@ -1651,7 +3717,7 @@ Bzsspline(nm,ptLorg,options):=(
if(cflg==1,
pt=ptL_1;
pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16
- tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16
+ tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1);"; // 16.08.16//190415
parse(tmp1);
);
ctrlist=[];
@@ -1699,8 +3765,8 @@ Bspline(nm,ctrL,options):=(
);
////%Bspline end////
-////%MeetCurve start////
-MeetCurve(Crv,Xorg,Yorg):=(
+////%Meetcurve start////
+Meetcurve(Crv,Xorg,Yorg):=(
regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
if(Measuredepth(Cv)==2,Cv=Cv_1);
@@ -1761,7 +3827,7 @@ MeetCurve(Crv,Xorg,Yorg):=(
tmp=sort(Ylist,abs(#_1-Y0));
[X0,tmp_1];
);
-////%MeetCurve end////
+////%Meetcurve end////
////%Putonline start////
Putonline(name,linestr):=Putonline(name,linestr,[]); //190216from
@@ -1816,13 +3882,13 @@ Putonseg(name,p1org,p2org,options):=(
if(p_1<p1_1,parse(name+".xy="+Textformat(p1,5));p=p1);
if(p_1>p2_1,parse(name+".xy="+Textformat(p2,5));p=p2);
tmp=(p2_2-p1_2)/(p2_1-p1_1)*(p_1-p1_1)+p1_2;
- parse(name+".y="+tmp);
+ parse(name+".y="+tmp+";"); //190415
,
if(p1_2>p2_2,tmp=p1;p1=p2;p2=tmp);
if(p_2<p1_2,parse(name+".xy="+Textformat(p1,5));p=p1);
if(p_2>p2_2,parse(name+".xy="+Textformat(p2,5));p=p2);
tmp=(p2_1-p1_1)/(p2_2-p1_2)*(p_2-p1_2)+p1_1;
- parse(name+".x="+tmp);
+ parse(name+".x="+tmp+";"); //190415
); //190120to
);
////%Putonseg end////
@@ -1854,14 +3920,14 @@ Putoncurve(pn,crvorg,options):=(
p2=crv_1;
Putonseg(pn,p1,p2);
,
- parse(pn+".xy="+Textformat(Ptend(crv),5));
+ parse(pn+".xy="+Textformat(Ptend(crv),5)+";"); //190415
);
);
);
////%Putoncurve end////
-////%CrossPoint start////
-CrossPoint(name,Crv1,Crv2,range):=(
+////%Crosspoint start////
+Crosspoint(name,Crv1,Crv2,range):=(
regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
Mx1=range_1; Mx2=range_2;
repeat(15,
@@ -1880,151 +3946,307 @@ CrossPoint(name,Crv1,Crv2,range):=(
);
Putpoint(name,Crs1);
);
-////%CrossPoint end////
+////%Crosspoint end////
////%Periodfun start////
-Periodfun(defL,rep):=Periodfun(defL,rep,[]);
-Periodfun(defL,reporg,optionorg):=( // 16.11.24
-//help:Periodfun(["0",[-1,0],1(Num=),"1",[0,1],1(Num)],2(repeat count),options);
-//help:Periodfun(repeat count=n or [repeatL,repeatR]);
-//help:Periodfun(options=["Con(nect)=da,Color=red"]);//180725
-//help:Periodfun(defL=[function string, range, devision number,...]);
- regional(nn,fun,range,num,options,nr,maxfun,rep,np,
- tmp,tmp1,tmp2,eqL,connect,minx,maxx,pdata,Eps,prept);
- rep=reporg;
- if(length(rep)==1,rep=[rep,rep]);//180724
+Periodfun(defL,rng):=Periodfun(defL,rng,[]);
+Periodfun(Arg1,Arg2,Arg3):=( //190419from
+ regional(nm,defL,,rng,options);
+ if(isstring(Arg1),
+ nm=Arg1; defL=Arg2; rng=Arg3;
+ Periodfun(nm,defL,rng,[]);
+ ,
+ defL=Arg1; rng=Arg2; options=Arg3;
+ Periodfun("",defL,rng,options); //190421
+ );
+);
+Periodfun(nm,defL,rng,optionorg):=( //190420[new]
+//help:Periodfun("1",defL,"x=range",options);
+//help:Periodfun(defL=[function string,range(with equal option),devision number,...]);
+//help:Periodfun(equal option "l","r","b","n");
+//help:Periodfun(options=["Connect)=da,Color=red"]);//180725
+ regional(name,range,nr,nn,eqL,options,connect,Eps,fun,scaley,interval,
+ mxfun,var,left,right,period,cL,crL,sL,sdL,flg,equal,tmp,tmp1,tmp2);
+ Eps=10^(-2);
+ name="pe"+nm;
+ var="x";
+ nr=3*floor(length(defL)/3);
+ left=defL_2_1;
+ if(isstring(left),left=parse(left)); //190505
+ right=defL_(nr-1)_2;
+ if(isstring(right),right=parse(right)); ///190505
+ period=right-left;
+ if(isstring(rng),
+ tmp=Strsplit(rng,"=");
+ var=tmp_1;
+ if(length(tmp)>1,
+ range=parse(tmp_2);
+ ,
+ range=[XMIN,XMAX];
+ );
+ ,
+ range=[left-rng*period,right+rng*period]; //190421
+ );
options=optionorg;
-// tmp=Divoptions(options);
- eqL=options;
- connect=["da"];//180725
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ connect="da";
forall(eqL,
- tmp=indexof(#,"=");//180725from
- tmp=[substring(#,0,tmp-1),substring(#,tmp,length(#))];
- if(Toupper(substring(tmp_1,0,3))=="CON",
- tmp1=Toupper(Op(1,tmp_2));
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,3));
+ tmp2=tmp_2;
+ if(tmp1=="CON",
+ tmp1=Toupper(substring(tmp2,0,1));
if(tmp1=="N",
- connect=[];
+ connect="";
,
if(tmp1!="Y",
- connect=tokenize(tmp_2,",");
+ connect=tmp2;
);
- );//180725to
+ );
options=remove(options,[#]);
);
);
- minx=10000;
- maxx=-10000;
+ scaley=SCALEY;
+ Setscaling(1);
mxfun="";
- pdata=[];
- forall(1..(length(defL)/3),nn,
+ cL=[];
+ forall(1..(nr/3),nn,
+ nst=text(nn);
fun=defL_(3*nn-2);
- range=defL_(3*nn-1);
- tmp1=if(isstring(range_1),parse(range_1),range_1); //17.06.11[2lines]
- tmp2=if(isstring(range_2),parse(range_2),range_2);
- minx=min(minx,tmp1);
- maxx=max(maxx,tmp2);
- num=defL_(3*nn);
- options=append(options,"Num="+text(num));
- Plotdata("pe"+text(nn),fun,
- "x="+Textformat([tmp1,tmp2],5),options);
- pdata=append(pdata,"grpe"+text(nn));
- tmp1=range_1; //17.06.11[4lines]
- if(isstring(tmp1),tmp1=replace(tmp1,"pi","%pi"),tmp1=format(tmp1,5));
- tmp2=range_2;
- if(isstring(tmp2),tmp2=replace(tmp2,"pi","%pi"),tmp2=format(tmp2,5));
- mxfun=mxfun+"elseif ("+tmp1+
- "<=x and x<"+tmp2+") then "+fun+" ";
- );
- per=maxx-minx;
- tmp1=[];
- forall(1..(rep_1),nr, //180724from
- forall(reverse(1..(length(pdata))),np,
- Translatedata("m"+np+text(nr),pdata_np,[-per*nr,0],options);
- tmp1=concat(["trm"+np+text(nr)],tmp1);
- );
- );
- tmp2=[];
- forall(1..(rep_2),nr,
- forall(1..(length(pdata)),np,
- Translatedata("p"+np+text(nr),pdata_np,[per*nr,0],options);
- tmp2=concat(tmp2,["trp"+np+text(nr)]);
- );
- );//180724to
- pdata=concat(tmp1,pdata);
- pdata=concat(pdata,tmp2);
- if(length(connect)>0, //180725
- connect=append(connect,"Msg=n"); //180725
- Eps=10^(-5);
- pdata=sort(pdata,[parse(#)_1_1]);
- prept=parse(pdata_1)_1;
- forall(1..(length(pdata)),
- tmp=parse(pdata_#);
- tmp1=tmp_1;
- tmp2=tmp_(length(tmp));
- if(|prept-tmp1|>Eps,
- Listplot("con"+text(#),[prept,tmp1],concat([],connect));//180725
+ interval=defL_(3*nn-1); //190505from
+ equal="l";
+ if(length(interval)>2,
+ equal=substring(interval_3,0,1);
+ interval=interval_(1..2);
+ );
+ tmp=apply(interval,if(isstring(#),parse(#),#));
+ tmp1=var+"="+Textformat(tmp,5);
+ tmp2="Num="+text(defL_(3*nn));
+ tmp=Plotdata("",fun,tmp1,[tmp2,"nodata","Msg=n"]);
+ cL=append(cL,tmp);
+ if(equal=="l",equal=["<=","<"]);
+ if(equal=="r",equal=["<","<="]);
+ if(equal=="b",equal=["<=","<="]);
+ if(equal=="n",equal=["<","<"]);
+ mxfun=mxfun+"elseif ("+interval_1+
+ equal_1+var+" and "+var+equal_2+interval_2+") then "+fun+" ";
+ );
+ crL=cL;
+ flg=0;
+ forall(1..10,nn,
+ if(flg==0,
+ if(crL_1_1_1<=range_1,
+ flg=1;
+ ,
+ tmp=Translatedata("",cL,[-nn*period,0],["nodata","Msg=n"]);
+ crL=concat(tmp,crL);
);
- prept=tmp_(length(tmp));
);
);
+ flg=0;
+ forall(1..10,nn,
+ if(flg==0,
+ tmp1=crL_(length(crL));
+ tmp2=tmp1_(length(tmp1));
+ if(range_2<=tmp2_1,
+ flg=1;
+ ,
+ tmp=Translatedata("",cL,[nn*period,0],["nodata","Msg=n"]);
+ crL=concat(crL,tmp);
+ );
+ );
+ );
+ Setscaling(scaley);
+ sL=[];
+ sdL=[];
+ forall(1..(length(crL)),nn,
+ tmp=concat(options,["Msg=n"]);
+ Listplot("-"+name+text(nn),crL_nn,tmp);
+ sL=append(sL,name+text(nn));
+ if(nn<length(crL),
+ tmp1=crL_nn_(length(crL_nn));
+ tmp2=crL_(nn+1)_1;
+ if(Norm(tmp2-tmp1)>Eps,
+ tmp=concat(options,[connect,"Msg=n"]);
+ Listplot("-"+name+"dc"+text(nn),[tmp1,tmp2],tmp);
+ sdL=append(sdL,name+"dc"+text(nn));
+ );
+ );
+ );
+ tmp=name+"="+Textformat(sL,5)+";";
+ parse(tmp);
+ tmp=name+"dc="+Textformat(sdL,5)+";";
+ parse(tmp);
+ println(" generate "+name+","+name+"dc");
mxfun=substring(mxfun,4,length(mxfun)-1);
- [mxfun,per];
+ println(" return [mxfun,period]");
+ [mxfun,period];
);
////%Periodfun end////
+////%Mkcstable start////
+Mkcstable(nterm,num):=( //190523
+//help:Mkcstable(number of terms, division number)
+ regional(cosL,sinL,dL,jj,x,tmp);
+ cosL=[];
+ sinL=[];
+ forall(0..num,jj,
+ x=-pi+2*pi/num*jj;
+ dL=apply(1..nterm,cos(#*x));
+ cosL=append(cosL,dL);
+ dL=apply(1..nterm,sin(#*x));
+ sinL=append(sinL,dL);
+ );
+ tmp="Costable="+Textformat(cosL,6);
+ parse(tmp);
+ tmp="Sintable="+Textformat(sinL,6);
+ parse(tmp);
+);
+////%Mkcstable end////
+
////%Fourierseries start////
Fourierseries(nm,coeff,per,nterm):=
Fourierseries(nm,coeff,per,nterm,[]); // 16.11.24
-Fourierseries(nm,coeff,per,nterm,options):=(
-//help:Fourierseries("1",[c0,cn,sn],period,numterm,options);
- regional(c0,cn,sn,fs,tmp,tmp1,tmp2);
+Fourierseries(nm,coeff,per,nterm,Arg1):=( //190420from
+ if(isstring(Arg1),
+ Fourierseries(nm,coeff,per,nterm,Arg1,[]);
+ ,
+ Fourierseries(nm,coeff,per,nterm,"x=[XMIN,XMAX]",Arg1);
+ );
+);
+Fourierseries(nm,coefforg,per,nterm,range,optionorg):=(
+//help:Fourierseries("1",[c0,cn,sn],period,numterm,"x=range",options);
+//help:Fourierseries("1","[c0,cn,sn]",period,numterm,"x=range",options);
+//help:Fourierseries(options2=["Table=n/y"]);
+ regional(options,eqL,num,coeff,c0,cn,sn,fs,tbflg,jj,dL,
+ tmp,tmp1,tmp2);
+ options=optionorg; //190523from
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ tbflg="N";
+ num=100;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="T",
+ tbflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ if(tmp1=="N",
+ num=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ ); //190523to
+ coeff=coefforg;
+ if(isstring(coeff),
+ tmp=substring(coeff,1,length(coeff)-1);
+ coeff=tokenize(tmp,",");
+ );
+ coeff=apply(coeff,
+ if(isstring(#),replace(#,"%pi","pi"),format(#,5))
+ );
c0=coeff_1;
- if(!isstring(c0),c0=format(c0,5));
- c0=replace(c0,"%pi","pi");
cn=coeff_2;
- if(!isstring(cn),cn=format(cn,5));
- cn=replace(cn,"%pi","pi");
sn=coeff_3;
- if(!isstring(sn),sn=format(sn,5));
- sn=replace(sn,"%pi","pi");
fs=c0;
- forall(1..nterm,
- tmp=parse(Assign(cn,["n",#]));
- tmp1=Assign("("+format(tmp,5)+")*cos(n*2*pi/per*x)",
- ["n",#,"per",per]);
- tmp=parse(Assign(sn,["n",#]));
- tmp2=Assign("("+format(tmp,5)+")*sin(n*2*pi/per*x)",
- ["n",#,"per",per]);
- fs=fs+"+"+tmp1+"+"+tmp2;
- );
- Plotdata("four"+nm,fs,"x",options);
+ if(tbflg=="N", //190523
+ forall(1..nterm,
+ tmp=parse(Assign(cn,["n",#]));
+ tmp1=Assign("("+format(tmp,5)+")*cos(n*2*pi/per*x)",
+ ["n",#,"per",per]);
+ tmp=parse(Assign(sn,["n",#]));
+ tmp2=Assign("("+format(tmp,5)+")*sin(n*2*pi/per*x)",
+ ["n",#,"per",per]);
+ fs=fs+"+"+tmp1+"+"+tmp2;
+ );
+ Plotdata("-four"+nm,fs,range,append(options,"Num="+Num));
+ ,
+ c0=parse(c0); //190523from
+ cn=apply(1..nterm,parse(Assign(cn,["n",#])));
+ sn=apply(1..nterm,parse(Assign(sn,["n",#])));
+ dL=[]; //1900523from
+ forall(0..num,jj,
+ x=-per/2+per/num*jj;
+ fs=c0;
+ forall(1..nterm,
+ fs=fs+cn_#*Costable_(jj+1)_#+sn_#*Sintable_(jj+1)_#;
+ );
+ dL=append(dL,[x,fs]);
+ );
+ Listplot("-four"+nm,dL,options);
+ ); //190523to
);
////%Fourierseries end////
+////%Tabledata start//// //190428from
+Tabledata(xLst,yLst,rmvL):=Tabledata("",xLst,yLst,rmvL);
+Tabledata(Arg1,Arg2,Arg3,Arg4):=(
+ if(isstring(Arg1),
+ Tabledata(Arg1,Arg2,Arg3,Arg4,[]);
+ ,
+ Tabledata("",Arg1,Arg2,Arg3,Arg4);
+ );
+); //190428to
+Tabledata(nm,xL,yL,rmvL,optionorg):=(
+//help:Tabledata(xL,yL,rmvL,["Geo=n"]);
+//help:Tabledata(options=[2(tick,0 for no tick),"Setwin=y","Move=[0,0]"]); //190428
+ regional(options,geo,tmp,tmp1,tmp2);
+ options=optionorg;
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ tmp=select(tmp_5,indexof(Toupper(#),"GEO")>0);
+ if(length(tmp)>0,
+ options=remove(options,tmp);
+ Tabledatageo(nm,xL,yL,rmvL,options);
+ ,
+ Tabledatalight(nm,xL,yL,rmvL,options);
+ );
+);
+////% Tabledata end////
+
////%Tabledatalight start////
-Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
+Tabledatalight(xLst,yLst,rmvL):=Tabledatalight("",xLst,yLst,rmvL); //190428from
+Tabledatalight(Arg1,Arg2,Arg3,Arg4):=(
+ if(isstring(Arg1),
+ Tabledatalight(Arg1,Arg2,Arg3,Arg4,[]);
+ ,
+ Tabledatalight("",Arg1,Arg2,Arg3,Arg4);
+ );
+); //190428to
Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
-//help:Tabledatalight("",xLst,yLst,rmvL,[2,"Rng=y"]);
+//help:Tabledatalight(xLst,yLst,rmvL,[0(notick)]);
+//help:Tabledatalight(xLst,yLst,rmvL,[2,"Setwindow=y","Move=[0,0]"]); //190428
regional(options,rng,name,upleft,ul,flg,tick,eqL,reL,n,m,xsize,ysize,
- rlist,clist,Tb,tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
+ rlist,clist,Tb,jj,kk,tmp,tmp1,tmp2,tmp3,Eps);
+ // TableMove is global for Table
+ TABLECOUNT=TABLECOUNT+1; //190428from
+ TableMove=GENTEN; //190428to
+ name="tb"+text(TABLECOUNT); //190428to
options=optionorg;
tmp=Divoptions(options);
eqL=tmp_5; //16.12.16from
reL=tmp_6;
rng="Y";
forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1)); //181111
- tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="R",
- rng=tmp2;
+ tmp=Strsplit(#,"="); //190428from
+ tmp1=Toupper(substring(tmp_1,0,2));
+ if(tmp1=="RN",
+ rng=Toupper(substring(tmp_2,0,1));
options=remove(options,[#]);
);
- );//16.12.16until
- tick=1;
- flg=0;
+ if(tmp1=="MO",
+ TableMove=parse(tmp_2);
+ rng="N"; //190429
+ options=remove(options,[#]);
+ );
+ if(tmp1=="SE",
+ rng=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //190428to
+ tick=1;
+ flg=0; //190424
forall(reL,
if(flg==0,
tick=#;
@@ -2036,7 +4258,7 @@ Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
tmp=sum(yLst);
upleft=[0,tmp];
TableOptions=options; // 16.11.28
- println("Tabledatalight "+name+" generated");
+ println("generate Tabledatalight "+name); //190428
ul=upleft/10;
m=length(xLst);
n=length(yLst);
@@ -2052,28 +4274,48 @@ Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
tmp1=rlist_(#)_2-yLst_#/10;
rlist=append(rlist,[0,tmp1]);
);
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
+ Tb=[clist,rlist]; //190427
+ tmp=name+"="+Tb+";"; //190415
parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
+ forall(0..m,jj, //190507from
+ tmp3="c"+text(jj);
+ if(length(rmvL)>=0,
+ tmp1="r"+text(0);
+ tmp2="r"+text(n);
+ Tlistplot("-"+name+tmp3+tmp1+tmp2,[tmp3+tmp1,tmp3+tmp2],options);
+ ,
+ forall(0..(n-1),
+ tmp1="r"+text(#);
+ tmp2="r"+text(#+1);
+ Tlistplot("-"+name+tmp3+tmp1+tmp2,[tmp3+tmp1,tmp3+tmp2],options);
+ );
+ ); //190507to
+ if(tick!=0, //190421
+ if(mod(jj,tick)==0 % #==m,
+ drawtext(clist_(jj+1)+TableMove-[0.04,-0.1],"c"+text(jj)); //190428
+ );
);
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
+ ); //190507
+ forall(0..n,jj,
+ tmp3="r"+text(jj);
+ if(length(rmvL)>=0,
+ tmp1="c"+text(0);
+ tmp2="c"+text(m);
+ Tlistplot("-"+name+tmp3+tmp1+tmp2,[tmp1+tmp3,tmp2+tmp3],options);
+ ,
+ forall(0..(m-1),
+ tmp1="c"+text(#);
+ tmp2="c"+text(#+1);
+ Tlistplot("-"+name+tmp3+tmp1+tmp2,[tmp1+tmp3,tmp2+tmp3],options);
+ );
+ );
+ if(tick!=0, //190421
+ if(mod(jj,tick)==0 % #==n,
+ drawtext(rlist_(jj+1)+TableMove-[0.4,0.1],"r"+text(jj)); //190428
+ );
);
);
- Tsegrmv(rmvL,options);
+ Changetablestyle(rmvL,["nodisp"]); //190428
Addax(0);
Eps=10^(-3);
tmp1=clist_(length(clist));
@@ -2086,56 +4328,27 @@ Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
);
////%Tabledatalight end////
-////%Tabledata start////
-Tabledata(nm,n,m,xsize,ysize,rmvL):=
- Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
-Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
- regional(Tb,name,tmp,xLst,yLst);
- name="tb"+nm;
- xLst=apply(1..n,xsize/n);
- yLst=apply(1..m,ysize/m);
- Tabledata(nm,xLst,yLst,rmvL,options)
-);
-Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]);
-Tabledata(nm,xLst,yLst,rmvL,optionorg):=(
-//help:Tabledata("",xLst,yLst,rmvL,[2,"Rng=y"]);
- regional(name,options,eqL,reL,rng,upleft,ul,flg,tick,n,m,xsize,ysize,
- rlist,clist,Tb,tmp,tmp1,tmp2,tmp3,Eps);
-// name="tb"+nm;
- name="tb";
- tmp=sum(yLst);
- upleft=[0,tmp];
- options=optionorg;
+////%Tabledatageo start//// //190428(renamed)
+Tabledatageo(nm,xLstorg,yLstorg,rmvL,options):=(
+ regional(eqL,ul,n,m,Tb,xLst,yLst,
+ rlist,clist,tmp,tmp1,tmp2);
+ xLst=xLstorg;
+ yLst=yLstorg;
tmp=Divoptions(options);
- eqL=tmp_5; //16.12.16from
- reL=tmp_6;
- rng="Y";
+ eqL=tmp_5;
+ TableMove=[0,0];
forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1)); //181111
- tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="R",
- rng=tmp2;
- options=remove(options,[#]);
- );
- );//16.12.16until
- tick=1;
- flg=0;
- forall(reL,
- if(flg==0,
- tick=#;
- flg=flg+1;
- ,
- upleft=tmp_6_1;
+ tmp=Strsplit(#,"=");;
+ tmp1=Toupper(substring(tmp_1,0,2));
+ tmp2=Toupper(substring(tmp_2,0,1));
+ if(tmp1=="MO",
+ TableMove=parse(tmp_2);
);
);
- TableOptions=options; // 16.11.28
- println("Tabledata "+name+" generated");
- ul=upleft/10;
+ tmp=sum(yLst);
+ ul=[0,tmp]/10;
m=length(xLst);
n=length(yLst);
- xsize=sum(xLst);
- ysize=sum(yLst);
clist=[ul];
rlist=[ul];
forall(1..m,
@@ -2146,154 +4359,47 @@ Tabledata(nm,xLst,yLst,rmvL,optionorg):=(
tmp1=rlist_(#)_2-yLst_#/10;
rlist=append(rlist,[0,tmp1]);
);
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
forall(0..m,
tmp="C"+text(#);
- tmp1="c"+text(#)+"r0";
+ tmp1=TableMove+clist_(#+1);
if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
+ Putpoint(tmp,tmp1);
,
- Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]);
- clist_(#+1)=parse(tmp+".xy");
+ Putpoint(tmp,tmp1,[parse(tmp+".x"),tmp1_2]);
);
inspect(parse(tmp),"ptsize",3);
inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==m,
- tmp=clist_(#+1);
- drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#));
- );
);
- forall(0..n,
+ forall(1..n,
tmp="R"+text(#);
- tmp1="c0r"+text(#);
- if(#==0,
- Putpoint(tmp,Tgrid(tmp1));
- ,
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
- rlist_(#+1)=parse(tmp+".xy"); //no ketjs
- );
- Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]);
+ tmp1=TableMove+rlist_(#+1);
+ Putpoint(tmp,tmp1,[tmp1_1,parse(tmp+".y")]);
inspect(parse(tmp),"ptsize",3);
inspect(parse(tmp),"labeled",false);
- if(mod(#,tick)==0 % #==n,
- tmp=rlist_(#+1);
- drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#));
- );
);
- Tb=[clist,rlist];
- tmp=name+"="+Tb;
- parse(tmp);
- forall(0..m,
- tmp1="c"+text(#)+"r0";
- tmp2="c"+text(#)+"r"+text(n);
- Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options);
- if(#<m,
- tmp1=parse("C"+text(#));
- tmp2=parse("C"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10));
- );
- );
- forall(0..n,
- tmp1="c0r"+text(#);
- tmp2="c"+text(m)+"r"+text(#);
- Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options);
- if(#<n,
- tmp1=parse("R"+text(#));
- tmp2=parse("R"+text(#+1));
- tmp=(tmp1.xy+tmp2.xy)/2;
- drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10));
- );
- );
- Tsegrmv(rmvL,options);
- Addax(0);
- Eps=10^(-3);
- tmp1=clist_(length(clist));
- tmp2=rlist_1;
- tmp3=rlist_(length(rlist)); // 15.06.11
- if(rng=="Y", // 16.12.16
- Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]);
- );
- Tb;
-);
-////%Tabledata end////
-
-////%Tseginfo start////
-Tseginfo(seg):=(
- regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
- if(substring(seg,0,2)=="sg",
- cr=substring(seg,2,length(seg));
- ,
- cr=seg;
+ tmp1=0;
+ forall(1..m,
+ tmp=parse("C"+text(#)+".x")-TableMove_1;
+ tmp=tmp*10;
+ xLst_#=tmp-tmp1;
+ tmp1=tmp;
);
- tp=substring(cr,0,1);
- if(tp=="c",
- tpc="r";
- ,
- tpc="c";
- );
- tmp1=indexof(cr,tpc);
- tmp=substring(cr,tmp1,length(cr));
- tmp2=tmp1+indexof(tmp,tpc);
- n1=substring(cr,1,tmp1-1);
- n2=substring(cr,tmp1,tmp2-1);
- n3=substring(cr,tmp2,length(cr));
- [tp+n1,tpc,parse(n2),parse(n3)];
-);
-////%Tseginfo end////
-
-////%Tsegrmv start////
-Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
-Tsegrmv(rmvL,options):=(
- regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
- forall(rmvL,cr,
- tmp1=Tseginfo(cr);
- hd=tmp1_1;
- tpc=tmp1_2;
- m1=tmp1_3;
- m2=tmp1_4;
- gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1);
- flg=0;
- forall(gcL,
- if(flg==0,
- tmp=Tseginfo(#_1);
- n1=tmp_3;
- n2=tmp_4;
- if(m1>=n1 & m2<=n2,
- gc=#;
- flg=1;
- );
- );
- );
- if(flg==1,
- Changestyle([gc_1],["nodisp"]);
- tail="";
- if(indexof(hd,"r")>0,
- tail=hd; hd="";
- );
- if(n1<m1,
- tmp1=tpc+text(n1);
- tmp2=tpc+text(m1);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- if(m2<n2,
- tmp1=tpc+text(m2);
- tmp2=tpc+text(n2);
- tmp=hd+tail+tmp1+tmp2;
- Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options);
- );
- );
+ tmp1=C0.y*10;
+ forall(1..n,
+ tmp=parse("R"+text(#)+".y")-TableMove_2;
+ tmp=tmp*10;
+ yLst_#=tmp1-tmp;
+ tmp1=tmp;
);
+ Tb=Tabledatalight(nm,xLst,yLst,rmvL,options);
+ Tb;
);
-////%Tsegrmv end////
+////%Tabledatageo end////
////%Tgrid start////
Tgrid(ptstr):=(
//help:Tgrid("c2r5");
- regional(tmp,tmp1,tmp2);
+ regional(tb,tmp,tmp1,tmp2);
tmp=parse(ptstr);
if(islist(tmp),
tmp;
@@ -2303,7 +4409,8 @@ Tgrid(ptstr):=(
tmp1=parse(tmp1);
tmp2=substring(ptstr,tmp,length(ptstr));
tmp2=parse(tmp2);
- [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
+ tb=parse("tb"+text(TABLECOUNT)); //190428
+ [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2]+TableMove; //190428
);
);
////%Tgrid end////
@@ -2341,62 +4448,97 @@ Tlistplot(nm,ptL,options):=(
);
////%Tlistplot end////
-////%ChangeTablestyle start////
-ChangeTablestyle(nameL,style):=(
-////help:ChangeTablestyle(["r0c0c3"],["da"]);
- regional(nmL,grid,head,sb,tmp,tmp1,tmp2,
- tsg,segall,sg,str);
+////%Changetablestyle start////
+Changetablestyle(nameL,style):=(
+//help:Changetablestyle(["r0c0c3"],["da"]);
+ regional(nmL,nametb, name,grid,head,sb,tmp,tmp1,tmp2,tmp3,
+ tsg,pts,p1,p2,names,name,name1,nn,mm,gname,flg);
+ nametb="tb"+text(TABLECOUNT); //190428
if(islist(nameL),nmL=nameL,nmL=[nameL]);
forall(nmL,grid,
if(substring(grid,0,1)=="r",sb="c",sb="r");
+ tmp=indexof(grid,sb);
+ head=substring(grid,0,tmp-1);
+ if(sb=="r", //190507from
+ pts=head+sb+"x";
+ ,
+ pts=sb+"x"+head;
+ );
+ names=nametb+head+sb+"x"+sb+"y";//190507to
+ tmp3=apply(GCLIST,#_1); // 161206from
+ tmp3=select(tmp3,indexof(#,nametb)>0);
+ tmp3=apply(tmp3,substring(#,length(nametb),length(#))); //190507from
+ tmp3=select(tmp3,substring(#,0,length(head))==head);
tmp=Indexall(grid,sb);
- head=substring(grid,0,tmp_1-1);
tmp1=substring(grid,tmp_1,tmp_2-1);
tmp2=substring(grid,tmp_2,length(grid));
tsg=apply([tmp1,tmp2],parse(#));
- tmp1=apply(GCLIST,#_1); // 16.12.06from
- segall=[];
- forall(tmp1,
- tmp2=substring(#,2,length(#));
- tmp=indexof(tmp2,sb);
- tmp2=substring(tmp2,0,tmp-1);
- if(head==tmp2,segall=append(segall,#));
- );// 16.12.06until
- sg=[];
- forall(segall,
- tmp=Indexall(#,sb);
- tmp1=substring(#,tmp_1,tmp_2-1);
- tmp2=substring(#,tmp_2,length(#));
- tmp=apply([tmp1,tmp2],parse(#));
- if((tsg_1>=tmp_1) & (tsg_2<=tmp_2),
- sg=tmp;
- Changestyle(#,["nodisp"]);
- );
- );
- if(length(sg)==0,
- println("No segment includes "+grid);
- ,
- if(sb=="c",str=sb+"no"+head,str=head+sb+"no");
- if(sg_1<tsg_1,
- tmp1=replace(str,"no",text(sg_1));
- tmp2=replace(str,"no",text(tsg_1));
- tmp=head+sb+text(sg_1)+"c"+text(tsg_1);
- Tlistplot(tmp,[tmp1,tmp2],TableOptions);
- );
- tmp1=replace(str,"no",text(tsg_1));
- tmp2=replace(str,"no",text(tsg_2));
- tmp=head+"c"+text(tsg_1)+"c"+text(tsg_2);
- Tlistplot(tmp,[tmp1,tmp2],style);
- if(tsg_2<sg_2,
- tmp1=replace(str,"no",text(tsg_2));
- tmp2=replace(str,"no",text(sg_2));
- tmp=head+"c"+text(tsg_2)+"c"+text(sg_2);
- Tlistplot(tmp,[tmp1,tmp2],TableOptions);
+ flg=0;
+ forall(tmp3,gname,
+ if(flg==0,
+ tmp=Indexall(gname,sb);
+ tmp1=parse(substring(gname,tmp_1,tmp_2-1));
+ tmp2=parse(substring(gname,tmp_2,length(gname)));
+ if((tmp1<=tsg_1)&(tsg_2<=tmp2),
+ flg=1;
+ if(tmp1==tsg_1,
+ if(tsg_2==tmp2,
+ name=Replaceall(names,["x",tsg_1,"y",tsg_2]);
+ Changestyle(name,style);
+ ,
+ name=Replaceall(names,["x",tsg_2,"y",tmp2]);
+ name1=Replaceall(names,["x",tmp1,"y",tmp2]); //190508from
+ p1=Replaceall(pts,["x",tsg_2]);
+ p2=Replaceall(pts,["x",tmp2]);
+ Tlistplot("-"+name,[p1,p2],["notex"]);
+ GCLIST=GCLIST_(1..(length(GCLIST)-1));
+ nn=select(1..(length(GCLIST)),indexof(GCLIST_#_1,name1)>0);
+ nn=nn_1;
+ tmp=GCLIST_nn;
+ tmp=tmp_[2,3];
+ GCLIST_nn=prepend(name,tmp);
+ nn=select(1..(length(GLIST)),indexof(GLIST_#,name1)>0);
+ nn=nn_1;
+ GLIST_nn=replace(GLIST_nn,name1,name);
+ mm=select(1..(length(COM2ndlist)),indexof(COM2ndlist_#,name1)>0);
+ mm=mm_1;
+ COM2ndlist_mm=replace(COM2ndlist_mm,name1,name); //190508to
+ );
+ ,
+ name=Replaceall(names,["x",tmp1,"y",tsg_1]);
+ name1=Replaceall(names,["x",tmp1,"y",tmp2]); //190508from
+ p1=Replaceall(pts,["x",tmp1]);
+ p2=Replaceall(pts,["x",tsg_1]);
+ Tlistplot("-"+name,[p1,p2],["notex"]);
+ nn=select(1..(length(GCLIST)),indexof(GCLIST_#_1,name1)>0);
+ GCLIST=GCLIST_(1..(length(GCLIST)-1));
+ nn=nn_1;
+ tmp=GCLIST_nn;
+ tmp=tmp_[2,3];
+ GCLIST_nn=prepend(name,tmp);
+ nn=select(1..(length(GLIST)),indexof(GLIST_#,name1)>0);
+ nn=nn_1;
+ GLIST_nn=replace(GLIST_nn,name1,name);
+ mm=select(1..(length(COM2ndlist)),indexof(COM2ndlist_#,name1)>0);
+ mm=mm_1;
+ COM2ndlist_mm=replace(COM2ndlist_mm,name1,name); //190508to
+ if(tsg_2<tmp2,
+ p1=Replaceall(pts,["x",tsg_2]);
+ p2=Replaceall(pts,["x",tmp2]);
+ name=Replaceall(names,["x",tsg_2,"y",tmp2]);
+ Tlistplot("-"+name,[p1,p2]);
+ );
+ );
+ );
);
- );
- );
+ );
+ name=Replaceall(names,["x",tsg_1,"y",tsg_2]);
+ p1=Replaceall(pts,["x",tsg_1]);
+ p2=Replaceall(pts,["x",tsg_2]);
+ Tlistplot("-"+name,[p1,p2],style);
+ ); //170507to
);
-////%ChangeTablestyle end////
+////%Changetablestyle end////
////%Findcell start////
Findcell(pos1,pos2):=Findcell("",pos1,pos2);
@@ -2519,8 +4661,8 @@ Putrowexpr(Tbdata,nrow,dir,exL,options):=(
); //190228to
////%Putrowexpr end////
-////%PutcoL start////
-PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL,[]); //190228from
+////%Putcol start////
+Putcol(mcol,dir,lttrL):=Putcol("",mcol,dir,lttrL,[]); //190228from
Putcellexpr(Arg1,Arg2,Arg3,Arg4):=(
if(islist(Arg4),
Putcellexpr("",Arg1,Arg2,Arg3,Arg4);
@@ -2528,7 +4670,7 @@ Putcellexpr(Arg1,Arg2,Arg3,Arg4):=(
Putcellexpr(Arg1,Arg2,Arg3,Arg4,[]);
);
);
-PutcoL(Tbdata,mcol,dir,lttrL,options):=(
+Putcol(Tbdata,mcol,dir,lttrL,options):=(
//help:PutcoL(1,"c",["x","y","z"]);
regional(tmp,tmp1,nrow);
nrow=length(lttrL);
@@ -2536,10 +4678,10 @@ PutcoL(Tbdata,mcol,dir,lttrL,options):=(
Putcell(Tbdata,mcol,#,dir,lttrL_#,options);
);
); //190228to
-////%PutcoL end////
+////%Putcol end////
-////%PutcoLexpr start////
-PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL,[]); //190228from
+////%Putcolexpr start////
+Putcolexpr(mcol,dir,exL):=Putcolexpr("",mcol,dir,exL,[]); //190228from
Putcellexpr(Arg1,Arg2,Arg3,Arg4):=(
if(islist(Arg4),
Putcellexpr("",Arg1,Arg2,Arg3,Arg4);
@@ -2547,13 +4689,13 @@ Putcellexpr(Arg1,Arg2,Arg3,Arg4):=(
Putcellexpr(Arg1,Arg2,Arg3,Arg4,[]);
);
);
-PutcoLexpr(Tbdata,mcol,dir,exL,options):=(
-//help:PutcoLexpr(2,"r",["x","y","z"]);
+Putcolexpr(Tbdata,mcol,dir,exL,options):=(
+//help:Putcolexpr(2,"r",["x","y","z"]);
regional(lttrL);
lttrL=apply(exL,"$"+#+"$");
- PutcoL(Tbdata,mcol,dir,lttrL,options);
+ Putcol(Tbdata,mcol,dir,lttrL,options);
); //190228to
-////%PutcoLexpr end////
+////%Putcolexpr end////
////%Setrange start////
Setrange():=(
@@ -2565,242 +4707,6 @@ Setrange():=(
);
////%Setrange end////
-////%RSform start////
-RSform(str):=RSform(str,3);
-RSform(str,listfrom):=(
-//help:RSform(string,listfrom);
- regional(posL,mxlv,rep1,rep2,rep3,prev,out,
- tmp,tmp1,tmp2);
- rep1="c"+PaO(); rep2="c"+PaO(); rep3="list"+PaO();
- if(listfrom<3,rep2="list"+PaO());
- if(listfrom==1,rep1="list"+PaO());
- posL=Bracket(str,"[]");
- tmp=apply(posL,#_2);
- mxlv=max(tmp);
- out="";
- prev=0;
- forall(posL,
- out=out+substring(str,prev,#_1-1);
- prev=#_1;
- if(#_2>0,
- tmp1=select(posL,tmp,(tmp_2<0)&(tmp_1>#_1));
- tmp1=tmp1_1_1;
- tmp=substring(str,#_1,tmp1);
- if(#_2==mxlv,out=out+rep1);
- if(#_2==mxlv-1,out=out+rep2);
- if(#_2<=mxlv-2,out=out+rep3);
- ,
- out=out+")";
- );
- );
- out=out+substring(str,prev,length(str));
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out=replace(out,"c"+PPa("1"),"[1]");//17.10.06[2lines]
- out=replace(out,"c"+PPa("2"),"[2]");
- out;
-);
-////%RSform end////
-
-////%RSslash start////
-RSslash(str):=( //17.09.24
- regional(tmp);
- tmp=replace(str,"\","\\");
-// tmp=replace(tmp,"\\\\","\\");
- tmp;
-);
-////%RSslash end////
-
-////%Rform start////
-Rform(list):=(
- regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
- out=list;
- out=replace(out,"[[[","list"+PaO()+"[[");
- out=replace(out,"[","c"+PaO());
- out=replace(out,"]",")");
- out=replace(out,".xy","");
- out=replace(out,".x","[1]");
- out=replace(out,".y","[2]");
- out;
-);
-////%Rform end////
-
-////%Defvar start////
-Defvar(varstr):=(
- regional(name,value,tmp,tmp1);
- if(isstring(varstr),
- parse(varstr);
- tmp=indexof(varstr,"=");
- name=substring(varstr,0,tmp-1);
- value=substring(varstr,tmp,length(varstr));
- value=parse(value);
- tmp1=select(1..length(VLIST),VLIST_#_1==name);
- if(length(tmp1)>0,
- tmp=tmp1_1;
- VLIST_tmp=[name,value];
- ,
- VLIST=prepend([name,value],VLIST);
- );
- ,
- forall(1..(length(varstr)/2), // 16.11.16from
- name=varstr_(2*#-1);
- value=varstr_(2*#);
- Defvar(name,value);
- ); // 16.11.16until
- );
-);
-Defvar(name,value):=(
-//help:Defvar("a",0.3);
-//help:Defvar(["a",0.3,"b",2]);
- regional(tmp,tmp1);
- if(islist(value),
- tmp1="[";
- forall(value,
- if(isstring(#), // 16.11.14
- tmp1=tmp1+Dq+#+Dq+","; // 16.11.14
- ,
- tmp1=tmp1+format(#,5)+",";
- );
- );
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
- ,
- tmp1=format(value,5);
- );
- tmp=name+"="+tmp1; // 15.02.06
- parse(tmp);
- VLIST=select(VLIST,#_1!=name); // 15.02.08
- VLIST=prepend([name,value],VLIST);
-);
-////%Defvar end////
-
-////%IftoR start////
-IftoR(strorg):=( //180802
- regional(str,ifL,ppL,cpL,kk,sL,out,
- tmp,tmp1,tmp2,tmp3,tmp4);
- str=replace(strorg,LFmark,"");
- ifL=Indexall(str,"if"+PaO());
- ppL=Bracket(str,"()");
- cpL=Indexall(str,",");
- tmp1=Bracket(str,"[]");
- forall(1..(length(tmp1)/2),kk,
- cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
- );
- forall(1..length(ifL),kk,
- tmp=select(ppL,#_1>ifL_kk);
- tmp1=tmp_1;
- tmp2=select(tmp,#_2==-tmp1_2);
- tmp2=tmp2_1;
- tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
- ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
- );
- forall(1..length(cpL),kk,
- tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
- tmp1=tmp_(length(tmp));
- cpL_kk=[cpL_kk,tmp1];
- );
- sL=apply(1..length(str),substring(str,#-1,#));
- forall(1..length(ifL),kk,
- tmp1=ifL_kk_1;
- tmp2=ifL_kk_2;
- tmp=select(cpL,#_2==kk);
- tmp3=apply(tmp,#_1);
- sL_tmp1="(";
- sL_tmp2="}";
- sL_(tmp3_1)="){";
- if(length(tmp3)>1,
- sL_(tmp3_2)="}else{";
- );
- );
- out=sum(sL);
- out;
-);
-////%IftoR end////
-
-////%FortoR start////
-FortoR(strorg):=(
- regional(str,pre,post,sub,ppL,forstr,out,tmp,tmp1,tmp2);
- str=strorg;
- forstr=indexof(str,"forall(");
- if(forstr==0,
- out=str;
- ,
- pre=substring(str,0,forstr-1)+"for"+PaO();
- ppL=Bracket(str,"()");
- tmp1=forstr+6;
- tmp=select(ppL,#_1==tmp1);
- tmp=select(ppL,#_2==-tmp_1_2);
- tmp2=tmp_1_1;
- sub=substring(str,tmp1,tmp2-1);
- post="}"+substring(str,tmp2,length(str));
- tmp=indexof(sub,",");
- tmp1=substring(sub,0,tmp-1);
- tmp2=substring(sub,tmp,length(sub));
- sub=tmp1+"){"+tmp2;
- tmp1=indexof(sub,"{");
- tmp2=indexof(sub,",");
- tmp=substring(sub,tmp1,tmp2-1);
- pre=pre+tmp+" in "+substring(sub,0,tmp1-1)+"{";
- sub=substring(sub,tmp2,length(sub));
- tmp=FortoR(sub);
- out=pre+tmp+"}";
- );
- out=replace(out,"..",":");
- out;
-);
-////%FortoR end////
-
-////%Deffun start////
-Deffun(name,bodylist):=(
-//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]);
- regional(funstr,str,Pos,nbody,bdy,ppL,bpL,excma,tmp,tmp1,tmp2);
- funstr=name+":=(";
- forall(bodylist,
- funstr=funstr+#+";";
- );
- funstr=funstr+");";
- parse(funstr);
- tmp=indexof(name,"(");
- str=substring(name,0,tmp-1)+"<-function"+PaO();
- str=str+substring(name,tmp,length(name))+"{";
- forall(1..(length(bodylist)-1),nbody,
- bdy=bodylist_nbody;
- Pos=indexof(bdy,"regional")+indexof(bdy,"local");
- if(Pos==0,
- bdy=replace(bdy,LFmark,"");
- bdy=replace(bdy," ","");
- ppL=Bracket(bdy,"()");
- bpL=Bracket(bdy,"[]");
- tmp1=select(bpL,#_2==1);
- tmp2=select(bpL,#_2==-1);
- excma=[];
- forall(1..(length(tmp1)),
- excma=append(excma,[tmp1_#_1,tmp2_#_1]);
- );
- tmp1=Indexall(bdy,",");
- forall(tmp1,cma,
- tmp=select(excma,(#_1<cma)&(cma<#_2));
- if(length(tmp)>0,
- bdy=substring(bdy,0,cma-1)+"'"+substring(bdy,cma,length(bdy));
- );
- );
- tmp=indexof(bdy,"forall");
- if(tmp>0,
- bdy=FortoR(bdy);
- );
- tmp=indexof(bdy,"if(");
- if(tmp>0,
- bdy=IftoR(bdy);
- );
- bdy=RSform(replace(bdy,"'",","));
- str=str+bdy+";";
- );
- );
- str=str+"return"+PaO()+bodylist_(length(bodylist))+")}";
- FUNLIST=append(FUNLIST,str);
-);
-////%Deffun end////
-
////%Inwindow start////
Inwindow(point):=Inwindow(point,[XMIN,XMAX],[YMIN,YMAX]);
Inwindow(point,xrng,yrng):=(
@@ -2935,7 +4841,7 @@ Windispg(gcLorg):=( //190125
parse(tmp);
,
if(tmp1==1,
- tmp4=Dashlinedata(Nk,2.5,2.5,0);
+ tmp=tokenize(Nj_2_2,",");tmp4=Dashlinedata(Nk,tmp_1,tmp_2,0); //190512
forall(tmp4,
tmp="connect("+Textformat(#,5)+tmp3+");";
parse(tmp);
@@ -2948,9 +4854,12 @@ Windispg(gcLorg):=( //190125
);
);
);
- ,
- tmp="draw("+text(Nk_1)+opcindy+");"; // 14.12.31
- parse(tmp);
+ ,
+ if(indexof(opcindy,"size")==0, //190425from
+ opcindy=opciny+",size->"+text(TenSize/TenSizeInit);
+ ); //190425to
+ tmp="draw("+text(Nk_1)+opcindy+");";
+ parse(tmp);
); //190126to
);
);
@@ -2961,242 +4870,6 @@ Windispg(gcLorg):=( //190125
);
////%Windispg end////
-////%WritetoRS start////
-WritetoSci():=WritetoRS(); //17.12.19
-WritetoSci(Arg):=WritetoRS(Arg);//180619
-WritetoRS():=WritetoRS(FnameR);// 17.09.17from
-WritetoRS(Arg):=(
- regional(string,filename,shch,tmp1,tmp2);
- if(isstring(Arg),
- string=Arg;
- if(indexof(string,".r")>0,
- filename=string;
- shch="";
- ,
- filename=FnameR;
- shch=string;
- );
- WritetoRS(filename,shch);
- ,
- if(Arg<=1,WritetoRS(FnameR,"all"));
- if(Arg==2,WritetoRS(FnameR,"sh"));
- );
-);
-WritetoRS(filename,shchoice):=(
- regional(Plist,Pos,GrL,str,tmp,tmp1,tmp2,cmd,ns,spos,epos);
- //help:WritetoRS(2);
- println("Write to R "+filename);
- Plist=[];
- Pnamelist=[];
- forall(remove(allpoints(),[SW,NE]),
- if(indexof(#.name,"[")==0, //181106
- tmp=Lcrd(#);
- tmp1=format(re(tmp_1),6);// 15.02.05
- tmp2=format(re(tmp_2),6);
- tmp=#.name+"="+"c("+tmp1+","+tmp2+");";
- tmp=tmp+"Assignadd('"+#.name+"',"+#.name+")";
- Plist=append(Plist,tmp);
- ,
- println("Remove the abnormal poiint "+#.name); //181106
- );
- );
- SCEOUTPUT = openfile(filename);
- tmp=Datetime();
- println(SCEOUTPUT,"# date time="+tmp_1+" "+tmp_2);
- if(isstring(CindyName), // 16.12.25from
- if(length(CindyPathName)>0,
- println(SCEOUTPUT,
- "# path file="+CindyPathName+" "+CindyFileName+".cdy");
- ,
- println(SCEOUTPUT,"");
- );
- ,
- println(SCEOUTPUT,"");
- );
- if(iswindows(),
- println(SCEOUTPUT,"options"+PaO()+"encoding='UTF-8')"); //190111
- );
- tmp1=replace(Dirwork,"\","/");
- if((iswindows())&(indexof(tmp1,"Users")>0),
- tmp=Indexall(tmp1,"/");
- tmp2=substring(tmp1,tmp_3-1,length(tmp1));
- tmp1=substring(tmp1,0,tmp_3-1);
- println(SCEOUTPUT,"Drv=shell"+PaO()+"'echo %HOMEDRIVE%',intern=TRUE)"); //190111
- println(SCEOUTPUT,"Drv=Drv[length"+PaO()+"Drv)]");
- println(SCEOUTPUT,"Hpath=shell"+PaO()+"'echo %HOMEPATH%',intern=TRUE)");
- println(SCEOUTPUT,"Hpath=Hpath[length"+PaO()+"Hpath)]");
- println(SCEOUTPUT,"Rest="+Dqq(tmp2));
- println(SCEOUTPUT,"Path=paste"+PaO()+"Drv,Hpath,Rest,sep='')");
- println(SCEOUTPUT,"Path=gsub"+PaO()+"'\\','/',Path,fixed=TRUE)"); //180610
- println(SCEOUTPUT,"setwd"+PaO()+"Path)");
- ,
- println(SCEOUTPUT,"setwd"+PaO()+"'"+tmp1+"')");
- );//180409to
- tmp=replace(Libname,"\","/"); //17.09.24from
- println(SCEOUTPUT,"source"+PaO()+"'"+tmp+".r')"); //181213
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- if(GPACK=="tpic",GPACK="pict2e");
- );
- if(GPACK=="pict2e", // 180817
- tmp=replace(tmp+"_rep2e","\","/");
- println(SCEOUTPUT,"source('"+tmp+".r')");
- );
- if(GPACK=="tikz", //181213from
- tmp=replace(tmp+"_reptikz","\","/");
- println(SCEOUTPUT,"source"+PaO()+"'"+tmp+".r')");
- ); //181213to
- println(SCEOUTPUT,"Ketinit"+PPa(""));
- println(SCEOUTPUT,"cat"+PaO()+"ThisVersion,'\n')");
- println(SCEOUTPUT,"Fnametex='"+Fnametex+"'");
- println(SCEOUTPUT,"FnameR='"+FnameR+"'");
- println(SCEOUTPUT,"Fnameout='"+Fnameout+"'");
- println(SCEOUTPUT,"arccos=acos; arcsin=asin; arctan=atan");
- println(SCEOUTPUT,"Acos<- function"+PPa("x")+"{acos"+PaO()+"max"+PaO()+"-1,min"+PaO()+"1,x)))}");
- println(SCEOUTPUT,"Asin<- function"+PPa("x")+"{asin"+PaO()+"max"+PaO()+"-1,min"+PaO()+"1,x)))}");
- println(SCEOUTPUT,"Atan=atan");
- println(SCEOUTPUT,"Sqr<- function"+PPa("x")+"{if"+PaO()+"x>=0){sqrt"+PaO()+"x)}else{0}}");
- println(SCEOUTPUT,"Factorial=factorial");
- println(SCEOUTPUT,"Norm<- function"+PPa("x")+"{norm"+PaO()+"matrix"+PaO()+"x,nrow=1),"+Dqq("2")+")}");
- println(SCEOUTPUT,"");
- forall(COM0thlist,
- if(indexof(#,"Texcom")==0, //17.09.22
- println(SCEOUTPUT,RSform(#));
- ,
- println(SCEOUTPUT,#);
- );
- );
- println(SCEOUTPUT,
- "Setwindow(c"+PaO()+XMIN+","+XMAX+"), c"+PaO()+YMIN+","+YMAX+"))");
- forall(Plist,
- println(SCEOUTPUT,#);
- );
- VLIST=select(VLIST,substring(#_1,0,1)!="["); //181107
- forall(VLIST,
- tmp=#_1;
- tmp1=#_2;
- if(!isstring(tmp1),
- if(islist(tmp1),
- tmp2="[";
- forall(tmp1,
- tmp2=tmp2+Textformat(#,6)+",";
- );
- tmp1=substring(tmp2,0,length(tmp2)-1)+"]";
- ,
- tmp1=format(tmp1,6);
- );
- );
- tmp1=RSform(tmp1);
- print(SCEOUTPUT,tmp+"="+tmp1+";"); //17.09.22
-// tmp=substring(tmp,0,length(tmp)-1);
- println(SCEOUTPUT,"Assignadd"+PaO()+"'"+tmp+"',"+tmp+")");
- );
- forall(FUNLIST,
- println(SCEOUTPUT,#);
- );
- forall(GLIST, //no ketjs on
- println(SCEOUTPUT,RSform(#));
- ); //no ketjs off
- tmp=text(Pnamelist);
- tmp=replace(tmp,"[","list"+PaO());
- Pnamelist=replace(tmp,"]",")");
- println(SCEOUTPUT,"PtL="+Pnamelist);
- tmp=select(GCLIST,#_2==-1);
- GrL=apply(tmp,#_1);
- tmp=text(GrL);
- tmp=replace(tmp,"[","list"+PaO());
- tmp=replace(tmp,"]",")");
- println(SCEOUTPUT,"GrL="+tmp);
- tmp1="";
- if(length(tmp1)>0,
- tmp1="WriteOutData"+PaO()+"Fnameout"+tmp1+");";
- println(SCEOUTPUT,tmp1);
- );
- forall(COM1stlist,
- if(indexof(#,"Texcom")==0, //17.09.22
- println(SCEOUTPUT,RSform(#));
- ,
- println(SCEOUTPUT,#);
- );
- );
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"# Windisp"+PPa("GrL"));
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"if"+PaO()+"1==1){");
- println(SCEOUTPUT,"");
- tmp1=replace(Dirwork,"\","/"); //180408to
- if((iswindows())&(indexof(tmp1,"Users")>0),
- println(SCEOUTPUT,"Path=paste"+PaO()+"Path,"+Dqq("/"+Fnametex)+",sep='')");
- tmp="Openfile(Path,'"+ULEN+"'";
- ,
- tmp="Openfile('"+tmp1+"/"+Fnametex+"','"+ULEN+"'";
- );
- tmp=tmp+",'Cdy="+Cindyname()+".cdy"; //180404
- tmp=replace(tmp,"\","\\");
- println(SCEOUTPUT,tmp+"')");
- forall(COM2ndlistb, //180613from
- if(indexof(#,"Texcom")==0,
- println(SCEOUTPUT,RSform(#));
- ,
- println(SCEOUTPUT,#);
- );
- );//180613to
- forall(COM2ndlist,cmd,
- tmp=substring(cmd,0,4);
- if(contains(["Lett","Expr"],tmp), //180721from
- tmp1=Indexall(cmd,Dq);
- tmp2=length(tmp1)/4;
- str=""; ns=0;
- forall(tmp2,
- spos=tmp1_(4*#-1); epos=tmp1_(4*#);
- str=str+RSform(substring(cmd,ns,spos-1));
- str=str+substring(cmd,spos-1,epos);
- ns=epos;
- );
- str=str+substring(cmd,ns,length(cmd));
- println(SCEOUTPUT,str);
- ,
- if(indexof(cmd,"Texcom")==0,
- println(SCEOUTPUT,RSform(cmd));
- ,
- println(SCEOUTPUT,cmd);
- );
- ); //180721to
- );
- if(length(GrL)>0,
- println(SCEOUTPUT," Drwline"+PPa("GrL"));
- );
- // println(SCEOUTPUT,"Closefile"+PaO()+"'"+ADDAXES+"')"); //181224(2line)
- println(SCEOUTPUT,"Closefile"+PaO()+""+Dqq("0")+")");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"}");
- if(shchoice=="sh",
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"quit"+PPa(""));
- ,
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"#quit"+PPa(""));
- );
- closefile(SCEOUTPUT);
- if(iswindows(), //180513from
- SCEOUTPUT = openfile("execsrc.r");//180514
- tmp1=replace(Dirwork,"\","/");
- if(indexof(tmp1,"Users")>0,
- tmp=Indexall(tmp1,"/");
- tmp2=substring(tmp1,tmp_3-1,length(tmp1));
- tmp1=substring(tmp1,0,tmp_3-1);
- println(SCEOUTPUT,"Drv=shell"+PaO()+"'echo %HOMEDRIVE%',intern=TRUE)");
- println(SCEOUTPUT,"Drv=Drv[length"+PaO()+"Drv)]");
- println(SCEOUTPUT,"Hpath=shell"+PaO()+"'echo %HOMEPATH%',intern=TRUE)");
- println(SCEOUTPUT,"Hpath=Hpath[length"+PaO()+"Hpath)]");
- println(SCEOUTPUT,"Rest="+Dqq(tmp2));
- println(SCEOUTPUT,"Path=paste"+PaO()+"Drv,Hpath,Rest,sep='')");
- println(SCEOUTPUT,"setwd"+PaO()+"Path)");
- println(SCEOUTPUT,"source"+PaO()+"'"+filename+"',encoding='UTF-8')");
- );
- closefile(SCEOUTPUT);
- ); //180513to
-);
-////%WritetoRS end////
////%Extractdata start////
Extractdata(name):=Extractdata(1,name,[]);
@@ -3245,7 +4918,7 @@ Extractdata(number,name,options):=(
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("{");Com2nd("Setcolor("+color+")");//180722
); //no ketjs off
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name);
if((Noflg==0)&(color!=KCOLOR), //180904 //no ketjs on
Texcom("}");//180722
); //no ketjs off
@@ -3258,8 +4931,8 @@ Extractdata(number,name,options):=(
);
////%Extractdata end////
-////%RemoveOut start////
-RemoveOut(pltlist):=(
+////%Removeout start////
+Removeout(pltlist):=(
regional(name,tmp,tmp1,tmp2);
forall(pltlist,name,
tmp1=[];
@@ -3270,604 +4943,7 @@ RemoveOut(pltlist):=(
GOUTLIST=tmp1;
);
);
-////%RemoveOut end////
-
-////%ReadOutData start////
-ReadOutData():=ReadOutData(Fnameout);
-ReadOutData(filename):=ReadOutData("",filename); //16.03.07
-ReadOutData(Arg1,Arg2):=( //181030from
- if(islist(Arg2),
- ReadOutData("",Arg1,Arg2);
- ,
- ReadOutData(Arg1,Arg2,[]);
- );
-); //181030to
-ReadOutData(pathorg,filenameorg,optionsorg):=(
-//help:ReadOutData();
-//help:ReadOutData("file.txt");
-//help:ReadOutData("/datafolder","file.txt");
-//help:ReadOutdata(options=["Disp=n(/y)]");
- regional(options,path,filename,varname,varL,ptL,pts,tmp,tmp1,tmp2,tmp3,tmp4,
- nmbr,cmdall,cmd,cmdorg,outdt,goutdt,eqL,dispflg);
- options=optionsorg;
- dispflg=1;
- tmp=Divoptions(options); //181024from
- eqL=tmp_5;
- forall(eqL,
- tmp=Strsplit(#,"=");
- tmp1=substring(tmp_1,0,1); tmp1=Toupper(tmp1);
- tmp2=substring(tmp_2,0,1); tmp2=Toupper(tmp2);
- if(tmp1=="D",
- if(tmp2=="N",dispflg=0);
- options=remove(options,[#]); //181030
- );
- ); //181024to
- path=pathorg; //16.03.07 from
- if(length(path)>0,
- setdirectory(path);
- if(indexof(path,"\")>0,tmp1="\",tmp1="/");
- tmp=substring(path,length(path)-1,length(path));
- if(tmp!=tmp1,path=path+tmp1);
- ); //16.03.07to
- filename=filenameorg; // 16.04.17
- if(indexof(filename,".")==0,filename=filename+".txt");
- tmp=load(filename);
- cmdall=tokenize(tmp,"//");
- varname=cmdall_1;
- cmdall=cmdall_(2..length(cmdall));
- outdt=[];
- varL=[varname];
- ptL=[];
- forall(cmdall,cmdorg,
- cmd=replace(cmdorg,LFmark,"");
- if(length(cmd)>0,
- if(cmd=="start" % cmd=="end" % substring(cmd,0,1)=="[",
- if(cmd=="start",
- pts=[];
- );
- if(cmd=="end",
- ptL=append(ptL,pts);
- );
- if(substring(cmd,0,1)=="[",
- tmp1=parse(cmd);
- if(length(tmp1_1)==2,
- tmp1=apply(tmp1,Pcrd(#));
- );
- pts=concat(pts,tmp1);
- );
- ,
- if(length(ptL)>0,
- if(length(ptL)==1,
- ptL=ptL_1;
- tmp=apply(ptL,Textformat(#,6));
- ,
- tmp="[";
- forall(ptL,tmp1,
- tmp=tmp+apply(tmp1,Textformat(#,6))+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"]";
- );
- ,
- tmp="[]";
- );
- parse(varname+"="+tmp);
- outdt=append(outdt,ptL);
- ptL=[];
- varname=cmd;
- varL=append(varL,varname);
- );
- );
- );
- if(length(ptL)>0,
- if(length(ptL)==1,
- ptL=ptL_1;
- tmp=apply(ptL,Textformat(#,6));
- ,
- tmp="[";
- forall(ptL,tmp1,
- tmp=tmp+apply(tmp1,Textformat(#,6))+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"]";
- );
- ,
- tmp="[]";
- );
- parse(varname+"="+tmp);
- outdt=append(outdt,ptL);
- if(path=="",tmp=filename,tmp=path+filename); //16.03.07
- GOUTLIST=append(GOUTLIST,[tmp,varL]);
- if(length(path)>0, // 16.03.09
- setdirectory(Dirwork); // 16.03.07
- );
- print("readoutdata from "+tmp+" : ");
- if(dispflg==1, //181024from
- println(varL);
- ,
- println("");
- ); //181024to
- varL;
-);
-////%ReadOutData end////
-
-////%WriteOutData start////
-WriteOutData(filename,ptlist):=(
-//help:WriteOutData("file.txt",["g1",gr1,"sg",sgAB]);
-//help:Writeoutdata("file.txt",["g1",gr1,"sg",sgAB]);
- regional(nn,Gname,Gdata,Str,Gstr,Gj,Pt,Flg,tmp,tmp1,loopend);
- Flg=0;
- if(isstring(ptlist_(length(ptlist))),
- Flg=1;
- );
- SCEOUTPUT = openfile(filename);
- if(Flg==0,
- loopend=length(ptlist)/2;
- ,
- loopend=length(ptlist);
- );
- Gstr="[";
- forall(1..loopend,nn,
- if(Flg==0,
- Gname=ptlist_(2*nn-1);
- ,
- Gname=ptlist_nn;
- );
- Gstr=Gstr+Gname+",";
- println(SCEOUTPUT,Gname+"//");
- if(Flg==0,
- Gdata=ptlist_(2*nn);
- ,
- Gdata=parse(Gname);
- );
- Gdata=Flattenlist(Gdata);
- if(Measuredepth(Gdata)==1,Gdata=[Gdata]);
- forall(Gdata,Gj,
- println(SCEOUTPUT,"start//");
- Str="";
- forall(Gj,Pt,
- if(length(Str)>0,
- Str=Str+","
- );
- Str=Str+"["+format(Pt_1,5)+",";
- Str=Str+format(Pt_2,5);
- if(length(Pt)<3,
- Str=Str+"]";
- ,
- Str=Str+","+format(Pt_3,5)+"]";
- );
- if(length(Str)>80,
- println(SCEOUTPUT,"["+Str+"]//");
- Str="";
- );
- );
- if(length(Str)>0,
- println(SCEOUTPUT,"["+Str+"]//");
- );
- if((nn==loopend) & (Gj==Gdata_(length(Gdata))),
- println(SCEOUTPUT,"end////");
- ,
- println(SCEOUTPUT,"end//");
- );
- );
- );
- closefile(SCEOUTPUT);
- Gstr=substring(Gstr,0,length(Gstr)-1)+"]";
- println("writeoutdata "+filename+":"+Gstr);
-);
-////%WriteOutData end////
-
-////%Makeshell start////
-Makeshell():=(
- if(length(Texmain)>0,
- Texparent=Texmain;
- );
- if(length(Texparent)>0,
- Makeshell(Texparent);
- if(length(FigPdfList)>0,
- SCEOUTPUT=openfile(Texparent+".tex");
- forall(FigPdfList,println(SCEOUTPUT,#));
- closefile(SCEOUTPUT);
- );
- ,
- Makeshell(Fhead+"main");
- );
-);
-Makeshell(texmainfile):=Makeshell(texmainfile,"rtv");
-Makeshell(texmainfile,flow):=(
- regional(parent,tmp,tmp1,tmp2,tmp3,flg,tex,path,shnm);
- parent=Dirwork+Shellparent; // 16.05.29
- kc():=(
- println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04,06.07
- );
- tmp1="";
-// tmp2=parent;
- flg=0;
- forall(reverse(1..length(parent)),
- if(flg==0,
- tmp=substring(parent,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- tmp1=substring(parent,0,#-1);
- tmp2=substring(parent,#,length(parent));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(tmp1);
- );
- SCEOUTPUT = openfile(tmp2);
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); // 15.07.16
- tmp1=" "+Dq+Fhead+Dq+" "+Dq+texmainfile+Dq; // 15.12.11
- flg=0;
- forall(reverse(1..length(PathT)),
- if(flg==0,
- if(substring(PathT,#-1,#)=="/",
- tex=substring(PathT,#,length(PathT));
- path=substring(PathT,0,#-1);
- flg=1;
- );
- );
- );
- if(flg==0, // 17.10.13[Norbert]
- tex=PathT;
- path="";
- );
- if(indexof(flow,"r")>0,
- tmp=Dq+PathR+Dq+" --vanilla --slave < "+Fhead+".r";
- // 17.09.14
- println(SCEOUTPUT,tmp);
- );
- if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp=replace(Dq+PathT+Dq,tex,"dvipdfmx")+" "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- tmp="rm "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="xelatex",
- tmp="export PATH="+path+":${PATH}";
- println(SCEOUTPUT,tmp);
- tmp="xelatex"+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp="rm "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="pdflatex" % tex=="pdftex",//16.11.22from
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.11.22until
- if(tex=="lualatex",//16.12.16
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.12.16
- if(!isstring(Pathpdf),
- tmp="preview";
- ,
- tmp=Pathpdf;
- );
- if(tmp=="preview" % tmp=="skim", // 16.09.09from,16.10.20
- tmp="open -a "+Dq+tmp+Dq+" "+texmainfile+".pdf";
- ,
- tmp=Dq+tmp+Dq+" "+texmainfile+".pdf";
- );// 16.09.09until
- println(SCEOUTPUT,tmp); // 16.07.21until
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- setdirectory(Dirwork);
-);
-////%Makeshell end////
-
-////%Convsjiswin start////
-Convsjiswin(dir,fname,ext):=( //180401
- regional(ctr,flg,mx,tmp);
- mx=200;
- ctr=0;flg=0;
- nkfwin(dir,fname,ext);
- while((!isexists(dir,fname+".out"))&(ctr<mx),
- wait(100);ctr=ctr+1;
- );
- if(ctr==mx,flg=1);
- if(flg==0,
- wait(100);ctr=0;
- nkfcpdel(dir,fname,ext);
- while((isexists(dir,fname+".out"))&(ctr<mx),
- wait(100);ctr=ctr+1;
- );
- if(ctr==mx,flg=2);
- );
- tmp=dir+pathsep()+fname+"."+ext;
- if(flg==0,
- tmp=
- println(tmp+" converted");
- ,
- println(tmp+" not converted "+text(flg));
- );
-);
-////%Convsjiswin end////
-
-////%Makebat start////
-Makebat():=(
- if(length(Texmain)>0,
- Texparent=Texmain;
- );
- if(length(Texparent)>0,
- Makebat(Texparent);
- if(length(FigPdfList)>0,
- SCEOUTPUT=openfile(Texparent+".tex");
- forall(FigPdfList,println(SCEOUTPUT,#));
- closefile(SCEOUTPUT);
- );
- ,
- Makebat(Fhead+"main");
- );
-);
-Makebat(texmainfile):=Makebat(texmainfile,"rtv");
-Makebat(texmainfile,flow):=(
- regional(drive,fname,tmp,tmp1,tmp2,tmp3,flg,tex,path,batnm);
- drive="C:";
- fname=Dirwork+Batparent;
- kc():=(
- println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
- );
- tmp=indexof(fname,":");
- if(tmp>0,
- drive=substring(fname,0,tmp);
- fname=substring(fname,tmp,length(fname));
- );
- tmp1="";
- tmp2=fname;
- flg=0;
- forall(reverse(1..length(fname)),
- if(flg==0,
- tmp=substring(fname,#-1,#);
- if(tmp=="/" % tmp=="\" % tmp=="\", // 14.01.15
- tmp1=substring(fname,0,#-1);
- tmp2=substring(fname,#,length(fname));
- flg=1;
- );
- );
- );
- if(length(tmp1)>0,
- setdirectory(drive+tmp1);
- );
- SCEOUTPUT = openfile(tmp2);
- fname=replace(Dirwork,"/","\");
- tmp=indexof(fname,":");
- if(tmp>0,
- drive=substring(Dirwork,0,tmp);
- fname=substring(Dirwork,tmp,length(Dirwork));
- println(SCEOUTPUT,drive);
- );
- tmp=Dirwork;//180408form
- if(iswindows(),
- if((isincludefull(Dirwork))&(isexists(Dirwork,"sjis.txt")),
- import("sjis.txt");
- );
- );
-// tmp=replace(tmp,"\","/"); //180408
-// println(SCEOUTPUT,"cd "+Dq+tmp+Dq); //180408
- tmp1=indexof(fname,"Users");//180409from
- tmp2=indexof(fname,Homehead);
- if((tmp1>0)%(tmp2>0),
- if(tmp1>0,
- fname=substring(fname,tmp1+length("Users")-1,length(fname));
- ,
- fname=substring(fname,tmp2+length(Homehead)-1,length(fname));
- );
- tmp=Indexall(fname,"\");//180403from
- fname=substring(fname,tmp_2,length(fname));
- fname="%HOMEPATH%\"+fname;
- );//180403to
- println(SCEOUTPUT,"cd "+Dq+fname+Dq);//180409to
- flg=0;
- tmp=replace(PathT,"\","/");
- forall(reverse(1..length(PathT)),
- if(flg==0,
- if(substring(tmp,#-1,#)=="/",
- tex=substring(PathT,#,length(PathT));
- path=substring(PathT,0,#-1);
- flg=1;
- );
- );
- );
- if(flg==0, // 17.10.13[Norbert]
- tex=PathT;
- path="";
- );
- if(indexof(flow,"r")>0,
- if(indexof(Dirwork,"Users")>0, //180917from
- tmp=Dq+PathR+"\R"+Dq+" --vanilla --slave < execsrc.r";//180514
- ,
- tmp=Dq+PathR+"\R"+Dq+" --vanilla --slave < "+Fhead+".r";
- ); //180917to
- println(SCEOUTPUT,tmp);
- );
- if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp=replace(Dq+PathT+Dq,tex,"dvipdfmx")+" "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- tmp="del "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="xelatex",
- tmp="set Path = %Path%;"+Dq+path+Dq;
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- tmp="xelatex"+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- tmp="del "+texmainfile+".dvi";
- println(SCEOUTPUT,tmp);
- );
- if(tex=="pdflatex" % tex=="pdftex",//16.11.22from
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.11.22until
- if(tex=="lualatex",//16.12.16
- tmp=Dq+PathT+Dq+" "+texmainfile+".tex";
- println(SCEOUTPUT,tmp);
- if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
- );//16.12.16
- if(!isstring(Pathpdf),
- tmp=indexof(PathS,"\scilab");// 15.12.12
- tmp=substring(PathS,0,tmp-1)+"\SumatraPDF\SumatraPDF.exe";
- ,
- tmp=Pathpdf;
- );
- tmp=Dq+tmp+Dq+" "+texmainfile+".pdf";
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- if(indexof(Dirwork,":")==0, // 14.01.15
- drive="C:";
- ,
- drive="";
- );
- setdirectory(drive+Dirwork);
-);
-////%Makebat end////
-
-////%Addpackage start////
-Addpackage(packorg):=(
-//help:Addpackage("bm");
-//help:Addpackage(["bm","enumerate"]);
-//help:Addpackage(["bm","[c]{somepackage}"]);
- regional(packL,tmp);
- packL=packorg; //17.06.25from
- if(!islist(packL),packL=[packL]);
- packL=apply(packL,replace(#,"\","/"));
- forall(1..(length(packL)),
- tmp=packL_#;
- if(substring(tmp,0,11)=="ketpicstyle",
- tmp=replace(Dirhead+"/"+tmp,"\","/");
- );
- if(indexof(tmp,"[")==0,
- packL_#="{"+tmp+"}";
- );
- );
- ADDPACK=concat(ADDPACK,packL); //17.06.25to
-);
-////%Addpackage end////
-
-////%Usegraphics start////
-Usegraphics(gpack):=( //180817
-//help:Usegraphics("pict2e");
- if(!contains(ADDPACK,gpack),
- if(gpack =="tikz", //181213from
- Addpackage(["pgf","tikz"]); //190101
- ,
- Addpackage([gpack]);
- ); //181213to
- );
- GPACK=gpack;
-);
-////%Usegraphics end////
-
-////%Viewtex start////
-Viewtex():=(
- regional(texfile,tmp,tmp1,sep);
- texfile=Fhead+"main";
-// if(iswindows(),sep="\",sep="/"); // 17.04.07
-// sep="/";
- SCEOUTPUT=openfile(texfile+".tex");
- tmp="\documentclass{article}"; // 16.06.09from
- if(indexof(PathT,"platex")>0,
- if(GPACK=="tikz",
- tmp="\documentclass[dvipdfmx]{article}"; // 190101
- ,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13to
- );
- ); // 16.06.09to
- println(SCEOUTPUT,tmp);
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0), //181213from
- if(GPACK=="tpic", GPACK="pict2e");
- );
- if(GPACK=="tpic",
- tmp=replace(Dirhead,"\","/");
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- );
- if(GPACK=="pict2e",
- println(SCEOUTPUT,"\usepackage{pict2e}");
- println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");
- if(indexof(PathT,"lualatex")>0,
- println(SCEOUTPUT,"\usepackage{luatexja}");
- );
- );
- if(GPACK=="tikz",
-// println(SCEOUTPUT,"\usepackage{pgf,tikz}");//190101
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- if(indexof(PathT,"lualatex")>0,
- println(SCEOUTPUT,"\usepackage{luatexja}");
- );
- );//181213to
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{graphicx}");
- println(SCEOUTPUT,"\usepackage{color}");
- forall(ADDPACK, // 16.05.16from
- println(SCEOUTPUT,"\usepackage"+#); //17.05.25
- );// 16.05.16until
- println(SCEOUTPUT,"");
-// println(SCEOUTPUT,"\def\ketcindy{{K\kern-.20em%"); // deleted 16.11.27,recovered11.29 redeleted17.04.07
-// println(SCEOUTPUT,"\lower.5ex\hbox{E}\kern-.125em{TCindy}}}");
-// println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\setmargin{20}{20}{20}{20}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\verb|"+Fhead+"| by \ketcindy");// 16.01.12, 18, 16.04.08
-// println(SCEOUTPUT,"\verb|"+Fhead+"| by KeTCindy");// 16.11.29 temporarily
- println(SCEOUTPUT,"\vspace{5mm}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\input{"+Fhead+".tex}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
- if(iswindows(),
- kc():=(
- println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
- );
- Makebat(texfile);
- ,
- kc():=(
- println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04
- );
- Makeshell(texfile);
- );
- WritetoRS(2); //17.09.19
-);
-////%Viewtex end////
-
-////%Viewparent start////
-Viewparent():=( //17.04.13
- if(!isexists(Dirwork,Texparent+".tex"),
- if(isstring(Texparent),
- drawtext(mouse().xy,Texparent+".tex not exist",
- size->24,color->[1,0,0]);
- ,
- drawtext(mouse().xy,"Texparent not defined",
- size->24,color->[1,0,0]);
- );
- ,
- if(iswindows(),
- Makebat();
- ,
- Makeshell();
- );
- WritetoRS(2); //17.09.29
- kc();
- );
-);
-////%Viewparent end////
+////%Removeout end////
////%Makecmdlist start////
Makecmdlist(libname):=(
@@ -3968,127 +5044,6 @@ Lessstr(st1,st2):=(
);
////%Lessstr end////
-////%Figpdf start////
-Figpdf():=Figpdf(Texparent,[]);
-Figpdf(Arg1):=(
- if(isstring(Arg1),
- Figpdf(Arg1,[]);
- ,
- Figpdf(Texparent,Arg1);
- );
-);
-Figpdf(fnameorg,optionorg):=(
-//help:Figpdf();
-//help:Figpdf([10,,10,,[0,2] ]);(margin(4),move)
-//help:Figpdf([[0,0]]);(move)
-//help:Figpdf(options=[5,5,5,5,[0,0]]]);
- regional(options,fname,mar,pos,dp,sc,tmp,tmp1,tmp2,sep);
- fname=fnameorg;
- if(indexof(fnameorg,".")==0,
- fname=fnameorg+".tex";
- );
- tmp=apply(optionorg,if(isstring(#),parse("["+#+"]"),#)); // 16.04.07
- tmp=select(tmp,#!=[]);
- options=optionorg;//16.11.08from
-// mar=[5,5,5,5];
- dp=[0,-3];
- tmp=select(options,islist(#));
- if(length(tmp)>0,
- dp=tmp_1;
- options=remove(options,tmp);
- );
- tmp=4-length(options);
- tmp1=apply(1..tmp,5);
- mar=concat(options,tmp1);
- mar=apply(mar,if(length(#)==0,5,#));//16.11.08until
- pos=[mar_1+dp_1,mar_3+dp_2];
- sc=10;
- tmp=indexof(ULEN,"cm");
- if(tmp>0,
- tmp1=Removespace(substring(ULEN,0,tmp-1));
- sc=parse(tmp1)*10;
- );
- tmp=indexof(ULEN,"mm");
- if(tmp>0,
- tmp1=Removespace(substring(ULEN,0,tmp-1));
- sc=parse(tmp1);
- );
- tmp="\documentclass{article}"; // 16.06.09from
- if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- );
- FigPdfList=append(FigPdfList,tmp); // 16.06.09until
- tmp1="\special{papersize=W mm,H mm}";
- tmp=(XMAX-XMIN)*sc+(mar_1+mar_2);
- tmp1=replace(tmp1,"W",text(tmp));
- tmp=(YMAX-YMIN)*sc+(mar_3+mar_4);
- tmp1=replace(tmp1,"H",text(tmp));
-// if(iswindows(),sep="\",sep="/");//17.04.08
-// sep="/";
- FigPdfList=append(FigPdfList,tmp1);
- if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")>0, //17.11.05from
- FigPdfList=append(FigPdfList,
- "\usepackage{pict2e}");
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- FigPdfList=append(FigPdfList,
- "\usepackage{ketpic2e,ketlayer2e}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- FigPdfList=concat(FigPdfList,
- ["\usepackage{"+tmp+"/ketpic2e}",
- "\usepackage{"+tmp+"/ketlayer2e}"]);
- );
- ,
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- FigPdfList=append(FigPdfList,
- "\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- FigPdfList=concat(FigPdfList,
- ["\usepackage{"+tmp+"/ketpic}",
- "\usepackage{"+tmp+"/ketlayer}"]);
- );
- );//17.11.05until
- FigPdfList=append(FigPdfList,
- "\usepackage{amsmath,amssymb}");
- FigPdfList=append(FigPdfList,
- "\usepackage{graphicx,color}");
- forall(ADDPACK, // 16.05.16from
- tmp1="\usepackage"+#; //17.07.10
- FigPdfList=append(FigPdfList,tmp1); // 16.09.05until
- );
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,
- "\setmargin{0}{0}{0}{0}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,"\begin{document}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,
- "\begin{layer}{50}{0}");
- tmp1="\putnotese{X}{Y}{\input{";
- tmp1=replace(tmp1,"X",text(pos_1));
- tmp1=replace(tmp1,"Y",text(pos_2));
- FigPdfList=append(FigPdfList,tmp1+Fhead+".tex}}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,"\end{layer}");
- FigPdfList=append(FigPdfList,"");
- FigPdfList=append(FigPdfList,"\end{document}");
- if(fnameorg!=Texparent,
- SCEOUTPUT=openfile(fname);
- forall(FigPdfList,println(SCEOUTPUT,#));
- closefile(SCEOUTPUT);
- );
- FigPdfList;
-);
-////%Figpdf end////
-
////%Makehelplist start////
Makehelplist(libname):=(
regional(cmdall,cmd,flg,lev,tmp,tmp1,out);
@@ -4169,7 +5124,7 @@ Helplist(dir,files,help):=(
setdirectory(dir);
if(contains(files,"+"),
tmp=remove(files,["+"]);
- ketfiles=concat(["+basic1","+basic2","+out"],tmp);
+ ketfiles=concat(["+basic1","+basic2","+basic3","+out"],tmp); //190414
,
ketfiles=files;
);
@@ -4272,1355 +5227,6 @@ Helpkey(str1,str2):=(
);
////%Helpkey end////
-////%Slidework start////
-Slidework():=Slidework(Dirwork); // 16.06.10
-Slidework(dirorg):=(
-//help:Slidework(directory);
- regional(dir,tmp); // 16.06.25
- dir=replace(dirorg,unicode("000a"),""); // 16.06.25
- dir=replace(dir,"/",pathsep());//17.11.20from
- dir=replace(dir,"\",pathsep());
- tmp=length(dir);
- if(substring(dir,tmp-1,tmp)==pathsep(),
- dir=substring(dir,0,tmp-1);
- );//17.11.20until
- if(isexists(dir,""), // 16.12.20
- Changework(dir);
- println(makedir(dir,"fig"));//17.11.23
- tmp=dir+pathsep()+"fig"; //17.04.16from
- Changework(tmp);// 17.02.19until
- ,
- println(dir+ " not exists");
- );
-);
-////%Slidework end////
-
-////%Setslidemargin start////
-Setslidemargin(marginlist):=( // 180908
-//help:Setslidemargin([+5,-10]);
- SlideMargin=marginlist;
-);
-////%Setslidemargin end////
-
-////%Setslidepage start////
-Setslidepage():=( // 17.03.05
- regional(tmp1,tmp2,tmp3);
- tmp1=["letterc","boxc","framec","shadowc","xpos","size"];
- tmp2=apply([1,2,4,5,7,8],SlideColorList_#);
- tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
- println(tmp3);
-);
-Setslidepage(list):=( // 16.12.22
-//help:Setslidepage([letterc,boxc,framec,shadowc,xpos,size]);
- regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
- if(!islist(SlideColorList),
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- );
- numlist=[1,2,4,5,7,8];
- forall(1..(length(list)),
- if(length(list_#)>0,
- tmp=numlist_#;
- SlideColorList_tmp=list_#;
- );
- );
- SlideColorList_3=SlideColorList_2;
- SlideColorList_6=SlideColorList_5;
-);
-////%Setslidepage end////
-
-////%Setslidemain start////
-Setslidemain():=( // 17.03.05
- regional(tmp1,tmp2,tmp3);
- tmp1=["letterc","boxc","framec","xpos","size"];
- tmp2=apply([9,10,12,13,14],SlideColorList_#);
- tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
- println(tmp3);
-);
-Setslidemain(list):=( // 16.12.22
-//help:Setslidemain([letterc,boxc,framec,xpos,size]);
- regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
- if(!islist(SlideColorList),
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- );
- numlist=[9,10,12,13,14];
- forall(1..(length(list)),
- if(length(list_#)>0, //17.01.04
- tmp=numlist_#;
- SlideColorList_tmp=list_#;
- );
- );
- SlideColorList_11=SlideColorList_10;
-);
-////%Setslidemain end////
-
-////%Setslidebody start////
-Setslidebody():=( // 17.03.05
- regional(tmp1,tmp2,tmp3);
- tmp1=["letterc","style","thindense"];
- tmp2=[SlideColorList_(15),BodyStyle,ThinDense];
- tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
- println(tmp3);
-);
-Setslidebody(str):=(
- regional(clr,style,thin);
- if(isstring(str),
- Setslidebody(str,"\Large\bf\boldmath",0.1);
- ,
- if(length(str)==1,Setslidebody(str_1));
- if(length(str)==2,Setslidebody(str_1,str_2));
- if(length(str)==3,Setslidebody(str_1,str_2,str_3));
- );
-);
-Setslidebody(str,Arg):=( //17.01.08
- if(isstring(Arg),
- Setslidebody(str,Arg,0.1);
- ,
- Setslidebody(str,"\Large\bf\boldmath",Arg);
- );
-);
-Setslidebody(str,style,density):=( // 16.12.22,17.01.06,01.08
-//help:Setslidebody(["black",,0]);
-//help:Setslidebody(["blue","\Large\bf\boldmath",0.1]);
- regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
- if(!islist(SlideColorList),
- SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
- letterc,mboxc,mboxc,mboxc,62,2,letterc];
- );
- if(length(str)>0,SlideColorList_(15)=str);
- if(length(style)>0,BodyStyle=style);
- ThinDense=density;//17.01.08
-);
-////%Setslidebody end////
-
-////%Setslidehyper start////
-Setslidehyper():=( 17.12.16from
- Setslidehyper(["cl=true,lc=blue,fc=blue",125,70,1]);
-);
-Setslidehyper(Arg):=(
- if(isstring(Arg),
- Setslidehyper(Arg,["cl=true,lc=blue,fc=blue",125,70,1]);
- ,
- Setslidehyper("",Arg);
- );
-);
-Setslidehyper(driverorg,options):=(
-//help:Setslidehyper();
-//help:Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue","Pos=[125,73]","Size=1"]);
- regional(driver,eqL,reL,stL,,str,tmp,tmp1,tmp2);
- driver=driverorg;
- if(length(driver)==0,
- if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")==0,
- driver="dvipdfmx";
- );
- );
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- stL=tmp_7;
- tmp1=select(eqL,length(Indexall(#,"="))>1); //180813from
- eqL=remove(eqL,tmp1);
- stL=concat(stL,tmp1); //180813to
- if(length(stL)>0,
- str=stL_1;
- ,
- str="";
- );
- if(length(str)==0,
- str="cl=true,lc=blue,fc=blue";
- );
- if(length(driver)==0,
- tmp1="["+str+"]";
- ,
- tmp1="["+driver+","+str+"]";
- );
- tmp1=replace(tmp1,"cl=","colorlinks=");
- tmp1=replace(tmp1,"lc=","linkcolor=");
- tmp1=replace(tmp1,"fc=","filecolor=");
- tmp1=replace(tmp1,"uc=","urlcolor=");
- ADDPACK=select(ADDPACK,indexof(#,"hyperref")==0);
- Addpackage(tmp1+"{hyperref}");
- tmp=indexof(tmp1,"linkcolor=");//180813from
- tmp1=substring(tmp1,tmp-1,length(tmp1));
- tmp=indexof(tmp1,"=");
- tmp1=substring(tmp1,tmp,length(tmp1));
- tmp=indexof(tmp1,",");
- if(length(tmp)>0,
- tmp1=substring(tmp1,0,tmp-1);
- );//180813to
- LinkColor=tmp1;
- LinkPosH=125;
- LinkPosV=73;//180524
- LinkSize=1;
-// if(length(reL)>0,
-// LinkPosH=reL_1;
-// if(length(reL)>1,LinkPosV=reL_2);
-// if(length(reL)>2,LinkSize=max(reL_3,0.1));
-// );
- forall(eqL,
- tmp=Indexall(#,"=");//180524from
- if(length(tmp)==1,
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp_1,length(#));
- tmp2=parse(tmp2);
- if(tmp1=="P",
- LinkPosH=tmp2_1;
- LinkPosV=tmp2_2;
- );
- if(tmp1=="S",
- LinkSize=max(tmp2,0.1);
- );
- );//180524to
- );
-); //17.12.16to
-////%Setslidehyper end////
-
-////%Settitle start////
-Settitle(cmdL):=Settitle("",cmdL,[]); // 180608from
-Settitle(Arg1,Arg2):=(
- if(isstring(Arg1),
- Settitle(Arg1,Arg2,[]);
- ,
- Settitle("",Arg1,Arg2);
- );
-); // 180608to
-Settitle(titleold,cmdL,options):=(
-//help:Settitle(cmdL);
-//help:Settitle(name,cmdL);
-//help:Settitle(options=["Title=slide0","Layery=0","Color=blue"]);
- regional(tmp,tmp1,tmp2,eqL,layery,color,size,font);
- TitleName="slide0"; //180330
- if(length(titleold)>0,TitleName=titleold);//180608
- layery="0";
- color="blue";
- size="\Large";
- font="\bf";
-// tmp=Divoptions(options);
-// eqL=tmp_5;
- eqL=options; //180602
- forall(eqL,
- tmp1=Toupper(substring(#,0,1));
- tmp=indexof(#,"=");
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="L",
- layery=tmp2;
- );
- if(tmp1=="C",
- color=tmp2;
- );
- if(tmp1=="S",
- size=tmp2;
- if(substring(size,0,1)!="\",size="\"+size);
- );
- if(tmp1=="F",
- font=tmp2;
- if(substring(font,0,1)!="\",font="\"+font);
- );
- if(tmp1=="T", //180330
- TitleName=tmp2;
- );
- );
- TitleCmdL=["{"+size+font];
- if(indexof(color,"[")>0,
- tmp=replace(color,"[","{");
- tmp=replace(tmp,"]","}");
- tmp1=Indexall(tmp,",");
- if(length(tmp1)>=3,
- tmp="\color[cmyk]"+tmp;
- ,
- tmp="\color[rgb]"+tmp;
- );
- ,
- tmp="\color{"+color+"}";
- );
- TitleCmdL=append(TitleCmdL,tmp);
- TitleCmdL=concat(TitleCmdL,["","\begin{layer}{120}{"+layery+"}"]);
- forall(1..(length(cmdL)),
- tmp=cmdL_#;
- if(length(tmp)>0,
- if(#==1,
- tmp="{\Huge \putnote"+tmp+"}"
- ,
- tmp="\putnote"+tmp;
- );
- TitleCmdL=append(TitleCmdL,tmp);
- );
- );
- TitleCmdL=concat(TitleCmdL,["\end{layer}","","}"]);
-);
-////%Settitle end////
-
-////%Maketitle start////
-Maketitle():=(
- if(!isstring(TitleName), //17.04.13from
- drawtext(mouse().xy,"Settitle not defined",
- size->24,color->[1,0,0]);
- , //17.04.13until
- Maketitle(TitleName);
- );
-);
-Maketitle(name):=(
-//help:Maketitle();
- regional(texfile,texmain,tmp,tmp1,sep,txtfile);
- texfile=name;
- texmain=name+"main";
- SCEOUTPUT=openfile(texfile+".tex");
- forall(TitleCmdL,
- println(SCEOUTPUT,#);
- );
- closefile(SCEOUTPUT);
- SCEOUTPUT=openfile(texmain+".tex");
- tmp="\documentclass[landscape,10pt]{article}";
- if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- );
- println(SCEOUTPUT,tmp);
- tmp="\special{papersize=\the\paperwidth,\the\paperheight}";
- println(SCEOUTPUT,tmp);
- tmp=replace(Dirhead,"\","/");//17.11.01from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer,ketslide}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}");
- );//17.11.01until
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{bm,enumerate}");
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- println(SCEOUTPUT,"\usepackage{graphicx}");
- ,
- println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
- );
- println(SCEOUTPUT,"\usepackage[usenames]{color}"); //190222
- forall(ADDPACK,
-// if(indexof(#,"[")==0,
-// println(SCEOUTPUT,"\usepackage{"+#+"}");
-// ,
- println(SCEOUTPUT,"\usepackage"+#); // 17.07.10
-// );
- );
- if(indexof(PathT,"platex")>0,tmp="\ketmarginJ",tmp="\ketmarginE");
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"\ketslideinit");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\input{"+texfile+".tex}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
- if(iswindows(),
- Makebat(texmain,"tv");
- ,
- Makeshell(texmain,"tv");
- );
- kc();
- txtfile=Cindyname()+".txt"; //180815from
- if(!isexists(Dircdy,txtfile),
- setdirectory(Dircdy);
- SCEOUTPUT=openfile(txtfile);
- println(SCEOUTPUT,"title::"+name+"//");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
- println(SCEOUTPUT,"main::"+PaO()+"title)//");
- println(SCEOUTPUT,"\slidepage[m]//");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
- println(SCEOUTPUT,"new::"+PaO()+"title)//");
- println(SCEOUTPUT,"%repeat=1,para//");
- println(SCEOUTPUT,"\slidepage//");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"layer::{120}{0}//");
- println(SCEOUTPUT,"%%putnote::s{65}{5}:://");
- println(SCEOUTPUT,"end//");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"itemize//");
- println(SCEOUTPUT,"item//");
- println(SCEOUTPUT,"end//");
- closefile(SCEOUTPUT);
- setdirectory(Dirwork); //180815to
- );
-);
-////%Maketitle end////
-
-////%Repeatsameslide start////
-Repeatsameslide(repeatflg,sestr,addedL):=(
- regional(seL,flg1,ss,nn,nrep,tmp,tmp1,tmp2,tmp3,str,j,k);
- // global RepeatList, SCEOUTPUT, NonThinFlg
- nrep=length(RepeatList);
- flg1=0;
- forall(addedL,ss,
- if(repeatflg==0,
- if(substring(ss,0,1)!="%", //16.01.04
- println(SCEOUTPUT,ss);
- );//16.01.04
- ,
- forall(1..nrep,nn,
- if(sestr=="",
- RepeatList_nn=append(RepeatList_nn,ss);
- );
- );
- if(sestr=="",
- seL=[1];
- ,
- tmp1=substring(sestr,1,length(sestr)-1);
- tmp1=replace(tmp1,",-",".."+text(nrep));
- tmp1=replace(tmp1,"-,","1..");
- tmp1="["+tmp1+"]"; //17.01.03
- seL=flatten(parse(tmp1)); //17.01.03
- );
- if(contains(seL,1),
- if(substring(ss,0,1)!="%", //16.01.04
- println(SCEOUTPUT,ss);
- );
- seL=remove(seL,[1]);
- flg1=1;
- );
- forall(1..(length(seL)),nn,
- tmp=seL_nn;
- if(tmp<=length(RepeatList), //17.01.12from
- RepeatList_tmp=append( RepeatList_tmp,ss);
- ,
- println(" "+sestr+" : "+text(tmp)+" > "+text(length(RepeatList)));
- );
- );
- if(ThinFlg==1,//16.01.05from
- if(flg1==1,seL=append(seL,1));
- seL=remove(1..nrep,seL);
- str=ss; // 17.05.28from
- if(substring(str,0,16)=="\begin{minipage}",MiniFlg=1);//180526
- repeat(10,
- tmp1=Indexall(str,"{\color");
- if(length(tmp1)>0,
- tmp2=Indexall(str,"}");
- tmp=select(tmp2,tmp1_1<#);
- tmp=substring(str,tmp1_1,tmp_1);
- str=replace(str,tmp+" ","");
- str=replace(str,tmp,"");
- );
- );//17.05.28to
- if(contains(seL,1),
- if(substring(str,0,1)!="%",
- if(NonThinFlg==0,
- if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- if(MiniFlg==0, //180526from
- println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}%");//180701
- println(SCEOUTPUT,str);
- println(SCEOUTPUT,"}%");
- ,
- println(SCEOUTPUT,str);
- if(indexof(str,"\end{minipage}")>0, //180526from
- println(SCEOUTPUT,"}%");
- );
- ); //180526to
- ,
- println(SCEOUTPUT,str);
- if(indexof(str,"\end{minipage}")>0, //180526from
- println(SCEOUTPUT,"}%");
- MiniFlg=0;
- );
- );
- );
- if(NonThinFlg==1,
- if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}%");//180701
- println(SCEOUTPUT,str);
- ,
- println(SCEOUTPUT,str);
- if(indexof(str,"\end{minipage}")>0, //180526from
- println(SCEOUTPUT,"}%");
- MiniFlg=0;
- );
- );
- );
- if(NonThinFlg==2,
- println(SCEOUTPUT,str);
- if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- println(SCEOUTPUT,"}%");
- , //180526from
- if(indexof(str,"\end{minipage}")>0,
- println(SCEOUTPUT,"}%");
- MiniFlg=0;
- ); //180526from
- );
- );
- seL=remove(seL,[1]);
- );
- );
- if(substring(ss,0,1)!="%", //16.01.04
- forall(1..(length(seL)),nn,
- if(substring(str,0,16)=="\begin{minipage}",MiniFlg=1);//180526
- tmp=seL_nn;
- if(NonThinFlg==0,
- if(!contains(["\begi","\end{"],substring(str,0,5)),//180526from
- if(MiniFlg==0,
- tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}%";//180701
- tmp1=[tmp1,str,"}%"];
- ,
- tmp1=[str];
- if(indexof(str,"\end{minipage}")>0, //180526from
- tmp1=append(tmp1,"}%");
- );
- );
- ,
- tmp1=[str];
- if(indexof(str,"\end{minipage}")>0,
- tmp1=append(tmp1,"}%");
- MiniFlg=0;
- );
- );
- );
- if(NonThinFlg==1,
- if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}%";//180701
- tmp1=[tmp1,str];
- ,
- tmp1=[str];
- if(indexof(str,"\end{minipage}")>0,
- tmp1=append(tmp1,"}%");
- MiniFlg=0;
- );
- );
- );
- if(NonThinFlg==2,
- tmp1=[str];
- if(!contains(["\begi","\end{"],substring(str,0,5)),
- tmp1=append(tmp1,"}%");
- ,
- if(indexof(str,"\end{minipage}")>0,
- tmp1=append(tmp1,"}%");
- MiniFlg=0;
- );
- );
- );
- RepeatList_tmp=concat( RepeatList_tmp,tmp1);
- );
- );
- );//16.01.05to
- );
- );//16.12.05to
-);
-////%Repeatsameslide end////
-
-////%Presentation start////
-Presentation(texfile):=Presentation(texfile,texfile);
-Presentation(texfile,txtfile):=(
-//help:Presentation(texfile,txtfile);
- regional(file,flgL,flg,verbflg,slideL,ns,slideorgL,wall,sld,slidecmd,tmp,tmp0,tmp1,
- tmp2,tmp3,tmp4,tmp5,newoption,top,repeatflg,nrep,nrepprev,,repstr,
- sestr,npara,paradt,parafiles,hyperflg,paractr,
- letterc,boxc,shadowc,mboxc,sep);
- MiniFlg=0;//180526
- slidecmd=["\ketcletter","\ketcbox","\ketdbox","\ketcframe",
- "\ketcshadow","\ketdshadow","\slidetitlex","\slidetitlesize",
- "\mketcletter","\mketcbox","\mketdbox","\mketcframe",
- "\mslidetitlex","\mslidetitlesize"];
- if(!isstring(BodyStyle),//17.01.06
- BodyStyle="\Large\bf\boldmath";
- );
- repeatflg=0;
- RepeatList=[];
- paractr=0; //16.12.31
- if(indexof(texfile,".")==0,file=texfile+".tex",file=texfile);
- if(indexof(txtfile,".")==0,tmp1=txtfile+".txt",tmp1=txtfile);
-// tmp=load(tmp1); //181125from
- tmp=readfile2str(Dirwork,tmp1);
- tmp=replace(tmp,"////","||||");
- tmp=replace(tmp,"/L"+"F/::","::");
- tmp=replace(tmp,"///L"+"F/","/L"+"F/");
- slideL=tokenize(tmp,"/L"+"F/"); //181125to
- slideorgL=slideL; // 16.07.11
- slideL=apply(slideL,Removespace(#));
- tmp=select(1..length(slideL),length(slideL_#)>0); // 16.07.11from
- slideL=apply(tmp,slideL_#);
- slideorgL=apply(tmp,slideorgL_#);
-// slideL=select(slideL,length(#)>0); // 16.07.11until
- flg=0; // 16.06.09from
- forall(1..10,
- if(flg==0,
- if(substring(slideL_1,0,1)!="%",
- flg=1;
- ,
- slideL=slideL_(2..length(slideL));
- slideorgL=slideorgL_(2..length(slideorgL));
- );
- );
- ); // 16.06.09until
- flgL=[];
- SCEOUTPUT = openfile(file);
- tmp=tokenize(slideL_1,"::");
- tmp1=tmp_1;
- if(length(tmp)>1,
- tmp2=tmp_2;
- tmp3=tmp_(3..length(tmp));//16.06.25
- ,
- tmp2="";
- tmp3=tmp_(2..length(tmp));//16.06.25
- );
- wall=""; // 16.06.10
- if(length(tmp3)>0,//16.06.25from
- tmp=substring(tmp3_1,0,1);//180330
- if((tmp!="\")&(tmp!="%")&(indexof(tmp3_1,"=")==0), //180330
- wall=tmp3_1;
- tmp3=tmp3_(2..length(tmp3));
- );
- );//16.06.25until
- tmp="%%% "+tmp1+" "+txtfile;// 16.06.09from
- println(SCEOUTPUT,tmp);
- tmp="\documentclass[landscape,10pt]{article}";
- if(indexof(PathT,"platex")>0,
- tmp=replace(tmp,"article","jarticle");
- if(indexof(PathT,"uplatex")>0, //17.08.13from
- tmp=replace(tmp,"jarticle","ujarticle");
- );//17.08.13until
- );
- println(SCEOUTPUT,tmp);// 16.06.09from
- tmp=select(1..(length(tmp3)),indexof(tmp3_#,"\usepackage")>0);//17.06.18from
- forall(tmp,
- println(SCEOUTPUT,tmp3_#);
- );
- tmp=remove(1..(length(tmp3)),tmp);
- tmp3=tmp3_tmp;//17.06.18until
-// if(iswindows(),sep="\",sep="/"); // 17.04.08
-// sep="/";
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- if(indexof(PathT,"lualatex")>0,
- println(SCEOUTPUT,"\usepackage{luatexja}");
- );
- println(SCEOUTPUT,"\usepackage{pict2e}");
- println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");// 17.04.08from
- ,
- println(SCEOUTPUT,"\special{papersize=\the\paperwidth,\the\paperheight}");
- );// 17.04.08until
- tmp=replace(Dirhead,"\","/");//17.11.01from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
- );
- if(length(wall)==0,
- tmp=replace(Dirhead,"\","/");//17.11.01from
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketslide}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}");
- );
- ,
- tmp=replace(Dirhead,"\","/");
- tmp=replace(tmp,"scripts","tex/latex");
- if(isexists(tmp,""),
- println(SCEOUTPUT,"\usepackage{ketslide2}");
- ,
- tmp=replace(Dirhead+"/ketpicstyle","\","/");
- println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide2}");
- );
- );//17.04.08until
- println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
- println(SCEOUTPUT,"\usepackage{bm,enumerate}");
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- println(SCEOUTPUT,"\usepackage{graphicx}");
- ,
- println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
- );
- println(SCEOUTPUT,"\usepackage{color}");//190222
- letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
- shadowc=[0,0,0,0.5]; mboxc="yellow";
- tmp4="abcdefghijklmno";
- forall(1..15,
- tmp=SlideColorList_#;
- if(islist(tmp),
- tmp=text(tmp);
- tmp=substring(tmp,1,length(tmp)-1);
- if(length(SlideColorList_#)==4,//17.01.07from
- println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{cmyk}{"+tmp+"}");
- );
- if(length(SlideColorList_#)==3,
- println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{rgb}{"+tmp+"}");
- );//17.01.07until
- SlideColorList_#="slidecolor"+tmp4_#;
- );
- );
- println(SCEOUTPUT,"\def\setthin#1{\def\thin{#1}}");//17.08.23
- println(SCEOUTPUT,"\setthin{"+text(ThinDense)+"}");//17.08.23
- println(SCEOUTPUT,"\newcommand{\slidepage}[1][s]{%");//180524from
- println(SCEOUTPUT,"\setcounter{ketpicctra}{18}%");
- println(SCEOUTPUT,"\if#1m \setcounter{ketpicctra}{1}\fi");
- println(SCEOUTPUT,"\hypersetup{linkcolor=black}%");
- println(SCEOUTPUT,"");//180908
- println(SCEOUTPUT,"\begin{layer}{118}{0}");
- println(SCEOUTPUT,"\putnotee{122}{-\theketpicctra.05}{\small\thepage/\pageref{pageend}}");
- println(SCEOUTPUT,"\end{layer}\hypersetup{linkcolor="+LinkColor+"}");
- println(SCEOUTPUT,"");//180908
- println(SCEOUTPUT,"}");//189524to
- forall(ADDPACK,// 16.06.09from
- println(SCEOUTPUT,"\usepackage"+#);
- );// 16.06.09to
- tmp=select(ADDPACK,indexof(#,"{hyperref}")>0);//16.12.31from
- if(length(tmp)>0,
- hyperflg=1;
- ,
- hyperflg=0; //16.12.31until
- );
- forall(tmp3,
- println(SCEOUTPUT,#);
- );
- if(indexof(PathT,"platex")>0, //180903,180908from
- tmp="\setmargin{"+text(25+SlideMargin_1)+"}{";
- tmp=tmp+text(145-SlideMargin_1)+"}{";
- tmp=tmp+text(15+SlideMargin_2)+"}{";
- tmp=tmp+text(100-SlideMargin_2)+"}";
- ,
- tmp="\setmargin{"+text(20+SlideMargin_1)+"}{";
- tmp=tmp+text(135-SlideMargin_1)+"}{";
- tmp=tmp+text(15+SlideMargin_2)+"}{";
- tmp=tmp+text(100-SlideMargin_2)+"}";
- ); // 180903,180908to
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\ketslideinit");
- println(SCEOUTPUT,"");
- forall(tmp, // 15.07.21
- if(substring(#,0,1)=="\", println(SCEOUTPUT,#));
- );
-// if(!isstring(PageStyle),PageStyle="headings");//180524from
-// println(SCEOUTPUT,"\pagestyle{"+PageStyle+"}");
- println(SCEOUTPUT,"\pagestyle{empty}");//180524to
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\begin{document}");
- println(SCEOUTPUT,"");
- if(length(wall)>0,
- println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
- println(SCEOUTPUT,"");
- );
- if(length(tmp2)>0,
- if(indexof(tmp2," no")==0, // 16.11.11from
- println(SCEOUTPUT,"\begin{layer}{120}{0}");
- if(substring(tmp2,0,1)!="\",
- tmp2="\putnotese{0}{0}{\input{fig/"+tmp2+".tex}}";//16.12.27
- );
- println(SCEOUTPUT,tmp2);
- println(SCEOUTPUT,"\end{layer}");
- println(SCEOUTPUT,"");
- ,
- tmp=indexof(tmp2,"=");
- if(tmp==0,
- top="10mm";
- ,
- top=substring(tmp2,tmp,length(tmp2));
- );
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\vspace*{"+top+"}");
- println(SCEOUTPUT,"");
- ); // 16.11.11until
- );
- println(SCEOUTPUT,"\def\mainslidetitley{22}");
- forall(1..14, //16.12.22from
- tmp=SlideColorList_#;
- if(!isstring(tmp),tmp=text(tmp));
- if(length(tmp)>0,
- tmp="\def"+slidecmd_#+"{"+tmp+"}";
- println(SCEOUTPUT,tmp);
- );
- );//16.12.22until
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\color{"+SlideColorList_(15)+"}");
- println(SCEOUTPUT,BodyStyle);//17.01.07
-// println(SCEOUTPUT,"\thispagestyle{empty}");//180524
- println(SCEOUTPUT,"\addtocounter{page}{-1}");//17.01.29
- println(SCEOUTPUT,"");
- verbflg=0; //16.06.28
- repeatflg=0;//16.12.02
- nrep=0;//16.12.27
- nrepprev=0;//17.01.03
- npara=0;//16.12.27
- forall(2..length(slideL),ns,
- ThinFlg=0;
- NonThinFlg=0;
- flg=0;
- tmp1="";
- tmp2="";
- tmp3="";
- sld=Removespace(slideL_ns); // 16.06.28
- sestr="";
- if((substring(sld,0,1)=="%") & (substring(sld,0,2)!="%%"), // 17.06.23
- Repeatsameslide(repeatflg,"",[slideL_ns]);
- if(repeatflg>0,
- tmp=indexof(sld,"]::");
- if(tmp>0,
- if(substring(sld,1,2)!="%",//17.05.31
- if(substring(sld,1,5)=="thin",
- ThinFlg=1;
- );
- sestr=substring(sld,1,tmp);
- sld=substring(sld,tmp+2,length(sld));
- tmp=indexof(sestr,"[");
- sestr=substring(sestr,tmp-1,length(sestr));//17.01.05
- );
- );
- );
- if(substring(sld,1,7)=="repeat", // 16.12.09from
- tmp=indexof(sld,"=");
- tmp5=substring(sld,tmp,length(sld));
- tmp=indexof(tmp5,",");
- if(tmp>0,//17.01.03from
- tmp5=substring(tmp5,0,tmp-1);
- );//17.01.03until
- repeatflg=1;
- if(length(tmp5)>0,
- nrep=parse(tmp5);
- tmp=[];
- if(length(wall)>0,
- tmp=["","\input{fig/"+wall+".tex}"];
- );
- tmp=concat(tmp,
- ["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]);//180524
- RepeatList=apply(1..nrep,if(#==1,[],tmp));
- );
- if(sestr=="",flg=1);
- tmp=indexof(sld,",");//17.01.03from
- if(tmp>0,
- sld="%"+substring(sld,tmp,length(sld));
- if(indexof(sld,"=")==0,sld=sld+"=");
- );//17.01.03until
- );
- if(substring(sld,1,5)=="para",
- paractr=paractr+1;
- repeatflg=1;
- tmp=indexof(sld,"=");
- tmp=substring(sld,tmp,length(sld));
- if(length(tmp)==0, //17.01.03
- npara=0;
- ,
- paradt=tokenize(tmp,":");
- tmp=fileslist(Dirwork+"/fig/"+paradt_1);
- if(length(tmp)>0,
- parafiles=tokenize(tmp,",");
- if(indexof(paradt_4,"input")>0,
- tmp0=indexof(paradt_4,",");//17.01.29from
- if(tmp0>0,
- paradt=append(paradt,substring(paradt_4,tmp0,length(paradt_4)));
- paradt_4=substring(paradt_4,0,tmp0-1);
- );//17.01.29until
- parafiles=select(parafiles,indexof(#,".tex")>0);
- parafiles=sort(parafiles); //180627
- if(indexof(paradt_4,"\input")==0,paradt_4="\"+paradt_4);//16.12.17
- );
- if(indexof(paradt_4,"include")>0,
- parafiles=select(parafiles,indexof(#,".pdf")>0);
- parafiles=sort(parafiles); //180627
- );
- npara=length(parafiles);
- ,
- println(Dirwork+"/fig/"+paradt_1+" not found");
- parafiles=[];
- npara=0;
- );
- if(nrep==0,
- nrep=npara;
- if(length(wall)>0,
- tmp=["","\input{fig/"+wall+".tex}"];
- );
- tmp=concat(tmp,
- ["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]);//180524
- RepeatList=apply(1..nrep,if(#==1,[],tmp));
- );
- );
- forall(1..nrep, //16.12.28
- tmp4=[]; //16.12.31from
- if(hyperflg>0,
- tmp4=["\hypertarget{para"+text(paractr)+"pg"+text(#)+"}{}"];
- );//16.12.31to
- if(npara>0, //17.01.03
- tmp4=concat(tmp4,["","\begin{layer}{120}"+paradt_2]);
- if(#<=npara, //16.12.28from
- tmp=parafiles_#;
- ,
- tmp=parafiles_npara;
- );
- tmp="{"+paradt_4+"{fig/"+paradt_1+"/"+tmp+"}}";
- if(length(paradt)>=5,
- tmp="{\scalebox{"+text(paradt_5)+"}"+tmp+"}";
- );
- if(substring(paradt_3,0,1)=="\",
- tmp=paradt_3+tmp;
- ,
- tmp="\putnote"+paradt_3+tmp;
- );
- tmp4=concat(tmp4,[tmp]);//16.12.31
- ,
- tmp4=concat(tmp4,["","\begin{layer}{120}{0}"]);
- );
- if((hyperflg>0) & (LinkSize>0.15),
- tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; // 17.01.12from
- tmp1=tmp+text(paractr)+"pg";
- tmp2=tmp+text(paractr-1)+"pg"+text(nrepprev);
- tmp=tmp2; //180526from
- tmp3=[text(LinkPosH-29*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut||\!\lhd$}}}}}"];
- if(nrep>1,//180526
- tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; // 17.01.12from
- tmp1=tmp+text(paractr)+"pg";
- tmp2=tmp+text(paractr-1)+"pg"+text(nrepprev);
- tmp=tmp1+text(1);
- tmp3=append(tmp3,
- text(LinkPosH-24*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut|\!\lhd$}}}}}"); //180526to
- if(#>1,tmp=tmp1+text(#-1),tmp=tmp2);
- tmp3=append(tmp3,
- text(LinkPosH-17*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}");
- if(#<nrep,tmp=tmp1+text(#+1),tmp=tmp1+text(nrep));
- tmp3=append(tmp3,
- text(LinkPosH-10*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
- +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut\!\rhd\!$}}}}}");
- tmp=tmp1+text(nrep); //180526from
- tmp3=append(tmp3,
- text(LinkPosH-5*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{" // 17.01.19
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}");
- );
- tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; //180529[2lines]
- tmp=tmp+text(paractr+1)+"pg"+text(1);
- tmp3=append(tmp3,
- text(LinkPosH)+"}"+tmp+"}{\fbox{\Ctab{" // 17.01.19
- +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
- +"}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}"); //180526to
- );
- tmp3=apply(tmp3,tmp,"\putnotew{"+tmp);
- tmp4=concat(tmp4,tmp3);// 17.01.12to
- tmp="\putnotee{"+text(LinkPosH+1)+"}{"+text(LinkPosV)+"}";//180524
- tmp=tmp+"{\scriptsize\color{blue} "+text(#)+"/"+text(nrep)+"}"; //180524[blue]
- tmp4=append(tmp4,tmp);
- tmp4=concat(tmp4,["\end{layer}",""]);//16.12.31until
- Repeatsameslide(repeatflg,text([#]),tmp4);
- );
- );
- );
- if(substring(sld,0,2)=="%%", //17.06.23from
- println(SCEOUTPUT,sld);
- flg=1;
- ); //17.06.23to
- if(flg==0,
- if(indexof(sld,"\begin{verbatim}")==1, // 16.06.28from
- Repeatsameslide(repeatflg,sestr,[slideL_ns]);
- verbflg=1;
- flg=1;
- ); // 16.06.28
- if(indexof(sld,"\end{verbatim}")==1,
- Repeatsameslide(repeatflg,sestr,[slideL_ns]);
- verbflg=0;
- flg=1;
- ); // 16.06.28until
- if(flg==0,
- tmp=replace(sld,"||||","//"); // 16.05.11
- tmp=tokenize(tmp,"::"); // 16.05.11
- tmp1=tmp_1;
- if(length(tmp)>1,tmp2=tmp_2,tmp2="");
- if(length(tmp)>2,tmp3=tmp_3,tmp3="");
- if(length(tmp)>3,tmp4=tmp_4,tmp4="");
- if(length(tmp)>4,tmp5=tmp_5,tmp5="");
- if(contains(["main","new","same"],tmp1),
- if(tmp1=="new", // 16.11.09from
- newoption="";
- if(substring(tmp2,0,1)=="[",newoption=tmp2);
- );
- if(tmp1=="same",
- if(length(tmp2)==0,tmp2=newoption);
- );// 16.11.09until
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"%%%%%%%%%%%%%%%%%%%%");
- println(SCEOUTPUT,"");
- );
- );
- if(flg==0&tmp1=="main",
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
- println(SCEOUTPUT,"");
- repeatflg=0;RepeatList=[];
- nrepprev=nrep;//17.01.03
- nrep=0;//16.12.27
- npara=0;//16.12.27
- );
- if(length(wall)>0,
- println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
- );
- println(SCEOUTPUT,"\mainslide{"+tmp2+"}");
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"");
- tmp2="";
- flg=1;
- );
- if(flg==0&tmp1=="new",
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
- println(SCEOUTPUT,"");
- repeatflg=0;RepeatList=[];
- nrepprev=nrep;//17.01.03
- nrep=0;
- npara=0;
- );
- if(length(wall)>0,
- Repeatsameslide(repeatflg,sestr,["\input{fig/"+wall+".tex}"]);
- );
- tmp="\newslide";
- NewSlideOption=""; //17.01.04
- if(substring(tmp2,0,1)=="[",
- NewSlideOption=tmp2; //17.01.04
- tmp=tmp+tmp2;
- tmp2=tmp3;
- tmp3=tmp4;
- tmp4=tmp5;
- );
- tmp=tmp+"{"+tmp2+"}";
- Repeatsameslide(repeatflg,sestr,[tmp,"","\vspace*{18mm}",""]);//180524
- tmp2="";
- flg=1;
- );
- if(flg==0&tmp1=="same",
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
- println(SCEOUTPUT,"");
- repeatflg=0;RepeatList=[];
- nrepprev=nrep;//17.01.03
- nrep=0;
- npara=0;
- );
- if(length(wall)>0,
- println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
- );
- tmp="\sameslide"+NewSlideOption; //17.01.04;
-// if(substring(tmp2,0,1)=="[",
-// tmp=tmp+tmp2;
-// tmp2=tmp3;
-// tmp3=tmp4;
-// );
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,""); //180524
- println(SCEOUTPUT,"\vspace*{18mm}");
- println(SCEOUTPUT,"");
- tmp4=tmp3;
- tmp3=tmp2;
- tmp2="";
- flg=1;
- );
- if(flg==0&tmp1=="itemize",
- Repeatsameslide(repeatflg,sestr,["\begin{itemize}"]);
- flgL=append(flgL,"i");
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="enumerate",
- Repeatsameslide(repeatflg,sestr,["\begin{enumerate}"+tmp2]);
- flgL=append(flgL,"e");
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="verbatim", //16.06.28from
- Repeatsameslide(repeatflg,sestr,["\begin{verbatim}"]);
- flgL=append(flgL,"v");
- tmp1="";
- tmp2="";
- tmp3="";
- verbflg=1;
- flg=1;
- ); //16.06.28until
- if(flg==0&tmp1=="layer",
- Repeatsameslide(repeatflg,sestr,[""]);
- tmp="\begin{layer}";
- if(length(tmp2)>0,
- tmp=tmp+tmp2;
- ,
- tmp=tmp+"{120}{0}";
- );
- Repeatsameslide(repeatflg,sestr,[tmp]);
- flgL=append(flgL,"l");
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="putnote",
- tmp="\putnote"+tmp2+"{";
- if(indexof(tmp3,"include")==0,
- tmp1=indexof(tmp3,",");
- if(tmp1==0,
- tmp=tmp+"\input{fig/"+tmp3+".tex}}";
- ,
- tmp2=substring(tmp3,tmp1,length(tmp3));
- tmp3=substring(tmp3,0,tmp1-1);
- tmp=tmp+"\scalebox{"+tmp2+"}{\input{fig/"+tmp3+".tex}}}";
- );
- ,
- tmp2=indexof(tmp3,"[");
- tmp3=substring(tmp3,tmp2-1,length(tmp3));
- tmp=tmp+"\includegraphics"+tmp3+"{fig/"+tmp4+"}}";
- );
- Repeatsameslide(repeatflg,sestr,[tmp]);
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="item",
- NonThinFlg=1;
- Repeatsameslide(repeatflg,sestr,["\item"]);
- tmp3="";
- flg=1;
- );
- if(flg==0&tmp1=="end"&(length(flgL)>0), //180526
- tmp=flgL_(length(flgL));
- if(tmp=="i",
- Repeatsameslide(repeatflg,sestr,["\end{itemize}"]);
- );
- if(tmp=="e",
- Repeatsameslide(repeatflg,sestr,["\end{enumerate}"]);
- );
- if(tmp=="l",
- Repeatsameslide(repeatflg,sestr,["\end{layer}",""]);
- );
- if(tmp=="v", // 16.06.28from
- Repeatsameslide(repeatflg,sestr,["\end{verbatim}",""]);
- verbflg=0;
- ); // 16.06.28until
- flgL=flgL_(1..(length(flgL)-1));
- tmp2="";
- tmp3="";
- flg=1;
- );
- if(flg==0, // 16.06.28from
- if(verbflg==0,
- tmp2=tmp1;
- ,
- tmp2=slideorgL_ns; // 16.07.11
- tmp2=replace(tmp2,"||","//"); // 16.07.10
- tmp3="";
- );
- ); // 16.06.28until
- if(length(tmp2)>0,
- if(tmp2=="...", tmp2="");
- if(NonThinFlg==1,NonThinFlg=2);
- Repeatsameslide(repeatflg,sestr,[tmp2]);
- );
- if(length(tmp3)>0,
- Repeatsameslide(repeatflg,sestr,["\begin{layer}{120}{0}"]);
- if(substring(tmp3,0,1)=="{",
- tmp=tmp3;
- tmp3=tmp4;
- ,
- tmp="{60}{0}";
- );
- tmp1=indexof(tmp3,",");
- if(tmp1==0,
- tmp3="\putnotes"+tmp+"{\input{fig/"+tmp3+".tex}}";
- ,
- tmp2=substring(tmp3,tmp1,length(tmp3));
- tmp3=substring(tmp3,0,tmp1-1);
- tmp3="\putnotes"+tmp+"{\scalebox{"+tmp2+"}
- {\input{fig/"+tmp3+".tex}}}";
- );
- Repeatsameslide(repeatflg,sestr,[tmp3,"\end{layer}",""]);
- );
- );
- );
- if(repeatflg==1,
- forall(2..(length(RepeatList)),nrep,
- tmp=RepeatList_nrep;
- forall(tmp,
- if(substring(#,0,1)!="%", //16.01.04
- println(SCEOUTPUT,#);
- );
- );
- );
-// println(SCEOUTPUT,"");
- );
- println(SCEOUTPUT,"\label{pageend}\mbox{}"); //180529
- println(SCEOUTPUT,"");
- println(SCEOUTPUT,"\end{document}");
- closefile(SCEOUTPUT);
-);
-////%Presentation end////
-
-////%Mkslides start////
-Mkslides():=(
- regional(store,sep,parent,texparentorg,tmp,tmp1,tmp2,tmp3,tmp4,flg);
- store=Fillblack();//181125
- tmp4=Fhead;
- Fhead="";
- if(!iswindows(), //17.10.13
- Dirwork=replace(Dirwork,"\",pathsep());
- parent=replace(Dirwork+Shellparent,"\",pathsep());
- ,
- Dirwork=replace(Dirwork,"/",pathsep());
- parent=replace(Dirwork+Batparent,"/",pathsep());// 16.05.29
- );
- tmp=replace(Dirwork,pathsep()+"fig","");//180604[2lines]
- Changework(tmp);
- Setdirectory(Dirwork);
- if(!iswindows(), //180604from
- println(setexec(Dirwork,Shellparent));
- ); //180604to
- if(length(Texmain)>0, // 15.08.14 from
- Texparent=Texmain;
- );
- texparentorg=Texparent; //17.04.10from
- if(isstring(Slidename), // 15.08.14 from
- Texparent=Slidename;
- );//17.04.10until
- if(!isexists(Dirwork,Texparent+".txt"), // 17.04.12from
- drawtext(mouse().xy,Texparent+".txt not exist in "+Dirwork,
- size->24,color->[1,0,0]);
- , // 17.04.12until
- Presentation(Texparent); // 15.08.14to
- if(iswindows(),
- tmp2=Batparent;
- parent=replace(Dirwork+Batparent,sep+"fig","");// 16.05.29
- if(indexof(Pathpdf,"Adobe")>0, //17.12.09from
- Makebat(Texparent,"ttv");
- ,
- Makebat(Texparent,"tv");
- ); //17.12.09until
- kc():=(
- println("kc : "+kc(parent,Dirlib,Fnametex)); // 16.06.10, 17.02.19
- );
- kc();
- Batparent=tmp2;
- ,
- tmp2=Shellparent;
- parent=replace(Dirwork+Shellparent,sep+"fig","");// 16.05.29
- Shellparent=replace(Shellparent,sep+"fig","");
- if(indexof(Pathpdf,"Adobe")>0, //17.12.09from
- Makeshell(Texparent,"ttv");
- ,
- Makeshell(Texparent,"tv");
- ); //17.12.09until
- kc():=(
- println("kc : "+kc(parent,Mackc+Dirlib,Fnametex)); // 16.06.10
- );
- kc();
- Shellparent=tmp2;
- );
- );
- Dirwork=Dirwork+pathsep()+"fig"; //17.10.16
- setdirectory(Dirwork);
- Fhead=tmp4;
- Texparent=texparentorg;//17.04.10
- Fillrestore(store);//181125
-);
-////%Mkslides end////
-
-////%Mkslidesummary start////
-Mkslidesummary():=( // 17.10.26 for R
- regional(texparentorg);
- texparentorg=Texparent;
- if(isstring(Slidename),
- Texparent=Slidename;
- );
- Mkslidesummary(Texparent,Texparent+"digest",["m","Wait=3"]);
- Texparent=texparentorg;
-);
-Mkslidesummary(fin,fout):=
- Mkslidesummary(fin,fout,["m","Wait=3"]);
-Mkslidesummary(inputfile,outputfile,options):=(
-//help:Mkslidesummary(fin,fout,options);
- regional(store,fin,fout,out,figflg,dirworkorg,dirtop,tmp);
- store=Fillblack();//181125
- dirworkorg=Dirwork;//17.04.10from
- dirtop=replace(Dirwork,pathsep()+"fig","");
- Changework(dirtop);//17.04.10uptp
- if(ismacosx(), //180604from
- println(setexec(Dirwork,Shellparent));
- ); //180604to
- fin=inputfile;
- if(indexof(fin,".")==0,fin=fin+".tex");
- fout=outputfile;
- if(indexof(fout,".")==0,fout=fout+".tex");
- cmdL=[
- "Dt=readLines"+PaO()+"'"+fin+"',encoding='UTF-8')",[],
- "num=grep"+PaO()+"'hypertarget',Dt,fixed=TRUE)",[], //180412
- "Dt=Dt[setdiff"+PaO()+"1:length"+PaO()+"Dt),num)]",[],
- "Smain=c"+PPa("")+";Snew=c"+PPa("")+";Ssame=c"+PPa(""),[],
- "for"+PaO()+"J in 1:length"+PaO()+"Dt)){",[],
- " Tmp=length"+PaO()+"grep"+PaO()+"'mainslide{',Dt[J],fixed=TRUE))",[], //180412
- " if"+PaO()+"Tmp>0){Smain=c"+PaO()+"Smain,1)}else{Smain=c"+PaO()+"Smain,0)}",[],
- " Tmp=length"+PaO()+"grep"+PaO()+"'newslide{',Dt[J],fixed=TRUE))",[], //180412
- " if"+PaO()+"Tmp>0){Snew=c"+PaO()+"Snew,1)}else{Snew=c"+PaO()+"Snew,0)}",[],
- " Tmp=length"+PaO()+"grep"+PaO()+"'sameslide',Dt[J],fixed=TRUE))",[], //180412
- " if"+PaO()+"Tmp>0){Ssame=c"+PaO()+"Ssame,1)}else{Ssame=c"+PaO()+"Ssame,0)}",[],
- "}",[],
- "Nnew=c"+PPa("")+";Nsame=c"+PPa(""),[],
- "for"+PaO()+"J in 1:length"+PaO()+"Dt)){",[],
- " if"+PaO(2)+"Snew[J]==1)|"+PaO()+"Smain[J]==1)){Nnew=c"+PaO()+"Nnew,J)}",[],
- " if"+PaO()+"Ssame[J]==1){Nsame=c"+PaO()+"Nsame,J)}",[],
- "}",[],
- "Out=Dt[1:Nnew[1]]",[],
- "for"+PaO()+"J in Looprange"+PaO()+"2,length"+PaO()+"Nnew))){",[],
- " Tmp=max"+PaO()+"c"+PaO()+"1,Nsame[Nsame<Nnew[J]]))",[],
- " Tmp=max"+PaO()+"c"+PaO()+"Tmp,Nnew[J-1]))+1",[],
- " Out=c"+PaO()+"Out,Dt[Tmp:Nnew[J]])",[],
- "}",[],
- "Tmp=max"+PaO()+"c"+PaO()+"Nsame[-1],Nnew[-1]))+1",[],
- "Out=c"+PaO()+"Out,Dt[Tmp:length"+PaO()+"Dt)])",[],
- "writeLines"+PaO()+"Out,'"+fout+"',sep='\n')",[] //180412[2lines removed]
- ];
- CalcbyR("",cmdL,append(options,"Cat=n"));//180412
- wait(1000);
- Changework(dirtop);//17.04.10
- tmp=replace(fout,".tex","");
- if(iswindows(),
- Makebat(tmp,"tv");
- ,
- Makeshell(tmp,"tv");
- );
- kc();
- Changework(dirworkorg);//17.04.10
- Fillstore(store);//181125
-);
-////%Mkslidesummary end////
-
////%Example start////
Example(exorg):=Example(exorg,"");
Example(exorg,suborg):=(
@@ -5649,787 +5255,6 @@ Example(exorg,suborg):=(
);
////%Example end////
-////%BBdata start////
-BBdata():=BBdata(BBTarget,0);
-BBdata(fname):=BBdata(fname,0); // 16.04.09
-BBdata(fname,optionorg):=(
-//help:BBdata(filename);
-//help:BBdata(options=0(automatic),1(make),"w=","h=");
- regional(fout,flg,path,file,kcfile,options,eqL,reL,stL,
- waiting,addop,tmp,tmp1,tmp2);
- path="";
- file=fname;
- flg=0;
- waiting=2;
- forall(reverse(1..length(fname)),
- if(flg==0,
- tmp=substring(fname,#-1,#);
- if(tmp=="/" % tmp=="\", // 14.01.15
- path=substring(fname,0,#-1);
- file=substring(fname,#,length(fname));
- flg=1;
- );
- );
- );
- if(path=="",path=Dirwork);//16.10.05
- if(indexof(file,".")==0,file=file+".pdf");
- if(islist(optionorg),options=optionorg,options=[optionorg]);
- tmp=Divoptions(options);
- eqL=tmp_5;
- reL=tmp_6;
- stL=tmp_7;
- flg=0;
- addop="";
- if(length(reL)>0,
- tmp=reL_1;
- if(tmp==1,flg=1);
- );
- forall(stL,
- tmp=Toupper(substring(#,0,1));
- if(tmp=="M",flg=1);
- );
- forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1)); //181111
- tmp2=substring(#,tmp,length(#));
- if(tmp1=="W",
- addop=addop+",width="+tmp2;
- options=remove(options,[#]);
- );
- if(tmp1=="H",
- addop=addop+",height="+tmp2;
- options=remove(options,[#]);
- );
- );
- tmp=indexof(file,".");
- tmp1=substring(file,0,tmp-1);
- fout=tmp1+".txt";
- if(iswindows(),
- kcfile="kc.bat";
- ,
- if(ismacosx(), //181219
- kcfile="kc.command";
- ,
- kcfile="kc.sh";
- );
- );
- if(flg==0,
- tmp=load(fout); //
- if(length(tmp)==0,
- flg=1;
- ,
- tmp=tokenize(tmp,"%%");
- tmp=tmp_2;
- tmp1=indexof(tmp,":");
- tmp=substring(tmp,tmp1,length(tmp));
- tmp=Removespace(tmp);
- if(tmp!=file,flg=1);
- );
- );
- if(length(path)==0,
- path=Dirwork;
- );
- if(flg==1,
- setdirectory(path);
- tmp=load(file);
- setdirectory(Dirwork);
- if(length(tmp)==0,
- println(" => "+file+" not exists");
- flg=-1;
- );
- );
- if(flg==1,
- SCEOUTPUT = openfile(kcfile);
- if(!iswindows(),
- println(SCEOUTPUT,"#!/bin/sh");
- );
- println(SCEOUTPUT,"cd "+Dq+path+Dq);
- tmp=replace(PathT,"pdflatex","extractbb"); //16.11.22
- tmp=replace(tmp,"pdftex","extractbb"); //16.11.22
- tmp=replace(tmp,"xelatex","extractbb");
- tmp=replace(tmp,"uplatex","extractbb"); //17.09.20
- tmp=replace(tmp,"platex","extractbb");
- tmp=replace(tmp,"latex","extractbb");
- tmp=tmp+" -O "+file;
- if(iswindows(),
- tmp=tmp+" > "+Dirwork+"\"+fout;
- ,
- tmp=tmp+" > "+Dirwork+"/"+fout;
- );
- println(SCEOUTPUT,tmp);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- kc(Dirwork+"/"+kcfile,Mackc+Dirlib,Fnametex); // 16.06.07
- );
- if(flg>=0,
- tmp1=0;
- repeat(floor(waiting*1000/WaitUnit),
- if(tmp1==0,
- wait(10);
- tmp=load(fout);
- if(indexof(tmp,"CreationDate")>0,
- tmp1=1;
- );
- );
- );
- if(length(tmp)==0,
- println(fout+" not generated. Maybe "+kcfile+" not run.");
- ,
- tmp=tokenize(tmp,"%%");
- tmp=select(tmp,indexof(#,"Bounding")>0);
- tmp=tmp_2; //
- tmp1=indexof(tmp,":");
- tmp=substring(tmp,tmp1,length(tmp));
- tmp=Removespace(tmp);
- tmp=tokenize(tmp," ");
- tmp1="";
- forall(tmp,
- tmp1=tmp1+Sprintf(#,2)+" ";
- );
- tmp1=Removespace(tmp1)+addop;
- tmp2="\includegraphics[bb="+tmp1+"]{"+file+"}";
- println(tmp2);
- );
- );
-// setdirectory(Dirwork);
- tmp2; // 16.04.25
-);
-////%BBdata end////
-
-////%Findfun start////
-Findfun(name,lineorg):=(
- regional(line,sep,pL,jj,kk,flg,rmv,out,tmp,tmp1,tmp2);
- line=Removespace(lineorg);
- rmv=[name,"regional","forall","if","text","curkernel","append","concat"];
- rmv=concat(rmv,["append","apply","allelements","indexof"]);
- rmv=concat(rmv,["substring","select","isstring","length"]);
- rmv=concat(rmv,["round","unicode","openfile","closefile","println","replace"]);
- rmv=concat(rmv,["setdirectory","parse","tokenize","import","load","ispoint"]);
- rmv=concat(rmv,["isreal","layer","autoclearlayer","drawpoly","allcircles"]);
- rmv=concat(rmv,["floor","flatten","prepend","islist","print","mod","abs","sum"]);
- rmv=concat(rmv,["cos","sin","tan","arccos","arcsin","arctan","sqrt","reverse","re"]);
- rmv=concat(rmv,["sort","contains","max","min","allpoints","isselected","common"]);
- rmv=concat(rmv,["inspect","iscircle","alllines","repeat","remove","format"]);
- rmv=concat(rmv,["ceil","while","dist","det","exp","err","arctan2","fillpoly"]);
- rmv=concat(rmv,["drawtext","mouse","allsegments","createpoint","create"]);
- rmv=concat(rmv,["gsave","connect","draw","grestore","wait"]);
-
-// rmv=concat(rmv,["d","list","c","funN","funP","function","for","return"]); // in string (for R)
-// rmv=concat(rmv,["gsub","cat"]); // in string (for R)
-// rmv=concat(rmv,["options"]); // written for Windows
-// rmv=concat(rmv,["isexists"]); // java functions
-
- sep=[""," ",",","=","(","+","-","*","/","^","_","[",".","!","&","%",Dq,";",">","<",unicode("0009")];
- out=[];
- if(substring(line,0,2)!="//",
- pL=Indexall(line,"(");
- forall(pL,jj,
- flg=0;
- if(contains(pL,jj-1), flg=1);
- forall(reverse(1..(jj-1)),
- if(flg==0,
- if(#==1,
- tmp=substring(line,0,1);
- if(contains(sep,tmp),
- tmp=substring(line,1,jj-1);
- ,
- tmp=substring(line,0,jj-1);
- );
- flg=1;
- );
- );
- if(flg==0,
- tmp=substring(line,#-1,#);
- if(contains(sep,tmp),
- tmp=substring(line,#,jj-1);
- if(indexof(substring(line,0,#-1),"//")==0,
- flg=1;
- );
- );
- );
- );
- if((flg==1)&(length(tmp)>0),
- out=append(out,tmp);
- );
- );
- );
- out=remove(out,rmv);
- tmp=out;
- out=[];
- forall(tmp,
- if(!contains(out,#),out=append(out,#));
- );
- out;
-);
-////%Findfun end////
-
-////%Extractfun start////
-Extractfun(strL):=(
- regional(nL,str,str2,start,sep,out,tmp,tmp1,tmp2);
- out=[];
- forall(strL,str,
- nL=Indexall(str,Dq);
- str2="";
- start=0;
- forall(1..(length(nL)/2),
- tmp1=nL_(2*#-1);
- str2=str2+substring(str,start,tmp1-1);
- start=nL_(2*#);
- );
- str2=str2+substring(str,start,length(str));
- fL=Findfun("csdraw",str2);
- out=remove(out,fL);
- out=concat(out,fL);
- );
-);
-////%Extractfun end////
-
-//DL1=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic1list.txt");
-//DL2=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic2list.txt");
-//DL=concat(DL1,DL2);
-//Out=[];
-
-////%Extractall start////
-Extractall(name):=(
- regional(fL,jj,tmp,tmp1,tmp2,tmp3);
- fL=apply(Out,#_1);
- tmp1=select(DL,#_1==name);
- if(length(tmp1)>0,
- tmp1=tmp1_1;
- if(!contains(fL,tmp1),
- Out=append(Out,tmp1);
- fL=append(fL,tmp1_1);
- if(length(tmp1)>=5,
- forall(5..(length(tmp1)),jj,
- tmp=tmp1_jj;
- if(!contains(fL,tmp),
- Extractall(tmp);
- );
- );
- );
- );
- );
- tmp1=Out;
- Out=[];
- forall(1..(length(tmp1)),
- if(!contains(Out,tmp1_#),
- Out=append(Out,tmp1_#);
- );
- );
- Out;
-);
-////%Extractall end////
-
-////%Copyketcindyjs start//// 190128
-Copyketcindyjs():=(
- regional(tmp,tmp1,tmp2,drive,fname);
- if(iswindows(),
- drive="C:";
- fname=Dirhead;
- tmp=indexof(fname,":");
- if(tmp>0,
- drive=substring(Dirwork,0,tmp);
- fname=substring(fname,tmp,length(fname));
- );
- kc():=(
- println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
- );
- SCEOUTPUT = openfile(Batparent);
- println(SCEOUTPUT,drive);
- println(SCEOUTPUT,"cd "+Dqq(fname));
- println(SCEOUTPUT,"set xcp="+Dqq("\Windows\System32\xcopy"));
- tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\");
- tmp2=" "+Dqq(Dircdy+"ketcindyjs\");
- println(SCEOUTPUT,tmp1+"Cindy.js.map"+tmp2);
- println(SCEOUTPUT,tmp1+"webfont.js"+tmp2);
- println(SCEOUTPUT,tmp1+"katex-plugin.js"+tmp2);
- println(SCEOUTPUT,tmp1+"Cindy.js"+tmp2);
- println(SCEOUTPUT,tmp1+"CindyJS.css"+tmp2);
- tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\katex\");
- tmp2=" "+Dqq(Dircdy+"ketcindyjs\katex\");
- println(SCEOUTPUT,tmp1+"katex.min.css"+tmp2);
- println(SCEOUTPUT,tmp1+"katex.min.js"+tmp2);
- tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\katex\fonts\");
- tmp2=" "+Dqq(Dircdy+"ketcindyjs\katex\fonts\");
- println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.ttf"+tmp2);
- println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.woff"+tmp2);
- println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.woff2"+tmp2);
- println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.ttf"+tmp2);
- println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.woff"+tmp2);
- println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.woff2"+tmp2);
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- ,
- kc():=(
- println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));
- );
- tmp1=Dircdy; //190214from
- if(substring(tmp1,length(tmp1)-1,length(tmp1))=="/",
- tmp1=substring(tmp1,0,length(tmp1)-1);
- ); //190214to
- SCEOUTPUT = openfile(Shellparent);
- println(SCEOUTPUT,"#!/bin/sh");
- println(SCEOUTPUT,"cd "+Dqq(tmp1)); //190214from
- println(SCEOUTPUT,"mkdir ketcindyjs");
- println(SCEOUTPUT,"cd "+Dqq(Dirhead+"/ketcindyjs"));
- println(SCEOUTPUT,"cp -r -p katex "+tmp1+"/ketcindyjs");
- println(SCEOUTPUT,"cp -p Cindy.js "+tmp1+"/ketcindyjs");
- println(SCEOUTPUT,"cp -p Cindy.js.map "+tmp1+"/ketcindyjs");
- println(SCEOUTPUT,"cp -p CindyJS.css "+tmp1+"/ketcindyjs");
- println(SCEOUTPUT,"cp -p katex-plugin.js "+tmp1+"/ketcindyjs");
- println(SCEOUTPUT,"cp -p webfont.js "+tmp1+"/ketcindyjs"); //190214to
- println(SCEOUTPUT,"exit 0");
- closefile(SCEOUTPUT);
- );
- kc();
-);
-////%Coptketcindyjs end////
-
-////%Ketjsoption start//// 190201
-Ketjsoption():=Setketcindyjs();
-Ketjsoption(list):=Setketcindyjs(list);
-////%Ketjsoption end////
-
-////%Setketcindyjs start//// 190201
-Setketcindyjs():=(
- KETJSOP;
-);
-Setketcindyjs(list):=(
-//help:Setketcindyjs();
-//help:Setketcindyjs(["Local=(n)","Scale=(1)","Nolabel=[]"]);
- regional(eqL,color,tmp);
- tmp=Divoptions(list);
- eqL=tmp_5;
- tmp=tmp_(length(tmp));
- tmp=substring(tmp,1,length(tmp));
- tmp=replace(tmp,"->","=");
- parse(tmp);
- tmp=round(255*color);
- if(color!=[0,0,0],eqL=append(eqL,"Color="+text(tmp)));
- KETJSOP=eqL;
- KETJSOP;
-);
-////%Setketcindyjs end////
-
-////%Mkketcindyjs start//// 190115
-Mkketcindyjs():=Mkketcindyjs(KETJSOP); //190129
-Mkketcindyjs(options):=( //17.11.18
-//help:Mkketcindyjs();
-//help:Mkketcindyjs(options=["Local=(y)","Scale=(1)","Nolabel=[]","Color=","Grid="]);
-//help:Mkketcindyjs(optionsadd=["Web=(y)","Path=Dircdy"]);
- regional(webflg,localflg,htm,htmorg,from,upto,flg,fL,fun,jj,tmp,tmp1,tmp2,tmp3,
- libnameL,libL,lib,jc,nn,name,partL,toppart,lastpart,path,ketflg,flg,cmdL,scale,
- nolabel,color,grid,out,igL,DL,Out);
- libnameL=["basic1","basic2","3d"];
- webflg="Y"; //190128 texflg removed
- localflg="Y"; //190209,0215
- scale=1; //190129
- nolabel=["SW","NE"]; //190129
- color="";
- grid="";
- path=Dircdy;
- forall(options,
- tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1));
- tmp2=tmp_2;
- if(tmp1=="W",
- if(length(tmp2)>0, //190209
- webflg=Toupper(substring(tmp2,0,1));
- );
- );
- if(tmp1=="L",
- if(length(tmp2)>0, //190209
- localflg=Toupper(substring(tmp2,0,1));
- );
- );
- if(tmp1=="S",
- if(length(tmp2)>0, //190209
- scale=parse(tmp2);
- );
- );
- if(tmp1=="N",
- if(length(tmp2)>0, //190209
- tmp=tmp2;
- if(indexof(tmp2,"[")>0,
- tmp=substring(tmp2,1,length(tmp2)-1);
- );
- tmp=tokenize(tmp,",");
- nolabel=concat(nolabe,tmp);
- );
- );
- if(tmp1=="C", //190209
- if(length(tmp2)>0,
- color=tmp2;
- if(substring(color,0,1)=="[", //190130from
- color=substring(color,1,length(color)-1);
- ); //190130to
- );
- );
- if(tmp1=="G",
- if(length(tmp2)>0,
- grid=tmp2;
- );
- );
- if(tmp1=="P",
- if(!tmp2="Dircdy",
- path=tmp2;
- );
- );
- );
- if((webflg=="N")&(localflg=="Y"),
- if(!isexists(Dircdy,"ketcindyjs"),
- Copyketcindyjs();
- println("ketcindyjs has been copied");
- );
- );
- if(!isexists(Dircdy,Fhead+".html"),
- drawtext(mouse().xy-[0,1],"'Write/Rewrite to CindyJS' at first",size->24,color->[1,0,0]);
- wait(3000);
- ,
- htmorg=Readlines(Dircdy,Fhead+".html");
- tmp=select(1..(length(htmorg)),indexof(htmorg_#,"id="+Dqq("csinit"))>0); //190206from
- from=tmp_1+5;
- flg=0;
- forall(from..(length(htmorg)),
- if(flg==0,
- if(indexof(htmorg_#,"</script>")>0,
- upto=#-1;
- flg=1;
- );
- );
- );
- tmp2=[];
- ketflg="off";
- forall(htmorg_(from..upto),
- if(indexof(#,"no ketjs")>0,
- if(indexof(#,"no ketjs on")>0,
- ketflg="on";
- );
- if(indexof(#,"no ketjs off")>0,
- ketflg="off";
- );
- ,
- if(ketflg=="off",
- tmp=Removespace(#);
- if(substring(tmp,0,2)!="//",
- tmp2=append(tmp2,#);
- );
- );
- );
- );
- tmp=select(1..(length(htmorg)),indexof(htmorg_#,"id="+Dqq("csdraw"))>0);
- from=tmp_1+1;
- flg=0;
- forall(from..(length(htmorg)),
- if(flg==0,
- if(indexof(htmorg_#,"</script>")>0,
- upto=#-1;
- flg=1;
- );
- );
- );
- ketflg="off";
- forall(htmorg_(from..upto),
- if(indexof(#,"no ketjs")>0,
- if(indexof(#,"no ketjs on")>0,
- ketflg="on";
- );
- if(indexof(#,"no ketjs off")>0,
- ketflg="off";
- );
- ,
- if(ketflg=="off",
- tmp=Removespace(#);
- if(substring(tmp,0,2)!="//",
- tmp2=append(tmp2,#);
- );
- );
- );
- );
- fL=Extractfun(tmp2); //190206to
- DL=[];
- forall(libnameL,name, //190209from
- tmp2=Readlines(Dirhead+pathsep()+"ketcindyjs",name+"list.txt");
- tmp1=[];
- forall(1..(length(tmp2)),nn,
- tmp=Indexall(tmp2_nn,",");
- from=0;
- tmp3=[];
- forall(tmp,
- tmp3=append(tmp3,substring(tmp2_nn,from,#-1));
- from=#;
- );
- tmp3=append(tmp3,substring(tmp2_nn,from,length(tmp2_nn)));
- tmp1=append(tmp1,tmp3);
- );
- DL=concat(DL,tmp1); //DL and Out are necessary for Extractall
- ); //190209to
- Out=[];
- forall(fL,fun,
- Extractall(fun);
- );
- tmp=Readlines(Dirhead+pathsep()+"ketcindyjs","ignoredfun.txt");
- tmp=apply(tmp,Removespace(#)); //190131
- igL=select(tmp,(length(#)>0)&(substring(#,0,2)!="//")); //190131
- tmp1=select(Out,contains(igL,#_1));
- Out=remove(Out,tmp1); USEDFUN=apply(Out,#_1); //190130
- tmp1=select(1..(length(htmorg)),indexof(htmorg_#,"script id=")>0);
- partL=[];
- forall(tmp1,nn,
- from=nn;
- tmp2=htmorg_from;
- tmp=Indexall(tmp2,Dq);
- name=substring(tmp2,tmp_1,tmp_2-1);
- tmp=select((from+1)..(length(htmorg)),indexof(htmorg_#,"</script>")>0);
- upto=tmp_1;
- partL=append(partL,[name,from,upto]);
- );
- tmp=apply(partL,#_2);
- tmp=min(tmp)-1;
- toppart=[1,tmp];
- tmp=apply(partL,#_3);
- tmp=max(tmp)+1;
- lastpart=[tmp,length(htmorg)];
- if(webflg=="Y",
- tmp1=Fhead+"json.html";
- ,
- tmp1=Fhead+"jsoff.html";
- if(localflg=="Y",tmp1=replace(tmp1,"off.","offL.")); //190209
- );
- setdirectory(path);
- SCEOUTPUT = openfile(tmp1);
- tmp1=htmorg_((toppart_1)..(toppart_2));
- if(webflg=="N",
- if(localflg=="N", //190128
- tmp3=replace(Dirhead+"/ketcindyjs/",pathsep(),"/");
- tmp= " <link rel="+Dqq("stylesheet")+" href=";
- tmp=tmp+Dq+"file:///"+tmp3+"CindyJS.css"+Dq+">";
- tmp1_(length(tmp1)-2)=tmp;
- tmp= " <script type="+Dqq("text/javascript")+" src=";
- tmp=tmp+Dq+"file:///"+tmp3+"Cindy.js"+Dq+"></script>";
- tmp1_(length(tmp1)-1)=tmp;
- tmp=" <script type="+Dqq("text/javascript")+" src="; //190117from
- tmp1_(length(tmp1))=""; //190120
- ,
- tmp1_(length(tmp1)-2)= //190128from
- " <link rel="+Dqq("stylesheet")+" href="+Dqq("ketcindyjs/CindyJS.css")+">"; //190203
- tmp1_(length(tmp1)-1)=
- " <script type="+Dqq("text/javascript")+" src="+Dqq("ketcindyjs/Cindy.js")+"></script>"; //190203
- tmp1_(length(tmp1))=""; //190128to
- );
- ,
- tmp1_(length(tmp1))=""; //190117to
- );
- forall(tmp1,
- println(SCEOUTPUT,#);
- );
- tmp="<script id="+Dqq("csinit")+" type=";
- tmp=tmp+Dqq("text/x-cindyscript")+">";
- println(SCEOUTPUT,tmp);
- tmp=Readlines(Dirhead+pathsep()+"ketcindyjs","commonused.txt");
- forall(tmp,
- println(SCEOUTPUT,#);
- );
- libL=[]; //190209from
- forall(libnameL,
- tmp=Readlines(Dirhead+"/ketlib","ketcindylib"+#+"r.cs");
- libL=append(libL,tmp);
- ); //190209to
- forall(Out,fun,
- libf=fun_2;from=parse(fun_3);upto=parse(fun_4);
- tmp=select(1..(length(libnameL)),indexof(libf,libnameL_#)>0); //190209from
- tmp=tmp_1;
- lib=libL_tmp;
- tmp1=lib_(from..upto); //190209from
- ketflg="off"; //190122from
- forall(tmp1,
- if(indexof(#,"no ketjs")>0,
- if(indexof(#,"no ketjs on")>0,
- ketflg="on";
- );
- if(indexof(#,"no ketjs off")>0,
- ketflg="off";
- );
- ,
- if(ketflg=="off",
- tmp=Removespace(#);
- if(substring(tmp,0,2)!="//",
- println(SCEOUTPUT,#);
- );
- ); //190122to
- );
- );
- );
- tmp=select(partL,#_1=="csinit");
- if(length(tmp)>0,
- tmp=tmp_1;
- from=tmp_2+5; //190206
- upto=tmp_3;
- tmp1=htmorg_((from+1)..(upto-1)); //190119
- kettef="off"; //190206from
- forall(tmp1,
- if(indexof(#,"no ketjs")>0,
- if(indexof(#,"no ketjs on")>0,
- ketflg="on";
- );
- if(indexof(#,"no ketjs off")>0,
- ketflg="off";
- );
- ,
- if(ketflg=="off",
- tmp=Removespace(#);
- if(substring(tmp,0,2)!="//",
- println(SCEOUTPUT,#);
- ,
- tmp1=indexof(tmp,"only ketjs"); //19020l6from
- if(tmp1>0,
- println(SCEOUTPUT,substring(tmp,2,tmp1-1));
- ); //190206to
- );
- );
- );
- );
- );
- println(SCEOUTPUT,"</script>");
- tmp=select(partL,#_1=="csdraw");
- tmp=tmp_1;
- from=tmp_2;
- upto=tmp_3;
- tmp1=htmorg_(from..upto);
- ketflg="off"; //190202from
- forall(tmp1,
- if(indexof(#,"no ketjs")>0,
- if(indexof(#,"no ketjs on")>0,
- ketflg="on";
- );
- if(indexof(#,"no ketjs off")>0,
- ketflg="off";
- );
- ,
- if(ketflg=="off",
- tmp=Removespace(#);
- if(substring(tmp,0,2)!="//",
- println(SCEOUTPUT,#);
- ,
- tmp1=indexof(tmp,"only ketjs"); //19020l6from
- if(tmp1>0,
- println(SCEOUTPUT,substring(tmp,2,tmp1-1));
- ); //190206to
- );
- );
- );
- ); //190206to
- tmp1=htmorg_((lastpart_1)..(lastpart_2));
- tmp=select(1..(length(tmp1)),indexof(tmp1_#,Dqq("cs*"))>0);
- tmp=tmp_1;
- forall(1..tmp, //190117from
- println(SCEOUTPUT,tmp1_#);
- );
- from=tmp+1; //190117to
- tmp=" use: ["+Dqq("katex")+"],";
- println(SCEOUTPUT,tmp);
- out=[]; //190129
- forall(from..(length(tmp1)),jj,
- flg=0; //190126from
- tmp2=["Figure","Parent","ParaF","Anime","Flip","Title","Slide","Digest",
- "KeTJS","KeTJSoff","Objview"];
- if(indexof(tmp1_jj,"type: "+Dqq("Button"))>0,
- nn=indexof(tmp1_jj,"text: ");
- tmp=substring(tmp1_jj,nn-1,length(tmp1_jj));
- nn=Indexall(tmp,Dq);
- tmp=substring(tmp,nn_1,nn_2-1);
- if(!contains(tmp2,tmp),
- out=append(out,tmp1_jj); //190129
- );
- flg=1;
- );
- if(flg==0,
- tmp=Indexof(tmp1_jj,"labeled: "); //190225
- if(tmp>0,
- tmp2=tmp1_jj;
- tmp=Indexall(tmp2,Dq); //190129from
- tmp=substring(tmp2,tmp_1,tmp_2-1);
- if(contains(nolabel,tmp),
- if(indexof(tmp2,"labeled: true")>0,
- tmp2=replace(tmp2,"labeled: true","labeled: false");
- );
- );
- if(indexof(tmp2,"size:")==0,
- tmp2=replace(tmp2,"}",", size: 3.0}");
- out=append(out,tmp2); //190129
- ,
- out=append(out,tmp2); //190129
- ); //190129to
- flg=1;
- );
- );
- if(flg==0,
- out=append(out,tmp1_jj); //190129
- ); //190126to
- );
- tmp=select(1..(length(out)),indexof(out_#," ],")>0); //190129from
- tmp=tmp_1;
- tmp1=out_(tmp-1);
- if(substring(tmp1,length(tmp1)-1,length(tmp1))==",", //190201from
- out_(tmp-1)=substring(tmp1,0,length(tmp1)-1);
- ); //190201to
- tmp=select(1..(length(out)),indexof(out_#,"width:")>0);
- jj=tmp_1;
- tmp1=out_jj;
- flg=0;
- forall(1..(length(tmp1)-1),
- if(flg==0,
- tmp=substring(tmp1,#-1,#);
- if(tmp==":",
- tmp2=substring(tmp1,#+1,length(tmp1)-1);
- flg=1;
- );
- );
- );
- tmp=round(scale*parse(tmp2));
- out_jj=" width: "+text(tmp)+",";
- tmp=select(1..(length(out)),indexof(out_#,"height:")>0);
- jj=tmp_1;
- tmp1=out_jj;
- flg=0;
- forall(1..(length(tmp1)-1),
- if(flg==0,
- tmp=substring(tmp1,#-1,#);
- if(tmp==":",
- tmp2=substring(tmp1,#+1,length(tmp1)-1);
- flg=1;
- );
- );
- );
- tmp=round(scale*parse(tmp2));
- out_jj=" height: "+text(tmp)+",";
- if(length(color)>0,
- tmp=select(1..(length(out)),indexof(out_#,"background: ")>0);
- jj=tmp_1;
- tmp=indexof(out_jj,")"); //190130from
- tmp=substring(out_jj,tmp-1,length(out_jj));
- out_jj=" background: "+Dq+"rgb("+color+tmp; //190130to
- );
- if(length(grid)>0,
- tmp=select(1..(length(out)),indexof(out_#,"grid:")>0);
- jj=tmp_1;
- tmp1=" grid: "+grid;
- if(indexof(out_jj,",")>0,
- tmp1=tmp1+",";
- );
- out_jj=tmp1;
- );
- forall(out,
- println(SCEOUTPUT,#);
- ); //190129to
- closefile(SCEOUTPUT);
- setdirectory(Dirwork);
- if(webflg=="Y",tmp="json",tmp="jsoff");
- drawtext(mouse().xy-[0,1],tmp+"in "+path,size->20,color->[1,0,0]);
- wait(1000);
- );
-);
-////%Mkketcindyjs end////
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3logr.txt
new file mode 100644
index 00000000000..439a6342477
--- /dev/null
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3logr.txt
@@ -0,0 +1,61 @@
+// 20190623
+// Fracform,Gcd added
+// 20190618
+// Mkketcindyjs changed (Error message)
+// 20190615
+// WritetoRS,Usegraphics,Viewtex,Figpdf changed ( indexof for pict2e,tikz )
+// 20190604
+// Mkketcindyjs changed ( eqflg added )
+// 20190528
+// Animationparam changed ( stop => rng)
+// 20190524
+// Animationparam added
+// 20190522
+// Textedit2value changed
+// Tocindyform,Tocindyformpart debugged
+// Toctexform,Totexformpart debugged
+// 20190521
+// Textedit2value added
+// Tocindyform,Tocindyformpart adde
+// Totexform changed (pi => \pi, case without "()")
+// 20190515
+// Totexform,Totexformpart changed(enhanced)
+// 20190514
+// Totexform,Totexformpart added
+// Copyketcindyjs debugged ( "/" added for "cd")
+// 20190506
+// Setketcindyjs,Mkketcindyjs debugged (color)
+// 20190504
+// Mkketcindyjs changed ( rmptL,REMOVEPTJS,border,"z" )
+// 20190502
+// Mkketcindyjs changed ( only ketjs on/off added )
+// 20190430
+// Textedit added
+// Mkketcindyjs debugged ( only ketjs)
+// 20190428
+// Mkketcindyjs debugged ( basic3d => basic3 )
+// Tenkeybrd, Getkey changed
+// 20190427
+// Tenkeybrd, Getkey added
+// 20190423
+// Ketcindyjsdata and Mkketcindyjs changed
+// 20190422
+// Ketcindyjsdata added
+// Setketcindyjs, Mkketcindyjs changed ( for Ketcindyjsdata )
+// 20190419
+// Findfun debugged ( inside of "" removed )
+// 20190417
+// Mkketcindyjs changed ( Ignore options )
+// 20190416
+// Findfun, Extractun, Extractall moved from basic2
+// Mkketcindyjs, Extractall debugged ( IgnoreList, DL globalized )
+// 20190415
+// Makeshell debugged ( Dq -> Dqq )
+// Makebat debugged ( tex,path (\) )
+// parse( ..= ) changed ( ; added )
+// 20190414
+// Makeshell Makebat changed ( Dqq(fname )
+// 20190412
+// newly generated
+// Some functions moved from basic2
+// Figpdf debugged (SCALEY)
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3r.cs
new file mode 100644
index 00000000000..8a953f20a95
--- /dev/null
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic3r.cs
@@ -0,0 +1,4162 @@
+// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team
+//
+//This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>
+//
+
+println("ketcindylibbasic3[20190623] loaded");
+
+//help:start();
+
+////%Tenkeybrd start////
+Tenkeybrd(pLB):=Tenkeybrd(pLB,[]);
+Tenkeybrd(pLB,options):=(
+//help:Tenkeybrd([2,1],"Size=1.5");
+//help: Tenkeybrd(Buttons shoud be given)
+ regional(axes,xL,yL,size,shade,color,tmp,tmp1);
+ size="Size=1.5";
+ shade="Y";
+ color="Color=[0,0,0.2,0]";
+ forall(options,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,2));
+ if(tmp1=="SI",
+ size=#;
+ );
+ if(tmp1=="SH",
+ shade=Toupper(substring(tmp_2,0,1));
+ );
+ if(tmp1=="CO",
+ color=#;
+ );
+ );
+ axes=ADDAXES;
+ cell=8;
+ if(shade=="Y",
+ Framedata2("tenkey",[pLB,pLB+cell/10*[3,5]]);
+ Shade(["frtenkey"],[color]);
+ );
+ xL=apply(1..3,cell);
+ yL=apply(1..5,cell);
+ Tabledata(xL,yL,[],[0,"Setw=n","Move="+text(pLB)]);
+ Addax(axes);
+ [tmp1,tmp2];
+);
+////%Tenkeybrd end////
+
+////%Keyaction start////
+Keyaction(key):=(
+ regional(kL,kstr,endflg,sign);
+//help:Keyaction(key);
+//help:Getkey(Tenkeys should be given in advance)
+ endflg=0;
+ sign=1;
+ if(indexof(Tenkeys,"-")>0,
+ sign=-1;
+ Tenkeys=replace(Tenkeys,"-","");
+ );
+ kstr=Tenkeys;
+ if((key=="C")%(key=="A")%(key=="=")%(indexof(key,"-")>0),
+ if(key=="C",kstr=substring(kstr,0,length(kstr)-1));
+ if(key=="A",sign=1;kstr="");
+ if(key=="=",endflg=1);
+ if(indexof(key,"-")>0,sign=-sign);
+ ,
+ kstr=kstr+key;
+ );
+ if(substring(kstr,0,1)==".",kstr="0"+kstr);
+ if(sign==-1,
+ kstr="-"+kstr;
+ );
+ Tenkeys=kstr;
+ endflg;
+);
+////%Keyaction end////
+
+////%Dispchoice start////
+Dispchoice():=(
+ if(islist(Ch),
+ if(!isreal(ChNum),ChNum=1);
+ drawtext(mouse().xy,"Ch="+text(Ch)+" N="+text(ChNum),size->24,color->[0,0,1]);
+ );
+);
+////%Dispchoice end////
+
+////%Datetime start////
+Datetime():=(
+//help:Datetime();
+ regional(names,dt,tmp);
+ tmp=getdatetime();
+ dt=tokenize(tmp," ");
+ dt=apply(dt,if(!isstring(#),text(#),#));
+ names=["Jan","Feb","Mar","Apr","May","Jun",
+ "Jul","Aug","Sep","Oct","Nov","Dec"];
+ tmp=select(1..12,names_#==dt_2);
+ tmp=text(tmp_1);
+ tmp=[dt_6+"/"+tmp+"/"+dt_3,dt_4];
+);
+////%Datetime end////
+
+////%Readcsvsla start////
+Readcsvsla(fname):=Readplotdigdata(fname,[]);
+Readcsvsla(fname,options):=Readplotdigdata(fname,options);
+Readplotdigdata(fname):=Readplotdigdata(fname,[]);
+Readplotdigdata(fname,options):=(
+ regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3);
+ tmp=Divoptions(options);
+ tmp1=tmp_6;
+ sc=1;//10;
+ mv=[0,0];//[5,5];
+ forall(tmp1,
+ if(!islist(#),sc=#,mv=#);
+ );
+ if(indexof(fname,".")>0,
+ tmp=load(fname);
+ ,
+ tmp=load(fname+".txt");
+ );
+ cmdall=tokenize(tmp,"//");
+ dataL=[];
+ forall(2..length(cmdall),ii,
+ tmp1=parse("["+cmdall_ii+"]");
+ dataL=append(dataL,tmp1);
+ );
+ if(length(dataL_(length(dataL)))<2,
+ dataL=dataL_(1..(length(dataL)-1));
+ );
+ nd=length(dataL_1)/2;
+ npt=length(dataL);
+ ptdata=[];
+ forall(1..nd,ii,
+ tmp3=[];
+ forall(1..npt,
+ tmp1=dataL_#_(2*ii-1);
+ tmp2=dataL_#_(2*ii);
+ if(isreal(tmp1),
+ tmp3=append(tmp3,[tmp1,tmp2]);
+ );
+ );
+ ptdata=append(ptdata,tmp3);
+ );
+ tmp1=[];
+ forall(ptdata,
+ tmp=#/sc;
+ tmp=Translatedata("1",[tmp],-mv,["nodata"]);
+ tmp1=append(tmp1,tmp);
+ );
+ ptdata=tmp1;
+ ptdata;
+);
+////%Readcsvsla end////
+
+////%Writebezier start////
+Writebezier():=Writebezier(Fhead,"all");
+Writebezier(head):=Writebezier(head,"all");
+Writebezier(head,seL):=(
+//help:Writebezier(file);
+//help:Writebezier(file,"acd");
+ regional(bz,dt,name,tmp,tmp1,tmp2);
+ bz=select(GLIST,indexof(#,"=Bezier")>0);
+ tmp1=[]; // 16.04.22from
+ if(seL!="all",
+ forall(1..length(seL),
+ tmp=substring(seL,#-1,#);
+ tmp=select(bz,indexof(#,"bz"+tmp)>0);
+ tmp1=concat(tmp1,tmp);
+ );
+ bz=tmp1;// 16.04.22until
+ );
+ dt=[head+"n",[[length(bz),0]]];
+ forall(1..length(bz),
+ tmp=indexof(bz_#,"=");
+ name=substring(bz_#,0,tmp-1);
+ tmp=indexof(bz_#,","+Dq);
+ if(tmp>0,
+ tmp1=substring(bz_#,0,tmp-1)+")";
+ ,
+ tmp1=bz_#;
+ );
+ tmp1=replace(tmp1,"Bezier(","[");
+ tmp1=replace(tmp1,"list"+PaO(),"[");
+ tmp1=replace(tmp1,")","]");
+ tmp1=replace(tmp1,",",".xy,");
+ tmp1=replace(tmp1,"]",".xy]");
+ tmp1=replace(tmp1,".xy,[",",[");
+ tmp1=replace(tmp1,"].xy","]");
+ tmp1=replace(tmp1,name,head+text(#))+";"; //190415
+ parse(tmp1);
+ tmp=parse(head+text(#)+"_1");
+ dt=concat(dt,[head+text(#)+"k",tmp]);
+ tmp=parse(head+text(#)+"_2");
+ dt=concat(dt,[head+text(#)+"c",tmp]);
+ );
+ WriteOutData(head+".txt",dt);
+ dt;
+);
+////%Writebezier end////
+
+////%Readbezier start////
+Readbezier(file):=Readbezier(file,[]);
+Readbezier(file,optionorg):=(
+//help:Readbezier("xsr");
+//help:Readbezier(options=["Num=10","nogeo"]);
+ regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3);
+ options=optionorg;
+ tmp=Divoptions(options);
+ stL=tmp_7;
+ geo=0;
+ forall(stL,
+ tmp=Toupper(substring(#,0,1));
+ if(tmp=="G",geo=1);
+ options=remove(options,[#]);
+ );
+ Readoutdata(file);
+ tmp=file+"n_1_1";
+ nn=parse(tmp);
+ out=[];
+ forall(1..nn,nc,
+ tmp=file+text(nc);
+ tmp1=parse(tmp+"k");
+ tmp2=parse(tmp+"c");
+ if(Measuredepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from
+ if(geo==1,
+ alpha="abcdefghijklmnopqrstuvwxyz";
+ forall(1..length(tmp1),
+ tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#);
+ Putpoint(tmp,tmp1_#,parse(tmp+".xy"));
+ inspect(parse(tmp),"labeled",false);
+ inspect(parse(tmp),"ptsize",3);
+ tmp1_#=parse(tmp+".xy");
+ );
+ forall(1..length(tmp2),
+ tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1";
+ Putpoint(tmp,tmp2_#_1,parse(tmp+".xy"));
+ inspect(parse(tmp),"labeled",false);
+ inspect(parse(tmp),"color",4);
+ inspect(parse(tmp),"ptsize",3);
+ tmp2_#_1=parse(tmp+".xy");
+ tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2";
+ Putpoint(tmp,tmp2_#_2,parse(tmp+".xy"));
+ inspect(parse(tmp),"labeled",false);
+ inspect(parse(tmp),"color",4);
+ inspect(parse(tmp),"ptsize",3);
+ tmp2_#_2=parse(tmp+".xy");
+ );
+ BezierNumber=BezierNumber+1;
+ );
+ Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22until
+ out=append(out,"bz"+tmp);
+ );
+ out;
+);
+////%Readbezier end////
+
+////%RSform start////
+RSform(str):=RSform(str,3);
+RSform(str,listfrom):=(
+//help:RSform(string,listfrom);
+ regional(posL,mxlv,rep1,rep2,rep3,prev,out,
+ tmp,tmp1,tmp2);
+ rep1="c"+PaO(); rep2="c"+PaO(); rep3="list"+PaO();
+ if(listfrom<3,rep2="list"+PaO());
+ if(listfrom==1,rep1="list"+PaO());
+ posL=Bracket(str,"[]");
+ tmp=apply(posL,#_2);
+ mxlv=max(tmp);
+ out="";
+ prev=0;
+ forall(posL,
+ out=out+substring(str,prev,#_1-1);
+ prev=#_1;
+ if(#_2>0,
+ tmp1=select(posL,tmp,(tmp_2<0)&(tmp_1>#_1));
+ tmp1=tmp1_1_1;
+ tmp=substring(str,#_1,tmp1);
+ if(#_2==mxlv,out=out+rep1);
+ if(#_2==mxlv-1,out=out+rep2);
+ if(#_2<=mxlv-2,out=out+rep3);
+ ,
+ out=out+")";
+ );
+ );
+ out=out+substring(str,prev,length(str));
+ out=replace(out,".xy","");
+ out=replace(out,".x","[1]");
+ out=replace(out,".y","[2]");
+ out=replace(out,"c"+PPa("1"),"[1]");//17.10.06[2lines]
+ out=replace(out,"c"+PPa("2"),"[2]");
+ out;
+);
+////%RSform end////
+
+////%RSslash start////
+RSslash(str):=( //17.09.24
+ regional(tmp);
+ tmp=replace(str,"\","\\");
+// tmp=replace(tmp,"\\\\","\\");
+ tmp;
+);
+////%RSslash end////
+
+////%Rform start////
+Rform(list):=(
+ regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
+ out=list;
+ out=replace(out,"[[[","list"+PaO()+"[[");
+ out=replace(out,"[","c"+PaO());
+ out=replace(out,"]",")");
+ out=replace(out,".xy","");
+ out=replace(out,".x","[1]");
+ out=replace(out,".y","[2]");
+ out;
+);
+////%Rform end////
+
+////%Defvar start////
+Defvar(varstr):=(
+ regional(name,value,tmp,tmp1);
+ if(isstring(varstr),
+ parse(varstr+";");
+ tmp=indexof(varstr,"=");
+ name=substring(varstr,0,tmp-1);
+ value=substring(varstr,tmp,length(varstr));
+ value=parse(value);
+ tmp1=select(1..length(VLIST),VLIST_#_1==name);
+ if(length(tmp1)>0,
+ tmp=tmp1_1;
+ VLIST_tmp=[name,value];
+ ,
+ VLIST=prepend([name,value],VLIST);
+ );
+ ,
+ forall(1..(length(varstr)/2), // 16.11.16from
+ name=varstr_(2*#-1);
+ value=varstr_(2*#);
+ Defvar(name,value);
+ ); // 16.11.16until
+ );
+);
+Defvar(name,value):=(
+//help:Defvar("a",0.3);
+//help:Defvar(["a",0.3,"b",2]);
+ regional(tmp,tmp1);
+ if(islist(value),
+ tmp1="[";
+ forall(value,
+ if(isstring(#), // 16.11.14
+ tmp1=tmp1+Dq+#+Dq+","; // 16.11.14
+ ,
+ tmp1=tmp1+format(#,5)+",";
+ );
+ );
+ tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
+ ,
+ tmp1=format(value,5);
+ );
+ tmp=name+"="+tmp1+";"; // 15.02.06//190415
+ parse(tmp);
+ VLIST=select(VLIST,#_1!=name); // 15.02.08
+ VLIST=prepend([name,value],VLIST);
+);
+////%Defvar end////
+
+////%IftoR start////
+IftoR(strorg):=( //180802
+ regional(str,ifL,ppL,cpL,kk,sL,out,
+ tmp,tmp1,tmp2,tmp3,tmp4);
+ str=replace(strorg,LFmark,"");
+ ifL=Indexall(str,"if"+PaO());
+ ppL=Bracket(str,"()");
+ cpL=Indexall(str,",");
+ tmp1=Bracket(str,"[]");
+ forall(1..(length(tmp1)/2),kk,
+ cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
+ );
+ forall(1..length(ifL),kk,
+ tmp=select(ppL,#_1>ifL_kk);
+ tmp1=tmp_1;
+ tmp2=select(tmp,#_2==-tmp1_2);
+ tmp2=tmp2_1;
+ tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
+ ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
+ );
+ forall(1..length(cpL),kk,
+ tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
+ tmp1=tmp_(length(tmp));
+ cpL_kk=[cpL_kk,tmp1];
+ );
+ sL=apply(1..length(str),substring(str,#-1,#));
+ forall(1..length(ifL),kk,
+ tmp1=ifL_kk_1;
+ tmp2=ifL_kk_2;
+ tmp=select(cpL,#_2==kk);
+ tmp3=apply(tmp,#_1);
+ sL_tmp1="(";
+ sL_tmp2="}";
+ sL_(tmp3_1)="){";
+ if(length(tmp3)>1,
+ sL_(tmp3_2)="}else{";
+ );
+ );
+ out=sum(sL);
+ out;
+);
+////%IftoR end////
+
+////%FortoR start////
+FortoR(strorg):=(
+ regional(str,pre,post,sub,ppL,forstr,out,tmp,tmp1,tmp2);
+ str=strorg;
+ forstr=indexof(str,"forall(");
+ if(forstr==0,
+ out=str;
+ ,
+ pre=substring(str,0,forstr-1)+"for"+PaO();
+ ppL=Bracket(str,"()");
+ tmp1=forstr+6;
+ tmp=select(ppL,#_1==tmp1);
+ tmp=select(ppL,#_2==-tmp_1_2);
+ tmp2=tmp_1_1;
+ sub=substring(str,tmp1,tmp2-1);
+ post="}"+substring(str,tmp2,length(str));
+ tmp=indexof(sub,",");
+ tmp1=substring(sub,0,tmp-1);
+ tmp2=substring(sub,tmp,length(sub));
+ sub=tmp1+"){"+tmp2;
+ tmp1=indexof(sub,"{");
+ tmp2=indexof(sub,",");
+ tmp=substring(sub,tmp1,tmp2-1);
+ pre=pre+tmp+" in "+substring(sub,0,tmp1-1)+"{";
+ sub=substring(sub,tmp2,length(sub));
+ tmp=FortoR(sub);
+ out=pre+tmp+"}";
+ );
+ out=replace(out,"..",":");
+ out;
+);
+////%FortoR end////
+
+////%Deffun start////
+Deffun(name,bodylist):=(
+//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]);
+ regional(funstr,str,Pos,nbody,bdy,ppL,bpL,excma,tmp,tmp1,tmp2);
+ funstr=name+":=(";
+ forall(bodylist,
+ funstr=funstr+#+";";
+ );
+ funstr=funstr+");";
+ parse(funstr);
+ tmp=indexof(name,"(");
+ str=substring(name,0,tmp-1)+"<-function"+PaO();
+ str=str+substring(name,tmp,length(name))+"{";
+ forall(1..(length(bodylist)-1),nbody,
+ bdy=bodylist_nbody;
+ Pos=indexof(bdy,"regional")+indexof(bdy,"local");
+ if(Pos==0,
+ bdy=replace(bdy,LFmark,"");
+ bdy=replace(bdy," ","");
+ ppL=Bracket(bdy,"()");
+ bpL=Bracket(bdy,"[]");
+ tmp1=select(bpL,#_2==1);
+ tmp2=select(bpL,#_2==-1);
+ excma=[];
+ forall(1..(length(tmp1)),
+ excma=append(excma,[tmp1_#_1,tmp2_#_1]);
+ );
+ tmp1=Indexall(bdy,",");
+ forall(tmp1,cma,
+ tmp=select(excma,(#_1<cma)&(cma<#_2));
+ if(length(tmp)>0,
+ bdy=substring(bdy,0,cma-1)+"'"+substring(bdy,cma,length(bdy));
+ );
+ );
+ tmp=indexof(bdy,"forall");
+ if(tmp>0,
+ bdy=FortoR(bdy);
+ );
+ tmp=indexof(bdy,"if(");
+ if(tmp>0,
+ bdy=IftoR(bdy);
+ );
+ bdy=RSform(replace(bdy,"'",","));
+ str=str+bdy+";";
+ );
+ );
+ str=str+"return"+PaO()+bodylist_(length(bodylist))+")}";
+ FUNLIST=append(FUNLIST,str);
+);
+////%Deffun end////
+
+////%WritetoRS start////
+WritetoSci():=WritetoRS(); //17.12.19
+WritetoSci(Arg):=WritetoRS(Arg);//180619
+WritetoRS():=WritetoRS(FnameR);// 17.09.17from
+WritetoRS(Arg):=(
+ regional(string,filename,shch,tmp1,tmp2);
+ if(isstring(Arg),
+ string=Arg;
+ if(indexof(string,".r")>0,
+ filename=string;
+ shch="";
+ ,
+ filename=FnameR;
+ shch=string;
+ );
+ WritetoRS(filename,shch);
+ ,
+ if(Arg<=1,WritetoRS(FnameR,"all"));
+ if(Arg==2,WritetoRS(FnameR,"sh"));
+ );
+);
+WritetoRS(filename,shchoice):=(
+ regional(Plist,Pos,GrL,str,tmp,tmp1,tmp2,cmd,ns,spos,epos);
+ //help:WritetoRS(2);
+ println("Write to R "+filename);
+ Plist=[];
+ Pnamelist=[];
+ forall(remove(allpoints(),[SW,NE]),
+ if(indexof(#.name,"[")==0, //181106
+ tmp=Lcrd(#);
+ tmp1=format(re(tmp_1),6);// 15.02.05
+ tmp2=format(re(tmp_2),6);
+ tmp=#.name+"="+"c("+tmp1+","+tmp2+");";
+ tmp=tmp+"Assignadd('"+#.name+"',"+#.name+")";
+ Plist=append(Plist,tmp);
+ ,
+ println("Remove the abnormal poiint "+#.name); //181106
+ );
+ );
+ SCEOUTPUT = openfile(filename);
+ tmp=Datetime();
+ println(SCEOUTPUT,"# date time="+tmp_1+" "+tmp_2);
+ if(isstring(CindyName), // 16.12.25from
+ if(length(CindyPathName)>0,
+ println(SCEOUTPUT,
+ "# path file="+CindyPathName+" "+CindyFileName+".cdy");
+ ,
+ println(SCEOUTPUT,"");
+ );
+ ,
+ println(SCEOUTPUT,"");
+ );
+ if(iswindows(),
+ println(SCEOUTPUT,"options"+PaO()+"encoding='UTF-8')"); //190111
+ );
+ tmp1=replace(Dirwork,"\","/");
+ if((iswindows())&(indexof(tmp1,"Users")>0),
+ tmp=Indexall(tmp1,"/");
+ tmp2=substring(tmp1,tmp_3-1,length(tmp1));
+ tmp1=substring(tmp1,0,tmp_3-1);
+ println(SCEOUTPUT,"Drv=shell"+PaO()+"'echo %HOMEDRIVE%',intern=TRUE)"); //190111
+ println(SCEOUTPUT,"Drv=Drv[length"+PaO()+"Drv)]");
+ println(SCEOUTPUT,"Hpath=shell"+PaO()+"'echo %HOMEPATH%',intern=TRUE)");
+ println(SCEOUTPUT,"Hpath=Hpath[length"+PaO()+"Hpath)]");
+ println(SCEOUTPUT,"Rest="+Dqq(tmp2));
+ println(SCEOUTPUT,"Path=paste"+PaO()+"Drv,Hpath,Rest,sep='')");
+ println(SCEOUTPUT,"Path=gsub"+PaO()+"'\\','/',Path,fixed=TRUE)"); //180610
+ println(SCEOUTPUT,"setwd"+PaO()+"Path)");
+ ,
+ println(SCEOUTPUT,"setwd"+PaO()+"'"+tmp1+"')");
+ );//180409to
+ tmp=replace(Libname,"\","/"); //17.09.24from
+ println(SCEOUTPUT,"source"+PaO()+"'"+tmp+".r')"); //181213
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
+ if(GPACK=="tpic",GPACK="pict2e");
+ );
+ if(indexof(GPACK,"pict2e")>0, // 190615
+ tmp=replace(tmp+"_rep2e","\","/");
+ println(SCEOUTPUT,"source('"+tmp+".r')");
+ );
+ if(indexof(GPACK,"tikz")>0, //181213from //190615
+ tmp=replace(tmp+"_reptikz","\","/");
+ println(SCEOUTPUT,"source"+PaO()+"'"+tmp+".r')");
+ ); //181213to
+ println(SCEOUTPUT,"Ketinit"+PPa(""));
+ println(SCEOUTPUT,"cat"+PaO()+"ThisVersion,'\n')");
+ println(SCEOUTPUT,"Fnametex='"+Fnametex+"'");
+ println(SCEOUTPUT,"FnameR='"+FnameR+"'");
+ println(SCEOUTPUT,"Fnameout='"+Fnameout+"'");
+ println(SCEOUTPUT,"arccos=acos; arcsin=asin; arctan=atan");
+ println(SCEOUTPUT,"Acos<- function"+PPa("x")+"{acos"+PaO()+"max"+PaO()+"-1,min"+PaO()+"1,x)))}");
+ println(SCEOUTPUT,"Asin<- function"+PPa("x")+"{asin"+PaO()+"max"+PaO()+"-1,min"+PaO()+"1,x)))}");
+ println(SCEOUTPUT,"Atan=atan");
+ println(SCEOUTPUT,"Sqr<- function"+PPa("x")+"{if"+PaO()+"x>=0){sqrt"+PaO()+"x)}else{0}}");
+ println(SCEOUTPUT,"Factorial=factorial");
+ println(SCEOUTPUT,"Norm<- function"+PPa("x")+"{norm"+PaO()+"matrix"+PaO()+"x,nrow=1),"+Dqq("2")+")}");
+ println(SCEOUTPUT,"");
+ forall(COM0thlist,
+ if(indexof(#,"Texcom")==0, //17.09.22
+ println(SCEOUTPUT,RSform(#));
+ ,
+ println(SCEOUTPUT,#);
+ );
+ );
+ println(SCEOUTPUT,
+ "Setwindow(c"+PaO()+XMIN+","+XMAX+"), c"+PaO()+YMIN+","+YMAX+"))");
+ forall(Plist,
+ println(SCEOUTPUT,#);
+ );
+ VLIST=select(VLIST,substring(#_1,0,1)!="["); //181107
+ forall(VLIST,
+ tmp=#_1;
+ tmp1=#_2;
+ if(!isstring(tmp1),
+ if(islist(tmp1),
+ tmp2="[";
+ forall(tmp1,
+ tmp2=tmp2+Textformat(#,6)+",";
+ );
+ tmp1=substring(tmp2,0,length(tmp2)-1)+"]";
+ ,
+ tmp1=format(tmp1,6);
+ );
+ );
+ tmp1=RSform(tmp1);
+ print(SCEOUTPUT,tmp+"="+tmp1+";"); //17.09.22
+// tmp=substring(tmp,0,length(tmp)-1);
+ println(SCEOUTPUT,"Assignadd"+PaO()+"'"+tmp+"',"+tmp+")");
+ );
+ forall(FUNLIST,
+ println(SCEOUTPUT,#);
+ );
+ forall(GLIST, //no ketjs on
+ println(SCEOUTPUT,RSform(#));
+ ); //no ketjs off
+ tmp=text(Pnamelist);
+ tmp=replace(tmp,"[","list"+PaO());
+ Pnamelist=replace(tmp,"]",")");
+ println(SCEOUTPUT,"PtL="+Pnamelist);
+ tmp=select(GCLIST,#_2==-1);
+ GrL=apply(tmp,#_1);
+ tmp=text(GrL);
+ tmp=replace(tmp,"[","list"+PaO());
+ tmp=replace(tmp,"]",")");
+ println(SCEOUTPUT,"GrL="+tmp);
+ tmp1="";
+ if(length(tmp1)>0,
+ tmp1="WriteOutData"+PaO()+"Fnameout"+tmp1+");";
+ println(SCEOUTPUT,tmp1);
+ );
+ forall(COM1stlist,
+ if(indexof(#,"Texcom")==0, //17.09.22
+ println(SCEOUTPUT,RSform(#));
+ ,
+ println(SCEOUTPUT,#);
+ );
+ );
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"# Windisp"+PPa("GrL"));
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"if"+PaO()+"1==1){");
+ println(SCEOUTPUT,"");
+ tmp1=replace(Dirwork,"\","/"); //180408to
+ if((iswindows())&(indexof(tmp1,"Users")>0),
+ println(SCEOUTPUT,"Path=paste"+PaO()+"Path,"+Dqq("/"+Fnametex)+",sep='')");
+ tmp="Openfile(Path,'"+ULEN+"'";
+ ,
+ tmp="Openfile('"+tmp1+"/"+Fnametex+"','"+ULEN+"'";
+ );
+ tmp=tmp+",'Cdy="+Cindyname()+".cdy"; //180404
+ tmp=replace(tmp,"\","\\");
+ println(SCEOUTPUT,tmp+"')");
+ forall(COM2ndlistb, //180613from
+ if(indexof(#,"Texcom")==0,
+ println(SCEOUTPUT,RSform(#));
+ ,
+ println(SCEOUTPUT,#);
+ );
+ );//180613to
+ forall(COM2ndlist,cmd,
+ tmp=substring(cmd,0,4);
+ if(contains(["Lett","Expr"],tmp), //180721from
+ tmp1=Indexall(cmd,Dq);
+ tmp2=length(tmp1)/4;
+ str=""; ns=0;
+ forall(tmp2,
+ spos=tmp1_(4*#-1); epos=tmp1_(4*#);
+ str=str+RSform(substring(cmd,ns,spos-1));
+ str=str+substring(cmd,spos-1,epos);
+ ns=epos;
+ );
+ str=str+substring(cmd,ns,length(cmd));
+ println(SCEOUTPUT,str);
+ ,
+ if(indexof(cmd,"Texcom")==0,
+ println(SCEOUTPUT,RSform(cmd));
+ ,
+ println(SCEOUTPUT,cmd);
+ );
+ ); //180721to
+ );
+ if(length(GrL)>0,
+ println(SCEOUTPUT," Drwline"+PPa("GrL"));
+ );
+ // println(SCEOUTPUT,"Closefile"+PaO()+"'"+ADDAXES+"')"); //181224(2line)
+ println(SCEOUTPUT,"Closefile"+PaO()+""+Dqq("0")+")");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"}");
+ if(shchoice=="sh",
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"quit"+PPa(""));
+ ,
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"#quit"+PPa(""));
+ );
+ closefile(SCEOUTPUT);
+ if(iswindows(), //180513from
+ SCEOUTPUT = openfile("execsrc.r");//180514
+ tmp1=replace(Dirwork,"\","/");
+ if(indexof(tmp1,"Users")>0,
+ tmp=Indexall(tmp1,"/");
+ tmp2=substring(tmp1,tmp_3-1,length(tmp1));
+ tmp1=substring(tmp1,0,tmp_3-1);
+ println(SCEOUTPUT,"Drv=shell"+PaO()+"'echo %HOMEDRIVE%',intern=TRUE)");
+ println(SCEOUTPUT,"Drv=Drv[length"+PaO()+"Drv)]");
+ println(SCEOUTPUT,"Hpath=shell"+PaO()+"'echo %HOMEPATH%',intern=TRUE)");
+ println(SCEOUTPUT,"Hpath=Hpath[length"+PaO()+"Hpath)]");
+ println(SCEOUTPUT,"Rest="+Dqq(tmp2));
+ println(SCEOUTPUT,"Path=paste"+PaO()+"Drv,Hpath,Rest,sep='')");
+ println(SCEOUTPUT,"setwd"+PaO()+"Path)");
+ println(SCEOUTPUT,"source"+PaO()+"'"+filename+"',encoding='UTF-8')");
+ );
+ closefile(SCEOUTPUT);
+ ); //180513to
+);
+////%WritetoRS end////
+
+////%Readoutdata start////
+Readoutdata():=Readoutdata(Fnameout);
+Readoutdata(filename):=Readoutdata("",filename); //16.03.07
+Readoutdata(Arg1,Arg2):=( //181030from
+ if(islist(Arg2),
+ Readoutdata("",Arg1,Arg2);
+ ,
+ Readoutdata(Arg1,Arg2,[]);
+ );
+); //181030to
+Readoutdata(pathorg,filenameorg,optionsorg):=(
+//help:Readoutdata();
+//help:Readoutdata("file.txt");
+//help:Readoutdata("/datafolder","file.txt");
+//help:Readoutdata(options=["Disp=n(/y)]");
+ regional(options,path,filename,varname,varL,ptL,pts,tmp,tmp1,tmp2,tmp3,tmp4,
+ nmbr,cmdall,cmd,cmdorg,outdt,goutdt,eqL,dispflg);
+ options=optionsorg;
+ dispflg=1;
+ tmp=Divoptions(options); //181024from
+ eqL=tmp_5;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=substring(tmp_1,0,1); tmp1=Toupper(tmp1);
+ tmp2=substring(tmp_2,0,1); tmp2=Toupper(tmp2);
+ if(tmp1=="D",
+ if(tmp2=="N",dispflg=0);
+ options=remove(options,[#]); //181030
+ );
+ ); //181024to
+ path=pathorg; //16.03.07 from
+ if(length(path)>0,
+ setdirectory(path);
+ if(indexof(path,"\")>0,tmp1="\",tmp1="/");
+ tmp=substring(path,length(path)-1,length(path));
+ if(tmp!=tmp1,path=path+tmp1);
+ ); //16.03.07to
+ filename=filenameorg; // 16.04.17
+ if(indexof(filename,".")==0,filename=filename+".txt");
+ tmp=load(filename);
+ cmdall=tokenize(tmp,"//");
+ varname=cmdall_1;
+ cmdall=cmdall_(2..length(cmdall));
+ outdt=[];
+ varL=[varname];
+ ptL=[];
+ forall(cmdall,cmdorg,
+ cmd=replace(cmdorg,LFmark,"");
+ if(length(cmd)>0,
+ if(cmd=="start" % cmd=="end" % substring(cmd,0,1)=="[",
+ if(cmd=="start",
+ pts=[];
+ );
+ if(cmd=="end",
+ ptL=append(ptL,pts);
+ );
+ if(substring(cmd,0,1)=="[",
+ tmp1=parse(cmd);
+ if(length(tmp1_1)==2,
+ tmp1=apply(tmp1,Pcrd(#));
+ );
+ pts=concat(pts,tmp1);
+ );
+ ,
+ if(length(ptL)>0,
+ if(length(ptL)==1,
+ ptL=ptL_1;
+ tmp=apply(ptL,Textformat(#,6));
+ ,
+ tmp="[";
+ forall(ptL,tmp1,
+ tmp=tmp+apply(tmp1,Textformat(#,6))+",";
+ );
+ tmp=substring(tmp,0,length(tmp)-1)+"]";
+ );
+ ,
+ tmp="[]";
+ );
+ parse(varname+"="+tmp+";"); //190415
+ outdt=append(outdt,ptL);
+ ptL=[];
+ varname=cmd;
+ varL=append(varL,varname);
+ );
+ );
+ );
+ if(length(ptL)>0,
+ if(length(ptL)==1,
+ ptL=ptL_1;
+ tmp=apply(ptL,Textformat(#,6));
+ ,
+ tmp="[";
+ forall(ptL,tmp1,
+ tmp=tmp+apply(tmp1,Textformat(#,6))+",";
+ );
+ tmp=substring(tmp,0,length(tmp)-1)+"]";
+ );
+ ,
+ tmp="[]";
+ );
+ parse(varname+"="+tmp+";"); //190415
+ outdt=append(outdt,ptL);
+ if(path=="",tmp=filename,tmp=path+filename); //16.03.07
+ GOUTLIST=append(GOUTLIST,[tmp,varL]);
+ if(length(path)>0, // 16.03.09
+ setdirectory(Dirwork); // 16.03.07
+ );
+ print("readoutdata from "+tmp+" : ");
+ if(dispflg==1, //181024from
+ println(varL);
+ ,
+ println("");
+ ); //181024to
+ varL;
+);
+////%Readoutdata end////
+
+////%Writeoutdata start////
+Writeoutdata(filename,ptlist):=(
+//help:Writeoutdata("file.txt",["g1",gr1,"sg",sgAB]);
+//help:Writeoutdata("file.txt",["g1",gr1,"sg",sgAB]);
+ regional(nn,Gname,Gdata,Str,Gstr,Gj,Pt,Flg,tmp,tmp1,loopend);
+ Flg=0;
+ if(isstring(ptlist_(length(ptlist))),
+ Flg=1;
+ );
+ SCEOUTPUT = openfile(filename);
+ if(Flg==0,
+ loopend=length(ptlist)/2;
+ ,
+ loopend=length(ptlist);
+ );
+ Gstr="[";
+ forall(1..loopend,nn,
+ if(Flg==0,
+ Gname=ptlist_(2*nn-1);
+ ,
+ Gname=ptlist_nn;
+ );
+ Gstr=Gstr+Gname+",";
+ println(SCEOUTPUT,Gname+"//");
+ if(Flg==0,
+ Gdata=ptlist_(2*nn);
+ ,
+ Gdata=parse(Gname);
+ );
+ Gdata=Flattenlist(Gdata);
+ if(Measuredepth(Gdata)==1,Gdata=[Gdata]);
+ forall(Gdata,Gj,
+ println(SCEOUTPUT,"start//");
+ Str="";
+ forall(Gj,Pt,
+ if(length(Str)>0,
+ Str=Str+","
+ );
+ Str=Str+"["+format(Pt_1,5)+",";
+ Str=Str+format(Pt_2,5);
+ if(length(Pt)<3,
+ Str=Str+"]";
+ ,
+ Str=Str+","+format(Pt_3,5)+"]";
+ );
+ if(length(Str)>80,
+ println(SCEOUTPUT,"["+Str+"]//");
+ Str="";
+ );
+ );
+ if(length(Str)>0,
+ println(SCEOUTPUT,"["+Str+"]//");
+ );
+ if((nn==loopend) & (Gj==Gdata_(length(Gdata))),
+ println(SCEOUTPUT,"end////");
+ ,
+ println(SCEOUTPUT,"end//");
+ );
+ );
+ );
+ closefile(SCEOUTPUT);
+ Gstr=substring(Gstr,0,length(Gstr)-1)+"]";
+ println("writeoutdata "+filename+":"+Gstr);
+);
+////%Writeoutdata end////
+
+////%Makeshell start////
+Makeshell():=(
+ if(length(Texmain)>0,
+ Texparent=Texmain;
+ );
+ if(length(Texparent)>0,
+ Makeshell(Texparent);
+ if(length(FigPdfList)>0,
+ SCEOUTPUT=openfile(Texparent+".tex");
+ forall(FigPdfList,println(SCEOUTPUT,#));
+ closefile(SCEOUTPUT);
+ );
+ ,
+ Makeshell(Fhead+"main");
+ );
+);
+Makeshell(texmainfile):=Makeshell(texmainfile,"rtv");
+Makeshell(texmainfile,flow):=(
+ regional(parent,tmp,tmp1,tmp2,tmp3,flg,tex,path,shnm);
+ parent=Dirwork+Shellparent; // 16.05.29
+ kc():=(
+ println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04,06.07
+ );
+ tmp1="";
+// tmp2=parent;
+ flg=0;
+ forall(reverse(1..length(parent)),
+ if(flg==0,
+ tmp=substring(parent,#-1,#);
+ if(tmp=="/" % tmp=="\", // 14.01.15
+ tmp1=substring(parent,0,#-1);
+ tmp2=substring(parent,#,length(parent));
+ flg=1;
+ );
+ );
+ );
+ if(length(tmp1)>0,
+ setdirectory(tmp1);
+ );
+ SCEOUTPUT = openfile(tmp2);
+ println(SCEOUTPUT,"#!/bin/sh");
+ println(SCEOUTPUT,"cd "+Dqq(Dirwork)); // 15.07.16
+ tmp1=" "+Dqq(Fhead)+" "+Dqq(texmainfile); // 15.12.11 //190415from
+ tmp=Indexall(PathT,"/");
+ flg=length(tmp);
+ if(flg>0,
+ tmp=tmp_(length(tmp));
+ tex=substring(PathT,tmp,length(PathT));
+ path=substring(PathT,0,tmp-1);
+ ); //190415to
+ if(flg==0, // 17.10.13[Norbert]
+ tex=PathT;
+ path="";
+ );
+ if(indexof(flow,"r")>0,
+ tmp=Dqq(PathR)+" --vanilla --slave < "+Dqq(Fhead+".r"); //190414
+ // 17.09.14
+ println(SCEOUTPUT,tmp);
+ );
+ if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13
+ tmp=Dqq(PathT)+" "+Dqq(texmainfile+".tex"); //190415
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ tmp=replace(Dqq(PathT),tex,"dvipdfmx")+" "+Dqq(texmainfile+".dvi"); //190415
+ println(SCEOUTPUT,tmp);
+ tmp="rm "+Dqq(texmainfile+".dvi"); //190414
+ println(SCEOUTPUT,tmp);
+ );
+ if(tex=="xelatex",
+ tmp="export PATH="+path+":${PATH}";
+ println(SCEOUTPUT,tmp);
+ tmp="xelatex"+" "+Dqq(texmainfile+".tex"); //190414
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ tmp="rm "+Dqq(texmainfile+".dvi"); //190414
+ println(SCEOUTPUT,tmp);
+ );
+ if(tex=="pdflatex" % tex=="pdftex",//16.11.22from
+ tmp=Dqq(PathT)+" "+Dqq(texmainfile+".tex"); //190414
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ );//16.11.22until
+ if(tex=="lualatex",//16.12.16
+ tmp=Dqq(PathT)+" "+Dqq(texmainfile+".tex"); //190414
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ );//16.12.16
+ if(!isstring(Pathpdf),
+ tmp="preview";
+ ,
+ tmp=Pathpdf;
+ );
+ if(tmp=="preview" % tmp=="skim", // 16.09.09from,16.10.20
+ tmp="open -a "+Dqq(tmp)+" "+Dqq(texmainfile+".pdf"); //190414
+ ,
+ tmp=Dqq(tmp)+" "+Dqq(texmainfile+".pdf"); //190414
+ );// 16.09.09until
+ println(SCEOUTPUT,tmp); // 16.07.21until
+ println(SCEOUTPUT,"exit 0");
+ closefile(SCEOUTPUT);
+ setdirectory(Dirwork);
+);
+////%Makeshell end////
+
+////%Convsjiswin start////
+Convsjiswin(dir,fname,ext):=( //180401
+ regional(ctr,flg,mx,tmp);
+ mx=200;
+ ctr=0;flg=0;
+ nkfwin(dir,fname,ext);
+ while((!isexists(dir,fname+".out"))&(ctr<mx),
+ wait(100);ctr=ctr+1;
+ );
+ if(ctr==mx,flg=1);
+ if(flg==0,
+ wait(100);ctr=0;
+ nkfcpdel(dir,fname,ext);
+ while((isexists(dir,fname+".out"))&(ctr<mx),
+ wait(100);ctr=ctr+1;
+ );
+ if(ctr==mx,flg=2);
+ );
+ tmp=dir+pathsep()+fname+"."+ext;
+ if(flg==0,
+ tmp=
+ println(tmp+" converted");
+ ,
+ println(tmp+" not converted "+text(flg));
+ );
+);
+////%Convsjiswin end////
+
+////%Makebat start////
+Makebat():=(
+ if(length(Texmain)>0,
+ Texparent=Texmain;
+ );
+ if(length(Texparent)>0,
+ Makebat(Texparent);
+ if(length(FigPdfList)>0,
+ SCEOUTPUT=openfile(Texparent+".tex");
+ forall(FigPdfList,println(SCEOUTPUT,#));
+ closefile(SCEOUTPUT);
+ );
+ ,
+ Makebat(Fhead+"main");
+ );
+);
+Makebat(texmainfile):=Makebat(texmainfile,"rtv");
+Makebat(texmainfile,flow):=(
+ regional(drive,fname,tmp,tmp1,tmp2,tmp3,flg,tex,path,batnm);
+ drive="C:";
+ fname=Dirwork+Batparent;
+ kc():=(
+ println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
+ );
+ tmp=indexof(fname,":");
+ if(tmp>0,
+ drive=substring(fname,0,tmp);
+ fname=substring(fname,tmp,length(fname));
+ );
+ tmp1="";
+ tmp2=fname;
+ flg=0;
+ forall(reverse(1..length(fname)),
+ if(flg==0,
+ tmp=substring(fname,#-1,#);
+ if(tmp=="/" % tmp=="\" % tmp=="\", // 14.01.15
+ tmp1=substring(fname,0,#-1);
+ tmp2=substring(fname,#,length(fname));
+ flg=1;
+ );
+ );
+ );
+ if(length(tmp1)>0,
+ setdirectory(drive+tmp1);
+ );
+ SCEOUTPUT = openfile(tmp2);
+ fname=replace(Dirwork,"/","\");
+ tmp=indexof(fname,":");
+ if(tmp>0,
+ drive=substring(Dirwork,0,tmp);
+ fname=substring(Dirwork,tmp,length(Dirwork));
+ println(SCEOUTPUT,drive);
+ );
+ tmp=Dirwork;//180408form
+ if(iswindows(),
+ if((isincludefull(Dirwork))&(isexists(Dirwork,"sjis.txt")),
+ import("sjis.txt");
+ );
+ );
+// tmp=replace(tmp,"\","/"); //180408
+// println(SCEOUTPUT,"cd "+Dqq(tmp)); //180408
+ tmp1=indexof(fname,"Users");//180409from
+ tmp2=indexof(fname,Homehead);
+ if((tmp1>0)%(tmp2>0),
+ if(tmp1>0,
+ fname=substring(fname,tmp1+length("Users")-1,length(fname));
+ ,
+ fname=substring(fname,tmp2+length(Homehead)-1,length(fname));
+ );
+ tmp=Indexall(fname,"\");//180403from
+ fname=substring(fname,tmp_2,length(fname));
+ fname="%HOMEPATH%\"+fname;
+ );//180403to
+ println(SCEOUTPUT,"cd "+Dqq(fname));//180409to //190414
+ tmp1=Indexall(PathT,"/"); //190415from
+ tmp2=Indexall(PathT,"\");
+ tmp=concat(tmp1,tmp2);
+ flg=length(tmp);
+ if(flg>0,
+ tmp=tmp_(length(tmp));
+ tex=substring(PathT,tmp,length(PathT));
+ path=substring(PathT,0,tmp-1);
+ ); //190415to
+ if(flg==0, // 17.10.13[Norbert]
+ tex=PathT;
+ path="";
+ );
+ if(indexof(flow,"r")>0,
+ if(indexof(Dirwork,"Users")>0, //180917from
+ tmp=Dqq(PathR+"\R")+" --vanilla --slave < execsrc.r";//180514
+ ,
+ tmp=Dqq(PathR+"\R")+" --vanilla --slave < "+Dqq(Fhead+".r"); //190414
+ ); //180917to
+ println(SCEOUTPUT,tmp);
+ );
+ if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13
+ tmp=Dqq(PathT)+" "+Dqq(texmainfile+".tex"); //190414
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ tmp=replace(Dqq(PathT),tex,"dvipdfmx")+" "+Dqq(texmainfile+".dvi"); //190414
+ println(SCEOUTPUT,tmp);
+ tmp="del "+Dqq(texmainfile+".dvi"); //190414
+ println(SCEOUTPUT,tmp);
+ );
+ if(tex=="xelatex",
+ tmp="set Path = %Path%;"+Dqq(path); //190414
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ tmp="xelatex"+" "+texmainfile+".tex";
+ println(SCEOUTPUT,tmp);
+ tmp="del "+Dqq(texmainfile+".dvi");
+ println(SCEOUTPUT,tmp);
+ );
+ if(tex=="pdflatex" % tex=="pdftex",//16.11.22from
+ tmp=Dqq(PathT)+" "+Dqq(texmainfile+".tex");
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ );//16.11.22until
+ if(tex=="lualatex",//16.12.16
+ tmp=Dqq(PathT)+" "+Dqq(texmainfile+".tex"); //190414
+ println(SCEOUTPUT,tmp);
+ if(indexof(flow,"tt")>0,println(SCEOUTPUT,tmp)); //17.10.14
+ );//16.12.16
+ if(!isstring(Pathpdf),
+ tmp=indexof(PathS,"\scilab");// 15.12.12
+ tmp=substring(PathS,0,tmp-1)+"\SumatraPDF\SumatraPDF.exe";
+ ,
+ tmp=Pathpdf;
+ );
+ tmp=Dqq(tmp)+" "+Dqq(texmainfile+".pdf"); //190414
+ println(SCEOUTPUT,tmp);
+ println(SCEOUTPUT,"exit 0");
+ closefile(SCEOUTPUT);
+ if(indexof(Dirwork,":")==0, // 14.01.15
+ drive="C:";
+ ,
+ drive="";
+ );
+ setdirectory(drive+Dirwork);
+);
+////%Makebat end////
+
+////%Addpackage start////
+Addpackage(packorg):=(
+//help:Addpackage("bm");
+//help:Addpackage(["bm","enumerate"]);
+//help:Addpackage(["bm","[c]{somepackage}"]);
+ regional(packL,tmp);
+ packL=packorg; //17.06.25from
+ if(!islist(packL),packL=[packL]);
+ packL=apply(packL,replace(#,"\","/"));
+ forall(1..(length(packL)),
+ tmp=packL_#;
+ if(substring(tmp,0,11)=="ketpicstyle",
+ tmp=replace(Dirhead+"/"+tmp,"\","/");
+ );
+ if(indexof(tmp,"[")==0,
+ packL_#="{"+tmp+"}";
+ );
+ );
+ ADDPACK=concat(ADDPACK,packL); //17.06.25to
+);
+////%Addpackage end////
+
+////%Usegraphics start////
+Usegraphics(gpack):=( //180817
+//help:Usegraphics("pict2e");
+ if(!contains(ADDPACK,gpack),
+ if(indexof(gpack,"tikz")>0, //181213from //190615
+ Addpackage(["pgf","tikz"]); //190101
+ ,
+ Addpackage([gpack]);
+ ); //181213to
+ );
+ GPACK=gpack;
+);
+////%Usegraphics end////
+
+////%Viewtex start////
+Viewtex():=(
+ regional(texfile,tmp,tmp1,sep);
+ texfile=Fhead+"main";
+// if(iswindows(),sep="\",sep="/"); // 17.04.07
+// sep="/";
+ SCEOUTPUT=openfile(texfile+".tex");
+ tmp="\documentclass{article}";
+ if(indexof(GPACK,"tikz")>0, //190324from //190615
+ if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")==0,
+ tmp="\documentclass[dvipdfmx]{article}";
+ ); //190324to
+ );
+ if(indexof(PathT,"platex")>0,
+ tmp=replace(tmp,"article","jarticle");
+ if(indexof(PathT,"uplatex")>0, //17.08.13from
+ tmp=replace(tmp,"jarticle","ujarticle");
+ );//17.08.13to
+ );
+ println(SCEOUTPUT,tmp);
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0), //181213from
+ if(GPACK=="tpic", GPACK="pict2e");
+ );
+ if(GPACK=="tpic",
+ tmp=replace(Dirhead,"\","/");
+ println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
+ );
+ if(indexof(GPACK,"pict2e")>0, //190615
+// println(SCEOUTPUT,"\usepackage{pict2e}"); //190615
+ println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");
+ if(indexof(PathT,"lualatex")>0,
+ println(SCEOUTPUT,"\usepackage{luatexja}");
+ );
+ );
+ if(indexof(GPACK,"tikz")>0, //190615
+ println(SCEOUTPUT,"\usepackage{pict2e}"); //190615
+ println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}"); //190615
+ if(indexof(PathT,"lualatex")>0,
+ println(SCEOUTPUT,"\usepackage{luatexja}");
+ );
+ );//181213to
+ println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
+ println(SCEOUTPUT,"\usepackage{graphicx}");
+ println(SCEOUTPUT,"\usepackage{color}");
+ forall(ADDPACK, // 16.05.16from
+ println(SCEOUTPUT,"\usepackage"+#); //17.05.25
+ );// 16.05.16until
+ println(SCEOUTPUT,"");
+// println(SCEOUTPUT,"\def\ketcindy{{K\kern-.20em%"); // deleted 16.11.27,recovered11.29 redeleted17.04.07
+// println(SCEOUTPUT,"\lower.5ex\hbox{E}\kern-.125em{TCindy}}}");
+// println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\setmargin{20}{20}{20}{20}");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\begin{document}");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\verb|"+Fhead+"| by \ketcindy");// 16.01.12, 18, 16.04.08
+// println(SCEOUTPUT,"\verb|"+Fhead+"| by KeTCindy");// 16.11.29 temporarily
+ println(SCEOUTPUT,"\vspace{5mm}");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\input{"+Fhead+".tex}");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\end{document}");
+ closefile(SCEOUTPUT);
+ if(iswindows(),
+ kc():=(
+ println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
+ );
+ Makebat(texfile);
+ ,
+ kc():=(
+ println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04
+ );
+ Makeshell(texfile);
+ );
+ WritetoRS(2); //17.09.19
+);
+////%Viewtex end////
+
+////%Viewparent start////
+Viewparent():=( //17.04.13
+ if(!isexists(Dirwork,Texparent+".tex"),
+ if(isstring(Texparent),
+ drawtext(mouse().xy,Texparent+".tex not exist",
+ size->24,color->[1,0,0]);
+ ,
+ drawtext(mouse().xy,"Texparent not defined",
+ size->24,color->[1,0,0]);
+ );
+ ,
+ if(iswindows(),
+ Makebat();
+ ,
+ Makeshell();
+ );
+ WritetoRS(2); //17.09.29
+ kc();
+ );
+);
+////%Viewparent end////
+
+////%Figpdf start////
+Figpdf():=Figpdf(Texparent,[]);
+Figpdf(Arg1):=(
+ if(isstring(Arg1),
+ Figpdf(Arg1,[]);
+ ,
+ Figpdf(Texparent,Arg1);
+ );
+);
+Figpdf(fnameorg,optionorg):=(
+//help:Figpdf();
+//help:Figpdf([10,,10,,[0,2] ]);(margin(4),move)
+//help:Figpdf([[0,0]]);(move)
+//help:Figpdf(options=[5,5,5,5,[0,0]]]);
+ regional(options,fname,mar,pos,dp,sc,tmp,tmp1,tmp2,sep);
+ fname=fnameorg;
+ if(indexof(fnameorg,".")==0,
+ fname=fnameorg+".tex";
+ );
+ tmp=apply(optionorg,if(isstring(#),parse("["+#+"]"),#)); // 16.04.07
+ tmp=select(tmp,#!=[]);
+ options=optionorg;//16.11.08from
+// mar=[5,5,5,5];
+ dp=[0,-3];
+ tmp=select(options,islist(#));
+ if(length(tmp)>0,
+ dp=tmp_1;
+ options=remove(options,tmp);
+ );
+ tmp=4-length(options);
+ tmp1=apply(1..tmp,5);
+ mar=concat(options,tmp1);
+ mar=apply(mar,if(length(#)==0,5,#));//16.11.08until
+ pos=[mar_1+dp_1,mar_3+dp_2];
+ sc=10;
+ tmp=indexof(ULEN,"cm");
+ if(tmp>0,
+ tmp1=Removespace(substring(ULEN,0,tmp-1));
+ sc=parse(tmp1)*10;
+ );
+ tmp=indexof(ULEN,"mm");
+ if(tmp>0,
+ tmp1=Removespace(substring(ULEN,0,tmp-1));
+ sc=parse(tmp1);
+ );
+ tmp="\documentclass{article}";
+ if(indexof(GPACK,"tikz")>0, //190324from //190615
+ if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")==0,
+ tmp="\documentclass[dvipdfmx]{article}";
+ ); //190324to
+ );
+ if(indexof(PathT,"platex")>0,
+ tmp=replace(tmp,"article","jarticle");
+ if(indexof(PathT,"uplatex")>0, //170813from
+ tmp=replace(tmp,"jarticle","ujarticle");
+ );//170813to
+ );
+ FigPdfList=append(FigPdfList,tmp); // 16.06.09until
+ tmp1="\special{papersize=W mm,H mm}";
+ tmp=(XMAX-XMIN)*sc+(mar_1+mar_2);
+ tmp1=replace(tmp1,"W",text(tmp));
+ tmp=SCALEY*(YMAX-YMIN)*sc+(mar_3+mar_4); //190412
+ tmp1=replace(tmp1,"H",text(tmp));
+ FigPdfList=append(FigPdfList,tmp1);
+ if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")>0, //17.11.05from
+ FigPdfList=append(FigPdfList,
+ "\usepackage{pict2e}");
+ tmp=replace(Dirhead,"\","/");
+ tmp=replace(tmp,"scripts","tex/latex");
+ if(isexists(tmp,""),
+ FigPdfList=append(FigPdfList,
+ "\usepackage{ketpic2e,ketlayer2e}");
+ ,
+ tmp=replace(Dirhead+"/ketpicstyle","\","/");
+ FigPdfList=concat(FigPdfList,
+ ["\usepackage{"+tmp+"/ketpic2e}",
+ "\usepackage{"+tmp+"/ketlayer2e}"]);
+ );
+ ,
+ tmp=replace(Dirhead,"\","/");
+ tmp=replace(tmp,"scripts","tex/latex");
+ if(isexists(tmp,""),
+ FigPdfList=append(FigPdfList,
+ "\usepackage{ketpic,ketlayer}");
+ ,
+ tmp=replace(Dirhead+"/ketpicstyle","\","/");
+ FigPdfList=concat(FigPdfList,
+ ["\usepackage{"+tmp+"/ketpic}",
+ "\usepackage{"+tmp+"/ketlayer}"]);
+ );
+ );//17.11.05until
+ FigPdfList=append(FigPdfList,
+ "\usepackage{amsmath,amssymb}");
+ FigPdfList=append(FigPdfList,
+ "\usepackage{graphicx,color}");
+ forall(ADDPACK, // 16.05.16from
+ tmp1="\usepackage"+#; //17.07.10
+ FigPdfList=append(FigPdfList,tmp1); // 16.09.05until
+ );
+ FigPdfList=append(FigPdfList,"");
+ FigPdfList=append(FigPdfList,
+ "\setmargin{0}{0}{0}{0}");
+ FigPdfList=append(FigPdfList,"");
+ FigPdfList=append(FigPdfList,"\begin{document}");
+ FigPdfList=append(FigPdfList,"");
+ FigPdfList=append(FigPdfList,
+ "\begin{layer}{50}{0}");
+ tmp1="\putnotese{X}{Y}{\input{";
+ tmp1=replace(tmp1,"X",text(pos_1));
+ tmp1=replace(tmp1,"Y",text(pos_2));
+ FigPdfList=append(FigPdfList,tmp1+Fhead+".tex}}");
+ FigPdfList=append(FigPdfList,"");
+ FigPdfList=append(FigPdfList,"\end{layer}");
+ FigPdfList=append(FigPdfList,"");
+ FigPdfList=append(FigPdfList,"\end{document}");
+ if(fnameorg!=Texparent,
+ SCEOUTPUT=openfile(fname);
+ forall(FigPdfList,println(SCEOUTPUT,#));
+ closefile(SCEOUTPUT);
+ );
+ FigPdfList;
+);
+////%Figpdf end////
+
+////%Slidework start////
+Slidework():=Slidework(Dirwork); // 16.06.10
+Slidework(dirorg):=(
+//help:Slidework(directory);
+ regional(dir,tmp); // 16.06.25
+ dir=replace(dirorg,unicode("000a"),""); // 16.06.25
+ dir=replace(dir,"/",pathsep());//17.11.20from
+ dir=replace(dir,"\",pathsep());
+ tmp=length(dir);
+ if(substring(dir,tmp-1,tmp)==pathsep(),
+ dir=substring(dir,0,tmp-1);
+ );//17.11.20until
+ if(isexists(dir,""), // 16.12.20
+ Changework(dir);
+ println(makedir(dir,"fig"));//17.11.23
+ tmp=dir+pathsep()+"fig"; //17.04.16from
+ Changework(tmp);// 17.02.19until
+ ,
+ println(dir+ " not exists");
+ );
+);
+////%Slidework end////
+
+////%Setslidemargin start////
+Setslidemargin(marginlist):=( // 180908
+//help:Setslidemargin([+5,-10]);
+ SlideMargin=marginlist;
+);
+////%Setslidemargin end////
+
+////%Setslidepage start////
+Setslidepage():=( // 17.03.05
+ regional(tmp1,tmp2,tmp3);
+ tmp1=["letterc","boxc","framec","shadowc","xpos","size"];
+ tmp2=apply([1,2,4,5,7,8],SlideColorList_#);
+ tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
+ println(tmp3);
+);
+Setslidepage(list):=( // 16.12.22
+//help:Setslidepage([letterc,boxc,framec,shadowc,xpos,size]);
+ regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
+ letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
+ shadowc=[0,0,0,0.5]; mboxc="yellow";
+ if(!islist(SlideColorList),
+ SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
+ letterc,mboxc,mboxc,mboxc,62,2,letterc];
+ );
+ numlist=[1,2,4,5,7,8];
+ forall(1..(length(list)),
+ if(length(list_#)>0,
+ tmp=numlist_#;
+ SlideColorList_tmp=list_#;
+ );
+ );
+ SlideColorList_3=SlideColorList_2;
+ SlideColorList_6=SlideColorList_5;
+);
+////%Setslidepage end////
+
+////%Setslidemain start////
+Setslidemain():=( // 17.03.05
+ regional(tmp1,tmp2,tmp3);
+ tmp1=["letterc","boxc","framec","xpos","size"];
+ tmp2=apply([9,10,12,13,14],SlideColorList_#);
+ tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
+ println(tmp3);
+);
+Setslidemain(list):=( // 16.12.22
+//help:Setslidemain([letterc,boxc,framec,xpos,size]);
+ regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
+ letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
+ shadowc=[0,0,0,0.5]; mboxc="yellow";
+ if(!islist(SlideColorList),
+ SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
+ letterc,mboxc,mboxc,mboxc,62,2,letterc];
+ );
+ numlist=[9,10,12,13,14];
+ forall(1..(length(list)),
+ if(length(list_#)>0, //17.01.04
+ tmp=numlist_#;
+ SlideColorList_tmp=list_#;
+ );
+ );
+ SlideColorList_11=SlideColorList_10;
+);
+////%Setslidemain end////
+
+////%Setslidebody start////
+Setslidebody():=( // 17.03.05
+ regional(tmp1,tmp2,tmp3);
+ tmp1=["letterc","style","thindense"];
+ tmp2=[SlideColorList_(15),BodyStyle,ThinDense];
+ tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#);
+ println(tmp3);
+);
+Setslidebody(str):=(
+ regional(clr,style,thin);
+ if(isstring(str),
+ Setslidebody(str,"\Large\bf\boldmath",0.1);
+ ,
+ if(length(str)==1,Setslidebody(str_1));
+ if(length(str)==2,Setslidebody(str_1,str_2));
+ if(length(str)==3,Setslidebody(str_1,str_2,str_3));
+ );
+);
+Setslidebody(str,Arg):=( //17.01.08
+ if(isstring(Arg),
+ Setslidebody(str,Arg,0.1);
+ ,
+ Setslidebody(str,"\Large\bf\boldmath",Arg);
+ );
+);
+Setslidebody(str,style,density):=( // 16.12.22,17.01.06,01.08
+//help:Setslidebody(["black",,0]);
+//help:Setslidebody(["blue","\Large\bf\boldmath",0.1]);
+ regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc);
+ letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
+ shadowc=[0,0,0,0.5]; mboxc="yellow";
+ if(!islist(SlideColorList),
+ SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
+ letterc,mboxc,mboxc,mboxc,62,2,letterc];
+ );
+ if(length(str)>0,SlideColorList_(15)=str);
+ if(length(style)>0,BodyStyle=style);
+ ThinDense=density;//17.01.08
+);
+////%Setslidebody end////
+
+////%Setslidehyper start////
+Setslidehyper():=( 17.12.16from
+ Setslidehyper(["cl=true,lc=blue,fc=blue",125,70,1]);
+);
+Setslidehyper(Arg):=(
+ if(isstring(Arg),
+ Setslidehyper(Arg,["cl=true,lc=blue,fc=blue",125,70,1]);
+ ,
+ Setslidehyper("",Arg);
+ );
+);
+Setslidehyper(driverorg,options):=(
+//help:Setslidehyper();
+//help:Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue","Pos=[125,73]","Size=1"]);
+ regional(driver,eqL,reL,stL,,str,tmp,tmp1,tmp2);
+ driver=driverorg;
+ if(length(driver)==0,
+ if(indexof(PathT,"pdflatex")+indexof(PathT,"lualatex")==0,
+ driver="dvipdfmx";
+ );
+ );
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ reL=tmp_6;
+ stL=tmp_7;
+ tmp1=select(eqL,length(Indexall(#,"="))>1); //180813from
+ eqL=remove(eqL,tmp1);
+ stL=concat(stL,tmp1); //180813to
+ if(length(stL)>0,
+ str=stL_1;
+ ,
+ str="";
+ );
+ if(length(str)==0,
+ str="cl=true,lc=blue,fc=blue";
+ );
+ if(length(driver)==0,
+ tmp1="["+str+"]";
+ ,
+ tmp1="["+driver+","+str+"]";
+ );
+ tmp1=replace(tmp1,"cl=","colorlinks=");
+ tmp1=replace(tmp1,"lc=","linkcolor=");
+ tmp1=replace(tmp1,"fc=","filecolor=");
+ tmp1=replace(tmp1,"uc=","urlcolor=");
+ ADDPACK=select(ADDPACK,indexof(#,"hyperref")==0);
+ Addpackage(tmp1+"{hyperref}");
+ tmp=indexof(tmp1,"linkcolor=");//180813from
+ tmp1=substring(tmp1,tmp-1,length(tmp1));
+ tmp=indexof(tmp1,"=");
+ tmp1=substring(tmp1,tmp,length(tmp1));
+ tmp=indexof(tmp1,",");
+ if(length(tmp)>0,
+ tmp1=substring(tmp1,0,tmp-1);
+ );//180813to
+ LinkColor=tmp1;
+ LinkPosH=125;
+ LinkPosV=73;//180524
+ LinkSize=1;
+// if(length(reL)>0,
+// LinkPosH=reL_1;
+// if(length(reL)>1,LinkPosV=reL_2);
+// if(length(reL)>2,LinkSize=max(reL_3,0.1));
+// );
+ forall(eqL,
+ tmp=Indexall(#,"=");//180524from
+ if(length(tmp)==1,
+ tmp1=Toupper(substring(#,0,1));
+ tmp2=substring(#,tmp_1,length(#));
+ tmp2=parse(tmp2);
+ if(tmp1=="P",
+ LinkPosH=tmp2_1;
+ LinkPosV=tmp2_2;
+ );
+ if(tmp1=="S",
+ LinkSize=max(tmp2,0.1);
+ );
+ );//180524to
+ );
+); //17.12.16to
+////%Setslidehyper end////
+
+////%Settitle start////
+Settitle(cmdL):=Settitle("",cmdL,[]); // 180608from
+Settitle(Arg1,Arg2):=(
+ if(isstring(Arg1),
+ Settitle(Arg1,Arg2,[]);
+ ,
+ Settitle("",Arg1,Arg2);
+ );
+); // 180608to
+Settitle(titleold,cmdL,options):=(
+//help:Settitle(cmdL);
+//help:Settitle(name,cmdL);
+//help:Settitle(options=["Title=slide0","Layery=0","Color=blue"]);
+ regional(tmp,tmp1,tmp2,eqL,layery,color,size,font);
+ TitleName="slide0"; //180330
+ if(length(titleold)>0,TitleName=titleold);//180608
+ layery="0";
+ color="blue";
+ size="\Large";
+ font="\bf";
+// tmp=Divoptions(options);
+// eqL=tmp_5;
+ eqL=options; //180602
+ forall(eqL,
+ tmp1=Toupper(substring(#,0,1));
+ tmp=indexof(#,"=");
+ tmp2=substring(#,tmp,length(#));
+ if(tmp1=="L",
+ layery=tmp2;
+ );
+ if(tmp1=="C",
+ color=tmp2;
+ );
+ if(tmp1=="S",
+ size=tmp2;
+ if(substring(size,0,1)!="\",size="\"+size);
+ );
+ if(tmp1=="F",
+ font=tmp2;
+ if(substring(font,0,1)!="\",font="\"+font);
+ );
+ if(tmp1=="T", //180330
+ TitleName=tmp2;
+ );
+ );
+ TitleCmdL=["{"+size+font];
+ if(indexof(color,"[")>0,
+ tmp=replace(color,"[","{");
+ tmp=replace(tmp,"]","}");
+ tmp1=Indexall(tmp,",");
+ if(length(tmp1)>=3,
+ tmp="\color[cmyk]"+tmp;
+ ,
+ tmp="\color[rgb]"+tmp;
+ );
+ ,
+ tmp="\color{"+color+"}";
+ );
+ TitleCmdL=append(TitleCmdL,tmp);
+ TitleCmdL=concat(TitleCmdL,["","\begin{layer}{120}{"+layery+"}"]);
+ forall(1..(length(cmdL)),
+ tmp=cmdL_#;
+ if(length(tmp)>0,
+ if(#==1,
+ tmp="{\Huge \putnote"+tmp+"}"
+ ,
+ tmp="\putnote"+tmp;
+ );
+ TitleCmdL=append(TitleCmdL,tmp);
+ );
+ );
+ TitleCmdL=concat(TitleCmdL,["\end{layer}","","}"]);
+);
+////%Settitle end////
+
+////%Maketitle start////
+Maketitle():=(
+ if(!isstring(TitleName), //17.04.13from
+ drawtext(mouse().xy,"Settitle not defined",
+ size->24,color->[1,0,0]);
+ , //17.04.13until
+ Maketitle(TitleName);
+ );
+);
+Maketitle(name):=(
+//help:Maketitle();
+ regional(texfile,texmain,tmp,tmp1,sep,txtfile);
+ texfile=name;
+ texmain=name+"main";
+ SCEOUTPUT=openfile(texfile+".tex");
+ forall(TitleCmdL,
+ println(SCEOUTPUT,#);
+ );
+ closefile(SCEOUTPUT);
+ SCEOUTPUT=openfile(texmain+".tex");
+ tmp="\documentclass[landscape,10pt]{article}";
+ if(indexof(PathT,"platex")>0,
+ tmp=replace(tmp,"article","jarticle");
+ if(indexof(PathT,"uplatex")>0, //17.08.13from
+ tmp=replace(tmp,"jarticle","ujarticle");
+ );//17.08.13until
+ );
+ println(SCEOUTPUT,tmp);
+ tmp="\special{papersize=\the\paperwidth,\the\paperheight}";
+ println(SCEOUTPUT,tmp);
+ tmp=replace(Dirhead,"\","/");//17.11.01from
+ tmp=replace(tmp,"scripts","tex/latex");
+ if(isexists(tmp,""),
+ println(SCEOUTPUT,"\usepackage{ketpic,ketlayer,ketslide}");
+ ,
+ tmp=replace(Dirhead+"/ketpicstyle","\","/");
+ println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
+ println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
+ println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}");
+ );//17.11.01until
+ println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
+ println(SCEOUTPUT,"\usepackage{bm,enumerate}");
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
+ println(SCEOUTPUT,"\usepackage{graphicx}");
+ ,
+ println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
+ );
+ println(SCEOUTPUT,"\usepackage[usenames]{color}"); //190222
+ forall(ADDPACK,
+// if(indexof(#,"[")==0,
+// println(SCEOUTPUT,"\usepackage{"+#+"}");
+// ,
+ println(SCEOUTPUT,"\usepackage"+#); // 17.07.10
+// );
+ );
+ if(indexof(PathT,"platex")>0,tmp="\ketmarginJ",tmp="\ketmarginE");
+ println(SCEOUTPUT,tmp);
+ println(SCEOUTPUT,"\ketslideinit");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\begin{document}");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\input{"+texfile+".tex}");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\end{document}");
+ closefile(SCEOUTPUT);
+ if(iswindows(),
+ Makebat(texmain,"tv");
+ ,
+ Makeshell(texmain,"tv");
+ );
+ kc();
+ txtfile=Cindyname()+".txt"; //180815from
+ if(!isexists(Dircdy,txtfile),
+ setdirectory(Dircdy);
+ SCEOUTPUT=openfile(txtfile);
+ println(SCEOUTPUT,"title::"+name+"//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
+ println(SCEOUTPUT,"main::"+PaO()+"title)//");
+ println(SCEOUTPUT,"\slidepage[m]//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
+ println(SCEOUTPUT,"new::"+PaO()+"title)//");
+ println(SCEOUTPUT,"%repeat=1,para//");
+ println(SCEOUTPUT,"\slidepage//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"layer::{120}{0}//");
+ println(SCEOUTPUT,"%%putnote::s{65}{5}:://");
+ println(SCEOUTPUT,"end//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"itemize//");
+ println(SCEOUTPUT,"item//");
+ println(SCEOUTPUT,"end//");
+ closefile(SCEOUTPUT);
+ setdirectory(Dirwork); //180815to
+ );
+);
+////%Maketitle end////
+
+////%Repeatsameslide start////
+Repeatsameslide(repeatflg,sestr,addedL):=(
+ regional(seL,flg1,ss,nn,nrep,tmp,tmp1,tmp2,tmp3,str,j,k);
+ // global RepeatList, SCEOUTPUT, NonThinFlg
+ nrep=length(RepeatList);
+ flg1=0;
+ forall(addedL,ss,
+ if(repeatflg==0,
+ if(substring(ss,0,1)!="%", //16.01.04
+ println(SCEOUTPUT,ss);
+ );//16.01.04
+ ,
+ forall(1..nrep,nn,
+ if(sestr=="",
+ RepeatList_nn=append(RepeatList_nn,ss);
+ );
+ );
+ if(sestr=="",
+ seL=[1];
+ ,
+ tmp1=substring(sestr,1,length(sestr)-1);
+ tmp1=replace(tmp1,",-",".."+text(nrep));
+ tmp1=replace(tmp1,"-,","1..");
+ tmp1="["+tmp1+"]"; //17.01.03
+ seL=flatten(parse(tmp1)); //17.01.03
+ );
+ if(contains(seL,1),
+ if(substring(ss,0,1)!="%", //16.01.04
+ println(SCEOUTPUT,ss);
+ );
+ seL=remove(seL,[1]);
+ flg1=1;
+ );
+ forall(1..(length(seL)),nn,
+ tmp=seL_nn;
+ if(tmp<=length(RepeatList), //17.01.12from
+ RepeatList_tmp=append( RepeatList_tmp,ss);
+ ,
+ println(" "+sestr+" : "+text(tmp)+" > "+text(length(RepeatList)));
+ );
+ );
+ if(ThinFlg==1,//16.01.05from
+ if(flg1==1,seL=append(seL,1));
+ seL=remove(1..nrep,seL);
+ str=ss; // 17.05.28from
+ if(substring(str,0,16)=="\begin{minipage}",MiniFlg=1);//180526
+ repeat(10,
+ tmp1=Indexall(str,"{\color");
+ if(length(tmp1)>0,
+ tmp2=Indexall(str,"}");
+ tmp=select(tmp2,tmp1_1<#);
+ tmp=substring(str,tmp1_1,tmp_1);
+ str=replace(str,tmp+" ","");
+ str=replace(str,tmp,"");
+ );
+ );//17.05.28to
+ if(contains(seL,1),
+ if(substring(str,0,1)!="%",
+ if(NonThinFlg==0,
+ if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
+ if(MiniFlg==0, //180526from
+ println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}%");//180701
+ println(SCEOUTPUT,str);
+ println(SCEOUTPUT,"}%");
+ ,
+ println(SCEOUTPUT,str);
+ if(indexof(str,"\end{minipage}")>0, //180526from
+ println(SCEOUTPUT,"}%");
+ );
+ ); //180526to
+ ,
+ println(SCEOUTPUT,str);
+ if(indexof(str,"\end{minipage}")>0, //180526from
+ println(SCEOUTPUT,"}%");
+ MiniFlg=0;
+ );
+ );
+ );
+ if(NonThinFlg==1,
+ if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
+ println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}%");//180701
+ println(SCEOUTPUT,str);
+ ,
+ println(SCEOUTPUT,str);
+ if(indexof(str,"\end{minipage}")>0, //180526from
+ println(SCEOUTPUT,"}%");
+ MiniFlg=0;
+ );
+ );
+ );
+ if(NonThinFlg==2,
+ println(SCEOUTPUT,str);
+ if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
+ println(SCEOUTPUT,"}%");
+ , //180526from
+ if(indexof(str,"\end{minipage}")>0,
+ println(SCEOUTPUT,"}%");
+ MiniFlg=0;
+ ); //180526from
+ );
+ );
+ seL=remove(seL,[1]);
+ );
+ );
+ if(substring(ss,0,1)!="%", //16.01.04
+ forall(1..(length(seL)),nn,
+ if(substring(str,0,16)=="\begin{minipage}",MiniFlg=1);//180526
+ tmp=seL_nn;
+ if(NonThinFlg==0,
+ if(!contains(["\begi","\end{"],substring(str,0,5)),//180526from
+ if(MiniFlg==0,
+ tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}%";//180701
+ tmp1=[tmp1,str,"}%"];
+ ,
+ tmp1=[str];
+ if(indexof(str,"\end{minipage}")>0, //180526from
+ tmp1=append(tmp1,"}%");
+ );
+ );
+ ,
+ tmp1=[str];
+ if(indexof(str,"\end{minipage}")>0,
+ tmp1=append(tmp1,"}%");
+ MiniFlg=0;
+ );
+ );
+ );
+ if(NonThinFlg==1,
+ if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
+ tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}%";//180701
+ tmp1=[tmp1,str];
+ ,
+ tmp1=[str];
+ if(indexof(str,"\end{minipage}")>0,
+ tmp1=append(tmp1,"}%");
+ MiniFlg=0;
+ );
+ );
+ );
+ if(NonThinFlg==2,
+ tmp1=[str];
+ if(!contains(["\begi","\end{"],substring(str,0,5)),
+ tmp1=append(tmp1,"}%");
+ ,
+ if(indexof(str,"\end{minipage}")>0,
+ tmp1=append(tmp1,"}%");
+ MiniFlg=0;
+ );
+ );
+ );
+ RepeatList_tmp=concat( RepeatList_tmp,tmp1);
+ );
+ );
+ );//16.01.05to
+ );
+ );//16.12.05to
+);
+////%Repeatsameslide end////
+
+////%Presentation start////
+Presentation(texfile):=Presentation(texfile,texfile);
+Presentation(texfile,txtfile):=(
+//help:Presentation(texfile,txtfile);
+ regional(file,flgL,flg,verbflg,slideL,ns,slideorgL,wall,sld,slidecmd,tmp,tmp0,tmp1,
+ tmp2,tmp3,tmp4,tmp5,newoption,top,repeatflg,nrep,nrepprev,,repstr,
+ sestr,npara,paradt,parafiles,hyperflg,paractr,
+ letterc,boxc,shadowc,mboxc,sep);
+ MiniFlg=0;//180526
+ slidecmd=["\ketcletter","\ketcbox","\ketdbox","\ketcframe",
+ "\ketcshadow","\ketdshadow","\slidetitlex","\slidetitlesize",
+ "\mketcletter","\mketcbox","\mketdbox","\mketcframe",
+ "\mslidetitlex","\mslidetitlesize"];
+ if(!isstring(BodyStyle),//17.01.06
+ BodyStyle="\Large\bf\boldmath";
+ );
+ repeatflg=0;
+ RepeatList=[];
+ paractr=0; //16.12.31
+ if(indexof(texfile,".")==0,file=texfile+".tex",file=texfile);
+ if(indexof(txtfile,".")==0,tmp1=txtfile+".txt",tmp1=txtfile);
+// tmp=load(tmp1); //181125from
+ tmp=readfile2str(Dirwork,tmp1);
+ tmp=replace(tmp,"////","||||");
+ tmp=replace(tmp,"/L"+"F/::","::");
+ tmp=replace(tmp,"///L"+"F/","/L"+"F/");
+ slideL=tokenize(tmp,"/L"+"F/"); //181125to
+ slideorgL=slideL; // 16.07.11
+ slideL=apply(slideL,Removespace(#));
+ tmp=select(1..length(slideL),length(slideL_#)>0); // 16.07.11from
+ slideL=apply(tmp,slideL_#);
+ slideorgL=apply(tmp,slideorgL_#);
+// slideL=select(slideL,length(#)>0); // 16.07.11until
+ flg=0; // 16.06.09from
+ forall(1..10,
+ if(flg==0,
+ if(substring(slideL_1,0,1)!="%",
+ flg=1;
+ ,
+ slideL=slideL_(2..length(slideL));
+ slideorgL=slideorgL_(2..length(slideorgL));
+ );
+ );
+ ); // 16.06.09until
+ flgL=[];
+ SCEOUTPUT = openfile(file);
+ tmp=tokenize(slideL_1,"::");
+ tmp1=tmp_1;
+ if(length(tmp)>1,
+ tmp2=tmp_2;
+ tmp3=tmp_(3..length(tmp));//16.06.25
+ ,
+ tmp2="";
+ tmp3=tmp_(2..length(tmp));//16.06.25
+ );
+ wall=""; // 16.06.10
+ if(length(tmp3)>0,//16.06.25from
+ tmp=substring(tmp3_1,0,1);//180330
+ if((tmp!="\")&(tmp!="%")&(indexof(tmp3_1,"=")==0), //180330
+ wall=tmp3_1;
+ tmp3=tmp3_(2..length(tmp3));
+ );
+ );//16.06.25until
+ tmp="%%% "+tmp1+" "+txtfile;// 16.06.09from
+ println(SCEOUTPUT,tmp);
+ tmp="\documentclass[landscape,10pt]{article}";
+ if(indexof(PathT,"platex")>0,
+ tmp=replace(tmp,"article","jarticle");
+ if(indexof(PathT,"uplatex")>0, //17.08.13from
+ tmp=replace(tmp,"jarticle","ujarticle");
+ );//17.08.13until
+ );
+ println(SCEOUTPUT,tmp);// 16.06.09from
+ tmp=select(1..(length(tmp3)),indexof(tmp3_#,"\usepackage")>0);//17.06.18from
+ forall(tmp,
+ println(SCEOUTPUT,tmp3_#);
+ );
+ tmp=remove(1..(length(tmp3)),tmp);
+ tmp3=tmp3_tmp;//17.06.18until
+// if(iswindows(),sep="\",sep="/"); // 17.04.08
+// sep="/";
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
+ if(indexof(PathT,"lualatex")>0,
+ println(SCEOUTPUT,"\usepackage{luatexja}");
+ );
+ println(SCEOUTPUT,"\usepackage{pict2e}");
+ println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");// 17.04.08from
+ ,
+ println(SCEOUTPUT,"\special{papersize=\the\paperwidth,\the\paperheight}");
+ );// 17.04.08until
+ tmp=replace(Dirhead,"\","/");//17.11.01from
+ tmp=replace(tmp,"scripts","tex/latex");
+ if(isexists(tmp,""),
+ println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}");
+ ,
+ tmp=replace(Dirhead+"/ketpicstyle","\","/");
+ println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}");
+ println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}");
+ );
+ if(length(wall)==0,
+ tmp=replace(Dirhead,"\","/");//17.11.01from
+ tmp=replace(tmp,"scripts","tex/latex");
+ if(isexists(tmp,""),
+ println(SCEOUTPUT,"\usepackage{ketslide}");
+ ,
+ tmp=replace(Dirhead+"/ketpicstyle","\","/");
+ println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}");
+ );
+ ,
+ tmp=replace(Dirhead,"\","/");
+ tmp=replace(tmp,"scripts","tex/latex");
+ if(isexists(tmp,""),
+ println(SCEOUTPUT,"\usepackage{ketslide2}");
+ ,
+ tmp=replace(Dirhead+"/ketpicstyle","\","/");
+ println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide2}");
+ );
+ );//17.04.08until
+ println(SCEOUTPUT,"\usepackage{amsmath,amssymb}");
+ println(SCEOUTPUT,"\usepackage{bm,enumerate}");
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
+ println(SCEOUTPUT,"\usepackage{graphicx}");
+ ,
+ println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}");
+ );
+ println(SCEOUTPUT,"\usepackage{color}");//190222
+ letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
+ shadowc=[0,0,0,0.5]; mboxc="yellow";
+ tmp4="abcdefghijklmno";
+ forall(1..15,
+ tmp=SlideColorList_#;
+ if(islist(tmp),
+ tmp=text(tmp);
+ tmp=substring(tmp,1,length(tmp)-1);
+ if(length(SlideColorList_#)==4,//17.01.07from
+ println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{cmyk}{"+tmp+"}");
+ );
+ if(length(SlideColorList_#)==3,
+ println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{rgb}{"+tmp+"}");
+ );//17.01.07until
+ SlideColorList_#="slidecolor"+tmp4_#;
+ );
+ );
+ println(SCEOUTPUT,"\def\setthin#1{\def\thin{#1}}");//17.08.23
+ println(SCEOUTPUT,"\setthin{"+text(ThinDense)+"}");//17.08.23
+ println(SCEOUTPUT,"\newcommand{\slidepage}[1][s]{%");//180524from
+ println(SCEOUTPUT,"\setcounter{ketpicctra}{18}%");
+ println(SCEOUTPUT,"\if#1m \setcounter{ketpicctra}{1}\fi");
+ println(SCEOUTPUT,"\hypersetup{linkcolor=black}%");
+ println(SCEOUTPUT,"");//180908
+ println(SCEOUTPUT,"\begin{layer}{118}{0}");
+ println(SCEOUTPUT,"\putnotee{122}{-\theketpicctra.05}{\small\thepage/\pageref{pageend}}");
+ println(SCEOUTPUT,"\end{layer}\hypersetup{linkcolor="+LinkColor+"}");
+ println(SCEOUTPUT,"");//180908
+ println(SCEOUTPUT,"}");//189524to
+ forall(ADDPACK,// 16.06.09from
+ println(SCEOUTPUT,"\usepackage"+#);
+ );// 16.06.09to
+ tmp=select(ADDPACK,indexof(#,"{hyperref}")>0);//16.12.31from
+ if(length(tmp)>0,
+ hyperflg=1;
+ ,
+ hyperflg=0; //16.12.31until
+ );
+ forall(tmp3,
+ println(SCEOUTPUT,#);
+ );
+ if(indexof(PathT,"platex")>0, //180903,180908from
+ tmp="\setmargin{"+text(25+SlideMargin_1)+"}{";
+ tmp=tmp+text(145-SlideMargin_1)+"}{";
+ tmp=tmp+text(15+SlideMargin_2)+"}{";
+ tmp=tmp+text(100-SlideMargin_2)+"}";
+ ,
+ tmp="\setmargin{"+text(20+SlideMargin_1)+"}{";
+ tmp=tmp+text(135-SlideMargin_1)+"}{";
+ tmp=tmp+text(15+SlideMargin_2)+"}{";
+ tmp=tmp+text(100-SlideMargin_2)+"}";
+ ); // 180903,180908to
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,tmp);
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\ketslideinit");
+ println(SCEOUTPUT,"");
+ forall(tmp, // 15.07.21
+ if(substring(#,0,1)=="\", println(SCEOUTPUT,#));
+ );
+// if(!isstring(PageStyle),PageStyle="headings");//180524from
+// println(SCEOUTPUT,"\pagestyle{"+PageStyle+"}");
+ println(SCEOUTPUT,"\pagestyle{empty}");//180524to
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\begin{document}");
+ println(SCEOUTPUT,"");
+ if(length(wall)>0,
+ println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
+ println(SCEOUTPUT,"");
+ );
+ if(length(tmp2)>0,
+ if(indexof(tmp2," no")==0, // 16.11.11from
+ println(SCEOUTPUT,"\begin{layer}{120}{0}");
+ if(substring(tmp2,0,1)!="\",
+ tmp2="\putnotese{0}{0}{\input{fig/"+tmp2+".tex}}";//16.12.27
+ );
+ println(SCEOUTPUT,tmp2);
+ println(SCEOUTPUT,"\end{layer}");
+ println(SCEOUTPUT,"");
+ ,
+ tmp=indexof(tmp2,"=");
+ if(tmp==0,
+ top="10mm";
+ ,
+ top=substring(tmp2,tmp,length(tmp2));
+ );
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\vspace*{"+top+"}");
+ println(SCEOUTPUT,"");
+ ); // 16.11.11until
+ );
+ println(SCEOUTPUT,"\def\mainslidetitley{22}");
+ forall(1..14, //16.12.22from
+ tmp=SlideColorList_#;
+ if(!isstring(tmp),tmp=text(tmp));
+ if(length(tmp)>0,
+ tmp="\def"+slidecmd_#+"{"+tmp+"}";
+ println(SCEOUTPUT,tmp);
+ );
+ );//16.12.22until
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\color{"+SlideColorList_(15)+"}");
+ println(SCEOUTPUT,BodyStyle);//17.01.07
+// println(SCEOUTPUT,"\thispagestyle{empty}");//180524
+ println(SCEOUTPUT,"\addtocounter{page}{-1}");//17.01.29
+ println(SCEOUTPUT,"");
+ verbflg=0; //16.06.28
+ repeatflg=0;//16.12.02
+ nrep=0;//16.12.27
+ nrepprev=0;//17.01.03
+ npara=0;//16.12.27
+ forall(2..length(slideL),ns,
+ ThinFlg=0;
+ NonThinFlg=0;
+ flg=0;
+ tmp1="";
+ tmp2="";
+ tmp3="";
+ sld=Removespace(slideL_ns); // 16.06.28
+ sestr="";
+ if((substring(sld,0,1)=="%") & (substring(sld,0,2)!="%%"), // 17.06.23
+ Repeatsameslide(repeatflg,"",[slideL_ns]);
+ if(repeatflg>0,
+ tmp=indexof(sld,"]::");
+ if(tmp>0,
+ if(substring(sld,1,2)!="%",//17.05.31
+ if(substring(sld,1,5)=="thin",
+ ThinFlg=1;
+ );
+ sestr=substring(sld,1,tmp);
+ sld=substring(sld,tmp+2,length(sld));
+ tmp=indexof(sestr,"[");
+ sestr=substring(sestr,tmp-1,length(sestr));//17.01.05
+ );
+ );
+ );
+ if(substring(sld,1,7)=="repeat", // 16.12.09from
+ tmp=indexof(sld,"=");
+ tmp5=substring(sld,tmp,length(sld));
+ tmp=indexof(tmp5,",");
+ if(tmp>0,//17.01.03from
+ tmp5=substring(tmp5,0,tmp-1);
+ );//17.01.03until
+ repeatflg=1;
+ if(length(tmp5)>0,
+ nrep=parse(tmp5);
+ tmp=[];
+ if(length(wall)>0,
+ tmp=["","\input{fig/"+wall+".tex}"];
+ );
+ tmp=concat(tmp,
+ ["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]);//180524
+ RepeatList=apply(1..nrep,if(#==1,[],tmp));
+ );
+ if(sestr=="",flg=1);
+ tmp=indexof(sld,",");//17.01.03from
+ if(tmp>0,
+ sld="%"+substring(sld,tmp,length(sld));
+ if(indexof(sld,"=")==0,sld=sld+"=");
+ );//17.01.03until
+ );
+ if(substring(sld,1,5)=="para",
+ paractr=paractr+1;
+ repeatflg=1;
+ tmp=indexof(sld,"=");
+ tmp=substring(sld,tmp,length(sld));
+ if(length(tmp)==0, //17.01.03
+ npara=0;
+ ,
+ paradt=tokenize(tmp,":");
+ tmp=fileslist(Dirwork+"/fig/"+paradt_1);
+ if(length(tmp)>0,
+ parafiles=tokenize(tmp,",");
+ if(indexof(paradt_4,"input")>0,
+ tmp0=indexof(paradt_4,",");//17.01.29from
+ if(tmp0>0,
+ paradt=append(paradt,substring(paradt_4,tmp0,length(paradt_4)));
+ paradt_4=substring(paradt_4,0,tmp0-1);
+ );//17.01.29until
+ parafiles=select(parafiles,indexof(#,".tex")>0);
+ parafiles=sort(parafiles); //180627
+ if(indexof(paradt_4,"\input")==0,paradt_4="\"+paradt_4);//16.12.17
+ );
+ if(indexof(paradt_4,"include")>0,
+ parafiles=select(parafiles,indexof(#,".pdf")>0);
+ parafiles=sort(parafiles); //180627
+ );
+ npara=length(parafiles);
+ ,
+ println(Dirwork+"/fig/"+paradt_1+" not found");
+ parafiles=[];
+ npara=0;
+ );
+ if(nrep==0,
+ nrep=npara;
+ if(length(wall)>0,
+ tmp=["","\input{fig/"+wall+".tex}"];
+ );
+ tmp=concat(tmp,
+ ["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]);//180524
+ RepeatList=apply(1..nrep,if(#==1,[],tmp));
+ );
+ );
+ forall(1..nrep, //16.12.28
+ tmp4=[]; //16.12.31from
+ if(hyperflg>0,
+ tmp4=["\hypertarget{para"+text(paractr)+"pg"+text(#)+"}{}"];
+ );//16.12.31to
+ if(npara>0, //17.01.03
+ tmp4=concat(tmp4,["","\begin{layer}{120}"+paradt_2]);
+ if(#<=npara, //16.12.28from
+ tmp=parafiles_#;
+ ,
+ tmp=parafiles_npara;
+ );
+ tmp="{"+paradt_4+"{fig/"+paradt_1+"/"+tmp+"}}";
+ if(length(paradt)>=5,
+ tmp="{\scalebox{"+text(paradt_5)+"}"+tmp+"}";
+ );
+ if(substring(paradt_3,0,1)=="\",
+ tmp=paradt_3+tmp;
+ ,
+ tmp="\putnote"+paradt_3+tmp;
+ );
+ tmp4=concat(tmp4,[tmp]);//16.12.31
+ ,
+ tmp4=concat(tmp4,["","\begin{layer}{120}{0}"]);
+ );
+ if((hyperflg>0) & (LinkSize>0.15),
+ tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; // 17.01.12from
+ tmp1=tmp+text(paractr)+"pg";
+ tmp2=tmp+text(paractr-1)+"pg"+text(nrepprev);
+ tmp=tmp2; //180526from
+ tmp3=[text(LinkPosH-29*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
+ +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
+ +"}{\scriptsize $\mathstrut||\!\lhd$}}}}}"];
+ if(nrep>1,//180526
+ tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; // 17.01.12from
+ tmp1=tmp+text(paractr)+"pg";
+ tmp2=tmp+text(paractr-1)+"pg"+text(nrepprev);
+ tmp=tmp1+text(1);
+ tmp3=append(tmp3,
+ text(LinkPosH-24*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
+ +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
+ +"}{\scriptsize $\mathstrut|\!\lhd$}}}}}"); //180526to
+ if(#>1,tmp=tmp1+text(#-1),tmp=tmp2);
+ tmp3=append(tmp3,
+ text(LinkPosH-17*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
+ +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
+ +"}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}");
+ if(#<nrep,tmp=tmp1+text(#+1),tmp=tmp1+text(nrep));
+ tmp3=append(tmp3,
+ text(LinkPosH-10*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{"
+ +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
+ +"}{\scriptsize $\mathstrut\!\rhd\!$}}}}}");
+ tmp=tmp1+text(nrep); //180526from
+ tmp3=append(tmp3,
+ text(LinkPosH-5*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{" // 17.01.19
+ +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
+ +"}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}");
+ );
+ tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; //180529[2lines]
+ tmp=tmp+text(paractr+1)+"pg"+text(1);
+ tmp3=append(tmp3,
+ text(LinkPosH)+"}"+tmp+"}{\fbox{\Ctab{" // 17.01.19
+ +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize)
+ +"}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}"); //180526to
+ );
+ tmp3=apply(tmp3,tmp,"\putnotew{"+tmp);
+ tmp4=concat(tmp4,tmp3);// 17.01.12to
+ tmp="\putnotee{"+text(LinkPosH+1)+"}{"+text(LinkPosV)+"}";//180524
+ tmp=tmp+"{\scriptsize\color{blue} "+text(#)+"/"+text(nrep)+"}"; //180524[blue]
+ tmp4=append(tmp4,tmp);
+ tmp4=concat(tmp4,["\end{layer}",""]);//16.12.31until
+ Repeatsameslide(repeatflg,text([#]),tmp4);
+ );
+ );
+ );
+ if(substring(sld,0,2)=="%%", //17.06.23from
+ println(SCEOUTPUT,sld);
+ flg=1;
+ ); //17.06.23to
+ if(flg==0,
+ if(indexof(sld,"\begin{verbatim}")==1, // 16.06.28from
+ Repeatsameslide(repeatflg,sestr,[slideL_ns]);
+ verbflg=1;
+ flg=1;
+ ); // 16.06.28
+ if(indexof(sld,"\end{verbatim}")==1,
+ Repeatsameslide(repeatflg,sestr,[slideL_ns]);
+ verbflg=0;
+ flg=1;
+ ); // 16.06.28until
+ if(flg==0,
+ tmp=replace(sld,"||||","//"); // 16.05.11
+ tmp=tokenize(tmp,"::"); // 16.05.11
+ tmp1=tmp_1;
+ if(length(tmp)>1,tmp2=tmp_2,tmp2="");
+ if(length(tmp)>2,tmp3=tmp_3,tmp3="");
+ if(length(tmp)>3,tmp4=tmp_4,tmp4="");
+ if(length(tmp)>4,tmp5=tmp_5,tmp5="");
+ if(contains(["main","new","same"],tmp1),
+ if(tmp1=="new", // 16.11.09from
+ newoption="";
+ if(substring(tmp2,0,1)=="[",newoption=tmp2);
+ );
+ if(tmp1=="same",
+ if(length(tmp2)==0,tmp2=newoption);
+ );// 16.11.09until
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"%%%%%%%%%%%%%%%%%%%%");
+ println(SCEOUTPUT,"");
+ );
+ );
+ if(flg==0&tmp1=="main",
+ if(repeatflg==1,
+ forall(2..(length(RepeatList)),nrep,
+ tmp=RepeatList_nrep;
+ forall(tmp,
+ if(substring(#,0,1)!="%", //16.01.04
+ println(SCEOUTPUT,#);
+ );
+ );
+ );
+ println(SCEOUTPUT,"");
+ repeatflg=0;RepeatList=[];
+ nrepprev=nrep;//17.01.03
+ nrep=0;//16.12.27
+ npara=0;//16.12.27
+ );
+ if(length(wall)>0,
+ println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
+ );
+ println(SCEOUTPUT,"\mainslide{"+tmp2+"}");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"");
+ tmp2="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="new",
+ if(repeatflg==1,
+ forall(2..(length(RepeatList)),nrep,
+ tmp=RepeatList_nrep;
+ forall(tmp,
+ if(substring(#,0,1)!="%", //16.01.04
+ println(SCEOUTPUT,#);
+ );
+ );
+ );
+ println(SCEOUTPUT,"");
+ repeatflg=0;RepeatList=[];
+ nrepprev=nrep;//17.01.03
+ nrep=0;
+ npara=0;
+ );
+ if(length(wall)>0,
+ Repeatsameslide(repeatflg,sestr,["\input{fig/"+wall+".tex}"]);
+ );
+ tmp="\newslide";
+ NewSlideOption=""; //17.01.04
+ if(substring(tmp2,0,1)=="[",
+ NewSlideOption=tmp2; //17.01.04
+ tmp=tmp+tmp2;
+ tmp2=tmp3;
+ tmp3=tmp4;
+ tmp4=tmp5;
+ );
+ tmp=tmp+"{"+tmp2+"}";
+ Repeatsameslide(repeatflg,sestr,[tmp,"","\vspace*{18mm}",""]);//180524
+ tmp2="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="same",
+ if(repeatflg==1,
+ forall(2..(length(RepeatList)),nrep,
+ tmp=RepeatList_nrep;
+ forall(tmp,
+ if(substring(#,0,1)!="%", //16.01.04
+ println(SCEOUTPUT,#);
+ );
+ );
+ );
+ println(SCEOUTPUT,"");
+ repeatflg=0;RepeatList=[];
+ nrepprev=nrep;//17.01.03
+ nrep=0;
+ npara=0;
+ );
+ if(length(wall)>0,
+ println(SCEOUTPUT,"\input{fig/"+wall+".tex}");
+ );
+ tmp="\sameslide"+NewSlideOption; //17.01.04;
+// if(substring(tmp2,0,1)=="[",
+// tmp=tmp+tmp2;
+// tmp2=tmp3;
+// tmp3=tmp4;
+// );
+ println(SCEOUTPUT,tmp);
+ println(SCEOUTPUT,""); //180524
+ println(SCEOUTPUT,"\vspace*{18mm}");
+ println(SCEOUTPUT,"");
+ tmp4=tmp3;
+ tmp3=tmp2;
+ tmp2="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="itemize",
+ Repeatsameslide(repeatflg,sestr,["\begin{itemize}"]);
+ flgL=append(flgL,"i");
+ tmp2="";
+ tmp3="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="enumerate",
+ Repeatsameslide(repeatflg,sestr,["\begin{enumerate}"+tmp2]);
+ flgL=append(flgL,"e");
+ tmp2="";
+ tmp3="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="verbatim", //16.06.28from
+ Repeatsameslide(repeatflg,sestr,["\begin{verbatim}"]);
+ flgL=append(flgL,"v");
+ tmp1="";
+ tmp2="";
+ tmp3="";
+ verbflg=1;
+ flg=1;
+ ); //16.06.28until
+ if(flg==0&tmp1=="layer",
+ Repeatsameslide(repeatflg,sestr,[""]);
+ tmp="\begin{layer}";
+ if(length(tmp2)>0,
+ tmp=tmp+tmp2;
+ ,
+ tmp=tmp+"{120}{0}";
+ );
+ Repeatsameslide(repeatflg,sestr,[tmp]);
+ flgL=append(flgL,"l");
+ tmp2="";
+ tmp3="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="putnote",
+ tmp="\putnote"+tmp2+"{";
+ if(indexof(tmp3,"include")==0,
+ tmp1=indexof(tmp3,",");
+ if(tmp1==0,
+ tmp=tmp+"\input{fig/"+tmp3+".tex}}";
+ ,
+ tmp2=substring(tmp3,tmp1,length(tmp3));
+ tmp3=substring(tmp3,0,tmp1-1);
+ tmp=tmp+"\scalebox{"+tmp2+"}{\input{fig/"+tmp3+".tex}}}";
+ );
+ ,
+ tmp2=indexof(tmp3,"[");
+ tmp3=substring(tmp3,tmp2-1,length(tmp3));
+ tmp=tmp+"\includegraphics"+tmp3+"{fig/"+tmp4+"}}";
+ );
+ Repeatsameslide(repeatflg,sestr,[tmp]);
+ tmp2="";
+ tmp3="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="item",
+ NonThinFlg=1;
+ Repeatsameslide(repeatflg,sestr,["\item"]);
+ tmp3="";
+ flg=1;
+ );
+ if(flg==0&tmp1=="end"&(length(flgL)>0), //180526
+ tmp=flgL_(length(flgL));
+ if(tmp=="i",
+ Repeatsameslide(repeatflg,sestr,["\end{itemize}"]);
+ );
+ if(tmp=="e",
+ Repeatsameslide(repeatflg,sestr,["\end{enumerate}"]);
+ );
+ if(tmp=="l",
+ Repeatsameslide(repeatflg,sestr,["\end{layer}",""]);
+ );
+ if(tmp=="v", // 16.06.28from
+ Repeatsameslide(repeatflg,sestr,["\end{verbatim}",""]);
+ verbflg=0;
+ ); // 16.06.28until
+ flgL=flgL_(1..(length(flgL)-1));
+ tmp2="";
+ tmp3="";
+ flg=1;
+ );
+ if(flg==0, // 16.06.28from
+ if(verbflg==0,
+ tmp2=tmp1;
+ ,
+ tmp2=slideorgL_ns; // 16.07.11
+ tmp2=replace(tmp2,"||","//"); // 16.07.10
+ tmp3="";
+ );
+ ); // 16.06.28until
+ if(length(tmp2)>0,
+ if(tmp2=="...", tmp2="");
+ if(NonThinFlg==1,NonThinFlg=2);
+ Repeatsameslide(repeatflg,sestr,[tmp2]);
+ );
+ if(length(tmp3)>0,
+ Repeatsameslide(repeatflg,sestr,["\begin{layer}{120}{0}"]);
+ if(substring(tmp3,0,1)=="{",
+ tmp=tmp3;
+ tmp3=tmp4;
+ ,
+ tmp="{60}{0}";
+ );
+ tmp1=indexof(tmp3,",");
+ if(tmp1==0,
+ tmp3="\putnotes"+tmp+"{\input{fig/"+tmp3+".tex}}";
+ ,
+ tmp2=substring(tmp3,tmp1,length(tmp3));
+ tmp3=substring(tmp3,0,tmp1-1);
+ tmp3="\putnotes"+tmp+"{\scalebox{"+tmp2+"}
+ {\input{fig/"+tmp3+".tex}}}";
+ );
+ Repeatsameslide(repeatflg,sestr,[tmp3,"\end{layer}",""]);
+ );
+ );
+ );
+ if(repeatflg==1,
+ forall(2..(length(RepeatList)),nrep,
+ tmp=RepeatList_nrep;
+ forall(tmp,
+ if(substring(#,0,1)!="%", //16.01.04
+ println(SCEOUTPUT,#);
+ );
+ );
+ );
+// println(SCEOUTPUT,"");
+ );
+ println(SCEOUTPUT,"\label{pageend}\mbox{}"); //180529
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"\end{document}");
+ closefile(SCEOUTPUT);
+);
+////%Presentation end////
+
+////%Mkslides start////
+Mkslides():=(
+ regional(store,sep,parent,texparentorg,tmp,tmp1,tmp2,tmp3,tmp4,flg);
+ store=Fillblack();//181125
+ tmp4=Fhead;
+ Fhead="";
+ if(!iswindows(), //17.10.13
+ Dirwork=replace(Dirwork,"\",pathsep());
+ parent=replace(Dirwork+Shellparent,"\",pathsep());
+ ,
+ Dirwork=replace(Dirwork,"/",pathsep());
+ parent=replace(Dirwork+Batparent,"/",pathsep());// 16.05.29
+ );
+ tmp=replace(Dirwork,pathsep()+"fig","");//180604[2lines]
+ Changework(tmp);
+ Setdirectory(Dirwork);
+ if(!iswindows(), //180604from
+ println(setexec(Dirwork,Shellparent));
+ ); //180604to
+ if(length(Texmain)>0, // 15.08.14 from
+ Texparent=Texmain;
+ );
+ texparentorg=Texparent; //17.04.10from
+ if(isstring(Slidename), // 15.08.14 from
+ Texparent=Slidename;
+ );//17.04.10until
+ if(!isexists(Dirwork,Texparent+".txt"), // 17.04.12from
+ drawtext(mouse().xy,Texparent+".txt not exist in "+Dirwork,
+ size->24,color->[1,0,0]);
+ , // 17.04.12until
+ Presentation(Texparent); // 15.08.14to
+ if(iswindows(),
+ tmp2=Batparent;
+ parent=replace(Dirwork+Batparent,sep+"fig","");// 16.05.29
+ if(indexof(Pathpdf,"Adobe")>0, //17.12.09from
+ Makebat(Texparent,"ttv");
+ ,
+ Makebat(Texparent,"tv");
+ ); //17.12.09until
+ kc():=(
+ println("kc : "+kc(parent,Dirlib,Fnametex)); // 16.06.10, 17.02.19
+ );
+ kc();
+ Batparent=tmp2;
+ ,
+ tmp2=Shellparent;
+ parent=replace(Dirwork+Shellparent,sep+"fig","");// 16.05.29
+ Shellparent=replace(Shellparent,sep+"fig","");
+ if(indexof(Pathpdf,"Adobe")>0, //17.12.09from
+ Makeshell(Texparent,"ttv");
+ ,
+ Makeshell(Texparent,"tv");
+ ); //17.12.09until
+ kc():=(
+ println("kc : "+kc(parent,Mackc+Dirlib,Fnametex)); // 16.06.10
+ );
+ kc();
+ Shellparent=tmp2;
+ );
+ );
+ Dirwork=Dirwork+pathsep()+"fig"; //17.10.16
+ setdirectory(Dirwork);
+ Fhead=tmp4;
+ Texparent=texparentorg;//17.04.10
+ Fillrestore(store);//181125
+);
+////%Mkslides end////
+
+////%Mkslidesummary start////
+Mkslidesummary():=( // 17.10.26 for R
+ regional(texparentorg);
+ texparentorg=Texparent;
+ if(isstring(Slidename),
+ Texparent=Slidename;
+ );
+ Mkslidesummary(Texparent,Texparent+"digest",["m","Wait=3"]);
+ Texparent=texparentorg;
+);
+Mkslidesummary(fin,fout):=
+ Mkslidesummary(fin,fout,["m","Wait=3"]);
+Mkslidesummary(inputfile,outputfile,options):=(
+//help:Mkslidesummary(fin,fout,options);
+ regional(store,fin,fout,out,figflg,dirworkorg,dirtop,tmp);
+ store=Fillblack();//181125
+ dirworkorg=Dirwork;//17.04.10from
+ dirtop=replace(Dirwork,pathsep()+"fig","");
+ Changework(dirtop);//17.04.10uptp
+ if(ismacosx(), //180604from
+ println(setexec(Dirwork,Shellparent));
+ ); //180604to
+ fin=inputfile;
+ if(indexof(fin,".")==0,fin=fin+".tex");
+ fout=outputfile;
+ if(indexof(fout,".")==0,fout=fout+".tex");
+ cmdL=[
+ "Dt=readLines"+PaO()+"'"+fin+"',encoding='UTF-8')",[],
+ "num=grep"+PaO()+"'hypertarget',Dt,fixed=TRUE)",[], //180412
+ "Dt=Dt[setdiff"+PaO()+"1:length"+PaO()+"Dt),num)]",[],
+ "Smain=c"+PPa("")+";Snew=c"+PPa("")+";Ssame=c"+PPa(""),[],
+ "for"+PaO()+"J in 1:length"+PaO()+"Dt)){",[],
+ " Tmp=length"+PaO()+"grep"+PaO()+"'mainslide{',Dt[J],fixed=TRUE))",[], //180412
+ " if"+PaO()+"Tmp>0){Smain=c"+PaO()+"Smain,1)}else{Smain=c"+PaO()+"Smain,0)}",[],
+ " Tmp=length"+PaO()+"grep"+PaO()+"'newslide{',Dt[J],fixed=TRUE))",[], //180412
+ " if"+PaO()+"Tmp>0){Snew=c"+PaO()+"Snew,1)}else{Snew=c"+PaO()+"Snew,0)}",[],
+ " Tmp=length"+PaO()+"grep"+PaO()+"'sameslide',Dt[J],fixed=TRUE))",[], //180412
+ " if"+PaO()+"Tmp>0){Ssame=c"+PaO()+"Ssame,1)}else{Ssame=c"+PaO()+"Ssame,0)}",[],
+ "}",[],
+ "Nnew=c"+PPa("")+";Nsame=c"+PPa(""),[],
+ "for"+PaO()+"J in 1:length"+PaO()+"Dt)){",[],
+ " if"+PaO(2)+"Snew[J]==1)|"+PaO()+"Smain[J]==1)){Nnew=c"+PaO()+"Nnew,J)}",[],
+ " if"+PaO()+"Ssame[J]==1){Nsame=c"+PaO()+"Nsame,J)}",[],
+ "}",[],
+ "Out=Dt[1:Nnew[1]]",[],
+ "for"+PaO()+"J in Looprange"+PaO()+"2,length"+PaO()+"Nnew))){",[],
+ " Tmp=max"+PaO()+"c"+PaO()+"1,Nsame[Nsame<Nnew[J]]))",[],
+ " Tmp=max"+PaO()+"c"+PaO()+"Tmp,Nnew[J-1]))+1",[],
+ " Out=c"+PaO()+"Out,Dt[Tmp:Nnew[J]])",[],
+ "}",[],
+ "Tmp=max"+PaO()+"c"+PaO()+"Nsame[-1],Nnew[-1]))+1",[],
+ "Out=c"+PaO()+"Out,Dt[Tmp:length"+PaO()+"Dt)])",[],
+ "writeLines"+PaO()+"Out,'"+fout+"',sep='\n')",[] //180412[2lines removed]
+ ];
+ CalcbyR("",cmdL,append(options,"Cat=n"));//180412
+ wait(1000);
+ Changework(dirtop);//17.04.10
+ tmp=replace(fout,".tex","");
+ if(iswindows(),
+ Makebat(tmp,"tv");
+ ,
+ Makeshell(tmp,"tv");
+ );
+ kc();
+ Changework(dirworkorg);//17.04.10
+ Fillstore(store);//181125
+);
+////%Mkslidesummary end////
+
+////%BBdata start////
+BBdata():=BBdata(BBTarget,0);
+BBdata(fname):=BBdata(fname,0); // 16.04.09
+BBdata(fname,optionorg):=(
+//help:BBdata(filename);
+//help:BBdata(options=0(automatic),1(make),"w=","h=");
+ regional(fout,flg,path,file,kcfile,options,eqL,reL,stL,
+ waiting,addop,tmp,tmp1,tmp2);
+ path="";
+ file=fname;
+ flg=0;
+ waiting=2;
+ forall(reverse(1..length(fname)),
+ if(flg==0,
+ tmp=substring(fname,#-1,#);
+ if(tmp=="/" % tmp=="\", // 14.01.15
+ path=substring(fname,0,#-1);
+ file=substring(fname,#,length(fname));
+ flg=1;
+ );
+ );
+ );
+ if(path=="",path=Dirwork);//16.10.05
+ if(indexof(file,".")==0,file=file+".pdf");
+ if(islist(optionorg),options=optionorg,options=[optionorg]);
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ reL=tmp_6;
+ stL=tmp_7;
+ flg=0;
+ addop="";
+ if(length(reL)>0,
+ tmp=reL_1;
+ if(tmp==1,flg=1);
+ );
+ forall(stL,
+ tmp=Toupper(substring(#,0,1));
+ if(tmp=="M",flg=1);
+ );
+ forall(eqL,
+ tmp=indexof(#,"=");
+ tmp1=Toupper(substring(#,0,1)); //181111
+ tmp2=substring(#,tmp,length(#));
+ if(tmp1=="W",
+ addop=addop+",width="+tmp2;
+ options=remove(options,[#]);
+ );
+ if(tmp1=="H",
+ addop=addop+",height="+tmp2;
+ options=remove(options,[#]);
+ );
+ );
+ tmp=indexof(file,".");
+ tmp1=substring(file,0,tmp-1);
+ fout=tmp1+".txt";
+ if(iswindows(),
+ kcfile="kc.bat";
+ ,
+ if(ismacosx(), //181219
+ kcfile="kc.command";
+ ,
+ kcfile="kc.sh";
+ );
+ );
+ if(flg==0,
+ tmp=load(fout); //
+ if(length(tmp)==0,
+ flg=1;
+ ,
+ tmp=tokenize(tmp,"%%");
+ tmp=tmp_2;
+ tmp1=indexof(tmp,":");
+ tmp=substring(tmp,tmp1,length(tmp));
+ tmp=Removespace(tmp);
+ if(tmp!=file,flg=1);
+ );
+ );
+ if(length(path)==0,
+ path=Dirwork;
+ );
+ if(flg==1,
+ setdirectory(path);
+ tmp=load(file);
+ setdirectory(Dirwork);
+ if(length(tmp)==0,
+ println(" => "+file+" not exists");
+ flg=-1;
+ );
+ );
+ if(flg==1,
+ SCEOUTPUT = openfile(kcfile);
+ if(!iswindows(),
+ println(SCEOUTPUT,"#!/bin/sh");
+ );
+ println(SCEOUTPUT,"cd "+Dqq(path)); //190414
+ tmp=replace(PathT,"pdflatex","extractbb"); //16.11.22
+ tmp=replace(tmp,"pdftex","extractbb"); //16.11.22
+ tmp=replace(tmp,"xelatex","extractbb");
+ tmp=replace(tmp,"uplatex","extractbb"); //17.09.20
+ tmp=replace(tmp,"platex","extractbb");
+ tmp=replace(tmp,"latex","extractbb");
+ tmp=tmp+" -O "+file;
+ if(iswindows(),
+ tmp=tmp+" > "+Dirwork+"\"+fout;
+ ,
+ tmp=tmp+" > "+Dirwork+"/"+fout;
+ );
+ println(SCEOUTPUT,tmp);
+ println(SCEOUTPUT,"exit 0");
+ closefile(SCEOUTPUT);
+ kc(Dirwork+"/"+kcfile,Mackc+Dirlib,Fnametex); // 16.06.07
+ );
+ if(flg>=0,
+ tmp1=0;
+ repeat(floor(waiting*1000/WaitUnit),
+ if(tmp1==0,
+ wait(10);
+ tmp=load(fout);
+ if(indexof(tmp,"CreationDate")>0,
+ tmp1=1;
+ );
+ );
+ );
+ if(length(tmp)==0,
+ println(fout+" not generated. Maybe "+kcfile+" not run.");
+ ,
+ tmp=tokenize(tmp,"%%");
+ tmp=select(tmp,indexof(#,"Bounding")>0);
+ tmp=tmp_2; //
+ tmp1=indexof(tmp,":");
+ tmp=substring(tmp,tmp1,length(tmp));
+ tmp=Removespace(tmp);
+ tmp=tokenize(tmp," ");
+ tmp1="";
+ forall(tmp,
+ tmp1=tmp1+Sprintf(#,2)+" ";
+ );
+ tmp1=Removespace(tmp1)+addop;
+ tmp2="\includegraphics[bb="+tmp1+"]{"+file+"}";
+ println(tmp2);
+ );
+ );
+// setdirectory(Dirwork);
+ tmp2; // 16.04.25
+);
+////%BBdata end////
+
+////%Gcd start//// //190623
+Gcd(xL):=Gcd(xL,100);
+Gcd(xL,nmx):=(
+//help:Gcd([12,18,24]);
+//help:Gcd(xlist,max<100>);
+ regional(mL,ng,tmp);
+ ng=nmx;
+ mL=apply(xL,mod(abs(#),ng));
+ while(sum(mL)>0,
+ ng=ng-1;
+ mL=apply(xL,mod(abs(#),ng));
+ );
+ ng;
+);
+////%Gcd end////
+
+////%Fracform start//// //190623
+Fracform(x):=Fracform(x,5);
+Fracform(x,denorg):=(
+//help:Fracform(1.3);
+//help:Fracform(1.3,[denomlist]);
+ regional(den,fL,tmp,nn,mm,err);
+ den=denorg;
+ if(islist(den),
+ if(!contains(den,1), den=prepend(1,den));
+ ,
+ den=1..den;
+ );
+ fL=[];
+ forall(den,
+ tmp=round(x*#);
+ fL=append(fL,[tmp,#,abs(tmp/#-x)]);
+ );
+ fL=sort(fL,#_3);
+ tmp=fL_1;
+ mm=tmp_1; nn=tmp_2; err=tmp_3;
+ if(nn>1,
+ out="fr("+text(mm)+","+text(nn)+")";
+ ,
+ out=text(mm);
+ );
+ [out,"err="+format(err,6)];
+);
+////%Fracform end////
+
+////%Totexformpart start////
+Totexformpart(str):=( //190514
+ regional(plv,funL,repL,flg,flgf,nall,nn,fun,funf,
+ frL,fr,out,tmp,tmp1,tmp2,tmp3,tmp4);
+ repL=[ //190515from
+ ["frac",["","\frac{xx}{yy}"]],
+ ["log",["\log{xx}","\log_{xx} yy"]],
+ ["sqrt",["\sqrt{xx}","\sqrt[xx]{yy}"]],
+ ["pow",["","{xx}^{yy}"]],
+ ["sin",["\sin{xx}","\sin^{xx}{yy}"]], //190522from
+ ["cos",["\cos{xx}","\cos^{xx}{yy}"]],
+ ["tan",["\tan{xx}","\tan^{xx}{yy}"]] //190522to
+ ];
+ funL=apply(repL,substring(#_1,0,2)); //190515to
+ out="";
+ plv=Bracket(str,"()");
+ nall=length(plv);
+ if(nall>0,
+ frL=[];
+ forall(1..nall,nn,
+ tmp1=plv_nn;
+ if(tmp1_2>0,
+ fun="";
+ flgf=0;
+ forall(1..20,
+ if(flgf==0,
+ tmp2=tmp1_1;
+ tmp=substring(str,tmp2-#-1,tmp2-#);
+ if((tmp>="a")&(tmp<="z"),
+ fun=tmp+fun;
+ ,
+ flgf=1;
+ );
+ );
+ );
+ tmp=substring(fun,0,2); //190515from
+ if(contains(funL,tmp),
+ tmp=select(repL,substring(#_1,0,2)==tmp);
+ funf=tmp_1_1; //190515to
+ tmp=select(plv,(#_1>tmp1_1)&(#_2==-tmp1_2));
+ tmp=tmp_1_1-1;
+ frL=append(frL,[fun,funf,tmp1_1,tmp,tmp1_2]);
+ );
+ );
+ );
+ if(length(frL)>0,
+ frL=sort(frL,[-#_5]);
+ fr=frL_1;
+ fun=fr_1; funf=fr_2;
+ tmp1=substring(str,fr_3,fr_4);
+ tmp=select(repL,#_1==funf);
+ tmp=tmp_1;
+ tmp2=tmp_2;
+ tmp=Strsplit(tmp1,","); //190515from
+ nn=length(tmp);
+ if(nn==1,
+ tmp2=Assign(tmp2_1,["xx",tmp_1]);
+ );
+ if(nn==2,
+ tmp2=Assign(tmp2_2,["xx",tmp_1,"yy",tmp_2]);
+ ); //190515to
+ nn=fr_3-length(fun);
+ tmp=substring(str,0,nn-1);
+ out=tmp+tmp2+substring(str,fr_4+1,length(str));
+ ,
+ out="";
+ );
+ );
+ out;
+);
+////%Totexformpart end////
+
+////%Totexform start////
+Totexform(str):=( //190514
+//help:Totexform("frac(2,3)");
+ regional(out,plv,flg,nn,tmp,tmp1);
+ out=replace(str," ","\ ");
+ out=replace(str,"*"," ");
+ plv=Bracket(out,"()"); //190515from
+ flg=0; //190521from
+ if(length(plv)==0,
+ flg=4; //190522
+ );
+ if(flg==0, //190521to
+ tmp=Indexall(out,"("); //190522from
+ tmp1=Indexall(out,")");
+ if(length(tmp)>length(tmp1),
+ flg=2;
+ out=out+"?+)?";
+ );
+ if(length(tmp)<length(tmp1),
+ flg=3;
+ out=out+"?)-?";
+ ); //190522to
+ forall(1..20,
+ if(flg==0,
+ tmp=Totexformpart(out);
+ if(length(tmp)==0,
+ flg=1;
+ ,
+ out=tmp;
+ );
+ );
+ );
+ );
+ if(flg<=1,
+ out=replace(out,"+-","\pm ");
+ out=replace(out,"-+","\mp ");
+ out=replace(out,"<=","\leq ");
+ out=replace(out,">=","\geq ");
+ out=Assign(out,["pi","\pi"]); //190521
+ tmp1=Indexall(out,"^");
+ forall(tmp1,nn,
+ if(substring(out,nn,nn+1)=="(",
+ tmp2=Bracket(substring(out,nn,length(out)),"()");
+ tmp2=select(tmp2,#_2==-1);
+ tmp2=tmp2_1_1+nn;
+ tmp=substring(out,nn+1,tmp2-1);
+ out=substring(out,0,nn)+"{"+tmp+"}";
+ out=out+substring(out,tmp2,length(out));
+ );
+ );
+ );
+ out;
+);
+////%Totexform end////
+
+////%Tocindyformpart start////
+Tocindyformpart(str):=( //190521
+ regional(plv,funL,repL,flg,flgf,nall,nn,fun,funf,
+ frL,fr,out,tmp,tmp1,tmp2,tmp3,tmp4);
+ repL=[ //190515from
+ ["frac",["","{xx}/{yy}"]],
+ ["log",["log{xx}","log{yy}/log{xx}"]],
+ ["sqrt",["sqrt{xx}","{yy}^(1/{xx})"]], //190522
+ ["pow",["","{xx}^{yy}"]],
+ ["sin",["sin{xx}","{sin{yy}}^{xx}"]], //190522from
+ ["cos",["cos{xx}","{cos{yy}}^{xx}"]],
+ ["tan",["tan{xx}","{tan{yy}}^{xx}"]] //190522to
+ ];
+ funL=apply(repL,substring(#_1,0,2)); //190515to
+ out="";
+ plv=Bracket(str,"()");
+ nall=length(plv);
+ if(nall>0,
+ frL=[];
+ forall(1..nall,nn,
+ tmp1=plv_nn;
+ if(tmp1_2>0,
+ fun="";
+ flgf=0;
+ forall(1..20,
+ if(flgf==0,
+ tmp2=tmp1_1;
+ tmp=substring(str,tmp2-#-1,tmp2-#);
+ if((tmp>="a")&(tmp<="z"),
+ fun=tmp+fun;
+ ,
+ flgf=1;
+ );
+ );
+ );
+ tmp=substring(fun,0,2); //190515from
+ if(contains(funL,tmp),
+ tmp=select(repL,substring(#_1,0,2)==tmp);
+ funf=tmp_1_1; //190515to
+ tmp=select(plv,(#_1>tmp1_1)&(#_2==-tmp1_2));
+ tmp=tmp_1_1-1;
+ frL=append(frL,[fun,funf,tmp1_1,tmp,tmp1_2]);
+ );
+ );
+ );
+ if(length(frL)>0,
+ frL=sort(frL,[-#_5]);
+ fr=frL_1;
+ fun=fr_1; funf=fr_2;
+ tmp1=substring(str,fr_3,fr_4);
+ tmp=select(repL,#_1==funf);
+ tmp=tmp_1;
+ tmp2=tmp_2;
+ tmp=Strsplit(tmp1,","); //190515from
+ nn=length(tmp);
+ if(nn==1,
+ tmp2=Assign(tmp2_1,["xx",tmp_1]);
+ );
+ if(nn==2,
+ tmp2=Assign(tmp2_2,["xx",tmp_1,"yy",tmp_2]);
+ ); //190515to
+ nn=fr_3-length(fun);
+ tmp=substring(str,0,nn-1);
+ out=tmp+tmp2+substring(str,fr_4+1,length(str));
+ ,
+ out="";
+ );
+ );
+ out;
+);
+////%Tocindyformpart end////
+
+////%Tocindyform start////
+Tocindyform(str):=( //190521
+//help:Tocindyform("frac(2,3)");
+ regional(out,plv,flg,nn,tmp,tmp1);
+ out=str;
+ plv=Bracket(out,"()");
+ flg=0;
+ if(length(plv)==0,
+ flg=4; //190522
+ );
+ if(flg==0,
+ tmp=Indexall(out,"("); //190522from
+ tmp1=Indexall(out,")");
+ if(length(tmp)>length(tmp1),
+ flg=2;
+ out=out+"?+)?";
+ );
+ if(length(tmp)<length(tmp1),
+ flg=3;
+ out=out+"?)-?";
+ ); //190522to
+ forall(1..20,
+ if(flg==0,
+ tmp=Tocindyformpart(out);
+ if(length(tmp)==0,
+ flg=1;
+ ,
+ out=tmp;
+ );
+ );
+ );
+ );
+ if(flg<=1,
+ tmp1=Indexall(out,"^");
+ forall(tmp1,nn,
+ if(substring(out,nn,nn+1)=="(",
+ tmp2=Bracket(substring(out,nn,length(out)),"()");
+ tmp2=select(tmp2,#_2==-1);
+ tmp2=tmp2_1_1+nn;
+ tmp=substring(out,nn+1,tmp2-1);
+ out=substring(out,0,nn)+"{"+tmp+"}";
+ out=out+substring(out,tmp2,length(out));
+ );
+ );
+ );
+ out=replace(out,"{","(");
+ out=replace(out,"}",")");
+ out;
+);
+////%Tocindyform end////
+
+////%Animepar start//// //190524
+Animepar(start,ratio,stop):=Animationparam(start,ratio,stop);
+////%Animepar end////
+
+////%Animationparam start////
+Animationparam(start,ratio,stop):=( //190524
+//help:Animationparam(S.x,5,30);
+//help:Animationparam(0,5,[-100,100]);
+// Animeflg,sstart,Dirflg,Current,sorg are used in animation buttons
+ regional(rng);
+ if(islist(stop),rng=stop,rng=[start,stop]);
+ if(isreal(Animeflg),
+ if(Animeflg==1,
+ sstart=Dirflg*ratio*seconds()+sorg;
+ );
+ ,
+ Current=start;
+ sstart=start;
+ );
+ if((sstart<=rng_1)%(sstart>=rng_2), //190528
+ if(sstart<=rng_1,sstart=rng_1, sstart=rng_2); //190528
+ stopanimation();
+ );
+ sstart;
+);
+////%Animationparam end////
+
+////%Copyketcindyjs start//// 190128
+Copyketcindyjs():=(
+ regional(tmp,tmp1,tmp2,drive,fname);
+ if(iswindows(),
+ drive="C:";
+ fname=Dirhead;
+ tmp=indexof(fname,":");
+ if(tmp>0,
+ drive=substring(Dirwork,0,tmp);
+ fname=substring(fname,tmp,length(fname));
+ );
+ kc():=(
+ println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04
+ );
+ SCEOUTPUT = openfile(Batparent);
+ println(SCEOUTPUT,drive);
+ println(SCEOUTPUT,"cd "+Dqq(fname));
+ println(SCEOUTPUT,"set xcp="+Dqq("\Windows\System32\xcopy"));
+ tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\");
+ tmp2=" "+Dqq(Dircdy+"ketcindyjs\");
+ println(SCEOUTPUT,tmp1+"Cindy.js.map"+tmp2);
+ println(SCEOUTPUT,tmp1+"webfont.js"+tmp2);
+ println(SCEOUTPUT,tmp1+"katex-plugin.js"+tmp2);
+ println(SCEOUTPUT,tmp1+"Cindy.js"+tmp2);
+ println(SCEOUTPUT,tmp1+"CindyJS.css"+tmp2);
+ tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\katex\");
+ tmp2=" "+Dqq(Dircdy+"ketcindyjs\katex\");
+ println(SCEOUTPUT,tmp1+"katex.min.css"+tmp2);
+ println(SCEOUTPUT,tmp1+"katex.min.js"+tmp2);
+ tmp1=Dqq("%xcp%")+" /Y /Q /S /E /R "+Dqq("ketcindyjs\katex\fonts\");
+ tmp2=" "+Dqq(Dircdy+"ketcindyjs\katex\fonts\");
+ println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.ttf"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.woff"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Main-Regular.woff2"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.ttf"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.woff"+tmp2);
+ println(SCEOUTPUT,tmp1+"KaTeX_Math-Italic.woff2"+tmp2);
+ println(SCEOUTPUT,"exit 0");
+ closefile(SCEOUTPUT);
+ ,
+ kc():=(
+ println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));
+ );
+ tmp1=Dircdy; //190214from
+ if(substring(tmp1,length(tmp1)-1,length(tmp1))=="/",
+ tmp1=substring(tmp1,0,length(tmp1)-1);
+ ); //190214to
+ SCEOUTPUT = openfile(Shellparent);
+ println(SCEOUTPUT,"#!/bin/sh");
+ println(SCEOUTPUT,"cd "+Dqq(tmp1+"/")); //190214from
+ println(SCEOUTPUT,"mkdir ketcindyjs");
+ println(SCEOUTPUT,"cd "+Dqq(Dirhead+"/ketcindyjs"));
+ println(SCEOUTPUT,"cp -r -p katex "+tmp1+"/ketcindyjs");
+ println(SCEOUTPUT,"cp -p Cindy.js "+tmp1+"/ketcindyjs");
+ println(SCEOUTPUT,"cp -p Cindy.js.map "+tmp1+"/ketcindyjs");
+ println(SCEOUTPUT,"cp -p CindyJS.css "+tmp1+"/ketcindyjs");
+ println(SCEOUTPUT,"cp -p katex-plugin.js "+tmp1+"/ketcindyjs");
+ println(SCEOUTPUT,"cp -p webfont.js "+tmp1+"/ketcindyjs"); //190214to
+ println(SCEOUTPUT,"exit 0");
+ closefile(SCEOUTPUT);
+ );
+ kc();
+);
+////%Copyketcindyjs end////
+
+////%Ketjsoption start//// 190201
+Ketjsoption():=Setketcindyjs();
+Ketjsoption(list):=Setketcindyjs(list);
+////%Ketjsoption end////
+
+////%Setketcindyjs start//// 190201
+Setketcindyjs():=(
+ KETJSOP;
+);
+Setketcindyjs(list):=(
+//help:Setketcindyjs();
+//help:Setketcindyjs(["Local=(n)","Scale=(1)","Nolabel=[](or all)","Color=","Grid="]);
+//help:Setketcindyjs(["Removept=[]"]);
+ KETJSOP=list;
+ KETJSOP;
+);
+////%Setketcindyjs end////
+
+////%Ketcindyjsdata start//// //190421
+Ketcindyjsdata(datalistorg):=(
+//help:Ketcindyjsdata(["ans",ans,"pea[parse]",pea]);
+ regional(nn,func,tmp,tmp1,tmp2);
+ datalist=datalistorg;
+ forall(1..(length(datalist)/2), nn, //190423from
+ tmp1=datalist_(2*nn-1);
+ func="";
+ tmp=indexof(tmp1,"[");
+ if(tmp>0,
+ func=substring(tmp1,tmp,length(tmp1)-1);
+ tmp1=substring(tmp1,0,tmp-1);
+ );
+ tmp2=datalist_(2*nn);
+ if(length(func)>0,
+ forall(1..(length(tmp2)),
+ tmp=func+"("+Dqq(tmp2_#)+")";
+ tmp2_#=parse(tmp);
+ );
+ );
+ if(islist(tmp2),
+ tmp="[";
+ forall(tmp2,
+ if(isstring(#),
+ tmp=tmp+Dqq(#)+",";
+ ,
+ tmp=tmp+Textformat(#,5)+",";
+ );
+ );
+ tmp2=substring(tmp,0,length(tmp)-1)+"]";
+ ,
+ tmp2=Dqq(tmp2);
+ );
+ tmp=tmp1+"="+tmp2;
+ KetcindyjsDataList=append(KetcindyjsDataList,tmp);
+ ); //190423to
+);
+Ketcindyjsdata(name,vaL):=(
+ Ketcindyjsdata([name,vaL]);
+);
+////%Ketcindyjsdata end////
+
+////%Findfun start////
+Findfun(name,lineorg):=(
+ regional(line,sep,pL,jj,kk,flg,rmv,out,tmp,tmp1,tmp2);
+ line=Removespace(lineorg);
+ rmv=[name,"regional","forall","if","text","curkernel","append","concat"];
+ rmv=concat(rmv,["append","apply","allelements","indexof"]);
+ rmv=concat(rmv,["substring","select","isstring","length"]);
+ rmv=concat(rmv,["round","unicode","openfile","closefile","println","replace"]);
+ rmv=concat(rmv,["setdirectory","parse","tokenize","import","load","ispoint"]);
+ rmv=concat(rmv,["isreal","layer","autoclearlayer","drawpoly","allcircles"]);
+ rmv=concat(rmv,["floor","flatten","prepend","islist","print","mod","abs","sum"]);
+ rmv=concat(rmv,["cos","sin","tan","arccos","arcsin","arctan","sqrt","reverse","re"]);
+ rmv=concat(rmv,["sort","contains","max","min","allpoints","isselected","common"]);
+ rmv=concat(rmv,["inspect","iscircle","alllines","repeat","remove","format"]);
+ rmv=concat(rmv,["ceil","while","dist","det","exp","err","arctan2","fillpoly"]);
+ rmv=concat(rmv,["drawtext","mouse","allsegments","createpoint","create"]);
+ rmv=concat(rmv,["gsave","connect","draw","grestore","wait"]);
+
+// rmv=concat(rmv,["d","list","c","funN","funP","function","for","return"]); // in string (for R)
+// rmv=concat(rmv,["gsub","cat"]); // in string (for R)
+// rmv=concat(rmv,["options"]); // written for Windows
+// rmv=concat(rmv,["isexists"]); // java functions
+
+ sep=[""," ",",","=","(","+","-","*","/","^","_","[",".","!","&","%",Dq,";",">","<",unicode("0009")];
+ out=[];
+ if(substring(line,0,2)!="//",
+ pL=Indexall(line,"(");
+ forall(pL,jj,
+ flg=0;
+ if(contains(pL,jj-1), flg=1);
+ forall(reverse(1..(jj-1)),
+ if(flg==0,
+ if(#==1,
+ tmp=substring(line,0,1);
+ if(contains(sep,tmp),
+ tmp=substring(line,1,jj-1);
+ ,
+ tmp=substring(line,0,jj-1);
+ );
+ flg=1;
+ );
+ );
+ if(flg==0,
+ tmp=substring(line,#-1,#);
+ if(contains(sep,tmp),
+ tmp=substring(line,#,jj-1);
+ if(indexof(substring(line,0,#-1),"//")==0,
+ flg=1;
+ );
+ );
+ );
+ );
+ if((flg==1)&(length(tmp)>0),
+ tmp1=Indexall(line,Dq); //190419from
+ tmp1=select(tmp1,#<jj);
+ if(mod(length(tmp1),2)==0,
+ out=append(out,tmp);
+ ); //190419
+ );
+ );
+ );
+ out=remove(out,rmv);
+ tmp=out;
+ out=[];
+ forall(tmp,
+ if(!contains(out,#),out=append(out,#));
+ );
+ out;
+);
+////%Findfun end////
+
+////%Extractfun start////
+Extractfun(strL):=(
+ regional(nL,str,str2,start,sep,out,tmp,tmp1,tmp2);
+ out=[];
+ forall(strL,str,
+ nL=Indexall(str,Dq);
+ str2="";
+ start=0;
+ forall(1..(length(nL)/2),
+ tmp1=nL_(2*#-1);
+ str2=str2+substring(str,start,tmp1-1);
+ start=nL_(2*#);
+ );
+ str2=str2+substring(str,start,length(str));
+ fL=Findfun("csdraw",str2);
+ out=remove(out,fL);
+ out=concat(out,fL);
+ );
+);
+////%Extractfun end////
+
+//DL1=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic1list.txt");
+//DL2=Readcsv(Dirhead+pathsep()+"ketcindyjs","basic2list.txt");
+//DL=concat(DL1,DL2);
+//Out=[];
+
+////%Extractall start////
+Extractall(name):=(
+ regional(fL,jj,tmp,tmp1,tmp2,tmp3,flg);
+ fL=apply(Out,#_1);
+ tmp1=select(DL,#_1==name);
+ if(length(tmp1)>0,
+ tmp1=tmp1_1;
+ flg=0; //190417from
+ forall(IgnoreList,#,
+ if(flg==0,
+ tmp2=#; tmp3=length(tmp2);
+ tmp=indexof(tmp2,"*");
+ if(tmp>0,
+ tmp2=substring(#,0,tmp-1); tmp3=tmp-1;
+ );
+ if(substring(name,0,tmp3)==tmp2,
+ flg=1;
+ );
+ );
+ );
+ if(flg==0, //190417to
+ if(!contains(fL,tmp1),
+ Out=append(Out,tmp1);
+ fL=append(fL,tmp1_1);
+ if(length(tmp1)>=5,
+ forall(5..(length(tmp1)),jj,
+ tmp=tmp1_jj;
+ if(!contains(fL,tmp),
+ tmp2=Out;
+ Extractall(tmp);
+ tmp2=remove(Out,tmp2);
+ );
+ );
+ );
+ );
+ ); //190416
+ );
+ tmp1=Out;
+ Out=[];
+ forall(1..(length(tmp1)),
+ if(!contains(Out,tmp1_#),
+ Out=append(Out,tmp1_#);
+ );
+ );
+ Out;
+);
+////%Extractall end////
+
+////%Textedit start//// 190430
+Textedit(no):=(
+//help:Textedit(50);
+ regional(tmp,tmp1,tmp2);
+ tmp="Text"+text(no)+".currenttext";
+ tmp1=parse(tmp);
+ tmp1;
+);
+////%Textedit end////
+
+////%Textedit2value start//// 190521
+Textedit2value(no):=Textedit2value(no,[]);
+Textedit2value(no,options):=(
+//help:Textedit2value(50);
+//help:Textedit2value(51,["Parse=y/n","Form=c/t/m"]);
+ regional(str,tmp,tmp1,parseflg,formflg);
+ parseflg="Y";
+ formflg="C"; //190522
+ forall(options,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="P",
+ parseflg=Toupper(substring(tmp_2,0,1));
+ );
+ if(tmp1=="F",
+ formflg=Toupper(substring(tmp_2,0,1));
+ );
+ );
+ str=Textedit(no);
+ str=Removespace(str);
+ if(formflg=="C",
+ str=Tocindyform(str);
+ if(indexof(str,"?")>0,parseflg="N"); //190522
+ );
+ if(formflg=="T", //190522from
+ str=Totexform(str);
+ parseflg="N";
+ );
+ if(formflg=="M",
+ str=Tomaxform(str);
+ parseflg="N";
+ ); //190522to
+ if(length(str)>0,
+ tmp=Strsplit(str,"=");
+ if(length(tmp)>1,str=tmp_2);
+ );
+ if(length(str)==0, //190522from
+ parseflg="N";
+ ); //190522from
+ if(parseflg=="Y",
+ str=parse(str); //190522
+ );
+ str;
+);
+////%Textedit2value end////
+
+////%Mkketcindyjs start//// 190115
+Mkketcindyjs():=Mkketcindyjs(KETJSOP); //190129
+Mkketcindyjs(options):=( //17.11.18
+//help:Mkketcindyjs();
+//help:Mkketcindyjs(options=["Local=(y)","Scale=(1)","Nolabel=[]","Color=","Grid="]);
+//help:Mkketcindyjs(optionsadd=["Web=(y)","Path=Dircdy","Ignore=","Equal="]);
+ regional(webflg,localflg,htm,htmorg,from,upto,flg,fL,fun,jj,tmp,tmp1,tmp2,tmp3,
+ libnameL,libL,lib,jc,nn,name,partL,toppart,lastpart,path,ketflg,flg,cmdL,scale,
+ nolabel,color,grid,out,Out,igno,onlyflg,rmptL,colorrgb,ptname,eqflg,eqrep);
+ libnameL=["basic1","basic2","basic3","3d"]; //190416,190428
+ webflg="Y"; //190128 texflg removed
+ localflg="Y"; //190209,0215
+ scale=1; //190129
+ nolabel=["SW","NE"]; //190129
+ color="lightgray"; //190503
+ eqflg=0; //190603
+ grid="";
+ path=Dircdy;
+ igno=[];
+ rmptL=REMOVEPTJS;
+ forall(options,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
+ if(tmp1=="W",
+ if(length(tmp2)>0, //190209
+ webflg=Toupper(substring(tmp2,0,1));
+ );
+ );
+ if(tmp1=="L",
+ if(length(tmp2)>0, //190209
+ localflg=Toupper(substring(tmp2,0,1));
+ );
+ );
+ if(tmp1=="S",
+ if(length(tmp2)>0, //190209
+ scale=parse(tmp2);
+ );
+ );
+ if(tmp1=="N",
+ if(length(tmp2)>0, //190209
+ if(Toupper(tmp2)=="ALL", //190405from
+ tmp2=remove(allpoints(),[SW,NE]);
+ tmp2=text(tmp2);
+ ); //190405to
+ tmp=tmp2;
+ if(indexof(tmp2,"[")>0,
+ tmp=substring(tmp2,1,length(tmp2)-1);
+ );
+ tmp=tokenize(tmp,",");
+ nolabel=concat(nolabel,tmp);
+ );
+ );
+ if(tmp1=="C", //190209
+ if(length(tmp2)>0,
+ color=tmp2;
+ );
+ );
+ if(tmp1=="G",
+ if(length(tmp2)>0,
+ grid=tmp2;
+ );
+ );
+ if(tmp1=="E", //190603from
+ eqflg=1;
+ if(length(tmp2)>0,
+ eqrep=tmp2;
+ ,
+ eqrep="";
+ );
+ ); //190603to
+ if(tmp1=="P",
+ if(!tmp2="Dircdy",
+ path=tmp2;
+ );
+ );
+ if(tmp1=="I", //190417from
+ if(substring(tmp2,0,1)=="[",
+ tmp2=substring(tmp2,1,length(tmp2)-1);
+ igno=tokenize(tmp2,",");
+ );
+ ); //190417to
+ if(tmp1=="R", //190503from
+ if(substring(tmp2,0,1)=="[",
+ tmp2=substring(tmp2,1,length(tmp2)-1);
+ tmp2=tokenize(tmp2,",");
+ rmptL=concat(rmptL,tmp2);
+ ); //190503to
+ ); //190503to
+ );
+ if(substring(color,0,1)=="[",
+ tmp=parse(color);
+ if(length(tmp)==4,
+ colorrgb=Colorcode("cmyk","rgb",tmp); //190504
+ ,
+ colorrgb=color; //190506
+ );
+ ,
+ colorrgb=Colorname2rgb(color); //190504
+ ); //190503to
+ tmp=apply(colorrgb,round(#*255)); //190504
+ tmp=text(tmp);
+ color=substring(tmp,1,length(tmp)-1);
+ if((webflg=="N")&(localflg=="Y"),
+ if(!isexists(Dircdy,"ketcindyjs"),
+ println(3402);Copyketcindyjs();println(3403);
+ println("ketcindyjs has been copied");
+ );
+ );
+ if(!isexists(Dircdy,Fhead+".html"),
+ drawtext(mouse().xy-[0,1],Cdyname()+".html not found",size->24,color->[1,0,0]);
+ wait(3000);
+ ,
+ htmorg=Readlines(Dircdy,Fhead+".html");
+ tmp=select(1..(length(htmorg)),indexof(htmorg_#,"id="+Dqq("csinit"))>0); //190206from
+ from=tmp_1+5;
+ flg=0;
+ forall(from..(length(htmorg)),
+ if(flg==0,
+ if(indexof(htmorg_#,"</script>")>0,
+ upto=#-1;
+ flg=1;
+ );
+ );
+ );
+ tmp2=[];
+ ketflg="off";
+ onlyflg="off"; //190502
+ forall(htmorg_(from..upto),
+ if(indexof(#,"only ketjs on")>0,onlyflg="on"); //190502
+ if(indexof(#,"only ketjs off")>0,onlyflg="off"); //190502
+ if(indexof(#,"no ketjs")>0,
+ if(indexof(#,"no ketjs on")>0,
+ ketflg="on";
+ );
+ if(indexof(#,"no ketjs off")>0,
+ ketflg="off";
+ );
+ ,
+ if(ketflg=="off",
+ tmp=Removespace(#);
+ if(substring(tmp,0,2)!="//",
+ tmp2=append(tmp2,#);
+ ,
+ tmp1=indexof(tmp,"only ketjs"); //190430from
+ if((tmp1>0)%(onlyflg=="on"), //190502
+ if(tmp1>0,tmp=substring(#,0,tmp1-1)); //190502
+ tmp2=append(tmp2,substring(tmp,2,length(tmp)));
+ ); //190430to
+ );
+ );
+ );
+ );
+ tmp=select(1..(length(htmorg)),indexof(htmorg_#,"id="+Dqq("csdraw"))>0);
+ from=tmp_1+1;
+ flg=0;
+ forall(from..(length(htmorg)),
+ if(flg==0,
+ if(indexof(htmorg_#,"</script>")>0,
+ upto=#-1;
+ flg=1;
+ );
+ );
+ );
+ ketflg="off";
+ onlyflg="off"; //190502
+ forall(htmorg_(from..upto),
+ if(indexof(#,"only ketjs on")>0,onlyflg="on"); //190502
+ if(indexof(#,"only ketjs off")>0,onlyflg="off"); //190502
+ if(indexof(#,"no ketjs")>0,
+ if(indexof(#,"no ketjs on")>0,
+ ketflg="on";
+ );
+ if(indexof(#,"no ketjs off")>0,
+ ketflg="off";
+ );
+ ,
+ if(ketflg=="off",
+ tmp=Removespace(#);
+ if(substring(tmp,0,2)!="//",
+ tmp2=append(tmp2,#);
+ ,
+ tmp1=indexof(tmp,"only ketjs"); //190430from
+ if((tmp1>0)%(onlyflg=="on"), //190502
+ if(tmp1>0,tmp=substring(#,0,tmp1-1)); //190502
+ tmp2=append(tmp2,substring(tmp,2,length(tmp)));
+ ); //190430to
+ );
+ );
+ );
+ );
+ fL=Extractfun(tmp2); //190206to
+ DL=[];
+ forall(libnameL,name, //190209from
+ tmp2=Readlines(Dirhead+pathsep()+"ketcindyjs",name+"list.txt");
+ tmp1=[];
+ forall(1..(length(tmp2)),nn,
+ tmp=Indexall(tmp2_nn,",");
+ from=0;
+ tmp3=[];
+ forall(tmp,
+ tmp3=append(tmp3,substring(tmp2_nn,from,#-1));
+ from=#;
+ );
+ tmp3=append(tmp3,substring(tmp2_nn,from,length(tmp2_nn)));
+ tmp1=append(tmp1,tmp3);
+ );
+ DL=concat(DL,tmp1); //DL and Out are necessary for Extractall
+ ); //190209to
+ tmp=Readlines(Dirhead+pathsep()+"ketcindyjs","ignoredfun.txt"); //190416from
+ tmp=apply(tmp,Removespace(#)); //190131
+ IgnoreList=select(tmp,(length(#)>0)&(substring(#,0,2)!="//")); //190131//190416to
+ IgnoreList=concat(IgnoreList,igno); //190417
+ Out=[]; // necessary for Extractall
+ forall(fL,fun,
+ Extractall(fun);
+ );
+// tmp1=select(Out,contains(igL,#_1)); //190416
+// Out=remove(Out,tmp1); USEDFUN=apply(Out,#_1); //190130 //190416
+ tmp1=select(1..(length(htmorg)),indexof(htmorg_#,"script id=")>0);
+ partL=[];
+ forall(tmp1,nn,
+ from=nn;
+ tmp2=htmorg_from;
+ tmp=Indexall(tmp2,Dq);
+ name=substring(tmp2,tmp_1,tmp_2-1);
+ tmp=select((from+1)..(length(htmorg)),indexof(htmorg_#,"</script>")>0);
+ upto=tmp_1;
+ partL=append(partL,[name,from,upto]);
+ );
+ tmp=apply(partL,#_2);
+ tmp=min(tmp)-1;
+ toppart=[1,tmp];
+ tmp=apply(partL,#_3);
+ tmp=max(tmp)+1;
+ lastpart=[tmp,length(htmorg)];
+ if(webflg=="Y",
+ tmp1=Fhead+"json.html";
+ ,
+ tmp1=Fhead+"jsoff.html";
+ if(localflg=="Y",tmp1=replace(tmp1,"off.","offL.")); //190209
+ );
+ setdirectory(path);
+ SCEOUTPUT = openfile(tmp1);
+ tmp1=htmorg_((toppart_1)..(toppart_2));
+ if(webflg=="N",
+ if(localflg=="N", //190128
+ tmp3=replace(Dirhead+"/ketcindyjs/",pathsep(),"/");
+ tmp= " <link rel="+Dqq("stylesheet")+" href=";
+ tmp=tmp+Dq+"file:///"+tmp3+"CindyJS.css"+Dq+">";
+ tmp1_(length(tmp1)-2)=tmp;
+ tmp= " <script type="+Dqq("text/javascript")+" src=";
+ tmp=tmp+Dq+"file:///"+tmp3+"Cindy.js"+Dq+"></script>";
+ tmp1_(length(tmp1)-1)=tmp;
+ tmp=" <script type="+Dqq("text/javascript")+" src="; //190117from
+ tmp1_(length(tmp1))=""; //190120
+ ,
+ tmp1_(length(tmp1)-2)= //190128from
+ " <link rel="+Dqq("stylesheet")+" href="+Dqq("ketcindyjs/CindyJS.css")+">"; //190203
+ tmp1_(length(tmp1)-1)=
+ " <script type="+Dqq("text/javascript")+" src="+Dqq("ketcindyjs/Cindy.js")+"></script>";
+ //190203
+ tmp1_(length(tmp1))=""; //190128to
+ );
+ ,
+ tmp1_(length(tmp1))=""; //190117to
+ );
+ forall(tmp1,
+ println(SCEOUTPUT,#);
+ );
+ tmp="<script id="+Dqq("csinit")+" type=";
+ tmp=tmp+Dqq("text/x-cindyscript")+">";
+ println(SCEOUTPUT,tmp);
+// tmp=Readlines(Dirhead+pathsep()+"ketcindyjs","commonused.txt");
+// forall(tmp,
+// println(SCEOUTPUT,#);
+// );
+ libL=[]; //190209from
+ forall(libnameL,
+ tmp=Readlines(Dirhead+"/ketlib","ketcindylib"+#+"r.cs");
+ libL=append(libL,tmp);
+ ); //190209to
+ forall(Out,fun,
+ libf=fun_2;from=parse(fun_3);upto=parse(fun_4);
+ tmp=select(1..(length(libnameL)),indexof(libf,libnameL_#)>0); //190209from
+ tmp=tmp_1;
+ lib=libL_tmp;
+ tmp1=lib_(from..upto); //190209from
+ ketflg="off"; //190122from
+ onlyflg="off"; //190502
+ forall(tmp1,
+ if(indexof(#,"only ketjs on")>0,onlyflg="on"); //190502
+ if(indexof(#,"only ketjs off")>0,onlyflg="off"); //190502
+ if(indexof(#,"no ketjs")>0,
+ if(indexof(#,"no ketjs on")>0,
+ ketflg="on";
+ );
+ if(indexof(#,"no ketjs off")>0,
+ ketflg="off";
+ );
+ ,
+ if(ketflg=="off",
+ tmp=Removespace(#);
+ if(substring(tmp,0,2)!="//",
+ println(SCEOUTPUT,#);
+ ,
+ tmp1=indexof(tmp,"only ketjs"); //190430from
+ if((tmp1>0)%(onlyflg=="on"), //190502
+ if(tmp1>0,tmp=substring(#,0,tmp1-1)); //190502
+ println(SCEOUTPUT,substring(tmp,2,length(tmp)));
+ ); //190430to
+ );
+ ); //190122to
+ );
+ );
+ );
+ tmp=select(partL,#_1=="csinit");
+ if(length(tmp)>0,
+ tmp=tmp_1;
+ from=tmp_2+5; //190206
+ upto=tmp_3;
+ tmp1=htmorg_((from+1)..(upto-1)); //190119
+ ketflg="off"; //190206from
+ onlyflg="off"; //190502
+ forall(tmp1,
+ if(indexof(#,"only ketjs on")>0,onlyflg="on"); //190502
+ if(indexof(#,"only ketjs off")>0,onlyflg="off"); //190502
+ if(indexof(#,"no ketjs")>0,
+ if(indexof(#,"no ketjs on")>0,
+ ketflg="on";
+ );
+ if(indexof(#,"no ketjs off")>0,
+ ketflg="off";
+ );
+ ,
+ if(ketflg=="off",
+ tmp=Removespace(#);
+ if(substring(tmp,0,2)!="//",
+ println(SCEOUTPUT,#);
+ ,
+ tmp1=indexof(tmp,"only ketjs"); //19020l6from
+ if((tmp1>0)%(onlyflg=="on"), //190502
+ if(tmp1>0,tmp=substring(#,0,tmp1-1)); //190502
+ println(SCEOUTPUT,substring(tmp,2,length(tmp)));
+ ); //190206to
+ );
+ );
+ );
+ );
+ );
+ forall(KetcindyjsDataList, //190422from
+ println(SCEOUTPUT,#+";");
+ ); //190422to
+ println(SCEOUTPUT,"</script>");
+ tmp=select(partL,#_1=="csdraw");
+ tmp=tmp_1;
+ from=tmp_2;
+ upto=tmp_3;
+ tmp1=htmorg_(from..upto);
+ ketflg="off"; //190202from
+ onlyflg="off"; //190502
+ forall(tmp1,
+ if(indexof(#,"only ketjs on")>0,onlyflg="on"); //190502
+ if(indexof(#,"only ketjs off")>0,onlyflg="off"); //190502
+ if(indexof(#,"no ketjs")>0,
+ if(indexof(#,"no ketjs on")>0,
+ ketflg="on";
+ );
+ if(indexof(#,"no ketjs off")>0,
+ ketflg="off";
+ );
+ ,
+ if(ketflg=="off",
+ tmp=Removespace(#);
+ if(substring(tmp,0,2)!="//",
+ println(SCEOUTPUT,#);
+ ,
+ tmp1=indexof(tmp,"only ketjs"); //19020l6from
+ if((tmp1>0)%(onlyflg=="on"), //190502
+ if(tmp1>0,tmp=substring(tmp,0,tmp1-1)); //190502
+ println(SCEOUTPUT,substring(tmp,2,length(tmp))); //190502
+ ); //190206to
+ );
+ );
+ );
+ ); //190206to
+ tmp1=htmorg_((lastpart_1)..(lastpart_2));
+ tmp=select(1..(length(tmp1)),indexof(tmp1_#,Dqq("cs*"))>0);
+ tmp=tmp_1;
+ forall(1..tmp, //190117from
+ println(SCEOUTPUT,tmp1_#);
+ );
+ from=tmp+1; //190117to
+ tmp=" use: ["+Dqq("katex")+"],";
+ println(SCEOUTPUT,tmp);
+ out=[]; //190129
+ forall(from..(length(tmp1)),jj,
+ flg=0; //190126from
+ tmp2=["Figure","Parent","ParaF","Anime","Flip","Title","Slide","Digest",
+ "KeTJS","KeTJSoff","Objview"];
+ if(indexof(tmp1_jj,"type: "+Dqq("Button"))>0,
+ nn=indexof(tmp1_jj,"text: ");
+ tmp=substring(tmp1_jj,nn-1,length(tmp1_jj));
+ nn=Indexall(tmp,Dq);
+ tmp=substring(tmp,nn_1,nn_2-1);
+ if(!contains(tmp2,tmp),
+ out=append(out,tmp1_jj); //190129
+ );
+ flg=1;
+ );
+ if(flg==0,
+ if(indexof(tmp1_jj,"Evaluate")>0,
+ tmp=replace(tmp1_jj,Dqq("Evaluate"),Dqq("EditableText"));
+ if(eqflg==1,tmp=replace(tmp,"=",eqrep)); //190604
+ out=append(out,tmp);
+ flg=1;
+ );
+ );
+ if(flg==0,
+ if(indexof(tmp1_jj,"Calculation")>0,
+ tmp=replace(tmp1_jj,Dqq("Calculation"),Dqq("EditableText"));
+ if(eqflg==1,tmp=replace(tmp,"=",eqrep)); //190604
+ out=append(out,tmp);
+ flg=1;
+ );
+ );
+ tmp=indexall(tmp1_jj,Dq); //190504from
+ if(length(tmp)>0,
+ ptname=substring(tmp1_jj,tmp_1,tmp_2-1);
+ ,
+ ptname="";
+ );
+ if(flg==0,
+ if(contains(rmptL,ptname), flg=1);
+ );
+ tmp2=tmp1_jj;
+ if(length(ptname)>0,
+ if(indexof(tmp2,"size:")==0,
+ tmp2=replace(tmp2,"}",", size: 3.0}");
+ );
+ if(indexof(tmp2,"border:")==0,
+ tmp2=replace(tmp2,"}",", border: true }");
+ );
+ );
+ if(flg==0,
+ tmp=Indexof(tmp2,"labeled: ");
+ if((ptname=="")%(tmp==0),
+ out=append(out,tmp2);
+ flg=1;
+ );
+ );
+ if(flg==0,
+ if(contains(["TH","FI"],ptname),
+ if(SLIDEFLG=="Y",
+ out=append(out,tmp2);
+ flg=1;
+ );
+ );
+ );
+ if(flg==0,
+ if(contains(nolabel,ptname),
+ tmp2=replace(tmp2,"labeled: true","labeled: false");
+ );
+ if((indexof(ptname,"z")>0)%(contains(["NE","SW","TH","FI"],ptname)),
+ if(indexof(ptname,"z")>0,
+ tmp2=replace(tmp2,"labeled: true","labeled: false");
+ );
+ tmp=indexof(tmp2,"color:");
+ tmp3=Indexall(tmp2,"],");
+ tmp3=select(tmp3,#>tmp);
+ if(length(tmp3)>0,
+ tmp3=tmp3_1;
+ ,
+ tmp3=indexof(tmp2,"]}");
+ );
+ tmp=substring(tmp2,tmp-1,tmp3);
+ tmp2=replace(tmp2,tmp,"color: [1.0,1.0,1.0]");
+// tmp2=replace(tmp2,"color: tmp,"color: "+text(colorrgb));
+ tmp2=replace(tmp2,"border: true","border:false");
+ tmp=indexof(tmp2," size:");
+ tmp3=Indexall(tmp2,",");
+ tmp3=select(tmp3,#>tmp);
+ if(length(tmp3)>0,
+ tmp3=tmp3_1;
+ ,
+ tmp3=indexof(tmp2,"}");
+ );
+ tmp=substring(tmp2,tmp-1,tmp3-1);
+ tmp2=replace(tmp2,tmp," size: 2.0");
+ );
+ out=append(out,tmp2);
+ flg=1;
+ ); //190504to
+ if(flg==0,
+ if(length(tmp1_jj)>0, //190504from
+ out=append(out,tmp1_jj);
+ ); //190504to
+ ); //190126to
+ );
+ tmp=select(1..(length(out)),indexof(out_#," ],")>0); //190129from
+ tmp=tmp_1;
+ tmp1=out_(tmp-1);
+ if(substring(tmp1,length(tmp1)-1,length(tmp1))==",", //190201from
+ out_(tmp-1)=substring(tmp1,0,length(tmp1)-1);
+ ); //190201to
+ tmp=select(1..(length(out)),indexof(out_#,"width:")>0);
+ jj=tmp_1;
+ tmp1=out_jj;
+ flg=0;
+ forall(1..(length(tmp1)-1),
+ if(flg==0,
+ tmp=substring(tmp1,#-1,#);
+ if(tmp==":",
+ tmp2=substring(tmp1,#+1,length(tmp1)-1);
+ flg=1;
+ );
+ );
+ );
+ tmp=round(scale*parse(tmp2));
+ out_jj=" width: "+text(tmp)+",";
+ tmp=select(1..(length(out)),indexof(out_#,"height:")>0);
+ jj=tmp_1;
+ tmp1=out_jj;
+ flg=0;
+ forall(1..(length(tmp1)-1),
+ if(flg==0,
+ tmp=substring(tmp1,#-1,#);
+ if(tmp==":",
+ tmp2=substring(tmp1,#+1,length(tmp1)-1);
+ flg=1;
+ );
+ );
+ );
+ tmp=round(scale*parse(tmp2));
+ out_jj=" height: "+text(tmp)+",";
+ if(length(color)>0,
+ tmp=select(1..(length(out)),indexof(out_#,"background: ")>0);
+ jj=tmp_1;
+ tmp=indexof(out_jj,")"); //190130from
+ tmp=substring(out_jj,tmp-1,length(out_jj));
+ out_jj=" background: "+Dq+"rgb("+color+tmp; //190130to
+ );
+ if(length(grid)>0,
+ tmp=select(1..(length(out)),indexof(out_#,"grid:")>0);
+ jj=tmp_1;
+ tmp1=" grid: "+grid;
+ if(indexof(out_jj,",")>0,
+ tmp1=tmp1+",";
+ );
+ out_jj=tmp1;
+ );
+ forall(out,
+ println(SCEOUTPUT,#);
+ ); //190129to
+ closefile(SCEOUTPUT);
+ setdirectory(Dirwork);
+ if(webflg=="Y",tmp="json",tmp="jsoff");
+ drawtext(mouse().xy-[0,1],tmp+"in "+path,size->20,color->[1,0,0]);
+ wait(1000);
+ );
+);
+////%Mkketcindyjs end////
+
+//help:end();
+
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt
index c3e02a5c21c..a6a35d673f7 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibhelpJ.txt
@@ -90,14 +90,11 @@
//help:PtonSeg*(線分上に点をとる);
//help:PutonCurve*(曲線上に点をとる);
//help:Setscaling*(縦方向の倍率を指定);
- //help:Tabledatalight*(幾何点をもたない表データ作成
- //追加オプション : ラベルのとび,描画領域を表に合わせるか);
+ //help:Tabledata*(表データ作成
+ //追加オプション : ラベルのとび,描画領域を表に合わせるか,幾何点を用いるか);
//help:Tgrid*(表のセルの座標を返す);
//help:Tlistplot*(表の2格子点を結ぶ線分);
////help:ChangeTablestyle*(表の罫線のスタイル変更);
-//help:Tabledata*(幾何点をもつ表データを作成
- //追加オプション : ラベルのとび,描画領域を表に合わせるか);
-//help:Tabledata*(xLst=apply(1..5,10);yLst=apply(1..4,8);rmvL=[];);
//help:Findcell*(表のセルの情報を返す);
//help:Putcell*(表のセルに文字を書き入れる);
//help:Putcellexpr*(表のセルに数式を書き入れる);
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
index a1aa7df77e3..a325fea4bd7 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
@@ -1,3 +1,7 @@
+// 20190415
+// parse( ..= ) changed ( ; added )
+// 20190404
+// Mkanimation, Mkflipanime changed ( Filename )
// 20190317
// Setpara debugged ( default value of Frate changed to 20)
// 20181224
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
index 618a070f121..56351e659a8 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindymv(20190317) loaded");
+println("ketcindymv(20190415) loaded");
//help:start();
@@ -123,7 +123,7 @@ Parafolder(fstr,sL,optionorg):=(
tmp1=substring(fstr,tmp,length(fstr));
tmp=indexof(tmp1,")");
tmp1=substring(tmp1,0,tmp-1);
- parse("Movieframe("+tmp1+"):="+fstr);
+ parse("Movieframe("+tmp1+"):="+fstr+";"); //190415
options=optionorg;
tmp=Divoptions(options);
eqL=tmp_5;
@@ -255,7 +255,7 @@ Parafolder(fstr,sL,optionorg):=(
println("Parafolder finished");
);
if(length(after)>0,
- parse(after);
+ parse(after+";"); //190415
);
);
if(ErrFlag!=-1,//180617from
@@ -378,7 +378,7 @@ Mkanimation(path,folder):=(
);
); //17.11.25until
Fheadbkup=Fhead;
- Fhead="animate"+folder;
+ Fhead=folder+"animate"; //190404
Pathpdfbkup=Pathpdf;
Pathpdf=PathAd;
tmp1=replace(PathT,pathsep(),"/");
@@ -528,7 +528,7 @@ Mkflipanime(path,folder):=(
);
); //17.11.25until
Fheadbkup=Fhead;
- Fhead="flipanime"+folder;
+ Fhead=folder+"flipanime"; //190404
tmp1=replace(PathT,pathsep(),"/");
tmp=indexall(tmp1,"/");//17.10.14from
if(length(tmp)>0,
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
index ceb338a17a9..ddfac03553f 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
@@ -1,3 +1,14 @@
+// 20190424
+// PlotdiscR changed ( "-" added to Listplot )
+// Mxfun debugged (options)
+// 20190415
+// parse( ..= ) changed ( ; added )
+// 20190411
+// CalcbyM changed ("Errchk=" added)
+// 20190327
+// Mxfun debugged ( eqL to 1 char)
+// 20190317
+// Readcsv debugged ( in case of 2 args )
// 20190301
// MeasureDepth => Measuredepth
// Readcsv changed ( for 2 arg, ".csv" can be omitted )
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
index c5fbf3a999d..7de07986f3f 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibout[20190301] loaded");
+println("ketcindylibout[20190424] loaded");
//help:start();
@@ -1094,7 +1094,7 @@ CalcbyR(name,path,cmd,optionorg):=(
tmp3=replace(tmp3,"[,","[");
tmp3=replace(tmp3,",]","]");
);
- tmp=name+"="+tmp3;//180227
+ tmp=name+"="+tmp3+";";//180227//190415
parse(tmp);
);
);
@@ -1290,7 +1290,7 @@ Readcsv(Arg1,Arg2):=( //190301from
if(islist(Arg2),
Readcsv(Dirwork,Arg1,Arg2);
,
- Readcsv(path,file,[]);
+ Readcsv(Arg1,Arg2,[]); //190317
);
); //190301from
Readcsv(path,file,options):=(
@@ -1538,7 +1538,7 @@ PlotdataR(name1,path,func,variable,optionorg):=(
ReadOutData(wfile);
Extractdata(name,options);
tmp=parse(name);
- tmp1=name+"="+textformat(tmp,5);
+ tmp1=name+"="+textformat(tmp,5)+";";
parse(tmp1);
tmp2=apply(tmp,Lcrd(#));
tmp2;
@@ -1574,7 +1574,7 @@ PlotdiscR(nm,fun,varrng,options):=(
tmp1=replace(tmp1,"##","");
pb=tokenize(tmp1,",");
tmp=apply(range,[#,pb_(#+1)]);
- Listplot(name,tmp,options);
+ Listplot("-"+name,tmp,options); //190424
);
);
////%PlotdiscR end////
@@ -1890,7 +1890,7 @@ Histplot(nm,dataorg,optionorg):=(
// tmp=load(file);
// tmp=replace(tmp,"/","");
// tmp=tokenize(tmp,",");
-// tmp=name+"="+textformat(tmp,5);
+// tmp=name+"="+textformat(tmp,5)+";";
// parse(tmp);
hp=parse(name);
tmp1=(length(hp)-1)/3+1;
@@ -1916,7 +1916,7 @@ Histplot(nm,dataorg,optionorg):=(
);
pstr=substring(pstr,0,length(pstr)-1)+"]";
println("generate totally "+name);
- tmp=name+"="+pstr;
+ tmp=name+"="+pstr+";"; //190415
parse(tmp);
[bdata,cdata];
);
@@ -1968,7 +1968,7 @@ Scatterplot(nm,file,optionorg,optionsreg):=(
,
tmp=file;
);
- parse("rc"+nm+"="+tmp); //181013to
+ parse("rc"+nm+"="+tmp+";"); //181013to //190415
Pointdata(name,parse("rc"+nm),options);
tmp=parse("rc"+nm);
dtx=apply(tmp,#_1);
@@ -2281,7 +2281,7 @@ PlotdataS(nm,fun,variable,optionorg):=(
ReadOutData(fname);
Extractdata(name,options);
tmp=parse(name);
- tmp1=name+"="+textformat(tmp,5);
+ tmp1=name+"="+textformat(tmp,5)+";"; //190415
parse(tmp1);
// Addgraph(name); // 16.04.04
tmp2=apply(tmp,Lcrd(#));
@@ -2682,12 +2682,12 @@ CalcbyA(name,cmd,optionorg):=(
tmp=Indexof(tmp1,"/start/,"); // 16.05.18from
tmp1="["+Dq+substring(tmp1,tmp+7,length(tmp1)-1)+"]";
// 16.05.18until
-// tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
+// tmp1=substring(tmp1,0,length(tmp1)-1)+"];"; //190415
parse(name+"="+tmp1);
tmp=parse(name);
if(length(tmp)==1,
tmp1=substring(tmp1,1,length(tmp1)-1);
- parse(name+"="+tmp1);
+ parse(name+"="+tmp1+";"); //190415
);
flg=1;
tmp2=#*WaitUnit/1000;
@@ -2825,7 +2825,7 @@ Asirfun(name,fun,argL,optionorg):=(
);
out=out2;
tmp=apply(out,Dq+#+Dq);
- parse(nm+"="+tmp);
+ parse(nm+"="+tmp+";"); //190415
);
if(ErrFlag==0,
if(disp==1, // 15.11.24
@@ -2982,28 +2982,28 @@ kcM(fname,optionorg):=(
CalcbyM(name,cmd):=CalcbyM(name,cmd,[]);
CalcbyM(name,cmd,optionorg):=(
//help:CalcbyM("a",cmdL);
-//help:CalcbyM(options1= ["m/r","Wait=5","Ext=txt","Dig=6","Pow=no","All=y"]);
+//help:CalcbyM(options1= ["m/r","Wait=5","Errchk=y(/n)","Dig=6","Pow=no","All=y"]);
//help:CalcbyM(options2= ["line=1000"]);
regional(options,tmp,tmp0,tmp1,tmp2,tmp3,tmp4,realL,strL,eqL,allflg,indL,line,
- dig,flg,wflg,file,nc,arg,add,powerd,cmdM,cmdlist,wfile,ext,waiting,num,st);
+ dig,flg,wflg,file,nc,arg,add,powerd,cmdM,cmdlist,wfile,errchk,waiting,num,st);
options=optionorg;
tmp=divoptions(options);
eqL=tmp_5;
realL=tmp_6;
strL=tmp_7;
wfile="";
- ext=".txt";
+ errchk="Y"; //190411
waiting=5;
dig=6;
allflg=1;
powerd="false";
line=1000; // 16.06.13
forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
if(tmp1=="E",
- if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2);
+ errchk=Toupper(substring(tmp_1,0,1)); //190411
options=remove(options,[#]);
);
if(tmp1=="W",
@@ -3029,7 +3029,7 @@ CalcbyM(name,cmd,optionorg):=(
options=remove(options,[#]);
);
);
- wfile=Fhead+name+ext;
+ wfile=Fhead+name+".txt"; //190411
wflg=0;
forall(strL,
tmp=Toupper(substring(#,0,1));
@@ -3080,7 +3080,6 @@ CalcbyM(name,cmd,optionorg):=(
forall(tmp2,arg,
if(isstring(arg),
if(substring(arg,0,1)!=",",
-// tmp=replace(arg,"'",Dq); // 16.03.03
tmp=arg; // 16.03.03
tmp=replace(tmp,"`","'");// 2016.02.23
tmp3=tmp3+tmp+",";
@@ -3095,7 +3094,6 @@ CalcbyM(name,cmd,optionorg):=(
tmp4="]";
forall(arg,
if(isstring(#),
-// tmp3=tmp3+Dq+#+Dq+",";
tmp=replace(#,"'",Dq);
tmp3=tmp3+tmp+",";
,
@@ -3161,7 +3159,7 @@ CalcbyM(name,cmd,optionorg):=(
if(wflg==1,wait(WaitUnit)); // 2016.02.23
if(length(tmp1)>0,
tmp=indexof(tmp1,"error")+indexof(tmp1,"syntax"); //2016.02.23
- if(tmp>0,
+ if((tmp>0)&(errchk=="Y"), //190411
println("Some error(s) occurred"); //2016.02.24 from
tmp2=tokenize(tmp1,"(%");
forall(4..length(tmp2),println(tmp2_#)); //2016.02.24 until
@@ -3199,11 +3197,11 @@ CalcbyM(name,cmd,optionorg):=(
);
tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
tmp1=replace(tmp1,".d+0",""); // 15.11.23
- parse(name+"="+tmp1);
+ parse(name+"="+tmp1+";"); //190415
tmp=parse(name);
if(length(tmp)==1,
tmp1=substring(tmp1,1,length(tmp1)-1);
- parse(name+"="+tmp1);
+ parse(name+"="+tmp1+";"); //190415
);
flg=1;
tmp2=#*WaitUnit/1000;
@@ -3255,29 +3253,29 @@ Mxfun(name,fun,argL,optionorg):=(
add="";
eqL=tmp_5;
forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,1));
- tmp2=substring(#,tmp,length(#));
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1)); //190424
+ tmp2=tmp_2;
if(tmp1=="P",
precise=parse(tmp2);
options=remove(options,[#]);
);
- if(tmp1=="DIS" ,
+ if(tmp1=="D" , //190327(to 1 char)
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="F") % (tmp=="N"),
disp=0;
);
options=remove(options,[#]);
);
- if((tmp1=="PAC") % (tmp1=="LOA"), // 16.02.08
+ if((tmp1=="P") % (tmp1=="L"), //190327(to 1 char)
pack=tokenize(tmp2,"::");
options=remove(options,[#]);
);
- if(tmp1=="SET",
+ if(tmp1=="S", //190327(to 1 char)
set=tokenize(tmp2,"::");
options=remove(options,[#]);
);
- if(tmp1=="ADD",
+ if(tmp1=="A", //190327(to 1 char)
add=","+tmp2;
options=remove(options,[#]);
);
@@ -3367,7 +3365,7 @@ Mxtex(nm,ex,optionorg):=(
println(name+" is:");
println(out);
);
- tmp=name+"="+Dq+out+Dq; //16.01.10
+ tmp=name+"="+Dq+out+Dq+";"; //16.01.10//190415
parse(tmp);
out;
);
@@ -3382,7 +3380,7 @@ MxtexL(nm,exlist,options):=(
tmp=Mxtex(nm+"n"+text(#),exlist_#,["Disp=n"]);
out=append(out,Dq+tmp+Dq);
);
- tmp="tx"+nm+"="+out;
+ tmp="tx"+nm+"="+out+";"; //190415
parse(tmp);
println("tx"+nm+"is:");
apply(out,println(#));
@@ -3840,7 +3838,7 @@ Mkobjcmd(nm,fd,options):=(
);
tmp2=append(tmp2,tmp);
);
- parse("oc"+nm+"="+tmp2);
+ parse("oc"+nm+"="+tmp2+";"); //190415
println("cmd seq oc"+nm+" generated"); // 16.06.10until
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
@@ -4022,7 +4020,7 @@ Mkobjthickcmd(nm,fd,fnrm,optionorg):=(
if(fnrm=="",
tmp=Mkobjnrm(nm,fd,options);
tmp1=RSform(tmp);
- tmp="Fnrmden"+nm+"("+xst+","+yst+"):="+tmp_2;
+ tmp="Fnrmden"+nm+"("+xst+","+yst+"):="+tmp_2+";"; //190415
parse(tmp);
,
tmp1=RSform(fnrm);
@@ -4044,7 +4042,7 @@ Mkobjthickcmd(nm,fd,fnrm,optionorg):=(
);
tmp2=append(tmp2,tmp);
);
- parse("oc"+nm+"="+tmp2);
+ parse("oc"+nm+"="+tmp2+";"); //190415
println("cmd seq oc"+nm+" generated"); // 16.06.10until
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
@@ -4117,7 +4115,7 @@ Mkobjpolycmd(nm,pd,optionorg):=(
);
tmp2=append(tmp2,tmp);
);
- parse("oc"+nm+"="+tmp2);
+ parse("oc"+nm+"="+tmp2+";"); //190415
println("cmd seq oc"+nm+" generated"); // 16.06.10until
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
@@ -4196,7 +4194,7 @@ Mkobjplatecmd(nm,pdorg,optionorg):=( // 16.06.18
tmp3=tmp3+tmp2;
);
tmp3=substring(tmp3,0,length(tmp3)-1)+"]";
- parse("oc"+nm+"="+tmp3);
+ parse("oc"+nm+"="+tmp3+";"); //190415
println("cmd seq oc"+nm+" generated");
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
@@ -4270,7 +4268,7 @@ Mkobjcrvcmd(nm,pstorg,options):=(
);
tmp2=append(tmp2,tmp);
);
- parse("oc"+nm+"="+tmp2);
+ parse("oc"+nm+"="+tmp2+";"); //190415
println("cmd seq oc"+nm+" generated"); // 16.06.10until
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
@@ -4401,7 +4399,7 @@ Mkobjsymbcmd(path,symborg,size,rot,dir,pos,optionorg):=(
);
tmp2=append(tmp2,tmp);
);
- parse("oc"+symborg+"="+tmp2);
+ parse("oc"+symborg+"="+tmp2+";"); //190415
// println("cmd seq oc"+symborg+" generated"); // 16.06.10until
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
@@ -4707,12 +4705,12 @@ CalcbyF(name,cmd,optionorg):=(
);
);
);
- tmp=name+"="+substring(tmp4,0,length(tmp4)-1)+"]";
+ tmp=name+"="+substring(tmp4,0,length(tmp4)-1)+"];"; //190415
parse(tmp);
tmp=parse(name);
if(length(tmp)==1,
tmp1=substring(tmp4,1,length(tmp3)-1);
- parse(name+"="+tmp1);
+ parse(name+"="+tmp1+";"); //190415
);
flg=1;
tmp2=#*WaitUnit/1000;
@@ -6166,7 +6164,7 @@ Crv2onsfparadataC(nm,crv2d,sfbd,fdorg,options,optionsh):=(
forall(tmp1,
tmp2=append(tmp2,tmpfun(#_1,#_2));
);
- tmp=crv3d+"="+textformat(tmp2,6);
+ tmp=crv3d+"="+textformat(tmp2,6)+";"; //190415
parse(tmp);
Crv3onsfparadataC(nm,crv3d,sfbd,fdorg,options,optionsh);
);
@@ -6479,11 +6477,11 @@ Sfcutparadatacdy(nm,cutfun,fd,options):=(
tmp=tmp+"sfc"+nm+"n"+text(#)+"3d"+",";
tmp1=tmp1+Dqq("sfc"+nm+"n"+text(#)+"3d")+",";
);
- tmp=substring(tmp,0,length(tmp)-1)+"]";
+ tmp=substring(tmp,0,length(tmp)-1)+"];"; //190415
parse(tmp);
tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
println("generate sfcutparadata "+tmp1);
- tmp=name2+"="+Textformat(out2,6);
+ tmp=name2+"="+Textformat(out2,6)+";"; //190415
parse(tmp);
out3;
);
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
index 0d7791d6fb0..be7bba6346f 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
@@ -16,10 +16,23 @@
#########################################
-ThisVersion<- "KeTpic for R v5_2_4(20190127)"
+ThisVersion<- "KeTpic for R v5_2_4(20190511)"
print(ThisVersion)
+# 20190511
+# Implicitplot changed (Eps=> 10^(-6))
+# 20190508
+# Implicitplot debugged ( bisection method employed )
+# 20190409
+# Plotdata debugged ( Exclution at left side)
+# 20190408
+# Projpara debugged ( for a single point )
+# 20190405
+# Drwpt changed(Incolor,Same)
+# Makecurves changed(Drwpt)
+# 20190322
+# Plotdata debugged (in the case fo Exc)
# 20190127
# Mvprod added
# 20181231
@@ -2407,27 +2420,16 @@ Drwpt<-function(...){
Same="y"
Incolor=""
Tmp=varargin[[All]]
- if(is.numeric(Tmp)){
- if(length(Tmp)==3){Tmp=c(Tmp,1)} #181231
- if(length(Tmp)==4){
- if(Tmp[4]<0){ #181231from
- Same="nn"
- }else{
- Incolor=paste(" ",as.character(Tmp[4]),sep="")
- } #181231to
+ if((is.numeric(Tmp))&&(length(Tmp)>2)){ #190405from
+ if(Tmp[1]==-1){
+ Same="no"
}else{
+ Tmp1=sapply(Tmp,as.character)
+ Incolor=paste("{",Tmp1[1],",",Tmp1[2],",",Tmp1[3],"}",sep="")
Same="n"
- Incolor="{"
- for(J in 4:6){
- Incolor=paste(Incolor,as.character(Tmp[J]),sep="")
- if(J<6){
- Incolor=paste(Incolor,",",sep="")
- }
- }
- Incolor=paste(Incolor,"}",sep="")
}
- All=Nargs-1
- }#181230to
+ All=All-1
+ }#190405to
CL<- c()
for (J in 0:N){
Tmp<- TenSize*0.5*1000/2.54/MilliIn
@@ -2452,9 +2454,11 @@ Drwpt<-function(...){
}
PL<- matrix(PL,nrow=2)
PL<- t(PL)
- if(Same=="n"){ #181230from
- Str1<- paste("{\\special{pn 0}\\color[rgb]",Incolor,"%\n",sep="")
- cat(Str1,file=Wfile,append=TRUE)
+ if(Same!="no"){ #190405
+ if(Same=="n"){ #190405
+ Str1<- paste("{\\special{pn 0}\\color[rgb]",Incolor,"%\n",sep="")
+ cat(Str1,file=Wfile,append=TRUE)
+ }
Mojisu<-0
for (J in 1:Nrow(PL)){
Q<- PL[J,]
@@ -2468,7 +2472,11 @@ Drwpt<-function(...){
}
Mojisu=0
}
- Str1<- paste("\\special{sh}\\special{fp}}%\n",sep="")
+ Str1<- "\\special{sh}\\special{fp}" #190405from
+ if(Same=="n"){
+ Str1<- paste(Str1,"}",sep="")
+ }
+ Str1<- paste(Str1,"%\n",sep="") #190405to
cat(Str1,file=Wfile,append=TRUE)
}
cat("\\special{pn 4}",file=Wfile,append=TRUE) #181231
@@ -4517,6 +4525,7 @@ MakeCurves<-function(...){ ## Scaling is implemented
next
}
Tmp1<- as.numeric(Motos)
+ Tmp1=list(Tmp1) #190405
if(Ptout==1){
Drwpt(Tmp1)
}
@@ -5547,7 +5556,6 @@ Plotdata<- function(...)
Tmp<- sort(E)
E<- E[length(Tmp):1]
Ke<- 1
-# for (x in seq(X1,X2,by=dx)){
for (J in 0:N){ #180929
x=X1+dx*J/N #180929
if(nchar(Exfun)>0){
@@ -5573,7 +5581,8 @@ Plotdata<- function(...)
Ke<-Ke+1
}
if(length(Pa)>0){
- if(Pa[1]==Inf){
+ if((abs(Pa[1])==Inf)||(abs(Pa[2])==Inf)){ #190409
+ Pa=c(Inf,Inf) #190322
Tmp<-Appendrow(P,Pa)
P<-Tmp
}
@@ -9779,6 +9788,9 @@ Projpara<- function(...){
for (N in Looprange(1,Nargs)){
Crv<- varargin[[N]]
if(is.numeric(Crv)){
+ if(!is.matrix(Crv)){ # 190408from
+ Crv=matrix(Crv,ncol=3)
+ } # 190408to
Tmp<- ProjCurve(Crv)
CL<- c(CL,list(Tmp))
}
@@ -11686,7 +11698,7 @@ Connectseg<- function(...){
Implicitplot<- function(...){ #180402
varargin=list(...)
- Eps=10^(-4)
+ Eps=10^(-6) #190511
Nargs=length(varargin)
Func=varargin[[1]]
Xrng=varargin[[2]]
@@ -11749,14 +11761,28 @@ Implicitplot<- function(...){ #180402
}else{
if(vL[kk]>Eps){
if(vL[kk+1]< -Eps){
- tmp=1/(vL[kk]-vL[kk+1])*
- (-vL[kk+1]*pL[[kk]]+vL[kk]*pL[[kk+1]])
+# tmp=1/(vL[kk]-vL[kk+1])*
+# (-vL[kk+1]*pL[[kk]]+vL[kk]*pL[[kk+1]])
+ tmp1=pL[[kk]]; tmp2=pL[[kk+1]] #190508from
+ for(ii in 1:20){ #190511
+ tmp=(tmp1+tmp2)/2
+ tmp3=Impfun(tmp[1],tmp[2])
+ if(abs(tmp3)<=Eps){break}
+ if(tmp3>Eps){tmp1=tmp}else{tmp2=tmp}
+ } #190508to
qL=Appendrow(qL,tmp)
}
}else{
if(vL[kk+1]>Eps){
- tmp=1/(-vL[kk]+vL[kk+1])*
- (vL[kk+1]*pL[[kk]]-vL[kk]*pL[[kk+1]])
+# tmp=1/(-vL[kk]+vL[kk+1])*
+# (vL[kk+1]*pL[[kk]]-vL[kk]*pL[[kk+1]])
+ tmp1=pL[[kk]]; tmp2=pL[[kk+1]] #190508from
+ for(ii in 1:20){ #190511
+ tmp=(tmp1+tmp2)/2
+ tmp3=Impfun(tmp[1],tmp[2])
+ if(abs(tmp3)<=Eps){break}
+ if(tmp3>Eps){tmp2=tmp}else{tmp1=tmp}
+ } #190508to
qL=Appendrow(qL,tmp)
}
}
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
index 8d2a90b274d..084f94c70c2 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
@@ -16,8 +16,10 @@
#########################################
-ThisVersion<- "2ev5_2_4(181230)"
+ThisVersion<- "2ev5_2_4(190405)"
+# 20190405
+# Drwpt debugged/changed ( Incolor )
# 20181230
# Drwpt changed ( Inside )
# 20180930
@@ -208,7 +210,7 @@ Drwline<-function(...)
###########################################
-Drwpt<-function(...) #181230
+Drwpt<-function(...) #190405
{
varargin<-list(...)
Nargs<-length(varargin)
@@ -216,34 +218,17 @@ Drwpt<-function(...) #181230
Same="y"
Incolor=""
Tmp=varargin[[All]]
- if(is.numeric(Tmp)){
- if(length(Tmp)==3){Tmp=c(Tmp,1)}
- if(length(Tmp)==4){
- if(Tmp[4]<0){
- Same="nn"
- }else{
- if(Tmp[4]!=1){
- Tmp1=Tmp[4]*(c(1,1,1)-Tmp[1:3])
- Tmp1=c(1,1,1)-Tmp1
- Tmp=c(Tmp[1:3],Tmp1)
- }
- }
- }
- if(length(Tmp)==6){
+ if((is.numeric(Tmp))&&(length(Tmp)>2)){ #190405from
+ if(Tmp[1]==-1){
+ Same="no"
+ }else{
+ Tmp1=sapply(Tmp,as.character)
+ Incolor=paste("{",Tmp1[1],",",Tmp1[2],",",Tmp1[3],"}",sep="")
Same="n"
- Incolor="\\color[rgb]{"
- for(J in 4:6){
- Incolor=paste(Incolor,as.character(Tmp[J]),sep="")
- if(J<6){
- Incolor=paste(Incolor,",",sep="")
- }
- }
- Incolor=paste(Incolor,"}",sep="")
}
- All=Nargs-1
- }
+ All=All-1
+ }#190405to
Ra=TenSize*1000/2.54/MilliIn
- Mojisu=0
for (II in Looprange(1,All)){
MS<- varargin[[II]]
MS=Flattenlist(MS) #17.10.28
@@ -256,36 +241,25 @@ Drwpt<-function(...) #181230
P<- Doscaling(P)
X=sprintf('%5.5f',P[1])
Y=sprintf('%5.5f',P[2])
- Str=""
- if(Same=="n"){
- Str=paste("{\\linethickness{0 in}",Incolor,sep="")
- }
- if(Same!="nn"){
- Str=paste(Str,'\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
+ if(Same!="no"){ #190405from
+ Str=paste("{\\linethickness{0 in}%\n",sep="")
cat(Str,file=Wfile,append=TRUE)
- Mojisu=Mojisu+nchar(Str)
- }
- if(Same=="n"){
- cat("}",file=Wfile,append=TRUE)
+ if(Same=="n"){ #190405
+ Str1<- paste("{\\color[rgb]",Incolor,"%\n",sep="")
+ cat(Str1,file=Wfile,append=TRUE)
+ }
+ Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}%\n',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ if(Same=="n"){
+ cat("}%\n",file=Wfile,append=TRUE)
+ }
+ cat("}%\n",file=Wfile,append=TRUE)
}
- Str=paste('\\put(',X,',',Y,'){\\circle{',sprintf('%6.6f',Ra),'}}',sep="")
+ Str=paste('\\put(',X,',',Y,'){\\circle{',sprintf('%6.6f',Ra),'}}%\n',sep="")
cat(Str,file=Wfile,append=TRUE)
- Mojisu=Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("\n",file=Wfile,append=TRUE)
- Mojisu=0
- Str=""
- }
}
- }
- if(Same=="n"){
- # Str='}%'
- }
- if(Mojisu>0){
- Str=paste('\n',Str,'\n',sep="")
- }
- cat(Str,file=Wfile,append=TRUE)
- cat("\n",file=Wfile,append=TRUE) #180930
+ } # 190405to
+ cat("\n",file=Wfile,append=TRUE)
}
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r
index bce6137fea1..c68ccc5e83e 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_reptikz.r
@@ -16,18 +16,232 @@
#########################################
-ThisVersion<- "2ev5_2_4(180930)"
+ThisVersion<- "tikzv1_1_1(190402)"
-# 20180930
-# Drwpt debugged ( the last newline added)
-# 20180929
-# Shade changed (Kyoukai => Joincrvs)
-# 2017.10.28
-# Drwpt debugged ( Flattenlist )
-# 2017.10.07
-# Dottedline,Drwline,Drwpt,Makehasen,Beginpicture,Setpen,Shade
+# 2019.04.05 Drwpt ( Incolor, Takato)
+# 2019.04.02 Beginpicture ( Unitlen, Takato)
+# 2019.04.02 Drwline ( Sepen restore when finished, Takato)
+# 2019.03.17 from 20190207
+# Ketinit, Beginpicture, Endpicture, Drwline, Setpen, Dottedline, Makehasen, Drwpt, Shade, Letter #from 20190317
-#############################################
+########### Ketinit ############
+
+Ketinit<- function(){
+XMIN<<- -5
+XMAX<<- 5
+YMIN<<- -5 ; YMAX<<- 5
+ZIKU<<- "l"
+#ARROWSIZE<<- 1
+XNAME<<- "$x$"
+XPOS<<- "e"
+YNAME<<- "$y$"
+YPOS<<- "n"
+ONAME<<- "O"
+OPOS<<- "sw"
+ULEN<<- "1cm"
+MilliIn<<- 1/2.54*1000
+PenThick<<- round(MilliIn*0.02)*0.075 #from 20190317
+PenThickInit<<- PenThick
+TenSizeInit<<- 0.02*2 #17.10.07
+TenSize<<- TenSizeInit
+Wfile<<-""
+MEMORI<<- 0.05
+MEMORIInit<<- MEMORI
+MEMORINow<<- MEMORI
+MARKLEN<<- 0.05
+MARKLENInit<<- MARKLEN
+MARKLENNow<<- MARKLEN
+GENTEN<<- c(0,0)
+YaSize<<- 1
+YaAngle<<- 18
+YaPosition<<- 1
+YaThick<<- 1
+YaStyle<<- "tf"
+PHI<<- 30*pi/180
+THETA<<- 60*pi/180
+FocusPoint<<- c(0,0,0)
+EyePoint<<- c(5,5,5)
+ASSIGNLIST<<- list("`","'")
+
+SCALEX<<- 1
+SCALEY<<- 1
+LOGX<<- 0
+LOGY<<- 0
+
+TEXFORLEVEL<<- 0
+TEXFORLAST<<- list()
+}
+
+################### Beginpicture ######################
+
+Beginpicture<-function(ul)
+{ ## Scaling is implemented
+ Tmp<- Doscaling(c(XMIN,YMIN))
+ Xm<- Tmp[1]
+ Ym<- Tmp[2]
+ Tmp<- Doscaling(c(XMAX,YMAX))
+ XM<- Tmp[1]
+ YM<- Tmp[2]
+ Dx<- XM-Xm
+ Dy<- YM-Ym
+ Sym<-".0123456789 +-*/"
+ SL<-Sym
+ OL<-"+-*/"
+ if (ul!=""){
+ ULEN<<-ul;
+ }
+ Is<-1;
+ VL<-"";
+ Ucode<-ULEN
+ for (I in Looprange(1,nchar(Ucode))){
+ C<-substring(Ucode,I,I);
+ if (length(grep(C,SL,fixed=TRUE))>0){
+ if (length(grep(C,OL,fixed=TRUE))>0){
+ Tmp<-substring(Ucode,Is,I-1);
+ Str<-paste(VL,Tmp,C,sep="")
+ VL<-Str
+ Is<-I+1;
+ }
+ }
+ else{
+ Unit<-substring(Ucode,I,I+1);
+ Str<-substring(Ucode,Is,I-1);
+ VL<-paste(VL,Str,sep="")
+ break;
+ }
+ }
+ Valu<-eval(parse(text=VL));
+ Str<-as.character(Valu);
+ ULEN<<- paste(Str,Unit,sep="");
+ if (Unit=="cm") MilliIn<<-1000/2.54*Valu
+ if (Unit=="mm") MilliIn<<-1000/2.54*Valu/10
+ if (Unit=="in") MilliIn<<-1000*Valu
+ if (Unit=="pt") MilliIn<<-1000/72.27*Valu
+ if (Unit=="pc") MilliIn<<-1000/6.022*Valu
+ if (Unit=="bp") MilliIn<<-1000/72*Valu
+ if (Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
+ if (Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu;
+ if (Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
+ MARKLEN<<- MARKLENNow*1000/2.54/MilliIn;
+ Str<-paste("{\\unitlength=",ULEN,"%\n",sep="");
+ cat(Str,file=Wfile,append=TRUE);
+ cat("\\begin{tikzpicture}[x=",ULEN,",y=",ULEN,"]%\n",file=Wfile,append=TRUE);#190404
+ Str<-"\\clip (";
+ Tmp<-as.character(round(Xm,digits=6));
+ Str<-paste(Str,Tmp,",",sep="");
+ Tmp<-as.character(round(Ym,digits=6));
+ Str<-paste(Str,Tmp,") rectangle (",sep="");
+ Tmp<-as.character(round(XM,digits=6)+0.5);
+ Str<-paste(Str,Tmp,",",sep="");
+ Tmp<-as.character(round(YM,digits=6)+0.5);
+ Str<-paste(Str,Tmp,");%\n",sep="");
+ cat(Str,file=Wfile,append=TRUE);
+# Str=paste('\\linethickness{',as.character(PenThickInit/1000),'in}%',sep="") #20190207
+# cat(Str,file=Wfile,append=TRUE)
+# cat("%\n",file=Wfile,append=TRUE)
+}
+
+################### Endpicture #####################
+
+Endpicture<-function(...)
+{
+ varargin<-list(...)
+ Nargs<-length(varargin)
+ if(Nargs==0)
+ {
+ Drwxy()
+ }
+ else
+ {
+ if(varargin[[1]]==1) Drwxy()
+ }
+ cat("\\end{tikzpicture}}%",file=Wfile,append=TRUE)
+ MEMORI<<-MEMORINow*1000/2.54/MilliIn
+ Setunitlen("1cm")
+}
+
+##################### Drwline ######################
+
+Drwline<-function(...)
+{
+ varargin<-list(...)
+ Nall <- length(varargin)
+ Tmp <- varargin[[Nall]]
+ Width <- PenThick/PenThickInit
+ Thick <- 1
+ if (mode(Tmp)=="numeric" && length(Tmp)==1){
+ Thick <- Tmp
+ Setpen(Width*Thick)
+ Nall <- Nall-1
+ }else{
+ Setpen(Width)
+ }
+ for (N in 1:Nall){
+ Pdata <- varargin[[N]]
+ if (length(Pdata)==0) next
+ if (mode(Pdata)!="list") Pdata<-list(Pdata)
+ while(Mixtype(Pdata)==3){
+ Tmp1 <- list()
+ for(II in Looprange(1,length(Pdata))){
+ Tmp1 <- Mixjoin(Tmp1,Pdata[[II]])
+ }
+ Pdata <- Tmp1
+ }
+ for (II in Looprange(1,length(Pdata))){
+ Clist <- MakeCurves(Pdata[[II]])
+ DinM <- Dataindex(Clist)
+ for (n in Looprange(1,Nrow(DinM))){
+ Tmp <- DinM[n,]
+ Data <- Clist[Tmp[1]:Tmp[2],]
+# Mojisu <- 0 #from 20190317
+ for (I in Looprange(1,Nrow(Data))){
+ Tmp <- Data[I,]
+ X=sprintf('%5.5f',Tmp[1])
+ Y=sprintf('%5.5f',Tmp[2])
+ Pt=paste('(',X,',',Y,')',sep="")
+ if (I==1){
+# if (Width>1){ #from 20190317
+ Str=paste('\\draw [line width=',round(PenThick,digit=6),']',Pt,sep="")
+# }else{
+# if (Thick>1){
+# Str=paste('\\draw [line width=',round(PenThick,digit=6),']',Pt,sep="")
+# }else{
+# Str=paste('\\draw [line width=',round(PenThick,digit=6),']',Pt,sep="")
+# }
+# }
+ }else{
+ Str=paste('--',Pt,sep="")
+ }
+ cat(Str,file=Wfile,append=TRUE)
+# Mojisu <- Mojisu+nchar(Str)
+# if (Mojisu>80){
+# cat(";%\n",file=Wfile,append=TRUE)
+# Mojisu <- 0
+# }
+ }
+# if (Mojisu!=0){
+# cat(";%\n",file=Wfile,append=TRUE)
+# }
+ cat(";%\n",file=Wfile,append=TRUE)
+ }
+ }
+ }
+ if (Thick!=1){ #from 20190402
+ Setpen(Width)
+ }
+}
+
+################### Setpen ######################
+
+Setpen<-function(Width)
+{
+ PenThick <<- PenThickInit*Width #from 20190317
+# Str=paste('\\linethickness{',as.character(PenThick/1000),'in}%',sep="")
+# cat(Str,file=Wfile,append=TRUE)
+# cat("%\n",file=Wfile,append=TRUE)
+}
+
+##################### Dottedline ########################
Dottedline<- function(...)
{
@@ -143,161 +357,12 @@ Dottedline<- function(...)
Setpen(Tmp)
}
-
-###########################################
-
-Drwline<-function(...)
-{
- varargin<-list(...)
- Nall<-length(varargin)
- Thick<-0
- Tmp<-varargin[[Nall]]
- if (mode(Tmp)=="numeric" && length(Tmp)==1){
- Setpen(Tmp)
- Nall<-Nall-1
- }
- for (N in 1:Nall){
- Pdata<-varargin[[N]]
- if (length(Pdata)==0) next
- if (mode(Pdata)!="list") Pdata<-list(Pdata)
- while(Mixtype(Pdata)==3){
- Tmp1<- list()
- for(II in Looprange(1,length(Pdata))){
- Tmp1<- Mixjoin(Tmp1,Pdata[[II]])
- }
- Pdata<- Tmp1
- }
- for (II in Looprange(1,length(Pdata))){
- Clist<-MakeCurves(Pdata[[II]])
- DinM<-Dataindex(Clist)
- for (n in Looprange(1,Nrow(DinM))){
- Tmp<-DinM[n,]
- Data<-Clist[Tmp[1]:Tmp[2],]
- Mojisu<-0
- for (I in Looprange(1,Nrow(Data))){
- Tmp<-Data[I,]
- X=sprintf('%5.5f',Tmp[1])
- Y=sprintf('%5.5f',Tmp[2])
- Pt=paste('(',X,',',Y,')',sep="")
- if(I==1){
- Str=paste('\\polyline',Pt,sep="")
- }else{
- Str=Pt
- }
- cat(Str,file=Wfile,append=TRUE)
- Mojisu<-Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<-0
- }
- }
- if (Mojisu!=0){
- cat("%\n",file=Wfile,append=TRUE)
- }
- cat("%\n",file=Wfile,append=TRUE)
- }
- }
- }
- if (Thick>0){
- Tmp<-PenThick/PenThickInit
- Setpen(Tmp)
- }
-}
-
-###########################################
-
-Drwpt<-function(...)
-{
- varargin<-list(...)
- Nargs<-length(varargin)
- All=Nargs
- if (TenSize>TenSizeInit){
- N<- round(6*sqrt(TenSize/TenSizeInit))
- }
- else{
- N<-4
- }
- Tmp<- varargin[[All]]
- Iro=c(0,0,0,1)
- Iroflg=0
- if(is.character(Tmp)){
- Iro=Ratiocmyk(Tmp)
- Iroflg=1
- All=All-1
- }
- Tmp<- varargin[[All]]
- if (mode(Tmp)=="numeric"){
- if (length(Tmp)>1){
- Kosa<- 1; All<- Nargs
- }
- else{
- Kosa<- Tmp; All<- All-1
- }
- }
- else if (mode(Tmp)=="list"){
- Kosa<- 1; All<- Nargs
- }
- Ra=TenSize*1000/2.54/MilliIn
- if(Iroflg>0){
- Str='{\\color[cmyk]{'
- for(J in 1:4){
- Str=paste(Str,as.character(Kosa*Iro[J]),sep="")
- if(J<4){
- Str=paste(Str,',',sep="")
- }
- }
- Str=paste(Str,'}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- }
-
-# CL<-c()
-# for (J in 0:N){
-# Tmp<- TenSize*0.5*1000/2.54/MilliIn
-# Tmp<- Tmp*c(cos(pi/4+J*2*pi/N),sin(pi/4+J*2*pi/N))
-# CL<- append(CL,Tmp)
-# }
-# CL<- matrix(CL,nrow=2)
-# CL<- t(CL)
- Mojisu=0
- for (II in Looprange(1,All)){
- MS<- varargin[[II]]
- MS=Flattenlist(MS) #17.10.28
- if (mode(MS)=="numeric"){
- MS<- list(MS)
- }
- for (I in Looprange(1,length(MS))){
- P<- MS[[I]]
- if (InWindow(P)!="i") next
- P<- Doscaling(P)
- X=sprintf('%5.5f',P[1])
- Y=sprintf('%5.5f',P[2])
- Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}',sep="")
- cat(Str,file=Wfile,append=TRUE)
- Mojisu=Mojisu+nchar(Str)
- if(Mojisu>80){
- cat("\n",file=Wfile,append=TRUE)
- Mojisu=0
- }
- }
- }
- Str="%"
- if(Iroflg>0){
- Str='}%'
- }
- if(Mojisu>0){
- Str=paste('\n',Str,'\n',sep="")
- }else{
- Fmt=paste(Str,'\n',sep="")
- }
- cat(Str,file=Wfile,append=TRUE)
- cat("\n",file=Wfile,append=TRUE) #180930
-}
-
-
-######################################
+################### Makehasen ###################
Makehasen<- function(Figdata,Sen,Gap,Ptn)
{
+ Width <- PenThick/PenThickInit #from 20190317
+ Setpen(Width) #from 20190317
Eps<- 10.0^(-6)
Clist<- MakeCurves(Figdata)
DinM<- Dataindex(Clist)
@@ -341,8 +406,11 @@ Makehasen<- function(Figdata,Sen,Gap,Ptn)
SegList<- c(seq(Tobi,Tobi+(Nsen-2)*SegUnit,by=SegUnit))
}
}
+ Com=paste0('%%%%% start dashline, Senlength=',Sen,', Gaplength=',Gap,' %%%%%%') #from 20190317
+ cat(Com,file=Wfile,append=TRUE)
+ cat(";%\n%\n",file=Wfile,append=TRUE);
Hajime<- 1; Owari<- 1
- Mojisu<- 0
+# Mojisu<- 0
for (I in Looprange(1,length(SegList))){
Len<- SegList[I]
J<- Owari
@@ -367,117 +435,99 @@ Makehasen<- function(Figdata,Sen,Gap,Ptn)
X0=sprintf('%5.5f',P[1])
Y0=sprintf('%5.5f',P[2])
Pt0=paste('(',X0,',',Y0,')',sep="")
- Str=paste('\\polyline',Pt0,sep="")
+ Str=paste('\\draw [line width=',round(PenThick,digits=6),']',Pt0,sep="") #from 20190317
cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
+# Mojisu<- Mojisu+nchar(Str)
for (J in Looprange(Hajime+1,Owari)){
P=Data[J,]
X=sprintf('%5.5f',P[1])
Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
+ Pt=paste(' -- (',X,',',Y,')',sep="")
Str=Pt
cat(Str,file=Wfile,append=TRUE)
- Pt0=Pt
- Mojisu=Mojisu+nchar(Str)
+# Pt0=Pt
+# Mojisu=Mojisu+nchar(Str)
}
T<- (Len+Naga-Lenlist[Owari])
T<- T/(Lenlist[Owari+1]-Lenlist[Owari])
P<- Data[Owari,]+T*(Data[Owari+1,]-Data[Owari,])
X=sprintf('%5.5f',P[1])
Y=sprintf('%5.5f',P[2])
- Pt=paste('(',X,',',Y,')',sep="")
+ Pt=paste(' -- (',X,',',Y,')',sep="")
Str=Pt
cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
+ cat(";%\n",file=Wfile,append=TRUE); #190412
+# Mojisu<- Mojisu+nchar(Str)
+# if (Mojisu>80){
+# cat("%\n",file=Wfile,append=TRUE)
+# Mojisu<- 0
+# }
}
+ Com=paste0('%%%%%% finish dashline, Senlength=',Sen,', Gaplength=',Gap,' %%%%%%') #from 20190317
+ cat(Com,file=Wfile,append=TRUE)
+ cat(";%\n%\n",file=Wfile,append=TRUE);
}
- cat("%\n%\n",file=Wfile,append=TRUE);
+# cat("%\n%\n",file=Wfile,append=TRUE);
}
-#########################################
+##################### Drwpt ######################
-Beginpicture<-function(ul)
-{ ## Scaling is implemented
- Tmp<- Doscaling(c(XMIN,YMIN))
- Xm<- Tmp[1]
- Ym<- Tmp[2]
- Tmp<- Doscaling(c(XMAX,YMAX))
- XM<- Tmp[1]
- YM<- Tmp[2]
- Dx<- XM-Xm
- Dy<- YM-Ym
- Sym<-".0123456789 +-*/"
- SL<-Sym
- OL<-"+-*/"
- if (ul!=""){
- ULEN<<-ul;
- }
- Is<-1;
- VL<-"";
- Ucode<-ULEN
- for (I in Looprange(1,nchar(Ucode))){
- C<-substring(Ucode,I,I);
- if (length(grep(C,SL,fixed=TRUE))>0){
- if (length(grep(C,OL,fixed=TRUE))>0){
- Tmp<-substring(Ucode,Is,I-1);
- Str<-paste(VL,Tmp,C,sep="")
- VL<-Str
- Is<-I+1;
- }
+Drwpt<-function(...) #181230
+{
+ varargin<-list(...)
+ Nargs<-length(varargin)
+ All=Nargs
+ Same="y"
+ Incolor=""
+ Tmp=varargin[[All]]
+ if((is.numeric(Tmp))&&(length(Tmp)>2)){ #190405from
+ if(Tmp[1]==-1){
+ Same="no"
+ }else{
+ Tmp1=sapply(Tmp,as.character)
+ Incolor=paste("{",Tmp1[1],",",Tmp1[2],",",Tmp1[3],"}",sep="")
+ Same="n"
}
- else{
- Unit<-substring(Ucode,I,I+1);
- Str<-substring(Ucode,Is,I-1);
- VL<-paste(VL,Str,sep="")
- break;
+ All=All-1
+ }#190405to
+ Ra=TenSize*1000/2.54/MilliIn
+ for (II in Looprange(1,All)){
+ MS<- varargin[[II]]
+ MS=Flattenlist(MS) #17.10.28
+ if (mode(MS)=="numeric"){
+ MS<- list(MS)
}
- }
- Valu<-eval(parse(text=VL));
- Str<-as.character(Valu);
- ULEN<<- paste(Str,Unit,sep="");
- if (Unit=="cm") MilliIn<<-1000/2.54*Valu
- if (Unit=="mm") MilliIn<<-1000/2.54*Valu/10
- if (Unit=="in") MilliIn<<-1000*Valu
- if (Unit=="pt") MilliIn<<-1000/72.27*Valu
- if (Unit=="pc") MilliIn<<-1000/6.022*Valu
- if (Unit=="bp") MilliIn<<-1000/72*Valu
- if (Unit=="dd2") MilliIn<<-1000/1238/1157/72.27*Valu
- if (Unit=="cc") MilliIn<<-1000/1238/1157/72.27*12*Valu;
- if (Unit=="sp") MilliIn<<-1000/72.27/65536*Valu/10
- MARKLEN<<- MARKLENNow*1000/2.54/MilliIn;
- Str<-paste("{\\unitlength=",ULEN,"%\n",sep="");
- cat(Str,file=Wfile,append=TRUE);
- cat("\\begin{picture}%\n",file=Wfile,append=TRUE);
- Str<-"(";
- Tmp<-as.character(round(Dx,digits=6));
- Str<-paste(Str,Tmp,",",sep="");
- Tmp<-as.character(round(Dy,digits=6));
- Str<-paste(Str,Tmp,")(",sep="");
- Tmp<-as.character(round(Xm,digits=6));
- Str<-paste(Str,Tmp,",",sep="");
- Tmp<-as.character(round(Ym,digits=6));
- Str<-paste(Str,Tmp,")%\n",sep="");
- cat(Str,file=Wfile,append=TRUE);
- Str=paste('\\linethickness{',as.character(PenThickInit/1000),'in}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
-}
-
-#########################################
-
-Setpen<-function(Width)
-{
- PenThick<<-round(PenThickInit*Width)
- Str=paste('\\linethickness{',as.character(PenThick/1000),'in}%',sep="")
- cat(Str,file=Wfile,append=TRUE)
- cat("%\n",file=Wfile,append=TRUE)
+ for (I in Looprange(1,length(MS))){
+ P<- MS[[I]]
+ if (InWindow(P)!="i") next
+ P<- Doscaling(P)
+ X=sprintf('%5.5f',P[1])
+ Y=sprintf('%5.5f',P[2])
+ if(Same!="no"){ #190405from
+ Str=paste("{\\linethickness{0 in}",Incolor,sep="")
+ }
+ if(Same!="no"){ #190405from
+ Str=paste("{\\linethickness{0 in}%\n",sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ if(Same=="n"){ #190405
+ Str1<- paste("{\\color[rgb]",Incolor,"%\n",sep="")
+ cat(Str1,file=Wfile,append=TRUE)
+ }
+ Str=paste('\\put(',X,',',Y,'){\\circle*{',sprintf('%6.6f',Ra),'}}%\n',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ if(Same=="n"){
+ cat("}%\n",file=Wfile,append=TRUE)
+ }
+ cat("}%\n",file=Wfile,append=TRUE)
+ }
+ Str=paste('\\put(',X,',',Y,'){\\circle{',sprintf('%6.6f',Ra),'}}%\n',sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ }
+ } # 190405to
+ cat("\n",file=Wfile,append=TRUE)
}
-#########################################
+#################### Shade #####################
Shade<- function(...)
{ ## Scaling is implemented
@@ -523,7 +573,7 @@ Shade<- function(...)
cat(Str,file=Wfile,append=TRUE)
}
}
- Mojisu=0
+# Mojisu=0
Tmp=varargin[[1]]
# Data=Kyoukai(Tmp)
Data= Joincrvs(Tmp) #180929from
@@ -538,25 +588,118 @@ Shade<- function(...)
Y=sprintf('%5.5f',P[2])
Pt=paste('(',X,',',Y,')',sep="")
if(J==1){
- Str=paste('\\polygon*',Pt,sep="")
+ Str=paste('\\fill',Pt,sep="")
}else{
- Str=Pt
+ Str=paste('--',Pt,sep="")
}
cat(Str,file=Wfile,append=TRUE)
- Mojisu<- Mojisu+nchar(Str)
- if (Mojisu>80){
- cat("%\n",file=Wfile,append=TRUE)
- Mojisu<- 0
- }
+# Mojisu<- Mojisu+nchar(Str)
+# if (Mojisu>80){
+# cat("%\n",file=Wfile,append=TRUE)
+# Mojisu<- 0
+# }
}
+ cat(";%\n",file=Wfile,append=TRUE)
}
- if(Iroflg==1){
- Str='}%'
- if(Mojisu>0){
- Str=paste('\n',Str,'\n',sep="")
- }else{
- Str=paste(Str,'\n')
+# if(Iroflg==1){
+# Str='}%\n'
+# if(Mojisu>0){
+# Str=paste('\n',Str,'\n',sep="")
+# }else{
+# Str=paste(Str,'\n')
+# }
+# cat(Str,file=Wfile,append=TRUE)
+# }
+}
+
+################## Letter ####################
+
+Letter<-function(...)
+{ ## Scaling is implemented
+ varargin<-list(...)
+ Nargs<-length(varargin)
+ Irng<-c(seq(from=1,to=Nargs,by=3))
+ for (I in Irng)
+ {
+ Tmp<-varargin[[I]]
+ P<- Doscaling(Tmp)
+ X<-P[1]
+ Y<-P[2]
+ Houkou<-varargin[[I+1]]
+ Mojiretu<-varargin[[I+2]]
+ if(length(grep("\\$",Mojiretu))>0) #from 20190317
+ {
+ Mojiretu <- Mojiretu
+ }
+ else
+ {
+ Mojiretu <- paste0("$\\mathrm{",Mojiretu,"}$")
+ }
+ Hset<-Houkou
+ Vhoko<-"c"
+ if(length(grep("n",Hset))>0)
+ {
+ Vhoko<-"n"; Y<-Y+MEMORI
}
+ if(length(grep("s",Hset))>0)
+ {
+ Vhoko<-"s"; Y<-Y-MEMORI
+ }
+ Hhoko<-"c"
+ if(length(grep("e",Hset))>0)
+ {
+ Hhoko<-"e"; X<-X+MEMORI
+ }
+ if(length(grep("w",Hset))>0)
+ {
+ Hhoko<-"w"; X<-X-MEMORI
+ }
+ Hoko<-paste(Vhoko,Hhoko,sep="")
+ Suu<-"+-.0123456789"
+ SuuL<-Suu
+ J<-1; Dstr<-""
+ while (J<=nchar(Houkou))
+ {
+ Tmp<-substring(Houkou,J,J)
+ if(length(grep(Tmp,SuuL))>0)
+ {
+ if(Dstr=="") Hk<-substring(Houkou,J-1,J-1)
+ Dstr<-paste(Dstr,Tmp,sep="")
+ }
+ else
+ {
+ if(Dstr!="")
+ {
+ Nmbr<-as.numeric(Dstr)
+ D<-Nmbr*MEMORI
+ if(Hk=="n") Y<-Y+D
+ if(Hk=="s") Y<-Y-D
+ if(Hk=="e") X<-X+D
+ if(Hk=="w") X<-X-D
+ Dstr<-""
+ }
+ }
+ J<-J+1
+ }
+ if(Dstr!="")
+ {
+ Nmbr<-as.numeric(Dstr)
+ D<-Nmbr*MEMORI;
+ if(Hk=="n") Y<-Y+D
+ if(Hk=="s") Y<-Y-D
+ if(Hk=="e") X<-X+D
+ if(Hk=="w") X<-X-D
+ }
+ CalcWidth(Hoko,Mojiretu)
+ CalcHeight(Hoko,Mojiretu)
+ cat("\\put(",file=Wfile,append=TRUE)
+ Tmp1<- sprintf("%7.7f",X) # 11.07.19
+ Tmp2<- sprintf("%7.7f",Y) # 11.07.19
+ Str<-paste(Tmp1,",",Tmp2,sep="")
+ cat(Str,file=Wfile,append=TRUE)
+ Tmp<-"){\\hspace*{\\Width}"
+ Str<-paste(Tmp,"\\raisebox{\\Height}{",Mojiretu,"}}%\n",sep="")
cat(Str,file=Wfile,append=TRUE)
+ cat("%\n",file=Wfile,append=TRUE)
}
}
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/maximaL/pdefourier.mac b/Master/texmf-dist/scripts/ketcindy/ketlib/maximaL/pdefourier.mac
new file mode 100644
index 00000000000..7b968144a0c
--- /dev/null
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/maximaL/pdefourier.mac
@@ -0,0 +1,1199 @@
+/*
+Fourier analysis Maxima package
+
+Authors: Jose A. Vallejo
+ Faculty of Sciences
+ Universidad Autonoma de San Luis Potosi (Mexico)
+ http://galia.fc.uaslp.mx/~jvallejo
+
+ Emmanuel Roque
+ Faculty of Sciences
+ Universidad Autonoma de San Luis Potosi (Mexico)
+*/
+
+load(fourie)$
+load(simplify_sum)$
+load(draw)$
+/*The following rules are intented to work with intervals in "a canonical way"
+leq,geq,lss,grtr are for bounded intervals
+
+
+Note: Instead of using constantp inside of matchdeclare, numberp but this approach won't work if %pi is used, so probably is not an option since this is a Fourier package and %pi will appear most of the time. Another possible approach is to use freeof(var) instead of constantp
+*/
+matchdeclare(constn, constantp)$
+defrule(leq,constn>=xx,xx<=constn)$
+defrule(geq,xx>=constn,constn<=xx)$
+defrule(lss,constn>xx,xx<constn)$
+defrule(grtr,xx>constn,constn<xx)$
+
+/* fun_parts(expr,var)
+Input: piecewise defined function written in one of the following ways
+
+if x>=a_0 and x<=a_1 then expr1 elseif x>a_1 and x<= a_2 then expr2 ... elseif x>a_n and x<=a_{n+1} then expr_{n+1}
+
+if x<=a_0 then expr0 elseif x>a0 and x<=a1 then expr1 ... elseif x>=a_n then exprn
+
+Output: A list [[a0,a1,expr1],[a1,a2,expr2,]...]
+
+Important notes:
+-In all cases it is expected that a_i<a_{i+1}
+Writing (x<=7 and x>=6) instead of (x>=6 and x<=7) does not work.
+-If in the function definition some of the intervals are empty (e.g x>=3 and x<=-3) returns error.
+-Use of else is currently unsupported, the expr after else is ignored! Use elseif instead.
+-functionality with logical operator "or" is currently unsupported, will be treated same as "and".
+-fun_parts does not check if the intervals are disjoint!
+*/
+
+fun_parts(expr,var):=block(
+ [subint,subval,tmp,ll,tmp1,tmp2,xx,ans,tmp3,tmpb,leftU,rightU],
+ if not piecewisep(expr) then error("The function is not piecewise defined") else (
+ xx:var,
+ ll:(length(expr)-2)/2,
+ tmp:makelist(inpart(expr,i),i,makelist(2*k-1,k,1,ll)),
+ subval:makelist(inpart(expr,i),i,makelist(2*k,k,1,ll)),
+ tmp1:makelist(operatorp(tmp[j],["<",">","<=",">="]),j,1,ll),
+ tmp2:sublist_indices(tmp1,lambda([x],x=true)),
+ /*if tmp2 is an empty list then all the intervals in the domain
+ of the function are bounded */
+ if emptyp(tmp2) then(
+ /*Get rid of logical operators*/
+ tmp:makelist(makelist(inpart(tmp[k],i),i,1,2),k,1,ll),
+ /*Use canonical ordering*/
+ tmp:apply1(tmp,leq,geq,lss,grtr),
+ /*Extract subintervals*/
+ subint:makelist(makelist(inpart(tmp[i][j],j),j,1,2),i,1,ll),
+ /*Check for ill defined subintervals*/
+ tmp3:map(lambda([L],lfreeof(L,var)),subint),
+ if not emptyp(sublist_indices(tmp3,lambda([x],x=false))) then
+ error("Check function definition, some interval(s) appear to be empty or ill-defined. Read documentation for further details.")
+ else (ans:makelist([subint[k],subval[k]],k,1,ll),
+ return(ans) )
+ )
+ /*Function is not bounded*/
+ else(
+ if not is(tmp2=[1,ll]) then error("Check function definition, some interval(s) appear to be empty or ill-defined. Read documentation for further details.")
+ else (if is(ll=2) then(
+ tmp:apply1(tmp,leq,geq,lss,grtr),
+ leftU:[[minf,inpart(tmp[1],2)],subval[1]],
+ rightU:[[inpart(tmp[2],1),inf],subval[2]],
+ ans:[leftU,rightU],
+ return(ans)
+ )
+ elseif is(ll>2) then(
+ leftU:apply1(tmp[1],leq,geq,lss,grtr),
+ rightU:apply1(tmp[ll],leq,geq,lss,grtr),
+ leftU:[[minf,inpart(leftU,2)],subval[1]],
+ rightU:[[inpart(rightU,1),inf],subval[ll]],
+ /*Get rid of logical operators in the bounded intervals*/
+ tmpb:makelist(makelist(inpart(tmp[k],i),i,1,2),k,2,ll-1),
+ /*Use canonical ordering*/
+ tmpb:apply1(tmpb,leq,geq,lss,grtr),
+ /*Extract bounded subintervals*/
+ subint:makelist(makelist(inpart(tmpb[i][j],j),j,1,2),i,1,ll-2),
+ /*Check for ill-defined subintervals*/
+ tmp3:map(lambda([L],lfreeof(L,var)),subint),
+ if not emptyp(sublist_indices(tmp3,lambda([x],x=false))) then
+ error("Check function definition, some interval(s) appear to be empty or ill-defined. Read documentation for further details.")
+ else ( ans:append([leftU],makelist([subint[k],subval[k+1]],k,1,ll-2),[rightU]),
+ return(ans))
+ )
+
+ )
+ )
+))$
+
+/*bint_comp(L1,L2,var)
+Bounded intervals comparison
+Input: Two lists, L1 and L2, each one having the following format
+[[a_i,b_i],expr_i]
+Output: A flag used by parityL
+*/
+
+bint_comp(L1,L2,var):=block(
+ if is(L1[1][1]=-L2[1][2]) and is(L1[1][2]=-L2[1][1]) then(
+ if is(L1[2]=0) and is(L2[2]=0) then return('zero)
+ elseif equalp(L1[2],ratsubst(-var,var,L2[2])) then return('even)
+ elseif equalp(L1[2],-ratsubst(-var,var,L2[2])) then return('odd) else return('none)
+ )
+ else return('none)
+)$
+/* uint_comp(L1,L2,var)
+Unbounded intervals comparison
+Input: Two list, L1 and L2, corresponding to unbounded intervals in
+the following format
+[[minf,b_1],expr1] or [[a_2,inf],expr2]
+Output: A flag used by parityL
+It is assumed that parity check has already checked if a_1,b_2 are equal to minf,inf respectively.
+*/
+uint_comp(L1,L2,var):=block(
+ if is(L1[1][2]=-L2[1][1]) then(
+ if is(L1[2]=0) and is(L2[2]=0) then return('zero)
+ elseif equalp(L1[2],ratsubst(-var,var,L2[2])) then return('even)
+ elseif equalp(L1[2],-ratsubst(-var,var,L2[2])) then return('odd) else return('none)
+ )
+ else return('none)
+)$
+
+/*parityb(L,var)
+Input: A list returned by fun_parts of a bounded function
+Output: A list used by parityL
+*/
+parityb(L,var):=block(
+ [ll,icentral,aux,ans,llaux,Laux,paux],
+ ll:length(L),
+ /* Trivial case, just check if the only interval has
+ an even expression, an odd expression or neither of them.*/
+ if is(ll=1) and is(L[1][1][1]=-L[1][1][2]) then(
+ if evenfunp(L[1][2],var) then return('even)
+ elseif oddfunp(L[1][2],var) then return('odd)
+ else return('none)
+ )
+ elseif is(ll>1) then(
+ icentral:0,
+ /*Search if there is a central interval*/
+ for i:1 thru ll do (if is(L[i][1][1]*L[i][1][2]<0) then icentral:i),
+ /*Case 1: icentral=0 */
+ if is(icentral=0) then(
+ if not evenp(ll) then return('none) else(
+ aux:makelist(bint_comp(L[i],L[ll+1-i],var),i,1,ll/2),
+ if is(length(sublist_indices(aux,lambda([x],x=even or x=zero)))=ll/2)
+ then return('even)
+ elseif is(length(sublist_indices(aux,lambda([x],x=odd or x=zero)))=ll/2)
+ then return('odd)
+ else return('none)
+ )
+ )
+ /*icentral>0*/
+ elseif is(icentral>0) and oddp(ll) then(
+ /*Check parity of central element*/
+ if is(L[icentral][1][1]=-L[icentral][1][2]) then (
+ if evenfunp(L[icentral][2],var) then paux:'even
+ elseif oddfunp(L[icentral][2],var) then paux:'odd
+ else return('none),
+ Laux:delete(L[icentral],L),
+ aux:makelist(bint_comp(Laux[i],Laux[ll-i],var),i,1,(ll-1)/2),
+ if is(length(sublist_indices(aux,lambda([x],x=even or x=zero)))=(ll-1)/2) and is(paux=even)
+ then return('even)
+ elseif is(length(sublist_indices(aux,lambda([x],x=odd or x=zero)))=(ll-1)/2) and is(paux=odd)
+ then return('odd)
+ else return('none)
+ )
+ else return('none)
+ )
+ ))$
+
+
+
+/*parityL(L,var)
+
+Input: A list returned by fun_parts
+Output: the parity of the function
+
+Important notes:
+-
+*/
+parityL(L,var):=block(
+ [aux1,aux2,Laux,ll],
+ ll:length(L),
+ if (not boundedp(L)) and is(ll=2) then(
+ if is(uint_comp(L[1],L[2],var)=zero) or is(uint_comp(L[1],L[2],var)=even) then return('even)
+ elseif is(uint_comp(L[1],L[2],var)=odd) then
+ return('odd)
+ else return('none)
+ )
+ /*Check if there are unbounded intervals*/
+ elseif (not boundedp(L)) and is(ll>2) then(
+ aux1:uint_comp(L[1],L[ll],var),
+ Laux:delete(L[1],L),
+ Laux:delete(L[ll],Laux),
+ aux2:parityb(Laux,var),
+ if (is(aux1=zero) and is(aux2=even)) or
+ (is(aux1=even) and is(aux2=even)) then
+ return('even) elseif (is(aux1=zero) and is(aux2=odd)) or
+ (is(aux1=odd) and is(aux2=odd)) then return('odd)
+ else return('none)
+ )
+ else return(parityb(L,var))
+
+)$
+boundedp(L):=block(
+ [ll],
+ ll:length(L),
+ if is(L[1][1][1]=minf) and is (L[ll][1][2]=inf)
+ then return(false)
+ else return(true)
+)$
+
+piecewisep(expr):=if atom(expr) then false else is(inpart(expr,0)="if")$
+paritycheck(expr,var):=block(
+ if piecewisep(expr) then return(parityL(fun_parts(expr,var),var))
+ elseif listp(expr) then return(parityL(expr,var))
+ else (
+ if equalp(ratsubst(-var,var,expr),expr) then return('even)
+ elseif equalp(ratsubst(-var,var,expr),-expr) then return('odd)
+ else return('none)
+ )
+)$
+
+/*Check if the domain is bounded and symmetric [-L,L]
+symbintp(L)
+intput: a list L returned by fun_parts
+output: true or false
+*/
+
+symbintp(L):=if boundedp(L) and is(L[1][1][1]=-L[length(L)][1][2]) then L[length(L)][1][2] else false$
+
+/*integratepw(L,var)
+
+Integrate the list form of a piecewise defined function
+
+*/
+
+integratepw(L,var):=block(
+ [ll],
+ ll:length(L),
+ return(sum(integrate(L[i][2],var,L[i][1][1],L[i][1][2]),i,1,ll))
+)$
+
+/* sum2list(expr)
+Auxiliary function
+Input: An expression
+Output: A list whose elements are the terms of expression
+
+Important notes: sum2list does not check by itself if op(expr)="+" or not*/
+
+sum2list(expr):= if is(expr=0) then [0] elseif is(nterms(expr)=1) then [expr] else args(expr)$
+
+/*secsum2bl(L)
+Input: A list as in fun_parts output format
+Output:
+*/
+secsum2bl(L):=block(
+ [ll,laux],
+ ll:length(L),
+ laux:makelist(i,i,1,ll),
+ create_list([L[i][1],y],i,laux,y,sum2list(L[i][2]))
+)$
+
+/*Match rules for special cases*/
+matchdeclare(nexp,lambda([e],e#0 and nonnegintegerp(e)))$
+matchdeclare(nfreq,lambda([e],e#0 and nonnegintegerp(e)))$
+matchdeclare(const,lambda([e],e#0 and freeof(xargument,e)))$
+/*matchdeclare(argtrig,lambda([e],e#0 and constantp(e)))$
+defmatch(powx,const*xargument^nexp,xargument)$*/
+defmatch(powxsin,const*xargument^nexp*sin(nfreq*%pi*xargument/pargument),xargument,pargument)$
+defmatch(powxcos,const*xargument^nexp*cos(nfreq*%pi*xargument/pargument),xargument,pargument)$
+defmatch(multsin,const*sin(nfreq*%pi*xargument/pargument),xargument,pargument)$
+defmatch(multcos,const*cos(nfreq*%pi*xargument/pargument),xargument,pargument)$
+/*powxcos_int
+Computes \int_a^b (x^r*cos(n*%pi*x/L)dx for r>=0
+*/
+powxcos_int(pow,freq,p,a,b):=block(
+ if is(freq=0) then (b^(pow+1)-a^(pow+1))/(pow+1)
+ elseif is(pow=0) then (p/(%pi*freq))*(sin(freq*%pi*b/p)-sin(freq*%pi*a/p))
+ elseif is(pow>0) then (p/(%pi*freq))*(b^pow*sin(freq*%pi*b/p)-a^pow*sin(freq*%pi*a/p))-(p*pow/(freq*%pi)*powxsin_int(pow-1,freq,p,a,b))
+)$
+/*powxsin_int
+Computes \int_a^b x^r*sin(n*%pi*x/L) dx for r>=0 */
+powxsin_int(pow,freq,p,a,b):=block(
+ if is(freq=0) then 0
+ elseif is(pow=0) then (p/(%pi*freq))*(cos(freq*%pi*a/p)-cos(freq*%pi*b/p))
+ elseif is(pow>0) then (p/(%pi*freq))*(a^pow*cos(freq*%pi*a/p)-b^pow*cos(freq*%pi*b/p))+(p*pow/(freq*%pi)*powxcos_int(pow-1,freq,p,a,b))
+)$
+/*Heuristic a_n
+
+*/
+heuristic_an(expr,var,p,a,b):=block(
+ [n,ans],
+ declare(n,integer),
+ if listp(powxsin(expr,var,p)) then (
+ if is(a=-b) and evenp(nexp) then 0 else(
+ ans:(const/(2*p))*powxsin_int(nexp,nfreq+n,p,a,b)+ev((const/(2*p))*powxsin_int(nexp,nfreq-n,p,a,b),noeval,n),
+ remove(n,integer),
+ ans
+ )
+ )
+ elseif listp(powxcos(expr,var,p)) then (
+ if is(a=-b) and oddp(nexp) then 0 else(
+ ans:(const/(2*p))*powxcos_int(nexp,nfreq+n,p,a,b)+ev((const/(2*p))*powxcos_int(nexp,nfreq-n,p,a,b),noeval,n),
+ remove(n,integer),
+ ans)
+ )
+ elseif listp(multsin(expr,var,p)) then(
+ if is(a=-b) then 0 else(
+ ans:(const/(2*p))*powxsin_int(0,nfreq+n,p,a,b)+ev((const/(2*p))*powxsin_int(0,nfreq-n,p,a,b),noeval,n),
+ remove(n,integer),
+ ans
+ )
+ )
+ elseif listp(multcos(expr,var,p)) then (
+ ans:(const/(2*p))*powxcos_int(0,nfreq+n,p,a,b)+ev((const/(2*p))*powxcos_int(0,nfreq-n,p,a,b),noeval,n),
+ remove(n,integer),
+ ans
+ )
+ else(
+ ans:adefint(expr*cos(n*%pi*var/p),var,a,b)/p,
+ remove(n,integer),
+ ans
+ )
+)$
+/*Heuristic b_n
+
+*/
+heuristic_bn(expr,var,p,a,b):=block(
+ [n,ans],
+ declare(n,integer),
+ if listp(powxsin(expr,var,p)) then (
+ if is(a=-b) and oddp(nexp) then 0 else(
+ ans:(-const/(2*p))*powxcos_int(nexp,nfreq+n,p,a,b)+ev((const/(2*p))*powxcos_int(nexp,nfreq-n,p,a,b),noeval,n),
+ remove(n,integer),
+ ans
+ )
+ )
+ elseif listp(powxcos(expr,var,p)) then (
+ if is(a=-b) and evenp(nexp) then 0 else(
+ ans:(const/(2*p))*powxsin_int(nexp,nfreq+n,p,a,b)+ev((const/(2*p))*powxsin_int(nexp,n-nfreq,p,a,b),noeval,n),
+ remove(n,integer),
+ ans
+ )
+ )
+ elseif listp(multsin(expr,var,p)) then(
+ ans:(-const/(2*p))*powxcos_int(0,nfreq+n,p,a,b)+ev((const/(2*p))*powxcos_int(0,nfreq-n,p,a,b),noeval,n),
+ remove(n,integer),
+ ans
+ )
+ elseif listp(multcos(expr,var,p)) then (
+ if is(a=-b) then 0 else(
+ ans:(const/(2*p))*powxsin_int(0,nfreq+n,p,a,b)+ev((const/(2*p))*powxsin_int(0,n-nfreq,p,a,b),noeval,n),
+ remove(n,integer),
+ ans
+ )
+ )
+ else(
+ ans:adefint(expr*sin(n*%pi*var/p),var,a,b)/p,
+ remove(n,integer),
+ ans
+ )
+)$
+
+/*foucoeffpw(L,var)
+Fourier coefficients of a piecewise defined function
+Currently it only works with functions defined on an interval of the form [-p,p].
+The output is a list of the form [a0,a1,b1,an,bn]
+*/
+
+foucoeffpw(L,var):=block(
+ [llaux,ll,a0,an,bn,answ,lm],
+ ll:length(L),
+ lm:(L[ll][1][2]-L[1][1][1])/2, /*For more general intervals*/
+ Laux:secsum2bl(L),
+ llaux:length(Laux),
+ if is(parityL(L,var)=odd) then (
+ a0:0, an:0,
+ bn:sum(heuristic_bn(Laux[i][2],var,lm,Laux[i][1][1],Laux[i][1][2]),i,1,llaux),
+ answ:[a0,an,simplify_sum(bn)],
+ return(ratsimp(answ)))
+ elseif is(parityL(L,var)=even) then (
+ a0:(1/(2*lm))*integratepw(L,var),
+ an:sum(heuristic_an(Laux[i][2],var,lm,Laux[i][1][1],Laux[i][1][2]),i,1,llaux),
+ bn:0,
+ answ:[simplify_sum(a0),simplify_sum(an),bn],
+ return(ratsimp(answ)))
+ else(
+ a0:(1/(2*lm))*integratepw(L,var),
+ an:sum(heuristic_an(Laux[i][2],var,lm,Laux[i][1][1],Laux[i][1][2]),i,1,llaux),
+ bn:sum(heuristic_bn(Laux[i][2],var,lm,Laux[i][1][1],Laux[i][1][2]),i,1,llaux),
+ answ:[a0,an,bn],
+ answ:map(simplify_sum,answ),
+ return(ratsimp(answ) ))
+)$
+
+foucoeffterm(term,var,p):=block(
+ [a0,bn,an,ans],
+ if listp(term) then(
+ /* if is(symbintp(term,var)=p) then */
+ return(foucoeffpw(term,var))
+ /* else error("Domain of the piecewise function is not valid. Read the documentation for further details")*/
+ )
+ elseif piecewisep(term) then(
+ /*Check if the domain is valid*/
+ /*if is(symbintp(fun_parts(term,var))=p) then*/
+ if is(boundedp(fun_parts(term,var))) then
+ return(foucoeffpw(map(lambda([e],[e[1],expand(trigrat(e[2]))]),fun_parts(term,var)),var))
+ else error("Domain of the piecewise function is not valid. Read the documentation for further details")
+ )
+ else(
+ /*Check parity of term*/
+ if is(paritycheck(term,var)=even) then(
+ a0:ratsimp((1/(2*p))*adefint(term,var,-p,p)),
+ an:heuristic_an(term,var,p,-p,p),
+ bn:0,
+ ans:ratsimp([a0,an,bn]),
+ return(ans)
+ )
+ elseif is(paritycheck(term,var)=odd) then(
+ a0:0, an:0,
+ bn:heuristic_bn(term,var,p,-p,p),
+ ans:ratsimp([a0,an,bn]),
+ return(ans)
+ )
+ else(
+ a0:ratsimp((1/(2*p))*adefint(term,var,-p,p)),
+ an:heuristic_an(term,var,p,-p,p),
+ bn:heuristic_bn(term,var,p,-p,p),
+ ans:ratsimp([a0,an,bn]),
+ return(ans)
+ )
+ )
+)$
+
+list2bl(L):=block(
+ [ll,laux],
+ ll:length(L),
+ laux:makelist(i,i,1,ll),
+ create_list(y,i,laux,y,sum2list(L[i]))
+)$
+
+trigpattern(term,var,p):=block(
+ if listp(powxsin(term,var,p)) then return(nfreq)
+ elseif listp(powxcos(term,var,p)) then return(nfreq)
+ elseif listp(multcos(term,var,p)) then return(nfreq)
+ elseif listp(multsin(term,var,p)) then return(nfreq)
+ else return(false)
+)$
+
+searchpoles_term(term,var,p):=block(
+ [L,Laux,indx_aux,indx],
+ if listp(term) then(
+ L:secsum2bl(term),
+ indx_aux:map(lambda([e],trigpattern(e[2],var,p)),L),
+ indx:unique(sublist(indx_aux,integerp)),
+ return(indx)
+ )
+ elseif piecewisep(term) then(
+ Laux:map(lambda([e],[e[1],expand(trigrat(e[2]))]),fun_parts(term,var)),
+ L:secsum2bl(Laux),
+ indx_aux:map(lambda([e],trigpattern(e[2],var,p)),L),
+ indx:unique(sublist(indx_aux,integerp)),
+ return(indx)
+ ) else(
+ indx_aux:trigpattern(term,var,p),
+ if integerp(indx_aux) then return([indx_aux])
+ else return([])
+ )
+)$
+
+searchpoles(expr,var,p):=block(
+ [L,Laux,indx],
+ Laux:sum2list(expand(expr)),
+ Laux:map(lambda([e],if not piecewisep(e) then expand(trigrat(e)) else e),Laux),
+ L:list2bl(Laux),
+ indx:apply(append,map(lambda([e],searchpoles_term(e,var,p)),L)),
+ return(unique(indx))
+ )$
+
+fouriercoeff(expr,var,p):=block(
+ [ans,Llist,Laux,coeffpoles,poles,n],
+ Laux:sum2list(expand(expr)),
+ Llist:map(lambda([e],if not piecewisep(e) then expand(trigrat(e)) else e),Laux),
+ Llist:list2bl(Llist),
+ ans:lsum(y,y,map(lambda([e],foucoeffterm(e,var,p)),Llist)),
+ ans:ratsimp(ans),
+ poles:searchpoles(expr,var,p),
+ coeffpoles:makelist(at([i,ans[2],ans[3]],n=i),i,poles),
+ declare(n,integer),
+ coeffpoles:ev(coeffpoles),
+ ans:ev(ans),
+ remove(n,integer),
+ return(ratsimp([ans,coeffpoles]))
+)$
+
+fouriercoeff_expand(fcoeff,var,p,NN):=block(
+ [ans,a0,an,bn,poles,indx_poles,polessum,sl_indx,laux],
+ [[a0,an,bn],poles]:fcoeff,
+ an:ev(an),
+ bn:ev(bn),
+ if emptyp(poles) then(
+ ans:a0+sum(at(an*cos(n*%pi*var/p)+bn*sin(n*%pi*var/p),n=n),n,1,NN),
+ return(ans)
+ ) else(
+ indx_poles:makelist(poles[i][1],i,1,length(poles)),
+ if is(NN=inf) then(
+ polessum:sum(poles[i][2]*cos(poles[i][1]*%pi*var/p)+poles[i][3]*sin(poles[i][1]*%pi*var/p),i,1,length(poles)),
+ ans:a0+polessum+sum(at(an*cos(n*%pi*var/p)+bn*sin(n*%pi*var/p),n=n),n,1,inf),
+ if is(an=0) and is(bn=0) then return(ans),
+ print("The sum is over \\N -",setify(indx_poles)),
+ return(ans)
+ )
+ else(
+ sl_indx:sublist_indices(indx_poles,lambda([e],is(e<=NN))),
+ polessum:lsum(poles[i][2]*cos(poles[i][1]*%pi*var/p)+poles[i][3]*sin(poles[i][1]*%pi*var/p),i,sl_indx),
+ laux:listify(setdifference(setify(makelist(i,i,1,NN)),setify(indx_poles))),
+ ans:a0+polessum+lsum(at(an*cos(n*%pi*var/p)+bn*sin(n*%pi*var/p),n=i),i,laux),
+ return(ans)
+ )
+ )
+)$
+
+fourier_series(expr,var,p,NN):=block(
+ [fcoeff,ans],
+ fcoeff:fouriercoeff(expr,var,p),
+ ans:fouriercoeff_expand(fcoeff,var,p,NN),
+ ans
+)$
+
+fourier_amplitudes(expr,var,p,N):=block(
+ [a0,an,bn,ans,poles,indx_poles,polelist,sl_indx,laux],
+ [[a0,an,bn],poles]:fouriercoeff(expr,var,p),
+ an:ev(an),
+ bn:ev(bn),
+ if emptyp(poles) then(
+ ans:makelist(at([n,sqrt(an^2+bn^2)],n=i),i,1,N),
+ /*ans:float(ans),*/
+ return(ans)) else(
+ indx_poles:makelist(poles[i][1],i,1,length(poles)),
+ sl_indx:sublist_indices(indx_poles,lambda([e],is(e<N))),
+ polelist:makelist([poles[i][1],sqrt(poles[i][2]^2+poles[i][3]^2)],i,sl_indx),
+ laux:listify(setdifference(setify(makelist(i,i,1,N)),setify(indx_poles))),
+ ans:append(polelist,makelist(at([n,sqrt(an^2+bn^2)],n=i),i,laux)),
+ /*ans:float(ans),*/
+ ans:sort(ans,lambda([a,b],a[1]<b[1])),
+ return(ans)
+ )
+)$
+
+fourier_freq_list(expr,var,p,N):=block(
+ [modules],
+ modules:float(fourier_amplitudes(expr,var,p,N))
+)$
+
+fourier_freq(expr,var,p,N):=block(
+ [modules],
+ modules:float(fourier_amplitudes(expr,var,p,N)),
+ draw2d(points_joined=impulses,line_width=4,color="blue",points(modules),
+ xlabel="w(n)=nw_0",ylabel="|c_n|",axis_top=false,axis_right=false,xtics=1,user_preamble="set grid ytics")
+)$
+
+wxfourier_freq(expr,var,p,N):=block(
+ [modules],
+ modules:float(fourier_amplitudes(expr,var,p,N)),
+ wxdraw2d(points_joined=impulses,line_width=4,color="blue",points(modules),
+ xlabel="w(n)=nw_0",ylabel="|c_n|",axis_top=false,axis_right=false,xtics=1,user_preamble="set grid ytics")
+)$
+
+atan_fourier(an,bn):=if is(an=0) and is(bn=0) then 0 else atan2(an,bn)$
+
+fourier_phshift(expr,var,p,N):=block(
+ [a0,an,bn,ans,poles,indx_poles,polelist,sl_indx,laux],
+ [[a0,an,bn],poles]:fouriercoeff(expr,var,p),
+ an:ev(an),
+ bn:ev(bn),
+ if emptyp(poles) then(
+ ans:makelist([i,atan_fourier(at(bn,n=i),at(an,n=i))],i,1,N),
+ /*ans:float(ans),*/
+ return(ans)) else(
+ indx_poles:makelist(poles[i][1],i,1,length(poles)),
+ sl_indx:sublist_indices(indx_poles,lambda([e],is(e<N))),
+ polelist:makelist([poles[i][1],atan_fourier(poles[i][3],poles[i][2])],i,sl_indx),
+ laux:listify(setdifference(setify(makelist(i,i,1,N)),setify(indx_poles))),
+ ans:append(polelist,makelist([i,atan_fourier(at(bn,n=i),at(an,n=i))],i,laux)),
+ /*ans:float(ans),*/
+ ans:sort(ans,lambda([a,b],a[1]<b[1])),
+ return(ans)
+ )
+)$
+
+
+
+fourier_harm(expr,var,p,N):=block(
+ [amplitudes,phshift,ans],
+ amplitudes:fourier_amplitudes(expr,var,p,N),
+ phshift:fourier_phshift(expr,var,p,N),
+ ans:makelist(amplitudes[i][2]*cos(i*%pi*var/p-phshift[i][2]),i,1,N),
+ return(ans)
+)$
+
+chop(expr,[N]):=if emptyp(N) then scanmap(lambda([x],if is(numberp(x)) then (if is(abs(x)<1.0*10^(-12)) then 0.0 else x) else x),expr)
+else scanmap(lambda([x],if is(numberp(x)) then (if is(abs(x)<1.0*10^(-N[1])) then 0.0 else x) else x),expr)$
+
+oddextension_pwterm(L,var):=block(
+ [Laux],
+ Laux:[[-L[1][2],-L[1][1]],-ratsubst(-x,x,L[2])],
+ Laux
+)$
+
+oddextensionpw(L,var):=block(
+ [Lodd],
+ Lodd:append(reverse(map(lambda([e],oddextension_pwterm(e,var)),L)),L),
+ Lodd
+)$
+
+evenextension_pwterm(L,var):=block(
+ [Laux],
+ Laux:[[-L[1][2],-L[1][1]],ratsubst(-x,x,L[2])],
+ Laux
+)$
+
+evenextensionpw(L,var):=block(
+ [Lodd],
+ Lodd:append(reverse(map(lambda([e],evenextension_pwterm(e,var)),L)),L),
+ Lodd
+)$
+
+odd_extension(expr,var,p):=block(
+ [Laux],
+ if piecewisep(expr) then(
+ Laux:fun_parts(expr,var),
+ if is(Laux[1][1][1]=0) and is(Laux[length(Laux)][1][2]=p) then return(oddextensionpw(Laux,var))
+ else error("The domain must be of the form [0,p]")
+ )
+ else(
+ Laux:[[[0,p],expr]],
+ return(oddextensionpw(Laux,var))
+ )
+)$
+
+even_extension(expr,var,p):=block(
+ [Laux],
+ if piecewisep(expr) then(
+ Laux:fun_parts(expr,var),
+ if is(Laux[1][1][1]=0) and is(Laux[length(Laux)][1][2]=p) then return(evenextensionpw(Laux,var))
+ else error("The domain must be of the form [0,p]")
+ )
+ else(
+ Laux:[[[0,p],expr]],
+ return(evenextensionpw(Laux,var))
+ )
+)$
+
+/*foucoscoeff(expr,var,p):=block(
+ [Laux,fcoeff,a0,an,bn,poles],
+ Laux:even_extension(expr,var,p),
+ [[a0,an,bn],poles]:fouriercoeff(Laux,var,p),
+ fcoeff:[[a0,an],map(lambda([e],[e[1],e[2]]),poles)],
+ return(fcoeff)
+)$
+
+fousincoeff(expr,var,p):=block(
+ [Laux,fcoeff,a0,an,bn,poles],
+ Laux:odd_extension(expr,var,p),
+ [[a0,an,bn],poles]:fouriercoeff(Laux,var,p),
+ fcoeff:[[bn],map(lambda([e],[e[1],e[3]]),poles)],
+ return(fcoeff)
+)$
+*/
+
+/*Here we have the new implementation of fouriersincoeff and fouriercoscoeff*/
+
+fouriersincoeffpw(Llist,var):=block(
+ [llaux,ll,bn,answ,lm],
+ ll:length(Llist),
+ lm:(Llist[ll][1][2]-Llist[1][1][1]), /*No need to divide by 2*/
+ Laux:secsum2bl(Llist),
+ llaux:length(Laux),
+ bn:2*sum(heuristic_bn(Laux[i][2],var,lm,Laux[i][1][1],Laux[i][1][2]),i,1,llaux),
+ answ:[bn],
+ answ:map(simplify_sum,answ),
+ return(ratsimp(answ) )
+)$
+
+fouriercoscoeffpw(Llist,var):=block(
+ [llaux,ll,a0,an,answ,lm],
+ ll:length(Llist),
+ lm:(Llist[ll][1][2]-Llist[1][1][1]), /*No need to divide by 2*/
+ Laux:secsum2bl(Llist),
+ llaux:length(Laux),
+ a0:(1/(lm))*integratepw(Llist,var),
+ an:2*sum(heuristic_an(Laux[i][2],var,lm,Laux[i][1][1],Laux[i][1][2]),i,1,llaux),
+ answ:[a0,an],
+ answ:map(simplify_sum,answ),
+ return(ratsimp(answ) )
+)$
+
+fouriersincoeffterm(term,var,p):=block(
+ [bn,ans],
+ if listp(term) then(
+ /* if is(symbintp(term,var)=p) then */
+ return(fouriersincoeffpw(term,var))
+ /* else error("Domain of the piecewise function is not valid. Read the documentation for further details")*/
+ )
+ elseif piecewisep(term) then(
+ /*Check if the domain is valid*/
+ /*if is(symbintp(fun_parts(term,var))=p) then*/
+ if is(boundedp(fun_parts(term,var))) then
+ return(fouriersincoeffpw(map(lambda([e],[e[1],expand(trigrat(e[2]))]),fun_parts(term,var)),var))
+ else error("Domain of the piecewise function is not valid. Read the documentation for further details")
+ )
+ else(
+ bn:2*heuristic_bn(term,var,p,0,p),
+ ans:ratsimp([bn]),
+ return(ans)
+ )
+)$
+
+fouriercoscoeffterm(term,var,p):=block(
+ [a0,an,ans],
+ if listp(term) then(
+ /* if is(symbintp(term,var)=p) then */
+ return(fouriercoscoeffpw(term,var))
+ /* else error("Domain of the piecewise function is not valid. Read the documentation for further details")*/
+ )
+ elseif piecewisep(term) then(
+ /*Check if the domain is valid*/
+ /*if is(symbintp(fun_parts(term,var))=p) then*/
+ if is(boundedp(fun_parts(term,var))) then
+ return(fouriercoscoeffpw(map(lambda([e],[e[1],expand(trigrat(e[2]))]),fun_parts(term,var)),var))
+ else error("Domain of the piecewise function is not valid. Read the documentation for further details")
+ )
+ else(
+ a0:ratsimp((1/p)*adefint(term,var,0,p)),
+ an:2*heuristic_an(term,var,p,0,p),
+ ans:ratsimp([a0,an]),
+ return(ans)
+ )
+)$
+
+fouriersincoeff(expr,var,p):=block(
+ [ans,Llist,Laux,coeffpoles,poles,n],
+ Laux:sum2list(expand(expr)),
+ Llist:map(lambda([e],if not piecewisep(e) then expand(trigrat(e)) else e),Laux),
+ Llist:list2bl(Llist),
+ ans:lsum(y,y,map(lambda([e],fouriersincoeffterm(e,var,p)),Llist)),
+ ans:ratsimp(ans),
+ poles:searchpoles(expr,var,p),
+ /*Now there is only a list of the form [bn]*/
+ coeffpoles:makelist(at([i,ans[1]],n=i),i,poles),
+ declare(n,integer),
+ coeffpoles:ev(coeffpoles),
+ ans:ev(ans),
+ remove(n,integer),
+ return(ratsimp([ans,coeffpoles]))
+)$
+
+fouriercoscoeff(expr,var,p):=block(
+ [ans,Llist,Laux,coeffpoles,poles,n],
+ Laux:sum2list(expand(expr)),
+ Llist:map(lambda([e],if not piecewisep(e) then expand(trigrat(e)) else e),Laux),
+ Llist:list2bl(Llist),
+ ans:lsum(y,y,map(lambda([e],fouriercoscoeffterm(e,var,p)),Llist)),
+ ans:ratsimp(ans),
+ poles:searchpoles(expr,var,p),
+ /*Now there is only a list of the form [a0,an]*/
+ coeffpoles:makelist(at([i,ans[2]],n=i),i,poles),
+ declare(n,integer),
+ coeffpoles:ev(coeffpoles),
+ ans:ev(ans),
+ remove(n,integer),
+ return(ratsimp([ans,coeffpoles]))
+)$
+
+fouriersincoeff_expand(sincoeff,var,p,NN):=block(
+ [ans,bn,poles,indx_poles,polessum,sl_indx,laux],
+ [[bn],poles]:sincoeff,
+ bn:ev(bn),
+ if emptyp(poles) then(
+ ans:sum(at(bn*sin(n*%pi*var/p),n=n),n,1,NN),
+ return(ans)
+ ) else(
+ indx_poles:makelist(poles[i][1],i,1,length(poles)),
+ if is(NN=inf) then(
+ polessum:sum(poles[i][2]*sin(poles[i][1]*%pi*var/p),i,1,length(poles)),
+ ans:polessum+sum(at(bn*sin(n*%pi*var/p),n=n),n,1,inf),
+ if is(bn=0) then return(ans),
+ print("The sum is over \\N-",setify(indx_poles)),
+ return(ans)
+ )
+ else(
+ sl_indx:sublist_indices(indx_poles,lambda([e],is(e<=NN))),
+ polessum:lsum(poles[i][2]*sin(poles[i][1]*%pi*var/p),i,sl_indx),
+ laux:listify(setdifference(setify(makelist(i,i,1,NN)),setify(indx_poles))),
+ ans:polessum+lsum(at(bn*sin(n*%pi*var/p),n=i),i,laux),
+ return(ans)
+ )
+ )
+)$
+
+fouriercoscoeff_expand(coscoeff,var,p,NN):=block(
+ [ans,a0,an,poles,indx_poles,polessum,sl_indx,laux],
+ [[a0,an],poles]:coscoeff,
+ an:ev(an),
+ if emptyp(poles) then(
+ ans:a0+sum(at(an*cos(n*%pi*var/p),n=n),n,1,NN),
+ return(ans)
+ ) else(
+ indx_poles:makelist(poles[i][1],i,1,length(poles)),
+ if is(NN=inf) then(
+ polessum:sum(poles[i][2]*cos(poles[i][1]*%pi*var/p),i,1,length(poles)),
+ ans:a0+polessum+sum(at(an*cos(n*%pi*var/p),n=n),n,1,inf),
+ if is(an=0) then return(ans),
+ print("The sum is over \\N -",setify(indx_poles)),
+ return(ans)
+ )
+ else(
+ sl_indx:sublist_indices(indx_poles,lambda([e],is(e<=NN))),
+ polessum:lsum(poles[i][2]*cos(poles[i][1]*%pi*var/p),i,sl_indx),
+ laux:listify(setdifference(setify(makelist(i,i,1,NN)),setify(indx_poles))),
+ ans:a0+polessum+lsum(at(an*cos(n*%pi*var/p),n=i),i,laux),
+ return(ans)
+ )
+ )
+)$
+
+fouriersin_series(expr,var,p,NN):=block(
+ [ans,sincoeff],
+ sincoeff:fouriersincoeff(expr,var,p),
+ ans:fouriersincoeff_expand(sincoeff,var,p,NN),
+ ans
+)$
+
+fouriercos_series(expr,var,p,NN):=block(
+ [ans,coscoeff],
+ coscoeff:fouriercoscoeff(expr,var,p),
+ ans:fouriercoscoeff_expand(coscoeff,var,p,NN),
+ ans
+)$
+
+real2complex_fcoeff(fcoeff):=block(
+ [c0,cn,cpoles,rpoles,a0,an,bn],
+ [[a0,an,bn],rpoles]:fcoeff,
+ c0:a0,
+ cn:(an-%i*bn)/2,
+ cpoles:map(lambda([e],[e[1],(e[2]-%i*e[3])/2]),rpoles),
+ ratsimp([[c0,cn],cpoles])
+)$
+
+cfouriercoeff(expr,var,p):=real2complex_fcoeff(fouriercoeff(expr,var,p))$
+
+cfouriercoeff_expand(cfcoeff,var,p,NN):=block(
+ [ans,c0,cn,cpoles,indx_cpoles,cpolessumpos,cpolessumneg,sl_indx,laux],
+ [[c0,cn],cpoles]:cfcoeff,
+ an:ev(cn),
+ if emptyp(cpoles) then(
+ if is(NN=inf) then(
+ ans:c0+sum(at(cn*exp(%i*n*%pi*var/p),n=n),n,minf,inf),
+ print("The sum is over \\N-\{0\}"),
+ return(ans)
+ ) else(
+ ans:c0+sum(at(conjugate(cn)*exp(%i*-n*%pi*var/p),n=n),n,1,NN)
+ +sum(at(cn*exp(%i*n*%pi*var/p),n=n),n,1,NN),
+ return(ratsimp(demoivre(ans))))
+ ) else(
+ indx_cpoles:map(first,cpoles),
+ if is(NN=inf) then(
+ cpolessumpos:sum(cpoles[i][2]*exp(%i*cpoles[i][1]*%pi*var/p),i,1,length(cpoles)),
+ cpolessumneg:sum(conjugate(cpoles[i][2])*exp(-%i*cpoles[i][1]*%pi*var/p),i,1,length(cpoles)),
+ ans:c0+cpolessumpos+cpolessumneg+sum(at(cn*exp(%i*n*%pi*var/p),n=n),n,minf,inf),
+ if is(cn=0) then return(ans),
+ print("The sum is over \\N -",setify(append(indx_cpoles,[0]))),
+ return(ans)
+ )
+ else(
+ sl_indx:sublist_indices(indx_cpoles,lambda([e],is(e<=NN))),
+ cpolessumpos:lsum(cpoles[i][2]*exp(%i*cpoles[i][1]*%pi*var/p),i,sl_indx),
+ cpolessumneg:lsum(conjugate(cpoles[i][2])*exp(-%i*cpoles[i][1]*%pi*var/p),i,sl_indx),
+ laux:listify(setdifference(setify(makelist(i,i,1,NN)),setify(indx_cpoles))),
+ ans:c0+cpolessumpos+cpolessumneg+lsum(at(cn*exp(%i*n*%pi*var/p),n=i),i,laux)
+ +lsum(at(conjugate(cn)*exp(-%i*n*%pi*var/p),n=i),i,laux),
+ return(ratsimp(demoivre(ans)))
+ )
+ )
+)$
+
+cfourier_series(expr,var,p,NN):=cfouriercoeff_expand(cfouriercoeff(expr,var,p),var,p,NN)$
+
+evalpole_scn(bfn,polesf,indx_pf,indx):=block([n],
+ if member(indx,indx_pf) then return(assoc(indx,polesf))
+ else return(at(bfn,n=indx))
+)$
+
+fourier_heatcoeff(Qexpr,fexpr,var,p,kap):=block(
+ [bnf,bnQ,polesf,polesQ,indxpf,indxpQ,indxp,n,un,polesU,ans],
+ /* [[bnf],polesf]:fousincoeff(fexpr,var,p),
+ [[bnQ],polesQ]:fousincoeff(Qexpr,var,p), */
+ [[bnf],polesf]:fouriersincoeff(fexpr,var,p),
+ [[bnQ],polesQ]:fouriersincoeff(Qexpr,var,p),
+ declare(n,integer),
+ un:bnf*exp(-(n*%pi/p)^2*kap*t)+integrate(at(bnQ,t=s)*exp(-(n*%pi/p)^2*kap*(t-s)),s,0,t),
+ if emptyp(polesf) and emptyp(polesQ) then (ans:[[un],[]], remove(n,integer), return(ratsimp(ans)))
+ /*now let's deal with the poles*/
+ else(
+ indxpf:map(first,polesf), indxpQ:map(first,polesQ),
+ indxp:unique(append(indxpf,indxpQ)),
+ polesU:map(lambda([e],[e,evalpole_scn(bnf,polesf,indxpf,e)*exp(-(e*%pi/p)^2*kap*t)
+ +integrate(at(evalpole_scn(bnQ,polesQ,indxpQ,e),t=s)*exp(-(e*%pi/p)^2*kap*(t-s)),s,0,t)]),indxp),
+ ans:[[un],polesU],
+ remove(n,integer),
+ return(ratsimp(ans))
+ )
+)$
+
+fourier_heat(Qexpr,fexpr,var,p,kap,NN):=fouriersincoeff_expand(fourier_heatcoeff(Qexpr,fexpr,var,p,kap),var,p,NN)$
+
+fourier_wavecoeff(Qexpr,fexpr,gexpr,var,p,A):=block(
+ [indxp,indxpf,indxpQ,indxpg,n,polesf,polesg,polesQ,bnf,bnQ,bng,Ln,un,polesU],
+ Ln:(n*%pi*A)/p,
+/* [[bnf],polesf]:fousincoeff(fexpr,var,p),
+ [[bng],polesg]:fousincoeff(gexpr,var,p),
+ [[bnQ],polesQ]:fousincoeff(Qexpr,var,p), */
+ [[bnf],polesf]:fouriersincoeff(fexpr,var,p),
+ [[bng],polesg]:fouriersincoeff(gexpr,var,p),
+ [[bnQ],polesQ]:fouriersincoeff(Qexpr,var,p),
+ bng:bng/Ln, polesg:map(lambda([e],[e[1],e[2]*at(1/Ln,n=e[1])]),polesg),
+ declare(n,integer),
+ un:bnf*cos(Ln*t)+bng*sin(Ln*t)+(1/Ln)*integrate(at(bnQ,t=s)*sin(Ln*(t-s)),s,0,t),
+ if emptyp(polesf) and emptyp(polesQ) and emptyp(polesg) then (ans:[[un],[]], remove(n,integer), return(ratsimp(ans)))
+ /*now let's deal with the poles*/
+ else(
+ indxpf:map(first,polesf), indxpQ:map(first,polesQ), indxpg:map(first,polesg),
+ indxp:unique(append(indxpf,indxpQ,indxpg)),
+ polesU:map(lambda([e],[e,evalpole_scn(bnf,polesf,indxpf,e)*cos(e*%pi*A*t/p)+
+ evalpole_scn(bng,polesg,indxpg,e)*sin(e*%pi*A*t/p)+
+ (p/(e*%pi*A))*integrate(at(evalpole_scn(bnQ,polesQ,indxpQ,e),t=s)*sin(e*%pi*A*(t-s)/p),s,0,t)]),indxp),
+ ans:[[un],polesU],
+ remove(n,integer),
+ return(ratsimp(ans))
+ )
+)$
+
+fourier_wave(Qexpr,fexpr,gexpr,var,p,A,NN):=fouriersincoeff_expand(fourier_wavecoeff(Qexpr,fexpr,gexpr,var,p,A),var,p,NN)$
+
+dirichlet_heat(Qexpr,fexpr,h1expr,h2expr,var,p,kap,NN):=block(
+[Qaux,faux,vaux],
+ vaux:(h1expr-h2expr)*var/p-h1expr,
+ Qaux:Qexpr+diff(vaux,t),
+ faux:fexpr+at(vaux,t=0),
+ fourier_heat(Qaux,faux,var,p,kap,NN)-vaux
+)$
+
+dirichlet_wave(Qexpr,fexpr,gexpr,h1expr,h2expr,var,p,A,NN):=block(
+[Qaux,faux,gaux,vaux],
+ vaux:(h1expr-h2expr)*var/p-h1expr,
+ Qaux:Qexpr+diff(vaux,t,2),
+ faux:fexpr+at(vaux,t=0),
+ gaux:gexpr+at(diff(vaux,t),t=0),
+ fourier_wave(Qaux,faux,gaux,var,p,A,NN)-vaux
+)$
+
+dirichlet_laplace_disk(a,fexpr,var,NN):=block(
+ [cn,c0,cpoles,n],
+ [[c0,cn],cpoles]:cfouriercoeff(fexpr,var,%pi),
+ cn:(r/a)^abs(n)*cn,
+ cpoles:map(lambda([e],[e[1],(r/a)^e[1]*e[2]]),cpoles),
+ cfouriercoeff_expand([[c0,cn],cpoles],var,%pi,NN)
+)$
+
+neumann_laplace_disk(a,fexpr,var,NN):=block([a0,an,bn,poles,n],
+ [[a0,an,bn],poles]:fouriercoeff(fexpr,var,%pi),
+ if not is(a0=0) then return("The solution does not exist.")
+ else(
+ an:(a/n)*an*(r/a)^n,
+ bn:(a/n)*bn*(r/a)^n,
+ poles:map(lambda([e],[e[1],e[2]*(a/e[1])*(r/a)^e[1],e[3]*(a/e[1])*(r/a)^e[1]]),poles),
+ return(fouriercoeff_expand([[a0,an,bn],poles],var,%pi,NN))
+ )
+)$
+
+dirichlet_laplace_annulus(a,b,fexpr,gexpr,var,NN):=block(
+ [n,cnf,c0f,cng,c0g,cpolesf,cpolesg,c0aux,cnaux,cpolesaux,
+ indxpf,indxpg,indxp,ans],
+ [[c0f,cnf],cpolesf]:cfouriercoeff(fexpr,var,%pi),
+ [[c0g,cng],cpolesg]:cfouriercoeff(gexpr,var,%pi),
+ c0aux:(c0g*log(b)-c0f*log(a))*log(b/a)+(c0f-c0g)*log(r)/log(b/a),
+ cnaux:(b^abs(n)*r^abs(n)-a^abs(2*n)*b^abs(n)*r^(-abs(n)))*cnf/(b^abs(2*n)-a^abs(2*n))+
+ cng*(b^abs(2*n)*a^abs(n)*r^(-abs(n))-a^abs(n)*r^abs(n))/(b^abs(2*n)-a^abs(2*n)),
+ if emptyp(cpolesf) and emptyp(cpolesg) then(
+ ans:cfouriercoeff_expand(ratsimp([[c0aux,cnaux],[]]),var,%pi,NN),
+ return(ans)
+ ) /*now let's deal with the poles*/
+ else(
+ indxpf:map(first,cpolesf), indxpg:map(first,cpolesg),
+ indxp:unique(append(indxpf,indxpg)),
+ cpolesaux:map(lambda([e],[e,(b^e*r^e-a^(2*e)*b^e*r^(-e))*evalpole_scn(cnf,cpolesf,indxpf,e)/(b^(2*e)-a^(2*e))+
+ evalpole_scn(cng,cpolesg,indxpg,e)*(b^(2*e)*a^e*r^(-e)-a^e*r^e)/(b^(2*e)-a^(2*e))]),indxp),
+ ans:cfouriercoeff_expand(ratsimp([[c0aux,cnaux],cpolesaux]),var,%pi,NN),
+ return(ans)
+ )
+)$
+
+dirichlet_laplace_wedge(R,a,fexpr,var,NN):=block(
+ [bnf,polesf,bnaux,polesaux,n,p:a],
+ [[bnf],polesf]:fouriersincoeff(fexpr,var,p),
+ bnaux:bnf*(r/R)^(n*%pi/a),
+ if emptyp(polesf) then return(fouriersincoeff_expand([[bnaux],[]],var,p,NN))
+ else(
+ polesaux:map(lambda([e],[e[1],e[2]*(r/R)^(e[1]*%pi/a)]),polesf),
+ return(fouriersincoeff_expand([[bnaux],polesaux],var,p,NN))
+ )
+)$
+
+neumann_laplace_wedge(R,a,fexpr,var,NN):=block(
+ [bnf,polesf,bnaux,polesaux,n,p:a],
+ [[bnf],polesf]:fouriersincoeff(fexpr,var,p),
+ bnaux:bnf*(r/R)^(n*%pi/a)*(R*a/(n*%pi)),
+ if emptyp(polesf) then return(fouriersincoeff_expand([[bnaux],[]],var,p,NN))
+ else(
+ polesaux:map(lambda([e],[e[1],e[2]*(r/R)^(e[1]*%pi/a)*(R*a/(e[1]*%pi))]),polesf),
+ return(fouriersincoeff_expand([[bnaux],polesaux],var,p,NN))
+ )
+)$
+
+dirichlet_laplace_rectangle(a,b,f1expr,f2expr,g1expr,g2expr,var1,var2,NN):=block(
+[n,f1n,polesf1,f2n,polesf2,g1n,polesg1,g2n,polesg2,indxpf1,indxpf2,indxpg1,indxpg2,
+ indxp,Fnaux,Gnaux,polesFaux,polesGaux,ans],
+ [[f1n],polesf1]:fouriersincoeff(f1expr,var1,a),
+ [[f2n],polesf2]:fouriersincoeff(f2expr,var1,a),
+ [[g1n],polesg1]:fouriersincoeff(g1expr,var2,b),
+ [[g2n],polesg2]:fouriersincoeff(g2expr,var2,b),
+ Fnaux:f1n*sinh(n*%pi*(b-var2)/a)/sinh(n*%pi*b/a)+f2n*sinh(n*%pi*var2/a)/sinh(n*%pi*b/a),
+ Gnaux:g1n*sinh(n*%pi*(a-var1)/b)/sinh(n*%pi*a/b)+g2n*sinh(n*%pi*var1/b)/sinh(n*%pi*a/b),
+ if emptyp(polesf1) and emptyp(polesf2) and emptyp(polesg1) and emptyp(polesg2) then(
+ ans:fouriersincoeff_expand([[Fnaux],[]],var1,a,NN)+fouriersincoeff_expand([[Gnaux],[]],var2,b,NN),
+ return(ans)
+ )
+ else(
+ indxpf1:map(first,polesf1), indxpf2:map(first,polesf2),
+ indxpg1:map(first,polesg1), indxpg2:map(first,polesg2),
+ indxp:unique(append(indxpf1,indxpf2,indxpg1,indxpg2)),
+ polesFaux:map(lambda([e],[e,evalpole_scn(f1n,polesf1,indxpf1,e)*sinh(e*%pi*(b-var2)/a)/sinh(e*%pi*b/a)
+ +evalpole_scn(f2n,polesf2,indxpf2,e)*sinh(e*%pi*var2/a)/sinh(e*%pi*b/a)]),indxp),
+ polesGaux:map(lambda([e],[e,evalpole_scn(g1n,polesg1,indxpg1,e)*sinh(e*%pi*(a-var1)/b)/sinh(e*%pi*a/b)
+ +evalpole_scn(g2n,polesg2,indxpg2,e)*sinh(e*%pi*var1/b)/sinh(e*%pi*a/b)]),indxp),
+ ans:fouriersincoeff_expand([[Fnaux],polesFaux],var1,a,NN)+fouriersincoeff_expand([[Gnaux],polesGaux],var2,b,NN),
+ return(ans)
+ )
+)$
+
+neumann_laplace_rectangle(a,b,f1expr,f2expr,g1expr,g2expr,var1,var2,NN):=block(
+[n,f1n,polesf1,f2n,polesf2,g1n,polesg1,g2n,polesg2,indxpf1,indxpf2,indxpg1,indxpg2,
+ indxp,Fnaux,Gnaux,polesFaux,polesGaux,C,ans,f10,g10,f20,g20],
+ [[f10,f1n],polesf1]:fouriercoscoeff(f1expr,var1,a),
+ [[f20,f2n],polesf2]:fouriercoscoeff(f2expr,var1,a),
+ [[g10,g1n],polesg1]:fouriercoscoeff(g1expr,var2,b),
+ [[g20,g2n],polesg2]:fouriercoscoeff(g2expr,var2,b),
+ Fnaux:(-a/(n*%pi))*f1n*cosh(n*%pi*(b-var2)/a)/sinh(n*%pi*b/a)+(a/(n*%pi))*f2n*cosh(n*%pi*var2/a)/sinh(n*%pi*b/a),
+ Gnaux:(-b/(n*%pi))*g1n*cosh(n*%pi*(a-var1)/b)/sinh(n*%pi*a/b)+(b/(n*%pi))*g2n*cosh(n*%pi*var1/b)/sinh(n*%pi*a/b),
+ if emptyp(polesf1) and emptyp(polesf2) and emptyp(polesg1) and emptyp(polesg2) then(
+ ans:fouriercoscoeff_expand([[0,Fnaux],[]],var1,a,NN)+fouriercoscoeff_expand([[0,Gnaux],[]],var2,b,NN),
+ return(ans+C)
+ )
+ else(
+ indxpf1:map(first,polesf1), indxpf2:map(first,polesf2),
+ indxpg1:map(first,polesg1), indxpg2:map(first,polesg2),
+ indxp:unique(append(indxpf1,indxpf2,indxpg1,indxpg2)),
+ polesFaux:map(lambda([e],[e,(-a/(n*%pi))*evalpole_scn(f1n,polesf1,indxpf1,e)*cosh(e*%pi*(b-var2)/a)/sinh(e*%pi*b/a)
+ +(a/(n*%pi))*evalpole_scn(f2n,polesf2,indxpf2,e)*cosh(e*%pi*var2/a)/sinh(e*%pi*b/a)]),indxp),
+ polesGaux:map(lambda([e],[e,(-b/(n*%pi))*evalpole_scn(g1n,polesg1,indxpg1,e)*cosh(e*%pi*(a-var1)/b)/sinh(e*%pi*a/b)
+ +(b/(n*%pi))*evalpole_scn(g2n,polesg2,indxpg2,e)*cosh(e*%pi*var1/b)/sinh(e*%pi*a/b)]),indxp),
+ ans:fouriercoscoeff_expand([[0,Fnaux],polesFaux],var1,a,NN)+fouriercoscoeff_expand([[0,Gnaux],polesGaux],var2,b,NN),
+ return(ans+C)
+ )
+)$
+
+/*Beggining of 2D Wave equation*/
+
+BesselJZeros(m,k,[u]):=block([a,alpha,A,answ],local(a,alpha,A),
+if is(not(m>-1)) then return("The order m must be m>-1"),
+if (is(not(integerp(k))) or is(not(k > 0))) then return("k must be an integer k>0"),
+a[i]:=m+2*i,
+alpha[i,j]:=if is(equal(i,j)) then 2/((a[i]-1)*(a[i]+1))
+ elseif is(equal(j,i-1)) then 1/((a[i]-1)*sqrt((a[i]-2)*a[i]))
+ elseif is(equal(j,i+1)) then 1/((a[i+1]-1)*sqrt((a[i+1]-2)*a[i+1]))
+ else 0,
+A:genmatrix(alpha,ceiling(k/0.64)+10,ceiling(k/0.64)+10),
+answ:2/sqrt(first(eigens_by_jacobi(A,floatfield))),
+if (is(not(equal(length(u),0))) and is(equal(first(u),all))) then
+ firstn(sort(answ),k)
+elseif (is(not(equal(length(u),0))) and is(not(equal(first(u),all)))) then
+ return("Do you want the first k roots? In this case, the option is 'all'")
+else
+ last(firstn(sort(answ),k))
+)$
+
+simpgen(l1,l2):=append(endcons(last(l1)+first(l2),rest(l1,-1)),rest(l2,1))$
+
+pairing(L1,L2):=xreduce(append,map(lambda([x],map(lambda([y],[x,y]),L2)),L1))$
+
+nintegrate(f,m,[I]):=block([n:length(args(lhs(apply(fundef,[f])))),tmp:xreduce(simpgen,makelist([1,4,1],j,1,m/2)),x,deltax,p,w,ww,xx],local(x,deltax,p,w),
+if is(not(evenp(m))) then return ("The number of subdivisions m must be even")
+elseif is(not(equal(length(I),n))) then return("The number of variables xi and intervals [ai,bi] must match") else
+ (
+ for i:1 thru n do x[i]:args(lhs(apply(fundef,[f])))[i],
+ for i:1 thru n do deltax[i]:(I[i][2]-I[i][1])/m,
+ for j:1 thru n do p[j]:makelist(I[j][1]+k*deltax[j],k,0,m),
+ for j:1 thru n do w[j]:(deltax[j]/3)*tmp,
+ if is(equal(n,1)) then
+ ww:w[1]
+ else
+ ww:map(lambda([x],apply("*",x)),map(flatten,xreduce(pairing,makelist(w[j],j,1,n)))),
+ if is(equal(n,1)) then
+ xx:p[1]
+ else
+ xx:map(flatten,xreduce(pairing,makelist(p[j],j,1,n))),
+ if is(equal(n,1)) then
+ bfloat(apply("+",ww*map(f,xx)))
+ else
+ bfloat(apply("+",ww*map(lambda([x],apply(f,x)),xx)))
+ )
+)$
+
+a0(n,a,f):=block([r:args(lhs(apply(fundef,[f])))[1],theta:args(lhs(apply(fundef,[f])))[2],lam:BesselJZeros(0,n)/a,p:%pi,ff,k],local(ff),
+define(funmake(ff,[r,theta]),apply(f,[r,theta])*r*bessel_j(0,lam*r)),
+k:1/(p*a^2*(bessel_j(1,lam))^2),
+k*nintegrate(ff,14,[0,a],[0,2*p])
+)$
+
+a(m,n,a,f):=block([r:args(lhs(apply(fundef,[f])))[1],theta:args(lhs(apply(fundef,[f])))[2],lam:BesselJZeros(0,n)/a,p:%pi,ff,k],local(ff),
+define(funmake(ff,[r,theta]),apply(f,[r,theta])*r*bessel_j(0,lam*r)*cos(m*theta)),
+k:2/(p*a^2*(bessel_j(m+1,lam))^2),
+k*nintegrate(ff,14,[0,a],[0,2*p])
+)$
+
+b(m,n,a,f):=block(
+[r:args(lhs(apply(fundef,[f])))[1],theta:args(lhs(apply(fundef,[f])))[2],lam:BesselJZeros(0,n)/a,p:%pi,ff,k],local(ff),
+define(funmake(ff,[r,theta]),apply(f,[r,theta])*r*bessel_j(0,lam*r)*sin(m*theta)),
+k:2/(p*a^2*(bessel_j(m+1,lam))^2),
+k*nintegrate(ff,14,[0,a],[0,2*p])
+)$
+
+as0(n,a,c,f):=block([r:args(lhs(apply(fundef,[f])))[1],theta:args(lhs(apply(fundef,[f])))[2],lam:BesselJZeros(0,n)/a,p:%pi,ff,k],local(ff),
+define(funmake(ff,[r,theta]),apply(f,[r,theta])*r*bessel_j(0,lam*r)),
+k:1/(c*p*lam*a^2*(bessel_j(1,lam))^2),
+k*nintegrate(ff,14,[0,a],[0,2*p])
+)$
+
+as(m,n,a,c,f):=block([r:args(lhs(apply(fundef,[f])))[1],theta:args(lhs(apply(fundef,[f])))[2],lam:BesselJZeros(0,n)/a,p:%pi,ff,k],local(ff),
+define(funmake(ff,[r,theta]),apply(f,[r,theta])*r*bessel_j(0,lam*r)*cos(m*theta)),
+k:2/(c*p*lam*a^2*(bessel_j(m+1,lam))^2),
+k*nintegrate(ff,14,[0,a],[0,2*p])
+)$
+
+bs(m,n,a,c,f):=block([r:args(lhs(apply(fundef,[f])))[1],theta:args(lhs(apply(fundef,[f])))[2],lam:BesselJZeros(0,n)/a,p:%pi,ff,k],local(ff),
+define(funmake(ff,[r,theta]),apply(f,[r,theta])*r*bessel_j(0,lam*r)*sin(m*theta)),
+k:2/(c*p*lam*a^2*(bessel_j(m+1,lam))^2),
+k*nintegrate(ff,14,[0,a],[0,2*p])
+)$
+
+wave2d_disk(c,a,f,g,k,l):=block([A0,A,B,As0,As,Bs,lamb],local(A0,A,B,As0,As,Bs,lamb,t),
+A0[i]:=a0(i,a,f),A[i,j]:=a(i,j,a,f),B[i,j]:=b(i,j,a,f),As0[i]:=as0(i,a,c,g),As[i,j]:=as(i,j,a,c,g),Bs[i,j]:=bs(i,j,a,c,g),
+lamb[i,j]:=BesselJZeros(i,j)/a,
+sum(A0[n]*bessel_j(0,lamb[0,n]*r)*cos(c*lamb[0,n]*t),n,1,l)
++sum(sum(bessel_j(m,lamb[m,n]*r)*(A[m,n]*cos(m*theta)+B[m,n]*sin(m*theta))*cos(c*lamb[m,n]*t),n,1,l),m,1,k)
++sum(As0[n]*bessel_j(0,lamb[0,n]*r)*sin(c*lamb[0,n]*t),n,1,l)
++sum(sum(bessel_j(m,lamb[m,n]*r)*(As[m,n]*cos(m*theta)+Bs[m,n]*sin(m*theta))*sin(c*lamb[m,n]*t),n,1,l),m,1,k)
+)$
+
+Arect(f,a,b,m,n):=block([x:args(lhs(apply(fundef,[f])))[1],y:args(lhs(apply(fundef,[f])))[2]],
+define(funmake(ff,[x,y]),apply(f,[x,y])*sin(m*%pi*x/a)*sin(m*%pi*y/b)),
+4*(nintegrate(ff,14,[0,a],[0,b]))/(a*b)
+)$
+
+Brect(g,a,b,c,m,n):=block([x:args(lhs(apply(fundef,[f])))[1],y:args(lhs(apply(fundef,[f])))[2],lamb],local(lamb),
+lamb[m,n]:=((m/a)^2+(n/b)^2)/(%pi^2),
+define(funmake(gg,[x,y]),apply(g,[x,y])*sin(m*%pi*x/a)*sin(m*%pi*y/b)),
+4*(nintegrate(gg,14,[0,a],[0,b]))/(a*b*c*sqrt(lam[m,n]))
+)$
+
+wave2d_rectangle(c,a,b,f,g,k,l):=block([x:args(lhs(apply(fundef,[f])))[1],y:args(lhs(apply(fundef,[f])))[2],lamb,t],local(lamb,t),
+lamb[m,n]:=((m/a)^2+(n/b)^2)/(%pi^2),
+sum(sum((Arect(f,a,b,m,n)*cos(sqrt(lamb[0,n])*c*t)+Brect(g,a,b,c,m,n)*sin(sqrt(lamb[0,n])*c*t))*sin(m*%pi*x/a)*sin(n*%pi*y/b),m,1,k),n,1,l)
+)$