summaryrefslogtreecommitdiff
path: root/fonts/cyrillic/bashkirian/bashfont.mf
blob: 974d7582bbb0e43f6a2e9ed937b401f3a15e0b4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
% Driver for WNCYR Washington Computer Modern Cyrillic
% including the bashkirian letters by J. Knappen

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
input jkbashc; % bashkirian common
input jkbashu; % and upper
input jkbashl; % and lower

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
input jkbashc;% bashkirian

 k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2.5u#; % three degrees of kerning
input bashlig; % ligtable for bashkirian
ligtable "K": "H"=:"H", "h"=:"H",
          oct"021": "H":  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"136": oct"137": oct"024" kern kk#,
          oct"006" kern kk#, oct"007" kern kk#, "Q" kern kk#, oct"137" kern
kk#;
ligtable "C": "H"=:"Q", "h"=:"Q";
ligtable "E": "0"=:oct"023", "1"=:oct"007";
ligtable "I": "0"=:oct"022", "1"=:oct"004";
ligtable "J": "1"=:oct"027", "2"=:oct"020";
ligtable "N": "0"=:oct"175", "1"=:oct"000", "J"=:oct"000", "j"=:oct"000";
ligtable "O": oct"007": "F": "O" kern -k#, "F" kern -k#, oct"004" 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"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"017",
          "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": "h"=:"q";
ligtable "i": "0"=:oct"032";
ligtable "j": "1"=:oct"037", "2"=:oct"030";
ligtable "k": "h"=:"h";
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"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.
[End of file]