summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/lh/base/ldtexset.mf
blob: 3377120e69fdeb3769f57ca21f46a4f727dc5c22 (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
%
% ldtexset.mf
%
%% Cyrillic font container with T2 encoding beta-support
%
% This file is future part of lxfonts package
% Version 3.5 // Patchlevel=0
% (c) O.Lapko
%
% This package is freeware product under conditions similar to
% those of D. E. Knuth specified for the Computer Modern family of fonts.
% In particular, only the authors are entitled to modify this file
% (and all this package as well) and to save it under the same name.
%
% Content:
%
% Special version of Computer Modern for \TeX's extended ASCII character set
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

LHver_check(3,5); % like |version_check| in ec

font_coding_scheme:="TeX extended ASCII/Cyr - "&enc_name;

input lxpseudo;

mode_setup; font_setup; mono_charic#:=0;
pseudo_setup;    % |pseudo_setup| from ec

if altcoding:
   input tsetsl;  % special symbols to be slanted
fi
slant:=0;      % the remaining characters will not be slanted
currenttransform:=identity yscaled aspect_ratio scaled granularity;

if altcoding:
   input romanu;  % upper case (majuscules)
   input romanl;  % lower case (minuscules)
   input romand;  % numerals
   input romanp;  % ampersand, question marks, currency sign
   input punct;  % punctuation symbols common to roman and italic text
   input tset;  % remaining special symbols of extended ASCII
fi

input lgcyru;	   % Cyrillic upper case (majuscules)
input lgcyrl;	   % Cyrillic lower case (minuscules)
input lgcyrsym;    % << >> ,, No
input lgcyracc;	   % Cyrillic accents
if old_cyr:
   input lgocyrac; % Cyrillic Old Slav accents & signs
fi

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#;
   k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
   %
   % Latin ligs & kerns:
   %   There are just the same ligs and kerns as in CM
   %   but they are built in more visible form
   TITLEfont:=false; SmallCapsfont:=false; ROMANfont:=true;
   if altcoding:
      ligtable "k":
         if serifs: "v": 
                    "a" kern -u#, fi\\
               "w": "e" kern k#,
                    "a" kern k#, 
                    "o" kern k#, 
                    "c" kern k#;
      ligtable "P": "A" kern kk#,
               "y": "o" kern k#,
                    "e" kern k#,
                    "a" kern k#,
                    "." kern kk#,
                    "," kern kk#;
      ligtable "F": "V": "W":
         if serifs: "o" kern kk#,
                    "e" kern kk#,
                    "u" kern kk#,
                    "r" kern kk#,
                    "a" kern kk#,
                    "A" kern kkk#,
              else: "o" kern k#,
                    "e" kern k#,
                    "u" kern k#,
                    "r" kern k#,
                    "a" kern k#,
                    "A" kern kk#, fi
          "K": "X": "O" kern k#,
                    "C" kern k#,
                    "G" kern k#,
                    "Q" kern k#;
      ligtable "T": "y" kern if serifs: k# else: kk# fi,
               "Y": "e" kern kk#,
                    "o" kern kk#,
                    "r" kern kk#,
                    "a" kern kk#,
                    "A" kern kk#,
                    "u" kern kk#;
      ligtable "O": "D":
                    "X" kern k#,
                    "W" kern k#,
                    "A" kern k#,
                    "V" kern k#,
                    "Y" kern k#;
      if serifs: 
         ligtable "h": "m": "n":
                    "t" kern k#, 
                    "u" kern k#,
                    "b" kern k#,
                    "y" kern k#,
                    "v" kern k#,
                    "w" kern k#;
         ligtable "c": 
                    "h" kern k#,
                    "k" kern k#;
      fi
      ligtable "o": "b": "p":
                    "e" kern -k#,
                    "o" kern -k#,
                    "x" kern k#,
                    "d" kern -k#,
                    "c" kern -k#,
                    "q" kern -k#,
               "a": if serifs: 
                          "v" kern k#,
                          "j" kern u#,
                    else: "r" kern k#, fi
               "t": "y" kern k#,
               "u": "w" kern k#;
      ligtable "A": if serifs: "R": fi\\
                    "t" kern k#,
                    "C" kern k#, 
                    "O" kern k#, 
                    "G" kern k#, 
                    "U" kern k#, 
                    "Q" kern k#,
               "L": "T" kern kk#,
                    "Y" kern kk#,
                    "V" kern kkk#,
                    "W" kern kkk#;
      ligtable "g": "j" kern -k#; % logjam
      ligtable "I": "I" kern -k#; % Richard III
   fi
   scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
fi;
bye.