%% filename: cyrfont.mf %% version: 2.2 %% date: 1995/01/04 %% %% American Mathematical Society %% Technical Support %% Publications Technical Group %% 201 Charles Street %% Providence, RI 02904 %% USA %% tel: (401) 455-4080 %% (800) 321-4267 (USA and Canada only) %% fax: (401) 331-3842 %% email: tech-support@ams.org %% %% Copyright 1995 Humanities and Arts Computing Center, University of %% Washington. %% %% Unlimited copying and redistribution of this file are permitted as %% long as this file is not modified. Modifications, and distribution %% of modified versions, are permitted, but only if the resulting file %% is renamed. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Driver for WNCYR Washington Computer Modern Cyrillic font_coding_scheme:=if ligs=0: "TeX typewriter text" else: "TeX text without f-ligatures" fi; spanish_shriek=oct"016"; spanish_query=oct"017"; mode_setup; font_setup; def cyrspread := 1.25dot_size enddef; numeric cyrflwd; cyrflwd=2hair; numeric cyrflht; if (designsize < 8pt): cyrflht=2slab; else: cyrflht=4slab; fi input cyrmax.mf; %input macro file input cyrilu; % input common shapes input cyrspu; % and special uppercase forms input cyrpunc; % and puctuation etc. input serb; % serbian & other chars input serbspu; input cyrspl; % and lowercase specials font_slant slant; font_x_height x_height#; if monospace: font_normal_space 9u#; % no stretching or shrinking font_quad 18u#; font_extra_space 9u#; else: font_normal_space 6u#+2letter_fit#; font_normal_stretch 3u#; font_normal_shrink 2u#; font_quad 18u#+4letter_fit#; font_extra_space 2u#; fi %%% fine lower def lowerfit = -.15u enddef; def cyrspread = 1.125dot_size enddef; forsuffixes $= u, width_adj, cap_serif_fit, letter_fit, body_height, cap_height, x_height, bar_height, comma_depth, flare, cap_hair, stem, cap_stem, cap_curve, cap_ess, cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut, o, apex_o: $.#:=lower.$.#; endfor fudge:=lower.fudge; font_setup; % now try again with |lower| settings extra_endchar:=extra_endchar&"charcode:=charcode+code_offset"; code_offset:=ASCII"a" - ASCII"A"; numeric cyrflwd; cyrflwd=2hair; numeric cyrflht; cyrflht=4slab; % now input for lowercase of common shapes input cyrilu; % majuscules (in lowercase positions) code_offset:=8; input serb; % serbs and other chars k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2.5u#; % three degrees of kerning ligtable "K": "H"=:"H", "h"=:"H", oct"021": "H": oct"005" kern k#, oct"025" kern k#, "F" kern k#, "O" kern k#, "S" kern k#; ligtable "T": "S"=:"C", "s"=:"C", oct"024": "G": "U": "A" kern kkk#, "D" kern kkk#, "L" kern kk#, "C" kern kk#, "a" kern kk#, "d" kern kk#, "e" kern kk#, "f" kern kk#, "o" kern kk#, oct"005" kern kk#, oct"015" kern kk#, oct"025" kern kk#, oct"035" kern kk#, "." kern kk#, "," kern kk#, ";" kern kk#; ligtable "'": "'"=:oct"042"; ligtable "-": "-"=:oct"173"; ligtable oct"173": "-"=:oct"174"; ligtable "6": "h"=:"W", "H"=:"W"; ligtable "7": "h"=:"w"; ligtable "A": oct"000": oct"001": oct"136": oct"137": oct"024" kern kk#, oct"006" kern kk#, oct"007" kern kk#, "Q" kern kk#, oct"137" kern kk#; ligtable "C": "1"=:oct"007", "H"=:"Q", "h"=:"Q"; ligtable "D": "1"=:oct"006", "2"=:oct"002", "3"=:oct"026", "J"=:oct"006", "j"=:oct"006"; ligtable "E": "0"=:oct"023", "1"=:oct"003", "2"=:oct"005"; ligtable "I": "0"=:oct"022", "1"=:oct"004"; ligtable "J": "1"=:oct"027", "2"=:oct"020"; ligtable "L": "1"=:oct"001", "J"=:oct"001", "j"=:oct"001"; ligtable "N": "0"=:oct"175", "1"=:oct"000", "J"=:oct"000", "j"=:oct"000"; ligtable "O": oct"003": "F": "O" kern -k#, "F" kern -k#, oct"005" kern -k#, oct"025": "H" kern k#, "A" kern k#, "U" kern k#, oct"024" kern k#, "T" kern k#; ligtable "P": "1"=:oct"136", "2"=:oct"137"; ligtable "t": "s"=:"c", "R": oct"005" kern k#, oct"025" kern k#, oct"034": "g": "u": oct"035" kern k#, "a" kern k#, "d" kern k#, "e" kern k#, "f" kern k#, "l" kern k#, "o" kern k#, "s" kern k#, oct"015" kern k#, oct"035" kern k#, "." kern kk#, "," kern kk#, ";" kern kk#; ligtable "S": "H"=:"X", "h"=:"X"; ligtable "X": "Q"=:"W", "q"=:"W", "C"=:"6", "c"=:"6"; ligtable "Y": "A"=:oct"027", "a"=:oct"027", "U"=:oct"020", "u"=:oct"020"; ligtable "Z": "1"=:oct"021", "H"=:oct"021", "h"=:oct"021"; ligtable "[": "["=:oct"074"; ligtable "]": "]"=:oct"076"; ligtable "`": "`"=:oct"134"; ligtable "e": "0"=:oct"033", "1"=:oct"013", "2"=:oct"015", "b": "o": "r": "f": "h" kern k#; % "b": "o": "r": "f": "o" kern -k#, "f" kern -k#, "e" kern -k#, "c" kern -k#, ligtable "c": "1"=:oct"017", "h"=:"q"; ligtable "d": "1"=:oct"016", "2"=:oct"012", "3"=:oct"036", "j"=:oct"016"; ligtable "i": "0"=:oct"032", "1"=:oct"014"; ligtable "j": "1"=:oct"037", "2"=:oct"030"; ligtable "k": "h"=:"h"; ligtable "l": "1"=:oct"011", "j"=:oct"011"; ligtable "n": "1"=:oct"010", "j"=:oct"010"; ligtable "p": "1"=:oct"176", "2"=:oct"177"; ligtable "x": "q"=:"w", "c"=:"7"; ligtable "y": "a"=:oct"037", "u"=:oct"030"; ligtable "z": "1"=:oct"031", "h"=:oct"031"; ligtable "s": "h"=:"x", "m": "w": oct"012" kern -k#, oct"032" kern -k#, "c" kern -k#, "g" kern -k#, "i" kern -k#, "k" kern -k#, "m" kern -k#, "n" kern -k#, "p" kern -k#, "r" kern -k#, "v" kern -k#, "w" kern -k#, "x" kern -k#, "y" kern -k#, oct"176" kern -k#, oct"177" kern -k#; bye.