summaryrefslogtreecommitdiff
path: root/fonts/jknappen/fc/src/fcitligt.mf
blob: 22b092736631cc3e1055aef1622303b00701360f (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
% This is FCITLIGT.MF 
% Version 1.3a
% Date 25-NOV-1994
% 
% (c) 1992, 1994 by J"org Knappen
% This file is part of the fc-package 
% See fc.rme for more information
%
% J"org Knappen
% Institut f"ur Kernphysik
% Postfach 39 80
% D-W 55099 Mainz
% knappen@vkpmzd.kph.uni-mainz.de

%
% Ligature Table for fc italic fonts
%

ligtable ">":">" =: oct"023"; % Guillemets
ligtable "<":"<" =: oct"024";
ligtable "`":"`" =: oct"020"; % Quotation marks
ligtable "'":"'" =: oct"021";
ligtable ",":"," =: oct"022";
ligtable "!":"`" =: spanish_shriek; % Spanish punctuation
ligtable "?":"`" =: spanish_query;
ligtable "-":"-" =: oct"025", % n-dash
             127 =: 127;      % "-" "hyphenchar" -> "hyphenchar"
ligtable oct"025":"-" =: oct"026"; % m-dash

% Ligatures fl, fi, ff etc not yet implemented

numeric itc#; itc#=(asc_height#-x_height#)*slant+1/4u#;

ligtable "f":    "i"=:oct"034",
                 "f"=:oct"033",
                 "l"=:oct"035",
                 "j"=:fj_lig,
long_f: esh: t_esh_lig:
    "'" kern itc#, "?" kern itc#, "!" kern itc#,
    ")" kern itc#, "]" kern itc#; 

ligtable oct"033":   % ff
          "i"=:oct"036",
          "l"=:oct"037",
          "'" kern itc#,
          "?" kern itc#,
          "!" kern itc#,
          ")" kern itc#,
          "]" kern itc#;


def lig_o_table (expr k) =
             "o" kern k,  open_o kern k, open_o_tilde kern k,
                          o_grave kern k, o_dot kern k, o_hat kern k,
                          o_tilde kern k, o_umlaut kern k, oe_lig kern k,
                          crossed_o kern k, o_dotu kern k, o_uline kern k,
                          o_bar kern k, o_hachek kern k
enddef;
%
def lig_a_table (expr k) =
           "a" kern k,    a_tilde kern k, ae_lig kern k
enddef;
%
def lig_i_table (expr k) = 
           "i" kern k, oct"031" kern k, i_tilde kern k, latin_iota kern k,
                       i_dotu kern k
enddef;
def lig_e_table (expr k)=
             "e" kern k, e_hachek kern k, e_dot kern k, open_e kern k,
                         reversed_e kern k, e_dotu kern k, open_e_tilde kern k,
                         e_grave kern k, e_acute kern k, e_hat kern k,
                         e_umlaut kern k, e_uline kern k, e_bar kern k,
                         e_tilde kern k
enddef;
%
def lig_u_table (expr k)=
             "u" kern k, u_dotu kern k, u_tilde kern k, var_u kern k
enddef;
%
def lig_O_table (expr k) =
             "O" kern k,  open_o kern k, open_O_tilde kern k,
                          O_grave kern k, O_dot kern k, O_hat kern k,
                          O_tilde kern k, O_umlaut kern k, OE_lig kern k,
                          crossed_O kern k, O_dotu kern k, O_uline kern k,
                          O_bar kern k, O_hachek kern k
enddef;
%
%
%
k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning


ligtable "F": long_F: "V": "W": "T": hooktop_T: "Y":
                   "a" kern kk#, "e" kern kk#, open_e kern kk#, 
                    reversed_e kern kk#, oct"031" kern kk#, latin_iota kern kk#,
                   "o" kern kk#, open_o kern kk#, "u" kern kk#, var_u kern kk#,
                    ae_lig kern kk#, oe_lig kern kk#, "r" kern kk#, 
                   "y" kern kk#,
                   "A" kern kk#, "." kern kk#, 
                   "," kern kk#;

ligtable "P": hooktop_P:
                   "A" kern kk#, "." kern kk#, 
                   "," kern kk#;


ligtable "K": "X": ipa_Gamma:
                   lig_O_table(k#), "C" kern k#, "G" kern k#, "Q" kern k#,
                   hooktop_C kern k#, C_cedilla kern k#;

ligtable "O": "D": Edh: hooktop_D: open_O: open_O_tilde: O_grave: O_dot:
             O_hat: O_tilde: O_umlaut: crossed_O: O_dotu: O_bar: O_hachek:
                  "X" kern k#, ipa_Gamma kern k#, "W" kern k#, "V" kern k#,
                  "Y" kern k#, hooktop_Y kern k#, "A" kern k#, A_tilde kern k#,
                   AE_lig kern k#;

ligtable "A": A_tilde: "R": latin_Iota:
                  "t" kern k#, sami_t kern k#, hooktop_t kern k#, 
                   "n" kern k#, "m" kern k#, enj kern k#, eng kern k#, 
                   n_tilde kern k#, n_acute kern k#, n_dot kern k#, 
                   n_uline kern k#, m_acute kern k#,
                   "l" kern k#, "r" kern k#, lig_u_table(k#), lig_i_table(k#), 
                   "h" kern k#, crossed_h kern k#, "b" kern k#, 
                   hooktop_b kern k#, "k" kern k#, hooktop_k kern k#, 
                   "v" kern k#, "w" kern k#,
                   lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
                   "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
                   tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
                   c_cedilla kern -u#, "g" kern -u#, "q" kern -u#,
                   "C" kern k#,
                   hooktop_C kern k#, C_cedilla kern k#, "G" kern k#, 
                   lig_O_table(k#), "Q" kern k#, "U" kern k#, var_U kern k#,
                   "T" kern kk#, long_T kern kk#, "Y" kern kk#, 
                   hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
                 
ligtable "L":      lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
                   "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
                   tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
                   c_cedilla kern -u#, "g" kern -u#, "q" kern -u#,
                   "T" kern kk#, long_T kern kk#, "Y" kern kk#, 
                  hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;

ligtable "l":     "l" kern u#;

ligtable "b": hooktop_b: "c": hooktop_c: c_cedilla: 
         "e": e_hachek: e_dot: open_e: reversed_e: e_dotu: open_e_tilde:
          e_grave: e_acute: e_hat: e_umlaut: e_uline: e_bar: e_tilde:
         "o":  open_o: open_o_tilde: o_grave: o_dot: o_hat:
          o_tilde: o_umlaut: oe_lig: crossed_o: o_dotu: o_uline:
          o_bar: o_hachek: "p": hooktop_p: "r":
                   lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
                   "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
                   tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
                   c_cedilla kern -u#, "g" kern -u#, "q" kern -u#;
ligtable "n":      "'" kern kkk#;
                    
ligtable hooktop_d:                 % t_esh_lig:
                    "a" kern k#, "e" kern k#, latin_iota kern k#, 
                    oct"031" kern k#, open_e kern k#, reversed_e kern k#,
                    "o" kern k#, open_o kern k#, "u" kern k#, var_u kern k#,
                    ae_lig kern k#, oe_lig kern k#,
                    "." kern kk#, "," kern kk#;

ligtable tailed_d: lig_a_table(k#), lig_e_table(k#), lig_i_table(k#),
                   lig_o_table(k#), lig_u_table(k#), "." kern kk#; 

endinput;