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);