%***************************************************************************** % Copyright (c) 1989 by N. N. Billawala %***************************************************************************** % ttchar.mf characters for typewriter text set % 5 characters iff OK "x": "Up arrow"; beginchar(oct"013",num_width_c#+c_mono#,cap#,0); pickup mathpen rotated -oblique; top z1=(.5w,h)//; bot z2=(.5w,-d)//; arrow.t(z1,w,.2h); draw z1--z2; adjust(.5num_fit_c#+m_a*c_mfit#,.5num_fit_c#+m_a*c_mfit#); show_character; endchar; iff OK "x": "Down arrow"; beginchar(oct"014",num_width_c#+c_mono#,cap#,0); pickup mathpen rotated -oblique; top z1=(.5w,h)//; bot z2=(.5w,-d)//; arrow.b(z2,w,.2h); draw z1--z2; adjust(.5num_fit_c#+m_a*c_mfit#,.5num_fit_c#+m_a*c_mfit#); show_character; endchar; iff OK "x": "Single non-directional quote"; beginchar(oct"015",I_w*width#+a_mono#,cap#,0); save_num(head)=accent_dot_diameter; save_bool(prime)=true; top z1=(round(.5w),.75[xheight,cap]-.5head)//; ref1=comma(z1,head,min(.6xheight,1.5pt),accent_thin_end,.5); p1=ref1 rotatedaround (z1,-oblique); showpoints(1); adjust(v_a*fitbasis.lc#+m_a*a_mfit#,v_a*fitbasis.lc#+m_a*a_mfit#); show_character; endchar; % rotation and slant of position with obliqueness iff OK "x": "Blank space character"; beginchar(oct"040",.5width#+mono#,math_axis#,descender#); save_num(edge_distance)=max(1,round(.1w)); pickup pensquare scaled blank_space_thickness rotated -oblique; top lft z1=(edge_distance,.3h)//; bot lft z2=(edge_distance,-.5d)//; bot rt z3=(w-edge_distance,-.5d)//; top rt z4=(w-edge_distance,.3h)//; draw z1--z2--z3--z4; adjust (0,0); show_character; endchar; % use different pen for softness % no slant of shape with obliqueness iff OK "x": "Double non-directional quotes"; beginchar(oct"042",accent_w*width#+b_mono#,cap#,0); save_num(head)=accent_dot_diameter; save_bool(prime)=true; top z1=(round(.5head),.75[xheight,cap]-.5head)//; top z2=(round(w-.5head),y1)//; ref1=comma(z1,head,min(.6xheight,1.5pt),accent_thin_end,0); ref2=comma(z2,head,min(.6xheight,1.5pt),accent_thin_end,0); p1=ref1 rotatedaround (z1,-oblique); p2=ref2 rotatedaround (z2,-oblique); showpoints(1,2); adjust(v_a*fitbasis.lc#+m_a*b_mfit#,v_a*fitbasis.lc#+m_a*b_mfit#); show_character; endchar;