diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/lxfonts/lmathex.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/lxfonts/lmathex.mf | 315 |
1 files changed, 315 insertions, 0 deletions
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. |