diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/bbold/bbparams.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/bbold/bbparams.mf | 205 |
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. + + |