diff options
author | Karl Berry <karl@freefriends.org> | 2015-06-20 13:18:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-06-20 13:18:02 +0000 |
commit | 327fe7db70203b43deb33d496a9d2f6736032981 (patch) | |
tree | 2326ee7532b178a460575b8327326ed5747c226e | |
parent | 265eb77be2ea7991cb155d175740f1978b9aff45 (diff) |
fge (21may15)
git-svn-id: svn://tug.org/texlive/trunk@37628 c570f23f-e606-0410-a88d-b1316a301751
18 files changed, 666 insertions, 577 deletions
diff --git a/Master/texmf-dist/doc/fonts/fge/README b/Master/texmf-dist/doc/fonts/fge/README index 1cf8daa8a6b..78890d5b61d 100644 --- a/Master/texmf-dist/doc/fonts/fge/README +++ b/Master/texmf-dist/doc/fonts/fge/README @@ -11,11 +11,11 @@ This package contains several characters derived largely from the Computer Modern fonts, (c) D.E. Knuth. The spritus lenis accent is a simplified version of that in the Ibycus font (c) Pierre A. MacKay. The remainder of this work is Copyright -(c) J.J. Green 2007, 2009, 2011 and subject to the LaTeX Project -Public License. +(c) J.J. Green 2007, 2015 and subject to the LaTeX Project Public +License. Further information on the font can be found at - http://soliton.vm.bytemark.co.uk/pub/jjg/en/code/fge.html + http://soliton.vm.bytemark.co.uk/pub/jjg/en/code/fge/ -J.J. Green 2011 +J.J. Green 2015 diff --git a/Master/texmf-dist/doc/fonts/fge/fge-doc.pdf b/Master/texmf-dist/doc/fonts/fge/fge-doc.pdf Binary files differindex 3f7ee7f6eeb..10a4423dcea 100644 --- a/Master/texmf-dist/doc/fonts/fge/fge-doc.pdf +++ b/Master/texmf-dist/doc/fonts/fge/fge-doc.pdf diff --git a/Master/texmf-dist/fonts/map/dvips/fge/fge.map b/Master/texmf-dist/fonts/map/dvips/fge/fge.map index 98ffed08998..b9d6f6b0eed 100644 --- a/Master/texmf-dist/fonts/map/dvips/fge/fge.map +++ b/Master/texmf-dist/fonts/map/dvips/fge/fge.map @@ -1,4 +1,3 @@ % ps font map for fge -% $Id: fge.map,v 1.5 2009/05/06 12:17:29 jjg Exp $ fgerm10 fgerm10 <fgerm10.pfb fgeit10 fgeit10 <fgeit10.pfb diff --git a/Master/texmf-dist/fonts/source/public/fge/fgebase.mf b/Master/texmf-dist/fonts/source/public/fge/fgebase.mf index 3b990c9ca67..05df8510900 100644 --- a/Master/texmf-dist/fonts/source/public/fge/fgebase.mf +++ b/Master/texmf-dist/fonts/source/public/fge/fgebase.mf @@ -1,84 +1,83 @@ % fgebase.mf : Supplemental defintions for fge % J.J. Green 2005-2006 -% $Id: fgebase.mf,v 1.7 2007/01/24 00:03:04 jjg Exp $ fgebase := 1; % vertical versions of knuth's bulb, not sure why need quite % so many of these -def vbulb(suffix $,$$,$$$) = +def vbulb(suffix $, $$, $$$) = z$$$r = z$$r; - path_.l := z$l{0,y$$r-y$r}...{x$$r-x$r,0}z$$l; - filldraw path_.l--z$$r{y$r-y$$r,0}...{0,x$r-x$$r}z$r--cycle; % link - path_.r := z$$$l{x$r-x$$r,0}..z$$$r{x$$r-x$r,0}; % near-circle - filldraw path_.r--z$$l{x$$r-x$r,0}..cycle; % bulb + path_.l := z$l{0, y$$r-y$r}...{x$$r-x$r, 0}z$$l; + filldraw path_.l--z$$r{y$r-y$$r, 0}...{0, x$r-x$$r}z$r--cycle; % link + path_.r := z$$$l{x$r-x$$r, 0}..z$$$r{x$$r-x$r, 0}; % near-circle + filldraw path_.r--z$$l{x$$r-x$r, 0}..cycle; % bulb enddef; -def dlbulb(suffix $,$$,$$$) = +def dlbulb(suffix $, $$, $$$) = z$$$r = z$$r; - path_.l := z$l{0,y$$r-y$r}...{x$$r-x$r,0}z$$l; - filldraw path_.l--z$$r{y$$r-y$r,0}...{0,x$$r-x$r}z$r--cycle; % link - path_.r := z$$$l{x$$r-x$r,0}..z$$$r{x$r-x$$r,0}; % near-circle - filldraw path_.r--z$$l{x$r-x$$r,0}..cycle; % bulb + path_.l := z$l{0, y$$r-y$r}...{x$$r-x$r, 0}z$$l; + filldraw path_.l--z$$r{y$$r-y$r, 0}...{0, x$$r-x$r}z$r--cycle; % link + path_.r := z$$$l{x$$r-x$r, 0}..z$$$r{x$r-x$$r, 0}; % near-circle + filldraw path_.r--z$$l{x$r-x$$r, 0}..cycle; % bulb enddef; -def drbulb(suffix $,$$,$$$) = +def drbulb(suffix $, $$, $$$) = z$$$r = z$$r; - path_.l := z$l{0,y$$r-y$r}...{-x$r+x$$r,0}z$$l; - filldraw path_.l--z$$r{y$r-y$$r,0}...{0,x$r-x$$r}z$r--cycle; % link - path_.r := z$$$l{x$$r-x$r,0}..z$$$r{x$r-x$$r,0}; % near-circle - filldraw path_.r--z$$l{x$r-x$$r,0}..cycle; % bulb + path_.l := z$l{0, y$$r-y$r}...{-x$r+x$$r, 0}z$$l; + filldraw path_.l--z$$r{y$r-y$$r, 0}...{0, x$r-x$$r}z$r--cycle; % link + path_.r := z$$$l{x$$r-x$r, 0}..z$$$r{x$r-x$$r, 0}; % near-circle + filldraw path_.r--z$$l{x$r-x$$r, 0}..cycle; % bulb enddef; % vertical arm -vardef varm(suffix $,$$,@)(expr darkness,jut) = % arm from |z$| to |z$$| +vardef varm(suffix $, $$, @)(expr darkness, jut) = % arm from |z$| to |z$$| y@0=good.y(y$$r-jut); x@0=x$r; if serifs: x@1=x$l; z@1=z$$l+whatever*(z$$r-z@0); - z@2=.5[z$l,z@1]; - path p_; p_= z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2 + z@2=.5[z$l, z@1]; + path p_; p_= z$$l{z@1-z$$l}...darkness[z@1, .5[z@2, z$$l] ]...z@2 ---z$l--z$r--z@0--z$$r--cycle; if (x$$>x$) <> (xpart precontrol 1 of p_ > xpart postcontrol 1 of p_): - p_:=z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ] + p_:=z$$l{z@1-z$$l}...darkness[z@1, .5[z@2, z$$l] ] ---z$l--z$r--z@0--z$$r--cycle; fi filldraw p_; % arm and beak else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm - penlabels(@0,@1,@2); + penlabels(@0, @1, @2); enddef; -% horizontal serifs for rotated characters: here interchange x & y, +% horizontal serifs for rotated characters: here interchange x & y, % so top is right, left is bot and so on -vardef hserif(suffix $,$$,@) % serif at |z$| for stroke from |z$$| - (expr darkness,jut) suffix modifier = +vardef hserif(suffix $, $$, @) % serif at |z$| for stroke from |z$$| + (expr darkness, jut) suffix modifier = pickup crisp.nib; numeric bracket_height; pair downward; bracket_height=if dark.modifier: 1.5 fi\\ bracket; if x$<x$$: - x@2=min(x$+bracket_height,x$$); + x@2=min(x$+bracket_height, x$$); rt x@1-slab = lft x@0+eps = tiny.lft x$; downward = z$-z$$; if x@1>x@2: x@2:=x@1; fi else: - x@2 = max(x$-bracket_height,x$$); + x@2 = max(x$-bracket_height, x$$); lft x@1+slab = rt x@0-eps = tiny.rt x$; downward = z$$-z$; if x@1<x@2: x@2:=x@1; fi fi x@3 = x@2; - z@3 = whatever[z$,z$$]; + z@3 = whatever[z$, z$$]; if jut<0: z@2-penoffset downward of currentpen = z$r-penoffset downward of pen_[tiny.nib]+whatever*downward; @@ -94,8 +93,8 @@ vardef hserif(suffix $,$$,@) % serif at |z$| for stroke from |z$$| xpart corner=x@1; corner = z@2+whatever*downward; filldraw - z@2{z$-z$$}...darkness[corner,0.5[z@1,z@2]]{z@1-z@2} - ...{0,jut}z@1--z@0--(x@0,y$)--z@3--cycle; % the serif - labels (@1,@2); + z@2{z$-z$$}...darkness[corner, 0.5[z@1, z@2]]{z@1-z@2} + ...{0, jut}z@1--z@0--(x@0, y$)--z@3--cycle; % the serif + labels (@1, @2); enddef; diff --git a/Master/texmf-dist/fonts/source/public/fge/fgeit.mf b/Master/texmf-dist/fonts/source/public/fge/fgeit.mf index d06e2f83fcd..74620e52799 100644 --- a/Master/texmf-dist/fonts/source/public/fge/fgeit.mf +++ b/Master/texmf-dist/fonts/source/public/fge/fgeit.mf @@ -1,6 +1,5 @@ % fgeit.mf : fge italic characters % J.J. Green 2006 -% $Id: fgeit.mf,v 1.15 2007/04/04 21:47:15 jjg Exp $ mode_setup; font_setup; @@ -15,15 +14,15 @@ slantfont slantfge; % the left. cmchar "inverted f with hook"; -beginchar("f",7.5u#,asc_height#,desc_depth#); +beginchar("f", 7.5u#, asc_height#, desc_depth#); italcorr h#*slant + 0.5stem# - 2.5u#; - adjust_fit(serif_fit# + 2stem_shift#,serif_fit# - 2stem_shift#); + adjust_fit(serif_fit# + 2stem_shift#, serif_fit# - 2stem_shift#); pickup tiny.nib; % stem - pos1(stem',0); pos2(stem',0); + pos1(stem', 0); pos2(stem', 0); rt.x1r = hround(w/2 + 5u/4 + stem'/2); x1 = x2; @@ -34,8 +33,8 @@ beginchar("f",7.5u#,asc_height#,desc_depth#); % bar - pos3(bar,90); - pos4(bar,90); + pos3(bar, 90); + pos4(bar, 90); bot y3l = bot y4l = 0; rt x4 = hround(w - 1/3u); @@ -45,41 +44,41 @@ beginchar("f",7.5u#,asc_height#,desc_depth#); % arc and bulb - pos5(vair',-90); - pos6(hair,-180); - pos7(flare,-180); + pos5(vair', -90); + pos6(hair, -180); + pos7(flare, -180); - x5 = 1/2[x2,x6r]; + x5 = 1/2[x2, x6r]; bot y5r = -d-oo; y6 = 1/2flair = -0.88d; z6r = z7r; rt x7l = floor 11/4u; - (x,y5r) = whatever[z5l,z2l]; - x5r := max(x,1/2[x6r,x5]); + (x, y5r) = whatever[z5l, z2l]; + x5r := max(x, 1/2[x6r, x5]); filldraw stroke z2e{down}...z5e{left}; - bulb(5,6,7); + bulb(5, 6, 7); % hook - pos8(0.5[hair,curve],0); + pos8(0.5[hair, curve], 0); rt x8r = lft x1l; y8 = 0.5x_height; - pos9(curve,90); + pos9(curve, 90); top y9r = x_height + oo; - x9 = 0.4[0,x8l]; + x9 = 0.4[0, x8l]; - pos10(hair,180); - pos11(hair,-90); + pos10(hair, 180); + pos11(hair, -90); z9 - z10 = 2.0u*dir(45); z8 - z11 = 2.0u*dir(55); filldraw stroke z11e{right}...z8e{up}...{left}z9e...{down}z10e; - penlabels(1,2,3,4,5,6,7,8,9,10,11); + penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); endchar; @@ -91,9 +90,9 @@ endchar; % needed for consistency with computer modern's d. cmchar "inverted d with hook"; -beginchar("p",13u#,asc_height#,desc_depth#); +beginchar("p", 13u#, asc_height#, desc_depth#); italcorr 0.7x_height#*slant - u# + 0.5curve#; - adjust_fit(0,0); + adjust_fit(0, 0); numeric hook_jut; hook_jut = w - 9u; @@ -101,74 +100,74 @@ beginchar("p",13u#,asc_height#,desc_depth#); pickup fine.nib; x0 = hook_jut; x2 - 0.5stem - hook_jut = hround(2.5u-.5stem); - hook_in(0,1,2); % opening hook + hook_in(0, 1, 2); % opening hook - pos4(hair,-180); - pos5(vair,-90); - pos6(curve,0); - pos7(vair,90); + pos4(hair, -180); + pos5(vair, -90); + pos6(curve, 0); + pos7(vair, 90); x4=x2; rt x6r=hround(w-1.5u+.5curve); - x5=x7=.5[x4,x6]; + x5=x7=.5[x4, x6]; bot y5r=-oo; top y7r=x_height+oo; - y4=y6=.5[y5,y7]; + y4=y6=.5[y5, y7]; - filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6) - & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl + filldraw stroke super_arc.e(4, 5) & pulled_arc.e(5, 6) + & pulled_arc.e(6, 7) & super_arc.e(7, 4); % bowl pickup tiny.nib; - pos2'(stem,0); - pos3(stem,0); + pos2'(stem, 0); + pos3(stem, 0); z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem - sloped_serif.r(3,2',a,1/3,jut,serif_drop); % serif + sloped_serif.r(3, 2', a, 1/3, jut, serif_drop); % serif - math_fit(-min(2/3x_height#*slant-.5hair#-.5u#, - 2u#-.5stem#-desc_depth#*slant),ic#); + math_fit(-min(2/3x_height#*slant-.5hair#-.5u#, + 2u#-.5stem#-desc_depth#*slant), ic#); % bit ad-hoc this - pos8(hair,0); + pos8(hair, 0); z8r=z0l; - pos9(curve,90); - pos10(hair,180); + pos9(curve, 90); + pos10(hair, 180); - x9 = 1/2[x8,x10]; - y9r = 1/2[x_height,h]; - y10r = 1/4[y9l,y8]; + x9 = 1/2[x8, x10]; + y9r = 1/2[x_height, h]; + y10r = 1/4[y9l, y8]; x8l - lft x10r = hook_jut; % filldraw stroke z8e{up}...{left}z9e...{down}z10e; - filldraw stroke super_arc.e(8,9) & super_arc.e(9,10); + filldraw stroke super_arc.e(8, 9) & super_arc.e(9, 10); - penlabels(0,1,2,3,4,5,6,7,8,9,10); + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); endchar; cmchar "Overturned lb ligature"; -beginchar(oct "021",12u#,x_height#,desc_depth#); +beginchar(oct "021", 12u#, x_height#, desc_depth#); italcorr 0.7x_height#*slant - 0.5u#; - adjust_fit(0,0); + adjust_fit(0, 0); pickup crisp.nib; slope := 20; obstem := stem/cosd(slope); tsep := 3.75*stem; - thair := 0.3[hair,obstem]; + thair := 0.3[hair, obstem]; % 1-2-11-4-5-6 is the left trunk and flourish, 3 is a utility point - pos1(stem,0); - pos2(obstem,0); - pos4(hair,180-slope); - pos5(hair,-slope); - pos11(thair,90); + pos1(stem, 0); + pos2(obstem, 0); + pos4(hair, 180-slope); + pos5(hair, -slope); + pos11(thair, 90); %x1l = 0.5u; x2 = x1; @@ -177,32 +176,32 @@ beginchar(oct "021",12u#,x_height#,desc_depth#); z2-z3 = whatever*dir(180-slope); - z4 = 1.13[z3,z2]; - z5 = whatever[z3,z2]; + z4 = 1.13[z3, z2]; + z5 = whatever[z3, z2]; x5r = w-0.5u; x4r = 0.5u; % z11 lifts the left stroke - z11 = 0.5[z2,z4] + whatever*dir(90); + z11 = 0.5[z2, z4] + whatever*dir(90); top y11r = x_height + o; % z6 might be better half-way between the trunks - z6 = 0.89[z3,z2]; - pos6(hair,angle(z6-z1)+90); + z6 = 0.89[z3, z2]; + pos6(hair, angle(z6-z1)+90); filldraw stroke z1e--z2e{z2-z1}..z11e..{z1-z2}z4e..tension(1.0)..z5e{z2-z1}..z6e{z1-z6}; - penlabels(1,2,3,11,4,5,6); + penlabels(1, 2, 3, 11, 4, 5, 6); % the right trunk with foot - pos7(stem,0); - pos8(hair,90); - pos9(obstem,0); - pos10(hair,180-slope); + pos7(stem, 0); + pos8(hair, 90); + pos9(obstem, 0); + pos10(hair, 180-slope); x7-x1 = x9-x2 = tsep; y7 = y1; @@ -210,33 +209,33 @@ beginchar(oct "021",12u#,x_height#,desc_depth#); % the vertical lift point - x8 = 0.3[x9,x2]; + x8 = 0.3[x9, x2]; top y8r = x_height + o; - z10l = 0.8[z1r,z2r]; + z10l = 0.8[z1r, z2r]; filldraw stroke z7e--z9e{z9-z7}...z8e{left}..tension(2.0)..{z7-z9}z10e; - % serif(7,9,a,1/3,cap_jut); - sloped_serif.r(7,9,a,1/3,jut,serif_drop); % serif + % serif(7, 9, a, 1/3, cap_jut); + sloped_serif.r(7, 9, a, 1/3, jut, serif_drop); % serif - penlabels(7,8,9,10); + penlabels(7, 8, 9, 10); endchar; cmchar "inverted F"; -beginchar("F",11.5u#-width_adj#,x_height#,desc_depth#); +beginchar("F", 11.5u#-width_adj#, x_height#, desc_depth#); italcorr x_height#*slant-cap_jut#+0.5u#; - adjust_fit(0,cap_serif_fit#); + adjust_fit(0, cap_serif_fit#); h := vround(h-stem_corr); pickup tiny.nib; - pos1(cap_stem,0); - pos2(cap_stem,0); + pos1(cap_stem, 0); + pos2(cap_stem, 0); - rt x1r = rt x2r = hround w - max(2u,3u-0.5cap_stem); + rt x1r = rt x2r = hround w - max(2u, 3u-0.5cap_stem); top y1 = x_height; bot y2 = -desc_depth; @@ -244,24 +243,24 @@ beginchar("F",11.5u#-width_adj#,x_height#,desc_depth#); pickup crisp.nib; - pos3(slab,-90); - pos4(hair,180); + pos3(slab, -90); + pos4(hair, 180); bot y3r = -desc_depth; x3 = x1; rt x4r = hround(0.75u); y4 = good.y(y3r+beak)-eps; - arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak + arm(3, 4, e, beak_darkness, beak_jut); % upper arm and beak - pos5(cap_bar,-90); - pos6(hair,180); + pos5(cap_bar, -90); + pos6(hair, 180); - top y5l = vround(.5[y2,y1]+.5cap_bar); + top y5l = vround(.5[y2, y1]+.5cap_bar); x5 = x1; - pos0(cap_bar,90); + pos0(cap_bar, 90); - pos7(hair,180); + pos7(hair, 180); z0 = z5; x6 = x7; y6-y5l = y0l-y7; @@ -270,14 +269,14 @@ beginchar("F",11.5u#-width_adj#,x_height#,desc_depth#); y6 = good.y(y5l+.6beak) + eps; rt x9r = hround(w-.5u); - arm(5,6,f,beak_darkness,0); - arm(0,7,g,beak_darkness,0); % middle arm and serif + arm(5, 6, f, beak_darkness, 0); + arm(0, 7, g, beak_darkness, 0); % middle arm and serif - nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif - dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); % lower serif + nodish_serif(1, 2, a, 1/3, cap_jut, b, 1/3, .5cap_jut); % upper serif + dish_serif(2, 1, c, 1/3, cap_jut, d, 1/3, 1.25cap_jut); % lower serif - math_fit(0,ic#-2.5u#); - penlabels(0,1,2,3,4,5,6,7); + math_fit(0, ic#-2.5u#); + penlabels(0, 1, 2, 3, 4, 5, 6, 7); endchar; diff --git a/Master/texmf-dist/fonts/source/public/fge/fgeit10.mf b/Master/texmf-dist/fonts/source/public/fge/fgeit10.mf index 2f366ea0cdf..3c90db05262 100644 --- a/Master/texmf-dist/fonts/source/public/fge/fgeit10.mf +++ b/Master/texmf-dist/fonts/source/public/fge/fgeit10.mf @@ -1,7 +1,6 @@ % FGE italic 10 point % this is derived from cmti10.mf by Knuth % J.J.Green 2006 -% $Id: fgeit10.mf,v 1.2 2007/02/19 23:19:11 jjg Exp $ if unknown cmbase: input cmbase fi if unknown fgebase: input fgebase fi diff --git a/Master/texmf-dist/fonts/source/public/fge/fgerm.mf b/Master/texmf-dist/fonts/source/public/fge/fgerm.mf index 303760c4152..8e121eee212 100644 --- a/Master/texmf-dist/fonts/source/public/fge/fgerm.mf +++ b/Master/texmf-dist/fonts/source/public/fge/fgerm.mf @@ -1,6 +1,5 @@ % fgerm.mf : fge roman charcters % J.J. Green 2005-2006 -% $Id: fgerm.mf,v 1.26 2009/02/27 21:49:33 jjg Exp $ mode_setup; font_setup; @@ -11,12 +10,12 @@ proofing := 2; % are not members of themselves. cmchar "Overturned A"; -beginchar("A",13u#,x_height#,desc_depth#); - adjust_fit(cap_serif_fit#,cap_serif_fit#); +beginchar("A", 13u#, x_height#, desc_depth#); + adjust_fit(cap_serif_fit#, cap_serif_fit#); - numeric left_stem,right_stem,outer_jut,alpha; + numeric left_stem, right_stem, outer_jut, alpha; right_stem = cap_stem-stem_corr; - left_stem = min(cap_hair,right_stem); + left_stem = min(cap_hair, right_stem); outer_jut = 0.8cap_jut; w-x1l = x4r = l+letter_fit+outer_jut+0.5u; @@ -25,19 +24,19 @@ beginchar("A",13u#,x_height#,desc_depth#); x3r = x2r+apex_corr; y2 = y3 = -d-apex_o-apex_oo; - alpha = diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr); - penpos1(alpha*left_stem,180); - penpos2(alpha*left_stem,180); - penpos3(alpha*right_stem,180); - penpos4(alpha*right_stem,180); + alpha = diag_ratio(2, left_stem, y2-y1, x4r-x1l-apex_corr); + penpos1(alpha*left_stem, 180); + penpos2(alpha*left_stem, 180); + penpos3(alpha*right_stem, 180); + penpos4(alpha*right_stem, 180); - z0=whatever[z1r,z2r]=whatever[z3l,z4l]; + z0=whatever[z1r, z2r]=whatever[z3l, z4l]; - fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l) - --diag_end(2l,1l,1,1,1r,0)--cycle; + fill z0--diag_end(0, 4l, 1, 1, 4r, 3r)--diag_end(4r, 3r, 1, 1, 2l, 1l) + --diag_end(2l, 1l, 1, 1, 1r, 0)--cycle; - penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2]; - penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; + penpos5(whatever, angle(z2-z1)); z5=whatever[z1, z2]; + penpos6(whatever, angle(z3-z4)); z6=whatever[z3, z4]; y6 = y5; y5 = 5/12(h-y0); y5r-y5l = y6r-y6l = cap_band; @@ -51,85 +50,85 @@ beginchar("A",13u#,x_height#,desc_depth#); % since prime_points_inside() and dish_serif() % have the left & right sides of the points hard-coded - penpos11(alpha*left_stem,0); - penpos12(alpha*left_stem,0); + penpos11(alpha*left_stem, 0); + penpos12(alpha*left_stem, 0); z11 = z1; z12 = z2; - penpos13(alpha*right_stem,0); - penpos14(alpha*right_stem,0); + penpos13(alpha*right_stem, 0); + penpos14(alpha*right_stem, 0); z13 = z3; z14 = z4; pickup tiny.nib; - prime_points_inside(11,12); - prime_points_inside(14,13); + prime_points_inside(11, 12); + prime_points_inside(14, 13); inner_jut = cap_jut; - dish_serif(11',12,a,0.6,inner_jut,b,1/2,outer_jut)(dark); - dish_serif(14',13,c,1/3,outer_jut,d,1/2,inner_jut); + dish_serif(11', 12, a, 0.6, inner_jut, b, 1/2, outer_jut)(dark); + dish_serif(14', 13, c, 1/3, outer_jut, d, 1/2, inner_jut); - penlabels(0,1,2,3,4,5,6); + penlabels(0, 1, 2, 3, 4, 5, 6); endchar; % rotated eszett -beginchar(oct"031",4.5u#+max(4.5u#,.5stem#+flare#+curve#),x_height#,desc_depth#); - adjust_fit(0,serif_fit#); +beginchar(oct "031", 4.5u#+max(4.5u#, .5stem#+flare#+curve#), x_height#, desc_depth#); + adjust_fit(0, serif_fit#); pickup tiny.nib; - pos1(stem',0); - pos2(stem',0); + pos1(stem', 0); + pos2(stem', 0); rt x1r = rt x2r = hround(w-2.5u+.5stem'); top y1 = h; - y2 = y4 = 0.5[0,y3]; + y2 = y4 = 0.5[0, y3]; - penpos3(vair-fine,270); + penpos3(vair-fine, 270); fine.bot y3r = -d-oo; filldraw stroke z1e--z2e; % stem - numeric stem_edge,curve'; + numeric stem_edge, curve'; stem_edge = lft x1l; - curve' = hround .5[stem',curve]; + curve' = hround .5[stem', curve]; pickup fine.nib; - pos4(curve',180); - pos5(vair,90); - pos2'(stem',0); + pos4(curve', 180); + pos5(vair, 90); + pos2'(stem', 0); z2' = z2; - x3 = 0.5[x2,x4]; + x3 = 0.5[x2, x4]; lft x4r = hround(u); bot y5l = 0; rt x5 = hround(stem_edge-u); - filldraw stroke pulled_super_arc.e(2',3)(.5superpull) - & pulled_super_arc.e(3,4)(.5superpull) - & pulled_super_arc.e(4,5)(.5superpull); % upper bowl + filldraw stroke pulled_super_arc.e(2', 3)(.5superpull) + & pulled_super_arc.e(3, 4)(.5superpull) + & pulled_super_arc.e(4, 5)(.5superpull); % upper bowl - pos5'(vair,270); + pos5'(vair, 270); z5' = z5; - pos6(curve',180); - pos7(vair,90); + pos6(curve', 180); + pos7(vair, 90); lft x6r = hround(0.5u)+3eps; y6 = .6x_height; top y7r = x_height+oo; - pos8(hair,0); + pos8(hair, 0); rt x8r = hround(stem_edge-.5u-1); - x7 = 0.4[rt x8r,x6]; - filldraw stroke pulled_super_arc.e(5',6)(.5superpull) - & pulled_super_arc.e(6,7)(.5superpull); % lower bowl + x7 = 0.4[rt x8r, x6]; + filldraw stroke pulled_super_arc.e(5', 6)(.5superpull) + & pulled_super_arc.e(6, 7)(.5superpull); % lower bowl - pos9(5/7[vair,flare],0); + pos9(5/7[vair, flare], 0); y9-(x9-lft x9r) = vround 0.93x_height; - bulb(7,8,9); % bulb + bulb(7, 8, 9); % bulb - dish_serif(1,2,b,0,epsilon,c,1/3,jut); % serif + dish_serif(1, 2, b, 0, epsilon, c, 1/3, jut); % serif - penlabels(0,1,2,3,4,5,6,7,8); + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8); endchar; @@ -142,29 +141,29 @@ endchar; % and so cap_height/u = 11.6, fig_height/u = 12.3 cmchar "downward 2"; -beginchar("2",14u#,x_height#,0); - adjust_fit(0,0); +beginchar("2", 14u#, x_height#, 0); + adjust_fit(0, 0); numeric arm_thickness, hair_vair; - hair_vair = 0.25[vair,hair]; - arm_thickness = Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi); + hair_vair = 0.25[vair, hair]; + arm_thickness = Vround(if hefty:slab+2stem_corr else:.4[stem, cap_stem] fi); pickup crisp.nib; - pos7(arm_thickness,0); - pos8(hair,90); + pos7(arm_thickness, 0); + pos8(hair, 90); rt x7r = hround(w-0.9u); bot y7 = 0; top y8r = h+o/2; x8 = good.x(x7l-beak/2) - eps; - varm(7,8,a,0.3beak_darkness,beak_jut); % arm and beak + varm(7, 8, a, 0.3beak_darkness, beak_jut); % arm and beak pickup fine.nib; - pos2(slab,180); - pos3(.4[curve,cap_curve],90); + pos2(slab, 180); + pos3(.4[curve, cap_curve], 90); lft x2r = 0.9u; y2 = h/2; @@ -174,61 +173,61 @@ beginchar("2",14u#,x_height#,0); numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem)); - pos0(bulb_diam,-90); - pos1(cap_hair,-90); + pos0(bulb_diam, -90); + pos1(cap_hair, -90); bot y0r = -o/2; x1 + 0.5 bulb_diam = 1/3(w-1.8u) + 0.9u; - %(x2l,y) = whatever[z1l,z2r]; + %(x2l, y) = whatever[z1l, z2r]; %y2l := y; - dlbulb(2,1,0); % bulb and arc + dlbulb(2, 1, 0); % bulb and arc - pos4(0.25[hair_vair,cap_stem],90); - pos5(hair_vair,90); - pos6(hair_vair,90); + pos4(0.25[hair_vair, cap_stem], 90); + pos5(hair_vair, 90); + pos6(hair_vair, 90); x5 + arm_thickness = w - 0.9u; - x4 = 0.3[x5,x3]; + x4 = 0.3[x5, x3]; rt x6 = w - 0.9u - slab; bot y6 = crisp.bot y7; - z4l = whatever[z6l,(0.50w,y3l)]; - z5l = whatever[z6l,z4l]; + z4l = whatever[z6l, (0.50w, y3l)]; + z5l = whatever[z6l, z4l]; % erase excess at left - erase fill z4l--z6l--bot z6l--(x4l,bot y6l)--cycle; + erase fill z4l--z6l--bot z6l--(x4l, bot y6l)--cycle; % stroke filldraw stroke z2e{up}..tension atleast .9 and atleast 1 ..z3e{right}..{z5e-z4e}z4e--z5e--z6e; - penlabels(0,1,2,3,4,5,6,7,8); + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8); endchar; cmchar "upward 2"; -beginchar("4",14u#,x_height#,0); - adjust_fit(0,0); +beginchar("4", 14u#, x_height#, 0); + adjust_fit(0, 0); numeric arm_thickness, hair_vair; - hair_vair = 0.25[vair,hair]; - arm_thickness = Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi); + hair_vair = 0.25[vair, hair]; + arm_thickness = Vround(if hefty:slab+2stem_corr else:.4[stem, cap_stem] fi); pickup crisp.nib; - pos7(arm_thickness,180); - pos8(hair,-90); + pos7(arm_thickness, 180); + pos8(hair, -90); lft x7r = hround(0.9u); top y7 = h; bot y8r = -o/2; x8 = good.x(x7l+beak/2) + eps; - varm(7,8,a,.3beak_darkness,-beak_jut); % arm and beak + varm(7, 8, a, .3beak_darkness, -beak_jut); % arm and beak pickup fine.nib; - pos2(slab,0); - pos3(.4[curve,cap_curve],-90); + pos2(slab, 0); + pos3(.4[curve, cap_curve], -90); rt x2r = w-0.9u; y2 = h/2; @@ -238,141 +237,141 @@ beginchar("4",14u#,x_height#,0); numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem)); - pos0(bulb_diam,90); - pos1(cap_hair,90); + pos0(bulb_diam, 90); + pos1(cap_hair, 90); top y0r = h+o/2; x1 - 0.5 bulb_diam = 2/3(w-1.8u) + 0.9u; - %(x2l,y) = whatever[z1l,z2r]; + %(x2l, y) = whatever[z1l, z2r]; %y2l := y; - dlbulb(2,1,0); % bulb and arc + dlbulb(2, 1, 0); % bulb and arc - pos4(0.25[hair_vair,cap_stem],-90); - pos5(hair_vair,-90); - pos6(hair_vair,-90); + pos4(0.25[hair_vair, cap_stem], -90); + pos5(hair_vair, -90); + pos6(hair_vair, -90); x5 = arm_thickness + 0.9u; - x4 = 0.3[x5,x3]; + x4 = 0.3[x5, x3]; lft x6 = 0.9u + slab; top y6 = crisp.top y7; - z4l = whatever[z6l,(0.50w,y3l)]; - z5l = whatever[z6l,z4l]; + z4l = whatever[z6l, (0.50w, y3l)]; + z5l = whatever[z6l, z4l]; - erase fill z4l--z6l--top z6l--(x4l,top y6l)--cycle; + erase fill z4l--z6l--top z6l--(x4l, top y6l)--cycle; % stroke filldraw stroke z2e{down}..tension atleast .9 and atleast 1 ..z3e{left}..{z5e-z4e}z4e--z5e--z6e; - penlabels(0,1,2,3,4,5,6,7,8); + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8); endchar; cmchar "downward 3"; -beginchar("3",14u#,x_height#,0); - adjust_fit(0,0); +beginchar("3", 14u#, x_height#, 0); + adjust_fit(0, 0); - numeric top_thickness,mid_thickness,bot_thickness; + numeric top_thickness, mid_thickness, bot_thickness; - top_thickness=max(fine.breadth,vround(slab-2vair_corr)); - mid_thickness=max(fine.breadth,vround 2/3vair); - bot_thickness=max(fine.breadth,vround(slab-vair_corr)); + top_thickness=max(fine.breadth, vround(slab-2vair_corr)); + mid_thickness=max(fine.breadth, vround 2/3vair); + bot_thickness=max(fine.breadth, vround(slab-vair_corr)); pickup fine.nib; - pos2(top_thickness,180); + pos2(top_thickness, 180); lft x2r = 0.9u; - pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),90); + pos3(max(fine.breadth, .6[curve, cap_curve]-stem_corr), 90); top y3r=hround(h-0.75u+o); - pos4(vair,0); - pos5(vair,0); - pos6(mid_thickness,180); - y2 = y6 = y8 = 0.5[0.75u,y7]; + pos4(vair, 0); + pos5(vair, 0); + pos6(mid_thickness, 180); + y2 = y6 = y8 = 0.5[0.75u, y7]; - pos7(cap_curve,90); + pos7(cap_curve, 90); top y7r = hround(h+o); - bot y5 = min(vround 3u,bot y6)-eps; + bot y5 = min(vround 3u, bot y6)-eps; - pos8(bot_thickness,0); + pos8(bot_thickness, 0); rt x8r = w-0.9u; - x3 = 0.55[lft x4l,rt x2l]; - x7 = 0.5[lft x6l,rt x8l]; + x3 = 0.55[lft x4l, rt x2l]; + x7 = 0.5[lft x6l, rt x8l]; lft x5l = hround(0.9u+.46(w-1.8u)-0.5vair); x5r = x6l; - y4 = 1/3[y5,y3l]; - z4 = z5 + whatever*(-0.1fig_height,15u); + y4 = 1/3[y5, y3l]; + z4 = z5 + whatever*(-0.1fig_height, 15u); - filldraw stroke pulled_super_arc.e(2,3)(.5superpull) + filldraw stroke pulled_super_arc.e(2, 3)(.5superpull) & z3e{right}...z4e---z5e; % upper bowl filldraw z5r--z6l--z6r--z5l---cycle; % middle tip - filldraw stroke pulled_super_arc.e(6,7)(.5superpull) - & pulled_super_arc.e(7,8)(.5superpull); % lower bowl + filldraw stroke pulled_super_arc.e(6, 7)(.5superpull) + & pulled_super_arc.e(7, 8)(.5superpull); % lower bowl numeric bulb_diam[]; bulb_diam1 = flare + 0.5(cap_stem-stem); bulb_diam2 = flare + cap_stem-stem; - pos0(bulb_diam1,-90); - pos1(hair,-90); + pos0(bulb_diam1, -90); + pos1(hair, -90); lft y0r = hround 0.25u; x0 = x3; - dlbulb(2,1,0); % upper bulb + dlbulb(2, 1, 0); % upper bulb - pos10(bulb_diam2,270); - pos9(cap_hair,-90); + pos10(bulb_diam2, 270); + pos9(cap_hair, -90); bot y10r = hround(-0.25u); x10 = 0.9u + 0.7(w-1.8u) + 0.5bulb_diam2; - drbulb(8,9,10); % lower bulb + drbulb(8, 9, 10); % lower bulb - penlabels(0,1,2,3,4,5,6,7,8,9,10); + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); endchar; cmchar "upward B"; -beginchar("D",13u#,x_height#,0); +beginchar("D", 13u#, x_height#, 0); - numeric left_stem,right_curve,middle_weight; + numeric left_stem, right_curve, middle_weight; left_stem = cap_stem - hround 2stem_corr; middle_weight = 0.6vair + 0.5; pickup tiny.nib; - pos1(left_stem,-90); - pos2(left_stem,-90); + pos1(left_stem, -90); + pos2(left_stem, -90); bot y1r = bot y2r = 0; lft x1 = u; rt x2 = w-u; filldraw stroke z1e--z2e; % stem - penpos3(cap_band,180); - penpos4(cap_band,180); - penpos6(middle_weight,0); - penpos7(middle_weight,0); - penpos8(middle_weight,180); - penpos9(middle_weight,180); - penpos5(right_curve-stem_corr,90); - penpos10(right_curve,90); - penpos11(cap_band,0); - penpos12(cap_band,0); + penpos3(cap_band, 180); + penpos4(cap_band, 180); + penpos6(middle_weight, 0); + penpos7(middle_weight, 0); + penpos8(middle_weight, 180); + penpos9(middle_weight, 180); + penpos5(right_curve-stem_corr, 90); + penpos10(right_curve, 90); + penpos11(cap_band, 0); + penpos12(cap_band, 0); z3r = lft z1; x4 = x3; - x5 = 0.5[x4,x6]; + x5 = 0.5[x4, x6]; x6 = x7; x8l-x7l = vair; z12r = rt z2; x11 = x12; - x10 = 0.5[x11,x9]; + x10 = 0.5[x11, x9]; x8 = x9; - 0.5[x7l,x8l] = u+0.48(w-2u); + 0.5[x7l, x8l] = u+0.48(w-2u); y4 = y6; y9 = y11 = y4+0.5u; y7 = y8 = y1; @@ -381,61 +380,61 @@ beginchar("D",13u#,x_height#,0); y10r = vround(h+o); right_curve = cap_curve-stem_corr; - y4 = 0.45[y1,h+o]; + y4 = 0.45[y1, h+o]; y6l := y6l-0.5u; y11l := y11l-0.5u; - fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe - fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe + fill stroke z3e..super_arc.e(4, 5) & super_arc.e(5, 6)..z7e; % upper lobe + fill stroke z8e..super_arc.e(9, 10) & super_arc.e(10, 11)..z12e; % lower lobe - hserif(1,2,a,1/3,-cap_jut); - hserif(1,2,b,1/3,1/2cap_jut); - hserif(2,1,c,1/3,-cap_jut); - hserif(2,1,d,1/3,1/2cap_jut); + hserif(1, 2, a, 1/3, -cap_jut); + hserif(1, 2, b, 1/3, 1/2cap_jut); + hserif(2, 1, c, 1/3, -cap_jut); + hserif(2, 1, d, 1/3, 1/2cap_jut); - math_fit(0,0.5ic#); - penlabels(1,2,3,4,5,6,7,8,9,10,11,12); + math_fit(0, 0.5ic#); + penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); endchar; cmchar "downward B"; -beginchar("B",13u#,x_height#,0); +beginchar("B", 13u#, x_height#, 0); - numeric left_stem,right_curve,middle_weight; + numeric left_stem, right_curve, middle_weight; left_stem = cap_stem - hround 2stem_corr; middle_weight = 0.6vair + 0.5; pickup tiny.nib; - pos1(left_stem,-90); - pos2(left_stem,-90); + pos1(left_stem, -90); + pos2(left_stem, -90); top y1l = top y2l = h; rt x1 = w-u; lft x2 = u; filldraw stroke z1e--z2e; % stem - penpos3(cap_band,0); - penpos4(cap_band,0); - penpos6(middle_weight,180); - penpos7(middle_weight,180); - penpos8(middle_weight,0); - penpos9(middle_weight,0); - penpos5(right_curve-stem_corr,-90); - penpos10(right_curve,-90); - penpos11(cap_band,180); - penpos12(cap_band,180); + penpos3(cap_band, 0); + penpos4(cap_band, 0); + penpos6(middle_weight, 180); + penpos7(middle_weight, 180); + penpos8(middle_weight, 0); + penpos9(middle_weight, 0); + penpos5(right_curve-stem_corr, -90); + penpos10(right_curve, -90); + penpos11(cap_band, 180); + penpos12(cap_band, 180); z3r = rt z1; x4 = x3; - x5 = 0.5[x4,x6]; + x5 = 0.5[x4, x6]; x6 = x7; x7l-x8l = vair; z12r = lft z2; x11 = x12; - x10 = 0.5[x11,x9]; + x10 = 0.5[x11, x9]; x8 = x9; - 0.5[x7l,x8l] = u+0.52(w-2u); + 0.5[x7l, x8l] = u+0.52(w-2u); y4 = y6; y9 = y11 = y4-0.5u; y7 = y8 = y1; @@ -444,21 +443,21 @@ beginchar("B",13u#,x_height#,0); y10r = vround(-o); right_curve = cap_curve-stem_corr; - y4 = 0.45[y1,-o]; + y4 = 0.45[y1, -o]; y6l := y6l+0.5u; y11l := y11l+0.5u; - fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe - fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe + fill stroke z3e..super_arc.e(4, 5) & super_arc.e(5, 6)..z7e; % upper lobe + fill stroke z8e..super_arc.e(9, 10) & super_arc.e(10, 11)..z12e; % lower lobe - hserif(1,2,a,1/3,cap_jut); - hserif(1,2,b,1/3,-1/2cap_jut); - hserif(2,1,c,1/3,cap_jut); - hserif(2,1,d,1/3,-1/2cap_jut); + hserif(1, 2, a, 1/3, cap_jut); + hserif(1, 2, b, 1/3, -1/2cap_jut); + hserif(2, 1, c, 1/3, cap_jut); + hserif(2, 1, d, 1/3, -1/2cap_jut); - math_fit(0,0.5ic#); - penlabels(1,2,3,4,5,6,7,8,9,10,11,12); + math_fit(0, 0.5ic#); + penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); endchar; @@ -468,33 +467,33 @@ endchar; % ascends half way between them cmchar "upward C"; -beginchar("C",13u#,cap_height#,0); - adjust_fit(0,0); +beginchar("C", 13u#, cap_height#, 0); + adjust_fit(0, 0); pickup fine.nib; - pos1(cap_hair,90); - pos2(cap_band,180); - pos3(cap_curve,-90); - pos4(cap_band,0); - pos5(hair,90); + pos1(cap_hair, 90); + pos2(cap_band, 180); + pos3(cap_curve, -90); + pos4(cap_band, 0); + pos5(hair, 90); - top y1r = top y5r = 0.5[x_height,h]; + top y1r = top y5r = 0.5[x_height, h]; bot y3r = -o; - y2 = y4 = 0.55[y3,y1]; + y2 = y4 = 0.55[y3, y1]; lft x2r = u; rt x4r = hround(w-u); - x3 = 0.5[x2,x4]; + x3 = 0.5[x2, x4]; rt x1 = u + 0.4(w-2u); lft x5 = w - u - 0.95(x1-u); - (x2l,y2l') = whatever[z2r,z1l]; y2l := min(y2l',y2l+.5u); - (x4l,y4l') = whatever[z4r,z5l]; y4l := min(y4l',y4l+.5u); - filldraw stroke z1e{10(x2-x1),y2-y1} - ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{left}z5e; % arc + (x2l, y2l') = whatever[z2r, z1l]; y2l := min(y2l', y2l+.5u); + (x4l, y4l') = whatever[z4r, z5l]; y4l := min(y4l', y4l+.5u); + filldraw stroke z1e{10(x2-x1), y2-y1} + ...pulled_arc.e(2, 3) & pulled_arc.e(3, 4)...{left}z5e; % arc - pos6(0.3[fine.breadth,cap_hair],90); + pos6(0.3[fine.breadth, cap_hair], 90); y6r = y1r; lft x6 = u; y1r-y1'=2cap_curve-fine; @@ -502,16 +501,16 @@ beginchar("C",13u#,cap_height#,0); path upper_arc; - upper_arc=z1{10(x2-x1),y2-y1}..z2{down}; + upper_arc=z1{10(x2-x1), y2-y1}..z2{down}; numeric t; t = xpart(upper_arc intersectiontimes (z6l--z1')); - filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb + filldraw z1r--z6r--z6l--subpath(t, 0) of upper_arc--cycle; % barb - math_fit(-.3cap_height#*slant-.5u#,.5ic#); - penlabels(1,1',2,3,4,5,6); + math_fit(-.3cap_height#*slant-.5u#, .5ic#); + penlabels(1, 1', 2, 3, 4, 5, 6); endchar; % fletched arrows, which are 4u longer than the cm @@ -519,45 +518,45 @@ endchar; % head on the upward arrow is slighty wider than the % rightward -numeric fwdt,fjut,fang; +numeric fwdt, fjut, fang; fwdt := 2/3 rule_thickness; fjut := 1.3; fang := 60; -vardef fletch(suffix $,$$,@) = - fletchLR($,$$,@,fang,90,fwdt,fjut); - fletchLR($,$$,@',-fang,-90,fwdt,fjut); +vardef fletch(suffix $, $$, @) = + fletchLR($, $$, @, fang, 90, fwdt, fjut); + fletchLR($, $$, @', -fang, -90, fwdt, fjut); enddef; -vardef fletchLR(suffix $,$$,@)(expr a,r,wdt,len) = - numeric b,c; +vardef fletchLR(suffix $, $$, @)(expr a, r, wdt, len) = + numeric b, c; b := angle(z$$-z$); z@1 = z$ + len * ((z$$-z$) rotated a); z@2 = z@1 + whatever*((z$ - z@1) rotated r); z@2 = z$$ + whatever*((z$$ - z$) rotated a); z@3 = z@4 = z$; c := angle(z@1-z@2); - penpos@1(wdt,c); - penpos@2(wdt,c+180); - penpos@3(wdt,b-r); - penpos@4(wdt,b+180); + penpos@1(wdt, c); + penpos@2(wdt, c+180); + penpos@3(wdt, b-r); + penpos@4(wdt, b+180); penstroke z@4e--z@1e...z@2e{z$-z@1}...{z$-z$$}z@3e; - penlabels(@1,@2,@3); + penlabels(@1, @2, @3); enddef; cmchar "Upward arrow with fletching"; -beginchar(oct "042",8u#,asc_height#+2u#,asc_depth#+2u#); - adjust_fit(0,0); +beginchar(oct "042", 8u#, asc_height#+2u#, asc_depth#+2u#); + adjust_fit(0, 0); pickup crisp.nib; - pos1(rule_thickness,0); - pos2(rule_thickness,0); - pos3(rule_thickness,90); - pos4(rule_thickness,90); + pos1(rule_thickness, 0); + pos2(rule_thickness, 0); + pos3(rule_thickness, 90); + pos4(rule_thickness, 90); - numeric headh,headw; + numeric headh, headw; headw := (w-u)/2+eps; headh := 0.36*w/(9u)*asc_height+eps; @@ -569,12 +568,12 @@ beginchar(oct "042",8u#,asc_height#+2u#,asc_depth#+2u#); x0-x3 = x4-x0 = headw; y3 = y4 = y0 - headh; - pos5(rule_thickness,angle(z4-z0)); + pos5(rule_thickness, angle(z4-z0)); z5l=z0; - pos6(rule_thickness,angle(z3-z0)); + pos6(rule_thickness, angle(z3-z0)); z6l=z0; - z9 = 0.2[0.5[z3,z4],z0]; + z9 = 0.2[0.5[z3, z4], z0]; numeric rake; @@ -585,13 +584,13 @@ beginchar(oct "042",8u#,asc_height#+2u#,asc_depth#+2u#); numeric t; path p; p=z4l{z9-z4}..z6r; - t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p; + t=xpart(p intersectiontimes((x2r, -d)--(x2r, h))); y2=ypart point t of p; - filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) - ---z1r---z1l---subpath (t,0) of\\(z3l{z9-z3}..z5r) + filldraw z0..{z4-z9}z4r--subpath (0, t) of\\(z4l{z9-z4}..z6r) + ---z1r---z1l---subpath (t, 0) of\\(z3l{z9-z3}..z5r) --z3r{z9-z3}..z0 & cycle; % arrowhead and stem - penlabels(0,2,3,4,5,6,9); + penlabels(0, 2, 3, 4, 5, 6, 9); % fletching @@ -599,30 +598,30 @@ beginchar(oct "042",8u#,asc_height#+2u#,asc_depth#+2u#); y11-y10 = y12-y11 = y13-y12 = 3/5rake; % fletch separation y11 = y1; - fletch(11,10,a); - fletch(12,11,b); - fletch(13,12,c); + fletch(11, 10, a); + fletch(12, 11, b); + fletch(13, 12, c); - labels(10,11,12,13); + labels(10, 11, 12, 13); endchar; cmchar "Rightward arrow with fletching"; -compute_spread(0.45x_height#,0.55x_height#); -beginchar(oct "041",22u#,v_center(spread#+rule_thickness#)); - adjust_fit(0,0); +compute_spread(0.45x_height#, 0.55x_height#); +beginchar(oct "041", 22u#, v_center(spread#+rule_thickness#)); + adjust_fit(0, 0); pickup crisp.nib; - pos1(rule_thickness,90); - pos2(rule_thickness,90); - pos3(rule_thickness,0); - pos4(rule_thickness,0); + pos1(rule_thickness, 90); + pos2(rule_thickness, 90); + pos3(rule_thickness, 0); + pos4(rule_thickness, 0); y0 = y1 = y2 = math_axis; rt x0 = hround(w-u); - numeric headw,headh; + numeric headw, headh; headw = 0.26 asc_height+eps; headh = 4u + eps; @@ -630,12 +629,12 @@ beginchar(oct "041",22u#,v_center(spread#+rule_thickness#)); y3-y0 = y0-y4 = headw; x3 = x4 = x0 - headh; - pos5(rule_thickness,angle(z4-z0)); - pos6(rule_thickness,angle(z3-z0)); + pos5(rule_thickness, angle(z4-z0)); + pos6(rule_thickness, angle(z3-z0)); z5l = z0; z6l = z0; - z9 = 0.2[0.5[z3,z4],z0]; + z9 = 0.2[0.5[z3, z4], z0]; numeric rake; @@ -645,13 +644,13 @@ beginchar(oct "041",22u#,v_center(spread#+rule_thickness#)); numeric t; path p; p=z4l{z9-z4}..z6r; - t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; + t=xpart(p intersectiontimes((0, y2l)--(w, y2l))); x2=xpart point t of p; - filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) - ---z1l---z1r---subpath (t,0) of\\(z3l{z9-z3}..z5r) + filldraw z0..{z4-z9}z4r--subpath (0, t) of\\(z4l{z9-z4}..z6r) + ---z1l---z1r---subpath (t, 0) of\\(z3l{z9-z3}..z5r) --z3r{z9-z3}..z0 & cycle; % arrowhead and stem - penlabels(0,1,2,3,4,5,6,9); + penlabels(0, 1, 2, 3, 4, 5, 6, 9); % fletching @@ -660,11 +659,11 @@ beginchar(oct "041",22u#,v_center(spread#+rule_thickness#)); x11-x10 = x12-x11 = x13-x12 = 3/5rake; x11 = hround x1; - fletch(11,10,a); - fletch(12,11,b); - fletch(13,12,c); + fletch(11, 10, a); + fletch(12, 11, b); + fletch(13, 12, c); - labels(10,11,12,13); + labels(10, 11, 12, 13); endchar; @@ -672,17 +671,17 @@ endchar; % romand.mf, with the strikeout added at the end cmchar "Reverse struckout 0"; -beginchar("0",9u#,fig_height#,0); - adjust_fit(0,0); +beginchar("0", 9u#, fig_height#, 0); + adjust_fit(0, 0); - penpos1(vair,90); - penpos3(vair,-90); - penpos2(curve,180); - penpos4(curve,0); + penpos1(vair, 90); + penpos3(vair, -90); + penpos2(curve, 180); + penpos4(curve, 0); interim superness := sqrt(more_super*hein_super); - x2r = hround max(.7u,1.45u-.5curve); + x2r = hround max(.7u, 1.45u-.5curve); x4r = w-x2r; x1 = x3 = 0.5w; y1r = h+o; @@ -690,12 +689,12 @@ beginchar("0",9u#,fig_height#,0); y2=y4 = 0.5h-vair_corr; y2l := y4l := 0.52h; - penstroke pulled_arc.e(1,2) - & pulled_arc.e(2,3) - & pulled_arc.e(3,4) - & pulled_arc.e(4,1) & cycle; % bowl + penstroke pulled_arc.e(1, 2) + & pulled_arc.e(2, 3) + & pulled_arc.e(3, 4) + & pulled_arc.e(4, 1) & cycle; % bowl - penlabels(1,2,3,4); + penlabels(1, 2, 3, 4); % the strikeout @@ -707,20 +706,20 @@ beginchar("0",9u#,fig_height#,0); x6 = x2r; draw z5--z6; - labels(5,6); + labels(5, 6); endchar; cmchar "Reverse struckout 1"; -beginchar("1",9u#,fig_height#,0); - adjust_fit(0,0); +beginchar("1", 9u#, fig_height#, 0); + adjust_fit(0, 0); numeric light_stem; - light_stem=hround .4[stem',cap_stem']; + light_stem=hround .4[stem', cap_stem']; pickup tiny.nib; - pos1(light_stem,0); - pos2(light_stem,0); + pos1(light_stem, 0); + pos2(light_stem, 0); lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; @@ -730,26 +729,26 @@ beginchar("1",9u#,fig_height#,0); if not serifs: save slab; slab=bar; fi - dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u), - b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif + dish_serif(2, 1, a, 1/3, min(2.25u, lft x2l-1.5u), + b, 1/3, min(2.25u, w-1.25u-rt x2r)); % serif pickup crisp.nib; - pos3(slab,-90); - pos4(bar,-90); + pos3(slab, -90); + pos4(bar, -90); top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o; - lft x4=max(1.25u,tiny.lft x1l-2.35u); - tiny.rt x1r=lft x3+.25[tiny,hair]; + lft x4=max(1.25u, tiny.lft x1l-2.35u); + tiny.rt x1r=lft x3+.25[tiny, hair]; - erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left} - --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top + erase fill z3l{x4l-x3l, 3(y4l-y3l)}...z4l{left} + --(x4l, h+o+1)--(x3l, h+o+1)--cycle; % erase excess at top - filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point + filldraw stroke z3e{x4e-x3e, 3(y4e-y3e)}..z4e{left}; % point - penlabels(1,2,3,4); + penlabels(1, 2, 3, 4); % the strikeout -- possible raise z6 a little @@ -761,7 +760,7 @@ beginchar("1",9u#,fig_height#,0); draw z5--z6; - labels(5,6); + labels(5, 6); endchar; @@ -777,48 +776,96 @@ endchar; % Pierre A. MacKay, from work by Silvio Levy's realization of a % classic Didot cut of Greek type from around 1800. -def smooth(suffix $,@)(expr dot_size,depth,shear) = +def smooth(suffix $, @)(expr dot_size, depth, shear) = pickup fine.nib; - pos$(dot_size,90); - pos@1(vair,90); - pos@2(vair,0); - pos@3(vair,-90); + pos$(dot_size, 90); + pos@1(vair, 90); + pos@2(vair, 0); + pos@3(vair, -90); z@1r = z$r; y@1l := y$; - rt x@2r = hround(x$+0.5depth+0.5shear); - x@3-0.5vair = hround(x$-0.5dot_size+shear); - y@2 = .5[y@1,y@3]; - bot y@3r = vround(top y@1r-depth); + rt x@2r = hround(x$ + 0.5 depth + 0.5 shear); + x@3 - 0.5 vair = hround(x$ - 0.5 dot_size + shear); + y@2 = 0.5[y@1, y@3]; + bot y@3r = vround(top y@1r - depth); - path pp; pp = (z@2{down}...z@3); + path pp; + pp = (z@2{down}...z@3); % position a vertical path through the right side of the bulb - x@1' = x@1+.05dot_size; + x@1' = x@1 + 0.5 dot_size; % At the intersection of that path with SL's tail, get the direction - pair d@@; d@@=( direction - (xpart( (z@2{down}...z@3) intersectiontimes ((x@1',0){up}--(x@1',y@1)))) - of (z@2{down}...z@3)); + pair d@@; + d@@ = (direction (xpart( + (z@2{down}...z@3) + intersectiontimes + ((x@1', 0){up}--(x@1', y@1)))) + of (z@2{down}...z@3)); % Tilt a pen at a right angle to that direction - pos@3'(vair,angle(d@@)+90); + pos@3'(vair, angle(d@@) + 90); % Place it at the intersection. This will be the new end of the tail. z@3' = directionpoint d@@ of(z@2{down}...z@3); y_ := ypart((z@1{right}...z@2{down}...z@3) - intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi - filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot + intersectiontimes (z$l{right}..{left}z$r)); + if y_ < 0: + y_ := 1; + fi + filldraw z$r{left}..subpath (0, y_) of (z$l{right}..{left}z$r)--cycle; % dot filldraw stroke z@1e{right}...z@2e{down}...{d@@}z@3'e; - penlabels(@1,@2,@3); + penlabels(@1, @2, @3); +enddef; + +def rough(suffix $, @)(expr dot_size, depth, shear) = + pickup fine.nib; + + pos$(dot_size, 90); + pos@1(vair, 90); + pos@2(vair, 180); + pos@3(vair, -90); + + z@1r = z$r; + y@1l := y$; + lft x@2r = hround(x$ - 0.5 depth + 0.5 shear); + x@3 + 0.5 vair = x$ + 0.5 dot_size + shear; + y@2 = 0.5 [y@1, y@3]; + bot y@3r = vround(top y@1r - depth); + + % position a vertical path through the left side of the bulb + x@1' = x@1 - 0.5 dot_size; + + % At the intersection of that path with SL's tail, get the direction + pair d@@; + d@@ = ( direction (xpart( (z@2{down}...z@3) + intersectiontimes + ((x@1', 0){up}--(x@1', y@1)))) + of (z@2{down}...z@3)); + + % Tilt a pen at a right angle to that direction + pos@3'(vair, angle(d@@) - 90); + + % Place it at the intersection. This will be the new end of the tail. + z@3' = directionpoint d@@ of(z@2{down}...z@3); + y_ := ypart((z@1{left}...z@2{down}...z@3) + intersectiontimes (z$l{left}..{right}z$r)); + if y_ < 0: + y_ := 1; + fi + filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot + filldraw stroke z@1e{left}...z@2e{down}...{d@@}z@3'e; + + penlabels(@1, @2, @3); enddef; cmchar "Spiritus Lenis accent (tailed)"; -beginchar(oct "025",9u#,min(asc_height#-x_height#,x_height#),0); +beginchar(oct "025", 9u#, min(asc_height#-x_height#, x_height#), 0); - adjust_fit(0,0); + adjust_fit(0, 0); numeric dot_diam#; dot_diam# = 3/4dot_size#; @@ -827,36 +874,74 @@ beginchar(oct "025",9u#,min(asc_height#-x_height#,x_height#),0); x1 = 0.5w - o; y1 = h; - smooth(1,a,dot_size,3/4h,0); + smooth(1, a, dot_size, 3/4h, 0); endchar; -% this is my effort -- closer to the form used by Pohl, +% this is my effort -- closer to the form used by Pohl, % a blunted crecent. cmchar "Spiritus Lenis accent (crescent)"; -beginchar(oct "026",9u#,min(asc_height#-x_height#,x_height#),0); +beginchar(oct "026", 9u#, min(asc_height#-x_height#, x_height#), 0); numeric rake; rake = 10; - penpos1(hair,270+rake); - penpos2(0.3[hair,stem],180); - penpos3(hair,90-rake); + penpos1(hair, 270+rake); + penpos2(0.3[hair, stem], 180); + penpos3(hair, 90-rake); x1 = x3 = 0.5w - o; y1 = h; - y3l = max(h/3,o+hair); + y3l = max(h/3, o+hair); y2+y2 = y1+y3; x2 - x1 = 0.65*(y1-y3); penstroke z1e{dir(rake)}..z2e..{dir(180-rake)}z3e; - penlabels(1,2,3); + penlabels(1, 2, 3); endchar; +cmchar "Spiritus Asper accent (tailed)"; +beginchar(oct "023", 9u#, min(asc_height#-x_height#, x_height#), 0); + + adjust_fit(0, 0); + + numeric dot_diam#; + dot_diam# = 3/4dot_size#; + define_whole_blacker_pixels(dot_diam); + + x1 = 0.5w - o; + y1 = h; + + rough(1, a, dot_size, 3/4h, 0); + +endchar; + +cmchar "Spiritus Asper accent (crescent)"; +beginchar(oct "024", 9u#, min(asc_height#-x_height#, x_height#), 0); + + numeric rake; + + rake = 10; + + penpos1(hair, 90-rake); + penpos2(0.3[hair, stem], 180); + penpos3(hair, 270+rake); + + x1 = x3 = 0.5w - o; + y1 = h; + y3r = max(h/3, o+hair); + y2+y2 = y1+y3; + x1 - x2 = 0.65*(y1-y3); + + penstroke z1e{dir(180-rake)}..z2e..{dir(rake)}z3e; + + penlabels(1, 2, 3); + +endchar; % This is the archaic long s with mid bar, used by % Frege as the successor functon. The upright stroke @@ -864,38 +949,38 @@ endchar; % along the math-axis rather than the x-height. cmchar "Long s with midline bar"; -beginchar("s",5.5u#,asc_height#,0); - adjust_fit(0,0); +beginchar("s", 5.5u#, asc_height#, 0); + adjust_fit(0, 0); pickup tiny.nib; - pos1(stem',0); + pos1(stem', 0); lft x1l = hround(2.5u-0.5stem'); pickup fine.nib; numeric bulb_diam; - bulb_diam = hround 0.8[stem,flare]; - pos2(bulb_diam,0); - y2 + 0.5bulb_diam = 0.9[x_height,h+oo]; + bulb_diam = hround 0.8[stem, flare]; + pos2(bulb_diam, 0); + y2 + 0.5bulb_diam = 0.9[x_height, h+oo]; lft x2l = hround(w-0.75u+0.5); - f_stroke(1,2,a,b,c,jut,1.25jut); + f_stroke(1, 2, a, b, c, jut, 1.25jut); pickup crisp.nib; - pos3(bar,90); - pos4(bar,90); + pos3(bar, 90); + pos4(bar, 90); y3 = y4 = math_axis; lft x3 = hround(0.5u - 1); rt x4 = hround(w - 1/3u); filldraw stroke z3e--z4e; - penlabels(1,2,3,4); + penlabels(1, 2, 3, 4); endchar; cmchar "Roman U with flourish"; -beginchar("U",15u#,cap_height#,desc_depth#); - adjust_fit(cap_serif_fit#,cap_serif_fit#); +beginchar("U", 15u#, cap_height#, desc_depth#); + adjust_fit(cap_serif_fit#, cap_serif_fit#); numeric colsep; @@ -907,11 +992,11 @@ beginchar("U",15u#,cap_height#,desc_depth#); % 4-1-2-3-5 is the main part of the U - pos1(cap_stem,180); - pos2(0.25[cap_hair,cap_stem],270); - pos3(cap_hair,0); - pos4(cap_stem,180); - pos5(cap_hair,0); + pos1(cap_stem, 180); + pos2(0.25[cap_hair, cap_stem], 270); + pos3(cap_hair, 0); + pos4(cap_stem, 180); + pos5(cap_hair, 0); x1r = w-x3r; x3l - x1l = colsep; @@ -927,8 +1012,8 @@ beginchar("U",15u#,cap_height#,desc_depth#); % note that the top of the bulb is aligned with the % height, not h+o -- that is on purpose - pos6(cap_hair,270); - pos7(cap_stem,90); + pos6(cap_hair, 270); + pos7(cap_stem, 90); y4l = 0.72h; y5l = 0.82h; @@ -937,17 +1022,17 @@ beginchar("U",15u#,cap_height#,desc_depth#); y6l = h; filldraw stroke z4e..z1e{down}..z2e{right}..z3e{up}..z5e; - vbulb(5,6,7); + vbulb(5, 6, 7); % 9-10-11-12 is the flourish - pos9(cap_hair,270); + pos9(cap_hair, 270); bot y9r = bot y10r = 0; x9l = w-x10r = 0.5u; - pos11(cap_hair,50); - pos12(0.25[cap_hair,cap_stem],270); + pos11(cap_hair, 50); + pos12(0.25[cap_hair, cap_stem], 270); x11l = x12 = x4 - 0.9colsep; y11 = y4; @@ -956,7 +1041,7 @@ beginchar("U",15u#,cap_height#,desc_depth#); z11l-z10l = whatever*(z11r-z10r); z9l-z10l = whatever*(z9r-z10r); - z10 = 0.5[z10l,z10r]; + z10 = 0.5[z10l, z10r]; % the curved stroke from the left arm of the U @@ -967,7 +1052,7 @@ beginchar("U",15u#,cap_height#,desc_depth#); filldraw stroke z9e--z10e; filldraw stroke z10e--z11e; - penlabels(1,2,3,4,5,6,7,9,10,11,12); + penlabels(1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12); endchar; @@ -977,70 +1062,70 @@ endchar; % not sure I'm entirely happy with the spur cmchar "Overturned c with spur"; -beginchar("c",8u#,asc_height#,0); - adjust_fit(0,0); +beginchar("c", 8u#, asc_height#, 0); + adjust_fit(0, 0); pickup fine.nib; - pos2(vair',270); - pos4(vair',90); + pos2(vair', 270); + pos4(vair', 90); x2 = x4 = 0.5(w-u); bot y2r = -oo; top y4r = vround(x_height + 1.5oo); - pos3(curve,0); + pos3(curve, 0); - rt x3r = w - hround max(0.6u,1.35u - 0.5curve); + rt x3r = w - hround max(0.6u, 1.35u - 0.5curve); y3 = 0.5x_height; - pos1(hair,180); - pos0(flare,180); + pos1(hair, 180); + pos0(flare, 180); y1 = x_height - - min(bar_height + 0.5flare + 2vair' + 2, - 0.9[bar_height,x_height] - 0.5flare); + min(bar_height + 0.5flare + 2vair' + 2, + 0.9[bar_height, x_height] - 0.5flare); lft x1r = 0.7u; - bulb(2,1,0); + bulb(2, 1, 0); - pos5(hair,180); + pos5(hair, 180); lft x5r = 0.5u; - y5 = x_height - max(good.y(0.5bar_height-0.9),x_height-y4l-vair'); - (x,y4l) = whatever[z4r,z5l]; - x4l := min(x,x4l+.5u); + y5 = x_height - max(good.y(0.5bar_height-0.9), x_height-y4l-vair'); + (x, y4l) = whatever[z4r, z5l]; + x4l := min(x, x4l+.5u); - filldraw stroke pulled_super_arc.e(2,3)(0.7superpull) - & pulled_super_arc.e(3,4)(0.5superpull) - ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; + filldraw stroke pulled_super_arc.e(2, 3)(0.7superpull) + & pulled_super_arc.e(3, 4)(0.5superpull) + ..tension .9 and 1..{x5-x4, 5(y5-y4)}z5e; path pth; - numeric tp,theta; + numeric tp, theta; theta = 25; - pos6(stem,theta-90); - pos7(hair,90+theta); + pos6(stem, theta-90); + pos7(hair, 90+theta); top y6l = asc_height; - pth = z4{left}..tension .9 and 1..{x5-x4,5(y5-y4)}z5; + pth = z4{left}..tension .9 and 1..{x5-x4, 5(y5-y4)}z5; z7 = directionpoint dir(180+theta) of pth; x6 = x7; filldraw stroke z7e{dir(theta)}..{dir(180+theta)}z6e; - penlabels(0,1,2,3,4,5,6,7); + penlabels(0, 1, 2, 3, 4, 5, 6, 7); endchar; cmchar "Overturned e with spur"; -beginchar("e",7.25u#+max(0.75u#,0.5curve#),asc_height#,0); - adjust_fit(0,0); +beginchar("e", 7.25u#+max(0.75u#, 0.5curve#), asc_height#, 0); + adjust_fit(0, 0); - numeric left_curve,right_curve,rbar_height; + numeric left_curve, right_curve, rbar_height; rbar_height = x_height - bar_height; @@ -1051,70 +1136,70 @@ beginchar("e",7.25u#+max(0.75u#,0.5curve#),asc_height#,0); pickup tiny.nib; - pos1(left_curve,180); - pos2(vair,270); - pos3(right_curve,0); + pos1(left_curve, 180); + pos2(vair, 270); + pos3(right_curve, 0); y1 = good.y rbar_height; bot y2r = -oo; y0l = top y1; - lft x1r = hround max(0.5u,1.25u-0.5left_curve); - rt x3r = hround min(w-0.5u,w-u+0.5right_curve); + lft x1r = hround max(0.5u, 1.25u-0.5left_curve); + rt x3r = hround min(w-0.5u, w-u+0.5right_curve); x2 = 0.5w-0.25u; {{ interim superness := more_super; - filldraw stroke super_arc.e(1,2); + filldraw stroke super_arc.e(1, 2); }}; - y3 = 0.5 [y2,y4]; + y3 = 0.5 [y2, y4]; top y4r = x_height + vround 1.5oo; x4 = x2 + 0.25u; - pos4(vair',90); - pos5(hair,180); + pos4(vair', 90); + pos5(hair, 180); - y5 = min(good.y(0.5[rbar_height,x_height]+0.9),y4l-vair); + y5 = min(good.y(0.5[rbar_height, x_height]+0.9), y4l-vair); x5r = x1r; - (x,y4l) = whathever[z4r,z5]; - x4l := min(x,x4l+0.5u); + (x, y4l) = whathever[z4r, z5]; + x4l := min(x, x4l+0.5u); - filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4) - ... {x5-x4,5(y5-y4)}z5e; + filldraw stroke pulled_arc.e(2, 3) & pulled_arc.e(3, 4) + ... {x5-x4, 5(y5-y4)}z5e; path testpath; - testpath = super_arc.r(2,3) & super_arc.r(3,4); + testpath = super_arc.r(2, 3) & super_arc.r(3, 4); - y1'r = y0r = y0l - 0.6[thin_join,vair]; + y1'r = y0r = y0l - 0.6[thin_join, vair]; y1'l = y0l; x1'l = x1'r = x1; - forsuffixes $ = l,r: - x0$ = xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); + forsuffixes $ = l, r: + x0$ = xpart(((w, y0$)--(x1, y0$)) intersectionpoint testpath); endfor; fill stroke z0e--z1'e; path pth; - numeric tp,theta; + numeric tp, theta; theta = 25; - pos6(stem,theta-90); - pos7(hair,90+theta); + pos6(stem, theta-90); + pos7(hair, 90+theta); top y6l = asc_height; - pth = super_arc.r(3,4) ... {x5-x4,5(y5-y4)}z5; + pth = super_arc.r(3, 4) ... {x5-x4, 5(y5-y4)}z5; z7 = directionpoint dir(180+theta) of pth; x6 = x7; filldraw stroke z7e{dir(theta)}..{dir(180+theta)}z6e; - penlabels(0,1,2,3,4,5,6,7); + penlabels(0, 1, 2, 3, 4, 5, 6, 7); endchar; @@ -1125,13 +1210,13 @@ endchar; % of delimiters. cmchar "Reverse solidus"; -beginchar(oct "113",9u#,cap_height#,0); - adjust_fit(0,0); +beginchar(oct "113", 9u#, cap_height#, 0); + adjust_fit(0, 0); pickup fine.nib; - pos1(cap_stem,0); - pos2(cap_stem,0); + pos1(cap_stem, 0); + pos2(cap_stem, 0); lft x1l = u; rt x2r = w - u; @@ -1140,19 +1225,19 @@ beginchar(oct "113",9u#,cap_height#,0); filldraw stroke z1e--z2e; - penlabels(1,2); + penlabels(1, 2); endchar; % the left-angle, a funny looking thing, made from a single -% stroke of an eliptic pen. The upstroke is bowed inward, +% stroke of an eliptic pen. The upstroke is bowed inward, % barely perceptibly cmchar "Left-angle"; -beginchar(oct "150",11u#,cap_height#,0); - adjust_fit(0,0); +beginchar(oct "150", 11u#, cap_height#, 0); + adjust_fit(0, 0); - numeric theta,bow,elbow; + numeric theta, bow, elbow; elbow := x_height + 0.5*(cap_height-x_height); @@ -1167,15 +1252,15 @@ beginchar(oct "150",11u#,cap_height#,0); pickup pencircle xscaled cap_hair yscaled cap_stem rotated theta; draw z1{dir(theta+90-bow)}...{dir(theta+90+bow)}z2--z3; - penlabels(1,2,3); + penlabels(1, 2, 3); endchar; cmchar "Variant Infinity"; -beginchar("infty",18u#,x_height#,0); - adjust_fit(0,0); +beginchar("infty", 18u#, x_height#, 0); + adjust_fit(0, 0); - numeric theta,psi; + numeric theta, psi; theta = 70; psi = 40; @@ -1193,24 +1278,24 @@ beginchar("infty",18u#,x_height#,0); draw z1{dir(-theta)}...z2...{dir(theta)}z3; draw z4{dir(-theta)}...z5...{dir(theta)}z6; - penlabels(1,2,3,4,5,6); + penlabels(1, 2, 3, 4, 5, 6); % this is the overbar pickup fine.nib; - pos7(hair,90+psi); - pos8(2penrad,90); - pos9(hair,90-psi); + pos7(hair, 90+psi); + pos8(2penrad, 90); + pos9(hair, 90-psi); - x7 = w - x9 = 0.32[x1,x2]; + x7 = w - x9 = 0.32[x1, x2]; y7 = y9 = 11/16x_height; 2x8 = x7 + x9; top y8r = o + h; filldraw stroke z7e{dir psi}...z8e...{dir -psi}z9e; - penlabels(7,8,9); + penlabels(7, 8, 9); endchar; @@ -1222,10 +1307,10 @@ endchar; % in the style file (rather than \mathbin), but add a liile % extra spacing around them with cupcap_fit -def cupcap_fit = adjust_fit(24/36pt#,24/36pt#) enddef; +def cupcap_fit = adjust_fit(24/36pt#, 24/36pt#) enddef; cmchar "upwards opened bracket"; -beginchar(oct "114",14u#,x_height#,0); +beginchar(oct "114", 14u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1241,12 +1326,12 @@ beginchar(oct "114",14u#,x_height#,0); draw z3--z1--z2--z4; - labels(1,2,3); + labels(1, 2, 3); endchar; cmchar "Small bar acute"; -beginchar(oct "115",10u#,x_height#,0); +beginchar(oct "115", 10u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1257,28 +1342,28 @@ beginchar(oct "115",10u#,x_height#,0); draw z1--z2; - labels(1,2); + labels(1, 2); pickup crisp.nib; x4 + 0.5stem = hround(2/3w); - x5 = 2/3[x4,w-x4]; + x5 = 2/3[x4, w-x4]; y4 + 0.5stem = x_height + oo; y5 = 1/2x_height; numeric theta; theta = angle(z5-z4) + 90; - pos4(stem,theta); - pos5(hair,theta); + pos4(stem, theta); + pos5(hair, theta); filldraw circ_stroke z4e--z5e; - penlabels(4,5); + penlabels(4, 5); endchar; cmchar "Small cup"; -beginchar(oct "116",10u#,x_height#,0); +beginchar(oct "116", 10u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1291,12 +1376,12 @@ beginchar(oct "116",10u#,x_height#,0); draw z1..z3..z2; - labels(1,2,3); + labels(1, 2, 3); endchar; cmchar "Small bar over cap"; -beginchar(oct "117",10u#,x_height#,0); +beginchar(oct "117", 10u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1309,7 +1394,7 @@ beginchar(oct "117",10u#,x_height#,0); draw z1..z3..z2; - labels(1,2,3); + labels(1, 2, 3); x4 = x1; x5 = x2; @@ -1318,12 +1403,12 @@ beginchar(oct "117",10u#,x_height#,0); draw z4--z5; - labels(4,5); + labels(4, 5); endchar; cmchar "Small cup over bar"; -beginchar(oct "120",10u#,x_height#,0); +beginchar(oct "120", 10u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1336,7 +1421,7 @@ beginchar(oct "120",10u#,x_height#,0); draw z1..z3..z2; - labels(1,2,3); + labels(1, 2, 3); x4 = x1; x5 = x2; @@ -1345,12 +1430,12 @@ beginchar(oct "120",10u#,x_height#,0); draw z4--z5; - labels(4,5); + labels(4, 5); endchar; cmchar "Small cap over bar"; -beginchar(oct "121",10u#,x_height#,0); +beginchar(oct "121", 10u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1363,7 +1448,7 @@ beginchar(oct "121",10u#,x_height#,0); draw z1..z3..z2; - labels(1,2,3); + labels(1, 2, 3); x4 = x1; x5 = x2; @@ -1372,12 +1457,12 @@ beginchar(oct "121",10u#,x_height#,0); draw z4--z5; - labels(4,5); + labels(4, 5); endchar; cmchar "Small cup with acute"; -beginchar(oct "122",10u#,x_height#,0); +beginchar(oct "122", 10u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1390,28 +1475,28 @@ beginchar(oct "122",10u#,x_height#,0); draw z1..z3..z2; - labels(1,2,3); + labels(1, 2, 3); pickup crisp.nib; x4 + 0.5stem = hround(2/3w); - x5 = 2/3[x4,w-x4]; + x5 = 2/3[x4, w-x4]; y4 + 0.5stem = x_height + oo; y5 = 1/2x_height; numeric theta; theta = angle(z5-z4) + 90; - pos4(stem,theta); - pos5(hair,theta); + pos4(stem, theta); + pos5(hair, theta); filldraw circ_stroke z4e--z5e; - penlabels(4,5); + penlabels(4, 5); endchar; cmchar "Small raised cap"; -beginchar(oct "123",10u#,x_height#,0); +beginchar(oct "123", 10u#, x_height#, 0); cupcap_fit; pickup rule.nib; @@ -1424,8 +1509,8 @@ beginchar(oct "123",10u#,x_height#,0); draw z1..z3..z2; - labels(1,2,3); + labels(1, 2, 3); endchar; -end
\ No newline at end of file +end diff --git a/Master/texmf-dist/fonts/source/public/fge/fgerm10.mf b/Master/texmf-dist/fonts/source/public/fge/fgerm10.mf index df7a2b99892..a54ffd7ac6b 100644 --- a/Master/texmf-dist/fonts/source/public/fge/fgerm10.mf +++ b/Master/texmf-dist/fonts/source/public/fge/fgerm10.mf @@ -1,7 +1,6 @@ % FGE Roman 10 point % this is derived from cmr10.mf by Knuth % J.J.Green 2006 -% $Id: fgerm10.mf,v 1.2 2006/11/21 20:56:17 jjg Exp $ if unknown cmbase: input cmbase fi if unknown fgebase: input fgebase fi diff --git a/Master/texmf-dist/fonts/tfm/public/fge/fgeit10.tfm b/Master/texmf-dist/fonts/tfm/public/fge/fgeit10.tfm Binary files differindex 165aac7f2b9..fc566b4e0ed 100644 --- a/Master/texmf-dist/fonts/tfm/public/fge/fgeit10.tfm +++ b/Master/texmf-dist/fonts/tfm/public/fge/fgeit10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/fge/fgerm10.tfm b/Master/texmf-dist/fonts/tfm/public/fge/fgerm10.tfm Binary files differindex 2a24bfb8344..759dd344f49 100644 --- a/Master/texmf-dist/fonts/tfm/public/fge/fgerm10.tfm +++ b/Master/texmf-dist/fonts/tfm/public/fge/fgerm10.tfm diff --git a/Master/texmf-dist/fonts/type1/public/fge/fgeit10.pfb b/Master/texmf-dist/fonts/type1/public/fge/fgeit10.pfb Binary files differindex 054b6d5a9f7..d1848717f56 100644 --- a/Master/texmf-dist/fonts/type1/public/fge/fgeit10.pfb +++ b/Master/texmf-dist/fonts/type1/public/fge/fgeit10.pfb diff --git a/Master/texmf-dist/fonts/type1/public/fge/fgerm10.pfb b/Master/texmf-dist/fonts/type1/public/fge/fgerm10.pfb Binary files differindex 47d8704a70d..3522feab542 100644 --- a/Master/texmf-dist/fonts/type1/public/fge/fgerm10.pfb +++ b/Master/texmf-dist/fonts/type1/public/fge/fgerm10.pfb diff --git a/Master/texmf-dist/source/fonts/fge/fge.dtx b/Master/texmf-dist/source/fonts/fge/fge.dtx index ea77074f326..941b3cae233 100644 --- a/Master/texmf-dist/source/fonts/fge/fge.dtx +++ b/Master/texmf-dist/source/fonts/fge/fge.dtx @@ -1,7 +1,6 @@ % \iffalse meta-comment % % Copyright 2006, 2007, 2009, 2011 J.J. Green -% $Id: fge.dtx,v 1.55 2011/11/17 22:40:35 jjg Exp $ % % Changes: % @@ -30,7 +29,7 @@ %<package>\ProvidesPackage{fge} %<fdrm>\ProvidesFile{fgerm.fd}% %<fdit>\ProvidesFile{fgeit.fd}% -%<-driver> [2011/11/17 1.24 +%<-driver> [2015/05/19 1.25 %<package> fge symbol support package] %<fdrm> fge roman symbol font definitions] %<fdit> fge italic symbol font definitions] @@ -42,6 +41,9 @@ \usepackage{fge} \providecommand\dst{\expandafter{\normalfont\scshape docstrip}} \renewcommand{\quad}{{\hskip1em plus 2em}} +% a slighly wider quote environment +\newenvironment{bquote}{\list{}{% + \leftmargin=0.1in\rightmargin=0.1in}\item[]}{\endlist} \begin{document} \DocInput{fge.dtx} \end{document} @@ -72,17 +74,16 @@ % % \begin{multicols}{2} % -% \subsubsection*{Spiritus lenis} -% The spiritus lenis accent is available as -% \begin{quote} -% |\spirituslenis{\alpha}| -% \end{quote} -% giving $\spirituslenis{\alpha}$, $\spirituslenis{\beta}$, -% $\spirituslenis{\gamma}$, $\spirituslenis{\delta}$, -% $\spirituslenis{\varepsilon}$,\ldots +% \subsubsection*{Spiritus lenis and asper} +% \begin{bquote} +% \begin{tabular}{lc} +% |\spirituslenis{\alpha}| & $\spirituslenis{\alpha}$ \\ +% |\spiritusasper{\alpha}| & $\spiritusasper{\alpha}$ +% \end{tabular} +% \end{bquote} % % \subsubsection*{Lazy capitals and numerals} -% \begin{quote} +% \begin{bquote} % \begin{tabular}{lc} % |\fgerighttwo| & $\fgerighttwo$ \\ % |\fgerightB| & $\fgerightB$ \\ @@ -91,45 +92,45 @@ % |\fgeleftB| & $\fgeleftB$ \\ % |\fgeleftC| & $\fgeleftC$ % \end{tabular} -% \end{quote} +% \end{bquote} % % \subsubsection*{Overturned romans} -% \begin{quote} +% \begin{bquote} % \begin{tabular}{lc} % |\fgec| & $\fgec$ \\ % |\fgee| & $\fgee$ \\ % |\fgeeszett| & $\fgeeszett$ \\ % |\fgeA| & $\fgeA$ % \end{tabular} -% \end{quote} +% \end{bquote} % % \subsubsection*{Overturned italics} -% \begin{quote} +% \begin{bquote} % \begin{tabular}{lc} % |\fged| & $\fged$ \\ % |\fgef| & $\fgef$ \\ % |\fgeF| & $\fgeF$ \\ % \end{tabular} -% \end{quote} +% \end{bquote} % % \subsubsection*{Struckout numerals} -% \begin{quote} +% \begin{bquote} % \begin{tabular}{lc} % |\fgestruckzero| & $\fgestruckzero$ \\ % |\fgestruckone| & $\fgestruckone$ % \end{tabular} -% \end{quote} +% \end{bquote} % % \subsubsection*{Fletched arrows} -% \begin{quote} +% \begin{bquote} % \begin{tabular}{lc} % |\fgerightarrow| & $\fgerightarrow$ \\ % |\fgeuparrow| & $\fgeuparrow$ % \end{tabular} -% \end{quote} +% \end{bquote} % % \subsubsection*{Cups, caps and bars} -% \begin{quote} +% \begin{bquote} % \begin{tabular}{lc} % |\fgeupbracket| & $\fgeupbracket$ \\ % |\fgecap| & $\fgecap$ \\ @@ -140,10 +141,10 @@ % |\fgecupacute| & $\fgecupacute$ \\ % |\fgebaracute| & $\fgebaracute$ % \end{tabular} -% \end{quote} +% \end{bquote} % % \subsubsection*{Erratics} -% \begin{quote} +% \begin{bquote} % \begin{tabular}{lc} % |\fgemark| & $\fgemark$ \\ % |\fgelb| & $\fgelb$ \\ @@ -152,7 +153,7 @@ % |\fges| & $\fges$ \\ % |\fgebackslash| & $\fgebackslash$ % \end{tabular} -% \end{quote} +% \end{bquote} % % \end{multicols} % @@ -234,18 +235,20 @@ \newcommand{\fgeoverU}{\fgelb} \newcommand{\fgeU}{\fgemark} % \end{macrocode} -% The spiritus lenis accent. Here we don't use \texttt{DeclareMathAccent} -% but instead \TeX\ primatives; the former is for ordinary symbols -% which are press-ganged into being accents, the latter is for glyphs -% designed as accents. The tricky part is selecting the \textt{fge} font -% by coercing its symbol-code into an appropriate hex-string, we copy -% the code in the AMS fonts package. +% The spiritus lenis and asper accents. Here we don't use +% \texttt{DeclareMathAccent} but instead \TeX\ primatives; the former +% is for ordinary symbols which are press-ganged into being accents, +% the latter is for glyphs designed as accents. The tricky part is +% selecting the \textt{fge} font by coercing its symbol-code into an +% appropriate hex-string, we copy the code in the AMS fonts package. % \begin{macrocode} \def\spirituslenisA{\mathaccent"0\hexnumber@\symfgerm 15} \def\spirituslenisB{\mathaccent"0\hexnumber@\symfgerm 16} +\def\spiritusasperA{\mathaccent"0\hexnumber@\symfgerm 13} +\def\spiritusasperB{\mathaccent"0\hexnumber@\symfgerm 14} % \end{macrocode} -% There are two versions of the spiritus lenis, variant A -% from the Ibycus font for classical Greek by +% There are two versions of the spiritus lenis and asper, variant +% A from the Ibycus font for classical Greek by % Pierre A. MacKay, from work by Silvio Levy's realization of a % classic Didot cut of Greek type from around 1800. % Variant B is my own, an approximation of the more crescent-like @@ -255,8 +258,10 @@ % \begin{macrocode} \ifcrescent \def\spirituslenis{\spirituslenisB} + \def\spiritusasper{\spiritusasperB} \else \def\spirituslenis{\spirituslenisA} + \def\spiritusasper{\spiritusasperA} \fi % \end{macrocode} % The character sizing diff --git a/Master/texmf-dist/source/fonts/fge/fge.ins b/Master/texmf-dist/source/fonts/fge/fge.ins index d957c0a678b..c6716cd74ff 100644 --- a/Master/texmf-dist/source/fonts/fge/fge.ins +++ b/Master/texmf-dist/source/fonts/fge/fge.ins @@ -2,7 +2,6 @@ % fge.ins % docstrip wrapper for fge % J.J. Green 2005 -% $Id: fge.ins,v 1.4 2007/01/02 23:27:38 jjg Exp $ \def\batchfile{fge.ins} \input docstrip.tex \preamble diff --git a/Master/texmf-dist/tex/latex/fge/Ufgeit.fd b/Master/texmf-dist/tex/latex/fge/Ufgeit.fd index 46942180099..5c86b4a312c 100644 --- a/Master/texmf-dist/tex/latex/fge/Ufgeit.fd +++ b/Master/texmf-dist/tex/latex/fge/Ufgeit.fd @@ -22,7 +22,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{fgeit.fd}% - [2011/11/17 1.24 + [2015/05/19 1.25 fge italic symbol font definitions] \DeclareFontFamily{U}{fgeit}{} \DeclareFontShape{U}{fgeit}{m}{n}{% diff --git a/Master/texmf-dist/tex/latex/fge/Ufgerm.fd b/Master/texmf-dist/tex/latex/fge/Ufgerm.fd index ff3f5961fec..aac40b5c512 100644 --- a/Master/texmf-dist/tex/latex/fge/Ufgerm.fd +++ b/Master/texmf-dist/tex/latex/fge/Ufgerm.fd @@ -22,7 +22,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \ProvidesFile{fgerm.fd}% - [2011/11/17 1.24 + [2015/05/19 1.25 fge roman symbol font definitions] \DeclareFontFamily{U}{fgerm}{} \DeclareFontShape{U}{fgerm}{m}{n}{% diff --git a/Master/texmf-dist/tex/latex/fge/fge.sty b/Master/texmf-dist/tex/latex/fge/fge.sty index e863fb74288..f41f497de43 100644 --- a/Master/texmf-dist/tex/latex/fge/fge.sty +++ b/Master/texmf-dist/tex/latex/fge/fge.sty @@ -23,7 +23,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{fge} - [2011/11/17 1.24 + [2015/05/19 1.25 fge symbol support package] \newif\ifcrescent \crescentfalse @@ -69,10 +69,14 @@ \newcommand{\fgeU}{\fgemark} \def\spirituslenisA{\mathaccent"0\hexnumber@\symfgerm 15} \def\spirituslenisB{\mathaccent"0\hexnumber@\symfgerm 16} +\def\spiritusasperA{\mathaccent"0\hexnumber@\symfgerm 13} +\def\spiritusasperB{\mathaccent"0\hexnumber@\symfgerm 14} \ifcrescent \def\spirituslenis{\spirituslenisB} + \def\spiritusasper{\spiritusasperB} \else \def\spirituslenis{\spirituslenisA} + \def\spiritusasper{\spiritusasperA} \fi \DeclareMathSizes{10}{10}{7}{5} \endinput diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 4adbc986af1..7d86b438ff2 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -2262,6 +2262,7 @@ my $core_latex = "$Master/texmf-dist/tex/latex"; 'ctable' => 'latex', # requires interaction 'curve2e' => 'tex', 'dateiliste' => 'latex', # requires interaction +# 'dccpaper' => 'pdflatex', 'denisbdoc', => 'tex', 'dotseqn' => 'latex', # requires interaction 'delimtxt' => 'latex -translate-file=empty.tcx', # no 8-bit |