]> 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 % "f" obviously has a _lot_ bigger slant than "p" (see Wanske p.239)
98 % however; perhaps we need two f symbols:
99 %  - a super-slanted one used in "f" "mf" "sfz" "sf", and
100 %  - a more normal-slanted in "ff" "fff" "fp" "fp" (see Wanske p.241)
101 %
102 % looking at professionally typeset music reveals that typesetters 
103 % are somewhat unsure about slanting in "mf", "fp", "sfz"
104
105 % "f" and "p" (in any combination) are a lot (factor two) fatter than
106 % "s", "m", and "z".  sometimes the "m" and "z" are a bit fatter than
107 % "s".
108
109 slant:=.68;      % tilt ratio $(\Delta x/\Delta y)$
110 crisp#:=M*19/36pt#;    % diameter of serif corners
111 tiny#:=M*19/36pt#;    % diameter of rounded corners
112 fine#:=M*20/36pt#;    % diameter of sharply rounded corners
113 thin_join#:=M*20/36pt#;    % width of extrafine details
114 stem#:=M*72/36pt#;    % lowercase stem breadth
115 flare#:=M*52/36pt#;    % diameter of bulbs or breadth of terminals
116
117 mode_setup;
118 font_setup;
119
120
121
122
123 slant:=.28;      % tilt ratio $(\Delta x/\Delta y)$
124 stem#:=M*32/36pt#;    % lowercase stem breadth
125 ess#:=M*28/36pt#;      % breadth in middle of lowercase s
126 hair#:=M*14/36pt#;    % lowercase hairline breadth
127 vair#:=M*9/36pt#;    % vertical diameter of hairlines
128 flare#:=M*36/36pt#;    % diameter of bulbs or breadth of terminals
129
130 crisp#:=M*13/36pt#;    % diameter of serif corners
131 tiny#:=M*13/36pt#;    % diameter of rounded corners
132 fine#:=M*10/36pt#;    % diameter of sharply rounded corners
133 thin_join#:=M*10/36pt#;    % width of extrafine details
134 curve#:=M*43/36pt#;    % lowercase curve breadth
135
136 % Chester, Breitkopf suggest smaller sizes of these other chars,
137 % using the x-height as reference point.
138 x_height#:=M*135/36pt#;    % height of lowercase without ascenders
139
140 font_setup;
141
142 input feta-ital-m;
143 input feta-ital-r;
144 input feta-ital-s;
145 input feta-ital-z;
146 input feta-new-code;
147
148 font_slant slant;
149 font_x_height x_height#;
150 font_quad 18u#;             % to have a working em unit
151
152
153
154 %%fet_endfont("feta-din");
155