1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
%*****************************************************************************
% 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;
|