diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/astro |
Initial commit
Diffstat (limited to 'fonts/astro')
-rw-r--r-- | fonts/astro/astrosym.cal | 491 | ||||
-rw-r--r-- | fonts/astro/astrosym.cmn | 441 | ||||
-rw-r--r-- | fonts/astro/astrosym.mac | 153 | ||||
-rw-r--r-- | fonts/astro/astrosym.mf | 99 | ||||
-rw-r--r-- | fonts/astro/astrosym.tex | 167 | ||||
-rw-r--r-- | fonts/astro/astrosym.txt | 159 | ||||
-rw-r--r-- | fonts/astro/astrosym.uni | 302 | ||||
-rw-r--r-- | fonts/astro/astrosym.xtr | 115 |
8 files changed, 1927 insertions, 0 deletions
diff --git a/fonts/astro/astrosym.cal b/fonts/astro/astrosym.cal new file mode 100644 index 0000000000..bf259b7ed0 --- /dev/null +++ b/fonts/astro/astrosym.cal @@ -0,0 +1,491 @@ +% ASTROSYM.CAL : AstroSym (Version 2.20, Aug. 10, 2002) - file 5 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(O+0,U#,U#,0u#); "Sol"; + D:=2P; % diameter of central circle + corners; centers; + PEN; draw BC..CL..TC..CR..BC..cycle; % main circle + Pen; draw fullcircle scaled D shifted CC; % central circle + endchar; + +beginchar(O+1,46u#,80u#,16u#); "Mercurius"; + corners; centers; + VV:=(CC-CL) rotated 90; + bC := CC-VV; + VV:=2VV+vP/3; + tL:=CL+VV; tC:=CC+VV; tR:=CR+VV; + R:=length(tL-hd-tC); % upper circle: outer radius + s:=length(TC+vd-tC); a:= angle(R+-+s,s); % upper partial sector: angle + Tl:= (tL-hd) rotatedaround (tC,-a); % upper circle: outer endpoints + Tr:= (tR+hd) rotatedaround (tC, a); + tl:= (tL+hd) rotatedaround (tC,-a+10); % upper circle: inner endpoints + tr:= (tR-hd) rotatedaround (tC, a-10); + D:=length(CR-CL); % central circle: diameter + SPEN; cross (bC,BC, 3/2,-2P); % bottom cross + PEN; + draw fullcircle scaled D shifted CC; % central circle + Pen; Fill + ( Tl..(tL-hd){down}..{up}(tR+hd)..Tr % upper circle: outside + & Tr--tr + & tr..(tR-hd){down}..{up}(tL+hd)..tl % upper circle: inside + & tl--Tl--cycle + ); + endchar; + +beginchar(O+5,44u#,70u#,0u#); "Iuppiter"; + Corners (P,0,0,P); Centers (2/3,2/7); Top (6/7); + RPEN; draw tC--BC; % right vertical bar + RPEN rotated 90; draw (CL+hd)--CR; % horizontal bar + Pen; Fill % left vertical arc + ( (CL-vd-hd){tC-CL}..{TL-CC}(TL+(1-sqrt2)*vP-hd) % - left + & (TL+(1-sqrt2)*vP-hd)--(TL+vd-(1-sqrt2)*hP) % - top + & (TL+vd-(1-sqrt2)*hP){CC-TL}..{CL-tC}(CL-vd+hd) % - right + & (CL-vd+hd)--(CL-vd-hd) % - bottom + & (CL-vd-hd)..cycle + ); + endchar; + +beginchar(O+6,44u#,72u#,12u#); "Saturnus"; + Corners (P,P,d+P,P); + Centers (1/6,5/9); % BC and TC : left vertical bar + RT (1/2,1); % bR : right arc (right) + HOR (0,1/3); Top (6/7); % tl and tr : upper horizontal bar + BOT (2/3,7/9); Bl:=Bl-vd; % Bl + Br:=Br-(0,d)+((P-(P*sqrt(2))*sind(45+20),0) rotated -70); % Br + SPEN; draw tl--tr; draw BC--TC; % left cross + PEN; draw CC{dir 20}..{down}bR..{dir250}Bl..{dir-70}Br; % right arc + RPEN rotated 20; draw Br--(Br+(hP rotated -70)); % sharpen arc end + endchar; + +beginchar(O+11,1U#,72u#,2u#); "Aries"; + Corners(p,p,p+d,p); + BOT (1/2,1/2); + % upper boundary : + vv:=7vd; % estimated correction + bl:=Bl+vv; br:=Br+vv; % bl = br : lower middle point + TOP (1/6,5/6); % (temporary) Tl and Tr : upper arcs (tops) + HH:= Tl-TL; VV:= HH rotated -90; + tr:=Tr+VV; % tr : right upper halfcircle (centre) + D:=length(tr-br); R:=length(HH); s:=D+-+R; % calculating direction of bar + b:=angle(s,R); b:=b+angle(tr-br); + Tr:=tr+(HH rotated (b+90)); % Tr : (left endpoint) + tR:=tr+(HH rotated (b-90)); % tR : (right endpoint) + tl:=Tl+VV; a:=180-b; % tl : left upper halfcircle (centre) + Tl:=tl+(HH rotated (a-90)); % Tl : (right endpoint) + tL:=tl+(HH rotated (a+90)); % tL : (left endpoint) + % lower boundary : + s:=2(P-p)/sind(90-b); % caculating |Bl-bl| + Bl:= bl-(0,s); Br:=br-(0,s); + t:=2(P-p)/length(HH); + tl:=Tl-t*(HH rotated (a-90)); % left upper halfcircle: right endpoint + tr:=Tr-t*(HH rotated (b+90)); % right upper halfcircle: left endpoint + Pen; Fill + ( bl--Tl{dir a}..{dir (a-180)}tL % left part: upper boundary + & tL..(tL+(1,0)) % avoiding strange path + {dir (a-6)}..{dir (a-180)}tl--Bl % left part: lower boundary + & Bl--bl..cycle + ); + Fill + ( br--Tr{dir b}..{dir (b-180)}tR % right part: upper boundary + & tR..(tR-(1,0)) % avoiding strange path + {dir (b+6)}..{dir (b-180)}tr--Br % right part: lower boundary + & Br--br..cycle + ); + endchar; + +beginchar(O+12,1U#,72u#,8u#); "Taurus"; + Corners(P,P,P,p); + Centers (1/2,5/9); % BC and CC : lower circle (top and bottom) + HOR (1/8,7/8); % Tl and Tr : upper arcs (tops) + Bot (5/18); % bl and br : lower circle (left and right) + LFT (0,4/5); RT (0,4/5); % tL and tR : upper arcs (left and right) + Pen; Fill + ( Tl{dir 223}..{down}(tL-hd)..(CC-vd) % left upper arc: outside + ..(br-hd)..(BC+vd)..(bl+hd)..(CC-vd) % lower circle: inside + ..{up}(tR+hd)..{dir 137}Tr % right upper arc: outside + & Tr{dir -47}..{down}(tR-hd/2+vd/2)..(CC+vd) % right upper arc: inside + ..(bl-hd)..(BC-vd)..(br+hd)..(CC+vd) % lower circle: outside + ..{up}(tL+hd/2+vd/2)..{dir 47}Tl % left upper arc: inside + & Tl..Tl..cycle + ); + endchar; + +beginchar(O+13,56u#,72u#,8u#); "Gemini"; + Corners (p,p,p,p); + HOR (2/7,5/7); + Top (7/8); Bot (1/8); + Pen; Fill ( BL..(bl-vd)..(br-vd)..BR % bottom arc: lower boundary + & BR..(br+vd)..(bl+vd)..BL % bottom arc: upper boundary + & BL--cycle + ); + Fill ( TL..(tl-vd)..(tr-vd)..TR % top arc: lower boundary + & TR..(tr+vd)..(tl+vd)..TL % top arc: upper boundary + & TL--cycle + ); + RPEN; draw tl--bl; draw tr--br; % left and right vertical bar + endchar; + +beginchar(O+14,80u#,68u#,0u#); "Cancer"; + corners; centers; + Cl:=2/7[CL,CR]; RT (0,4/5); + PEN; draw CL{up}..{down}Cl..{up}CL; % left circle + Pen; Fill ( (CL-hd){up}..{right}(TC+vd)..tR % upper arc: upper boundary + & tR..{left}(TC-vd/2)..{down}(CL+hd) % upper arc: lower boundary + & (CL+hd)--(CL-hd)..cycle + ); + picture upper; upper := currentpicture; % adding rotated copy + addto currentpicture also upper rotated 180 shifted 2CC; + endchar; + +beginchar(O+15,68u#,80u#,10u#); "Leo"; + Corners(P,p,d+P,P); centers; % TC + HOR (1/6,17/20); Top (3/4); % tl and tr : main arc (left and right) + BOT (1/3,2/3); rr:=(Bl-BL)/2; + bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle + Br:=BR+hd-(2d,0)-vP; BR:=BR-vP; % Br and BR : lower right arc + PEN; draw bL{down}..{up}bl % lower left circle: lower arc + ..{up}tl..{right}TC..{down}tr..{down}Br; % main arc + Pen; Fill % lower right arc + ( (Br-hd){down}..{up}BR % outside + & BR{dir265}..{up}(Br+hd) % inside + & (Br+hd)--(Br-hd)..cycle + ); + Fill ( (bL+hd){up}..bl % lower left circle: upper arc, ouside + & bl{up}..{down}(bL-hd) % inside + & (bL-hd)--(bL+hd)..cycle + ); + endchar; + +beginchar(O+16,100u#,68u#,10u#); "Virgo"; + Corners (P,P,d,0); + LFT (0,3/4); % tL : left upper arc (left end) + HOR (1/3,2/3); Top (3/4); % tl and tr : upper arcs (endpoints) + TOP (4/14,4/14+1/3); % Tl and Tr : upper arcs (tops) + RT (1/5,3/4); % tR : right upper arc (right end) + % bR and tR : right vertical bar (ends) + TR:=(4/14+2/3)[TL,TR]; % TR : right upper arc (top) + bC:=.5[Bl,Br]-(0,d/2); % bC : lower right stroke (endpoint) + br:=Br-(0,d); % br : middle right bar (lower end) + Br:=Br+vP; % Br : lower right vertical stroke (left) + BR:=2/3[Br,BR+vP]; % BR : lower right vertical stroke (right) + RPEN; draw TL--BL; draw tl--Bl; draw tr--br; draw tR--bR; % vertical bars + Pen; Fill % left upper arc + ( tL{dir 42}..{right}(Tl-4vp)..{down}(tl+hd) % upper boundary + & (tl+hd)--(tl-hd) + & (tl-hd){up}..(Tl-2vP-2vp)..{dir 215}tL..cycle % lower boundary + ); + Fill % middle upper arc + ( tl{dir 42}..{right}(Tr-4vp)..{down}(tr+hd) % upper boundary + & (tr+hd)--(tr-hd) + & (tr-hd){up}..(Tr-2vP-2vp)..{dir 215}tl..cycle % lower boundary + ); + Fill % right upper arc + ( tr{dir 45}..{right}(TR-1vp)..{down}(tR+hd) % upper boundary + & (tR+hd)--(tR-hd) + & (tR-hd){up}..(TR-2vd-0vp)..{dir 215}tr..cycle % lower boundary + ); + PEN; draw bR{dir250}..{dir190}BR--Br; % lower right stroke: right part + Pen; Fill + ( (Br+vd){left}..{dir 235}bC % lower right stroke: left part + & bC{dir 50}..{right}(Br-vd) + & (Br-vd)--(Br+vd)..cycle + ); + endchar; + +beginchar(O+17,64u#,56u#,-8u#); "Libra"; + corners; + Centers (1/2,7/15); % CL and CR : upper bars (outer ends) + TOP (1/4,3/4); + VV:=(TC-Tl) rotated -90; + tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right) + R:=length(VV); D:=length(TC-CC); % calculating intersection of + t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars + HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:) + Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends) +% Cl:=bl+hP; Cr:=br-hP; % Cl and Cr : upper arc (inner ends) + bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down +% bL:=CL; bl:=Cl; br:=Cr; bR:=CR; % shift upper bars slightly down + SPEN; draw BL--BR; % bottom bar + SPEN; draw bL--bl; draw br--bR; % left and right upper bars + Pen; Fill % left upper bar: left end + ( CL{dir 170}..{dir 105}(CL+vd-hd) % inner boundary + & (CL+vd-hd)--(CL-hd)--CL % left and lower boundary + & CL.. cycle + ); + Pen; Fill % right upper bar: right end + ( CR{dir 10}..{dir 75}(CR+vd+hd) % inner boundary + & (CR+vd+hd)--(CR+hd)--CR % right and lower boundary + & CR.. cycle + ); + PEN; draw Cl..{up}tl..{right}TC..{down}tr..Cr; % upper arc + endchar; + +beginchar(O+18,(14/15)*100u#-(13/15)*P#+p#,68u#,10u#); "Scorpio"; + Corners (P,p,d,0); + LFT (0,3/4); % tL : left upper arc (left end) + HOR (5/14,10/14); Top (3/4); % tl and tr : upper arcs (endpoints) + TOP (4/14,9/14); % Tl and Tr : upper arcs (tops) + RT (1/6,1); % bR : lower right arrow (point) + br:=1/3[Br,BR]-(0,d)+vp; % br : lower right arc (bottom) + BR:=2/3[Br,BR]+vp; % Br and BR : lower right arc (endpoints) + RPEN; draw TL--BL; draw tl--Bl; draw tr--Br; % vertical bars + Pen; Fill % left upper arc + ( tL{dir 42}..{right}(Tl-4vp)..{down}(tl+hd) % upper boundary + & (tl+hd)--(tl-hd) + & (tl-hd){up}..(Tl-2vP-2vp)..{dir 215}tL..cycle % lower boundary + ); + Fill % right upper arc + ( tl{dir 42}..{right}(Tr-4vp)..{down}(tr+hd) % upper boundary + & (tr+hd)--(tr-hd) + & (tr-hd){up}..(Tr-2vP-2vp)..{dir 215}tl..cycle % lower boundary + ); + Fill % lower right arc + ( (Br+hd){down}..{right}(br+vd)..{dir angle((br-BR) rotated 0)}BR + & BR{dir angle((BR-br) rotated 6)}..{left}br..{up}(Br-hd) + & (Br-hd)--(Br+hd)..cycle + ); + arrow (BR+2hp,bR, 1, 1/4,1/2); % lower right arrow + endchar; + +beginchar(O+19,56u#,80u#,8u#); "Sagittarius"; + Corners(P*(h+d)/((h+d)++w),p,P*w/((h+d)++w),p); + bl:=(1/5)[BL,TR]; tr:=(3/4)[BL,TR]; + VV:=TR-BL; a:=angle(VV); + HH:= VV/8 rotated 90; + bL:= bl+HH; Bl:= bl-HH; + RPEN rotated (a+90); draw BL--tr; % shaft + RPEN rotated a; draw bL--Bl; % short bar + Pen; arrow (tr,TR, 6/7, .3,.6); % point + endchar; + +beginchar(O+20,56u#,1U#,0); "Capricornus"; + Corners(p,p,p,p); % TR: top bar (right end) + Centers (2/3,2/3); % BC and CC: loop (bottom and top) + HOR (1/3,1); Bot (1/3); % bl and br: loop (left and right) + TOP(1/4,1); Tl:=Tl-hd; % Tl: top bar (left end) + LFT (.45,1); % bL: end of loop + Pen; Fill + ( Tl--TR % top bar: upper boundary + & TR{dir225}..{down}(bl+hd)..{right}(BC+2vd) % loop from TR to bL + ..{up}(br-2hd)..{left}(CC-.5vd-hd)..bL + & bL..{right}(CC+.5vd)..{down}br..{left}BC % loop back from bL to TR + ..{up}(bl-hd)..{dir45}(TR-2vd-3hd) + & (TR-2vd-3hd)--(Tl-2vd)--Tl % top bar: lower boundary + & Tl..Tl..cycle + ); + endchar; + +beginchar(O+22,56u#,72u#,8u#); "Pisces"; + Corners(p,p,p,p); + HOR (1/4,3/4); Top (1/2); + Pen; Fill ( BL..(tl-hd)..TL % left arc: left boundary + & TL..(tl+hd)..BL % left arc: right boundary + & BL--cycle + ); + Fill ( BR..(tr-hd)..TR % right arc: left boundary + & TR..(tr+hd)..BR % right arc: right boundary + & BR--cycle + ); + PEN; draw tl--tr; % vertical bar + endchar; + +beginchar(O+23,44u#,72u#,12u#); "Saturnus 2"; + corners; Centers (4/9,8/11); + HOR (0,8/9); Top (19/22); + RT (6.3/11,1); % bR + Bl:=2/9[BL,BR]; Bot(.8/12); % bl + bC:=1/5[BC,TC]; % bC + Bl:=Bl+((P-(P*sqrt(2))*sind(45+20),0) rotated -70); % Bl + SPEN; draw tl--tr; draw CC--TC; % upper cross + PEN; draw CC{right}..{down}bR..bC..{dir250}bl..{dir-70}Bl; % lower arc + RPEN rotated 20; draw Bl--(Bl+(hP rotated -70)); % sharpen arc end + endchar; + +beginchar(O+27,76u#,50u#,-22u#); "Aquarius 2"; + Corners (p,p,p,p); + % upper strokes: + Centers (3/5,1/2); % CL and CC : left stroke (left end, right bottom) + TOP (1/4,4/5); % Tl and Tr : left stroke (left top, right end) + Pen; + Fill ( (CL+vp)..{right}Tl..{right}(CC+vd)..(Tr-vP) % left stroke: upper + & (Tr-vP)..{left}(CC+vp)..{left}(Tl-2vd)..(CL+vp) % left stroke: lower + & (CL+vp)..cycle + ); + Fill ( (Tr+hP/2)..{right}(CR+2vd) % right stroke: upper + & (CR+2vd){-hP/2-2vd}..{left}(CR-hP+vp) % right stroke: lower + ..(Tr-2vd-hP/2) % ( from Tr to CR ) + & (Tr-2vd-hP/2)--(Tr+hP/2) % right stroke: left end + & (Tr+hP/2)..cycle + ); + picture upper; upper:= currentpicture; % lower strokes + addto currentpicture also upper shifted (0,-(h+d)/2); + endchar; + +beginchar(O+28,78u#,56u#,-9u#); "Aquarius 3"; + Corners(p,p,(h+d)/2+P,P); + % upper stroke : points on central line: + centers; % CL and CR : ends + HOR (1/5,3/5); Bot(1/2); % bl and br : down crossing + HOR (2/5,4/5); Top(1/2); % tl and tr : up crossing + PEN; + draw bl{down}..tl{up}..br{down}..tr{up}; % middle part + Pen; Fill + ( CL{up}..{down}(bl+hd) % left end : upper boundary + & (bl+hd)--(bl-hd) + & (bl-hd){up}..{dir 225}CL % lower boundary + & CL..cycle + ); + Fill ( CR{up}..{down}(tr-hd) % right end : upper boundary + & (tr-hd)--(tr+hd) + & (tr+hd){up}..{dir -45}CR % lower boundary + & CR..cycle + ); + picture upper; upper:= currentpicture; % lower stroke + addto currentpicture also upper shifted (0,-(h+d)/2); + endchar; + +beginchar(O+29,U#,U#,0u#); "Terra 2"; % for smaller circle : 52u#,U#,0# + corners; centers; + VV:=(BC-BL) rotated 90; + TC:=CC+VV; BC:=CC-VV; + PEN; draw TC..CR..BC..CL..TC..cycle; % circle + draw BC--TC; draw CL--CR; % cross in circle + s:=1+1/2; + CL:=CL+s*hP; CR:=CR-s*hP; + BC:=BC+s*vP; TC:=TC-s*vP; + PEN scaled 1/2; undraw TC..CR..BC..CL..TC..cycle; + endchar; + +beginchar(O+32,88u#,56u#,0); "Libra 3"; % larger variant + corners; + Centers (1/2,7/15); % CL and CR : upper bars (outer ends) + TOP (1/4,3/4); + VV:=(TC-Tl) rotated -90; + tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right) + R:=length(VV); D:=length(TC-CC); % calculating intersection of + t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars + HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:) + Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends) + bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down +%% CL:=CL+8u;CR:=CR+8u; % left and right points + CL:=1/3[bL,TL];CR:=1/3[bR,TR]; % left and right points + SPEN; draw BL--BR; % bottom bar + SPEN; draw bL--bl; draw br--bR; % left and right upper bars + Pen; Fill % left upper bar: left end + ( bl{dir 175}..{dir 100}(CL+vd-hd) % inner boundary + & (CL+vd-hd)--(bL-hd)--bl % left and lower boundary + & bl.. cycle + ); + Pen; Fill % right upper bar: right end + ( br{dir 5}..{dir 80}(CR+vd+hd) % inner boundary + & (CR+vd+hd)--(bR+hd)--br % right and lower boundary + & br.. cycle + ); + PEN; draw Cl..{up}tl..{right}TC..{down}tr..Cr; % upper arc + endchar; + +beginchar(O+42,10/11U#,U#,0u#); "(moon) last quarter - inverse"; + Corners(p,p,p,p); Centers(4/11,1/2); + b:=1; % reduction of stroke breadth +% outer circumference: big circle + VV:=(TL-BL)/2; HH:=VV rotated -90; + BC:=BL+HH; TC:=TL+HH; % CL=BL+VV; + MM:=CL+HH; +% outer circumference: calculating small circle + R:=length(HH); D:=length(BR-BL); + s:=(R+-+(D-R)); t:=s/2R; + CC:=CC+hP; + D:=length(CR-CC); + r := D/2 + s*s/2D; + RT (1/2-t,1/2+t); + mm:=CC+(r,0); +% inner circumference: + D:=length(mm-MM); R:=R-2(b*P-p); r:=r+2b*(P-p); + a:=(R*R-r*r+D*D)/2D; + tr:=MM+(a,R+-+a); + br:=MM+(a,-(R+-+a)); +Fill ( tR..CL..bR + & bR..CC..tR + & tR..cycle + ); +% unfill tr..(CL+2b*hd)..br % for standard variant \char10 +% & br..(CC-2b*hd)..tr +% & tr..cycle; +endchar; + + temp := currentpicture; +beginchar(O+43,10/11U#,U#,0u#); "(moon) first quarter - inverse"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+10,10/11U#,U#,0u#); "Luna = (moon) last quarter"; +currentpicture := temp; +unfill tr..(CL+2b*hd)..br + & br..(CC-2b*hd)..tr + & tr..cycle; + endchar; + + temp := currentpicture; +beginchar(O+41,10/11U#,U#,0u#); "(moon) first quarter"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+52,1.4U#,1.05U#,.35U#); "Pallas"; + Corners (p,p,P,p); Centers (.5,.4); + numeric aa[]; pair Cl,Cr,tC; + RR:= 2(vP-vp); + Cl = aa1[CL,TC] + ( RR rotated -120 ) = aa2[CL,CR] + RR; + Cr = aa3[CR,TC] + ( RR rotated 120 ) = aa4[CL,CR] + RR; + tC = aa5[CR,TC] + ( RR rotated 120 ) = aa6[CL,TC] + ( RR rotated -120 ); + Pen; Fill ( + TC--CL--CR--TC & TC--tC % top triangle : outside + & tC--Cr--Cl--tC & tC--TC & cycle % top triangle : inside + ) ; + SPEN; cross (CC,BC, 1,-P); % bottom cross + endchar; + +a:=(sqrt3)/2; % ratio (equilateral triangle) + % used chars ( 58 60 ) 61 ( 63 ) +beginchar(O+61,(U#+2P#)/a+2P#,U#+2a*P#,2P#); "Trigon"; + Corners (p,p,p,p); centers; + numeric aa[]; pair Bl,Br,tC; + RR:= 2(vP-vp); + Bl = aa1[BL,TC] + ( RR rotated -120 ) = aa2[BL,BR] + RR; + Br = aa3[BR,TC] + ( RR rotated 120 ) = aa4[BL,BR] + RR; + tC = aa5[BR,TC] + ( RR rotated 120 ) = aa6[BL,TC] + ( RR rotated -120 ); + Pen; Fill ( + TC--BL--BR--TC & TC--tC % triangle : outside + & tC--Br--Bl--tC & tC--TC & cycle % triangle : inside + ) ; + endchar; + +beginchar(O+64,68u#,80u#,0); "ascending node of moon"; + Corners(P,P,P,P); centers; % TC + HOR (1/6,5/6); Top (3/4); % tl and tr : main arc (left and right) + BOT (1/3,2/3); rr:=(Bl-BL)/2; + bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle + bR:=BR+(rr rotated 90); br:=bR-2rr; % bR and br : lower right circle + PEN; draw bL{down}..{up}bl % lower left half circle + ..{up}tl..{right}TC..{down}tr % main arc + ..{down}br..{up}bR; % lower right half circle + Pen; + Fill ( (bL+hd){up}..bl-(1,0)--bl % lower left circle: upper arc, outside + & bl{up}..{down}(bL-hd) % inside + & (bL-hd)--(bL+hd)..cycle + ); + Fill ( (bR-hd){up}..br+(1,0)--br % lower right circle: upper arc, outside + & br{up}..{down}(bR+hd) % inside + & (bR+hd)--(bR-hd)..cycle + ); + endchar; + +temp := currentpicture; +beginchar(O+65,68u#,80u#,0); "descending node of moon"; + currentpicture := ( temp yscaled -1 ) shifted ( 0,h ); + endchar; + +endinput; +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.CAL %%% diff --git a/fonts/astro/astrosym.cmn b/fonts/astro/astrosym.cmn new file mode 100644 index 0000000000..c2f060a78d --- /dev/null +++ b/fonts/astro/astrosym.cmn @@ -0,0 +1,441 @@ +% ASTROSYM.CMN : AstroSym (Version 2.20, Aug. 10, 2002) - file 4 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(O+2,52u#,80u#,0u#); "Venus"; + corners; centers; + VV:=(TC-TL) rotated -90; + CL:=TL+VV; CR:=TR+VV; bC:=TC+2VV; + PEN; draw TC..CR..bC..CL..TC..cycle; % top circle + SPEN; cross (bC,BC, 4/3,-2P); % bottom cross + endchar; + +beginchar(O+3,52u#,80u#,0u#); "Terra"; + corners; centers; + VV:=(BC-BL) rotated 90; + CL:=BL+VV; CR:=BR+VV; tC:=BC+2VV; + PEN; draw tC..CR..BC..CL..tC..cycle; % bottom circle + SPEN; cross (tC,TC, 1,2P); % top cross + endchar; + +beginchar(O+4,52u#,88u#,0u#); "Mars"; + corners; centers; + VV:=(BC-BL) rotated 90; + CL:=BL+VV; CR:=BR+VV; tC:=BC+2VV; + CC:=BC+VV; + Cr:=(tC+2vP) rotatedaround (CC,-15); % temporary + TR:=TR+vd+hd; % top arrow: top + tr:=.45[Cr,TR]; % top arrow: base + Cr:=Cr-(2hP rotated angle(TR-Cr)); % top arrow: stem base + a:=angle(TR-tr); b:=cosd(a)/sind(a); % arrow: calculate breadth + PEN; draw tC..CR..BC..CL..tC..cycle; % bottom circle + PEN; draw Cr--tr; % top arrow: stem + Pen; arrow (tr,TR, 2b, .1,.5); % top arrow + endchar; + +beginchar(O+7,52u#,74u#,10u#); "Uranus"; + corners; centers; + VV:=(BC-BL) rotated 90; + bL:=BL+VV; bR:=BR+VV; CC:=BC+2VV; + bC:=BC+VV; + TC:=TC+vd; tC:=.4[CC,TC]; + PEN; draw CC..bR..BC..bL..CC..cycle; % bottom circle + fill fullcircle scaled 2P shifted bC; % bottom circle: dot + draw CC--tC; % top arrow: stem + Pen; arrow (tC,TC, 1.2, .1,.5); % top arrow + endchar; + +beginchar(O+8,88u#,80u#,0u#); "Neptunus"; + Corners(p,p,P,p); Centers(.5,.2); + HOR (9/88,79/88); + Top(.725); Bot(.2); + b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points + SPEN; draw bl--br; % horizontal bar + draw bC--BC; % vertical stem + draw bl--tl; draw bC--tC; draw br--tr; % three arrows: arms + Pen; arrow (tl,Tl, 2b, .2,.5); % three arrows: points + arrow (tC,TC, 2b, .2,.5); + arrow (tr,Tr, 2b, .2,.5); + endchar; + +beginchar(O+9,52u#,80u#,0u#); "Pluto"; + corners; centers; + VV:=(TC-TL) rotated -90; + bC:=TC+2VV; bL:=TL+2VV; + BOT (0,2/3); % Br : bottom bar (right end) + PEN; draw TL--TC{right}..{left}bC--bL; % top right arc + SPEN; draw BL--TL; draw BL--Br; % left bar and bottom bar + endchar; + +beginchar(O+21,76u#,58u#,-6u#); "Aquarius"; + Corners(P,P,(h+d)/2+P,P); + % upper strokes: + centers; % CL and CR : left and right end + BOT (3/12,11/12); BC:=.5[Bl,Br]; % Bl,BC,Br : upper endpoints + TOP (1/12,9/12); TC:=.5[Tl,Tr]; % Tl,TC,Tr : lower endpoints +% PEN yscaled (p/P) rotated (90-angle(Tl-CL)); + PEN yscaled (p/P) rotated angle(Tl-CL); + draw CL--Tl--Bl--TC--BC--Tr--Br--CR; + picture upper; upper:= currentpicture; % lower strokes + addto currentpicture also upper shifted (0,-(h+d)/2); + endchar; + +beginchar(O+24,88u#,80u#,0u#); "Neptunus 2"; + Corners(p,p,P,p); Centers(.5,.2); + HOR (9/88,79/88); + Top(.725); Bot(.2); + b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points + SPEN; draw bC--tC; % middle arm + cross (BC,bC, 1, -P); % lower cross + PEN; draw tl{down}..{up}tr; % arc from left to right arm + Pen; arrow (tl,Tl, 2b, .2,.5); % three arrows: points + arrow (tC,TC, 2b, .2,.5); + arrow (tr,Tr, 2b, .2,.5); + endchar; + +beginchar(O+25,68u#,80u#,0u#); "Pluto 2"; + Corners(p,p,P,p); Centers(.5,.2); + HOR (2/17,15/17); + Top(.725); Bot(.2) + b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points + SPEN; draw bl--br; % horizontal bar + draw bC--BC; % vertical stem + draw bl--tl; draw br--tr; % two arrows: arms + Pen; arrow (tl,Tl, 2b, .2,.5); % two arrows; points + arrow (tr,Tr, 2b, .2,.5); + endchar; + +beginchar(O+26,1U#,1U#,0); "Libra 2"; + corners; Centers (1/2,2/3-1/12); + LFT (1/3,1); RT (1/3,1); + PEN; draw CC{right}..TC..{right}CC; % top circle + SPEN; draw bL--bR; draw CL--CR; % lower and upper bar + endchar; + +beginchar(O+30,74u#,88u#,0u#); "Mars 2"; + corners; Centers (1/2,11/40); + VV:=(CL-BL); HH := VV rotated -90; + BC:=BL+HH; CR:=CL+2HH; tC:=BC+2VV; + CC:=BC+VV; + TR:=TR+vd+hd; % top arrow: top + Cr:=(tC+2vP) rotatedaround (CC,angle(TR-CC)-90); % temporary + tr:=.45[Cr,TR]; % top arrow: base + Cr:=Cr-(2hP rotated angle(TR-Cr)); % top arrow: stem base + a:=angle((TR-tr) rotated .5(90-angle(TR-(CR+hd)))); + b:=cosd(a)/sind(a); % arrow: calculate breadth + PEN; draw tC..CR..BC..CL..cycle; % bottom circle + PEN; draw Cr--tr; % top arrow: stem + Pen; arrow (tr,TR, 2b, .1,.5); % top arrow + endchar; + +beginchar(O+31,52u#,80u#,0u#); "Pluto 3"; % variation of Pluto (1) + corners; centers; + VV:=(TC-TL) rotated -90; + bC:=TC+2VV; bL:=TL+2VV; + HOR (2/5,1); % Bl : bottom bar (left end) + Cl := Tl+VV; % Cl : vertical bar (top end) + PEN; draw TL--TC{right}..{left}bC--bL; % letter P : top right arc + SPEN; draw BL--TL; % letter P : left bar + SPEN; draw Bl--Cl; draw Bl--BR; % letter L : left bar and bottom bar + endchar; + +beginchar(O+33,U#,U#,0u#); "Star"; + corners; centers; + RR:=length(BC-CC)*(1,sind15/cosd15); + for i:= 0 upto 5 : SPEN rotated (60i+45); + draw CC--(CC+(RR rotated 60i)); endfor; + endchar; + +beginchar(O+34,88u#,88u#,0u#); "Comet"; + corners; + BOT (11/40,2/3); + HH:=(Bl-BL); VV:=HH rotated 90; + CC:=Bl+VV; + TOP (1/3,2/3); RT (1/3,2/3); + PEN; Circle ( CC, HH,VV ); % bottom circle + a := angle (Tr-CC); + RPEN rotated (a+90); draw ( CC + ( HH rotated a ) ) -- Tr; + a := angle (TR-CC); + SPEN rotated (a+90); + draw ( CC + ( HH rotated a ) ) -- ( TR - ( HH rotated a )/4 ); + a := angle (tR-CC); + RPEN rotated (a+90); draw ( CC + ( HH rotated a ) ) -- tR; + endchar; + +beginchar(O+35,74u#,88u#,0u#); "Meteor"; + corners; Centers (4/5,2/3); + BL:=BL-vd-hd; % bot arrow: top +CC:=CR; % better? + bl:=1/5[BL,CC]; % bot arrow: base + a:=angle((BL-bl) rotated .5(90-angle(BL-(CL-hd)))); + b:=cosd(a)/sind(a); % arrow: calculate breadth + SPEN; drawdot TR; PEN; draw TR--CC--bl; % bot arrow: stem + Pen; arrow (bl,BL, 2b, .1,.5); % bot arrow + endchar; + +beginchar(O+36,74u#,88u#,0u#); "Conjunction"; + corners; Centers (1/2,11/40); + VV:=(CL-BL); HH := VV rotated -90; + BC:=BL+HH; CR:=CL+2HH; tC:=BC+2VV; + CC:=BC+VV; + Cr:=(tC+vP/2) rotatedaround (CC,angle(TR-CC)-90); % temporary + PEN; draw tC..CR..BC..CL..cycle; % bottom circle + RPEN rotated (90+angle(TR-Cr)); draw Cr--TR; % top arrow: stem + endchar; + +beginchar(O+37,72u#,72u#,0u#); "Opposition"; + corners; + HH:=(BR-BL)/6; VV:=HH rotated 90; + HH:=(BR-BL)/5; VV:=HH rotated 90; + TT:=HH rotated 45; + bC:=BL+HH+VV; tC:=TR-HH-VV; + PEN; Circle (bC,HH,VV); + Circle (tC,HH,VV); + draw (bC+TT)--(tC-TT); + endchar; + +beginchar(O+38,U#,U#,0u#); "Quadrature"; + corners; + SPEN; draw TL--TR--BR--BL--TL ; % square + endchar; + +beginchar(O+39,U#,U#,0u#); "full moon"; + corners; centers; + VV:=(BC-BL) rotated 90; + TC:=CC+VV; BC:=CC-VV; D:=U/9; + hh:=(U/6,0); vv:=(0,U/6); + PEN; draw TC..CR..BC..CL..TC..cycle; % circle + endchar; + +beginchar(O+40,U#,U#,0u#); "new moon"; + fill TC..CR..BC..CL..TC..cycle; % circle + endchar; + +beginchar(O+44,2/3U#,U#,0u#); "Luna 2 = (moon 2) last quarter"; + corners; Centers(3/4,1/2); + VV:=(TL-BL)/2; HH:=VV rotated -90; + BC:=BL+HH; TC:=TL+HH; % CL=BL+VV; + R:=length(HH); D:=length(BR-BL); + t:=(R+-+(D-R))/2R; + RT (1/2-t,1/2+t); + PEN; draw tR..TC..CL..BC..bR; % outer circle + Pen; draw tR..CC..bR; % inner arc + endchar; + + temp := currentpicture; +beginchar(O+45,2/3U#,U#,0u#); "(moon 2) first quarter"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+46,2/3U#,U#,0u#); "(moon 2) last quarter - inverse"; + Pen; filldraw tR..TC..CL..BC..bR % big circle + & bR..CC..tR -- cycle; % small circle + endchar; + + temp := currentpicture; +beginchar(O+47,2/3U#,U#,0u#); "(moon 2) first quarter - inverse"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+48,U#,78u#,16u#); "Ceres"; + corners; Centers (2/5,1/4); + Tl := (TL+TC)/2 - vP; % arc : upper end + tR := (CR+TR)/2; % arc : midpoint (right) + Cl := (CL+CC)/2 + vP; % arc : lower end + Bl := (BL+BC)/2; % cross : base + bL := .4[BL,CL]; bC := .4[BC,CC]; % for bar of cross + PEN; draw Tl..TC..tR..CC..Cl; % (inverted) C shape + REND ( Tl, 2 angle ( TC-Tl ) + 180 ); + SPEN; draw Cl--Bl; % cross : vertical stem + draw bL--bC; % cross : horizontal bar + endchar; + +beginchar(O+49,U#,68u#,20u#); "Ceres 2"; + corners; centers; + HOR (3/8,3/4); % Tl Br + LFT (1/4,3/4); RT (1/4,3/4); % tL ; bR + Bot (1/4); Top (3/4); % bC ; tr + Cl := .5[Bl,Tl]; % C shape : bottom point + PEN; draw Tl{left}..tL..Cl..tr; % C shaped arc + REND ( Tl,0 ); + SPEN; draw tr--Br; % cross : vertical stem + draw bC--bR; % cross : horizontal bar + endchar; + +beginchar(O+50,40u#,80u#,16u#); "Juno"; + corners; centers; + RR:=(TC-TL); VV:=RR rotated -90; + CC:=TC+VV; % center top star + bL := BL-VV; bR := BR-VV; % for lower bar + % or : LFT (1/6,1); RT (1/6,1) % or 1/5 + for i:= 0 upto 6 : SPEN rotated (45i+45); % top star + draw CC--(CC+(RR rotated (45i-45))); endfor; + SPEN; draw CC--BC; % stem + draw bL--bR; % lower horizontal bar + endchar; + +beginchar(O+51,56u#,80u#,24u#); "Juno 2"; + corners; centers; + HOR (1/5,4/5); Bot (1/5) % or : 1/3 3/4 ; 1/4 + LFT (1/4,7/8); RT (1/4,7/8); + SPEN rotated angle(tR-CL) ; draw tR--CL; % upper cross ( X ) + SPEN rotated angle(tL-CR) ; draw tL--CR; % upper cross ( X ) + SPEN; draw TC--BC; % stem + draw bl--br; % bottom horizontal bar + endchar; + +beginchar(O+53,52u#,80u#,0u#); "Vesta"; + corners; centers; + VV:=(BR-BL) rotated 90; + CL:=BL+VV; CR:=BR+VV; CC:=BC+VV; % vertices of square + TOP (.2,.8); % endpoints of upper V + SPEN; draw CL--CR--BR--BL--CL; % bottom square + PEN; draw Tl--CC--Tr; % upper V + endchar; + +beginchar(O+54,U#,U#,0#); "Vesta 2"; + Corners (P,P,P,p); centers; + HOR (1/5,4/5); Top (5/8); Cl := tl; Cr := tr; + HOR (3/8,5/8); Bot (1/2); Top (7/8); + TOP (1/5,4/5); + RPEN rotated 20; % left horn + draw (bl+(vP-vp)/2+hP){left}..Cl..tl..{dir 200}Tl; + RPEN rotated -20; % right horn + draw (br+(vP-vp)/2-hP){right}..Cr..tr..{dir -20}Tr; + SPEN; draw CL--CR; % middle bar + draw bl--Bl; % left foot + draw br--Br; % right foot + endchar; + +beginchar(O+55,52u#,96u#,0u#); "Chiron"; + corners; centers; + RR:=(BC-BL) rotated 90; + bL:=BL+RR; bR:=BR+RR; bC:=BC+2RR; + CC := bC+vP; + TOP (1/6,5/6); rr := (Tr-TC) rotated 90; + tC := TC-rr; tr := Tr-2rr; + PEN; draw bC..bR..BC..bL..bC..cycle; % bottom circle + SPEN; draw CC--TC; % top stem + PEN; draw Tr--tC--tr; % top arms + endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% reset O if 200 + char number > 255 ( uniform (thin) ) +if O = 200 : O := 122 fi ; + +beginchar(O+56,U#,80u#,16u#); "Pluto 4 (tree)"; + corners; Centers (1/2,1/3); + HOR (1/4,3/4); Bot (1/6); + bC := CC-vP; + PEN; draw TL{right}..{down}CC; draw TR{left}..{down}CC; % top arcs + REND (TL,180); REND (TR,0); % + SPEN; draw bC--BC; draw bl--br; % bottom cross + endchar; + +beginchar(O+57,2U#,U#+P#,0); "Pluto 5 (cup)"; +% beginchar(O+57,2U#,U#,0); "Pluto 5 (cup)"; + corners; centers; + aa := (2-sqrt3)/4; + Cl := aa[CL,CR]; Cr := aa[CR,CL]; +% TC := TC-vP; % potential correction : lowered contents + PEN; draw TL{down}..Cl..BC..Cr..{up}TR; % half circle : "cup" + draw Cl..TC..Cr; % "contents" + REND (TL,90); REND (TR,90); + endchar; + +a:=(sqrt3)/2; % ratio (equilateral triangle) + % used chars 58 60 ( 61 ) 63 +beginchar(O+58,U#/a+2*(P#-(1-a)*Pp),U#+2*P#-Pp,P#-Pp); "Semi-sextile"; + Corners (P-(1-a)*Pp,P-(1-a)*Pp,P,P-Pp/2); centers; + RLine ( BL,BR ); % base + RLine ( TL,BC ); % left stroke (down) + RLine ( TR,BC ); % right stroke (up) + endchar; + +beginchar(O+59,U#,U#,0u#); "Semi-quadrature"; + corners; + SPEN; draw TL--BL--BR; % L shape ( of square ) + endchar; + +beginchar(O+60,a*U#+2*P#-Pp,U#+P#-Pp,P#-Pp); "Sextile"; + Corners (P-Pp/2,P-Pp/2,P-Pp,P-Pp); centers; + LFT (1/4,3/4); RT (1/4,3/4); + RPEN; draw TC--BC; % stem + RLine (bL,tR); % stem turned 60 + RLine (tL,bR); % stem turned -60 + endchar; + +beginchar(O+62,U#,U#,U#/2); "one and a half quadrature"; + corners; Centers (1/2,1/3); + tC := (TC+CC)/2; + SPEN; draw TL--CL--CR--TR--TL; % square + draw tC--BC--BR; % L shaped cedilla + endchar; + +beginchar(O+63,U#/a+2*(P#-(1-a)*Pp),U#+2*P#-Pp,P#-Pp); "Quincunx"; + Corners (P-(1-a)*Pp,P-(1-a)*Pp,P-Pp/2,P); centers; + RLine ( TL,TR ); % top + RLine ( BL,TC ); % left stroke (up) + RLine ( BR,TC ); % right stroke (down) + endchar; % horizontal mirror image of semi-sextile + +beginchar(O+66,52u#,96u#,0u#); "Chiron 2"; + corners; centers; + BC := BC-hP/3 ; % bottom circle slightly off centre + rr := (BC-BL) ; RR := rr rotated 90 ; % radii of circle + bL := BL+RR; bR := bL+2rr; bC := BC+2RR; % points on circle + TC := TL+rr; % top of stem + CC := bC+vP; % base of stem + tR := (CR+TR)/2; rr := (TR-tR) rotated -90 ; + tC := tR-rr ; % base of arms (right angle) + % calligraphic style : fit arms into corner + a := (sqrt2-1); mm := Pp*(a,a) ; nn := Pp*(a,-a) ; + PEN; draw bC..bR..BC..bL..bC..cycle; % bottom circle + SPEN; draw CC--TC; % top stem + RLine ( TR+mm,tC ); RLine ( tC,CR+nn ); % top arms + endchar; + +beginchar(O+67,U#,56u#,8u#); "Lilith"; + Corners (P,P,p,p); centers; + LFT (1/8,2/3) ; RT (1/8,2/3) ; % bL bR : for bottom stroke + HOR (1/4,3/4); Bot (1/8); % bC : for bottom stroke + br := Br; % br : lowest point on bottom stroke (saved!) + HOR (2/5,7/8); Top (2/3); % tl tr : for top stroke + TOP (0,8/12); % Tr : highest point on top stroke + pickup pencircle xscaled 2P yscaled 2p ; % special pen + draw bL{dir 70}..bC..br{dir 0}..bR ; % bottom stroke + draw bL{dir 0}..tl..Tr{dir 0}..tr..{dir 180}(CC+hP) ; % top stroke + endchar; + +beginchar(O+68,U#,U#,22u#); "Pluto 6"; + corners; centers; + LFT (1/4,4/5); RT (1/4,4/5); % tL tR : for cup + HOR (1/6 , 5/6 ); Bot (1/4) ; % bl br : ) + HOR (5/16,11/16); Top (4/5) ; % tl tr : circle (left,right) + rr := tr-tC ; TC := tC+(rr rotated 90) ; % TC : circle (top) [ centre tC ] + tC := tC+(rr rotated -90) ; % tC : circle (bot) + SPEN; draw TL; draw TR; % endpoints of cup + PEN; draw TL--tL{dir -90}..CC..{dir 90}tR--TR; % cup + draw tC..tr..TC..tl..tC..cycle ; % circle + SPEN; draw bl--br; % cross: horizontal bar + draw (CC-vP)--BC; % cross: vertical bar + endchar; + + +beginchar(O+69,U#,U#,0u#); "Sextile 2"; + corners; centers; + RR:=(CR-CC) rotated 45; + tr:=CC+RR; tl:=CC+(RR rotated 90); + bl:=CC-RR; br:=CC+(RR rotated -90); + SPEN; draw CL--CR; draw TC--BC; % horizontal cross + DPEN; draw bl--tr; draw tl--br; % diagonal cross + endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% reset O back to 200 if 122 ( uniform (thin) ) +if O = 122 : O := 200 fi ; + +endinput; +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.CMN %%% diff --git a/fonts/astro/astrosym.mac b/fonts/astro/astrosym.mac new file mode 100644 index 0000000000..e1013d30b2 --- /dev/null +++ b/fonts/astro/astrosym.mac @@ -0,0 +1,153 @@ +% ASTROSYM.MAC : AstroSym (Version 2.20, Aug. 10, 2002) - file 3 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%% variables + +numeric r,R,D, a,b, s,t; %H,V, + +pair + TL,Tl,TC,Tr,TR, + tL,tl,tC,tr,tR, + CL,Cl,CC,Cr,CR, + bL,bl,bC,br,bR, + BL,Bl,BC,Br,BR; + +pair BB,MM,TT, mm, LL,RR, ll,rr, HH,VV, vv,nn, hh,vv,nn; + +pair vP,hP, vp,hp, vd,hd; + +%% values for corrections needed in calligraphic style % mar99 +%% ( zero for uniform stroke ) + +def pP = if p=P : 0 else: p# fi enddef; % p or 0 % not (yet?) used +def Pp = if p=P : 0 else: P# fi enddef; % P or 0 + +picture temp; + +%%%%%%%% macros + +def PEN = pickup pencircle scaled 2P enddef; +def SPEN = pickup pensquare scaled 2P enddef; +def DPEN = pickup (pensquare rotated 45) scaled 2P enddef; % added aug02 +def RPEN = pickup penrazor scaled 2P enddef; +def Pen = pickup pencircle scaled 2p; enddef; + +%% line with RPEN ( maximal breadth ) % added mar99 +def RLine ( expr PP, QQ ) = + aa := angle ( PP - QQ ) ; + RPEN rotated (aa+90) ; + draw PP--QQ; + % ( QQ + ( hP rotated aa ) ); % potential extension + enddef; + +%% replacement for RLine for uniform strokes +%% only needed for efficiency +def Line ( expr PP, QQ ) = + PEN; draw PP--QQ; + enddef; +% let RLine=Line; + +%%% auxilary macro : changing end of stroke from PEN to SPEN % 14feb99 + +def REND ( expr endpoint, direction ) = + RPEN rotated (direction+90) ; +% draw endpoint--( endpoint + ( Pp*(1,0) rotated direction ) ); + draw endpoint--( endpoint + ( ( if p=P : (0,0) else : hP fi ) + rotated direction ) ); + enddef; +%%% + +def corrections = + vP:=(0,P); hP:=(P,0); + vp:=(0,p); hp:=(p,0); + vd:=vP-vp; hd:=hP-hp; + enddef; + +def Corners (expr lft_corr, rt_corr, bot_corr, top_corr) = + BL := (0+lft_corr,-d+bot_corr); BR := (w-rt_corr,-d+bot_corr); + TL := (0+lft_corr, h-top_corr); TR := (w-rt_corr, h-top_corr); + enddef; +def corners = Corners (P,P,P,P); enddef; + +def Centers (expr x_ratio,y_ratio) = + BC:=bot x_ratio[BL,BR]; TC:=top x_ratio[TL,TR]; + CL:=lft y_ratio[BL,TL]; CR:= rt y_ratio[BR,TR]; + CC:=y_ratio[BC,TC]; + enddef; +def Centers (expr x_ratio,y_ratio) = + BC:=x_ratio[BL,BR]; TC:=x_ratio[TL,TR]; + CL:=y_ratio[BL,TL]; CR:=y_ratio[BR,TR]; + CC:=y_ratio[BC,TC]; + enddef; +def centers = Centers (1/2,1/2); enddef; + +def TOP (expr lft_ratio,rt_ratio) = + Tl:=lft_ratio[TL,TR]; Tr:=rt_ratio[TL,TR]; + enddef; +def BOT (expr lft_ratio,rt_ratio) = + Bl:=lft_ratio[BL,BR]; Br:=rt_ratio[BL,BR]; + enddef; +def HOR (expr lft_ratio,rt_ratio) = + BOT(lft_ratio,rt_ratio); TOP(lft_ratio,rt_ratio); + enddef; + +def Bot (expr ratio) = + bl:=ratio[Bl,Tl]; bC:=ratio[BC,TC]; br:=ratio[Br,Tr]; + enddef; +def Top (expr ratio) = + tl:=ratio[Bl,Tl]; tC:=ratio[BC,TC]; tr:=ratio[Br,Tr]; + enddef; + +def LFT (expr bot_ratio,top_ratio) = + bL:=bot_ratio[BL,TL]; tL:=top_ratio[BL,TL]; + enddef; +def RT (expr bot_ratio,top_ratio) = + bR:=bot_ratio[BR,TR]; tR:=top_ratio[BR,TR]; + enddef; + +def Fill (expr boundary) = + fill boundary; draw boundary; + enddef; + +def ARROW (expr base,top, breadth, lcorr,bcorr) = + vv := top-base; + nn := breadth*(vv rotated 90)/2; + BB := base; TT := top; + LL := base+nn-lcorr*vv; RR := base-nn-lcorr*vv; + ll := .5[base,top]+(1-bcorr)*nn/2; + rr := .5[base,top]-(1-bcorr)*nn/2; + enddef; + +def arrow (expr base,top, breadth, lcorr,bcorr) = + ARROW (base,top, breadth, lcorr,bcorr); + Fill ( LL{dir angle(ll-LL)}..{dir angle(TT-ll)}TT + & TT{dir angle(rr-TT)}..{dir angle(RR-rr)}RR + & RR{dir angle(BB+lcorr*vv-RR)}..BB..{dir angle(LL-BB-lcorr*vv)}LL + ..cycle ); + enddef; + +def Arrow (expr base,top, breadth, lcorr,bcorr) = + ARROW (base,top, breadth, lcorr,bcorr); + draw LL{dir angle(ll-LL)}..{dir angle(TT-ll)}TT + & TT{dir angle(rr-TT)}..{dir angle(RR-rr)}RR; + draw BB--TT; + enddef; + +def cross (expr base,top, breadth, base_corr) = + vv := (top-base-(0,base_corr)); + nn := breadth*(vv rotated 90)/2; + BB := base; TT := top; + MM := .5[base+(0,base_corr),top]; + LL := MM-nn; RR := MM+nn; + draw LL--RR; draw BB--TT; + enddef; + +def Circle (expr cc, hh, vv) = + draw (cc-vv)..(cc-hh)..(cc+vv)..(cc+hh)..(cc-vv)..cycle; + enddef; + +endinput; +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.MAC %%% diff --git a/fonts/astro/astrosym.mf b/fonts/astro/astrosym.mf new file mode 100644 index 0000000000..1997538900 --- /dev/null +++ b/fonts/astro/astrosym.mf @@ -0,0 +1,99 @@ +% ASTROSYM.MF : AstroSym (Version 2.20, Aug. 10, 2002) - file 2 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +mode_setup; +font_size = .4cm#; % scaling factor U = diameter of sun symbol +font_identifier = "AstroSym"; +font_coding_scheme = "special purpose: astronomical symbols"; +% tracingtitles:=1; + +%%%%%%%%%%% +% font size ( U = diameter of sun symbol ) +%%%%%%%%%%% + +U# := .4cm#; +u# := (1/64)*U#; + +define_pixels(U,u); + +input astrosym.mac; % macro file + +%%%%%%%%%%%%%%%%%%%%%%%%% +% version 1: calligraphic +%%%%%%%%%%%%%%%%%%%%%%%%% + +O := 0; % offset value for character position + + P# := 4u#; % width of thick strokes + p# := .5u#; % width of thin strokes + +define_pixels(P,p); +corrections; + +input astrosym.cmn; % symbols with common code definition +input astrosym.cal; % symbols with special code + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +% version 2: uniform: thick +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +O:=100; % offset value for character position + +P# := 4u#; % widths of thick and thin strokes set equal +p# := 4u#; + +define_pixels (P,p); +corrections; +let arrow = Arrow; % different arrow shape +let Pen = PEN; % all pens are equal +let SPEN = PEN; +let DPEN = PEN; % added aug02 +let RPEN = PEN; +% let RLine = Line; % more efficient + +input astrosym.cmn; % symbols with common code definition +input astrosym.uni; % symbols with special code + +%%%%%%%%%%%%%%%%%%%%%%%%%% +% version 2: uniform: thin +%%%%%%%%%%%%%%%%%%%%%%%%%% + +O:=200; % offset value value for character position + % reset ( in .uni ) to 122 + % for character numbers > 55 + +P# := 2u#; % widths of thick and thin strokes set equal +p# := 2u#; +define_pixels (P,p); +corrections; + % repeated for the sake of completeness +let arrow = Arrow; % different arrow shape +let Pen = PEN; % all pens are equal +let SPEN = PEN; +let DPEN = PEN; % added aug02 +let RPEN = PEN; + +input astrosym.cmn; % symbols with common code definition +input astrosym.uni; % symbols with special code + +%%%%%%%%%%%%%%%%% +% extra symbols % +%%%%%%%%%%%%%%%%% + +O := 90; % offset value for character position + +P# := 2u#; % width of thick strokes +p# := 1u#; % width of thin strokes + +define_pixels(P,p); +corrections; + +input astrosym.xtr; % symbols with only one version + +%%%%%%%% +bye + +%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.MF %%% diff --git a/fonts/astro/astrosym.tex b/fonts/astro/astrosym.tex new file mode 100644 index 0000000000..a3c5d5b1ac --- /dev/null +++ b/fonts/astro/astrosym.tex @@ -0,0 +1,167 @@ +% ASTROSYM.TEX : AstroSym (Version 2.20, Aug. 10, 2002) - file 8 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% style definitions and auxilary macros + +\newcount\n \newcount\last +\def\nextchar{\ifnum \n<\last + \char\n + \hskip1mm plus.1mm minus.1mm + \advance\n by 1 + \let\next=\nextchar + \else \let\next=\relax + \fi \next} +\def\showsinglesymbol#1[#2]{\leavevmode\vphantom{{\astro\char1 }} + \n=#2 \Char\n + \hskip3mm\relax#1\par} +\def\showsymbol#1[#2]{\leavevmode\vphantom{{\astro\char1 }} + \n=#2 \Char\n + \advance\n by 100 \Char\n + \advance\n by 100 \ifnum \n > 255 \advance\n -78 \fi \Char\n + \hskip3mm\relax#1\par} +\def\Char#1{\hbox to 10mm{\hfil[\the\n]\hskip2mm}% + \hbox to12mm{\astro\char\n\hfil}\hskip1mm} +\def\list{\begingroup\obeylines\everypar{\showsymbol}} +\def\singlelist{\begingroup\obeylines\everypar{\showsinglesymbol}} +\def\endlist{\endgroup} +\def\show#1:#2 - #3 & #4 - #5 {% + #1:\par + {\astro \n=#2 \last=#3 \advance\last by 1 \nextchar + \astro \n=#4 \last=#5 \advance\last by 1 \nextchar} + \par} +\font\astro=astrosym +\overfullrule0pt\nopagenumbers +\hsize16truecm +\parindent0pt +\parskip 10pt plus10pt + +%%%%%%%%%%%%%%%%%%%%%% + +\headline{% +Astronomical Symbols -- Version 2.20 (August 2002) +\hfill\the\year--\the\month--\the\day\ --- Page \the\pageno} + +%%% print all characters of AstroSym font + +\show `Calligraphic Version' : 0 - 55 & 56 - 69 +\show `Uniform Version (Bold)' : 100 - 155 & 156 - 169 +\show `Uniform Version (Thin)' : 200 - 255 & 178 - 191 +\show extra symbols (single version) : 90 - 92 & 93 - 95 + +%%% show all symbols and their variants + +List of symbols: + +The planetary system: + +\list +Sol [0] +Mercurius [1] +Venus [2] +Terra [3] +Terra 2 [29] +Mars [4] +Mars 2 [30] +Iuppiter [5] +Saturnus [6] +Saturnus 2 [23] +Uranus [7] +Neptunus [8] +Neptunus 2 [24] +Pluto [9] +Pluto 3 [31] +Pluto 2 [25] +Pluto 4 (tree) [56] +Pluto 5 (cup) [57] +Pluto 6 [68] +Luna [10] +Luna 2 [44] +\endlist + +Planetoids (and related): + +\list +Ceres [48] +Ceres 2 [49] +Juno [50] +Juno 2 [51] +Pallas [52] +Vesta [53] +Vesta 2 [54] +Chiron [55] +Chiron 2 [66] +Lilith [67] +\endlist + +The phases of the moon: + +\list +full moon [39] +(moon) first quarter [41] +(moon) first quarter -- inverse [43] +(moon 2) first quarter [45] +(moon 2) first quarter -- inverse [47] +Luna = (moon) last quarter [10] +(moon) last quarter -- inverse [42] +Luna 2 = (moon 2) last quarter [44] +(moon 2) last quarter -- inverse [46] +new moon [40] +\endlist + +additional versions: + +\singlelist +(moon face) full moon [90] +(moon face) first quarter [93] +(moon face) first quarter - inverse [95] +(moon face) last quarter [92] +(moon face) last quarter - inverse [94] +(moon face) new moon [91] +\endlist + +The signs of the zodiac: + +\list +Aries [11] +Taurus [12] +Gemini [13] +Cancer [14] +Leo [15] +Virgo [16] +Libra [17] +Libra 2 [26] +Libra 3 [32] +Scorpio [18] +Sagittarius [19] +Capricornus [20] +Aquarius [21] +Aquarius 2 [27] +Aquarius 3 [28] +Pisces [22] +\endlist + +Various astronomical signs: + +\list +Star [33] +Comet [34] +Meteor [35] +Conjunction [36] +Semi-sextile [58] +Semi-quadrature [59] +Sextile [60] +Sextile 2 [69] +Quadrature [38] +Trigon [61] +one and a half quadrature [62] +Quincunx [63] +Opposition [37] +ascending node of moon [64] +descending node of moon [65] +\endlist + +\end +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.TEX %%% diff --git a/fonts/astro/astrosym.txt b/fonts/astro/astrosym.txt new file mode 100644 index 0000000000..6f4bd3bb7a --- /dev/null +++ b/fonts/astro/astrosym.txt @@ -0,0 +1,159 @@ +% ASTROSYM.TXT : AstroSym (Version 2.20, Aug. 10, 2002) - file 1 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +*************************************** +*** AstroSym : astronomical symbols *** +*************************************** +* ( Version 2.2 --- August 10, 2002 ) * +*************************************** + +ASTROSYM is a font containing astronomical symbols, including those +used for the planets, four planetoids, the phases of the moon, +the signs of the zodiac, and some additional symbols. +The shapes of the symbols are taken from various sources. +For some symbols more than one shape was found - for these +symbols variants are included. +Some shapes were reviewed by some historians and astronomers, and the +`main shape' reflects their preference. + +The main style used for the symbols in AstroSym is calligraphic (strokes +of varying breadth). An additional version uses a uniform stroke. +It is supplied in two variants (thin and thick strokes). +The size of the symbols, and the breadth of the stroke, can easily +be changed in the driver file. +A particular set of symbols for the phases of the moon (with a `face') +is provided in one version only. +The MetaFont code of AstroSym uses the plain base, but is completely +independent of the cm-fonts. + +The AstroSym-font contains the following characters: + calligraphic style: + \char0 - \char10 : main shape - the planetary system + \char11 - \char22 : main shape - the signs of the zodiac + \char23 - \char32 and + \char56 & \char57 and + \char68 : variant shapes + \char33 - \char38 and + \char58 - \char65 : additional astronomical and astrological symbols + \char69 : a variant shape + \char48 - \char55 and + \char66 & \char67 : the four main planetoids, Chiron and Lilith + (and variants) + \char10 and \char39 - \char47 : phases of the moon, and variants + extra symbols: + \char90 - \char95 : phases of the moon, with `face' + uniform stroke, bold : \char100 - \char169 + uniform stroke, thin : \char200 - \char255 , \char178 - \char191 + +This is a preliminary version. + The shape of some symbols may need improvement. + In particular, symmetric symbols are not (yet) all guarded + against rounding effects. + +Remark: The original arrangement of symbols is retained for full compatibility. + However, since the symbols should be used via macros, + this seems not to be important and + a more logical ordering may be used in a later version. + +*** version 2.20 +*** new : characters 55-69,155-169 and 178-191,255 + including: Lilith, Chiron (2 versions), + three signs for Pluto (Pluto 4,5,6), and + (there seems to be no agreement on this sign!) + nine additional astronomical/astrological symbols +Thus, version 2.20 contains 70 characters each in three styles, + plus 6 characters + (compared to 55 characters in three styles in 2.00, + and 29 characters in three styles in 1.00). +*** version 2.00 (preliminary) *** +*** new : characters 29-54,129-154,229-254 and 91-95 + including: symbols for phases of the moon + six additional astronomical characters + Terra 2, Mars 2, Pluto 3 + Libra 3 (enlarged symbol) + symbols for four planetoids + ( Ceres, Juno, Pallas, Vesta + and Ceres 2, Juno 2, Vesta 2 ) + +The package contains the following seven files: + ASTROSYM.TXT this file + ASTROSYM.MF the driver file + ASTROSYM.MAC the macro file + ASTROSYM.CMN character definitions - common to both styles + ASTROSYM.CAL character definitions - calligraphic style only + ASTROSYM.UNI character definitions - uniform stroke only + ASTROSYM.XTR character definitions - extra symbols (one version only) + ASTROSYM.TEX sample file with symbol list (for plain TeX) + +Sorry, so far no .fd file for LaTeX2e is provided ( I do not use LaTeX :-) + +Comments and suggestions are welcome. +Since I am curious if the font is useful (and how it looks in practice) +I would appreciate a short message (with reference) - or even some sample +page(s) - if it is used in a publication. + +%%%%%%%%%%%%% +%% License %% + +Since CTAN requires a license a statement: + This is free software, LPPL (LaTeX Project Public License). + + +%%%%%%%%%%%%% +%% History %% + +version 1.00 May 1, 1992 : \char 0-28,100-128,200-228 +version 1.90 March 17, 1997 (preliminary, never published) + added : \char 29-47,90-95,129-147,229-247 + corrected bugs : + (1) font_size : cm# sharp dimension needed (pointed out by ** ) + `cm' can cause checksum error + (2) [10] Luna (calligraphic) : improved calculation + to avoid potential arithmetic overflow + (reported by Jochen Cammin) + (3) [111] [211] Aries : + wrong point (Br instead of br) in computation of b + has caused a distorted shape +version 2.00 February 14, 1999 + added \char 48-54,148-154,248-254 + corrected bugs : + (1) [11] slight change to avoid `strange path' + with certain resolutions (hopefully) + (2) renamed ASTROSYM.COM to ASTROSYM.CMN + ( extension .com has irritated some software, + e.g., during downloading ) +version 2.00 June 25, 2002 + After adding various symbols (on special request) in 1997 and 1999 + I always intended to make the new versions available on CTAN + (after some cleaning up, or so). + But, alas, this never happened :-( + Therefore, it probably is best to publish them as they are, + saving improvments for some update in the future. + (3) renamed ASTROSYM.DOC to ASTROSYM.TXT + ( to avoid confusion with Word documents :-) +version 2.10 March 3, 1999 (never published) + added \char 55-65,155-165,255,178-187 + (I did not think of this extension when publishing version 2.00.) +version 2.20 August 10, 2002 + added \char 66-69,166-169,188-191 + (1) \char38,138,238 (Quadrature) : bug fix (missing semi-colon) + (2) \char156,157,178,179 (Pluto 4,5) : fitting signs to their box + ( modified macro REND + - this affects \char148,149,248,249 (Ceres,Ceres2) ) + (3) the following characters produce errors for some low resolutions: + \char16 (Virgo) : looks usable + \char18 (Scorpio) : looks usable + \char94 (moon face: last quarter - inverse) : missing +========================================================== + Peter Schmitt Strudlhofgasse 4 + Institut f\"ur Mathematik A-1090 Wien + Universit\"at Wien Austria +---------------------------------------------------------- + Peter.Schmitt@univie.ac.at +========================================================== + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.TXT %%% diff --git a/fonts/astro/astrosym.uni b/fonts/astro/astrosym.uni new file mode 100644 index 0000000000..da09507a8e --- /dev/null +++ b/fonts/astro/astrosym.uni @@ -0,0 +1,302 @@ +% ASTROSYM.UNI : AstroSym (Version 2.20, Aug. 10, 2002) - file 6 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(O+0,U#,U#,0u#); "Sol"; + D:=U/16; % diameter of central circle + corners; centers; + PEN; draw BC..CL..TC..CR..BC..cycle; % main circle + Pen; draw fullcircle scaled D shifted CC; % central circle + endchar; + +beginchar(O+1,46u#,80u#,16u#); "Mercurius"; + corners; centers; + VV := (CC-CL) rotated 90; + bC:=CC-VV; + tC:=CC+2VV+vP/3; + D:=length(CR-CL); % circles: diameter + s:=length(TC-tC); a:= angle(s,(D/2)+-+s); % upper partial sector: angle + SPEN; cross (bC,BC, 3/2,-2P); % bottom cross + PEN; + draw fullcircle scaled D shifted CC; % central circle + draw halfcircle scaled D rotated (90+a) shifted tC; % upper partial circle + draw halfcircle scaled D rotated -(90+a) shifted tC; + endchar; + +beginchar(O+5,44u#,70u#,0u#); "Iuppiter"; + corners; Centers (3/4,1/5); Top (4/5); + PEN; draw tC--BC; % right vertical bar + draw CL--CR; % horizontal bar + draw CL{tC-CL}..{TL-CC}TL; % left vertical arc + endchar; + +beginchar(O+6,44u#,72u#,12u#); "Saturnus"; + Corners (P,P,d+P,P);; + Centers (1/6,5/9); % BC and TC : left vertical bar + RT (1/2,1); % bR : right arc (right) + HOR (0,1/3); Top (6/7); % tl and tr : upper horizontal bar + BOT (2/3,7/9); Bl:=Bl-vd; % Bl + Br:=Br-(0,d); % Br + SPEN; draw tl--tr; draw BC--TC; % left cross + PEN; draw CC{dir 20}..{down}bR..{dir250}Bl..{dir-70}Br; % right arc + endchar; + +beginchar(O+11,1U#,72u#,0u#); "Aries"; + corners; + BOT (1/2,1/2); % Bl = Br : lower middle point + TOP (1/6,5/6); % (temporary) Tl and Tr : upper arcs (tops) + HH:= Tl-TL; VV:= HH rotated -90; + tr:=Tr+VV; % tr : right upper halfcircle (centre) + D:=length(tr-br); R:=length(HH); s:=D+-+R; % calculating direction of bar + b:=angle(s,R); b:=b+angle(tr-Br); + Tr:=tr+(HH rotated (b+90)); % Tr : (left endpoint) + tR:=tr+(HH rotated (b-90)); % tR : (right endpoint) + tl:=Tl+VV; a:=180-b; % tl : left upper halfcircle (centre) + Tl:=tl+(HH rotated (a-90)); % Tl : (right endpoint) + tL:=tl+(HH rotated (a+90)); % tL : (left endpoint) + PEN; draw Bl--Tl{dir a}..{dir (a-180)}tL; % left part + draw Br--Tr{dir b}..{dir (b-180)}tR; % right part + endchar; + +beginchar(O+12,1U#,72u#,8u#); "Taurus"; + corners; Centers(1/2,5/9); % BC and CC : lower circle (top and bottom) + HOR (1/8,7/8); % Tl and Tr : upper arcs (tops) + Bot (5/18); % bl and br : lower circle (left and right) + LFT (0,4/5); RT (0,4/5); % tL and tR : upper arcs (left and right) + PEN; draw Tl{dir 235}..{down}tL..CC..br..BC..bl..CC..{up}tR..{dir 145}Tr; + endchar; + +beginchar(O+13,56u#,72u#,8u#); "Gemini"; + corners; + HOR (2/7,5/7); + Top (7/8); Bot (1/8); + PEN; draw BL..bl..br..BR; draw TL..tl..tr..TR; % bottom and upper arc + draw tl--bl; draw tr--br; % left and right vertical bar + endchar; +beginchar(O+14,84u#,68u#,0u#); "Cancer"; + corners; centers; + Cl:=2/7[CL,CR]; RT (0,4/5); + PEN; draw CL{up}..{down}Cl..{up}CL % left circle + ..{right}(TC-2hP/3)..(tR-4hP/3+vP/2); % upper arc + picture upper; upper := currentpicture; % adding rotated copy + addto currentpicture also upper rotated 180 shifted 2CC; + endchar; + +beginchar(O+15,68u#,80u#,10u#); "Leo"; + Corners(P,P,d+P,P); centers; % TC + HOR (1/6,17/20); Top (3/4); % tl and tr : main arc (left and right) + BOT (1/3,2/3); rr:=(Bl-BL)/2; + bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle + Br:=BR-(2d,0); % Br and BR : lower right arc + PEN; draw bl{up}..{down}bL..{up}bl % lower left circle + ..{up}tl..{right}TC..{down}tr % main arc + ..{down}Br..{up}BR; % lower right arc + endchar; +beginchar(O+16,100u#,68u#,10u#); "Virgo"; + Corners (P,P,d+P,P); + LFT (0,3/4); % tL : left upper arc (left end) + HOR (1/3,2/3); Top (3/4); % tl and tr : upper arcs (endpoints) + TOP (4/14,4/14+1/3); + Tl:=Tl-(0,4u); Tr:=Tr-(0,4u); % Tl and Tr : upper arcs (tops) + RT (1/5,3/4); % tR : right upper arc (right end) + % bR and tR : right vertical bar (ends) + TR:=(4/14+2/3)[TL,TR]; % TR : right upper arc (top) + bC:=.5[Bl,Br]-(0,d/2); % bC : lower right stroke (endpoint) + br:=Br-(0,d); % br : middle right bar (lower end) + Br:=Br+vP; % Br : lower right vertical stroke (left) + BR:=2/3[Br,BR]; % BR : lower right vertical stroke (right) + PEN; draw TL--BL; draw tl--Bl; draw tr--br; draw tR--bR; % vertical bars + draw tL{dir 40}..{right}Tl..{down}tl; % left upper arc + draw tl{dir 40}..{right}Tr..{down}tr; % middle upper arc + draw tr{dir 40}..{right}TR..{down}tR; % right upper arc + draw bR{dir250}..{dir190}BR--Br; % lower right stroke: right part + draw Br{left}..{dir 235}bC; % lower right stroke: left part + endchar; + +beginchar(O+17,64u#,56u#,-8u#); "Libra"; + corners; + Centers (1/2,7/15); % CL and CR : upper bars (outer ends) + TOP (1/4,3/4); + VV:=(TC-Tl) rotated -90; + tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right) + R:=length(VV); D:=length(TC-CC); % calculating intersection of + t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars + HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:) + Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends) +% Cl:=bl+hP; Cr:=br-hP; % Cl and Cr : upper arc (inner ends) + bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down + PEN; draw BL--BR; % bottom bar + draw (CL+vP)--bL--bl--Cl % left and right upper bar + & Cl..{up}tl..{right}TC..{down}tr..Cr % upper arc + & Cr--br--bR--(CR+vP); + endchar; + +beginchar(O+18,(14/15)*100u#-(13/15)*P#+p#,68u#,10u#); "Scorpio"; + Corners (P,P,d+P,P); + LFT (0,3/4); % tL : left upper arc (left end) + HOR (5/14,10/14); Top (3/4); % tl and tr : upper arcs (endpoints) + TOP (4/14,9/14); + Tl:=Tl-(0,4u); Tr:=Tr-(0,4u); % Tl and Tr : upper arcs (tops) + RT (1/6,1); % bR : lower right arrow (point) + br:=1/5[Br,BR]-(0,d); % br : lower right arc (bottom) + BR:=2/3[Br,BR]; % Br and BR : lower right arc (endpoints) + PEN; draw TL--BL; draw tl--Bl; draw tr--Br; % vertical bars + draw tL{dir 40}..{right}Tl..{down}tl; + draw tl{dir 40}..{right}Tr..{down}tr; + draw BR{dir angle(BR-bR)}..{left}br..{up}(Br); + Pen; arrow (BR,bR, 1, 1/4,1/2); + endchar; + +beginchar(O+19,56u#,80u#,8u#); "Sagittarius"; + corners; + bl:=(1/5)[BL,TR]; tr:=(4/5)[BL,TR]; + VV:=TR-BL; a:=angle(VV); + HH:= VV/10 rotated 90; + bL := bl+HH; Bl := bl-HH; + PEN; draw BL--tr; draw bL--Bl; % shaft and short bar + Pen; arrow (tr,TR, 5/6, .3,.5); % point + endchar; + +beginchar(O+20,56u#,1U#,0); "Capricornus"; + corners; % TR: top bar (right end) + Centers (2/3,2/3); % BC and CC: loop (bottom and top) + HOR (1/3,1); Bot (1/3); % bl and br: loop (left and right) + TOP(1/4,1); % Tl: top bar (left end) + LFT (.45,1); % bL: end of loop + PEN; draw Tl--TR{dir225} % top bar + ..{down}bl..{right}BC..{up}br..{left}CC..bL; % lower loop + endchar; + +beginchar(O+22,56u#,72u#,8u#); "Pisces"; + corners; + HOR (1/5,4/5); Top (1/2); + PEN; draw BL..tl..TL; draw BR..tr..TR; % left and right arc + draw tl--tr; % vertical bar + endchar; + +beginchar(O+23,44u#,72u#,12u#); "Saturnus 2"; + corners; Centers (4/9,8/11); + HOR (0,8/9); Top (19/22); + RT (6.3/11,1); % bR + Bl:=2/9[BL,BR]; Bot(.8/12); % Bl, bl + bC:=1/5[BC,TC]; % bC + SPEN; draw tl--tr; draw CC--TC; % upper cross + PEN; draw CC{right}..{down}bR..bC..{dir250}bl..{dir-70}Bl; % lower arc + endchar; + +beginchar(O+27,76u#,50u#,-22u#); "Aquarius 2"; + corners; + % upper strokes: + Centers (3/5,1/2); % CL and CC : left stroke (left end, right bottom) + TOP (1/4,5/6); % Tl and Tr : left stroke (left top, right end) + % Tr and CR : right stoke (left and right end) + PEN; draw (CL+vP)..{right}Tl..{right}(CC+vP)..{dir20}(Tr-vP/2); %left stroke + draw Tr..{right}(CR+vP); % right stroke + picture upper; upper:= currentpicture; + addto currentpicture also upper shifted (0,-(h+d)/2); + endchar; + +beginchar(O+28,78u#,56u#,-9u#); "Aquarius 3"; + Corners(P,P,(h+d)/2+P,P); + % upper stroke : points on central line: + centers; % CL and CR : ends + HOR (1/5,3/5); Bot(1/2); % bl and br : down crossing + HOR (2/5,4/5); Top(1/2); % tl and tr : up crossing + PEN; + draw CL{up}..bl{down}..tl{up}..br{down}..tr{up}..CR{down}; + picture upper; upper:= currentpicture; % lower stroke + addto currentpicture also upper shifted (0,-(h+d)/2); + endchar; + +beginchar(O+29,U#,U#,0u#); "Terra 2"; + corners; centers; + VV:=(BC-BL) rotated 90; + TC:=CC+VV; BC:=CC-VV; + PEN; draw TC..CR..BC..CL..TC..cycle; % circle + draw BC--TC; draw CL--CR; % cross in circle + endchar; + +beginchar(O+32,88u#,56u#,0); "Libra 3"; % larger variant + corners; + Centers (1/2,7/15); % CL and CR : upper bars (outer ends) + TOP (1/4,3/4); + VV:=(TC-Tl) rotated -90; + tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right) + R:=length(VV); D:=length(TC-CC); % calculating intersection of + t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars + HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:) + Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends) + bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down +% CL:=CL+8u;CR:=CR+8u; % left and right points + CL:=1/3[bL,TL];CR:=1/3[bR,TR]; % left and right points + PEN; draw BL--BR; % bottom bar + draw (CL+vP)--bL--bl--Cl % left and right upper bar + & Cl..{up}tl..{right}TC..{down}tr..Cr % upper arc + & Cr--br--bR--(CR+vP); + endchar; + +%% moon : phases + +beginchar(O+10,10/11U#,U#,0u#); "Luna = (moon) last quarter"; + corners; Centers(4/11,1/2); + VV:=(TL-BL)/2; HH:=VV rotated -90; + BC:=BL+HH; TC:=TL+HH; % CL=BL+VV; + R:=length(HH); D:=length(BR-BL); + t:=(R+-+(D-R))/2R; + RT (1/2-t,1/2+t); + PEN; draw tR..TC..CL..BC..bR; % big circle + draw tR..CC..bR; % small circle + endchar; + + temp := currentpicture; +beginchar(O+41,10/11U#,U#,0u#); "(moon) first quarter"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+42,10/11U#,U#,0u#); "(moon) last quarter - inverse"; + PEN; filldraw tR..TC..CL..BC..bR % big circle + & bR..CC..tR -- cycle; % small circle + endchar; + + temp := currentpicture; +beginchar(O+43,10/11U#,U#,0u#); "(moon) first quarter - inverse"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+52,1.4U#,1.05U#,.35U#); "Pallas"; + corners; Centers (.5,.4); + PEN; draw TC--CL--CR--TC; % top triangle + SPEN; cross (CC,BC, 1,-2P); % bottom cross + endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% reset O if 200 + char number > 255 ( uniform (thin) ) +if O = 200 : O := 122 fi ; + +a:=(sqrt3)/2; % ratio (equilateral triangle) + % used chars ( 58 60 ) 61 ( 63 ) +beginchar(O+61,U#/a+2P#,U#+P#,.P#); "Trigon"; + corners; centers; + PEN; draw TC--BL--BR--TC; % triangle + endchar; + +beginchar(O+64,68u#,80u#,0); "ascending node of moon"; + Corners(P,P,P,P); centers; % TC + HOR (1/6,5/6); Top (3/4); % tl and tr : main arc (left and right) + BOT (1/3,2/3); rr:=(Bl-BL)/2; + bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle + bR:=BR+(rr rotated 90); br:=bR-2rr; % bR and br : lower right circle + PEN; draw bl{up}..{down}bL..{up}bl % lower left circle + ..{up}tl..{right}TC..{down}tr % main arc + ..{down}br..{up}bR..br{down}; % lower right circle + endchar; + +temp := currentpicture; +beginchar(O+65,68u#,80u#,0); "descending node of moon"; + currentpicture := ( temp yscaled -1 ) shifted ( 0,h ); + endchar; + +endinput; +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.UNI %%% diff --git a/fonts/astro/astrosym.xtr b/fonts/astro/astrosym.xtr new file mode 100644 index 0000000000..1d9489d92d --- /dev/null +++ b/fonts/astro/astrosym.xtr @@ -0,0 +1,115 @@ +% ASTROSYM.XTR : AstroSym (Version 2.20, Aug. 10, 2002) - file 7 of 8 +% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at +% Institute of Mathematics, University of Vienna Vienna, Austria +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(O+0,U#,U#,0u#); "(moon face) full moon"; + corners; centers; + VV:=(BC-BL) rotated 90; + TC:=CC+VV; BC:=CC-VV; D:=U/9; + hh:=(U/6,0); vv:=(0,U/6); + PEN; draw TC..CR..BC..CL..TC..cycle; % circle + Pen; draw CC--(CC-vv); % nose + filldraw fullcircle scaled D shifted (CC-hh+vv/2); % left eye + filldraw fullcircle scaled D shifted (CC+hh+vv/2); % right eye + draw (CC-vv-hh)..(CC-1.8vv)..(CC-vv+hh); % mouth + draw (CC-vv+hh)..(CC-1.5vv)..(CC-vv-hh); + endchar; + +beginchar(O+1,U#,U#,0u#); "(moon face) new moon"; + PEN; fill TC..CR..BC..CL..TC..cycle; % circle + Pen; undraw CC--(CC-vv); % nose + unfilldraw fullcircle scaled D shifted (CC-hh+vv/2); % left eye + unfilldraw fullcircle scaled D shifted (CC+hh+vv/2); % right eye + undraw (CC-vv-hh)..(CC-1.8vv)..(CC-vv+hh); % mouth + undraw (CC-vv+hh)..(CC-1.5vv)..(CC-vv-hh); + endchar; + + path moon; +beginchar(O+2,2/3U#,U#,0u#); "(moon face) last quarter"; + corners; Centers(3/4,1/2); + VV:=(TL-BL)/2; HH:=VV rotated -90; + BC:=BL+HH; TC:=TL+HH; % CL=BL+VV; + R:=length(HH); D:=length(BR-BL); + t:=(R+-+(D-R))/2R; + RT (1/2-t,1/2+t); + rr:=(2u,2u); ll:=(-5u,-3u); mm:=(0,-5u); + moon := bR..BC..CL..TC..tR % outer circle + & tR..{dir -45}(CC+rr) % forehead + & {dir 180}(CC+rr)..(CC+ll)..(CC+2ll){dir 180} % nose + & (CC+2ll){dir -10}..(CC+mm) + & (CC+mm){dir -135}..bR % mouth + & bR--cycle; % chin + D:=U/9; filldraw fullcircle scaled D shifted (CC-hh+vv/2); % eye + Pen; draw moon; + endchar; + + temp := currentpicture; +beginchar(O+3,2/3U#,U#,0u#); "(moon face) first quarter"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+4,2/3U#,U#,0u#); "(moon face) last quarter - inverse"; + fill moon; + D:=U/9; unfilldraw fullcircle scaled D shifted (CC-hh+vv/2); % eye + endchar; + + temp := currentpicture; +beginchar(O+5,2/3U#,U#,0u#); "(moon face) first quarter - inverse"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +endinput; + +beginchar(O+6,U#,U#,0u#); "full moon"; + corners; centers; + VV:=(BC-BL) rotated 90; + TC:=CC+VV; BC:=CC-VV; D:=U/9; + hh:=(U/6,0); vv:=(0,U/6); + PEN; draw TC..CR..BC..CL..TC..cycle; % circle + endchar; + +beginchar(O+7,U#,U#,0u#); "new moon"; + fill TC..CR..BC..CL..TC..cycle; % disk + shade (CL,CR, BC,TC); + Pen; draw TC..CR..BC..CL..TC..cycle; % circle + endchar; + + temp:=currentpicture; +beginchar(O+8,2/3U#,U#,0u#); "Luna 2 = (moon 2) last quarter"; + corners; Centers(3/4,1/2); + VV:=(TL-BL)/2; HH:=VV rotated -90; + BC:=BL+HH; TC:=TL+HH; % CL=BL+VV; + R:=length(HH); D:=length(BR-BL); + t:=(R+-+(D-R))/2R; + RT (1/2-t,1/2+t); + currentpicture := temp; + Pen; unfilldraw tR..TC..CL..BC..bR % outer circle + & bR..CC..tR % inner arc + & tR--cycle; + cullit; + Pen; draw tR..TC..CL..BC..bR; % outer circle + draw tR..CC..bR; % inner arc + endchar; + + temp := currentpicture; +beginchar(O+9,2/3U#,U#,0u#); "(moon 2) first quarter"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +beginchar(O+9,2/3U#,U#,0u#); "(moon 2) last quarter - inverse"; + PEN; filldraw tR..TC..CL..BC..bR % big circle + & bR..CC..tR -- cycle; % small circle + cullit; addto currentpicture also -temp; cullit; + Pen; draw tR..TC..CL..BC..bR % big circle + & bR..CC..tR -- cycle; % small circle + endchar; + + temp := currentpicture; +beginchar(O+10,2/3U#,U#,0u#); "(moon 2) first quarter - inverse"; + currentpicture := temp xscaled -1 shifted (w,0); + endchar; + +endinput; +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of ASTROSYM.XTR %%% |