summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/pl/pl_mlk.mf
blob: 36fd2969a96a698ec2a59f2006141afd2ad4787e (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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
% ---------------------------------------------------------------------------
% This is PL_MLK.MF (mał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.09a, 30th March 2020 (see README.ENG)
% ---------------------------------------------------------------------------
% AUTHORS OF ADAPTATION: Bogusław Jackowski and Marek Ryćko
% ---------------------------------------------------------------------------
% 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