%% %% This is file `esrelation.mf', %% generated with the docstrip utility. %% %% The original source files were: %% %% esrelation.dtx (with options: `mf') %% %% Copyright (C) 2015 %% by Byron Cook, Tauba Auerbach, and David Reinfurt %% %% This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is [here](http://www.latex-project.org/lppl.txt) and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later. %% %% mf setup font_coding_scheme:="TeX math symbols"; mode_setup; font_setup; autorounding:=0; font_slant slant; font_x_height x_height#; font_quad 18u# if not monospace:+4letter_fit# fi; slant:=mono_charic#:=0; % the remaining characters will not be slanted currenttransform:=identity yscaled aspect_ratio scaled granularity; %% identify symbols %% brackets bracket_project_right=oct"025"; bracket_project_left=oct"024"; bracket_lifting=oct"026"; %% symbols restrict_wand=oct"027"; restrict_barb=oct"030"; restrict_mallet=oct"021"; restrict_wand_up=oct"050"; restrict_barb_up=oct"051"; restrict_mallet_up=oct"052"; %% arrows r_arrow22=oct"021"; arrow_project_right=oct"022"; arrow_project_left=oct"023"; %% bars barshort=oct"040"; barlong=oct"043"; verticalbarlongleft=oct"044"; verticalbarlongright=oct"046"; verticalbarshort=oct"045"; %% declare extensible extensible oct"025": oct"025",0,0,oct"044"; extensible oct"024": oct"024",0,0,oct"044"; %% define pixels define_pixels(em, cap, sb, penscaler); % Convert to device-specific units. define_corrected_pixels(o); % Same, but add a device-specific fudge factor. %% relation utility dims %% u = (w-(2*sb))/8; % utility measurement uu = (h-(2*sb))/8; % utility measurement (using h, not w) super = 3.9; % offset utility for curve roundness [2.8] %% Arrow project Right iff known arrow_project_right: cmchar "arrow_project_right"; compute_spread(.45x_height#,.55x_height#); beginchar(arrow_project_right,10u#,cap#, 1pt#); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip %% Points z1 = (-5u, math_axis); z2 = (10u, y1); z3 = (x2-5u, y2+5u); %% Draw draw z1 -- z2 -- z3; % right arrow penlabels(1,2,3,4,5,6); endchar; %% Arrow project Left iff known arrow_project_left: cmchar "arrow_project_left"; compute_spread(.45x_height#,.55x_height#); beginchar(arrow_project_left,10u#,cap#, 1pt#); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip %% Points z1 = (15u, math_axis); z2 = (0, y1); z3 = (x2+5u, y2+5u); %% Draw draw z1 -- z2 -- z3; % right arrow penlabels(1,2,3,4,5,6); endchar; %% Bracket project Right iff known bracket_project_right: cmchar "bracket_project_right"; compute_spread(.45x_height#,.55x_height#); beginchar(bracket_project_right,5u#,cap#, 1pt#); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip %% Points z1 = (0, -3*desc_depth); z2 = (x1, math_axis-4u); z3 = (x1+5u/super, y4-5u/super); z4 = (x1+4u, math_axis); z5 = (15u, y4); %% Draw draw z1 -- z2 .. z3 .. z4 -- z5; % right bracket penlabels(1,2,3,4,5,6); endchar; %% Bracket project Left iff known bracket_project_left: cmchar "bracket_project_left"; compute_spread(.45x_height#,.55x_height#); beginchar(bracket_project_left,5u#,cap#, 1pt#); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip %% Points z1 = (w, -3*desc_depth); z2 = (x1, math_axis-4u); z3 = (x1-5u/super, y4-5u/super); z4 = (x1-4u, math_axis); z5 = (-10u, y4); %% Draw draw z1 -- z2 .. z3 .. z4 -- z5; % right bracket penlabels(1,2,3,4,5,6); endchar; %% Bracket Lifting iff known bracket_lifting: cmchar "bracket_lifting"; compute_spread(.45x_height#,.55x_height#); beginchar(bracket_lifting,5u#,cap#, 1pt#); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip %% Points z1 = (0, h+10u); z2 = (x1, math_axis+4u); z3 = (x1+5u/super, y4+5u/super); z4 = (4u, math_axis); z5 = (w+10u, y4); %% Draw draw z1 -- z2 .. z3 .. z4 -- z5; % bracket penlabels(1,2,3,4,5,6); endchar; iff known barshort: cmchar "barshort"; compute_spread(.45x_height#,.55x_height#); beginchar(barshort,3u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip x1=eps; x2=w-eps+1u; y1=y2=math_axis; draw z1--z2; penlabels(1,2); endchar; %% Bar Long iff known barlong: cmchar "barlong"; compute_spread(.45x_height#,.55x_height#); beginchar(barlong,6u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip x1=eps; x2=w-eps+1u; y1=y2=math_axis; draw z1--z2; penlabels(1,2); endchar; %% Vertical Bar Long Left iff known verticalbarlongleft: cmchar "verticalbarlongleft"; compute_spread(.45x_height#,.55x_height#); beginchar(verticalbarlongleft,5u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip x1=x2=0; y1=asc_height-5u; y2=0; draw z1--z2; penlabels(1,2); endchar; %% Vertical Bar Long Right iff known verticalbarlongright: cmchar "verticalbarlongright"; compute_spread(.45x_height#,.55x_height#); beginchar(verticalbarlongright,5u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip x1=x2=w; y1=asc_height-5u; y2=0; draw z1--z2; penlabels(1,2); endchar; %% Vertical Bar Short iff known verticalbarshort: cmchar "verticalbarshort"; compute_spread(.45x_height#,.55x_height#); beginchar(verticalbarshort,5u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup pencircle scaled (penscaler); % small, circular tip x1=x2=0; y1=1u; y2=0; draw z1--z2; penlabels(1,2); endchar; %% restrict Wand iff known restrict_wand: cmchar "restrict_wand"; compute_spread(.45x_height#,.55x_height#); beginchar(restrict_wand,5u#,v_center(spread#+rule_thickness#)); pickup pencircle scaled (penscaler); %% Points z1 = (3u, asc_height); % bar z2 = (x1, -2*u); z3 = (x1-2*u, 0); % asterisk z4 = (x1+2*u, y3); z5 = (x1-1.4*u, y3+1.4*u); z6 = (x1+1.4*u, y3-1.4*u); z7 = (x6, y5); z8 = (x5, y6); %% Draw draw z1 -- z2; % | draw z3 -- z4; % * draw z5 -- z6; draw z7 -- z8; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; %% restrict Wand Up iff known restrict_wand_up: cmchar "restrict_wand_up"; compute_spread(.45x_height#,.55x_height#); beginchar(restrict_wand_up,5u#,v_center(spread#+rule_thickness#)); pickup pencircle scaled (penscaler); %% Points z1 = (3u, -2u); % bar z2 = (x1, asc_height); z3 = (x1-2*u, y2-2u); % asterisk z4 = (x1+2*u, y3); z5 = (x1-1.4*u, y3+1.4*u); z6 = (x1+1.4*u, y3-1.4*u); z7 = (x6, y5); z8 = (x5, y6); %% Draw draw z1 -- z2; % | draw z3 -- z4; % * draw z5 -- z6; draw z7 -- z8; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; %% restrict Barb iff known restrict_barb: cmchar "restrict_barb"; compute_spread(.45x_height#,.55x_height#); beginchar(restrict_barb,5u#,v_center(spread#+rule_thickness#)); pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. %% Points z1 = (3u, asc_height); % bar z2 = (x1, -2*u); z3 = (x1-2*u, 0); % diamond z4 = (x1+2*u, y3); z5 = (x1, 2*u); %% Draw draw z1 -- z2; % | draw z3 -- z4 -- z5; % _\ draw z2 -- z3; % \ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; %% restrict Barb Up iff known restrict_barb_up: cmchar "restrict_barb_up"; compute_spread(.45x_height#,.55x_height#); beginchar(restrict_barb_up,5u#,v_center(spread#+rule_thickness#)); pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. %% Points z1 = (3u, -2u); % bar z2 = (x1, asc_height); z3 = (x1-2*u, y2-2u); % diamond z4 = (x1+2*u, y3); z5 = (x1, y3-2u); %% Draw draw z1 -- z2; % | draw z3 -- z4 -- z5; % _\ draw z2 -- z3; % \ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; %% restrict Mallet iff known restrict_mallet: cmchar "restrict_mallet"; compute_spread(.45x_height#,.55x_height#); beginchar(restrict_mallet,5u#,v_center(spread#+rule_thickness#)); pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. %% Points z1 = (3u, asc_height); % bar z2 = (x1, -2*u); z3 = (x1-(4/3)*u, (-2/3)*u); % diamond z4 = (x1+(4/3)*u, y3); z5 = (x1, (2/3)*u); %% Draw draw z1 -- z2; % | draw z3 .. z5 .. z4 .. z2 .. z3; % o penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; %% restrict Mallet up iff known restrict_mallet_up: cmchar "restrict_mallet_up"; compute_spread(.45x_height#,.55x_height#); beginchar(restrict_mallet_up,5u#,v_center(spread#+rule_thickness#)); pickup pencircle scaled (penscaler); % Use a pen with a small, circular tip. %% Points z1 = (3u, -2u); % bar z2 = (x1, asc_height); z3 = (x1-(4/3)*u, y2-4/3u); % diamond z4 = (x1+(4/3)*u, y3); z5 = (x1, y3-4/3u); %% Draw draw z1 -- z2; % | draw z3 .. z5 .. z4 .. z2 .. z3; % o penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar; bye. \endinput %% %% End of file `esrelation.mf'.