You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
5.9 KiB
137 lines
5.9 KiB
% tipagerm.mf: TIPA symbols for germanic languages
|
|
% Copyright 1996-2003 FUKUI Rei
|
|
%
|
|
% This program may be distributed and/or modified under the
|
|
% conditions of the LaTeX Project Public License, either version 1.2
|
|
% of this license or (at your option) any later version.
|
|
% The latest version of this license is in
|
|
% http://www.latex-project.org/lppl.txt
|
|
% and version 1.2 or later is part of all distributions of LaTeX
|
|
% version 1999/12/01 or later.
|
|
%
|
|
% This program consists of all files listed in Manifest.txt.
|
|
%
|
|
% Version 1.2 2003/01/01
|
|
%
|
|
% This font is based on:
|
|
% Computer Modern font series by D. E. Knuth,
|
|
% DC fonts by J"org Knappen and
|
|
% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
|
|
%
|
|
|
|
% The next codes are from cmman.
|
|
cmchar "Thorn";
|
|
beginchar(oct"376",10u#+serif_fit#,asc_height#,desc_depth#);
|
|
italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
|
|
adjust_fit(serif_fit#,0);
|
|
pickup tiny.nib; pos1(stem',0); pos2(stem,0);
|
|
pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
|
|
lft x1l=hround(side_gap-.5stem'); top y1=h;
|
|
numeric edge; edge=rt x2r;
|
|
pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
|
|
pos4(vair',90); pos5(curve,0); pos6(vair,-90);
|
|
rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
|
|
x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
|
|
rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
|
|
x6=x3; bot y6r=-oo;
|
|
(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
|
|
filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
|
|
&z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
|
|
y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
|
|
pickup tiny.nib; bot y2=-d;
|
|
filldraw stroke z1e--z0'e--z0e--z2e; % stem
|
|
pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
|
|
z7'=z2; x8l=x7'l; bot y8=0;
|
|
filldraw stroke z7'e--z8e; % point
|
|
if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
|
|
dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
|
|
penlabels(0,1,2,3,4,5,6,8); endchar;
|
|
|
|
cmchar "Wynn";
|
|
beginchar(oct"337",9u#+serif_fit#,x_height#,desc_depth#);
|
|
italcorr .5x_height#*slant+min(.5curve#-.75u#,.1u#);
|
|
adjust_fit(serif_fit#,0);
|
|
pickup tiny.nib; pos2(stem,if serifs:0 else: 15 fi);
|
|
pos0'(stem',0); pos0(stem,0); pos1(stem',0); z0l=z0'l; x0'=x1; x0=x2;
|
|
lft x1l=hround(side_gap-.5stem');top y1=h;
|
|
pickup fine.nib; pos3(vair,90); pos4(vair,90);
|
|
pos5(curve,0); pos6(vair,-90); pos7(vair,-90);
|
|
x3=x7=x0; x4+.5u=x6=.6w; top y4r=x_height; y4-y3=y6-y7;
|
|
rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.6x_height;
|
|
bot y6r=.1x_height-oo; bot y7r=-oo; y0=y3;
|
|
pickup tiny.nib; bot y2=if serifs: -.7d; else: -d; fi
|
|
filldraw stroke z1e--z0'e--z0e--z2e; % stem
|
|
filldraw stroke z3e--z4e{z6-z7}...z5e{down}...{z7-z6}z6e--z7e;
|
|
if serifs: pickup crisp.nib; pos10(stem,0); pos11(vair,-90);
|
|
z10=z2; lft x11l=x22=.5u; y11l=-d-oo;
|
|
varm(10,11,a,.8beak_darkness,-1.5beak_jut);
|
|
pickup crisp.nib;
|
|
pos21(stem',0); pos22(vair,90); z21=(x1,.6h); y22r=y4r;
|
|
varm(21,22,b,.8beak_darkness,-1.3beak_jut); fi
|
|
penlabels(0,0',1,2,3,4,5,6,7,8,9,10,11,21,22); endchar;
|
|
|
|
cmchar "H-V ligature";
|
|
beginchar(oct"377",13.8u#,asc_height#,0);
|
|
italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-u#;
|
|
adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
|
|
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
|
|
pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
|
|
lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1-3.8u;
|
|
top y1=h; bot y2=0; y1=y1'; y2=y2';
|
|
filldraw stroke z1'e--z2'e; % left stem
|
|
y3=1/3[bar_height,x_height];
|
|
penpos2''(x2r-x2l,0); x2''=x2; y2''=1/8[bar_height,x_height];
|
|
filldraw stroke z2''e--z2e; % thicken the lower left stem
|
|
penpos a0(min(rt x2r-lft x2l,thin_join)-fine,180); pickup fine.nib;
|
|
rt x a0l=tiny.rt x2r; y a0=y2'';
|
|
pos a1(vair,90); pos3'(x3r-x3l+tiny,0); z3'=z3;
|
|
x a1=.5[rt x a0l,rt x3'r]; top y a1r=x_height+oo;
|
|
(x a,y a1l)=whatever[z a1r,z a0l]; x a1l:=x a;
|
|
filldraw stroke z a0e{up}...{right}z a1e
|
|
&{{interim superness:=hein_super; super_arc.e(a1,3')}}; % arch
|
|
labels(a0); penlabels(a1);
|
|
if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
|
|
numeric inner_jut; pickup tiny.nib;
|
|
if rt x2r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
|
|
else: rt x2r+jut+.5u+1=lft x3l-inner_jut; fi
|
|
dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
|
|
pickup tiny.nib; interim superness:=more_super;
|
|
pos3''(stem,180);y3''=y3;
|
|
pos4(stem,180); x4=x3''=x3;
|
|
pos5(vair,-90); pos6(hair,0);
|
|
x5=x4+2.8u; rt x6r=hround(w-.7u); y4=.4h; bot y5r=-oo; y6=.4h;
|
|
filldraw stroke z3''e{down}--super_arc.e(4,5) % v stroke
|
|
..tension atleast 1.05..{up}z6e; % left stem and arc
|
|
v_bulb(6,7); % closing bulb
|
|
penlabels(1,2,3,4,5,6,7); endchar;
|
|
|
|
cmchar "Comma-tail Z";
|
|
beginchar(oct"336",9u#,x_height#,desc_depth#);
|
|
italcorr x_height#*slant-.5serif_fit#-1u#;
|
|
adjust_fit(0,.5serif_fit#);
|
|
numeric arm_thickness[],z_stem;
|
|
arm_thickness1=vair; arm_thickness2=1.2vair; z_stem=.9[vair,stem];
|
|
pickup tiny.nib; rt x1r=rt x2r=hround(.89w-.8u);
|
|
lft x3l=lft x4l=hround .5u;
|
|
top y1=h; y2=min(y1,h-2/3arm_thickness1);
|
|
bot y4=0; y3=max(y4,2/3arm_thickness2);
|
|
numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
|
|
penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
|
|
penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
|
|
pair delta; delta=penoffset z3-z2 of currentpen;
|
|
fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
|
|
---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
|
|
---cycle; % diagonal
|
|
pickup tiny.nib; pos5(arm_thickness1,90); pos6(hair,180);
|
|
top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
|
|
arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
|
|
pos7(arm_thickness2,90); pos8(arm_thickness2,90);
|
|
x7=x4; bot y8l=bot y7l=y8'=0; x8=x5-1.5u;
|
|
if serifs: pos9(hair,0); pos10(vair,-90); pos11(vair,-100);
|
|
else: pos9(fudged.hair,0); pos10(vair,-90); pos11(vair,-100); fi
|
|
y9=-.4d; rt x9r =hround(w-1.5u+.5hair); y10=-.8d;
|
|
y11=-.7d; x11=.5[x3,x9]; x9-x10=x10-x11;
|
|
filldraw stroke z7e--z8e{right}..z9e{down}..{left}z10e..z11e;
|
|
penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
|
|
|
|
% end of tipagerm.mf
|
|
|