~ubuntu-branches/ubuntu/edgy/tipa/edgy

« back to all changes in this revision

Viewing changes to mf/tipapnct.mf

  • Committer: Bazaar Package Importer
  • Author(s): Rafael Laboissiere
  • Date: 2003-12-11 10:50:58 UTC
  • Revision ID: james.westby@ubuntu.com-20031211105058-vq8ttydhah3hdzq1
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
% tipapnct.mf: TIPA punctuation marks
 
2
% Copyright 1996-2003 FUKUI Rei
 
3
%
 
4
% This program may be distributed and/or modified under the
 
5
% conditions of the LaTeX Project Public License, either version 1.2
 
6
% of this license or (at your option) any later version.
 
7
% The latest version of this license is in
 
8
%   http://www.latex-project.org/lppl.txt
 
9
% and version 1.2 or later is part of all distributions of LaTeX 
 
10
% version 1999/12/01 or later.
 
11
%
 
12
% This program consists of all files listed in Manifest.txt.
 
13
%
 
14
% Version 1.2 2003/01/01
 
15
%
 
16
% This font is based on:
 
17
%   Computer Modern font series by D. E. Knuth and
 
18
%   TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
 
19
%
 
20
 
 
21
cmchar "Exclamation point";
 
22
beginchar("!",5u#+width_adj#,asc_height#,0);
 
23
italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
 
24
adjust_fit(0,0);
 
25
pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
 
26
lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4);  % dot
 
27
numeric bot_width;
 
28
bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
 
29
pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
 
30
x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
 
31
if square_dots: top y1=h;
 
32
 filldraw stroke z1e--z2e;  % stem
 
33
else: top z0=(x1,h+o); y1+.5dot_size=h+o;
 
34
 filldraw z1r...z0...z1l---z2l--z2r---cycle; fi  % stem and bulb
 
35
penlabels(0,1,2,3,4); endchar;
 
36
 
 
37
cmchar "Apostrophe";
 
38
beginchar("'",5u#,asc_height#,0);
 
39
italcorr asc_height#*slant+.5dot_size#-2u#;
 
40
adjust_fit(0,0);
 
41
x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
 
42
if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth);  % large comma
 
43
else: comma(1,a,dot_size,.25u,comma_depth); fi  % comma with increased jut
 
44
penlabels(1); endchar;
 
45
 
 
46
cmchar "Left parenthesis";
 
