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