home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 April / VPR9904A.BIN / Wintex / Ams / jamstex.lzh / AMSFONTS / SOURCES / CYRILLIC / CYRFONT.MF < prev    next >
Text File  |  1993-08-26  |  6KB  |  148 lines

  1. %% @metafontfile{
  2. %%     filename="cyrfont.mf",
  3. %%     version="2.1a",
  4. %%     date="26-AUG-1993",
  5. %%     filetype="Metafont: driver",
  6. %%     copyright="Copyright (C) Humanities and Arts Computing Center,
  7. %%            University of Washington;
  8. %%            all rights reserved.  Copying of this file is
  9. %%            authorized only if either:
  10. %%            (1) you make absolutely no changes to your copy
  11. %%                including name; OR
  12. %%            (2) if you do make changes, you first rename it to some
  13. %%                other name.",
  14. %%     author="American Mathematical Society",
  15. %%     address="American Mathematical Society,
  16. %%            Technical Support Department,
  17. %%            P. O. Box 6248,
  18. %%            Providence, RI 02940,
  19. %%            USA",
  20. %%     telephone="401-455-4080 or (in the USA) 800-321-4AMS",
  21. %%     email="Internet: Tech-Support@Math.AMS.org",
  22. %%     codetable="ISO/ASCII",
  23. %%     checksumtype="line count",
  24. %%     checksum="147",
  25. %%     keywords="amsfonts, tex, metafont, cyrillic",
  26. %%     abstract="This is the driver file for use with 
  27. %%            the cyrillic fonts in AMSFonts 2.1."
  28. %%     }
  29. %
  30. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  31. % Driver for WNCYR Washington Computer Modern Cyrillic
  32.  
  33. font_coding_scheme:=if ligs=0: "TeX typewriter text"
  34.  else: "TeX text without f-ligatures" fi;
  35. spanish_shriek=oct"016"; spanish_query=oct"017";
  36.  
  37. mode_setup; font_setup;
  38.  
  39. def cyrspread := 1.25dot_size enddef;
  40.  
  41. numeric cyrflwd; cyrflwd=2hair;
  42. numeric cyrflht; if (designsize < 8pt): cyrflht=2slab; else: cyrflht=4slab; fi
  43.  
  44. input cyrmax.mf; %input macro file
  45. input cyrilu; % input common shapes
  46. input cyrspu; % and special uppercase forms
  47. input cyrpunc; % and puctuation etc.
  48. input serb; % serbian & other chars
  49. input serbspu;
  50. input cyrspl;  % and lowercase specials
  51.  
  52.  
  53. font_slant slant; font_x_height x_height#;
  54. if monospace: font_normal_space 9u#; % no stretching or shrinking
  55.  font_quad 18u#;
  56.  font_extra_space 9u#;
  57. else: font_normal_space 6u#+2letter_fit#;
  58.  font_normal_stretch 3u#; font_normal_shrink 2u#;
  59.  font_quad 18u#+4letter_fit#;
  60.  font_extra_space 2u#;
  61. fi
  62.  
  63. %%% fine lower
  64. def lowerfit = -.15u enddef;
  65. def cyrspread = 1.125dot_size enddef;
  66. forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
  67.  body_height, cap_height, x_height, bar_height, comma_depth,
  68.  flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
  69.  cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
  70.  o, apex_o:  $.#:=lower.$.#; endfor
  71. fudge:=lower.fudge;
  72. font_setup; % now try again with |lower| settings
  73. extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
  74. code_offset:=ASCII"a" - ASCII"A";
  75. numeric cyrflwd; cyrflwd=2hair;
  76. numeric cyrflht; cyrflht=4slab;
  77.  
  78. % now input for lowercase of common shapes
  79. input cyrilu;  % majuscules (in lowercase positions)
  80.  
  81. code_offset:=8;
  82. input serb;  % serbs and other chars
  83.  
  84.  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2.5u#; % three degrees of kerning
  85. ligtable "K": "H"=:"H", "h"=:"H",
  86.           oct"021": "H": oct"005" kern k#, oct"025" kern k#,
  87.          "F" kern k#, "O" kern k#, "S" kern k#;
  88. ligtable "T":  "S"=:"C", "s"=:"C",
  89.           oct"024": "G": "U": "A" kern kkk#, 
  90.          "D" kern kkk#, "L" kern kk#, "C" kern kk#, "a" kern kk#,
  91.          "d" kern kk#, "e" kern kk#, "f" kern kk#, "o" kern kk#,
  92.          oct"005" kern kk#, oct"015" kern kk#, oct"025" kern kk#,
  93.          oct"035" kern kk#, "." kern kk#, "," kern kk#, ";" kern kk#;
  94. ligtable "'": "'"=:oct"042";
  95. ligtable "-": "-"=:oct"173";
  96. ligtable oct"173": "-"=:oct"174";
  97. ligtable "6": "h"=:"W", "H"=:"W";
  98. ligtable "7": "h"=:"w";
  99. ligtable "A": oct"000": oct"001": oct"136": oct"137": oct"024" kern kk#,
  100.           oct"006" kern kk#, oct"007" kern kk#, "Q" kern kk#, oct"137" kern kk#;
  101. ligtable "C": "1"=:oct"007", "H"=:"Q", "h"=:"Q";
  102. ligtable "D": "1"=:oct"006", "2"=:oct"002", "3"=:oct"026",
  103.               "J"=:oct"006", "j"=:oct"006";
  104. ligtable "E": "0"=:oct"023", "1"=:oct"003", "2"=:oct"005";
  105. ligtable "I": "0"=:oct"022", "1"=:oct"004";
  106. ligtable "J": "1"=:oct"027", "2"=:oct"020";
  107. ligtable "L": "1"=:oct"001", "J"=:oct"001", "j"=:oct"001";
  108. ligtable "N": "0"=:oct"175", "1"=:oct"000", "J"=:oct"000", "j"=:oct"000";
  109. ligtable "O": oct"003": "F": "O" kern -k#, "F" kern -k#, oct"005" kern -k#,
  110.           oct"025": "H" kern k#, "A" kern k#, "U" kern k#, oct"024" kern k#,
  111.           "T" kern k#;
  112. ligtable "P": "1"=:oct"136", "2"=:oct"137";
  113. ligtable "t": "s"=:"c",
  114.          "R":  oct"005" kern k#, oct"025" kern k#,
  115.       oct"034": "g": "u": oct"035" kern k#,
  116.           "a" kern k#, "d" kern k#, "e" kern k#, "f" kern k#,
  117.           "l" kern k#, "o" kern k#, "s" kern k#, oct"015" kern k#,
  118.           oct"035" kern k#, "." kern kk#, "," kern kk#, ";" kern kk#;
  119.           
  120. ligtable "S": "H"=:"X", "h"=:"X";
  121. ligtable "X": "Q"=:"W", "q"=:"W", "C"=:"6", "c"=:"6";
  122. ligtable "Y": "A"=:oct"027", "a"=:oct"027", "U"=:oct"020", "u"=:oct"020";
  123. ligtable "Z": "1"=:oct"021", "H"=:oct"021", "h"=:oct"021";
  124. ligtable "[": "["=:oct"074";
  125. ligtable "]": "]"=:oct"076";
  126. ligtable "`": "`"=:oct"134";
  127. ligtable "e": "0"=:oct"033", "1"=:oct"013", "2"=:oct"015",
  128.           "b": "o": "r": "f":  "h" kern k#;
  129. %         "b": "o": "r": "f": "o" kern -k#, "f" kern -k#, "e" kern -k#, "c" kern -k#,
  130. ligtable "c": "1"=:oct"017", "h"=:"q";
  131. ligtable "d": "1"=:oct"016", "2"=:oct"012", "3"=:oct"036", "j"=:oct"016";
  132. ligtable "i": "0"=:oct"032", "1"=:oct"014";
  133. ligtable "j": "1"=:oct"037", "2"=:oct"030";
  134. ligtable "k": "h"=:"h";
  135. ligtable "l": "1"=:oct"011", "j"=:oct"011";
  136. ligtable "n": "1"=:oct"010", "j"=:oct"010";
  137. ligtable "p": "1"=:oct"176", "2"=:oct"177";
  138. ligtable "x": "q"=:"w", "c"=:"7";
  139. ligtable "y": "a"=:oct"037", "u"=:oct"030";
  140. ligtable "z": "1"=:oct"031", "h"=:oct"031";
  141. ligtable "s": "h"=:"x",
  142.               "m": "w": oct"012" kern -k#, oct"032" kern -k#, "c" kern -k#,
  143.               "g" kern -k#, "i" kern -k#, "k" kern -k#, "m" kern -k#,
  144.               "n" kern -k#, "p" kern -k#, "r" kern -k#, "v" kern -k#, "w" kern -k#,
  145.               "x" kern -k#, "y" kern -k#, oct"176" kern -k#, oct"177" kern -k#;
  146.  
  147. bye.
  148.