diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/gothic/yfrak |
Initial commit
Diffstat (limited to 'fonts/gothic/yfrak')
-rw-r--r-- | fonts/gothic/yfrak/yfrabase.mf | 73 | ||||
-rw-r--r-- | fonts/gothic/yfrak/yfrak.mf | 137 | ||||
-rw-r--r-- | fonts/gothic/yfrak/yfrak.tfm | bin | 0 -> 1416 bytes | |||
-rw-r--r-- | fonts/gothic/yfrak/yfraklow.mf | 593 | ||||
-rw-r--r-- | fonts/gothic/yfrak/yfrakmis.mf | 574 | ||||
-rw-r--r-- | fonts/gothic/yfrak/yfraknum.mf | 194 | ||||
-rw-r--r-- | fonts/gothic/yfrak/yfrakoth.mf | 528 | ||||
-rw-r--r-- | fonts/gothic/yfrak/yfrakupp.mf | 1342 | ||||
-rw-r--r-- | fonts/gothic/yfrak/ysmfrak.mf | 137 | ||||
-rw-r--r-- | fonts/gothic/yfrak/ysmfrak.tfm | bin | 0 -> 1416 bytes |
10 files changed, 3578 insertions, 0 deletions
diff --git a/fonts/gothic/yfrak/yfrabase.mf b/fonts/gothic/yfrak/yfrabase.mf new file mode 100644 index 0000000000..d7a84eebc2 --- /dev/null +++ b/fonts/gothic/yfrak/yfrabase.mf @@ -0,0 +1,73 @@ +def n_foot(suffix $) = +w':=7.806u; penpos$.1(hair,90); penpos$.2(hair,0); +penpos$.3(hair,-90); +y$.1=y$.3=0.5foot; y$.2=-apex_o; +x$.1=x$l-1/20w'; x$.3=x$r+1/20w'; +x$.2=x$; +filldraw z$.2r{dir75}..z$.3r{dir15}-- +z$.3l{dir165}..z$r{up}--z$l{down}.. +z$.1r{dir195}--z$.1l{dir-15}..z$.2l{dir-65} +--z$.2r & cycle; +enddef; + +def e_umlaut(suffix $) = +penpos$.1(2u,45); z$.1=z$; +pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30; +z$.2=z$.1r; z$.3=z$.1l; rt x$.4=rt x$.2; top y$.4=y$; +draw z$.3--z$.2..z$.3..z$.4; +enddef; + +def pointpoint = +penpos1(0.23570*(x_height+2apex_o),45); +penpos2(0.23570*(x_height+2apex_o),45); +penpos3(0.23570*(x_height+2apex_o),45); +penpos4(0.23570*(x_height+2apex_o),45); +penpos5(0.23570*(x_height+2apex_o),45); +penpos6(0.23570*(x_height+2apex_o),45); +x1l=x3l=x5l=0.5w; +z2r=z3l; z4r=z5l; +z2-z1=whatever*dir135; +z4-z3=whatever*dir135; +z6-z5=whatever*dir135; +y1l=-apex_o; y6r=x_height+apex_o; +penstroke z1e--z2e; +enddef; + + + + +def old_e_umlaut(suffix $) = +numeric ww; +ww:=2u; penpos$.1(hair,147); +penpos$.2(1.5hair,90); penpos$.3(2.5hair,0); +penpos$.4(1.2hair,-90); +penpos$.5(hair,-147); +penpos$.6(hair,-57); penpos$.7(hair,-57); +z$.1=z$+(0.4ww,-0.2ww); +z$.2l=z$-(0.111ww,0.556ww); +z$.3l=z$-(0.5ww,apex_o); +z$.4l=(x$,y$+0.556ww); +z$.6-z$=whatever*dir33; x$.6r=x$+0.5ww; +z$.5l=z$.6l; z$.7=whatever[z$,z$.6]; +x$.7=x$.3; +penstroke z$.1e..z$.2e{left}..z$.3e{up} +..z$.4e{right}..z$.5e; +penstroke z$.7e--z$.6e +enddef; + +def umlaut (suffix $) = +y0=0; 0.5[x0,x0']=x$-2u; +z0'=z0+(2.5u,0); +penpos60(hair,145); +z60=(x0+stem,1.090x_height); +z61=(x0+1.522stem,1.387x_height); +z62=(x0+1.956stem,1.324x_height); +z60'=(x0'+stem,1.090x_height); +z61'=(x0'+1.522stem,1.387x_height); +z62'=(x0'+1.956stem,1.324x_height); +filldraw z60l{dir34}..z62{up}..z61{left} +..z60r{dir259}--z60l & cycle; +penpos60'(hair,145); +filldraw z60'l{dir34}..z62'{up}..z61'{left} +..z60'r{dir259}--z60'l & cycle +enddef; diff --git a/fonts/gothic/yfrak/yfrak.mf b/fonts/gothic/yfrak/yfrak.mf new file mode 100644 index 0000000000..eac47e0b30 --- /dev/null +++ b/fonts/gothic/yfrak/yfrak.mf @@ -0,0 +1,137 @@ +if unknown cmbase: input cmbase fi +input yfrabase; % -sl 15-3-1991 + +font_identifier:="yfrak"; font_size 10pt#; + +u#:=20/36pt#; % unit width +lower_u#:=20/36pt#; +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=167/36pt#; % height of lowercase without ascenders +%x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=7/36pt#; % lowercase hairline breadth +%hair#:=9/36pt#; % lowercase hairline breadth +%stem#:=25/36pt#; % lowercase stem breadth +stem#:=24/36pt#; % lowercase stem breadth +curve#:=30/36pt#; % lowercase curve breadth +ess#:=27/36pt#; % breadth in middle of lowercase s +flare#:=33/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=38/36pt#; % diameter of dots +%cap_hair#:=11/36pt#; % uppercase hairline breadth +cap_hair#:=8/36pt#; +cap_amount#:=8/36pt#; +%cap_stem#:=32/36pt#; % uppercase stem breadth +cap_stem#:=32/36pt#; +cap_curve#:=37/36pt#; % uppercase curve breadth +cap_ess#:=35/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=20/36pt#; % vertical distance from serif base to tangent +jut#:=28/36pt#; % protrusion of lowercase serifs +cap_jut#:=37/36pt#; % protrusion of uppercase serifs +beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=11/36pt#; % lowercase bar thickness +slab#:=11/36pt#; % serif and arm thickness +cap_bar#:=11/36pt#; % uppercase bar thickness +cap_band#:=11/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? +numeric usual_right, usual_left; +usual_right#:=0.5u#; +usual_left#:=0.3u#; + +granularity:=1.01; +%aspect_ratio:=2/3aspect_ratio; + +mode_setup; +font_setup; +cap_amount:=8/36pt; +foot:=0.207x_height; +num_height:=1.242x_height; +cap_kern:=4/36pt; +boolean ligature; ligature:=false; +numeric alpha; alpha:=0; +numeric coef, gencoef; gencoef:=1; + +%granularity:=1.01; + +%readfrom("yfrakbase"); % -sl 15-3-1991 +%currenttransform:=identity xscaled 1.1; +if proofing>1: generate ycurrent; fi % switch to the driver file% +%generate yfrakmisc; +generate yfrakmis; % -sl 15-3-1991 +%generate yfraklower; +generate yfraklow; % -sl 15-3-1991 +%generate yfrakupper; % switch to the driver file +generate yfrakupp; % -sl 15-3-1991 +generate yfraknum; +%currenttransform:=identity; +%generate yfrakother; +generate yfrakoth; % -sl 15-3-1991 + +font_slant slant; font_x_height x_height#; +font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + +%ligtable "a": "e"=:oct"032"; +ligtable "c": "h"=:oct"205", "k"=:oct"206"; +ligtable "f": "f"=:oct"204"; +ligtable "s": ":"=:oct"215", "s"=:oct"201", "t"=:oct"202", "z"=:oct"032", +"f"=:oct"203", "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#, +"l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#; +ligtable "t": "z"=:oct"213"; +ligtable oct"042": "a"=:oct"212", "e"=:oct"221", "o"=:oct"232", "u"=:oct"237", +"s"=:oct"032"; +ligtable "*": "a"=:oct"211", "e"=:oct"220", "o"=:oct"231", "u"=:oct"236"; +ligtable "`": "`"=:oct"134"; +ligtable "'": "'"=:oct"042"; +ligtable "-": "-"=:oct"173"; +ligtable oct"173": "-"=:oct"174"; +ligtable oct"201": "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u# +, "l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#; + +end. diff --git a/fonts/gothic/yfrak/yfrak.tfm b/fonts/gothic/yfrak/yfrak.tfm Binary files differnew file mode 100644 index 0000000000..5cde435a5f --- /dev/null +++ b/fonts/gothic/yfrak/yfrak.tfm diff --git a/fonts/gothic/yfrak/yfraklow.mf b/fonts/gothic/yfrak/yfraklow.mf new file mode 100644 index 0000000000..4039ed91c9 --- /dev/null +++ b/fonts/gothic/yfrak/yfraklow.mf @@ -0,0 +1,593 @@ +numeric nombre; nombre:= 5gencoef[1,1.155556]; + +.cmchar "The Fraktur letter a"; +.beginchar("a",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]); +penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51); +penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h))); +penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0); +penpos12(whatever,-90); penpos11''(hair,-30); +z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]); +z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]); +z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4]; +x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem; +z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])]; +y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o; +z10=whatever[z8l,z9l]; y10=0.228h; +z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]); +z11''r=(gencoef[0.78w,0.814w],-apex_o); +z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l); +z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r; +z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l]; +y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7]; +penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]); +filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r.. +z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke +z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down} +..z7..z10{z9-z8} & z10--z8' & cycle; .endchar; + +nombre:= 4.722gencoef[1,1.129412]; + +.cmchar "The Fraktur letter b"; +.beginchar("b",nombre*lower_u#,1.376x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); penpos2(stem,0); +z1=(gencoef[0.241w,0.208w],gencoef[foot,0.322x_height]); z2=(x1,x_height); +z3=(1/4[x2l,x2r],x_height+gencoef[foot,0.9foot]); z3'=(x2r,gencoef[y3,y2r]); +z3''=(x2l,gencoef[0.633(y3-y2)+y2,y2l]); penpos4(gencoef[hair,2hair],74); +z4=(gencoef[0.5x2l,0],gencoef[1.259x_height,1.205x_height]); +penpos5(gencoef[hair,1.5hair],-90); z5l=(x2r+gencoef[0.875stem,0.396w],h); +penstroke z1e--z2e; filldraw z2l--z3''{up}..z4l--z4r-- +z3{dir45}..z5l{right}--z5r{left} ...z3'{down}--z2r--z2l & cycle; +penpos5'(gencoef[hair,1.5hair],gencoef[-40,-90]); +z5'l=(0,gencoef[0.097x_height,0.219x_height]); penpos6(hair,gencoef[-42,-30]); +penpos7(hair,gencoef[-42,-30]); z6r=(gencoef[0.441w,0.521w],-apex_o); +z7-z6=whatever*((w,gencoef[0.36x_height,0.479x_height])-z6); +x7=gencoef[0.653w,0.698w]; z6'=whatever[z6,z7]; y6'=gencoef[y6l+apex_o,y6l]; +penpos8(1.167stem,42); z8r=(w,gencoef[0.545x_height,0.664x_height]); +penpos11(hair,gencoef[-42,-61]); penpos10(hair,gencoef[-42,-61]); +z10l=(gencoef[x8l,0.729w],x_height+apex_o); +z10-z11=whatever*(z7-z6-(0,gencoef[0,0.1x_height])); x11=x1; +penpos9(5/4stem,angle(z10-z11)); z9=whatever[z11l,z10l]; +y9r=y10l+gencoef[-apex_o,0]; penstroke z11e--z10e; penstroke +z6e---z7e...z8e{up}.. z9e; filldraw z5'l..z1l{up}--z1r--z7l-- +z6'{dir138}..z5'r--z5'l & cycle; .endchar; + +nombre:= 3.639gencoef[1,1.145038]; + +.cmchar "The Fraktur letter c"; +.beginchar("c",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(gencoef[hair,1.5hair],gencoef[-30,-48]); penpos2(gencoef[hair,1.5hair], +gencoef[-30,-48]); +z2-z1=whatever*((w,gencoef[0.78h,0.5h])); +z1r=(gencoef[0.565w,0.586667w],-apex_o); x2r=w; z1'=whatever[z1,z2]; +y1'=gencoef[y1l+apex_o,y1r]; x1':=gencoef[x1',x1r]; z3=whatever[z1l,z2l]; +x3=gencoef[0.809w,x2l]; z4=(gencoef[2/3w,0.64w],0.176h); +penpos5(1.083stem,angle((w,gencoef[0.4h,0.452h]))); +z5=(gencoef[0.26w,0.226667w],0.214h); penpos6(stem,0); z6l=(0,0.5h); +penpos9(gencoef[hair,1.5hair],gencoef[-68,-22]); +penpos8(gencoef[hair,1.5hair],gencoef[-68,-22]); +penpos8.5(gencoef[hair,1.5hair],gencoef[-68,-22]); +z9l=(gencoef[0.832w,0.546667w],h+apex_o); +z9-z8=whatever*((w,gencoef[0.25h,0.404h])); x8l=gencoef[0.458w,0.2666w]; +z7=whatever[z8l,z9l]; x7=gencoef[0.145w,x8l]; +penpos10(gencoef[stem,1.3stem],angle((w,gencoef[0.25h,0.883562h]))); +z10r=whatever[z9l,z9r]; x10r=w+gencoef[0,apex_o]; z10l-z8.5=whatever*(z10r-z9); +z8.5=whatever[z8,z9]; penstroke z1e--z2e; filldraw z1'..z5l..z6l{up}--z6r{down} +..z5r..z4..z3{z2-z1}--z2l--z2r--z1' & cycle; filldraw z6l{up}..z7 & +z7--z9l--z10r-- z10l--z8.5r & z8.5r{z8-z9}..(x6r,0.738h)..z6r{down}-- z6l & +cycle; .endchar; + +nombre:= 4.944gencoef[1,1.073034]; + +.cmchar "The Fraktur letter d"; +.beginchar("d",nombre*lower_u#,gencoef[1.269x_height#,1.37x_height#],0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); penpos2(stem,0); +z1=(gencoef[0.227w,0.2094w],gencoef[foot,0.274x_height]); z1'=(x1r,foot); +z2=(x1,gencoef[0.817x_height,0.795x_height]); penpos4(hair,-90); +z4=(gencoef[0.5x1l,0],gencoef[0.11x_height,0.188x_height]); penpos5(hair,-38); +z5r=(gencoef[x1r+0.7stem,0.6073w],-apex_o); +penpos6(whatever,gencoef[-18,-38]); +z6l-z5l=whatever*((w,gencoef[0.356x_height,x_height])); +z6r-z5r=whatever*((w,gencoef[0.356x_height,x_height])); +z6-z1'=whatever*((w,gencoef[-0.2x_height,-0.1x_height])); +penpos7(gencoef[1.271stem,0.65stem],gencoef[50,39]); z7r=(w,0.579x_height); +penpos8(stem,angle((w,1.04h))); z8=(gencoef[0.545w,0.52w],0.959x_height); +penpos9(gencoef[0.946stem,0.8stem],25); +z9l=(gencoef[0,-2apex_o],gencoef[1.093x_height,1.178x_height]); +z10=(gencoef[0.303w,0.209w],h); penpos11(hair,-90); +z11l=gencoef[(0.416w,h-apex_o),z10]; penpos3(hair,-57); +z3=z8; +%z3l-z2l=whatever*((w,gencoef[0.39x_height,0.198x_height])); +%y3l=x_height-gencoef[2apex_o,0.075x_height]; +%y3l=x_height-2apex_o; +penstroke z1e--z2e; penstroke +z5e---z6e...z7e{up}..z8e ..z9e{up}; filldraw z2l--z3l--z3r{z2l-z3l}.. +z2r{down}--z2l & cycle; filldraw z4r..{z5r-z5l}z5r--z6--z1'--z1r-- +z1l{down}..z4l--z4r & cycle; filldraw z9l{up}..z10{right}..z11l +--z11r{left}..z9r{down}--z9l & cycle; .endchar; + +nombre:= 3.65gencoef[1,1.230769]; + +.cmchar "The Fraktur letter e"; +.beginchar("e",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1l=(0,0.486h); +penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]); +penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]); +z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w]; +x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8]; +y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l]; +x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h); +penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69); +y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h); +z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0]; +z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6)); +z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e; +filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69); +z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w]; +z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e; +filldraw z7'{dir135}..z1l{up}..z2 & +z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10 +..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; .endchar; + +.cmchar "The Fraktur letter f"; +.beginchar("f",4.539lower_u#,1.366x_height#,3.167lower_u#); +.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#); +w':=w; penpos1.1(hair,0); z1.1=(0.318w',-d); penpos1.2(1.313stem,0); z1.2=(x1.1,0.795x_height); +penpos1.4(3/4stem,-90); z1.4r=(0.857w',y1.2); z1.3=(0,y1.2); z1.12=whatever[z1.1l,z1.2l]; +z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; z1.12'=z1.12-(0.5apex_o,0); +z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; penpos1.5(0.917stem,0); +z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; z1.6l-z1.5l=whatever*dir72; +penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); penpos1.11(hair,-22); +z1.11r=(w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'; penpos1.8(whatever,68); +z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w',1.366x_height); filldraw z1.1r..z1.13'..z1.2r... +z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; filldraw +z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}.. +z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw +z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle; +.endchar; + +nombre:= 5.611gencoef[1,1.168317]; + +.cmchar "The Fraktur letter g"; +.beginchar("g",nombre*lower_u#,x_height#,gencoef[2.389lower_u#,3.4446lower_u#]); +.adjust_fit(usual_left#-gencoef[0.315u#,0.3u#],usual_right#); +penpos1(hair,gencoef[0,30]); penpos2(gencoef[hair,1.2hair],gencoef[90,110]); +z1l=(gencoef[0,0.1w],gencoef[0.059h,-0.532d]); z2l=(gencoef[0.426w,0.568w],-d); +z3=gencoef[(0.743w,0),(0.78w,-0.42d)]; +z4=(w-gencoef[apex_o,0],gencoef[0.107h,-0.161d]); penpos5(whatever,0); +z5=gencoef[(0.733w,0.455h),(0.763w,0.199h)]; x5r=gencoef[0.8627w,0.86w]; +penpos6(hair,gencoef[-57,-20]); z6r=(gencoef[w,0.932w],0.845h); +penpos7(4/3stem,gencoef[46,50]); z7r=gencoef[(0.673w,h+apex_o),(0.466w,h)]; +penpos8(hair,gencoef[-24,angle(z6-z7r)]); z8l=z7l; z8'=whatever[z8l,z8r]; +x8'=gencoef[0.688w,0.67w]; penpos9(gencoef[1.292stem,1.1stem],36); +z9=(gencoef[0.228w,0.186441w],0.462h); penpos10(gencoef[hair,1.25hair],-50); +z10r=gencoef[(0.277w,-0.239d),(0.339w,0)]; penpos11(gencoef[hair,1.25hair],-50); +z11-z10=whatever*dir(gencoef[40,32]); x11=gencoef[0.8w,0.763w]; +z13=whatever[z10l,z11l]; x13=gencoef[0.488w,0.466w]; penstroke +z2e{left}..z1e{gencoef[up,dir135]}; filldraw z2l{right}..z4 & flex(z4,z5r,z6r) & +z6r--z6l{left}.. {z6l-z6r}z7r---z7l...z9l{down}..z10r--z13 & +z13..z9r{up}..z8r{z7r-z7l} & z8r--z8' & z8'..z5l{down} +..z3{down}..z2r{left}--z2l & cycle; penstroke z10e--z11e; .endchar; + +.cmchar "The Fraktur letter h"; +.beginchar("h",5.472lower_u#,1.376x_height#,2.556lower_u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); +z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); +z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height); +penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; filldraw +z2l---z3''...z4l--z4r-- z3{dir45}..z5l{right}--z5r{left} ...z3'---z2r--z2l & +cycle; penpos5'(hair,-40); z5'l=(0,0.097x_height); penpos6(hair,-37); +penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.6w; +z6'=whatever[z6,z7]; y6'=y6l+apex_o; penpos8(1.292stem,39); +z8r=(w,0.478x_height); penpos11(hair,-50); penpos10(hair,-50); x10r=x8l; +y10l=x_height+apex_o; z10-z11=whatever*((w,0.559x_height)); x11=x1; +penpos9(1.229stem,angle((w,0.559x_height))); z9=whatever[z11,z10]; +y9r=y10r-apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke +z11e--z10e; penstroke z6e---z7e; penpos7'(1.2hair,-40); z7'r=(0.426w,-d); +penstroke z7'e{dir50}...z8e{up}.. z9e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- +z6'{dir138}..z5'r--z5'l & cycle; .endchar; + +.cmchar "The Fraktur letter i"; +.beginchar("i",2.889lower_u#,x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(hair,-44); penpos2(hair,-44); penpos3(hair,-44); z1l=(0,0.834h); +z2-z1=whatever*((w,0.37h)); y2l=h+apex_o; z3=whatever[z2l,z2r]; x3r=x5r+0.5stem; +z4=(0.606w,0.931h); penpos5(stem,0); z5=(0.433w,0.759h); z6=(x5,0.238h); +penpos6(stem,0); z7=(x6l,0.079h); z8-z7=whatever*dir-40; y8=-apex_o; +penpos9(hair,-38); z9r-z8=whatever*dir52; x9r=w; z10=(0.788w,0.152h); +z5'=whatever[z1,z2]; x5'=x5l; penstroke z5e--z6e; penstroke z1e--z2e; filldraw +z5r{up}..z3r--z2--z5'--z5l{down} --z5r & cycle; filldraw z8--z9r--z9l{z8-z9r} +..z6r{up}--z6l{down}..{z8-z7}z8 & cycle; penpos11(hair,0); z11r=(x2l,1.076h); +z12=(0.56w,1.279h); z13=(0.73w,1.238h); filldraw z11l{up}..z12{right}.. +z13{down}..{z1-z2}z11r--z11l & cycle; +.endchar; + +.cmchar "The Fraktur letter j"; +.beginchar("j",2.944lower_u#,x_height#,1.611lower_u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(hair,47); penpos2(1.3hair,-90); z2r=(0.16w,-d); penpos5(stem,0); +z5=(0.523w,0.124h); penpos3(2/3stem,0); z3l=(x5l,0.048h); penpos6(stem,0); +z6=(x5,0.824h); penpos7(hair,-90); z7=(0.906w,0.91h); penpos8(hair,-48); +penpos9(hair,-48); z8l=(0.481w,h+apex_o); z8-z9=whatever*((w,0.3448h)); x9l=0; +z9'=whatever[z9r,z8r]; y9'=y9l+apex_o; z1r=(x5r+0.5stem,-0.207d);penstroke +z2e..z3e{up}; penstroke z5e--z6e; filldraw z1r{dir137}..z5r{up}--z5l +--z3l--z3r..z1l{dir-43}--z1r & cycle; filldraw z6r{up}..z7r{right}--z7l... +z8r---z8l--z9l--z9r--z9'.. z6l{down}--z6r & cycle; penpos11(hair,0); +z11r=(x8l,1.076h); z12=(0.571w,1.279h); z13=(0.744w,1.238h); filldraw +z11l{up}..z12{right}..z13{down} ..{z9-z8}z11r--z11l & cycle; +.endchar; + +.cmchar "The Fraktur letter k"; +.beginchar("k",3.861lower_u#,1.366x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +w':=1.223w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); +z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); +z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height); +penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; +penpos5''(hair,-90); z5''=z5+(hair,-eps); filldraw z2l---z3''...z4l--z4r-- +z3{dir45}..z5l{right}..z5''l--z5''r..z5r{left} ...z3'---z2r--z2l & cycle; +penpos5'(hair,-40); z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37); +y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.8w; z6'=whatever[z6,z7]; +y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke +z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & +cycle; penpos1.4(3/4stem,-90); z1.4=(0.928w,.859x_height); z1.3=(0,y1.4r); +z1.35=(x2l,y1.4l); filldraw z1.3--z1.35--z1.4l--z1.4r-- z1.3 & cycle; +penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43); +z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; +x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60); +z1.8r=(w,0.579[y1.4l,y5l]); penstroke z1.6e--z1.6'e; penstroke +z1.5e{dir72}..z1.8e{up}..z1.7e{left}; filldraw z1.6r--z1.7l--z1.7r--z1.6l +--z1.6r & cycle; +.endchar; + +.cmchar "The Fraktur letter l"; +.beginchar("l",3lower_u#,1.366x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +w':=1.574w; penpos1(stem,0); z1=(0.241w',foot); penpos5'(hair,-40); +z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; +x6r=x1r; z7-z6=whatever*dir48; x7=w; z6'=whatever[z6,z7]; y6'=y6l+apex_o; +z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e; filldraw +z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; penpos2(stem,0); +z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); +z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height); +penpos5(hair,-90); z5l=(x7,h); penstroke z1e--z2e; filldraw +z2l---z3''...z4l--z4r-- z3{dir50}..z5l{right}--z5r{left} ...z3'---z2r--z2l & +cycle; +.endchar; + +nombre:=7.806gencoef[1,1.227586]; + +.cmchar "The Fraktur letter m"; +.beginchar("m",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +boolean itsm; itsm:=true; +w':=w; if itsm: z0=(0.356w',0) else: z0=(0,0) fi; penpos1(stem,0); +penpos2(stem,0); penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); +penpos6(stem,0); z1=(0.135w',foot); z3=(0.491w',foot); n_foot(1); +z2=(x1,0.846h); z4=(x3,y2); z5=z3+z0; z6=z4+z0; penpos10(hair,-54); +penpos11(hair,-54); penpos12(hair,-54); penpos13(hair,-54); +z2r-z10l=whatever*dir36; x10r=x2r; z11-z10=whatever*dir36; y11l=h+apex_o; +z14=whatever[z10r,z11r]; y14=0.881h; penpos16(2/3hair,-90); +z16=(x6r+1/20w',y14); penstroke z1e--z2e; penstroke z5e--z6e; if itsm: penstroke +z3e--z4e; n_foot(3); fi z12=z10+z0; z13=z11+z0; z15=z14+z0; x14'=x4l; +z14'-z14=whatever*(z4r-z11); z15'=z14'+z0; if itsm: filldraw +z14--z14'--z4l--z4r-- z11l--z10l--z10r--z14 & cycle; fi filldraw +z12l--z13l---z13r...z16l{right} --z16r{left}..z6r--z6l--z15'--z15-- z12r--z12l & +cycle; penpos18(hair,-37); penpos17(hair,-37); z17=(0.354[x5l,x5r],-apex_o); +x18r=x5+0.157w'; y18l=foot; z20'=whatever[z17l,z18l]; x20'=x5r; +z20=0.5[z20',z18l]; z19=(x5l,2/3foot); z17'=whatever[z17,z18]; y17'=0; filldraw +z17'--z19--z5l--z5r{down} ..z20{z18r-z18l}--z17' & cycle; penstroke z17e--z18e; +z8=(0,y2); z9=(x2,h+apex_o); z7=(x1l,0.194[y2,y1]); filldraw +z7{up}..z8--z9..z2r{down} --z7 & cycle; +.endchar; + +nombre:=5.028gencoef[1,1.227586]; + +.cmchar "The Fraktur letter n"; +.beginchar("n",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +boolean itsm; itsm:=false; +w':=1.553w; if itsm: z0=(0.356w',0) else: z0=(0,0) fi; penpos1(stem,0); +penpos2(stem,0); penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); +penpos6(stem,0); z1=(0.135w',foot); z3=(0.491w',foot); n_foot(1); +z2=(x1,0.846h); z4=(x3,y2); z5=z3+z0; z6=z4+z0; penpos10(hair,-54); +penpos11(hair,-54); penpos12(hair,-54); penpos13(hair,-54); +z2r-z10l=whatever*dir36; x10r=x2r; z11-z10=whatever*dir36; y11l=h+apex_o; +z14=whatever[z10r,z11r]; y14=0.881h; penpos16(2/3hair,-90); +z16=(x6r+1/20w',y14); penstroke z1e--z2e; penstroke z5e--z6e; if itsm: penstroke +z3e--z4e; n_foot(3); fi z12=z10+z0; z13=z11+z0; z15=z14+z0; x14'=x4l; +z14'-z14=whatever*(z4r-z11); z15'=z14'+z0; if itsm: filldraw +z14--z14'--z4l--z4r-- z11l--z10l--z10r--z14 & cycle; fi filldraw +z12l--z13l---z13r...z16l{right} --z16r{left}..z6r--z6l--z15'--z15-- z12r--z12l & +cycle; penpos18(hair,-37); penpos17(hair,-37); z17=(0.354[x5l,x5r],-apex_o); +x18r=x5+0.157w'; y18l=foot; z20'=whatever[z17l,z18l]; x20'=x5r; +z20=0.5[z20',z18l]; z19=(x5l,2/3foot); z17'=whatever[z17,z18]; y17'=0; filldraw +z17'--z19--z5l--z5r{down} ..z20{z18r-z18l}--z17' & cycle; penstroke z17e--z18e; +z8=(0,y2); z9=(x2,h+apex_o); z7=(x1l,0.194[y2,y1]); filldraw +z7{up}..z8--z9..z2r{down} --z7 & cycle; .endchar; + +nombre:=4.75gencoef[1,1.140351]; + +.cmchar "The Fraktur letter o"; +.beginchar("o",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]); +x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31); +z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0); +z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22); +z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l; +penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]); +z2-z1=whatever*((w,0.786h)); x8'=x8r; +y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e.. +z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw +z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw +z7l--z7'--z7r--z7l & cycle; .endchar; + +nombre:=5.056gencoef[1,1.131868]; + +.cmchar "The Fraktur letter p"; +.beginchar("p",nombre*lower_u#,x_height#,3.361lower_u#); +.adjust_fit(usual_left#+gencoef[0,0.5u#],usual_right#); +penpos1(stem,0); z1=(gencoef[0.242w,0.223w],foot); penpos2(stem,0); +z2=(x1,0.834h); penpos3(hair,-27); z3=(x2l,1.05h); +penpos4(stem,53); z4l=(-apex_o,0.86h); penpos5(hair,0); +z5=(x1,-d); penstroke z5e--z1e--z2e; z6=(x1l,0.69h); filldraw z6{up}.. +z4l{up}--z4r{down}..{dir-45}z2r--z6 & cycle; penstroke +z4e{up}..z3e{dir53}; +penpos8(hair,-49); penpos7(hair,-49); +z8l=(gencoef[0.714w,0.7w],h+gencoef[apex_o,0]); +z8-z7=whatever*dir(gencoef[41,35]); x7=x1; penstroke z7e--z8e; +z11=(-0.5u,0.15h); z9-z11=whatever*dir-20; x9=gencoef[0.527w,0.592w]; +penpos9(hair,-20); penpos10(hair,-20); z10-z9=whatever*dir57.5; +y10r=gencoef[0.1h,0.12h]; z12-z10=whatever*(z11-z9); z12-z11=whatever*(z10-z9); +penpos13(stem,33); penpos14(5/4stem,41); z13r=(w,gencoef[0.5h,0.548h]); +z14r=z8l; penstroke z9e---z10e...z13e...z14e {dir131}; filldraw +z11--z12--z10r--z9r--z11 & cycle; .endchar; + +nombre:=4.639gencoef[1,1.269461]; + +.cmchar "The Fraktur letter q"; +.beginchar("q",nombre*lower_u#,x_height#,3.361lower_u#); +.adjust_fit(usual_left#,usual_right#); +penpos1(hair,0); z1=(0.745w,-d); penpos2(stem,0); z2=(x1,foot); z3=(x2r,0.728h); +z4=(w,0.879h); penpos5(hair,-33); penpos6(hair,-33); z5l=(0.485w,h+apex_o); +z5-z6=whatever*dir52; x6=0.335w; penpos7(1.542stem,62); z7l=(0,0.445h); +penpos8(1.125stem,45); z8l=(0.388w,-2apex_o); penpos9(hair,-45); +penpos10(hair,-45); z9r=z8; z10-z9=whatever*dir45; x10=x2; penstroke z1e--z2e; +z3'-z6=whatever*(z5r-z5l); x3'=x2l; filldraw z2r---z3...z4 & z4...z5r---z5l +--z6l--z3'--z2l--z2r & cycle; penstroke z8e{(0,0.552h)-z8}..z7e{up}... z6e---z5e; +penstroke z9e--z10e; +.endchar; + +nombre:=3.944gencoef[1,1.281690]; + +.cmchar "The Fraktur letter r"; +.beginchar("r",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +w':=1.197w; +penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,x_height); +z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); +penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90); +z5l=(x2r+0.875stem,h); penpos5'(hair,-40); z5'l=(0,0.097x_height); +penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; +z7-z6=whatever*dir48; x7=0.817w; z6'=whatever[z6,z7]; y6'=y6l+apex_o; +penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50); +penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*dir40; +x11=x1; penpos9(1.229stem,40); z9=whatever[z11,z10]; y9r=y10r-apex_o; +z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e; +penpos7'(1.2hair,-40); z7'r=(0.426w,-d); filldraw z5'l..z1l{up}--z1r-- +z15--z7l-- z6{dir138}..z5'r--z5'l & cycle; penpos22(stem,0); z22=(x1,0.841h); +z29=(x22,h+apex_o); z28=(0,y22); z27=(x22l,0.721h); filldraw +z1l---z27...z28--z29... z22r---z1r--z1l & cycle; penpos30(hair,-70); +penpos32(hair,-70); penpos31(1.083stem,45); z22r-z32l=whatever*dir45; x32r=x22r; +z30-z32=whatever*dir45; y30l=h+apex_o; z31r=(w,y32); +z33-z31l=whatever*(z30-z31r); z33=whatever[z32,z30]; penstroke z32e--z30e; +filldraw z30--z31r--z31l--z33-- z30 & cycle; .endchar; + +.cmchar "The Fraktur letter long s"; +.beginchar("s",4.539lower_u#,1.366x_height#,3.167lower_u#); +.adjust_fit(0,0.05alpha*w#+usual_right#-1.932lower_u#); +w':=w; penpos1.1(hair,0); z1.1=(0.318w',-d); penpos1.2(1.313stem,0); z1.2=(x1.1,0.795x_height); +penpos1.4(3/4stem,-90); z1.4r=(0.857w',y1.2); z1.3=(0,y1.2); z1.12=whatever[z1.1l,z1.2l]; +z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; z1.12'=z1.12-(0.5apex_o,0); +z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; penpos1.5(0.917stem,0); +z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; z1.6l-z1.5l=whatever*dir72; +penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); penpos1.11(hair,-22); +z1.11r=(w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'; penpos1.8(whatever,68); +z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w',1.366x_height); filldraw z1.1r..z1.13'..z1.2r... +z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; filldraw +z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}.. +z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; +.endchar; + +nombre:=5.039gencoef[1,1.168688]; + +.cmchar "The Fraktur letter short s"; .beginchar(oct"215",nombre*lower_u#,1.286x_height#,0); +.adjust_fit(usual_left#,usual_right#); penpos0(hair,angle((w,x_height))-90); +penpos0'(hair,angle((w,x_height))-90); z0l=(0,0.103x_height); x0'r=0.86w; +z0'-z0=whatever*((w,x_height)); penstroke z0e--z0'e; +penpos5(1.083stem,angle((w,gencoef[0.797x_height,0.63x_height]))); +penpos6(1.083stem,angle(z0'-z0)); z5l=(0.54w,-apex_o); z6l=z0r; penstroke z5e{dir142}..z6e; +penpos1(hair,angle((w,0.797x_height))-90); penpos2(hair,angle((w,0.797x_height))-90); +penpos3(1.083stem,39); z3r=(w,0.441x_height); z1r=z5l; z2r=z5r; z4=whatever[z0r,z0'r]; x4=0.595w; +penpos4(5/4stem,angle(z0'-z0)); penstroke z1e--z2e{z2-z1}..z3e..z4e{dir(angle(z0'-z0)+90)}; +penpos7(hair,angle(z0'-z0)-90); z7r=z6; penpos8(1.125stem,angle((w,0.5x_height))); +z8r=whatever[z0,z0']; x8r=0.433w; penpos9(1.292stem,54); z9l=(0,0.69x_height); filldraw +z7--z8r--z8l{down}..z7l{z0-z0'}--z7 & cycle; penstroke z8e{up}..z9e{dir144}; penpos10(hair,-36); +z10l=z9; z11=whatever[z9l,z9r]; y11=x_height+apex_o; penpos12(1.083stem,54); z12r=z11; +penpos14(hair,-36); z14l=z12; penstroke z10e--z14e; z13-z12l=whatever*dir-21; +z13=whatever[z0l,z0'l]; penpos15(0.538stem,-29); z15r=whatever[z0,z0']; y15r=y11; penpos16(hair,90); +penpos17(hair,144); z16r=(0.568w,h); z17=(0.198w,1.124x_height); penstroke +z15e{up}..z16e{left}..z17e; filldraw z12l--z13--z0'r & z0'r{z0'-z0}..z15r{up}--z15l{down} +..z11{z12-z13}--z12l & cycle; .endchar; + +.cmchar "The Fraktur letter t"; +.beginchar("t",3.444lower_u#,1.186x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#-0.3u#); +w':=1.371w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,0.828x_height); +z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); +z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; +penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height); +penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=w; +z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke +z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; +penpos1.4(3/4stem,-90); z1.4=(0.928w,.859x_height); z1.3=(0,y1.4r); z1.35=(x2l,y1.4l); filldraw +z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; +penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; +x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60); +z1.8r=(w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,h); filldraw z1.3--z30l--z30r..z2r{down} +--(x2r,y1.3)--z1.3 & cycle; +.endchar; + +nombre:=6.15gencoef[1,1.107527]; + +.cmchar "The Fraktur letter u"; +.beginchar("u",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h); +penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90); +penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r; +z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58; +z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke +z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle; +penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}-- +z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l +& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot); +z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o); +z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height); +penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l]; +z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r +--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e; +penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o); +z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up} +..z15--z14r--z14l--z13 & cycle; +.endchar; + +nombre:=5.444gencoef[1,1.122449]; + +.cmchar "The Fraktur letter v"; +.beginchar("v",nombre*lower_u#,1.203x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1=(0.334w,1.05foot); penpos2(stem,0); z2=(x1,0.561x_height); +penpos3(stem,50); z3=(0.158w,0.897x_height); penpos3'(1.042stem,37); +z3'l=(0,0.928x_height); penpos4(hair,-44); z4l=(0.265w,h); penstroke +z1e---z2e...z3e{dir140}.. z3'e{up}..z4e{dir46}; penpos5(hair,-90); +penpos6(hair,0); penpos7(hair,-11); z5=(0.133w,0.11x_height); +z6=(0.582w,-apex_o); z7r-z6r=whatever*dir58; z7-z1r=whatever*dir-11; +z7'=whatever[z6l,z7l]; x7'=0.7w; filldraw z1l{down}..z5l--z5r{z1r-z5r} +..z6l--z6r--z7r--z7l--z7'..{left}z1r--z1l & cycle; penpos8(1.125stem,44); +z8r=(w,0.576x_height); penpos11(hair,-44); penpos12(hair,-44); +z11=(0.735w,gencoef[1.055x_height,x_height]); z11-z12=whatever*dir46; x12=0.3w; +penstroke z12e--z11e; penpos10(1.521stem,46); z10r=z11; penpos9(1.042stem,46); +z9=(0.648w,0.928x_height); penstroke z6e---z7e...z8e..z9e; filldraw +z9r{z10-z9}..z10r{z11-z12} --z10l{z11-z12}..z9l{z9-z10}-- z9r & cycle; +.endchar; + +nombre:=7.111gencoef[1,1.2]; + +.cmchar "The Fraktur letter w"; +.beginchar("w",nombre*lower_u#,1.083x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1=(0.154w,foot); n_foot(1); penpos2(stem,0); +z2=(x1,0.831x_height); penstroke z1e--z2e; penpos3(hair,-53); penpos4(hair,-54); +z3r=z2r; z4-z3=whatever*dir37; y4l=x_height+apex_o; z3'=whatever[z3l,z4l]; +x3'=x1r; penpos5(stem,40); z5l=(0,0.955x_height); penpos6(hair,-50); +z6l=(0.145w,h); penstroke z3e--z4e; filldraw +z2r--z3'..z5r-(0,2apex_o){up}..z6r{dir60} --z6l{z5l-z5r}..z5l{down}..z2l--z2r & +cycle; penpos7(stem,0); penpos8(stem,0); z7=(0.531w,foot); z8=(x7,y2); +penpos9(hair,-35); penpos10(hair,-35); +z10-z7r=whatever*((0,0.621x_height)-(w,0)); z9r=(0.668w,-apex_o); +z10-z9=whatever*((w,0.359x_height)-z9); z9-z11=whatever*(z10-z7r); x11=0.402w; +filldraw z11..z7l{up}--z7r--z10r-- z9r--z11 & cycle; penstroke z7e--z8e; +penpos14(1.083stem,47); z14r=(w,gencoef[0.462x_height,0.685x_height]); +penpos11'(hair,-53); penpos12(hair,-53); z11'r=z8r; z12-z11'=whatever*dir37; +y12l=x_height+apex_o; penstroke z11'e--z12e; penpos13(1.083stem,37); z13r=z12; +penstroke z9e---z10e... z14e..z13e{dir(gencoef[110,130])}; +z11.5=whatever[z11'l,z12l]; x11.5=x8r; z8'=whatever[z3r,z4r]; +z8l-z8'=whatever*(z11.5-z4); filldraw z8'--z4--z11.5--z8r--z8l --z8' & cycle; +.endchar; + +nombre:=3.944gencoef[1,1.194030]; + +.cmchar "The Fraktur letter x"; +.beginchar("x",nombre*lower_u#,x_height#,0.5x_height#); +.adjust_fit(usual_left#+u#,usual_right#); w':=1.197w; +penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,x_height); +z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); +penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90); +z5l=(x2r+0.875stem,h); penpos5'(hair,-40); z5'l=(x1l,0.097x_height); +penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; +z7-z6=whatever*dir48; x7=0.817w; z6'=whatever[z6,z7]; y6'=y6l+apex_o; +penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50); +penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*dir40; +x11=x1; penpos9(1.229stem,40); z9=whatever[z11,z10]; y9r=y10r-apex_o; +z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e; +penpos7'(1.2hair,-40); z7'r=(0.426w,-d); filldraw z5'l..z1l{up}--z1r-- +z15--z7l-- z6{dir138}..z5'r--z5'l & cycle; penpos22(stem,0); z22=(x1,0.841h); +z29=(x22,h+apex_o); z28=(0,y22); z27=(x22l,0.721h); filldraw +z1l---z27...z28--z29... z22r---z1r--z1l & cycle; penpos30(hair,-70); +penpos32(hair,-70); penpos31(1.083stem,45); z22r-z32l=whatever*dir45; +x32r=x22r; z30-z32=whatever*dir45; y30l=h+apex_o; z31r=(w,y32); +z33-z31l=whatever*(z30-z31r); z33=whatever[z32,z30]; penstroke z32e--z30e; +filldraw z30--z31r--z31l--z33-- z30 & cycle; +z40=(x1l,1.5foot); z40'=(x1r,1/3foot); +penpos41(0.8stem,180); penpos42(1.5hair,-120); penpos43(hair,-142); + z41l=(apex_o,-0.129d); z42l=(x1r,-0.557143d); x43l=w; y43r=-d; +filldraw z40{down}..z41r{down}--z41l{up}..z40'{right}--z40 & cycle; +penstroke z41e{down}..z42e..z43e{dir-60}; .endchar; + + +nombre:=5.472gencoef[1,1.107527]; + +.cmchar "The Fraktur letter y"; +.beginchar("y",nombre*lower_u#,x_height#,2.556lower_u#); +.adjust_fit(usual_left#,usual_right#); +w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); +z2=(x1,0.846x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); +z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height); +penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; z2.8=(0,y2); +z2.9=(x2,h+apex_o); z2.7=(x1l,0.194[y2,y1]); filldraw +z2.7{up}..z2.8--z2.9..z2r{down} --z2.7 & cycle; penpos5'(hair,-40); +z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; +x6r=x1r; z7-z6=whatever*dir48; x7=0.6w; z6'=whatever[z6,z7]; y6'=y6l+apex_o; +penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50); +penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; +z10-z11=whatever*((w,0.559x_height)); x11=x1; penpos9(1.229stem,40); +z9=whatever[z11,z10]; y9r=y10r-apex_o; z15=whatever[z6l,z7l]; +z15-z1r=whatever*dir-30; penstroke z11e--z10e; penstroke z6e---z7e; +penpos7'(1.2hair,-40); z7'r=(0.426w,-d); penstroke z7'e{dir50}...z8e{up}.. z9e; +filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6'{dir138}..z5'r--z5'l & cycle; +.endchar; + +nombre:=3.444gencoef[1,1.330645]; + +.cmchar "The Fraktur letter z"; +.beginchar("z",nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]); +.adjust_fit(usual_left#,usual_right#); penpos1(hair,122); +penpos2(gencoef[hair,1.5hair],180); penpos3(0.625stem,-42); +penpos4(1.313stem,37); z1l=gencoef[(w,0.524h),(0.945w,0.459h)]; z2r=(0,-0.1d); +z3r=(gencoef[0.548w,0.509w],-d); z4r=(w,gencoef[0.103h,0]); penstroke +z1e..z2e{down}..z3e{right}..z4e{up}; penpos5(hair,-90); +z5=gencoef[(0,0.414h),(0.145w,0.390h)]; z6-z5=whatever*dir38; +x6=gencoef[0.484w,0.454w]; filldraw z5r{right}..z4l{down}-- z4r{up}..z6--z5r & +cycle; penpos7(4/3stem,43); z7=gencoef[(0.629w,0.734h),(0.618w,0.699h)]; +z8=(gencoef[0.532w,0.4w],h+apex_o); z9=(gencoef[0.081w,0.107782w],0.793h); +penpos9'(hair,-90); z9'l=z9; penstroke z5e{z6-z5r}..z7e{up}; filldraw +z7l{up}..z9'r{z9-z8}--z9--z8.. z7r{down}--z7l & cycle; .endchar; + + + + + + + + + + + + diff --git a/fonts/gothic/yfrak/yfrakmis.mf b/fonts/gothic/yfrak/yfrakmis.mf new file mode 100644 index 0000000000..55cf511569 --- /dev/null +++ b/fonts/gothic/yfrak/yfrakmis.mf @@ -0,0 +1,574 @@ +.cmchar "The Fraktur ligature ch"; +.beginchar(oct"205",3.639lower_u#+4.772lower_u#,x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot); +z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l]; +x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h); +penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68); +z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l]; +x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w; +z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw +z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw +z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r & +z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0); w:=5.472u; +h:=1.376x_height; d:=2.556u; w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1l=z102l; +z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); +penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); +penstroke z1e--z2e; filldraw z2l---z3''...z4l--z4r-- z3{dir45}..z5l{right}--z5r{left} +...z3'---z2r--z2l & cycle; penpos5'(hair,-40); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; +x6r=x1r; z7-z6=whatever*dir48; x7=0.6w+x0; z6'=whatever[z6,z7]; y6'=y6l+apex_o; +penpos8(1.292stem,39); z5'=whatever[z101,z102]; z8r=(w,0.478x_height)+z0; penpos11(hair,-50); +penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*((w,0.559x_height)); x11=x1; +penpos9(1.229stem,angle((w,0.559x_height))); z9=whatever[z11,z10]; y9r=y10r-apex_o; +z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; z5'r-z6'=whatever*(z1r-z15); penstroke z11e--z10e; +penstroke z6e---z7e; penpos7'(1.2hair,-40); z7'r=(0.426w,-d)+z0; penstroke z7'e{dir50}...z8e{up}.. +z9e; filldraw z5'l--z1l--z1r-- z15--z7l-- +z6'--z5'r--z5'l & cycle; .endchar; + +.cmchar "The Fraktur ligature ck"; +.beginchar(oct"206",3.639lower_u#+3.161lower_u#,x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot); +z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l]; +x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h); +penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68); +z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l]; +x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w; +z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw +z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw +z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r & +z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0); +w:=3.861u; h:=1.366x_height; w':=1.223w; penpos1(stem,0); penpos2(stem,0); z1l=z102l; +z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); +penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); +penstroke z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); filldraw z2l---z3''...z4l--z4r-- +z3{dir45}..z5l{right}..z5''l--z5''r..z5r{left} ...z3'---z2r--z2l & cycle; penpos5'(hair,-40); +penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.8w+x0; +z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke +z6e---z7e; z5'r-z6'=whatever*(z1r-z15); z5'=whatever[z101,z102]; filldraw z5'l..z1l{up}--z1r-- +z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; penpos1.4(3/4stem,-90); z1.4=(x0+0.928w,.859x_height); +z1.3=(x0,y1.4r); z1.35=(x2l,y1.4l); filldraw z1.3--z1.35--z1.4l--z1.4r-- z1.3 & cycle; +penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43); +z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; +x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60); +z1.8r=(x0+w,0.579[y1.4l,y5l]); penstroke z1.6e--z1.6'e; penstroke +z1.5e{dir72}..z1.8e{up}..z1.7e{left}; filldraw z1.6r--z1.7l--z1.7r--z1.6l --z1.6r & cycle; +.endchar; + +.cmchar "The Fraktur ligature st"; +.beginchar(oct"202",6.5lower_u#,1.366x_height#,3.167lower_u#); +.adjust_fit(0,0.05alpha*w#+usual_right#); +w':=0.698w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); +z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2); +z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height; +z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; +penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112; +z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22); +penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; +penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw +z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; +filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}.. +z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e; +w':=0.726w; z100=(x0.14,0); penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot)+z100; +z2=(x1,0.828x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); +penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke +z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height)+z100; +penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=x100+0.53w; +z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke +z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; +penpos1.4(3/4stem,-90); z1.4=(0.928x100+0.4916w,.859x_height); z1.3=(x100,y1.4r); +z1.35=(x2l,y1.4l); filldraw z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); +z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); +penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); +z1.6'l=z1.7r; penpos1.8(stem,60); +z1.8r=(x100+0.529w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,1.186x_height); filldraw +z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; penpos30'(hair,180); z30'=z30; +penpos30''(hair,-90); z30''r=(x30l,h); penstroke z0.11e{z0.11-z0.9}.. z30''e..z30'e{z1.3-z30l}; +.endchar; + +.cmchar "The Fraktur ligature ss"; +.beginchar(oct"201",6.928lower_u#,1.366x_height#,3.167lower_u#); +.adjust_fit(0,0.05alpha*w#+usual_right#-1.932u#); +w':=0.655w; +penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); z0.2=(x0.1,0.795x_height); +penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l]; +z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0); +z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; penpos0.5(0.917stem,0); +z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72; +penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22); +z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; penpos0.8(whatever,68); +z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r... +z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw +z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}.. +z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e; +z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0); +z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2); +z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; +z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; +penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; +z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); +penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100; +penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw +z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; +filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}.. +z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; +.endchar; + +.cmchar "The Fraktur ligature sf"; +.beginchar(oct"203",6.928lower_u#,1.366x_height#,3.167lower_u#); +.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#); +w':=0.655w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); +z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2); +z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height; +z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; +penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112; +z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22); +penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; +penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw +z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; +filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}.. +z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e; +z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0); +z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2); +z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; +z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; +penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; +z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); +penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100; +penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw +z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; +filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}.. +z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw +z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle; +.endchar; + +.cmchar "The Fraktur ligature ff"; +.beginchar(oct"204",6.928lower_u#,1.366x_height#,3.167lower_u#); +.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#); +w':=0.655w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); +z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2); +z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height; +z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; +penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112; +z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22); +penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; +penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw +z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; +filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}.. +z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e; +z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0); +z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2); +z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; +z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; +penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; +z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); +penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100; +penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw +z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; +filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}.. +z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw +z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle; filldraw z0.5--z0.4l--z0.4r--z0.2--z0.5 & cycle; +.endchar; + +.cmchar "The Fraktur ligature sz"; +.beginchar(oct"032",5.444lower_u#,1.366x_height#,3.167lower_u#); +.adjust_fit(0,0.05alpha*w#+usual_right#+0.5u#); w':=0.834w; +penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); +z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); +z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; +y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0); +z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; +penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); +z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); +z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22); +z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; +penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; +z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & +z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw +z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw +z0.6l{dir72}..z0.14{right}.. z0.8r{dir-22}--z0.8l{dir158}.. +z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e; +z100=(x0.2r-hair,hair); w':=0.633w; d':=0.679w; penpos1(hair,122); +penpos2(hair,180); penpos3(0.625stem,-42); penpos4(1.313stem,37); +z1l=(w',0.524h)+z100; z2r=(x0.2,-0.1d'+y100); z3r=(0.548w',-0.8d')+z100; +z4r=(w'+u,0.103x_height)+z100; penstroke z2e{down}..z3e{right} ..z4e{up}; +penpos5(hair,-90); z5=(0,0.414x_height)+z100; z6-z5=whatever*dir38; +x6=0.484w'+x100; filldraw z5r{right}..z4l{down}-- z4r{up}..z6--z5r & +cycle; penpos7(4/3stem,43); z7=(0.629w',0.734x_height)+z100; +z8=(0.532w',x_height+apex_o)+z100; z9=(0.081w',0.793x_height)+z100; +penpos9'(hair,-90); z9'l=z9; penstroke z5e{z6-z5r}..z7e{up}; filldraw +z7l{up}..z9'r{z9-z8}--z9--z8.. z7r{down}--z7l & cycle; .endchar; + +.cmchar "The Fraktur ligature tz"; +.beginchar(oct"213",4.75lower_u#,1.186x_height#,3.167lower_u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#+u#); +w':=0.994w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,0.828x_height); +z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); +z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; +penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height); +penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.632w; +z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke +z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; +penpos1.4(3/4stem,-90); z1.4=(x1r,.859x_height); z1.3=(0,y1.4r); z1.35=(x2l,y1.4l); filldraw +z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; +penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; +x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; +penpos1.8(stem,60); z1.8r=(w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,h); filldraw +z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; z100=(x1r-hair,hair); w':=0.725w; +d':=0.679d; penpos0.1(hair,122); penpos0.2(hair,180); penpos0.3(0.625stem,-42); +penpos0.4(1.313stem,37); z0.1l=(w',0.524h)+z100; z0.2r=(0,-0.1d')+z100; z0.3r=(0.548w',-d')+z100; +z0.4r=(w'+u,0.103x_height)+z100; penstroke z0.2e{down}..z0.3e{right} ..z0.4e{up}; +penpos0.5(hair,-90); z0.5=(0,0.414x_height)+z100; z0.6-z0.5=whatever*dir38; x0.6=0.484w'+x100; +filldraw z0.5r{right}..z0.4l{down}-- z0.4r{up}..z0.6--z0.5r & cycle; penpos0.7(4/3stem,43); +z0.7=(0.629w',0.734x_height)+z100; z0.8=(0.532w',x_height+apex_o)+z100; +z0.9=(0.081w',0.793x_height)+z100; penpos0.9'(hair,-90); z0.9'l=z0.9; penstroke +z0.5e{z0.6-z0.5r}..z0.7e{up}; filldraw z0.7l{up}..z0.9'r{z0.9-z0.8}--z0.9--z0.8.. +z0.7r{down}--z0.7l & cycle; filldraw (x1r,y1.4l){right}.. z0.8{z0.8-z0.9}--z0.9--(x1r,y1.4l) & +cycle; +.endchar; + +numeric nombre; nombre:= 5gencoef[1,1.155556]; + +.cmchar "The Fraktur letter a with little-e Umlaut"; +.beginchar(oct"211",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]); +penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51); +penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h))); +penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0); +penpos12(whatever,-90); penpos11''(hair,-30); +z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]); +z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]); +z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4]; +x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem; +z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])]; +y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o; +z10=whatever[z8l,z9l]; y10=0.228h; +z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]); +z11''r=(gencoef[0.78w,0.814w],-apex_o); +z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l); +z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r; +z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l]; +y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7]; +penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]); +filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r.. +z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke +z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down} +..z7..z10{z9-z8} & z10--z8' & cycle; z100=(x9l,1.214x_height); +e_umlaut(100);.endchar; + +nombre:= 3.65gencoef[1,1.230769]; + +.cmchar "The Fraktur letter e with little-e Umlaut"; +.beginchar(oct"220",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1l=(0,0.486h); +penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]); +penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]); +z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w]; +x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8]; +y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l]; +x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h); +penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69); +y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h); +z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0]; +z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6)); +z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e; +filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69); +z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w]; +z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e; +filldraw z7'{dir135}..z1l{up}..z2 & +z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10 +..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; z100=(0.569w,1.214x_height); +e_umlaut(100); +.endchar; + +nombre:=4.75gencoef[1,1.140351]; + +.cmchar "The Fraktur letter o with little-e Umlaut"; +.beginchar(oct"231",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]); +x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31); +z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0); +z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22); +z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l; +penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]); +z2-z1=whatever*((w,0.786h)); x8'=x8r; +y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e.. +z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw +z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw +z7l--z7'--z7r--z7l & cycle; z100=(x4,1.214x_height); +e_umlaut(100); +.endchar; + +nombre:=6.15gencoef[1,1.107527]; + +.cmchar "The Fraktur letter u with little-e Umlaut"; +.beginchar(oct"236",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h); +penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90); +penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r; +z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58; +z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke +z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle; +penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}-- +z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l +& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot); +z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o); +z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height); +penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l]; +z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r +--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e; +penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o); +z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up} +..z15--z14r--z14l--z13 & cycle; z100=(x2l-hair,1.214x_height); +e_umlaut(100); +.endchar; + +numeric nombre; nombre:= 5gencoef[1,1.155556]; + +.cmchar "The Fraktur letter a with Umlaut"; +.beginchar(oct"212",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]); +penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51); +penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h))); +penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0); +penpos12(whatever,-90); penpos11''(hair,-30); +z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]); +z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]); +z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4]; +x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem; +z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])]; +y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o; +z10=whatever[z8l,z9l]; y10=0.228h; +z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]); +z11''r=(gencoef[0.78w,0.814w],-apex_o); +z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l); +z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r; +z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l]; +y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7]; +penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]); +filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r.. +z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke +z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down} +..z7..z10{z9-z8} & z10--z8' & cycle; z100=(x9l,1.214x_height); +umlaut(100);.endchar; + +nombre:= 3.65gencoef[1,1.230769]; + +.cmchar "The Fraktur letter e with Umlaut"; +.beginchar(oct"221",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1l=(0,0.486h); +penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]); +penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]); +z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w]; +x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8]; +y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l]; +x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h); +penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69); +y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h); +z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0]; +z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6)); +z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e; +filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69); +z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w]; +z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e; +filldraw z7'{dir135}..z1l{up}..z2 & +z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10 +..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; z100=(0.569w,1.214x_height); +umlaut(100); +.endchar; + +nombre:=4.75gencoef[1,1.140351]; + +.cmchar "The Fraktur letter o with Umlaut"; +.beginchar(oct"232",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]); +x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31); +z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0); +z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22); +z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l; +penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]); +z2-z1=whatever*((w,0.786h)); x8'=x8r; +y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e.. +z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw +z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw +z7l--z7'--z7r--z7l & cycle; z100=(x4,1.214x_height); +umlaut(100); +.endchar; + +nombre:=6.15gencoef[1,1.107527]; + +.cmchar "The Fraktur letter u with Umlaut"; +.beginchar(oct"237",nombre*lower_u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h); +penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90); +penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r; +z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58; +z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke +z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle; +penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}-- +z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l +& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot); +z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o); +z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height); +penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l]; +z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r +--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e; +penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o); +z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up} +..z15--z14r--z14l--z13 & cycle; z100=(x2l-hair,1.214x_height); +umlaut(100); +.endchar; + +.cmchar "The Fraktur hyphen"; +.beginchar(oct"055",4u#,x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(0.5stem,-90); +penpos2(0.5stem,-90); +penpos3(0.5stem,-90); +penpos4(0.5stem,-90); penpos5(stem,-90); +z2-z1=whatever*dir35; +z4-z3=whatever*dir35; +z3r=z5l; z5r=z1l; x1=0; +x2=x4=w; +y1r=foot; +penstroke z1e--z2e; +penstroke z3e--z4e; +.endchar; + +def par_s(suffix $) = +h':=cap_height; w':=0.379h'; +z$.1=z$+(0.5w',0.5h'); +penpos$.1(stem,30); +penpos$.2(2hair,0); +penpos$.3(hair,-90); +penpos$.4(hair,180); +penpos$.5(hair,90); +z$.2l=z$+(0,0.8h'); z$.3l=(x$.1,y$+h'); +z$.4=z$+(0.84w',0.886h'); +z$.5=(x$.4r,y$+0.826h'); +penstroke z$.2e{up}..z$.3e +{right} if panw: ..z$.4e{down}..z$.5e{left} fi; +penpos$.6(2hair,90); z$.6l=z$.5l; +if panw: +filldraw z$.6r..z$.6l..z$.6r & cycle; +fi +penpos$.1'(stem,-150); +penpos$.2'(2hair,180); +penpos$.3'(hair,90); +penpos$.4'(hair,0); +penpos$.5'(hair,-90); +z$.1=z$.1'; +z$.2'r=z$+(w',0.2h'); z$.3'r=(x$.1,y$); +z$.4'=z$+(0.16w',0.114h'); +z$.5'=(x$.4'r,y$+0.174h'); +penpos$.2''(2hair,0); z$.2''=z$.2'; +z$.25=(z$.2''{up}..z$.2{up}) +intersectionpoint (z$+(0,0.5h')-- +z$+(w',0.5h')); +penpos$.25(stem,30); +penstroke z$.2''e{up}..z$.25e.. +z$.2e{up}; +penstroke z$.2'e{down}..z$.3'e +{left} if katw: ..z$.4'e{up}..z$.5'e{right} fi; +penpos$.6'(2hair,-90); z$.6'l=z$.5'l; +if katw: +filldraw z$.6'r..z$.6'l..z$.6'r & cycle; +fi +enddef; + +.cmchar "The Fraktur paragraph sign"; +.beginchar(oct"074",7.4u#,cap_height#,3.167u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +boolean panw, katw; +panw:=true; katw:=false; +z0=(0.17h,0); par_s(0); +panw:=false; katw:=true; +z1=(0,-0.3h); par_s(1); +.endchar; + +.cmchar "The Fraktur paragraph sign"; +.beginchar(oct"244",7.4u#,cap_height#,3.167u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +boolean panw, katw; +panw:=true; katw:=false; +z0=(0.17h,0); par_s(0); +panw:=false; katw:=true; +z1=(0,-0.3h); par_s(1); +.endchar; + +.cmchar "The Fraktur Mitlaut J proposed by Sanders in 1879"; +.beginchar("$",8.541u#,cap_height#,2.497u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,28); penpos2(cap_hair,-17.5); penpos3(0.889cap_stem,-116); penpos4(cap_stem,-126); +penpos5(cap_hair,-44); penpos6(1.056cap_stem,53); penpos7(1.056cap_stem,21); penpos8(cap_hair,-90); +penpos9(cap_hair,180); z1=(0.115w,-0.886d); z2r=(x1,-0.519d); z3=(0.234w,-0.1d); z4r=(0.517w,-d); +z5=(0.795w,-0.329d); z6r=(0.966w,0.196h); z7=(0.636w,0.56h); z8=(0.808w,0.683h); z9l=(x6r,0.554h); +penstroke z1e..z2e{up}..z3e{right} ..z4e{right}..z5e..z6e{up}..z7e{up} ..z8e{right}..z9e{down}; +penpos10(1.037cap_stem,50); penpos11(cap_hair,-45); penpos12(0.889cap_stem,43); +penpos13(1.185cap_stem,-146); penpos14(0.741cap_stem,-119); penpos15(cap_hair,0); +penpos16(cap_hair,28); z10l=z11r=(0.1w,0.515h); z12l=(0,0.69h); z13l=(0.506w,h+apex_o); +z14r=z8l+(0,0.035h); z15r=(w,0.875h); z16=(x15l,0.924h); filldraw z11l{z12r-z11l}..z12l{up}-- +z12r{down}..z10r--z10l--z11l & cycle; penstroke z12e{up}..z13e{right}.. +z14e{right}..z15e{up}..z16e{dir118}; penpos20(hair,-41); penpos21(hair,-41); +penpos22(2/3cap_stem,-90); penpos23(0.593cap_stem,-113); z20l=(0,0.235h); z21=(x8,0.48y8); +z22=(0.261w,0.328h); z23=(0.586w,0.251h); penstroke z20e..z22e{right}..z23e{right} ..z21e; +.endchar; + +.cmchar "The Fraktur symbol for etc"; .beginchar(oct"311",8.194lower_u#,x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); penpos1(hair,-52); +penpos2(hair,-52); penpos3(stem,48); penpos4(stem,48); penpos5(hair,-42); penpos6(1.2stem,34); +penpos8(hair,-49); z1r=(0.22w,-apex_o); z2-z1=whatever*dir38; x2=0.458w; z3l=z1r; +z4l-z1r=whatever*dir140; x4l=0; z5l=z4; y6=0.707h; x6r=x2r; z7=(0.231w,h+apex_o); +z9=(0.163w,0.841h); z8l=(0,0.793h); penstroke z1e--z2e; penstroke z3e--z4e; penstroke +z5e{z4r-z4l}..z6e{up}; filldraw z6r{up}..z7{dir160} & z7-- z8l--z8r{z7-z8l}..z9{right}..z6l{down} +--z6r & cycle; penpos10(hair,-59); penpos11(hair,-59); penpos12(whatever,50); penpos13(1.2stem,30); +penpos14(stem,11.5); penpos15(hair,-75); penpos16(0.857stem,14); penpos17(0.857stem,14); +z11r=(0.695w,-apex_o); z10-z11=whatever*dir31; x10r=w; z12l=z11r; z12r=whatever[z11l,z10l]; +z13=(0.631w,0.49h); z14=(0.678w,0.859h); z16r=(w,y8l); z15-z16r=whatever*dir105; y15l=h+apex_o; +z17r=z15; penstroke z11e--z10e; penstroke z12e..z13e{up}..z14e.. z15e{z16r-z16l}; penstroke +z16e--z17e; +.endchar; + +.cmchar "Scandinavian circle accent"; +.beginchar(oct"027",9u#,cap_height#,0); +.adjust_fit(0,0); +penpos0.1(2u,45); z0.1=z0=(0.5w,1.283x_height); +pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30; +z0.2=z0.1r; z0.3=z0.1l; rt x0.4=rt x0.2; top y0.4=y0; +draw z0.2..z0.3..z0.2; +penlabels(1,2,3,4); .endchar; + +.cmchar "The Fraktur letter dotless j"; +.beginchar(oct"021",2.944lower_u#,x_height#,1.611lower_u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(hair,47); penpos2(1.3hair,-90); z2r=(0.16w,-d); penpos5(stem,0); +z5=(0.523w,0.124h); penpos3(2/3stem,0); z3l=(x5l,0.048h); penpos6(stem,0); +z6=(x5,0.824h); penpos7(hair,-90); z7=(0.906w,0.91h); penpos8(hair,-48); +penpos9(hair,-48); z8l=(0.481w,h+apex_o); z8-z9=whatever*((w,0.3448h)); x9l=0; +z9'=whatever[z9r,z8r]; y9'=y9l+apex_o; z1r=(x5r+0.5stem,-0.207d);penstroke +z2e..z3e{up}; penstroke z5e--z6e; filldraw z1r{dir137}..z5r{up}--z5l +--z3l--z3r..z1l{dir-43}--z1r & cycle; filldraw z6r{up}..z7r{right}--z7l... +z8r---z8l--z9l--z9r--z9'.. z6l{down}--z6r & cycle; penpos11(hair,0); +z11r=(x8l,1.076h); z12=(0.571w,1.279h); z13=(0.744w,1.238h); +.endchar; + +.cmchar "The Fraktur letter dotless i"; +.beginchar(oct"020",2.889lower_u#,x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(hair,-44); penpos2(hair,-44); penpos3(hair,-44); z1l=(0,0.834h); +z2-z1=whatever*((w,0.37h)); y2l=h+apex_o; z3=whatever[z2l,z2r]; x3r=x5r+0.5stem; +z4=(0.606w,0.931h); penpos5(stem,0); z5=(0.433w,0.759h); z6=(x5,0.238h); +penpos6(stem,0); z7=(x6l,0.079h); z8-z7=whatever*dir-40; y8=-apex_o; +penpos9(hair,-38); z9r-z8=whatever*dir52; x9r=w; z10=(0.788w,0.152h); +z5'=whatever[z1,z2]; x5'=x5l; penstroke z5e--z6e; penstroke z1e--z2e; filldraw +z5r{up}..z3r--z2--z5'--z5l{down} --z5r & cycle; filldraw z8--z9r--z9l{z8-z9r} +..z6r{up}--z6l{down}..{z8-z7}z8 & cycle; penpos11(hair,0); z11r=(x2l,1.076h); +z12=(0.56w,1.279h); z13=(0.73w,1.238h); +.endchar; + diff --git a/fonts/gothic/yfrak/yfraknum.mf b/fonts/gothic/yfrak/yfraknum.mf new file mode 100644 index 0000000000..56ef6327e9 --- /dev/null +++ b/fonts/gothic/yfrak/yfraknum.mf @@ -0,0 +1,194 @@ +.cmchar "The Fraktur numeral 1"; +.beginchar("1",2.778u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos2(w,0); z2=(0.5w,0); +penpos1(stem,0); z1=(0.5w,foot); +penpos3(hair,90); penpos4(hair,90); +z3l=z2l; z4l=z2r; penpos5(stem,0); +z5=(x1,0.79h); penpos6(hair,0); +z6r=(x5r,h); penpos7(1.5hair,90); +z7=(0,0.9h); +filldraw z4l--z4r...z1r---z6r-- +z6l..z7r{left}--z7l{right}... +z5l---z1l...z3r--z2l--z4l & cycle; +.endchar; + +.cmchar "The Fraktur numeral 2"; +.beginchar("2",5.694u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(0.625stem,-90); penpos2(stem,-90); +penpos3(4/3stem,-115); +z1r=(0,0); z2r=(0.722w,0.026h); +x3l=w; y3r=-apex_o; +penstroke z1e..z2e{right}..z3e; +penpos4(0.917stem,20); +z4r=(0.966w,0.721h); +z5=(0.478w,0.848h); +z6=(0.244w,h+apex_o); +z7=(0.093w,0.822h); +penpos8(hair,13); z8=(0.146w,3/4h); +penstroke z1e{dir44}..z4e{up}; +filldraw z8r..z5{right}..z4l{down} +--z4r{up}..z6{dir173} & z6--z7--z8l--z8r & +cycle; +.endchar; + +.cmchar "The Fraktur numeral 3"; +.beginchar("3",5.5u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(1.5hair,-90); penpos2(stem,18); +penpos3(1.833stem,35); +penpos4(hair,-90); penpos5(0.625stem,0); +z1r=(0,-apex_o); z2=(0.788w,0.353h); +z4r=(0.167w,0.489h); z5r=(w,h); +z3l=z4r; +penstroke z1e{dir12}..z2e{up}..z3e{left}; +penstroke z4e{dir30}..z5e{up}; +penpos7(0.917stem,-90); +penpos8(0.417stem,-17); +penpos9(hair,0); +z8l=(0,0.796h); z9l-z8l=whatever*dir73; +y9=h+apex_o; z7l=(0.273w,h-apex_o); +z6=(z4l{dir30}..z5l{up}) intersectionpoint +((0,y7r+apex_o)--(w,y7r+apex_o)); +filldraw z8l--z9l--z9r..z7l{right}... +z5l---z5r--z6..z7r{left}..z8r{z8l-z9l} +--z8l & cycle; +.endchar; + +.cmchar "The Fraktur numeral 4"; +.beginchar("4",7.361u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(stem,0); penpos2(stem,0); +z1=(0.619w,foot); z2=(x1,0.831h); +z3=(x1,h); z4=(0,0.444h); +penpos6(0.521stem,90); z6=(0.796w,0.45h); +y5=y6l; (x2r,h)-z5=whatever*dir50; +z4'=(1/45w,y6r); z3'-z4'=whatever*dir50; +x3'=x2l; penpos9(hair,90); +penpos10(hair,-90); z9l=(x1-stem,0); +z10r=(x1+stem,0); +z8=(w,0.521h); z7=(0.921w,0.376h); +filldraw z9l--z9r...z1l---z2l-- +z2r---z1r...z10l--z10r--z9l & cycle; +z3''=whatever[z5,(x2r,h)]; x3''=x2l; +filldraw z2l--z3''--z5--z4'---z3'... +z3{right}..{down}z2r--z2l & cycle; +filldraw z6l---z5...z4{up}..z4'{z3'-z4'} +& z4'---z6r...z8{right}--z7.. +z6l{left} & cycle; +.endchar; + +.cmchar "The Fraktur numeral 5"; +.beginchar("5",5.528u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(0.458stem,-60); penpos2(1.125stem,25); +penpos3(1.125stem,65); penpos4(1.167stem,53); +penpos5(1.5hair,-25); penpos6(0.958stem,-77); +z1=(0.221w,-apex_o); z2=(0.729w,0.417h); +z3=(0.462w,0.578h); z4l=(0,0.618h); +z5=(0.161w,0.814h); z6l=(0.349w,h); +z7=(0.673w,0.98h); z8=(w,h); +z9=(0.851w,0.828h); +penstroke z1e{dir30}..z2e{up}.. +z3e{dir169}..z4e{up}..z5e{dir65}..z6e{right}; +filldraw z6l{right}..z7..z8 & z8--z9 & +z9..{left}z6r--z6l & cycle; +.endchar; + +.cmchar "The Fraktur numeral 6"; +.beginchar("6",6.056u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(1.4hair,-42); penpos2(1.208stem,40); +penpos3(1.125stem,54); penpos4(1.2hair,-36); +penpos5(stem,30); penpos7(hair,-45); +z1l=(0.716w,h+apex_o); z2l=(0,0.342h); +z3l=(0.674w,-apex_o); +penstroke z3e..z2e{up}..z1e{dir48}; +z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h); +z6-z7l=whatever*dir45; y7l=0.555h; +z8=(0.477w,0.566h); +filldraw z4r---z3r...z5r{up}..z6{dir135} +--z7l--z7r{z6-z7l}..z8{right}..z5l{down} +..z4l{z3l-z3r}--z4r & cycle; +.endchar; + +.cmchar "The Fraktur numeral 7"; +.beginchar("7",5.906u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(1.417stem,0); z1=(0.466w,0); +penpos2(hair,-57); y2l=h; x2r=w; +penstroke z1e{up}..z2e{dir64}; +penpos3(hair,-20); penpos5(stem,-90); +z3l=(0,0.776h); z5l=(0.24w,h); +z4-z3l=whatever*dir70; y4=h+apex_o; +z6=(z5r--(w,y5r)) intersectionpoint +(z1{up}..z2{dir64}); +filldraw z3r{z4-z3l}...z5r---z6-- +z2--z2l---z5l...z4 & z4--z3l--z3r & +cycle; +.endchar; + +.cmchar "The Fraktur numeral 8"; +.beginchar("8",6.722u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(1.042stem,61.5); +penpos2(hair,110); +z1=z2=(0.5w,0.51h); +penpos3(0.917stem,24); +z3l=(0.083w,0.721h); +penpos5(0.917stem,-204); +z5l=(w-x3l,y3l); +penpos4(hair,-90); z4l=(0.5w,h+apex_o); +penpos6(stem,180); z6r=(0,0.245h); +penpos7(2hair,-90); z7r=(0.5w,-apex_o); +penpos8(stem,0); z8r=(w,y6); +penstroke z1e{dir151.5}..z3e{up}.. +z4e{right}..z5e{down}..z2e{dir200}.. +z6e{down}..z7e{right}..z8e{up}.. +z1e{dir151.5}; +.endchar; + +.cmchar "The Fraktur numeral 9"; +.beginchar("9",6.056u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(1.4hair,-42); penpos2(1.208stem,40); +penpos3(1.125stem,54); penpos4(1.2hair,-36); +penpos5(stem,30); penpos7(hair,-45); +z1l=(0.716w,h+apex_o); z2l=(0,0.342h); +z3l=(0.674w,-apex_o); +penstroke z3e..z2e{up}..z1e{dir48}; +z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h); +z6-z7l=whatever*dir45; y7l=0.555h; +z8=(0.477w,0.566h); +filldraw z4r---z3r...z5r{up}..z6{dir135} +--z7l--z7r{z6-z7l}..z8{right}..z5l{down} +..z4l{z3l-z3r}--z4r & cycle; +transform gurisma; +gurisma=identity +rotatedaround ((0.5w,0.5h),180); +picture krufo; +krufo:= currentpicture transformed +gurisma; +picture currentpicture; +currentpicture=krufo; +.endchar; + +.cmchar "The Fraktur numeral 0"; +.beginchar("0",7.332u#,1.2x_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(1.059stem,-143); +penpos2(stem,-140); +penpos3(1.05stem,-136); +penpos4(1.1stem,-142); +penpos5(hair,128); +penpos6(hair,127); +z1l=(0.535w,h+apex_o); z4r=(w-x1l,-apex_o); +z2l=(w,0.528h); x3r=0; y3=y2l+apex_o; +z5l=z4; z6r=z1; +penstroke z1e{dir-25}..z2e{down}.. +z5e{z4r-z4l}; +penstroke z6e{z1r-z1l}..z3e{down}.. +z4e{dir-31}; +.endchar; + diff --git a/fonts/gothic/yfrak/yfrakoth.mf b/fonts/gothic/yfrak/yfrakoth.mf new file mode 100644 index 0000000000..b0f939e8e0 --- /dev/null +++ b/fonts/gothic/yfrak/yfrakoth.mf @@ -0,0 +1,528 @@ +.cmchar "The Fraktur comma"; +.beginchar(",",5u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(0.23570*(x_height+2apex_o),45); +penpos2(0.23570*(x_height+2apex_o),45); +penpos3(0.23570*(x_height+2apex_o),45); +penpos4(0.23570*(x_height+2apex_o),45); +penpos5(0.23570*(x_height+2apex_o),45); +penpos6(0.23570*(x_height+2apex_o),45); +x1l=x3l=x5l=0.5w; +z2r=z3l; z4r=z5l; +z2-z1=whatever*dir135; +z4-z3=whatever*dir135; +z6-z5=whatever*dir135; +y1l=-apex_o; y6r=x_height+apex_o; +%penstroke z1e--z2e; +penpos10(0.11785*(x_height+2apex_o),-30); +z10l=(x2l-apex_o,-1.3y2r); +filldraw z10l--z2l+(2hair,0){up}..{down} +z1r--z10r--z10l & cycle; +.endchar; + +.cmchar "The Fraktur colon"; +.beginchar(":",5u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(0.23570*(x_height+2apex_o),45); +penpos2(0.23570*(x_height+2apex_o),45); +penpos3(0.23570*(x_height+2apex_o),45); +penpos4(0.23570*(x_height+2apex_o),45); +penpos5(0.23570*(x_height+2apex_o),45); +penpos6(0.23570*(x_height+2apex_o),45); +x1l=x3l=x5l=0.5w; +z2r=z3l; z4r=z5l; +z2-z1=whatever*dir135; +z4-z3=whatever*dir135; +z6-z5=whatever*dir135; +y1l=-apex_o; y6r=x_height+apex_o; +penstroke z1e--z2e; +penstroke z5e--z6e; +.endchar; + +.cmchar "The Fraktur semicolon"; +.beginchar(";",5u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +penpos1(0.23570*(x_height+2apex_o),45); +penpos2(0.23570*(x_height+2apex_o),45); +penpos3(0.23570*(x_height+2apex_o),45); +penpos4(0.23570*(x_height+2apex_o),45); +penpos5(0.23570*(x_height+2apex_o),45); +penpos6(0.23570*(x_height+2apex_o),45); +x1l=x3l=x5l=0.5w; +z2r=z3l; z4r=z5l; +z2-z1=whatever*dir135; +z4-z3=whatever*dir135; +z6-z5=whatever*dir135; +y1l=-apex_o; y6r=x_height+apex_o; +penstroke z1e--z2e; +penstroke z5e--z6e; +penpos10(hair,-30); z10l=(x2l,-y2r); +filldraw z10l{z1r-z10r}..z2l{z2-z1} +& z2l--z1r--z10r--z10l & cycle; +.endchar; + +.cmchar "The Fraktur point"; +.beginchar(".",5u#,x_height#,0); +.adjust_fit(usual_left#,usual_right#); +pointpoint; +.endchar; + +.cmchar "Grave accent"; +.beginchar(oct"022",9u#,min(asc_height#,2x_height#),0); +.adjust_fit(0,0); +if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1]; + y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair); + numeric theta; theta=angle(z2-z1)+90; + pos1(stem,theta); pos2(hair,theta); + filldraw circ_stroke z1e--z2e; % diagonal +else: pickup fine.nib; pos1(stem,0); pos2(vair,0); + lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair); + top y1=h; bot y2=vround 2/3[h,x_height]; + filldraw stroke z1e--z2e; fi % diagonal +penlabels(1,2); .endchar; + +.cmchar "Acute accent"; +.beginchar(oct"023",9u#,min(asc_height#,2x_height#),0); +italcorr h#*slant-if serifs: 1.5 fi u#; +.adjust_fit(0,0); +if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1]; + y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair); + numeric theta; theta=angle(z2-z1)+90; + pos1(stem,theta); pos2(hair,theta); + filldraw circ_stroke z1e--z2e; % diagonal +else: pickup fine.nib; pos1(stem,0); pos2(vair,0); + rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair); + top y1=h; bot y2=vround 2/3[h,x_height]; + filldraw stroke z1e--z2e; fi % diagonal +penlabels(1,2); .endchar; + +.cmchar "Hachek (check) accent"; +.beginchar(oct"024",9u#,.75[x_height#,min(asc_height#,2x_height#)],0); +h':=vround min(asc_height,2x_height); % height of circumflex being inverted +if serifs: italcorr h#*slant+.5hair#-1.75u#; + .adjust_fit(0,0); + pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h; + pos2(.5[vair,curve],90); x2=.5w; + x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height); + pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90); + filldraw stroke z1e--z2e--z3e; % diagonals +else: italcorr h#*slant-.5stem#+.5vair#-.75u#; + .adjust_fit(0,0); + pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3; + pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w; + top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair); + z0=whatever[z1r,z2r]=whatever[z2l,z3l]; + y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l; + filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals +penlabels(0,1,2,3,4); .endchar; + +.cmchar "Breve accent"; +.beginchar(oct"025",9u#,min(asc_height#,2x_height#),0); +italcorr h#*slant+.5vair#-1.5u#; +.adjust_fit(0,0); +pickup crisp.nib; pos1(vair,-180); pos3(vair,0); +top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair); +numeric mid_thickness; mid_thickness=vround 1/3[vair,stem]; +pos2(mid_thickness,-90); x2=.5w; +bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness); +filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke +penlabels(1,2,3); .endchar; + +.cmchar "Macron (bar) accent"; +numeric macron_breadth#; macron_breadth#=.2[vair#,stem#]; +.beginchar(oct"026",6u#,.4[x_height#,asc_height#]+macron_breadth#,0); +italcorr h#*slant-.75u#; +.adjust_fit(0,0); +numeric macron_breadth; macron_breadth:=Vround .2[vair,stem]; +pickup if serifs: crisp.nib else: fine.nib fi; +pos1(2/3stem,70); pos2(2/3stem,70); +top y1r=top y2r=h+o; lft x1r=w-rt x2l=hround 1.25u; +filldraw stroke z1e--z2e; % bar +penlabels(1,2); .endchar; + +.cmchar "Cedilla accent"; +.beginchar(oct"030",8u#,0,.875desc_depth#); +.adjust_fit(0,0); +x1=.5w+.5u; +if serifs: pickup crisp.nib; pos1(eps,0); pos2(stem,0); + pos3(vair,90); pos4(stem,0); pos5(vair,-90); + x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u; + bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o; + filldraw stroke z1e--z2e; % stem + filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook +else: pickup fine.nib; pos1(vair,0); top y1=-o-2; + pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u; + filldraw stroke z1e--z2e; fi % diagonal +penlabels(1,2,3,4,5); .endchar; + +.cmchar "Circumflex (hat) accent"; +.beginchar(oct"136",9u#,min(asc_height#,2x_height#),0); +if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#; + .adjust_fit(0,0); + pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w; + x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2]; + pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90); + filldraw stroke z1e--z2e--z3e; % diagonals +else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#; + .adjust_fit(0,0); + pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3; + pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps; + lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent + z0=whatever[z1r,z2r]=whatever[z2l,z3l]; + y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l; + filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals +penlabels(0,1,2,3,4); .endchar; + +iff ligs>0: .cmchar "Dot accent"; +numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#); +.beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0); +define_whole_blacker_pixels(dot_diam); +italcorr h#*slant+.5dot_diam#-2u#; +.adjust_fit(0,0); +pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90); +x1=x2=.5w; top y2r=h+1; +if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi +y1=.5[y2l,y2r]; dot(1,2); % dot +penlabels(1,2); .endchar; + +iff ligs>0: .cmchar "Long Hungarian umlaut accent"; +.beginchar(oct"175",9u#,min(asc_height#,2x_height#),0); +italcorr h#*slant-u#; +.adjust_fit(0,0); +x3-x1=x4-x2=hround 3u; y3=y1; y4=y2; +if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u; + y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair); + numeric theta; theta=angle(z2-z1)+90; + pos1(stem,theta); pos2(hair,theta); + pos3(stem,theta); pos4(hair,theta); + filldraw circ_stroke z1e--z2e; % left diagonal + filldraw circ_stroke z3e--z4e; % right diagonal +else: pickup fine.nib; pos1(stem,0); pos2(vair,0); + pos3(stem,0); pos4(vair,0); + rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair); + top y1=h; bot y2=vround 2/3[h,x_height]; + filldraw stroke z1e--z2e; % left diagonal + filldraw stroke z3e--z4e; fi % right diagonal +penlabels(1,2,3,4); .endchar; + +.cmchar "Tilde (squiggle) accent"; +.beginchar(oct"176",9u#,min(asc_height#,10/7x_height#+.5dot_size#),0); +italcorr h#*slant-u#; +.adjust_fit(0,0); +if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height)); + pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem]; + pos1(vair,theta+90); pos2(vair,theta+90); + pos3(vair,theta+90); pos4(vair,theta+90); + z2-z1=z4-z3=(mid_width-crisp)*dir theta; + lft x1r=w-rt x4l=hround 1.5u; top y4r=h; + bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r); + pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta; + filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l + --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke +else: pickup fine.nib; pos1(vair,180); pos2(vair,90); + pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180); + lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4; + bot y1=bot y4l=vround(.75[x_height,h]-vair); + top y2r=top y5=h; y3=.5[y2,y4]; + filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke +penlabels(1,2,3,4,5); .endchar; + +.cmchar "Opening Gaensefuesschen"; +.beginchar(oct"134",9u#,asc_height#,0); +italcorr asc_height#*slant+dot_size#-4.1u#; +.adjust_fit(0,0); +x2+.5dot_size=hround(w-.6u); y2-.5dot_size=0; +x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1; +comma(1,a,dot_size,.25u,comma_depth); % left dot and tail +comma(2,b,dot_size,.25u,comma_depth); % right dot and tail +penlabels(1,2); .endchar; + + +.cmchar "Closing Gaensefuesschen"; +.beginchar(oct"042",9u#,asc_height#,0); +italcorr asc_height#*slant-.1u#; +.adjust_fit(0,0); +x1-.5dot_size=hround .6u; + y1+.5dot_size=h-comma_depth; +x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1; +ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail +ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail +penlabels(1,2); +.endchar; + +.cmchar "En dash"; +.beginchar(oct"173",9u#,x_height#,0); +italcorr .61803x_height#*slant+.5u#; +.adjust_fit(0,0); +pickup crisp.nib; pos1(vair,90); pos2(vair,90); +top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps; +filldraw stroke z1e--z2e; % bar +penlabels(1,2); .endchar; + +.cmchar "Em dash"; +.beginchar(oct"174",18u#,x_height#,0); +italcorr .61803x_height#*slant+.5u#; +.adjust_fit(letter_fit#,letter_fit#); +pickup crisp.nib; pos1(vair,90); pos2(vair,90); +top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps; +filldraw stroke z1e--z2e; % bar +penlabels(1,2); .endchar; + +.cmchar "Hash mark (number sign)"; +if monospace: compute_spread(.6x_height#,.7x_height#); +else: compute_spread(.45x_height#,.55x_height#); fi +.beginchar("#",15u#,asc_height#,asc_depth#); +italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#; +.adjust_fit(0,0); +pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1; +y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis; +draw z1--z2; % upper bar +draw z3--z4; % lower bar +lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8; +x8=good.x if monospace: .6 else: .5 fi\\w; +top y5=top y7=h+eps; bot y6=bot y8=-d-eps; +y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6]; +y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8]; +draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1) + --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal +draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2) + --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal +labels(1,2,3,4,5,6,7,8,15,27,36,48); .endchar; + +.cmchar "Per cent sign"; +.beginchar("%",15u#, + body_height#,body_height#-asc_height#); +italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi; +.adjust_fit(0,0); pickup fine.nib; +numeric left_curve,right_curve; +left_curve=hround 5/6[fudged.hair,fudged.stem]; +right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi)); +pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360); +top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u); +bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height); +x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3]; +filldraw stroke pulled_super_arc.e(1,2)(superpull) + & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl +filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl +pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360); +bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u); +top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height); +x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7]; +filldraw stroke pulled_super_arc.e(5,6)(superpull) + & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl +filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl +pickup rule.nib; top y9=h; bot y10=-d; +if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps); + draw z9--z10; % diagonal +else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal + pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90); + pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90); + path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r; + filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link +penlabels(1,2,3,4,5,6,7,8,9,10,11,12); .endchar; + +.cmchar "Apostrophe"; +.beginchar("'",5u#,asc_height#,0); +italcorr asc_height#*slant+.5dot_size#-2u#; +.adjust_fit(0,0); +x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h; +if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma +else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut +penlabels(1); .endchar; + +.cmchar "Left parenthesis"; +.beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#); +italcorr body_height#*slant-.5u#; +.adjust_fit(0,0); pickup fine.nib; +pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0); +rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi); +top y1=h; y2=.5[y1,y3]=math_axis; +filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e + ...{3(x3e-x2e),y3-y2}z3e; % arc +penlabels(1,2,3); .endchar; + +.cmchar "Right parenthesis"; +.beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#); +italcorr math_axis#*slant-.5u#; +.adjust_fit(0,0); pickup fine.nib; +pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0); +lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi); +top y1=h; y2=.5[y1,y3]=math_axis; +filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e + ...{3(x3e-x2e),y3-y2}z3e; % arc +penlabels(1,2,3); .endchar; + +.cmchar "Asterisk"; +.beginchar("*",9u#, + if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0); +italcorr h#*slant-.75u#; +.adjust_fit(0,0); +numeric ast_flare; ast_flare=hround .7[thin_join,stem]; +x0=.5w; y0=h-.5x_height; +for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height; + numeric theta; theta=angle(z[d]-z0); + fill z0+.5(0,-thin_join)rotated theta + ---z[d]+.5(-ast_flare,-ast_flare)rotated theta + ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta + ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d| +labels(0,[-150],[-90],[-30],30,90,150); .endchar; + +.cmchar "Plus sign"; +beginarithchar("+"); pickup rule.nib; +x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis; +lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis; +draw z1--z2; % stem +draw z3--z4; % crossbar +labels(1,2,3,4); .endchar; + +.cmchar "Virgule (slash)"; +.beginchar("/",9u#,body_height#,paren_depth#); +italcorr body_height#*slant-.5u#; +.adjust_fit(0,0); pickup rule.nib; +rt x1=hround(w-u)+eps; top y1=h+eps; +lft x2=hround u-eps; bot y2=-d-eps; +draw z1--z2; % diagonal +penlabels(1,2); .endchar; + +.cmchar "Equals sign"; +compute_spread(.45x_height#,.55x_height#); +.beginchar("=",14u#,v_center(spread#+rule_thickness#)); +italcorr h#*slant-.5u#; +.adjust_fit(0,0); pickup rule.nib; +lft x1=hround u-eps; x3=x1; x2=x4=w-x1; +y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis; +draw z1--z2; % upper bar +draw z3--z4; % lower bar +labels(1,2,3,4); .endchar; + +.cmchar "Left bracket"; +numeric wd#; wd#=max(5u#,6u#); +.beginchar("[",wd#,body_height#,paren_depth#); +italcorr body_height#*slant; +.adjust_fit(0,0); +numeric top_thickness,side_thickness; +if hefty: top_thickness=vair; + side_thickness=max(crisp.breadth,stem-2stem_corr); +else: top_thickness=side_thickness=rule_thickness; fi; +pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0); +top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps; +filldraw stroke z1e--z2e; % stem +pos3(top_thickness,90); pos4(top_thickness,90); +pos5(top_thickness,90); pos6(top_thickness,90); +x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2; +filldraw stroke z3e--z4e; % upper bar +filldraw stroke z5e--z6e; % lower bar +penlabels(1,2,3,4,5,6); .endchar; + +.cmchar "Right bracket"; +numeric wd#; wd#=max(5u#,6u#); +.beginchar("]",wd#,body_height#,paren_depth#); +italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi; +.adjust_fit(0,0); +numeric top_thickness,side_thickness; +if hefty: top_thickness=vair; + side_thickness=max(crisp.breadth,stem-2stem_corr); +else: top_thickness=side_thickness=rule_thickness; fi; +pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0); +top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps; +filldraw stroke z1e--z2e; % stem +pos3(top_thickness,90); pos4(top_thickness,90); +pos5(top_thickness,90); pos6(top_thickness,90); +x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2; +filldraw stroke z3e--z4e; % upper bar +filldraw stroke z5e--z6e; % lower bar +penlabels(1,2,3,4,5,6); .endchar; + +.cmchar "Reverse apostrophe"; +.beginchar("`",5u#,asc_height#,0); +italcorr asc_height#*slant+.5dot_size#-2u#; +.adjust_fit(0,0); +x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth; +if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc +else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc +penlabels(1); .endchar; + +cmchar "Exclamation point"; +beginchar("!",5u#,asc_height#,0); +italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#; +adjust_fit(0,0); +pointpoint; +pickup tiny.nib; pos103(dot_size,0); pos104(dot_size,90); +lft x103l=hround(.5w-.5dot_size); bot y104l=0; z103=z104; % dot +numeric bot_width; +bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi; +pickup fine.nib; pos101(dot_size,0); pos102(bot_width,0); +x101=x102=x103; bot y102=.25[top y104r,x_height]+1; +if square_dots: top y101=h; + filldraw stroke z101e--z102e; % stem +else: top z100=(x101,h+o); y101+.5dot_size=h+o; + filldraw z101r...z100...z101l---z102l--z102r---cycle; fi % stem and bulb +penlabels(0,1,2,3,4); endchar; + +cmchar "Question mark"; +beginchar("?",8.5u#,asc_height#,0); +italcorr .8asc_height#*slant; +adjust_fit(0,0); +pointpoint; +pickup tiny.nib; pos107(dot_size,0); pos108(dot_size,90); +lft x107l=hround(.5w-.25u-.5dot_size); bot y108l=0; z107=z108; % dot +numeric bot_width; +bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi; +pickup fine.nib; pos102(vair,90); pos103(curve,0); +pos104(vair,-90); pos105(bot_width,0); pos106(bot_width,0); +x102=x104=x105=x106=x107; rt x103r=hround(w-u); bot y106=1+.25[top y108r,x_height]; +top y102r=h+oo; y103=.75[y106,y102]; y104=.5[y106,y102]; y105=.1[y106,y102]; +{{interim superness:=more_super; +filldraw stroke pulled_super_arc.e(102,103)(superpull) + & subpath (0,1) of super_arc.e(103,104) .. z105e---z106e\\}}; % arc and stem +if serifs: pos101(hair,180); pos100(flare,180); + lft x101r=hround u; y101=y103; bulb(102,101,100); % bulb +else: pos101(Vround 5/7[vair,flare],110); + lft x101r=hround u; top y101r=vround .9[y106,top y102r]; + filldraw stroke term.e(102,101,left,101,104); fi % terminal +penlabels(0,1,2,3,4,5,6,7,8); endchar; + + +cmchar "Ampersand"; +beginchar("&",14u#,asc_height#,0); +italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi; +adjust_fit(0,serif_fit#); +pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o; +if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi +if serifs: pos0(fudged.hair,0); + rt x0r+jut=hround(w-.9u); top y0=x_height; + pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)]; + y1=max(y0-1.5bracket-.2x_height,2/3x_height); + filldraw stroke z0e---z1e...{left}z2e; % short diagonal +else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u); + y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l; + top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r); + filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal +pickup tiny.nib; numeric slope,theta,reduced_hair; +slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1); +reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi)); +lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u); +x3l-x3r=curve-tiny; pos6(reduced_hair,180); +pos5(vair,theta); y5=.5h; +ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r); +pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r]; +pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6; +ellipse_set(7l,6l,5',5l); +filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e + ...z7e{left}...z8e{down}; % bowls +pos10(slab,90); x10=w-3.5u; bot y10l=-o; +pos9(fudged.stem,angle(z8-z10)-90); +z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90); +filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal +if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10; + pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height; + filldraw stroke z10'e{right}...{up}z11e; % terminal + numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut; + else: rt x6l+.5u=lft x0l-inner_jut; fi + dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif +else: pickup fine.nib; pos10'(slab,90); z10'=z10; + pos11(Vround .5[slab,flare],90); + rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o; + filldraw stroke term.e(10',11,right,1,4); fi % terminal +penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar; + diff --git a/fonts/gothic/yfrak/yfrakupp.mf b/fonts/gothic/yfrak/yfrakupp.mf new file mode 100644 index 0000000000..df5a8046e0 --- /dev/null +++ b/fonts/gothic/yfrak/yfrakupp.mf @@ -0,0 +1,1342 @@ +.cmchar "The Fraktur letter A"; +.beginchar("A",9.522u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +% made in Athens, Greece on Friday July 27, 1990 +penpos1(cap_hair,-51); +penpos2(cap_hair,-51); +z2-z1=whatever*dir39; +x2r=w; z1r=(0.722w,-apex_o); +penpos4'(cap_hair,39); z4'l=z1l; +z4'r=z4; +penpos5(cap_stem,0); +z5=(x1r,0.223h); +penpos13(cap_hair,-62); z13r=z5r; +z13l-z14=whatever*dir26; +z13r-z14'=whatever*dir26; +y14=0; y14'=-apex_o; +z6=whatever[z14',z13r]; x6=x5l; +filldraw z14--z13l--z13r{down}.. +z2l{z2-z1}--z2r--z1r--z1l--z4-- +z6--z14'--z14 & cycle; +filldraw z5l--z6--z5r--z5l & cycle; +z1.1=whatever[z6,z4]; y1.1=y4+cap_hair; +filldraw z1l{z2-z1}..z1.1{z6-z4}-- +z2--z1r--z1l & cycle; +% +% +% +penpos7(cap_stem,0); z7=(x5,0.862h); +penpos8(cap_hair,-57); +penpos9(cap_hair,-57); +z8l=z7l; z9-z8=whatever*dir33; +y9=h; z10=(0.937w,h+apex_o); +z11=(0.99w,0.981h); z12=(0.953w,0.955h); +z9'=whatever[z8r,z9r]; +x9'=0.4[x7r,x9r]; +penstroke z5e--z7e; +filldraw z7r{up}..z9'{z9-z8}-- +z9r..z12{right}..z11{up}..z10{left} +...z9l---z8l--z7r & cycle; +% +% +% +penpos15(cap_hair,-90); z15=(0,0.213h); +z15r-z16=whatever*dir137; +x16=0.936x14; z17=whatever[z14,z13l]; +x17=0.392w; +penpos18(cap_hair,-43); +z18-z17=whatever*dir133; +y18r=y15l; penpos19(0.815cap_stem,0); +x19=0.5w; y19=0.521h; +z14''=(x14'-cap_hair,0); +filldraw z15l{right}..z18l..z19l{up} +--z19r{down}..z18r{dir-162}-- +z17--z14''{dir72}...z16---z15r-- +z15l & cycle; +% +% +% +penpos20'(1.037cap_stem,29.5); +z20'=(0.405w,0.846h); +penpos20(0.889cap_stem,50); +z20=(x18r,0.904h); +penpos21(1.25cap_hair,180); +z21r=(0,3/4h); +penpos22(1.148cap_stem,-162); +z22l=(x20,0.678h); +penpos23(cap_hair,180); +z23=(0.284w,0.535h); +penpos24(0.685cap_stem,66.6); +z24l=(x22,0.367h); +z25=(0.027w,0.426h); z26=(0.079w,0.473h); +penstroke z19e{up}..z20'e{dir135}.. +z20e{left}..z21e{down}..z22e{dir-45} +..z23e{down}..z24e{left}; +filldraw z24l{left}..z25{up}..z26{right} +..z24r{right}--z24l & cycle; +.endchar; + +.cmchar "The Fraktur letter B"; +.beginchar("B",12.415u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +z1=(0.045w,0.096h); z2=(0.081w,0.141h); +z3=(0,0.165h); z4=(x1,0.213h); +penpos5(cap_stem,-142); +z5=(0.179w,0.301h); +penpos6(1.259cap_stem,-147); +z6r=(0.538w,-apex_o); +penpos7(cap_hair,-65); +z7=(0.775w,0.103h); +penpos8(0.907cap_stem,30); +z8r=(w,0.4h); +penpos9(1.741cap_stem,27); +z9l=(x6r,0.6h); +filldraw z1{right}..z2{up}..z4 & +z4..z5r{right}..z6r{right} & +z6r---z7r...z8r{up}..z9r{left}-- +z9l{right}..z8l{down}..z7l..z6l{left} +..z5l{left}..z3{down}..z1{right} & +cycle; +% +% +% +penpos10(1.222cap_stem,-153); +z10r=0.883[z9l,z9r]; +penpos11(2/3cap_hair,-63); +z11r=whatever[z9,z10]; x11=x10l+cap_hair; +penpos13(1.056cap_stem,-125); +z13l=(0.691w,h); +z12=(z13l{right}..z10l{dir-63}) +intersectionpoint ((x10l-1.5hair,0)-- +(x10l-1.5hair,h)); +penpos14(cap_hair,0); +penpos16(0.889cap_stem,17); z16r=z9l; +z14=(x16,0.686h); +filldraw z14l{dir78}..z13l{right}..z12.. +z11l{z10-z9}--z11r--z10r{dir117}.. +z13r{left}..{dir258}z14r--z14l & cycle; +% +% +% +penpos15'(cap_hair,-90); +z15'l=z5l; +penpos15(0.889cap_stem,0); +z14-z15=whatever*dir85; y15=y5l+2cap_hair; +penpos17(cap_stem,76); +z17r=(0.256w,h+apex_o); +penpos18(cap_hair,180); +z18=(0.055w,0.745h); +penpos19(1.185cap_stem,-145); +z19=(0.148w,0.644h); +penpos20(cap_hair,197); +z20=(0.246w,0.548h); +penpos21(cap_hair,118); +z21=whatever[(0,0),z17]; x21=0.108w; +penstroke z15'e{right} +..z15e..z16e{up}..z17e{left} +..z18e{down}..z19e{dir-45}..z20e{z20l-z19l}.. +z21e{dir202}; +.endchar; + +.cmchar "The Fraktur letter C"; +.beginchar("C",10.406u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +z1=(0.157w,0.08h); z2=(0.211w,0.138h); +z3=(0.084w,0.141h); +z5=(0.113w,0.209h); z4=0.4[z3,z5]; +penpos6(cap_hair,180); +z6r=(0,0.117h); penpos7(cap_hair,-118); +z7r=(0.189w,-apex_o); +penpos8(cap_hair,-48); +z8=(0.469w,0.136h); +penpos9(1.074cap_stem,36); +z9=(0.623w,0.367h); z10=(0.5w,0.721h); +penpos10(0.889cap_stem,30); +z11'=(0.736w,0.931h); +z13=(0.803w,0.729h); +z14=(w,0.777h); penpos11(cap_hair, +angle(z13-z11')); +z11l=z11'; z12-z11l=whatever*dir7; +x12=0.912w; z16'-z12=whatever*(z13-z11); +z16'=whatever[z13,z14]; +penpos15(cap_hair,angle(z13-z11)); +z15r=z14; z15l-z16=whatever*(z14-z13); +z16=whatever[z12,z16']; +penstroke z6e{down}..z7e{right}.. +z8e..z9e{up}..z10e{up}..z11e{z12-z11l}; +filldraw z11l--z12--z16--z15l--z15r +--z13--z11l & cycle; +filldraw z6l{up}..z4{right} & +z4..z3{down}..z1{right}..z2{up}.. +z5{left}..z6r{down}--z6l & cycle; +% +% +% +penpos17(1.037cap_stem,90); +z17l=(0.738w,-apex_o); +penpos18(1.093cap_stem,38); +z18=(0.17w,0.58h); +penpos19(1.5cap_hair,-57); +z19l=(0.45w,h+apex_o); +penpos20(1.2cap_hair,-197); +z20=(0.692w,0.824h); +penpos21(cap_hair,-219); +z21=(3/4[x9l,x9r],y10); +penstroke z17e{left}..z18e{up}.. +z19e..z20e{down}..z21e; +penpos22(cap_hair,-44); +z22r-z17l=whatever*dir46; +x22r=w; +filldraw z17r{right}..z22l{z22r-z17l} +--z22r--z17l--z17r & cycle; +.endchar; + +.cmchar "The Fraktur letter D"; +.beginchar("D",12.168u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +z1=(0.073w,-apex_o); +penpos2(0.6cap_stem,0); +z2=(x1,0.04h); penpos4(1.204cap_stem,-148); +z4=(0.229w,0.190h); +penpos5(1.185cap_stem,-144); +z5r=(0.545w,-apex_o); +penpos6(cap_hair,-65); x6=0.787w; +z6r-z5r=whatever*dir25; +penpos7(0.815cap_stem,38); +z7r=(w,0.418h); penpos8(0.926cap_stem,67.5); +z8r=(0.41w,h+apex_o); +penpos9(0.537cap_stem,-173); +z9r=(0,0.685h); penpos10(2/3cap_hair,-90); +z10=(0.242w,0.53h); +penstroke z2e{up}..z4e{right}..z5e{right}; +penstroke z6e{dir25}..z7e{up}..z8e{left} +..z9e{down}..z10e{right}; +filldraw z2l{down}..z1..z2r{up}--z2l +& cycle; +filldraw z5l{right}..z6l{dir25}-- +z6r--z5r--z5l & cycle; +% +% +% +z11=(0.171w,0.389h); z12=(0.197w,0.427h); +penpos13(cap_hair,-90); +z13=(x4l,0.3h); penpos14(cap_stem,0); +z14=(0.462w,0.5[y11,y12]); +penpos15(1.074cap_stem,34); +z15=(0.353w,0.655h); z16=(0.488w,0.78h); +penpos16(cap_hair,-90); +penstroke z13e{right}..z14e{up}.. +z15e{up}..z16e{right}; +filldraw z11{up}..z12{right}..z13l{right} +--z13r{left}..z11{up} & cycle; +.endchar; + +.cmchar "The Fraktur letter E"; +.beginchar("E",8.508u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(1.074cap_stem,62.5); +z1l=(0.623w,-apex_o); +penpos2(0.796cap_stem,16); +z2l=(0,0.485h); penpos3(4/3cap_hair,-90); +z3l=(0.485w,h+apex_o); +penpos6(cap_stem,-151.5); +penpos5(cap_stem,-151.5); +x6l=w; y5l=h; z6-z5=whatever*dir-37; +x5l=0.808w; +penstroke z5e--z6e; +penpos4(cap_hair,-151.5); +z4r=z5r; penstroke z3e{right}.. +z4e{z6-z5}; +penpos16(cap_hair,-90); +z16=(w,0.149h); +filldraw z1l--z16r--z16l..z1r{left} +--z1l & cycle; +penstroke z1e{left}..z2e{up}..z3e{right}; +% +% +% +penpos7(cap_hair,-164); z7=whatever[z2l,z2r]; +x7=0.31w; +penpos8(0.444cap_stem,-51.5); +z8=(0.492w,0.393h); +penpos9(0.796cap_stem,6.5); +z9=(x1l,y2-eps); +penpos10(0.963cap_stem,34); +z10=(0.441w,0.767h); +penpos11(cap_hair,-37); z11l=z4r; +penstroke z7e{dir-74}..z8e{right}.. +z9e{up}..z10e{up}..z11e{z5l-z5r}; +% +% +% +penpos12(cap_hair,-55.5); +z12l=(z9{up}..z10{up}) +intersectionpoint (z9l--(x9l,h)); +z13-z12l=whatever*dir31.5; +x13=0.854w; penpos14(whatever,0); +z15=(x13,0.53h); z14r=(w,0.639h); +z14l-z12r=whatever*(z13-z12l); +filldraw z12l--z13--z14r--z15-- +z14l--z12r--z12l & cycle; +.endchar; + +.cmchar "The Fraktur letter F"; +.beginchar("F",8.213u#,cap_height#,3.010u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(2/3cap_hair,68); +z1=(0.34w,0.535h); penpos2(cap_hair,0); +z2l=(0.036w,0.739h); +penpos3(4/3cap_stem,-150); +z3l=(0.614w,h+apex_o); +penpos4(cap_stem,-128); z4l-z3l=whatever*dir-37; +x4l=w; penpos5(cap_hair,-38); +x5l=w; z5r=whatever[z4r,z4l]; +penstroke z1e{dir158}..z2e{up}.. +z3e{right}; +z5'=whatever[z3l,z4l]; z5'-z5l=whatever*(z4-z5r); +filldraw z3l--z5'--z5l--z5r--z4r +{z3l-z4l}...z3r{left}--z3l & cycle; +% +% +% +penpos6(cap_hair,-23); penpos7(cap_hair,-90); +penpos8(0.778cap_stem,-219); +penpos9(0.741cap_stem,-203); +penpos10(cap_hair,-90); +penpos11(cap_stem,17); +penpos12(1.111cap_stem,30); +penpos13(eps,-63); +z6l=(0,0.351h); z7=(x2r+cap_hair,0.44h); +x8l=x1; y8=0.339h; z9r=(x2l,0); +z10r=(0.462w,-d); z11l=(0.709w,0); +z12=(0.542w,0.652h); +z13=(0.789w,0.821h); +penstroke z6e{dir67}..z7e{right}..z8e{down} +..z9e{down}..z10e{right}..z11e{up}.. +z12e{up}..z13e{dir27}; +% +% +% +penpos14(cap_hair,-47); +penpos15(cap_hair,-47); +z14=(z11{up}..z12{up}) intersectionpoint +((0,0.476h)--(w,0.476h)); +z15-z14=whatever*dir43; +x15l=x4r; penpos16(0.833cap_stem,-137); +z16l=z15l; penpos17(0.833cap_stem,-137); +x17l=w; z17-z16=whatever*dir-47; +penstroke z14e--z15e; +penstroke z16e--z17e; +.endchar; + +.cmchar "The Fraktur letter G"; +.beginchar("G",10.638u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,0); +penpos2(0.5cap_stem,90); +penpos3(cap_stem,180); +penpos4(cap_hair,-90); +penpos5(0.926cap_stem,14); +penpos7(cap_hair,-51); +penpos9(cap_hair,-51); +z1=(0.595w,0.739h); z2r=(0.385w,h+apex_o); +z3r=(0,0.517h); z4r=(0.537w,-apex_o); +z5r=(w,0.392h); z6=(0.686w,0.628h); +z7=(x4,0.566h); z9-z7=whatever*dir39; +x9=0.963w; z8=whatever[z7r,z9r]; +x8=0.817w; +penstroke z1e{up}..z2e{left}..z3e{down} +..z4e{right}..z5e{up}; +filldraw z7r{z9-z7}..z6{right}.. +z5l{down}--z5r{up}..z8--z9r--z9l-- +z7l--z7r & cycle; +% +% +% +penpos11(1.148cap_stem,39); +penpos12(1.148cap_stem,39); +z11=whatever[z7l,z9l]; x11=0.856w; +penpos10(cap_hair,-51); +z10=whatever[z9l,z9r]; y10l=h+apex_o; +z12-z11=whatever*dir129; +z10l-z12=whatever*dir39; +penpos13(cap_hair,-51); z13l=z12l; +penstroke z11e--z12e; +penstroke z13e--z10e; +% +% +% +penpos14(cap_hair,180); penpos15(0.5cap_stem,-45); +penpos16(0.796cap_stem,21.5); +penpos17(0.926cap_stem,43); +penpos18(cap_hair,-37); +penpos19(cap_hair,-37); +z14=(0.3w,0.58h); z15=(0.441w,0.385h); +z16=(0.5[x7,x1],0.507h); +z17=(0.385w,0.776h); z18=(0.442w,0.873h); +z19-z18=whatever*dir53; y19=1.032h; +penstroke z14e{down}..z15e{right}.. +z16e{up}..z17e{up}...z18e---z19e; +.endchar; + +.cmchar "The Fraktur letter H"; +.beginchar("H",10.275u#,cap_height#,1.996u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,111); +penpos2(cap_hair,90); +penpos3(cap_hair,0); +penpos8(cap_hair,-45); +penpos7(cap_hair,-45); +penpos9(0.889cap_stem,0); +penpos10(1.222cap_stem,48.5); +penpos11(cap_hair,132); +z1=(0.57w,-0.679d); +z2l=(0.452w,-d); z3=(0.354w,-0.23d); +z4=(0.503w,0.082h); z5=(0.621w,0.217h); +z6=(0.71w,0.12h); z8l=(0.592w,-apex_o); +z7r-z8r=whatever*dir45; +x7r=0.809w; z9r=(w,0.429h); +z10=(0.624w,3/4h); %z11=whatever[z1l,z1r]; +z11=(0.28w,0.543h); +penstroke z1e..z2e{left}..z3e{up}; +filldraw z3r{up}..z4{right}.. +z8l{z8r-z7r}--z8r---z7r...z9r{up}-- +z9l{down}..z7l{z8r-z7r}..z6{left}.. +z5{dir123} & z5{dir211}..z3l{down}-- +z3r & cycle; +penstroke z9e{up}..z10e{left}.. +z11e{dir222}; +% +% +% +penpos12(1.259cap_stem,-131); +penpos13(1.2cap_hair,-41); +penpos14(1.074cap_stem,25); +penpos15(cap_hair,-41); +penpos18(cap_hair,-36); +z12r=(0,0.141h); y13=0.2h; x13l=x11; +z14=z11; z15=(x11,0.845h); +z16=(0.478w,h); z17=(0.516w,0.837h); +z18r-z17=whatever*dir54; +y18r=h+apex_o; +penstroke z12e{dir-41}..z13e{dir49} +..z14e..z15e{dir49}; +filldraw z15r{dir49}..z17--z18r-- +z18l{z17-z18r}..z16{left}..z15l +{dir229}--z15r & cycle; +.endchar; + +.cmchar "The Fraktur letter I"; +.beginchar("I",8.541u#,cap_height#,2.497u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,28); +penpos2(cap_hair,-17.5); +penpos3(0.889cap_stem,-116); +penpos4(cap_stem,-126); +penpos5(cap_hair,-44); +penpos6(1.056cap_stem,53); +penpos7(1.056cap_stem,21); +penpos8(cap_hair,-90); +penpos9(cap_hair,180); +z1=(0.115w,-0.886d); z2r=(x1,-0.519d); +z3=(0.234w,-0.1d); z4r=(0.517w,-d); +z5=(0.795w,-0.329d); z6r=(0.966w,0.196h); +z7=(0.636w,0.56h); z8=(0.808w,0.683h); +z9l=(x6r,0.554h); +penstroke z1e..z2e{up}..z3e{right} +..z4e{right}..z5e..z6e{up}..z7e{up} +..z8e{right}..z9e{down}; +% +% +% +penpos10(1.037cap_stem,50); +penpos11(cap_hair,-45); +penpos12(0.889cap_stem,43); +penpos13(1.185cap_stem,-146); +penpos14(0.741cap_stem,-119); +penpos15(cap_hair,0); +penpos16(cap_hair,28); +z10l=z11r=(0.1w,0.515h); +z12l=(0,0.69h); z13l=(0.506w,h+apex_o); +z14r=z8l+(0,0.035h); +z15r=(w,0.875h); z16=(x15l,0.924h); +filldraw z11l{z12r-z11l}..z12l{up}-- +z12r{down}..z10r--z10l--z11l & cycle; +penstroke z12e{up}..z13e{right}.. +z14e{right}..z15e{up}..z16e{dir118}; +.endchar; + +.cmchar "The Fraktur letter J"; +.beginchar("J",8.541u#,cap_height#,2.497u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,28); +penpos2(cap_hair,-17.5); +penpos3(0.889cap_stem,-116); +penpos4(cap_stem,-126); +penpos5(cap_hair,-44); +penpos6(1.056cap_stem,53); +penpos7(1.056cap_stem,21); +penpos8(cap_hair,-90); +penpos9(cap_hair,180); +z1=(0.115w,-0.886d); z2r=(x1,-0.519d); +z3=(0.234w,-0.1d); z4r=(0.517w,-d); +z5=(0.795w,-0.329d); z6r=(0.966w,0.196h); +z7=(0.636w,0.56h); z8=(0.808w,0.683h); +z9l=(x6r,0.554h); +penstroke z1e..z2e{up}..z3e{right} +..z4e{right}..z5e..z6e{up}..z7e{up} +..z8e{right}..z9e{down}; +% +% +% +penpos10(1.037cap_stem,50); +penpos11(cap_hair,-45); +penpos12(0.889cap_stem,43); +penpos13(1.185cap_stem,-146); +penpos14(0.741cap_stem,-119); +penpos15(cap_hair,0); +penpos16(cap_hair,28); +z10l=z11r=(0.1w,0.515h); +z12l=(0,0.69h); z13l=(0.506w,h+apex_o); +z14r=z8l+(0,0.035h); +z15r=(w,0.875h); z16=(x15l,0.924h); +filldraw z11l{z12r-z11l}..z12l{up}-- +z12r{down}..z10r--z10l--z11l & cycle; +penstroke z12e{up}..z13e{right}.. +z14e{right}..z15e{up}..z16e{dir118}; +.endchar; + +.cmchar "The Fraktur letter K"; +.beginchar("K",9.478u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +cap_stem:=0.95cap_stem; +%cap_hair:=0.95cap_hair; +z1=(0,0.182h); z2=(0.177w,0.207h); +z3=(0.033w,-apex_o); +penpos4(cap_hair,-90); +z4=(0.282w,0.045h); penpos5(cap_hair,0); +z5=(0.4w,0.136h); z7=(0.434w,0.227h); +z7'=(0.328w,0.556h); +z8=(0.197w,0.732h); z6=(0.052w,0.566h); +penpos9(1.25cap_hair,-90); +z9l=(0.561w,h+apex_o); +penpos9'(cap_hair,180); +z9'l=(w-apex_o,0.707h); +penpos10(cap_hair,140); z10=(0.813w,0.492h); +filldraw z1--z3{dir30}..z4r{right} +..z5r..z7{up}..z7'..z8{up}..z9r{right} +--z9l{left}..z6{down} & z6{dir-52} +..z5l..z4l{left}..z2{up}--z1 & cycle; +penstroke z9e{right}..z9'e{down}.. +z10e; +% +% +% +penpos12(cap_hair,-78); +penpos11(cap_hair,-78); +z12l-z7'=whatever*dir12; +z7'-z11l=whatever*dir12; +x12=x10; x11=0.243w; +penstroke z11e--z12e; +penpos13(cap_hair,12); z13r=z7'; +penpos14(0.463cap_stem,-116); +z14=(0.492w,0.8h); +penpos16(1.074cap_stem,-168); +z16=whatever[z11l,z12l]; x16l=x12-cap_hair; +z12-z15=whatever*dir-78; +penpos15(cap_hair,-78); +y15=0.823h; z17-z15r=whatever*(z12-z11); +z16l-z17=whatever*(z12-z15); +filldraw z13r{dir102}..z14r{right} +..z16r{dir-78}--z16l--z17--z15r-- +z15l{z13-z12}..z14l{left}..z13l{dir-78} +--z13r & cycle; +% +% +% +penpos18(1.053cap_stem,-168); +z18=0.5[z12r,z11r]; +penpos18'(1.053cap_stem,-168); +z19=(0.767w,-apex_o); penpos21(cap_hair,-90); +z21r-z19=whatever*dir45; x21=w; +z20=(0.869w,0.149h); +z18'-z18=whatever*dir-70; x18'l=x15; +filldraw z18r---z18'r...z19--z21r-- +z21l{z19-z21r}..z20{left}...z18'l +---z18l--z18r & cycle; +.endchar; + +.cmchar "The Fraktur letter L"; +.beginchar("L",6.131u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +cap_stem:=1.022cap_stem; +penpos1(cap_hair,0); penpos2(cap_hair,-60); +penpos3(1.056cap_stem,30); +penpos4(cap_stem,23); penpos5(0.481cap_stem,-67); +penpos6(cap_hair,-149); +penpos7(whatever,-140); +penpos8(cap_hair,-147); +penpos9(cap_hair,-90); penpos10(cap_hair,0); +z1l=(0,0.082h); z2=(0.15w,0.207h); +z3=(0.453w,0.37h); z4l=(0,0.731h); +z5l=(0.539w,h+apex_o); +z6=(0.829w,0.886h); z7l=(0.933w,0.739h); +x7r=x3r; +z8=(0.658w,0.53h); z9=(x6,0.476h); +z10=(x7l,0.543h); +penstroke z1e{up}..z2e..z3e{up}.. +z4e{up}..z5e{right}..z6e..z7e{down} +..z8e..z9e{right}..z10e{up}; +% +% +% +z11=(0.109w,0.111h); z13=(0.539w,-apex_o); +z12=(0.731w,y11); penpos14(cap_hair,-21); +z14r=(w,0.223h); +z15'-z11=whatever*(z12-z13); x15'=w; +z15=(z1{up}..z2..z3{up}) intersectionpoint +((0.238w,0)--(0.238w,h)); +filldraw z1r{up}..z11{right}..z13{dir-25} +& z13{dir25}..z14r{dir69}--z14l{dir249} +..z12{left}..z15{left}& z15..z2.. +z1{down}--z1r & cycle; +.endchar; + +.cmchar "The Fraktur letter M"; +.beginchar("M",13.432u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,-40); penpos2(cap_hair,-40); +z1=(0.067w,0.035h); z2-z1=whatever*dir50; +x2=0.176w; z3=(1/5w,-apex_o); +penpos4(cap_hair,-41.5); +z4r-z3=whatever*dir48.5; +z4=whatever[z2l,z2r]; +penpos5(1.3cap_stem,48); +% ant'i 1.111 pou j'aprepe n'anai +z5=(0.4w,0.394h); penpos6(0.778cap_stem,44); +z6=(0.148w,0.915h); penpos7(cap_hair,180); +z7r=(0,0.782h); penpos8(1.111cap_stem,-147); +z8l=(x6,0.649h); penpos9(2.2cap_hair,-171.5); +penpos10(cap_hair,90); z9r=(x2l,0.46h); +z10=(0.122w,0.378h); penpos11(cap_hair,58); +z11=(0.047w,0.418h); +z1'=whatever[z1r,z2r]; x1'=x1r+0.014117w; +filldraw z1l--z2l--z4r--z3--z1'--z1r +--z1l & cycle; +penstroke z4e{z4r-z3}..z5e{up}.. +z6e{left}..z7e{down}..z8e..z9e{down} +..z10e{left}..z11e; +% +% +% +penpos12(cap_hair,-40); penpos13(cap_hair,-40); +z12=(0.329w,0.024h); z13-z12=whatever*dir50; +x13=x5r; z13'=(0.466w,-apex_o); +penpos14(cap_hair,-40); z14r-z13'=whatever*dir48; +z14=whatever[z13l,z13r]; +penpos15(1.5cap_stem,-50); +penpos16(0.741cap_stem,48); +penpos17(cap_hair,180); +z15=(0.647w,0.548h); +x16=0.424w; y16r=h+apex_o; +z17=(0.306w,0.843h); +penstroke z12e--z13e; +z12'=whatever[z12r,z13r]; x12'=x12r+0.014117w; +filldraw z12'--z13'--z14r--z13l-- +z12' & cycle; +penstroke z14e{z14r-z13'}..z15e{up} +..z16e{left}..z17e{dir251}; +% +% +% +penpos18(cap_hair,-46); penpos19(cap_hair,-46); +penpos20(1.13cap_stem,37); +penpos21(0.852cap_stem,-15); +penpos22(cap_hair,-72); +z18r=(0.814w,-apex_o); +z19-z18=whatever*dir44; +x19r=w; z20=(x18-eps,0.34h); +z21=(x18r+eps,0.556h); +z22=(0.906w,0.609h); +z20'=0.7[z18l,z19l]; +penstroke z18e--z19e; +filldraw z18l{up}..z20l{up}..z21l-- +z22l--z22r{z21l-z22l}..z21r.. +z20r{down}..z20'{dir-35}--z18l +& cycle; +% +% +% +penpos23(1.148cap_stem,53); +penpos24(0.944cap_stem,12); +penpos27(2/3cap_hair,90); +z23r=(w,0.670h); z24=(0.871w,0.84h); +z25=(0.715w,0.947h); z26=(x25,0.87h); +z27=(0.621w,0.824h); +filldraw z23r{dir124}..z24r%{dir124} +...z25---z27r--z27l{z25-z27r}.. +z26{right}..z24l%{dir-56} +..z23l{dir-56} +--z23r & cycle; +.endchar; + +.cmchar "The Fraktur letter N"; +.beginchar("N",11.662u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,-45); penpos3(cap_hair,-45); +penpos4(cap_hair,-90); +penpos5(0.944cap_stem,0); +penpos6(0.811cap_stem,64); +penpos7(cap_hair,180); +penpos8(1.094cap_stem,-132); +penpos9(cap_hair,180); penpos10(cap_hair,90); +penpos11(cap_hair,21); +z1=(0.123w,0); z3-z1=whatever*dir52; +x3=0.239w; 0.5[z1,z3]-z2=whatever*dir-45; +x2=x1l-eps; z4r=(0.325w,-apex_o); +z5=(0.55w,0.371h); z6=(x3,0.932h); +z7r=(0,0.751h); z8=(0.197w,0.553h); +z9=(x4,0.428h); z10=(x3,0.317h); +z11=(0.125w,0.423h); +penpos2(1/3cap_hair,52); +filldraw z1l{dir71}..z2l--z2r +..{dir31}z3l--z3r{z1-z3}..z4l{right} +--z4r{left}..z1r{z1-z3}--z1l{z3-z1} +& cycle; +penstroke z4e{right}..z5e{up}.. +z6e{left}..z7e{down}..z8e{dir-22}.. +z9e{down}..z10e{left}..z11e; +% +% +% +penpos12(2/3cap_hair,0); penpos13(0.778cap_stem,-126); +penpos14(0.944cap_stem,-162); +penpos15(0.944cap_stem,-90); +penpos16(cap_hair,0); +penpos17(cap_hair,-32); +penpos19(0.981cap_stem,0); +penpos20(0.793cap_stem,0); +penpos21(cap_hair,-90); +z12=(0.516w,0.745h); y13l=h+apex_o; +z14=(0.886w,0.751h); +z15=(w,0.669h); +z19=(0.769w,y5); x13=x19l; +z16=(x19r,-apex_o); +z17r-z16r=whatever*dir58; +x17r=0.977w; z20=(0.798w,0.537h); +z21r=z15r; +filldraw z16r--z17r--z17l{z16r-z17r} +..z19r{up}..z20r..z21r{dir18}-- +z21l{dir198}..z20l..z19l{down}.. +z16l--z16r & cycle; +penstroke z12e{up}..z13e{right}.. +z14e{dir-71}..z15e{right}; +.endchar; + +.cmchar "The Fraktur letter O"; +.beginchar("O",12.01u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,41); penpos2(cap_hair,0); +penpos3(cap_hair,-59); +penpos5(1.037cap_stem,24); +penpos6(1.074cap_stem,38); +penpos7(cap_hair,-47); penpos8(2/3cap_hair,0); +penpos4(1.315cap_stem,-146); +penpos10(1.111cap_stem,70); +penpos11(0.704cap_stem,22); +penpos14(cap_hair,-46); +z1r=(0.084w,0); z2l=(0,0.09h); +z3=(0.234w,0.298h); z4=(0.184w,0.197h); +z5=(0.332w,0.412h); z6=(0.179w,0.71h); +z7=(0.263w,0.843h); z8=(0.389w,h+apex_o); +z9=(x8,0.787h); z10=(0.595w,0.864h); +z11r=(w,0.484h); z12=(0.637w,0.144h); +z13=(2x10-x12,-apex_o); +z14=(0.858w,0.227h); +penstroke z1e..z2e{up}..z3e..z5e{up} +..z6e{up}..z7e{dir43}; +penstroke z1e..z2e{up}..z4e{dir-19}; +filldraw z4r{dir-19}..{z13-(x4r,0.5y4r)}z13 & +z13{dir27}..z14r..z11r{up}..z10r{left}.. +z8r{dir100}--z8l{down}..z7l{dir223}-- +z7r..z9..z10l{right}..z11l{down}.. +z14l..z12{left}..z4l{dir161}--z4r & +cycle; +.endchar; + +.cmchar "The Fraktur letter P"; +.beginchar("P",9.482u#,cap_height#,2.651u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,0); penpos2(cap_stem,0); +penpos3(cap_stem,0); +penpos4(0.926cap_stem,58); +penpos5(cap_hair,180); +penpos8(1.5cap_hair,-145); +penpos9(cap_hair,114); +z1=(0.427w,-d); z2=(0.453w,0.09h); +z3=(x2,0.7h); z4r=(0.227w,h+apex_o); +z5r=(0,0.778h); z6=(0.173w,0.67h); +z7=(0.083w,0.564h); z8=(0.275w,0.524h); +z9r=(x7,0.4h); +penstroke z1e...z2e---z3e..z4e{left} +..z5e{down}; +penstroke z8e{down}..z9e; +filldraw z5r{down}..z7 & z7{right}.. +z8r{down}--z8l{up}..z6..z5l{up}-- +z5r & cycle; +% +% +% +penpos18(cap_hair,0); penpos19(cap_hair,-80); +penpos16(1.037cap_stem,23); +penpos15(cap_stem,35); +penpos14(cap_hair,-56); +z18r=z3r; z19=(0.74w,0.931h); +z16=(0.793w,0.782h); +z15r=(w,0.42h); z14=(0.687w,0.059h); +penstroke z14e{dir33}..z15e{up}.. +z16e{up}; +penstroke z18e{up}..z19e{dir22.5}; +z17'=(0.917w,h-apex_o); +filldraw z16l{up}..z19l & z19l{dir22.5} +..z17'{right} & z17'..z16r{down}-- +z16l & cycle; +% +% +% +penpos10(cap_stem,64); penpos11(cap_stem,71); +penpos12(cap_hair,-36); +penpos13(cap_hair,-23); +z10=(0.713w,0.027h); z11=(0.387w,0.16h); +z12=(x6,0.059h); z13l=(x8,0.266h); +filldraw z10r..z11r...z13r---z13l +& z13l..z12l{dir234}--z12r{dir54}... +z11l---z10l--z10r & cycle; +.endchar; + +.cmchar "The Fraktur letter Q"; +.beginchar("Q",13.559u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +w':=12.01u; +penpos1(cap_hair,41); penpos2(cap_hair,0); +penpos3(cap_hair,-59); +penpos5(1.037cap_stem,24); +penpos6(1.074cap_stem,38); +penpos7(cap_hair,-47); penpos8(2/3cap_hair,0); +penpos4(1.315cap_stem,-146); +penpos10(1.111cap_stem,70); +penpos11(0.704cap_stem,22); +penpos14(cap_hair,-46); +penpos16(1.074cap_stem,-127); +penpos17(cap_hair,-45); +z1r=(0.084w',0); z2l=(0,0.09h); +z3=(0.234w',0.298h); z4=(0.184w',0.197h); +z5=(0.332w',0.412h); z6=(0.179w',0.71h); +z7=(0.263w',0.843h); z8=(0.389w',h+apex_o); +z9=(x8,0.787h); z10=(0.595w',0.864h); +z11r=(0.925w,0.503h); z12=(0.637w',0.144h); +z13=(2x10-x12,-apex_o); +z14=(0.884w',0.227h); +penpos15(1.3cap_stem,angle(z13-z14)); +z15l=z14; z16r=(0.825w,-apex_o); +z17r=(w,0.144h); +penstroke z1e..z2e{up}..z3e..z5e{up} +..z6e{up}..z7e{dir43}; +penstroke z1e..z2e{up}..z4e{dir-19}; +filldraw z4r{dir-19}..{z13-(x4r,0.5y4r)}z13 & +z13{dir27}..z14r..z11r{up}..z10r{left}.. +z8r{dir100}--z8l{down}..z7l{dir223}-- +z7r..z9..z10l{right}..z11l{down}.. +z14l..z12{left}..z4l{dir161}--z4r & +cycle; +penstroke z15e..z16e{dir-10} & z16e..z17e +{dir45}; +.endchar; + +.cmchar "The Fraktur letter R"; +.beginchar("R",10.493u#,cap_height#,0); +.adjust_fit(usual_left#,usual_right#+0.3u#); +penpos1(cap_hair,-49); penpos2(cap_hair,-49); +penpos4(cap_hair,-90); +z1l=(0,0.056h); z2=(0.253w,0.234h); +z3=(apex_o,0.202h); z7=(0.036w,0.128h); +z4r=(0.3w,-apex_o); +z5=(0.181w,0.128h); z6=(0.084w,0.051h); +filldraw z1l..z7..z3 & z3{dir-10}.. +z2l--z2r..z5..z4l{right}--z4r{left} +..z6..z1r--z1l & cycle; +penpos8(0.963cap_stem,19); +penpos9(cap_stem,60); penpos10(cap_hair,180); +penpos13(0.574cap_stem,-153); +penpos14(cap_hair,90); penpos15(cap_hair,0); +z8=(0.53w,0.375h); z9r=(0.247w,h+apex_o); +z10r=(0,0.771h); z11=(0,0.614h); +z12=(0.169w,0.641h); z13=(0.247w,0.481h); +z14=(0.117w,0.348h); z15l=(0,0.468h); +penstroke z4e{right}..z8e{up}..z9e +{left}..z10e{down}; +penstroke z13e{down}..z14e{left}.. +z15e{up}; +filldraw z10r---z11..z13r{down}-- +z13l{up}..z12..z10l{up}--z10r & +cycle; +% +% +% +penpos16(cap_hair,-90); penpos17(cap_hair,-90); +penpos21(cap_hair,0); z16=(x8,0.585h); +z17-z16=whatever*dir30; +x17=0.934w; z21=(0.488w,3/4h); +z20=(0.578w,0.936h); z22=(0.651w,0.91h); +z19=(0.768w,h+apex_o); +z23=whatever[z16l,z17l]; x23=x19; +z18=(0.895w,0.867h); +penstroke z16e--z17e; +filldraw z21r{up}..z22{right}.. +z23{dir-76}--z17l{left}..z18.. +z19 & z19{z22-z19}..z20..z21l{down} +--z21r & cycle; +% +% +% +penpos25(0.926cap_stem,-153); +penpos26(1.074cap_stem,-174); +penpos27(cap_hair,-32); +z24=whatever[z16r,z17r]; x24=x23+0.18cap_stem; +z25=(3/4w,0.612h); z26=(0.825w,0.205h); +penpos26'(0.926cap_stem,-153); z26'r=z26r; +y27r=0.189h; x27l=w; z28=(0.849w,-apex_o); +z27'-z27l=whatever*(z28-z27r); +x27'=w-cap_hair; +filldraw z16r{z17-z16}...z25r +---z26'r...z28 & z28--z27r--z27l & +z27l---z27'...z26'l--- +z25l..z24--z16r & cycle; +.endchar; + +.cmchar "The Fraktur letter S"; +.beginchar("S",12.813u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos0(0.032067w,-27); penpos0'(0.032067w,24); +z0'r=z0l=(0.715w,0.745h); +penpos1(1.5cap_hair,-156); +penpos2(cap_hair,114); +penpos7(cap_hair,114); +penpos8(1.2cap_stem,-142); +penpos9(cap_stem,-107); +penpos10(0.926cap_stem,-123); +penpos11(cap_hair,0); +penpos16(0.722cap_stem,40); +penpos17(cap_hair,-58); +penpos18(cap_hair,-118); +z1l=(w,0.952h); x2=0.93w; +z3=(0.8w,0.859h); z5-z3=whatever*dir153; +y5=h+apex_o; z4=z0r; z2l-z4=whatever*dir24; +z6=whatever[z0r,z0l]; x6=0.462w; +z7=(0.291w,0.931h); z8r=(0,0.505h); +z9r=(0.562w,-apex_o); +z10r=(0.76w,0.077h); z11=(0.933w,0.364h); +z13=z0'l; z15-z13=whatever*dir204; +x15=x14=0.407w; z12=(x9l,0.512h); +z14-z12=whatever*(z15-z13); +z16=(0.258w,0.649h); +z17=(0.324w,0.782h); z18=(0.508w,0.739h); +penstroke z7e{dir204}..z8e{down}.. +z9e{right}..z11e{up}; +penstroke z16e{up}..z17e{dir24}.. +z18e{dir-27}; +filldraw z1r{down}..z2r{z4-z2l}... +z3---z5 & z5..z7r{dir204}--z7l +{dir24}...z6---z4---z2l...z1l{up} +& z1l--z1r & cycle; +filldraw z11r{up}..z13{z6-z4} & +z13---z15...z16r{up}--z16l{down} +..z14{dir-27} & z14---z12... +z11l{down}--z11r & cycle; +.endchar; + +.cmchar "The Fraktur letter T"; +.beginchar("T",10.386u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +z1=(0.041w,0.053h); z2=(0,0.104h); +z3=(0.078w,y2); penpos4(1.037cap_stem,-133); +z4=(0.165w,0.253h); z5=(0.592w,-apex_o); +z6=(0.731w,0.123h); penpos7(cap_hair,0); +z7r=(w,0.303h); penpos8(0.5cap_hair,-90); +z8=(0.29w,0.271h); penpos9(1.185cap_stem,10); +penpos10(1.148cap_stem,19); +z9=(x5,0.415h); z10=(0.381w,0.691h); +penpos11(0.5cap_hair,-90); z11=(0.677w,0.83h); +penpos12(cap_hair,-112); +penpos13(cap_hair,180); +penpos14(1.111cap_stem,31); +penpos14'(1.037cap_stem,57); +z14'=(0.562w,0.939h); +penpos15(1.185cap_stem,72); +penpos16(cap_hair,-37.5); +penpos17(cap_hair,-48); +z12=(0.236w,0.6h); z13=(0.072w,0.761h); +z14r=(0.436w,h+apex_o); +z15=(0.858w,0.755h); z16=z15l; +penpos15'(1.5cap_stem,72); z15'l=z15l; +z17l=whatever[z16,z15r]; x17=0.956w; +filldraw z1{right}..z3{up}..z4r{right} +..z5{dir-29} & z5{dir22}..z7r{up}-- +z7l{down}..z6{left}..z4l{left}.. +z2{down}..z1{right} & cycle; +penstroke z8e{right}..z9e{up}..z10e +{up}..z11e{right}; +penstroke z15e{dir142.5}..z14'e..z14e{left}..z13e{down} +..z12e{dir-22}; +penstroke z16e{z15r-z15l}..z17e +{dir42}; +.endchar; + +.cmchar "The Fraktur letter U"; +.beginchar("U",10.608u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_stem,0); penpos2(whatever,39); +penpos3(1.176cap_stem,48); +penpos4(cap_hair,-42); penpos5(cap_hair,-42); +penpos10(cap_hair,-47); +penpos11(cap_hair,-47); +penpos13(cap_stem,0); +penpos14(cap_stem,0); +penpos15(cap_hair,-90); +penpos19(cap_hair,-41); +z1=(0.258w,0.162h); z2r=(x1r,0.853h); +x2l=x1l; +z4l=(0,0.822h); z5-z4=whatever*dir48; +y5l=h+apex_o; z3=whatever[z4r,z5r]; y3r=y5r-apex_o; +z7=(x1l,0.26h); z8=(0.111w,y1); +z9=(x1r,-apex_o); z8'=(0.278w,0.082h); +z11r-z9=whatever*dir43; x11=0.737w; +z12-z11l=whatever*(z9-z11r); +x12=0.472w; z6-z12=whatever*(z8-z9); +x6=x1r; +penstroke z1e---z2e...z3e{dir138}; +penstroke z4e--z5e; +filldraw z9--z11r--z11l--z12--z6-- +z7{down}..z8{dir231} & +flex(z8,z8',z9) & cycle; +% +% +% +z13=(x11,y7); z14=(x13,y2r-cap_hair); +z15=(0.573w,0.898h); z16=(0.737w,h+apex_o); +z17=(0.886w,0.915h); z18=(x17,y1); +z20=(0.786w,-apex_o); +z21=(x13l,y1); x19r=w; +z19r-z20=whatever*dir49; +penstroke z13e--z14e; +filldraw z15r{z16-z15l}..z14l{down} +--z14r{up}..z17{right} & z17 +..z16 & z16..z15l--z15r & cycle; +filldraw z20--z19r--z19l{z20-z19r} +..z18{left}..z13r{up}--z13l--z21-- +z20 & cycle; +.endchar; + +.cmchar "The Fraktur letter V"; +.beginchar("V",10.303u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,41); penpos2(cap_hair,0); +penpos3(0.926cap_stem,-117); +penpos6(cap_hair,-63); +penpos7(0.704cap_stem,30); +penpos8(cap_stem,44);penpos9(cap_hair,-65); +penpos10(cap_hair,-65); +penpos11(0.852cap_stem,-138); +penpos12(2/3cap_hair,-55); +penpos13(cap_hair,-48); penpos14(0.907cap_stem,-12); +penpos15(1.037cap_stem,35); +penpos16(0.889cap_stem,46); +penpos17(cap_hair,155); +penpos17'(0.489cap_stem,-123); +penpos18(0.889cap_stem,-118); +penpos20(0.537cap_stem,-147); +penpos21(cap_hair,90); +penpos22(cap_hair,44); +z1=(0.115w,0.046h); z2=(0.072w,0.117h); +z3=(0.209w,0.228h); z4=(0.613w,-apex_o); +z5=(0.755w,0.103h); z5'=(x4,0.172h); +z6=(0.853w,0.114h); +z7r=(w,0.293h); z8=(0.742w,0.543h); +z9=(0.822w,0.655h); +z10r=(w,3/4h); z10'=(x7,0.788h); +z11l=(0.75w,h+apex_o); +z15=(0.414w,0.875h); z13=(0.288w,0.242h); +z14=(0.534w,0.527h); z12=z15+(0.1w,-0.1h); +z16r=(0.252w,h+apex_o); +z17=(0.044w,0.859h); +z17'r=(0,0.742h); z19=(0.043w,0.628h); +z18=(0.096w,0.674h); +z20=(0.267w,0.549h); z21l=(0.173w,0.435h); +z22=(x19,0.516h); +penstroke z1e..z2e{up}..z3e{right}; +filldraw z3r{right}..z4{dir-44} & +z4---z6r...z7r{up}--z7l{down}.. +z6l..z5{left}..z5'..z3l{left}--z3r & +cycle; +penstroke z7e{up}..z8e{up}..z9e.. +z10e; +penstroke z13e{dir42}..z14e{up}.. +z15e..z16e{left}..z17e..z17'e{down}; +filldraw z17'r{down}..z19{z3-z19} & z19--- +z18r...z20r{down}--z20l{up}..z18l.. +z17'l{up}--z17'r & cycle; +penstroke z20e{down}..z21e{left}.. +z22e; +filldraw z12r{up}..z11r{right}.. +1/10[z9,z10]{right} & 1/10[z9,z10]--z10--z10l & +z10l{left}..z10'..z11l{left}..z12l{down} +--z12r & cycle; +.endchar; + +.cmchar "The Fraktur letter W"; +.beginchar("W",13.812u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(cap_hair,44); penpos2(cap_hair,22); +penpos3(1.074cap_stem,-133); +z1=(0.095w,0); z2=(0.055w,0.09h); +z3=(0.16w,0.213h); z4=(0.366w,-apex_o); +z5=(0.435w,0.118h); penpos6(cap_hair,-56); +penpos7(4/3cap_stem,45); +z6=(0.508w,0.126h); z7=(0.645w,0.41h); +penpos9(1.222cap_stem,52); +penpos10(cap_hair,0); +z9=(0.532w,0.733h); z10=(0.604w,h+2apex_o); +penstroke z1e..z2e..z3e{right}; +filldraw z3r{right}..z4{dir-30} & +z4---z6r...z7r{dir72} & z7r{dir120}.. +z9r{up}..z10r--z10l..z9l{down}.. +z7l{down}..z6l{z4-z6r}...z3l{left} +--z3r & cycle; +% +% +% +penpos11(cap_hair,-37); penpos12(0.778cap_stem,-140); +penpos13(1.056cap_stem,-133); +z11=(0.561w,0.865h); z12l=(0.735w,h+apex_o); +z13l=(0.982w,0.756h); +penstroke z11e{dir53}..z12e{right}.. +z13e{dir-60}; +% +% +% +penpos14(cap_hair,-60); z14r=z13l+(apex_o,apex_o); +penpos15(cap_stem,43); penpos16(0.741cap_stem,37.5); +penpos17(cap_hair,-64); penpos18(1.222cap_stem,26); +penpos17'(cap_hair,-64); +z15=(0.808w,0.537h); z16r=(w,0.303h); +z18l=(0.716w,-apex_o); z17r=z18; z17'r=z18r; +z18.1-z18l=whatever*dir146; +z18.2-z18r=whatever*dir146; x18.2=x18.1=0; +z18'=(z6{z6r-z4}..z7{up}) intersectionpoint +(z18l--z18.1); +z18''=(z6{z6r-z4}..z7{up}) intersectionpoint +(z18r--z18.2); +filldraw z18l--z18'--z18''--z18r--z18l & cycle; +penpos16'(whatever,54); z16'l=z16l; x16'r=w; +penstroke z17e---z17'e...z16'e{up}..z15e{up}.. +z14e{dir36}; +% +% +% +penpos19(cap_hair,-58); penpos22'(1.111cap_stem,44); +penpos22(1.037cap_stem,41.5); +penpos23(1.2cap_hair,-139); +penpos24(cap_stem,-90); penpos25(0.556cap_stem,-140); +penpos26(cap_hair,90); penpos27(cap_hair,37); +z19=(0.224w,0.213h); x20=x5; z20-z19r=whatever*dir32; +z21=(0.339w,0.483h); z22'=(0.326w,0.84h); +z22r=(0.2w,h+apex_o); z23r=(0,0.767h); +z24=(0.114w,0.654h); z25=(0.197w,0.551h); +z26=(0.119w,0.437h); z27=(0.025w,0.5h); +filldraw z19r--z20 & z20{up}..z22'r +{dir129.5}--z22'l{dir-50.5}..z21{down} +..z19l{z19r-z20}--z19r & cycle; +penstroke z22'e{dir129.5}..z22e{left} +..z23e{down}..z24e{right}..z25e{down} +..z26e{left}..z27e{dir127}; +% +% +% +penpos28(cap_hair,-32); penpos29(cap_hair,-90); +penpos30(cap_hair,-141.5); +z28=(0.357w,0.848h); z30=z11; +z29=(0.5[x28,x30],0.958h); +penstroke z28e..z29e..z30e; +.endchar; + +.cmchar "The Fraktur letter X"; +.beginchar("X",9.418u#,cap_height#,0); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos0(cap_stem,0); z0=(0.5w,0.537h); +z1=z0l; penpos5(cap_stem,-90); z5l=z0r; +penpos2(cap_hair,0); z2r=(x0r,0.697h); +penpos3(cap_hair,0); z3l=(x0l,0.253h); +penpos6(cap_hair,-40); penpos7(cap_hair,-40); +z6r=(0.758w,-apex_o); z7-z6=whatever*dir50; +x7r=w; z7'=whatever[z6l,z7l]; +z6'=whatever[z6,z7]; y6'=apex_o; +x7'=0.893w; +penstroke z6e--z7e; +filldraw z6'{left}...z3l---z1--z5l +---z5r...z7'---z7l--z7--z6' & cycle; +penpos12(cap_hair,-45); penpos13(cap_hair,-45); +z13l=(0.289w,h+apex_o); z13-z12=whatever*dir45; +x12l=apex_o; z13'=whatever[z12,z13]; +y13'=h-2apex_o; +penstroke z12e--z13e; +filldraw z12r{z13-z12}..z1{down}-- +z5l---z2r...z13'{dir148}--z12--z12r & cycle; +% +% +% +penpos15(0.852cap_stem,-116); +penpos16(cap_hair,-21); +penpos14(cap_hair,-21); +z16=(0.852w,0.723h); z14-z16=whatever*dir69; +y14=y15l+apex_o; z15=(0.77w,0.91h); +penstroke z2e{up}..z15e{right}; +filldraw z15r{right}..z16l{z16-z14} +--z16r--z14r--z14l{z1-z14l} +..z15l{left}--z15r & cycle; +% +% +% +penpos9(cap_hair,-35); penpos10(cap_hair,-35); +z9l=(0,0.069h); z10-z9=whatever*dir55; +y10=0.229h; z8=(0.221w,-apex_o); +z11=(0.297w,0.1h); +filldraw z9r{dir20}..z8{right}.. +z3r{up}--z3l{down}..z11{left}.. +z10r{z10-z9}--z10l--z9l--z9r & +cycle; +% +% +% +penpos20(cap_hair,0); penpos21(cap_hair,0); +penpos22(cap_hair,0); penpos23(cap_hair,0); +z21-z20=whatever*dir74; +z23-z22=whatever*dir74; +y22=y5r; y21=y5l; x22=0.772w; +x21=0.235w; y23=y21+0.072h; +y20=y22-0.072h; +z20'=whatever[z20,z21]; z23'=whatever[z22,z23]; +y20'=y22; y23'=y21; +penstroke z20e--z21e; +penstroke z22e--z23e; +filldraw z20'--z22--z23'--z21--z20' & +cycle; +z20''=whatever[z20',z22]; x20''=x20'+2cap_hair; +z23''=whatever[z21,z23']; x23''=x23'-2cap_hair; +filldraw z20r{z21-z20}..z20''{right} +--z21--z20--z20r & cycle; +filldraw z23''{right}..z23l{z23-z22} +--z23--z22--z23'' & cycle; +.endchar; + +.cmchar "The Fraktur letter Y"; +.beginchar("Y",10.556u#,cap_height#,2.181u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +z1=(0,0); z2=(0.079w,0.089h); +z3=(2x2,0.025h); penpos4(0.611cap_stem,-35); +penpos5(1.074cap_stem,13); +penpos7'(1.111cap_stem,39); +z4r=(0.338w,-d); z5r=(w,0.513h); +z7'r=(0.778w,h); z6'=(0.656w,0.864h); +penpos7(cap_hair,-51); penpos8(cap_hair,-51); +z8=whatever[z7'l,z7'r]; y8r=h; +z7=whatever[z7'l,z7'r]; y7=0.787h; +filldraw z1{up}..z2{right}..z3{down} +..z4l{right}--z4r{left}..z1{up} & +cycle; +penstroke z4e{right}..z5e{up}..z7'e +{dir129}; +z6=(z5l{up}..z7'l{dir129}) intersectionpoint +((0,0.8h)--(w,0.8h)); +filldraw z5l{up}..z6..z6'..z7r{z7-z8}-- +z7--z7'{dir-51}..z5{down}--z5l & +cycle; +penstroke z7e--z8e; +% +% +% +penpos11(cap_hair,-90); penpos9(cap_hair,-42); +penpos10(cap_hair,-42); penpos22(1.148cap_stem,48); +z9r=(0.359w,-apex_o); z10-z9=whatever*dir48; +x10=0.719w; z22=whatever[z9,z10]; x22=0.479w; +z11=(0.126w,0.215h); penpos12(2/3cap_hair,-42); +z12-z22r=whatever*dir-42; +x12=0.371w; penpos13(whatever,19); +x13l=0.5w-0.5cap_stem; x13r=0.5w+0.5cap_stem; +y13=0.585h; +penstroke z9e--z10e; +filldraw z11r{right}..z22l{dir-42}-- +z22r{dir138}--z12r{dir23}..z13r{up} +--z13l{down}..z12l..z11l{left}-- +z11r & cycle; +% +% +% +penpos14(1.037cap_stem,32); penpos15(0.889cap_stem,42); +penpos16(cap_hair,150); penpos17(0.389cap_stem,-134); +penpos18(0.759cap_stem,-90); +penpos19(cap_hair,180); +penpos20(cap_hair,90); +penpos21(1.5cap_hair,45); +z14=(x13l,0.904h); z15r=(0.281w,h+apex_o); +z16=(0.066w,0.883h); z17=(0.051w,0.822h); +z18=(0.159w,0.713h); z19=(0.275w,0.606h); +z20r=(0.189w,0.532h); z21=(0.087w,0.561h); +penstroke z13e{up}..z14e{dir136}.. +z15e{left}..z16e..z17e{down}..z18e +{right}..z19e{down}..z20e{left}.. +z21e{dir135}; +.endchar; + +.cmchar "The Fraktur letter Z"; +.beginchar("Z",8.407u#,cap_height#,2.528u#); +.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); +penpos1(0.704cap_stem,0); z1l=(0.038w,0.213h); +penpos2(0.815cap_stem,-147); +penpos3(1.148cap_stem,-152.5); +penpos4(cap_hair,90); +penpos1'(cap_hair,-66); +z2=(0.395w,0.4h); z3l=(w-x1l,0.096h); +z4l=(0.586w,-0.763d); z1'=(0.237w,0.372h); +penstroke z1e{up}..z1'e..z2e.. +z3e{down}..z4e{left}; +z5=(0.368w,-0.525d); z6=(0.305w,-0.575d); +z7=(0.338w,-0.15d); z8=(0.523w,0.077h); +z9=(0.406w,0.061h); penpos10(cap_hair,90); +z10r=(0.248w,0.077h); +z8'=(x8,-0.288d); +penpos11(cap_hair,180); z11=(0.068w,-0.3d); +penpos12(1.5cap_hair,-90); z12r=(0.218w,-d); +filldraw z4l{left}..z5{left}..z6 & +z6..z7{up}..z10l{left}--z10r{right} +..z9{right}..z8 & z8---z8'...z4r{right} +--z4l & cycle; +penstroke z10e{left}..z11e{down} +..z12e{right}; +% +% +% +penpos14(cap_hair,-90); penpos15(0.778cap_stem,25); +penpos16(cap_stem,90); penpos17(0.5cap_stem,159); +z15r=(w,0.7h); z16r=(0.5w,h+apex_o); +z17r=(0,x15r); z14=(0.5w,0.415h); +penstroke z15e{up}..z16e{left}.. +z17e{down}..z14e{right}..z15e{up}; +% +% +% +z0=(x16,y17r); z18-z0=whatever*dir201; +z13-z0=whatever*dir221; +x18=x13=0; +unfilldraw z18--z0--z13--z18 & +cycle; +.endchar;
\ No newline at end of file diff --git a/fonts/gothic/yfrak/ysmfrak.mf b/fonts/gothic/yfrak/ysmfrak.mf new file mode 100644 index 0000000000..366b7f9f43 --- /dev/null +++ b/fonts/gothic/yfrak/ysmfrak.mf @@ -0,0 +1,137 @@ +if unknown cmbase: input cmbase fi +input yfrabase; % -sl 15-3-1991 + +font_identifier:="ysmfrak"; font_size 10pt#; + +u#:=20/36pt#; % unit width +lower_u#:=20/36pt#; +width_adj#:=0pt#; % width adjustment for certain characters +serif_fit#:=0pt#; % extra sidebar near lowercase serifs +cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs +letter_fit#:=0pt#; % extra space added to all sidebars + +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=167/36pt#; % height of lowercase without ascenders +%x_height#:=155/36pt#; % height of lowercase without ascenders +math_axis#:=90/36pt#; % axis of symmetry for math symbols +bar_height#:=87/36pt#; % height of crossbar in lowercase e +comma_depth#:=70/36pt#; % depth of comma below baseline +desc_depth#:=70/36pt#; % depth of lowercase descenders + +crisp#:=0pt#; % diameter of serif corners +tiny#:=8/36pt#; % diameter of rounded corners +fine#:=7/36pt#; % diameter of sharply rounded corners +thin_join#:=7/36pt#; % width of extrafine details +hair#:=6/36pt#; % lowercase hairline breadth +%hair#:=9/36pt#; % lowercase hairline breadth +%stem#:=25/36pt#; % lowercase stem breadth +stem#:=22/36pt#; % lowercase stem breadth +curve#:=30/36pt#; % lowercase curve breadth +ess#:=27/36pt#; % breadth in middle of lowercase s +flare#:=33/36pt#; % diameter of bulbs or breadth of terminals +dot_size#:=38/36pt#; % diameter of dots +%cap_hair#:=11/36pt#; % uppercase hairline breadth +cap_hair#:=7/36pt#; +cap_amount#:=8/36pt#; +%cap_stem#:=32/36pt#; % uppercase stem breadth +cap_stem#:=30/36pt#; +cap_curve#:=37/36pt#; % uppercase curve breadth +cap_ess#:=35/36pt#; % breadth in middle of uppercase s +rule_thickness#:=.4pt#; % thickness of lines in math symbols + +dish#:=1/36pt#; % amount erased at top or bottom of serifs +bracket#:=20/36pt#; % vertical distance from serif base to tangent +jut#:=28/36pt#; % protrusion of lowercase serifs +cap_jut#:=37/36pt#; % protrusion of uppercase serifs +beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs +beak#:=70/36pt#; % vertical protrusion of beak serifs +vair#:=8/36pt#; % vertical diameter of hairlines +notch_cut#:=10pt#; % maximum breadth above or below notches +bar#:=11/36pt#; % lowercase bar thickness +slab#:=11/36pt#; % serif and arm thickness +cap_bar#:=11/36pt#; % uppercase bar thickness +cap_band#:=11/36pt#; % uppercase thickness above/below lobes +cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches +serif_drop#:=4/36pt#; % vertical drop of sloped serifs +stem_corr#:=1/36pt#; % for small refinements of stem breadth +vair_corr#:=1/36pt#; % for small refinements of hairline height +apex_corr#:=0pt#; % extra width at diagonal junctions + +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ +fudge:=1; % factor applied to weights of heavy characters +math_spread:=0; % extra openness of math symbols +superness:=1/sqrt2; % parameter for superellipses +superpull:=1/6; % extra openness inside bowls +beak_darkness:=11/30; % fraction of triangle inside beak serifs +ligs:=2; % level of ligatures to be included + +square_dots:=false; % should dots be square? +hefty:=false; % should we try hard not to be overweight? +serifs:=true; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? +variant_g:=false; % should an italic-style g be used? +low_asterisk:=false; % should the asterisk be centered at the axis? +math_fitting:=false; % should math-mode spacing be used? +numeric usual_right, usual_left; +usual_right#:=0.75u#; +usual_left#:=0.45u#; + +granularity:=1.01; +%aspect_ratio:=2/3aspect_ratio; + +mode_setup; +font_setup; +cap_amount:=8/36pt; +foot:=0.207x_height; +num_height:=1.242x_height; +cap_kern:=4/36pt; +boolean ligature; ligature:=false; +numeric alpha; alpha:=0; +numeric coef, gencoef; gencoef:=1; + +%granularity:=1.01; + +%readfrom("yfrakbase"); % -sl 15-3-1991 +%currenttransform:=identity xscaled 1.1; +if proofing>1: generate ycurrent; fi % switch to the driver file% +%generate yfraklower; +generate yfraklow; % -sl 15-3-1991 +%generate yfrakmisc; +generate yfrakmis; % -sl 15-3-1991 +%generate yfrakupper; % switch to the driver file +generate yfrakupp; % -sl 15-3-1991 +generate yfraknum; +%currenttransform:=identity; +%generate yfrakother; +generate yfrakoth; % -sl 15-3-1991 + +font_slant slant; font_x_height x_height#; +font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + +%ligtable "a": "e"=:oct"032"; +ligtable "c": "h"=:oct"205", "k"=:oct"206"; +ligtable "f": "f"=:oct"204"; +ligtable "s": ":"=:oct"215", "s"=:oct"201", "t"=:oct"202", "z"=:oct"032", +"f"=:oct"203", "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#, +"l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#; +ligtable "t": "z"=:oct"213"; +ligtable oct"042": "a"=:oct"212", "e"=:oct"221", "o"=:oct"232", "u"=:oct"237", +"s"=:oct"032"; +ligtable "*": "a"=:oct"211", "e"=:oct"220", "o"=:oct"231", "u"=:oct"236"; +ligtable "`": "`"=:oct"134"; +ligtable "'": "'"=:oct"042"; +ligtable "-": "-"=:oct"173"; +ligtable oct"173": "-"=:oct"174"; +ligtable oct"201": "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u# +, "l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#; + +end. diff --git a/fonts/gothic/yfrak/ysmfrak.tfm b/fonts/gothic/yfrak/ysmfrak.tfm Binary files differnew file mode 100644 index 0000000000..65ba46b289 --- /dev/null +++ b/fonts/gothic/yfrak/ysmfrak.tfm |