home *** CD-ROM | disk | FTP | other *** search
/ Dream 45 / Amiga_Dream_45.iso / Atari / Magazine / Dossier / texutils / texshell-3.74.zoo / doc / ts_man.mf < prev    next >
Text File  |  1989-07-01  |  6KB  |  213 lines

  1. font_size 11pt#;
  2. mode_setup;
  3. font_identifier "TS-MANUAL";
  4.  
  5. beginchar("1",5.5pt#,7.5pt#,0); "Alternate";
  6.    pickup pencircle scaled .85pt;
  7.    x1=0.05w; y1=0;
  8.    x2=x1;    y2=h;
  9.    x3=0.95w; y3=y2;
  10.    x4=x3;    y4=y1;
  11.    fill z1--z2--z3--z4--cycle;
  12.    x5=x1;    y5=.5h;
  13.    x6=.5w;   y6=h;
  14.    x7=x3;    y7=y5;
  15.    x8=x6;    y8=0;
  16.    undraw z5--z6--z7--z8--cycle;
  17.    penlabels(1,2,3,4,5,6,7,8);
  18. endchar;
  19.  
  20. %------------------------------------------------------------------------
  21.  
  22. % Die ganze Palette an METAFONT-Logos
  23.  
  24. def beginlogochar(expr code, unit_width) =
  25.  beginchar(code,unit_width*u#+2s#,ht#,0);
  26.  pickup logo_pen enddef;
  27.  
  28. def super_half(suffix i,j,k) =
  29.  draw z.i{0,y.j-y.i}
  30.  ... (.8[x.j,x.i],.8[y.i,y.j]){z.j-z.i}
  31.  ... z.j{x.k-x.i,0}
  32.  ... (.8[x.j,x.k],.8[y.k,y.j]){z.k-z.j}
  33.  ... z.k{0,y.k-y.j} enddef;
  34.  
  35. slant:=0;
  36.  
  37. def logoset(expr i) =
  38.  ygap#:=(ht#/13.5u#)*xgap#;              % vertical adjustment
  39.  ho#:=o#;                                % horizontal overshoot
  40.  leftstemloc#:=2.5u#+s#;                 % position of left stem
  41.  barheight#:=.45ht#;                     % height of bar lines
  42.  py#:=.9px#;                             % vertical pen thickness
  43.  
  44.  define_pixels(s,u);
  45.  define_whole_pixels(xgap);
  46.  define_whole_vertical_pixels(ygap);
  47.  define_blacker_pixels(px,py);
  48.  pickup pencircle xscaled px yscaled py;
  49.  logo_pen:=savepen;
  50.  define_good_x_pixels(leftstemloc);
  51.  define_good_y_pixels(barheight);
  52.  define_corrected_pixels(o);
  53.  define_horizontal_corrected_pixels(ho);
  54.  
  55.  beginlogochar(i,18);         % "M"
  56.  x1=x2=leftstemloc; x4=x5=w-x1; x3=w-x3;
  57.  y1=y5; y2=y4; bot y1=-o;
  58.  top y2=h+o; y3=y1+ygap;
  59.  draw z1--z2--z3--z4--z5;
  60.  labels(1,2,3,4,5); endchar;
  61.  
  62.  beginlogochar(i+1,14);       % "E"
  63.  x1=x2=x3=leftstemloc;
  64.  x4=x6=w-x1+ho; x5=x4-xgap;
  65.  y1=y6; y2=y5; y3=y4;
  66.  bot y1=0; top y3=h; y2=barheight;
  67.  draw z6--z1--z3--z4; draw z2--z5;
  68.  labels(1,2,3,4,5,6); endchar;
  69.  
  70.  beginlogochar(i+2,13);       % "T"
  71.  italcorr ht#*slant + .5u#;
  72.  if .5w<>good.x .5w: change_width; fi
  73.  lft x1=-eps; x2=w-x1; x3=x4=.5w;
  74.  y1=y2=y3; top y1=h; bot y4=-o;
  75.  draw z1--z2; draw z3--z4;
  76.  labels(1,2,3,4); endchar;
  77.  
  78.  beginlogochar(i+3,15);       % "A"
  79.  x1=.5w; x2=x4=leftstemloc; x3=x5=w-x2;
  80.  top y1=h+o; y2=y3=barheight;
  81.  bot y4=bot y5=-o;
  82.  draw z4--z2--z3--z5; super_half(2,1,3);
  83.  labels(1,2,3,4,5); endchar;
  84.  
  85.  beginlogochar(i+4,14);       % "F"
  86.  x1=x2=x3=leftstemloc;
  87.  x4=w-x1+ho; x5=x4-xgap;
  88.  y2=y5; y3=y4; bot y1=-o;
  89.  top y3=h; y2=barheight;
  90.  draw z1--z3--z4; draw z2--z5;
  91.  labels(1,2,3,4,5); endchar;
  92.  
  93.  beginlogochar(i+5,15);       % "O"
  94.  x1=x4=.5w; top y1=h+o; bot y4=-o;
  95.  x2=w-x3=good.x(1.5u+s); y2=y3=barheight;
  96.  super_half(2,1,3); super_half(2,4,3);
  97.  labels(1,2,3,4); endchar;
  98.  
  99.  beginlogochar(i+6,15);       % "N"
  100.  x1=x2=leftstemloc; x3=x4=x5=w-x1;
  101.  bot y1=bot y4=-o;
  102.  top y2=top y5=h+o; y3=y4+ygap;
  103.  draw z1--z2--z3; draw z4--z5;
  104.  labels(1,2,3,4,5); endchar;
  105.  
  106.  ligtable i+2: i+3 kern -.5u#;  % "T": "A"
  107.  ligtable i+4: i+5 kern -u#;    % "F": "O"
  108. enddef;
  109.  
  110. % logo10 scaled 1100
  111. ht#:=6.6pt#;         % height of characters
  112. xgap#:=0.66pt#;      % horizontal adjustment
  113. u#:=4.4/9pt#;        % unit width
  114. s#:=0;               % extra space at the left and the right
  115. o#:=1.1/9pt#;        % overshoot
  116. px#:=2.2/3pt#;       % horizontal thickness of pen
  117. logoset(65)         % now generate the font ("A".."G")
  118.  
  119. % logo12
  120. ht#:=1.2*6pt#;
  121. xgap#:=1.2*0.6pt#;
  122. u#:=1.18436*4/9pt#;
  123. s#:=0;
  124. o#:=1/8.5pt#;
  125. px#:=1.2*2/3pt#;
  126. logoset(72);        % now generate the font ("H".."N")
  127.  
  128. % logobf10 scaled \magstephalf
  129. ht#:=1.1*6pt#;
  130. xgap#:=1.1*23/20*0.6pt#;
  131. u#:=1.1*23/20*4/9pt#;
  132. s#:=1.1*.1pt#;
  133. o#:=1.1/9pt#;
  134. px#:=1.1*44/36pt#;
  135. logoset(79);        % now generate the font ("O".."U")
  136.  
  137. % logobf10 scaled \magstep1
  138. ht#:=1.2*6pt#;
  139. xgap#:=1.2*23/20*0.6pt#;
  140. u#:=1.2*23/20*4/9pt#;
  141. s#:=1.2*.1pt#;
  142. o#:=1.2/9pt#;
  143. px#:=1.2*44/36pt#;
  144. logoset(97);        % now generate the font ("a".."g")
  145.  
  146. % logobf10 scaled \magstep2
  147. ht#:=1.44*6pt#;
  148. xgap#:=1.44*23/20*0.6pt#;
  149. u#:=1.44*23/20*4/9pt#;
  150. s#:=1.44*.1pt#;
  151. o#:=1.44/9pt#;
  152. px#:=1.44*44/36pt#;
  153. logoset(104);        % now generate the font ("h".."n")
  154.  
  155.  
  156. %------------------------------------------------------------------------
  157.  
  158. % Und nun noch das "dangerous bend" Symbol (thanx to Knuth)
  159.  
  160. def font_setup=
  161. define_pixels(u,tiny,axis,hheight,border);
  162. define_blacker_pixels(hair,thin,thick,rulethickness);
  163. pickup if tiny<.5: nullpen else: pencircle scaled tiny fi;
  164. tinypen:=savepen;
  165. currenttransform:=identity yscaled aspect_ratio slanted slant;
  166. enddef;
  167.  
  168. % typical cmr11 parameters
  169. u#:=22/36pt#;
  170. tiny#:=0;
  171. axis#:=99/36pt#;
  172. hheight#:=275/36pt#;
  173. border#:=22/36pt#;
  174. hair#:=8.8/36pt#;
  175. thin#:=9.9/36pt#;
  176. thick#:=27.5/36pt#;
  177. fixwidth:=0;
  178. slant:=0;
  179. rulethickness#:=.6pt#;
  180.  
  181. baselinedistance#:=12pt#;
  182. heavyline#:=55/36pt#;
  183. font_setup;
  184. define_whole_pixels(baselinedistance);
  185. define_blacker_pixels(heavyline);
  186.  
  187. beginchar(127,25u#,hheight#+border#,0); "Dangerous bend sign";
  188. pickup pencircle scaled rulethickness;
  189. top y1=25/27h; lft x4=0;
  190. x1+x1=x1a+x1b=x4b+x2a=x4+x2=x4a+x2b=x3b+x3a=x3+x3=w;
  191. x4a=x4b=x4+u; x3b=x1a=x1-2u;
  192. y4+y4=y4a+y4b=y3b+y1a=y3+y1=y3a+y1b=y2b+y2a=y2+y2=0;
  193. y1a=y1b=y1-2/27h; y4b=y2a=y4+4/27h;
  194. draw z1a..z1..z1b---z2a..z2..z2b---
  195.   z3a..z3..z3b---z4a..z4..z4b---cycle;  % signboard
  196. x10=x11=x12=x13=good.x(.5w-u); x14=x15=x16=x17=w-x10;
  197. y10=y14=28/27h+epsilon; bot y13=-baselinedistance;
  198. z11=(z10..z13) intersectionpoint (z1a{z1a-z4b}..z1{right});
  199. y15=y11; y16=y12=-y11; y17=y20=y21=y13;
  200. draw z11--z10--z14--z15; draw z12--z13; draw z16--z17;  % signpost
  201. x20=w-x21; x21-x20=16u; draw z20--z21;  % ground level
  202. x38=w-x31; x38-x31=8u; x32=x34=x38; x31=x35=x37;
  203. y31=-y38=12/27h; y32=-y37=9/27h; y34=-y35=3/27h;
  204. pickup pencircle scaled heavyline;
  205. draw z32{z32-z31}..z34---z35..z37{z38-z37};  % the dangerous bend
  206. pickup penrazor xscaled heavyline rotated (angle(z32-z31)+90);
  207. draw z31--z32; draw z37--z38;    % upper and lower bars
  208. labels(1,1a,1b,2,2a,2b,3,3a,3b,4,4a,4b,10,11,12,13,14,15,16,17,20,21,
  209.   31,32,33,34,35,36,37,38);
  210. endchar;
  211.  
  212. end.
  213.