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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
% ---------------------------------------------------------------------------
% This is PL_MLK.MF ({\bif{}ma\l{}e polskie litery --- kursywa}, i.e.,
% lowercase italic Polish letters: a and e with ogonek, crossed l,
% accented c, n, o, s, z, and dotted z) in text format.
% The program is based on excerpts from the ITALL.MF file.
% ---------------------------------------------------------------------------
% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
% ---------------------------------------------------------------------------
% AUTHORS OF ADAPTATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
% ---------------------------------------------------------------------------
% This file belongs to the public domain under conditions similar to
% those of D. E. Knuth specified for the Computer Modern family of fonts.
%
% For details see either the file MEXINFO.POL or MEXINFO.ENG.
% ---------------------------------------------------------------------------
% ---------------------------------------------------------------------------
%%% beginchar beginchar_twice
%%% endfor repeat_once
% ---------------------------------------------------------------------------
cmchar "Italic letter a with ogonek";
beginchar(ogonked_a,9u#,x_height#,the_ogonek_depth);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup fine.nib;
pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
rt x4r=hround(w-2.5u+.5stem);
top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
& pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
x5=x4; x7=w; hook_out(5,6,7); % closing hook
filldraw circ_stroke z4e--z5e; % stem
penlabels(0,1,2,3,4,5,6,7);
path p.l;
p.l=if skewed: z5l{-u,-x_height}...z6l{right}...{up}z7l
else: z5l{down}...z6l{right}...{x7-(x5+2.5u),x_height}z7l fi;
ogonek_breadth=xvair; ogonek_pos=point .9 of p.l;
put_ogonek(if known ogonek_pen: ogonek_pen else: fine fi);
endchar; % italic a with ogonek
cmchar "Italic letter accented c";
beginchar_twice(accented_c,8u#,x_height#,0);
italcorr x_height#*slant-u#;
adjust_fit(0,0); pickup fine.nib;
pos0(flare,0); pos1(hair,0); pos2(vair,90);
pos3(curve,180); pos4(vair,270); pos5(hair,320);
x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
path p; p=z4{right}..z5..z6;
filldraw stroke pulled_arc.e(2,3)
& pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
penlabels(0,1,2,3,4,5,6);
hpos_corr=-.25u; put_accent;
repeat_once
endchar; % italic accented c
cmchar "Italic letter e with ogonek";
beginchar(ogonked_e,8u#,x_height#,the_ogonek_depth);
italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
adjust_fit(0,0); pickup fine.nib;
numeric heavy_hair; heavy_hair=hround .2[hair,stem];
pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
pos3(curve,180); pos4(vair,270); pos5(hair,320);
x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
& pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
penlabels(0,1,2,3,4,5,6);
path p.r; p.r=pulled_arc.r(3,4)...{direction 1 of p}z5r;
def the_pen=
if known ogonek_pen: ogonek_pen else: fine fi
enddef;
numeric tt; % the time...
tt=if hefty: 2.8 else: 2.6 fi;
join_angle=angle((direction tt of p.r) rotated 180);
ogonek_breadth=xvair;
ogonek_pos=point tt of p.r+.5(the_pen-fine)*
unitvector((direction tt of p.r) rotated 90);
put_ogonek(the_pen);
endchar; % italic e with ogonek
cmchar "Italic letter crossed l";
beginchar_twice(crossed_l,4u#,asc_height#,0);
l_width#:=4u#;
italcorr max(1/3x_height#*slant+.5hair#+.5u#,asc_height#*slant+.5stem#-2u#);
charwd_:=charwd; adjust_fit(if monospace:u#,u# else: 0,0 fi);
pickup fine.nib;
x2-.5stem=hround(1.5u-.5stem);
x4=w; hook_out(2,3,4); % closing hook
pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem
sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
penlabels(1,2,3,4);
if not monospace:
charwd:=charwd_; adjust_fit(.25u#,if is_bold: .75 fi\\ u#);
fi
% some funny fonts have an extremally small |jut|:
numeric l_jut; l_jut=.5stem+max(limit_dist,if hefty: .8 fi\\ jut);
put_cross(l_jut,1.15l_jut);
repeat_once
endchar; % italic crossed l
cmchar "Italic letter accented n";
beginchar_twice(accented_n,10u#,x_height#,0);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup fine.nib;
x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
hook_in(0,a,1); % opening hook
filldraw circ_stroke z2e--z1e; % left stem
x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
x7=w; hook_out(5,6,7)(skewed); % closing hook
filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
penlabels(0,a,1,2,3,4,5,6,7);
hpos_corr=-.5u; put_accent;
repeat_once
endchar; % italic accented n
cmchar "Italic letter accented o";
beginchar_twice(accented_o,9u#,x_height#,0);
italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
adjust_fit(0,0); pickup fine.nib;
pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
& pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
penlabels(1,2,3,4);
put_accent;
repeat_once
endchar; % italic accented o
cmchar "Italic letter accented s";
beginchar_twice(accented_s,5.25u#+max(1.75u#,flare#),x_height#,0);
italcorr x_height#*slant-.5u#;
adjust_fit(0,0); pickup fine.nib;
numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
y0-.5ess=y7l+.55(y2r-y7l-ess);
lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
interim superness:=more_super;
filldraw stroke super_arc.e(2,3) & z3e{down}
..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
pos1(hair,0); pos10(hround .75[hair,flare],0);
pos2'(vair,90); z2'=z2;
pos8(hair,-180); pos9(flare,-180);
rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
bulb(2',1,10); bulb(7,8,9); % bulbs
penlabels(0,1,2,3,4,5,6,7,8,9,10);
hpos_corr=-.5u; put_accent;
repeat_once
endchar; % italic accented s
cmchar "Italic letter accented z";
beginchar_twice(accented_z,5.5u#+max(1.5u#,stem#),x_height#,0);
italcorr x_height#*slant+.5hair#;
adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
pair p; p=(z4-z5) yscaled 2;
filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
filldraw stroke z5e{p}..{p}z4e; % diagonal
penlabels(1,2,3,4,5,6,7,8);
hpos_corr=-.5u; put_accent;
repeat_once
endchar; % italic accented z
cmchar "Italic letter dotted z";
beginchar_twice(dotted_z,5.5u#+max(1.5u#,stem#),x_height#,0);
italcorr x_height#*slant+.5hair#;
adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
pair p; p=(z4-z5) yscaled 2;
filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
filldraw stroke z5e{p}..{p}z4e; % diagonal
penlabels(1,2,3,4,5,6,7,8);
put_dot(fine,flare#);
repeat_once
endchar; % italic dotted z
endinput;
%%\end
|