diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/bbold')
18 files changed, 4279 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbbase.mf b/Master/texmf-dist/fonts/source/public/bbold/bbbase.mf new file mode 100644 index 00000000000..dd1f3c633b0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbbase.mf @@ -0,0 +1,374 @@ +% Blackboard bold base file, containing lots of horrible hacks. +% Alan Jeffrey, 12--18 Dec 1989. + +% DIGITIZATION + +% I'm doing all my own digitization, so I don't need help from MF. +autorounding := 0; + +% To get the unsharp version of x#, say unsharp x#. +def unsharp = hppp * enddef; + +% The only pen I'm working with is of size pen_size. This makes life +% rather easier. To find the x-coordinate whose left-hand edge is +% at hround x, say leftround x, and similarly for rightround, +% topround and bottomround. +def leftround expr x = hround x + 1/2 pen_size enddef; +def rightround expr x = hround x - 1/2 pen_size enddef; +def topround expr y = vround y - 1/2 pen_size enddef; +def bottomround expr y = vround y + 1/2 pen_size enddef; + +% Using this, I can give the equivalent of define_whole_pixels... +def define_whole_top_pixels (text t) = + forsuffixes $ = t: + $ := topround unsharp $.#; + endfor +enddef; + +def define_whole_bottom_pixels (text t) = + forsuffixes $ = t: + $ := bottomround unsharp $.#; + endfor +enddef; + +% POINTS + +% The point y~x is short for (x,y). The reason for switching the +% points around is that I find it easier to say Top~Left than +% (Left, Top). +primarydef x ~ y = (y,x) enddef; + +% To find the average of two points, say p -+- q. +primarydef x ~ y = (y,x) enddef; +tertiarydef x -+- y = .5[x,y] enddef; + +% To get the point 1/2fatness above p, say above p. This is useful +% for drawing lines fatness in width. Similarly we have commands +% below, leftof and rightof. +def above secondary p = + p + 1/2fatness * up +enddef; + +def below secondary p = + p + 1/2fatness * down +enddef; + +def leftof secondary p = + p + 1/2fatness * left +enddef; + +def rightof secondary p = + p + 1/2fatness * right +enddef; + +% The command farleftof is equivalent to leftof leftof, and similarly +% farrightof. +def farleftof secondary p = + p + fatness * left +enddef; + +def farrightof secondary p = + p + fatness * right +enddef; + +% To get curves with o-correction, we need to be able to move +% o pixels up or down. +def oabove secondary p = + p + o * up +enddef; + +def obelow secondary p = + p + o * down +enddef; + +% DECLARATIONS + +% To declare a new variable foo of type T, say var (T) foo. +def var (text type) text declarations = + save declarations; + type declarations +enddef; + +% PATHS + +% Given a cyclic path p, outline p draws the path and fills the inside +% with white. This is stolen from the MF book, exercise 13.11. +def outline expr c = + begingroup + picture region; + region := nullpicture; + interim turningcheck := 0; + addto region contour c; + cull region dropping (0,0); + cullit; + addto currentpicture also -region; + cullit; + draw c + endgroup +enddef; + +% Given a path p, leftside p is the path 1/2 fatness to its left, +% and similarly rightside. +def leftside primary apath = + apath shifted (1/2fatness * left) +enddef; + +def rightside primary apath = + apath shifted (1/2fatness * right) +enddef; + +% Given a path p, fatten p draws the leftside of p, +% the rightside of p, and joins them up with straight lines. +def fatten expr apath = + leftside apath + -- (reverse rightside apath) + -- cycle +enddef; + +% Given a point p, splodge p draws an o-corrected circle of radius +% fatness around p. +def splodge expr apoint = + above apoint + o*up {right} + .. rightof apoint + o*right {down} + .. below apoint + o*down {left} + .. leftof apoint + o*left {up} + .. cycle +enddef; + +% The command splodgel does the same, but doesn't close the cycle, +% and leaves the current point at the left of the circle. +def splodgel tertiary apoint = + leftof apoint + o*left {up} + .. above apoint + o*up {right} + .. rightof apoint + o*right {down} + .. below apoint + o*down {left} + .. leftof apoint + o*left {up} +enddef; + +% Similarly, splodger leaves the current point at the right of the +% circle. +def splodger tertiary apoint = + rightof apoint + o*right {down} + .. below apoint + o*down {left} + .. leftof apoint + o*left {up} + .. above apoint + o*up {right} + .. rightof apoint + o*right {down} +enddef; + +% CLIPPING + +% sometime (p, q) gives the time along p when it intersects q. +def sometime (expr apath, bpath) = + xpart (apath intersectiontimes bpath) +enddef; + +% othertime (p, q) gives another time at which p intersects q. +def othertime (expr apath, bpath) = + length apath - sometime (reverse apath) (reverse bpath) +enddef; + +% firsttime (p, q) gives the smallest of sometime (p,q) and othertime (p,q). +def firsttime (expr apath, bpath) = + min (sometime (apath) (bpath), othertime (apath) (bpath)) +enddef; + +% lasttime (p, q) gives the largest of the two times. +def lasttime (expr apath, bpath) = + max (sometime (apath) (bpath), othertime (apath) (bpath)) +enddef; + +% We can then clip p with q by finding the subpath of p from 0 to +% the time p intersects q. +def cliponce (expr apath, clippath) = + subpath (0, sometime (apath) (clippath)) of apath +enddef; + +% Similarly, if p intersects q twice, we can find the path between +% the two times it intersects with cliptwice. +def cliptwice (expr apath, clippath) = + subpath + (firsttime (apath) (clippath), lasttime (apath) (clippath)) + of apath +enddef; + +% Given a path p and two paths q and r which intersect p, +% we can find the path between when p crosses q and when p crosses r. +% someclipbetween (p, q, r) will always start at q and finish at r. +def someclipbetween (expr apath, firstclip, secondclip) = + subpath + (sometime (apath) (firstclip), + sometime (apath) (secondclip)) + of + apath +enddef; + +% firstclipbetween does the same, but if p intersects q and r more +% than once, it gives the first clipping. +def firstclipbetween (expr apath, firstclip, secondclip) = + subpath + (firsttime (apath) (firstclip), + firsttime (apath) (secondclip)) + of + apath +enddef; + +% lastclipbetween gives the last clipping. +def lastclipbetween (expr apath, firstclip, secondclip) = + subpath + (lasttime (apath) (firstclip), + lasttime (apath) (secondclip)) + of + apath +enddef; + +% We can join these together and clip fat lines. +def fatcliponce (expr apath, clippath) = + cliponce (leftside apath) (clippath) + -- someclipbetween (clippath) (leftside apath) (rightside apath) + -- reverse cliponce (rightside apath) (clippath) + -- cycle +enddef; + +def fatcliptwice (expr apath, clippath) = + cliptwice (leftside apath) (clippath) + -- lastclipbetween (clippath) (leftside apath) (rightside apath) + -- cliptwice (rightside apath) (reverse clippath) + -- firstclipbetween (clippath) (rightside apath) (leftside apath) + -- cycle +enddef; + +% BBCHAR. + +% bbchar (c) (l#, w#, r#) (t#, b#) begins a character at code c, +% of width w# with l# gap at the left and r# gap at the right. +% It's topmost point is at t# and its bottommost point at b#. +% From these parameters we calculate Width (the width of the character +% in whole pixels) and hardTop and hardBottom (the exact top and bottom +% of the character). Top is then 1/2 pensize from the top of the character, +% and Bottom is 1/2 pensize from the bottom. This means if we draw a line +% through top, the top of it will exactly touch the top. We then calculate +% Left, Middle, and Right in the same way, using calculateLeftetc. + +def bbchar + (expr code) + (expr sharphardLeft, sharpWidth, sharprightgap) + (expr sharphardTop, sharphardBottom) = + + beginchar + (code) + (sharphardLeft + sharpWidth + sharprightgap) + (max (sharphardTop, 0pt#)) + (max (-sharphardBottom, 0pt#)); + + save Top, Bottom, Horizon, hardTop, hardBottom, + Width, hardLeft, hardRight, Left, Right, Middle; + + hardTop# = sharphardTop; + hardBottom# = sharphardBottom; + Width# = sharpWidth; + hardLeft# = sharphardLeft; + hardRight# = sharphardLeft + sharpWidth; + + define_whole_pixels (Width); + define_whole_vertical_pixels (hardTop, hardBottom); + Top = topround hardTop; + Bottom = bottomround hardBottom; + + Horizon = .5 [Top, Bottom]; + + calculateLeftetc; + + pickup pencircle scaled pen_size; + +enddef; + +def calculateLeftetc = + hardLeft := floor (unsharp hardLeft#); + hardRight := hardLeft + Width; + + Left := (hardLeft + 1/2pen_size); + Middle := (hardLeft + 1/2Width); + Right := (hardRight - 1/2pen_size); +enddef; + +% bbcap is bbchar with the top at ATop# and the bottom at aBottom#. +def bbcap (expr code, leftgap, width, rightgap) = + bbchar (code) (leftgap, width, rightgap) (ATop#, aBottom#); +enddef; + +% bbnum is bbchar with the dimensions of a number hard-wired. +def bbnum (expr code) = + bbchar (code) (medgap#, numeral#, medgap#) (oneTop#, aBottom#); +enddef; + +% For characters such as < and > which appear a lot blacker than the +% others, we can surround the character by beginblacker n ... endblacker, +% which temporarily multiplies fatness by n. +def beginblacker expr blackness = + begingroup + save oldfatness; + oldfatness# := fatness#; + save fatness; + fatness# := oldfatness# * blackness; + define_whole_pixels (fatness) +enddef; + +let endblacker = endgroup; + +% SYMMETRY + +% To try to get characters symmetric, we need to round the width so there +% are the same number of characters on the left of the central vertical +% as there are on the right. So if we are symmetrical around a pen of +% size 2n, we need to make the width even. If we are symmetrical around +% a pen of size 2n+1 we need to make the width odd. This is done with +% roundlike (x) y, which rounds y to be even iff x is even. + +def roundlike (expr x) expr y = + 2 * (round (x -+- y)) - x +enddef; + +% To make the character symmetric, we round Width like pen_size. +def symmetric = + Width := roundlike (pen_size) unsharp Width#; + calculateLeftetc +enddef; + +% To make the character symmetric around a fat vertical, we round +% Width like fatness + pen_size. +def fatsymmetric = + Width := roundlike (fatness + pen_size) unsharp Width#; + calculateLeftetc +enddef; + +% DRAWING THE CHARACTERS ON THE SCREEN + +% makebox and maketicks nicked from cmbase, adjusted for this job. + +def makebox(text rule) = + for y=0, hardBottom, hardTop: + rule((0,y)t_,(w,y)t_); endfor % horizontals + for x=0,hardLeft,hardRight,w: + rule((x,hardBottom)t_,(x,hardTop)t_); endfor % verticals +enddef; + +def maketicks(text rule) = + for y=0, hardBottom, hardTop: + rule((-10,y)t_,(0,y)t_); % horizontals at left + rule((w,y)t_,(w+10,y)t_); % horizontals at right + endfor + for x=0,hardLeft,hardRight,w: + rule((x,hardBottom-10)t_,(x,hardBottom)t_); % verticals at bottom + rule((x,hardTop)t_,(x,hardTop+10)t_); % verticals at top + endfor % verticals at top +enddef; + +% HACKS TO MAKE CMR WORK + +% Some parameters I never use, but are needed by the cmr parameter files. +boolean + square_dots, hefty, serifs, monospace, + variant_g, low_asterisk, math_fitting; + +% And that's that. + diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbgreekl.mf b/Master/texmf-dist/fonts/source/public/bbold/bbgreekl.mf new file mode 100644 index 00000000000..a6b70be9e6a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbgreekl.mf @@ -0,0 +1,684 @@ +% Blackboard bold lower case Greek, Alan Jeffrey, 15--18 Dec 1989. +% +% These characters occupy spaces oct "013" to oct "040", and oct "177". +% This is because ! occupies oct "041" and I have to stick omega +% somewhere. + +% ------------------------------------------------------------------- + +bbchar + (oct "013") + (smallgap#, medlower#, smallgap# + jut#) + (aTop#, aBottom#); + + "Lowercase Greek alpha"; + + % The curve. + var (path) alphapath; + + alphapath + = Top~(Right + jut) {down} + .. obelow Bottom~Middle {left} + .. Horizon~Left {up} + .. oabove Top~Middle {right} + .. Bottom~(Right + jut){right}; + + % The emphasis. + draw + fatcliptwice + (rightof obelow Bottom~Left -- rightof oabove Top~Left) + (alphapath); + + % The curve. + draw alphapath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "014") + (medgap#, smalllower# + fatness#, smallgap#) + (bTop#, gBottom#); + + "Lowercase Greek beta"; + + % The top curve. + var (path) betapath; + + betapath + = aBottom~Left + --- aTop~Left + .. oabove rightof Top~Middle {right} + .. (Top -+- aTop)~Right {down} + .. rightof aTop~Middle {left}; + + % The emphasis + draw + fatcliponce + (rightof Bottom~Left -- rightof oabove Top~Left) + (betapath); + + % The top curve. + draw betapath; + + % The bottom curve. + draw + rightof aTop~Middle {right} + .. aMiddle~Right {down} + .. obelow rightof aBottom~Middle {left} + .. farrightof (aBottom + cCurl)~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "015") + (smallgap#, medlower#, smallgap#) + (aTop#, gBottom#); + + "Lowercase Greek gamma"; + + % The curve. + var (path) gammapath; + + gammapath + = Top~Left {right} + .. aBottom~Right {down} + .. obelow Bottom~Middle {left} + .. aBottom~Left {up} + .. Top~Right {right}; + + % The emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- rightof Top~Left) + (subpath (1,infinity) of gammapath); + + % The curve. + draw gammapath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "016") + (smallgap#, medlower#, smallgap#) + (bTop#, aBottom#); + + "Lowercase Greek delta"; + + % The path. + var (path) deltapath; + + deltapath + = aTop~Middle {left} + .. aMiddle~Left {down} + .. obelow Bottom~Middle {right} + .. aMiddle~Right {up} + .. aTop~Middle + .. (aTop -+- Top)~Left {up} + .. oabove Top~Middle {right} + .. (Top - cCurl)~Right; + + % The emphasis, clipped by the first bit of the curve (ie the bowl). + draw + fatcliptwice + (obelow rightof Bottom~Left -- rightof Top~Left) + (subpath (0,4) of deltapath); + + % The curve. + draw deltapath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "017") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + "Lowercase Greek epsilon"; + + % The curve. + var (path) epsilonpath; + + epsilonpath + = (Top - cCurl)~Right + .. oabove Top~Middle {left} + .. aMiddle~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + cCurl)~Right; + + % The emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (epsilonpath); + + % The curve. + draw epsilonpath; + + % The bar. + draw + farrightof eBar~Left + -- farrightof eBar~(Left + jut) + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "020") + (medgap#, smalllower#, smallgap#) + (bTop#, gBottom#); + + "Lowercase Greek zeta"; + + % The curl. + var (path) zetapath; + + zetapath + = Top~Right + .. aMiddle~Left {down} + .. aBottom~Middle + .. (aBottom -+- Bottom)~Right {down} + .. Bottom~(Right - jut) {left}; + + % The emphasis. + draw + fatcliptwice + (rightof Bottom~Left -- rightof Top~Left) + (zetapath); + + % The curl. + draw zetapath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "021") + (medgap#, smalllower# + fatness#, medgap#) + (aTop#, gBottom#); + + "Lowercase Greek eta"; + + % The emphasis. + draw + fatten + rightof aBottom~Left + -- rightof Top~Left; + + % The curl. + draw + farrightof (Top - cCurl)~Left + .. oabove rightof Top~Middle {right} + .. (Top - hCurl)~Right + --- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "022") + (smallgap#, medlower#, smallgap#) + (bTop#, aBottom#); + + "Lowercase Greek theta"; + + % The curve. + var (path) thetapath; + + thetapath + = Horizon~Right {up} + .. oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. cycle; + + % The emphasis. + draw + fatcliptwice + (rightof obelow Bottom~Left -- oabove rightof Top~Left) + (thetapath); + + % The curve. + draw thetapath; + + % The bar. + draw + farrightof Horizon~Left + -- Horizon~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "023") + (medgap#, tiny#, medgap#) + (aTop#, aBottom#); + + "Lowercase Greek iota"; + + % The vertical, clipped by a curve. + draw + fatcliponce + (Top~Middle -- Bottom~Middle) + (leftof (Bottom + hCurl)~Middle {down} + .. rightof Bottom~Middle {right}) + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "024") + (medgap#, smalllower# + fatness#, smallgap#) + (aTop#, aBottom#); + + "Lowercase Greek kappa"; + + % The vertical. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + + % The top stroke. + draw + farrightof eBar~Left + -- Top~Right; + + % The bottom stroke. + draw + farrightof eBar~Left {right} + .. Bottom~Right {right} + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "025") + (smallgap#, medlower#, smallgap#) + (bTop#, aBottom#); + + "Lowercase Greek lambda"; + + % The SW diagonal. + draw + Horizon~Middle + -- Bottom~Left; + + % The SE diagonal, fattened. + outline + fatten + rightof Top~Left + -- leftof Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "026") + (medgap#, smalllower# + fatness#, medgap#) + (aTop#, gBottom#); + + "Lowercase Greek mu"; + + % The left vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + + % The curl. + draw + farrightof (aBottom + cCurl)~Left + .. obelow rightof aBottom~Middle {right} + .. (aBottom + hCurl)~Right + --- Top~Right; + + % The right vertical. + draw + Top~Right + -- aBottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "027") + (medgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + "Lowercase Greek nu"; + + % The left vertical, clipped by the stroke. + draw + fatcliponce + (rightof Top~Left -- rightof Bottom~Left) + (Bottom~Left .. Top~Right {up}); + + % The stroke. + draw + Bottom~Left + .. Top~Right {up} + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "030") + (medgap#, smalllower#, smallgap#) + (bTop#, gBottom#); + + "Lowercase Greek xi"; + + % The curls. + var (path) xitop, xibottom; + + xibottom + = farrightof aTop~(Left + jut) {left} + .. aMiddle~Left {down} + .. aBottom~Middle + .. (aBottom -+- Bottom)~Right {down} + .. Bottom~(Right - jut) {left}; + + xitop + = Top~Right {left} + .. (Top -+- aTop)~Left {down} + .. farrightof aTop~(Left + jut) {right}; + + % The top emphasis. + draw + fatcliptwice + (rightof Bottom~Left -- rightof Top~Left) + (xitop); + + % The top curl. + draw xitop; + + % The bottom emphasis. + draw + fatcliptwice + (rightof Bottom~Left -- rightof Top~Left) + (xibottom); + + % The bottom curl. + draw xibottom + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "031") + (smallgap#, smalllower# + fatness#, smallgap#) + (aTop#, aBottom#); + + "Lowercase Greek pi"; + + % The top bar. + draw + Top~Left + --- Top~Right; + + % The left vertical, fattened. + draw + fatten + rightof Bottom~(Left + jut) + -- rightof Top~(Left + jut); + + % The right vertical. + draw + Bottom~(Right - jut) + -- Top~(Right - jut) + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "032") + (medgap#, medlower#, smallgap#) + (aTop#, gBottom#); + + "Lowercase Greek rho"; + + % The bowl. + var (path) rhopath; + + rhopath + = aMiddle~Left {up} + .. oabove aTop~Middle {right} + .. aMiddle~Right {down} + .. obelow aBottom~Middle {left} + .. cycle; + + % The bowl. + draw rhopath; + + % The emphasis, clipped by the beginning of the curve. + outline + fatcliponce + (rightof Bottom~Left -- rightof bracketTop~Left) + (subpath (0,2) of rhopath); + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "033") + (smallgap#, medlower#, smallgap# + jut#) + (aTop#, aBottom#); + + "Lowercase Greek sigma"; + + % The bowl. + var (path) sigmapath; + + sigmapath + = Horizon~Right {up} + .. Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. cycle; + + % The emphasis. + draw + fatcliptwice + (rightof obelow Bottom~Left -- rightof Top~Left) + (sigmapath); + + % The bowl. + draw sigmapath; + + % The bar, jutting out to the right. + draw + Top~Middle + -- Top~(Right + jut) + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "034") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + fatsymmetric; + + "Lowercase Greek tau"; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The vertical, clipped by a curve. + draw + fatcliponce + (Top~Middle -- Bottom~Middle) + (leftof (Bottom + hCurl)~Middle {down} + .. rightof Bottom~Middle {right}) + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "035") + (medgap#, medlower#, medgap#) + (aTop#, aBottom#); + + "Lowercase Greek upsilon"; + + % The curve. + var (path) upsilonpath; + + upsilonpath + = Top~Left + --- (Bottom + hCurl)~Left + .. obelow Bottom~Middle {right} + .. (Bottom + hCurl)~Right + --- Top~Right; + + % The emphasis. + draw + fatcliponce + (rightof Top~Left -- rightof obelow Bottom~Left) + (upsilonpath); + + % The curve. + draw upsilonpath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "036") + (smallgap#, medlower#, smallgap#) + (bTop#, gBottom#); + + fatsymmetric; + + "Lowercase Greek phi"; + + % The bowl. + draw + Middle~Right {up} + .. aTop~Middle {left} + .. aMiddle~Left {down} + .. aBottom~Middle {right} + .. cycle; + + % The vertical, fattened. + outline + fatten + Top~Middle + -- Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "037") + (smallgap#, medlower#, smallgap#) + (aTop#, gBottom#); + + "Lowercase Greek chi"; + + % The SE diagonal. + draw + Top~Left + -- Bottom~Right; + + % The SW diagonal, fattened. + outline + fatten + leftof Top~Right + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "040") + (medgap#, medlower#, medgap#) + (bTop#, gBottom#); + + fatsymmetric; + + "Lowercase Greek psi"; + + % The curve. + draw + aTop~Left + --- (aBottom + hCurl)~Left + .. aBottom~Middle {right} + .. (aBottom + hCurl)~Right + --- aTop~Right; + + % The vertical, fattened. + outline + fatten + Top~Middle + -- Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "177") + (smallgap#, biglower#, smallgap#) + (aTop#, aBottom#); + + symmetric; + + "Lowercase Greek omega"; + + % The left curve. + var (path) omegapath; + + omegapath + = farrightof Top~Left + .. Horizon~Left {down} + .. obelow Bottom~(Left -+- Middle) {right} + .. eBar~Middle {up}; + + % The emphasis. + draw + fatcliptwice + (rightof Top~Left -- obelow rightof Bottom~Left) + (omegapath); + + % The left curve. + draw omegapath; + + % The right curve. + draw + eBar~Middle {down} + .. obelow Bottom~(Right -+- Middle) {right} + .. Horizon~Right {up} + .. farleftof Top~Right + +endchar; + +% ------------------------------------------------------------------- diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbgreeku.mf b/Master/texmf-dist/fonts/source/public/bbold/bbgreeku.mf new file mode 100644 index 00000000000..802810a5286 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbgreeku.mf @@ -0,0 +1,315 @@ +% Blackboard bold uppercase greek, Alan Jeffrey, 13--18 Dec 1989. +% +% These characters occupy the same space they do in cmr, ie oct "000" +% to oct "012". + +% ------------------------------------------------------------------- + +bbcap + (oct "000") + (biggap#, smallcap#, smallgap#); + + "Uppercase Greek Gamma"; + + % The vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + + % The horizontal. + draw + Top~Left + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "001") + (smallgap#, medcap#, smallgap#); + + symmetric; + + "Uppercase Greek Delta"; + + % Left diagonal, clipped by the right diagonal. + draw + fatcliponce + (rightof Bottom~Left -- rightof Top~Middle) + (Top~Middle -- Bottom~Right); + + % Right diagonal. + draw + Top~Middle + -- Bottom~Right; + + % Base. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "002") + (medgap#, medcap#, medgap#); + + "Uppercase Greek Theta"; + + % The circle. + var (path) Thetapath; + + Thetapath + = oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. Horizon~Right {up} + .. cycle; + + % The emphasis at the left. + draw + fatcliptwice + (rightof obelow Bottom~Left -- oabove rightof Top~Left) + (Thetapath); + + % The circle. + draw Thetapath; + + % The dash in the middle. + draw + farrightof Horizon~(Left + space) + -- Horizon~(Right - space) + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "003") + (smallgap#, medcap#, smallgap#); + + symmetric; + + "Uppercase Greek Lambda"; + + % Left diagonal, clipped by the right diagonal. + draw + fatcliponce + (rightof Bottom~Left -- rightof Top~Middle) + (Top~Middle -- Bottom~Right); + + % Right diagonal. + draw + Top~Middle + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "004") + (medgap#, medcap#, medgap#); + + symmetric; + + "Uppercase Greek Xi"; + + % Top line. + draw + Top~Left + -- Top~Right; + + % Middle line. + draw + Horizon~(Left + bigspace) + -- Horizon~(Right - bigspace); + + % Bottom line. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "005") + (biggap#, smallcap#, biggap#); + + "Uppercase Greek Pi"; + + % The right line. + draw + Top~Right + -- Bottom~Right; + + % The bar. + draw + Top~Left + -- Top~Right; + + % The left line, fattened. + draw + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "006") + (medgap#, medcap#, medgap#); + + "Uppercase Greek Sigma"; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The bottom line. + draw + Bottom~Left + -- Bottom~Right; + + % The diagonals. + draw + fatten + rightof Bottom~Left + -- Horizon~Middle + -- rightof Top~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "007") + (smallgap#, medcap#, smallgap#); + + fatsymmetric; + + "Uppercase Greek Upsilon"; + + % The stem. + draw + fatten + Bottom~Middle + -- BBar~Middle; + + % The left arc. + draw + leftof BBar~Middle + --- leftof (Top - CCurl)~Middle + .. oabove ((leftof Top~Left) -+- (Top~Middle)) {left} + .. (Top - CCurl)~Left {down}; + + % The right arc. + draw + rightof BBar~Middle {up} + --- rightof (Top - CCurl)~Middle + .. oabove ((rightof Top~Right) -+- (Top~Middle)) {right} + .. (Top - CCurl)~Right {down} + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "010") + (medgap#, medcap#, medgap#); + + fatsymmetric; + + "Uppercase Greek Phi"; + + % The circle. + draw + (Top - CCurl)~Middle {left} + .. Horizon~Left {down} + .. (Bottom + CCurl)~Middle {right} + .. Horizon~Right {up} + .. cycle; + + % The vertical. + outline + fatten + Bottom~Middle + -- Top~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "011") + (smallgap#, medcap#, smallgap#); + + fatsymmetric; + + "Uppercase Greek Psi"; + + % The stroke. + draw + (Top - CCurl)~Left {right} + .. leftof Horizon~(Left -+- Middle) {down} + .. (Bottom + CCurl)~Middle {right} + .. rightof Horizon~(Right -+- Middle) {up} + .. (Top - CCurl)~Right {right}; + + % The vertical. + outline + fatten + Bottom~Middle + -- Top~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbcap + (oct "012") + (medgap#, medcap#, medgap#); + + "Uppercase Greek Omega"; + + % The curve. + var (path) Omegapath; + + Omegapath + = farrightof Bottom~Left + .. Horizon~Left {up} + .. oabove Top~Middle {right} + .. Horizon~Right {down} + .. farleftof Bottom~Right ; + + % The emphasis. + draw + fatcliptwice + (rightof Bottom~Left -- oabove rightof Top~Left) + (Omegapath); + + % The curve. + draw Omegapath; + + % The left foot. + draw + Bottom~Left + -- farrightof Bottom~Left; + + % The right foot. + draw + Bottom~Right + -- farleftof Bottom~Right + +endchar; + +% ------------------------------------------------------------------- diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbligs.mf b/Master/texmf-dist/fonts/source/public/bbold/bbligs.mf new file mode 100644 index 00000000000..92a38e4775d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbligs.mf @@ -0,0 +1,91 @@ +% Blackboard bold ligatures, Alan Jeffrey, 13--18 Dec 1989. +% +% Provides --, ---, `` and ''. +% These are put in positions +% +% -- oct "173" +% --- oct "175" +% `` oct "176" +% '' oct "042" + +ligtable "-": "-" =: oct "173"; +ligtable oct "173": "-" =: oct "175"; +ligtable "`": "`" =: oct "176"; +ligtable "'": "'" =: oct "042"; + +% ------------------------------------------------------------------- + +bbchar + (oct "173") + (smallgap#, 0.5bigcap#, smallgap#) + (aTop#, aBottom#); + + "En dash `--'"; + + % The line. + draw + dashMiddle~Left + -- dashMiddle~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "175") + (smallgap#, bigcap#, smallgap#) + (aTop#, aBottom#); + + "Em dash `---'"; + + % The line. + draw + dashMiddle~Left + -- dashMiddle~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "176") + (medgap#, 2tiny# + space#, medgap#) + (bTop#, bTop# - tiny# - comma_depth#); + + "Opening quotes ```'"; + + % The left quote. + draw + splodgel above rightof Bottom~Left + .. farrightof Top~Left; + + % The right quote. + draw + splodgel above leftof Bottom~Right + .. Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (oct "042") + (medgap#, 2tiny# + space#, medgap#) + (bTop#, bTop# - tiny# - comma_depth#); + + "Closing quotes `'''"; + + % The left quote + draw + splodger below rightof Top~Left + .. Bottom~Left; + + % The right quote + draw + splodger below leftof Top~Right + .. farleftof Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + diff --git a/Master/texmf-dist/fonts/source/public/bbold/bblower.mf b/Master/texmf-dist/fonts/source/public/bbold/bblower.mf new file mode 100644 index 00000000000..9bbd5e7195a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bblower.mf @@ -0,0 +1,760 @@ +% Blackboard bold lower case, Alan Jeffrey, 12--18 Dec 1989. + +% ------------------------------------------------------------------- + +bbchar + ("a") + (smallgap#, medlower#, medgap#) + (aTop#, aBottom#); + + "The letter a"; + + % The curve. + var (path) apath; + + apath + = (Top - cCurl)~Right + .. oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + cCurl)~Right; + + % The emphasis to the left, clipped by the curve. + draw + fatcliptwice + (oabove rightof Top~Left -- obelow rightof Bottom~Left) + (apath); + + % The curve. + draw apath; + + % The line at the right. + draw + Top~Right + -- Bottom~Right; + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("b") + (medgap#, medlower# + fatness#, smallgap#) + (bTop#, aBottom#); + + "The letter b"; + + % The curve. + draw + farrightof (aTop - cCurl)~Left + .. oabove rightof aTop~Middle {right} + .. aMiddle~Right {down} + .. obelow rightof Bottom~Middle {left} + .. farrightof (Bottom + cCurl)~Left; + + % The vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("c") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + "The letter c"; + + % The curve. + var (path) cpath; + + cpath + = (Top - cCurl)~Right + .. oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + cCurl)~Right; + + % The emphasis to the left, clipped by the curve. + draw + fatcliptwice + (oabove rightof Top~Left -- obelow rightof Bottom~Left) + (cpath); + + % The curve. + draw cpath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("d") + (smallgap#, medlower#, medgap#) + (bTop#, aBottom#); + + "The letter d"; + + % The curve. + var (path) dpath; + + dpath + = (aTop - cCurl)~Right + .. oabove aTop~Middle {left} + .. aMiddle~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + cCurl)~Right; + + % The emphasis to the left, clipped by the curve. + draw + fatcliptwice + (oabove rightof aTop~Left -- obelow rightof Bottom~Left) + (dpath); + + % The curve. + draw dpath; + + % The line at the right. + draw + Bottom~Right + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("e") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + "The letter e"; + + % The curve. + var (path) epath; + + epath + = eBar~Right + .. oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + cCurl)~Right; + + % The bar. + draw + farrightof eBar~Left + -- eBar~Right; + + % The emphasis to the left, clipped by the curve. + outline + fatcliptwice + (oabove rightof Top~Left -- obelow rightof Bottom~Left) + (epath); + + % The curve. + draw epath; + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("f") + (medgap#, smalllower#, 0pt#) + (bTop#, aBottom#); + + "The letter f"; + + % The curve. + var (path) fpath; + + fpath + = (Top - hCurl)~Left {up} + .. oabove Top~Middle {right} + .. (Top - cCurl)~Right; + + % The bar. + draw + aTop~Left + -- farrightof aTop~(Left + jut); + + % The emphasis at the left of the curve. + outline + fatcliponce + (rightof Bottom~Left -- oabove rightof Top~Left) + (fpath); + + % The curve. + draw fpath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("g") + (smallgap#, medlower#, medgap#) + (aTop#, gBottom#); + + "The letter g"; + + % The bowl path. + var (path) gpath; + + gpath + = (Top - cCurl)~Right + .. oabove Top~Middle {left} + .. aMiddle~Left {down} + .. obelow aBottom~Middle {right} + .. (aBottom + cCurl)~Right; + + % Emphasis of the bowl. + draw + fatcliptwice + (obelow rightof aBottom~Left -- oabove rightof Top~Left) + (gpath); + + % The bowl. + draw gpath; + + % The tail. + draw + Top~Right + --- aBottom~Right + .. obelow Bottom~Middle {left} + .. (Bottom + gCurl)~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("h") + (medgap#, smalllower# + fatness#, medgap#) + (bTop#, aBottom#); + + "The letter h"; + + % The curve. + draw + farrightof (aTop - cCurl)~Left + .. oabove rightof aTop~Middle {right} + .. (aTop - hCurl)~Right + --- Bottom~Right; + + % The vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("i") + (medgap#, tiny#, medgap#) + (iTop#, aBottom#); + + fatsymmetric; + + "The letter i"; + + % The vertical, fattened. + draw + fatten + Bottom~Middle + -- aTop~Middle; + + % The dot. + draw + splodge + below Top~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("j") + (0pt#, smalllower#, medgap#) + (iTop#, gBottom#); + + "The letter j"; + + % The curve. + var (path) jpath; + + jpath + = aTop~Right + --- aBottom~Right + .. obelow Bottom~Middle {left} + .. (Bottom + gCurl)~Left; + + % The emphasis. + draw + fatcliponce + (leftof aTop~Right -- obelow leftof Bottom~Right) + (jpath); + + % The curve. + draw jpath; + + % The dot. + draw + splodge + below leftof Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("k") + (medgap#, smalllower# + fatness#, smallgap#) + (bTop#, aBottom#); + + "The letter k"; + + % The point at which the top diagonal hits the left side of the character. + % It is somewhere along the line from aTop~Right to eBar~Middle. + + z1 = whatever[aTop~Right, eBar~Middle]; + x1 = Left; + + % The top diagonal. + draw + z1 -- aTop~Right; + + % The bottom diagonal. + draw + eBar~Middle + -- Bottom~Right; + + % The left edge, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("l") + (medgap#, tiny#, medgap#) + (bTop#, aBottom#); + + "The letter l"; + + % The fattened vertical, clipped at the left by a curve. + + draw + fatcliponce + (Top~Middle -- Bottom~Middle) + (leftof Horizon~Middle + --- leftof (Bottom + hCurl)~Middle + .. rightof Bottom~Middle {right}) + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("m") + (medgap#, biglower#, medgap#) + (aTop#, aBottom#); + + symmetric; + + "The letter m"; + + % The vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + + % The first bump. + draw + farrightof (Top - cCurl)~Left + .. oabove (farrightof Top~Left -+- rightof Top~Middle) {right} + .. rightof (Top - hCurl)~Middle + --- rightof Bottom~Middle; + + % The second bump. + draw + rightof (Top - hCurl)~Middle {up} + .. oabove (rightof Top~Middle -+- Top~Right) {right} + .. (Top - hCurl)~Right + --- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("n") + (medgap#, smalllower# + fatness#, medgap#) + (aTop#, aBottom#); + + "The letter n"; + + % The vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + + % The bump. + draw + farrightof (Top - cCurl)~Left + .. oabove rightof Top~Middle {right} + .. (Top - hCurl)~Right + --- Bottom~Right; + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("o") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + "The letter o"; + + % The circle; + var (path) opath; + + opath + = oabove Top~Middle {right} + .. Horizon~Right {down} + .. obelow Bottom~Middle {left} + .. Horizon~Left {up} + .. cycle; + + % The emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (opath); + + % The o. + draw opath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("p") + (medgap#, medlower# + fatness#, smallgap#) + (aTop#, gBottom#); + + "The letter p"; + + % The curve. + draw + farrightof (Top - cCurl)~Left + .. oabove rightof Top~Middle {right} + .. aMiddle~Right {down} + .. obelow rightof aBottom~Middle {left} + .. farrightof (aBottom + cCurl)~Left; + + % The vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("q") + (smallgap#, medlower#, medgap#) + (aTop#, gBottom#); + + "The letter q"; + + % The curve. + var (path) qpath; + + qpath + = (Top - cCurl)~Right + .. oabove Top~Middle {left} + .. aMiddle~Left {down} + .. obelow aBottom~Middle {right} + .. (aBottom + cCurl)~Right; + + % The emphasis to the left, clipped by the curve. + draw + fatcliptwice + (oabove rightof Top~Left -- obelow rightof Bottom~Left) + (qpath); + + % The curve. + draw qpath; + + % The line at the right. + draw + Bottom~Right + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("r") + (medgap#, smalllower# + fatness#, smallgap#) + (aTop#, aBottom#); + + "The letter r"; + + % The vertical, fattened. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + + % The bump. + draw + farrightof (Top - cCurl)~Left + .. oabove rightof Top~Middle {right} + .. (Top - cCurl)~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("s") + (smallgap#, smalllower#, smallgap#) + (aTop#, aBottom#); + + "The letter s"; + + % The path of the S. + var (path) spath; + + spath + = (Top - cCurl)~Right + .. oabove Top~Middle {left} + .. (Top -+- eBar)~Left {down} + .. eBar~Middle {right} + .. (eBar -+- Bottom)~Right {down} + .. obelow Bottom~Middle {left} + .. (Bottom + cCurl)~Left; + + % The emphasis at the top left of the S. + draw + fatcliptwice + (oabove rightof Top~Left -- obelow rightof Bottom~Left) + (subpath (0, 4) of spath); + + % The path of the S. + draw spath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("t") + (medgap#, smalllower#, smallgap#) + (bTop#, aBottom#); + + "The letter t"; + + % The curve. + var (path) tpath; + + tpath + = (Bottom + hCurl)~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + cCurl)~Right; + + % The bar. + draw + aTop~Left + -- aTop~Right; + + % The emphasis. + outline + fatcliponce + (rightof Top~Left -- obelow rightof Bottom~Left) + (tpath); + + % The curve. + draw tpath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("u") + (medgap#, medlower#, medgap#) + (aTop#, aBottom#); + + "The letter u"; + + % The curve of the u. + var (path) upath; + + upath + = Top~Left + --- Horizon~Left + .. obelow Bottom~Middle {right} + .. {up} Horizon~Right; + + % The emphasis. + draw + fatcliponce + (rightof Top~Left -- obelow rightof Bottom~Left) + (upath); + + % The curve. + draw upath; + + % The right line. + draw + Bottom~Right + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("v") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + symmetric; + + "The letter v"; + + % The left diagonal, clipped by the right. + draw + fatcliponce + (rightof Top~Left -- rightof Bottom~Middle) + (Bottom~Middle -- Top~Right); + + % The right diagonal. + draw + Bottom~Middle + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("w") + (smallgap#, biglower#, smallgap#) + (aTop#, aBottom#); + + symmetric; + + "The letter w"; + + % The left diagonal, clipped by the rest. + draw + fatcliponce + (rightof Top~Left -- rightof Bottom~(Left -+- Middle)) + (Bottom~(Left -+- Middle) -- eBar~Middle); + + % The rest of the letter. + draw + Bottom~(Left -+- Middle) + -- eBar~Middle + -- Bottom~(Middle -+- Right) + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("x") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + "The letter x"; + + % The SE diagonal. + draw + Top~Left + -- Bottom~Right; + + % The SW diagonal, fattened. + outline + fatten + leftof Top~Right + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("y") + (smallgap#, medlower#, smallgap#) + (aTop#, gBottom#); + + symmetric; + + "The letter y"; + + % The left diagonal, fattened, and clipped by the right. + draw + fatcliponce + (rightof Top~Left -- rightof aBottom~Middle) + (Top~Right -- aBottom~Middle); + + % The right diagonal and tail. + draw + Top~Right + --- aBottom~Middle + .. obelow Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("z") + (smallgap#, medlower#, smallgap#) + (aTop#, aBottom#); + + "The letter z"; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The diagonal, fattened. + draw + fatten + leftof Top~Right + -- rightof Bottom~Left; + + % The bottom line. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbnum.mf b/Master/texmf-dist/fonts/source/public/bbold/bbnum.mf new file mode 100644 index 00000000000..1be5023e1b1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbnum.mf @@ -0,0 +1,300 @@ +% Blackboard bold numerals, Alan Jeffrey, 12--18 Dec 1989. + +% ------------------------------------------------------------------- + +bbnum ("0"); + "The number 0"; + + % The curve. + var (path) zeropath; + + zeropath + = oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. Horizon~Right {up} + .. cycle; + + % The emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (zeropath); + + % The curve. + draw zeropath; + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("1"); + + fatsymmetric; + + "The number 1"; + + % The top serif. + draw + rightof Top~Middle + -- (Top - CCurl)~Left; + + % The vertical, clipped by the top serif. + draw + fatcliponce + (Bottom~Middle -- Top~Middle) + (rightof Top~Middle -- (Top - CCurl)~Left); + + % The bottom serif. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("2"); + "The number 2"; + + % The outline. + var (path) twopath; + + twopath + = (Top-CCurl)~Left + .. oabove Top~Middle {right} + .. (Top -+- threeBar)~Right {down} + .. Bottom~Left {down}; + + % The emphasis. + draw + fatcliptwice + (leftof Bottom~Right -- oabove leftof Top~Right) + (twopath); + + % The curve. + draw twopath; + + % The base line. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("3"); + "The number 3"; + + % The curve. + var (path) threepath; + + threepath + = (Top - CCurl)~Left + .. oabove Top~Middle {right} + .. (Top -+- threeBar)~Right {down} + .. threeBar~Middle {left} + & threeBar~Middle {right} + .. (threeBar -+- Bottom)~Right {down} + .. obelow Bottom~Middle {left} + .. (Bottom + CCurl)~Left; + + % The top emphasis. + draw + fatcliptwice + (leftof threeBar~Right -- oabove leftof Top~Right) + (threepath); + + % The bottom emphasis. + draw + fatcliptwice + (obelow leftof Bottom~Right -- leftof threeBar~Right) + (threepath); + + % The curve. + draw threepath + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("4"); + "The number 4"; + + % The right of the vertical is jut away from the right of the character. + var (numeric) verticalRight; + + verticalRight + jut = Right; + + % The bar. + draw + ABar~Left + -- ABar~Right; + + % The vertical, fattened and clipped by the diagonal. + outline + fatcliponce + (leftof Bottom~verticalRight -- leftof Top~verticalRight) + (Top~verticalRight -- ABar~Left); + + % The diagonal. + draw + Top~verticalRight + -- ABar~Left + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("5"); + "The number 5"; + + % The top horizontal. + draw + Top~Left + -- Top~Right; + + % The vertical, fattened. + draw + fatten + rightof (Bottom + sixBowl)~Left + -- rightof Top~Left; + + % The curve. + draw + (Bottom + sixBowl)~Left + --- (Bottom + sixBowl)~Middle + .. (Bottom + 1/2sixBowl)~Right {down} + .. obelow Bottom~Middle {left} + .. (Bottom + CCurl)~Left + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("6"); + "The number 6"; + + % The bowl. + var (path) sixpath; + + sixpath + = (Bottom + 1/2sixBowl)~Right {up} + .. (Bottom + sixBowl)~Middle {left} + .. (Bottom + 1/2sixBowl)~Left {down} + .. obelow Bottom~Middle {right} + .. cycle; + + % The tail. + draw + (Bottom + 1/2sixBowl)~Left + --- (Bottom + sixBowl)~Left + .. oabove Top~Middle {right} + .. (Top - CCurl)~Right; + + % The emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- rightof (Bottom + sixBowl)~Left) + (sixpath); + + % The bowl. + draw sixpath + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("7"); + "The number 7"; + + % The vertical. + draw + Top~Left + -- Top~Right; + + % The diagonal. + draw + fatten + rightof Bottom~Left + -- leftof Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("8"); + "The number 8"; + + % The bowls. + var (path) eighttop, eightbottom; + + eighttop + = oabove Top~Middle {left} + .. (Top -+- threeBar)~Left {down} + .. threeBar~Middle {right} + .. (threeBar -+- Top)~Right {up} + .. cycle; + + eightbottom + = threeBar~Middle {left} + .. (threeBar -+- Bottom)~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom -+- threeBar)~Right {up} + .. cycle; + + % The top emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (eighttop); + + % The bottom emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (eightbottom); + + % The top bowl. + draw eighttop; + + % The bottom bowl. + draw eightbottom + +endchar; + +% ------------------------------------------------------------------- + +bbnum ("9"); + "The number 9"; + + % The bowl. + var (path) ninepath; + + ninepath + = (Top - sixBowl)~Middle {left} + .. (Top - 1/2sixBowl)~Left {up} + .. oabove Top~Middle {right} + .. (Top - 1/2sixBowl)~Right {down} + .. cycle; + + % The tail. + draw + (Top - 1/2sixBowl)~Right + --- (Top - sixBowl)~Right + .. obelow Bottom~Middle {left} + .. (Bottom + CCurl)~Left; + + % The emphasis. + draw + fatcliptwice + (oabove rightof Top~Left -- rightof (Top - sixBowl)~Left) + (ninepath); + + % The bowl. + draw ninepath + +endchar; + +% ------------------------------------------------------------------- diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold.mf new file mode 100644 index 00000000000..bf0f53e34c4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold.mf @@ -0,0 +1,9 @@ +input bbparams; +input bbgreeku; +input bbgreekl; +input bbnum; +input bbupper; +input bblower; +input bbpunc; +input bbligs; + diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold10.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold10.mf new file mode 100644 index 00000000000..f0a077a94c6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold10.mf @@ -0,0 +1,19 @@ +% Blackboard bold 10pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr10; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold12.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold12.mf new file mode 100644 index 00000000000..ecf09875891 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold12.mf @@ -0,0 +1,19 @@ +% Blackboard bold 12pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr12; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold17.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold17.mf new file mode 100644 index 00000000000..69b43b69800 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold17.mf @@ -0,0 +1,19 @@ +% Blackboard bold 17pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr17; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold5.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold5.mf new file mode 100644 index 00000000000..fa3bbbfbd70 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold5.mf @@ -0,0 +1,19 @@ +% Blackboard bold 5pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr5; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold6.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold6.mf new file mode 100644 index 00000000000..8a65b013a80 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold6.mf @@ -0,0 +1,19 @@ +% Blackboard bold 6pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr6; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold7.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold7.mf new file mode 100644 index 00000000000..b4493e51f52 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold7.mf @@ -0,0 +1,19 @@ +% Blackboard bold 7pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr7; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold8.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold8.mf new file mode 100644 index 00000000000..8fa4db16366 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold8.mf @@ -0,0 +1,19 @@ +% Blackboard bold 8pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr8; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold9.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold9.mf new file mode 100644 index 00000000000..7e0cafe281c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbold9.mf @@ -0,0 +1,19 @@ +% Blackboard bold 9pt. Alan Jeffrey, 18 Dec 1989. + +mode_setup; + +input bbbase; + +% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase. +cmbase := 1; +def generate suffix t = enddef; + +% Input the cmr parameters. +input cmr9; + +font_identifier := "BBOLD"; +font_coding_scheme := "Blackboard bold"; + +% Then generate blackboard bold. +input bbold; +bye; 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. + + diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbpunc.mf b/Master/texmf-dist/fonts/source/public/bbold/bbpunc.mf new file mode 100644 index 00000000000..a539fe2f821 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbpunc.mf @@ -0,0 +1,691 @@ +% Blackboard bold punctuation, Alan Jeffrey, 13--18 Dec 1989. + +% ------------------------------------------------------------------- + +bbcap + ("!") + (biggap#, tiny#, biggap#); + + fatsymmetric; + + "Exclamation mark `!'"; + + % The vertical. + draw + fatten + Top~Middle + -- (Bottom + space + fatness)~Middle; + + % The dot. + draw + splodge + above Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("#") + (medgap#, arithmetic#, medgap#) + (ATop#, gBottom#); + + "The hash sign `#'"; + + % The top line. + draw + (Horizon + space)~Left + -- (Horizon + space)~Right; + + % The bottom line. + draw + (Horizon - space)~Left + -- (Horizon - space)~Right; + + % The right vertical. + draw + rightof Top~(Middle + space) + -- rightof Bottom~(Middle + space); + + % The left vertical. + outline + fatten + rightof Top~(Middle - space) + -- rightof Bottom~(Middle - space) + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("$") + (medgap#, smallcap#, medgap#) + (ATop# + jut#, aBottom# - jut#); + + fatsymmetric; + + "Dollar sign `$'"; + + % The path of the S. + draw + (Top - CCurl)~Right + .. ATop~Middle {left} + .. (ATop -+- BBar)~Left {down} + .. BBar~Middle {right} + .. (BBar -+- aBottom)~Right {down} + .. aBottom~Middle {left} + .. (Bottom + CCurl)~Left; + + % The vertical. + outline + fatten + Bottom~Middle + -- Top~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("%") + (medgap#, smallcap#, medgap#) + (bracketTop#, aBottom# + aTop# - bracketTop#); + + fatsymmetric; + + "Per cent sign `%'"; + + % The dot at top left. + draw + splodge + below rightof Top~Left; + + % The dot at bottom right. + draw + splodge + above leftof Bottom~Right; + + % The diagonal. + draw + fatten + rightof Bottom~Left + -- leftof Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("&") + (medgap#, arithmetic#, medgap#) + (ATop#, aBottom#); + + "Ampersand `&'"; + + % z1 is the top point at which the curls cross. It is somewhere + % between the top point and the bottom point, and is at aTop. + + z1 = whatever[leftof Top~Middle, Bottom~(Left -+- Middle)]; + y1 = aTop; + + % The curve. + var (path) ampersandpath; + + ampersandpath + = (Bottom + cCurl)~Right + .. obelow Bottom~(Right - jut) {left} + ... z1 + .. oabove leftof Top~Middle {right} + .. z1 + .. aMiddle~Left {down} + .. obelow Bottom~(Left -+- Middle) {right} + .. aMiddle~(Right - space); + + % The emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- rightof Top~Left) + (ampersandpath); + + % The curve. + draw ampersandpath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("'") + (medgap#, tiny#, medgap#) + (bTop#, bTop# - tiny# - comma_depth#); + + fatsymmetric; + + "Apostrophe `''"; + + % The dot and tail. + draw + splodger below Top~Middle + .. Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("(") + (biggap#, tiny# + jut#, smallgap#) + (bracketTop#, bracketBottom#); + + "Left bracket `('"; + + % The emphasis. + draw + fatcliptwice + (rightof Bottom~Left -- rightof Top~Left) + (Bottom~Right {left} .. Horizon~Left .. Top~Right {right}); + + % The curve. + draw + Bottom~Right {left} + .. Horizon~Left + .. Top~Right {right} + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (")") + (smallgap#, tiny# + jut#, biggap#) + (bracketTop#, bracketBottom#); + + "Right bracket `)'"; + + % The emphasis. + draw + fatcliptwice + (leftof Bottom~Right -- leftof Top~Right) + (Bottom~Left {right} .. Horizon~Right .. Top~Left {left}); + + % The curve. + draw + Bottom~Left {right} + .. Horizon~Right + .. Top~Left {left} + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("*") + (medgap#, (sqrt3)/2 * arithmetic#, medgap#) + (math_axis# + 1/2arithmetic#, math_axis# - 1/2arithmetic#) + + fatsymmetric; + + "Star `*'"; + + % The distance from the top of the character to the top of the diagonals. + var (numeric) adistance; + adistance = round ((Top - Horizon) / 2); + + % The NW diagonal. + draw + (Bottom + adistance)~Right + -- (Top - adistance)~Left; + + % The NE diagonal. + draw + (Bottom + adistance)~Left + -- (Top -adistance)~Right; + + % The vertical, fattened. + outline + fatten + Bottom~Middle + -- Top~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("+") + (medgap#, arithmetic#, medgap#) + (math_axis# + 1/2arithmetic#, math_axis# - 1/2arithmetic#) + + "Plus sign `+'"; + + % The horizontal line. + draw + Horizon~Left + -- Horizon~Right; + + % The vertical, fattened. + outline + fatten + Bottom~Middle + -- Top~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (",") + (medgap#, tiny#, medgap#) + (aBottom# + tiny#, aBottom# - comma_depth#); + + fatsymmetric; + + "Comma `,'"; + + % The dot and tail. + draw + splodger above aBottom~Middle + .. Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("-") + (smallgap#, smalllower#, medgap#) + (aTop#, aBottom#); + + "Hyphen `-'"; + + % The line. + draw + Horizon~Left + -- Horizon~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (".") + (medgap#, tiny#, medgap#) + (aBottom# + tiny#, aBottom#); + + fatsymmetric; + + "Full stop `.'"; + + % The dot. + draw + splodge + above Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("/") + (smallgap#, smallcap#, smallgap#) + (bracketTop#, bracketBottom#); + + "Virgule (slash) `/'"; + + % The line. + draw + fatten + rightof Bottom~Left + -- leftof Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (":") + (medgap#, tiny#, medgap#) + (aTop#, aBottom#); + + fatsymmetric; + + "Colon `:'"; + + % The top dot. + draw + splodge + below Top~Middle; + + % The bottom dot. + draw + splodge + above Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + (";") + (medgap#, tiny#, medgap#) + (aTop#, aBottom# - comma_depth#); + + fatsymmetric; + + "Semicolon `;'"; + + % The upper dot. + draw + splodge + below Top~Middle; + + % The lower dot and tail. + draw + splodger above aBottom~Middle + .. Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +beginblacker 1.5; +bbchar + ("<") + (biggap#, arithmetic#, biggap#) + (math_axis# + 1/2lessthan#, math_axis# - 1/2lessthan#); + + "Less than sign `<'"; + + % The top diagonal. + draw + Top~Right + --- Horizon~Left; + + % The bottom diagonal, fattened, and clipped by the top. + % We need to carry on the diagonal past where it started, + % so we extend it up to the top of the character. + draw + fatcliponce + (leftof Bottom~Right + --- rightof Horizon~Left + .. farrightof Top~(2Left - Right)) + (Top~Right -- Horizon~Left) + +endchar; +endblacker; + +% ------------------------------------------------------------------- + +bbchar + ("=") + (medgap#, tiny#, medgap#) + (math_axis# + 1/2tiny#, math_axis# - 1/2tiny#); + + fatsymmetric; + + "Centred dot"; + + % The dot. + draw + splodge + above Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +beginblacker 1.5; + +bbchar + (">") + (biggap#, arithmetic#, biggap#) + (math_axis# + 1/2lessthan#, math_axis# - 1/2lessthan#); + + "Greater than sign `>'"; + + % The top diagonal. + draw + Top~Left + --- Horizon~Right; + + % The bottom diagonal, fattened, and clipped by the top. + % We need to carry on the diagonal past where it started, + % so we extend it up to the top of the character. + draw + fatcliponce + (rightof Bottom~Left + --- leftof Horizon~Right + .. farleftof Top~(2Right - Left)) + (Top~Left -- Horizon~Right) + +endchar; +endblacker; + +% ------------------------------------------------------------------- + +bbcap + ("?") + (medgap#, smallcap#, medgap#); + + fatsymmetric; + + "Question mark `?'"; + + % The height of the bottom of the curl. + var (numeric) curlBottom; + + curlBottom = Bottom + fatness + space; + + % The curl. + var (path) questionpath; + + questionpath + = (Top - CCurl)~Left + .. oabove Top~Middle {right} + .. (1/3[Top, curlBottom])~Right {down} + .. rightof (2/3[Top, curlBottom])~Middle {left} + .. leftof curlBottom~Middle {down}; + + draw questionpath; + + % The emphasis, clipped with the bottom bit of the question path. + draw + fatcliponce + (curlBottom~Middle -- oabove Top~Middle) + (subpath (2, infinity) of questionpath); + + % The dot. + draw + splodge + above Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("@") + (medgap#, tiny# + 2fatness#, medgap#) + (ATop#, aBottom#); + + "At sign `@'"; + + % The curl. + var (path) atpath; + + atpath + = (Bottom + CCurl)~Right + .. obelow Bottom~Middle {left} + .. Horizon~Left {up} + .. oabove Top~Middle {right} + .. splodger leftof Horizon~Right; + + % The emphasis. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (atpath); + + % The curl. + draw atpath + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("[") + (biggap#, tiny# + jut#, smallgap#) + (bracketTop#, bracketBottom#); + + "Left square bracket `['"; + + % The vertical. + draw + fatten + rightof Bottom~Left + -- rightof Top~Left; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The bottom line. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("\") + (smallgap#, smallcap#, smallgap#) + (bracketTop#, bracketBottom#); + + "Reverse slash `\'"; + + % The line. + draw + fatten + leftof Bottom~Right + -- rightof Top~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("]") + (smallgap#, tiny# + jut#, biggap#) + (bracketTop#, bracketBottom#); + + "Right square bracket `]'"; + + % The vertical. + draw + fatten + leftof Bottom~Right + -- leftof Top~Right; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The bottom line. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +beginblacker 1.25; +bbchar + ("^") + (biggap#, tiny# + jut#, smallgap#) + (bracketTop#, bracketBottom#); + + "Left angle bracket"; + + % The emphasis, clipped by the bracket. + draw + fatcliptwice + (rightof Bottom~Left -- rightof Top~Left) + (Bottom~Right -- Horizon~Left -- Top~Right); + + % The bracket. + draw + Bottom~Right + -- Horizon~Left + -- Top~Right + +endchar; +endblacker; + +% ------------------------------------------------------------------- + +beginblacker 1.25; +bbchar + ("_") + (smallgap#, tiny# + jut#, biggap#) + (bracketTop#, bracketBottom#); + + "Right angle bracket"; + + % The emphasis, clipped by the bracket. + draw + fatcliptwice + (leftof Bottom~Right -- leftof Top~Right) + (Bottom~Left -- Horizon~Right -- Top~Left); + + % The bracket. + draw + Bottom~Left + -- Horizon~Right + -- Top~Left + +endchar; +endblacker; + +% ------------------------------------------------------------------- + +bbchar + ("`") + (medgap#, tiny#, medgap#) + (bTop#, bTop# - tiny# - comma_depth#); + + fatsymmetric; + + "Reverse apostrophe ``'"; + + % The dot and tail. + draw + splodgel above Bottom~Middle + .. Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("|") + (biggap#, tiny#, biggap#) + (bracketTop#, bracketBottom#); + + "Vertical bar `|'"; + + % The line. + draw + fatten + Bottom~Middle + -- Top~Middle + +endchar; + +% ------------------------------------------------------------------- + diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbupper.mf b/Master/texmf-dist/fonts/source/public/bbold/bbupper.mf new file mode 100644 index 00000000000..c839abf2ed9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bbold/bbupper.mf @@ -0,0 +1,698 @@ +% Blackboard bold capitals, Alan Jeffrey, 11--14 Dec 1989. + +% ------------------------------------------------------------------- + +bbcap + ("A") + (smallgap#, medcap#, smallgap#); + + "The letter A"; + + % The bar, clipped by the wedge. + draw + cliptwice + (ABar~Left -- ABar~Right) + (Bottom~Left -- Top~Middle -- Bottom~Right); + + % The left line, fattened, and clipped by the right line. + outline + fatcliponce + (rightof Bottom~Left -- rightof Top~Middle) + (Top~Middle -- Bottom~Right); + + % The right line. + draw + Top~Middle + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("B") + (biggap#, smallcap#, medgap#); + + "The letter B"; + + % The top arc. + draw + Top~Left + -- Top~Middle {right} + .. (Top -+- BBar)~Right + .. {left} BBar~Middle + -- BBar~Left; + + % The bottom arc. + draw + BBar~Left + -- BBar~Middle {right} + .. (BBar -+- Bottom)~Right + .. {left} Bottom~Middle + -- Bottom~Left; + + % The left line, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("C") + (medgap#, medcap#, medgap#); + + "The letter C"; + + % The curve of the C. + var (path) Cpath; + + Cpath + = (Top - CCurl)~Right + .. oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + CCurl)~Right; + + % The fat line emphasising the left side, clipped by the curve. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (Cpath); + + % The curve. + draw Cpath + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("D") + (biggap#, medcap#, medgap#); + + "The letter D"; + + % The curve of the D. + draw + Top~Left + -- Top~Middle {right} + .. Horizon~Right {down} + .. {left} Bottom~Middle + -- Bottom~Left; + + % The left line, fattened. + draw + fatten + rightof Top~Left + --- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("E") + (biggap#, smallcap#, smallgap#); + + "The letter E"; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The bar. + draw + BBar~Left + -- farrightof BBar~(Left + bigjut); + + % The bottom line. + draw + Bottom~Left + -- Bottom~Right; + + % The left line, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("F") + (biggap#, smallcap#, smallgap#); + + "The letter F"; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The bar. + draw + BBar~Left + -- farrightof BBar~(Left + bigjut); + + % The left line, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("G") + (medgap#, medcap#, medgap#); + + "The letter G"; + + % The curve of the G (which is the same as of a C). + var (path) Gpath; + + Gpath + = (Top - CCurl)~Right + .. oabove Top~Middle {left} + .. Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. (Bottom + CCurl)~Right; + + % The emphasis for the left of the curve. + draw + fatcliptwice + (rightof obelow Bottom~Left -- oabove rightof Top~Left) + (Gpath); + + % The curve. + draw Gpath; + + % The bar. + draw + (Bottom + CCurl)~Right + -- GBar~Right + -- GBar~(Right - bigjut) + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("H") + (biggap#, medcap#, biggap#); + + "The letter H"; + + % The right line. + draw + Top~Right + -- Bottom~Right; + + % The bar. + draw + BBar~Left + -- BBar~Right; + + % The left line, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("I") + (biggap#, tiny#, biggap#); + + "The letter I"; + + % The vertical, fattened. + draw + fatten + Top~Middle + -- Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("J") + (medgap#, smallcap#, biggap#); + + "The letter J"; + + % The curve. + var (path) Jpath; + + Jpath + = Top~Right + -- (Bottom -+- Top)~Right {down} + .. obelow Bottom~Middle {left} + .. (Bottom + CCurl)~Left; + + % The emphasis on the J, clipped by the curve. + draw + fatcliponce + (leftof Top~Right -- obelow leftof Bottom~Right) + (Jpath); + + % The curve. + draw Jpath + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("K") + (biggap#, smallcap#, medgap#); + + "The letter K"; + + % The point at which the top diagonal hits the left side of the character. + % It is somewhere along the line from the top right to BBar~Middle. + + z1 = whatever[Top~Right, BBar~Middle]; + x1 = Left; + + % The top diagonal. + draw + z1 -- Top~Right; + + % The bottom diagonal. + draw + BBar~Middle + -- Bottom~Right; + + % The left edge, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("L") + (biggap#, smallcap#, smallgap#); + + "The letter L"; + + % The bottom line. + draw + Bottom~Left + -- Bottom~Right; + + % The left line, fattened. + draw + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("M") + (biggap#, medcap#, biggap#); + + symmetric; + + "The letter M"; + + % The left line, fattened and clipped by the left diagonal. + + draw + fatcliponce + (rightof Bottom~Left -- rightof Top~Left) + (Top~Left -- BBar~Middle); + + % The rest of the letter. + draw + Top~Left + -- BBar~Middle + -- Top~Right + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("N") + (biggap#, medcap#, biggap#); + + "The letter N"; + + % The left line, fattened and clipped by the diagonal. + + draw + fatcliponce + (rightof Bottom~Left -- rightof Top~Left) + (Top~Left -- Bottom~Right); + + % The rest of the letter. + draw + Top~Left + -- Bottom~Right + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("O") + (medgap#, medcap#, medgap#); + + "The letter O"; + + % The path of the O. + var (path) Opath; + + Opath + = oabove Top~Middle + .. Horizon~Left + .. obelow Bottom~Middle + .. Horizon~Right + .. cycle; + + % The emphasis at the left of the O, clipped by the O curve. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (Opath); + + % The curve. + draw Opath + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("P") + (biggap#, smallcap#, medgap#); + + "The letter P"; + + % The arc. + draw + Top~Left + -- Top~Middle {right} + .. (Top -+- BBar)~Right + .. {left} BBar~Middle + -- BBar~Left; + + % The left line, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbchar + ("Q") + (medgap#, medcap#, medgap#) + (ATop#, QTailBottom#); + + "The letter Q"; + + % The path of the Q. + var (path) Qpath; + + Qpath + = oabove Top~Middle + .. (Top -+- aBottom)~Left + .. obelow aBottom~Middle + .. (Top -+- aBottom)~Right + .. cycle; + + % The emphasis at the left of the Q, clipped by the Q curve. + draw + fatcliptwice + (obelow rightof Bottom~Left -- oabove rightof Top~Left) + (Qpath); + + % The curve. + draw Qpath; + + % The tail. + draw + QTailTop~Middle + -- QTailBottom~Right + +endchar; + + +% ------------------------------------------------------------------- + +bbcap + ("R") + (biggap#, smallcap#, medgap#); + + "The letter R"; + + % The arc. + draw + Top~Left + -- Top~Middle {right} + .. (Top -+- BBar)~Right + .. {left} BBar~Middle + -- BBar~Left; + + % The left line, fattened. + outline + fatten + rightof Top~Left + -- rightof Bottom~Left; + + % The diagonal. + draw + BBar~Middle + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("S") + (medgap#, smallcap#, medgap#); + + "The letter S"; + + % The path of the S. + var (path) Spath; + + Spath + = (Top - CCurl)~Right + .. oabove Top~Middle {left} + .. (Top -+- BBar)~Left {down} + .. BBar~Middle {right} + .. (BBar -+- Bottom)~Right {down} + .. obelow Bottom~Middle {left} + .. (Bottom + CCurl)~Left; + + % The emphasis at the top left of the S. + draw + fatcliptwice + (oabove rightof Top~Left -- rightof BBar~Left) + (subpath (0, 4) of Spath); + + % The path of the S. + draw Spath + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("T") + (smallgap#, medcap#, smallgap#); + + fatsymmetric; + + "The letter T"; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The vertical, fattened. + draw + fatten + Top~Middle + -- Bottom~Middle + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("U") + (biggap#, medcap#, biggap#); + + "The letter U"; + + % The path of the U. + var (path) Upath; + + Upath + = Top~Left + -- Horizon~Left {down} + .. obelow Bottom~Middle {right} + .. {up} Horizon~Right + -- Top~Right; + + % The emphasis of the U. + draw + fatcliponce + (rightof Top~Left -- obelow rightof Bottom~Left) + (Upath); + + % The path of the U. + draw Upath + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("V") + (smallgap#, medcap#, smallgap#); + + symmetric; + + "The letter V"; + + % The left diagonal, clipped by the right. + draw + fatcliponce + (rightof Top~Left -- rightof Bottom~Middle) + (Bottom~Middle -- Top~Right); + + % The right diagonal. + draw + Bottom~Middle + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("W") + (smallgap#, bigcap#, smallgap#); + + symmetric; + + "The letter W"; + + % The left diagonal, clipped by the rest. + draw + fatcliponce + (rightof Top~Left -- rightof Bottom~(Left -+- Middle)) + (Bottom~(Left -+- Middle) -- BBar~Middle); + + % The rest of the letter. + draw + Bottom~(Left -+- Middle) + -- BBar~Middle + -- Bottom~(Middle -+- Right) + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("X") + (medgap#, medcap#, medgap#); + + "The letter X"; + + % The SE diagonal. + draw + Top~Left + -- Bottom~Right; + + % The SW diagonal, fattened. + outline + fatten + leftof Top~Right + -- rightof Bottom~Left + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("Y") + (smallgap#, medcap#, smallgap#); + + fatsymmetric; + + "The letter Y"; + + % The fat stroke running top left to bottom. + draw + fatten + rightof Top~Left + -- BBar~Middle + -- Bottom~Middle; + + % The right diagonal. + draw + rightof BBar~Middle + -- Top~Right + +endchar; + +% ------------------------------------------------------------------- + +bbcap + ("Z") + (medgap#, medcap#, medgap#); + + "The letter Z"; + + % The top line. + draw + Top~Left + -- Top~Right; + + % The diagonal, fattened. + draw + fatten + leftof Top~Right + -- rightof Bottom~Left; + + % The bottom line. + draw + Bottom~Left + -- Bottom~Right + +endchar; + +% ------------------------------------------------------------------- + |