%% %% This is file `uniext.mf', %% generated with the docstrip utility. %% %% The original source files were: %% %% uni.dtx (with options: `ext') %% %% Copyright (C) 1998 Christian Holm. %% %% The universal font and package is distributed in the hope that %% it will be useful, but WITHOUT ANY WARRANTY; without even the %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR %% PURPOSE. See the GNU General Public License for more details. %% %% See the file uni.dtx for further comments and documentation. %% currenttransform := identity ; beginchar(hex"00",l_h#,l_h#,0) ; "The filled square symbol" ; z1 = (0,0) ; z2 = (w,0) ; z3 = (w,h) ; z4 = (0,h) ; fill z1--z2--z3--z4--cycle ; penlabels(1,2,3,4) ; endchar ; beginchar(hex"01",l_h#,l_h#,0) ; "The filled circle symbol" ; z1 = (w,h/2) ; z2 = (w/2,h) ; z3 = (0,h/2) ; z4 = (w/2,0) ; fill z1..z2..z3..z4..cycle ; penlabels(1,2,3,4) ; endchar ; beginchar(hex"02",l_h#,l_h#,0) ; "The filled triangle symbol" ; z1 = (0,0) ; z2 = (w,0) ; z3 = (w/2,h) ; fill z1--z2--z3--cycle ; penlabels(1,2,3) ; endchar ; beginchar(hex"03",2l_h#,2l_h#,0) ; "The bauhaus-head symbol" ; unicir(w/2,2c_d/9,(w/2,w/2),40) ; a1 := .702h ; a2 := .561h ; a3 := .491h ; a4 := .351h ; a5 := .272h ; a6 := .140h ; b1 := .202w ; b2 := .307w ; b3 := .412w ; b4 := .447w ; b5 := .465w ; b6 := .518w ; b7 := .588w ; b8 := .623w ; temp := c_d/6 ; pickup pensquare scaled temp ; top lft z1 = (b1,a1) ; top rt z2 = (b2,a1) ; draw z1--z2 ; bot rt z3 = (b4,a3) ; top rt z4 = (b4,a2) ; draw z3--z4 ; z5 = (b2,a1) ; z6 = (b4,a1) ; z7 = (b4,a2) ; z8 = (b2,a2) ; fill z5--z6--z7--z8--cycle ; lft bot z9 = (b4,a4) ; lft bot z10 = (b7,a4) ; draw z9--z10 ; lft bot z11 = (b2,a6) ; rt bot z12 = (b6,a6) ; draw z11--z12 ; temp := 3c_d/5 ; pickup pensquare scaled temp ; lft top z13 = (b5,a5) ; rt top z14 = (b6,a5) ; draw z13--z14 ; z15 = (b6,a4) ; z16 = (b7,a4) ; z17 = (b7,a6) ; z18 = (b6,a6) ; fill z15--z16--z17--z18--cycle ; path noselft, nosert, necklft, neckrt ; path headcircle , parttop, partbot; z19 = (b7,a4) ; z20 = (b7,h) ; noselft = z19--z20 ; z21 = (b8,h) ; z22 = (b8,a4) ; nosert = z21--z22 ; z23 = (b3,a6) ; z24 = (b3,0) ; necklft = z23--z24 ; z25 = (b6,0) ; z26 = (b6,a6) ; neckrt = z25--z26 ; z27 = (w/2,h) ; z28 = (w,h/2) ; z29 = (w/2,0) ; z30 = (0,h/2) ; headcircle := z27..z28..z29..z30..cycle ; z31 = noselft intersectiontimes headcircle ; z32 = nosert intersectiontimes headcircle ; parttop = subpath(y31,y32) of headcircle ; z33 = neckrt intersectiontimes headcircle ; z34 = necklft intersectiontimes headcircle ; partbot = subpath(y34,y33) of headcircle ; fill z19--parttop--z22--cycle ; fill z23--partbot--z26--cycle ; penlabels(range 1 thru 34) ; endchar ; beginchar(hex"04",2l_h#,2l_h#,0) ; "The bauhaus-forms symbol" ; phi := 36.673 ; thn_pen := 2c_d/9 ; med_pen := 3c_d/9 ; thk_pen := 4c_d/9 ; unicir(w/2,thn_pen,(w/2,w/2),20) ; z1 = (thn_pen+med_pen,h/2) ; z2 = (.6433w-med_pen,.9790h-med_pen) ; z3 = (.6433w-med_pen,.0210h+med_pen) ; uniend(med_pen,z1,phi+90,270-phi,30) ; uniend(med_pen,z2,0,phi+90,40) ; uniend(med_pen,z3,270-phi,360,50) ; z4 = z1 + med_pen*(-sind(phi),cosd(phi)) ; z5 = z2 + med_pen*(-sind(phi),cosd(phi)) ; path sl_line ; sl_line = z1--z4--z5--z2--cycle ; fill sl_line ; fill sl_line reflectedabout((0,h/2),(w,h/2)) ; pickup pensquare scaled med_pen ; lft bot z6 = z2 ; lft top z7 = z3 ; draw z6--z7 ; z8 = (.3687w+thk_pen,.2254h+thk_pen) ; z9 = (.9179w-thk_pen,.2254h+thk_pen) ; z10 = (.9179w-thk_pen,.7746h-thk_pen) ; z11 = (.3687w+thk_pen,.7746h-thk_pen) ; uniend(thk_pen,z8,180,270,60) ; uniend(thk_pen,z9,270,360,70) ; uniend(thk_pen,z10,0,90,80) ; uniend(thk_pen,z11,90,180,90) ; pickup pensquare scaled thk_pen ; lft top z12 = z8 ; rt top z13 = z9 ; draw z12--z13 ; lft bot z14 = z9 ; lft top z15 = z10 ; draw z14--z15 ; bot rt z16 = z10 ; bot lft z17 = z11 ; draw z16--z17 ; top rt z18 = z11 ; bot rt z19 = z8 ; draw z18--z19 ; penlabels(range 1 thru 19) ; endchar ; currenttransform := identity slanted slantratio ; if not caps : for temp = 1,2 : if temp = 2 : code_offset := 3 ; fi ; beginchar(hex"05",x_w#,l_h#,0) ; "The letter eth" ; unicir(w/2,p_t,(w/2,w/2),10) ; uniarc(w/2,p_t,(w/2,h-w/2),0,120,20) ; pickup unipensqu ; top rt z1 = (w,h-w/2) ; bot rt z2 = (w,w/2) ; draw z1--z2 ; z3 = (w/2,h-w/2+p_t/sqrt(2)) ; z4 = (w/2+p_t/sqrt(2),h-w/2) ; z5 = (w,h-p_t/sqrt(2)) ; z6 = (w-p_t/sqrt(2),h) ; fill z3--z4--z5--z6--cycle ; penlabels(range 1 thru 6) ; endchar ; beginchar(hex"06",x_w#,x_h#,p_d#) ; "The letter eng" ; uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ; pickup unipensqu ; top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0) ; draw z1--z2 ; top rt z3 = (w,h-w/2) ; bot rt z4 = (w,-d) ; draw z3--z4 ; penlabels(1,2,3,4) ; endchar ; beginchar(hex"07",x_w#,l_h#,p_d#) ; "The letter thorn" ; rad := (h+d)/4 ; uniarc(rad,p_t,(w-rad,rad),-90,90,10) ; pickup unipensqu ; top lft z1 = (0,h) ; bot lft z2 = (0,-d) ; draw z1--z2 ; top lft z3 = (p_t,2rad) ; top rt z4 = (w-rad,2rad) ; bot lft z5 = (p_t,0) ; bot rt z6 = (w-rad,0) ; draw z3--z4 ; draw z5--z6 ; penlabels(range 1 thru 6) ; endchar ; exitif (not strict) ; if temp = 2 : code_offset := 0 ; fi ; endfor ; fi ; if not strict : for temp = 1,2 : if temp = 2 : do_caps(-3) ; fi ; beginchar(hex"08",A_w#,l_h#,0) ; "The variant letter Q"; unicir(w/2,P_t,(w/2,h-w/2),10) pickup Unipensqu ; rt top z1 = (w,h-w/2) ; rt bot z2 = (w,0) ; draw z1--z2 ; penlabels(1,2); endchar ; beginchar(hex"09",A_w#,l_h#,0) ; "The letter Eng" ; rad := 3C_d ; uniarc(w/2,P_t,(w/2,h-w/2),0,180,10) ; uniarc(rad,P_t,(w-rad,rad),-90,0,20) ; pickup Unipensqu ; top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0); draw z1--z2 ; top rt z3 = (w,h-w/2) ; bot rt z4 = (w,rad) ; draw z3--z4 ; penlabels(1,2,3,4) ; endchar ; beginchar(hex"0A",A_w#,l_h#,0) ; "The letter Thorn" ; rad := h/4 ; uniarc(rad,P_t,(w-rad,h/2),-90,90,10) ; pickup Unipensqu ; top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ; top lft z3 = (P_t,h/2+rad) ; top rt z4 = (w-rad,h/2+rad) ; bot lft z5 = (P_t,h/2-rad) ; bot rt z6 = (w-rad,h/2-rad) ; draw z3--z4 ; draw z5--z6 ; penlabels(range 1 thru 6) ; endchar ; exitif (not caps) ; if temp = 2 : end_do_caps ; fi ; endfor ; fi ; beginchar(hex"0B",x_w#,x_h#,2c_d#) ; "The accent ogoneck" ; uniarc(d/2,2P_T/3,(w/2-d/4,-d/2),-90,90,10) ; endchar ; beginchar(hex"0C",3c_d#,l_h#,p_d#) ; "The left brace ({)" ; uniarc(2c_d,p_t,(3c_d,h-2c_d),90,180,10) ; uniarc(2c_d,p_t,(3c_d,-d+2c_d),180,270,20) ; pickup unipensqu ; top lft z1 = (c_d,h-2c_d) ; bot lft z2 = (c_d,-d+2c_d) ; draw z1--z2 ; lft z3 = (0,(h-d)/2) ; rt z4 = (c_d,(h-d)/2) ; draw z3--z4 ; penlabels(1,2,3,4) ; endchar ; beginchar(hex"0D",3c_d#,l_h#,p_d#) ; "The right brace (})" ; uniarc(2c_d,p_t,(0,h-2c_d),0,90,10) ; uniarc(2c_d,p_t,(0,-d+2c_d),270,360,20) ; pickup unipensqu ; top rt z1 = (w-c_d,h-2c_d) ; bot rt z2 = (w-c_d,-d+2c_d) ; draw z1--z2 ; rt z3 = (w,(h-d)/2) ; lft z4 = (w-c_d,(h-d)/2) ; draw z3--z4 ; penlabels(1,2,3,4) ; endchar ; beginchar(hex"0E",(l_h#+p_d#+2p_t#)/3,l_h#,p_d#) ; "The Paragraph sign" ; uniarc(w/2,p_t,(w/2,h-w/2),30,270,10) ; uniarc(w/2,p_t,(w/2,w/2-d),-150,90,20) ; unicir(w/2,p_t,(w/2,(h-d)/2),30) ; endchar ; beginchar(hex"0F",p_t#,l_h#,p_d#) ; "The symbol bar (|)" ; pickup unipensqu ; lft top z1 = (0,h) ; lft bot z2 = (0,-d) ; draw z1--z2 ; penlabels(1,2); endchar ; beginchar(hex"22",2x_w#/3,x_h#,0) ; "The single left guillomot" ; z1 = (p_t,h/2) ; z2 = (w,h) ; phi := angle(z2-z1) ; uniend(p_t,(z1),90+phi,270-phi,10) ; z3 = (w-p_t/sind(phi),h) ; z4 = z1 + p_t*(-sind(phi),cosd(phi)) ; path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ; fill rombe reflectedabout ((0,h/2),(w,h/2)) ; penlabels(1,2,3,4) ; endchar ; beginchar(hex"5C",2x_w#/3,x_h#,0) ; "The single right guillomot"; z1 = (w-p_t,h/2) ; z2 = (0,h) ; phi := 180-angle(z2-z1) ; uniend(p_t,(z1),phi-90,90-phi,10) ; z3 = (p_t/sind(phi),h) ; z4 = z1 + p_t*(sind(phi),cosd(phi)) ; path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ; fill rombe reflectedabout ((0,h/2),(w,h/2)) ; penlabels(1,2,3,4) ; endchar ; \endinput %% %% End of file `uniext.mf'.