]> git.donarmstrong.com Git - lilypond.git/blob - mf/feta-din-code.mf
''
[lilypond.git] / mf / feta-din-code.mf
1 % feta-din.mf
2 %
3 % from cmbxti10.mf
4 %
5 % feta dynamics
6 % too easy now to use this copy from cm, but we might want to do ourselves
7 %
8 % 16pt staff: \font\dynfont=feta-din10 scaled \magstep1
9 % 20pt staff: \font\dynfont=feta-din10 scaled \magstep2
10
11 %
12 % Computer Modern Bold Extended Text Italic 10 point
13 %
14 % font_identifier:="CMBXTI"; font_size 10pt#;
15 %
16
17 input cmbase;
18
19
20 %
21 % We bluntly multiply by font-size / 10pt#,
22 % before we did plain scaling anyway.
23 %
24
25 M:=design_size/10;
26
27 u#:=M*21.2/36pt#;      % unit width
28 width_adj#:=M*11/36pt#;    % width adjustment for certain characters
29 serif_fit#:=M*0pt#;    % extra sidebar near lowercase serifs
30 cap_serif_fit#:=M*7/36pt#;  % extra sidebar near uppercase serifs
31 letter_fit#:=M*11/36pt#;    % extra space added to all sidebars
32
33 body_height#:=M*270/36pt#;  % height of tallest characters
34 asc_height#:=M*250/36pt#;    % height of lowercase ascenders
35 cap_height#:=M*247/36pt#;    % height of caps
36 fig_height#:=M*232/36pt#;    % height of numerals
37 x_height#:=M*160/36pt#;    % height of lowercase without ascenders
38 math_axis#:=M*90/36pt#;    % axis of symmetry for math symbols
39 bar_height#:=M*85/36pt#;    % height of crossbar in lowercase e
40 comma_depth#:=M*70/36pt#;    % depth of comma below baseline
41 desc_depth#:=M*70/36pt#;    % depth of lowercase descenders
42
43 crisp#:=M*13/36pt#;    % diameter of serif corners
44 tiny#:=M*13/36pt#;    % diameter of rounded corners
45 fine#:=M*10/36pt#;    % diameter of sharply rounded corners
46 thin_join#:=M*10/36pt#;    % width of extrafine details
47 hair#:=M*20/36pt#;    % lowercase hairline breadth
48 stem#:=M*38/36pt#;    % lowercase stem breadth
49 curve#:=M*43/36pt#;    % lowercase curve breadth
50 ess#:=M*35/36pt#;      % breadth in middle of lowercase s
51 flare#:=M*42/36pt#;    % diameter of bulbs or breadth of terminals
52 dot_size#:=M*53/36pt#;    % diameter of dots
53 cap_hair#:=M*22/36pt#;    % uppercase hairline breadth
54 cap_stem#:=M*49/36pt#;    % uppercase stem breadth
55 cap_curve#:=M*52/36pt#;    % uppercase curve breadth
56 cap_ess#:=M*50/36pt#;    % breadth in middle of uppercase s
57 rule_thickness#:=M*.6pt#;    % thickness of lines in math symbols
58
59 dish#:=M*1/36pt#;      % amount erased at top or bottom of serifs
60 bracket#:=M*10/36pt#;    % vertical distance from serif base to tangent
61 jut#:=M*27/36pt#;      % protrusion of lowercase serifs
62 cap_jut#:=M*39/36pt#;    % protrusion of uppercase serifs
63 beak_jut#:=M*10/36pt#;    % horizontal protrusion of beak serifs
64 beak#:=M*70/36pt#;    % vertical protrusion of beak serifs
65 vair#:=M*13/36pt#;    % vertical diameter of hairlines
66 notch_cut#:=M*10pt#;    % maximum breadth above or below notches
67 bar#:=M*17/36pt#;      % lowercase bar thickness
68 slab#:=M*17/36pt#;    % serif and arm thickness
69 cap_bar#:=M*17/36pt#;    % uppercase bar thickness
70 cap_band#:=M*17/36pt#;    % uppercase thickness above/below lobes
71 cap_notch_cut#:=M*10pt#;    % max breadth above/below uppercase notches
72 serif_drop#:=M*3/36pt#;    % vertical drop of sloped serifs
73 stem_corr#:=M*2/36pt#;    % for small refinements of stem breadth
74 vair_corr#:=M*1.5/36pt#;    % for small refinements of hairline height
75 apex_corr#:=M*0pt#;    % extra width at diagonal junctions
76
77 o#:=M*6/36pt#;      % amount of overshoot for curves
78 apex_o#:=M*6/36pt#;    % amount of overshoot for diagonal junctions
79
80 slant:=.25;      % tilt ratio $(\Delta x/\Delta y)$
81 fudge:=1;      % factor applied to weights of heavy characters
82 math_spread:=.5;    % extra openness of math symbols
83 superness:=8/11;    % parameter for superellipses
84 superpull:=1/8;      % extra openness inside bowls
85 beak_darkness:=.4;    % fraction of triangle inside beak serifs
86 ligs:=2;      % level of ligatures to be included
87
88 square_dots:=false;    % should dots be square?
89 hefty:=false;      % should we try hard not to be overweight?
90 serifs:=true;      % should serifs and bulbs be attached?
91 monospace:=false;    % should all characters have the same width?
92 variant_g:=true;    % should an italic-style g be used?
93 low_asterisk:=false;    % should the asterisk be centered at the axis?
94 math_fitting:=false;    % should math-mode spacing be used?
95
96
97
98
99 % "f" obviously has a _lot_ bigger slant than "p" (see Wanske p.239)
100 % however; perhaps we need two f symbols:
101 %  - a super-slanted one used in "f" "mf" "sfz" "sf", and
102 %  - a more normal-slanted in "ff" "fff" "fp" "fp" (see Wanske p.241)
103 %
104 % looking at professionally typeset music reveals that typesetters 
105 % are somewhat unsure about slanting in "mf", "fp", "sfz"
106
107 % "f" and "p" (in any combination) are a lot (factor two) fatter than
108 % "s", "m", and "z".  sometimes the "m" and "z" are a bit fatter than
109 % "s".
110
111 slant:=.68;      % tilt ratio $(\Delta x/\Delta y)$
112 crisp#:=M*19/36pt#;    % diameter of serif corners
113 tiny#:=M*19/36pt#;    % diameter of rounded corners
114 fine#:=M*20/36pt#;    % diameter of sharply rounded corners
115 thin_join#:=M*20/36pt#;    % width of extrafine details
116 stem#:=M*72/36pt#;    % lowercase stem breadth
117 flare#:=M*52/36pt#;    % diameter of bulbs or breadth of terminals
118
119 mode_setup;
120 font_setup;
121
122 num=-1;
123 xbar:=M*u;
124
125 save fcode;
126
127 fcode = 101;
128 input feta-ital-f;
129
130 bar#:=M*17/36pt#;      % lowercase bar thickness
131 slant:=.38;      % tilt ratio $(\Delta x/\Delta y)$
132 stem#:=M*58/36pt#;    % lowercase stem breadth
133 font_setup;
134 xbar:=M*.4u;
135
136 save fcode;
137
138 fcode = 102;
139
140 input feta-ital-f;
141
142 slant:=.28;      % tilt ratio $(\Delta x/\Delta y)$
143 stem#:=M*32/36pt#;    % lowercase stem breadth
144 ess#:=M*28/36pt#;      % breadth in middle of lowercase s
145 hair#:=M*14/36pt#;    % lowercase hairline breadth
146 vair#:=M*9/36pt#;    % vertical diameter of hairlines
147 flare#:=M*36/36pt#;    % diameter of bulbs or breadth of terminals
148
149 crisp#:=M*13/36pt#;    % diameter of serif corners
150 tiny#:=M*13/36pt#;    % diameter of rounded corners
151 fine#:=M*10/36pt#;    % diameter of sharply rounded corners
152 thin_join#:=M*10/36pt#;    % width of extrafine details
153 curve#:=M*43/36pt#;    % lowercase curve breadth
154
155 % Chester, Breitkopf suggest smaller sizes of these other chars,
156 % using the x-height as reference point.
157 x_height#:=M*135/36pt#;    % height of lowercase without ascenders
158
159 font_setup;
160
161 input feta-ital-m;
162 input feta-ital-r;
163 input feta-ital-s;
164 input feta-ital-z;
165 input feta-new-code;
166
167 font_slant slant;
168 font_x_height x_height#;
169 font_quad 18u#;             % to have a working em unit
170
171
172
173 %%fet_endfont("feta-din");
174