summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/jknappen/fc/fcsfligt.mf
blob: 2eb2dac99c6487a09622f84b4f709429756d1bf7 (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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
% This is FCSFLIGT.MF 
% Version 1.3
% Date 6-OCT-1996
% 
% (c) 1992--1996 by J"org Knappen
% This file is part of the fc-package 
% See fc.rme for more information
%
% J"org Knappen
% Unternehmensberatung
% Barbarossaring 43
% D-55118 Mainz
% Allemagne

% knappen@vkpmzd.kph.uni-mainz.de

%
% Ligature Table for fc sans serif 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

numeric itc#; itc#=1.25u#;
ligtable
    "f":   "i"=:oct"034",
           "f"=:oct"033",
           "l"=:oct"035",
           "j"=:fj_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#;

ligtable long_f: esh: t_esh_lig:
          "'" 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 "k": "W" kern kk#, "V" kern kk#,  % kW, kV
             "v": "w": hooktop_k:
                   lig_a_table(-u#), lig_e_table(k#),
                   lig_o_table(k#), "c" kern k#, c_cedilla kern k#,
                   hooktop_c kern k#;

ligtable "y": ipa_gamma:
              lig_a_table(k#), lig_o_table(k#), lig_e_table(k#),
              "c" kern k#, c_cedilla kern k#, hooktop_c kern k#,
              hooktop_y: "." kern kk#, "," kern kk#;

ligtable "o": "p": "b": open_o: reversed_e: open_o_tilde: o_grave: o_dot:
             o_hat: o_tilde: o_umlaut: crossed_o: o_dotu: o_uline:
             o_bar: o_hachek: hooktop_p:
               lig_e_table(-k#), lig_o_table(-k#), "q" kern -k#, "c" kern -k#,
               c_cedilla kern -k#, hooktop_c kern -k#, "d" kern -k#, 
               crossed_d kern -k#, hooktop_d kern -k#, tailed_d kern -k#,
               "x" kern k#, "y" kern k#, hooktop_y kern k#, "v" kern k#,
               "w" kern k#, ipa_gamma kern k#, "r" kern k#;

ligtable "a": a_tilde:
               "v" kern k#, "w" kern k#, "y" kern k#, "r" kern k#,
               hooktop_y kern k#, ipa_gamma kern k#;

ligtable "t": esh=: t_esh_lig, 
           sami_t: hooktop_t: "y" kern k#;

ligtable "u": u_dotu: u_tilde: "w" kern k#;

ligtable "g": "j" kern -k#;

ligtable "e": "V" kern kk#; % eV

ligtable hooktop_d:
                    "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#; 

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

ligtable "P": hooktop_P:
                   "a" kern k#, "e" kern k#, open_e kern k#, 
                    reversed_e kern k#, 
                   "o" kern k#, open_o kern k#, 
                    ae_lig kern k#, oe_lig kern k#, 
                   "A" kern kk#, "." kern k#, 
                   "," kern k#;


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: latin_Iota:
                  "t" kern k#, sami_t kern k#, hooktop_t kern k#, "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":     "T" kern kk#, long_T kern kk#, "Y" kern kk#, 
                  hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
                 
ligtable "I":    "I" kern -k#;

endinput;