summaryrefslogtreecommitdiff
path: root/fonts/astro
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/astro
Initial commit
Diffstat (limited to 'fonts/astro')
-rw-r--r--fonts/astro/astrosym.cal491
-rw-r--r--fonts/astro/astrosym.cmn441
-rw-r--r--fonts/astro/astrosym.mac153
-rw-r--r--fonts/astro/astrosym.mf99
-rw-r--r--fonts/astro/astrosym.tex167
-rw-r--r--fonts/astro/astrosym.txt159
-rw-r--r--fonts/astro/astrosym.uni302
-rw-r--r--fonts/astro/astrosym.xtr115
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 %%%