[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
more misc patches
- To: math-font-discuss@cogs.susx.ac.uk
- Subject: more misc patches
- From: Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
- Date: Fri, 23 Jan 1998 12:25:03 +0100
Although I originally planned to prepare a reshuffeld version of MXP
until the weekend, I somehow didn't make. However, I have done some
more work to tie up the loose ends in other areas:
1. I've done a little more work on the Euler version:
- added an Eulerized inverted iota to yea.mf, yeab.mf
- fixed a few bugs in mtx files of the Euler MC-font
(This patch for mceextra.mtx superseeds my earlier patch.
Unfortunately I diff'ed it against the original version
rather than last one, so beware.)
2. I've merged in some improvements to the upright CM greek set:
- replaced digamma and italic varkappa by revised versions
(AMS versions aren't robuts enough for Concrete parameters)
- added upright varkappa (from greek/kelly)
- replaced upright nu (from greek/kelly)
- modified upright epsilon, pi (better balancing)
- modified upright lambda, chi (reduced overhang)
Cheers, Ulrik.
P.S. Remaining MF task: adjust the weight of CMSY "aleph"
and MSBM "beth", "gimel", "daleth"
Possible options:
- make CMSY aleph heavier (pickup fine.nib -> rule.nib)
- make MSBM glyphs lighter (pickup rule.nib -> fine.nib)
- rework all glyphs for uniform stroke thickness in
Concrete version (does this make sense for Hebrew?)
diff -u mtx/ORIG/mcebar.mtx mtx/mcebar.mtx
--- mtx/ORIG/mcebar.mtx Sun Dec 7 12:30:22 1997
+++ mtx/mcebar.mtx Fri Jan 23 01:47:57 1998
@@ -9,10 +9,15 @@
\glyph{bar}{1000}
\glyph{bar}{1000}
\endsetglyph
+
% These have to be here, so that they are declared missing *before* the
-% AMS fonts define them.
+% AMS fonts (or the yma<nnnn> base fonts) define them.
+
+\missingglyph{hbar}
+\missingglyph{hslash}
\missingglyph{kappa1}
-\missingglyph{digamma}
+\missingglyph{kappa1upright}
\missingglyph{rho1upright}
\missingglyph{sigma1upright}
+\missingglyph{digamma}
\endmetrics
diff -u mtx/ORIG/mceextra.mtx mtx/mceextra.mtx
--- mtx/ORIG/mceextra.mtx Sun Dec 7 12:30:25 1997
+++ mtx/mceextra.mtx Fri Jan 23 01:50:12 1998
@@ -1,11 +1,13 @@
\relax
\metrics
+
\unsetglyph{between}
\setglyph{between}
\glyph{parenleft}{1000}
\movert{-300}
\glyph{parenright}{1000}
\endsetglyph
+
\unsetglyph{emptysetstress}
\setglyph{emptysetstress}
\push
@@ -14,6 +16,10 @@
\pop
\glyph{zeroupright}{1000}
\endsetglyph
+
+\unsetglyph{hbar}
+\unsetglyph{hslash}
+
\setglyph{hbar}
\push
\movert{80}
@@ -28,7 +34,14 @@
\pop
\glyph{h}{1000}
\endsetglyph
-\missingglyph{lambdabar}
+
+\setglyph{lambdabar}
+ \push
+ \movert{120}
+ \glyph{barforh}{1000}
+ \pop
+ \glyph{lambdaupright}{1000}
+\endsetglyph
\setglyph{lambdaslash}
\push
\movert{120}
@@ -36,6 +49,24 @@
\pop
\glyph{lambdaupright}{1000}
\endsetglyph
+
+%% should these glyphs be taken from Concrete (ccr<nn>)?
+
+%\missingglyph{at}
+%\missingglyph{numbersign}
+%\missingglyph{percent}
+
+%% these glyphs were temporarily declare missing in mcebar.mtx
+
+\unsetglyph{kappa1}
+\unsetglyph{kappa1upright}
+\unsetglyph{rho1upright}
+\unsetglyph{sigma1upright}
+
+\replaceglyph{kappa1upright}{kappaupright}
+\replaceglyph{rho1upright} {rhoupright}
+\replaceglyph{sigma1upright}{sigmaupright}
+
\replaceglyph{Aupright}{A}
\replaceglyph{Bupright}{B}
\replaceglyph{Eupright}{E}
@@ -48,89 +79,71 @@
\replaceglyph{Xupright}{X}
\replaceglyph{Pupright}{P}
\replaceglyph{Tupright}{T}
-\replaceglyph{Vupright}{V}
\replaceglyph{Yupright}{Y}
\replaceglyph{Zupright}{Z}
\replaceglyph{oupright}{o}
-\replaceglyph{yupright}{y}
-\missingglyph{Aitalic}
-\missingglyph{Bitalic}
-\missingglyph{Eitalic}
-\missingglyph{Hitalic}
-\missingglyph{Iitalic}
-\missingglyph{Kitalic}
-\missingglyph{Mitalic}
-\missingglyph{Nitalic}
-\missingglyph{Oitalic}
-\missingglyph{Xitalic}
-\missingglyph{Pitalic}
-\missingglyph{Titalic}
-\missingglyph{Zitalic}
-\missingglyph{oitalic}
-\missingglyph{Vitalic}
-\missingglyph{Alpha}
-\missingglyph{Beta}
-\missingglyph{Gamma}
-\missingglyph{Delta}
-\missingglyph{Epsilon}
-\missingglyph{Zeta}
-\missingglyph{Eta}
-\missingglyph{Theta}
-\missingglyph{Iota}
-\missingglyph{Kappa}
-\missingglyph{Lambda}
-\missingglyph{Mu}
-\missingglyph{Nu}
-\missingglyph{Xi}
-\missingglyph{Omikron}
-\missingglyph{Pi}
-\missingglyph{Rho}
-\missingglyph{Sigma}
-\missingglyph{Tau}
-\missingglyph{Upsilon}
-\missingglyph{Phi}
-\missingglyph{Chi}
-\missingglyph{Psi}
-\missingglyph{Omega}
-\missingglyph{alpha}
-\missingglyph{beta}
-\missingglyph{gamma}
-\missingglyph{delta}
-\missingglyph{epsilon}
-\missingglyph{zeta}
-\missingglyph{eta}
-\missingglyph{theta}
-\missingglyph{iota}
-\missingglyph{kappa}
-\missingglyph{lambda}
-\missingglyph{mu}
-\missingglyph{nu}
-\missingglyph{xi}
-\missingglyph{omikron}
-\missingglyph{pi}
-\missingglyph{rho}
-\missingglyph{sigma}
-\missingglyph{tau}
-\missingglyph{upsilon}
-\missingglyph{phi}
-\missingglyph{chi}
-\missingglyph{psi}
-\missingglyph{omega}
-%\missingglyph{beta1}
-\missingglyph{epsilon1}
-\missingglyph{theta1}
-\missingglyph{kappa1}
-\missingglyph{pi1}
-\missingglyph{rho1}
-\missingglyph{sigma1}
-\missingglyph{phi1}
-\missingglyph{Upsilon1}
-\missingglyph{Chi1}
-\missingglyph{thornupright}
-\missingglyph{partialdiff}
-\missingglyph{at}
-\missingglyph{numbersign}
-\missingglyph{percent}
-\missingglyph{slurbelow}
-\missingglyph{slurabove}
-\endmetrics
+
+%% in the Euler version only: replace italic set by upright set
+
+\replaceglyph{partialdiff}{partialdiffupright}
+
+\replaceglyph{Alpha} {Aupright}
+\replaceglyph{Beta} {Bupright}
+\replaceglyph{Gamma} {Gammaupright}
+\replaceglyph{Delta} {Deltaupright}
+\replaceglyph{Epsilon} {Eupright}
+\replaceglyph{Zeta} {Zupright}
+\replaceglyph{Eta} {Hupright}
+\replaceglyph{Theta} {Thetaupright}
+\replaceglyph{Iota} {Iupright}
+\replaceglyph{Kappa} {Kupright}
+\replaceglyph{Lambda} {Lambdaupright}
+\replaceglyph{Mu} {Mupright}
+\replaceglyph{Nu} {Nupright}
+\replaceglyph{Omikron} {Oupright}
+\replaceglyph{Xi} {Xiupright}
+\replaceglyph{Pi} {Piupright}
+\replaceglyph{Rho} {Pupright}
+\replaceglyph{Sigma} {Sigmaupright}
+\replaceglyph{Tau} {Tupright}
+\replaceglyph{Upsilon} {Upsilonupright}
+\replaceglyph{Phi} {Phiupright}
+\replaceglyph{Chi} {Xupright}
+\replaceglyph{Psi} {Psiupright}
+\replaceglyph{Omega} {Omegaupright}
+\replaceglyph{Upsilon1} {Yupright}
+
+\replaceglyph{alpha} {alphaupright}
+\replaceglyph{beta} {betaupright}
+\replaceglyph{gamma} {gammaupright}
+\replaceglyph{delta} {deltaupright}
+\replaceglyph{epsilon} {epsilonupright}
+\replaceglyph{zeta} {zetaupright}
+\replaceglyph{eta} {etaupright}
+\replaceglyph{theta} {thetaupright}
+\replaceglyph{iota} {iotaupright}
+\replaceglyph{kappa} {kappaupright}
+\replaceglyph{lambda} {lambdaupright}
+\replaceglyph{mu} {muupright}
+\replaceglyph{nu} {nuupright}
+\replaceglyph{omikron} {oupright}
+\replaceglyph{xi} {xiupright}
+\replaceglyph{pi} {piupright}
+\replaceglyph{rho} {rhoupright}
+\replaceglyph{sigma} {sigmaupright}
+\replaceglyph{tau} {tauupright}
+\replaceglyph{upsilon} {upsilonupright}
+\replaceglyph{phi} {phiupright}
+\replaceglyph{chi} {chiupright}
+\replaceglyph{psi} {psiupright}
+\replaceglyph{omega} {omegaupright}
+
+\replaceglyph{epsilon1} {epsilon1upright}
+\replaceglyph{theta1} {theta1upright}
+\replaceglyph{kappa1} {kappa1upright}
+\replaceglyph{pi1} {pi1upright}
+\replaceglyph{rho1} {rho1upright}
+\replaceglyph{sigma1} {sigma1upright}
+\replaceglyph{phi1} {phi1upright}
+
+\endmetrics
\ No newline at end of file
diff -u yma/ORIG/yea.mf yma/yea.mf
--- yma/ORIG/yea.mf Sun Dec 7 03:24:16 1997
+++ yma/yea.mf Fri Jan 23 02:00:39 1998
@@ -352,4 +352,38 @@
endchar(0);
+"inviota";
+extra_endchar:="currentpicture:=currentpicture reflectedabout((0,.5lcbody*v),(1000,.5lcbody*v)) reflectedabout((.5*1040h,0),(.5*1040h,1000));";
+charbegin( slot_iotainv, 1040h#, lcbody*v#, baseline );
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+t7 := 13;
+
+adj_fill.A(1) % fixed x points
+ (2, 4, 7) % fixed y points
+ () % tied points
+ ((3,5)) % verticals
+ ((1,6)) % horizontals
+ ((1177,351){-210,-264}... % 0
+ (887,68){-554,-384}... % *1
+ (623,-33){-1,0}... % 2
+ (412,87){-299,409}... % *3
+ (324,376){0,1}...{0,1284} % 4
+ (324,1660)-- % 5
+ (625,1753){40,-36}...{40,-36} % 6
+ (665,1717){-127,-756}... % 7
+ (602,721){0,-1}... % 8
+ (628,434){100,-452}... % *9
+ (702,269){1,-1}... % 10
+ (819,236){1,0}... % 11
+ (959,284){296,183}...{283,313} % *12
+ (1115,419)--cycle); % 13
+
+%endchar(0);
+endchar(-50h#); % DEK
bye.
diff -u yma/ORIG/yeab.mf yma/yeab.mf
--- yma/ORIG/yeab.mf Sun Dec 7 03:24:26 1997
+++ yma/yeab.mf Fri Jan 23 02:04:03 1998
@@ -376,4 +376,35 @@
endchar(0);
+"inviota";
+extra_endchar:="currentpicture:=currentpicture reflectedabout((0,.5lcbody*v),(1000,.5lcbody*v)) reflectedabout((.5*990h,0),(.5*990h,1000));";
+charbegin( slot_iotainv, 990h#, lcbody*v#, baseline );
+
+n := 5;
+t1 := 3;
+t2 := 5;
+t3 := 7;
+t4 := 9;
+t5 := 12;
+
+adj_fill.A(5) % fixed x points
+ (2) % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ ((1,4)) % horizontals
+ ((1016,398){-46,-56}... % 0
+ (785,251){-1,0}... % 1
+ (706,285){-1,1}... % 2
+ (650,612){0,1}...{9,211} % 3
+ (672,1705){-11.25,8.44}...{-11.25,8.44}% 4
+ (629,1737)-- % 5
+ (285,1619){9,-216}... % 6
+ (309,515){0,-1}... % 7
+ (332,200){23.79,-127.6}... % *8
+ (399,32){1,-1}... % 9
+ (554,-41){1,0}... % 10
+ (924,145){1,1}...{65,98} % 11
+ (1071,339)--cycle); % 12
+
+endchar(0);
bye
diff -u yma/ORIG/ymaams.mf yma/ymaams.mf
--- yma/ORIG/ymaams.mf Sun Dec 7 03:29:55 1997
+++ yma/ymaams.mf Fri Jan 23 04:50:30 1998
@@ -1,6 +1,5 @@
% these glyphs are pieces or variants of glyphs from msam and msbm
-cmchar "Simple slur below (smile)";
cmchar "Reverse prime symbol (superscript only)";
beginchar(slot_primereverse,3u#+max(1.75u#,curve#+2(curve#-stem#)),
.8asc_height#,0); adjust_fit(0,0); pickup fine.nib; numeric
@@ -129,44 +128,55 @@
draw z10--z11--z12--z13; % cross piece
penlabels(2,3,4,5,6,7,10,11,12,,13); endchar;
-cmchar "Stylized F";
-beginarithchar(slot_digamma);
-pickup pencircle xscaled 2.5rule_thickness yscaled .5rule_thickness;
-bot y1=-d; top y2=top y3=h+o; y4=y5=.5[y1, y2]; lft x1=u; x3=w-x1;
-numeric t; t=4; % t=slope of thck stem
-y2-y1=t*(x2-x1);
-z4=whatever[z1, z2]; x5-x4=.6(x3-x2);
-draw z1--z2--z3; draw z4--z5;
-penlabels(1,2,3,4,5); endchar;
+% Revised UV 1998/01/23 for better rendering with Concrete parameters.
+% The use of |beginarithchar| seems dubious, so try something better.
+% The use of a slope parameter seems unnecessary in an italic font.
transform tt; tt:=currenttransform;
currenttransform:=tt slanted 1/4;
+cmchar "Stylized F";
+beginchar(slot_digamma,10u#,asc_height#,0);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(0,0);
+pickup fine.nib;
+pos1(stem,0); pos2(stem,0); pos3(bar,0);
+pos2'(bar,90); pos3'(bar,90); pos4(bar,90); pos5(bar,90);
+bot y1=-d; top y2=top y3=h+o; y4=y5=.5[y1, y2];
+lft x1l=lft x2l=u; x3=w-x1;
+z2'r=z2; z3'r=z3;
+z4=whatever[z1, z2]; x5-x4=.6(x3-x2);
+filldraw circ_stroke z1.e--z2.e;
+filldraw circ_stroke z3'.e--z2'.e;
+filldraw circ_stroke z5.e--z4.e;
+penlabels(1,2,3,4,5,2',3'); endchar;
+
+% Revised UV 1998/01/23 for better rendering with Concrete parameters.
+% Originally developed and tested 1997/10/03.
+
cmchar "Lowercase variation of Greek kappa";
% will use same dimensions as standard Greek lowercase kappa
% see vol E, p 155.
beginchar(slot_kappa1, 12u#, x_height#, 0);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
-adjust_fit(0,0); pickup rule.nib;
-pos1(stem,0); pos2(stem,0);x1l=hround(2u-.5stem); x2r=w-x1l;
-top y2+.3stem=h+oo; bot y1-.3stem=-oo;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,-60); pos2(stem,-60); x1l=hround(2u-.5stem); x2r=w-x1l;
+top y2l+.2stem=h+oo; bot y1r-.2stem=-oo;
filldraw z1l---z2l...z2r---z1r...cycle;
pickup crisp.nib;
-pos3(hair,180); x3=lft x1l; y3=3/4h; pos4(stem,90);
-top y4r+.15stem=h+oo; x4-x3=.05[x1,x2];
-pos4'(hair,0); y4'=y3; x4'=1/4[x1,x2];
-pos5(hair,90); z5=z1;
-filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5&z5{z2-z1}
+pos3(hair,180); lft x3r=1u; y3=3/4h;
+pos4(stem,90); top y4r+.15stem=h+oo; x4=3.5u;
+pos4'(hair,0); y4'=y3; x4'l-x3r=2.5u;
+pos5(hair,-60); z5=z1;
+filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5r--z5l{z2-z1}
...super_arc.l(4',4)&super_arc.l(4,3)---cycle; % left arm
-pos8(hair,-90); pos6(hair,0);
-z8=z2; pos7(stem, -90); bot y7r-.15stem=-oo; x6-x7=x4-x3;
-x6=w-x3;
-pos7'(hair,180); y7'=y6; x7'=w-x4';
-y6=h-y3;
-filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8&z8{z1-z2}
+pos6(hair,0); x6=w-x3; y6=h-y3;
+pos7(stem,-90); bot y7r-.15stem=-oo; x6-x7=x4-x3;
+pos7'(hair,-180); y7'=y6; x7'=w-x4';
+pos8(hair,-240); z8=z2;
+filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8r--z8l{z1-z2}
...super_arc.l(7',7)&super_arc.l(7,6)---cycle; % right arm
-%filldraw z8{z1-z2}..z7l...{up}z6r---z6l{-u,-2u}...z7r..{z2-z1}z8---cycle; %right arm
-penlabels(range 1 thru 8,4'); endchar;
+penlabels(range 1 thru 8,4',7'); endchar;
cmchar "Reversed, reflected, lowercase Greek epsilon";
beginchar(slot_epsiloninv,8u#,x_height#,0);
diff -u yma/ORIG/ymagrl.mf yma/ymagrl.mf
--- yma/ORIG/ymagrl.mf Wed Nov 26 00:47:21 1997
+++ yma/ymagrl.mf Fri Jan 23 04:43:16 1998
@@ -76,15 +76,19 @@
math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
penlabels(0,1,2,3,4,5,6,7,8); endchar;
+% Revised UV 1998/01/23 to get a more balanced look in upright version.
+% Originally developed and tested 1997/10/03.
+
cmchar "Lowercase Greek epsilon";
beginchar(slot_epsilonupright,8u#,x_height#,0);
italcorr x_height#*slant+.5hair#-2u#;
adjust_fit(0,0); pickup fine.nib;
-pos0(bar,90); pos1(bar,90); pos2(curve,180);
+pos0(bar,60); pos1(bar,90); pos2(curve,180);
pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90);
-x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1];
-x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l;
-top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
+x1=.5w+.5u; x0=x1+2u; lft x2r=hround(1.5u-.5curve); x3=.5w+u;
+x4r=good.x(w-u); x5=w+.5u; x6=x1+u; z7=z2l;
+top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
+y0=.2[y1,bar_height];
path p; p=z3r{right}...{up}z5;
numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p);
y4r=ypart point t of p;
@@ -171,11 +175,14 @@
...z8e{right}...{up}z9e; % lower diagonal
math_fit(0,ic#); penlabels(1,2,3,4,5,7,8,9); endchar;
+% Revised UV 1998/01/23 to reduce left overhang in upright version.
+% Originally developed and tested 1997/10/03.
+
cmchar "Lowercase Greek lambda";
beginchar(slot_lambdaupright,10.5u#,asc_height#,0);
adjust_fit(0,0); pickup fine.nib;
-pos1(vair,90); lft x1=hround .1u; top y1r=h;
-x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+pos1(vair,90); lft x1=hround .9u; top y1r=h;
+x2=x1+1.5u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
filldraw circ_stroke z1e{right}...z2e---z3e
@@ -201,6 +208,9 @@
math_fit(desc_depth#*slant+.5stem#-u#,ic#);
penlabels(1,2,3,4,5,6,7,8,9); endchar;
+% from CTAN:greek/kelly/grktxt.mf
+
+% Changed BHK 880923 to make left stem curved and reduce overhang on left
cmchar "Lowercase Greek nu";
beginchar(slot_nuupright,8.5u#,x_height#,0);
italcorr x_height#*slant+.5stem#-u#;
@@ -208,12 +218,16 @@
pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo;
x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem);
filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal
-pickup tiny.nib; pos1(stem,0); pos2(stem,0);
-top y1=h+min(oo,serif_drop); bot y2=0; x1=x2=x3;
+pickup tiny.nib;
+pos1(stem,10); pos2(stem,10);
+top y1=h+min(oo,serif_drop); bot y2=0; x2=x3;
z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h)));
-filldraw z1l--z2l--z--z1r--cycle; % stem
-sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
-math_fit(0,ic#-1/3x_height#*slant-.5u#); penlabels(1,2,3,4); endchar;
+x1-.5stem=hround(2.5u-.5stem);
+x5-x1=.6u; y5=.5[y1,y2]; pos5(stem,0);
+z1'=.2[z1,z5];
+filldraw stroke z1e...z5e...z2e;
+if serifs: sloped_serif.l(1,1',a,1/3,jut,serif_drop); fi % upper left serif
+math_fit(0,ic#-1/3x_height#*slant-.5u#); penlabels(1,2,3,4,5,1'); endchar;
cmchar "Lowercase Greek xi";
beginchar(slot_xiupright,9u#,asc_height#,desc_depth#);
@@ -241,12 +255,15 @@
math_fit(-.2asc_height#*slant-.5u#,0);
penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13); endchar;
+% Revised UV 1998/01/23 to get a more balanced look in upright version.
+% Originally developed and tested 1997/10/03.
+
cmchar "Lowercase Greek pi";
beginchar(slot_piupright,10u#,x_height#,0);
italcorr x_height#*slant+.5stem#-u#;
adjust_fit(0,0); pi_stroke; % hook and bar
pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2;
-x5=3u; x7=w-2.5u; y5=y7=.5stem-oo;
+x5=2.5u; x7=w-2.5u; y5=y7=.5stem-oo;
pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159;
pos5(stem,angle v1-90); pos7(stem,angle v2-90);
filldraw circ_stroke z5e{v1}...{up}z4e; % left stem
@@ -321,8 +338,11 @@
math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
penlabels(1,2,3,4,5,6); endchar;
+% Revised UV 1998/01/23 to reduce left and right overhang in upright version.
+% Originally developed and tested 1997/10/03.
+
cmchar "Lowercase Greek chi";
-beginchar(slot_chiupright,11u#,x_height#,desc_depth#);
+beginchar(slot_chiupright,9u#,x_height#,desc_depth#);
italcorr x_height#*slant+.5hair#-1.5u#;
adjust_fit(0,0); pickup fine.nib;
pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180);
@@ -334,7 +354,7 @@
y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5'];
filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l}
..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks
-x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d;
+x8=w-x7=u; y7+.5hair=h; y8-.5hair=-d;
numeric theta; theta=angle(z7-z8)-90;
pos7(hair,theta); pos8(hair,theta);
filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal
@@ -482,3 +502,22 @@
filldraw circ_stroke z7e---z6e...{right}z5e...{down}z4e...{left}z3e
...{up}z2e...{3(x1-x2),y1-y2}z1e; % bowl and stem
math_fit(-.3x_height#*slant,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+% from CTAN:fonts/greek/kelly/grktxt.mf
+
+% Designed BHK 880926 (based on \varkappa from msym10 [MF in SAIL])
+cmchar "Lowercase Greek kappa (variant)";
+beginchar(slot_kappa1upright,10u#,x_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+italcorr 1/3x_height#*slant+.5hair#-.5u#;
+pos1(hair,-45); pos2(stem,-90); pos3(vair,180); pos4(stem,90);
+pos14(stem,90); pos13(vair,180); pos12(stem,-90); pos11(hair,45);
+x1l=u; x11=w-x1; y1=good.y(.4[bar_height,h]); y11=h-y1;
+x2=.25[x1,w/2]=w-x12; y2l=h+oo; y12r=0;
+x3-x2=x2-x1; x13=w-x3; y3=y13=h/2;
+x4r=x1l; y4l=0; x14=w-x4; y14r=h+oo;
+filldraw circ_stroke z1e{up}..z2e{right}..z3e{-.2,-1}..z4e{-1,-1}; % left
+filldraw circ_stroke z11e{down}..z12e{left}..z13e{.2,1}..z14e{1,1}; % right
+filldraw z4l--z14l--z14r--z4r--cycle; % diagonal
+penlabels(1,2,3,4,11,12,13,14);
+endchar;