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
|
% Based on the Computer Modern source file romanu.mf by D E Knuth.
% Edited by Ariel Barton
% Date: 2013/03/22
% CM-style Roman upper case:
% These letters were originally coded by D. E. Knuth in November, 1979,
% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
% Sans serif designs by Richard Southall were added in April, 1982.
% The programs were revised for the new \MF\ conventions in 1985.
% Serifs were added to the uppercase sans serif I
% by Ariel Barton for reasons of clarity in 2012.
% Character codes \0101 through \0132 are generated.
input romanu; % Generate A-Z as Knuth did
% then redo the letter I
cmchar "The letter I"; % Added serifs
beginchar("I",
if known I_cap_jut: (cap_stem#+2I_cap_jut#+2u#),
else: max(6u#,4u#+cap_stem#), fi
cap_height#,0);
italcorr cap_height#*slant-.25u#;
adjust_fit(cap_serif_fit#,cap_serif_fit#);
pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % stem
if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
if known I_cap_jut: if I_cap_jut > 0:
pos3(slab,90); pos4(slab,90);
rt x4r=(w-u); x3=w-x4;
top y4r = top y3r = h;
filldraw stroke z4e--z3e;
pos5(slab,90); pos6(slab,90);
x5=x3; x6=x4; y5=y6; bot y5l=0;
filldraw stroke z5e--z6e;
fi fi
math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
|