// 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
//
println("ketcindylibbasic3[20191127] 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(#,16)+","; //190918
);
);
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);
);
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 & #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,
tmp1=Removespace(#); //190816from
// tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
// if(tmp!=",", tmp1=tmp1+";");
tmp1=tmp1+";";
funstr=funstr+tmp1; //190816to
);
funstr=funstr+");";
parse(funstr);
tmp=indexof(name,"("); // no ketjs on //190814
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,(#_10,
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+";";
);
);
tmp1=bodylist_(length(bodylist)); //190816from
tmp1=RSform(tmp1,2);
str=str+"return"+PaO()+tmp1+")}"; //190816to
FUNLIST=append(FUNLIST,str); // no ketjs off
);
////%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"))&(ctr0,
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");
regional(tmp);
GPACK=gpack;
if(Toupper(gpack)=="TIKZ", //190615
Addpackage(["pgf","tikz"]); //190101
ADDPACK=set(ADDPACK); //191127
);
if(Toupper(gpack)=="PICT2E",
Addpackage(["pict2e"]);
ADDPACK=set(ADDPACK); //191127
);
);
////%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(#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[Nsame0,
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,29
Fracform(x):=Fracform(x,5);
Fracform(x,den):=Fracform(x,den,5);
Fracform(x,denorg,deg):=(
//help:Fracform(1.3);
//help:Fracform(1.3,[denomlist],5);
regional(Eps,den,fL,flg,tmp,nn,mm,err);
Eps=10^(-deg);
den=denorg;
if(islist(den),
if(!contains(den,1), den=prepend(1,den));
,
den=1..den;
);
fL=[];
flg=0;
forall(den,
if(flg==0,
tmp=round(x*#);
tmp=[tmp,#,abs(tmp/#-x)];
if(tmp_31,
out="fr("+text(mm)+","+text(nn)+")";
,
out=text(mm);
);
[out,"err="+format(err,6),mm,nn]; //190914
);
////%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,tmp2);
out=replace(str,"pi","\pi"); //190715
tmp1=apply(0..9,text(#)); //190915from
tmp2=Indexall(out,"*");
forall(tmp2,
tmp=substring(out,#,#+1);
if(contains(tmp1,tmp),
out=substring(out,0,#-1)+"$"+substring(out,#,length(out));
,
out=substring(out,0,#-1)+"%"+substring(out,#,length(out));
);
);
out=replace(out,"$","\cdot ");
out=replace(out,"%",""); //190915to
out=replace(out," ","\;");
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)=","\geq ");
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);
tmp2=substring(out,tmp2,length(out));//190915
out=substring(out,0,nn)+"{"+tmp+"}";
out=out+tmp2;
);
);
);
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;
out=replace(out,"\",""); //190712[4lines]
out=replace(out," "," ");
out=replace(out," "," ");
out=replace(out," ","*");
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)=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////
////%Ketcindyjsbody start//// 190909
Ketcindyjsbody(list1,list2):=(
//help:Ketcindyjsbody(listfront,listrear);
//help:Ketcindyjsbody(["_;_;Sample"],[]); //191004
JSBODY=[list1,list2];
JSBODY;
);
////%Ketcindyjsbody end////
////%Ketcindyjsdata start//// //190421
Ketcindyjsdata(datalistorg):=(
//help:Ketcindyjsdata(["ans",ans,"pea[parse]",pea]);
regional(nn,func,tmp,tmp1,tmp2);
if(!islist(KetcindyjsDataList),KetcindyjsDataList=[]); //190801
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)+"]";
,
if(isstring(tmp2),tmp2=Dqq(tmp2));
);
tmp=tmp1+"="+tmp2;
KetcindyjsDataList=append(KetcindyjsDataList,tmp);
KetcindyjsDataList=set(KetcindyjsDataList); //190802
);
);
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,#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////
////%Parsejson start////
Parsejson(json):=(
//help:Parsejson("{a:[1,2,[3,4],5],b:{1,2,3}}");
regional(outL,symbolleftL,symbolrightL,symbolstack,stacksize,leftpos,rightpos,breakflg,strflg,flg);
outL=[];
symbolleftL =["[","{"];
symbolrightL=["]","}"];
leftpos=1;
while(leftpos<=length(json),
while( ( json_leftpos==" " % json_leftpos=="{" ) & leftpos<=length(json), leftpos=leftpos+1);
rightpos=leftpos;
symbolstack=" ";
stacksize=0;
breakflg=0;
strflg=0;
while(breakflg==0 & rightpos<=length(json),
flg=0;
if(strflg==0 & json_rightpos==unicode("0022"), // unicode("0022")='"'
strflg=1;
flg=1;
);
if(flg==0 & strflg==1 & json_rightpos==unicode("0022"),
strflg=0;
flg=1;
);
if(strflg==0,
repeat(length(symbolleftL),
if(flg==0 & stacksize>0,
if(symbolstack_stacksize==symbolleftL_# & json_rightpos==symbolrightL_#,
stacksize=stacksize-1;
flg=1;
);
);
if(flg==0 & json_rightpos==symbolleftL_#,
stacksize=stacksize+1;
symbolstack_stacksize=symbolleftL_#+" ";
flg=1;
);
);
if(flg==0 & json_rightpos==",",
if(stacksize==0, breakflg=1);
flg=1;
);
if(flg==0 & json_rightpos=="}",
if(stacksize==0, breakflg=1);
flg=1;
);
);
if(breakflg==0,rightpos=rightpos+1);
);
if(leftpos0,
textsize="textsize: "+round(scale*defaultsize);
out=replace(out,propertiesL_length(propertiesL),propertiesL_length(propertiesL)+", "+textsize);
);
);
if(existflg>0,
breakflg=0;
forall(propertiesL,
if(breakflg==0 & indexof(#,"textsize")>0,
textsize="textsize: "+round(scale*parse(substring(#,indexof(#,":"),length(#))));
out=replace(out,#,textsize);
breakflg=1;
);
);
);
out;
);
////%Resizetextsize end////
////%Movetojs start////
Movetojs(geoorg,pos,textsize):=(
//help:Movetojs(Text51,[1,2],12);
regional(geo); //190729from
geo=geoorg;
if(isreal(geo),geo=parse("Text"+text(geo))); //190729to
inspect(geo,"textsize",textsize);
if(!islist(MOVETOJSLIST), MOVETOJSLIST=[]); //190802
MOVETOJSLIST=append(MOVETOJSLIST,[geo.name,[pos_1,pos_2]]);
);
////%Movetojs end////
////%Movetojsexe start////
Movetojsexe(json):=(
regional(out,geo,propertiesL,breakflg);
out=json;
geo=select(MOVETOJSLIST,indexof(json,"name: "+Dqq(#_1))>0);
if(length(geo)>0,
geo=geo_1;
propertiesL=Parsejson(out);
forall(propertiesL,
breakflg=0;
if(breakflg==0 & ( indexof(#,"pos:")>0 % indexof(#,"dock:")>0 ),
out=replace(out,#,"pos: ["+geo_2_1+","+geo_2_2+",1]");
breakflg=1;
);
);
);
out;
);
////%Movetojsexe end////
////%Setplaybuttons start////
Setplaybuttons(pt,font):=Setplaybuttons(pt_1,pt_2,font,[]);
Setplaybuttons(Arg1,Arg2,Arg3):=(
if(islist(Arg1),
Setplaybuttons(Arg1_1,Arg1_2,Arg2,Arg3);
,
Setplaybuttons(Arg1,Arg2,Arg3,[]);
);
);
Setplaybuttons(x,y,font,sporg):=(
//help:Setplaybuttons(-2,-6,14);
//help:Setplaybuttons([-2,-6],14,[1,1,1]);
regional(x1,sp,tmp,tmp1);
sp=sporg;
tmp=length(sp);
if(tmp==0,tmp1=0,tmp1=sp_tmp);
tmp=apply(1..(3-tmp),tmp1);
sp=concat(sp,tmp);
x1=x;
Movetojs(71,[x1,y],font);
x1=x1+(0.84*font+sp_1)/10;
Movetojs(72,[x1,y],font);
x1=x1+(1.06*font+sp_2)/10;
Movetojs(73,[x1,y],font);
x1=x1+(0.76*font+sp_3)/10;
Movetojs(74,[x1,y],font);
);
////%Setplaybuttons 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=","Remove=(list)"]);
//help:Mkketcindyjs(optionsadd2=["Equal=","Axes=","Figure=(n)"]);
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,axes,out,Out,igno,onlyflg,rmptL,colorrgb,ptname,eqflg,eqrep,
figure,dpi,margin,defaultbuttonsize,defaulteditsize,dname,fname);
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
figure=0;
dpi=86.4; // 12px/10pt = 12px/(10/72)in = 86.4dpi
margin=5; // mm
defaultbuttonsize=12; // px
defaulteditsize=12; // px
grid="";
axes="";
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=="A",
if(length(tmp2)>0,
tmp2=Toupper(substring(tmp2,0,1)); //190729[2lines]
if(contains(["N","F"],tmp2),axes="false");
);
);
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(tmp1=="F",
if(length(tmp2)>0,
if(Toupper(substring(tmp2,0,1))=="Y",figure=1,figure=0);
);
);
);
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);
,
tmp3=Readlines(Dircdy,Fhead+".html");
tmp=select(1..(length(tmp3)),indexof(tmp3_#,"import")>0);
tmp2=select(tmp,indexof(tmp3_#,"ketcindy.ini")==0);
tmp1=[];
forall(tmp2,
tmp=Removespace(tmp3_#);
if(substring(tmp,0,2)!="//",
tmp1=append(tmp1,#);
);
);
htmorg=[];
from=1;
forall(tmp1,
htmorg=concat(htmorg,tmp3_(from..(#-2)));
tmp=Bracket(tmp3_(#-1),"()");
dname=substring(tmp3_(#-1),tmp_1_1,tmp_(length(tmp))_1-1);
dname=parse(dname);
tmp=Bracket(tmp3_#,"()");
fname=substring(tmp3_#,tmp_1_1,tmp_(length(tmp))_1-1);
fname=parse(fname);
tmp2=Readlines(dname,fname);
htmorg=concat(htmorg,tmp2);
from=#+2;
);
upto=length(tmp3);
htmorg=concat(htmorg,tmp3_(from..upto));
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_#,"")>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_#,"")>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_#,"")>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= " ";
tmp1_(length(tmp1)-2)=tmp;
tmp= " ";
tmp1_(length(tmp1)-1)=tmp;
tmp=" ";
//190203
tmp1_(length(tmp1))=""; //190128to
);
,
tmp1_(length(tmp1))=""; //190117to
);
forall(tmp1,
println(SCEOUTPUT,#);
);
tmp="");
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),
tmp1_jj=Movetojsexe(tmp1_jj);
if(figure>0,tmp1_jj=Resizetextsize(tmp1_jj,defaultbuttonsize,scale));
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
tmp=Movetojsexe(tmp);
if(figure>0,tmp=Resizetextsize(tmp,defaulteditsize,scale));
out=append(out,tmp);
flg=1;
);
);
if(flg==0,
if(indexof(tmp1_jj,"Calculation")>0,
tmp=replace(tmp1_jj,Dqq("Calculation"),Dqq("EditableText"));
tmp=Movetojsexe(tmp);
if(eqflg==1,tmp=replace(tmp,"=",eqrep)); //190604
if(figure>0,tmp=Resizetextsize(tmp,defaulteditsize,scale));
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
if(figure==0,
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;
);d
);
);
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(figure>0,
tmp=select(1..(length(out)),indexof(out_#,"width:")>0);
jj=tmp_1;
tmp=round(dpi*scale*(XMAX-XMIN+margin/10*2)*10/25.4);
out_jj=" width: "+text(tmp)+",";
tmp=select(1..(length(out)),indexof(out_#,"height:")>0);
jj=tmp_1;
tmp=round(dpi*scale*(YMAX-YMIN+margin/10*2)*10/25.4);
out_jj=" height: "+text(tmp)+",";
tmp=select(1..(length(out)),indexof(out_#,"transform:")>0);
jj=tmp_1;
tmp=" transform: [{visibleRect: ["+text(XMIN-margin/10)+","+text(YMAX+margin/10);
out_jj=tmp+","+text(XMAX+margin/10)+","+text(YMIN-margin/10)+"]}],";
);
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;
);
if(length(axes)>0,
tmp=select(1..(length(out)),indexof(out_#,"axes:")>0);
if(length(tmp)>0,
jj=tmp_1;
tmp1=" axes: "+axes;
if(indexof(out_jj,",")>0,
tmp1=tmp1+",";
);
out_jj=tmp1;
);
);
forall(out,tmp1, //190910from
if(indexof(tmp1,"
")>0,
forall(JSBODY_1,
tmp2=replace(#,"_;"," ");
tmp2=Removespace(tmp2);
tmp=indexof(tmp2,">");
tmp3=substring(tmp2,1,tmp-1);
if(indexof(tmp3,"p")>0,
tmp2=substring(tmp2,tmp,length(tmp2));
);
tmp3=Strsplit(tmp3,",");
forall(reverse(1..(length(tmp3))),nn,
tmp=tmp3_nn;
if(substring(tmp,0,1)=="f",
tmp="";
tmp2=tmp+tmp2+"";
);
if(substring(tmp,0,1)=="p",
tmp2=""+tmp2+"
";
);
);
tmp2=replace(tmp2,"''",Dq);
tmp2=" "+replace(tmp2,"`","'");
println(SCEOUTPUT,tmp2);
);
);
,
forall(JSBODY_2,
tmp2=replace(#,"_;"," ");
tmp2=Removespace(tmp2);
tmp=indexof(tmp2,">");
tmp3=substring(tmp2,1,tmp-1);
if(indexof(tmp3,"p")>0,
tmp2=substring(tmp2,tmp,length(tmp2));
);
tmp3=Strsplit(tmp3,",");
forall(reverse(1..(length(tmp3))),nn,
tmp=tmp3_nn;
if(substring(tmp,0,1)=="f",
tmp="";
tmp2=tmp+tmp2+"";
);
if(substring(tmp,0,1)=="p",
tmp2=""+tmp2+"
";
);
);
tmp2=replace(tmp2,"''",Dq);
tmp2=" "+replace(tmp2,"`","'");
println(SCEOUTPUT,tmp2);
);
);
); //190910to
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();