47
beginchar("(",CT(7u# if monospace: -u# fi,6.66u#),
 
48
 CT(body_height#,asc_height#),CT(paren_depth#,.9desc_depth#));
 
49
italcorr body_height#*slant-.5u#;
 
50
adjust_fit(0,0); pickup fine.nib;
 
51
pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
 
52
rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
 
53
top y1=h; y2=.5[y1,y3]=math_axis;
 
54
filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
 
55
 ...{3(x3e-x2e),y3-y2}z3e;  % arc
 
56
penlabels(1,2,3); endchar;
 
57
 
 
58
cmchar "Right parenthesis";
 
59
beginchar(")",CT(7u# if monospace: -u# fi,6.66u#),
 
60
 CT(body_height#,asc_height#),CT(paren_depth#,.9desc_depth#));
 
61
italcorr math_axis#*slant-.5u#;
 
62
adjust_fit(0,0); pickup fine.nib;
 
63
pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
 
64
lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
 
65
top y1=h; y2=.5[y1,y3]=math_axis;
 
66
filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
 
67
 ...{3(x3e-x2e),y3-y2}z3e;  % arc
 
68
penlabels(1,2,3); endchar;
 
69
 
 
70
cmchar "Asterisk";
 
71
beginchar("*",9u#,
 
72
  if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
 
73
italcorr h#*slant-.75u#;
 
74
adjust_fit(0,0);
 
75
numeric ast_flare; ast_flare=hround .7[thin_join,stem];
 
76
x0=.5w; y0=h-.5x_height;
 
77
for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
 
78
 numeric theta; theta=angle(z[d]-z0);
 
79
 fill z0+.5(0,-thin_join)rotated theta
 
80
  ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
 
81
  ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
 
82
  ---z0+.5(0,thin_join)rotated theta--cycle; endfor  % diagonal at angle |d|
 
83
labels(0,[-150],[-90],[-30],30,90,150); endchar;
 
84
 
 
85
cmchar "Plus sign";
 
86
beginarithchar("+"); pickup rule.nib;
 
87
x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
 
88
lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
 
89
draw z1--z2;  % stem
 
90
draw z3--z4;  % crossbar
 
91
labels(1,2,3,4); endchar;
 
92
 
 
93
cmchar "Comma";
 
94
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
 
95
define_whole_blacker_pixels(dot_diam);
 
96
beginchar(",",5u#,dot_diam#,comma_depth#);
 
97
adjust_fit(0,0);
 
98
x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
 
99
comma(1,a,dot_diam,.2u,comma_depth);  % dot and tail
 
100
penlabels(1); endchar;
 
101
 
 
102
cmchar "Hyphen";
 
103
beginchar("-",6u#,x_height#,0);
 
104
italcorr .5x_height#*slant-.5u#;
 
105
adjust_fit(0,0);
 
106
numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
 
107
pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
 
108
top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
 
109
if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
 
110
filldraw stroke z1e--z2e;  % bar
 
111
penlabels(1,2); endchar;
 
112
 
 
113
cmchar "Period";
 
114
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
 
115
define_whole_blacker_pixels(dot_diam);
 
116
beginchar(".",5u#,dot_diam#,0);
 
117
adjust_fit(0,0); pickup fine.nib;
 
118
pos1(dot_diam,0); pos2(dot_diam,90);
 
119
lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2);  % dot
 
120
penlabels(1,2); endchar;
 
121
 
 
122
cmchar "Virgule (slash)";
 
123
beginchar("/",9u#,body_height#,paren_depth#);
 
124
italcorr body_height#*slant-.5u#;
 
125
adjust_fit(0,0); pickup rule.nib;
 
126
rt x1=hround(w-u)+eps; top y1=h+eps;
 
127
lft x2=hround u-eps; bot y2=-d-eps;
 
128
draw z1--z2;  % diagonal
 
129
penlabels(1,2); endchar;
 
130
 
 
131
cmchar "Equals sign";
 
132
compute_spread(.45x_height#,.55x_height#);
 
133
beginchar("=",14u#,v_center(spread#+rule_thickness#));
 
134
italcorr h#*slant-.5u#;
 
135
adjust_fit(0,0); pickup rule.nib;
 
136
lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
 
137
y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
 
138
draw z1--z2;  % upper bar
 
139
draw z3--z4;  % lower bar
 
140
labels(1,2,3,4); endchar;
 
141
 
 
142
cmchar "Question mark";
 
143
beginchar("?",8.5u#,asc_height#,0);
 
144
italcorr .8asc_height#*slant;
 
145
adjust_fit(0,0);
 
146
pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
 
147
lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8);  % dot
 
148
numeric bot_width;
 
149
bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
 
150
pickup fine.nib; pos2(vair,90); pos3(curve,0);
 
151
pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
 
152
x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
 
153
top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
 
154
{{interim superness:=more_super;
 
155
filldraw stroke pulled_super_arc.e(2,3)(superpull)
 
156
 & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}};  % arc and stem
 
157
if serifs: pos1(hair,180); pos0(flare,180);
 
158
 lft x1r=hround u; y1=y3; bulb(2,1,0);  % bulb
 
159
else: pos1(Vround 5/7[vair,flare],110);
 
160
 lft x1r=hround u; top y1r=vround .9[y6,top y2r];
 
161
 filldraw stroke term.e(2,1,left,1,4); fi  % terminal
 
162
penlabels(0,1,2,3,4,5,6,7,8); endchar;
 
163
 
 
164
cmchar "Left bracket";
 
165
%numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
 
166
% Modified on 2001/11/25 fkr
 
167
numeric wd#; wd#=max(5.5u#,5u#+.5if hefty:stem# else:rule_thickness# fi);
 
168
beginchar("[",CT(wd#,6.66u#),CT(body_height#,asc_height#),
 
169
 CT(paren_depth#,.9desc_depth#));
 
170
italcorr body_height#*slant;
 
171
adjust_fit(0,0);
 
172
numeric top_thickness,side_thickness;
 
173
if hefty: top_thickness=vair;
 
174
 side_thickness=max(crisp.breadth,stem-2stem_corr);
 
175
else: top_thickness=side_thickness=rule_thickness; fi;
 
176
if Times_Compat and serifs: side_thickness:=1.8side_thickness;
 
177
 top_thickness:=.8top_thickness; fi
 
178
pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
 
179
top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
 
180
filldraw stroke z1e--z2e;  % stem
 
181
pos3(top_thickness,90); pos4(top_thickness,90);
 
182
pos5(top_thickness,90); pos6(top_thickness,90);
 
183
x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
 
184
filldraw stroke z3e--z4e;  % upper bar
 
185
filldraw stroke z5e--z6e;  % lower bar
 
186
penlabels(1,2,3,4,5,6); endchar;
 
187
 
 
188
cmchar "Right bracket";
 
189
%numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
 
190
% Modified on 2001/11/25 fkr
 
191
numeric wd#; wd#=max(5.5u#,5u#+.5if hefty:stem# else:rule_thickness# fi);
 
192
beginchar("]",CT(wd#,6.66u#),CT(body_height#,asc_height#),
 
193
 CT(paren_depth#,.9desc_depth#));
 
194
italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
 
195
adjust_fit(0,0);
 
196
numeric top_thickness,side_thickness;
 
197
if hefty: top_thickness=vair;
 
198
 side_thickness=max(crisp.breadth,stem-2stem_corr);
 
199
else: top_thickness=side_thickness=rule_thickness; fi;
 
200
if Times_Compat and serifs: side_thickness:=1.8side_thickness;
 
201
 top_thickness:=.8top_thickness; fi
 
202
pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
 
203
top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
 
204
filldraw stroke z1e--z2e;  % stem
 
205
pos3(top_thickness,90); pos4(top_thickness,90);
 
206
pos5(top_thickness,90); pos6(top_thickness,90);
 
207
x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
 
208
filldraw stroke z3e--z4e;  % upper bar
 
209
filldraw stroke z5e--z6e;  % lower bar
 
210
penlabels(1,2,3,4,5,6); endchar;
 
211
 
 
212
cmchar "Turned apostrophe";
 
213
beginchar("`",5u#,asc_height#,0);
 
214
italcorr asc_height#*slant+.5dot_size#-2u#;
 
215
adjust_fit(0,0);
 
216
x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
 
217
if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth);  % large ammoc
 
218
else: ammoc(1,a,dot_size,.25u,comma_depth); fi  % normal ammoc
 
219
penlabels(1); endchar;
 
220
 
 
221
% end of tipapnct.mf