summaryrefslogtreecommitdiff
path: root/fonts/t1-fraktur
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/t1-fraktur
Initial commit
Diffstat (limited to 'fonts/t1-fraktur')
-rw-r--r--fonts/t1-fraktur/CHANGELOG69
-rw-r--r--fonts/t1-fraktur/README28
-rw-r--r--fonts/t1-fraktur/TODO20
-rw-r--r--fonts/t1-fraktur/fkl2bl10.mf11
-rw-r--r--fonts/t1-fraktur/fkl2bl10.tfmbin0 -> 1812 bytes
-rw-r--r--fonts/t1-fraktur/fkl2bx10.mf11
-rw-r--r--fonts/t1-fraktur/fkl2bx10.tfmbin0 -> 1772 bytes
-rw-r--r--fonts/t1-fraktur/fkl2rm10.mf11
-rw-r--r--fonts/t1-fraktur/fkl2rm10.tfmbin0 -> 1776 bytes
-rw-r--r--fonts/t1-fraktur/fkl2sl10.mf11
-rw-r--r--fonts/t1-fraktur/fkl2sl10.tfmbin0 -> 1824 bytes
-rw-r--r--fonts/t1-fraktur/fkt1base.mf262
-rw-r--r--fonts/t1-fraktur/fkt1bl.mf105
-rw-r--r--fonts/t1-fraktur/fkt1bl10.mf10
-rw-r--r--fonts/t1-fraktur/fkt1bl10.tfmbin0 -> 1824 bytes
-rw-r--r--fonts/t1-fraktur/fkt1bx.mf105
-rw-r--r--fonts/t1-fraktur/fkt1bx10.mf10
-rw-r--r--fonts/t1-fraktur/fkt1bx10.tfmbin0 -> 1784 bytes
-rw-r--r--fonts/t1-fraktur/fkt1gen.mf108
-rw-r--r--fonts/t1-fraktur/fkt1low.mf898
-rw-r--r--fonts/t1-fraktur/fkt1mis.mf891
-rw-r--r--fonts/t1-fraktur/fkt1num.mf195
-rw-r--r--fonts/t1-fraktur/fkt1oth.mf586
-rw-r--r--fonts/t1-fraktur/fkt1rm.mf100
-rw-r--r--fonts/t1-fraktur/fkt1rm10.mf10
-rw-r--r--fonts/t1-fraktur/fkt1rm10.tfmbin0 -> 1788 bytes
-rw-r--r--fonts/t1-fraktur/fkt1sl.mf100
-rw-r--r--fonts/t1-fraktur/fkt1sl10.mf10
-rw-r--r--fonts/t1-fraktur/fkt1sl10.tfmbin0 -> 1836 bytes
-rw-r--r--fonts/t1-fraktur/fkt1upp.mf1953
-rw-r--r--fonts/t1-fraktur/mf-frak.sty30
-rw-r--r--fonts/t1-fraktur/ot1mfrak.fd112
-rw-r--r--fonts/t1-fraktur/t1-fraktur.message17
-rw-r--r--fonts/t1-fraktur/t1mfrak.fd112
-rw-r--r--fonts/t1-fraktur/testfrak.dvibin0 -> 21868 bytes
-rw-r--r--fonts/t1-fraktur/testfrak.pdfbin0 -> 148094 bytes
-rw-r--r--fonts/t1-fraktur/testfrak.tex369
37 files changed, 6144 insertions, 0 deletions
diff --git a/fonts/t1-fraktur/CHANGELOG b/fonts/t1-fraktur/CHANGELOG
new file mode 100644
index 0000000000..9a8072394b
--- /dev/null
+++ b/fonts/t1-fraktur/CHANGELOG
@@ -0,0 +1,69 @@
+FKT1BASE
+~~~~~~~~
+- makcen() ... hacek for d' t' l'
+
+FKT1GEN
+~~~~~~~
+- ligature ft *J
+- revived *a *e *o *u
+- closing quote in proper slot
+- T1/IL2 encoding (dc_layout)
+- nice formatting of ligtables
+- ligature "ss:" and "ss|" renders now as "s{}s|" or "s{s|}"
+
+FKT1LOW
+~~~~~~~
+- adjust_fit for accented letters
+- T1/IL2 encoding (dc_layout)
+- eth duplicated as d with bar for T1 encoding
+- d with hacek (makcen)
+- fixed height of l with acute
+- l with hacek (makcen)
+- fixed comment of n with acute
+- t with hacek (makcen)
+
+FKT1MIS
+~~~~~~~
+- ligature ft
+- T1/IL2 encoding (dc_layout)
+- parametrized charcode for *a *e *o *u
+- adjust_fit for accented letters
+- duplicate hyphen for IL2 encoding
+- degree sign for IL2 encoding (o_umlaut from yfrak)
+
+FKT1OTH
+~~~~~~~
+- duplicate quotes for IL2 encoding
+- placeholder for " to keep "a "e "o "u "s working
+- fixed height of period
+- T1/IL2 encoding (dc_layout)
+- removed ligatures for L-bar accent
+- fixed height of dotaccent
+
+FKT1UPP
+~~~~~~~
+- adjust_fit for accented letters
+- T1/IL2 encoding (dc_layout)
+- L with hacek
+
+======================================
+Footnote about caron, hacek and makcen
+
+háček (hacek) = h\'{a}\v{c}ek is Czech word for caron
+mäkčeň (makcen) = m\"{a}k\v{c}e\v{n} is Slovak word for caron
+
+Caron usually looks like little letter v, or circumflex upside down.
+When it is placed on letters whose upper half consist only of vertical stem,
+i.e. L, l, d, t, it looks more like an apostrophe. Note that capital D and T,
+use "normal" caron.
+
+In this font, capital L is IMHO suitable to wear normal caron. The apostrophe
+like version I made from half of umlaut (i.e. single dot). It is not the best,
+but much better than apostrophe, which is far too big. Perhaps I'll make a new
+version if I find some Czech or Slovak book printed in fraktur.
+
+If anyone will try to make new "apostrophe like" caron, go ahead, but check
+out the appearance of your work on words like: šťastný = \v{s}\v{t}astn\'{y}
+and koľko = ko\v{l}ko. It is essential that the width of letters with and
+without caron is the same, while caron is small enough not to touch the next
+letter, and big enough to be easily seen. Challenging task after all.
diff --git a/fonts/t1-fraktur/README b/fonts/t1-fraktur/README
new file mode 100644
index 0000000000..89e1ea78ca
--- /dev/null
+++ b/fonts/t1-fraktur/README
@@ -0,0 +1,28 @@
+All modifications are enumerated in CHANGELOG.
+
+The most important changes are:
+- letters L, l, d, t with caron
+- ligature ft (you can switch it off if you don't like it)
+- ligature *J for alternative J glyph
+- old umlauts *a *e *o *u are working again
+- IL2 (CS) encoded fonts (fkl2*)
+- *.fd files for IL2 and OT1 encoding
+
+IL2 encoding is used mostly by Czech and Slovak TeX users, using
+CSTeX. This encoding is fully compatible with old TeX encoding (OT1),
+i.e. charcters 0-127 are the same as in original Computer Modern fonts,
+so you can use IL2 font as if it were an OT1 font. Actually the *.fd files
+provided do it this way :)
+
+However, fraktur font does not contain all characters from OT1 encoding
+(notably the Greek letters) and I have placed the extra ligatures and
+old umlauted letters in those empty slots.
+
+Characters 128-255 correspond to ISO-8859-2 (ISO Latin-2) with few
+exceptions and a few extra characters. All accented letters from
+ISO Latin-2 are in the right place (except for \c{t}), so you can
+write documents directly in ISO and forget about combinig letters and
+accents. Write "háček" instead of "h\'a\v cek" :).
+
+Vladislav Kurz
+<vladki@email.cz>
diff --git a/fonts/t1-fraktur/TODO b/fonts/t1-fraktur/TODO
new file mode 100644
index 0000000000..2231382588
--- /dev/null
+++ b/fonts/t1-fraktur/TODO
@@ -0,0 +1,20 @@
+FKT1BASE
+~~~~~~~~
+- shape of diacritics: acute, makcen, o_umlaut, pointaccent
+- shape of punctuation: pointpoint
+
+FKT1OTH
+~~~~~~~
+- shape of punctuation: period, colon, semicolon, comma, quotes, apostrophes
+
+FKT1UPP
+~~~~~~~
+- L' or \v{L} ?
+
+automatic ligatures for final s and final ss
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+- What were the rules for long/short s in other languages than German?
+- Did s change on hyphenation?
+- How did final ss look in English, Swedish, German,...?
+- Czech \v{s} is ss inside a word, ss otherwise does not appear in Czech.
+- What about languages using \c{s} and \'{s} ?
diff --git a/fonts/t1-fraktur/fkl2bl10.mf b/fonts/t1-fraktur/fkl2bl10.mf
new file mode 100644
index 0000000000..e61e8c716f
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2bl10.mf
@@ -0,0 +1,11 @@
+% yfrak transformed to ecfrak/fkt1bl by D. Taupin March 1994-2002
+% fkt1* transformed to fkl2* by V. Kurz 2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="csfrakbl"; font_size 10pt#;
+numeric dc_layout; dc_layout:=0;
+
+input fkt1bl.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkl2bl10.tfm b/fonts/t1-fraktur/fkl2bl10.tfm
new file mode 100644
index 0000000000..7f2d58afae
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2bl10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkl2bx10.mf b/fonts/t1-fraktur/fkl2bx10.mf
new file mode 100644
index 0000000000..b2462f431e
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2bx10.mf
@@ -0,0 +1,11 @@
+% yfrak transformed to ecfrak/fkt1bx by D. Taupin March 1994-2002
+% fkt1* transformed to fkl2* by V. Kurz 2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="csfrakbx"; font_size 10pt#;
+numeric dc_layout; dc_layout:=0;
+
+input fkt1bx.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkl2bx10.tfm b/fonts/t1-fraktur/fkl2bx10.tfm
new file mode 100644
index 0000000000..d2e3be7b9c
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2bx10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkl2rm10.mf b/fonts/t1-fraktur/fkl2rm10.mf
new file mode 100644
index 0000000000..1349aed121
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2rm10.mf
@@ -0,0 +1,11 @@
+% yfrak transformed to ecfrak/fkt1rm by D. Taupin March 1994-2002
+% fkt1* transformed to fkl2* by V. Kurz 2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="csfrakrm"; font_size 10pt#;
+numeric dc_layout; dc_layout:=0;
+
+input fkt1rm.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkl2rm10.tfm b/fonts/t1-fraktur/fkl2rm10.tfm
new file mode 100644
index 0000000000..e4d1ec1a55
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2rm10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkl2sl10.mf b/fonts/t1-fraktur/fkl2sl10.mf
new file mode 100644
index 0000000000..68d828086b
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2sl10.mf
@@ -0,0 +1,11 @@
+% yfrak transformed to ecfrak/t1frak by D. Taupin March 1994-2002
+% fkt1* transformed to fkl2* by V. Kurz 2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="csfraksl"; font_size 10pt#;
+numeric dc_layout; dc_layout:=0;
+
+input fkt1sl.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkl2sl10.tfm b/fonts/t1-fraktur/fkl2sl10.tfm
new file mode 100644
index 0000000000..93f9261837
--- /dev/null
+++ b/fonts/t1-fraktur/fkl2sl10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkt1base.mf b/fonts/t1-fraktur/fkt1base.mf
new file mode 100644
index 0000000000..0b27751de2
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1base.mf
@@ -0,0 +1,262 @@
+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 o_umlaut(suffix $) =
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z$.1=z$+(0,0.1x_height);
+z$.2=z$.1+(stem,0.1x_height);
+x$.3=x$.2; y$.3=y$.2+0.1x_height;
+x$.4=x$.1; y$.4-y$.3=y$.2-y$.1;
+x$.5+x$.3=2x$.4; y$.5=y$.3;
+x$.6+x$.2=2x$.1; y$.6=y$.2;
+draw z$.1--z$.2--z$.3--z$.4--z$.5--z$.6--z$.1;
+penlabels(z$.1,z$.2,z$.3,z$.4,z$.5,z$.6);
+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 cap_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 pointaccent(suffix $) =
+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=x$;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o+y$+0.1x_height; y6r=1.1x_height+apex_o+y$;
+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,y$+0.090x_height);
+z61=(x0+1.522stem,y$+0.387x_height);
+z62=(x0+1.956stem,y$+0.324x_height);
+z60'=(x0'+stem,y$+0.090x_height);
+z61'=(x0'+1.522stem,y$+0.387x_height);
+z62'=(x0'+1.956stem,y$+0.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;
+
+% hacek for d, t, l
+% added by V. Kurz 2002
+def makcen (suffix $) =
+y0=0; x0=x$;
+penpos60(hair,145);
+z60=(x0+stem,y$+0.090x_height);
+z61=(x0+1.522stem,y$+0.387x_height);
+z62=(x0+1.956stem,y$+0.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+enddef;
+
+def hat (suffix $) =
+z60=(x$-2.5u,0.090x_height+y$);
+z61=(x$+0.3u,0.387x_height+y$);
+x62=x$-0.3u; y62=0.3333*(2y60+y61);
+y60'=y60; x60'+x60=2x$;
+filldraw z60--z61--z60'{left}..z62..{left}cycle;
+enddef;
+
+def hungarum (suffix $) =
+z60=(x$-2.5u-0.25stem,0.090x_height+y$);
+z63=z60+(0.5stem,0);
+z61=(x$,0.387x_height+y$);
+z62=z61+(stem,0);
+filldraw z60--z61--z62--z63--cycle;
+filldraw z60--z61--z62--z63--cycle shifted (2.5u,0);
+enddef;
+
+def ellbar (suffix $) =
+z60=(x$,y$-0.5u);
+z61=(x$+3.5u,0.5u+y$);
+pickup pensquare scaled 2hair;
+draw z60--z61;
+enddef;
+
+def hacek (suffix $) =
+z60=(x$-2.5u,0.387x_height+y$);
+z61=(x$-0.3u,0.090x_height+y$);
+x62=x$+0.3u; y62=0.3333*(2y60+y61);
+y60'=y60; x60'+x60=2x$;
+filldraw z60--z61--z60'{left}..z62..{left}cycle;
+enddef;
+
+def breve (suffix $) =
+z60=(x$-2.5u,0.387x_height+y$);
+z61=(x$-0.3u,0.090x_height+y$);
+x62=x$+0.3u; y62=0.3333*(2y60+y61);
+y63=y60; x63+x60=2x$;
+z60'=z60+(0,hair);
+z63'=z63+(0,hair);
+filldraw z60..{right}z61{right}..z63--z63'..{left}z62{left}..z60'--cycle;
+enddef;
+
+def tilde (suffix $) =
+z60=(x$-2.1u,0.090x_height+y$);
+z61=(x$-u,0.387x_height+y$);
+z62=(x$+u,0.090x_height+y$);
+z63=(x$+2.1u,0.387x_height+y$);
+pickup pensquare xscaled stem yscaled hair rotated 30;
+draw z60...{right}z61..z62{right}...z63;
+enddef;
+
+def cedilla (suffix $) =
+pickup pensquare scaled hair;
+z60=z$;
+z61=z60+whatever*dir(ext_angle(-45));
+z63=z61+whatever*dir(ext_angle(60));
+x62+x61=2x$; y62=y$-0.30x_height; y61=y62 + 0.2*(y60-y62);
+y63=y60 - 0.4*(y60-y62);
+penpos60(hair,ext_angle(60));
+penpos61(stem,ext_angle(220));
+penpos62(stem,ext_angle(220));
+penpos63(2hair,0);
+%penstroke z60e{dir(ext_angle(-20))}..{dir(ext_angle(30))}z61e..{dir(ext_angle(180-20))}z62e;
+penstroke z62e{dir(ext_angle(-20))}..{dir(ext_angle(45))}z61e{dir(ext_angle(45))}..z63e...z60e;
+enddef;
+
+def cedilla (suffix $) =
+pickup pensquare scaled hair;
+z60=z$;
+z61=z60+whatever*dir(ext_angle(-40));
+z62=z60+whatever*dir(ext_angle(-70));
+z63=z60+whatever*dir(ext_angle(-120));
+y62=y$-0.30x_height;
+y63=y62+0.35stem;
+y61=0.5*(y60+y62);
+penpos63(stem,ext_angle(50));
+penpos62(stem,ext_angle(50));
+penpos61(0.5stem,ext_angle(50));
+penpos60(hair,ext_angle(50));
+%penstroke z60e{dir(ext_angle(-20))}..{dir(ext_angle(30))}z61e..{dir(ext_angle(180-20))}z62e;
+%penstroke z62e{dir(ext_angle(-20))}..{dir(ext_angle(45))}z61e{dir(ext_angle(45))}..z63e...z60e;
+penstroke z63e{right}..z62e;
+% penstroke z60e{right}..{left}z61e;
+penstroke z60e..{right}z61e;
+pickup pensquare scaled hair rotated ext_angle(50);
+draw z62l--z61r;
+enddef;
+
+def ogonek (suffix $) =
+pickup pensquare scaled hair;
+z60=z$;
+z61=z60+whatever*dir(ext_angle(180+40));
+x62=x$; y62=y$-0.30x_height; y61=y62 + 0.2*(y60-y62);
+penpos60(hair,ext_angle(30));
+penpos61(stem,ext_angle(220));
+penpos62(stem,ext_angle(220));
+penstroke z60e{dir(ext_angle(180+20))}..z61e..{dir(ext_angle(20))}z62e;
+enddef;
+
+def acute (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,y$+0.090x_height);
+z61=(x0+1.522stem,y$+0.387x_height);
+z62=(x0+1.956stem,y$+0.324x_height);
+z60'=(x0'+stem,y$+0.090x_height);
+z61'=(x0'+1.522stem,y$+0.387x_height);
+z62'=(x0'+1.956stem,y$+0.324x_height);
+penpos60'(hair,145);
+filldraw z60l{dir34}..z62'{up}..z61'{left}
+..z60r{dir259}--z60l & cycle
+enddef;
+
+def grave (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,y$+0.090x_height);
+z61=(x0+1.522stem,y$+0.387x_height);
+z62=(x0+1.956stem,y$+0.324x_height);
+z60'=(x0'+stem,y$+0.090x_height);
+z61'=(x0'+1.522stem,y$+0.387x_height);
+z62'=(x0'+1.956stem,y$+0.324x_height);
+penpos60'(hair,145);
+filldraw (z60l{dir34}..z62'{up}..z61'{left}
+..z60r{dir259}--z60l & cycle) reflectedabout ((x$,x_height),(x$,0));
+enddef;
+
+def cap_grave (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height-x_height+y$);
+z61=(x0+1.522stem,1.387x_height-x_height+y$);
+z62=(x0+1.956stem,1.324x_height-x_height+y$);
+z60'=(x0'+stem,1.090x_height-x_height+y$);
+z61'=(x0'+1.522stem,1.387x_height-x_height+y$);
+z62'=(x0'+1.956stem,1.324x_height-x_height+y$);
+filldraw (z60l{dir34}..z62'{up}..z61'{left}
+..z60r{dir259}--z60l & cycle) reflectedabout ((x$,x_height),(x$,0));
+enddef;
+
+picture last_char;
diff --git a/fonts/t1-fraktur/fkt1bl.mf b/fonts/t1-fraktur/fkt1bl.mf
new file mode 100644
index 0000000000..e69ab498b8
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1bl.mf
@@ -0,0 +1,105 @@
+u#:=20/36pt#; % unit width
+lower_u#:=20/36pt#;
+bold_frak:=1; bold_ratio := 1.4;
+
+u#:= bold_ratio*u#;
+lower_u#:= bold_ratio*lower_u#;
+u:=bold_ratio*u;
+
+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#:=bold_ratio*24/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=bold_ratio*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#:=bold_ratio*32/36pt#;
+cap_curve#:=bold_ratio*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.15; % 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;
+
+input fkt1gen.mf
+
+end.
+
+endinput;
+
+
diff --git a/fonts/t1-fraktur/fkt1bl10.mf b/fonts/t1-fraktur/fkt1bl10.mf
new file mode 100644
index 0000000000..9feefb619f
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1bl10.mf
@@ -0,0 +1,10 @@
+% yfrak transformed to ecfrak/fkt1bl by D. Taupin March 1994-2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="ecfrakbl"; font_size 10pt#;
+numeric dc_layout; dc_layout:=1;
+
+input fkt1bl.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkt1bl10.tfm b/fonts/t1-fraktur/fkt1bl10.tfm
new file mode 100644
index 0000000000..ae5a02aa31
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1bl10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkt1bx.mf b/fonts/t1-fraktur/fkt1bx.mf
new file mode 100644
index 0000000000..e69da05253
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1bx.mf
@@ -0,0 +1,105 @@
+u#:=20/36pt#; % unit width
+lower_u#:=20/36pt#;
+bold_frak:=1; bold_ratio := 1.4;
+
+u#:= bold_ratio*u#;
+lower_u#:= bold_ratio*lower_u#;
+u:=bold_ratio*u;
+
+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#:=bold_ratio*24/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=bold_ratio*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#:=bold_ratio*32/36pt#;
+cap_curve#:=bold_ratio*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;
+
+input fkt1gen.mf
+
+end.
+
+endinput;
+
+
diff --git a/fonts/t1-fraktur/fkt1bx10.mf b/fonts/t1-fraktur/fkt1bx10.mf
new file mode 100644
index 0000000000..bdafe8d8e9
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1bx10.mf
@@ -0,0 +1,10 @@
+% yfrak transformed to ecfrak/fkt1bx by D. Taupin March 1994-2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="ecfrakbx"; font_size 10pt#;
+numeric dc_layout; dc_layout:=1;
+
+input fkt1bx.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkt1bx10.tfm b/fonts/t1-fraktur/fkt1bx10.tfm
new file mode 100644
index 0000000000..3d2a1eadd6
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1bx10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkt1gen.mf b/fonts/t1-fraktur/fkt1gen.mf
new file mode 100644
index 0000000000..b37856eb73
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1gen.mf
@@ -0,0 +1,108 @@
+% ecfrakge.mf General file, shape/series independent for all ecfrak fonts
+
+% The positions of characters depending on cm or dc layouts
+
+if dc_layout>0:
+ ae_ligature:=oct"346";
+ Ae_ligature:=oct"306";
+ ft_ligature:=oct"030";
+ ff_ligature:=oct"033";
+ ss_ligature:=oct"034";
+ st_ligature:=oct"035";
+ sf_ligature:=oct"036";
+ tz_ligature:=oct"037";
+ ch_ligature:=oct"027";
+ ck_ligature:=oct"275";
+ a_old:=oct"016";
+ e_old:=oct"017";
+ o_old:=oct"023";
+ u_old:=oct"024";
+ s_final:=oct"276";
+ en_dash:=oct"025";
+ em_dash:=oct"026";
+ eszet:=oct"377";
+ open_gaens:=oct"022";
+ close_gaens:=oct"020";
+else:
+ ae_ligature:=oct"032";
+ Ae_ligature:=oct"035";
+ ft_ligature:=oct"005";
+ ff_ligature:=oct"013";
+ ss_ligature:=oct"014";
+ st_ligature:=oct"015";
+ sf_ligature:=oct"016";
+ tz_ligature:=oct"017";
+ ch_ligature:=oct"012";
+ ck_ligature:=oct"011";
+ a_old:=oct"000";
+ e_old:=oct"001";
+ o_old:=oct"002";
+ u_old:=oct"003";
+ s_final:=oct"010";
+ en_dash:=oct"173";
+ em_dash:=oct"174";
+ eszet:=oct"031";
+ open_gaens:=oct"134";
+ close_gaens:=oct"042";
+fi;
+
+def ext_angle(expr arg_angle) = angle(dir(arg_angle) xscaled bold_ratio) enddef;
+def ext_dir(expr arg_angle) = dir(ext_angle(arg_angle)) enddef;
+
+%if proofing>1: generate ycurrent; fi % switch to the driver file%
+
+generate fkt1mis; % -sl 15-3-1991 / 24-3-1994 DT
+
+generate fkt1low; % -sl 15-3-1991 / 25-3-94 DT
+
+generate fkt1upp; % -sl 15-3-1991 / 24-3-1994 DT / 5-6-2000 CT
+
+generate fkt1num;
+
+generate fkt1oth; % -sl 15-3-1991 / 24-3-1994 DT
+
+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 "c": "h"=:ch_ligature,
+ "k"=:ck_ligature;
+ligtable "f": "t"=:ft_ligature,
+ "f"=:ff_ligature;
+ligtable "t": "z"=:tz_ligature;
+ligtable oct"042": "a"=:oct"344",
+ "e"=:oct"353",
+ "o"=:oct"366",
+ "u"=:oct"374",
+ "s"=:eszet;
+ligtable "*": "a"=:a_old,
+ "e"=:e_old,
+ "o"=:o_old,
+ "u"=:u_old,
+ "J"=:"$";
+ligtable "`": "`"=:open_gaens;
+ligtable "'": "'"=:close_gaens;
+ligtable "-": "-"=:en_dash;
+ligtable en_dash: "-"=:em_dash;
+ligtable "s": "z"=:eszet,
+ "s"=:ss_ligature,
+ "t"=:st_ligature,
+ "f"=:sf_ligature,
+ ":"=:s_final,
+ "|"=:s_final,
+ss_ligature: "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#,
+ ":"|=:s_final,
+ "|"|=:s_final,
+ s_final=:|>"s";
+end.
+
+endinput;
+
diff --git a/fonts/t1-fraktur/fkt1low.mf b/fonts/t1-fraktur/fkt1low.mf
new file mode 100644
index 0000000000..db724fd96a
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1low.mf
@@ -0,0 +1,898 @@
+picture small_letter_e;
+picture small_letter_a;
+picture small_letter_i;
+picture small_letter_j;
+
+numeric nombre; nombre:= 5gencoef[1,1.155556];
+
+numeric test_angle; text_angle := ext_angle(45);
+
+.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;
+small_letter_a:=currentpicture;
+.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{dir(ext_angle(45))}..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'{ext_dir(138)}..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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter c cedilla";
+.beginchar(oct"347",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.4*w+0.4u,0); cedilla(100);
+endchar;
+
+.cmchar "The Fraktur letter c hacek";
+if (dc_layout>0): xchar_code:=oct"243";
+ else: xchar_code:=oct"350";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5*w,x_height); hacek(100);
+endchar;
+
+.cmchar "The Fraktur letter c acute";
+if (dc_layout>0): xchar_code:=oct"242";
+ else: xchar_code:=oct"346";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.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;
+last_char:=currentpicture; .endchar;
+
+.cmchar "The Fraktur letter d (\eth)";
+.beginchar(oct"360",nombre*lower_u#,gencoef[1.269x_height#,1.37x_height#],0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char; z100=(0,1.15x_height); ellbar(100);
+.endchar;
+
+.cmchar "The Fraktur letter d with bar";
+if (dc_layout>0):
+ .beginchar(oct"236",nombre*lower_u#,gencoef[1.269x_height#,1.37x_height#],0);
+ .adjust_fit(usual_left#,usual_right#);
+ currentpicture:=last_char; z100=(0,1.15x_height); ellbar(100);
+ .endchar;
+fi;
+
+% added by V. Kurz 2002
+.cmchar "The Fraktur letter d with hacek";
+if (dc_layout>0): xchar_code:=oct"244";
+ else: xchar_code:=oct"357";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,gencoef[1.269x_height#,1.37x_height#],0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char; z100=(0.1w,1.1x_height); makcen(100);
+.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'{ext_dir(135)}..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;
+small_letter_e:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur ligature ae";
+.beginchar(ae_ligature,2*nombre*lower_u#,x_height#,0);
+%.adjust_fit(usual_left#,usual_right#);
+currentpicture:=small_letter_a;
+addto currentpicture also small_letter_e shifted (4u,0);
+.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*ext_dir(112); 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{ext_dir(158)}.. 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,ext_dir(135)]}; 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;
+last_char:=currentpicture;
+ .endchar;
+
+.cmchar "The Fraktur letter g with breve";
+if (dc_layout>0):
+.beginchar(oct"247",nombre*lower_u#,x_height#,gencoef[2.389lower_u#,3.4446lower_u#]);
+.adjust_fit(usual_left#-gencoef[0.315u#,0.3u#],usual_right#);
+currentpicture:=last_char; z100=(0.5w,x_height); breve(100);
+.endchar;
+fi;
+
+.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{dir(ext_angle(45))}..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'{ext_dir(138)}..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,ext_angle(-44));
+penpos2(hair,ext_angle(-44));
+penpos3(hair,ext_angle(-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(ext_angle(-40)); y8=-apex_o;
+penpos9(hair,ext_angle(-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;
+small_letter_i:=currentpicture;
+.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{ext_dir(137)}..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;
+last_char:=currentpicture;
+small_letter_j:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter ij";
+if (dc_layout>0):
+.beginchar(oct"274",5.5lower_u#,x_height#,1.611lower_u#);
+%.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=small_letter_i;
+addto currentpicture also last_char shifted (5.5u-2.944u,0);
+.endchar;
+fi;
+
+.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{dir(ext_angle(45))}..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; last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter l with bar";
+if (dc_layout>0): xchar_code:=oct"252";
+ else: xchar_code:=oct"263";
+ fi;
+.beginchar(xchar_code,3lower_u#,1.366x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0,0.5cap_height); ellbar(100);
+.endchar;
+
+.cmchar "The Fraktur letter l with acute";
+if (dc_layout>0): xchar_code:=oct"250";
+ else: xchar_code:=oct"345";
+ fi;
+.beginchar(xchar_code,3lower_u#,1.666x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,1.366x_height); acute(100);
+.endchar;
+
+% added by V. Kurz 2002
+.cmchar "The Fraktur letter l with hacek";
+if (dc_layout>0): xchar_code:=oct"251";
+ else: xchar_code:=oct"265";
+ fi;
+.beginchar(xchar_code,3lower_u#,1.366x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.4w,0.85x_height); makcen(100);
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter n tilde";
+if (dc_layout>0):
+.beginchar(oct"361",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char; z100=(0.5w,x_height); tilde(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter n acute";
+if (dc_layout>0): xchar_code:=oct"253";
+ else: xchar_code:=oct"361";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char; z100=(0.5w,x_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter n hacek";
+if (dc_layout>0): xchar_code:=oct"254";
+ else: xchar_code:=oct"362";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char; z100=(0.5w,x_height); hacek(100);
+.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{ext_dir(122)}; 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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur ligature oe";
+if (dc_layout>0): xchar_code:=oct"367";
+ else: xchar_code:=oct"033";
+ fi;
+.beginchar(xchar_code,1.7*nombre*lower_u#,x_height#,0);
+%.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+addto currentpicture also small_letter_e shifted (4u,0);
+.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 {ext_dir(131)}; 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);
+ test_angle:=ext_angle(-33);
+ penpos5(hair,test_angle);
+ penpos6(hair,test_angle); z5l=(0.485w,h+apex_o);
+z5-z6=whatever*dir(ext_angle(52)); x6=0.335w;
+ penpos7(1.542stem,ext_angle(62)); z7l=(0,0.445h);
+ penpos8(1.125stem,ext_angle(45)); z8l=(0.388w,-2apex_o);
+ penpos9(hair,ext_angle(-45));
+ penpos10(hair,ext_angle(-45));
+ z9r=z8; z10-z9=whatever*dir(ext_angle(45));
+ x10=x2; penstroke z1e--z2e;
+z3'-z6=whatever*(z5r-z5l); x3'=x2l;
+ filldraw z2r---z3--z3'---z2l--cycle;
+ filldraw z4{left}...z5r---z5l--z6l--z3'--z3{up}..cycle;
+ penstroke z8e{(0,0.552h)-z8}..z7e{up}... z6e---z5e;
+ penstroke z9e--z10e;
+ penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 3');
+.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{ext_dir(138)}..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*dir(ext_angle(45)); x32r=x22r;
+z30-z32=whatever*dir(ext_angle(45)); 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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter r acute";
+if (dc_layout>0): xchar_code:=oct"257";
+ else: xchar_code:=oct"340";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char; z100=(0.5w,x_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter r hacek";
+if (dc_layout>0): xchar_code:=oct"260";
+ else: xchar_code:=oct"370";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char; z100=(0.5w,x_height); hacek(100);
+.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*ext_dir(112); 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{ext_dir(158)}.. 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(s_final,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{ext_dir(142)}..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{ext_dir(144)}; 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;
+last_char:=currentpicture;
+penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
+.endchar;
+
+.cmchar "The Fraktur letter short s acute";
+if (dc_layout>0): xchar_code:=oct"261";
+ else: xchar_code:=oct"266";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,1.286x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter short s hacek";
+if (dc_layout>0): xchar_code:=oct"262";
+ else: xchar_code:=oct"271";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,1.286x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter short s cedilla";
+if (dc_layout>0): xchar_code:=oct"263";
+ else: xchar_code:=oct"272";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,1.286x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,0); cedilla(100);
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter t with ogonek";
+if (dc_layout>0): xchar_code:=oct"265";
+ else: xchar_code:=oct"275";
+ fi;
+.beginchar(xchar_code,3.444lower_u#,1.186x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#-0.3u#);
+currentpicture:=last_char;
+z100=(0.5w+u,0); ogonek(100);
+.endchar;
+
+% added by V. Kurz 2002
+.cmchar "The Fraktur letter t with hacek";
+if (dc_layout>0): xchar_code:=oct"264";
+ else: xchar_code:=oct"273";
+ fi;
+.beginchar(xchar_code,3.444lower_u#,1.186x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#-0.3u#);
+currentpicture:=last_char; z100=(0.4w,0.9x_height); makcen(100);
+.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{ext_dir(148)}.. (x1r,0.31h){up}--z1l & cycle;
+penstroke z16e--z17e; filldraw z2l{up}..z3l{ext_dir(165)}--
+z3r{ext_dir(15)}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{ext_dir(195)}..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{ext_dir(195)} --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{ext_dir(140)}.. 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,ext_angle(-53));
+penpos4(hair,ext_angle(-54));
+z3r=z2r; z4-z3=whatever*dir(ext_angle(37)); y4l=x_height+apex_o; z3'=whatever[z3l,z4l];
+x3'=x1r;
+penpos5(stem,ext_angle(40)); z5l=(0,0.955x_height);
+penpos6(hair,ext_angle(-50));
+z6l=(0.145w,h); penstroke z3e--z4e; filldraw
+z2r--z3'..z5r-(0,2apex_o){up}..z6r{dir(ext_angle(60))} --z6l{z5l-z5r}..z5l{down}..z2l--z2r &
+cycle;
+penpos7(stem,0);
+penpos8(stem,0); z7=(0.531w,foot); z8=(x7,y2);
+penpos9(hair,ext_angle(-35));
+penpos10(hair,ext_angle(-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{(0.2, 0.5*bold_ratio)}..{up}z7l---z7r--z10r-- z9r---z11 & cycle;
+filldraw z11{z4-z2}..{up}z7l---z7r--z10r-- z9r---z11 & cycle;
+ penstroke z7e--z8e;
+penpos14(1.083stem,ext_angle(47)); z14r=(w,gencoef[0.462x_height,0.685x_height]);
+penpos11'(hair,ext_angle(-53));
+penpos12(hair,ext_angle(-53)); z11'r=z8r; z12-z11'=whatever*dir37;
+y12l=x_height+apex_o; penstroke z11'e--z12e;
+penpos13(1.083stem,ext_angle(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;
+% filldraw z8'--z4--z11--z8r--z8l --cycle;
+ penlabels(1, 2, 3, 4, 5, 6, 7, 8, 8', 9, 10, 11, 11', 12, 13, 13');
+.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{ext_dir(138)}..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*dir(ext_angle(45));
+x32r=x22r; z30-z32=whatever*dir(ext_angle(45)); 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'{ext_dir(138)}..z5'r--z5'l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter y acute";
+.beginchar(oct"375",nombre*lower_u#,x_height#,2.556lower_u#);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter y Umlaut";
+if (dc_layout>0): xchar_code:=oct"270";
+.beginchar(xchar_code,nombre*lower_u#,x_height#,2.556lower_u#);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); umlaut(100);
+.endchar;
+fi;
+
+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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter z with point";
+if (dc_layout>0): xchar_code:=oct"273";
+ else: xchar_code:=oct"277";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); pointaccent(100);
+.endchar;
+
+.cmchar "The Fraktur letter z with acute";
+if (dc_layout>0): xchar_code:=oct"271";
+ else: xchar_code:=oct"274";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter z with hacek";
+if (dc_layout>0): xchar_code:=oct"272";
+ else: xchar_code:=oct"276";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hacek(100);
+.endchar;
+
diff --git a/fonts/t1-fraktur/fkt1mis.mf b/fonts/t1-fraktur/fkt1mis.mf
new file mode 100644
index 0000000000..93d976a5c4
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1mis.mf
@@ -0,0 +1,891 @@
+.cmchar "The Fraktur ligature ch";
+.beginchar(ch_ligature,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(ck_ligature,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(st_ligature,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;
+
+% added by V. Kurz 2002
+.cmchar "The Fraktur ligature ft";
+.beginchar(ft_ligature,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};
+filldraw z0.5--z0.4l--z0.4r--z0.2--z0.5 & cycle;
+.endchar;
+
+.cmchar "The Fraktur ligature ss";
+.beginchar(ss_ligature,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(sf_ligature,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(ff_ligature,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(eszet,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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur ligature sz";
+if (dc_layout=0): xchar_code:=oct"337";
+ beginchar(xchar_code,5.444lower_u#,1.366x_height#,3.167lower_u#);
+ adjust_fit(0,0.05alpha*w#+usual_right#+0.5u#);
+ currentpicture:=last_char;
+ endchar;
+fi;
+
+.cmchar "The Fraktur ligature tz";
+.beginchar(tz_ligature,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(a_old,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(e_old,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(o_old,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(u_old,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"344",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);
+last_char:=currentpicture;
+z100=(0.5w,x_height);
+umlaut(100);.endchar;
+
+.cmchar "The Fraktur letter a with acute";
+.beginchar(oct"341",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter a with breve";
+if (dc_layout>0): xchar_code:=oct"240";
+ else: xchar_code:=oct"343";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); breve(100);
+endchar;
+
+.cmchar "The Fraktur letter a with ogonek";
+if (dc_layout>0): xchar_code:=oct"241";
+ else: xchar_code:=oct"261";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0.2x_height#);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+currentpicture:=last_char;
+z100=(0.8w+u,0); ogonek(100);
+endchar;
+
+.cmchar "The Fraktur letter a with tilde";
+if (dc_layout>0):
+.beginchar(oct"343",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); tilde(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter a with scandinavian circle";
+if (dc_layout>0):
+.beginchar(oct"345",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); o_umlaut(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter a with grave";
+if (dc_layout>0): xchar_code:=oct"340";
+ else: xchar_code:=oct"270";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+
+.cmchar "The Fraktur letter a with hat";
+.beginchar(oct"342",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+nombre:= 3.65gencoef[1,1.230769];
+
+.cmchar "The Fraktur letter e with Umlaut";
+.beginchar(oct"353",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.6w,x_height);
+last_char:=currentpicture;
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter e with acute";
+.beginchar(oct"351",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter e with grave";
+if (dc_layout>0):
+.beginchar(oct"350",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter e with hacek";
+if (dc_layout>0): xchar_code:=oct"245";
+ else: xchar_code:=oct"354";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hacek(100);
+endchar;
+
+.cmchar "The Fraktur letter e with hat";
+if (dc_layout>0):
+.beginchar(oct"352",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter e with ogonek";
+if (dc_layout>0): xchar_code:=oct"246";
+ else: xchar_code:=oct"352";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.6w+0.5u,0); ogonek(100);
+endchar;
+
+nombre:=4.75gencoef[1,1.140351];
+
+.cmchar "The Fraktur letter o with Umlaut";
+.beginchar(oct"366",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,x_height);
+last_char:=currentpicture;
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter o with acute";
+.beginchar(oct"363",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter o with Hungarian umlaut";
+if (dc_layout>0): xchar_code:=oct"256";
+ else: xchar_code:=oct"365";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hungarum(100);
+endchar;
+
+.cmchar "The Fraktur letter o with tilde";
+if (dc_layout>0):
+.beginchar(oct"365",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); tilde(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter o with slash";
+if (dc_layout>0): xchar_code:=oct"370";
+ else: xchar_code:=oct"034";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+pickup penrazor xscaled 0.5stem yscaled hair rotated 30;
+draw (0,0)--(w,x_height);
+endchar;
+
+.cmchar "The Fraktur letter o with grave";
+if (dc_layout>0):
+.beginchar(oct"362",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter o with hat";
+.beginchar(oct"364",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+nombre:=6.15gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter u with Umlaut";
+.beginchar(oct"374",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);
+last_char:=currentpicture;
+z100=(0.5w,x_height);
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter u with acute";
+.beginchar(oct"372",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter u with Hungarian umlaut";
+if (dc_layout>0): xchar_code:=oct"266";
+ else: xchar_code:=oct"373";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hungarum(100);
+endchar;
+
+.cmchar "The Fraktur letter u with grave";
+if (dc_layout>0):
+.beginchar(oct"371",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter u with hat";
+if (dc_layout>0):
+.beginchar(oct"373",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter u with scandinavian circle";
+if (dc_layout>0): xchar_code:=oct"267";
+ else: xchar_code:=oct"371";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); o_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;
+last_char:=currentpicture;
+.endchar;
+
+% added by V. Kurz 2002
+.cmchar "The Fraktur hyphen";
+if (dc_layout=0): xchar_code:=oct"234";
+ beginchar(xchar_code,4u#,x_height#,0);
+ adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+ currentpicture:=last_char;
+ endchar;
+fi;
+
+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";
+if (dc_layout>0): xchar_code:=oct"237";
+ else: xchar_code:=oct"247";
+ fi;
+.beginchar(xchar_code,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;
+
+% 311 --> 100 by D. Taupin
+.cmchar "The Fraktur symbol for etc"; .beginchar(oct"100",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";
+if (dc_layout>0): xchar_code:=oct"006";
+ else: xchar_code:=oct"027";
+ fi;
+.beginchar(xchar_code,9u#,cap_height#,0);
+z100=(0.5w,x_height); o_umlaut(100);
+.endchar;
+
+% circle accent from yfrak
+% added by V. Kurz 2002
+.cmchar "Degree sign";
+if (dc_layout=0): xchar_code:=oct"260";
+ .beginchar(xchar_code,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;
+fi;
+
+.cmchar "The Fraktur letter dotless j";
+if (dc_layout>0): xchar_code:=oct"032";
+ else: xchar_code:=oct"021";
+ fi;
+.beginchar(xchar_code,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";
+if (dc_layout>0): xchar_code:=oct"031";
+ else: xchar_code:=oct"020";
+ fi;
+.beginchar(xchar_code,2.889lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,ext_angle(-44)); penpos2(hair,ext_angle(-44));
+penpos3(hair,ext_angle(-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(ext_angle(-40)); y8=-apex_o;
+penpos9(hair,ext_angle(-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);
+last_char:=currentpicture;
+penlabels(1, 2, 3, 4, 5, 5', 6, 7, 8, 9, 10, 11, 12);
+.endchar;
+
+.cmchar "The Fraktur letter i with Umlaut";
+if (dc_layout>0):
+.beginchar(oct"357",2.889*lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); umlaut(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter i with acute";
+.beginchar(oct"355",2.889*lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter i with grave";
+if (dc_layout>0):
+.beginchar(oct"354",2.889*lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter i with hat";
+.beginchar(oct"356",2.889*lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+endinput;
+
diff --git a/fonts/t1-fraktur/fkt1num.mf b/fonts/t1-fraktur/fkt1num.mf
new file mode 100644
index 0000000000..8bbf6a08ce
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1num.mf
@@ -0,0 +1,195 @@
+.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;
+
+endinput;
diff --git a/fonts/t1-fraktur/fkt1oth.mf b/fonts/t1-fraktur/fkt1oth.mf
new file mode 100644
index 0000000000..4febb6a31e
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1oth.mf
@@ -0,0 +1,586 @@
+.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;
+last_char:=currentpicture;
+proofrule ((w,0),(w,h));
+.endchar;
+
+.cmchar "Apostrophe";
+.beginchar("'",5u#,asc_height#,0);
+currentpicture:=last_char
+ shifted (0.15u,1.2x_height);
+proofrule ((w,0),(w,h));
+.endchar;
+
+.cmchar "Opening Gaensefuesschen";
+.beginchar(open_gaens,9u#,x_height#,0);
+currentpicture:=last_char;
+addto currentpicture also last_char shifted (4u,0);
+proofrule ((w,0),(w,h));
+.endchar;
+
+% added by V. Kurz 2002
+.cmchar "Opening Gaensefuesschen";
+if (dc_layout=0):
+ beginchar(oct"376",9u#,x_height#,0);
+ currentpicture:=last_char;
+ addto currentpicture also last_char shifted (4u,0);
+ proofrule ((w,0),(w,h));
+ endchar;
+fi;
+
+.cmchar "Closing Gaensefuesschen";
+.beginchar(close_gaens,9u#,asc_height#,0);
+currentpicture:=(last_char rotatedaround((3u,0),180))
+ shifted (-u,1.2x_height);
+addto currentpicture also (last_char rotatedaround((3u,0),180))
+ shifted (3u,1.2x_height);
+proofrule ((w,0),(w,h));
+.endchar;
+
+% added by V. Kurz 2002
+.cmchar "Closing Gaensefuesschen";
+if (dc_layout=0):
+ beginchar(oct"377",9u#,asc_height#,0);
+ currentpicture:=(last_char rotatedaround((3u,0),180))
+ shifted (-u,1.2x_height);
+ addto currentpicture also (last_char rotatedaround((3u,0),180))
+ shifted (3u,1.2x_height);
+ proofrule ((w,0),(w,h));
+ endchar;
+else: % placeholder to keep umlaut ligatures working
+ beginchar(oct"042",0,0,0);
+ endchar;
+fi;
+
+.cmchar "Reverse apostrophe";
+.beginchar("`",5u#,asc_height#,0);
+currentpicture:=(last_char rotatedaround((3u,0),180))
+ shifted (-u,1.2x_height);
+proofrule ((w,0),(w,h));
+.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#-4apex_o#)/3,0);
+.adjust_fit(usual_left#,usual_right#);
+pointpoint;
+.endchar;
+
+.cmchar "Hachek (check) accent";
+if (dc_layout>0): xchar_code:=oct"007";
+ else: xchar_code:=oct"024";
+ fi;
+.beginchar(xchar_code,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+z100=(0.5w,x_height); hacek(100);
+.endchar;
+
+.cmchar "Breve accent";
+if (dc_layout>0): xchar_code:=oct"010";
+ else: xchar_code:=oct"025";
+ fi;
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w,x_height); breve(100);
+.endchar;
+
+.cmchar "Macron (bar) accent";
+if (dc_layout>0): xchar_code:=oct"011";
+ else: xchar_code:=oct"026";
+ fi;
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+.beginchar(xchar_code,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";
+if (dc_layout>0): xchar_code:=oct"013";
+ else: xchar_code:=oct"030";
+ fi;
+.beginchar(xchar_code,9u#,0,.875desc_depth#);
+z100=(0.5w,0); cedilla(100);
+penlabels(60, 61, 62, 63, 100);
+.endchar;
+
+.cmchar "Ogonek accent";
+if (dc_layout>0): xchar_code:=oct"014";
+ else: xchar_code:=oct"235";
+ fi;
+.beginchar(xchar_code,9u#,0,.875desc_depth#);
+z100=(0.5w,0); ogonek(100);
+penlabels(60, 61, 62, 100);
+.endchar;
+
+.cmchar "L-bar accent";
+if unknown l_width#: l_width#:=3lower_u#; fi % nominal width of `l'
+%ligtable oct"040": "l" kern -l_width#, "L" kern -l_width#;
+.beginchar(oct"040",l_width#,x_height#,0);
+z100=(0,0.5cap_height); ellbar(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"012";
+ else: xchar_code:=oct"137";
+ fi;
+iff ligs>0: .cmchar "Dot accent";
+.beginchar(xchar_code,5u#,min(asc_height#,2x_height#),0);
+z100=(0.5w,x_height);
+pointaccent(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"005";
+ else: xchar_code:=oct"175";
+ fi;
+iff ligs>0: .cmchar "Long Hungarian umlaut accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w,x_height); hungarum(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"004";
+ else: xchar_code:=oct"177";
+ fi;
+iff ligs>0: .cmchar "umlaut accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+umlaut(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"000";
+ else: xchar_code:=oct"022";
+ fi;
+iff ligs>0: .cmchar "grave accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+grave(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"001";
+ else: xchar_code:=oct"023";
+ fi;
+iff ligs>0: .cmchar "acute accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+acute(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"002";
+ else: xchar_code:=oct"136";
+ fi;
+iff ligs>0: .cmchar "hat accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+hat(100);
+.endchar;
+
+.cmchar "Tilde (squiggle) accent";
+if (dc_layout>0): xchar_code:=oct"003";
+ else: xchar_code:=oct"176";
+ fi;
+.beginchar(xchar_code,9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+z100=(0.5w,x_height); tilde(100);
+.endchar;
+
+.cmchar "En dash";
+.beginchar(en_dash,9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(0,0);
+pickup rule.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(em_dash,18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(letter_fit#,letter_fit#);
+pickup rule.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 "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 "Backslash";
+if (dc_layout>0): xchar_code:=oct"134";
+ else: xchar_code:=oct"211";
+ fi;
+.beginchar(xchar_code,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) reflectedabout ((4.5u,0),(4.5u,u)); % 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 "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;
+
+cmchar "Left curly brace";
+if (dc_layout>0): xchar_code:=oct"173";
+ else: xchar_code:=oct"214";
+ fi;
+beginchar(xchar_code,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Right curly brace";
+if (dc_layout>0): xchar_code:=oct"175";
+ else: xchar_code:=oct"217";
+ fi;
+beginchar(xchar_code,9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Vertical line";
+if (dc_layout>0): xchar_code:=oct"174";
+ else: xchar_code:=oct"216";
+ fi;
+beginchar(xchar_code,5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Sterling sign";
+if (dc_layout>0): xchar_code:=oct"277";
+ else: xchar_code:=oct"204";
+ fi;
+beginchar(xchar_code,12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9r=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+endinput;
diff --git a/fonts/t1-fraktur/fkt1rm.mf b/fonts/t1-fraktur/fkt1rm.mf
new file mode 100644
index 0000000000..28339c95c7
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1rm.mf
@@ -0,0 +1,100 @@
+u#:=20/36pt#; % unit width
+lower_u#:=20/36pt#;
+bold_frak:=0; bold_ratio := 1.0;
+
+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;
+
+input fkt1gen.mf
+
+end.
+
+endinput;
+
diff --git a/fonts/t1-fraktur/fkt1rm10.mf b/fonts/t1-fraktur/fkt1rm10.mf
new file mode 100644
index 0000000000..964ae840ee
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1rm10.mf
@@ -0,0 +1,10 @@
+% yfrak transformed to ecfrak/fkt1rm by D. Taupin March 1994-2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="ecfrakrm"; font_size 10pt#;
+numeric dc_layout; dc_layout:=1;
+
+input fkt1rm.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkt1rm10.tfm b/fonts/t1-fraktur/fkt1rm10.tfm
new file mode 100644
index 0000000000..6bf07c4026
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1rm10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkt1sl.mf b/fonts/t1-fraktur/fkt1sl.mf
new file mode 100644
index 0000000000..c4d4689586
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1sl.mf
@@ -0,0 +1,100 @@
+u#:=20/36pt#; % unit width
+lower_u#:=20/36pt#;
+bold_frak:=0; bold_ratio := 1.0;
+
+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.15; % 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;
+
+input fkt1gen.mf
+
+end.
+
+endinput;
+
diff --git a/fonts/t1-fraktur/fkt1sl10.mf b/fonts/t1-fraktur/fkt1sl10.mf
new file mode 100644
index 0000000000..03426952b8
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1sl10.mf
@@ -0,0 +1,10 @@
+% yfrak transformed to ecfrak/t1frak by D. Taupin March 1994-2002
+if unknown cmbase: input cmbase fi
+input fkt1base;
+
+font_identifier:="ecfraksl"; font_size 10pt#;
+numeric dc_layout; dc_layout:=1;
+
+input fkt1sl.mf
+
+endinput;
diff --git a/fonts/t1-fraktur/fkt1sl10.tfm b/fonts/t1-fraktur/fkt1sl10.tfm
new file mode 100644
index 0000000000..c599e6e2a7
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1sl10.tfm
Binary files differ
diff --git a/fonts/t1-fraktur/fkt1upp.mf b/fonts/t1-fraktur/fkt1upp.mf
new file mode 100644
index 0000000000..3596f65fee
--- /dev/null
+++ b/fonts/t1-fraktur/fkt1upp.mf
@@ -0,0 +1,1953 @@
+% Modified version of AE ligature made by Claus Tondering
+% claus@tondering.dk, 5 June 2000
+
+picture cap_letter_E;
+
+.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;
+ last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter A with ogonek";
+if (dc_layout>0): xchar_code:=oct"201";
+ else: xchar_code:=oct"241";
+ fi;
+.beginchar(xchar_code,9.522u#,cap_height#,0.2x_height#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+cullit;
+z100=(0.9w,0); ogonek(100);
+penlabels(60, 61, 62);
+.endchar;
+
+.cmchar "The Fraktur letter A Umlaut";
+.beginchar(oct"304",9.522u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter A breve";
+if (dc_layout>0): xchar_code:=oct"200";
+ else: xchar_code:=oct"303";
+ fi;
+.beginchar(xchar_code,9.522u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); breve(100);
+.endchar;
+
+.cmchar "The Fraktur letter A tilde";
+if (dc_layout>0):
+.beginchar(oct"303",9.522u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); tilde(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter A o-Umlaut";
+if (dc_layout>0):
+.beginchar(oct"305",9.522u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); o_umlaut(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter A acute";
+.beginchar(oct"301",9.522u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter A grave";
+if (dc_layout>0): xchar_code:=oct"300";
+ else: xchar_code:=oct"230";
+ fi;
+.beginchar(xchar_code,9.522u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); cap_grave(100);
+.endchar;
+
+.cmchar "The Fraktur letter A hat";
+.beginchar(oct"302",9.522u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hat(100);
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter C cedilla";
+.beginchar(oct"307",10.406u#,cap_height#,0.2x_height#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.6w,0); cedilla(100);
+endchar;
+
+.cmchar "The Fraktur letter C acute";
+if (dc_layout>0): xchar_code:=oct"202";
+ else: xchar_code:=oct"306";
+ fi;
+.beginchar(xchar_code,10.406u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter C hacek";
+if (dc_layout>0): xchar_code:=oct"203";
+ else: xchar_code:=oct"310";
+ fi;
+.beginchar(xchar_code,10.406u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter D with bar (\eth)";
+.beginchar(oct"320",12.168u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z0=(0,0.45cap_height-0.3u);
+z1=(0.6w,0.45cap_height+0.3u); pickup pensquare scaled 0.7stem;
+draw z0--z1;
+.endchar;
+
+.cmchar "The Fraktur letter D with hacek";
+if (dc_layout>0): xchar_code:=oct"204";
+ else: xchar_code:=oct"317";
+ fi;
+.beginchar(xchar_code,12.168u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hacek(100);
+.endchar;
+
+Ewidth :=8.508;
+
+.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;
+last_char:=currentpicture;
+cap_letter_E:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter E with ogonek";
+if (dc_layout>0): xchar_code:=oct"206";
+ else: xchar_code:=oct"312";
+ fi;
+.beginchar(xchar_code,8.508u#,cap_height#,0.2x_height#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.7w,0);
+ogonek(100);
+.endchar;
+
+.cmchar "The Fraktur letter E Umlaut";
+.beginchar(oct"313",8.508u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter E acute";
+.beginchar(oct"311",8.508u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+acute(100);
+endchar;
+
+.cmchar "The Fraktur letter E grave";
+if (dc_layout>0):
+.beginchar(oct"310",8.508u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+cap_grave(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter E hat";
+if (dc_layout>0):
+.beginchar(oct"312",8.508u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hat(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter E hacek";
+if (dc_layout>0): xchar_code:=oct"205";
+ else: xchar_code:=oct"314";
+ fi;
+.beginchar(xchar_code,8.508u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hacek(100);
+endchar;
+
+.cmchar "The Fraktur ligature AE";
+.beginchar(Ae_ligature,9.522u#,cap_height#,0)
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#+5u#);
+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..
+z6--z14'--z14 & 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;
+addto currentpicture also last_char shifted (6u,0);
+last_char:=currentpicture;
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter G with breve";
+if (dc_layout>0):
+.beginchar(oct"207",10.638u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height); breve(100);
+.endchar;
+fi;
+
+.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};
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter Ij";
+if (dc_layout>0):
+.beginchar(oct"234",8.541u#+2.944lower_u#,cap_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+addto currentpicture also small_letter_j shifted (8.541u,-0.1x_height);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter I Umlaut";
+if (dc_layout>0):
+.beginchar(oct"317",8.541u#,cap_height#+0.3x_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+umlaut(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter I dot";
+if (dc_layout>0):
+.beginchar(oct"235",8.541u#,cap_height#+0.3x_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+pointaccent(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter I grave";
+if (dc_layout>0):
+.beginchar(oct"314",8.541u#,cap_height#+0.3x_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+cap_grave(100);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter I hat";
+.beginchar(oct"316",8.541u#,cap_height#+0.3x_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hat(100);
+endchar;
+
+.cmchar "The Fraktur letter I acute";
+.beginchar(oct"315",8.541u#,cap_height#+0.3x_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+acute(100);
+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;
+
+% added by V. Kurz 2002
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter L with bar";
+if (dc_layout>0): xchar_code:=oct"212";
+ else: xchar_code:=oct"243";
+ fi;
+.beginchar(xchar_code,6.131u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0,0.40cap_height); ellbar(100);
+.endchar;
+
+.cmchar "The Fraktur letter L with acute";
+if (dc_layout>0): xchar_code:=oct"210";
+ else: xchar_code:=oct"305";
+ fi;
+.beginchar(xchar_code,6.131u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter L with hacek";
+if (dc_layout>0): xchar_code:=oct"211";
+ else: xchar_code:=oct"245";
+ fi;
+.beginchar(xchar_code,6.131u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height); hacek(100);
+.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};
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter N tilde";
+if (dc_layout>0):
+.beginchar(oct"321",11.662u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); tilde(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter N acute";
+if (dc_layout>0): xchar_code:=oct"213";
+ else: xchar_code:=oct"321";
+ fi;
+.beginchar(xchar_code,11.662u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter N hacek";
+if (dc_layout>0): xchar_code:=oct"214";
+ else: xchar_code:=oct"322";
+ fi;
+.beginchar(xchar_code,11.662u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+Owidth := 12.01;
+
+.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; last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter O Umlaut";
+.beginchar(oct"326",12.01u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter O tilde";
+if (dc_layout>0):
+.beginchar(oct"325",12.01u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); tilde(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter O with Hungarian umlaut";
+if (dc_layout>0): xchar_code:=oct"216";
+ else: xchar_code:=oct"325";
+ fi;
+.beginchar(xchar_code,12.01u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hungarum(100);
+.endchar;
+
+.cmchar "The Fraktur letter O slash";
+if (dc_layout>0): xchar_code:=oct"330";
+ else: xchar_code:=oct"037";
+fi;
+beginchar(xchar_code,12.01u#,cap_height#,0);
+adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+pickup penrazor xscaled stem yscaled hair rotated 30;
+draw (0,0)--(w,cap_height);
+endchar;
+
+.cmchar "The Fraktur letter O acute";
+.beginchar(oct"323",12.01u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter O grave";
+if (dc_layout>0):
+.beginchar(oct"322",12.01u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); cap_grave(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter O hat";
+.beginchar(oct"324",12.01u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hat(100);
+.endchar;
+
+OEoverlap = 5;
+
+.cmchar "The Fraktur ligature OE";
+if (dc_layout>0): xchar_code:=oct"327";
+ else: xchar_code:=oct"036";
+ fi;
+.beginchar(xchar_code,(Owidth+Ewidth-OEoverlap)*u#,cap_height#,0)
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+cullit;
+left_unfillx:=6.5u;
+bottom_unfillx:=10u;
+unfill (left_unfillx,0.5h)--(bottom_unfillx,0)--(w,0)--(w,h)--(bottom_unfillx,h)--cycle;
+addto currentpicture also cap_letter_E shifted ((Owidth-OEoverlap)*u,0);
+addto currentpicture also cap_letter_E shifted ((Owidth-OEoverlap)*u,0);
+proofrule ((w,0),(w,h));
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter R acute";
+if (dc_layout>0): xchar_code:=oct"217";
+ else: xchar_code:=oct"300";
+ fi;
+.beginchar(xchar_code,10.493u#,cap_height#+0.3x_height#,0);
+.adjust_fit(usual_left#,usual_right#+0.3u#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter R hacek";
+if (dc_layout>0): xchar_code:=oct"220";
+ else: xchar_code:=oct"330";
+ fi;
+.beginchar(xchar_code,10.493u#,cap_height#+0.3x_height#,0);
+.adjust_fit(usual_left#,usual_right#+0.3u#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter S acute";
+if (dc_layout>0): xchar_code:=oct"221";
+ else: xchar_code:=oct"246";
+ fi;
+.beginchar(xchar_code,12.813u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter S hacek";
+if (dc_layout>0): xchar_code:=oct"222";
+ else: xchar_code:=oct"251";
+ fi;
+.beginchar(xchar_code,12.813u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter S cedilla";
+if (dc_layout>0): xchar_code:=oct"223";
+ else: xchar_code:=oct"252";
+ fi;
+.beginchar(xchar_code,12.813u#,cap_height#,0.2x_height#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,0); cedilla(100);
+.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};
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter T hacek";
+if (dc_layout>0): xchar_code:=oct"224";
+ else: xchar_code:=oct"253";
+ fi;
+.beginchar(xchar_code,10.386u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter T with ogonek";
+if (dc_layout>0): xchar_code:=oct"225";
+ else: xchar_code:=oct"336";
+ fi;
+.beginchar(xchar_code,10.386u#,cap_height#,0.2x_height#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w+u,0); ogonek(100);
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter U Umlaut";
+.beginchar(oct"334",10.608u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter U with Hungarian umlaut";
+if (dc_layout>0): xchar_code:=oct"226";
+ else: xchar_code:=oct"333";
+ fi;
+.beginchar(xchar_code,10.608u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hungarum(100);
+.endchar;
+
+.cmchar "The Fraktur letter U acute";
+.beginchar(oct"332",10.608u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter U grave";
+if (dc_layout>0):
+.beginchar(oct"331",10.608u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); cap_grave(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter U hat";
+if (dc_layout>0):
+.beginchar(oct"333",10.608u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hat(100);
+.endchar;
+fi;
+
+.cmchar "The Fraktur letter U with scandinavian circle";
+if (dc_layout>0): xchar_code:=oct"227";
+ else: xchar_code:=oct"331";
+ fi;
+.beginchar(xchar_code,10.608u#,cap_height#+0.3x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); o_umlaut(100);
+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};
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter Y with acute";
+.beginchar(oct"335",10.556u#,cap_height#+0.3x_height#,2.181u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter Y with umlaut";
+if (dc_layout>0):
+.beginchar(oct"230",10.556u#,cap_height#+0.3x_height#,2.181u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+fi;
+
+.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;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter Z acute";
+if (dc_layout>0): xchar_code:=oct"231";
+ else: xchar_code:=oct"254";
+ fi;
+.beginchar(xchar_code,8.407u#,cap_height#+0.3x_height#,2.528u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter Z hacek";
+if (dc_layout>0): xchar_code:=oct"232";
+ else: xchar_code:=oct"256";
+ fi;
+.beginchar(xchar_code,8.407u#,cap_height#+0.3x_height#,2.528u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter Z point";
+if (dc_layout>0): xchar_code:=oct"233";
+ else: xchar_code:=oct"257";
+ fi;
+.beginchar(xchar_code,8.407u#,cap_height#+0.3x_height#,2.528u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+currentpicture:=last_char; z100=(0.5w,cap_height); pointaccent(100);
+.endchar;
+
+endinput;
diff --git a/fonts/t1-fraktur/mf-frak.sty b/fonts/t1-fraktur/mf-frak.sty
new file mode 100644
index 0000000000..f9f753fdd7
--- /dev/null
+++ b/fonts/t1-fraktur/mf-frak.sty
@@ -0,0 +1,30 @@
+% General TTF Fraktur family by Daniel TAUPIN, July 2002, fit for
+% mfrak/fkt1* fonts.
+% Global work done by Yannis Haralambous, Claus Tondering, and Daniel Taupin.
+
+\DeclareRobustCommand\FrakturMfamily
+ {\not@math@alphabet\FrakturMfamily\mathrm
+ \fontfamily\FrakturDefault\selectfont}
+
+\DeclareTextFontCommand{\texttms}{\FrakturMfamily}
+
+\newcommand\FrakturDefault{mfrak}
+\newcommand\FrakturRmDefault{mfrak}
+
+\newcommand\SetFrakturDefault{\def\rmdefault{\FrakturDefault}%
+ \def\Scdefault{mtimc}
+}
+\def\SetCmDefault{\def\rmdefault{cmr}%
+ \def\Scdefault{cmsc}
+}
+
+\ifx\scaps\undefined
+\newcommand\scaps[1]{\leavevmode\rlap{\scshape #1}\kern 0.02em\hbox{\scshape #1}}
+\fi
+
+\ifx\textpm\undefined\else\RequirePackage{textcmod}\fi
+
+\SetFrakturDefault
+
+\endinput
+
diff --git a/fonts/t1-fraktur/ot1mfrak.fd b/fonts/t1-fraktur/ot1mfrak.fd
new file mode 100644
index 0000000000..cb65418fd0
--- /dev/null
+++ b/fonts/t1-fraktur/ot1mfrak.fd
@@ -0,0 +1,112 @@
+%% t1mfrak.fd Daniel Taupin, July 2002 (fraktur fonts in T1 encoding)
+%% ot1mfrak.fd Vladislav Kurz, November 2002 (fraktur fonts in OT1 encoding)
+%%
+%% This is taken from `ot1cmr.fd',
+%% generated with the docstrip utility.
+%%
+%%
+%%
+\def\Font@Prefix{fk}
+\def\Font@Family{mfrak}
+\ProvidesFile{ot1\Font@Family .fd}
+ [1997/01/14 v2.5a Standard LaTeX font definitions]
+\providecommand{\CM@family}[5]{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}
+ {<10> gen * #5}{}}
+\DeclareFontFamily{OT1}{\Font@Family }{\hyphenchar\font45 }
+\DeclareFontShape{OT1}{\Font@Family }{m}{n}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12> <14.4> %
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2rm10}{}
+\DeclareFontShape{OT1}{\Font@Family }{m}{sl}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2sl10}{}
+
+\DeclareFontShape{OT1}{\Font@Family }{m}{it}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2sl10}{}
+
+ %\DeclareFontShape{OT1}{\Font@Family }{m}{sc}
+ % { <5> \Font@Prefix l2cc05
+ % <6> \Font@Prefix l2cc06
+ % <7> \Font@Prefix l2cc07
+ % <8> \Font@Prefix l2cc08
+ % <9> \Font@Prefix l2cc09
+ % <10> <10.95> <12>
+ % <14.4>
+ % <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2cc10}{}
+ %
+\CM@family{OT1}{\Font@Family }{m}{ui}{cmu} % provisional
+
+%%%%%%% bold series
+\DeclareFontShape{OT1}{\Font@Family }{b}{n}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2bx10}{}
+
+%%%%%%%% bold extended series
+\DeclareFontShape{OT1}{\Font@Family }{bx}{n}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2bx10}{}
+
+\DeclareFontShape{OT1}{\Font@Family }{bx}{sl}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2bl10}{}
+
+\DeclareFontShape{OT1}{\Font@Family }{bx}{it}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2bl10}{}
+
+
+ %\DeclareFontShape{OT1}{\Font@Family }{bx}{sc}
+ % { <5> \Font@Prefix l2xc05
+ % <6> \Font@Prefix l2xc06
+ % <7> \Font@Prefix l2xc07
+ % <8> \Font@Prefix l2xc08
+ % <9> \Font@Prefix l2xc09
+ % <10> <10.95> <12>
+ % <14.4>
+ % <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix l2xc10}{}
+
+\endinput
+%%
+%% End of file `ot1mfrak.fd'.
diff --git a/fonts/t1-fraktur/t1-fraktur.message b/fonts/t1-fraktur/t1-fraktur.message
new file mode 100644
index 0000000000..f02c6be68a
--- /dev/null
+++ b/fonts/t1-fraktur/t1-fraktur.message
@@ -0,0 +1,17 @@
+T1 encoding fraktur fonts have been reviewed recently. Everything needed
+(including an example)
+is in
+http://perso.wanadoo.fr/daniel.taupin/public-soft/tex-fonts/t1-fraktur
+
+Please take it and send me your suggestions for enhancement.
+CTAN handlers are welcome to put it at the appropriate place.
+
+Daniel Taupin taupind@wanadoo.fr
+
+======================================================
+
+ General TTF Fraktur family by Daniel TAUPIN, July 2002, fit for
+ mfrak/fkt1* fonts.
+ Global work done by Yannis Haralambous, Claus Tondering, and Daniel Taupin.
+
+
diff --git a/fonts/t1-fraktur/t1mfrak.fd b/fonts/t1-fraktur/t1mfrak.fd
new file mode 100644
index 0000000000..f2b9159913
--- /dev/null
+++ b/fonts/t1-fraktur/t1mfrak.fd
@@ -0,0 +1,112 @@
+%% t1mfrak.fd Daniel Taupin July 2002 (fraktur fonts in T1 encoding)
+%%
+%% This is taken from `ot1cmr.fd',
+%% generated with the docstrip utility.
+%%
+%%
+%%
+\def\Font@Prefix{fk}
+\def\Font@Family{mfrak}
+\ProvidesFile{t1\Font@Family .fd}
+ [1997/01/14 v2.5a Standard LaTeX font definitions]
+\providecommand{\EC@family}[5]{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}
+ {<5><6><7><8><9><10><10.95><12><14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60><61.92> genb * #5}{}}
+\DeclareFontFamily{T1}{\Font@Family }{\hyphenchar\font45 }
+\DeclareFontShape{T1}{\Font@Family }{m}{n}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12> <14.4> %
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1rm10}{}
+\DeclareFontShape{T1}{\Font@Family }{m}{sl}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1sl10}{}
+
+\DeclareFontShape{T1}{\Font@Family }{m}{it}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1sl10}{}
+
+ %\DeclareFontShape{T1}{\Font@Family }{m}{sc}
+ % { <5> \Font@Prefix t1cc05
+ % <6> \Font@Prefix t1cc06
+ % <7> \Font@Prefix t1cc07
+ % <8> \Font@Prefix t1cc08
+ % <9> \Font@Prefix t1cc09
+ % <10> <10.95> <12>
+ % <14.4>
+ % <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1cc10}{}
+ %
+\EC@family{T1}{\Font@Family }{m}{ui}{ecui} % provisional
+
+%%%%%%% bold series
+\DeclareFontShape{T1}{\Font@Family }{b}{n}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1bx10}{}
+
+%%%%%%%% bold extended series
+\DeclareFontShape{T1}{\Font@Family }{bx}{n}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1bx10}{}
+
+\DeclareFontShape{T1}{\Font@Family }{bx}{sl}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1bl10}{}
+
+\DeclareFontShape{T1}{\Font@Family }{bx}{it}
+ { <5>
+ <6>
+ <7>
+ <8>
+ <9>
+ <10> <10.95> <12>
+ <14.4>
+ <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1bl10}{}
+
+
+ %\DeclareFontShape{T1}{\Font@Family }{bx}{sc}
+ % { <5> \Font@Prefix t1xc05
+ % <6> \Font@Prefix t1xc06
+ % <7> \Font@Prefix t1xc07
+ % <8> \Font@Prefix t1xc08
+ % <9> \Font@Prefix t1xc09
+ % <10> <10.95> <12>
+ % <14.4>
+ % <17.28><20.74><24.88><29.86><35.83><43.00><51.60> \Font@Prefix t1xc10}{}
+
+\endinput
+%%
+%% End of file `t1mfrak.fd'.
diff --git a/fonts/t1-fraktur/testfrak.dvi b/fonts/t1-fraktur/testfrak.dvi
new file mode 100644
index 0000000000..a0cfa40421
--- /dev/null
+++ b/fonts/t1-fraktur/testfrak.dvi
Binary files differ
diff --git a/fonts/t1-fraktur/testfrak.pdf b/fonts/t1-fraktur/testfrak.pdf
new file mode 100644
index 0000000000..51542d7a63
--- /dev/null
+++ b/fonts/t1-fraktur/testfrak.pdf
Binary files differ
diff --git a/fonts/t1-fraktur/testfrak.tex b/fonts/t1-fraktur/testfrak.tex
new file mode 100644
index 0000000000..450c6841c6
--- /dev/null
+++ b/fonts/t1-fraktur/testfrak.tex
@@ -0,0 +1,369 @@
+
+\documentclass[12pt]{article}
+\usepackage{mf-frak}
+\ifx\german\undefined \def\german{\language=7}\fi
+\def\ital#1{{\slshape #1\/}}
+\def\Ital#1{{\bfseries\slshape #1\/}}
+\def\3{\ss}
+\def\<{``}
+\def\>{''}
+\def\Pageref{p.~\pageref}
+\def\medrule{\par\medskip\centerline{\vrule width 0.5\hsize}\par\medskip}
+\def\ecole{{\sf\bfseries SPORT{}}}
+\def\FFME{{\SetCmDefault\rm FFME{}}}
+\def\COSIROC{{\SetCmDefault\rm COSIROC{}}}
+\begin{document}
+\german
+
+%\SetCmDefault
+
+\title{\Large\bf Das| Klettern in Frankreich}
+\author{\SetCmDefault\sl D. Taupin}
+\date{{\SetCmDefault\bf 16 juillet 2002}}
+\date{{\SetCmDefault\rm 16 juillet 2002}}
+\maketitle
+
+{\huge (a) (e)}
+
+\section{Was| gibt es| neu?} \rm
+
+\begin{enumerate}
+ \item Der Hauptheraus|geber dieser sechsten Aus|gabe des| \ital{Guide des|
+sites| naturels| d'escalade} ist jetzt die \FFME{} (F\'ed\'eration fran\c
+caise de la montagne et de l'escalade), zusammen mit dem \COSIROC, nicht
+anders| herum. Hier wurde der Tatsache Rechnung getragen, das{}s| im Zuge der
+Weiterentwicklung des| Klettersports| immer mehr die Departement-Komitees|
+sowie die regionalen Komitees| der \FFME{} die Klettergebiete erschlossen
+haben und uns| die Informationen liefern.
+
+ \item Die Anzahl der Klettergebiete steigt weiterhin, auch wenn man momentan
+eher anstrebt, die vorhandenen Gebiete zu erweitern oder dichter einzubohren,
+als| neue zu schaffen, die ihrerseits| Probleme aufwerfen; sei es| mit den
+Eigent\"umern, mit den zust\"andigen Verwaltungen, oder den besorgten Umwelt-
+oder Sicherheitsbeauftragten.
+
+ \item Abgesehen vom Hochgebirge werden immer noch viele, einstmals| alpine,
+Touren eingebohrt, aber sicher sportlicher als| in den Klettergarten, und
+stellen dadurch ein relativ unberechenbares| Zwischending zwischen dem
+\"ubersicherten Klettergarten und unabgesichertem Gel\"ande dar. Aus| diesem
+Grund mussten wir die Aus|wahlkriterien f\"ur die in diesem F\"uhrer genannten
+Gebiete \"uberarbeiten:
+ \begin{itemize}
+ \item Wir f\"uhren alle Felsen --- egal ob alpines| oder Sportklettern ---,
+unter 1600~m H\"ohe auf, von denen es| bekannt ist, das{}s| sie beklettert wurden,
+oder das{}s| sie kletterbar sind.
+ \item Dar\"uber hinaus| f\"uhren wir die Gebiete auf, die aus|reichend
+erschlossen sind, um mit Hilfe vom Klemmkeilen beklettert zu werden, daf\"ur
+aber keine, f\"ur die Bohrmaschine und Haken erforderlich sind.
+ \item Auch wenn man teilweise Pl\"attchen oder zementierte Haken findet, haben
+wir absichtlich das| Hochgebirge weggelassen, also Klettereien, f\"ur die auch im
+Sommer Eispickel, Steigeisen, Bergschuhe erforderlich sind, auch f\"ur Zu- oder
+Abstieg.
+
+ \end{itemize}
+
+ \item Ein anderes| wichtiges| und gleicherma\3en schlimmes| Ph\"anomen ist
+der Befall unseres| Landes| --- oder praktisch ganz Westeuropas| --- von
+dieser verh\"angnis|vollen amerikanischen Manie, bei jedem Unfall, der sich
+ereignet, einen Verantwortlichen zu suchen, bzw. sogar einen Schuldigen. Das|
+zieht f\"ur unsere Sportart, wie im \"ubrigen f\"ur alle Natursportarten,
+mehrere nachteilige Konsequenzen nach sich:
+
+
+ \begin{itemize}
+ \item viele Anf\"anger im Klettern, Wandern, Skifahren oder Bergsteigen
+entziehen sich
+jegliche Verantwortung: welche Dummheit ich auch immer begehe, der
+Schuldige ist der ``andere'', der F\"uhrer, der Kletterlehrer, der
+B\"urgermeister, der Pr\"afekt, der Grundst\"uckseigent\"umer, der Kollege... oder der
+F\"uhrerautor;
+
+ \item all das| besch\"aftigt die Juristen, vor allem aber erh\"oht das| die
+Versicherungs|kosten, die unerschwinglich werden f\"ur junge Leute, Leute mit
+niedrigen Einkommen und f\"ur all die kleinen Gemeinden, in deren
+Einzugsbereich es| ungl\"ucklicherweise ein Klettergebiet gibt, bzw. H\"ohlen
+oder Canyoningm\"oglichkeiten;
+
+ \item es| kommt noch schlimmer: die Verwundeten oder Angeh\"origen der
+Unfallopfer geben sich nicht damit zufrieden, Schadenersatz zu
+verlangen, der von der Haftptlichtversicherung des| mutma\3lichen
+Verantwortlichen gezahlt wird, sie klagen denselben wahrhaftiger
+Verbrechen an wie fahrl\"assige K\"orperverletzung, Gef\"ahrdung fremden
+Lebens|, Totschlag, usw.; und hier entscheidet nicht mehr das|
+Zivilgericht, sondem das| Strafgericht, mit hohen Geldstrafen --- die niemals|
+durch die Versicherungen abgedeckt sind --- oder sogar Gef\"angnisstrafen.
+ \end{itemize}
+
+\end{enumerate}
+
+ Die Reaktion des| potentiellen Schuldigen liegt in dem Fall auf der Hand:
+drakonische und damit abschreckende Bedingungen auferlegen (was| der
+Fall ist bei den Clubs| oder Freizeitorganisationen), oder schlichtweg Verbote
+erteilen (der Fall der B\"urgermeister, Eigent\"umer oder Pr\"afekten).
+
+\section{Unsere juristischen Vorkehrungen}
+
+ Im Artikel 17 des| Gesetzes| zum Sport von 1984 steht: \<In jeder sportlichen
+Disziplin und f\"ur einen abgegrenzten Zeitraum erh\"alt ein einziger Verband den
+Auftrag des| Ministers| f\"ur Sport, sportliche Wettk\"ampfe zu organisieren (...)
+und die entsprechenden Qualifikationen durchzuf\"uhren. Dieser Verband
+definiert, unter Achtung der internationalen Reglements|, die seiner Sportart
+eigenen technischen Regeln.\>
+
+ Der beauftragte Verband, der unter anderem f\"ur den Klettersport und den
+Alpinismus| diese technischen Regeln definiert hat, ist die \FFME. Sie hat daher
+1993 eine gewisse Anzahl an Sicherheits|vorschriften (siehe \ital{Consignes|
+f\'ed\'erales| de s\'ecurit\'e} im franz\"osischen Text, \Pageref{consfede})
+festgelegt; Vorschriften, deren Mi\3achtung einen technischen Fehler
+darstellt, f\"ur den der unvorsichtige Aus|\"ubende selbst voll verantwortlich
+ist und in gleichem Ma\3 der \<andere Schuldige\>, den manche zu suchen versucht
+sind, nicht verantwortlich.
+
+ Zusammengefasst bedeuten diese Vorschriften, das{}s| der Kletterer die
+Aus|r\"ustung, die Qualit\"at des| Gesteins|, die Wetterverh\"altnisse des|
+Kletterortes| selbtst \"uberpr\"ufen mus{}s|, entweder durch visuelle Beobachtung,
+mit Hilfe der Literatur oder anderer Informationsquellen, deren
+Zuverl\"assigkeit er selbst absch\"atzen muss. Wenn all da ungen\"ugend ist,
+soll er selbstverst\"andlich verzichten oder absteigen.
+
+ Weitere Vorsichtregeln sollen hier noch gegeben werden: jeder, der sich ohne
+Aus|bildung oder vorangegangenes| Training auf ein Gel\"ande von mittlerer
+Steigung \"uber 50~\% (30 Grad) begibt, der sich zu Fu\3 einem Felsmassiv auf
+einen Abstand, weniger als| die halbe H\"ohe des| Massivs|, n\"ahert oder der sich
+auf dem Gipfel in wehiger als| 5~m Abstand von der Abbruchkante aufh\"alt
+(aus|genommen touristische Einrichtung), handelt \<fahrl\"assig\>. Diese
+Fahrl\"assigkeit beinhaltet damit die eigene Verantwortung in dem Ma\3e wie der
+Zugang zu diesem Ort nicht einen Notwendigkeits|charakter hatte wie z.B. der
+Weg zur Arbeits|st\"atte, zur Wohnortst\"atte oder auch zu einem Freizeitort
+(Aktivit\"aten in freier Natur aus|genommen).
+
+
+\section{Die beschriebenen Kletterorte}
+
+Mit dem Aus|druck \<nat\"urliche Klettergebiete\> meinen wir nicht nur die
+Kletterfelsen, die sich aus| Naturwirkung ergeben haben, sondern auch gewisse
+Bauwerke, die urspr\"unglich nicht f\"ur das| Klettern
+bestimmt waren (z.b.: Eisenbahn- und Festungwerke, D\"amme, Steinbr\"uche).
+Wir haben erw\"agt, das{}s| die k\"unstlichen Kletterw\"ande eines| besonderen
+F\"uhrers| w\"urdig seien.
+
+ Die Klettergebiete wurden in vier Kategorien unterteilt:
+
+ \begin{enumerate}
+
+ \item Bezeichnung \<Site sportif d'Escalade\> (Klettergarten) f\"ur eine
+be\-grenz\-te An\-zahl von Felsenw\"anden, die folgende Kriterien
+erf\"ullen: Instand\-haltung, Sicherheit, schriftliche Unterlagen usw.
+
+ \item Bezeichnung \<Initiation\> (Anf\"anger\-klettergarten) f\"ur eine noch
+begrenzte Anzahl von Klettergebieten, die besonders| die
+Sicherheits|\-erfordernisse der Kletter\-beginner erf\"ullen, und die eine
+gute Aus|wahl von Beginner\-routen (3 bis| 5) bieten.
+
+ \item Im Gegensatz dazu hei\3en \<Terrains| d'Aventure\> andere
+Klettergebiete, die nicht diese Kriterien erf\"ullen, und wo der Kletterer auf
+alles| gefasst sein muss: keine Haken oder eine gro\3e Anzahl von Haken in
+schlechtem Zustand, irrige Routenf\"uhrer, verschrobene Schwierigkeitskalen
+usw.
+
+ \item Schlie\3lich wurden als| \<Blocs\> (Boulder) Felsbl\"ocke von geringer
+H\"ohe be\-zeich\-net, f\"ur die keinerlei Aus|r\"ustung ben\"otigt wird und
+auf die die oben beschriebene Unterscheidung nicht angewandt werden kann.
+
+ \end{enumerate}
+\section{Einige Empfehlungen} \rm
+
+ Der Klettersport hat die Besonderheit, das{}s| er an Orten
+betrieben wird, die von normalen Wohn- und Arbeits|gebieten entfernt
+liegen und die sich von ihnen unterscheiden. Trotzdem sind diese
+Gebiete nicht unbewohnt und es| kommt leider manchmal zu
+Aus|einandersetzungen zwischen den Ortsans\"assigen und den Kletterern.
+
+Auch wenn dem eine gewisse Ablehung der seltsamen Fremden, die die
+Kletterer ja sind, durch die Einheimischen zu Grunde liegen kann, so
+liegt doch auch ein gro\3er Teil der Schuld im Verhalten des|
+Kletterers. Auch wenn man in etwa zugeben kann, das{}s| die Vorg\"ange in
+einer Wand nur die Kletterer und den Naturschutz betreffen, so sei
+doch darauf hingewiesen, das{}s| der Zugang zu vielen Steilw\"anden aus|
+landwirtschaftlichen, forstwirtschaftlichen oder selbst aus|
+kommerziell gen\"utzten Gebieten besteht. Die Kletterer sind bei weitem
+nicht die Einzigen, die ein Anrecht auf diese Gebiete haben, die f\"ur
+die Einheimischen Arbeit und Verdienst bedeuten. Die Kletterer sollen
+sich daher nicht wie Eroberer sondern wie G\"aste benehmen.
+
+ Deswegen bitten wir aus|dr\"ucklich die Kletterer in den landwirtschaftlichen
+und forstwirtschaftlichen Gegenden, die W\"ande nur \"uber die bestehenden
+Feldwege oder, zur Not, \"uber brachliegende Felder zu erreichen. Es| ist
+nicht \"ubertrieben, einen Umweg von einer Stunde oder ein Abseilen zu
+machen, wenn nur auf diese Weise ein Feld geschont werden kann.
+
+ Davon aus|gehend, das{}s| viele Kletterer St\"adter sind, erscheinen uns|
+einige Verhaltensratschl\"age f\"ur das| Landleben angebracht: Obwohl man in
+der Stadt jedes| nicht eingez\"aunte Grundst\"uck betreten darf (das| Schild
+\<Propri\'et\'e Priv\'ee\>, d.h. \Ital{Privatgrundst\"uck}, ist nur ein
+Hinweis), unter der Bedingung, das{}s| man keinen Schaden verursacht,
+betritt man niemals| ein Feld oder
+eine Heuwiese, auch wenn diese nicht eingez\"aunt sind. Es| ist keine
+Entschuldigung, wenn St\"adter ein brachliegendes| Feld nicht von einer
+Heuwiese unterscheiden k\"onnen. Hingegen gibt es| zwei Arten von
+Einfriedungen, die nur schwer voneinander zu unterscheiden sind: Tiergatter,
+die ein \"Uberqueren nicht verbieten, wenn man keinen Schaden anrichtet und
+die Pforte schlie\3t, und Z\"aune, die unbefugtes| Betreten verhindern
+sollen. So sei den Kletterern eindringlichst empfohlen, sich an Ort und
+Stelle \"uber die Verh\"altnisse zu erkundigen, bevor Sie Ihren Weg zur
+gew\"unschten Wand w\"ahlen.
+
+ Noch gr\"o\3ere Vorsicht sei Autofahrern geboten. Ein Auto darf
+niemals| au\3er\-halb der Abstellpl\"atze geparkt werden: wenn Fu\3g\"anger
+auf einem brachliegenden Feld nur wenig Schaden anrichten, so lassen
+sich Autospuren nur schwer wieder entfernen; auch wenn auf schmalen
+Feldwegen ein parkendes| Auto die Durchfahrt f\"ur ein anderes| Auto noch
+freil\"a\3t, so versperrt es| doch den Weg f\"ur land- oder
+forstwirtschaftliches| Ger\"at; auch kann ein starker Verkehr auf den
+Feldwegen die Landarbeit behindern.
+
+ Bringen Sie nicht Ihren vollst\"andigen \Ital{Verpflegung} mit, sondern kaufen
+Sie sie bei den \Ital{lokalen Gesch\"aften}. Wenn m\"oglich, besuchen Sie die
+Bars|, Gasth\"ofe und Zeltpl\"atze der Gemeinde. Es| sei bemerkt, das{}s| die
+Gesch\"aftsleute im Konfliktfall unsere besten Verteidiger sind.
+
+ Man bedauert, das{}s| noch kein Gesetzt aus|dr\"ucklich berechtigt, zu
+den Klettergebieten Zugang zu haben. Aber man mus{}s| sich auch dessen
+bewusst sein, das{}s| ein Gesetzestext zwar einen privaten Eigent\"umer
+zwingen kann, den Zugang zu erlauben, das{}s| er aber nicht eine
+feindlich eingestellte Bev\"olkerung \"uberzeugen kann, sich nicht der
+sch\"adlichen Eindringlinge zu entledigen.
+
+\medskip
+ Abf\"alle: viele Kletterer glauben, das{}s| es| gen\"ugt, wenn Sie Ihre
+Abf\"alle sorgf\"altig eingepackt am Zugang zum Parkplatz oder am Rande
+der Stra\3e hinterlassen, da ja die M\"ullabfuhr dann alles| einsammelt.
+Dabei wird aber vergessen, das{}s| die meisten l\"andlichen Gemeinden nicht
+die Mittel haben, eine M\"ullabfuhr f\"ur alle Stra\3en und Wege zu
+unterhalten. Im besten Falle wird der M\"ull in der Ortsmitte abgeholt,
+meistens| aber bringen die Einwohner ihre Abf\"alle selbst zum
+M\"ullabladeplatz oder sie verbrennen sie. Auch mus{}s| davon Abstand
+genommen werden, die Abf\"alle selbst zum \"ortlichen Depot zu bringen:
+dieses| reicht vielleicht f\"ur ein Dorf von hundert Einwohnern aus|, es|
+ist aber unzureichend f\"ur hunderte von Kletterern, die jeden Sonntag
+einfallen. Man darf sich auch nicht auf die \"uberall montierten
+Abfallbeh\"alter verlassen: sie sind oft zu klein und werden nur
+unregelm\"a\3ig geleert. Wir m\"ochten Sie bitten, diese Beh\"alter den
+Leuten zu \"uberlassen, die weniger gewissenhaft sind als| Sie, und die
+nicht diese Zeilen lesen. Stattdessen schlagen wir vor:
+
+ \medskip\centerline{\LARGE\bf Nehmen Sie alle ihre abf\"alle wieder mit !}
+
+\centerline{\Large\bf(... und auch ein wenig mehr wenn m\"oglich!)}
+
+\medskip
+ Wenn Sie weiter weg wohnen, so k\"onnen Sie auch Ihren M\"ull in einer
+gr\"o\3eren Stadt abladen, indem Sie Ihren M\"ullsack (gut verschlossen) zu
+anderm M\"ull stellen, der auf den Abtransport wartet. In den meisten
+F\"allen sind keine Toiletten vorhanden: vergraben Sie also das|
+Toilettenpapier um die biologische Zersetzung zu beschleunigen; gr\"o\3ere
+Mengen k\"onnen verbrannt werden, wenn kein Sicherheits|risiko besteht. In
+Extremfall wird es| mit Ihrem M\"ull eingesammelt.
+
+ \medrule
+
+ Unabh\"angig von den Ortsans\"assigen ist der Kletterer nicht der einzige,
+der auf die Felswand, die er beklettert, ein Anrecht hat. Arch\"aologische
+Sch\"atze und eine au\3ergew\"ohnliche Vegetation k\"onnen ein Kletterverbot
+nach sich ziehen. Vegetation und historische Sch\"atze leiden nur, wenn sie
+zertreten oder entfernt werden. Hingegen kann schon die blo\3e N\"ahe von
+Menschen die Vermehrung der V\"ogel, die in den Felsen nisten,
+beeintr\"achtigen. Es| mus{}s| betont werden, das{}s| im Gegensatz zum \Ital{homo
+erectus}, den man etwas| zu Unrecht als| \Ital{sapiens} qualifiziert, eine ganze
+Reihe von Vogelarten vom Aus|sterben bedroht sind.
+
+ Bei uns| sind vor allem die Arten betroffen, die in den Kletterw\"anden nisten
+und sich dort vermehren: Wanderfalke, K\"onigsadler, Raubgeier, Uhu, gro\3e
+Saatkr\"ahe. Von diesen Arten gibt es| manchmal nur noch einige dutzend in ganz
+Frankreich. Werden sie nur einmal beim Nestbau oder w\"ahrend der Brutzeit
+gest\"ort (im allgemeinen vom 1. Februar bis| zum 15 Juni), so stirbt die ganze
+Brut, die 1/10 der n\"achsten Vogelgeneration aus|macht. Man kann gewis{}s| sagen,
+das{}s| die Aus|rottung vor allem Pestizide, Jagd und Dummheit verschuldet ist,
+aber es| w\"are traurig, wenn der Gnadensto\3{ }von den Kletterern k\"ame.
+
+ Um drakonische Ma\3nahmen zu vermeiden, die zu einem generellen
+Verbot f\"uhren w\"urden, raten wir eindringlichst davon ab, au\3er\-halb
+der mit {\ecole} gekennzeichneten Stellen von Februar bis|
+einschlie\3lich Juni zu klettern. Auf jeden Fall sollte man mit einem
+Fernglas| mehrere Tage lang untersuchen, ob auch keine Nester
+vorhanden sind.
+
+ Es| sei noch bemerkt, das{}s| in gewissen {\slshape d\'epartements} (Ain,
+Doubs|, Jura, C\^ote d'Or) ein Erlas{}s| des| Pr\"afekten das| Klettern im
+Fr\"uhling in den meisten gro\3en Kletterw\"anden streng verbietet. Diese
+Felsen werden von den Vogel\-schutz\-gesell\-schaften dauenrd \"uber\-wacht,
+die bei \"Uber\-tretung die Wald- oder Land\-ver\-waltungs|\-beh\"orde
+unmit\-tel\-bar benach\-richtigen.
+Geldstrafen von 2~000~{\SetCmDefault\rm FF} bis| 60~000~{\SetCmDefault\rm FF} (1986).
+
+ \medskip\centerline{\vrule width 0.5\hsize height 0.4pt}
+
+ \medskip
+ Bez\"uglich der Aus|r\"ustung der Sport\-kletter\-gebiete hat die \FFME{}
+gem\"a\3ihres| Auftrags| als| Sportbund bestimmt, das{}s| diese zu dem
+Aufgaben\-bereich ihrer Departement\-komitees| geh\"ore. Oft werden die lokalen
+Vereine f\"ur diesen Auftrag von den Departement\-komitees| der \FFME{}
+beauftragt.
+
+ Deshalb, wird eine Route im Kletterf\"uhrer als| \<aus|ger\"ustet\>
+(\Ital{\'equip\'ee}) be\-zeich\-net, so sind die vorhandenen Installationen
+aus|reichend f\"ur den Kletterer, f\"ur den der allgemeine Schwierigkeits|grad
+der Route angepa\3t ist. Es| geht also nicht, das{}s| man die Aus|r\"ustung
+auf eigene Faust zeitweilig ver\"andert. Andernfalls| riskiert man ernsthafte
+Zusammenst\"o\3e (vieleicht Prozesse). F\"ur diese Routen, die
+als| aus|ger\"ustet be\-zeich\-net werden, sollte man also weder Haken noch
+Hammer mit sich f\"uhren, sondern nur Klemmkeile und Schlingen. Dies|
+bedeutet, das{}s| man sich \"uber die am Ort \"ublichen
+Schwierigkeit\-skalenabst\"ande, und \"uber die G\"ultigkeit der
+Kletterf\"uhrer informiert und so selbst nachpr\"uft, ob die angegebenen
+Aus|r\"ustungen noch vorhanden sind. Der Kletterer, der au\3erstande ist,
+eine Strecke zu bew\"altigen, soll sich einen Notaus|stieg suchen, sich von
+oben ein Seil zuwerfen lassen, absteigen oder abseilen. Er darf \Ital{keine
+zus\"atzlichen Haken anbringen}. Hingegen verlangen der \COSIROC{} und die \FFME{}
+von den \"ortlichen Betreuern, das{}s| die vorhandene Aus|r\"ustung dem Niveau
+der Kletterer, die die jeweilige Routen hinsichtlich ihres|
+Schwierigkeits|\-grades| w\"ahlen, angepa\3t ist, und nicht nur von dem
+Niveau der besten Kletterer der Gegend aus|geht.
+
+ % \input sichermo.pub
+
+
+ Wird eine Route als| \<nicht aus|ger\"ustet\> be\-zeich\-net, so empfehlen wir,
+entweder ein gutes| Werk zu verrichten, und die Route \Ital{in Zusammenarbeit mit
+den \"ortlichen Betreuern oder mit dem Departement\-komitee der \FFME}
+aus|zur\"usten, oder so wenig wie m\"oglich Haken zu verwenden, die das| Gestein
+besch\"adigen, unter weitgehendster Verwendung der nat\"urlichen Sicherungen.
+
+In den \Ital{terrains| d'aventure} (Abenteuergebiete, Alpingel\"ande) sind die
+Regeln nicht so streng, aber wir empfehlen den Kletterern dringendst, ihre
+Aus|r\"ustung auf das| Ersetzen von gef\"ahrlichen Haken zu beschr\"anken, und
+\Ital{niemals| eine systematische Aus|r\"ustung der Routen ohne Erlaubnis| von den
+Departement\-komitees| der \FFME{} zu unternehmen}. In der Tat folgt die geringe
+Anzahl von Haken oder die Aus|r\"ustung\-losigkeit in manchen gro\3en Routen
+oft aus| der Absicht, diese Routen so aus|gesetzt, wie sie urspr\"unglich
+geklettert wurden, zu erhalten. Dagegen ist das| Abrei\3en von
+ungesch\"utzten Gew\"achs| und Moos| und die Entfernung von gef\"ahrlichen
+Blocken immer ein gutes| Werk.
+
+ \medskip\centerline{\vrule width 0.5\hsize height 0.4pt}
+
+\medskip Verwenden Sie Magnesia nur in den \"au\3ersten F\"allen: dieses|
+wei\3e Pulver saugt Schwei\3 auf und gibt so den H\"anden
+vor\"ubergehend besseren Halt. Aber leider kann dieses| bl\"ode Pulver nicht
+den edelen Schwei\3 des| Kletterers| von der Luftfeuchtigkeit unterscheiden.
+Nach Gebrauch saugt es| sich mit Wasser voll und erinnert dann sehr an
+Schmierseife, wobei es| auch noch die nat\"urlichen Unebenheiten des| Gesteins|
+zuschmiert. Es| wird denn notwendig immer gr\"o\3ere Mengen Magnesia zu
+verwenden, da nicht nur der Schwei\3, sondern auch der Tau der letzten
+Nacht getrocknet werden muss. Wir empfehlen statt dessen gemahlenes| Harz
+(\<pof\> auf franz\"osichem Kletterjargon), auch Kolophonium genannt. Es| gibt
+H\"anden und F\"u\3en mehr Reibung und ist biologisch und durch
+Sonneneinwirkung abbaubar. Magnesia ist in verd\"unnter Salzs\"aure
+l\"oslich.
+
+\end{document}