diff options
author | Karl Berry <karl@freefriends.org> | 2008-01-22 00:47:52 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-01-22 00:47:52 +0000 |
commit | a69af871d6ae9cb51cb7f1b25e2ac690da926ed7 (patch) | |
tree | fb5a3f4a3ecc6f97f7656e7d9e9b5941c87ff741 /Master/texmf-dist/fonts | |
parent | 17337a1ac66e89310e57ca7eaff87370d2172703 (diff) |
new font package lxfonts (20jan08)
git-svn-id: svn://tug.org/texlive/trunk@6363 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts')
82 files changed, 9095 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/map/dvips/lxfonts/lxfonts.map b/Master/texmf-dist/fonts/map/dvips/lxfonts/lxfonts.map new file mode 100644 index 00000000000..a797ef03481 --- /dev/null +++ b/Master/texmf-dist/fonts/map/dvips/lxfonts/lxfonts.map @@ -0,0 +1,21 @@ +lcmbsy8 <lcmbsy8.pfb +lcmex8 <lcmex8.pfb +lcmmi8 <lcmmi8.pfb +lcmmib8 <lcmmib8.pfb +lcmsy8 <lcmsy8.pfb +leclb8 <leclb8.pfb +lecli8 <lecli8.pfb +leclo8 <leclo8.pfb +leclq8 <leclq8.pfb +llasy8 <llasy8.pfb +llasyb8 <llasyb8.pfb +llcmss8 <llcmss8.pfb +llcmssb8 <llcmssb8.pfb +llcmssi8 <llcmssi8.pfb +llcmsso8 <llcmsso8.pfb +lmsam8 <lmsam8.pfb +lmsbm8 <lmsbm8.pfb +ltclb8 <ltclb8.pfb +ltcli8 <ltcli8.pfb +ltclo8 <ltclo8.pfb +ltclq8 <ltclq8.pfb diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lamsya.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lamsya.mf new file mode 100644 index 00000000000..88e85674ae6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lamsya.mf @@ -0,0 +1,34 @@ +%% Copied and modified from AMSYA by American Mathematical Society +%% in order to apply the necessary modification so as to generate the +%% MSAM symbol fonts that cope with the slides fonts. +%% +%% Claudio Beccari 2007 +%% } +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +font_coding_scheme:="TeX math symbols"; +mode_setup; font_setup; + +autorounding:=0; + +font_slant slant; font_x_height x_height#; +font_quad 18u# if not monospace:+4letter_fit# fi; +% (The spacing is zero so that \TeX\ will always add the italic correction.) +% (The calling file should give the other math symbol font parameters.) + +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; +input lasymbols; % the symbols + +%if not monospace: +% skewchar=oct"060"; skew#=.5u#; +% ligtable "I": "T": "V": skewchar kern skew#; +% ligtable "K": skewchar kern 2skew#; +% ligtable "D": "N": "P": "R": "U": "W": "Y": skewchar kern 3skew#; +% ligtable "E": "F": "G": "H": "O": "Q": skewchar kern 4skew#; +% ligtable "B": "C": "L": "M": "S": "X": "Z": skewchar kern 5skew#; +% ligtable "J": skewchar kern 6skew#; +% ligtable "A": skewchar kern 7skew#; +%fi; +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lamsyb.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lamsyb.mf new file mode 100644 index 00000000000..07afec89f77 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lamsyb.mf @@ -0,0 +1,22 @@ +%% File LAMSYB copied and modified from AMSYB by American Mathematical Society +%% in order to cope with the necessities of the slides fonts +%% +%% Claudio Beccari 2007 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +font_coding_scheme:="TeX math symbols"; +mode_setup; font_setup; + +autorounding:=0; + +font_slant slant; font_x_height x_height#; +font_quad 18u# if not monospace:+4letter_fit# fi; +% (The spacing is zero so that \TeX\ will always add the italic correction.) +% (The calling file should give the other math symbol font parameters.) + +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; +input lbsymbols; % the symbols +input lxbbold; % Neenie's blackboard bold +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lasymbols.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lasymbols.mf new file mode 100644 index 00000000000..5dc60c0622a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lasymbols.mf @@ -0,0 +1,1933 @@ +%% Copied and modified from ASYMBOLS by American Mathematical Society +%% in order to app;y the necessary modifictions so as to produce the MSAM +%% symbols that cope with the slides fonts +%% +%% Claudio Beccari 2007 +%% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Italic corrections have not been computed for most of these characters, +% since they are generally not slanted. + +% Changed some assignments for +% +% cmchar "Circle-R brand" +% cmchar "Circle-S brand" +% +% to avoid rounding problems and the differences in TFM files for +% different magnifications +% +% Changed by Stefan Lindner 15.03.1991 +% +% original: radius=.5(6u++cap_height)+3u; radius=radius#*hppp; +% changed: radius#=.5(6u#++cap_height#)+3u#; radius:=radius#*hppp; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +def makesquare (suffix i,j,k,l) = +%% z.j, z.k are the lower left and right corners +%% assumed on baseline; ie, y.k=y.j=0 +%% z.i, z.l are upper left and right corners +%% that is, start labeling with upper left corner, and +%% proceed to the successive corners counter-clockwise. +y.i-y.j=x.k-x.j; y.i:=good.y y.i+o; y.l=y.i +%% user must draw the square him/herself. +enddef; + + +cmchar "Square with dot"; +beginchar(oct"000",14u#,12u#,0); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.0u; x2=x1; x4=x5=w-x1; +bot y2=0; y4=y2; +makesquare (1,2,4,5); +y3=good.y .5[y1,y2]; x3=good.x .5[x1,x5]; +draw z1---z2---z4---z5---cycle; % square +fill fullcircle scaled dot_size shifted z3; % dot +penlabels(1,2,3,4,5); endchar; + +cmchar "Square plus"; +beginchar(oct"001",14u#,12u#,0); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.0u; x2=x1; x4=x5=w-x1; +bot y2=0; y4=y2; makesquare(1,2,4,5); +draw z1---z2---z4---z5---cycle; % square +x6=x1; x7=x4; y6=.5[y1,y2]; y7=y6; % cross strut +y8=y1; y9=y2; x8=.5[x1, x5]; x9=x8; % vertical strut +draw z6---z7; draw z8---z9; % plus +penlabels(1,2,4,5,6,7,8,9); endchar; + +cmchar "Square times"; +beginchar(oct"002",14u#,12u#,0); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.0u; x2=x1; x4=x5=w-x1; +bot y2=0; y4=y2; makesquare(1,2,4,5); +draw z1---z2---z4---z5---cycle; % square +draw z1---z4; draw z2---z5; % diagonals +penlabels(1,2,4,5); endchar; + +cmchar "Square"; +beginchar(oct"003",14u#,12u#,0); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.0u; x2=x1; +x4=x5=w-x1; +bot y2=0; y4=y2; makesquare(1,2,4,5); +draw z1---z2---z4---z5---cycle; % square +penlabels(1,2,4,5); endchar; + +cmchar "Filled square"; +beginchar(oct"004",14u#,12u#,0); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.0u; x2=x1; x4=x5=w-x1; +bot y2=0; y4=y2; makesquare(1,2,4,5); +filldraw z1---z2---z4---z5---cycle; % square +penlabels(1,2,4,5); endchar; + +cmchar "Small filled square"; +beginchar(oct"005",5u#,.8asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.0u; x2=x1; x3=x4=w-x1; +bot y2=0; y3=y2; makesquare(1,2,3,4); +filldraw z1---z2---z3---z4---cycle; % draw and fill square +penlabels(1,2,3,4); endchar; + + +cmchar "Diamond"; +beginchar(oct"006",12u#,asc_height#,2u#); +adjust_fit(0,0); pickup rule.nib; +%% z1, z2 are left & right vertices +%% z3, z4 are top and bottom points +lft x1=hround u; x2=w-x1; y1=y2; +x3=x4=.5[x1, x2]; bot y4=-d-o; top y3= good.y h+o; +y1=.5[y4,y3]; +draw z1---z3---z2---z4---cycle; % draw diamond +penlabels(1,2,3,4); endchar; + +cmchar "Filled Diamond"; +beginchar(oct"007",12u#,asc_height#,2u#); +adjust_fit(0,0); pickup rule.nib; +%% z1, z2 are left & right vertices +%% z3, z4 are top and bottom points +lft x1=hround u; x2=w-x1; y1=y2; +x3=x4=.5[x1, x2]; bot y4=-d-o; top y3= good.y h+o; +y1=.5[y4,y3]; +filldraw z1---z3---z2---z4---cycle; % draw diamond +penlabels(1,2,3,4); endchar; + +% do char "011 before char "010. +cmchar "Counter-clockwise-circle indicator"; +beginarithchar(oct"011"); pickup light_rule.nib; +autorounded; lft x6=hround u; x2=w-x6; +y2=math_axis; top y8=h; +circle_points; % define points on circumference +%% see page 487 of vol E +path p; numeric t; +p=z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left} + ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle; +t=xpart(p intersectiontimes ((4.5u,0)--(4.5u,y8))); +draw subpath (0,t) of p; % circle with gap +z0=.5[z5,z1]; % the origin of the circle +%% Now prepare for left arrowhead--see pg E465 +pickup crisp.nib; +pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0); +y10=y12=y8; lft x10=hround x8; +y13-y10=y10-y14=.19asc_height+eps; x13=x14=x10+3u+eps; +pos15(bar,angle(z14-z10)); z15l=z10; +pos16(bar,angle(z13-z10)); z16l=z10; +z19=.38[.5[z13,z14],z10]; +numeric t; path p; % re-use t, p +p=z14r{z19-z14}..z16r; +t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); +x12=xpart point t of p; +path p; +p=z10..{z14-z19}z14l--subpath(0,t) of +(z14r{z19-z14}..z16r)--z12l--z12r +--subpath(t,0) of (z13r{z19-z13}..z15r) +--z13l{z19-z13}..z10&cycle; % arrowhead +p:=p shifted -z8; % move back to origin +p:=p rotated -16; % rotate down a bit +p:=p shifted z8; % move back to tip of circle +filldraw p; +penlabels(0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,19); +picture v; v:=currentpicture; endchar; + +cmchar "Clockwise-circle indicator"; +beginarithchar(oct"010"); +currentpicture:=v reflectedabout ((w/2,0),(w/2,h)); +penlabels(0,1,2,3,5,6,7,8,9,10); endchar; + +cmchar "Left-Right Harpoons"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"013",18u#,v_center(spread#+.48asc_height#)); +path topleft; % for top left half arrow (harpoon) +adjust_fit(0,0); +pickup crisp.nib; +pos1(rule_thickness,90); pos2(rule_thickness,90); +pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; +x1+.5rule_thickness=hround(w-u); lft x0=hround u; +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); +z6l=z0; numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); +x2=xpart point t of p; +topleft=z0--(x0,y2l)---z1l..z1r---z2r + ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r) + --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem +topleft:= +topleft shifted (0,.5spread); % shift above math_axis +path botright; % for bottom right half arrow +botright:=topleft reflectedabout ((w/2,0),(w/2,h)); +botright:=botright reflectedabout +((0,math_axis+eps),(w,math_axis+eps)); +filldraw topleft; filldraw botright; +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Right-Left Harpoons"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"012",18u#,v_center(spread#+.48asc_height#)); +path topright, botleft; +adjust_fit(0,0); +pickup crisp.nib; +topright:=topleft reflectedabout((w/2,0),(w/2,h)); +botleft:=botright reflectedabout((w/2,0),(w/2,h)); +filldraw topright; filldraw botleft; endchar; + +cmchar "Square minus"; +beginchar(oct"014",14u#,12u#,0); adjust_fit(0,0); +pickup rule.nib; lft x1=hround 1.0u; x2=x1; x4=x5=w-x1; bot +y2=0; y4=y2; makesquare(1,2,4,5); +draw z1---z2---z4---z5---cycle; % square +x6=x1; x7=x4; y6=.5[y1,y2]; y7=y6; % cross strut +draw z6---z7; % minus +penlabels(1,2,4,5,6,7); endchar; + +cmchar "Forces"; +beginchar(oct"015",13u#,asc_height#,0); +adjust_fit(0,0);; pickup rule.nib; +top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2; +lft x5=hround u; x4=w-x5; +compute_spread(.45x_height#,.55x_height#); +x1=x5+spread; x1=x2=x3; x6=x5; +draw z6--z5; draw z2--z1; draw z3--z4; +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Forces with extra bar"; +beginchar(oct"016",16u#, asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +compute_spread(.42x_height#,.52x_height#); +top y1=h; bot y2=0; y3=y4=good.y .5h; +y5=y7=y1; y6=y8=y2; lft x7=hround u; x4=w-x7; +x5=good.x x7+spread; x1=good.x x5+spread; +x1=x2=x3; x6=x5; x7=x8; +draw z7--z8; draw z5--z6; draw z1--z2; % verticals +draw z3--z4; % horizontal piece +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Satisfies"; +beginchar(oct"017",11u#,asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +compute_spread(.45x_height#,.55x_height#); +top y1=h; bot y2=0; y0=good.y .5[y1,y2]; +y3=vround y0+.5spread; +y5=vround y0- .5spread; y4=y3; y6=y5; +lft x1=hround u; x4=w-x1; +x1=x2=x3=x5; x4=x6; x0=x1; +draw z1--z2; % vertical line +draw z3--z4; % draw top horizontal piece +draw z5--z6; % draw bottom horizontal piece +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Rightward double arrowhead"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"020",18u#,v_center(spread#+.48asc_height#)); adjust_fit(0,0); +pickup crisp.nib; pos1(rule_thickness,90); pos2(rule_thickness,90); +pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; +rt x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; path p; +p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z2l--z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; +filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +filldraw p shifted (x3l-x0,0); +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Leftward double arrowhead"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"021",18u#,v_center(spread#+.48asc_height#)); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,90); pos2(rule_thickness,90); +pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; +x1+.5rule_thickness=hround(w-u); lft x0=hround u; +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); +z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; +p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); +x2=xpart point t of p; +path p; p=z0..{z4-z9}z4l--subpath (0,t) +of\\(z4r{z9-z4}..z6r) + --z2l--z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % second arrowhead +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +filldraw p shifted (x3r-x0,0); +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Leftward double arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"022",18u#,v_center(spread#+.96asc_height#)); +adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90); +pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft +x0=hround u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); +z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t; path p; +p=z4r{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +path p; % re-use p +p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +p:=p shifted (0,y2-y4+eps); filldraw p; % top arrow +p:= p shifted (0,y4-y3-eps); filldraw p; % bottom arrow +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Rightward double arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"023",18u#,v_center(spread#+.96asc_height#)); +adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90); +pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt +x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps; +x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +path p; p=z0..{z4-z9}z4r--subpath (0,t) +of\\(z4l{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +p:=p shifted (0,y2-y4+eps); filldraw p; % top +p:=p shifted (0,y4-y3-eps); filldraw p; %bottom +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Double upward arrow"; +beginchar(oct"024",15u#,asc_height#,asc_depth#); italcorr +.76asc_height#*slant+.5crisp#-u#; adjust_fit(0,0); pickup +crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0); +pos3(bar,90); pos4(bar,90); lft +x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d; +x0=x1=x2; top y0=h; x0-x3=x4-x0=3u+eps; +y3=y4=y0-.24asc_height-eps; pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p +intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of +p; +path p; p=z0..{z4-z9}z4r--subpath (0,t) +of\\(z4l{z9-z4}..z6r) + --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +p:=p shifted (x0-x4-eps,0); filldraw p; % left arrow +p:=p shifted (x4-x3+eps,0); filldraw p; +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Double downward arrow"; +beginchar(oct"025",15u#,asc_height#,asc_depth#); +adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,0); +pos2(rule_thickness,0); pos3(bar,90); pos4(bar,90); lft +x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h; +x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps; +y3=y4=y0+.24asc_height+eps; pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p +intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of +p; +path p; p=z0..{z4-z9}z4l--subpath (0,t) +of\\(z4r{z9-z4}..z6r) + --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +p:=p shifted (x0-x4-eps,0); filldraw p; % left arrow +p:=p shifted (x4-x3+eps,0); filldraw p; +penlabels(0,1,2,3,4,5,6,9); endchar; + +%% +cmchar "Upward rightward harpoon"; +beginchar(oct"026",7.5u#,asc_height#, asc_depth#); +%% see page E431 +adjust_fit(0,0); pickup crisp.nib; +x0=x1=x2; lft x1l=hround(.5w-.5rule_thickness); +y1-.5rule_thickness=-d; pos1(rule_thickness,0); +pos2(rule_thickness,0); pos3(bar,-90); pos4(bar,-90); +top y0=vround h; +x3-x0=x0-x4=.24asc_height+eps; y3=y4=y0-3u-eps; +pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; +p=z4r..{y0-y4,2(x0-x4)}z6r; +t=xpart (p intersectiontimes ((x2l,0)--(x2l,h))); +y2=ypart point t of p; +filldraw z0--(x2l,y0)---z1l..z1r---z2r + ..subpath(t,0) of (z3r..{x0-x3,2(y0-y3)}z5r) + --z3l..{x0-x3,2(y0-y3)}cycle; +picture v; v:=currentpicture; +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Downward rightward harpoon"; +beginchar(oct"027",7.5u#,asc_height#,asc_depth#); +adjust_fit(0,0); +currentpicture:=v +reflectedabout((0,.5(h-d)*aspect_ratio+eps),(w,.5(h-d)*aspect_ratio+eps)); +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Upward leftward harpoon"; +beginchar(oct"030",7.5u#,asc_height#, asc_depth#); +adjust_fit(0,0); +currentpicture:= +v reflectedabout((w/2+eps,-d),(w/2+eps,h)); +picture v; v:=currentpicture; +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Downward leftward harpoon"; +beginchar(oct"031",7.5u#,asc_height#,asc_depth#); +adjust_fit(0,0); +currentpicture:=v +reflectedabout((0,.5(h-d)*aspect_ratio+eps),(w,.5(h-d)*aspect_ratio+eps)); +penlabels(0,1,2,3,4,5,6); endchar; + +cmchar "Rightward arrow with tail"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"032",20u#,v_center(spread#+.48asc_height#)); +adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90); +pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=math_axis; x1-.5rule_thickness=hround 1.5u; rt +x0=hround(w-3u); y3-y0=y0-y4=.24asc_height+eps; +x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +path p; +p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +path arrow; +arrow=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z2l---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; +p:=p shifted (2u,0); filldraw p; +arrow:=arrow shifted (-13u+bar,0); filldraw arrow; +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Leftward arrow with tail"; +beginchar(oct"033",20u#,v_center(spread#+.48asc_height#)); +adjust_fit(0,0); pickup crisp.nib; +p:= p reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +arrow:= arrow reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +filldraw p; filldraw arrow; +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Leftward-rightward parallel arrows"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"034",18u#,v_center(spread#+.96asc_height#)); +adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90); +pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft +x0=hround u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); +z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t; path p; +p=z4r{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +path p, q; % re-use p +p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +p:=p shifted (0,.5[y3,y4]+eps); filldraw p; % top arrow +p:= p shifted (0,y4-y3); +q:= p reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +p:=p shifted (0,y3-y4+eps); % restore p's position +filldraw q; % bottom arrow +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Rightward-leftward parallel arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"035",18u#,v_center(spread#+.96asc_height#)); +adjust_fit(0,0); pickup crisp.nib; +p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +q:=q reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +filldraw p; filldraw q; +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Leftward shift"; +beginchar(oct"036",9u#,asc_height#, 0); +adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90); +pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=.8h; x1+.5rule_thickness=hround(w-u); lft x0=hround +u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); +z6l=z0; z9=.381966[.5[z3,z4],z0]; +z10=z1; x11=x10; y11-.5rule_thickness =vround -d; +pos10(rule_thickness,0); pos11(rule_thickness,0); +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); +x2=xpart point t of p; +path p; +p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) +--z2l---(x10l,y1l)--z11l..z11r---{up}z10r..{left}z1r---z2r--subpath +(t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and bent stem +filldraw p; +penlabels(0,1,2,3,4,5,6,9,10); endchar; + +cmchar "Rightward shift"; +beginchar(oct"037",9u#,asc_height#, 0); +adjust_fit(0,0); pickup crisp.nib; +p:=p reflectedabout((w/2+eps,-d),(w/2+eps,h)); +filldraw p; +penlabels(0,1,2,3,4,5,6,9); endchar; + +compute_spread(.45x_height#,.55x_height#); +cmchar "Rightward squiggly arrow"; +beginchar(oct"040",18u#,v_center(spread# + +rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,90); pos2(rule_thickness,90); +pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; +x1-.5rule_thickness=hround 11u; rt x0=hround(w-u); +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); +z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; +p=z4l{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +path p; +p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +filldraw p; +%% now for squiggle +x12-x11=x13-x12=x14-x13=x15-x14=x16-x15=x1-x16; +x1-x11=hround (w-2u-x0+x1-.5rule_thickness); +y11=y13=y15=y0; y12=y16=.5[y0,y3]; +y14=.5[y4,y0]; +pickup pencircle scaled rule_thickness; +draw z11---z12---z14---z16---z1; +penlabels(0,1,2,3,4,5,6,9,11,12,13,14,15,16); endchar; + +compute_spread(.45x_height#,.55x_height#); +cmchar "Leftward rightward squiggly arrow"; +beginchar(oct"041",25u#,v_center(spread# + +rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +arrow_length=4.5u+eps; +pos1(rule_thickness,90); pos2(rule_thickness,90); +pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; +x1+.5rule_thickness=hround(u+arrow_length); +lft x0=hround u; y3-y0=y0-y4=.24asc_height+eps; +x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +path p; p=z0..{z4-z9}z4l--subpath (0,t) +of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +filldraw p; % left arrow +p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +filldraw p; % right arrow +z10=z1 reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +y11=y15=y19=.5[y0,y3]; y13=y17=.5[y4,y0]; +y12=y14=y16=y18=y10; +x11-x1=x12-x11=x13-x12=x14-x13=x15-x14=x16-x15=x17-x16=x18-x17= +x19-x18=x10-x19; +pickup pencircle scaled rule_thickness; +draw z1---z11---z13---z15---z17---z19---z10; +penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,17,18,19); +endchar; + +cmchar "Leftward curly arrow"; +beginchar(oct"042",18u#,.8asc_height#,0#); +adjust_fit(0,0); pickup crisp.nib; +numeric arrow_length; arrow_length=.66*(w-2u+eps); +pos1(rule_thickness,90); pos2(rule_thickness,90); +pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; +x1+.5rule_thickness=hround(u+arrow_length); +lft x0=hround u; y3-y0=y0-y4=.24asc_height+eps; +x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +path p; p=z0..{z4-z9}z4l--subpath (0,t) +of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +filldraw p; % left arrow +z10=z1; x13=x14=hround(u+arrow_length+eps); y13=y1; y14=-o; +x12=.5[x11,x13]; y12=h; rt x11=hround(w-u); y11=.5[y10,y12]; +pickup pencircle scaled rule_thickness; +path q; +q=z10{right}..tension0.8..{up}z11..tension0.8..{left}z12 +..tension0.8..{down}z13--z14; +draw q; +penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14); endchar; + +cmchar "Rightward curly arrow"; +beginchar(oct"043",18u#,.8asc_height#,0#); +adjust_fit(0,0); pickup crisp.nib; +p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +filldraw p; +pickup pencircle scaled rule_thickness; +q:=q reflectedabout ((w/2+eps,-d),(w/2+eps,h)); +draw q; endchar; + +numeric circ_diam; % diameter of little circle +circ_diam=2.5u; +cmchar "Equals circle sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"044",14u#,v_center(4spread#+rule_thickness#+2.5u#)); +italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4; +y1-y3=spread; .5[y1,y3]=math_axis; draw z1--z2; % upper bar +draw z3--z4; % lower bar % +penpos11(rule_thickness,90); penpos13(rule_thickness,-90); +penpos12(rule_thickness,180); penpos14(rule_thickness,0); +x12r=hround(.5w-.5circ_diam-rule_thickness); % +x14r=w-x12r; x11=x13=.5w; y11l=y13l+circ_diam; +y12=y14=.5[y11,y13]; y13r=vround(y1+.8spread); % +penstroke pulled_arc.e(11,12) & pulled_arc.e(12,13) + & pulled_arc.e(13,14) & pulled_arc.e(14,11) & cycle; % +penlabels(1,2,3,4,11,12,13,14); endchar; + + + +cmchar "Follows or equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % spread of similarity sign +compute_spread(.54 x_height#,.66 x_height#); +spread#'':=spread#; spread'':=spread; % spread between symbols +compute_spread(5/4 x_height#,3/2 x_height#); % spread of follows sign +beginchar(oct"045",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x1=x3; x2=w-x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1{u,-spread}...{right}z2; %upper `diagonal' +draw z3{u,spread}...{right}z2; % lower diagonal +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; +y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +penlabels(1,2,3,11,12,13,14); endchar; + +cmchar "Greater than or similar to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.66x_height#); +spread#'':=spread#; spread'':=spread; +compute_spread(5/4 x_height#,3/2 x_height#); +beginchar(oct"046",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x1=x3; x2=w-x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; + y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +penlabels(1,2,3,4,11,12,13,14); endchar; + +cmchar "Greater than or approximately equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.66x_height#); +spread#'':=spread#; spread'':=spread; % spread between similarities +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"047",14u#,v_center(spread#+2spread#''+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x1=x3; x2=w-x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread'; +bot y3- top y13 = spread''; +path p; p=z11{up}...z12{right}..{right}z13...{up}z14; +draw p; draw p shifted (0,-spread''); +penlabels(1,2,3,4,11,12,13,14); endchar; + +cmchar "Multimap symbol"; +beginchar(oct"050",20u#,.8asc_height#,0#); +adjust_fit(0,0); pickup rule.nib; autorounded; +numeric circ_diam; circ_diam=5u; +y2=math_axis; y8=y2+.5circ_diam; rt x2=w-u; +x6=x2-circ_diam; +circle_points; draw_circle; +x9=u+.5rule_thickness; y9=y10=y2; x10=x6-.5rule_thickness; +draw z9---z10; +penlabels(1,2,3,4,5,6,7,8,9,10); endchar; + +cmchar "Therefore"; +beginchar(oct"051",12u#,asc_height#,0); +adjust_fit(0,0); +lft x1=hround 1.5u; x2=w-x1; bot y1=-o; y2=y1; +z3-z1=(z2-z1)rotated60; +fill fullcircle scaled dot_size shifted z1; +% left bottom dot +fill fullcircle scaled dot_size shifted z2; +% rigth bottom +fill fullcircle scaled dot_size shifted z3; % top dot +penlabels(1,2,3); endchar; + + +cmchar "Because"; +beginchar(oct"052",12u#,asc_height#,0); +adjust_fit(0,0); +lft x1=hround 1.5u; x2=w-x1; y2=y1; +x3=w/2; y3=-o; +z3-z1=(z2-z1)rotated-60; +fill fullcircle scaled dot_size shifted z1; % top left dot +fill fullcircle scaled dot_size shifted z2; +% top right dot +fill fullcircle scaled dot_size shifted z3; % bottom dot +penlabels(1,2,3); endchar; + +cmchar "Equals-and-dots sign"; +beginarithchar(oct"053"); +compute_spread(.45x_height#,.55x_height#); +pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; +y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis; +draw z1--z2; draw z3--z4; % draw bars +pickup light_rule.nib; +x5=x6=x7=x8=hround w/2+eps; z5=z6; z7=z8; +penpos5(.8dot_size,0); penpos6(.8dot_size,90); +penpos7(.8dot_size,0); penpos8(.8dot_size,90); +y5-y1=y3-y7=spread; +dot(5,6); dot(7,8); % draw dots +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Equals sign with triangle"; +beginchar(oct"054", 14u#,12u#+math_axis# ,6u#-math_axis#); +compute_spread(.45x_height#,.55x_height#); +pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; +y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis; +draw z1--z2; draw z3--z4; % draw bars +numeric tri_side; % length of equilateral triangle +tri_side=7u; +x6-x5=tri_side; .5[x5,x6]=w/2; y5=y6; y5-y1=.8spread; +%top y7=body_height;x7=w/2; +z7-z5=(z6-z5) rotated 60; +draw z5--z6--z7--cycle; +penlabels(1,2,3,4,5,6,7); endchar; + + +cmchar "Precedes or equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.55x_height#); +spread#'':=spread#; spread'':=spread; +compute_spread(5/4 x_height#,3/2 x_height#); +beginchar(oct"055",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1{-u,-spread}...{left}z2; %upper `diagonal' +draw z3{-u,spread}...{left}z2; % lower diagonal +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; + y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +penlabels(1,2,3,11,12,13,14); endchar; + +cmchar "Less than or similar to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.55x_height#); +spread#'':=spread#; spread'':=spread; +compute_spread(5/4 x_height#,3/2 x_height#); +beginchar(oct"056",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; + y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +penlabels(1,2,3,4,11,12,13,14); endchar; + +cmchar "Less than or approximately equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.66x_height#); +spread#'':=spread#; spread'':=spread; % spread between similarities +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"057",14u#,v_center(spread#+2spread#''+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread'; +bot y3- top y13 = spread''; +path p; p=z11{up}...z12{right}..{right}z13...{up}z14; +draw p; draw p shifted (0,-spread''); +penlabels(1,2,3,4,11,12,13,14); endchar; + +cmchar "Equal or less than sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"060",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; y8-y1=y9-y2=spread'; top y8=h; +x2=x9; x1=x8; +draw z1--z2--z3; % diagonals +draw z8--z9; % equal sign +penlabels(1,2,3,8,9); endchar; + +cmchar "Equal or greater than sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"061",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x9; x1=x8; +y2=.5[y1,y3]; y8-y1=y9-y2=spread'; top y8=h; +draw z1--z2--z3; % diagonals +draw z8--z9; +penlabels(1,2,3,8,9); endchar; + +cmchar "Less than or (slanted) equal sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"066",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h; +x2=x9; x1=x8; +draw z1--z2--z3; % diagonals +draw z8--z9; % equal sign +penlabels(1,2,3,8,9); endchar; + +cmchar "Greater than or (slanted) equal sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"076",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x9; x1=x8; +y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h; +draw z1--z2--z3; % diagonals +draw z8--z9; +penlabels(1,2,3,8,9); endchar; +cmchar "Less than or greater than sign"; +compute_spread(.4x_height#,.5x_height#); +spread#':=spread#; spread':=spread; +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"067",14u#,v_center(2spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround w-1.5u+eps; x1=x3=x5; x2=x4=x6=w-x1; +y1-y3=spread; top y1=h; y2-y4=spread'; y4-y6=spread; +y2=.5[y1,y3]; y5=.5[y4,y6]; +draw z1--z2--z3; draw z4--z5--z6; +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Greater than or less than sign"; +compute_spread(.4x_height#,.5x_height#); +spread#':=spread#; spread':=spread; +compute_spread(1.111 x_height#,1.333x_height#); +beginchar(oct"077",14u#,v_center(2spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x1=x3=x5; x2=x4=x6=w-x1; +y1-y3=spread; top y1=h; y2-y4=spread'; y4-y6=spread; +y2=.5[y1,y3]; y5=.5[y4,y6]; +draw z1--z2--z3; draw z4--z5--z6; +penlabels(1,2,3,4,5,6); endchar; + +cmchar "Equals or precedes sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"062",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround(1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y8-bot y1=top y9-bot y2=spread'; bot y3=0; +x2=x9;x8=x1-2u; +draw z1{-u,-spread}...{left}z2; +draw z3{-u, spread}...{left}z2; +draw z8{-u,-spread}...{left}z9; +penlabels(1,2,3,8,9); endchar; + +cmchar "Equals or follows sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"063",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y8-bot y1=top y9-bot y2=spread'; bot y3=0;% top y8=h; +x2=x9;x8=x1+2u; +draw z1{u,-spread}...{right}z2; +draw z3{u, spread}...{right}z2; +draw z8{u,-spread}...{right}z9; +penlabels(1,2,3,8,9); endchar; + +cmchar "Precedes or curvy equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"064",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround(1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y3-bot y8=top y2-bot y9=spread'; bot y3=0; +x2=x9;x8=x1-2u; +%for i=1 upto 3: %lower entire character +%y[i]:=y[i]-spread'; endfor +%for i=8 upto 9: +%y[i]:=y[i]-spread'; endfor +draw z1{-u,-spread}...{left}z2; +draw z3{-u, spread}...{left}z2; +draw z8{-u, spread}...{left}z9; +penlabels(1,2,3,8,9); endchar; + +cmchar "Follows or curvy equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"074",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y3-bot y8=top y2-bot y9=spread'; bot y3=0; +x2=x9;x8=x1+2u; +%for i=1 upto 3: %lower entire character +%y[i]:=y[i]-spread'; endfor +%for i=8 upto 9: +%y[i]:=y[i]-spread'; endfor +draw z1{u,-spread}...{right}z2; +draw z3{u, spread}...{right}z2; +draw z8{u, spread}...{right}z9; +penlabels(1,2,3,8,9); endchar; + +cmchar "Less than or (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"065",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y1=h; +x2=x9=x7; x1=x8=x6; y7=y6; y8=y9; +y7-y9=spread'; top y3-bot y6=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; % equal sign +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Greater than or (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"075",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x7=x9; x1=x6=x8; y6=y7; y8=y9; +y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h; +y7-y9=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Reverse prime symbol (superscript only)"; +beginchar(oct"070",3u#+max(1.75u#,curve#+2(curve#-stem#)), + .8asc_height#,0); adjust_fit(0,0); pickup fine.nib; numeric +light_stem,heavy_stem; light_stem=hround .5[vair,stem]; +heavy_stem=hround(bold+2dw); x1-.5heavy_stem=hround(.25u); +y1+.5heavy_stem=h; x2+.5light_stem=hround (w-.5u); +y2=1/12asc_height; +numeric theta; theta=angle(z1-z2)-90; +pos1(heavy_stem,theta); pos2(light_stem,theta); +filldraw circ_stroke z1e--z2e; % diagonal +penlabels(1,2); endchar; + +cmchar "short axis line"; +beginchar(oct"071",9u#,27/7u#+math_axis#,27/7u#-math_axis#); pickup rule.nib; +lft x1=hround 1.5u-eps; x2=w-x1; y1=y2=math_axis; +draw z1--z2; +labels(1,2); endchar; + +cmchar "Dotted (right-left) equals sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"072",14u#,v_center(3spread#+2rule_thickness#)); +italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4; +y1-y3=spread; .5[y1,y3]=math_axis; draw z1--z2; % upper bar +draw z3--z4; % lower bar +pickup tiny.nib; +x6=x5=x2; y6=y5=y1+spread; +pos5(dot_size,0); pos6(dot_size,90); +x7=x8=x3; y7=y8=y4-spread; +pos7(dot_size,0); pos8(dot_size,90); +dot(5,6); dot(7,8); +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Dotted (left-right) equals sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"073",14u#,v_center(3spread#+2rule_thickness#)); +italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4; +y1-y3=spread; .5[y1,y3]=math_axis; +draw z1--z2; % upper bar +draw z3--z4; % lower bar +pickup tiny.nib; +x6=x5=x1; y6=y5=y1+spread; +pos5(dot_size,0); pos6(dot_size,90); +x7=x8=x4; y7=y8=y4-spread; +pos7(dot_size,0); pos8(dot_size,90); +dot(5,6); dot(7,8); +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Square subset sign"; % taken from vol E, p533 +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"100",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u); +x1=x4=hround(w-x2)+eps; x3=x2; y1-y4=spread; y2=y1; y3=y4; +top y1=h; draw z1--z2--z3--z4; % bars and stem x8=x1; +penlabels(1,2,3,4); endchar; + +cmchar "Square superset sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"101",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +x2=hround(w-1.5u); x1=x4=hround w-x2-eps; x3=x2; +y1-y4=spread; y2=y1; y3=y4; top y1=h; draw z1--z2--z3--z4; +% bars and stem +penlabels(1,2,3,4); endchar; + +cmchar "Rightward pointing isosceles triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"102",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u); +x3=x2; x1=hround(w-x2); +top y2=h; y2-y3=spread; y1=.5[y2,y3]; +draw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + +cmchar "Leftward pointing isosceles triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"103",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps); +x3=x2; x1=hround(w-x2); +top y2=h; y2-y3=spread; y1=.5[y2,y3]; +draw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + +cmchar "Rightward isosceles triangle with lower bar"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"104",14u#,v_center(spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u); +x3=x2; x1=hround(w-x2); +top y2=h; y2-y3=spread; y1=.5[y2,y3]; +x4=x2; x5=x1; y3-y4=spread'; y5=y4; +draw z1--z2--z3--cycle; draw z4--z5; +penlabels(1,2,3,4,5); endchar; + +cmchar "Leftward isosceles triangle with lower bar"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"105",14u#,v_center(spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps); +x3=x2; x1=hround(w-x2); +top y2=h; y2-y3=spread; y1=.5[y2,y3]; +x4=x2; x5=x1; y3-y4=spread'; y5=y4; +draw z1--z2--z3--cycle; draw z4--z5; +penlabels(1,2,3,4,5); endchar; + +cmchar "Large, filled, 5-pointed star"; +beginchar(oct"106",asc_height#+desc_depth#,asc_height#,desc_depth#); +adjust_fit(.5u#, .5u#); pickup tiny.nib; +numeric theta; theta=360/5; +x0=good.x .5w; y0=good.y .5[h, -d]; x1=x0; top y1=h; +for n=2 upto 5: z[n]=z0+(z1-z0) rotated((n-1)*theta); endfor +% z0 is the `origin' +% z1 thru z5 are the points; z1 at the top going +% counterclockwise +z6=(z1--z3)intersectionpoint(z2--z5); +for n=7 upto10: z[n]=z0+(z6-z0)rotated((n-1)*theta); endfor +filldraw z1--z6--z2--z7--z3--z8--z4--z9--z5--z10--cycle; +penlabels(0,1,2,3,4,5); endchar; + +cmchar "Vertical overlapping slurs"; +beginchar(oct"107",9u#,body_height#,paren_depth#); +adjust_fit(0,0); pickup fine.nib; +numeric light_stem; light_stem=Vround .5[vair,stem]; +y2=.5[h,-d]; x2r=hround w-1.5u; pos2(light_stem,0); +x1-.5hair=hround w-x2; x3=x1; y1+.5hair=h; y3-.5hair=-d; +numeric theta; theta= angle((z2-z1)xscaled3); +numeric theta'; theta'=angle((z3-z2)xscaled3); +pos1(hair, theta+90); pos3(hair, theta'+90); +path p; +p=z1l{dir theta}...z2l...{dir theta'}z3l + ..z3r{-dir theta'}...z2r...{-dir theta}z1r..cycle; +filldraw p; +p:=p reflectedabout((.5w,-d),(.5w,h)); filldraw p; +penlabels(1,2,3); endchar; + +cmchar "Filled rightward pointing isosceles triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"111",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u); +x3=x2; x1=hround(w-x2); +top y2=h; y2-y3=spread; y1=.5[y2,y3]; +filldraw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + +cmchar "Filled leftward pointing isosceles triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"112",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps); +x3=x2; x1=hround(w-x2); +top y2=h; y2-y3=spread; y1=.5[y2,y3]; +filldraw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + + cmchar "short axis right arrow"; +beginchar(oct"113",9u#,27/7u#+math_axis#,27/7u#-math_axis#); +pickup rule.nib; +penpos1(.25rule_thickness,90); penpos2(.25rule_thickness,90); penpos3(bar,0); +penpos4(bar,0); +y0=y1=y2=math_axis; +x1=hround 1.5u-eps; +rt x0=w-x1; +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; +penpos5(bar,angle(z4-z0)); z5l=z0; penpos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4l{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "short axis left arrow"; +beginchar(oct"114",9u#,27/7u#+math_axis#,27/7u#-math_axis#); +pickup rule.nib; +penpos1(.25rule_thickness,90); penpos2(.25rule_thickness,90); penpos3(bar,0); +penpos4(bar,0); +y0=y1=y2=math_axis; x0=hround 1.5u-eps; +rt x1=w-x0; +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +penpos5(bar,angle(z4-z0)); z5l=z0; penpos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +penlabels(0,1,2,3,4,5,6,9); endchar; + + +cmchar "Filled downward triangle"; +beginchar(oct"110",.8asc_height#+3u#,.8asc_height#,0pt#); +adjust_fit(0,0); pickup rule.nib; +y2=0; lft x1=1.5u; +x3=hround w-x1; +y1=y3=vround h-y2; x2=.5[x1,x3]; +filldraw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + +cmchar "Downward triangle"; +beginchar(oct"117",.8asc_height#+3u#,.8asc_height#,0pt#); +adjust_fit(0,0); pickup rule.nib; +y2=0; lft x1=1.5u; +x3=hround w-x1; +y1=y3=vround h-y2; x2=.5[x1,x3]; +draw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + +cmchar "Upward triangle"; +beginchar(oct"115",.8asc_height#+3u#,.8asc_height#,0pt#); +adjust_fit(0,0); pickup rule.nib; +y2=h; lft x1=1.5u; +x3=hround w-x1; +y1=y3=vround h-y2; x2=.5[x1,x3]; +draw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + +cmchar "Filled upward triangle"; +beginchar(oct"116",.8asc_height#+3u#,.8asc_height#,0pt#); +adjust_fit(0,0); pickup rule.nib; +y2=h; lft x1=1.5u; +x3=hround w-x1; +y1=y3=vround h-y2; x2=.5[x1,x3]; +filldraw z1--z2--z3--cycle; +penlabels(1,2,3); endchar; + +cmchar "Egg sandwich"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"120",14u#,asc_height#,0); +italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; +y1=y2; y3=y4; +y1-y3=spread; +.5[y1,y3]=math_axis; +draw z1--z2; % upper bar +draw z3--z4; % lower bar +pickup tiny.nib; +x5=x6=hround w/2; bot y5=bot y1; top y6=top y3; +y7=y8=math_axis;x8-x7=y5-y6; +x6=.5[x7,x8]; +draw z5{right}..z8..z6{left}..z7..cycle; +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Stacked symbols: <, bar, >"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.98 x_height#,1.176 x_height#); +beginchar(oct"121",14u#,v_center(2spread#'+2spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +y1=y2; lft x1=hround 1.5u-eps; rt x2=w-x1; +x4=x6=x8=x1; x3=x5=x7=x2; +y5-y1=y1-y6=spread';top y3=h; y3-y5=spread; +y6-y8=spread; +y7=.5[y6,y8]; y4=.5[y3,y5]; +draw z3--z4--z5; draw z6--z7--z8; draw z1--z2; +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Stacked symbls: greater than, bar, less than"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.98 x_height#,1.176 x_height#); +beginchar(oct"122",14u#,v_center(2spread#'+2spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +y1=y2; lft x2=hround 1.5u-eps; rt x1=w-x2; +x4=x6=x8=x1; x3=x5=x7=x2; +y5-y1=y1-y6=spread';top y3=h; y3-y5=spread; +y6-y8=spread; +y7=.5[y6,y8]; y4=.5[y3,y5]; +draw z3--z4--z5; draw z6--z7--z8; draw z1--z2; +numeric bar_ht; bar_ht=y1; %save height of bar +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Stacked symbls: less than, =, greater than"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.98 x_height#,1.176 x_height#); +beginchar(oct"123",14u#,v_center(3spread#'+2spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x2=w-x1; +x1'=x1; x2=x2'; x4=x6=x8=x1; +x3=x5=x7=x2; +y1=y2; y1'=y2'; y2-y2'=spread'; bot y2=math_axis+.5spread'; +draw z1--z2; draw z1'--z2'; +y3-y5=y6-y8=spread; +y5-y2=y2'-y6=spread'; +y7=.5[y6,y8]; y4=.5[y3,y5]; +draw z3--z4--z5; draw z6--z7--z8; +penlabels(1,1',2,2',3,4,5,6,7,8); endchar; + +cmchar "Stacked symbols: greater than, =, less than"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.98 x_height#,1.176 x_height#); +beginchar(oct"124",14u#,v_center(3spread#'+2spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=w-x2; +x1'=x1; x2=x2'; x4=x6=x8=x1; +x3=x5=x7=x2; +y1=y2; y1'=y2'; y2-y2'=spread'; bot y2=math_axis+.5spread'; +draw z1--z2; draw z1'--z2'; +y3-y5=y6-y8=spread; +y5-y2=y2'-y6=spread'; +y7=.5[y6,y8]; y4=.5[y3,y5]; +draw z3--z4--z5; draw z6--z7--z8; +penlabels(1,1',2,2',3,4,5,6,7,8); endchar; + +cmchar "Yen symbol"; +compute_spread(.45x_height#, .55x_height#); +beginchar(oct"125",13u#,1.35cap_height#,0); %% adapted from "Y" +italcorr cap_height#*slant+.45u#; +adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric +left_stem,right_stem,outer_jut,dy,alpha; +left_stem=cap_stem-stem_corr; right_stem=min(cap_hair if +hefty:-2stem_corr fi,left_stem); outer_jut=.75cap_jut; +x1l=w-x4r=l+letter_fit+outer_jut+.05u; +x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; +y2=y3=y5=.4h; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy; +penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0); +penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0); +penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if +y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut; + fill +z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r +--diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1} + ...{down}z0+.5left--cycle; % diagonals and stem +else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r + --diag_end(5r,6r,1,1,6l,5l)--z5l + --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals & stem +if serifs: numeric inner_jut; pickup tiny.nib; + prime_points_inside(1,2); prime_points_inside(4,3); +prime_points_inside(6,5); + if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: +inner_jut=cap_jut; + else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi + dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); +%upper lft serif + dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); +% upper right serif + dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi +% lower serif +pickup pencircle scaled .5[fine, rule_thickness]; +x7=x9=x1l; x8=x10=x4r; +y9=y10; +top y7=bar_height; y7=y8; draw z7--z8; +y9-y7=spread; +draw z9--z10; +penlabels(0,1,2,3,4,5,6,1',2',3',4',5',6',7,8,9,10); endchar; + +cmchar "Triple rightward arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"126",18u#,v_center(2spread#+.5asc_height#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; penpos1(rule_thickness,90); +penpos2(rule_thickness,90); penpos3(1.5bar,0); penpos4(1.5bar,0); +y0=y1=y2=math_axis; x1-.5rule_thickness=u; +rt x0=hround (w-u); x0'=x0''=x0; x1'=x1''=x1; +y1'=y1+spread;y1''=y1-spread; y0'=y1'; y0''=y1''; +draw z0'--z1'; draw z0''--z1''; % draw bars +pickup crisp.nib; +y3-y0'=y0''-y4=.24asc_height+eps; x3=x4=x0-6u-eps; +penpos5(bar,angle(z0-z4)); z5r=z0; penpos6(bar,angle(z0-z3)); +z6r=z0; z9=.381966[.5[z3,z4],z0]; erase filldraw +z0..{z3-z9}z3--(w,y3)--(w,y4)--z4{z9-z4}..z0& cycle; +numeric t; path p; +p=z4l{z9-z4}..z6l; t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); +x2=xpart point t of p; +filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6l) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5l) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +penlabels(0,1,2,3,4,5,6,9,0',0'',1',1''); endchar; + + +cmchar "Triple leftward arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"127",18u#,v_center(2spread#+.5asc_height#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; penpos1(rule_thickness,90); +penpos2(rule_thickness,90); penpos3(1.5bar,0); penpos4(1.5bar,0); +y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft +x0=hround u; x0'=x0''=x0; x1'=x1''=x1; +y1'=y1+spread;y1''=y1-spread; y0'=y1'; y0''=y1''; draw +z0'--z1'; draw z0''--z1''; % draw bars +pickup crisp.nib; +y3-y0'=y0''-y4=.24asc_height+eps; x3=x4=x0+6u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); +z6l=z0; z9=.381966[.5[z3,z4],z0]; erase filldraw +z0..{z3-z9}z3--(0,y3) + --(0,y4)--z4{z9-z4}..z0& cycle; numeric t; path p; +p=z4r{z9-z4}..z6r; t=xpart(p +intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +penlabels(0,1,2,3,4,5,6,9,0',0'',1',1''); endchar; + +cmchar "Check mark"; beginchar(oct"130",15u#,asc_height#, +0); adjust_fit(0,0); pickup cal.nib; +lft x1=hround(1.5u);y1=math_axis; y2=0; x2=hround(w/3); +x3=w-x1; y3=asc_height-o; +x4=w-1.5x2; y4=asc_height; +draw z1--z2{z4-z2}..z3; +penlabels(1,2,3,4); +endchar; + +cmchar "Vee on bar"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"131",11u#,asc_height#, desc_depth#); +adjust_fit(0,0); pickup rule.nib; +lft x1=lft x4=hround u; x3=x5=w-x1; x2=hround(w/2); +bot y4=bot y5=0; y2=y4+spread; top y1=top y3=h+o; +draw z1--z2--z3; draw z4--z5; +penlabels(1,2,3,4,5); +endchar; + +cmchar "Bar on mountain"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"132",11u#,asc_height#, desc_depth#); adjust_fit(0,0); +pickup rule.nib; +lft x1=lft x4=hround u; x3=x5=w-x1; x2=hround(w/2); +top y4=top y5=h+o; y2=y4-spread; bot y1=bot y3=0; +draw z1--z2--z3; draw z4--z5; +numeric t; % t is used in char"133, = on mountain +t=y2-y3; +penlabels(1,2,3,4,5); +endchar; + +cmchar "Equal sign on mountain"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"133",11u#,body_height#, desc_depth#); adjust_fit(0,0); +pickup rule.nib; +lft x1=lft x4=lft x6=hround u; x3=x5=x7=w-x1; x2=hround(w/2); +y4=y5; y6=y7; y6-y4=y4-y2=spread; top y4=asc_height+o-.5spread; +y2-y1=t; % t is defined in char "132 +y1=y3; +draw z1--z2--z3; draw z4--z5; draw z6--z7; +penlabels(1,2,3,4,5,6,7); +endchar; + +cmchar "Angle sign (simple)"; +beginchar(oct"134",13u#,asc_height#, 0); +adjust_fit(0,0); pickup rule.nib; +lft x2=hround u; x1=x3=w-x2; +bot y2=bot y3=0; top y1=h; +draw z1--z2--z3; +penlabels(1,2,3); +endchar; + +cmchar "Angle sign (with small arc)"; +beginchar(oct"135",13u#,asc_height#, 0); +adjust_fit(0,0); pickup rule.nib; +lft x2=hround u; x1=x3=w-x2; +bot y2=bot y3=0; y1=h; +draw z1--z2--z3; +path p; p=quartercircle scaled 15u; +numeric t; t= xpart(p intersectiontimes (z1--z2)); +draw subpath (0,t) of p; +penlabels(1,2,3); +endchar; + +cmchar "Eye-like angle sign (with small arc)"; +beginchar(oct"136",13u#,v_center(.75body_height#)); +adjust_fit(0,0); pickup rule.nib; +lft x2=hround u; x1=x3=w-x2; +y2=math_axis; y2=.5[y1,y3]; y1-y3=.75body_height; +draw z1--z2--z3; +path p; p=quartercircle scaled 17u; +numeric t; t= xpart(p intersectiontimes ((z1--z2)shifted +-z2)); +draw subpath (0,t) of p shifted z2; +draw subpath (0,t) of p shifted z2 +reflectedabout(z2,(w,y2)); +penlabels(1,2,3); +endchar; + +cmchar "Proportional sign made of circles"; +beginchar(oct"137",14u#,asc_height#,0); +adjust_fit(0,0); pickup pencircle scaled rule_thickness; +numeric radius; radius:=w-2u; radius:=radius/3; +radius:=radius-.5rule_thickness; +x2=hround w-u; x1=w-x2+radius; +y1=y2=math_axis; +pair m; m=(rule_thickness,0); +draw fullcircle scaled 2radius shifted (z1+.5m); +draw (halfcircle scaled 2radius rotated 90) shifted +(z2-.5m); +penlabels(1,2); +endchar; + +cmchar "Simple slur below (smile)"; +beginchar(oct"140",14u#,asc_height#,desc_depth#); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround u; y1=vround(math_axis+.25x_height); +x3=w-x1; y3=y1; penpos2(rule_thickness,90); x2=.5w; +y2l=good.y -(.25x_height-math_axis); +numeric theta; theta=angle((z2-z1)yscaled 3); +penpos1(rule_thickness,90+theta); +penpos3(rule_thickness,90-theta); +draw z1{dir theta}...z2...{dir-theta}z3; +penlabels(1,2,3); endchar; + +cmchar "Simple slur above (frown)"; +beginchar(oct"141",14u#,asc_height#,desc_depth#); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround u; y1=vround(math_axis-.25x_height); +x3=w-x1; y3=y1; +penpos2(rule_thickness,90); x2=.5w; y2=good.y(.25x_height+math_axis); +numeric theta; theta=angle((z2-z1)yscaled 3); +penpos1(rule_thickness,90+theta); +penpos3(rule_thickness,90-theta); +draw z1{dir theta}...z2...{dir-theta}z3; penlabels(1,2,3); +endchar; + +cmchar "Very proper subset sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +spread':=spread'-rule_thickness; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"142",14u#,v_center(spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +autorounded; lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]=math_axis; x4=x5=.5w; y4=y1; +y5=y3; draw z1---z4...z2{down}...z5---z3; % arc and bars +x1'=x3'=x1; y1-y1'=y3'-y3=spread'; +x4'=x5'=x4; y4-y4'=y5'-y5=spread'; +y2'=y2; x2'-x2=spread'; +draw z1'--z4'..z2'{down}..z5'--z3'; +penlabels(1,2,3,4,5,1',2',3',4',5'); endchar; + +cmchar "Very proper superset sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +spread':=spread'-rule_thickness; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"143",14u#,v_center(spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +autorounded; lft x1=hround 1.5u-eps; x2=w-x1; x3=x1; +y1-y3=spread; y2=.5[y1,y3]=math_axis; x4=x5=.5w; y4=y1; +y5=y3; draw z1---z4...z2{down}...z5---z3; % arc and bars +x1'=x3'=x1; y1-y1'=y3'-y3=spread'; +x4'=x5'=x4; y4-y4'=y5'-y5=spread'; +y2'=y2; x2-x2'=spread'; +draw z1'--z4'..z2'..z5'--z3'; +penlabels(1,2,3,4,5,1',2',3',4',5'); endchar; + +cmchar "Parallel set union sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +spread':=spread'-rule_thickness; +beginchar(oct"144",12u#,.8asc_height#,0); +italcorr .8asc_height#*slant-.5u#; +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +y1=good.y h+o; bot y3=-o; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cup +y1'=y5'=y1; x1'-x1=x5-x5'=spread'; +y2'=y4'=y2+u; x2'-x2=x4-x4'=spread'; +x3'=x3; y3'-y3=spread'; +draw z1'..{down}z2'..z3'{right}..z4'{up}..z5'; +penlabels(1,2,3,4,5,1',2',3',4',5'); endchar; + +cmchar "Parallel set intersection sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +spread':=spread'-rule_thickness; +beginchar(oct"145",12u#,.8asc_height#,0); +italcorr .8asc_height#*slant-.5u#; adjust_fit(0,0); +pickup rule.nib; autorounded; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +y3=good.y h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cap +y1'=y5'=y1; x1'-x1=x5-x5'=spread'; +y2'=y4'=y2-u; x2'-x2=x4-x4'=spread'; +x3'=x3; y3-y3'=spread'; +draw z1'..{up}z2'..z3'{right}..z4'{down}..z5'; +penlabels(1,2,3,4,5,1',2',3',4',5'); endchar; + +cmchar "Subset or (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"152",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround +1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3; +% arc and bars +x8=x1; x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +penlabels(1,2,3,4,5,8,9,8',9'); endchar; + +cmchar "Superset or (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"153",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround +1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top +y1=h; x4=x5=.5w; y4=y1; y5=y3; draw +z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; +x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Christmas tree symbol"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"146",spread#+4u#,.8asc_height#,0); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +autorounded; +lft x1=1.5u; x3=w-x1; x2=.5[x1,x3]; +bot y1=-d-o; y3=y1; top y2=h+o; +draw z1{spread,u}...{up}z2; +draw z3{-spread,u}...{up}z2; +penlabels(1,2,3); endchar; + +cmchar "Inverted Christmas tree symbol"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"147",spread#+4u#,.8asc_height#,0); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +autorounded; +lft x1=1.5u; x3=w-x1; x2=.5[x1,x3]; +top y1=h+o; y3=y1; bot y2=-d-o; +draw z1{spread,-u}...{down}z2; +draw z3{-spread,-u}...{down}z2; +penlabels(1,2,3); endchar; + +cmchar "Stylized lambda symbol"; +beginchar(oct"150",14u#,1.35asc_height#,0); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=u; top y1=h; +rt x2=w-u; bot y2=-o; +draw z1--z2; +z3=.5[z1,z2]; +x4=x1; y4=y2; draw z3--z4; +penlabels(1,2,3,4); endchar; + +cmchar "Reflected stylized lambda symbol"; +beginchar(oct"151",14u#,1.35asc_height#,0); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=u; bot y1=-o; +rt x2=w-u; top y2=h; +draw z1--z2; +z3=.5[z1,z2]; +x4=x2; y4=y1; draw z3--z4; +penlabels(1,2,3,4); endchar; + +cmchar "Sunrise symbol"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct "154",14u#,v_center(3spread#+rule_thickness#)); +italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4; +y1-y3=spread; .5[y1,y3]=math_axis; +y5=y6=y1; x7=.5[x1,x2]; x5=.3[x1,x2]; +x2-x6=x5-x1; +y7-y1=.5(x6-x5); +draw z1--z5{up}...z7...{down}z6--z2; % upper bar +draw z3--z4; % lower bar +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Sunrise-over-water symbol"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct "155",14u#,v_center(3spread#+rule_thickness#)); +italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4; +y1-y3=spread; .5[y1,y3]=math_axis; +y5=y6=y1; x7=.5[x1,x2]; x5=.3[x1,x2]; +x2-x6=x5-x1; +y7-y1=.5(x6-x5); +x5'=x5; x7'=x7; x6'=x6; y5'=y6'=y3; y3-y7'=y7-y1; +draw z1--z5{up}...z7...{down}z6--z2; % upper bar +draw z3--z5'{down}...z7'...{up}z6'--z4; % lower bar +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Much, much less sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"156",24u#,v_center(spread#+rule_thickness#)); +adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup +rule.nib; lft x2=hround u-epsilon; x1=x3=hround 12.5u-x2; +y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3; % left diagonals +z4-z1=z5-z2=z6-z3=z7-z4=z8-z5=z9-z6; +x7=w-x2; y4=y1; +draw z4--z5--z6; % middle diagonals +draw z7--z8--z9; % right diagonals +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Much, much greater sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"157",24u#,v_center(spread#+rule_thickness#)); +adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup +rule.nib; +lft x1=hround u-epsilon; x2=hround 12.5u-u; x1=x3; +y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3; % left diagonals +z4-z1=z5-z2=z6-z3=z7-z4=z8-z5=z9-z6; +x8=w-x1; y4=y1; +draw z4--z5--z6; % middle diagonals +draw z7--z8--z9; % right diagonals +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Northwest right angle symbol"; +beginchar(oct"160",9u#, asc_height#, 0); +adjust_fit(0,0); pickup rule.nib; +x1=x2; lft x1=u; x3=w-x1; y2=y3; top y2=h; +y2-y1=x3-x2; +draw z1--z2--z3; +penlabels(1,2,3); endchar; + +cmchar "Northeast right angle symbol"; +beginchar(oct"161",9u#,asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +lft x3=u; x2=w-x3; top y3=h; y3=y2; x1=x2; x2-x3=y2-y1; +draw z1--z2--z3; +penlabels(1,2,3); endchar; + +cmchar "Southwest right angle symbol"; +beginchar(oct"170", 9u#, 7u#,0); +adjust_fit(0,0); pickup rule.nib; +lft x2=u; x3=w-x2; x1=x2; bot y2=-o; y3=y2; +y1-y2=x3-x2; +draw z1--z2--z3; +penlabels(1,2,3); endchar; + +cmchar "Southeast right angle symbol"; +beginchar(oct"171", 9u#, 7u#,0); +adjust_fit(0,0); pickup rule.nib; +lft x3=u; x2=w-x3; x1=x2; bot y2=-o; y3=y2; +y1-y2=x2-x3; +draw z1--z2--z3; +penlabels(1,2,3); endchar; + +%% include these parameters to `shrink R and S so they +%% fit inside a circle +% +begingroup +save u, width_adj, cap_serif_fit, letter_fit, + body_height, cap_height, x_height, bar_height, comma_depth, + flare, cap_hair, stem, cap_stem, cap_curve, cap_ess, + cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut, + o, apex_o; +numeric radius; +old.u:=u; old.cap_curve:=cap_curve; old.cap_height:=cap_height; +old.u#:=u#; old.cap_curve#:=cap_curve#; old.cap_height#:=cap_height#; +forsuffixes $=u, width_adj, cap_serif_fit, letter_fit, + body_height, cap_height, x_height, bar_height, +comma_depth, flare, cap_hair, +stem, cap_stem, cap_curve, cap_ess, + cap_jut, beak_jut, beak, +slab, cap_bar, +cap_band, cap_notch_cut, + o, apex_o: $.#:=lower.$.#; endfor +fudge:=lower.fudge; +font_setup; +% Changed by Stefan Lindner 15.03.1991 -sl +% original: radius=.5(6u++cap_height)+3u; radius=radius#*hppp; +radius#=.5(6u#++cap_height#)+3u#; radius:=radius#*hppp; +% end of change +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +cmchar "Circle-R brand"; +beginchar(oct"162",13u#, .52cap_height#+radius#,radius#-.52cap_height#); +adjust_fit(4u#,4u#); +pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0); +lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); +top y1=cap_height; bot y2=0; +filldraw stroke z1e--z2e; % stem +penpos3(cap_band,90); penpos4(cap_band,90); +penpos5(cap_curve,0); +penpos6(vair,-90); penpos7(vair,-90); +z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; +x7=x2; y7l=vround(.5cap_height+.5vair); x4=x6; +x4=.5w-.5u; x5r=hround(w-2.25u); +x4l:=x6l:=x4-.125cap_curve; +fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe +pos6'(vair,-90); pos0(cap_stem,180); + pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0); + z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve); + y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r]; + bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7]; + filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail + nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif + dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif + % tail +math_fit(0,.75ic#); +pickup rule.nib; +z100=(hround w/2,.52cap_height); z101=z100+(0,radius); z103=z100-(0,radius); +z102=z100+(radius,0); z104=z100-(radius,0); +draw z101...z102...z103...z104...cycle; +penlabels(0,1,2,3,4,5,6,7,8,9,10,100,101,102,103,104); +endchar; + +cmchar "Circle-S brand"; +beginchar(oct"163",10u#,radius#+.52cap_height#,radius#-.52cap_height#); +adjust_fit(5u#,5u#); +numeric theta; theta=90-angle(50u,cap_height); slope:=-cap_height/50u; % angle at middle +numeric s_slab; s_slab=slab; +numeric ess'; ess'=max(fine.breadth,cap_ess); +pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90); +pos0(ess',theta); pos7(s_slab,-90); +x2+x7=2x0=w; x7-x2=u; top y2l=cap_height+o; bot y7r=-o; +y0=.52cap_height; lft x3l=hround u; rt x6r=hround(w-u); +x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine; +ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r; +ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r; +filldraw stroke super_arc.e(2,3) & z3e{down} + ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke +pos1(hair,180); pos8(hair,180); + rt x1l=hround(w-1.5u); lft x8r=hround u; + bot y1=vround 2/3cap_height+1; top y8=vround 1/3cap_height-1; + filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc + filldraw stroke z7e{left}....{up}z8e; % lower arc + path upper_arc, lower_arc; + upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2; + lower_arc=z7{left}....{up}z8; + pos10(.3[fine.breadth,cap_hair],0); + pos9(.3[fine.breadth,cap_hair],0); + x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r; + x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8; + numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1')); + filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb + t:=xpart(lower_arc intersectiontimes(z9r--z8')); + filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb +% lower arc and terminal +math_fit(0,.5ic#); +pickup rule.nib; +z100=(hround w/2,.52cap_height); z101=z100+(0,radius); z103=z100-(0,radius); +z102=z100+(radius,0); z104=z100-(radius,0); +draw z101...z102...z103...z104...cycle; +penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10,100,101,102,103,104); +endchar; +endgroup; + + +cmchar "Pitchfork symbol"; +beginchar(oct"164",12u#,asc_height#,0); +italcorr .8asc_height#*slant-.5u#; +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +y3=good.y .7h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cap +x6=x7=good.x w/2; y6=y1; y7=h+o; +draw z6--z7; % stem +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Dotted plus sign"; +beginchar(oct"165",14u#,8u#+math_axis#,6u#-math_axis#); +adjust_fit(0,0); pickup rule.nib; +x1=x2=good.x .5w; top y1=h-2.5rule_thickness+eps; .5[y1,y2]=math_axis; +lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis; +draw z1--z2; % stem +draw z3--z4; % crossbar +x5=x1; y5=h+o; +pickup pencircle scaled 2.5rule_thickness; drawdot z5; +penlabels(1,2,3,4,5); endchar; + +cmchar "Inverted similarity sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"166",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround(u); x2=4u; x3=w-x2; x4=w-x1; +bot y2=bot y4=-d; top y1=top y3=h; +draw z1{down}...z2{right}..{right}z3...{down}z4; % stroke +labels(1,2,3,4); endchar; + +cmchar "Inverted similar or equal sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"167",14u#,v_center(2spread#+rule_thickness#)); +adjust_fit(0,0); +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround(u); x2=4u; x3=w-x2; x4=w-x1; +bot y2=bot y4=floor math_axis; top y1=top y3=h; +draw z1{down}...z2{right}..{right}z3...{down}z4; % stroke +pickup rule.nib; lft x5=hround u-eps; x6=w-x5; y5=y6=math_axis-spread; +draw z5--z6; % bar +labels(1,2,3,4,5,6); endchar; + +cmchar "Iron cross"; +beginchar(oct"172",15u#,asc_height#,0); adjust_fit(0,0); +pickup pencircle scaled .5rule_thickness; +numeric cross_tension; cross_tension=.9; +numeric cross_foot; cross_foot=4u; +y0=.5[y1,y2]; x0=hround w/2; +x1=x2=x0; bot y1=-o; lft x1l=3.5u; x1r=w-x1l; y1l=y1r=y1; +top y2=h+o; x2r=x1l; x2l=x1r; y2l=y2r=y2; +y3=y4=y0; x3=x0+eps; x4+x3=2x0; +path p; p=z1l--z1r..tension cross_tension..z3..tension cross_tension + ..z2l--z2r..tension cross_tension..z4..tension cross_tension.. + z1l..cycle; +filldraw p; +p:=p shifted -z0; p:=p rotated 90; p:=p shifted z0; +filldraw p; +penlabels(0,1,2,3,4); endchar; + +cmchar "Bourbaki C symbol"; +beginchar(oct"173",9u#, 1.1body_height#, 0); +adjust_fit(0,0); pickup pencircle scaled 2rule_thickness; +lft x4=lft x5=u; x1=x2=x8=x7=w-x4; x3=x6=hround +w/2; +bot y6=-o; top y3=h+o; y2=y4=y3-1.5u; y5=y7=y6+1.5u; +y1=y2-1.5u; y8=y7+1.5u; +draw z1--z2{up}..{left}z3..{down}z4--z5{down}..z6{right}..{up}z7--z8; +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Bourbaki T symbol"; +beginchar(oct "174", 10u#, x_height#, desc_depth#); +adjust_fit(0,0); pickup pencircle scaled 2rule_thickness; +lft x1=u; x2=w-x1; top y1=top y2=h; x3=x4=hround w/2; y3=y1; +bot y4=-1.1d; +draw z1--z2; draw z3--z4; +labels(1,2,3,4); endchar; + +cmchar "Circle-in-a-circle operator"; +beginarithchar(oct"175"); pickup light_rule.nib; autorounded; +lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h; +circle_points; draw_circle; % circle +pickup rule.nib; +numeric x[],y[]; +lft x6=hround 4.5u; x2=w-x6; y2=math_axis; +top y8=y2+.5(rt x2-lft x6); circle_points; draw_circle; +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Asterisk-in-a-circle"; +beginarithchar(oct"176"); +pickup light_rule.nib; autorounded; +y2=math_axis; top y8=6u+math_axis; +lft x6=hround w/2 - 6u; x2=w-x6; +circle_points; draw_circle; % circle +numeric x[], y[]; +numeric ast_flare; ast_flare=hround .7[thin_join,stem]; +x0=.5w; y0=math_axis; for d=-150 step 60 until 150: +z[d]=z0+.5dir d xscaled 7.5u yscaled x_height; + numeric theta; theta=angle(z[d]-z0); + fill z0+.5(0,-thin_join)rotated theta + ---z[d]+.5(-ast_flare,-ast_flare)rotated theta + ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta + ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d| +labels(0,[-150],[-90],[-30],30,90,150); endchar; + +cmchar "Bar-in-a-circle operator"; +beginarithchar(oct"177"); pickup light_rule.nib; autorounded; +lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h; +circle_points; draw_circle; % circle +y9=y10=y2; x9=x6+3u; x10=w-x9; +draw z9--z10; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lbigacc.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lbigacc.mf new file mode 100644 index 00000000000..987e70f42f2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lbigacc.mf @@ -0,0 +1,35 @@ +% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE bigacc.mf BY D E KNUTH. +% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED! + +% This file contains series of large accents for math extension fonts. + +% The sizes are `wide' (|10u#|), `wider' (|18u#|), and `widest' (|26u#|). + +% Character codes \0142--\0147 are generated. + +charlist oct"142": oct"143": oct"144"; % circumflexes +charlist oct"145": oct"146": oct"147"; % tildes + +cmchar "Wide circumflex (hat) accent"; +beginchar(oct"142",10u#,.5[asc_height#,body_height#],0); +big_hat; endchar; + +cmchar "Wider circumflex (hat) accent"; +beginchar(oct"143",18u#,body_height#,0); +big_hat; endchar; + +cmchar "Widest circumflex (hat) accent"; +beginchar(oct"144",26u#,body_height#,0); +big_hat; endchar; + +cmchar "Wide tilde (squiggle) accent"; +beginchar(oct"145",10u#,.5[asc_height#,body_height#],0); +big_tilde; endchar; + +cmchar "Wider tilde (squiggle) accent"; +beginchar(oct"146",18u#,body_height#,0); +big_tilde; endchar; + +cmchar "Widest tilde (squiggle) accent"; +beginchar(oct"147",26u#,body_height#,0); +big_tilde; endchar; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lbigdel.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lbigdel.mf new file mode 100644 index 00000000000..0e7ab76423d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lbigdel.mf @@ -0,0 +1,700 @@ +% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE bigdel.mf BY D E KNUTH. +% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED! + +% This file contains series of large delimiters for math extension fonts. + +% The sizes are `{\tt\char`\\big}' (|2dh#|), `{\tt\char`\\Big}' (|3dh#|), +% `{\tt\char`\\bigg}' (|4dh#|), and `{\tt\char`\\Bigg}' (|5dh#|), +% followed in most cases by an extensible character that can grow +% arbitrarily large in |dh#| steps, +% where |dh#| is 60\% of the font design size. +% (For example, a 10-point font will have large delimiters in sizes +% 12$\,$pt, 18$\,$pt, 24$\,$pt, 30$\,$pt, 36$\,$pt, 42$\,$pt, etc.) + +% Character codes \0000--\0105 and \0150--\0177 are generated. + +charlist oct"000": oct"020": oct"022": oct"040": oct"060"; % left parentheses +charlist oct"001": oct"021": oct"023": oct"041": oct"061"; % right parentheses +charlist oct"002": oct"150": oct"024": oct"042": oct"062"; % left brackets +charlist oct"003": oct"151": oct"025": oct"043": oct"063"; % right brackets +charlist oct"004": oct"152": oct"026": oct"044": oct"064"; % left floors +charlist oct"005": oct"153": oct"027": oct"045": oct"065"; % right floors +charlist oct"006": oct"154": oct"030": oct"046": oct"066"; % left ceilings +charlist oct"007": oct"155": oct"031": oct"047": oct"067"; % right ceilings +charlist oct"010": oct"156": oct"032": oct"050": oct"070"; % left braces +charlist oct"011": oct"157": oct"033": oct"051": oct"071"; % right braces +charlist oct"012": oct"104": oct"034": oct"052"; % left angle brackets +charlist oct"013": oct"105": oct"035": oct"053"; % right angle brackets +charlist oct"016": oct"056": oct"036": oct"054"; % slashes +charlist oct"017": oct"057": oct"037": oct"055"; % backslashes +charlist oct"160": oct"161": oct"162": oct"163": oct"164"; % radical signs + +extensible oct"014": 0,0,0,oct"014"; % vertical line +extensible oct"015": 0,0,0,oct"015"; % double vertical line +extensible oct"060": oct"060",0,oct"100",oct"102"; % left parenthesis +extensible oct"061": oct"061",0,oct"101",oct"103"; % right parenthesis +extensible oct"062": oct"062",0,oct"064",oct"066"; % left bracket +extensible oct"063": oct"063",0,oct"065",oct"067"; % right bracket +extensible oct"064": 0,0,oct"064",oct"066"; % left floor bracket +extensible oct"065": 0,0,oct"065",oct"067"; % right floor bracket +extensible oct"066": oct"062",0,0,oct"066"; % left ceiling bracket +extensible oct"067": oct"063",0,0,oct"067"; % right ceiling bracket +extensible oct"070": oct"070",oct"074",oct"072",oct"076"; % left brace +extensible oct"071": oct"071",oct"075",oct"073",oct"076"; % right brace +extensible oct"072": oct"070",0,oct"072",oct"076"; % sharp left parenthesis +extensible oct"073": oct"071",0,oct"073",oct"076"; % sharp right parenthesis +extensible oct"074": 0,0,0,oct"077"; % arrow extension modules only +extensible oct"075": 0,0,0,oct"167"; % double arrow extension modules only +extensible oct"076": 0,0,0,oct"076"; % brace extension modules only +extensible oct"077": oct"170",0,oct"171",oct"077"; % updownarrow +extensible oct"100": oct"070",0,oct"073",oct"076"; % left moustache +extensible oct"101": oct"071",0,oct"072",oct"076"; % right moustache +extensible oct"102": 0,0,0,oct"102"; % left parenthesis extension modules only +extensible oct"103": 0,0,0,oct"103"; % right parenthesis extension modules only +extensible oct"164": oct"166",0,oct"164",oct"165"; % radical sign +extensible oct"167": oct"176",0,oct"177",oct"167"; % double updownarrow +extensible oct"170": oct"170",0,0,oct"077"; % uparrow +extensible oct"171": 0,0,oct"171",oct"077"; % downarrow +extensible oct"176": oct"176",0,0,oct"167"; % double uparrow +extensible oct"177": 0,0,oct"177",oct"167"; % double downarrow + +cmchar "\big left parenthesis"; +beginchar(oct"000",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(1.5u#,-.25u#); left_paren(hair,stem); endchar; + +cmchar "\Big left parenthesis"; +beginchar(oct"020",9u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(2u#,-.25u#); left_paren(rule_thickness,.5[stem,bold]); endchar; + +cmchar "\bigg left parenthesis"; +beginchar(oct"022",11u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(2.5u#,-.25u#); left_paren(rule_thickness+.2dw,bold); endchar; + +cmchar "\Bigg left parenthesis"; +beginchar(oct"040",11.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(3u#,-.25u#); left_paren(rule_thickness+.4dw,bold+dw); endchar; + +cmchar "Extensible left parenthesis---top"; +beginchar(oct"060",12u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(4u#,-.25u#); pickup fine.nib; +numeric min_breadth,max_breadth; +min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw; +pos1(hround min_breadth,0); pos2(hround max_breadth,0); +rt x1r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u; +top y1=h-1; y2=-d-eps; +filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e; % upper arc +penlabels(1,2); endchar; + +cmchar "Extensible left parenthesis---bottom"; +beginchar(oct"100",12u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(4u#,-.25u#); pickup fine.nib; +numeric min_breadth,max_breadth; +min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw; +pos3(hround min_breadth,0); pos2(hround max_breadth,0); +rt x3r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u; +bot y3=1-d; y2=h+eps; +filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e; % lower arc +penlabels(2,3); endchar; + +cmchar "Extensible left parenthesis---extension module"; +beginchar(oct"102",12u#,0,dh#); +adjust_fit(4u#,-.25u#); pickup fine.nib; +numeric max_breadth; max_breadth=bold+2dw; +pos2(hround max_breadth,0); pos2'(hround max_breadth,0); +lft x2l=lft x2'l=hround 1.25u; y2=h+eps; y2'=-d-eps; +filldraw stroke z2e--z2'e; % link +penlabels(2,2'); endchar; + +cmchar "\big right parenthesis"; +beginchar(oct"001",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(-.25u#,1.5u#); right_paren(hair,stem); endchar; + +cmchar "\Big right parenthesis"; +beginchar(oct"021",9u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(-.25u#,2u#); right_paren(rule_thickness,.5[stem,bold]); endchar; + +cmchar "\bigg right parenthesis"; +beginchar(oct"023",11u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(-.25u#,2.5u#); right_paren(rule_thickness+.2dw,bold); endchar; + +cmchar "\Bigg right parenthesis"; +beginchar(oct"041",11.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(-.25u#,3u#); right_paren(rule_thickness+.4dw,bold+dw); endchar; + +cmchar "Extensible right parenthesis---top"; +beginchar(oct"061",12u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(-.25u#,4u#); pickup fine.nib; +numeric min_breadth,max_breadth; +min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw; +pos1(hround min_breadth,0); pos2(hround max_breadth,0); +lft x1l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u); +top y1=h-1; y2=-d-eps; +filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e; % upper arc +penlabels(1,2); endchar; + +cmchar "Extensible right parenthesis---bottom"; +beginchar(oct"101",12u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(-.25u#,4u#); pickup fine.nib; +numeric min_breadth,max_breadth; +min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw; +pos3(hround min_breadth,0); pos2(hround max_breadth,0); +lft x3l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u); +bot y3=1-d; y2=h+eps; +filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e; % lower arc +penlabels(2,3); endchar; + +cmchar "Extensible right parenthesis---extension module"; +beginchar(oct"103",12u#,0,dh#); +adjust_fit(-.25u#,4u#); pickup fine.nib; +numeric max_breadth; max_breadth=bold+2dw; +pos2(hround max_breadth,0); pos2'(hround max_breadth,0); +rt x2r=rt x2'r=hround(w-1.25u); y2=h+eps; y2'=-d-eps; +filldraw stroke z2e--z2'e; % link +penlabels(2,2'); endchar; + +cmchar "\big left bracket"; +beginchar(oct"002",6u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(1.5u#,0); left_bracket(rule_thickness,true,true); endchar; + +cmchar "\Big left bracket"; +beginchar(oct"150",6.5u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],true,true); endchar; + +cmchar "\bigg left bracket"; +beginchar(oct"024",7u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],true,true); endchar; + +cmchar "\Bigg left bracket"; +beginchar(oct"042",7.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],true,true); endchar; + +cmchar "Extensible left bracket---top"; +beginchar(oct"062",8u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(4u#,0); pickup crisp.nib; +pos1(stem,0); pos2(stem,0); +top y1=h-1; y2=-d-eps; lft x1l=lft x2l=hround(2.5u-.5stem); +filldraw stroke z1e--z2e; % stem +pos3(stem,90); pos4(stem,90); +x3=x1l; rt x4=hround(w-.75u+.5stem); y3r=y4r=y1; +filldraw stroke z3e--z4e; % upper bar +penlabels(1,2,3,4); endchar; + +cmchar "Extensible left bracket---bottom"; +beginchar(oct"064",8u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(4u#,0); pickup crisp.nib; +pos1(stem,0); pos2(stem,0); +y1=h+eps; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5stem); +filldraw stroke z1e--z2e; % stem +pos5(stem,90); pos6(stem,90); +x5=x1l; rt x6=hround(w-.75u+.5stem); y5l=y6l=y2; +filldraw stroke z5e--z6e; % lower bar +penlabels(1,2,5,6); endchar; + +cmchar "Extensible left bracket---extension module"; +beginchar(oct"066",8u#,0,dh#); +adjust_fit(4u#,0); pickup crisp.nib; +pos1(stem,0); pos2(stem,0); +y1=h+1+eps; bot y2=-d-1-eps; lft x1l=lft x2l=hround(2.5u-.5stem); +filldraw stroke z1e--z2e; % stem +penlabels(1,2); endchar; + +cmchar "\big right bracket"; +beginchar(oct"003",6u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(0,1.5u#); right_bracket(rule_thickness,true,true); endchar; + +cmchar "\Big right bracket"; +beginchar(oct"151",6.5u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],true,true); endchar; + +cmchar "\bigg right bracket"; +beginchar(oct"025",7u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],true,true); endchar; + +cmchar "\Bigg right bracket"; +beginchar(oct"043",7.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],true,true); endchar; + +cmchar "Extensible right bracket---top"; +beginchar(oct"063",8u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(0,4u#); pickup crisp.nib; +pos1(stem,0); pos2(stem,0); +top y1=h-1; y2=-d-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem); +filldraw stroke z1e--z2e; % stem +pos3(stem,90); pos4(stem,90); +x3=x1r; lft x4=hround(.75u-.5stem); y3r=y4r=y1; +filldraw stroke z3e--z4e; % upper bar +penlabels(1,2,3,4); endchar; + +cmchar "Extensible right bracket---bottom"; +beginchar(oct"065",8u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(0,4u#); pickup crisp.nib; +pos1(stem,0); pos2(stem,0); +y1=h+eps; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5stem); +filldraw stroke z1e--z2e; % stem +pos5(stem,90); pos6(stem,90); +x5=x1r; lft x6=hround(.75u-.5stem); y5l=y6l=y2; +filldraw stroke z5e--z6e; % lower bar +penlabels(1,2,5,6); endchar; + +cmchar "Extensible right bracket---extension module"; +beginchar(oct"067",8u#,0,dh#); +adjust_fit(0,4u#); pickup crisp.nib; +pos1(stem,0); pos2(stem,0); +y1=h+1+eps; bot y2=-d-1-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem); +filldraw stroke z1e--z2e; % stem +penlabels(1,2); endchar; + +cmchar "\big left floor bracket"; +beginchar(oct"004",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(1.5u#,0); left_bracket(rule_thickness,false,true); endchar; + +cmchar "\Big left floor bracket"; +beginchar(oct"152",7.5u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],false,true); endchar; + +cmchar "\bigg left floor bracket"; +beginchar(oct"026",8u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],false,true); endchar; + +cmchar "\Bigg left floor bracket"; +beginchar(oct"044",8.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],false,true); endchar; + +cmchar "\big right floor bracket"; +beginchar(oct"005",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(0,1.5u#); right_bracket(rule_thickness,false,true); endchar; + +cmchar "\Big right floor bracket"; +beginchar(oct"153",7.5u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],false,true); endchar; + +cmchar "\bigg right floor bracket"; +beginchar(oct"027",8u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],false,true); endchar; + +cmchar "\Bigg right floor bracket"; +beginchar(oct"045",8.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],false,true); endchar; + +cmchar "\big left ceiling bracket"; +beginchar(oct"006",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(1.5u#,0); left_bracket(rule_thickness,true,false); endchar; + +cmchar "\Big left ceiling bracket"; +beginchar(oct"154",7.5u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],true,false); endchar; + +cmchar "\bigg left ceiling bracket"; +beginchar(oct"030",8u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],true,false); endchar; + +cmchar "\Bigg left ceiling bracket"; +beginchar(oct"046",8.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],true,false); endchar; + +cmchar "\big right ceiling bracket"; +beginchar(oct"007",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(0,1.5u#); right_bracket(rule_thickness,true,false); endchar; + +cmchar "\Big right ceiling bracket"; +beginchar(oct"155",7.5u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],true,false); endchar; + +cmchar "\bigg right ceiling bracket"; +beginchar(oct"031",8u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],true,false); endchar; + +cmchar "\Bigg right ceiling bracket"; +beginchar(oct"047",8.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],true,false); endchar; + +cmchar "\big left curly brace"; +beginchar(oct"010",9u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(.75u#,.75u#); left_curly(hair,stem); endchar; + +cmchar "\Big left curly brace"; +beginchar(oct"156",10u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(u#,u#); left_curly(rule_thickness,.5[stem,bold]); endchar; + +cmchar "\bigg left curly brace"; +beginchar(oct"032",11u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(1.25u#,1.25u#); left_curly(rule_thickness+.2dw,bold); endchar; + +cmchar "\Bigg left curly brace"; +beginchar(oct"050",11.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(1.5u#,1.5u#); left_curly(rule_thickness+.4dw,bold+dw); endchar; + +cmchar "Extensible left curly brace---top"; +beginchar(oct"070",12u#,0,1.5dh#); +adjust_fit(2u#,2u#); pickup fine.nib; +numeric min_breadth; min_breadth=hround(rule_thickness+.6dw); +pos1(min_breadth,0); pos1'(min_breadth,0); +pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0); +rt x1r=rt x1'r=hround(w-1.5u+.5min_breadth); +lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness); +top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine; +filldraw z1l{3(x2l-x1l),y2-y1}...z2l---z3l + --z3r---z2r...{3(x1r-x2r),y1'-y2}z1'r--z1r--cycle; % stroke +penlabels(1,2,3); endchar; + +cmchar "Extensible left curly brace---bottom"; +beginchar(oct"072",12u#,0,1.5dh#); +adjust_fit(2u#,2u#); pickup fine.nib; +numeric min_breadth; min_breadth=hround(rule_thickness+.6dw); +pos7(min_breadth,0); pos7'(min_breadth,0); +pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0); +rt x7r=rt x7'r=hround(w-1.5u+.5min_breadth); +lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness); +y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine; +filldraw z5l---z6l...{3(x7l-x6l),y7-y6}z7l + --z7r--z7'r{3(x6r-x7r),y6-y7'}...z6r---z5r--cycle; % stroke +penlabels(5,6,7); endchar; + +cmchar "Extensible left curly brace---middle"; +beginchar(oct"074",12u#,0,3dh#); +adjust_fit(2u#,2u#); pickup fine.nib; +numeric min_breadth; min_breadth=hround(rule_thickness+.6dw); +pos4(min_breadth,0); pos4'(min_breadth,0); +forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor +lft x4l=lft x4'l=hround(1.5u-.5min_breadth); +x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness); +y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5]; +y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine; +filldraw z2l---z3l...{3(x4l-x3l),y4-y3}z4l + --z4'l{3(x5l-x4l),y5-y4'}...z5l---z6l--z6r---z5r + ...{3(x4r-x5r),.5[y4,y4']-y5}.5[z4r,z4'r]{3(x3r-x4r),y3-.5[y4,y4']} + ...z3r---z2r--cycle; % stroke +penlabels(2,3,4,5,6); endchar; + +cmchar "Extensible curly brace---extension module"; +beginchar(oct"076",12u#,0,.5dh#); +adjust_fit(2u#,2u#); pickup fine.nib; +pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0); +lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness); y2=h+eps; y3=-d-eps; +filldraw stroke z2e--z3e; % stem +penlabels(2,3); endchar; + +cmchar "\big right curly brace"; +beginchar(oct"011",9u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(.75u#,.75u#); right_curly(hair,stem); endchar; + +cmchar "\Big right curly brace"; +beginchar(oct"157",10u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(u#,u#); right_curly(rule_thickness,.5[stem,bold]); endchar; + +cmchar "\bigg right curly brace"; +beginchar(oct"033",11u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(1.25u#,1.25u#); right_curly(rule_thickness+.2dw,bold); endchar; + +cmchar "\Bigg right curly brace"; +beginchar(oct"051",11.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(1.5u#,1.5u#); right_curly(rule_thickness+.4dw,bold+dw); endchar; + +cmchar "Extensible right curly brace---top"; +beginchar(oct"071",12u#,0,1.5dh#); +adjust_fit(2u#,2u#); pickup fine.nib; +numeric min_breadth; min_breadth=hround(rule_thickness+.6dw); +pos1(min_breadth,0); pos1'(min_breadth,0); +pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0); +lft x1l=lft x1'l=hround(1.5u-.5min_breadth); +lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness); +top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine; +filldraw z1r{3(x2r-x1r),y2-y1}...z2r---z3r + --z3l---z2l...{3(x1l-x2l),y1'-y2}z1'l--z1l--cycle; % stroke +penlabels(1,2,3); endchar; + +cmchar "Extensible right curly brace---bottom"; +beginchar(oct"073",12u#,0,1.5dh#); +adjust_fit(2u#,2u#); pickup fine.nib; +numeric min_breadth; min_breadth=hround(rule_thickness+.6dw); +pos7(min_breadth,0); pos7'(min_breadth,0); +pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0); +lft x7l=lft x7'l=hround(1.5u-.5min_breadth); +lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness); +y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine; +filldraw z5r---z6r...{3(x7r-x6r),y7-y6}z7r + --z7l--z7'l{3(x6l-x7l),y6-y7'}...z6l---z5l--cycle; % stroke +penlabels(5,6,7); endchar; + +cmchar "Extensible right curly brace---middle"; +beginchar(oct"075",12u#,0,3dh#); +adjust_fit(2u#,2u#); pickup fine.nib; +numeric min_breadth; min_breadth=hround(rule_thickness+.6dw); +pos4(min_breadth,0); pos4'(min_breadth,0); +forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor +rt x4r=rt x4'r=hround(w-1.5u+.5min_breadth); +x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness); +y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5]; +y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine; +filldraw z2r---z3r...{3(x4r-x3r),y4-y3}z4r + --z4'r{3(x5r-x4r),y5-y4'}...z5r---z6r--z6l---z5l + ...{3(x4l-x5l),.5[y4,y4']-y5}.5[z4l,z4'l]{3(x3l-x4l),y3-.5[y4,y4']} + ...z3l---z2l--cycle; % stroke +penlabels(2,3,4,5,6); endchar; + +cmchar "Horizontal curly brace tip---down and left"; +beginchar(oct"172",.75dh#,3rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(heavy_rule_thickness,90); +bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth); +.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine; +filldraw z1r{x2-x1,3(y2r-y1r)}...{right}z2r + --z2l{left}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke +penlabels(1,2); endchar; + +cmchar "Horizontal curly brace tip---down and right"; +beginchar(oct"173",.75dh#,3rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(heavy_rule_thickness,90); +bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth); +.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine; +filldraw z1r{x2-x1,3(y2r-y1r)}...{left}z2r + --z2l{right}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke +penlabels(1,2); endchar; + +cmchar "Horizontal curly brace tip---up and left"; +beginchar(oct"174",.75dh#,3rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(heavy_rule_thickness,90); +bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth); +.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine; +filldraw z1l{x2-x1,3(y2l-y1l)}...{right}z2l + --z2r{left}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke +penlabels(1,2); endchar; + +cmchar "Horizontal curly brace tip---up and right"; +beginchar(oct"175",.75dh#,3rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(heavy_rule_thickness,90); +bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth); +.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine; +filldraw z1l{x2-x1,3(y2l-y1l)}...{left}z2l + --z2r{right}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke +penlabels(1,2); endchar; + +cmchar "\big left angle bracket"; +beginchar(oct"012",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(.75u#,.75u#); left_angle(rule_thickness); endchar; + +cmchar "\Big left angle bracket"; +beginchar(oct"104",9u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(u#,u#); left_angle(.25[rule_thickness,stem]); endchar; + +cmchar "\bigg left angle bracket"; +beginchar(oct"034",11u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(1.25u#,1.25u#); left_angle(.5[rule_thickness,stem]); endchar; + +cmchar "\Bigg left angle bracket"; +beginchar(oct"052",11.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(1.5u#,1.5u#); left_angle(.75[rule_thickness,stem]); endchar; + +cmchar "\big right angle bracket"; +beginchar(oct"013",7u#,rule_thickness#,2dh#-rule_thickness#); +adjust_fit(.75u#,.75u#); right_angle(rule_thickness); endchar; + +cmchar "\Big right angle bracket"; +beginchar(oct"105",9u#,rule_thickness#,3dh#-rule_thickness#); +adjust_fit(u#,u#); right_angle(.25[rule_thickness,stem]); endchar; + +cmchar "\bigg right angle bracket"; +beginchar(oct"035",11u#,rule_thickness#,4dh#-rule_thickness#); +adjust_fit(1.25u#,1.25u#); right_angle(.5[rule_thickness,stem]); endchar; + +cmchar "\Bigg right angle bracket"; +beginchar(oct"053",11.5u#,rule_thickness#,5dh#-rule_thickness#); +adjust_fit(1.5u#,1.5u#); right_angle(.75[rule_thickness,stem]); endchar; + +cmchar "\big slash"; +beginchar(oct"016",10.4u#,rule_thickness#,2dh#-rule_thickness#); +big_slash(rule_thickness+.2dw); endchar; + +cmchar "\Big slash"; +beginchar(oct"056",14.6u#,rule_thickness#,3dh#-rule_thickness#); +big_slash(rule_thickness+.6dw); endchar; + +cmchar "\bigg slash"; +beginchar(oct"036",18.8u#,rule_thickness#,4dh#-rule_thickness#); +big_slash(rule_thickness+dw); endchar; + +cmchar "\Bigg slash"; +beginchar(oct"054",23u#,rule_thickness#,5dh#-rule_thickness#); +big_slash(rule_thickness+1.5dw); endchar; + +cmchar "\big backslash"; +beginchar(oct"017",10.4u#,rule_thickness#,2dh#-rule_thickness#); +big_blash(rule_thickness+.2dw); endchar; + +cmchar "\Big backslash"; +beginchar(oct"057",14.6u#,rule_thickness#,3dh#-rule_thickness#); +big_blash(rule_thickness+.6dw); endchar; + +cmchar "\bigg backslash"; +beginchar(oct"037",18.8u#,rule_thickness#,4dh#-rule_thickness#); +big_blash(rule_thickness+dw); endchar; + +cmchar "\Bigg backslash"; +beginchar(oct"055",23u#,rule_thickness#,5dh#-rule_thickness#); +big_blash(rule_thickness+1.5dw); endchar; + +cmchar "Extensible vertical line---extension module"; +beginchar(oct"014",6u#,0,dh#); +adjust_fit(0,0); pickup pencircle scaled(rule_thickness+.2dw); +x1=x2=good.x .5w; y1=eps; y2=-d-eps; +draw z1--z2; % stem +labels(1,2); endchar; + +cmchar "Extensible double vertical line---extension module"; +beginchar(oct"015",10u#,0,dh#); +adjust_fit(0,0); pickup pencircle scaled(rule_thickness+.2dw); +x1=x2=good.x .3w; x3=x4=w-x1; y1=y3=eps; y2=y4=-d-eps; +draw z1--z2; draw z3--z4; % stems +labels(1,2,3,4); endchar; + +cmchar "Extensible vertical arrow--top"; +beginchar(oct"170",12u#,0,dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric thickness,barr; +thickness=hround(rule_thickness+.2dw); barr=Vround .6[bar,thickness]; +pos1(thickness,0); pos2(thickness,0); pos3(barr,90); pos4(barr,90); +lft x1l=hround(.5w-.5thickness); y1=-d-eps; +x0=x1=x2; top y0=h; x0-x3=x4-x0=4u+eps; +y3=y4=y0-.29asc_height-eps; +pos5(barr,angle(z4-z0)); z5l=z0; +pos6(barr,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4l{z9-z4}..z6r; +t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p; +filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z1r--z1l--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Extensible vertical arrow--bottom"; +beginchar(oct"171",12u#,0,dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric thickness,barr; +thickness=hround(rule_thickness+.2dw); barr=Vround .6[bar,thickness]; +pos1(thickness,0); pos2(thickness,0); pos3(barr,90); pos4(barr,90); +lft x1l=hround(.5w-.5thickness); y1=h+eps; +x0=x1=x2; bot y0=-d; x0-x3=x4-x0=4u+eps; +y3=y4=y0+.29asc_height+eps; +pos5(barr,angle(z4-z0)); z5l=z0; +pos6(barr,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p; +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z1r--z1l--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Extensible vertical arrow--extension module"; +beginchar(oct"077",12u#,0,dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric thickness; thickness=hround(rule_thickness+.2dw); +pos1(thickness,0); pos2(thickness,0); +lft x1l=hround(.5w-.5thickness); x2=x1; y1=h+1+eps; y2=-d-1-eps; +filldraw stroke z1e--z2e; % stem +penlabels(1,2); endchar; + +cmchar "Extensible double vertical arrow--top"; +beginchar(oct"176",14u#,0,dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric thickness; thickness=Vround(rule_thickness+.2dw); +pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0); +y1=y2=-d-eps; y7=y8=h; top y0=h+eps; x1=x7; x2=x8; +rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=x0=good.x .5w; +filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars +pos3(thickness,90); pos4(thickness,90); +x2-x3=x4-x1=4u+eps; y3=y4=y0-.48asc_height-eps; +pos5(thickness,angle(z4-z0)); z5l=z0; +pos6(thickness,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +erase filldraw z0..{z3-z9}z3--(x3,h) + --(x4,h)--z4{z9-z4}..z0 & cycle; % erase excess +numeric t; path p; p=z4l{z9-z4}..z6r; +t=xpart(p intersectiontimes((x0,-d)--(x0,h))); +filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead +penlabels(0,1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Extensible double vertical arrow--bottom"; +beginchar(oct"177",14u#,0,dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric thickness; thickness=Vround(rule_thickness+.2dw); +pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0); +y1=y2=h+eps; y7=y8=-d; bot y0=-d-eps; x1=x7; x2=x8; +rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=x0=good.x .5w; +filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars +pos3(thickness,90); pos4(thickness,90); +x2-x3=x4-x1=4u+eps; y3=y4=y0+.48asc_height-eps; +pos5(thickness,angle(z4-z0)); z5l=z0; +pos6(thickness,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0]; +erase filldraw z0..{z3-z9}z3--(x3,-d) + --(x4,-d)--z4{z9-z4}..z0 & cycle; % erase excess +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((x0,-d)--(x0,h))); +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead +penlabels(0,1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Extensible double vertical arrow--extension module"; +beginchar(oct"167",14u#,0,dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric thickness; thickness=Vround(rule_thickness+.2dw); +pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0); +y1=y2=h+1+eps; y7=y8=-d-1-eps; x1=x7; x2=x8; +rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=good.x .5w; +filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars +penlabels(1,2,7,8); endchar; + +cmchar "\big radical sign"; +beginchar(oct"160",18u#,rule_thickness#,2dh#-rule_thickness#); +big_sqrt; endchar; + +cmchar "\Big radical sign"; +beginchar(oct"161",18u#,rule_thickness#,3dh#-rule_thickness#); +big_sqrt; endchar; + +cmchar "\bigg radical sign"; +beginchar(oct"162",18u#,rule_thickness#,4dh#-rule_thickness#); +big_sqrt; endchar; + +cmchar "\Bigg radical sign"; +beginchar(oct"163",18u#,rule_thickness#,5dh#-rule_thickness#); +big_sqrt; endchar; + +cmchar "Extensible radical sign---bottom"; +beginchar(oct"164",19u#,0,3dh#); +adjust_fit(0,-letter_fit#); pickup rule.nib; +x1=x2=good.x(w-6u); bot y1=1-d; y2=h+eps; +draw z1--z2; % diagonal +pickup crisp.nib; pos3(max(curve,rule_thickness),0); +x3l=good.x 3u; y3=.9[y1,y2]; +pos4(rule_thickness,0); x4=x1; bot y4=-d; +pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,(x2,body_height)]; +z6=z5r+whatever*((x2,body_height)-z3r)=whatever[z3l,z4l]; +z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l); +filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif +penlabels(1,2,3,4,5,6,7); endchar; + +cmchar "Extensible radical sign---extension module"; +beginchar(oct"165",19u#,0,dh#); +adjust_fit(0,-letter_fit#); pickup rule.nib; +x1=x2=good.x(w-6u); y1=-d-eps; y2=h+eps; +draw z1--z2; % stem +labels(1,2); endchar; + +cmchar "Extensible radical sign---top"; +beginchar(oct"166",19u#,rule_thickness#,dh#-rule_thickness#); +adjust_fit(0,-letter_fit#); pickup rule.nib; +x1=x2=good.x(w-6u); x3=good.x(w+.5); y1=-d-eps; bot y2=bot y3=0; +draw z1--z2--z3; % stem and link +labels(1,2,3); endchar; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lbigop.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lbigop.mf new file mode 100644 index 00000000000..e9289d68834 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lbigop.mf @@ -0,0 +1,392 @@ +% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE bigop.mf BY D E KNUTH. +% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED! +% Changed to lbigop.mf and modified by Claudio Beccari C 2007 + +% This file contains pairs of large operators for math extension fonts. + +% Each operator has a `{\tt\char`\\textstyle}' form, for math in text, +% and a `{\tt\char`\\displaystyle}' form, for displayed formulas. + +% Character codes \0106--\0141 are generated. + +charlist oct"106": oct"107"; % square union signs +charlist oct"110": oct"111"; % contour integral signs +charlist oct"112": oct"113"; % circle-dot operators +charlist oct"114": oct"115"; % circle-plus operators +charlist oct"116": oct"117"; % circle-times operators +charlist oct"120": oct"130"; % summation signs +charlist oct"121": oct"131"; % product signs +charlist oct"122": oct"132"; % integral signs +charlist oct"123": oct"133"; % union signs +charlist oct"124": oct"134"; % intersection signs +charlist oct"125": oct"135"; % multiset union signs +charlist oct"126": oct"136"; % lattice infimum signs +charlist oct"127": oct"137"; % lattice supremum signs +charlist oct"140": oct"141"; % coproduct signs + +cmchar "\textstyle square set union sign"; +beginchar(oct"106",15u#,0,10/6dh#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x1=hround u; x2=x1; x4=x5=w-x1; +top y1=eps; bot y2=-d; y4=y2; y5=y1; +draw z1---z2---z4---z5; % stems and bar +labels(1,2,4,5); endchar; + +cmchar "\displaystyle square set union sign"; +beginchar(oct"107",20u#,0,14/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x1=hround u; x2=x1; x4=x5=w-x1; +top y1=eps; bot y2=-d; y4=y2; y5=y1; +draw z1---z2---z4---z5; % stems and bar +labels(1,2,4,5); endchar; + +% These nex chars are commented out because they get redefined in lmathex.mf + +%cmchar "\textstyle circle-dot operator"; +%beginchar(oct"112",20u#,0,10/6dh#); +%adjust_fit(0,0); pickup pencircle scaled stem; +%lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +%circle_points; draw_circle; % circle +%fill fullcircle scaled(bold+4dw+eps) shifted(.5[z4,z8]); % dot +%labels(1,2,3,4,5,6,7,8); endchar; + +%cmchar "\displaystyle circle-dot operator"; +%beginchar(oct"113",27.2u#,0,14/6dh#); padded 1/6dh#; +%adjust_fit(0,0); pickup pencircle scaled curve; +%lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +%circle_points; draw_circle; % circle +%fill fullcircle scaled(bold+6dw+eps) shifted(.5[z4,z8]); % dot +%labels(1,2,3,4,5,6,7,8); endchar; + +%cmchar "\textstyle circle-plus operator"; +%beginchar(oct"114",20u#,0,10/6dh#); +%adjust_fit(0,0); pickup pencircle scaled stem; +%lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +%circle_points; draw_circle; % circle +%draw z2--z6; draw z4--z8; % plus +%labels(1,2,3,4,5,6,7,8); endchar; + +%cmchar "\displaystyle circle-plus operator"; +%beginchar(oct"115",27.2u#,0,14/6dh#); padded 1/6dh#; +%adjust_fit(0,0); pickup pencircle scaled curve; +%lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +%circle_points; draw_circle; % circle +%draw z2--z6; draw z4--z8; % plus +%labels(1,2,3,4,5,6,7,8); endchar; + +%cmchar "\textstyle circle-times operator"; +%beginchar(oct"116",20u#,0,10/6dh#); +%adjust_fit(0,0); pickup pencircle scaled stem; +%lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +%circle_points; draw_circle; % circle +%draw z1--z5; draw z3--z7; % times +%labels(1,2,3,4,5,6,7,8); endchar; + +%cmchar "\displaystyle circle-times operator"; +%beginchar(oct"117",27.2u#,0,14/6dh#); padded 1/6dh#; +%adjust_fit(0,0); pickup pencircle scaled curve; +%lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +%circle_points; draw_circle; % circle +%draw z1--z5; draw z3--z7; % times +%labels(1,2,3,4,5,6,7,8); endchar; + +%cmchar "\textstyle summation sign"; +%beginchar(oct"120",19u#,0,10/6dh#); +%adjust_fit(0,0); pickup tiny.nib; +%numeric top_arm_thickness, bot_arm_thickness; +%top_arm_thickness=Vround rule_thickness; +%bot_arm_thickness=Vround .9(.5[rule_thickness,curve]); +%lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u); +%top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d; +%numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3); +%penpos1(alpha1*(curve-tiny),0); penpos2(alpha1*(curve-tiny),0); +%penpos3(alpha1*(curve-tiny),0); +%alpha2=diag_ratio(1,rule_thickness-tiny,y3-y4,x3r-x4l); +%penpos4(alpha2*(rule_thickness-tiny),0); +%z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r); +%filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals +%pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0); +%top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps; +%arm(5,6,a,.45,17/11u); % upper arm and beak +%pos7(bot_arm_thickness,-90); pos8(hair,0); +%bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps; +%arm(7,8,b,.45,17/11u); % lower arm and beak +%penlabels(0,1,2,3,4,5,6,7,8); endchar; + +%cmchar "\displaystyle summation sign"; +%beginchar(oct"130",26u#,0,14/6dh#); padded 1/6dh#; +%adjust_fit(0,0); pickup tiny.nib; +%numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem; +%thick_stem=bold+4dw; thin_stem=rule_thickness+dw; +%top_arm_thickness=Vround .9thin_stem; +%bot_arm_thickness=Vround .9(.5[thin_stem,thick_stem]); +%lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u); +%top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d; +%numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3); +%penpos1(alpha1*(thick_stem-tiny),0); penpos2(alpha1*(thick_stem-tiny),0); +%penpos3(alpha1*(thick_stem-tiny),0); +%alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l); +%penpos4(alpha2*(thin_stem-tiny),0); +%z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r); +%filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals +%pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0); +%top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-1.2beak)-eps; +%arm(5,6,a,.45,24/11u); % upper arm and beak +%pos7(bot_arm_thickness,-90); pos8(hair,0); +%bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+1.2beak)+eps; +%arm(7,8,b,.45,24/11u); % lower arm and beak +%penlabels(0,1,2,3,4,5,6,7,8); endchar; + +%cmchar "\textstyle product sign"; +%beginchar(oct"121",17u#,0,10/6dh#); +%adjust_fit(0,0); pickup crisp.nib; +%numeric heavy_stem,light_stem; +%heavy_stem=hround(bold+dw); light_stem=rule_thickness; +%pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0); +%pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90); +%lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut; +%x1=x1'=x2=x2'; +%top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2; +%y11l-y1'=y2'-y12r=1.2bracket; +%filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l) +% --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs +%pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0); +%pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90); +%x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22; +%y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2; +%filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r) +% --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs +%filldraw stroke z11e--z13e; % bar +%penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar; + +%cmchar "\displaystyle product sign"; +%beginchar(oct"131",23u#,0,14/6dh#); padded 1/6dh#; +%adjust_fit(0,0); pickup crisp.nib; +%numeric heavy_stem,light_stem; +%heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw); +%pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0); +%pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90); +%lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut; +%x1=x1'=x2=x2'; +%top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2; +%y11l-y1'=y2'-y12r=1.8bracket; +%filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l) +% --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs +%pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0); +%pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90); +%x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22; +%y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2; +%filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r) +% --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs +%filldraw stroke z11e--z13e; % bar +%penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar; + +cmchar "\textstyle coproduct sign"; +beginchar(oct"140",16u#,0,10/6dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric heavy_stem,light_stem; +heavy_stem=hround(bold+dw); light_stem=rule_thickness; +pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0); +pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90); +lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut; +x1=x1'=x2=x2'; +bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2; +y1'-y11l=y12r-y2'=1.2bracket; +filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l) + --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs +pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0); +pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90); +x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22; +y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2; +filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r) + --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs +filldraw stroke z11e--z13e; % bar +penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar; + +cmchar "\displaystyle coproduct sign"; +beginchar(oct"141",21u#,0,16/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup crisp.nib; +numeric heavy_stem,light_stem; +heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw); +pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0); +pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90); +lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut; +x1=x1'=x2=x2'; +bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2; +y1'-y11l=y12r-y2'=1.8bracket; +filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l) + --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs +pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0); +pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90); +x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22; +y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2; +filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r) + --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs +filldraw stroke z11e--z13e; % bar +penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar; + +%cmchar "\textstyle integral sign"; +%beginchar(oct"122",12u#,0,100/52dh#); +%italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit +%adjust_fit(0,-ic#); pickup fine.nib; +%pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180); +%pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0); +%pos7(vair,-90); pos8(hair,-180); pos9(curve,-180); +%rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +%x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve); +%top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve); +%y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +%bulb(3,2,1); bulb(7,8,9); % bulbs +%filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} +% ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +%filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 +% ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +%penlabels(1,2,3,4,5,6,7,8,9); endchar; + +%cmchar "\displaystyle integral sign"; +%beginchar(oct"132",18u#,0,200/48dh#); +%italcorr 8u#; % \TeX\ kerning between upper limit and lower limit +%adjust_fit(0,-ic#); pickup fine.nib; +%numeric bulb_size, max_size; +%bulb_size=hround(bold+dw); max_size=hround(bold+2dw); +%pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180); +%pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0); +%pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180); +%rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +%x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size); +%top y3r=0; bot y7r=-d; +%y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7; +%y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +%bulb(3,2,1); bulb(7,8,9); % bulbs +%filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} +% ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +%filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 +% ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +%penlabels(1,2,3,4,5,6,7,8,9); endchar; + +%cmchar "\textstyle contour integral sign"; +%beginchar(oct"110",12u#,0,100/52dh#); +%italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit +%adjust_fit(0,-ic#); pickup fine.nib; +%pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180); +%pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0); +%pos7(vair,-90); pos8(hair,-180); pos9(curve,-180); +%rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +%x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve); +%top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve); +%y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +%bulb(3,2,1); bulb(7,8,9); % bulbs +%filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} +% ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +%filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 +% ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +%pickup rule.nib; autorounded; +%draw fullcircle scaled .5w shifted z5; % contour +%penlabels(1,2,3,4,5,6,7,8,9); endchar; + +%cmchar "\displaystyle contour integral sign"; +%beginchar(oct"111",18u#,0,200/48dh#); +%italcorr 8u#; % \TeX\ kerning between upper limit and lower limit +%adjust_fit(0,-ic#); pickup fine.nib; +%numeric bulb_size, max_size; +%bulb_size=hround(bold+dw); max_size=hround(bold+2dw); +%pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180); +%pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0); +%pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180); +%rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +%x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size); +%top y3r=0; bot y7r=-d; +%y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7; +%y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +%bulb(3,2,1); bulb(7,8,9); % bulbs +%filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} +% ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +%filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 +% ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +%pickup rule.nib; autorounded; +%draw fullcircle scaled .5w shifted z5; % contour +%penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "\textstyle set union sign"; +beginchar(oct"123",15u#,0,10/6dh#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cup +labels(1,2,3,4,5); endchar; + +cmchar "\displaystyle set union sign"; +beginchar(oct"133",20u#,0,14/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cup +labels(1,2,3,4,5); endchar; + +cmchar "\textstyle set intersection sign"; +beginchar(oct"124",15u#,0,10/6dh#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cap +labels(1,2,3,4,5); endchar; + +cmchar "\displaystyle set intersection sign"; +beginchar(oct"134",20u#,0,14/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cap +labels(1,2,3,4,5); endchar; + +cmchar "\textstyle multiset union sign"; +beginchar(oct"125",15u#,0,10/6dh#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cup +y8=y9=.47[y1,y3]; x8=w-x9=x1+2stem+eps; x6=x7=x3; +.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$' +labels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "\displaystyle multiset union sign"; +beginchar(oct"135",20u#,0,14/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1; +top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1; +draw z1---z2...z3...z4---z5; % stems and cup +y8=y9=.47[y1,y3]; x8=w-x9=x1+2curve+eps; x6=x7=x3; +.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$' +labels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "\textstyle lattice infimum sign"; +beginchar(oct"126",15u#,0,10/6dh#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x1=hround u-eps; x3=w-x3; x5=w-x1; +top y3=0; bot y1=-d-eps; y5=y1; +draw z1--z3--z5; % diagonals +labels(1,3,5); endchar; + +cmchar "\displaystyle lattice infimum sign"; +beginchar(oct"136",20u#,0,14/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x1=hround u-eps; x3=w-x3; x5=w-x1; +top y3=0; bot y1=-d-eps; y5=y1; +draw z1--z3--z5; % diagonals +labels(1,3,5); endchar; + +cmchar "\textstyle lattice supremum sign"; +beginchar(oct"127",15u#,0,10/6dh#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x1=hround u-eps; x3=w-x3; x5=w-x1; +top y1=eps; bot y3=-d; y5=y1; +draw z1--z3--z5; % diagonals +labels(1,3,5); endchar; + +cmchar "\displaystyle lattice supremum sign"; +beginchar(oct"137",20u#,0,14/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x1=hround u-eps; x3=w-x3; x5=w-x1; +top y1=eps; bot y3=-d; y5=y1; +draw z1--z3--z5; % diagonals +labels(1,3,5); endchar; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lbsymbols.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lbsymbols.mf new file mode 100644 index 00000000000..cc6a3f5bf90 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lbsymbols.mf @@ -0,0 +1,1622 @@ +%% File LBSYMBOLS copied and modified from AMSYB by American Mathematical Society +%% in order to cope with the necessities of the slides fonts +%% +%% Claudio Beccari 2007 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This file defines the symbols of AMS special MSB font. + +def char_negate(suffix c,t,b) = %c is center point; t is top point; b is bottom +pickup rule.nib; +w-x.t=x.b; y.t-y.c=y.c-y.b; draw z.t--z.b; +penlabels(t,c,b); enddef; +def char_center(suffix c) = % find center of type character +x.c=w/2; y.c=.5[-d,h]; enddef; + +cmchar "Less than or not (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"000",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y1=h; +x2=x9=x7; x1=x8=x6; y7=y6; y8=y9; +y7-y9=spread'; top y3-bot y6=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; % equal sign +z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3]; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Greater than or not (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"001",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x7=x9; x1=x6=x8; y6=y7; y8=y9; +y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h; +y7-y9=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; +z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3]; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Not less than or equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"002",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +italcorr h#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u; +draw z1--z2--z3; % diagonals +x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,8,9,99,100); endchar; + +cmchar "Not greater than or equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"003",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +italcorr h#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.5u-eps; x2=w-x1; x3=x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u; +draw z1--z2--z3; % diagonals +x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,8,9,99,100); endchar; + +cmchar "Not less than sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"004",14u#,v_center(spread#+rule_thickness#+6u#)); +italcorr h#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3; % diagonals +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3); endchar; + +cmchar "Not greater than sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"005",14u#,v_center(spread#+rule_thickness#+6u#)); +italcorr math_axis#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3; % diagonals +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,99,100); endchar; + +cmchar "Not precedes sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"006",14u#,v_center(spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-epsilon; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u; +draw z1{-u,-spread}...{left}z2; % upper diagonal +draw z3{-u,spread}...{left}z2; % lower diagonal +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,99,100); endchar; + +cmchar "Not follows sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"007",14u#,v_center(spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-epsilon; x2=w-x1; x3=x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u; +draw z1{u,-spread}...{right}z2; % upper diagonal +draw z3{u,spread}...{right}z2; % lower diagonal +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,99,100); endchar; + +cmchar "Less than or slanted not (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"010",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y1=h; +x2=x9=x7; x1=x8=x6; y7=y6; y8=y9; +y7-y9=spread'; top y3-bot y6=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; % equal sign +z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3]; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Greater than or slanted not (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"011",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x7=x9; x1=x6=x8; y6=y7; y8=y9; +y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h; +y7-y9=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; +z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3]; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Not less than or (slanted) equal sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"012",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u; +x2=x9; x1=x8; +draw z1--z2--z3; % diagonals +draw z8--z9; % equal sign +char_center(c); x.t=w-3u; y.t=y1+3u; +char_negate(c,t,b); +penlabels(1,2,3,8,9); endchar; + +cmchar "Not greater than or (slanted) equal sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"13",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x9; x1=x8; +y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u; +draw z1--z2--z3; % diagonals +draw z8--z9; +char_center(c); x.t=w-3u; y.t=y1+3u; +char_negate(c,t,b); +penlabels(1,2,3,8,9); endchar; + +cmchar "Less than or not equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"014",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft +x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; +top y1=h; draw z1--z2--z3; % diagonals +x8=x1; x9=x2; y8=y9; +y3-y9=spread'; draw z8--z9; % bar +x100=w/2; y100=y8; % center point +y101=.5[y8,y3]; x101-x100=y101-y100; +char_negate(100,101,102); +labels(1,2,3,8,9); endchar; + +cmchar "Greater than or not equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"015",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft +x1=hround 1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; +y2=.5[y1,y3]; top y1=h; draw z1--z2--z3; % diagonals +x8=x1; +x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar +x100=w/2; y100=y8; % center point +y101=.5[y8,y3]; x101-x100=y101-y100; +char_negate(100,101,102); +labels(1,2,3,8,9); endchar; + +cmchar "Not precedes or equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"016",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround +1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u; +draw z1{-u,-spread}...{left}z2; % upper diagonal +draw z3{-u,spread}...{left}z2; % lower diagonal +x8=x1; x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % bar +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,8,9,99,100); endchar; + +cmchar "Not follows or equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"017",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround +1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top +y1=h-3u; draw z1{u,-spread}...{right}z2; % upper diagonal +draw z3{u,spread}...{right}z2; % lower diagonal +x8=x1; x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % bar +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,8,9,99,100); endchar; + +cmchar "Precedes or not approximately equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.55x_height#); +spread#'':=spread#; spread'':=spread; +compute_spread(5/4 x_height#,3/2 x_height#); +beginchar(oct"020",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1{-u,-spread}...{left}z2; %upper `diagonal' +draw z3{-u,spread}...{left}z2; % lower diagonal +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; + y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3]; +char_negate(c,t,b); +penlabels(1,2,3,11,12,13,14); endchar; + +cmchar "Follows or not equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % spread of similarity sign +compute_spread(.54 x_height#,.66 x_height#); +spread#'':=spread#; spread'':=spread; % spread between symbols +compute_spread(5/4 x_height#,3/2 x_height#); % spread of follows sign +beginchar(oct"021",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x1=x3; x2=w-x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1{u,-spread}...{right}z2; %upper `diagonal' +draw z3{u,spread}...{right}z2; % lower diagonal +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; +y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3]; +char_negate(c,t,b); +penlabels(1,2,3,11,12,13,14); endchar; + + + +cmchar "Less than or not similar to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.55x_height#); +spread#'':=spread#; spread'':=spread; +compute_spread(5/4 x_height#,3/2 x_height#); +beginchar(oct"022",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; + y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3]; +char_negate(c,t,b); +penlabels(1,2,3,4,11,12,13,14); endchar; + + + +cmchar "Greater than or not similar to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54x_height#,.66x_height#); +spread#'':=spread#; spread'':=spread; +compute_spread(5/4 x_height#,3/2 x_height#); +beginchar(oct"023",14u#,v_center(spread#'+spread#+spread#'')); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x1=x3; x2=w-x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread''; + y3-y14=spread'; +draw z11{up}...z12{right}..{right}z13...{up}z14; +z.c=.5[z12,z13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3]; +char_negate(c,t,b); +penlabels(1,2,3,4,11,12,13,14); endchar; + + +cmchar "Negated less than or (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"024",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y1=h-3u; +x2=x9=x7; x1=x8=x6; y7=y6; y8=y9; +y7-y9=spread'; top y3-bot y6=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; % equal sign +char_center(c); x.t=w-3u; y.t=y1+3u; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Negated greater than or (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"025",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x7=x9; x1=x6=x8; y6=y7; y8=y9; +y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h-3u; +y7-y9=spread'; +draw z1--z2--z3; % diagonals +draw z6--z7; draw z8--z9; +char_center(c); x.t=w-3u; y.t=y1+3u; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Precedes or slanted not (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"026",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; +y2=.5[y1,y3]; top y1=h; +x2=x9=x7; x1=x8=x6; y7=y6; y8=y9; +y7-y9=spread'; top y3-bot y6=spread'; +draw z1{-u,-spread}..{left}z2; % diagonals +draw z3{-u, spread}..{left}z2; +draw z6--z7; draw z8--z9; % equal sign +z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3]; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Follows or slanted not (double) equals sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"027",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; +x2=x7=x9; x1=x6=x8; y6=y7; y8=y9; +y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h; +y7-y9=spread'; +draw z1{u,-spread}..{right}z2; % diagonals +draw z3{u,spread}..{right}z2; +draw z6--z7; draw z8--z9; +z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3]; +char_negate(c,t,b); +penlabels(1,2,3,6,7,8,9); endchar; + +cmchar "Precedes with not approximate equality sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(.54 x_height#,.66 x_height#); +spread#'':=spread#; spread'':=spread; % the spread of `$=$' +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"030",14u#,v_center(2spread#''+spread#+2rule_thickness#)); +adjust_fit(0,0); +% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot) +pickup rule.nib; +lft x10= hround 1.5u-eps; x9=x11=w-x10; +y9-y11=spread; y10=.5[y9,y11]; top y9=h; +draw z9{-u,-spread}...{left}z10; +draw z11{-u,spread}...{left}z10; +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread'; +z1-z5=z2-z6=z3-z7=z4-z8=(0,spread''); +draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke +draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke +z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11]; +char_negate(c,t,b); +labels(1,2,3,4,5,6,7,8,9,10,11); endchar; + + +cmchar "Follows with not approximate equality sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(.54 x_height#,.66 x_height#); +spread#'':=spread#; spread'':=spread; % the spread of `$=$' +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"031",14u#,v_center(2spread#''+spread#+2rule_thickness#)); +adjust_fit(0,0); +% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot) +pickup rule.nib; +lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9; +y9-y11=spread; y10=.5[y9,y11]; top y9=h; +draw z9{u,-spread}...{right}z10; +draw z11{u,spread}...{right}z10; +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread'; +z1-z5=z2-z6=z3-z7=z4-z8=(0,spread''); +draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke +draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke +z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11]; +char_negate(c,t,b); +labels(1,2,3,4,5,6,7,8,9,10,11); endchar; + + +cmchar "Less than or not approximately equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54 x_height#,.66 x_height#); +spread#'':=spread#; spread'':=spread; % the spread of `$=$' +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"032",14u#,v_center(2spread#''+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +top y13=top y11=bot y3-spread''; top y12=top y14=bot y11+spread'; +path p; p=z11{up}...z12{right}..{right}z13...{up}z14; +draw p; draw p shifted (0,-spread''); +x.c=w/2; y.c=.5[y12, y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3]; +char_negate(c,t,b); +penlabels(1,2,3,4,11,12,13,14); endchar; + +cmchar "Greater than or not approximately equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; +compute_spread(.54 x_height#,.66 x_height#); +spread#'':=spread#; spread'':=spread; % the spread of `$=$' +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"033",14u#,v_center(2spread#''+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x1=x3; x2=w-x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3; +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi +lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11; +bot y11=bot y13; top y12=top y14; +top y12-bot y11=spread'; +bot y3- spread''=top y11; +path p; p=z11{up}...z12{right}..{right}z13...{up}z14; +draw p; draw p shifted (0,-spread''); +x.c=w/2; y.c=.5[y12,y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3]; +char_negate(c,t,b); +penlabels(1,2,3,4,11,12,13,14); endchar; + +cmchar "Thick not similar to sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"034",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup pencircle xscaled .8rule_thickness +yscaled 1.87rule_thickness; if vair#>.8curve#: pickup +rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +bot y1=bot y3=-d; top y2=top y4=h; +draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke +char_center(100); x101=w-4u; y101=y1+5u; +char_negate(100,101,102); +labels(1,2,3,4,99,100); endchar; + + +cmchar "Not approximately equal to sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"035",14u#,v_center(3spread#+2rule_thickness#+8u#)); +adjust_fit(0,0); +pickup pencircle xscaled .7rule_thickness yscaled +1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +y1=y3; top y2=top y4=h-4u; top y2-bot y1=spread; +draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke +pickup rule.nib; +lft x5=lft x7=hround u-eps; x6=x8=w-x5; +y5=y6=y1-spread; y7=y8=y5-spread; +draw z5--z6; draw z7--z8; % double equal sign +char_center(100); x101=w-3u; y101=y1+4u; +char_negate(100,101,102); +labels(1,2,3,4,5,6,7,8,99,100); endchar; + +cmchar "45 degree angle line"; +beginchar(oct"036",16u#,asc_height#,asc_depth#); +adjust_fit(0,0); pickup rule.nib; +bot y1 =-d-eps; .5[y1,y2]=math_axis; +lft x1 = 0+eps =x0; % rt x2=; +z0-z1=(z2-z1) rotated 45; +draw z1--z2; +labels(0,1,2); endchar; + +cmchar "135 degree angle line"; +beginchar(oct"037",16u#,body_height#,asc_depth#); +adjust_fit(0,0); pickup rule.nib; +bot y1 =-d-eps; .5[y1,y2]=math_axis; +lft x2 = 0+eps= x0; % rt x2=; +z0-z2=(z1-z2) rotated -45; +draw z1--z2; +labels(0,1,2); endchar; + +cmchar "Negated subset or equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"040",14u#,v_center(spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; +draw z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x100=w/2; y100=.5[y3,y8]; x101=x3-2u; y101=y3+2u; +char_negate(100,101,102); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Negated superset or equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"041",14u#,v_center(spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x2=w-x1; x3=x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; +draw z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x100=x3+2.5u; y100=.5[y8,y3]; x101=x100+2.5u; y101=y3+2u; +y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102; +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Negated subset or (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"042",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround +1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3; +% arc and bars +x8=x1; x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b); +penlabels(1,2,3,4,5,8,9,8',9'); endchar; + +cmchar "Negated superset or (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"043",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround +1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top +y1=h; x4=x5=.5w; y4=y1; y5=y3; draw +z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; +x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Subset or not (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"044",14u#,v_center(2.33spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround +1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3; +% arc and bars +x8=x1; x9=x2; +y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3]; +char_negate(c,t,b); +penlabels(1,2,3,4,5,8,9,8',9'); endchar; + +cmchar "Superset or not (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"045",14u#,v_center(2.33spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround +1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top +y1=h; x4=x5=.5w; y4=y1; y5=y3; draw +z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; +x9=x2; +y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3]; +char_negate(c,t,b); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Another not subset or (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"046",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround +1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3; +% arc and bars +x8=x1; x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +x.t=w-2.5u; y.t=y3+2u; x.b=.5[x2,x5]; y.b=y9'-2u; z.c=.5[z.b,z.t]; +draw z.b--z.t; labels(c,b,t); +penlabels(1,2,3,4,5,8,9,8',9'); endchar; + +cmchar "Another superset or (double) equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"047",14u#,v_center(2spread#'+spread#+2rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround +1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top +y1=h; x4=x5=.5w; y4=y1; y5=y3; draw +z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; +x9=x2; +y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9'; +x.t=x5; y.t=y3+2u; x.b=2.5u; y.b=y9'-2u; z.c=.5[z.b,z.t]; +draw z.b--z.t; labels(c,b,t); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Subset or not equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"050",14u#,v_center(spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; +draw z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100; +char_negate(100,101,102); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Superset or not equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"051",14u#,v_center(spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x2=w-x1; x3=x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +x4=x5=.5w; y4=y1; y5=y3; +draw z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100; +char_negate(100,101,102); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Not subset or equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"052",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u; +x4=x5=.5w; y4=y1; y5=y3; +draw z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +char_center(100); y101=y1+3u; x101=w-3u; +char_negate(100,101,102); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Not superset or equal to sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"053",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround 1.5u-eps; x2=w-x1; x3=x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u; +x4=x5=.5w; y4=y1; y5=y3; +draw z1---z4...z2{down}...z5---z3; % arc and bars +x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar +char_center(100); y101=y1+3u; x101=w-3u; +char_negate(100,101,102); +labels(1,2,3,4,5,8,9); endchar; + +cmchar "Negated double vertical line (norm or cardinality)"; +beginchar(oct"054",9u#,body_height#,paren_depth#); +adjust_fit(0,0); pickup rule.nib; +x1=x2; top y1=h; .5[y1,y2]=math_axis; +x3=x4=w-x1; y3=y1; y4=y2; +compute_spread(.45x_height#,.55x_height#); x3-x1=spread; +draw z1--z2; draw z3--z4; % stems +char_center(c); x.t=w; y.t=2/3h; +char_negate(c,t,b); +labels(1,2,3,4); endchar; + +cmchar "Negated vertical line"; +beginchar(oct"055",5u#,body_height#,paren_depth#); +italcorr body_height#*slant+.5rule_thickness#-2u#; +adjust_fit(0,0); pickup rule.nib; +x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps; +draw z1--z2; % stem +x.t=w; x.b=w-x.t; y.t=2/3h; y.b=1/3h; +draw z.b--z.t; +labels(1,2,b,t); endchar; + +cmchar "Negated cute vertical bar"; +beginchar(oct"056",4u#,6u#+math_axis#,6u#-math_axis#); +italcorr math_axis#*slant - .5u#; +adjust_fit(0,0); pickup rule.nib; +x1=x2=hround(w/2); top y1=x_height; bot y2=-o; +draw z1--z2; +char_center(c); x.t=w; y.t=5/8h; +char_negate(c,t,b); +labels(1,2); endchar; + +cmchar "Negated pair of cute vertical bars"; +beginchar(oct"057",7u#,6u#+math_axis#,6u#-math_axis#); +italcorr math_axis#*slant - .5u#; +adjust_fit(0,0); pickup rule.nib; +lft x1=u; x2=x1; top y1=x_height; bot y2=-o; +x3=w-x1; x4=x3; y3=y1; y4=y2; +draw z1--z2; draw z3--z4; +char_center(c); x.t=w; y.t=5/8h; +char_negate(c,t,b); +labels(1,2,3,4); endchar; + +cmchar "Negated left turnstile"; +beginchar(oct"060",11u#,asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +.5[y1,y2]=y3=y4; x1=x2=x3; +lft x3=hround u; x4=w-x3; top y1=h; bot y2=0; +draw z1--z2; % stem +draw z3--z4; % bar +top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b; +labels(1,2,3,4,b,t); endchar; + +cmchar "Negated forces symbol"; +beginchar(oct"061",13u#,asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2; +lft x5=hround u; x4=w-x5; +compute_spread(.45x_height#,.55x_height#); +x1=x5+spread; x1=x2=x3; x6=x5; +draw z6--z5; draw z2--z1; draw z3--z4; +top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b; +penlabels(1,2,3,4,5,6,b,t); endchar; + +cmchar "Negated satisfies symbol"; +beginchar(oct"062",11u#,asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +compute_spread(.45x_height#,.55x_height#); +top y1=h; bot y2=0; y0=good.y .5[y1,y2]; +y3=vround y0+.5spread; +y5=vround y0- .5spread; y4=y3; y6=y5; +lft x1=hround u; x4=w-x1; +x1=x2=x3=x5; x4=x6; x0=x1; +draw z1--z2; % vertical line +draw z3--z4; % draw top horizontal piece +draw z5--z6; % draw bottom horizontal piece +top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b; +penlabels(0,1,2,3,4,5,6,b,t); endchar; + +cmchar "Negated forces symbol with extra bar"; +beginchar(oct"063",13u#,asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2; +lft x5=hround u; x4=w-x5; +compute_spread(.45x_height#,.55x_height#); +x1=x5+spread; x1=x2=x3; x6=x5; +x3'=x3; x4'=x4; y3:=y3+.5spread; y4:=y3; +y3'=y4'=y3-spread; +draw z6--z5; draw z2--z1; draw z3--z4; +draw z3'--z4'; % extra bar +top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b; +penlabels(1,2,3,4,5,6,b,t); endchar; + + +cmchar "Negated rightward isosceles triangle with lower bar"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"064",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u); +x3=x2; x1=hround(w-x2); +top y2=h-3u; y2-y3=spread; y1=.5[y2,y3]; +x4=x2; x5=x1; y3-y4=spread'; y5=y4; +draw z1--z2--z3--cycle; draw z4--z5; +char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u; +char_negate(c,t,b); +penlabels(1,2,3,4,5); endchar; + +cmchar "Negated leftward isosceles triangle with lower bar"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"065",14u#,v_center(spread#'+spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps); +x3=x2; x1=hround(w-x2); +top y2=h-3u; y2-y3=spread; y1=.5[y2,y3]; +x4=x2; x5=x1; y3-y4=spread'; y5=y4; +draw z1--z2--z3--cycle; draw z4--z5; +char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u; +char_negate(c,t,b); +penlabels(1,2,3,4,5); endchar; + +cmchar "Negated leftward pointing isosceles triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"066",14u#,v_center(spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps); +x3=x2; x1=hround(w-x2); +top y2=h-3u; y2-y3=spread; y1=.5[y2,y3]; +draw z1--z2--z3--cycle; +char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u; +char_negate(c,t,b); +penlabels(1,2,3); endchar; + +cmchar "Negated rightward pointing isosceles triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"067",14u#,v_center(spread#+rule_thickness#+6u#)); +adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u); +x3=x2; x1=hround(w-x2); +top y2=h-3u; y2-y3=spread; y1=.5[y2,y3]; +draw z1--z2--z3--cycle; +char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u; +char_negate(c,t,b); +penlabels(1,2,3); endchar; + +cmchar "Negated leftward arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"070",18u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u; +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead and stem +char_center(100); top y101=top y3; x101=x100+2u; +char_negate(100,101,102); +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Negated rightward arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"071",18u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u); +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4l{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) + --z3r{z9-z3}..z0 & cycle; % arrowhead and stem +char_center(100); top y101=top y3; x101=x100+2u; +char_negate(100,101,102); +penlabels(0,1,2,3,4,5,6,9); endchar; + +cmchar "Negated left-and-right arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"075",18u#, + v_center(if monospace:.6asc_height#+fi spread#+rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0); +y0=y1=y2=math_axis if monospace:+vround.3asc_height fi; lft x0=hround u; +if monospace: x1+.5rule_thickness=hround(w-u) else: x1=.5w fi; +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem +pos11(rule_thickness,90); pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0); +y10=y11=y12=math_axis if monospace:-vround.3asc_height fi; +rt x10=hround(w-u); +if monospace: x11-.5rule_thickness=hround u else: x11=.5w fi; +y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10-3u-eps; +pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10; +z19=.381966[.5[z13,z14],z10]; +numeric t; path p; p=z14l{z19-z14}..z16r; +t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); x12=xpart point t of p; +filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r) + --z12l---z11l..z11r---z12r--subpath (t,0) of\\(z13l{z19-z13}..z15r) + --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem +char_center(100); top y101=top y3; x101=x100+2u; +char_negate(100,101,102); +penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar; + +cmchar "Negated double leftward arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"072",18u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +lft x7=hround u-eps; x8=x7; x1=x2=w-x7; +y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis; +draw z1--z7; draw z2--z8; % bars +pickup crisp.nib; lft x0=hround u-eps; y0=good.y math_axis; +pos3(rule_thickness,0); pos4(rule_thickness,0); +y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+6u+eps; +pos5(rule_thickness,angle(z4-z0)); z5l=z0; +pos6(rule_thickness,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +erase filldraw z0..{z3-z9}z3--(0,y3) + --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y0)--(w,y0))); +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead +pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3; +y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102; +penlabels(0,1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Negated double rightward arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"073",18u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x2=x1; x7=x8=w-x1; +y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis; +draw z1--z7; draw z2--z8; % bars +pickup crisp.nib; rt x0=hround(w-u)+eps; y0=good.y math_axis; +pos3(rule_thickness,0); pos4(rule_thickness,0); +y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0-6u-eps; +pos5(rule_thickness,angle(z4-z0)); z5l=z0; +pos6(rule_thickness,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +erase filldraw z0..{z3-z9}z3--(w,y3) + --(w,y4)--z4{z9-z4}..z0 & cycle; % erase excess +numeric t; path p; p=z4l{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y0)--(w,y0))); +filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) + --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead +pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3; +y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102; +penlabels(0,1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Negated double left-and-right arrow"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"074",18u#,v_center(spread#+rule_thickness#)); +adjust_fit(if monospace: -u#,-u# else: 0,0 fi); pickup rule.nib; +lft x7=hround u-eps; x8=x7; x1=x2=w-x7; +y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis; +draw z1--z7; draw z2--z8; % bars +pickup crisp.nib; lft x0=hround u-o; y0=good.y math_axis; +pos3(rule_thickness,0); pos4(rule_thickness,0); +y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+5u+eps; +pos5(rule_thickness,angle(z4-z0)); z5l=z0; +pos6(rule_thickness,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +erase filldraw z0..{z3-z9}z3--(0,y3) + --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess at left +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((0,y0)--(w,y0))); +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % left arrowhead +rt x10=hround(w-u)+o; y10=good.y math_axis; +pos13(rule_thickness,0); pos14(rule_thickness,0); +y13=y3; y14=y4; x13=x14=x10-5u-eps; +pos15(rule_thickness,angle(z14-z10)); z15l=z10; +pos16(rule_thickness,angle(z13-z10)); z16l=z10; +z19=.381966[.5[z13,z14],z10]; +erase filldraw z10..{z13-z19}z13--(w,y13) + --(w,y14)--z14{z19-z14}..z10 & cycle; % erase excess at right +numeric t; path p; p=z14l{z19-z14}..z16r; +t=xpart(p intersectiontimes((0,y10)--(w,y10))); +filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r) + --subpath (t,0) of\\(z13l{z19-z13}..z15r) + --z13r{z19-z13}..z10 & cycle; % right arrowhead +char_center(100); top y101=top y13; x101=x100+1.5u; char_negate(100,101,102); +penlabels(0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19); endchar; + +cmchar "Times-division symbol"; +beginarithchar(oct"076"); +pickup rule.nib; +x11=good.x(1/sqrt2)[.5w,rt u]; y11=good.y(1/sqrt2)[math_axis,bot h]; +x12=x13=w-x11; x14=x11; .5[y11,y12]=.5[y13,y14]=math_axis; y12=y14; +draw z11--z12; draw z13--z14; % diagonals +x3-.5dot_size=hround(.5w-.5dot_size); %center_on(x3); +y3+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]+.5dot_size); +lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis; +draw z1--z2; % bar +pos3(dot_size,0); pos4(dot_size,90); z3=z4; +pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis; +dot(3,4); dot(5,6); % dots +penlabels(1,2,3,4,5,6,11,12,13,14); endchar; + +cmchar "Null set symbol"; +beginarithchar(oct"077"); +pickup rule.nib; +z0=(w/2,h/2); % center of circle +rt x1-lft x0=hround(h/2 + o); y1=y0; +numeric theta; theta=45; +for i=2 upto 8: z[i]-z0=(z1-z0) rotated ((i-1)*theta); endfor +draw z8...z1 for i=2 upto 8: ...z[i] endfor; +lft x9=u; x10=w-x9; bot y9=bot y7; top y10=top y3; draw z9--z10; +labels(range 0 thru 10); endchar; + +cmchar "Negated existential quantifier"; +beginchar(oct"100",10u#,asc_height#,0); +italcorr asc_height#*slant; +adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x2=x3=x5=w-x1; x4=x6-.25u=x1; +top y1=h; bot y4=0; y2=y1; y5=y6=.5[y1,y3]; y3=y4; +draw z1--z2--z3--z4; % upper bar, stem, lower bar +draw z5--z6; % middle bar +char_center(100); x101=w-3u; y101=y1+3u; +char_negate(100,101,102); +labels(1,2,3,4,5,6); endchar; + +charlist oct"133": oct"134"; +charlist oct"135": oct"136"; + +cmchar"Wider than widest circumflex (hat) accent"; +beginchar(oct"133",34u#,1.1body_height#,0); +adjust_fit(0,0); +pickup crisp.nib; +pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w; +x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2]; +pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90); +filldraw stroke z1e--z2e--z3e; +penlabels(1,2,3); +%big_hat; +endchar; + +cmchar"Very Widest circumflex (hat) accent"; +beginchar(oct"134",42u#,1.1body_height#,0); +adjust_fit(0,0); +pickup crisp.nib; +pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w; +x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2]; +pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90); +filldraw stroke z1e--z2e--z3e; +penlabels(1,2,3); +%big_hat; +endchar; + +cmchar"Even wider tilde (squiggle) accent"; +beginchar(oct"135",34u#,1.1body_height#,0); +%big_tilde; +adjust_fit(0,0); pickup crisp.nib; +numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height)); +numeric mid_width; mid_width=.4[vair,stem]; +pos1(1.5vair,theta+80); pos2(2vair,theta+80); +pos3(2vair,theta+80); pos4(1.5vair,theta+80); +z2-z1=z4-z3 = (mid_width-crisp)*dir theta; +lft x1r=w-rt x4l=0; top y4r=h; +bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r); +pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta; +filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l +--z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; +penlabels(1,2,3,4); +endchar; + +cmchar"Very widest tilde (squiggle) accent"; +beginchar(oct"136",42u#,1.2body_height#,0); +%big_tilde; +adjust_fit(0,0); pickup crisp.nib; +numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height)); +numeric mid_width; mid_width=.4[vair,stem]; +pos1(1.5vair,theta+80); pos2(2vair,theta+80); +pos3(2vair,theta+80); pos4(1.5vair,theta+80); +z2-z1=z4-z3 = (mid_width-crisp)*dir theta; +lft x1r=w-rt x4l=0; top y4r=h; +bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r); +pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta; +filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l +--z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; +penlabels(1,2,3,4); +endchar; + +cmchar "Reversed turned F"; +beginchar(oct"140",10u#,asc_height#,0); +italcorr asc_height#*slant; +adjust_fit(0,0); pickup rule.nib; +lft x4=hround u-eps; x2=x3=x5=w-x4; x6=x4+.27w; +top y2=h; bot y4=0; y5=y6=.5[y2,y3]; y3=y4; +draw z2--z3--z4; % upper bar, stem, lower bar +draw z5--z6; % middle bar +labels(2,3,4,5,6); endchar; + +cmchar "The Reversed inverted letter G"; +beginchar(oct"141",12u#,cap_height#,0); + italcorr cap_height#*slant-.5u#; adjust_fit(0,0); + pickup rule.nib; + rt x1=hround(w-1.35u); x2=x4=.5w+u; + lft x3=hround max(u,2u-.5cap_curve); rt x5=hround(w-1.2u); + top y1=vround .93h+o; top y2=h+o; y3=.5h; + bot y4=-o; bot y5=vround .07h-o; + draw z1...{left}z2...{down}z3{down}...{right}z4...{up}z5; + z7=z5; x0=x7; top y0=1+vround .35[bar_height,x_height]; + draw z0--z7; % stem + z0=z9; y8=y9; lft x8=hround x4; + draw z8--z9; % bar + math_fit(-.3cap_height#*slant-.5u#,.5ic#); +picture rvchar; + rvchar=currentpicture reflectedabout((.5w,0),(.5w,h)); +currentpicture:= rvchar; +penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar; + +cmchar "Upsidedown, uppercase Greek Omega"; +beginchar(oct"146",13u#,cap_height#,0); +italcorr .75cap_height#*slant-.5u#; +adjust_fit(0,0); +pickup rule.nib; pos1(vair,90); pos2(vair,180); +pos3(vair,180); pos4(vair,0); pos5(vair,0); +x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2; +rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3; +filldraw stroke z3e{up}...{up}z2e + & pulled_super_arc.e(2,1)(.5superpull) + & pulled_super_arc.e(1,4)(.5superpull) + & z4e{down}...{down}z5e; % bowl +numeric arm_thickness; path p; p=z3{up}...{up}z2; +arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi); +pickup crisp.nib; +pos6(arm_thickness,-90); +pos7(arm_thickness,-180); +bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps; +(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x; +arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak +pos8(arm_thickness,-90); pos9(fudged.hair,0); +y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l; +arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak +%math_fit(0,.5ic#); +picture v; v:=currentpicture; +numeric t; t=h-d; +v:=v reflectedabout((0,0),(w,0)); +currentpicture:=v shifted(0,aspect_ratio*cap_height); +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "The letter Edh (Old English rune, like thorn)"; +% adapted from cm partial differential sign, vol E, p 233. +beginchar(oct"147",10u#,1.2asc_height#,0); +italcorr .7asc_height#*slant+.5curve#-1.5u#; +adjust_fit(0,0); +numeric top_thickness,bot_thickness,side_thickness,pull; +top_thickness=max(tiny.breadth,vround(slab-2vair_corr)); +bot_thickness=max(tiny.breadth,vround(slab-vair_corr)); +side_thickness=max(tiny.breadth,hround (slab-vair_corr)); +pull=min(.25,1.5superpull); +pickup fine.nib; pos2(top_thickness,90); +pos3(side_thickness,0); pos4(bot_thickness,-90); +pos5(side_thickness,-180); pos6(vair,-270); +lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness); +x4=x6+.1u=x2+u=.5w; +top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o; +y5=.5[y4,y6]; top y6=vround 5/8h+o; +path p; p=pulled_super_arc.l(3,4)(pull); +numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5))); +pos7(thin_join,0); z7l=point t of p; +(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]); +x2:=x5; x2l:=x2r:=x2; +filldraw stroke pulled_super_arc.e(2,3)(pull) + & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}} + & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}} + & z6e{right}...{direction t of p}z7e; % arc and bowl +%pos1(hair,180); pos0(flare,180); % commenting out the arc and bulb +%lft x0r=min(lft x2-eps,hround 1.2u); +%y0=vround min(.85h-.5flare,.8h+.5flare)+o; +%{{less_tense; bulb(2,1,0)}}; % arc and bulb +%math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#); +pickup pencircle xscaled 1.4rule_thickness yscaled .5rule_thickness; +x10=x11=x5; x12=x13=w-x10; y10=y13; +y10-y11=y12-y13=cap_stem; .5[y11,y10]=.5[y6,y2]; +%draw z10--z11--z12--z13; % cross piece +draw z11--z12; % linear cross piece +penlabels(2,3,4,5,6,7,10,11,12,,13); endchar; + +cmchar "Equal or similar symbol"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"150",14u#,v_center(2spread#+rule_thickness#)); +adjust_fit(0,0); +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +bot y1=bot y3=-d; top y2=top y4=y1+spread; +draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke +pickup rule.nib; +lft x5=hround u-eps; x6=w-x5; top y5=top y6=h; +draw z5--z6; +labels(1,2,3,4,5,6); endchar; + + +%% parameters for Hebrew letters Beth, Gimel, Dalet +numeric theta; theta=45; +cmchar "Hebrew letter Beth"; +beginchar(oct"151", 12u#, asc_height#, 0); +%currenttransform:=identity rotated -45 shifted (.75h, 0); +adjust_fit(0,0); +pickup rule.nib; +top y0=1.1h; lft x0=u; +pos1(cap_curve,90); x1=2.5u; y1r=h; +pos2(cap_curve,90); x2=w-x1; y2r=y1r; +rt x3=w-u; y2l-y3=y0-y1r; +x4=x3; +% now for the base. +pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta); +y11r=y12r=y4; y11l=0; +x12=u; x11=w-x12; +filldraw z0{down}..tension.8..z1l{right}..{right}z2l..{down}z3& +z3{up}..tension.8..z2r{left}..{left}z1r..z0..cycle; % top +pickup rule.nib; draw z3..z4; % down stroke at right of letter +filldraw stroke z11e{left}..{left}z12e; +penlabels(0,1,2,3,4,11,12); +endchar; + +cmchar "Hebrew letter Gimel"; +beginchar(oct"152", 8u#, asc_height#, 0); +%currenttransform:=identity rotated -45 shifted (.75h, 0); +adjust_fit(0,0); +pickup rule.nib; +top y0=1.1h; lft x0=u; +pos1(cap_curve,90); x1=2.5u; y1r=h; +pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r; +filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r + ..{left}z1r..z0..cycle; % top slab +z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c; +x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve; +y5:=.5y5; % reset y5 +path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical +filldraw p&q&cycle; +% now for the base. +pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta); +pos13(cap_curve/cosd theta, theta); y13=y12; x13=w; + % z13 is a dummy point for getting intersection +y11r=y12r; y11l=0; +x12=u; +z10=p intersectionpoint (z12r--z13r); z11r=z10; +filldraw stroke z11e{left}..{left}z12e; +penlabels(0,1,2,3,3c,4,5,11,12); +endchar; + +cmchar "Hebrew letter Daleth"; +beginchar(oct"153", 12u#, asc_height#, 0); +%currenttransform:=identity rotated -45 shifted (.75h, 0); +adjust_fit(0,0); +pickup rule.nib; +top y0=1.1h; lft x0=u; +pos1(cap_curve,90); x1=2.5u; y1r=h; +pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r; +filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r + ..{left}z1r..z0..cycle; % top slab +z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c; +x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve; +y5:=.5y5; % reset y5 +path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical +filldraw p&q&cycle; +penlabels(0,1,2,3,3c,4,5); +endchar; + +cmchar "Dotted less than sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"154",14u#,v_center(spread#+rule_thickness#)); +italcorr h#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3; % diagonals +y4=y2; x4=.75[x2, x1]; z5=z4; +pos4(dot_size,0); pos5(dot_size,90); dot(4,5); +labels(1,2,3,4,5); endchar; + +cmchar "Dotted greater than sign"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"155",14u#,v_center(spread#+rule_thickness#)); +italcorr math_axis#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3; % diagonals +y4=y2; x4=.75[x2, x1]; z5=z4; +pos4(dot_size,0); pos5(dot_size,90); dot(4,5); +labels(1,2,3,4,5); endchar; + +cmchar "Times operator with left vertical"; +beginarithchar(oct"156"); pickup rule.nib; +x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h]; +x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4; +draw z1--z2; draw z3--z4; % diagonals +draw z1--z4; +labels(1,2,3,4); endchar; + +cmchar "Times operator with right vertical"; +beginarithchar(oct"157"); pickup rule.nib; +x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h]; +x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4; +draw z1--z2; draw z3--z4; % diagonals +draw z2--z3; +labels(1,2,3,4); endchar; + +cmchar "Cute vertical bar"; +beginchar(oct"160",4u#,6u#+math_axis#,6u#-math_axis#); +italcorr math_axis#*slant - .5u#; +adjust_fit(0,0); pickup rule.nib; +x1=x2=hround(w/2); top y1=x_height; bot y2=-o; +draw z1--z2; +labels(1,2); endchar; + +cmchar "Two cute vertical bars"; +beginchar(oct"161",7u#,6u#+math_axis#,6u#-math_axis#); +italcorr math_axis#*slant - .5u#; +adjust_fit(0,0); pickup rule.nib; +lft x1=u; x2=x1; top y1=x_height; bot y2=-o; +x3=w-x1; x4=x3; y3=y1; y4=y2; +draw z1--z2; draw z3--z4; +labels(1,2,3,4); endchar; + +cmchar "Integer division (reverse quotient) symbol"; +beginarithchar(oct"162"); +adjust_fit(0,0); pickup rule.nib; +bot y1 =-d-eps; .5[y1,y2]=math_axis; +lft x2 = 0+eps= x0; % rt x2=; +z0-z2=(z1-z2) rotated -45; +draw z1--z2; +labels(1,2,3,4); endchar; + + +cmchar "Thick similarity sign";% taken from symbol.mf +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"163",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); +pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +bot y1=bot y3=-d; top y2=top y4=h; +draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke +labels(1,2,3,4); endchar; + + +cmchar "Approximate equality sign"; % taken fron symbol.mf +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(.54x_height#,.66x_height#); +beginchar(oct"164",14u#,v_center(spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); +pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +y1=y3; top y2=top y4=h; top y2-bot y1=spread'; +draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke +z1-z5=z2-z6=z3-z7=z4-z8=(0,spread); +draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Approximate equality plus lower bar sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(.54x_height#,.66x_height#); +beginchar(oct"165",14u#,v_center(2spread#'+spread#+rule_thickness#)); +adjust_fit(0,0); +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +y1=y3; top y2=top y4=h; top y2-bot y1=spread'; +draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke +z1-z5=z2-z6=z3-z7=z4-z8=(0,spread); +draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke +y9=y10; x9=x1; x10=x8; y5-y9=spread'; +pickup rule.nib; draw z9--z10; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + + +cmchar "Follows with approximate equality sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(.54 x_height#,.66 x_height#); +spread#'':=spread#; spread'':=spread; % the spread of `$=$' +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"166",14u#,v_center(2spread#''+spread#+2rule_thickness#)); +adjust_fit(0,0); +% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot) +pickup rule.nib; +lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9; +y9-y11=spread; top y9=h; y10=.5[y11, y9]; +draw z9{u,-spread}...{right}z10; +draw z11{u,spread}...{right}z10; +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +top y1=top y3=bot y11-spread''; top y2=top y4=bot y1+spread'; +z1-z5=z2-z6=z3-z7=z4-z8=(0,spread''); +draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke +draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke +labels(1,2,3,4,5,6,7,8,9,10,11); endchar; + +cmchar "Precedes with approximate equality sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(.54x_height#,.66x_height#); +spread#'':=spread#; spread'':=spread; % the spread of `$=$' +compute_spread(1.111 x_height#,1.333 x_height#); +beginchar(oct"167",14u#,v_center(spread#+2spread#''+2rule_thickness#)); +adjust_fit(0,0); +% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot) +pickup rule.nib; +x9=x11=w-x10; lft x10=hround 1.5u-eps; +y9-y11=spread; top y9=h; y10=.5[y11, y9]; +draw z9{-u,-spread}...{left}z10; +draw z11{-u,spread}...{left}z10; +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1; +top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread'; +z1-z5=z2-z6=z3-z7=z4-z8=(0,spread''); +draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke +draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke +labels(1,2,3,4,5,6,7,8,9,10,11); endchar; + +cmchar "Arch with left downward arrowhead"; +beginchar(oct"170",18u#,x_height#,0); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,0); pos2(rule_thickness,0); +pos3(bar,90); pos4(bar,90); +lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h; +x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps; +y3=y4=y0+.24asc_height+eps; +pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p; +for i=0 upto 6: x[i]:=x[i]-5.5u; x[i]l:=x[i]l-5.5u; x[i]r:=x[i]r-5.5u; endfor +x9:=x9-5.5u; +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead +% arch represented by z2, z11 (top) z12 +rt x12=w-1u; bot y12=y0; top y11=h+o; x11=.5[x2, x12]; +pickup rule.nib; draw z2{up}...{right}z11...{down}z12; +penlabels(0,1,2,3,4,5,6,9,11,12); endchar; + +cmchar "Arch with right downward arrowhead"; +beginchar(oct"171",18u#,x_height#,0); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,0); pos2(rule_thickness,0); +pos3(bar,90); pos4(bar,90); +lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h; +x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps; +y3=y4=y0+.24asc_height+eps; +pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t; path p; p=z4r{z9-z4}..z6r; +t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p; +for i=0 upto 6: x[i]:=x[i]+5.5u; x[i]l:=x[i]l+5.5u; x[i]r:=x[i]r+5.5u; endfor +x9:=x9+5.5u; +filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) + --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r) + --z3l{z9-z3}..z0 & cycle; % arrowhead +% arch represented by z2, z11 (top) z12 (right) +lft x12=u; bot y12=y0; top y11=h+o; x11=.5[x2, x12]; +pickup rule.nib; draw z2{up}...{left}z11...{down}z12; +penlabels(0,1,2,3,4,5,6,9,11,12); endchar; + +cmchar "Stylized F"; +beginarithchar(oct"172"); +pickup pencircle xscaled 2.5rule_thickness yscaled .5rule_thickness; +bot y1=-d; top y2=top y3=h+o; y4=y5=.5[y1, y2]; lft x1=u; x3=w-x1; +numeric t; t=4; % t=slope of thck stem +y2-y1=t*(x2-x1); +z4=whatever[z1, z2]; x5-x4=.6(x3-x2); +draw z1--z2--z3; draw z4--z5; +penlabels(1,2,3,4,5); endchar; + +transform tt; tt:=currenttransform; +currenttransform:=tt slanted 1/4; +cmchar "Lowercase variation of Greek kappa"; +% will use same dimensions as standard Greek lowercase kappa +% see vol E, p 155. +beginchar(oct"173", 12u#, x_height#, 0); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(0,0); pickup rule.nib; +pos1(stem,0); pos2(stem,0);x1l=hround(2u-.5stem); x2r=w-x1l; +top y2+.3stem=h+oo; bot y1-.3stem=-oo; +filldraw z1l---z2l...z2r---z1r...cycle; +pickup crisp.nib; +pos3(hair,180); x3=lft x1l; y3=3/4h; pos4(stem,90); +top y4r+.15stem=h+oo; x4-x3=.05[x1,x2]; +pos4'(hair,0); y4'=y3; x4'=1/4[x1,x2]; +pos5(hair,90); z5=z1; +filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5&z5{z2-z1} +...super_arc.l(4',4)&super_arc.l(4,3)---cycle; % left arm +pos8(hair,-90); pos6(hair,0); +z8=z2; pos7(stem, -90); bot y7r-.15stem=-oo; x6-x7=x4-x3; +x6=w-x3; +pos7'(hair,180); y7'=y6; x7'=w-x4'; +y6=h-y3; +filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8&z8{z1-z2} +...super_arc.l(7',7)&super_arc.l(7,6)---cycle; % right arm +%filldraw z8{z1-z2}..z7l...{up}z6r---z6l{-u,-2u}...z7r..{z2-z1}z8---cycle; %right arm +penlabels(range 1 thru 8,4'); endchar; + +cmchar "H-bar symbol, slanted bar"; +beginchar(oct"175",9u#,1.25asc_height#,0); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(0,0); pickup tiny.nib; +pos1(stem,0); pos2(stem,0); x1=x2; +lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo; +filldraw circ_stroke z2e--z1e; % left stem +sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif +pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem); +x5=x4-.25u; ital_arch(2,3,4); % arch +x7=w; hook_out(5,6,7)(skewed); % closing hook +filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem +pickup light_rule.nib; +x8=x.a2; y8=.7h; x9=x4l; y9=7/8h; +draw z8--z9; +math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "H-bar symbol, vertical bar"; +beginchar(oct"176",9u#,1.20asc_height#,0); +italcorr 1/3x_height#*slant+.5hair#+.5u#; +adjust_fit(0,0); pickup tiny.nib; +pos1(stem,0); pos2(stem,0); x1=x2; +lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo; +filldraw circ_stroke z2e--z1e; % left stem +sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif +pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem); +x5=x4-.25u; ital_arch(2,3,4); % arch +x7=w; hook_out(5,6,7)(skewed); % closing hook +filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem +pickup light_rule.nib; +x8=x.a2; y8=y9=.81h; rt x9=x4l; draw z8--z9; +math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Reversed, reflected, lowercase Greek epsilon"; +beginchar(oct"177",8u#,x_height#,0); +italcorr x_height#*slant+.5hair#-2u#; +adjust_fit(0,0); pickup fine.nib; +pos0(bar,90); pos1(bar,90); pos2(curve,180); +pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90); +x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1]; +x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l; +top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo; +path p; p=z3r{right}...{up}z5; +numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p); +y4r=ypart point t of p; +filldraw circ_stroke z0e..pulled_arc.e(1,2) & pulled_arc.e(2,3) + ...z4e{direction t of p}; % arc +filldraw circ_stroke z6e--z7e; % bar +math_fit(-.3x_height#*slant+.5curve#-u#,ic#); +picture v; +v:=currentpicture; +v:=v reflectedabout((0,h*aspect_ratio/2),(w,h*aspect_ratio/2)); +v:=v reflectedabout((w/2,-d),(w/2,h)); +currentpicture:=v shifted (2u,0); +penlabels(0,1,2,3,4,5,6,7); endchar; + +currenttransform:=tt; %restore currenttrnasform + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lcmbsy8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lcmbsy8.mf new file mode 100644 index 00000000000..8dbf935fb1b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lcmbsy8.mf @@ -0,0 +1,98 @@ +% Computer Modern Bold Math Symbols 8 point for slides +% derived from the original by Knuth by Claudio Beccari (1999) +if unknown cmbase: input cmbase fi + +font_identifier:="LCMBSY"; font_size 8pt#; + +u#:=22/36pt#; % unit width +width_adj#:=3/36pt#; % width adjustment for certain characters +serif_fit#:=-12pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=200/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=90/36pt#; % height of crossbar in lowercase e +comma_depth#:=35/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=42/36pt#; % lowercase hairline breadth +stem#:=42/36pt#; % lowercase stem breadth +curve#:=42/36pt#; % lowercase curve breadth +ess#:=40/36pt#; % breadth in middle of lowercase s +flare#:=36/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=41/36pt#; % diameter of dots +cap_hair#:=42/36pt#; % uppercase hairline breadth +cap_stem#:=46/36pt#; % uppercase stem breadth +cap_curve#:=46/36pt#; % uppercase curve breadth +cap_ess#:=46/36pt#; % breadth in middle of uppercase s +rule_thickness#:=26/36pt#; % thickness of lines in math symbols + +dish#:=0/36pt#; % amount erased at top or bottom of serifs +bracket#:=00/36pt#; % vertical distance from serif base to tangent +jut#:=0/36pt#; % protrusion of lowercase serifs +cap_jut#:=0/36pt#; % protrusion of uppercase serifs +beak_jut#:=0/36pt#; % horizontal protrusion of beak serifs +beak#:=0/36pt#; % vertical protrusion of beak serifs +vair#:=22/36pt#; % vertical diameter of hairlines +notch_cut#:=48/36pt#; % maximum breadth above or below notches +bar#:=22/36pt#; % lowercase bar thickness +slab#:=24/36pt#; % serif and arm thickness +cap_bar#:=23/36pt#; % uppercase bar thickness +cap_band#:=30/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0/36pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=15/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.85; % factor applied to weights of heavy characters +math_spread:=.5; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/9; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +% the following font parameters are explained in {\sl The \TeX book}, Appendix G +subs:=6/8; % subscripts to 10pt will normally be in 7pt type +fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed + math_axis#+3.51rule_thickness#+36/36pt#+subs*desc_depth#, % num1 + math_axis#+1.51rule_thickness#+24/36pt#, % num2 + math_axis#+1.51rule_thickness#+38/36pt#, % num3 + -(math_axis#-3.51rule_thickness#-subs*fig_height#-98/36pt#), % denom1 + -(math_axis#-1.51rule_thickness#-subs*fig_height#-24/36pt#), % denom2 + 7.49pt#-subs*asc_height#, % sup1 + 6.99pt#-subs*asc_height#, % sup2 + 82/36pt#, % sup3 + 36/36pt#, % sub1 + 72/36pt#, % sub2 + subs*asc_height#-36/36pt#, % sup\_drop + 18/36pt#, % sub\_drop + 11.9pt#, % delim1 + 9.1pt#, % delim2 + math_axis#; % axis\_height + +boolean boldlsymbol; %In order to adjust math_spread when bold + +generate lmathsy % switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lcmex8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lcmex8.mf new file mode 100644 index 00000000000..0abf052518a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lcmex8.mf @@ -0,0 +1,92 @@ + +% Computer Modern Math Extension for slides fonts at 8 point +% Modification of original cmex9.mf by Knuth +% Claudio Beccari (1999) + +if unknown cmbase: input cmbase fi + +font_identifier:="LCMEX"; font_size 8pt#; + +u#:=20/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=190/36pt#; % height of numerals +x_height#:=150/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=80/36pt#; % height of crossbar in lowercase e +comma_depth#:=40/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=23/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=23/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=21/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=28/36pt#; % diameter of dots +cap_hair#:=23/36pt#; % uppercase hairline breadth +cap_stem#:=27/36pt#; % uppercase stem breadth +cap_curve#:=27/36pt#; % uppercase curve breadth +cap_ess#:=27/36pt#; % breadth in middle of uppercase s +rule_thickness#:=20/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=0pt#; % protrusion of lowercase serifs +cap_jut#:=0pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=0pt#; % vertical protrusion of beak serifs +vair#:=18/36pt#; % vertical diameter of hairlines +notch_cut#:=23/36pt#; % maximum breadth above or below notches +bar#:=18/36pt#; % lowercase bar thickness +slab#:=19/36pt#; % serif and arm thickness +cap_bar#:=19/36pt#; % uppercase bar thickness +cap_band#:=19/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=4/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.95; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/10; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +% the following font parameters are explained in {\sl The \TeX book}, Appendix G +fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed + rule_thickness#, % default\_rule\_thickness + 36/36pt#, % big\_op\_spacing1 + 54/36pt#, % big\_op\_spacing2 + 64.8/36pt#, % big\_op\_spacing3 + 196/36pt#, % big\_op\_spacing4 + 36/36pt#; % big\_op\_spacing5 + +generate lmathex; % switch to the driver file + +endinput; + + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lcmmi8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lcmmi8.mf new file mode 100644 index 00000000000..7808f7b4c1c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lcmmi8.mf @@ -0,0 +1,78 @@ +% Computer Modern Math Italic slides font at 8 point +% Modification of original cmmi8.mf by Knuth +% Claudio Beccari (1999) + +if unknown cmbase: input cmbase fi + +font_identifier:="LCMMI"; font_size 8pt#; + +u#:=20/36pt#; % unit width +width_adj#:=2/36pt#; % width adjustment for certain characters +serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=190/36pt#; % height of numerals +x_height#:=150/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=80/36pt#; % height of crossbar in lowercase e +comma_depth#:=40/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=23/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=23/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=21/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=28/36pt#; % diameter of dots +cap_hair#:=23/36pt#; % uppercase hairline breadth +cap_stem#:=27/36pt#; % uppercase stem breadth +cap_curve#:=27/36pt#; % uppercase curve breadth +cap_ess#:=27/36pt#; % breadth in middle of uppercase s +rule_thickness#:=20/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=0pt#; % protrusion of lowercase serifs +cap_jut#:=0pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=0pt#; % vertical protrusion of beak serifs +vair#:=18/36pt#; % vertical diameter of hairlines +notch_cut#:=23/36pt#; % maximum breadth above or below notches +bar#:=18/36pt#; % lowercase bar thickness +slab#:=19/36pt#; % serif and arm thickness +cap_bar#:=19/36pt#; % uppercase bar thickness +cap_band#:=19/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=4/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.95; % factor applied to weights of heavy characters +math_spread:=.4; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/10; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +generate lmathit % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lcmmib8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lcmmib8.mf new file mode 100644 index 00000000000..4db5273c180 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lcmmib8.mf @@ -0,0 +1,76 @@ +% Computer Modern Math Italic Bold 8 pt for slides +% derived from the original by Knuth by Claudio Beccari (1999) +if unknown cmbase: input cmbase fi + +font_identifier:="LCMMIB"; font_size 8pt#; + +u#:=22/36pt#; % unit width +width_adj#:=3/36pt#; % width adjustment for certain characters +serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=200/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=90/36pt#; % height of crossbar in lowercase e +comma_depth#:=35/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=42/36pt#; % lowercase hairline breadth +stem#:=42/36pt#; % lowercase stem breadth +curve#:=42/36pt#; % lowercase curve breadth +ess#:=40/36pt#; % breadth in middle of lowercase s +flare#:=36/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=41/36pt#; % diameter of dots +cap_hair#:=42/36pt#; % uppercase hairline breadth +cap_stem#:=46/36pt#; % uppercase stem breadth +cap_curve#:=46/36pt#; % uppercase curve breadth +cap_ess#:=46/36pt#; % breadth in middle of uppercase s +rule_thickness#:=26/36pt#; % thickness of lines in math symbols + +dish#:=0/36pt#; % amount erased at top or bottom of serifs +bracket#:=0/36pt#; % vertical distance from serif base to tangent +jut#:=0/36pt#; % protrusion of lowercase serifs +cap_jut#:=0/36pt#; % protrusion of uppercase serifs +beak_jut#:=0/36pt#; % horizontal protrusion of beak serifs +beak#:=0/36pt#; % vertical protrusion of beak serifs +vair#:=22/36pt#; % vertical diameter of hairlines +notch_cut#:=48/36pt#; % maximum breadth above or below notches +bar#:=22/36pt#; % lowercase bar thickness +slab#:=24/36pt#; % serif and arm thickness +cap_bar#:=23/36pt#; % uppercase bar thickness +cap_band#:=30/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0/36pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=15/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.85; % factor applied to weights of heavy characters +math_spread:=.5; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/9; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +generate lmathit % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lcmsy8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lcmsy8.mf new file mode 100644 index 00000000000..9033e5e904d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lcmsy8.mf @@ -0,0 +1,103 @@ + +% Computer Modern Math Symbols slide font at 8 pt +% Modification of original cmsy8.mf by Knuth +% Claudio Beccari (1999) + +if unknown cmbase: input cmbase fi + +font_identifier:="LCMSY"; +font_size 8pt#; + +u#:=20/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=190/36pt#; % height of numerals +x_height#:=150/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=80/36pt#; % height of crossbar in lowercase e +comma_depth#:=40/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=23/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=23/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=21/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=28/36pt#; % diameter of dots +cap_hair#:=23/36pt#; % uppercase hairline breadth +cap_stem#:=27/36pt#; % uppercase stem breadth +cap_curve#:=27/36pt#; % uppercase curve breadth +cap_ess#:=27/36pt#; % breadth in middle of uppercase s +rule_thickness#:=20/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=0pt#; % protrusion of lowercase serifs +cap_jut#:=0pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=0pt#; % vertical protrusion of beak serifs +vair#:=18/36pt#; % vertical diameter of hairlines +notch_cut#:=23/36pt#; % maximum breadth above or below notches +bar#:=18/36pt#; % lowercase bar thickness +slab#:=19/36pt#; % serif and arm thickness +cap_bar#:=19/36pt#; % uppercase bar thickness +cap_band#:=19/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=4/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.95; % factor applied to weights of heavy characters +math_spread:=.4; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/10; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +% the following font parameters are explained in {\sl The \TeX book}, Appendix G +subs:=6/8; % subscripts to 8pt will normally be in 6pt type +rth#:=.4pt#; % assume that rules will come from cmex10 +fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed + math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1 + math_axis#+1.51rth#+24/36pt#, % num2 + math_axis#+1.51rth#+38/36pt#, % num3 + -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1 + -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2 + 7.49pt#-subs*asc_height#, % sup1 + 6.99pt#-subs*asc_height#, % sup2 + 82/36pt#, % sup3 + 36/36pt#, % sub1 + 72/36pt#, % sub2 + subs*asc_height#-36/36pt#, % sup\_drop + 18/36pt#, % sub\_drop + 11.9pt#, % delim1 + 9.1pt#, % delim2 + math_axis#; % axis\_height + +generate lmathsy; % switch to the driver file + +endinput; + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/leclb8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/leclb8.mf new file mode 100644 index 00000000000..5d5f8d5b349 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/leclb8.mf @@ -0,0 +1,90 @@ +% leclb8.mf +% +% The original file eclb8.mf is +% (c) Copyright 1996, 1997 J"org Knappen +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Content: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation Bold +% (SliTeX font with special capital I and special l with hook) +% +if unknown exbase: input exbase fi + +font_identifier:="LECSSQB"; +font_size 8pt#; +u#:=22/36pt#; +width_adj#:=3/36pt#; +serif_fit#:= -12/36pt#; +cap_serif_fit#:= -15/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=200/36pt#; +x_height#:=155/36pt#; +math_axis#:=80/36pt#; +bar_height#:=85/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=42/36pt#; +stem#:=42/36pt#; +curve#:=42/36pt#; +ess#:=40/36pt#; +flare#:=36/36pt#; +dot_size#:=41/36pt#; +cap_hair#:=42/36pt#; +cap_stem#:=46/36pt#; +cap_curve#:=46/36pt#; +cap_ess#:=46/36pt#; +rule_thickness#:=26/36pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=22/36pt#; +notch_cut#:=48/36pt#; +bar#:=22/36pt#; +slab#:=24/36pt#; +cap_bar#:=23/36pt#; +cap_band#:=30/36pt#; +cap_notch_cut#:=42/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=1/36pt#; +apex_corr#:=15/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=0; +fudge:=.85; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/9; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate lexroman; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lecli8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lecli8.mf new file mode 100644 index 00000000000..20db266f8de --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lecli8.mf @@ -0,0 +1,91 @@ +% lecli8.mf +% +% The original file ecli8.mf is +% (c) Copyright 1995, 1996, 1997 J"org Knappen +% (c) Copyright 1990, 1992 Norbert Schwarz +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Content: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation Inclined +% (SliTeX font with special capital I and special l with hook) +% +if unknown exbase: input exbase fi + +font_identifier:="LLECSSQI"; +font_size 8pt#; +u#:=20/36pt#; +width_adj#:=2/36pt#; +serif_fit#:= -10/36pt#; +cap_serif_fit#:= -14/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=190/36pt#; +x_height#:=150/36pt#; +math_axis#:=80/36pt#; +bar_height#:=80/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=23/36pt#; +stem#:=23/36pt#; +curve#:=23/36pt#; +ess#:=23/36pt#; +flare#:=21/36pt#; +dot_size#:=28/36pt#; +cap_hair#:=23/36pt#; +cap_stem#:=27/36pt#; +cap_curve#:=27/36pt#; +cap_ess#:=27/36pt#; +rule_thickness#:=.55555pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=18/36pt#; +notch_cut#:=23/36pt#; +bar#:=18/36pt#; +slab#:=19/36pt#; +cap_bar#:=19/36pt#; +cap_band#:=19/36pt#; +cap_notch_cut#:=23/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=.5/36pt#; +apex_corr#:=4/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=sind 12/cosd 12; +fudge:=.95; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/10; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate lexroman; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/leclo8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/leclo8.mf new file mode 100644 index 00000000000..af645acd26e --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/leclo8.mf @@ -0,0 +1,90 @@ +% leclo8.mf +% +% The original file eclo8.mf is +% (c) Copyright 1996, 1997 J"org Knappen +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Content: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation Bold Oblique +% (SliTeX font with special capital I and special l with hook) +% +if unknown exbase: input exbase fi + +font_identifier:="LLECSSQBO"; +font_size 8pt#; +u#:=22/36pt#; +width_adj#:=3/36pt#; +serif_fit#:= -12/36pt#; +cap_serif_fit#:= -15/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=200/36pt#; +x_height#:=155/36pt#; +math_axis#:=80/36pt#; +bar_height#:=85/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=42/36pt#; +stem#:=42/36pt#; +curve#:=42/36pt#; +ess#:=40/36pt#; +flare#:=36/36pt#; +dot_size#:=41/36pt#; +cap_hair#:=42/36pt#; +cap_stem#:=46/36pt#; +cap_curve#:=46/36pt#; +cap_ess#:=46/36pt#; +rule_thickness#:=26/36pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=22/36pt#; +notch_cut#:=48/36pt#; +bar#:=22/36pt#; +slab#:=24/36pt#; +cap_bar#:=23/36pt#; +cap_band#:=30/36pt#; +cap_notch_cut#:=42/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=1/36pt#; +apex_corr#:=15/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=sind 12/cosd 12; +fudge:=.85; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/9; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate lexroman; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/leclq8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/leclq8.mf new file mode 100644 index 00000000000..dc6616ec58d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/leclq8.mf @@ -0,0 +1,91 @@ +% leclq8.mf +% +% The original file eclq8.mf is +% (c) Copyright 1995, 1996, 1997 J"org Knappen +% (c) Copyright 1990, 1992 Norbert Schwarz +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Contents: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation +% (SliTeX font with special capital I and special l with hook) +% +if unknown exbase: input exbase fi + +font_identifier:="LLECSSQ"; +font_size 8pt#; +u#:=20/36pt#; +width_adj#:=2/36pt#; +serif_fit#:= -10/36pt#; +cap_serif_fit#:= -14/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=190/36pt#; +x_height#:=150/36pt#; +math_axis#:=80/36pt#; +bar_height#:=80/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=23/36pt#; +stem#:=23/36pt#; +curve#:=23/36pt#; +ess#:=23/36pt#; +flare#:=21/36pt#; +dot_size#:=28/36pt#; +cap_hair#:=23/36pt#; +cap_stem#:=27/36pt#; +cap_curve#:=27/36pt#; +cap_ess#:=27/36pt#; +rule_thickness#:=.55555pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=18/36pt#; +notch_cut#:=23/36pt#; +bar#:=18/36pt#; +slab#:=19/36pt#; +cap_bar#:=19/36pt#; +cap_band#:=19/36pt#; +cap_notch_cut#:=23/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=.5/36pt#; +apex_corr#:=4/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=0; +fudge:=.95; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/10; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate lexroman; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lexroman.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lexroman.mf new file mode 100644 index 00000000000..b26244399d5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lexroman.mf @@ -0,0 +1,83 @@ +% lexroman.mf +% +% The original file exroman.mf is +% (c) Copyright 1995, 1996, 1997 J"org Knappen +% (c) Copyright 1990, 1992 Norbert Schwarz +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Content: +% +% driver file, called by parameter files with lslides style fonts +% Lslides fonts contain a modified version of gluph l; all glyphs +% containig l (l, fl, ffl, polish l, etc.) are redefined here and +% overright the origninal glyphs. +% +% dx r l west +% i u east +% : : : +% : : west '3xx / east '2xx +% : uppercase/lowercase +% roman / italic + +version_check(1,0); % |version_check| was introduced in dc1.3 + +input exaccess; % accessories for polish special letters +input expseudo; % pseudoparameters + +mode_setup; font_setup; pseudo_setup; + +input exruwest; +input exrlwest; +input exrueast; +input exrleast; +% +input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) +input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) +% +input exaccent; % +input exsign; % zero for mille, " # $ % @ pound sign +% +input exrlig; % dotless i,j; letter ligatures ff fi fl ffi ffl +% +input exromp; % (roman punctuation) & ? (spanish ?) +% +input exrulett; % upper case (majuscules) +input exrllett; % lower case (minuscules) +input exrdigit; % roman digits +% +input lexslides; % lslides modifications +% +% Fontparameter +% +font_coding_scheme:="Extended TeX Font Encoding - Latin"; +boundarychar:=oct"027"; +font_slant slant; +font_x_height x_height#; +font_cap_height cap_height#; +font_asc_height asc_height#; +font_acc_cap_height (cap_height#+acc_height#); +font_desc_depth desc_depth#; +font_max_height (max(asc_height#,body_height#, + cap_height#+acc_height#)); +font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#)); +% font_digit_width % set inside the digits file +% font_cap_stem % set after the programme of the capital I +font_baselineskip max(1.2*designsize,body_height#+paren_depth#); + +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; + input exmligtb; % do the ligature programs for monospaced fonts +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + input exrligtb; % do the ligature programs, not for monospaced fonts +fi +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lexslides.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lexslides.mf new file mode 100644 index 00000000000..62e3fbedfcb --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lexslides.mf @@ -0,0 +1,203 @@ +% lexslides +% +% (c) Copyright 2002/07/13 Claudio Beccari +% +% Contains the redefinition of all slides glyphs containing l +% so as to modify it with a hook. +% The overall definitions are copied and modified from several +% ex* Metafont files with the ec fonts, copyright by Schwarz and Knappen +% in compliance with their copyright notice. +% This file is being invoked by lexroman.mf, a modied version of +% Schwarz and Knappen exroman.mf, wich in turn is being called by the +% driver files of the various modified slides fonts. +% + + + +ecchar "The letter l with hook for slides";% jk,cb +beginchar("l",5u#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,u#); +numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); +pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180); +lft x2r=lft x3r=hround(2u-.5shaved_stem); +y3=max(.5bar_height,2vair); + pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0); + rt x1r=fine.rt x2l; top y1=h; + penpos2'(x1r-x1l,0); x2'=x1; y2'=y2=x_height; + filldraw stroke z1e--z2'e; % upper terminal + pickup fine.nib; interim superness:=more_super; + pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u)+1.6u; + pos5(vair,-75); top y5l=vround .2[top y4l,bar_height]; + x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair; + filldraw stroke z2e..super_arc.e(3,4); % stem and hook + path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal + if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0): + filldraw stroke z4e{right}...{up}z5e; + else: filldraw p; fi +penlabels(1,2,3,4,5); endchar; + + +ecchar "The letter l with hook for slides with acute"; % jk,cb +beginchar_twice(oct"250",5u#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,u#); +numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); +pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180); +lft x2r=lft x3r=hround(2u-.5shaved_stem); +y3=max(.5bar_height,2vair); + pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0); + rt x1r=fine.rt x2l; top y1=h; + penpos2'(x1r-x1l,0); x2'=x1; y2'=y2=x_height; + filldraw stroke z1e--z2'e; % upper terminal + pickup fine.nib; interim superness:=more_super; + pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u)+1.6u; + pos5(vair,-75); top y5l=vround .2[top y4l,bar_height]; + x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair; + filldraw stroke z2e..super_arc.e(3,4); % stem and hook + path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal + if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0): + filldraw stroke z4e{right}...{up}z5e; + else: filldraw p; fi +put_accent; +repeat_once; +penlabels(1,2,3,4,5); endchar; + +ecchar "The letter l with hook for slides with hachek"; % from csotherl.mf (csfonts),cb +beginchar(oct"251",5u#,lc_acute_height#,0); l_width#:=5u#+2serif_fit#; +italcorr lc_acute_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,u#); +numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); +pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180); +lft x2r=lft x3r=hround(2u-.5shaved_stem); +y3=max(.5bar_height,2vair); + pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0); + rt x1r=fine.rt x2l; top y1=h; + penpos2'(x1r-x1l,0); x2'=x1; y2'=y2=x_height; + filldraw stroke z1e--z2'e; % upper terminal + pickup fine.nib; interim superness:=more_super; + pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u)+1.6u; + pos5(vair,-75); top y5l=vround .2[top y4l,bar_height]; + x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair; + filldraw stroke z2e..super_arc.e(3,4); % stem and hook + path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal + if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0): + filldraw stroke z4e{right}...{up}z5e; + else: filldraw p; fi +penlabels(1,2,3,4,5); +dtl_hachek(x1r+u+.5pdot_diam)(y1); +endchar; + +ecchar "The letter crossed l with hook for slides"; % from pl_ml (plfonts),cb +beginchar_twice(oct"252",5u#,asc_height#,0); + italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; + charwd_:=charwd; +numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); +pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180); +lft x2r=lft x3r=hround(2u-.5shaved_stem); +y3=max(.5bar_height,2vair); + pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0); + rt x1r=fine.rt x2l; top y1=h; + penpos2'(x1r-x1l,0); x2'=x1; y2'=y2=x_height; + filldraw stroke z1e--z2'e; % upper terminal + pickup fine.nib; interim superness:=more_super; + pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u)+1.6u; + pos5(vair,-75); top y5l=vround .2[top y4l,bar_height]; + x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair; + filldraw stroke z2e..super_arc.e(3,4); % stem and hook + path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal + if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0): + filldraw stroke z4e{right}...{up}z5e; + else: filldraw p; fi + penlabels(1,2,3,4,5); + numeric unbalance; + unbalance=1.1; + numeric cross_fit#; + cross_fit#=serif_fit#+if is_bold: 1.5 else: 1.25 fi\\ u#; + charwd:=charwd_; + adjust_fit(cross_fit#,u#); + numeric l_jut; +l_jut=.5stem+ 1.7u; +put_cross(l_jut,unbalance*l_jut); +repeat_once; +endchar; + + +ecchar "The ligature fl"; +beginchar(oct"035",10u#+2letter_fit#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,u#); +% This is the "f" +pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem'); +pickup fine.nib; numeric bulb_diam, inner_jut; + pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; +f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif +pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1; +pos3(bar,90); pos4(bar,90); +rt x4= hround 5.3u; +pickup crisp.nib; filldraw stroke z3e--z4e; % bar +% This is the "l" drawn to the right of the "f" +numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); +pickup fine.nib; pos12(shaved_stem,180);pos13(shaved_stem,180); +lft x12r=lft x13r=hround(rt x4 + if is_bold: .5shaved_stem else: 1.3u fi); +y13=max(.5bar_height,2vair); + pickup tiny.nib; pos11(hround(shaved_stem-stem_corr),0); + rt x11r=fine.rt x12l; top y11=h; + penpos12'(x11r-x11l,0); x12'=x11; y12'=y12=x_height; + filldraw stroke z11e--z12'e; % upper terminal + pickup fine.nib; interim superness:=more_super; + pos14(vair',-90); bot y14r=-oo; rt x15r=hround(w-u)+1.6u; + pos15(vair,-75); top y15l=vround .2[top y14l,bar_height]; + x15l:=good.x x15l; x14l=1/3[x13l,x15l]; x14r:=1/3[x13r,x15r]; y13l:=y13l+.2vair; + filldraw stroke z12e..super_arc.e(13,14); % stem and hook + path p; p=stroke z14e{right}..tension .9 and atleast 1..z15e; % terminal + if (xpart(z15l-precontrol 1 of p)<0) or (xpart(z15r-postcontrol 2 of p)<0): + filldraw stroke z14e{right}...{up}z15e; + else: filldraw p; fi +penlabels(1,2,3,4,11,12,13,14,15); endchar; + +ecchar "The ligature ffl"; +beginchar(oct"037",15u#+4letter_fit#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,u#); +% These are the two "f" +pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem'); +pos11(stem',0); lft x11l=hround(.5w-.5stem'); +pickup fine.nib; numeric bulb_diam, inner_jut; +if serifs: bulb_diam=hround .8[stem,flare]; + pos2(bulb_diam,0); x2r=x11r-stem_corr; + pos12(bulb_diam,0); x12r=x21r-stem_corr; + y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo]; + sloped_serif.l(21,22,g,1/3,eps,max(serif_drop,oo)); % erase excess at top + if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut; + else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi +else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u; + pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); fi +f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif +f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto +pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1; +pos3(bar,90); pos4(bar,90); +rt x4=hround(.5w+2.8u); +if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3; + pos4'(bar,90); x4'=x11; y4'=y4; + filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars +else: filldraw stroke z3e--z4e; fi % bar +% This is the "l" drawn to the right of the second "f" +numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); +pickup fine.nib; pos22(shaved_stem,180);pos23(shaved_stem,180); +lft x22r=lft x23r=hround(rt x4 + if is_bold: .5shaved_stem else: 1.3u fi); +y23=max(.5bar_height,2vair); + pickup tiny.nib; pos21(hround(shaved_stem-stem_corr),0); + rt x21r=fine.rt x22l; top y21=h; + penpos22'(x21r-x21l,0); x22'=x21; y22'=y22=x_height; + filldraw stroke z21e--z22'e; % upper terminal + pickup fine.nib; interim superness:=more_super; + pos24(vair',-90); bot y24r=-oo; rt x25r=hround(w-u)+1.6u; + pos25(vair,-75); top y25l=vround .2[top y24l,bar_height]; + x25l:=good.x x25l; x24l=1/3[x23l,x25l]; x24r:=1/3[x23r,x25r]; y23l:=y23l+.2vair; + filldraw stroke z22e..super_arc.e(23,24); % stem and hook + path p; p=stroke z24e{right}..tension .9 and atleast 1..z25e; % terminal + if (xpart(z25l-precontrol 1 of p)<0) or (xpart(z25r-postcontrol 2 of p)<0): + filldraw stroke z24e{right}...{up}z25e; + else: filldraw p; fi +penlabels(1,2,3,4,11,12,21,22,23,24,25); endchar; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/llasy.mf b/Master/texmf-dist/fonts/source/public/lxfonts/llasy.mf new file mode 100644 index 00000000000..a5a90dd0524 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/llasy.mf @@ -0,0 +1,375 @@ +font_identifier:="LASY"; +font_coding_scheme:="LaTeX symbols"; + +% Here we steal a bit from mathsy + +mode_setup; font_setup; +autorounding:=0; + +font_slant slant; font_x_height x_height#; +font_quad 18u# if not monospace:+4letter_fit# fi; +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; + +cmchar "Leftward arrowhead"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"050",6u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +pos3(bar,0); pos4(bar,0); +y0=math_axis; lft x0=hround u; +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t[]; path p[]; +(t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r); +z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r); +filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r) + --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; + % arrowhead +penlabels(0,3,4,5,6,9,10); endchar; + +% This character is an alteration of the leftward arrow +% The tip of the arrowhead rests one unit from left edge, same as left arrow +% Changes: +% 1) deletion of the stem ... points z1,z2 etc +% The rest of the numbers stay the same, for any referencing +% 2) new intersectinpoint z10 is introduced and path slightly altered +% 3) name, code number and width changed, otherwise essentially the same + + + +cmchar "Rightward arrowhead"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"051",6u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +pos3(bar,0); pos4(bar,0); +y0=math_axis; rt x0=hround(w-u); +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t[]; path p[]; +(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r); +z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r); +filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r) + --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; + % arrowhead +penlabels(0,3,4,5,6,9,10); endchar; + +% This character is an alteration of the rightward arrow +% The tip of the arrowhead rests one unit from right edge, same as right arrow +% Changes: +% 1) deletion of the stem ... points z1,z2 etc +% The rest of the numbers stay the same, for any referencing +% 2) new intersectinpoint z10 is introduced and path slightly altered +% 3) name, code number and width changed, otherwise essentially the same + + + +cmchar "Upward arrowhead"; +beginchar(oct"052",9u#,asc_height#,asc_depth#); +italcorr .76asc_height#*slant+.5crisp#-u#; +adjust_fit(0,0); pickup crisp.nib; +pos3(bar,90); pos4(bar,90); +top z0=(.5w,0); x0-x3=x4-x0=3u+eps; +y3=y4=y0-.24asc_height-eps; +pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t[]; path p[]; +(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r); +z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r); +filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r) + --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; + % arrowhead +penlabels(0,3,4,5,6,9,10); endchar; + +% This character is an alteration of the upward arrow +% The tip of the arrowhead rests on the baseline for reference +% Changes: +% 1) deletion of the stem ... points z1,z2 etc +% The rest of the numbers stay the same, for any referencing +% 2) point z0 is moved down from the ascender line; the tip touches +% the baseline +% 3) new intersectinpoint z10 is introduced and path slightly altered +% 4) name and code number changed, otherwise essentially the same + + + +cmchar "Downward arrowhead"; +beginchar(oct"053",9u#,asc_height#,asc_depth#); +adjust_fit(0,0); pickup crisp.nib; +pos3(bar,90); pos4(bar,90); +bot z0=(.5w,0); x0-x3=x4-x0=3u+eps; +y3=y4=y0+.24asc_height+eps; +pos5(bar,angle(z4-z0)); z5l=z0; +pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; % z9 iintroduces curve to arrowhead +numeric t[]; path p[]; % rather direction{z9-z4} does this +(t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r); +z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r); +filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r) + --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; + % arrowhead +penlabels(0,3,4,5,6,9,10); endchar; + +% This character is an alteration of the downward arrow +% The tip of the arrowhead rests on the baseline for reference +% Changes: +% 1) deletion of the stem ... points z1,z2 etc +% The rest of the numbers stay the same, for any referencing +% 2) point z0 is moved up from the descender line to rest on the baseline +% 3) new intersectinpoint z10 is introduced and path slightly altered +% 4) name and code number changed, otherwise essentially the same + + + +cmchar "Square subset sign"; +compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$' +beginchar(oct"074",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +lft x2=hround(1.5u+oo); x1=x4=hround(w-1.5u)+eps; x3=x2; +y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread; +draw z1--z2--z3--z4; % bars and stem +labels(1,2,3,4); endchar; + +% This character is an alteration of the square subset or equal to sign +% Changes: +% 1) changed position of y1 to be .5 of the spread above the math_axis +% 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount +% which was used in calculations for the lower bar +% 3) name and code number and height changed, otherwise essentially the same + + + +cmchar "Square superset sign"; +compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$' +beginchar(oct"075",14u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +x1=x4=hround 1.5u-eps; rt x2=hround(w-1.5u-oo); x3=x2; +y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread; +draw z1--z2--z3--z4; % bars and stem +labels(1,2,3,4); endchar; + +% This character is an alteration of the square superset or equal to sign +% Changes: +% 1) changed position of y1 to be .5 of the spread above the math_axis +% 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount +% which was used in calculations for the lower bar +% 3) name and code number and height changed, otherwise essentially the same + + + +cmchar "Diamond"; +beginchar(oct"063",2(.85asc_height#-math_axis#)+2u#,v_center(7u#)); +italcorr math_axis#*slant; +adjust_fit(0,0); pickup rule.nib; +numeric a; a=.85asc_height-math_axis; +x4=x8=good.x .5w; w:=r:=2x4; rt x2=w-lft x6=good.x(x4+a); +y2=y6=.5[y4,y8]=.5cap_height; top y8=good.y(y2+a); +draw z2--z4--z6--z8--cycle; +labels(2,4,6,8); endchar; + +% This character is an alteration of the diamond operator +% The four tips are equidistant from the center point (.5w,math_axis), +% this distance being half of the cap height +% and related to that in the square character +% slightly less though, since it looks too big if the actually have same +% length +% Changes: +% 1) To the amount a, which gives the distance of the tips from the center +% 2) The width is related to the asc_height, so it changes with it +% 3) name and code number and width changed, otherwise essentially the same +% The numbers stay the same, for any referencing + + + +cmchar "Square"; +beginchar(oct"062",2.1math_axis#+4u#,v_center(7u#)); +italcorr math_axis#*slant; +adjust_fit(0,0); pickup rule.nib; +numeric a; a=round(2.1math_axis); +x1=x4=good.x 2u; x2=x3=x1+a; +y3=y4=.5(cap_height-a); y1=y2=y3+a; +draw z1--z2--z3--z4--cycle; +labels(1,2,3,4); endchar; + +% The size of this character is related to the diamond character, it's +% sightly larger. +% It is NOT the diamond character which has been rotated +% Vertical alignment raised to .5 cap height from math-axis height +% 2 units of sidebearing space on each side, since vertical lines usually +% need a little more space, actually it's 2 units-.5rule.nib + + + +cmchar "Bowtie operator"; +beginchar(oct"061",13u#,v_center(7u#)); +italcorr math_axis#*slant; +adjust_fit(0,0); pickup rule.nib; +numeric a; a=round(1.1*math_axis); +x1=x4=good.x 1.5u; x2=x3=w-x1; +y1=y2=good.y(.5(cap_height-2a)); y3=y4=y1+2a; +draw z1--z3--z2--z4--cycle; +labels(1,2,3,4); endchar; + +% Arbitrary width given +% Length of the bars at the edges are 2.2*math_axis length +% and it's vertically aligned on the high, i.e., .5 cap height as opposed +% to being aligned on the math axis + + + +cmchar "Upside-down Uppercase Greek Omega"; +beginchar(oct"060",13u#,cap_height#,0); +italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#; +adjust_fit(0,0); +pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0); +pos3(vair,0); pos4(cap_curve,180); pos5(vair,180); +x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4; +rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5; +filldraw stroke z3e{down}...{down}z2e + & pulled_super_arc.e(2,1)(.5superpull) + & pulled_super_arc.e(1,4)(.5superpull) + & z4e{up}...{up}z5e; % bowl +numeric arm_thickness; path p; p=z3{down}...{down}z2; +arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi); +pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0); +top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps; +%(x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x; +arm(6,7,a,0,.5u); % right arm and beak +pos8(arm_thickness,90); pos9(fudged.hair,180); +y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l; +arm(8,9,b,0,-.5u); % left arm and beak +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; + +% This character is taken from the Upper Case Omega of cmr +% Directions and reference points are reversed and flipped +% pos angles are flipped by 180 degrees +% vertical values are reversed, up/down directions in the +% filldraw stroke are reversed +% left strokes same, but changes reference points +% italic correction based on furthest pont of character , so made it +% full cap_height minus amount for the beak, taken from the cap XI +% I suppose a transformation of paths would have worked also, but this +% way, limits are maintained better, i think +% w+h instead of just w in intersection to make sure paths do intersect + + + +cmchar "Leads to character extension"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"072",12u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; +numeric a; a=round(.45math_axis); +y11=y13=y15=math_axis; y12-a=y14+a=good.y math_axis; +x11=0; x15=w; x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15]; +path p; p=z12{right}...z13...z14{right}; +draw z11{dir(-angle direction 1 of p)}...z12{right}...z13... + z14{right}...z15{dir(-angle direction 1 of p)}; +penlabels(11,12,13,14,15); endchar; + +% This character is an extension to fit with the Leads to character with +% arrowhead +% This character goes from edge to edge and a series of these can be linked +% as desired. +% It has 2/3 the width of that character, and if this relation is kept, the +% the curves should all match + + + +cmchar "Leads to character with arrowhead"; +compute_spread(.45x_height#,.55x_height#); +beginchar(oct"073",18u#,v_center(spread#+rule_thickness#)); +adjust_fit(0,0); pickup crisp.nib; +pos3(bar,0); pos4(bar,0); +y0=math_axis; rt x0=hround(w-u); +y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps; +pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; +z9=.381966[.5[z3,z4],z0]; +numeric t[]; path p[]; +(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r); +z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r); +filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r) + --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; + % arrowhead +pickup rule.nib; +numeric a; a=round(.45math_axis); +y11=y13=y15=y16=y0; y12-a=y14+a=good.y math_axis; +x11=0; x15=2/3w; z17=lft z10; +x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15]; x16=.3[x15,x0]; +path p; p=z12{right}...z13...z14{right}; +draw z11{dir(-angle direction 1 of p)}... + z12{right}...z13...z14{right}...z16{right}...z17; +penlabels(0,3,4,5,6,9,10,11,12,13,14,15,16); endchar; + +% This character uses the rightward arrow arrowhead +% The width is the same as that of the regular arrow +% An extension character can be added for longer squiggles + + +cmchar "LASY \lhd triangle"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"001",14u#,v_center(spread#+rule_thickness#)); +italcorr h#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3--cycle; % triangle +labels(1,2,3); endchar; + +% taken directly from CMR "less than" character +% the path was closed to make a triangle + + + +cmchar "LASY \unlhd triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"002",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +lft x2=hround 1.5u-eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3--cycle; % triangle +x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar +labels(1,2,3,8,9); endchar; + +% taken directly from CMR "less than or equal to sign" +% the "less than" path was closed to make a triangle + + + +cmchar "LASY \rhd triangle"; +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"003",14u#,v_center(spread#+rule_thickness#)); +italcorr math_axis#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; +y1-y3=spread; y2=.5[y1,y3]=math_axis; +draw z1--z2--z3--cycle; % triangle +labels(1,2,3); endchar; + +% taken directly from CMR "greater than" character +% the path was closed to make a triangle + + + +cmchar "LASY \unrhd triangle"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(5/4x_height#,3/2x_height#); +beginchar(oct"004",14u#,v_center(spread#'+spread#+rule_thickness#)); +italcorr h#*slant-u#; +adjust_fit(0,0); pickup rule.nib; +lft x1=hround 1.5u-eps; x2=w-x1; x3=x1; +y1-y3=spread; y2=.5[y1,y3]; top y1=h; +draw z1--z2--z3--cycle; % triangle +x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar +labels(1,2,3,8,9); endchar; + +% taken directly from CMR "greater than or equal to sign" +% the "greater than" path was closed to make a triangle + + +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/llasy8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/llasy8.mf new file mode 100644 index 00000000000..23f91e918f1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/llasy8.mf @@ -0,0 +1,9 @@ +% Use parameter settings from lcmsy8 +% Modification of original lasy8.mf by Lamport (?) +% Claudio Beccari (1999) +if unknown cmbase: input cmbase fi +def generate suffix t= enddef; +input lcmsy8; +let _bye=bye; +def bye = font_identifier:="LLASY"; _bye enddef; +input llasy; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/llasyb8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/llasyb8.mf new file mode 100644 index 00000000000..9aa45946bf6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/llasyb8.mf @@ -0,0 +1,10 @@ +% Use parameter settings from lcmbsy8 +% Imitation of original lasy8.mf by Lamport (?) +% Claudio Beccari (1999) +if unknown cmbase: input cmbase fi +def generate suffix t= enddef; +input lcmbsy8; +let _bye=bye; +def bye = font_identifier:="LLASBY"; _bye enddef; +input llasy; + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/llcmss8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/llcmss8.mf new file mode 100644 index 00000000000..3e2c238b48c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/llcmss8.mf @@ -0,0 +1,79 @@ +% Slides Sans Serif 8 pt font, derived from the one that +% Pierre A. MacKay, (19 August, 1986) derived from +% Computer Modern Sans Serif Quotation Style +% +if unknown cmbase: input cmbase fi + +font_identifier:="LLCMSS"; font_size 8pt#; + +u#:=20/36pt#; % unit width +width_adj#:=2/36pt#; % width adjustment for certain characters +serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=190/36pt#; % height of numerals +x_height#:=150/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=80/36pt#; % height of crossbar in lowercase e +comma_depth#:=40/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=23/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=23/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=21/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=28/36pt#; % diameter of dots +cap_hair#:=23/36pt#; % uppercase hairline breadth +cap_stem#:=27/36pt#; % uppercase stem breadth +cap_curve#:=27/36pt#; % uppercase curve breadth +cap_ess#:=27/36pt#; % breadth in middle of uppercase s +rule_thickness#:=20/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=0pt#; % protrusion of lowercase serifs +cap_jut#:=0pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=0pt#; % vertical protrusion of beak serifs +vair#:=18/36pt#; % vertical diameter of hairlines +notch_cut#:=23/36pt#; % maximum breadth above or below notches +bar#:=18/36pt#; % lowercase bar thickness +slab#:=19/36pt#; % serif and arm thickness +cap_bar#:=19/36pt#; % uppercase bar thickness +cap_band#:=19/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=4/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.95; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/10; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate lroman % switch to the driver file for slides + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/llcmssb8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/llcmssb8.mf new file mode 100644 index 00000000000..fa1c4122571 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/llcmssb8.mf @@ -0,0 +1,79 @@ +% Slides Sans-Serif bold 8 pt font, derived from the one +% Pierre A. MacKay, 19 August, 1986 derived from +% Computer Modern Sans Serif Quotation Style +% and modified by Claudio Beccari (1999) +if unknown cmbase: input cmbase fi + +font_identifier:="LLCMSSB"; font_size 8pt#; + +u#:=22/36pt#; % unit width +width_adj#:=3/36pt#; % width adjustment for certain characters +serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=200/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=90/36pt#; % height of crossbar in lowercase e +comma_depth#:=35/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=42/36pt#; % lowercase hairline breadth +stem#:=42/36pt#; % lowercase stem breadth +curve#:=42/36pt#; % lowercase curve breadth +ess#:=40/36pt#; % breadth in middle of lowercase s +flare#:=36/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=41/36pt#; % diameter of dots +cap_hair#:=42/36pt#; % uppercase hairline breadth +cap_stem#:=46/36pt#; % uppercase stem breadth +cap_curve#:=46/36pt#; % uppercase curve breadth +cap_ess#:=46/36pt#; % breadth in middle of uppercase s +rule_thickness#:=26/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=0pt#; % protrusion of lowercase serifs +cap_jut#:=0pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=0pt#; % vertical protrusion of beak serifs +vair#:=22/36pt#; % vertical diameter of hairlines +notch_cut#:=48/36pt#; % maximum breadth above or below notches +bar#:=22/36pt#; % lowercase bar thickness +slab#:=24/36pt#; % serif and arm thickness +cap_bar#:=23/36pt#; % uppercase bar thickness +cap_band#:=30/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=15/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.85; % factor applied to weights of heavy characters +math_spread:=0.5; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/9; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate lroman % switch to the driver file for SliTeX + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/llcmssi8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/llcmssi8.mf new file mode 100644 index 00000000000..a14cf5ec291 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/llcmssi8.mf @@ -0,0 +1,79 @@ +% Slides Sans-Serif Slanted 8 pt, derived from the one that +% Pierre A. MacKay, 19 August, 1986 derived from +% Computer Modern Sans Serif Quotation Style Slanted +% and modified by Claudio Beccari (1999) +if unknown cmbase: input cmbase fi + +font_identifier:="LLCMSSI"; font_size 8pt#; + +u#:=20/36pt#; % unit width +width_adj#:=2/36pt#; % width adjustment for certain characters +serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=190/36pt#; % height of numerals +x_height#:=150/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=80/36pt#; % height of crossbar in lowercase e +comma_depth#:=40/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=23/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=23/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=21/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=28/36pt#; % diameter of dots +cap_hair#:=23/36pt#; % uppercase hairline breadth +cap_stem#:=27/36pt#; % uppercase stem breadth +cap_curve#:=27/36pt#; % uppercase curve breadth +cap_ess#:=27/36pt#; % breadth in middle of uppercase s +rule_thickness#:=20/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=0pt#; % protrusion of lowercase serifs +cap_jut#:=0pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=0pt#; % vertical protrusion of beak serifs +vair#:=18/36pt#; % vertical diameter of hairlines +notch_cut#:=23/36pt#; % maximum breadth above or below notches +bar#:=18/36pt#; % lowercase bar thickness +slab#:=19/36pt#; % serif and arm thickness +cap_bar#:=19/36pt#; % uppercase bar thickness +cap_band#:=19/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=4/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.95; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/10; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate lroman % switch to the SliTeX driver file. + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/llcmsso8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/llcmsso8.mf new file mode 100644 index 00000000000..6c2f0afdfef --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/llcmsso8.mf @@ -0,0 +1,79 @@ +% Slides Sans-Serif bold 8 pt font, derived from the one +% Pierre A. MacKay, 19 August, 1986 derived from +% Computer Modern Sans Serif Quotation Style +% and modified by Claudio Beccari (1999) +if unknown cmbase: input cmbase fi + +font_identifier:="LLCMSSB"; font_size 8pt#; + +u#:=22/36pt#; % unit width +width_adj#:=3/36pt#; % width adjustment for certain characters +serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=200/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=90/36pt#; % height of crossbar in lowercase e +comma_depth#:=35/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=42/36pt#; % lowercase hairline breadth +stem#:=42/36pt#; % lowercase stem breadth +curve#:=42/36pt#; % lowercase curve breadth +ess#:=40/36pt#; % breadth in middle of lowercase s +flare#:=36/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=41/36pt#; % diameter of dots +cap_hair#:=42/36pt#; % uppercase hairline breadth +cap_stem#:=46/36pt#; % uppercase stem breadth +cap_curve#:=46/36pt#; % uppercase curve breadth +cap_ess#:=46/36pt#; % breadth in middle of uppercase s +rule_thickness#:=26/36pt#; % thickness of lines in math symbols + +dish#:=0pt#; % amount erased at top or bottom of serifs +bracket#:=0pt#; % vertical distance from serif base to tangent +jut#:=0pt#; % protrusion of lowercase serifs +cap_jut#:=0pt#; % protrusion of uppercase serifs +beak_jut#:=0pt#; % horizontal protrusion of beak serifs +beak#:=0pt#; % vertical protrusion of beak serifs +vair#:=22/36pt#; % vertical diameter of hairlines +notch_cut#:=48/36pt#; % maximum breadth above or below notches +bar#:=22/36pt#; % lowercase bar thickness +slab#:=24/36pt#; % serif and arm thickness +cap_bar#:=23/36pt#; % uppercase bar thickness +cap_band#:=30/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=15/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.85; % factor applied to weights of heavy characters +math_spread:=0.5; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/9; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=true; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? + +generate lroman % switch to the driver file for SliTeX + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lmathex.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lmathex.mf new file mode 100644 index 00000000000..a3641feac45 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lmathex.mf @@ -0,0 +1,315 @@ + +% The Computer Modern Math-Extension family (by D. E. Knuth, 1979--1985) +% Modification of original mathex.mf +% by Claudio Beccari (1999) + +font_coding_scheme:="TeX math extension"; +mode_setup; font_setup; + +%correction to heavy_rule_thickness, otherwise the curly braces turn out too thick +%heavy_rule_thickness:=ceiling(3rule_thickness#*hppp); %cmbase definition +heavy_rule_thickness:=rule_thickness+dw; +heavy_rule_thickness#:=heavy_rule_thickness/hppp; + + +% Input modified files for large delimiters, operators and accents + +input lbigdel; % large delimiters +input lbigop; % large operators +input lbigacc; % large accents + + +% Corrections for characters 74 to 79 that otherwise would turn out oval + +cmchar "\textstyle circle-dot operator"; +beginchar(oct"112",20u#,0,18u#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +circle_points; draw_circle; % circle +%fill fullcircle scaled(bold+4dw+eps) shifted(.5[z4,z8]); % dot +fill fullcircle scaled(2stem) shifted(.5[z4,z8]); % dot +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "\displaystyle circle-dot operator"; +beginchar(oct"113",27.2u#,0,25.2u#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +circle_points; draw_circle; % circle +%fill fullcircle scaled(bold+6dw+eps) shifted(.5[z4,z8]); % dot +fill fullcircle scaled(2curve) shifted(.5[z4,z8]); % dot +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "\textstyle circle-plus operator"; +beginchar(oct"114",20u#,0,18u#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +circle_points; draw_circle; % circle +draw z2--z6; draw z4--z8; % plus +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "\displaystyle circle-plus operator"; +beginchar(oct"115",27.2u#,0,25.2u#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +circle_points; draw_circle; % circle +draw z2--z6; draw z4--z8; % plus +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "\textstyle circle-times operator"; +beginchar(oct"116",20u#,0,18u#); +adjust_fit(0,0); pickup pencircle scaled stem; +lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +circle_points; draw_circle; % circle +draw z1--z5; draw z3--z7; % times +labels(1,2,3,4,5,6,7,8); endchar; + +cmchar "\displaystyle circle-times operator"; +beginchar(oct"117",27.2u#,0,25.2u#); padded 1/6dh#; +adjust_fit(0,0); pickup pencircle scaled curve; +lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d; +circle_points; draw_circle; % circle +draw z1--z5; draw z3--z7; % times +labels(1,2,3,4,5,6,7,8); endchar; + +% Corrections for \prod sign that without serifs turned out +% as an inverted open box + +cmchar "\textstyle product sign"; +beginchar(oct"121",17u#,0,10/6dh#); +adjust_fit(0,0); pickup crisp.nib; +numeric heavy_stem,light_stem; +heavy_stem=hround(bold+dw); light_stem=rule_thickness; +pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0); +pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90); +lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 2u; +x1=x1'=x2=x2'; +top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2; +y11l-y1'=y2'-y12r=1.2bracket; +filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l) + --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs +pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0); +pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90); +x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22; +y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2; +filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r) + --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs +filldraw stroke z11e--z13e; % bar +penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar; + +cmchar "\displaystyle product sign"; +beginchar(oct"131",23u#,0,16/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup crisp.nib; +numeric heavy_stem,light_stem; +heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw); +pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0); +pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90); +lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 2.5u; +x1=x1'=x2=x2'; +top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2; +y11l-y1'=y2'-y12r=1.8bracket; +filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l) + --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs +pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0); +pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90); +x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22; +y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2; +filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r) + --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs +filldraw stroke z11e--z13e; % bar +penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar; + +% About the same correction for the summation signs + +cmchar "\textstyle summation sign"; +beginchar(oct"120",17u#,0,10/6dh#); +adjust_fit(0,0); pickup tiny.nib; +numeric top_arm_thickness, bot_arm_thickness; +top_arm_thickness=Vround rule_thickness; +bot_arm_thickness=Vround .9(.5[rule_thickness,curve]); +lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u); +top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d; +numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3); +penpos1(alpha1*(curve-tiny),0); penpos2(alpha1*(curve-tiny),0); +penpos3(alpha1*(curve-tiny),0); +alpha2=diag_ratio(1,rule_thickness-tiny,y3-y4,x3r-x4l); +penpos4(alpha2*(rule_thickness-tiny),0); +z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r); +filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals +pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0); +top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-2.5u)-eps; +arm(5,6,a,.45,17/11u); % upper arm and beak +pos7(bot_arm_thickness,-90); pos8(hair,0); +bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+2.5u)+eps; +arm(7,8,b,.45,17/11u); % lower arm and beak +penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "\displaystyle summation sign"; +beginchar(oct"130",21u#,0,18/6dh#); padded 1/6dh#; +adjust_fit(0,0); pickup tiny.nib; +numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem; +thick_stem=bold+4dw; thin_stem=rule_thickness+dw; +top_arm_thickness=Vround .9thin_stem; +bot_arm_thickness=Vround .9(.5[thin_stem,thick_stem]); +lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u); +top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d; +numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3); +penpos1(alpha1*(thick_stem-tiny),0); penpos2(alpha1*(thick_stem-tiny),0); +penpos3(alpha1*(thick_stem-tiny),0); +alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l); +penpos4(alpha2*(thin_stem-tiny),0); +z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r); +filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals +pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0); +top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-3u)-eps; +arm(5,6,a,.45,24/11u); % upper arm and beak +pos7(bot_arm_thickness,-90); pos8(hair,0); +bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+3u)+eps; +arm(7,8,b,.45,24/11u); % lower arm and beak +penlabels(0,1,2,3,4,5,6,7,8); endchar; + + +cmchar "\textstyle integral sign"; +beginchar(oct"122",12u#,0,100/52dh#); +italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit +adjust_fit(0,-ic#); pickup fine.nib; +pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180); +pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0); +pos7(vair,-90); pos8(hair,-180); pos9(curve,-180); +rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve); +top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve); +y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +bulb(3,2,1); bulb(7,8,9); % bulbs +filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} + ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 + ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "\displaystyle integral sign"; +beginchar(oct"132",18u#,0,220/48dh#); +italcorr 8u#; % \TeX\ kerning between upper limit and lower limit +adjust_fit(0,-ic#); pickup fine.nib; +numeric bulb_size, max_size; +bulb_size=hround(bold+dw); max_size=hround(bold+2dw); +pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180); +pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0); +pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180); +rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size); +top y3r=0; bot y7r=-d; +y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7; +y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +bulb(3,2,1); bulb(7,8,9); % bulbs +filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} + ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 + ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "\textstyle contour integral sign"; +beginchar(oct"110",12u#,0,100/52dh#); +italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit +adjust_fit(0,-ic#); pickup fine.nib; +pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180); +pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0); +pos7(vair,-90); pos8(hair,-180); pos9(curve,-180); +rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve); +top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve); +y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +bulb(3,2,1); bulb(7,8,9); % bulbs +filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} + ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 + ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +pickup rule.nib; autorounded; +draw fullcircle scaled .5w shifted z5; % contour +penlabels(1,2,3,4,5,6,7,8,9); endchar; + +cmchar "\displaystyle contour integral sign"; +beginchar(oct"111",18u#,0,220/48dh#); +italcorr 8u#; % \TeX\ kerning between upper limit and lower limit +adjust_fit(0,-ic#); pickup fine.nib; +numeric bulb_size, max_size; +bulb_size=hround(bold+dw); max_size=hround(bold+2dw); +pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180); +pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0); +pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180); +rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u; +x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size); +top y3r=0; bot y7r=-d; +y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7; +y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7); +bulb(3,2,1); bulb(7,8,9); % bulbs +filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1} + ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem +filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1 + ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem +pickup rule.nib; autorounded; +draw fullcircle scaled .5w shifted z5; % contour +penlabels(1,2,3,4,5,6,7,8,9); endchar; + + + + + + +% Changed height of folllowing chars so as to be coherent with the rest + + + +cmchar "Horizontal curly brace tip---down and left"; +beginchar(oct"172",.75dh#,heavy_rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(1.2h,90); +bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth); +.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine; +filldraw z1r{x2-x1,3(y2r-y1r)}...{right}z2r + --z2l{left}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke +penlabels(1,2); endchar; + +cmchar "Horizontal curly brace tip---down and right"; +beginchar(oct"173",.75dh#,heavy_rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(1.2h,90); +bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth); +.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine; +filldraw z1r{x2-x1,3(y2r-y1r)}...{left}z2r + --z2l{right}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke +penlabels(1,2); endchar; + +cmchar "Horizontal curly brace tip---up and left"; +beginchar(oct"174",.75dh#,heavy_rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(1.2h,90); +bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth); +.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine; +filldraw z1l{x2-x1,3(y2l-y1l)}...{right}z2l + --z2r{left}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke +penlabels(1,2); endchar; + +cmchar "Horizontal curly brace tip---up and right"; +beginchar(oct"175",.75dh#,heavy_rule_thickness#,0); +adjust_fit(0,0); pickup fine.nib; +numeric min_breadth; min_breadth=vround(rule_thickness+.6dw); +pos1(min_breadth,90); pos1'(min_breadth,90); +pos2(1.2h,90); +bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth); +.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine; +filldraw z1l{x2-x1,3(y2l-y1l)}...{left}z2l + --z2r{right}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke +penlabels(1,2); endchar; + + + +font_x_height x_height#; +font_quad 18u#+4letter_fit#; +% (The calling file should give the other math extension font parameters.) +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lmathit.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lmathit.mf new file mode 100644 index 00000000000..111cd786151 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lmathit.mf @@ -0,0 +1,66 @@ + + +% The Computer Modern Math Italic slides family +% Modification of original by D. E. Knuth (1979--1985) for taking care +% of special form of I in slides fonts (Claudio Beccari 1999) + +font_coding_scheme:="TeX math italic"; +mode_setup; font_setup; + +input sromanu; % upper case (slides majuscules) +input itall; % lower case (minuscules) +input greeku; % upper case greek letters +input greekl; % lower case Greek letters +input italms; % special symbols for math italic +font_slant slant; font_x_height x_height#; +font_quad 18u#+4letter_fit#; + +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; +input olddig; % oldstyle numerals +input romms; % roman math specials + +skewchar=oct"177"; skew#=.5u#; +save comma; +period=oct"72"; comma=oct"73"; slash=oct"75"; % non-ASCII positions +ligtable "h": skewchar kern -skew#; +ligtable oct"027":oct"034": comma kern -u#, period kern -u#, % $\nu:\tau:$ + "L":"g":"u":"v":"x": oct"013": oct"026": % $L:g:u:v:x:\alpha:\mu:$ + oct"035":oct"173": skewchar kern skew#; % $\upsilon:\imath:$ +ligtable "U": comma kern-2u#, period kern-2u#, % $U:$ + slash kern-u#, skewchar kern skew#; +ligtable "K":oct"011": slash kern-u#, % $K:\it\Psi:$ + oct"016":"r": comma kern-u#, period kern-u#, % $\delta:r:$ + "D":"c":"e":"o":"s":"y":"z":oct"017": % $D:c:e:o:s:y:z:\epsilon:$ + oct"021":oct"023":oct"037": skewchar kern 2skew#; % $\eta:\iota:\chi:$ +ligtable oct"007": slash kern-u#, % $\it\Upsilon:$ + comma kern-2u#, period kern-2u#, skewchar kern 2skew#; +ligtable oct"005":"H": slash kern-u#, % $\it\Pi:H:$ + comma kern-u#, period kern-u#, skewchar kern 2skew#; +ligtable "N":"X": slash kern -1.5u#, % $N:X:$ + "C":"T": slash kern -.5u#, comma kern -u#, period kern -u#, % $C:T:$ + "B":"E":"G":"O":"Q":"R":oct"174": % $B:E:G:O:Q:R:\jmath:$ + "l":"p":"q":"t":"w":oct"002":oct"004": % $l:p:q:t:w:\it\Theta:\Xi:$ + oct"006":oct"010":oct"012":oct"014": % $\it\Sigma:\Phi:\Omega:\beta:$ + oct"020":oct"022":oct"032":oct"036": % $\zeta:\theta:\rho:\phi:$ + oct"042":oct"043":oct"045": % $\varepsilon:\vartheta:\varrho:$ + oct"046":oct"047":oct"100": % $\varsigma:\varphi:\partial:$ + skewchar kern 3skew#; +ligtable "M":"S":"Z": slash kern-u#, % $M:S:Z:$ + comma kern-u#, period kern-u#, skewchar kern 3skew#; +ligtable oct"000":"F":"P": slash kern -u#, % $\it\Gamma:F:P:$ + comma kern-2u#, period kern-2u#, skewchar kern 3skew#; +ligtable "I":oct"030":oct"040":oct"140":oct"175": % $I:\xi:\psi:\ell:\wp:$ + skewchar kern 4skew#; +ligtable "A": skewchar kern 5skew#; % $A:$ +ligtable "d": "Y" kern u#, "Z" kern-u#, "j" kern-2u#, "f" kern-3u#, % $d:$ + oct"001":oct"003": skewchar kern 6skew#; % $\it\Delta:\Lambda:$ +ligtable "f": comma kern-u#, period kern-u#, skewchar kern 6skew#; % $f:$ +ligtable "J": slash kern-u#, % $J:$ + comma kern-2u#, period kern-2u#, skewchar kern 6skew#; +ligtable "j":oct"033": comma kern -u#, period kern -u#; % $j:\sigma:$ +ligtable "V":"W":"Y":comma kern-3u#, period kern-3u#, % $V:W:Y:$ + slash kern-2u#; +ligtable slash: oct"001" kern -u#, "A" kern -u#, "M" kern -u#, % $/:$ + "N" kern -u#, "Y" kern +u#, "Z" kern -u#; +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lmathsy.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lmathsy.mf new file mode 100644 index 00000000000..6486b76ba76 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lmathsy.mf @@ -0,0 +1,47 @@ + +% The Computer Modern Symbols family (by D. E. Knuth, 1979--1985) +% Modification of original mathsy.mf by Knuth +% Claudio Beccari (1999) + +font_coding_scheme:="TeX math symbols"; +mode_setup; font_setup; + +if not (boolean boldlsymbol): math_spread:=0; fi +autorounding:=hair; +input calu; % upper case calligraphic alphabet +autorounding:=0; + + + +font_slant slant; font_x_height x_height#; +font_quad 18u# if not monospace:+4letter_fit# fi; +% (The spacing is zero so that \TeX\ will always add the italic correction.) +% (The calling file should give the other math symbol font parameters.) + +slant:=mono_charic#:=0; % the remaining characters will not be slanted +currenttransform:=identity yscaled aspect_ratio scaled granularity; +input symbol; % the symbols + +% Correction for the empty big circle that otherwise turns out oval + +cmchar "Circle for copyright, etc."; +beginchar(oct"015",18u#,math_axis#+8u#,8u#-math_axis#); autorounded; +adjust_fit(0,0); pickup rule.nib; +lft x6=hround u; x2=w-x6; +top y8 - bot y4 = rt x2 - lft x6; y2=math_axis; +circle_points; draw_circle; % circle +labels(1,2,3,4,5,6,7,8); endchar; + + + +if not monospace: + skewchar=oct"060"; skew#=.5u#; + ligtable "I": "T": "V": skewchar kern skew#; + ligtable "K": skewchar kern 2skew#; + ligtable "D": "N": "P": "R": "U": "W": "Y": skewchar kern 3skew#; + ligtable "E": "F": "G": "H": "O": "Q": skewchar kern 4skew#; + ligtable "B": "C": "L": "M": "S": "X": "Z": skewchar kern 5skew#; + ligtable "J": skewchar kern 6skew#; + ligtable "A": skewchar kern 7skew#; +fi; +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lmsam8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lmsam8.mf new file mode 100644 index 00000000000..72665f0cf77 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lmsam8.mf @@ -0,0 +1,138 @@ +%% This is file LMSMA8 copied and modified from MSAM10 by American Mathematical +%% Society, so as to change all the parameters and see what happens with the slides-font +%% parameters; hopefully a new font is obtained that better matches the slides fonts +% with their characteristic large x-height and small ascender height; with math symbols +% this should not be so important, but ... +%% +%% Claudio Beccari 2007 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +if unknown cmbase: input cmbase fi + +font_identifier:="LMSAM"; font_size 8pt#; + +u#:=20/36pt#; % unit width +width_adj#:=0/36pt#; % width adjustment for certain characters +serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=190/36pt#; % height of numerals +x_height#:=150/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=80/36pt#; % height of crossbar in lowercase e +comma_depth#:=40/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=23/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=23/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=21/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=28/36pt#; % diameter of dots +cap_hair#:=23/36pt#; % uppercase hairline breadth +cap_stem#:=27/36pt#; % uppercase stem breadth +cap_curve#:=27/36pt#; % uppercase curve breadth +cap_ess#:=27/36pt#; % breadth in middle of uppercase s +rule_thickness#:=20/36pt#; % thickness of lines in math symbols + +dish#:=0/36pt#; % amount erased at top or bottom of serifs +bracket#:=00/36pt#; % vertical distance from serif base to tangent +jut#:=0/36pt#; % protrusion of lowercase serifs +cap_jut#:=00/36pt#; % protrusion of uppercase serifs +beak_jut#:=0/36pt#; % horizontal protrusion of beak serifs +beak#:=0/36pt#; % vertical protrusion of beak serifs +vair#:=18/36pt#; % vertical diameter of hairlines +notch_cut#:=23/36pt#; % maximum breadth above or below notches +bar#:=18/36pt#; % lowercase bar thickness +slab#:=19/36pt#; % serif and arm thickness +cap_bar#:=19/36pt#; % uppercase bar thickness +cap_band#:=19/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0/36pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=4/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.95; % factor applied to weights of heavy characters +math_spread:=.4; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/10; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +% the following font parameters are explained in {\sl The \TeX book}, Appendix G +subs:=6/8; % subscripts to 10pt will normally be in 7pt type +rth#:=.4pt#; % assume that rules will come from cmex10 +fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed + math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1 + math_axis#+1.51rth#+24/36pt#, % num2 + math_axis#+1.51rth#+38/36pt#, % num3 + -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1 + -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2 + 7.99pt#-subs*asc_height#, % sup1 + 6.99pt#-subs*asc_height#, % sup2 + 82/36pt#, % sup3 + 36/36pt#, % sub1 + 72/36pt#, % sub2 + subs*asc_height#-36/36pt#, % sup\_drop + 18/36pt#, % sub\_drop + 11.9pt#, % delim1 + 9.1pt#, % delim2 + math_axis#; % axis\_height + +%% include these parameters to shrink R and S so they +%% fit inside a circle +% +lower.u#:=22/36pt#; % unit width +lower.width_adj#:=3/36pt#; % width adjustment for certain characters +lower.cap_serif_fit#:=-12/36pt#; % extra sidebar near uppercase serifs +lower.letter_fit#:=0pt#; % extra space added to all sidebars + +lower.body_height#:=180/36pt#; % height of tallest characters +lower.cap_height#:=160/36pt#; % height of caps +lower.x_height#:=120/36pt#; % height of lowercase without ascenders +lower.bar_height#:=72/36pt#; % height of crossbar in lowercase e +lower.comma_depth#:=35/36pt#; % depth of comma below baseline + +lower.flare#:=15/36pt#; % diameter of bulbs or breadth of terminals +lower.cap_hair#:=21/36pt#; % uppercase hairline breadth +lower.stem#:=21/36pt#; % lowercase stem breadth +lower.cap_stem#:=23/36pt#; % uppercase stem breadth +lower.cap_curve#:=23/36pt#; % uppercase curve breadth +lower.cap_ess#:=23/36pt#; % breadth in middle of uppercase s + +lower.cap_jut#:=0/36pt#; % protrusion of uppercase serifs +lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs +lower.beak#:=0/36pt#; % vertical protrusion of beak serifs +lower.slab#:=12/36pt#; % serif and arm thickness +lower.cap_bar#:=12/36pt#; % uppercase bar thickness +lower.cap_band#:=15/36pt#; % uppercase thickness above/below lobes +lower.cap_notch_cut#:=21/36pt#; % max breadth above/below uppercase notches + +lower.o#:=6/36pt#; % amount of overshoot for curves +lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +lower.fudge:=.85; % factor applied to weights of heavy characters + + +generate lamsya % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lmsbm8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lmsbm8.mf new file mode 100644 index 00000000000..fd56dc71550 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lmsbm8.mf @@ -0,0 +1,105 @@ +%% This is file LMSMB8 copied and modified from MSAM10 by American Mathematical +%% Society, so as to change all the parameters and see what happens with the slides-font +%% parameters; hopefully a new font is obtained that better matches the slides fonts +% with their characteristic large x-height and small ascender height; with math symbols +% this should not be so important, but ... +%% +%% Claudio Beccari 2007 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +if unknown cmbase: input cmbase fi + +font_identifier:="LMSBM"; font_size 8pt#; + +u#:=20/36pt#; % unit width +width_adj#:=0/36pt#; % width adjustment for certain characters +serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=220/36pt#; % height of tallest characters +asc_height#:=200/36pt#; % height of lowercase ascenders +cap_height#:=197/36pt#; % height of caps +fig_height#:=190/36pt#; % height of numerals +x_height#:=150/36pt#; % height of lowercase without ascenders +math_axis#:=80/36pt#; % axis of symmetry for math symbols +bar_height#:=80/36pt#; % height of crossbar in lowercase e +comma_depth#:=40/36pt#; % depth of comma below baseline +desc_depth#:=40/36pt#; % depth of lowercase descenders + +crisp#:=18/36pt#; % diameter of serif corners +tiny#:=18/36pt#; % diameter of rounded corners +fine#:=8/36pt#; % diameter of sharply rounded corners +thin_join#:=8/36pt#; % width of extrafine details +hair#:=23/36pt#; % lowercase hairline breadth +stem#:=23/36pt#; % lowercase stem breadth +curve#:=23/36pt#; % lowercase curve breadth +ess#:=23/36pt#; % breadth in middle of lowercase s +flare#:=21/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=28/36pt#; % diameter of dots +cap_hair#:=23/36pt#; % uppercase hairline breadth +cap_stem#:=27/36pt#; % uppercase stem breadth +cap_curve#:=27/36pt#; % uppercase curve breadth +cap_ess#:=27/36pt#; % breadth in middle of uppercase s +rule_thickness#:=20/36pt#; % thickness of lines in math symbols + +dish#:=0/36pt#; % amount erased at top or bottom of serifs +bracket#:=00/36pt#; % vertical distance from serif base to tangent +jut#:=0/36pt#; % protrusion of lowercase serifs +cap_jut#:=0/36pt#; % protrusion of uppercase serifs +beak_jut#:=0/36pt#; % horizontal protrusion of beak serifs +beak#:=00/36pt#; % vertical protrusion of beak serifs +vair#:=18/36pt#; % vertical diameter of hairlines +notch_cut#:=23/36pt#; % maximum breadth above or below notches +bar#:=18/36pt#; % lowercase bar thickness +slab#:=19/36pt#; % serif and arm thickness +cap_bar#:=19/36pt#; % uppercase bar thickness +cap_band#:=19/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches +serif_drop#:=0/36pt#; % vertical drop of sloped serifs +stem_corr#:=.5/36pt#; % for small refinements of stem breadth +vair_corr#:=.5/36pt#; % for small refinements of hairline height +apex_corr#:=4/36pt#; % extra width at diagonal junctions + +o#:=6/36pt#; % amount of overshoot for curves +apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions + +slant:=.25; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.95; % factor applied to weights of heavy characters +math_spread:=.4; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/10; % extra openness inside bowls +beak_darkness:=0; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=true; % should dots be square? +hefty:=true; % should we try hard not to be overweight? +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=true; % should math-mode spacing be used? + +% the following font parameters are explained in {\sl The \TeX book}, Appendix G +subs:=6/8; % subscripts to 10pt will normally be in 7pt type +rth#:=.4pt#; % assume that rules will come from cmex10 +fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed + math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1 + math_axis#+1.51rth#+24/36pt#, % num2 + math_axis#+1.51rth#+38/36pt#, % num3 + -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1 + -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2 + 7.99pt#-subs*asc_height#, % sup1 + 6.99pt#-subs*asc_height#, % sup2 + 82/36pt#, % sup3 + 36/36pt#, % sub1 + 72/36pt#, % sub2 + subs*asc_height#-36/36pt#, % sup\_drop + 18/36pt#, % sub\_drop + 11.9pt#, % delim1 + 9.1pt#, % delim2 + math_axis#; % axis\_height + +def diagonal (suffix ne, sw)= draw z.ne--z.sw enddef; + +generate lamsyb % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lroman.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lroman.mf new file mode 100644 index 00000000000..e45809ba84d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lroman.mf @@ -0,0 +1,247 @@ +% This is the driver file lroman.mf based on roman.mf in the +% Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985) +% It differs from roman.mf only in that it has been +% adjusted to change capital I with a special uppercase I +% for the Slides fonts: llcmss8, llcmssb8, llcmssi8 and llcmsso8. +% Also the lower case l has been modified in order to avoid confusions +% with other glyphs. +% Written by Pierre A. MacKay, 16 Sept. 1986 +% and modified by Claudio Beccari, 1999 + +if ligs>1: font_coding_scheme:="TeX text"; + spanish_shriek=oct"074"; spanish_query=oct"076"; +else: font_coding_scheme:=if ligs=0: "TeX typewriter text" + else: "TeX text without f-ligatures" fi; + spanish_shriek=oct"016"; spanish_query=oct"017"; fi + +mode_setup; font_setup; + + input romanu; % upper case (majuscules) + input romanl; % lower case (minuscules) + input greeku; % upper case Greek letters + input romand; % numerals + input romanp; % ampersand, question marks, currency sign + input romspl; % lowercase specials (dotless \i, ligature \ae, etc.) + input romspu; % uppercase specials (\AE, \OE, \O) + input punct; % punctuation symbols common to roman and italic text + input accent; % accents common to roman and italic text + + + +if ligs>1: input romlig; fi % letter ligatures +if ligs>0: input comlig; fi % ligatures common with italic text +if ligs<=1: input romsub; fi % substitutes for ligatures + +% Redrawing capital I + +cmchar "The modified letter I"; +beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0); +italcorr cap_height#*slant-.25u#; +adjust_fit(cap_serif_fit#,cap_serif_fit#); +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +pickup crisp.nib; % arms +pos5(hair,90); pos6(hair,90); % top arm +lft x5= hround(u);rt x6=hround(w-u); top y5r=top y6r= top y1; +filldraw stroke z5e--z6e; +pos7(hair,-90); pos8(hair,-90); % bottom arm +x7=x5; x6=x8; +bot y7r= bot y8r= bot y2; +filldraw stroke z7e--z8e; +math_fit(0,.5ic#); penlabels(1,2,5,6,7,8); endchar; + +% Redrawing lower case l + +cmchar "The modified letter l"; +beginchar("l",6u#+max(u#,.5stem#), + min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0); +italcorr x_height#*slant -.4u#; +adjust_fit(-(u#-stem#/5.5), -.5u#); +numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); +pickup fine.nib; +pos1(shaved_stem,180); +pos2(shaved_stem,180); +pos3(shaved_stem,180); +lft x2r=lft x3r=hround(2.5u-.5shaved_stem); +y2=x_height; +y3=max(.5bar_height,2vair); +top y1=h; x1=x2; +interim superness:=more_super; +pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u); + pos5(vair,-75); top y5l=vround .2[top y4l,bar_height]; + x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair; + filldraw stroke z1e--z2e..super_arc.e(3,4); % stem and hook + path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal + if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0): + filldraw stroke z4e{right}...{up}z5e; + else: filldraw p; fi; +penlabels(1,2,3,4,5,6,7,8); endchar; + +% Redrawing ligature fl + +cmchar "The modified ligature fl"; +beginchar(oct"015",12u#+2letter_fit#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,serif_fit#); +pickup tiny.nib; +pos1(stem',0); +lft x1l=hround(2.5u-.5stem'); +pickup fine.nib; numeric bulb_diam, inner_jut; % letter f +pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; +f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal +pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1; +pos3(bar,90); pos4(bar,90); +rt x4= hround 5.3u; +pickup crisp.nib; filldraw stroke z3e--z4e; % bar +% +pos11(stem',180);pos12(stem',180);pos13(stem',180); %letter l +lft x12r=lft x13r=hround(x2+1.5u);y12=x_height; +y13=max(.5bar_height,2vair);top y11=h; x11=x12; +interim superness:=more_super; +pos14(vair',-90); bot y14r=-oo; rt x15r=hround(w-u); + pos15(vair,-75); top y15l=vround .2[top y14l,bar_height]; + x15l:=good.x x15l; x14l=1/3[x13l,x15l]; x14r:=1/3[x13r,x15r]; y13l:=y13l+.2vair; + filldraw stroke z11e--z12e..super_arc.e(13,14); % stem and hook + path p; p=stroke z14e{right}..tension .9 and atleast 1..z15e; % terminal + if (xpart(z15l-precontrol 1 of p)<0) or (xpart(z15r-postcontrol 2 of p)<0): + filldraw stroke z14e{right}...{up}z15e; + else: filldraw p; fi; +penlabels(1,2,3,4,11,12,13,14,15); endchar; + +% Redrawing ligature ffl + +cmchar "The modified ligature ffl"; +beginchar(oct"017",15u#+4letter_fit#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,2u#+serif_fit#); +pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem'); % the double f +pos11(stem',0); lft x11l=hround(.5w-.5stem'); +pickup fine.nib; numeric bulb_diam, inner_jut; + pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u; + pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); +f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal +f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto +pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1; +pos3(bar,90); pos4(bar,90); +rt x4=hround(.5w+2.8u); +pos3'(bar,90); x3'-x1=x4-x11; y3'=y3; + pos4'(bar,90); x4'=x11; y4'=y4; + filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars +% +pos21(stem',180);pos22(stem',180);pos23(stem',180); %letter l +lft x22r=lft x23r=hround(x12+1.5u);y22=x_height; +y23=max(.5bar_height,2vair);top y21=h; x21=x22; +interim superness:=more_super; +pos24(vair',-90); bot y24r=-oo; rt x25r=hround(x23r+4u); + pos25(vair,-75); top y25l=vround .2[top y24l,bar_height]; + x25l:=good.x x25l; x24l=1/3[x23l,x25l]; x24r:=1/3[x23r,x25r]; y23l:=y23l+.2vair; + filldraw stroke z21e--z22e..super_arc.e(23,24); % stem and hook + path p; p=stroke z24e{right}..tension .9 and atleast 1..z25e; % terminal + if (xpart(z25l-precontrol 1 of p)<0) or (xpart(z25r-postcontrol 2 of p)<0): + filldraw stroke z24e{right}...{up}z25e; + else: filldraw p; fi; +penlabels(1,2,3,4,11,12,21,22,23,24,25); endchar; + +%% Modified accents + +cmchar "Breve accent"; +beginchar(oct"025",9u#,min(asc_height#,2x_height#),0); +italcorr h#*slant+.5vair#-1.5u#; +adjust_fit(0,0); +pickup crisp.nib; pos1(vair,-180); pos3(vair,0); +numeric mid_thickness; mid_thickness=vround 1/3[vair,stem]; +pos2(mid_thickness,-90); x2=.5w; +bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness); +top y1=top y3=max(h,top y2l+.8vair); lft x1r=w-rt x3r=hround(2u-.5vair); +filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke +penlabels(1,2,3); endchar; + + +cmchar "Scandinavian circle accent"; +beginchar(oct"027",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0); +adjust_fit(cap_serif_fit#,cap_serif_fit#); +numeric circ_hair,circ_vair; +circ_hair=hround min(hair,u+.5); %circ_vair=vround min(vair,(h-x_height)/6+.5); +circ_vair=circ_hair; +penpos1(circ_vair,90); penpos3(circ_vair,-90); +penpos2(circ_hair,180); penpos4(circ_hair,0); +x2r=hround(.5w-u-.5circ_hair); +x4r=w-x2r; x1=x3=.5w; +y2=y4=.5[y1,y3]; +y3r=vround(1/3[x_height,h]+apex_o); y1r-y3r=x4r-x2r; +penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3) + & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl +penlabels(1,2,3,4); endchar; + +iff ligs>0: cmchar "Dot accent"; +numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#); +beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0); +define_whole_blacker_pixels(dot_diam); +italcorr h#*slant+.5dot_diam#-2u#; +adjust_fit(0,0); +pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90); +x1=x2=.5w; z1=z2; +y2l= vround(.5[x_height,h]+apex_o); +dot(1,2); % dot +penlabels(1,2); endchar; + +cmchar "Umlaut (double dot) accent"; +numeric dot_diam#,dot_diam; +dot_diam#=max(dot_size#,cap_curve#); +beginchar(oct"177",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0); +dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)); +italcorr h#*slant+.5dot_diam#-2.25u#; +adjust_fit(0,0); +pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90); +x1=x2=2.75u; z1=z2; +y2l= vround(.5[x_height,h]+apex_o); +dot(1,2); % left dot +pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1; +dot(3,4); % right dot +penlabels(1,2,3,4); endchar; + + +ligtable "!": "`" =: spanish_shriek; +ligtable "?": "`" =: spanish_query; +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning + ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#, + "a" kern k#, "o" kern k#, "c" kern k#; + ligtable "P": "A" kern kk#, + "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#; + ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#, + "r" kern kk#, "a" kern kk#, "A" kern kkk#, + else: "o" kern k#, "e" kern k#, "u" kern k#, + "r" kern k#, "a" kern k#, "A" kern kk#, fi + "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#; + ligtable "T": "y" kern if serifs: k# else: kk# fi, + "Y": "e" kern kk#, "o" kern kk#, + "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#; + ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#, + "V" kern k#, "Y" kern k#; + if serifs: ligtable "h": "m": "n": + "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#; + ligtable "c": "h" kern k#, "k" kern k#; fi + ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#, + "d" kern -k#, "c" kern -k#, "q" kern -k#, + "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi + "t": "y" kern k#, + "u": "w" kern k#; + ligtable "A": if serifs: "R": fi\\ "t" kern k#, + "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#, + "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#; + ligtable "g": "j" kern -k#; % logjam + ligtable "I": "I" kern -k#; fi % Richard III + ligtable "l": "e" kern k#, "o" kern k#; + % there are ligature/kern programs for |"f"| in the {\tt romlig} file + % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file +bye. + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/ltclb8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/ltclb8.mf new file mode 100644 index 00000000000..942e85c5beb --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/ltclb8.mf @@ -0,0 +1,87 @@ +% ltclb8.mf +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Content: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation Bold +% text companion font for slides +% +if unknown exbase: input exbase fi + +font_identifier:="LTCSSQB"; +font_size 8pt#; +u#:=22/36pt#; +width_adj#:=3/36pt#; +serif_fit#:= -12/36pt#; +cap_serif_fit#:= -15/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=200/36pt#; +x_height#:=155/36pt#; +math_axis#:=80/36pt#; +bar_height#:=85/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=42/36pt#; +stem#:=42/36pt#; +curve#:=42/36pt#; +ess#:=40/36pt#; +flare#:=36/36pt#; +dot_size#:=41/36pt#; +cap_hair#:=42/36pt#; +cap_stem#:=46/36pt#; +cap_curve#:=46/36pt#; +cap_ess#:=46/36pt#; +rule_thickness#:=26/36pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=22/36pt#; +notch_cut#:=48/36pt#; +bar#:=22/36pt#; +slab#:=24/36pt#; +cap_bar#:=23/36pt#; +cap_band#:=30/36pt#; +cap_notch_cut#:=42/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=1/36pt#; +apex_corr#:=15/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=0; +fudge:=.85; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/9; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate ltxsymb; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/ltcli8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/ltcli8.mf new file mode 100644 index 00000000000..ab8e6e53eec --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/ltcli8.mf @@ -0,0 +1,87 @@ +% ltcli8.mf +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Content: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation Inclined +% text companion font for slides +% +if unknown exbase: input exbase fi + +font_identifier:="LLTCSSQI"; +font_size 8pt#; +u#:=20/36pt#; +width_adj#:=2/36pt#; +serif_fit#:= -10/36pt#; +cap_serif_fit#:= -14/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=190/36pt#; +x_height#:=150/36pt#; +math_axis#:=80/36pt#; +bar_height#:=80/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=23/36pt#; +stem#:=23/36pt#; +curve#:=23/36pt#; +ess#:=23/36pt#; +flare#:=21/36pt#; +dot_size#:=28/36pt#; +cap_hair#:=23/36pt#; +cap_stem#:=27/36pt#; +cap_curve#:=27/36pt#; +cap_ess#:=27/36pt#; +rule_thickness#:=.55555pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=18/36pt#; +notch_cut#:=23/36pt#; +bar#:=18/36pt#; +slab#:=19/36pt#; +cap_bar#:=19/36pt#; +cap_band#:=19/36pt#; +cap_notch_cut#:=23/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=.5/36pt#; +apex_corr#:=4/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=sind 12/cosd 12; +fudge:=.95; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/10; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate ltxsymb; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/ltclo8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/ltclo8.mf new file mode 100644 index 00000000000..29e26853dd1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/ltclo8.mf @@ -0,0 +1,87 @@ +% ltclo8.mf +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Content: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation Bold Oblique +% text companion fonts for slides +% +if unknown exbase: input exbase fi + +font_identifier:="LLTCSSQBO"; +font_size 8pt#; +u#:=22/36pt#; +width_adj#:=3/36pt#; +serif_fit#:= -12/36pt#; +cap_serif_fit#:= -15/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=200/36pt#; +x_height#:=155/36pt#; +math_axis#:=80/36pt#; +bar_height#:=85/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=42/36pt#; +stem#:=42/36pt#; +curve#:=42/36pt#; +ess#:=40/36pt#; +flare#:=36/36pt#; +dot_size#:=41/36pt#; +cap_hair#:=42/36pt#; +cap_stem#:=46/36pt#; +cap_curve#:=46/36pt#; +cap_ess#:=46/36pt#; +rule_thickness#:=26/36pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=22/36pt#; +notch_cut#:=48/36pt#; +bar#:=22/36pt#; +slab#:=24/36pt#; +cap_bar#:=23/36pt#; +cap_band#:=30/36pt#; +cap_notch_cut#:=42/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=1/36pt#; +apex_corr#:=15/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=sind 12/cosd 12; +fudge:=.85; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/9; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate ltxsymb; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/ltclq8.mf b/Master/texmf-dist/fonts/source/public/lxfonts/ltclq8.mf new file mode 100644 index 00000000000..4e072f0e625 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/ltclq8.mf @@ -0,0 +1,87 @@ +% ltclq8.mf +% +% This file is +% (c) Copyright 2002 Claudio Beccari +% +% This file is part of of the lslides package +% Read the lslides package documetation +% +% +% Contents: +% +% Parameters for +% +% LaTeX European Computer Modern Sans Serif Quotation +% text companion fonts for slides +% +if unknown exbase: input exbase fi + +font_identifier:="LLTCSSQ"; +font_size 8pt#; +u#:=20/36pt#; +width_adj#:=2/36pt#; +serif_fit#:= -10/36pt#; +cap_serif_fit#:= -14/36pt#; +letter_fit#:=0pt#; +body_height#:=220/36pt#; +asc_height#:=200/36pt#; +cap_height#:=197/36pt#; +fig_height#:=190/36pt#; +x_height#:=150/36pt#; +math_axis#:=80/36pt#; +bar_height#:=80/36pt#; +comma_depth#:=40/36pt#; +desc_depth#:=40/36pt#; +acc_height#:=60/36pt#; +dot_height#:=45.8/36pt#; +udot_height#:=48.2/36pt#; +crisp#:=18/36pt#; +tiny#:=18/36pt#; +fine#:=8/36pt#; +thin_join#:=8/36pt#; +hair#:=23/36pt#; +stem#:=23/36pt#; +curve#:=23/36pt#; +ess#:=23/36pt#; +flare#:=21/36pt#; +dot_size#:=28/36pt#; +cap_hair#:=23/36pt#; +cap_stem#:=27/36pt#; +cap_curve#:=27/36pt#; +cap_ess#:=27/36pt#; +rule_thickness#:=.55555pt#; +dish#:=0pt#; +bracket#:=0pt#; +jut#:=0pt#; +cap_jut#:=0pt#; +beak_jut#:=0pt#; +beak#:=0pt#; +vair#:=18/36pt#; +notch_cut#:=23/36pt#; +bar#:=18/36pt#; +slab#:=19/36pt#; +cap_bar#:=19/36pt#; +cap_band#:=19/36pt#; +cap_notch_cut#:=23/36pt#; +serif_drop#:=0pt#; +stem_corr#:=.5/36pt#; +vair_corr#:=.5/36pt#; +apex_corr#:=4/36pt#; +o#:=6/36pt#; +apex_o#:=2/36pt#; +slant:=0; +fudge:=.95; +math_spread:=0; +superness:=1/sqrt 2; +superpull:=1/10; +beak_darkness:=0; +square_dots:=true; +hefty:=true; +serifs:=false; +monospace:=false; +variant_g:=true; +low_asterisk:=false; +math_fitting:=false; +slitex:=true; +generate ltxsymb; +endinput; diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/ltxsymb.mf b/Master/texmf-dist/fonts/source/public/lxfonts/ltxsymb.mf new file mode 100644 index 00000000000..e9b48e358fc --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/ltxsymb.mf @@ -0,0 +1,94 @@ +% txsymb.mf +% +% (c) Copyright 1995, 1996, 1997 J"org Knappen +% +% This file is part of ecfonts version 1.0 +% +% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and +% copyrite.txt for further information +% +% You find some documentation in ecdoc.tex (needs LaTeX2e) +% +% EC Version 1.0 +% 19-JAN-1997 +% +% Driver file for the tc fonts +% Modified and name changed to ltxsymb.mf by Claudio Beccari 2007 + +version_check(1,0); % |version_check| was introduced in dc1.3 + +input exaccess; % accent accessories +input txpseudo; % pseudoparameters + +mode_setup; font_setup; pseudo_setup; + +input txaccent; % flat accents for capital letters +input txgen; % genealogical symbols (by DEK) +input txsymbol; % misc. symbols +if variant_g: % italics? + input txitlod; % old style digits (by GJL) + input txisuper; % superscript 1,2,3 + input txifract; % fractions 1/4, 1/2, 3/4 +else: % roman + input txromod; % old style digits (by DEK) + input txrsuper; % superscript 1,2,3 + input txrfract; % fractions 1/4, 1/2, 3/4 +fi; + + + +ecchar "Euro currency sign"; % jk +beginchar(oct"277",14u#,1.1cap_height#,0);% cap_height= 197/36pt# +italcorr cap_height#*slant-beak_jut#-.5u#; +adjust_fit(0,0); +pickup fine.nib;% fine=8/36pt# +numeric larg; larg:=slab;% slab=19/36pt# --> larg= 19/36pt# +pos2(larg,90); pos1(larg,0); +top y2r=h; x2=hround 8.5u; rt x1r=hround(w-u); y1=good.y(y2l-1.5u)-eps; +pos3(larg,180); pos4(larg,270); pos5(larg,0); +bot y4r=0; x4=x2; rt x5r=hround(w-u); y5=good.y(y4l+1.6u)+eps; +lft x3r =hround 2.5u; y3=.52h; +filldraw stroke z1e..z2e{left}..z3e{down}..z4e{right}..z5e;% arc +pos6(larg,-90); pos7(larg,-90); pos8(larg,90); pos9(larg,90); +bot y6r=top y8r+if hefty: 1.333 else: 2 fi vair + =vround(y3+if hefty: .667 fi vair+eps); +y7l=good.y(y6l)+eps; y9l=good.y(y8l)-eps; +x6=x8=hround u; x7=x9=hround 10u; +filldraw stroke z6e--z7e; filldraw stroke z8e--z9e; % strokes +penlabels(1,2,3,4,5,6,7,8,9); endchar; + + + +% Ligtable + +if not monospace: + ligtable "-": oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar> +fi + +% Fontparameter +% +font_coding_scheme:="TeX text companion symbols 1---TS1"; +boundarychar:=oct"027"; +font_slant slant; +font_x_height x_height#; +font_cap_height cap_height#; +font_asc_height asc_height#; +font_acc_cap_height (cap_height#+acc_height#); +font_desc_depth desc_depth#; +font_max_height(max(asc_height#,body_height#, + cap_height#+acc_height#)); +font_max_depth(max(desc_depth#,paren_depth#,the_ogonek_depth#)); +% font_digit_width % set inside the digits file +font_cap_stem cap_stem#; % No letter capital I in the symbols +font_baselineskip max(1.2*designsize,body_height#+paren_depth#); + +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; +fi + +bye. diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lxbbase.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lxbbase.mf new file mode 100644 index 00000000000..afbef3ab663 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lxbbase.mf @@ -0,0 +1,204 @@ +%% File LXBBASE copied and modified from AMSYB by American Mathematical Society +%% in order to cope with the necessities of the slides fonts +%% +%% Claudio Beccari 2007 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Changes made for version 2.1: +% Fixed Problems with smode in draw_outlines and showpoints +% Stefan Lindner, 21-March-1991 +% Fixed Problems with serifs at small point sizes +% Stefan Lindner and Lutz Birkhahn, 14-April-91 + +vardef curve@#(expr a,one,b,two)= + save x,y; + z0=if(str@#="br")or(str@#="tl"):(xpart b,ypart a) + else:(xpart a,ypart b) fi; + z1=one[a,z0]; z2=two[b,z0]; + a ..controls z1 and z2.. b + enddef; + +vardef reversecurve@#(expr a,one,b,two)=reverse curve@#(a,one,b,two) enddef; + + +vardef beak(expr injoin,intip,outtip,indent,outjoin,tense)= + save x,y,t,toward,onright,ref; pair toward; boolean onright; path ref; + onright=(xpart intip>xpart injoin); + toward=if onright: right else: left fi; + z1=intip if onright:-else:+ fi (inbeak,0); + z2=outtip if onright:-else:+ fi (outbeak,0); + ref=outjoin{toward}...(z1 if onright:+else:- fi (2*abs(outjoin-injoin),0)); + y4=.5[ypart outjoin,ypart indent]; + z3=ref intersectionpoint ((0,y4)--(w,y4)); + (t3,t4)=ref intersectiontimes ((0,y4)--(w,y4)); + + injoin{toward}..tension tense..z1--intip--outtip--z2...indent{-toward}... + {-(direction t3 of ref)}z3--subpath(t3,0) of ref + enddef; + + + + +boolean its_a_leftserif; + +vardef full_serif_points@# +(expr A,B,Bl,Br,leftlength,rightlength,midbracket_pull)= +%%%% min_limit(join_radius)(.5serif_thickness); % -sl 14.04.91 + (z1-B)=whatever*(A@#-B@#); + (z1l-Bl)=whatever*(A@#-B@#); + (z1r-Br)=whatever*(A@#-B@#); + + y2=y2l=y2r=ypart A; + y1=y1l=y1r=y3=y4=ypart A if ypart A>ypart B:-else:+fi serif_thickness; + + x5=x2=.5[x1l,x1r]; + y5=entasis[y2l,y1l]; + + if its_a_leftserif:x3=x2l=x1l-round(leftlength+serif_constant_amt); + else:x4=x2r=x1r+round(rightlength+serif_constant_amt); fi +enddef; + +vardef leftserif@#(expr A,B,Bl,Br,alength,midbracket_pull)= + its_a_leftserif:=true; + save x,y,p; path p[]; + min_limit(join_radius)(.5serif_thickness); % -sl 14.04.91 + full_serif_points@#(A,B,Bl,Br,alength,0,midbracket_pull); + p0:=Bl{z1l-Bl}...{z3-z1l}z3; + if midbracket_pull<>0: + z3'l=z1l; pos3'(alength+5pt,.5[angle(B-A),if ypart A>ypart B:-fi 180]); + z8'=p0 intersectionpoint (z3'l--z3'r); + z8=(midbracket_pull-eps)[z8',z1l];fi + if ypart A>ypart B:reverse fi + ((if midbracket_pull=0:p0 else:Bl{z1l-Bl}...z8...{z3-z1l}z3 fi + if softpath:)softjoin(z3--z2l)softjoin(else:--fi z2l..z5{right})) +enddef; + +vardef rightserif@#(expr A,B,Bl,Br,alength,midbracket_pull)= + its_a_leftserif:=false; + save x,y,p; path p[]; + min_limit(join_radius)(.5serif_thickness); % -sl 14.04.91 + full_serif_points@#(A,B,Bl,Br,0,alength,midbracket_pull); + p4:=z4{z1r-z4}...{Br-z1r}Br; + if midbracket_pull<>0: + z4'l=z1r; pos4'(alength+5pt,.5[angle(B-A),0]); + z9'=p4 intersectionpoint (z4'l--z4'r); + z9=(midbracket_pull-eps)[z9',z1r];fi + if ypart A>ypart B:reverse fi + ((z5{right}..z2r if softpath:)softjoin(z2r--z4)softjoin(else:--fi + if midbracket_pull=0:p4 else:z4{z1r-z4}...z9...{Br-z1r}Br fi)) +enddef; + +vardef fullserif@#(expr A,B,Bl,Br,leftlength,rightlength,midbracket_pull)= + save x,y,p; path p[]; + p1=rightserif(A,B,Bl,Br,rightlength,midbracket_pull); + p2=leftserif(A,B,Bl,Br,leftlength,midbracket_pull); + if ypart A>ypart B:(p1--p2)else:(p2--p1)fi +enddef; + + +vardef straightarm@#(expr join,tip,heel,thickness,pull)= + save x,y,toward,p; pair toward; path p; + toward=if (str@#="br")or(str@#="tr"):right else:left fi; + z1=tip if (str@#="br")or(str@#="tr"):- else:+ fi (thickness,0); + z2=point .5 of (join{toward}...{tip-heel}z1); + z1-z3=whatever*(tip-heel); y3=ypart join; + p=z1{z3-z1}...{join-z3}join; + z4=pull[z3,point .5 of p]; + if (str@#="br")or(str@#="tl"):reverse fi + (join{toward}...z4...{tip-heel}z1--tip--heel) + enddef; + + +vardef constant_angle(expr top_pt,bot_pt,stem)suffix $= + save theta; + theta=if str$="lr":-else:+fi (angle(length(top_pt-bot_pt) +-+ stem,stem)); + angle(top_pt-bot_pt)+theta-90 +enddef; + + +vardef pos@#(expr b,d) = + (x@#r-x@#l,y@#r-y@#l)=(b,0)rotated d;x@#=.5(x@#l+x@#r);y@#=.5(y@#l+y@#r)enddef; + +vardef mpos(text t)(expr b,d)=forsuffixes $=t:pos$(b,d); endfor enddef; + + +def draw_outlines= pickup pencircle scaled 1.5linethickness; + for n=1 upto 3:if known p[n]:draw p[n];fi + if known p[n]':draw p[n]';fi + if known p[n]'':draw p[n]'';fi endfor + if numeric mode: % -sl 21.03.1991 + if mode=proof: drawgrid; fi + fi % -sl 21.03.1991 + enddef; + +def drawgrid= + pickup pencircle scaled 1; + for y:=h,xheight,0,-descender: draw (0,y)--(w,y); endfor + for y:=unit step unit until (cap+.5unit): draw (0,y)--(w,y); endfor + for y:=unit step -unit until (-d-.5unit): draw (0,y)--(w,y); endfor + for x:=0 step unit until (w+.5unit): draw (x,-d)--(x,h); endfor +enddef; + + +vardef onaline(suffix a,b)(text t)=forsuffixes $=t:z$=whatever[z.a,z.b]; endfor + enddef; + + +def showpoints(text t)= + if numeric mode: % -sl 21.03.1991 + if mode=proof:pickup pencircle scaled 3; + forsuffixes $:=t:forsuffixes s:=l,,r:if known z$.s:draw z$s;fi endfor endfor + pickup pencircle scaled 1; penlabels(t); fi + fi % -sl 21.03.1991 +enddef; + + +vardef inlimit(text amt)(expr lowerlimit,upperlimit)=save this; + this:=max(amt,lowerlimit); this:=min(this,upperlimit);this +enddef; + + +let semi_ = ;; let colon_ = :; let endchar_ = endchar; +def iff expr b = if b:let next_=use_it else:let next_=lose_it fi; next_ enddef; +def use_it = let : = restore_colon; enddef; +def restore_colon = let : = colon_; enddef; +def lose_it = let endchar=fi; let ;=restore_endchar semi_ if false enddef; +def restore_endchar=let ;=semi_; let endchar=endchar_; enddef; +def always_iff expr b = use_it enddef; +boolean wanted[]; + + % for x:="I": + % wanted[byte x]:=true; endfor + % this allows specifying only those characters which are to be shown + % the chars can be specified inside of quotes("c") or as a number(23) +def OK expr x=known wanted[byte x] enddef; + % let iff=always_iff; % allows testing of all chars in the file + + +def min_limit(text this)(expr limit)=if this>limit:save this;this=limit;fi +enddef; + + +% def define_adj_whole_pixels(text t)= +% forsuffixes $:=t: $:=hround(max(eps,$.#-linethickness#)*hppp); endfor enddef; + +def define_min_adj_whole_pixels(text t)= + forsuffixes $:=t: $:=max(lowres_min,hround(max(eps,$.#-linethickness#)*hppp)); + endfor enddef; + +def bool(text t)=boolean t; t enddef; + +def vpix(text t)(text tt)= t:=tt; t:=vround(tt.#*hppp); enddef; % whole v pix +def wpix(text tt)(text t)= + forsuffixes $:=t: $:=hround(tt.#*hppp); endfor enddef; % whole pixels +def adjpix(text tt)(text t)= % adjusted pixels + forsuffixes $:=t: $:=hround(max(eps,tt.#*hppp-linethickness)); endfor enddef; + +def minadjpix(text ttt)(text tt)(text t)= % adjusted pixels with a minimum + forsuffixes $:=t: $:=max(ttt,hround(tt.#*hppp-linethickness)); + endfor enddef; + + +def highres_lowres(text t)(expr a,b)=t:=if lowres:b else:a fi enddef; + diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lxbbold.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lxbbold.mf new file mode 100644 index 00000000000..8f9b6ab8aa2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lxbbold.mf @@ -0,0 +1,162 @@ +%% File LXBBOLD copied and modified from AMSYB by American Mathematical Society +%% in order to cope with the necessities of the slides fonts +%% +%% Claudio Beccari 2007 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Changes of minimal parameters in outlined characters for version 2.1 +% done by Stefan Lindner, 18-April-1991 + +input lxbbase; +%%mode_setup; %called by amsyb.mf; two calls confuse Metafont. NGB 15-OCT-1991 + +width#:= designsize; % was 8pt#; +unit#:= width#/18; +u#:= width#/54; +smallu#:= width#/162; +ascender#:= 37/3*unit#; +cap#:= 37/3*unit#; +number#:= 36/3*unit#; +xheight#:= 25/3*unit#; +descender#:= 12/4*unit#; +define_whole_vertical_pixels + (width,unit,u,smallu,ascender,cap,number,xheight,descender); +wpix(1.90u) (linethickness); +wpix(0.65u) (Sover_bot); +wpix(1.00u) (Aapex,Napex,Vapex,Wapex,Cover,Gover,Oover,Sover_top,Uover); +wpix(9.00u) (Uthin_bracket); +wpix(8.00u) (Kthin_diag_bracket,Xthin_diag_bracket,Ythin_diag_bracket); +wpix(7.00u) (k_thin_diag); +wpix(6.00u) (c_thin_stem_bracket); +wpix(5.00u) (c_thick_stem_bracket,c_inner_bracket,lc_thick_stem_bracket); +wpix(4.00u) (c_round_bracket); +adjpix(1.35u) (serif_thickness); +adjpix(1.30u) (Emid_tip,inbeak); +adjpix(1.50u) (Atip,Btopthin,Bmidthin,Ebot_tip,Ltip,Mapex, + Ntip,Ttip,Vtip,Wtip,Ztip,outbeak); +adjpix(1.65u) (Bbotthin,Gbotthin,Stopthin); +adjpix(1.75u) (Dtopthin,Ebotarm,Lthin,Tthin); +adjpix(1.80u) (Abar,Ctopthin,Dbotthin,Gtopthin,Jbotthin,Pmidarm,Sbotthin); +adjpix(1.90u) (Emidarm,Etoparm,Othin,Pthin,Rthin,Ydiag,Zthin); +adjpix(2.00u) (kthin,Mthin_diag,Wleftthin); +adjpix(2.10u) (Ctip); +adjpix(2.25u) (Athin,Kthin,Mthin_vert,Nthin,Uthin,Vthin,Wrightthin,Xthin); +adjpix(2.50u) (Hbar); +adjpix(2.60u) (Cbotthin); + + +%%%% Begin of changes for version 2.1 +if pixels_per_inch < 1500/designsize: + if pixels_per_inch < 1000/designsize: + if pixels_per_inch < 800/designsize: + if pixels_per_inch < 700/designsize: + minadjpix(0)(8.80u) (stem); + minadjpix(0)(6.80u) (kdiag); + minadjpix(0)(7.40u) (kstem); + minadjpix(0)(7.80u) (Jbulb,Mdiag); + minadjpix(0)(8.20u) (Kdiag); + minadjpix(0)(8.30u) (Gstem,Mstem); + minadjpix(0)(8.60u) (Lstem,Ustem,Ythick_diag); + minadjpix(0)(8.50u) (Bstem,Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag); + minadjpix(0)(8.90u) (Btopcurve); + minadjpix(1)(9.30u) (Bbotcurve,Pcurve,Rcurve); + minadjpix(1)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve); + else: + minadjpix(1)(8.80u) (stem); + minadjpix(1)(6.80u) (kdiag); + minadjpix(1)(7.40u) (kstem); + minadjpix(1)(7.80u) (Jbulb,Mdiag); + minadjpix(1)(8.20u) (Kdiag); + minadjpix(1)(8.30u) (Gstem,Mstem); + minadjpix(1)(8.60u) (Lstem,Ustem,Ythick_diag); + minadjpix(1)(8.50u) (Bstem,Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag); + minadjpix(1)(8.90u) (Btopcurve); + minadjpix(2)(9.30u) (Bbotcurve,Pcurve,Rcurve); + minadjpix(2)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve); + fi + else: + adjpix(3.0u) (Mapex); + minadjpix(1)(8.80u) (stem); + minadjpix(2)(6.80u) (kdiag); + minadjpix(2)(7.40u) (kstem); + minadjpix(2)(7.80u) (Jbulb); + minadjpix(1)(6.00u) (Mdiag); + minadjpix(2)(8.20u) (Kdiag); + minadjpix(2)(8.30u) (Gstem) + minadjpix(2)(8.30u) (Mstem); + minadjpix(2)(8.60u) (Lstem,Ustem,Ythick_diag); + minadjpix(2)(8.50u) (Bstem,Ndiag,Rdiag,Xdiag,Zdiag); + minadjpix(1)(8.50u) (Estem, Fstem); + minadjpix(2)(8.90u) (Btopcurve); + minadjpix(3)(9.30u) (Bbotcurve,Pcurve,Rcurve); + minadjpix(3)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve); + fi + else: + adjpix(3.0u) (Mapex); + minadjpix(2)(8.80u) (stem); + minadjpix(3)(6.80u) (kdiag); + minadjpix(3)(7.40u) (kstem); + minadjpix(3)(7.80u) (Jbulb); + minadjpix(1)(5.00u) (Mdiag); + minadjpix(3)(8.20u) (Kdiag); + minadjpix(3)(8.30u) (Gstem); + minadjpix(2)(8.30u) (Mstem); + minadjpix(3)(8.60u) (Lstem,Ustem,Ythick_diag); + minadjpix(3)(8.50u) (Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag); + minadjpix(2)(8.50u) (Bstem); + minadjpix(3)(8.90u) (Btopcurve); + minadjpix(3)(9.30u) (Bbotcurve,Pcurve,Rcurve); + minadjpix(3)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve) + fi +else: + minadjpix(4)(8.80u) (stem); + minadjpix(4)(6.80u) (kdiag); + minadjpix(4)(7.40u) (kstem); + minadjpix(4)(7.80u) (Jbulb,Mdiag); + minadjpix(4)(8.20u) (Kdiag); + minadjpix(4)(8.30u) (Gstem,Mstem); + minadjpix(4)(8.60u) (Lstem,Ustem,Ythick_diag); + minadjpix(4)(8.50u) (Bstem,Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag); + minadjpix(4)(8.90u) (Btopcurve); + minadjpix(5)(9.30u) (Bbotcurve,Pcurve,Rcurve); + minadjpix(5)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve) +fi; +%%%% end of changes for version 2.1 + +boolean lowres; lowres:=width<50; +highres_lowres(pullin) (.85)(1); % Emidarm +highres_lowres(pulleven) (1)(1.3); % Etoparm,Tarms,Zarms +highres_lowres(pullout) (1.1)(1); % Ebotarm,Lbotarm +highres_lowres(bracket0) (.0)(0); % Ntopleft +highres_lowres(bracket3) (.3)(0); % Nthinstems +highres_lowres(bracket01) (.0)(.1); % Uthin +highres_lowres(bracket32) (.3)(.2); % Vstems +highres_lowres(bracket4) (.4)(0); % P-all,R-all,I-all,F-all +highres_lowres(bracket42) (.4)(.2); % Xdiag + +bool(ctrls):=false; +entasis:=inlimit(0)(0,1); +serif_constant_amt:=0pt; +join_radius:=1; +bool(softpath):=true; + +c_thick_stem_bracket:=min(.5cap-eps,c_thick_stem_bracket); +rulepen:=pensquare scaled 1; +extra_beginchar:=extra_beginchar&"save t,p,ref; path p[],p[]',p[]'',ref[];"; +extra_beginchar:=extra_beginchar&"pickup pencircle scaled linethickness;"; + +for x:="R": + wanted[byte x]:=true; endfor % test these characters + let iff=always_iff; % tests all chars in the file + +font_normal_space .3width#; % TeX fontdimen 2 normal word space +font_normal_stretch .15width#; % TeX fontdimen 3 interword stretch +font_normal_shrink .1width#; % TeX fontdimen 4 interword shrink +font_x_height xheight#; % Tex fontdinem 5 for accents +font_quad width#; % TeX fontdimen 6 quad width +font_extra_space .1width#; % TeX fontdimen 7 extra space(period) + + +input lxbcaps +bye % changed from "end" 26 Aug 93; bnb diff --git a/Master/texmf-dist/fonts/source/public/lxfonts/lxbcaps.mf b/Master/texmf-dist/fonts/source/public/lxfonts/lxbcaps.mf new file mode 100644 index 00000000000..ebe2cbb6025 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/lxfonts/lxbcaps.mf @@ -0,0 +1,805 @@ +%% File LXBCAPS copied and modified from AMSYB by American Mathematical Society +%% in order to cope with the necessities of the slides fonts +%% +%% Claudio Beccari 2007 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% Changes made by Stefan Lindner for version 2.1 to fix some +% rounding problems at low resolutions 03-Mar-1991 +% ru defined and substituted for u in drawings of characters. + +def ru(expr A)= + begingroup + save rounded_u; rounded_u#:=A*u#; + define_whole_vertical_pixels(rounded_u); + rounded_u + endgroup +enddef; + +iff OK "A": "The letter A"; beginchar("A",13unit#,cap#,0); + + top z20=(.48w,h+Aapex); pos20(Atip,0); + bot y3=0; z3l=whatever[z20l,(1.5unit,0)]; + bot y6=0; z6r=whatever[z20r,(w-round(unit+u),0)]; + z20l=z1l; z20r=z4r; + mpos(1,3)(Athin,constant_angle(z20l,(1.5unit,0),0)); + mpos(4,6)(stem,constant_angle(z20r,(w-round(unit+u),0),0)); + onaline(1l,3l)(2l); y2l=c_round_bracket; + onaline(1r,3r)(2r); y2r=c_inner_bracket; + onaline(4l,6l)(5l); y5l=c_inner_bracket; + onaline(4r,6r)(5r); y5r=c_thick_stem_bracket; + z40=whatever[.8[z1l,z1r],z2r]; z40=whatever[.8[z4r,z4l],z5l]; + y41=round(.4[serif_thickness,y40]-Abar); % bar bottom + y42=y41+Abar; + ref1=rightserif(z3,z1,z2l,z40,ru(7),bracket0)--z40; + ref2=z40--leftserif(z6,z4,z40,z5r,ru(7),bracket32); + ref3=(0,y41)--(w,y41); + ref4=(0,y42)--(w,y42); + x11=xpart (ref1 intersectionpoint ref3); + x12=xpart (ref2 intersectionpoint ref3); + x13=xpart (ref2 intersectionpoint ref4); + x14=xpart (ref1 intersectionpoint ref4); + y11=y12=y41; y13=y14=y42; + + p1=z20l--leftserif(z3,z1,z2l,z1r,ru(3),bracket0)--ref1--ref2-- + rightserif(z6,z4,z5l,z5r,ru(2.5),bracket0)--z20r--cycle; + p2=z11--z12--z13--z14--cycle; + + showpoints(1,2,3,4,5,6,11,12,13,14,20,40,41,42); + draw_outlines; + endchar; + + +iff OK "B": "The letter B"; beginchar("B",12unit#,cap#,0); + + top lft z1l=(round(ru(5)+2smallu),h); + z2l=(x1l,h-c_thick_stem_bracket); + z2r=(x1r,h-c_round_bracket); + z3l=(x1l,c_thick_stem_bracket); + z3r=(x1r,c_round_bracket); + bot z4l=(x1l,0); + mpos(1,4)(Bstem,0); + z5l=(rt x1r+ru(4),y1); + z5r=(rt x1r+ru(3),y1-Btopthin); + onaline(1r,4r)(8l); + bot y8l=.5h-smallu; pos8(Bmidthin,90); + rt z6l=(w-round(1.5unit),.5[y5l,y8l]); pos6(Btopcurve,180); + rt z9l=(w-round(ru(2.5)),.5[y10l,y8r]); pos9(Bbotcurve,180); + z10l=(rt x1r+ru(4),y4); + z10r=(rt x1r+ru(3),y4+Bbotthin); + z7l=(rt x1r+ru(3),y8l); + rt z7=(lft x9r-ru(3),.5[top y8l,y8r]); + + p1=leftserif(z1,z4,z2l,z2r,ru(5.2),bracket4)-- + leftserif(z4,z1,z3l,z3r,ru(5.2),bracket4)-- + curve.br(z10l,.5,z9l,.7)--curve.tr(z9l,.7,z7,.5)-- + curve.br(z7,.5,z6l,.5)--curve.tr(z6l,.8,z5l,.6)--cycle; + p1'=z8l--z8r; + p1''=curve.br(z8r,.6,z6r,.85)--curve.tr(z6r,.7,z5r,.5)... + {left}z5r...{down}z2r--cycle; + p2''=z8l--z3r{down}...{right}z10r-- + curve.br(z10r,.6,z9r,.7)--curve.tr(z9r,.8,z7l,.6)--cycle; + + showpoints(1,2,3,4,5,6,7,8,9,10); + draw_outlines; + endchar; + + +iff OK "C": "The letter C"; beginchar("C",(1+12)*unit#,cap#,0); + + bot z2l=(max(7unit,.5w),-Cover); + y2r=y2l+Cbotthin; + x2r=x2l+(min(Cbotthin,abs(y2r-y2l))); + bot rt z1l=(w-ru(2),2unit); + ref1=z2l{right}...z1l; + pos1(Ctip,angle(z1l-precontrol 1 of ref1)+ 90); + lft z3l=(round ru(2),.5h); pos3(Ccurve,0); + top z4l=(x2l,h+Cover); + y4r=y4l-Ctopthin; + x4r=x4l+(min(ru(.5),abs(y4r-y4l))); + bot rt z5=(w-round(unit+ru(.5)),h-3unit-ru(2.5)); + z6=(x5,y4l); + z7=z6-(ru(2.5),ru(2.5)); + p1=curve.tl(z4l,.5,z3l,.7)--curve.bl(z3l,.7,z2l,.5)...z1l-- + z1r...reversecurve.bl(z3r,.7,z2r,.6)--reversecurve.tl(z4r,.6,z3r,.6)-- + beak(z4r,z5,z6,z7,z4l,1.2)--cycle; + + showpoints(1,2,3,4,5,6,7); + draw_outlines; + endchar; + + +iff OK "D": "The letter D"; beginchar("D",13unit#,cap#,0); + + top lft z1l=(round(ru(5)+smallu),h); + z2l=(x1l,h-c_thick_stem_bracket); + z2r=(x1r,h-c_round_bracket); + z3l=(x1l,c_thick_stem_bracket); + z3r=(x1r,c_round_bracket); + bot z4l=(x1l,0); + mpos(1,4)(stem,0); + z5l=(rt x1r+ru(4),y4); + z5r=(rt x1r+ru(3),y5l+Dbotthin); + rt z6l=(w-u-2smallu,.52h); pos6(Dcurve,180); + z7l=(rt x1r+ru(4),y1); + z7r=(rt x1r+ru(3.5),y7l-Dtopthin); + + p1=leftserif(z1,z4,z2l,z2r,ru(4.5),bracket4)-- + leftserif(z4,z1,z3l,z3r,ru(4.5),bracket4)-- + curve.br(z5l,.5,z6l,.7)--curve.tr(z6l,.7,z7l,.5)--cycle; + p1''=curve.br(z5r,.5,z6r,.8)--curve.tr(z6r,.7,z7r,.5)... + {down}z2r...z3r{down}...{right}z5r--cycle; + + showpoints(1,2,3,4,5,6,7); + draw_outlines; + endchar; + + +iff OK "E": "The letter E"; beginchar("E",(1+11)*unit#,cap#,0); + + top lft z1l=(round(ru(5.5)),h); + z2l=(x1l,h-c_thick_stem_bracket); + z2r=(x1r,h-c_inner_bracket); + z3l=(x1l,c_thick_stem_bracket); + z3r=(x1r,c_inner_bracket); + bot z4l=(x1l,0); + mpos(1,4)(Estem,0); + bot rt z11=(w-unit,0); + top rt z12=(w-.5unit,3unit+ru(2)); + z13=(.5w+.5unit,y4+Ebotarm); + z14=(min(x13,rt x4r+.5unit),y13); + rt z21=(w-ru(4),y1); + bot z22=(x21,top y1-3.5unit); + z23=(ru(19),y1-Etoparm); + z24=(rt x1r+.5unit,y23); + onaline(1r,4r)(31,35); + bot y31=.5h-smallu; + y35=y31+Emidarm; + rt z33=(w-(3.8unit),.5[y31,y35]); + x32=x34=x33; + bot y32=bot y31-2.5unit; + top y34=bot y32+6unit; + + p1=leftserif(z4,z1,z3l,z3r,ru(4.75),.4)-- + straightarm.br(z13,z12,z11,Ebot_tip,pullout)--z14{left}...{up}z3r-- + z2r{up}...{right}z24--straightarm.tr(z23,z22,z21,Emid_tip,pulleven)-- + leftserif(z1,z4,z2l,z2r,ru(4.75),.4)--cycle; + p1'=straightarm.br(z31,z32,z33,Emid_tip,pullin)-- + straightarm.tr(z35,z34,z33,Emid_tip,pullin); + + showpoints(1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34,35); + draw_outlines; + endchar; + + +iff OK "F": "The letter F"; beginchar("F",(1+10)*unit#,cap#,0); + + top lft z1l=(round(ru(5.5)),h); + z2l=(x1l,h-c_thick_stem_bracket); + z2r=(x1r,h-c_inner_bracket); + z3l=(x1l,c_thick_stem_bracket); + z3r=(x1r,c_inner_bracket); + bot z4l=(x1l,0); + mpos(1,4)(Fstem,0); + rt z21=(w-.5unit,y1); + bot z22=(x21,top y1-3.5unit); + z23=(ru(19),y1-Etoparm); + z24=(rt x1r+.5unit,y23); + onaline(1r,4r)(31,35); + bot y31=.5h-smallu; + y35=y31+Emidarm; + rt z33=(w-3unit,.5[y31,y35]); + x32=x34=x33; + bot y32=bot y31-2.5unit; + top y34=bot y32+6unit; + + p1=fullserif(z4,z1,z3l,z3r,ru(4.75),ru(6),bracket4)--z2r{up}...{right}z24-- + straightarm.tr(z23,z22,z21,Emid_tip,pulleven)-- + leftserif(z1,z4,z2l,z2r,ru(4.75),bracket4)--cycle; + p1'=straightarm.br(z31,z32,z33,Emid_tip,pullin)-- + straightarm.tr(z35,z34,z33,Emid_tip,pullin); + + showpoints(1,2,3,4,21,22,23,24,31,32,33,34,35); + draw_outlines; + endchar; + + +iff OK "G": "The letter G"; beginchar("G",(1+13)*unit#,cap#,0); + + bot z2l=(max(7unit,.5w),-Gover); + y2r=y2l+Gbotthin; + x2r=x2l+(min(Gbotthin,abs(y2r-y2l))); + lft z3l=(round ru(2),.5h); pos3(Gcurve,0); + top z4l=(x2l,h+Gover); + y4r=y4l-Gtopthin; + x4r=x4l+(min(.5u,abs(y4r-y4l))); + bot rt z5=(w-round(2unit+.5u),h-3unit-ru(2.5)); + z6=(x5,y4l); + z7=z6-(ru(2.5),ru(2.5)); + top rt z11r=(rt x5+.5u,5unit+.5u); + bot z13r=(x11r,unit-2smallu); + mpos(11,13)(Gstem,0); + onaline(11r,13r)(12r); y12r=max(y11r-c_thick_stem_bracket,y13r); + onaline(11l,13l)(12l); y12l=max(y11l-c_thick_stem_bracket,y13r+unit); + + p1=curve.tl(z4l,.5,z3l,.7)--curve.bl(z3l,.7,z2l,.5)--z2l{right}...z13r-- + fullserif(z11,z13,z12l,z12r,ru(5.5),ru(4.5),bracket0)...{down}z13l...{left}z2r-- + reversecurve.bl(z3r,.7,z2r,.6)--reversecurve.tl(z4r,.6,z3r,.6)-- + beak(z4r,z5,z6,z7,z4l,1.2)--cycle; + + showpoints(2,3,4,5,6,7,11,12,13); + draw_outlines; + endchar; + + +iff OK "H": "The letter H"; beginchar("H",(1+13)*unit#,cap#,0); + + numeric H_inner_serif_amt; + top lft z1l=(round(3.75unit/2),h); + z2l=(x1l,h-c_thick_stem_bracket); + z3l=(x1l,c_thick_stem_bracket); + bot z4l=(x1l,0); + top rt z11r=(w-round(3.75unit/2),h); + z12r=(x11r,h-c_thick_stem_bracket); + z13r=(x11r,c_thick_stem_bracket); + bot z14r=(x11r,0); + mpos(1,2,3,4,11,12,13,14)(stem,0); + onaline(1r,4r)(5l,5r); bot y5l=bot y15l=.5cap-u; + onaline(11l,14l)(15l,15r); y5r=y15r=y5l+Hbar; + H_inner_serif_amt=ru(4.75); + if (x1r+H_inner_serif_amt+.5linethickness)>.5w: % keeps inner serifs + H_inner_serif_amt:=.5w-x1r-.5linethickness-1; % from merging + fi + + p1=fullserif(z1,z4,z2l,z2r,ru(4.75),H_inner_serif_amt,bracket4)-- + fullserif(z4,z1,z3l,z3r,ru(4.75),H_inner_serif_amt,bracket4)--cycle; + p2=fullserif(z11,z14,z12l,z12r,H_inner_serif_amt,ru(4.75),bracket4)-- + fullserif(z14,z11,z13l,z13r,H_inner_serif_amt,ru(4.75),bracket4)--cycle; + p1'=z5r--z15r--z15l--z5l; + + showpoints(1,2,3,4,5,11,12,13,14,15); + draw_outlines; + endchar; + + +iff OK "I": "The letter I"; beginchar("I",(1+6)*unit#,cap#,0); + + top lft z1l=(round((w-stem-linethickness)/2),h); + z2l=(x1l,h-c_thick_stem_bracket); + z3l=(x1l,c_thick_stem_bracket); + bot z4l=(x1l,0); + mpos(1,2,3,4)(stem,0); + + p1=fullserif(z1,z4,z2l,z2r,ru(5),ru(5),bracket4)-- + fullserif(z4,z1,z3l,z3r,ru(5),ru(5),bracket4)--cycle; + + showpoints(1,2,3,4); + draw_outlines; + endchar; + + +iff OK "J": "The letter J"; beginchar("J",(2+7)*unit#,cap#,descender#); + + top rt z1r=(round(w-2unit),h); + z2r=(x1r,h-c_thick_stem_bracket); + z3r=(x1r,2unit); + z3l=(x1l,u); + mpos(1,2)(stem,0); + bot z10r=(w/3,-.45d); + z10l=z10r+(-smallu,Jbotthin); + lft z12l=(smallu,ru(2)); pos12(Jbulb,0); + top z13=(x12,2unit-smallu); + ref1=z12r...z12l...cycle; + z14= point 1.75 of ref1; z15=direction 1.75 of ref1; + z11=(x12r-.5unit,.5[y10l,y14]); + + p1=fullserif(z1,z2,z2l,z2r,ru(5.5),ru(4.75),bracket4)--z3l{down}...z10l{left}... + z11{up}...z14{z15}...z12r{up}...z13{left}...z12l{down}... % bulb + curve.br(z10r,.65,z3r,.65)--cycle; + + showpoints(1,2,3,10,11,12,13,14,15); + draw_outlines; + endchar; + + +iff OK "K": "The letter K"; beginchar("K",(1+13)*unit#,cap#,0); + + numeric K_inner_serif_amt; + top lft z11l=(2unit,h); + z12l=(x11l,h-c_thick_stem_bracket); + z13l=(x11l,c_thick_stem_bracket); + bot z14l=(x11l,0); + mpos(11,12,13,14)(stem,0); + onaline(11r,14r)(3r,4); + bot y3r=.4cap; + top rt z1r=(w-2unit,cap); + mpos(1,3)(Kthin,angle(z1r-z3r)-90); + y2l=y2r=cap-Kthin_diag_bracket; + onaline(1l,3l)(2l,4); + onaline(1r,3r)(2r,21l); + onaline(1,3)(0); top y0=cap; + bot y21l=y3r+.5unit; + bot rt z23r=(w-ru(2),0); + mpos(21,23)(Kdiag,angle(z1r-z3r)); + y22l=y22r=c_thick_stem_bracket; + onaline(21l,23l)(22l); + onaline(21r,23r)(22r); + onaline(21,23)(20); bot y20=0; + + K_inner_serif_amt=ru(4.75); + if (x11r+K_inner_serif_amt+.5linethickness)>.5w: + K_inner_serif_amt:=.5w-x11r-.5linethickness-1; + fi + + p1=fullserif(z11,z14,z12l,z12r,ru(4.75),K_inner_serif_amt,bracket4)-- + fullserif(z14,z11,z13l,z13r,ru(4.75),K_inner_serif_amt,bracket4)--cycle; + p2=z3r--fullserif(z0,z3,z2l,z2r,ru(9),ru(3.5),bracket01)--z4--cycle; + p3=z21l--fullserif(z20,z21,z22l,z22r,ru(4),.5unit,bracket32)--z21r--cycle; + + showpoints(0,1,2,3,4,11,12,13,14,20,21,22,23); + draw_outlines; + endchar; + + +iff OK "L": "The letter L"; beginchar("L",(1+11)*unit#,cap#,0); + + top lft z1l=(round(ru(5.5)),h); + z2l=(x1l,h-c_thick_stem_bracket); + z3l=(x1l,c_thick_stem_bracket); + z3r=(x1r,c_inner_bracket); + bot z4l=(x1l,0); + mpos(1,2,4)(Lstem,0); + bot rt z11=(w-unit,0); + top rt z12=(w-.5unit,4unit); + z13=(.5w+.5unit,y4+Lthin); + z14=(min(x13,rt x4r+.5unit),y13); + + p1=fullserif(z1,z4,z2l,z2r,ru(4.75),ru(4.5),bracket4)-- + leftserif(z4,z1,z3l,z3r,ru(4.75),bracket4)-- + straightarm.br(z13,z12,z11,Ltip,pullout)--z14{left}...{up}z3r--cycle; + + showpoints(1,2,3,4,11,12,13,14); + draw_outlines; + endchar; + + +iff OK "M": "The letter M"; beginchar("M",(1+16)*unit#,cap#,0); + + lft x4l=ru(5.6); bot y4=0; + rt x14r=w-2unit; bot y14=0; + top z1l=(x4l,h); + top z11r=(x14r,h); + mpos(1,3,4)(Mthin_vert,0); + mpos(11,12,13,14)(Mstem,0); + onaline(1,4)(3); y12l=h-c_thick_stem_bracket; + onaline(11,14)(12,13); y3l=y13l=c_thick_stem_bracket; + bot z22=(x1r+.5(x11l-x1r-Mapex),0); pos22(Mapex,0); + top z24=(x11l-u,h); + top z26=(rt x1r+Mdiag,h); + top z25=(.5[x24,x26],3unit+ru(2)); pos25(u,0); + bot y23=h-ru(4); + (z23-z22r)=whatever*(z24-z25r); + bot y21=h-ru(5); + (z21-z22l)=whatever*(z26-z25l); + onaline(26,25l)(30r,31r); onaline(21,22l)(30l,31l); + y30=y30l=y30r=h-.5linethickness; x30=.5[x30l,x30r]; + y31=y31l=y31r=0; x31=.5[x31l,x31r]; + ref1=leftserif(z30,z31,z21,z25r,ru(5.5),bracket0)--z22l; + z2l=ref1 intersectionpoint ((x3l,0)--(x3l,h)); + z2r=ref1 intersectionpoint ((x3r,0)--(x3r,h)); + + p1=fullserif(z4,z3,z3l,z3r,ru(4.7),ru(5),bracket0)--z2r--z2l--cycle; + p2=z22r--z23--(x11l,y24)--z24--z25r--z25l--z26--ref1--cycle; + p3=fullserif(z14,z13,z13l,z13r,ru(4.7),ru(5),bracket0)-- + rightserif(z11,z12,z12l,z12r,ru(4.7),bracket0)--(x11l,y24)--cycle; + + showpoints(1,2,3,4,11,12,13,14,21,22,23,24,25,26,30,31); + draw_outlines; + endchar; + + +iff OK "N": "The letter N"; beginchar("N",13unit#,cap#,0); + + bot lft z1l=(round 2unit,0); mpos(1,2,11,12)(Nthin,0); + z2=(x1,c_thin_stem_bracket); + z3=(x1l,h-ru(4)); + top rt z11r=(round (w-ru(5.3)),h); + z12=(x11,h-c_thin_stem_bracket); + bot z22=(x11r,-Napex); + z23l=z22-(Ntip,0); mpos(4,23)(Ndiag,angle(z3-z23l)-90); +% onaline(1r,2r)(4l); bot z4l=whatever[z3,z23l]; + onaline(1r,2r)(4l); z4l=whatever[z3,z23l]; + onaline(11l,12l)(14); onaline(4r,23r)(13,14); + top y21=h; z21=whatever[z14,1.05[z4l,z4r]]; + onaline(4,23)(20); y20=y21; + onaline(11r,12r)(13); + + p1=leftserif(z20,z4,z4l,z4r,ru(2.5),bracket0)--z23l--z22--z13--z21--cycle; + p1'=z3--fullserif(z1,z2,z2l,z2r,ru(4.7),ru(5),bracket3)--z4l; + p2'=z13--fullserif(z11,z12,z12l,z12r,ru(5),ru(4.2),bracket3)--z14; + + showpoints(1,2,3,4,11,12,13,14,20,21,22,23); + draw_outlines; + endchar; + + +iff OK "O": "The letter O"; beginchar("O",(1+13)*unit#,cap#,descender#); + + top z1l=(.5w,h+Oover); pos1(Othin,-90); + lft z2l=(round(ru(1.8)),.5h); pos2(Ocurve,0); + bot z3l=(.5w,-Oover); pos3(Othin,90); + rt z4l=(round(w-ru(1.8)),.5h); pos4(Ocurve,180); + + p1=curve.tl(z1l,.5,z2l,.7)--curve.bl(z2l,.7,z3l,.5)-- + curve.br(z3l,.5,z4l,.7)--curve.tr(z4l,.7,z1l,.5)--cycle; + p1''=curve.tl(z1r,.6,z2r,.7)--curve.bl(z2r,.7,z3r,.6)-- + curve.br(z3r,.6,z4r,.7)--curve.tr(z4r,.7,z1r,.6)--cycle; + + showpoints(1,2,3,4); + draw_outlines; + endchar; + + +iff OK "P": "The letter P"; beginchar("P",(1+10)*unit#,cap#,0); + + top lft z1l=(round(ru(5)+smallu),h); + z2l=(x1l,h-c_thick_stem_bracket); + z2r=(x1r,h-c_round_bracket); + z3l=(x1l,c_thick_stem_bracket); + z3r=(x1r,c_inner_bracket); + bot z4l=(x1l,0); + mpos(1,4)(stem,0); + z5l=(rt x1r+ru(4),y1); + z5r=(rt x1r+ru(3),y1-Pthin); + rt z6l=(w-2smallu,.5[y5l,y7l]); pos6(Pcurve,180); + onaline(1r,4r)(8l,8r); bot y8l=5.5unit; y8r=y8l+Pmidarm; + z7l=(rt x1r+ru(4),y8l-round(.2smallu)); + z7r=(rt x1r+ru(3),y8l+Pthin); + + p1=leftserif(z1,z4,z2l,z2r,ru(4.5),bracket4)-- + fullserif(z4,z1,z3l,z3r,ru(4.5),ru(4.8),bracket4)--z8l{right}... + curve.br(z7l,.5,z6l,.7)--curve.tr(z6l,.7,z5l,.6)--cycle; + p1'=z8l--z8r; + p1''=z8r--curve.br(z7r,.6,z6r,.8)--curve.tr(z6r,.8,z5r,.7)... + {down}z2r--cycle; + + showpoints(1,2,3,4,5,6,7,8); + draw_outlines; + endchar; + + +iff OK "Q": "The letter Q"; beginchar("Q",(1+13)*unit#,cap#,descender#); + + top z1l=(.5w,h+Oover); pos1(Othin,-90); + lft z2l=(round(ru(1.8)),.5h); pos2(Ocurve,0); + bot z3l=(.5w,-Oover); pos3(Othin,90); + rt z4l=(round(w-ru(1.8)),.5h); pos4(Ocurve,180); + ref1=curve.bl(z2l,.7,z3l,.5)--curve.br(z3l,.5,z4l,.7); + ref2=(.35w,-d)--(.35w,h); + ref3=(.35w+stem+2linethickness,-d)--(.35w+stem+2linethickness,h); + lft z11=ref1 intersectionpoint ref2; + bot rt z13r=(round(w-ru(2.5)),-d+4smallu); + bot z12=(.6[x11,x13r],-d-round(2smallu)); + ref4=z12{right}...z13r; + pos13(serif_thickness,angle(z13r-precontrol 1 of ref4)-90); + z14=z13l-(ru(3.5),.5u); + rt z15=ref1 intersectionpoint ref3; + + p1=curve.tl(z1l,.5,z2l,.7)--ref1--curve.tr(z4l,.7,z1l,.5)--cycle; + p1'=z11...z12{right}...z13r--z13l...z14{left}...z15; + p1''=curve.tl(z1r,.6,z2r,.7)--curve.bl(z2r,.7,z3r,.6)-- + curve.br(z3r,.6,z4r,.7)--curve.tr(z4r,.7,z1r,.6)--cycle; + + showpoints(1,2,3,4,11,12,13,14,15); + draw_outlines; + endchar; + + +iff OK "R": "The letter R"; beginchar("R",(1+12)*unit#,cap#,0); + + top lft z1l=(round(ru(5)+2smallu),h); + z2l=(x1l,h-c_thick_stem_bracket); + z2r=(x1r,h-c_round_bracket); + z3l=(x1l,c_thick_stem_bracket); + z3r=(x1r,c_inner_bracket); + bot z4l=(x1l,0); + mpos(1,4)(stem,0); + z5l=(rt x1r+ru(5),y1); + z5r=(rt x1r+ru(3),y1-Rthin); + rt z6r=(w-(ru(5.0)),.5[y5l,y8l]); pos6(Rcurve,0); + onaline(1r,4r)(8l,8r); bot y8l=5.6unit; y8r=y8l+Rthin; + ref1=curve.br(z8l,.5,z6r,.9); + ref2=(rt x4r+.5unit,0)--(rt x4r+.5unit,h); + ref3=(x4r+stem+2linethickness,0)--(x4r+stem+2linethickness,h); + lft z11l=ref1 intersectionpoint ref2; + rt z13l=(w-u,y4); pos13(serif_thickness,90); + lft z12l=(w-4unit,y13l); + z14=z13r-(ru(3),0); + top rt z15=ref1 intersectionpoint ref3; + + p1=leftserif(z1,z4,z2l,z2r,ru(4.8),bracket4)-- + fullserif(z4,z1,z3l,z3r,ru(4.8),ru(4.8),bracket4)-- + curve.br(z8l,.6,z6r,.9)--curve.tr(z6r,.7,z5l,.5)--cycle; + p1'=z8l--z8r; + p2'=z11l--z12l--z13l--z13r{left} + if lowres:..tension 10.. else:... fi{z15-z14}z15; + p1''=z8r--curve.br(z8r,.8,z6l,.9)--curve.tr(z6l,.9,z5r,.5)... + {down}z2r--cycle; + + showpoints(1,2,3,4,5,6,8,11,12,13,14,15); + draw_outlines; + endchar; + + +iff OK "S": "The letter S"; beginchar("S",10unit#,cap#,0); + + top z1r=(.5w-u,h+Sover_top); pos1(Stopthin,90); + rt z3=(w-ru(4),y1r); + x4=.3[x3,x1r]; y4=y3-ru(1.5); + bot z2=top z3-(0,4unit-smallu); + bot z11l=(.5w-u,-Sover_bot); pos11(Sbotthin,90); + lft z13=(ru(2),y11l); + x14=.3[x13,x11l]; y14=y13+ru(1.5); + top z12=bot z13+(0,4.5unit); + z21l=(ru(2.5),.73h); + y21r=.35[y21l,y1r]; rt x21r=.48[x21l,x1r]; + z22=(.5w,.52h); pos22(stem,37); + z23r=(w-ru(2)-smallu,.28h); + y23l=.7[y11l,y23r]; lft x23l=.53[x11l,x23r]; + + p1=beak(z1l,z2,z3,z4,z1r,1.2)--curve.tl(z1r,.65,z21l,.65)... + z22l... + reversecurve.br(z11r,.7,z23l,.7)-- + beak(z11r,z12,z13,z14,z11l,1.2)-- + curve.br(z11l,.6,z23r,.6)...1.1[z22l,z22r]... + reversecurve.tl(z1l,.6,z21r,.6)--cycle; + + showpoints(1,2,3,4,11,12,13,14,21,22,23); + draw_outlines; + endchar; + + +iff OK "T": "The letter T"; beginchar("T",(1+11)*unit#,cap#,0); + + mpos(1,2,3)(stem,0); + bot lft z1l=(round((w-stem-linethickness)/2),0); + z2l=(x1l,c_thick_stem_bracket); + top z4=(x1,h); + bot y5l=top y4-(3unit+ru(2)); onaline(1,4)(5); + mpos(4,5)(round(w-ru(3.5)-linethickness),0); + z3l=(x1l,y4-Tthin); + + p1=straightarm.br(z3r,z5r,z4r,Ttip,pulleven)-- + straightarm.bl(z3l,z5l,z4l,Ttip,pulleven)--cycle; + p1'=z3l--fullserif(z1,z4,z2l,z2r,ru(5.25),ru(5.25),bracket4)--z3r; + + showpoints(1,2,3,4,5); + draw_outlines; + endchar; + + +iff OK "U": "The letter U"; beginchar("U",13unit#,cap#,0); + + top lft z1l=(round(ru(5)+smallu),h); + z2l=(x1l,h-c_thick_stem_bracket); + z3l=(x1l,4unit); + top rt z11r=(w-round(ru(5.5)),h); + z12r=(x11r,h-Uthin_bracket); + z13r=(x11r,4.5unit); + mpos(1,2,3)(Ustem,0); + mpos(11,12,13)(Uthin,0); + bot z10r=(.5w,-Uover); + z10l=z10r+(.5unit,Uthin); + + p1=fullserif(z1,z2,z2l,z2r,ru(4.5),ru(5),bracket4)-- + curve.bl(z3l,.65,z10r,.65)--curve.br(z10r,.65,z13r,.65)-- + fullserif(z11,z12,z12l,z12r,ru(4.75),ru(4.75),bracket01)--z13l{down}-- + reversecurve.br(z10l,.65,z13l,.65)-- + reversecurve.bl(z3r,.7,z10l,.7)--cycle; + + showpoints(1,2,3,10,11,12,13); + draw_outlines; + endchar; + + +iff OK "V": "The letter V"; beginchar("V",13unit#,cap#,0); + + bot z20=(.51w,-Vapex); pos20(Vtip,0); + top y3=h; z3r=whatever[z20r,(w-round(unit+2smallu),h)]; + top y6=h; z6l=whatever[z20l,(unit,h)]; + z20r=z1r; z20l=z4l; + mpos(1,3)(Vthin,constant_angle((w-round(unit+2smallu),h),z20r,0)); + mpos(4,6)(stem,constant_angle((unit,h),z20l,0)); + onaline(1r,3r)(2r); y2r=h-c_round_bracket; + onaline(1l,3l)(2l); y2l=h-c_inner_bracket; + onaline(4r,6r)(5r); y5r=h-c_inner_bracket; + onaline(4l,6l)(5l); y5l=h-c_thick_stem_bracket; + z40=whatever[.8[z1r,z1l],z2l]; z40=whatever[.8[z4l,z4r],z5r]; + + p1=z20l--z20r--rightserif(z3,z1,z2l,z2r,ru(3),bracket0)-- + leftserif(z3,z1,z40,z2r,ru(7),bracket0)--z40-- + rightserif(z6,z4,z5l,z40,ru(7),bracket32)-- + leftserif(z6,z4,z5l,z5r,ru(2.5),bracket0)--z20l--cycle; + + showpoints(1,2,3,4,5,6,20,40); + draw_outlines; + endchar; + + +iff OK "W": "The letter W"; beginchar("W",(1+17)*unit#,cap#,0); + + bot z20=(.3w,-Wapex); pos20(Wtip,0); + top y3=h; z3r=whatever[z20r,(.6w,h)]; + top y6=h; z6l=whatever[z20l,(unit,h)]; + z20r=z1r; z20l=z4l; + mpos(1,3)(Wleftthin,constant_angle((.6w,h),z20r,0)); + mpos(4,6)(stem,constant_angle((unit,h),z20l,0)); + onaline(1r,3r)(2r); y2r=h-c_round_bracket; + onaline(1l,3l)(2l); y2l=h-c_inner_bracket; + onaline(4r,6r)(5r); y5r=h-c_inner_bracket; + onaline(4l,6l)(5l); y5l=h-c_thick_stem_bracket; + z40=whatever[.8[z1r,z1l],z2l]; z40=whatever[.8[z4l,z4r],z5r]; + + bot z21=(.7w,-Wapex); pos21(Wtip,0); + top y13=h; z13r=whatever[z21r,(w-unit,h)]; + top y16=h; z16l=whatever[z21l,(.44w,h)]; + z21r=z11r; z21l=z14l; + mpos(11,13)(Wrightthin,constant_angle((w-unit,h),z21r,0)); + mpos(14,16)(stem,constant_angle((.44w,h),z21l,0)); + onaline(11r,13r)(12r); y12r=h-c_round_bracket; + onaline(11l,13l)(12l); y12l=h-c_inner_bracket; + onaline(14r,16r)(15r); y15r=h-c_inner_bracket; + onaline(14l,16l)(15l); y15l=h-c_thick_stem_bracket; + z41=whatever[.8[z11r,z11l],z12l]; z41=whatever[.8[z14l,z14r],z15r]; + + ref1=leftserif(z16,z14,z15l,z15r,ru(2.5),bracket0)--z21l; + z30=ref1 intersectionpoint (z20r--z3r); + z31=ref1 intersectionpoint (z40--z3l); + + p1=z21l--z21r--rightserif(z13,z11,z12l,z12r,ru(2),bracket0)-- + leftserif(z13,z11,z41,z12r,ru(7),bracket0)--z41-- + rightserif(z16,z14,z15l,z41,ru(6),bracket32)-- + ref1--cycle; + p2=z20l--z20r--z30--z31--z40-- + rightserif(z6,z4,z5l,z40,ru(5),bracket32)-- + leftserif(z6,z4,z5l,z5r,ru(2),bracket0)--z20l--cycle; + + showpoints(1,2,3,4,5,6,11,12,13,14,15,16,20,21,30,31,40,41); + draw_outlines; + endchar; + + +iff OK "X": "The letter X"; beginchar("X",13unit#,cap#,0); + + numeric botjoin,topjoin,joinwidths; + botjoin=.42h; topjoin=.62h; + + top z1=(.2w,h); + bot z3=(.8w,0); + z2r=.5[z1r,z3r]; + mpos(1,3)(Xdiag,constant_angle(z1,z3,0)); + pos2(.9Xdiag,constant_angle(z1,z3,0)); + ref1=leftserif(z1,z3,z2l,z2r,ru(2.5),bracket4)... + leftserif(z3,z1,z2l,z2r,ru(7),bracket42); + ref2=rightserif(z3,z1,z2l,z2r,ru(2),bracket42)-- + rightserif(z1,z3,z2l,z2r,ru(6),bracket4); + bot z4=ref1 intersectionpoint ((0,botjoin)--(w,botjoin)); + top z9=ref2 intersectionpoint ((0,topjoin)--(w,topjoin)); + bot z6=(.12w,0); top z7=(.8w,h); + mpos(4,6)(Xthin,constant_angle(z4,z6,0)); + mpos(7,9)(Xthin,constant_angle(z7,z9,0)); + onaline(4l,6l)(5l); y5l=y5r=Xthin_diag_bracket; + onaline(4r,6r)(5r); + onaline(7r,9r)(8r); y8r=y8l=h-Xthin_diag_bracket; + onaline(7l,9l)(8l); + ref3=fullserif(z6,z4,z5l,z5r,ru(2.5),ru(8),bracket01); + ref4=z5l--2[z5l,z4l]; + ref5=fullserif(z7,z9,z8l,z8r,ru(7),ru(5),bracket01); + ref6=z8r--2[z8r,z9r]; + z21=ref1 intersectionpoint (ref3--z4r); + z22=ref1 intersectionpoint ref4; + z23=ref2 intersectionpoint (ref5--z9l); + z24=ref2 intersectionpoint ref6; + + p1=ref1--ref2--cycle; + p2=z22--ref3--z21--cycle; + p3=z24--ref5--z23--cycle; + + showpoints(1,2,3,4,5,6,7,8,9,21,22,23,24); + draw_outlines; + endchar; + + +iff OK "Y": "The letter Y"; beginchar("Y",13unit#,cap#,0); + + bot lft z3l=(5unit,0); + z2l=z3l+(0,c_thick_stem_bracket); + mpos(2,3)(stem,0); + onaline(2l,3l)(1l); y1l=.39h; + onaline(2r,3r)(1r); y1r=.45h; + top lft z4l=(unit,h); + z6l=z1l; + mpos(4,6)(Ythick_diag, constant_angle(z4l,z6l,0)); + onaline(4l,6l)(5l); y5l=y5r=h-c_thick_stem_bracket; + onaline(4r,6r)(5r); + onaline(4,6)(20); top y20=h; + top rt z7r=(w-unit,h); + z9r=z1r; + + mpos(7,9)(Ydiag, constant_angle(z7r,z9r,0)); + onaline(7l,9l)(8l); y8l=y8r=h-Ythin_diag_bracket; + onaline(7r,9r)(8r); + onaline(7,9)(21); top y21=h; + + ref1=z5r--1.5[z5r,z6r]; + ref2=z8l--1.5[z8l,z9l]; + z22=ref1 intersectionpoint ref2; + + p1=fullserif(z20,z6,z5l,z5r,ru(2),ru(4),bracket4)--z1l-- + fullserif(z3,z2,z2l,z2r,ru(5),ru(5),bracket4)--z1r-- + fullserif(z21,z9,z8l,z8r,ru(8),ru(2),bracket01)--z22--cycle; + + showpoints(1,2,3,4,5,6,7,8,9,20,21,22); + draw_outlines; + endchar; + + +iff OK "Z": "The letter Z"; beginchar("Z",(1+11)*unit#,cap#,0); + + top lft z1=(ru(4)+smallu,h); + bot lft z2=(ru(3)+smallu,top y1-3.5unit); + z3=(.5w,y1-Zthin); + bot lft z5l=(.5unit,0); + rt z15r=(w-ru(3)-smallu,y1); + mpos(5,15)(Zdiag,constant_angle(z15r,z5l,Zdiag)); + rt z11=(w-ru(3.2),y5l); + top rt z12=(w-ru(1.7),4unit+u); + z13=(.55w,y11+Zthin); + onaline(5l,15l)(4); y4=y3; + onaline(5r,15r)(14); y14=y13; + + p1=straightarm.tl(z3,z2,z1,Ztip,pulleven)--z4--z5l-- + straightarm.br(z13,z12,z11,Ztip,pulleven)--z14--z15r--cycle; + + showpoints(1,2,3,4,5,11,12,13,14,15); + draw_outlines; + endchar; + + + +% ----- Phase 3 ----- + + +iff OK "k": "The letter k"; beginchar(oct"174",(1+9)*unit#,ascender#,0); + + top lft z11l=(unit+.5u,h); + bot z14l=(x11l,0); + mpos(11,14)(kstem,0); + onaline(11r,14r)(3r,4,12r,13r); + bot y3r=.4xheight; y12l=h-lc_thick_stem_bracket; top y12r=h; + onaline(11l,14l)(12l,13l); + y13l=y13r=lc_thick_stem_bracket; + top rt z1r=(w-1.5unit,xheight); + mpos(1,3)(kthin,angle(z1r-z3r)-90); + y2l=y2r=xheight-k_thin_diag; + onaline(1l,3l)(2l,4); + onaline(1r,3r)(2r,21l); + onaline(1,3)(0); top y0=xheight; + y21l=y3r+.5unit; + bot rt z23r=(w-ru(2),0); + mpos(21,23)(kdiag,angle(z1r-z3r)); + y22l=y22r=lc_thick_stem_bracket; + onaline(21l,23l)(22l); + onaline(21r,23r)(22r); + onaline(21,23)(20); bot y20=0; + + p1=fullserif(z14,z11,z13l,z13r,ru(2.5),ru(2.5),bracket0)--z12r-- + leftserif(z11,z14,z12l,z12r,ru(2.5),bracket0)--cycle; + p2=z3r--fullserif(z0,z3,z2l,z2r,ru(7),ru(2.5),bracket01)--z4--cycle; + p3=z21l--fullserif(z20,z21,z22l,z22r,ru(4),u,bracket32)--z21r--cycle; + + showpoints(0,1,2,3,4,11,12,13,14,20,21,22,23); + draw_outlines; + endchar; diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmbsy8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmbsy8.tfm Binary files differnew file mode 100644 index 00000000000..429ec470a84 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmbsy8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmex8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmex8.tfm Binary files differnew file mode 100644 index 00000000000..e0f4a1b3fa1 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmex8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmmi8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmmi8.tfm Binary files differnew file mode 100644 index 00000000000..49a631427af --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmmi8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmmib8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmmib8.tfm Binary files differnew file mode 100644 index 00000000000..16ef08d3ebb --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmmib8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmsy8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmsy8.tfm Binary files differnew file mode 100644 index 00000000000..7b757f9acd3 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lcmsy8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/leclb8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/leclb8.tfm Binary files differnew file mode 100644 index 00000000000..094e2c20ee4 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/leclb8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lecli8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lecli8.tfm Binary files differnew file mode 100644 index 00000000000..9b1018e8c2e --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lecli8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/leclo8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/leclo8.tfm Binary files differnew file mode 100644 index 00000000000..417639023af --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/leclo8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/leclq8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/leclq8.tfm Binary files differnew file mode 100644 index 00000000000..6d2c0e6c59a --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/leclq8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/llasy8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/llasy8.tfm Binary files differnew file mode 100644 index 00000000000..2909acfd8ce --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/llasy8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/llasyb8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/llasyb8.tfm Binary files differnew file mode 100644 index 00000000000..b32e24cb97a --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/llasyb8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmss8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmss8.tfm Binary files differnew file mode 100644 index 00000000000..3864e19e140 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmss8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmssb8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmssb8.tfm Binary files differnew file mode 100644 index 00000000000..cfa103cab31 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmssb8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmssi8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmssi8.tfm Binary files differnew file mode 100644 index 00000000000..5d205d6d9da --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmssi8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmsso8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmsso8.tfm Binary files differnew file mode 100644 index 00000000000..02278efafda --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/llcmsso8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lmsam8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lmsam8.tfm Binary files differnew file mode 100644 index 00000000000..3f889cb9fb7 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lmsam8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/lmsbm8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/lmsbm8.tfm Binary files differnew file mode 100644 index 00000000000..4dc7f659719 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/lmsbm8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclb8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclb8.tfm Binary files differnew file mode 100644 index 00000000000..70e1c6684cc --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclb8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/ltcli8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltcli8.tfm Binary files differnew file mode 100644 index 00000000000..ba69d4f99f3 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltcli8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclo8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclo8.tfm Binary files differnew file mode 100644 index 00000000000..0fe9a054fd3 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclo8.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclq8.tfm b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclq8.tfm Binary files differnew file mode 100644 index 00000000000..235b63dc52f --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/lxfonts/ltclq8.tfm diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lcmbsy8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmbsy8.pfb Binary files differnew file mode 100644 index 00000000000..fd882f48e0a --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmbsy8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lcmex8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmex8.pfb Binary files differnew file mode 100644 index 00000000000..5b4dc79b7f7 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmex8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lcmmi8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmmi8.pfb Binary files differnew file mode 100644 index 00000000000..c0be6dba52a --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmmi8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lcmmib8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmmib8.pfb Binary files differnew file mode 100644 index 00000000000..07a22bc4a7f --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmmib8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lcmsy8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmsy8.pfb Binary files differnew file mode 100644 index 00000000000..b128c1006af --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lcmsy8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/leclb8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/leclb8.pfb Binary files differnew file mode 100644 index 00000000000..1ea3c55e827 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/leclb8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lecli8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lecli8.pfb Binary files differnew file mode 100644 index 00000000000..110863fb72e --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lecli8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/leclo8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/leclo8.pfb Binary files differnew file mode 100644 index 00000000000..4e1ee2284da --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/leclo8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/leclq8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/leclq8.pfb Binary files differnew file mode 100644 index 00000000000..1835ce694e1 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/leclq8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/llasy8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/llasy8.pfb Binary files differnew file mode 100644 index 00000000000..84a597d06e6 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/llasy8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/llasyb8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/llasyb8.pfb Binary files differnew file mode 100644 index 00000000000..39ba5c48249 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/llasyb8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/llcmss8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmss8.pfb Binary files differnew file mode 100644 index 00000000000..1e2f108521a --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmss8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/llcmssb8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmssb8.pfb Binary files differnew file mode 100644 index 00000000000..a9435c8f674 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmssb8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/llcmssi8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmssi8.pfb Binary files differnew file mode 100644 index 00000000000..2cac232dd9c --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmssi8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/llcmsso8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmsso8.pfb Binary files differnew file mode 100644 index 00000000000..10e4b8a6b9f --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/llcmsso8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lmsam8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lmsam8.pfb Binary files differnew file mode 100644 index 00000000000..e31c56733f3 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lmsam8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/lmsbm8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/lmsbm8.pfb Binary files differnew file mode 100644 index 00000000000..7d66c1fe49b --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/lmsbm8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/ltclb8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/ltclb8.pfb Binary files differnew file mode 100644 index 00000000000..42ab3da19f5 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/ltclb8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/ltcli8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/ltcli8.pfb Binary files differnew file mode 100644 index 00000000000..14d0bcd31c3 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/ltcli8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/ltclo8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/ltclo8.pfb Binary files differnew file mode 100644 index 00000000000..1037076b70d --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/ltclo8.pfb diff --git a/Master/texmf-dist/fonts/type1/public/lxfonts/ltclq8.pfb b/Master/texmf-dist/fonts/type1/public/lxfonts/ltclq8.pfb Binary files differnew file mode 100644 index 00000000000..9bcc1a95178 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/lxfonts/ltclq8.pfb |