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