summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/bbold/bbparams.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/bbold/bbparams.mf')
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbparams.mf205
1 files changed, 205 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbparams.mf b/Master/texmf-dist/fonts/source/public/bbold/bbparams.mf
new file mode 100644
index 00000000000..b344ccb1584
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbparams.mf
@@ -0,0 +1,205 @@
+% Blackboard bold parameters, Alan Jeffrey 14--18 Dec 1989.
+%
+% These parameters are deduced from those set in bboldNN.mf.
+%
+% The only horizontal parameter we take in is the unit u#,
+% from which we calculate all the horizontal distances.
+%
+% The distance between the two strokes in a fat line is fatness.
+
+fatness# := 2.3u#;
+
+% The size of a pen is rule_thickness.
+
+pen_size# := rule_thickness#;
+
+% Characters with space inside them (for example the
+% gap between the bar and the dot in a ! have either smallspace,
+% space# or bigspace# worth of space.
+
+smallspace# := u#;
+space# := 2u#;
+bigspace# := 3u#;
+
+% Characters with bits jutting out of them (for example the feet in
+% ] or the bar in f) have jut# worth of stick-outiness.
+
+jut# := 1.5u#;
+bigjut# := 2.5u#;
+
+% Some characters are exactly fatness# + pen_size# wide, as they are
+% drawn with just one vertical line.
+%
+% tiny --- I, i, l, |, ,, :, ;, ., `, ', !.
+%
+% Others have a small amount jutting out from the side, like the
+% top and bottom of a ].
+%
+% tiny+jut --- [, ], (, ).
+
+tiny# := fatness# + pen_size#;
+
+% Upper case characters come in three sizes:
+%
+% small --- B, E, F, J, K, L, P, R, S, Gamma, Pi, ?, $, /, \,
+%
+% medium --- A, C, D, G, H, M, N, O, Q, T, U, V, X, Y, Z,
+% Delta, Theta, Lamba, Xi, Sigma, Upsilon, Phi, Psi, Omega,
+%
+% big --- W.
+
+smallcap# := 9u#;
+medcap# := 10u#;
+bigcap# := 14u#;
+
+% Lower case characters come in three sizes:
+%
+% small --- f, j, s, t,
+%
+% small + fatness --- h, k, n, r,
+%
+% medium --- a, c, d, e, g, o, q, u, v, x, y, z,
+%
+% medium + fatness --- b, p,
+%
+% big --- m, w.
+%
+% The letters with verticals at the left have fatness added on
+% so that the curves are the same size as the other letters.
+
+smalllower# := 6u#;
+medlower# := 7.5u#;
+biglower# := 11u#;
+
+% Numerals are all the same size.
+
+numeral# := 8u#;
+
+% Arithmetic operators (in this case just +) are all the same size.
+
+arithmetic# := 12u#;
+
+% Characters have three kinds of space at the side:
+%
+% small --- for example around a T,
+%
+% medium --- for example around an O,
+%
+% large --- for example around an I.
+
+smallgap# := 1/2u#;
+medgap# := 1u#;
+biggap# := 1.5u#;
+
+% Whereas we've only got one horizontal measurement stolen from cmr,
+% there are lots of vertical ones. We can use these to work out
+% our measurements.
+%
+% Characters can have various top positions:
+%
+% ATop --- the top of all capitals, Greek, and some punctuation,
+%
+% aTop --- the top of lower case without ascenders,
+%
+% bTop --- the top of lower case with ascenders,
+%
+% iTop --- the top of i and j,
+%
+% oneTop --- the top of numerals,
+%
+% bracketTop --- the top of a bracket (also the top of the body size).
+
+ATop# := cap_height#;
+aTop# := x_height#;
+bTop# := asc_height#;
+oneTop# := fig_height#;
+bracketTop# := body_height#;
+iTop# := min(x_height# + space# + fatness#, asc_height#);
+
+% The bottoms of characters can be:
+%
+% aBottom --- the base line,
+%
+% gBottom --- the bottom of a descender,
+%
+% bracketBottom --- the bottom of a bracket (also the bottom of the body).
+
+aBottom# := 0pt#;
+gBottom# := -desc_depth#;
+.5 [bracketBottom#, bracketTop#] = math_axis#; % Brackets are centered.
+
+% Various characters such as A, B, G, e, and 3 have bars in them.
+
+ABar# := .25 [aBottom#, ATop#];
+BBar# := .52 [aBottom#, ATop#]; % number nicked from cmr.
+GBar# := .50 [aBottom#, ATop#];
+eBar# := bar_height#;
+threeBar# := .54[aBottom#, oneTop#]; % number nicked from cmr.
+
+% The top of a Q's tail is at QTailTop, and the bottom is at QTailBottom.
+
+QTailTop# := .28 [aBottom#, ATop#]; % number nicked from cmr.
+QTailBottom# := aBottom# - comma_depth#; % number nicked from cmr.
+
+% Various sorts of letters have various amounts of curl in them.
+%
+% CCurl --- the amount the end of a C curls,
+% cCurl --- the amount the end of a c curls,
+% gCurl --- the amount the tail of a g curls,
+% hCurl --- the distance from the bottom of an h to the point where
+% the right of the curve becomes vertical.
+
+CCurl# := .2 (ATop# - aBottom#);
+cCurl# := .2 (aTop# - aBottom#);
+gCurl# := .2 (aBottom# - gBottom#);
+hCurl# := .4 (aTop# - aBottom#);
+
+% The numbers five, six and eight have bowls, which are sixBowl# tall.
+
+sixBowl# := aTop# - aBottom#; % These bowls are as tall as an a.
+
+% A less than (and a greater than) is lessthan# tall.
+
+lessthan# := math_spread [5/4x_height#, 3/2x_height#]; % Numbers from cmr.
+
+% Right, I'll now turn these nice sharp measurements into grotty
+% approximate pixelly ones.
+
+define_corrected_pixels (o);
+
+define_whole_blacker_pixels
+ (pen_size);
+
+define_whole_pixels
+ (fatness, jut, bigjut, smallspace, space, bigspace);
+
+define_whole_vertical_pixels
+ (CCurl, cCurl, gCurl, hCurl, sixBowl);
+
+define_whole_top_pixels
+ (ATop, aTop, bTop, oneTop, bracketTop, QTailTop);
+
+define_whole_bottom_pixels
+ (QTailBottom, aBottom, gBottom, bracketBottom);
+
+pickup pencircle scaled pen_size;
+define_good_y_pixels
+ (ABar, BBar, GBar, eBar, threeBar);
+
+% And now some handy numbers, which I don't need sharp versions of.
+
+aMiddle := .5[aBottom, aTop];
+dashMiddle := .61803 [aBottom, aTop]; % Number stolen from cmr.
+
+% I can now set the font parameters for the TFM files, stolen from cmr.
+
+font_normal_space := 6u#;
+font_normal_stretch := 3u#;
+font_normal_shrink := 2u#;
+font_quad := 18u#;
+font_extra_space := 2u#;
+font_x_height := x_height#;
+
+% And that's that.
+
+