diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/cmll')
8 files changed, 556 insertions, 251 deletions
diff --git a/Master/texmf-dist/fonts/source/public/cmll/cmllbx12.mf b/Master/texmf-dist/fonts/source/public/cmll/cmllbx12.mf new file mode 100644 index 00000000000..7c23aad1b55 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cmll/cmllbx12.mf @@ -0,0 +1,76 @@ + +% Computer Modern Bold Extended Roman 12 point +if unknown cmbase: input cmbase fi + +font_identifier:="CMLLBX"; font_size 12pt#; + +u#:=27/36pt#; % unit width +width_adj#:=13/36pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=324/36pt#; % height of tallest characters +asc_height#:=300/36pt#; % height of lowercase ascenders +cap_height#:=296.4/36pt#; % height of caps +fig_height#:=278.4/36pt#; % height of numerals +x_height#:=192/36pt#; % height of lowercase without ascenders +math_axis#:=108/36pt#; % axis of symmetry for math symbols +bar_height#:=102/36pt#; % height of crossbar in lowercase e +comma_depth#:=84/36pt#; % depth of comma below baseline +desc_depth#:=84/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=13/36pt#; % diameter of rounded corners +fine#:=10/36pt#; % diameter of sharply rounded corners +thin_join#:=10.5/36pt#; % width of extrafine details +hair#:=18.3/36pt#; % lowercase hairline breadth +stem#:=47/36pt#; % lowercase stem breadth +curve#:=52/36pt#; % lowercase curve breadth +ess#:=44/36pt#; % breadth in middle of lowercase s +flare#:=51/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=62/36pt#; % diameter of dots +cap_hair#:=20/36pt#; % uppercase hairline breadth +cap_stem#:=57/36pt#; % uppercase stem breadth +cap_curve#:=61/36pt#; % uppercase curve breadth +cap_ess#:=59/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.66pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=12/36pt#; % vertical distance from serif base to tangent +jut#:=30/36pt#; % protrusion of lowercase serifs +cap_jut#:=46/36pt#; % protrusion of uppercase serifs +beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs +beak#:=84/36pt#; % vertical protrusion of beak serifs +vair#:=14.3/36pt#; % vertical diameter of hairlines +notch_cut#:=12pt#; % maximum breadth above or below notches +bar#:=18.5/36pt#; % lowercase bar thickness +slab#:=18.5/36pt#; % serif and arm thickness +cap_bar#:=18.5/36pt#; % uppercase bar thickness +cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches +serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs +stem_corr#:=2/36pt#; % for small refinements of stem breadth +vair_corr#:=1.5/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=5/36pt#; % amount of overshoot for curves +apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=.4; % extra openness of math symbols +superness:=8/11; % parameter for superellipses +superpull:=1/8; % extra openness inside bowls +beak_darkness:=.4; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % 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? + +generate llsymbols % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/cmll/cmllr12.mf b/Master/texmf-dist/fonts/source/public/cmll/cmllr12.mf new file mode 100644 index 00000000000..ad05a47b0cc --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cmll/cmllr12.mf @@ -0,0 +1,76 @@ + +% Computer Modern Roman 12 point +if unknown cmbase: input cmbase fi + +font_identifier:="CMLLR"; font_size 12pt#; + +u#:=23.5/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=324/36pt#; % height of tallest characters +asc_height#:=300/36pt#; % height of lowercase ascenders +cap_height#:=295.2/36pt#; % height of caps +fig_height#:=278.4/36pt#; % height of numerals +x_height#:=186/36pt#; % height of lowercase without ascenders +math_axis#:=108/36pt#; % axis of symmetry for math symbols +bar_height#:=104.4/36pt#; % height of crossbar in lowercase e +comma_depth#:=84/36pt#; % depth of comma below baseline +desc_depth#:=84/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7.5/36pt#; % width of extrafine details +hair#:=9.5/36pt#; % lowercase hairline breadth +stem#:=28/36pt#; % lowercase stem breadth +curve#:=33/36pt#; % lowercase curve breadth +ess#:=30/36pt#; % breadth in middle of lowercase s +flare#:=36/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=42/36pt#; % diameter of dots +cap_hair#:=11.5/36pt#; % uppercase hairline breadth +cap_stem#:=35/36pt#; % uppercase stem breadth +cap_curve#:=40/36pt#; % uppercase curve breadth +cap_ess#:=38/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.44pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=24/36pt#; % vertical distance from serif base to tangent +jut#:=33/36pt#; % protrusion of lowercase serifs +cap_jut#:=41/36pt#; % protrusion of uppercase serifs +beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs +beak#:=84/36pt#; % vertical protrusion of beak serifs +vair#:=8.5/36pt#; % vertical diameter of hairlines +notch_cut#:=12pt#; % maximum breadth above or below notches +bar#:=12.5/36pt#; % lowercase bar thickness +slab#:=12.5/36pt#; % serif and arm thickness +cap_bar#:=12.5/36pt#; % uppercase bar thickness +cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches +serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=9/36pt#; % amount of overshoot for curves +apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=-0.2; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % 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? + +generate llsymbols % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/cmll/cmllr17.mf b/Master/texmf-dist/fonts/source/public/cmll/cmllr17.mf new file mode 100644 index 00000000000..19025348102 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cmll/cmllr17.mf @@ -0,0 +1,76 @@ + +% Computer Modern Roman 17 point (more or less) +if unknown cmbase: input cmbase fi + +font_identifier:="CMLLR"; font_size 17.28pt#; + +u#:=32.5/36pt#; % unit width +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=-0.1pt#; % extra space added to all sidebars + +body_height#:=466/36pt#; % height of tallest characters +asc_height#:=432/36pt#; % height of lowercase ascenders +cap_height#:=425/36pt#; % height of caps +fig_height#:=401/36pt#; % height of numerals +x_height#:=267.8/36pt#; % height of lowercase without ascenders +math_axis#:=155.5/36pt#; % axis of symmetry for math symbols +bar_height#:=150/36pt#; % height of crossbar in lowercase e +comma_depth#:=121/36pt#; % depth of comma below baseline +desc_depth#:=121/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=9/36pt#; % width of extrafine details +hair#:=11/36pt#; % lowercase hairline breadth +stem#:=33/36pt#; % lowercase stem breadth +curve#:=40/36pt#; % lowercase curve breadth +ess#:=35/36pt#; % breadth in middle of lowercase s +flare#:=45/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=51/36pt#; % diameter of dots +cap_hair#:=13/36pt#; % uppercase hairline breadth +cap_stem#:=41/36pt#; % uppercase stem breadth +cap_curve#:=47/36pt#; % uppercase curve breadth +cap_ess#:=43/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.6pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=34/36pt#; % vertical distance from serif base to tangent +jut#:=42/36pt#; % protrusion of lowercase serifs +cap_jut#:=50/36pt#; % protrusion of uppercase serifs +beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs +beak#:=121/36pt#; % vertical protrusion of beak serifs +vair#:=10/36pt#; % vertical diameter of hairlines +notch_cut#:=17pt#; % maximum breadth above or below notches +bar#:=16/36pt#; % lowercase bar thickness +slab#:=16/36pt#; % serif and arm thickness +cap_bar#:=16/36pt#; % uppercase bar thickness +cap_band#:=16/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches +serif_drop#:=7/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=10/36pt#; % amount of overshoot for curves +apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=-0.4; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % 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? + +generate llsymbols % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/cmll/cmllss12.mf b/Master/texmf-dist/fonts/source/public/cmll/cmllss12.mf new file mode 100644 index 00000000000..9b850d024c4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cmll/cmllss12.mf @@ -0,0 +1,76 @@ + +% Computer Modern Sans Serif 12 pt +if unknown cmbase: input cmbase fi + +font_identifier:="CMLLSS"; font_size 12pt#; + +u#:=23.5/36pt#; % unit width +width_adj#:=17/36pt#; % width adjustment for certain characters +serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=324/36pt#; % height of tallest characters +asc_height#:=300/36pt#; % height of lowercase ascenders +cap_height#:=300/36pt#; % height of caps +fig_height#:=283/36pt#; % height of numerals +x_height#:=192/36pt#; % height of lowercase without ascenders +math_axis#:=108/36pt#; % axis of symmetry for math symbols +bar_height#:=97/36pt#; % height of crossbar in lowercase e +comma_depth#:=54/36pt#; % depth of comma below baseline +desc_depth#:=84/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=0pt#; % diameter of rounded corners +fine#:=0pt#; % diameter of sharply rounded corners +thin_join#:=20/36pt#; % width of extrafine details +hair#:=33/36pt#; % lowercase hairline breadth +stem#:=33/36pt#; % lowercase stem breadth +curve#:=33/36pt#; % lowercase curve breadth +ess#:=33/36pt#; % breadth in middle of lowercase s +flare#:=30/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=35/36pt#; % diameter of dots +cap_hair#:=33/36pt#; % uppercase hairline breadth +cap_stem#:=37/36pt#; % uppercase stem breadth +cap_curve#:=37/36pt#; % uppercase curve breadth +cap_ess#:=37/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.44pt#; % 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#:=.6/36pt#; % vertical protrusion of beak serifs +vair#:=26/36pt#; % vertical diameter of hairlines +notch_cut#:=22/36pt#; % maximum breadth above or below notches +bar#:=25/36pt#; % lowercase bar thickness +slab#:=27/36pt#; % serif and arm thickness +cap_bar#:=26/36pt#; % uppercase bar thickness +cap_band#:=24/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches +serif_drop#:=2/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=6/36pt#; % extra width at diagonal junctions + +o#:=9/36pt#; % amount of overshoot for curves +apex_o#:=0pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=.98; % factor applied to weights of heavy characters +math_spread:=-0.2; % extra openness of math symbols +superness:=1/sqrt 2; % parameter for superellipses +superpull:=1/20; % 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:=false; % should math-mode spacing be used? + +generate llsymbols % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/cmll/cmllss17.mf b/Master/texmf-dist/fonts/source/public/cmll/cmllss17.mf new file mode 100644 index 00000000000..9f535b29722 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cmll/cmllss17.mf @@ -0,0 +1,76 @@ + +% Computer Modern Sans Serif 17 pt (more or less) +if unknown cmbase: input cmbase fi + +font_identifier:="CMLLSS"; font_size 17.28pt#; + +u#:=32.5/36pt#; % unit width +width_adj#:=24/36pt#; % width adjustment for certain characters +serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=466/36pt#; % height of tallest characters +asc_height#:=432/36pt#; % height of lowercase ascenders +cap_height#:=432/36pt#; % height of caps +fig_height#:=408/36pt#; % height of numerals +x_height#:=267.8/36pt#; % height of lowercase without ascenders +math_axis#:=155.5/36pt#; % axis of symmetry for math symbols +bar_height#:=136/36pt#; % height of crossbar in lowercase e +comma_depth#:=78/36pt#; % depth of comma below baseline +desc_depth#:=121/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=0pt#; % diameter of rounded corners +fine#:=0pt#; % diameter of sharply rounded corners +thin_join#:=28/36pt#; % width of extrafine details +hair#:=47/36pt#; % lowercase hairline breadth +stem#:=47/36pt#; % lowercase stem breadth +curve#:=47/36pt#; % lowercase curve breadth +ess#:=47/36pt#; % breadth in middle of lowercase s +flare#:=42/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=50/36pt#; % diameter of dots +cap_hair#:=47/36pt#; % uppercase hairline breadth +cap_stem#:=52/36pt#; % uppercase stem breadth +cap_curve#:=52/36pt#; % uppercase curve breadth +cap_ess#:=52/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.6pt#; % 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#:=.8/36pt#; % vertical protrusion of beak serifs +vair#:=38/36pt#; % vertical diameter of hairlines +notch_cut#:=32/36pt#; % maximum breadth above or below notches +bar#:=36/36pt#; % lowercase bar thickness +slab#:=40/36pt#; % serif and arm thickness +cap_bar#:=38/36pt#; % uppercase bar thickness +cap_band#:=35/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches +serif_drop#:=2/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=7/36pt#; % extra width at diagonal junctions + +o#:=10/36pt#; % amount of overshoot for curves +apex_o#:=0pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=-0.4; % extra openness of math symbols +superness:=1/sqrt 2; % parameter for superellipses +superpull:=1/20; % 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:=false; % should math-mode spacing be used? + +generate llsymbols % switch to the driver file diff --git a/Master/texmf-dist/fonts/source/public/cmll/llcommon.mf b/Master/texmf-dist/fonts/source/public/cmll/llcommon.mf new file mode 100644 index 00000000000..cc23926c29f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cmll/llcommon.mf @@ -0,0 +1,166 @@ +% Common symbols for CMLL and EULL. + +% The code for arrows is the one from the downward and upward arrows +% (characters '041 and '042 in cmsy, defined in sym.mf) +% with some coordinates moved. + +cmchar "Short downward arrow (positive shift)"; +beginchar(1,9u#,body_height#,0); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,0); pos2(rule_thickness,0); +pos3(rule_thickness,90); pos4(rule_thickness,90); +lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h; +x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; +y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps; +pos5(rule_thickness,angle(z4-z0)); z5l=z0; +pos6(rule_thickness,angle(z3-z0)); z6l=z0; +z9=.2[.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 "Short upward arrow (negative shift)"; +beginchar(2,9u#,body_height#,0); +italcorr .76asc_height#*slant+.5crisp#-u#; +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,0); pos2(rule_thickness,0); +pos3(rule_thickness,90); pos4(rule_thickness,90); +lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d; +x0=x1=x2; top y0=h+o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; +y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps; +pos5(rule_thickness,angle(z4-z0)); z5l=z0; +pos6(rule_thickness,angle(z3-z0)); z6l=z0; +z9=.2[.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 "Short up-and-down arrow"; +beginchar(3,9u#,body_height#,0); +adjust_fit(0,0); pickup crisp.nib; +pos1(rule_thickness,0); pos2(rule_thickness,0); +pos3(rule_thickness,90); pos4(rule_thickness,90); +lft x1l=hround(.5w-.5rule_thickness); y1=.5[-d,h]; +x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=4u+eps; +y3=y4=y0+.36asc_height+eps; +pos5(rule_thickness,angle(z4-z0)); z5l=z0; +pos6(rule_thickness,angle(z3-z0)); z6l=z0; +z9=.2[.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; % lower arrowhead and stem +pos11(rule_thickness,0); pos12(rule_thickness,0); z11=z1; +pos13(rule_thickness,90); pos14(rule_thickness,90); +x10=x11=x12; top y10=h+o; x10-x13=x14-x10=4u+eps; +y13=y14=y10-.36asc_height-eps; +pos15(rule_thickness,angle(z14-z10)); z15l=z10; +pos16(rule_thickness,angle(z13-z10)); z16l=z10; +z19=.2[.5[z13,z14],z10]; +numeric t; path p; p=z14l{z19-z14}..z16r; +t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p; +filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r) + ---z11r..z11l---subpath (t,0) of\\(z13l{z19-z13}..z15r) + --z13r{z19-z13}..z10 & cycle; % upper arrowhead and stem +penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar; + + +% The code for coherence relations is based on the \asymp symbol (named +% "Hardy's asymptotic equivalence sign" number '020 in symbols.mf). + +cmchar "Coherence sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(4,14u#,v_center(2spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w; +y1=y2; y5=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis; +y1=good.y .3[y5,y6]; +draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar +draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar +labels(1,2,3,4,5,6); endchar; + +cmchar "Strict coherence"; +beginchar(5,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 "Incoherence sign"; +compute_spread(.45x_height#,.55x_height#); +beginchar(6,14u#,v_center(2spread#+rule_thickness#)); +adjust_fit(0,0); pickup rule.nib; autorounded; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w; +y1=y2=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis; +y5=good.y .3[y1,y3]; +draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar +draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar +labels(1,2,3,4,5,6); endchar; + +cmchar "Strict incoherence"; +beginchar(7,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 "Linear equivalence symbol"; +beginchar(12,22u#,.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; +x11=u+.5rule_thickness; y11=y2; +draw_circle shifted (z11-z6); +x9=x11+circ_diam+.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 "Double-struck perpendicular sign"; +beginchar(13,17u#,asc_height#,0); +adjust_fit(0,0); pickup rule.nib; +compute_spread(.45x_height#,.55x_height#); x3-x1=x4-x2=good.x spread; +x1=x2=good.x (.5w - spread/2); +center_on(.5[x1,x3]); lft x5=hround u; x6=w-x5; y3=y1; +bot y1=0; y2-y1=x6-x5-3u; +if top y2>h: y2:=bot h; fi +y5=y6=y1; y4=y2; +draw z1--z2; % left stem +draw z3--z4; % right stem +draw z5--z6; % bar +labels(1,2,3,4,5,6); endchar; + +cmchar "Oscillating perpendicular sign"; +compute_spread(.45x_height#,.55x_height#); +spread#':=spread#; spread':=spread; % the spread of `$=$' +compute_spread(.54x_height#,.66x_height#); +beginchar(14,14u#,asc_height#,0); +adjust_fit(0,0); +pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness; +if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline +lft x3=hround u; x4=4u; x5=w-x4; x6=w-x3; +y3=y5; y4=y6; bot y3=0; top y4-bot y3=spread'; +draw z3{up}...z4{right}..{right}z5...{up}z6; % upper stroke +pickup rule.nib; autorounded; +x1=x2; z2=1/2[z3,z6]; y1-y2=x6-x3; +if top y1>h: y1:=bot h; fi +draw z1..z2; +labels(1,2,3,4,5,6); endchar; diff --git a/Master/texmf-dist/fonts/source/public/cmll/lleusym.mf b/Master/texmf-dist/fonts/source/public/cmll/lleusym.mf index be2932e4aab..be2ddc1f63d 100644 --- a/Master/texmf-dist/fonts/source/public/cmll/lleusym.mf +++ b/Master/texmf-dist/fonts/source/public/cmll/lleusym.mf @@ -123,37 +123,40 @@ adj_fill.B() % fixed x points transformed transf); enddef; +let endcharsaved = endchar; +def endchar = endcharsaved(0) enddef; + amp_w := 2732; amp_h := 2560; "Reversed ampersand (par)"; charbegin( 0, 2732h#, capheight*v#, baseline ); euler_ampersand ( identity scaled -1 shifted (amp_w,amp_h) ); -endchar(0); +endchar; charlist 8: 9; "\textstyle large ampersand"; charbegin( 8, 19/14 * 2732h#, 0, 36/25*capheight*v# + baseline ); euler_ampersand ( identity shifted (0,-amp_h) xscaled 19/14 yscaled 36/25 ); -endchar(0); +endchar; "\displaystyle large ampersand"; charbegin( 9, 26/14 * 2732h#, 0, 252/125*capheight*v# + baseline ); euler_ampersand ( identity shifted (0,-amp_h) xscaled 26/14 yscaled 252/125 ); -endchar(0); +endchar; charlist 10: 11; "\textstyle large reversed ampersand"; charbegin( 10, 19/14 * 2732h#, 0, 36/25*capheight*v# + baseline ); euler_ampersand ( identity shifted (-amp_w,0) xscaled -19/14 yscaled -36/25 ); -endchar(0); +endchar; "\displaystyle large reversed ampersand"; charbegin( 11, 26/14 * 2732h#, 0, 252/125*capheight*v# + baseline ); euler_ampersand ( identity shifted (-amp_w,0) xscaled -26/14 yscaled -252/125 ); -endchar(0); +endchar; % The following characters are the same as in CMLL @@ -162,125 +165,4 @@ input cmbase; cmsetup; font_setup; -% The code for arrows is the one from the downward and upward arrows -% (characters '041 and '042 in cmsy, defined in sym.mf) -% with some coordinates moved. - -cmchar "Short downward arrow (positive shift)"; - -beginchar(1,9u#,body_height#,0); -adjust_fit(0,0); pickup crisp.nib; -pos1(rule_thickness,0); pos2(rule_thickness,0); -pos3(rule_thickness,90); pos4(rule_thickness,90); -lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h; -x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; -y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps; -pos5(rule_thickness,angle(z4-z0)); z5l=z0; -pos6(rule_thickness,angle(z3-z0)); z6l=z0; -z9=.2[.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(0); - -cmchar "Short upward arrow (negative shift)"; - -beginchar(2,9u#,body_height#,0); -italcorr .76asc_height#*slant+.5crisp#-u#; -adjust_fit(0,0); pickup crisp.nib; -pos1(rule_thickness,0); pos2(rule_thickness,0); -pos3(rule_thickness,90); pos4(rule_thickness,90); -lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d; -x0=x1=x2; top y0=h+o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; -y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps; -pos5(rule_thickness,angle(z4-z0)); z5l=z0; -pos6(rule_thickness,angle(z3-z0)); z6l=z0; -z9=.2[.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(0); - -cmchar "Short up-and-down arrow"; -beginchar(3,9u#,body_height#,0); -adjust_fit(0,0); pickup crisp.nib; -pos1(rule_thickness,0); pos2(rule_thickness,0); -pos3(rule_thickness,90); pos4(rule_thickness,90); -lft x1l=hround(.5w-.5rule_thickness); y1=.5[-d,h]; -x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=4u+eps; -y3=y4=y0+.36asc_height+eps; -pos5(rule_thickness,angle(z4-z0)); z5l=z0; -pos6(rule_thickness,angle(z3-z0)); z6l=z0; -z9=.2[.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; % lower arrowhead and stem -pos11(rule_thickness,0); pos12(rule_thickness,0); z11=z1; -pos13(rule_thickness,90); pos14(rule_thickness,90); -x10=x11=x12; top y10=h+o; x10-x13=x14-x10=4u+eps; -y13=y14=y10-.36asc_height-eps; -pos15(rule_thickness,angle(z14-z10)); z15l=z10; -pos16(rule_thickness,angle(z13-z10)); z16l=z10; -z19=.2[.5[z13,z14],z10]; -numeric t; path p; p=z14l{z19-z14}..z16r; -t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p; -filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r) - ---z11r..z11l---subpath (t,0) of\\(z13l{z19-z13}..z15r) - --z13r{z19-z13}..z10 & cycle; % upper arrowhead and stem -penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar(0); - - -% The code for coherence relations is based on the \asymp symbol (named -% "Hardy's asymptotic equivalence sign" number '020 in symbols.mf). - -cmchar "Coherence sign"; -compute_spread(.45x_height#,.55x_height#); -beginchar(4,14u#,v_center(2spread#+rule_thickness#)); -adjust_fit(0,0); pickup rule.nib; autorounded; -lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w; -y1=y2; y5=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis; -y1=good.y .3[y5,y6]; -draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar -draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar -labels(1,2,3,4,5,6); endchar(0); - -cmchar "Strict coherence"; -beginchar(5,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(0); - -cmchar "Incoherence sign"; -compute_spread(.45x_height#,.55x_height#); -beginchar(6,14u#,v_center(2spread#+rule_thickness#)); -adjust_fit(0,0); pickup rule.nib; autorounded; -lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w; -y1=y2=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis; -y5=good.y .3[y1,y3]; -draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar -draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar -labels(1,2,3,4,5,6); endchar(0); - -cmchar "Strict incoherence"; -beginchar(7,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(0); +input llcommon; diff --git a/Master/texmf-dist/fonts/source/public/cmll/llsymbols.mf b/Master/texmf-dist/fonts/source/public/cmll/llsymbols.mf index 2e2fe415b1f..c6089c6f7ec 100644 --- a/Master/texmf-dist/fonts/source/public/cmll/llsymbols.mf +++ b/Master/texmf-dist/fonts/source/public/cmll/llsymbols.mf @@ -59,130 +59,6 @@ penlabels(0,1,2,3,4,5,6,7,8,9,10,11); currentpicture := currentpicture scaled -1 shifted (w,h); endchar; - -% The code for arrows is the one from the downward and upward arrows -% (characters '041 and '042 in cmsy, defined in sym.mf) -% with some coordinates moved. - -cmchar "Short downward arrow (positive shift)"; - -beginchar(1,9u#,body_height#,0); -adjust_fit(0,0); pickup crisp.nib; -pos1(rule_thickness,0); pos2(rule_thickness,0); -pos3(rule_thickness,90); pos4(rule_thickness,90); -lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h; -x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; -y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps; -pos5(rule_thickness,angle(z4-z0)); z5l=z0; -pos6(rule_thickness,angle(z3-z0)); z6l=z0; -z9=.2[.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 "Short upward arrow (negative shift)"; - -beginchar(2,9u#,body_height#,0); -italcorr .76asc_height#*slant+.5crisp#-u#; -adjust_fit(0,0); pickup crisp.nib; -pos1(rule_thickness,0); pos2(rule_thickness,0); -pos3(rule_thickness,90); pos4(rule_thickness,90); -lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d; -x0=x1=x2; top y0=h+o; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; -y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps; -pos5(rule_thickness,angle(z4-z0)); z5l=z0; -pos6(rule_thickness,angle(z3-z0)); z6l=z0; -z9=.2[.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 "Short up-and-down arrow"; -beginchar(3,9u#,body_height#,0); -adjust_fit(0,0); pickup crisp.nib; -pos1(rule_thickness,0); pos2(rule_thickness,0); -pos3(rule_thickness,90); pos4(rule_thickness,90); -lft x1l=hround(.5w-.5rule_thickness); y1=.5[-d,h]; -x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=4u+eps; -y3=y4=y0+.36asc_height+eps; -pos5(rule_thickness,angle(z4-z0)); z5l=z0; -pos6(rule_thickness,angle(z3-z0)); z6l=z0; -z9=.2[.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; % lower arrowhead and stem -pos11(rule_thickness,0); pos12(rule_thickness,0); z11=z1; -pos13(rule_thickness,90); pos14(rule_thickness,90); -x10=x11=x12; top y10=h+o; x10-x13=x14-x10=4u+eps; -y13=y14=y10-.36asc_height-eps; -pos15(rule_thickness,angle(z14-z10)); z15l=z10; -pos16(rule_thickness,angle(z13-z10)); z16l=z10; -z19=.2[.5[z13,z14],z10]; -numeric t; path p; p=z14l{z19-z14}..z16r; -t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p; -filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r) - ---z11r..z11l---subpath (t,0) of\\(z13l{z19-z13}..z15r) - --z13r{z19-z13}..z10 & cycle; % upper arrowhead and stem -penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar; - - -% The code for coherence relations is based on the \asymp symbol (named -% "Hardy's asymptotic equivalence sign" number '020 in symbols.mf). - -cmchar "Coherence sign"; -compute_spread(.45x_height#,.55x_height#); -beginchar(4,14u#,v_center(2spread#+rule_thickness#)); -adjust_fit(0,0); pickup rule.nib; autorounded; -lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w; -y1=y2; y5=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis; -y1=good.y .3[y5,y6]; -draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar -draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar -labels(1,2,3,4,5,6); endchar; - -cmchar "Strict coherence"; -beginchar(5,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 "Incoherence sign"; -compute_spread(.45x_height#,.55x_height#); -beginchar(6,14u#,v_center(2spread#+rule_thickness#)); -adjust_fit(0,0); pickup rule.nib; autorounded; -lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w; -y1=y2=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis; -y5=good.y .3[y1,y3]; -draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar -draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar -labels(1,2,3,4,5,6); endchar; - -cmchar "Strict incoherence"; -beginchar(7,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; - % The definition of the large symbols is the one for the ampersand, adapted % for a bigger size, with parameters taken from the definition of sum % operators. @@ -381,4 +257,5 @@ else: pickup fine.nib; pos10'(thin_stem,90); z10'=z10; currentpicture := currentpicture scaled -1 shifted (w,h-d); penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar; +input llcommon; bye. |