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

« back to all changes in this revision

Viewing changes to mf/tipagerm.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
% tipagerm.mf: TIPA symbols for germanic languages
 
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,
 
18
%   DC fonts by J"org Knappen and
 
19
%   TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
 
20
%
 
21
 
 
22
% The next codes are from cmman.
 
23
cmchar "Thorn";
 
24
beginchar(oct"376",10u#+serif_fit#,asc_height#,desc_depth#);
 
25
italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
 
26
adjust_fit(serif_fit#,0);
 
27
pickup tiny.nib; pos1(stem',0); pos2(stem,0);
 
28
pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
 
29
lft x1l=hround(side_gap-.5stem'); top y1=h;
 
30
numeric edge; edge=rt x2r;
 
31
pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
 
32
pos4(vair',90); pos5(curve,0); pos6(vair,-90);
 
33
rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
 
34
x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
 
35
rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
 
36
x6=x3; bot y6r=-oo;
 
37
(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
 
38
filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
 
39
 &z5e{down}...{5(x6-x5),y6-y5}z6e;  % bowl
 
40
y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
 
41
pickup tiny.nib; bot y2=-d;
 
42
filldraw stroke z1e--z0'e--z0e--z2e;  % stem
 
43
pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
 
44
z7'=z2; x8l=x7'l; bot y8=0;
 
45
filldraw stroke z7'e--z8e;  % point
 
46
if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop);  % upper serif
 
47
 dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi  % lower serif
 
48
penlabels(0,1,2,3,4,5,6,8); endchar;
 
49
 
 
50
cmchar "Wynn";
 
51
beginchar(oct"337",9u#+serif_fit#,x_height#,desc_depth#);
 
52
italcorr .5x_height#*slant+min(.5curve#-.75u#,.1u#);
 
53
adjust_fit(serif_fit#,0);
 
54
pickup tiny.nib; pos2(stem,if serifs:0 else: 15 fi);
 
55
pos0'(stem',0); pos0(stem,0); pos1(stem',0); z0l=z0'l; x0'=x1; x0=x2;
 
56
lft x1l=hround(side_gap-.5stem');top y1=h;
 
57
pickup fine.nib; pos3(vair,90); pos4(vair,90);
 
58
pos5(curve,0); pos6(vair,-90); pos7(vair,-90);
 
59
x3=x7=x0; x4+.5u=x6=.6w; top y4r=x_height; y4-y3=y6-y7;
 
60
rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.6x_height;
 
61
bot y6r=.1x_height-oo; bot y7r=-oo; y0=y3;
 
62
pickup tiny.nib; bot y2=if serifs: -.7d; else: -d; fi
 
63
filldraw stroke z1e--z0'e--z0e--z2e;  % stem
 
64
filldraw stroke z3e--z4e{z6-z7}...z5e{down}...{z7-z6}z6e--z7e;
 
65
if serifs: pickup crisp.nib; pos10(stem,0); pos11(vair,-90);
 
66
 z10=z2; lft x11l=x22=.5u; y11l=-d-oo;
 
67
 varm(10,11,a,.8beak_darkness,-1.5beak_jut);
 
68
 pickup crisp.nib;
 
69
 pos21(stem',0); pos22(vair,90); z21=(x1,.6h); y22r=y4r;
 
70
 varm(21,22,b,.8beak_darkness,-1.3beak_jut); fi
 
71
penlabels(0,0',1,2,3,4,5,6,7,8,9,10,11,21,22); endchar;
 
72
 
 
73
cmchar "H-V ligature";
 
74
beginchar(oct"377",13.8u#,asc_height#,0);
 
75
italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-u#;
 
76
adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
 
77
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
 
78
pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
 
79
lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1-3.8u;
 
80
top y1=h; bot y2=0; y1=y1'; y2=y2';
 
81
filldraw stroke z1'e--z2'e;  % left stem
 
82
y3=1/3[bar_height,x_height];
 
83
penpos2''(x2r-x2l,0); x2''=x2; y2''=1/8[bar_height,x_height];
 
84
filldraw stroke z2''e--z2e;  % thicken the lower left stem
 
85
penpos a0(min(rt x2r-lft x2l,thin_join)-fine,180); pickup fine.nib;
 
86
rt x a0l=tiny.rt x2r; y a0=y2'';
 
87
pos a1(vair,90); pos3'(x3r-x3l+tiny,0); z3'=z3;
 
88
x a1=.5[rt x a0l,rt x3'r]; top y a1r=x_height+oo;
 
89
(x a,y a1l)=whatever[z a1r,z a0l]; x a1l:=x a;
 
90
filldraw stroke z a0e{up}...{right}z a1e
 
91
 &{{interim superness:=hein_super; super_arc.e(a1,3')}};  % arch
 
92
labels(a0); penlabels(a1);
 
93
if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
 
94
 numeric inner_jut; pickup tiny.nib;
 
95
 if rt x2r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
 
96
 else: rt x2r+jut+.5u+1=lft x3l-inner_jut; fi
 
97
 dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
 
98
pickup tiny.nib; interim superness:=more_super;
 
99
pos3''(stem,180);y3''=y3;
 
100
pos4(stem,180); x4=x3''=x3;
 
101
pos5(vair,-90); pos6(hair,0);
 
102
x5=x4+2.8u; rt x6r=hround(w-.7u); y4=.4h; bot y5r=-oo; y6=.4h;
 
103
filldraw stroke z3''e{down}--super_arc.e(4,5) % v stroke
 
104
 ..tension atleast 1.05..{up}z6e; % left stem and arc
 
105
v_bulb(6,7);  % closing bulb
 
106
penlabels(1,2,3,4,5,6,7); endchar;
 
107
 
 
108
cmchar "Comma-tail Z";
 
109
beginchar(oct"336",9u#,x_height#,desc_depth#);
 
110
italcorr x_height#*slant-.5serif_fit#-1u#;
 
111
adjust_fit(0,.5serif_fit#);
 
112
numeric arm_thickness[],z_stem;
 
113
arm_thickness1=vair; arm_thickness2=1.2vair; z_stem=.9[vair,stem];
 
114
pickup tiny.nib; rt x1r=rt x2r=hround(.89w-.8u);
 
115
lft x3l=lft x4l=hround .5u;
 
116
top y1=h; y2=min(y1,h-2/3arm_thickness1);
 
117
bot y4=0; y3=max(y4,2/3arm_thickness2);
 
118
numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
 
119
penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
 
120
penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
 
121
pair delta; delta=penoffset z3-z2 of currentpen;
 
122
fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
 
123
 ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
 
124
 ---cycle;  % diagonal
 
125
pickup tiny.nib; pos5(arm_thickness1,90); pos6(hair,180);
 
126
top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
 
127
arm(5,6,a,beak_darkness,-.4beak_jut);  % upper arm and beak
 
128
pos7(arm_thickness2,90); pos8(arm_thickness2,90);
 
129
x7=x4; bot y8l=bot y7l=y8'=0; x8=x5-1.5u;
 
130
if serifs: pos9(hair,0); pos10(vair,-90); pos11(vair,-100);
 
131
else: pos9(fudged.hair,0); pos10(vair,-90); pos11(vair,-100); fi
 
132
y9=-.4d; rt x9r =hround(w-1.5u+.5hair); y10=-.8d;
 
133
y11=-.7d; x11=.5[x3,x9]; x9-x10=x10-x11;
 
134
filldraw stroke z7e--z8e{right}..z9e{down}..{left}z10e..z11e;
 
135
penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
 
136
 
 
137
% end of tipagerm.mf