1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
//
// 09.12.25
function Expr(varargin)
global Wfile FID MEMORI;
Nargs=length(varargin);
for I=1:3:Nargs
Tmp=varargin(I);
P=Doscaling(Tmp);
X=P(1);
Y=P(2);
Houkou=varargin(I+1);
Mojiretu='$'+varargin(I+2)+'$';
Hset=Houkou;
Vhoko='c';
if mtlb_findstr(Hset,'n')~=[]
Vhoko='n'; Y=Y+MEMORI;
end
if mtlb_findstr(Hset,'s')~=[]
Vhoko='s'; Y=Y-MEMORI;
end
Hhoko='c';
if mtlb_findstr(Hset,'e')~=[]
Hhoko='e'; X=X+MEMORI;
end
if mtlb_findstr(Hset,'w')~=[]
Hhoko='w'; X=X-MEMORI;
end
Hoko=Vhoko+Hhoko;
Suu='+-.0123456789';
SuuL=Suu;
Hcode=ascii(Houkou);
J=1; Dstr='';
while J<=length(Houkou)
Tmp=char(Hcode(J));
if mtlb_findstr(SuuL,Tmp)~=[]
if Dstr==''
Hk=char(Hcode(J-1));
end
Dstr=Dstr+Tmp;
else
if Dstr~=''
Nmbr=msscanf(Dstr,'%f');
D=Nmbr*MEMORI;
if Hk=='n'
Y=Y+D;
end
if Hk=='s'
Y=Y-D;
end
if Hk=='e'
X=X+D;
end
if Hk=='w'
X=X-D;
end
Dstr='';
end
end
J=J+1;
end
if Dstr~=''
Nmbr=msscanf(Dstr,'%f');
D=Nmbr*MEMORI;
if Hk=='n'
Y=Y+D;
end
if Hk=='s'
Y=Y-D;
end
if Hk=='e'
X=X+D;
end
if Hk=='w'
X=X-D;
end
end
CalcWidth(Hoko,Mojiretu);
CalcHeight(Hoko,Mojiretu);
Tmp='){\hspace*{\Width}';
Str=Tmp+'\raisebox{\Height}{'+Mojiretu+'}}';
if Wfile=='default'
mprintf('%s','\put(');
mprintf('%6.4f%s%6.4f',X,',',Y);
mprintf('%s%s\n',Str,'%');
mprintf('%s\n','%');
else
mfprintf(FID,'%s','\put(');
mfprintf(FID,'%6.4f%s%6.4f',X,',',Y);
mfprintf(FID,'%s%s\n',Str,'%');
mfprintf(FID,'%s\n','%');
end
if Wfile=='default'
mprintf('%s\n','%');
else
mfprintf(FID,'%s\n','%');
end
end
endfunction
|