summaryrefslogtreecommitdiff
path: root/fonts/icelandic/MF/iromspl.mf
blob: 09be672f636b32b36dc1c22df1c0eeeb6ea702c7 (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
% This is ROMSPL.MF in text format, as of Mar 31, 1986.
% This file contains special letters and letter combinations,
% compatible with the alphabet `{\tt romanl}'.
% *********************************************************************
% Öslenskar breytingar.  7. jan 1987. (IROMSPL.MF)
%
% L¡tiÐ ‘ og gegnustrikaÐ ” flutt ¡ ICELAND3.MF
% ét fara h‚r oe, og es-zet og /o f‘r nìtt t”lugildi
% *********************************************************************
% Codes \0020--\0021 and \0031--\0034 are generated.

cmchar "Dotless letter i";
beginchar(oct"020",5u#,x_height#,0);
italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
pickup tiny.nib; pos1(stem',0); pos2(stem',0);
if odd(w-stem'): change_width; fi
lft x1l=hround(.5w-.5stem'); x1=x2;
top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
filldraw stroke z1e--z2e;  % stem
if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop);  % upper serif
 dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi  % lower serif
penlabels(1,2); endchar;

cmchar "Dotless letter j";
beginchar(oct"021",5.5u#,x_height#,desc_depth#);
italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
 serif_fit#-2stem_shift# if monospace:-.5u# fi);
pickup tiny.nib; pos1(stem',0); pos2(stem',0);
rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
filldraw stroke z1e--z2e;  % stem
if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop);  % upper serif
 pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
 x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
 if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
 (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
 filldraw stroke z2e{down}...z5e{left};  bulb(5,6,7); % arc and bulb
else: pickup fine.nib; pos2'(stem',0); z2'=z2;
 pos6(.2[vair,stem'],-90); pos7(vair,-90);
 lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
 x3r=x1r; top y4r=min(2x_height,h+1);
 (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
 z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
 x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
 filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
  & term.e(6,7,left,1,4); fi  % arc and terminal
penlabels(1,2,5,6,7); endchar;

%cmchar "German letter es-zet (sharp s)";
%beginchar(oct"031",4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
%italcorr asc_height#*slant-u#;
%adjust_fit(serif_fit#,0);
%pickup tiny.nib; pos1(stem',0); pos2(stem',0);
%lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
%penpos3(vair-fine,90); fine.top y3r=h+oo;
%filldraw stroke z1e--z2e;  % stem
%numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
%pickup fine.nib; pos4(curve',0); pos5(vair,-90);
%pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
%top y5l=x_height; lft x5=min(lft x4l,hround(stem_edge+u));
%filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
% & pulled_super_arc.e(3,4)(.5superpull)
% & pulled_super_arc.e(4,5)(.5superpull);  % upper bowl
%pos5'(vair,90); z5'=z5; pos6(curve',0); pos7(vair,-90);
%rt x6r=hround(w-.5u)+3eps; y6=.4x_height; bot y7r=-oo;
%if serifs: pos8(hair,-180) else: pos8(vair,-110) fi;
%lft x8r=min(hround(stem_edge+.5u+1),lft x8r+x6r-2eps-x8l);
%x7=max(x8l+eps,.4[lft x8r,x6]);
%filldraw stroke pulled_super_arc.e(5',6)(.5superpull)
% & pulled_super_arc.e(6,7)(.5superpull);  % lower bowl
%if serifs: pos9(5/7[vair,flare],-180);
% y9-(x9-lft x9r)=vround .07x_height; bulb(7,8,9);  % bulb
% penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
% serif(0,1,a,0,-jut);  % bar
% dish_serif(1,2,b,1/3,jut,c,0,epsilon);  % serif
%else: bot y8r=vround .01h; x8l:=good.x x8l; y8l:=good.y(y8l+.5);
% filldraw stroke term.e(7,8,left,1,4); fi  % terminal
%penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
%
%cmchar "The ligature ae";
%beginchar(oct"032",13u#,x_height#,0);
%italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
%adjust_fit(0,0);
%numeric left_curve,right_curve;
%if monospace: right_curve=left_curve=fudged.stem;
%else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
%right_curve=max(tiny.breadth,hround(curve-if serifs:6 
%else:8 fi\\stem_corr));fi
%pickup tiny.nib; pos11(right_curve,0);
%pos12(vair,90); pos13(mfudged.stem,180);
%y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
%rt x11r=hround min(w-.5u,w-u+.5right_curve);
%lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
%{{interim superness:=more_super;
% filldraw stroke super_arc.e(11,12)}};  % right bowl of e
%y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
%if serifs: pos14(vair',270); pos15(mfudged.hair,360);
% y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
% (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
% filldraw stroke pulled_arc.e(12,13)
%  & pulled_super_arc.e(13,14)(.8superpull)
%  ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
%else: pos14(vair,270);
% filldraw stroke super_arc.e(12,13)
%  & super_arc.e(13,14);  % left bowl and arc of e
% pickup fine.nib; pos14'(vair,270); z14=z14';
% pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
%y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y 
% y15l; x15l:=good.x x15l;
% filldraw stroke term.e(14',15,right,1,4); fi  % right terminal
%y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; 
% x11'l=x11'r=x11; x10l=x10r=x13;
%fill stroke z10e--z11'e;  % crossbar
%pickup fine.nib; top y3r=h+vround 1.5oo;
%if serifs: pos1(flare,180); pos2(mfudged.hair,180);
% pos3(vair,90);  lft x1r=hround max(u,2.1u-.5flare); x3=4u;
% y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
% bulb(3,2,1);  % bulb
%else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
% pos3(1/8[vair,thin_join],90);
% x3=4.3u; top y1r=vround .82[bar_height,top y3r];
% filldraw stroke term.e(3,1,left,.9,4); fi  % left terminal
%pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
%pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
%filldraw stroke super_arc.e(3,4)&z4e--z5e;  % arc and stem
%pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
%pos7(left_curve,180);
%lft x7r=hround max(.5u,1.5u-.5left_curve); 
%y7=1/3[top y8l,top y6r];
%pos8(vair,270); x8l=3.75u; bot y8r=-oo;
%pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
%(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
%{{interim superness:=more_super;
% filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
%if y9<y5: 
%filldraw stroke z5e{down}..{down}z9e; 
%fi  % link (usually hidden)
%penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); 
%endchar;

%cmchar "The ligature oe";
%beginchar(oct"033",14u#,x_height#,0);
%italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
%adjust_fit(0,0);
%numeric left_curve,right_curve;
%if monospace: right_curve=left_curve=fudged.stem;
%else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
% right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
%pickup tiny.nib; pos11(right_curve,0);
%pos12(vair,90); pos13(mfudged.stem,180);
%y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
%rt x11r=hround min(w-.5u,w-u+.5right_curve);
%lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
%{{interim superness:=more_super;
% filldraw stroke super_arc.e(11,12)}};  % right bowl of e
%y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
%if serifs: pos14(vair',270); pos15(mfudged.hair,360);
% y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
% (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
% filldraw stroke pulled_arc.e(12,13)
%  & pulled_super_arc.e(13,14)(.8superpull)
%  ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
%else: pos14(vair,270);
% filldraw stroke super_arc.e(12,13)
%  & super_arc.e(13,14);  % left bowl and arc of e
% pickup fine.nib; pos14'(vair,270); z14=z14';
% pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
% y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
% filldraw stroke term.e(14',15,right,1,4); fi  % terminal
%y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
%fill stroke z10e--z11'e;  % crossbar
%pickup fine.nib; pos1(vair,90); pos3(vair,-90);
%pos2(left_curve,180); pos4(mfudged.stem,0);
%lft x2r=hround max(.5u,1.25u-.5curve);
%z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
%y2=y4; y2l:=y4l:=.52h;
%filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
%filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
%penlabels(1,2,3,4,10,11,12,13,14,15); endchar;

iff known scand_lower_o: cmchar "Scandinavian letter o/slash";
beginchar(oct"074",9u#,x_height#+.5desc_depth#,.5desc_depth#);
italcorr h#*slant-u#-max(.5fudge*stem#,.75u#)+.5vair#;
adjust_fit(0,0);
penpos1(vair,90); penpos3(vair,-90);
penpos2(fudged.stem,180); penpos4(fudged.stem,0);
x2r=hround max(.5u,1.25u-.5fudged.stem);
x4r=w-x2r; x1=x3=.5w;
y1r=x_height+vround 1.5oo; y2=y4=.5x_height-vair_corr; y3r=-oo;
penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
 & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle;  % bowl
x5=x4; x6=x2; y5=h; y6=-d;
numeric theta; theta=angle(z5-z6)-90;
pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
filldraw stroke z5e--z6e;  % diagonal
penlabels(1,2,3,4,5,6); endchar;