diff options
author | Karl Berry <karl@freefriends.org> | 2006-07-23 23:41:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-07-23 23:41:33 +0000 |
commit | 604d5921fad774f2f52253edca6ea50659edfc39 (patch) | |
tree | 767bdfae3b2538eece483c6fe2c9e58d8c868b40 /Master/texmf-dist/fonts/source/public/cmll/lleusym.mf | |
parent | 5d7ae4b5ebf9ed35eadb6abf6c5493d86509048d (diff) |
new (cm linear logic fonts) package cmll (1mar06)
git-svn-id: svn://tug.org/texlive/trunk@1904 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/cmll/lleusym.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/cmll/lleusym.mf | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/cmll/lleusym.mf b/Master/texmf-dist/fonts/source/public/cmll/lleusym.mf new file mode 100644 index 00000000000..be2932e4aab --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cmll/lleusym.mf @@ -0,0 +1,286 @@ +mode_setup; +font_coding_scheme "TeX text subset"; + +% EULER FRAKTUR MEDIUM PARAMETERS + +% These all in bitpad numbers (.001"): + + programem = 3700; + baseline = 0; + ascender = capheight; + descender = 700; + depthy = 700; % depthy = 500; + capheight = 2560; + lcbody = 1760; % same for medium and bold. + dotheight = capheight; % dotheight = 2600; + theight = 2300; % measured to lowest of the 3 top lines. + lfigheight = capheight; + nfigbody = lcbody; + nfigascender = ascender; + nfigdescender = descender; + +% the next lines added since everything was digitized too high! --- DEK +extra_beginchar:=extra_beginchar & "rot:=initrot;"; +transform initrot; initrot:=identity; + +input eubase; + +% MEDIUM NON-LINING FIGURES +no_stem_round; + +def euler_ampersand (expr transf) = +n := 21; +t1 := 0; +t2 := 1; +t3 := 2; +t4 := 3; +t5 := 6; +t6 := 8; +t7 := 12; +t8 := 14; +t9 := 16; +t10 := 21; +t11 := 23; +t12 := 24; +t13 := 26; +t14 := 30; +t15 := 32; +t16 := 34; +t17 := 38; +t18 := 40; +t19 := 42; +t20 := 44; +t21 := 45; + +adj_fill.A(12, 21) % fixed x points + (11) % fixed y points + ((2,1), (3,2)) % tied points + ((9,14), (7,16), (6,17), (4,19)) % verticals + ((10,13), (8,15), (5,18), (1,20)) % horizontals + (((1287,1477){774,-41}...{1,0} % 0 + (2027,1466){22,-143}...{22,-143} % 1 + (2049,1323){110,-424}... % 2 + (2083,1090){0,-1}... % 3 + (1806,416){-264,-343}... % 4 + (1613,185){-341,-236}... % 5 + (1028,-31){-1,0}... % 6 + (411,175){-1,1}... % 7 + (182,722){0,1}... % 8 + (371,1189){1,1}... % 9 + (879,1538){571,342}... % 10 + (1258,1794){1,1}... % 11 + (1385,2154){0,1}... % 12 + (1291,2358){-1,1}... % 13 + (1155,2411){-1,0}... % 14 + (970,2328){-1,-1}... % 15 + (895,2068){0,-1}... % 16 + (1016,1565){474,-1132}... % *17 + (1369,936){454,-665}... % 18 + (1819,414){1,-1}... % 19 + (2024,253){389,-217}... % *20 + (2208,197){1,0}... % 21 + (2444,291){1,1}...{124,668} % 22 + (2632,706)-- % 23 + (2717,682){-92,-496}... % 24 + (2453,95){-1,-1}... % 25 + (2095,-42){-1,0}... % 26 + (1612,179){-275,261}... % 27 + (1149,763){-517,775}... % 28 + (791,1412){-481,1162}... % *29 + (668,1925){0,1}... % 30 + (864,2422){1,1}... % 31 + (1273,2584){1,0}... % 32 + (1558,2466){1,-1}... % 33 + (1651,2244){0,-1}... % 34 + (1467,1810){-1,-1}... % 35 + (1074,1521){-573,-348}... % 36 + (627,1225){-1,-1}... % 37 + (469,805){0,-1}... % 38 + (688,278){1,-1}... % 39 + (1085,119){1,0}... % 40 + (1520,278){233,164}... % 41 + (1889,986){0,1}... % 42 + (1761,1276){-1,1}... % 43 + (1536,1336){-1,0}...{-374,-43} % 44 + (1282,1319)--cycle) % 45 + transformed transf); + +n := 4; +t1 := 0; +t2 := 1; +t3 := 2; +t4 := 3; + +adj_fill.B() % fixed x points + () % fixed y points + ((2,1), (3,2)) % tied points + ((1,4)) % verticals + ((1,4)) % horizontals + (((2603,1476){-410,-38}...{-1,0} % 0 + (2027,1466)-- % 1 + (2049,1323){1,0}...{325,-54} % 2 + (2593,1298)--cycle) % 3 + transformed transf); +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); + +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); + +"\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); + +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); + +"\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); + + +% The following characters are the same as in CMLL + +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); |