summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/tex/plain/amsfonts/amssym.def117
-rw-r--r--Master/texmf-dist/tex/plain/amsfonts/amssym.tex286
-rw-r--r--Master/texmf-dist/tex/plain/amsfonts/cyracc.def285
-rw-r--r--Master/texmf-dist/tex/plain/antt/antt-math.tex271
-rw-r--r--Master/texmf-dist/tex/plain/antt/ofs-8x.tex231
-rw-r--r--Master/texmf-dist/tex/plain/antt/pantyk.tex114
-rw-r--r--Master/texmf-dist/tex/plain/armenian/arm.tex97
-rw-r--r--Master/texmf-dist/tex/plain/armenian/kbdencod.tex132
-rw-r--r--Master/texmf-dist/tex/plain/base/fontchart.tex89
-rw-r--r--Master/texmf-dist/tex/plain/base/gkpmac.tex859
-rw-r--r--Master/texmf-dist/tex/plain/base/letter.tex119
-rw-r--r--Master/texmf-dist/tex/plain/base/list.tex47
-rw-r--r--Master/texmf-dist/tex/plain/base/llist.tex67
-rw-r--r--Master/texmf-dist/tex/plain/base/manmac.tex715
-rw-r--r--Master/texmf-dist/tex/plain/base/mftmac.tex55
-rw-r--r--Master/texmf-dist/tex/plain/base/mptmac.tex89
-rw-r--r--Master/texmf-dist/tex/plain/base/picmac.tex178
-rw-r--r--Master/texmf-dist/tex/plain/base/plain.tex1241
-rw-r--r--Master/texmf-dist/tex/plain/base/story.tex18
-rw-r--r--Master/texmf-dist/tex/plain/base/testfont.tex208
-rw-r--r--Master/texmf-dist/tex/plain/base/webmac.tex206
-rw-r--r--Master/texmf-dist/tex/plain/base/wlist.tex53
-rw-r--r--Master/texmf-dist/tex/plain/calendar/a5.sty45
-rw-r--r--Master/texmf-dist/tex/plain/calendar/a6.sty66
-rw-r--r--Master/texmf-dist/tex/plain/calendar/block.sty59
-rw-r--r--Master/texmf-dist/tex/plain/calendar/calend0.tex156
-rw-r--r--Master/texmf-dist/tex/plain/calendar/calend1.tex85
-rw-r--r--Master/texmf-dist/tex/plain/calendar/feasts.tex32
-rw-r--r--Master/texmf-dist/tex/plain/calendar/moon.tex89
-rw-r--r--Master/texmf-dist/tex/plain/calendar/sun.tex15
-rw-r--r--Master/texmf-dist/tex/plain/calendar/wall.sty60
-rw-r--r--Master/texmf-dist/tex/plain/cellular/cell1.tex148
-rw-r--r--Master/texmf-dist/tex/plain/cellular/cell2.tex216
-rw-r--r--Master/texmf-dist/tex/plain/cellular/cell3.tex132
-rw-r--r--Master/texmf-dist/tex/plain/cellular/cell4.tex355
-rw-r--r--Master/texmf-dist/tex/plain/cellular/cellular.tex29
-rw-r--r--Master/texmf-dist/tex/plain/config/aleph.ini2
-rw-r--r--Master/texmf-dist/tex/plain/config/bplain.ini5
-rw-r--r--Master/texmf-dist/tex/plain/config/etex.ini4
-rw-r--r--Master/texmf-dist/tex/plain/config/language.def29
-rw-r--r--Master/texmf-dist/tex/plain/config/omega.ini2
-rw-r--r--Master/texmf-dist/tex/plain/config/pdfetex.ini5
-rw-r--r--Master/texmf-dist/tex/plain/config/pdftex.ini6
-rw-r--r--Master/texmf-dist/tex/plain/config/tex.ini4
-rw-r--r--Master/texmf-dist/tex/plain/croatian/glhyphen.tex279
-rw-r--r--Master/texmf-dist/tex/plain/croatian/llig.tex126
-rw-r--r--Master/texmf-dist/tex/plain/croatian/ste.tex14
-rw-r--r--Master/texmf-dist/tex/plain/croatian/ttabl.tex56
-rw-r--r--Master/texmf-dist/tex/plain/croatian/ttablb.tex55
-rw-r--r--Master/texmf-dist/tex/plain/croatian/ttablhc.tex59
-rw-r--r--Master/texmf-dist/tex/plain/croatian/ttablo.tex56
-rw-r--r--Master/texmf-dist/tex/plain/croatian/ttabloku.tex57
-rw-r--r--Master/texmf-dist/tex/plain/croatian/ttlis.tex99
-rw-r--r--Master/texmf-dist/tex/plain/cweb/pdfXcwebmac.tex37
-rw-r--r--Master/texmf-dist/tex/plain/cweb/pdfcwebmac.tex406
-rw-r--r--Master/texmf-dist/tex/plain/cweb/pdfdcwebmac.tex113
-rw-r--r--Master/texmf-dist/tex/plain/cweb/pdffcwebmac.tex115
-rw-r--r--Master/texmf-dist/tex/plain/cweb/pdficwebmac.tex136
-rw-r--r--Master/texmf-dist/tex/plain/cweb/pdfwebmac.tex261
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/README86
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyramstx.ini10
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyrblue.ini3
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyrcmfnt.tex82
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyrecfnt.tex82
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyrtex.cfg45
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyrtex.ini2
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyrtex.tex29
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/cyrtxinf.ini25
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/makefmts.bat4
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/makefmts.sh8
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/plainenc.tex252
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/txxdefs.tex38
-rw-r--r--Master/texmf-dist/tex/plain/cyrplain/txxextra.tex27
-rw-r--r--Master/texmf-dist/tex/plain/devanagr/dnmacs.tex530
-rw-r--r--Master/texmf-dist/tex/plain/esint-type1/esint.tex82
-rw-r--r--Master/texmf-dist/tex/plain/etex/etex.src892
-rw-r--r--Master/texmf-dist/tex/plain/etex/etexdefs.lib85
-rw-r--r--Master/texmf-dist/tex/plain/fp/fp.tex49
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/biblotex/biblotex.tex316
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/infr-ex.tex6
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/infram.tex11
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/licz/licz-tst.mex101
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/licz/licz.mex529
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/map/map.tex63
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/map/split.tex63
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/map/tsp-tst.mex68
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/map/tsp.tex49
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/map/tun-test.mex51
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/map/tun.tex51
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/mcol-ex.tex149
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/meashor.tex71
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/mimulcol.tex286
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/plbtx993/plbtxbst.doc2605
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/plbtx993/test.mex19
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/plmac218/plidxmac.tex266
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/plmac218/plind.bat6
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/plmac218/przyklad.tex10
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/rbox-ex.tex56
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/roundbox.tex233
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/tp-crf.tex115
-rw-r--r--Master/texmf-dist/tex/plain/gustlib/verbatim.tex48
-rw-r--r--Master/texmf-dist/tex/plain/harvmac/harvmac.tex324
-rw-r--r--Master/texmf-dist/tex/plain/iwona/iwona-math.tex251
-rw-r--r--Master/texmf-dist/tex/plain/jsmisc/cassette.tex166
-rw-r--r--Master/texmf-dist/tex/plain/jsmisc/idverb.tex215
-rw-r--r--Master/texmf-dist/tex/plain/jsmisc/js-misc.tex244
-rw-r--r--Master/texmf-dist/tex/plain/jsmisc/schild.tex84
-rw-r--r--Master/texmf-dist/tex/plain/jsmisc/sperr.tex116
-rw-r--r--Master/texmf-dist/tex/plain/jsmisc/xfig.tex626
-rw-r--r--Master/texmf-dist/tex/plain/kdgreek/greek.tex366
-rw-r--r--Master/texmf-dist/tex/plain/kdgreek/greektex.tex329
-rw-r--r--Master/texmf-dist/tex/plain/kdgreek/grkhyphen.tex1181
-rw-r--r--Master/texmf-dist/tex/plain/kurier/kurier-math.tex251
-rw-r--r--Master/texmf-dist/tex/plain/levy/greekmacros.tex51
-rw-r--r--Master/texmf-dist/tex/plain/metatex/metatex.tex205
-rw-r--r--Master/texmf-dist/tex/plain/misc/idxmac.tex200
-rw-r--r--Master/texmf-dist/tex/plain/misc/pdfcolor.tex158
-rw-r--r--Master/texmf-dist/tex/plain/misc/placeins.tex135
-rw-r--r--Master/texmf-dist/tex/plain/misc/tugboat.def1164
-rw-r--r--Master/texmf-dist/tex/plain/misc/wasyfont.tex172
-rw-r--r--Master/texmf-dist/tex/plain/misc/xepsf.tex219
-rw-r--r--Master/texmf-dist/tex/plain/mnras/mn.tex3034
-rw-r--r--Master/texmf-dist/tex/plain/newsletr/italic.tex38
-rw-r--r--Master/texmf-dist/tex/plain/newsletr/lodriver.tex57
-rw-r--r--Master/texmf-dist/tex/plain/newsletr/newsletr.tex1453
-rw-r--r--Master/texmf-dist/tex/plain/newsletr/quote.tex119
-rw-r--r--Master/texmf-dist/tex/plain/omega/grlccode.tex572
-rw-r--r--Master/texmf-dist/tex/plain/omega/omega.tex3
-rw-r--r--Master/texmf-dist/tex/plain/patch/patch.tex128
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/ma55doc.tex70
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/ma55lft.tex70
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/maamac.tex193
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/magrmac.tex67
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcadobe.tex300
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdccmdoc.tex64
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdccmlft.tex64
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdccmsub.tex70
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcdoc.def232
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcfmt2.tex398
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcfsel.tex110
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdchyex.tex56
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcimth.tex39
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcl1maa.tex117
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdclft.def106
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcmigr.tex37
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcoput5.tex336
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcpsdoc.tex81
-rw-r--r--Master/texmf-dist/tex/plain/pdcmac/pdcpslft.tex81
-rw-r--r--Master/texmf-dist/tex/plain/pgf/basiclayer/pgf.tex22
-rw-r--r--Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseimage.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaselayers.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseplot.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseshapes.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbasesnakes.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/basiclayer/pgfcore.tex21
-rw-r--r--Master/texmf-dist/tex/plain/pgf/frontendlayer/tikz.tex20
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryarrows.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryautomata.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplothandlers.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplotmarks.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryshapes.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarysnakes.tex17
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikzbackgrounds.tex16
-rw-r--r--Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikztrees.tex16
-rw-r--r--Master/texmf-dist/tex/plain/pgf/systemlayer/pgfsys.tex26
-rw-r--r--Master/texmf-dist/tex/plain/pgf/utilities/pgffor.tex17
-rw-r--r--Master/texmf-dist/tex/plain/plgraph/autopict.sty396
-rw-r--r--Master/texmf-dist/tex/plain/plgraph/color.tex9
-rw-r--r--Master/texmf-dist/tex/plain/plgraph/graphicx.tex13
-rw-r--r--Master/texmf-dist/tex/plain/plgraph/miniltx.tex438
-rw-r--r--Master/texmf-dist/tex/plain/plgraph/picture.tex51
-rw-r--r--Master/texmf-dist/tex/plain/plgraph/psfrag.tex49
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/MIKmathf.tex82
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/ams.pfd21
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/il2cm.pfd49
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/il2cmr.pfd34
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/ly1lm.pfd51
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/ot1cm.pfd49
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/ot1cmr.pfd46
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/ot4cm.pfd49
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/plnfss.tex403
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/qxlm.pfd51
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/t1lm.pfd51
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/t5cm.pfd49
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/t5cmr.pfd49
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/t5lm.pfd51
-rw-r--r--Master/texmf-dist/tex/plain/plnfss/ts1lm.pfd51
-rw-r--r--Master/texmf-dist/tex/plain/rsfs/scrload.tex14
-rw-r--r--Master/texmf-dist/tex/plain/siam/docuptex.tex456
-rw-r--r--Master/texmf-dist/tex/plain/siam/pexample.tex523
-rw-r--r--Master/texmf-dist/tex/plain/siam/siamptex.sty373
-rw-r--r--Master/texmf-dist/tex/plain/treetex/classes.tex105
-rw-r--r--Master/texmf-dist/tex/plain/treetex/l_pic.tex839
-rw-r--r--Master/texmf-dist/tex/plain/treetex/treetex.tex1187
-rw-r--r--Master/texmf-dist/tex/plain/tugboat/tugboat.cmn1070
-rw-r--r--Master/texmf-dist/tex/plain/tugboat/tugboat.sty2238
-rw-r--r--Master/texmf-dist/tex/plain/tugboat/tugproc.sty366
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp01.tex344
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp02.tex345
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp03.tex344
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp04.tex151
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp05.tex197
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp06.tex183
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp07.tex312
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp08.tex215
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp09.tex264
-rw-r--r--Master/texmf-dist/tex/plain/typespec/TypeSp10.tex266
-rw-r--r--Master/texmf-dist/tex/plain/vertex/aer.sty155
-rw-r--r--Master/texmf-dist/tex/plain/vertex/ecnmet.sty151
-rw-r--r--Master/texmf-dist/tex/plain/vertex/fntest.tex92
-rw-r--r--Master/texmf-dist/tex/plain/vertex/jep.sty184
-rw-r--r--Master/texmf-dist/tex/plain/vertex/jepcont.tex93
-rw-r--r--Master/texmf-dist/tex/plain/vertex/jet.sty174
-rw-r--r--Master/texmf-dist/tex/plain/vertex/jpe.sty128
-rw-r--r--Master/texmf-dist/tex/plain/vertex/ppt.sty181
-rw-r--r--Master/texmf-dist/tex/plain/vertex/qje.sty158
-rw-r--r--Master/texmf-dist/tex/plain/vertex/restud.sty193
-rw-r--r--Master/texmf-dist/tex/plain/vertex/test.tex121
-rw-r--r--Master/texmf-dist/tex/plain/vertex/twocol.tex74
-rw-r--r--Master/texmf-dist/tex/plain/vertex/vertest.tex34
-rw-r--r--Master/texmf-dist/tex/plain/vertex/vertex.tex491
-rw-r--r--Master/texmf-dist/tex/plain/vntex/dblaccnt.tex51
-rw-r--r--Master/texmf-dist/tex/plain/vntex/t5code.tex458
-rw-r--r--Master/texmf-dist/tex/plain/vntex/vntexinfo.tex61
-rw-r--r--Master/texmf-dist/tex/plain/wasy/wasyfont.tex172
225 files changed, 45875 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/amsfonts/amssym.def b/Master/texmf-dist/tex/plain/amsfonts/amssym.def
new file mode 100644
index 00000000000..4a92045d6a2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/amsfonts/amssym.def
@@ -0,0 +1,117 @@
+%%% ====================================================================
+%%% @TeX-file{
+%%% filename = "amssym.def",
+%%% version = "2.2",
+%%% date = "22-Dec-1994",
+%%% time = "10:14:01 EST",
+%%% checksum = "28096 117 438 4924",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright (C) 1994 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% email = "tech-support@math.ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "amsfonts, msam, msbm, math symbols",
+%%% supported = "yes",
+%%% abstract = "This is part of the AMSFonts distribution,
+%%% It is the plain TeX source file for the
+%%% AMSFonts user's guide.",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+\expandafter\ifx\csname amssym.def\endcsname\relax \else\endinput\fi
+%
+% Store the catcode of the @ in the csname so that it can be restored later.
+\expandafter\edef\csname amssym.def\endcsname{%
+ \catcode`\noexpand\@=\the\catcode`\@\space}
+% Set the catcode to 11 for use in private control sequence names.
+\catcode`\@=11
+%
+% Include all definitions related to the fonts msam, msbm and eufm, so that
+% when this file is used by itself, the results with respect to those fonts
+% are equivalent to what they would have been using AMS-TeX.
+% Most symbols in fonts msam and msbm are defined using \newsymbol;
+% however, a few symbols that replace composites defined in plain must be
+% defined with \mathchardef.
+
+\def\undefine#1{\let#1\undefined}
+\def\newsymbol#1#2#3#4#5{\let\next@\relax
+ \ifnum#2=\@ne\let\next@\msafam@\else
+ \ifnum#2=\tw@\let\next@\msbfam@\fi\fi
+ \mathchardef#1="#3\next@#4#5}
+\def\mathhexbox@#1#2#3{\relax
+ \ifmmode\mathpalette{}{\m@th\mathchar"#1#2#3}%
+ \else\leavevmode\hbox{$\m@th\mathchar"#1#2#3$}\fi}
+\def\hexnumber@#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
+ 9\or A\or B\or C\or D\or E\or F\fi}
+
+\font\tenmsa=msam10
+\font\sevenmsa=msam7
+\font\fivemsa=msam5
+\newfam\msafam
+\textfont\msafam=\tenmsa
+\scriptfont\msafam=\sevenmsa
+\scriptscriptfont\msafam=\fivemsa
+\edef\msafam@{\hexnumber@\msafam}
+\mathchardef\dabar@"0\msafam@39
+\def\dashrightarrow{\mathrel{\dabar@\dabar@\mathchar"0\msafam@4B}}
+\def\dashleftarrow{\mathrel{\mathchar"0\msafam@4C\dabar@\dabar@}}
+\let\dasharrow\dashrightarrow
+\def\ulcorner{\delimiter"4\msafam@70\msafam@70 }
+\def\urcorner{\delimiter"5\msafam@71\msafam@71 }
+\def\llcorner{\delimiter"4\msafam@78\msafam@78 }
+\def\lrcorner{\delimiter"5\msafam@79\msafam@79 }
+% Note that there should not be a final space after the digits for a
+% \mathhexbox@.
+\def\yen{{\mathhexbox@\msafam@55}}
+\def\checkmark{{\mathhexbox@\msafam@58}}
+\def\circledR{{\mathhexbox@\msafam@72}}
+\def\maltese{{\mathhexbox@\msafam@7A}}
+
+\font\tenmsb=msbm10
+\font\sevenmsb=msbm7
+\font\fivemsb=msbm5
+\newfam\msbfam
+\textfont\msbfam=\tenmsb
+\scriptfont\msbfam=\sevenmsb
+\scriptscriptfont\msbfam=\fivemsb
+\edef\msbfam@{\hexnumber@\msbfam}
+\def\Bbb#1{{\fam\msbfam\relax#1}}
+\def\widehat#1{\setbox\z@\hbox{$\m@th#1$}%
+ \ifdim\wd\z@>\tw@ em\mathaccent"0\msbfam@5B{#1}%
+ \else\mathaccent"0362{#1}\fi}
+\def\widetilde#1{\setbox\z@\hbox{$\m@th#1$}%
+ \ifdim\wd\z@>\tw@ em\mathaccent"0\msbfam@5D{#1}%
+ \else\mathaccent"0365{#1}\fi}
+\font\teneufm=eufm10
+\font\seveneufm=eufm7
+\font\fiveeufm=eufm5
+\newfam\eufmfam
+\textfont\eufmfam=\teneufm
+\scriptfont\eufmfam=\seveneufm
+\scriptscriptfont\eufmfam=\fiveeufm
+\def\frak#1{{\fam\eufmfam\relax#1}}
+\let\goth\frak
+
+% Restore the catcode value for @ that was previously saved.
+\csname amssym.def\endcsname
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/amsfonts/amssym.tex b/Master/texmf-dist/tex/plain/amsfonts/amssym.tex
new file mode 100644
index 00000000000..fdab6ef72a8
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/amsfonts/amssym.tex
@@ -0,0 +1,286 @@
+%%% ====================================================================
+%%% @TeX-file{
+%%% filename = "amssym.tex",
+%%% version = "2.2b",
+%%% date = "26 February 1997",
+%%% time = "13:14:29 EST",
+%%% checksum = "61515 286 903 9155",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright (C) 1997 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "amsfonts, msam, msbm, math symbols",
+%%% supported = "yes",
+%%% abstract = "This is part of the AMSFonts distribution.
+%%% It contains the plain TeX source file for loading
+%%% the AMS extra symbols and Euler fraktur fonts.",
+%%% docstring = "The checksum field above contains a CRC-16 checksum
+%%% as the first value, followed by the equivalent of
+%%% the standard UNIX wc (word count) utility output
+%%% of lines, words, and characters. This is produced
+%%% by Robert Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+%% Save the current value of the @-sign catcode so that it can
+%% be restored afterwards. This allows us to call amssym.tex
+%% either within an AMS-TeX document style file or by itself, in
+%% addition to providing a means of testing whether the file has
+%% been previously loaded. We want to avoid inputting this file
+%% twice because when AMSTeX is being used \newsymbol will give an
+%% error message if used to define a control sequence name that is
+%% already defined.
+%%
+%% If the csname is not equal to \relax, we assume this file has
+%% already been loaded and \endinput immediately.
+\expandafter\ifx\csname pre amssym.tex at\endcsname\relax \else\endinput\fi
+%% Otherwise we store the catcode of the @ in the csname.
+\expandafter\chardef\csname pre amssym.tex at\endcsname=\the\catcode`\@
+%% Set the catcode to 11 for use in private control sequence names.
+\catcode`\@=11
+%% Load amssym.def if necessary: If \newsymbol is undefined, do nothing
+%% and the following \input statement will be executed; otherwise
+%% change \input to a temporary no-op.
+\ifx\undefined\newsymbol \else \begingroup\def\input#1 {\endgroup}\fi
+\input amssym.def \relax
+%% Most symbols in fonts msam and msbm are defined using \newsymbol. A few
+%% that are delimiters or otherwise require special treatment have already
+%% been defined as soon as the fonts were loaded. Finally, a few symbols
+%% that replace composites defined in plain must be undefined first.
+\newsymbol\boxdot 1200
+\newsymbol\boxplus 1201
+\newsymbol\boxtimes 1202
+\newsymbol\square 1003
+\newsymbol\blacksquare 1004
+\newsymbol\centerdot 1205
+\newsymbol\lozenge 1006
+\newsymbol\blacklozenge 1007
+\newsymbol\circlearrowright 1308
+\newsymbol\circlearrowleft 1309
+\undefine\rightleftharpoons
+\newsymbol\rightleftharpoons 130A
+\newsymbol\leftrightharpoons 130B
+\newsymbol\boxminus 120C
+\newsymbol\Vdash 130D
+\newsymbol\Vvdash 130E
+\newsymbol\vDash 130F
+\newsymbol\twoheadrightarrow 1310
+\newsymbol\twoheadleftarrow 1311
+\newsymbol\leftleftarrows 1312
+\newsymbol\rightrightarrows 1313
+\newsymbol\upuparrows 1314
+\newsymbol\downdownarrows 1315
+\newsymbol\upharpoonright 1316
+ \let\restriction\upharpoonright
+\newsymbol\downharpoonright 1317
+\newsymbol\upharpoonleft 1318
+\newsymbol\downharpoonleft 1319
+\newsymbol\rightarrowtail 131A
+\newsymbol\leftarrowtail 131B
+\newsymbol\leftrightarrows 131C
+\newsymbol\rightleftarrows 131D
+\newsymbol\Lsh 131E
+\newsymbol\Rsh 131F
+\newsymbol\rightsquigarrow 1320
+\newsymbol\leftrightsquigarrow 1321
+\newsymbol\looparrowleft 1322
+\newsymbol\looparrowright 1323
+\newsymbol\circeq 1324
+\newsymbol\succsim 1325
+\newsymbol\gtrsim 1326
+\newsymbol\gtrapprox 1327
+\newsymbol\multimap 1328
+\newsymbol\therefore 1329
+\newsymbol\because 132A
+\newsymbol\doteqdot 132B
+ \let\Doteq\doteqdot
+\newsymbol\triangleq 132C
+\newsymbol\precsim 132D
+\newsymbol\lesssim 132E
+\newsymbol\lessapprox 132F
+\newsymbol\eqslantless 1330
+\newsymbol\eqslantgtr 1331
+\newsymbol\curlyeqprec 1332
+\newsymbol\curlyeqsucc 1333
+\newsymbol\preccurlyeq 1334
+\newsymbol\leqq 1335
+\newsymbol\leqslant 1336
+\newsymbol\lessgtr 1337
+\newsymbol\backprime 1038
+\newsymbol\risingdotseq 133A
+\newsymbol\fallingdotseq 133B
+\newsymbol\succcurlyeq 133C
+\newsymbol\geqq 133D
+\newsymbol\geqslant 133E
+\newsymbol\gtrless 133F
+\newsymbol\sqsubset 1340
+\newsymbol\sqsupset 1341
+\newsymbol\vartriangleright 1342
+\newsymbol\vartriangleleft 1343
+\newsymbol\trianglerighteq 1344
+\newsymbol\trianglelefteq 1345
+\newsymbol\bigstar 1046
+\newsymbol\between 1347
+\newsymbol\blacktriangledown 1048
+\newsymbol\blacktriangleright 1349
+\newsymbol\blacktriangleleft 134A
+\newsymbol\vartriangle 134D
+\newsymbol\blacktriangle 104E
+\newsymbol\triangledown 104F
+\newsymbol\eqcirc 1350
+\newsymbol\lesseqgtr 1351
+\newsymbol\gtreqless 1352
+\newsymbol\lesseqqgtr 1353
+\newsymbol\gtreqqless 1354
+\newsymbol\Rrightarrow 1356
+\newsymbol\Lleftarrow 1357
+\newsymbol\veebar 1259
+\newsymbol\barwedge 125A
+\newsymbol\doublebarwedge 125B
+\undefine\angle
+\newsymbol\angle 105C
+\newsymbol\measuredangle 105D
+\newsymbol\sphericalangle 105E
+\newsymbol\varpropto 135F
+\newsymbol\smallsmile 1360
+\newsymbol\smallfrown 1361
+\newsymbol\Subset 1362
+\newsymbol\Supset 1363
+\newsymbol\Cup 1264
+ \let\doublecup\Cup
+\newsymbol\Cap 1265
+ \let\doublecap\Cap
+\newsymbol\curlywedge 1266
+\newsymbol\curlyvee 1267
+\newsymbol\leftthreetimes 1268
+\newsymbol\rightthreetimes 1269
+\newsymbol\subseteqq 136A
+\newsymbol\supseteqq 136B
+\newsymbol\bumpeq 136C
+\newsymbol\Bumpeq 136D
+\newsymbol\lll 136E
+ \let\llless\lll
+\newsymbol\ggg 136F
+ \let\gggtr\ggg
+\newsymbol\circledS 1073
+\newsymbol\pitchfork 1374
+\newsymbol\dotplus 1275
+\newsymbol\backsim 1376
+\newsymbol\backsimeq 1377
+\newsymbol\complement 107B
+\newsymbol\intercal 127C
+\newsymbol\circledcirc 127D
+\newsymbol\circledast 127E
+\newsymbol\circleddash 127F
+\newsymbol\lvertneqq 2300
+\newsymbol\gvertneqq 2301
+\newsymbol\nleq 2302
+\newsymbol\ngeq 2303
+\newsymbol\nless 2304
+\newsymbol\ngtr 2305
+\newsymbol\nprec 2306
+\newsymbol\nsucc 2307
+\newsymbol\lneqq 2308
+\newsymbol\gneqq 2309
+\newsymbol\nleqslant 230A
+\newsymbol\ngeqslant 230B
+\newsymbol\lneq 230C
+\newsymbol\gneq 230D
+\newsymbol\npreceq 230E
+\newsymbol\nsucceq 230F
+\newsymbol\precnsim 2310
+\newsymbol\succnsim 2311
+\newsymbol\lnsim 2312
+\newsymbol\gnsim 2313
+\newsymbol\nleqq 2314
+\newsymbol\ngeqq 2315
+\newsymbol\precneqq 2316
+\newsymbol\succneqq 2317
+\newsymbol\precnapprox 2318
+\newsymbol\succnapprox 2319
+\newsymbol\lnapprox 231A
+\newsymbol\gnapprox 231B
+\newsymbol\nsim 231C
+\newsymbol\ncong 231D
+\newsymbol\diagup 201E
+\newsymbol\diagdown 201F
+\newsymbol\varsubsetneq 2320
+\newsymbol\varsupsetneq 2321
+\newsymbol\nsubseteqq 2322
+\newsymbol\nsupseteqq 2323
+\newsymbol\subsetneqq 2324
+\newsymbol\supsetneqq 2325
+\newsymbol\varsubsetneqq 2326
+\newsymbol\varsupsetneqq 2327
+\newsymbol\subsetneq 2328
+\newsymbol\supsetneq 2329
+\newsymbol\nsubseteq 232A
+\newsymbol\nsupseteq 232B
+\newsymbol\nparallel 232C
+\newsymbol\nmid 232D
+\newsymbol\nshortmid 232E
+\newsymbol\nshortparallel 232F
+\newsymbol\nvdash 2330
+\newsymbol\nVdash 2331
+\newsymbol\nvDash 2332
+\newsymbol\nVDash 2333
+\newsymbol\ntrianglerighteq 2334
+\newsymbol\ntrianglelefteq 2335
+\newsymbol\ntriangleleft 2336
+\newsymbol\ntriangleright 2337
+\newsymbol\nleftarrow 2338
+\newsymbol\nrightarrow 2339
+\newsymbol\nLeftarrow 233A
+\newsymbol\nRightarrow 233B
+\newsymbol\nLeftrightarrow 233C
+\newsymbol\nleftrightarrow 233D
+\newsymbol\divideontimes 223E
+\newsymbol\varnothing 203F
+\newsymbol\nexists 2040
+\newsymbol\Finv 2060
+\newsymbol\Game 2061
+\newsymbol\mho 2066
+\newsymbol\eth 2067
+\newsymbol\eqsim 2368
+\newsymbol\beth 2069
+\newsymbol\gimel 206A
+\newsymbol\daleth 206B
+\newsymbol\lessdot 236C
+\newsymbol\gtrdot 236D
+\newsymbol\ltimes 226E
+\newsymbol\rtimes 226F
+\newsymbol\shortmid 2370
+\newsymbol\shortparallel 2371
+\newsymbol\smallsetminus 2272
+\newsymbol\thicksim 2373
+\newsymbol\thickapprox 2374
+\newsymbol\approxeq 2375
+\newsymbol\succapprox 2376
+\newsymbol\precapprox 2377
+\newsymbol\curvearrowleft 2378
+\newsymbol\curvearrowright 2379
+\newsymbol\digamma 207A
+\newsymbol\varkappa 207B
+\newsymbol\Bbbk 207C
+\newsymbol\hslash 207D
+\undefine\hbar
+\newsymbol\hbar 207E
+\newsymbol\backepsilon 237F
+% Restore the catcode value for @ that was previously saved.
+\catcode`\@=\csname pre amssym.tex at\endcsname
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/amsfonts/cyracc.def b/Master/texmf-dist/tex/plain/amsfonts/cyracc.def
new file mode 100644
index 00000000000..2b183b98be6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/amsfonts/cyracc.def
@@ -0,0 +1,285 @@
+%%% ====================================================================
+%%% @TeX-file{
+%%% filename = "cyracc.def",
+%%% version = "2.2b",
+%%% date = "26 February 1997",
+%%% time = "15:26:08 EST",
+%%% checksum = "¤50915 285 1398 10151",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright (C) 1996 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "amsfonts, tex, cyrillic",
+%%% supported = "yes",
+%%% abstract = "This file contains definitions of accents and
+%%% special characters required for use of cyrillic
+%%% fonts arranged according to the AMS scheme.",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+%%
+%% The \font specification(s) should be made elsewhere, and should include
+%% \newfam\cyrfam
+%% \font\...cyr=wncyr... (e.g. \font\tencyr=wncyr10 )
+%% An appropriate definition for cyrillic, usable in math and text, is
+%% \def\cyr{\fam\cyrfam\...cyr\cyracc}
+%% More extensive instructions for using cyrillic fonts are included in
+%% the AMSFonts 2.2 User's Guide.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef\tempcat=\the\catcode`\@
+\catcode`\@=11
+
+% The first set of definitions is what will be in effect outside of cyrillic,
+% i.e., in transliterated text.
+
+% Definition of \cydot is not ideal; real dot should be in an accent font.
+\def\cydot{{\mathsurround=0pt$\cdot$}}
+
+% \ubar is the definition of \b from PLAIN; it may not work in math mode.
+\def\ubar#1{\oalign{#1\crcr\hidewidth
+ \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}
+
+% Soft and hard signs are represented in transliteration by prime and
+% double prime respectively.
+\def\cprime{\/{\mathsurround=0pt$'$}}
+\def\Cprime{{\mathsurround=0pt$'$}}
+\def\cdprime{\/{\mathsurround=0pt$''$}}
+\def\Cdprime{{\mathsurround=0pt$\ubar{\hbox{$''$}}$}}
+
+\def\dbar{dj} % make real barred d when accent font available
+\def\Dbar{Dj} % ""
+
+% It would be nice to make these control sequences unnecessary; that will
+% probably require d to become active.
+\def\dz{dz}
+\def\Dz{Dz}
+\def\dzh{dzh\cydot }
+\def\Dzh{Dzh\cydot }
+
+
+% Stress marks are sometimes used in cyrillic text, mainly for pedagogic
+% reasons. These definitions support stress marks within {\cyr ...};
+% in transliteration, they are suppressed. Stress is indicated in
+% input by \! preceding a letter on which a stress mark is to appear;
+% an acute accent will appear in the output. Since \! is also a plain
+% command, for negative thin space in math mode, test for math mode and
+% include the plain definition as appropriate.
+
+\def\@gobble#1{}
+\def\@testgrave{\`}
+\def\@stressit{\futurelet\chartest\@stresschar }
+
+\def\@stresschar#1{%
+ \ifx #1y\def\result{\futurelet\chartest\@yligature}%
+ \else \ifx #1Y\def\result{\futurelet\chartest\@Yligature}%
+ \else \ifx\chartest\@testgrave \def\result{\accent"26 }%
+ \else \def\result{\accent"26 #1}%
+ \fi \fi \fi
+ \result }
+
+\def\@yligature{%
+ \ifx a\chartest \def\result{\accent"26 \char"1F \@gobble}%
+ \else \ifx u\chartest \def\result{\accent"26 \char"18 \@gobble}%
+ \else \def\result{\accent"26 y}%
+ \fi \fi
+ \result }
+
+\def\@Yligature{%
+ \ifx a\chartest \def\result{\accent"26 \char"17 \@gobble}%
+ \else \ifx A\chartest \def\result{\accent"26 \char"17 \@gobble}%
+ \else \ifx u\chartest \def\result{\accent"26 \char"10 \@gobble}%
+ \else \ifx U\chartest \def\result{\accent"26 \char"10 \@gobble}%
+ \else \def\result{\accent"26 Y}%
+ \fi \fi \fi \fi
+ \result }
+
+\def\!{\ifmmode \mskip-\thinmuskip \fi}
+
+
+% These are the definitions that will produce cyrillic letters within
+% {\cyr ...} for letters represented in input by control sequences and
+% accented latin letters.
+
+\def\cyracc{%
+ \def\cydot{{\kern0pt}}%
+ \def\cprime{\char"7E }\def\Cprime{\char"5E }%
+ \def\cdprime{\char"7F }\def\Cdprime{\char"5F }%
+ \def\dbar{dj}\def\Dbar{Dj}%
+ \def\dz{\char"1E }\def\Dz{\char"16 }%
+ \def\dzh{\char"0A }\def\Dzh{\char"02 }%
+ \def\'##1{\if c##1\char"0F %
+ \else \if C##1\char"07 %
+ \else \accent"26 ##1\fi \fi }%
+ \def\`##1{\if e##1\char"0B %
+ \else \if E##1\char"03 %
+ \else \errmessage{accent \string\` not defined in cyrillic}%
+ ##1\fi \fi }%
+ \def\=##1{\if e##1\char"0D %
+ \else \if E##1\char"05 %
+ \else \if \i##1\char"0C %
+ \else \if I##1\char"04 %
+ \else \errmessage{accent \string\= not defined in cyrillic}%
+ ##1\fi \fi \fi \fi }%
+ \def\u##1{\if \i##1\accent"24 i%
+ \else \accent"24 ##1\fi }%
+ \def\"##1{\if \i##1\accent"20 \char"3D %
+ \else \if I##1\accent"20 \char"04 %
+ \else \accent"20 ##1\fi \fi }%
+ \def\!{\ifmmode \def\result{\mskip-\thinmuskip}%
+ \else \def\result{\@stressit}\fi \result}}
+
+
+% If cyrillic strings are to be included in \mark's, the accents need
+% to be kept in unexpanded form until the \mark's are interpreted.
+% See note on \mark below for details.
+
+\def\keep@cyracc{\let\cyr=\relax \let\i=\relax
+ \let\ubar=\relax \let\cydot=\relax
+ \let\cprime=\relax \let\Cprime=\relax
+ \let\cdprime=\relax \let\Cdprime=\relax
+ \let\dbar=\relax \let\Dbar=\relax
+ \let\dz=\relax \let\Dz=\relax
+ \let\dzh=\relax \let\Dzh=\relax
+ \let\'=\relax \let\`=\relax \let\==\relax
+ \let\u=\relax \let\"=\relax \let\!=\relax }
+
+
+\catcode`\@=\tempcat
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** CYRACC.DEF *****
+%
+% Access to the cyrillic is through the MR 1980 transliteration scheme,
+% using TeX/Metafont ligature capability. (An alternate set of ligatures
+% exists, for accessing letters beyond the 26 located in the font positions
+% of the 26 roman letters. An authoritative list of the ligature rules is
+% given below, under the heading Ligatures.) Successful use of this file
+% requires appropriate cyrillic and accent fonts, arranged according to
+% the AMS/MR scheme.
+%
+% There are some weaknesses in this ligaturing and accent system.
+% The following are known to be less than satisfactory:
+%
+% the intermediate `ligatures' for shch access numerals;
+% primes (transliteration of hard/soft signs) use math mode;
+% underbar on `cap' double prime is too low (hard sign);
+% thorn d's don't yet exist;
+% \cydot uses math mode;
+% this scheme is not compatible with automatic Russian hyphenation.
+%
+%
+% Notes on the macros:
+%
+% The single space following each hex character code is necessary
+% to prevent the next input character from being gobbled.
+%
+%
+% Note on \mark :
+%
+% Control sequences such as these cyrillic accents should remain
+% unexpanded when generating \mark's; otherwise, the definition of
+% the expanded strings in effect when the \mark is used may be
+% inappropriate. By \let\...=\relax , the \... takes on the important
+% characteristic of a primitive that it will not be expanded further.
+% The following code has been shown to generate correct \mark entries
+% that can be used successfully in running heads:
+%
+% \newtoks\marktoks
+% \def\domark{\keep@cyracc \mark{\the\marktoks}}
+%
+% In running heads, the marks should be accessed using \the to expand
+% the tokens strings properly.
+%
+%
+% Ligatures
+%
+% This is a list of all the letter ligatures in the AMS cyrillic fonts,
+% and in other cyrillic fonts (such as those developed at the University
+% of Washington that use the AMS arrangement).
+%
+% LOWER CASE LIGATURES
+%
+% A. All-letter ligatures
+%
+% ch = `q
+% dj = '016
+% kh = `h
+% lj = '011
+% nj = '010
+% sh = `x; xc = `7 (shc); 7h = `w (shch)
+% ts = `c
+% ya = '037
+% yu = '030
+% zh = '031
+%
+% B. Ligatures with keyed numerals
+%
+% c1 = '017
+% d1 = '016 (dj); d2 = '012 (dzh); d3 = '036 (dz)
+% e0 = '033; e1 = '013; e2 = '015
+% i0 = '032; i1 = '014
+% j1 = '037 (ya); j2 = '030 (yu)
+% l1 = '011 (lj)
+% n1 = '010 (nj)
+% p1 = '176; p2 = '177
+% z1 = '031 (zh)
+%
+% UPPER CASE LIGATURES
+% A. All-letter ligatures
+%
+% CH, Ch = `Q
+% KH, Kh = `H
+% LJ, Lj = '001
+% NJ, Nj = '000
+% SH, Sh = `X; XH, Xh = `6 (SHC, SHc, Shc);
+% 6H, 6h = `W (SHCH, SHCh, SHch, Shch)
+% TS, Ts = `C
+% YA, Ya = '027
+% YU, Yu = '020
+% ZH, Zh = '021
+%
+% B. Ligatures with keyed numerals
+%
+% C1 = '007
+% D1 = '006 (DJ); D2 = '002 (DZH); D3 = '026 (DZ)
+% E0 = '023; E1 = '003; E2 = '005
+% I0 = '022; I1 = '004
+% J1 = '027 (YA); J2 = '020 (YU)
+% L1 = '001 (LJ)
+% N0 = '175 (Number sign); N1 = '000 (NJ)
+% P1 = '136; P2 = '137
+% Z1 = '021 (ZH)
+%
+% DEACTIVATED LIGATURES
+%
+% The dzh and DZH ligatures were originally built in the following manner,
+% but the results were not compatible with desired keyboarding schemes.
+%
+% dz = '036; '036(roman s)h = '012 (dzh)
+% DZ = '026; '026(roman S)H = '002 (DZH)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/tex/plain/antt/antt-math.tex b/Master/texmf-dist/tex/plain/antt/antt-math.tex
new file mode 100644
index 00000000000..5f6575dd1cb
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/antt/antt-math.tex
@@ -0,0 +1,271 @@
+\catcode`@=11
+% roman text
+\font\seventeenrm= rm-anttr at17.28pt
+\font\fourteenrm= rm-anttr at14.4pt
+\font\twelverm= rm-anttr at12pt
+\font\elevenrm= rm-anttr at11pt
+\font\tenrm= rm-anttr
+\font\ninerm= rm-anttr at9pt
+\font\eightrm= rm-anttr at8pt
+\font\sevenrm= rm-anttr at7pt
+\font\sixrm= rm-anttr at6pt
+\font\fiverm= rm-anttr at5pt
+% math italic
+\font\seventeeni= mi-anttri at17.28pt
+\font\fourteeni= mi-anttri at14.4pt
+\font\twelvei= mi-anttri at12pt
+\font\eleveni= mi-anttri at11pt
+\font\teni= mi-anttri
+\font\ninei= mi-anttri at9pt
+\font\eighti= mi-anttri at8pt
+\font\seveni= mi-anttri at7pt
+\font\sixi= mi-anttri at6pt
+\font\fivei= mi-anttri at5pt
+% math symbols
+\font\seventeensy= sy-anttrz at17.28pt
+\font\fourteensy= sy-anttrz at14.4pt
+\font\twelvesy= sy-anttrz at12pt
+\font\elevensy= sy-anttrz at11pt
+\font\tensy= sy-anttrz
+\font\ninesy= sy-anttrz at9pt
+\font\eightsy= sy-anttrz at8pt
+\font\sevensy= sy-anttrz at7pt
+\font\sixsy= sy-anttrz at6pt
+\font\fivesy= sy-anttrz at5pt
+% math extension
+\font\seventeenex= ex-anttr at17.28pt
+\font\fourteenex= ex-anttr at14.4pt
+\font\twelveex= ex-anttr at12pt
+\font\elevenex= ex-anttr at11pt
+\font\tenex= ex-anttr
+\font\nineex= ex-anttr at9pt
+\font\eightex= ex-anttr at8pt
+\font\sevenex= ex-anttr at7pt
+\font\sixex= ex-anttr at6pt
+\font\fiveex= ex-anttr at5pt
+% boldface
+\font\seventeenbf= qx-anttb at17.28pt
+\font\fourteenbf= qx-anttb at14.4pt
+\font\twelvebf= qx-anttb at12pt
+\font\elevenbf= qx-anttb at11pt
+\font\tenbf= qx-anttb
+\font\ninebf= qx-anttb at9pt
+\font\eightbf= qx-anttb at8pt
+\font\sevenbf= qx-anttb at7pt
+\font\sixbf= qx-anttb at6pt
+\font\fivebf= qx-anttb at5pt
+% typewriter
+\font\seventeentt= qx-lmtt12 at17.28pt
+\font\fourteentt= qx-lmtt12 at14.4pt
+\font\twelvett= qx-lmtt12
+\font\eleventt= qx-lmtt10 at11pt
+\font\tentt= qx-lmtt10
+\font\ninett= qx-lmtt9
+\font\eighttt= qx-lmtt8
+\font\seventt= qx-lmtt8 at7pt
+\font\sixtt= qx-lmtt8 at6pt
+\font\fivett= qx-lmtt8 at5pt
+% text italic
+\font\seventeenit= qx-anttri at17.28pt
+\font\fourteenit= qx-anttri at14.4pt
+\font\twelveit= qx-anttri at12pt
+\font\elevenit= qx-anttri at11pt
+\font\tenit= qx-anttri
+\font\nineit= qx-anttri at9pt
+\font\eightit= qx-anttri at8pt
+\font\sevenit= qx-anttri at7pt
+\font\sixit= qx-anttri at6pt
+\font\fiveit= qx-anttri at5pt
+%
+\skewchar\seventeeni='177 \skewchar\fourteeni='177 \skewchar\twelvei='177
+\skewchar\eleveni='177 \skewchar\teni='177 \skewchar\ninei='177
+\skewchar\eighti='177 \skewchar\seveni='177 \skewchar\sixi='177
+\skewchar\fivei='177
+\skewchar\seventeensy='60 \skewchar\fourteensy='60 \skewchar\twelvesy='60
+\skewchar\elevensy='60 \skewchar\tensy='60 \skewchar\ninesy='60
+\skewchar\eightsy='60 \skewchar\sevensy='60 \skewchar\sixsy='60
+\skewchar\fivesy='60
+%
+\let\usereightpointmacro=\relax
+\def\eightpoint{\let\pointsize=\eightpoint
+ \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\eightrm}%
+ \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eighti}%
+ \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\eightit
+ \def\it{\fam\itfam\eightit}%
+ \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\ttfam=\eighttt \def\tt{\fam\ttfam\eighttt}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usereightpointmacro}
+%
+\let\userninepointmacro=\relax
+\def\ninepoint{\let\pointsize=\ninepoint
+ \textfont0=\ninerm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\ninerm}%
+ \textfont1=\ninei \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\ninei}%
+ \textfont2=\ninesy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\nineit
+ \def\it{\fam\itfam\nineit}%
+ \textfont\bffam=\ninebf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\ttfam=\ninett \def\tt{\fam\ttfam\ninett}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userninepointmacro}
+%
+\let\usertenpointmacro=\relax
+\def\tenpoint{\let\pointsize=\tenpoint
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\tenrm}%
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\teni}%
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\tenit
+ \def\it{\fam\itfam\tenit}%
+ \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\tenbf}%
+ \textfont\ttfam=\tentt \def\tt{\fam\ttfam\tentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usertenpointmacro}
+%
+\let\userelevenpointmacro=\relax
+\def\elevenpoint{\let\pointsize=\elevenpoint
+ \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\elevenrm}%
+ \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eleveni}%
+ \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex%
+ \textfont\itfam=\elevenit
+ \def\it{\fam\itfam\elevenit}%
+ \textfont\bffam=\elevenbf \scriptfont\bffam=\eightbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\elevenbf}%
+ \textfont\ttfam=\eleventt \def\tt{\fam\ttfam\eleventt}%
+ \def\big##1{{\hbox{$\left##1\vbox to9.3\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to12.6\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to16\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to19.2\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userelevenpointmacro}
+%
+\let\usertwelvepointmacro=\relax
+\def\twelvepoint{\let\pointsize=\twelvepoint
+ \textfont0=\twelverm \scriptfont0=\ninerm \scriptscriptfont0=\sixrm
+ \def\rm{\fam\z@\twelverm}%
+ \textfont1=\twelvei \scriptfont1=\ninei \scriptscriptfont1=\sixi
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\twelvei}%
+ \textfont2=\twelvesy \scriptfont2=\ninesy \scriptscriptfont2=\sixsy
+ \def\cal{\fam\tw@}%
+ \textfont3=\twelveex \scriptfont3=\twelveex \scriptscriptfont3=\twelveex%
+ \textfont\itfam=\twelveit
+ \def\it{\fam\itfam\twelveit}%
+ \textfont\bffam=\twelvebf \scriptfont\bffam=\ninebf
+ \scriptscriptfont\bffam=\sixbf
+ \def\bf{\fam\bffam\twelvebf}%
+ \textfont\ttfam=\twelvett \def\tt{\fam\ttfam\twelvett}%
+ \def\big##1{{\hbox{$\left##1\vbox to10.2\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to13.8\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to17.4\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to21\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usertwelvepointmacro}
+%
+\let\userfourteenpointmacro=\relax
+\def\fourteenpoint{\let\pointsize=\fourteenpoint
+ \textfont0=\fourteenrm \scriptfont0=\tenrm \scriptscriptfont0=\sevenrm
+ \def\rm{\fam\z@\fourteenrm}%
+ \textfont1=\fourteeni \scriptfont1=\teni \scriptscriptfont1=\seveni
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\fourteeni}%
+ \textfont2=\fourteensy \scriptfont2=\tensy \scriptscriptfont2=\sevensy
+ \def\cal{\fam\tw@}%
+ \textfont3=\fourteenex \scriptfont3=\fourteenex \scriptscriptfont3=\fourteenex%
+ \textfont\itfam=\fourteenit
+ \def\it{\fam\itfam\fourteenit}%
+ \textfont\bffam=\fourteenbf \scriptfont\bffam=\tenbf
+ \scriptscriptfont\bffam=\sixbf
+ \def\bf{\fam\bffam\fourteenbf}%
+ \textfont\ttfam=\fourteentt \def\tt{\fam\ttfam\fourteentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to11.9\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to16.1\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to20.3\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to24.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userfourteenpointmacro}
+%
+\newcount\antttext \antttext=10
+\let\userseventeenpointmacro=\relax
+\def\seventeenpoint{\let\pointsize=\seventeenpoint
+ \textfont0=\seventeenrm \scriptfont0=\twelverm \scriptscriptfont0=\ninerm
+ \textfont1=\seventeeni \scriptfont1=\twelvei \scriptscriptfont1=\ninei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\seventeeni}%
+ \textfont2=\seventeensy \scriptfont2=\twelvesy \scriptscriptfont2=\ninesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\seventeenex \scriptfont3=\seventeenex \scriptscriptfont3=\seventeenex%
+ \textfont\itfam=\seventeenit
+ \textfont\bffam=\seventeenbf \scriptfont\bffam=\twelvebf
+ \scriptscriptfont\bffam=\ninebf
+ \textfont\ttfam=\seventeentt
+ \def\rm{\fam\z@\seventeenrm}%
+ \def\bf{\fam\bffam\seventeenbf}%
+ \def\it{\fam\itfam\seventeenit}%
+ \def\tt{\fam\ttfam\seventeentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to15.3\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to20.7\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to26.1\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to31.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userseventeenpointmacro}
+%
+\newtoks\baselinefactor \baselinefactor={1.2}
+\def\setnormalsp@cing{%
+ \rm % set the em properly
+ \normalbaselineskip=\the\baselinefactor em\relax
+ \normalbaselines
+ \abovedisplayskip=1.2em plus .3em minus .9em%
+ \abovedisplayshortskip=0em plus .3em%
+ \belowdisplayskip=1.2em plus .3em minus .9em%
+ \belowdisplayshortskip=.7em plus .3em minus .4em%
+ \setbox\strutbox=\hbox{\vrule height .7\baselineskip
+ depth .3\baselineskip width\z@}}
+%
+\mathchardef\equalleft="32CD
+\mathchardef\equalright="32CC
+\mathchardef\equalc="32CB
+\mathchardef\Rightarrow="32D1
+\mathchardef\Leftarrowj="32D0
+\mathchardef\minusleft="32C9
+\mathchardef\minusright="32CA
+\mathchardef\minusc="32C8
+\mathchardef\rightarrow="32CF
+\mathchardef\leftarrow="32CE
+\def\Longrightarrow{\equalleft\joinrel\Rightarrow}
+\def\Longleftarrow{\Leftarrowj\joinrel\equalright}
+\def\longrightarrow{\minusright\joinrel\rightarrow}
+\def\longleftarrow{\leftarrow\joinrel\minusleft}
+\def\rightarrowfill{$\m@th\minusright\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\minusc\mkern-2mu$}\hfill
+ \mkern-7mu\mathord\rightarrow$}
+\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\minusc\mkern-2mu$}\hfill
+ \mkern-7mu\minusleft$}
+\catcode`@=11
+\endinput
diff --git a/Master/texmf-dist/tex/plain/antt/ofs-8x.tex b/Master/texmf-dist/tex/plain/antt/ofs-8x.tex
new file mode 100644
index 00000000000..9020181ad4f
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/antt/ofs-8x.tex
@@ -0,0 +1,231 @@
+% Encoding definition of fonts by Storm Type Foundry
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% May 2004 Petr Olsak
+
+% This file declares "expert encoding" of AntykwaTorunska.
+
+% See stormtex.html and ofsdoc.tex manuals for more details.
+
+\protectreading ofs-8x.tex % This is part of OFS package
+
+\characterdef \minusalt 8x 1
+\characterdef \plusalt 8x 2
+\characterdef \equalalt 8x 3
+\characterdef \dividealt 8x 4
+\characterdef \multiplyalt 8x 5
+\characterdef \plusminusalt 8x 6
+\characterdef \minusplusalt 8x 7
+\characterdef \lessalt 8x 8
+\characterdef \greateralt 8x 9
+\characterdef \greaterequalaltpl 8x 10
+\characterdef \lessequalaltpl 8x 11
+\characterdef \textminusplus 8x 12
+\characterdef \textless 8x 13
+\characterdef \textgreater 8x 14
+\characterdef \textlessequal 8x 15
+\characterdef \textgreaterequal 8x 16
+\characterdef \lessequalalt 8x 17
+\characterdef \greaterequalalt 8x 18
+\characterdef \dotlessisuperior 8x 19
+\characterdef \onehalf 8x 20
+\characterdef \onequarter 8x 21
+\characterdef \onethird 8x 22
+\characterdef \oneeighth 8x 23
+\characterdef \threeeighths 8x 24
+\characterdef \fiveeighths 8x 25
+\characterdef \seveneighths 8x 26
+\characterdef \threequarters 8x 27
+\characterdef \twothirds 8x 28
+\characterdef \ligfj 8x 29
+\characterdef \ligffj 8x 30
+\characterdef \ligst 8x 33
+\characterdef \ligct 8x 34
+\characterdef \ligTh 8x 35
+\characterdef \dollarsuperior 8x 36
+\characterdef \parenleftsuperior 8x 40
+\characterdef \parenrightsuperior 8x 41
+\characterdef \commasuperior 8x 44
+\characterdef \hyphensuperior 8x 45
+\characterdef \periodsuperior 8x 46
+\characterdef \fraction 8x 47
+\characterdef \zerosuperior 8x 48
+\characterdef \onesuperior 8x 49
+\characterdef \twosuperior 8x 50
+\characterdef \threesuperior 8x 51
+\characterdef \foursuperior 8x 52
+\characterdef \fivesuperior 8x 53
+\characterdef \sixsuperior 8x 54
+\characterdef \sevensuperior 8x 55
+\characterdef \eightsuperior 8x 56
+\characterdef \ninesuperior 8x 57
+\characterdef \sterlingsuperior 8x 91
+\characterdef \yensuperior 8x 92
+\characterdef \dotaccentsuperior 8x 95
+\characterdef \asuperior 8x 97
+\characterdef \bsuperior 8x 98
+\characterdef \csuperior 8x 99
+\characterdef \dsuperior 8x 100
+\characterdef \esuperior 8x 101
+\characterdef \fsuperior 8x 102
+\characterdef \hsuperior 8x 104
+\characterdef \isuperior 8x 105
+\characterdef \lsuperior 8x 108
+\characterdef \msuperior 8x 109
+\characterdef \nsuperior 8x 110
+\characterdef \osuperior 8x 111
+\characterdef \rsuperior 8x 114
+\characterdef \ssuperior 8x 115
+\characterdef \tsuperior 8x 116
+\characterdef \centsuperior 8x 124
+\characterdef \florinsuperior 8x 125
+\characterdef \euro 8x 128
+\characterdef \eurosuperior 8x 129
+\characterdef \zeronumr 8x 130
+\characterdef \onenumr 8x 131
+\characterdef \twonumr 8x 132
+\characterdef \threenumr 8x 133
+\characterdef \fournumr 8x 134
+\characterdef \fivenumr 8x 135
+\characterdef \sixnumr 8x 136
+\characterdef \sevennumr 8x 137
+\characterdef \eightnumr 8x 138
+\characterdef \ninenumr 8x 139
+\characterdef \zerodnom 8x 140
+\characterdef \onednom 8x 141
+\characterdef \twodnom 8x 142
+\characterdef \threednom 8x 143
+\characterdef \fourdnom 8x 144
+\characterdef \fivednom 8x 145
+\characterdef \sixdnom 8x 146
+\characterdef \sevendnom 8x 147
+\characterdef \eightdnom 8x 148
+\characterdef \ninednom 8x 149
+\characterdef \zeroinferior 8x 150
+\characterdef \oneinferior 8x 151
+\characterdef \twoinferior 8x 152
+\characterdef \threeinferior 8x 153
+\characterdef \fourinferior 8x 154
+\characterdef \fiveinferior 8x 155
+\characterdef \sixinferior 8x 156
+\characterdef \seveninferior 8x 157
+\characterdef \eightinferior 8x 158
+\characterdef \nineinferior 8x 159
+\characterdef \equivasymptotic 8x 160
+\characterdef \equivalence 8x 161
+\characterdef \precedes 8x 162
+\characterdef \precedesequal 8x 163
+\characterdef \lessmuch 8x 164
+\characterdef \greatermuch 8x 165
+\characterdef \follows 8x 166
+\characterdef \followsequal 8x 167
+\characterdef \element 8x 168
+\characterdef \owner 8x 169
+\characterdef \propersubset 8x 170
+\characterdef \reflexsubset 8x 171
+\characterdef \propersuperset 8x 172
+\characterdef \reflexsuperset 8x 173
+\characterdef \arrowsouthwest 8x 174
+\characterdef \arrowsoutheast 8x 175
+\characterdef \arrownorthwest 8x 176
+\characterdef \arrownortheast 8x 177
+\characterdef \arrowleft 8x 178
+\characterdef \arrowright 8x 179
+\characterdef \arrowboth 8x 180
+\characterdef \arrowup 8x 181
+\characterdef \arrowdown 8x 182
+\characterdef \arrowdblleft 8x 183
+\characterdef \arrowdblright 8x 184
+\characterdef \arrowdblup 8x 185
+\characterdef \arrowdbldown 8x 186
+\characterdef \arrowdblboth 8x 187
+\characterdef \arrowlefttophalf 8x 188
+\characterdef \arrowrighttophalf 8x 189
+\characterdef \arrowleftbothalf 8x 190
+\characterdef \arrowrightbothalf 8x 191
+\characterdef \similar 8x 192
+\characterdef \asymptoticallyequal 8x 193
+\characterdef \union 8x 194
+\characterdef \intersection 8x 195
+\characterdef \unionmulti 8x 196
+\characterdef \unionsq 8x 197
+\characterdef \intersectionsq 8x 198
+\characterdef \subsetsqequal 8x 199
+\characterdef \supersetsqequal 8x 200
+\characterdef \openbullet 8x 201
+\characterdef \circleminus 8x 202
+\characterdef \circleplus 8x 203
+\characterdef \circledivide 8x 204
+\characterdef \circlemultiply 8x 205
+\characterdef \circledot 8x 206
+\characterdef \circlecopyrt 8x 207
+\characterdef \diamondmath 8x 208
+\characterdef \asteriskmath 8x 209
+\characterdef \latticetop 8x 210
+\characterdef \perpendicular 8x 211
+\characterdef \turnstileleft 8x 212
+\characterdef \turnstileright 8x 213
+\characterdef \floorleft 8x 214
+\characterdef \floorright 8x 215
+\characterdef \ceilingleft 8x 216
+\characterdef \ceilingright 8x 217
+\characterdef \textlangle 8x 218
+\characterdef \textrangle 8x 219
+\characterdef \dblverticalbar 8x 220
+\characterdef \arrowupdndbl 8x 221
+\characterdef \arrowupdn 8x 222
+\characterdef \universal 8x 223
+\characterdef \existential 8x 224
+\characterdef \wreathproduct 8x 225
+\characterdef \club 8x 226
+\characterdef \spade 8x 227
+\characterdef \heart 8x 228
+\characterdef \diamond 8x 229
+\characterdef \logicaland 8x 230
+\characterdef \logicalor 8x 231
+\characterdef \triangle 8x 232
+\characterdef \triangleinv 8x 233
+\characterdef \triangleright 8x 234
+\characterdef \triangleleft 8x 235
+\characterdef \proportional 8x 236
+\characterdef \arrowhookleft 8x 237
+\characterdef \arrowhookright 8x 238
+\characterdef \flat 8x 239
+\characterdef \vector 8x 240
+\characterdef \tie 8x 241
+\characterdef \nabla 8x 242
+\characterdef \dollarinferior 8x 243
+\characterdef \euroinferior 8x 244
+\characterdef \sterlinginferior 8x 245
+\characterdef \yeninferior 8x 246
+\characterdef \centinferior 8x 247
+\characterdef \parenleftinferior 8x 248
+\characterdef \periodinferior 8x 249
+\characterdef \hypheninferior 8x 250
+\characterdef \commainferior 8x 251
+\characterdef \parenrightinferior 8x 252
+\characterdef \trademark 8x 253
+\characterdef \estimated 8x 254
+
+\modifydef 8z:antt; {%
+ \characterdef \degree 8z 176
+ \characterdef \euro 8z 134
+ \characterdef \trademark 8z 136
+ \characterdef \copyright 8z 137
+ \characterdef \registered 8z 138
+ \characterdef \flq 8z 142
+ \characterdef \frq 8z 143
+ \characterdef \clq 8z 154
+ \characterdef \crq 8z 155
+ \characterdef \longs 8z 149
+ \characterdef \florin 8z 151
+ \accentdel \c T 8z 222
+ \accentdel \c t 8z 189
+}
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/plain/antt/pantyk.tex b/Master/texmf-dist/tex/plain/antt/pantyk.tex
new file mode 100644
index 00000000000..6779777b5bc
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/antt/pantyk.tex
@@ -0,0 +1,114 @@
+% The file pantyk.tex (C) Petr Olsak, May 2004
+% Polish Antykwa ... OFS declaration file
+
+% After "\input pantyk", you can use
+%
+% \showfonts ... to show the loaded fontfamilies on terminal
+% \fontusage ... to show the usage of new TeX macros on terminal
+
+\ifx \ofsdeclarefamily\undefined \input ofs \fi
+\protectreading pantyk.tex % This is part of OFS package
+
+\ofsputfamlist {^^Jpantyk.tex:}
+
+\ofsdeclarefamily [AntykwaTorunska] {% --------------- AntykwaTorunska
+ \loadtextfam (Regular) \nowackienc-anttr;%
+ (Bold) \nowackienc-anttb;%
+ (Italic) \nowackienc-anttri;%
+ (BoldItalic) \nowackienc-anttbi;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttl;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttli;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttm;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttmi;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+\ofsdeclarefamily [AntykwaTorunskaCaps] {% ------- AntykwaTorunskaCaps
+ \loadtextfam (Regular) \nowackienc-anttrcap;%
+ (Bold) \nowackienc-anttbcap;%
+ (Italic) \nowackienc-anttricap;%
+ (BoldItalic) \nowackienc-anttbicap;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttlcap;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttlicap;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttmcap;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttmicap;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+\ofsdeclarefamily [AntykwaTorunskaCond] {% ------- AntykwaTorunskaCond
+ \loadtextfam (Regular) \nowackienc-anttcr;%
+ (Bold) \nowackienc-anttcb;%
+ (Italic) \nowackienc-anttcri;%
+ (BoldItalic) \nowackienc-anttcbi;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttcl;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttcli;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttcm;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttcmi;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+\ofsdeclarefamily [AntykwaTorunskaCondCaps] {% ---- AntykwaTorunskaCondCaps
+ \loadtextfam (Regular) \nowackienc-anttcrcap;%
+ (Bold) \nowackienc-anttcbcap;%
+ (Italic) \nowackienc-anttcricap;%
+ (BoldItalic) \nowackienc-anttcbicap;8x;%
+ \newvariant0 \lr (Light) \nowackienc-anttclcap;8x;%
+ \newvariant1 \li (LightItalic) \nowackienc-anttclicap;8x;%
+ \newvariant2 \mr (Medium) \nowackienc-anttcmcap;8x;%
+ \newvariant3 \mi (MediumItalic) \nowackienc-anttcmicap;8x;%
+ \modifyenc 8z:antt;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z \registerenc: 7k \registerenc: 6w
+\registerenc: 8a
+
+% Janusz Nowacki use a non standard tfm names. We need
+% to define a conversion table:
+
+\def\nowackienc{\csname nowacki:\fotenc\endcsname}
+\expandafter \def \csname nowacki:8t\endcsname {ec}
+\expandafter \def \csname nowacki:8z\endcsname {cs}
+\expandafter \def \csname nowacki:6w\endcsname {1251}
+\expandafter \def \csname nowacki:7k\endcsname {wncyr}
+\expandafter \def \csname nowacki:8a\endcsname {texansi}
+\expandafter \def \csname nowacki:8x\endcsname {exp}
+
+% The expert fonts are the same for Caps and Normal:
+
+\registertfm exp-anttrcap - exp-anttr
+\registertfm exp-anttbcap - exp-anttb
+\registertfm exp-anttricap - exp-anttri
+\registertfm exp-anttbicap - exp-anttbi
+\registertfm exp-anttlcap - exp-anttl
+\registertfm exp-anttlicap - exp-anttli
+\registertfm exp-anttmcap - exp-anttm
+\registertfm exp-anttmicap - exp-anttmi
+
+\registertfm exp-anttcrcap - exp-anttcr
+\registertfm exp-anttcbcap - exp-anttcb
+\registertfm exp-anttcricap - exp-anttcri
+\registertfm exp-anttcbicap - exp-anttcbi
+\registertfm exp-anttclcap - exp-anttcl
+\registertfm exp-anttclicap - exp-anttcli
+\registertfm exp-anttcmcap - exp-anttcm
+\registertfm exp-anttcmicap - exp-anttcmi
+
+\ofsdeclarefamily [AntykwaPoltawskiego] {% --------------- AntykwaPoltawskiego
+ \loadtextfam (Regular) antpr;%
+ (Bold) antpb;%
+ (Italic) antpri;%
+ (BoldItalic) antpbi;;%
+ \def\TeX{T\kern-.08em\lower.3333ex\hbox{E}\kern-0.09emX}%
+}
+\registerenc: 8t \registerenc: 8z
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/armenian/arm.tex b/Master/texmf-dist/tex/plain/armenian/arm.tex
new file mode 100644
index 00000000000..bbc5700692b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/armenian/arm.tex
@@ -0,0 +1,97 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 arm.tex (plain TeX input file for writing in Armenian)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% Making '@' letter.
+%%
+\catcode`\@=11
+
+
+%% Double input protection.
+%%
+\expandafter\ifx\csname ArmTeX@PlainLoaded\endcsname\relax
+\let\ArmTeX@PlainLoaded\null\else\endinput\fi
+
+
+%% Some auxilliary macros.
+%%
+\def\ArmTeX@Armtoday{\number\day~\ifcase\month\or
+ hunvari\or phetrvari\or marti\or aprili\or maisi\or hunisi\or
+ hulisi\or o'gostosi\or septemberi\or hoktemberi\or noyemberi\or
+ dektemberi\fi~\number\year th.}
+\def\ArmTeX@Armdischyph{\discretionary{\char123}{}{}}
+\let\ArmTeX@Savedexclam=\!
+\let\ArmTeX@Savedbar=\|
+\let\ArmTeX@Savedstar=\*
+\let\ArmTeX@Saveddischyph=\-
+\let\ArmTeX@Savedtoday=\today
+
+
+%% User macros.
+%%
+\def\armdate{\let\today\ArmTeX@Armtoday}
+\def\armhyph{\let\-\ArmTeX@Armdischyph
+ \let\@dischyph\ArmTeX@Armdischyph}
+\def\armdateoff{\let\today\ArmTeX@Savedtoday}
+\def\armhyphoff{\let\-\ArmTeX@Saveddischyph
+ \let\@dischyph\ArmTeX@Saveddischyph}
+\def\ArmTeX{{A\kern -0.08ex\raise 0.63ex\hbox{\smash{r}}\kern -0.22em%
+ \lower 0.43ex\hbox{m}\kern -0.16em\aroff\TeX}}
+\def\latArmTeX{{Arm\kern -0.15em\TeX}}
+
+\chardef\textbraceleft=94
+\chardef\textbraceright=95
+\chardef\textdollar=36
+\chardef\texthash=35
+\chardef\textpercent=37
+\chardef\textand=38
+\chardef\textexclam=126
+\chardef\textquestion=127
+\def\textanjgic{\leavevmode
+ \kern0.02em\vrule height0.4ex depth-0.25ex width0.8em\kern0.02em\relax}
+\def\textbreaklig{{\kern0pt}}
+\let\?\textquestion
+\def\*{\ifmmode\ArmTeX@Savedstar\else\textbreaklig\fi}
+\def\!{\ifmmode\ArmTeX@Savedexclam\else\textexclam\fi}
+\def\|{\ifmmode\ArmTeX@Savedbar\else\textanjgic\fi}
+\def\{{\ifmmode\lbrace\else\textbraceleft\relax\fi}
+\def\}{\ifmmode\rbrace\else\textbraceright\relax\fi}
+\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hbox{$\ldotp$}\hbox{$\ldotp$}\hbox{$\ldotp$}}}
+\def\ddots{\mathinner{\mkern1mu\raise7\p@
+ \vbox{\kern7\p@\hbox{$\ldotp$}}\mkern2mu
+ \raise4\p@\hbox{$\ldotp$}\mkern2mu\raise\p@\hbox{$\ldotp$}\mkern1mu}}
+
+
+%% Font changing macros.
+%%
+\let\arofffont=\rm
+\def\aroff{\armdateoff\armhyphoff\arofffont}
+
+\def\ArmTeX@DeclarePlainFont#1#2#3{%
+\font#1=#2
+\hyphenchar #1=-1
+\def#3{\armdate\armhyph #1}}
+
+\ArmTeX@DeclarePlainFont{\tenartmrm}{artmr10}{\artm}
+\ArmTeX@DeclarePlainFont{\tenartmbf}{artmb10}{\artmbf}
+\ArmTeX@DeclarePlainFont{\tenartmsl}{artmsl10}{\artmsl}
+\ArmTeX@DeclarePlainFont{\tenartmbfsl}{artmbs10}{\artmbfsl}
+\ArmTeX@DeclarePlainFont{\tenartmit}{artmi10}{\artmit}
+\ArmTeX@DeclarePlainFont{\tenartmbfit}{artmbi10}{\artmbfit}
+\ArmTeX@DeclarePlainFont{\tenarssrm}{arssr10}{\arss}
+\ArmTeX@DeclarePlainFont{\tenarsssl}{arsssl10}{\arsssl}
+\ArmTeX@DeclarePlainFont{\tenarssbf}{arssb10}{\arssbf}
+\ArmTeX@DeclarePlainFont{\tenarssbfsl}{arssbs10}{\arssbfsl}
+
+
+%% Making '@' other.
+%%
+\catcode`\@=12
+
+
+%% That's all, Folks!
+%%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/armenian/kbdencod.tex b/Master/texmf-dist/tex/plain/armenian/kbdencod.tex
new file mode 100644
index 00000000000..6b315b3f909
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/armenian/kbdencod.tex
@@ -0,0 +1,132 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 kbdencod.tex (ArmSCII8 input encoding for plain)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% Begining of the code.
+%%
+\def\DeclareInputText#1#2{%
+ \bgroup
+ \uccode`\~#1%
+ \uppercase{%
+ \egroup
+ \catcode`~=13
+ \def~%
+ }{#2}
+}
+
+
+%% Upper-case letters.
+%%
+\DeclareInputText{178}{A}% Upper-case A (Ayb) letter.
+\DeclareInputText{180}{B}% Upper-case B (Ben) letter.
+\DeclareInputText{182}{G}% Upper-case G (Gim) letter.
+\DeclareInputText{184}{D}% Upper-case D (Da) letter.
+\DeclareInputText{186}{E}% Upper-case E (Ech) letter.
+\DeclareInputText{188}{Z}% Upper-case Z (Za) letter.
+\DeclareInputText{190}{E'}% Upper-case E' (E') letter.
+\DeclareInputText{192}{U'}% Upper-case U' (U'th) letter.
+\DeclareInputText{194}{TH}% Upper-case TH (Tho) letter.
+\DeclareInputText{196}{G'}% Upper-case G' (G'e) letter.
+\DeclareInputText{198}{I}% Upper-case I (Ini) letter.
+\DeclareInputText{200}{L}% Upper-case L (Lyun) letter.
+\DeclareInputText{202}{X}% Upper-case X (Xe) letter.
+\DeclareInputText{204}{C'}% Upper-case C' (C'a) letter.
+\DeclareInputText{206}{K}% Upper-case K (Ken) letter.
+\DeclareInputText{208}{H}% Upper-case H (Ho) letter.
+\DeclareInputText{210}{DZ}% Upper-case DZ (Dza) letter.
+\DeclareInputText{212}{GH}% Upper-case GH (Ghat) letter.
+\DeclareInputText{214}{J'}% Upper-case J' (J'e) letter.
+\DeclareInputText{216}{M}% Upper-case M (Men) letter.
+\DeclareInputText{218}{Y}% Upper-case Y (Hi) letter.
+\DeclareInputText{220}{N}% Upper-case N (Nu) letter.
+\DeclareInputText{222}{SH}% Upper-case SH (Sha) letter.
+\DeclareInputText{224}{O}% Upper-case O (O) letter.
+\DeclareInputText{226}{CH}% Upper-case CH (Cha) letter.
+\DeclareInputText{228}{P}% Upper-case P (Pe) letter.
+\DeclareInputText{230}{J}% Upper-case J (Je) letter.
+\DeclareInputText{232}{R'}% Upper-case R' (R'a) letter.
+\DeclareInputText{234}{S}% Upper-case S (Se) letter.
+\DeclareInputText{236}{V}% Upper-case V (Vev) letter.
+\DeclareInputText{238}{T}% Upper-case T (Tyun) letter.
+\DeclareInputText{240}{R}% Upper-case R (Re) letter.
+\DeclareInputText{242}{C}% Upper-case C (Co) letter.
+\DeclareInputText{244}{W}% Upper-case W (Vyun) letter.
+\DeclareInputText{246}{PH}% Upper-case PH (Phyur) letter.
+\DeclareInputText{248}{Q}% Upper-case Q (Qe) letter.
+\DeclareInputText{250}{O'}% Upper-case O' (O') letter.
+\DeclareInputText{252}{F}% Upper-case F (Fe) letter.
+
+
+%% Lower-case letters.
+%%
+\DeclareInputText{179}{a}% Lower-case a (ayb) letter.
+\DeclareInputText{181}{b}% Lower-case b (ben) letter.
+\DeclareInputText{183}{g}% Lower-case g (gim) letter.
+\DeclareInputText{185}{d}% Lower-case d (da) letter.
+\DeclareInputText{187}{e}% Lower-case e (ech) letter.
+\DeclareInputText{189}{z}% Lower-case z (za) letter.
+\DeclareInputText{191}{e'}% Lower-case e' (e') letter.
+\DeclareInputText{193}{u'}% Lower-case u' (u'th) letter.
+\DeclareInputText{195}{th}% Lower-case th (tho) letter.
+\DeclareInputText{197}{g'}% Lower-case g' (g'e) letter.
+\DeclareInputText{199}{i}% Lower-case i (ini) letter.
+\DeclareInputText{201}{l}% Lower-case l (lyun) letter.
+\DeclareInputText{203}{x}% Lower-case x (xe) letter.
+\DeclareInputText{205}{c'}% Lower-case c' (c'a) letter.
+\DeclareInputText{207}{k}% Lower-case k (ken) letter.
+\DeclareInputText{209}{h}% Lower-case h (ho) letter.
+\DeclareInputText{211}{dz}% Lower-case dz (dza) letter.
+\DeclareInputText{213}{gh}% Lower-case gh (ghat) letter.
+\DeclareInputText{215}{j'}% Lower-case j' (j'e) letter.
+\DeclareInputText{217}{m}% Lower-case m (men) letter.
+\DeclareInputText{219}{y}% Lower-case y (hi) letter.
+\DeclareInputText{221}{n}% Lower-case n (nu) letter.
+\DeclareInputText{223}{sh}% Lower-case sh (sha) letter.
+\DeclareInputText{225}{o}% Lower-case o (o) letter.
+\DeclareInputText{227}{ch}% Lower-case ch (cha) letter.
+\DeclareInputText{229}{p}% Lower-case p (pe) letter.
+\DeclareInputText{231}{j}% Lower-case j (je) letter.
+\DeclareInputText{233}{r'}% Lower-case r' (r'a) letter.
+\DeclareInputText{235}{s}% Lower-case s (se) letter.
+\DeclareInputText{237}{v}% Lower-case v (vev) letter.
+\DeclareInputText{239}{t}% Lower-case t (tyun) letter.
+\DeclareInputText{241}{r}% Lower-case r (re) letter.
+\DeclareInputText{243}{c}% Lower-case c (co) letter.
+\DeclareInputText{245}{w}% Lower-case w (vyun) letter.
+\DeclareInputText{247}{ph}% Lower-case ph (phyur) letter.
+\DeclareInputText{249}{q}% Lower-case q (ge) letter.
+\DeclareInputText{251}{o'}% Lower-case o' (o') letter.
+\DeclareInputText{253}{f}% Lower-case f (fe) letter.
+
+
+%% Miscelanious Symbols.
+%%
+% Commenting following line, since there is no eternity symbol available.
+% \DeclareInputText{161}{}% Eternity sign (armeternity)
+\DeclareInputText{162}{\S}% Section sign (armsection)
+\DeclareInputText{163}{:}% Verjaket (armfullstop)
+\DeclareInputText{164}{)}% Aj phakagic' (armparenright)
+\DeclareInputText{165}{(}% Dzax phakagic' (armparenleft)
+\DeclareInputText{166}{>>}% Aj chakert (armquotright)
+\DeclareInputText{167}{<<}% Dzax chakert(armquotleft)
+\DeclareInputText{168}{\textanjgic}% Anjatman gic' (armemdash)
+\DeclareInputText{169}{.}% Mijaket (armdot)
+\DeclareInputText{170}{`}% Buth (armsep)
+\DeclareInputText{171}{,}% Storaket (armcoma)
+\DeclareInputText{172}{-}% Miuthyan gc'ik (armendash)
+\DeclareInputText{173}{--}% Toghadardzi nshan (armyentamna)
+\DeclareInputText{174}{...}% Kaxman keter (armellipsis)
+\DeclareInputText{175}{!}% Bacakanchakan nshan (armexclam)
+\DeclareInputText{176}{|}% Shesht (armaccent)
+\DeclareInputText{177}{?}% Harcakan nshan (armquestion)
+\DeclareInputText{254}{'}% Apatharc (armapostrophe)
+% Coding "Apatharc" as 255 (except as 254), since it can
+% be found in that position in many ArmSCII8 fonts.
+\DeclareInputText{255}{'}% Apatharc (armapostrophe)
+
+
+%% That's all, Folks!
+%%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/base/fontchart.tex b/Master/texmf-dist/tex/plain/base/fontchart.tex
new file mode 100644
index 00000000000..6acc6211551
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/fontchart.tex
@@ -0,0 +1,89 @@
+% make a (fairly large) font chart
+
+\newlinechar=`@
+\message{@Name of the font to chart = }
+\read-1 to \fontname
+
+\font\f=\fontname at .75in
+\f
+
+% Here's the best way I know to discover character height and depth
+% when they are possibly negative.
+\fontdimen5\f=-10000pt % a new (rather small) xheight
+\textfont0=\f
+\newdimen\h \newdimen\d % will be set to the character's height, depth
+\def\htdp#1{\setbox0=\hbox{\char#1}\h=-\ht0
+ \setbox0=\hbox{\accent#1\char#1}\advance\h\ht0 \advance\h-10000pt
+ \setbox0=\null \wd0=-10000pt % in case the character has a charlist!
+ \setbox0=\hbox{$\mathaccent#1{\box0}$}%
+ \d=\ht0 \advance\d-10000pt \advance\d-\h}
+
+% (By the way, my previous best was this:
+% \textfont15=\f % use family "F
+% \fontdimen8\tenex=0pt % set defaultrulethickness zero
+% \setbox1=\null \ht1=-10000pt \setbox2=\null \dp3=-10000pt
+% \newdimen\d \newdimen\h \newcount\n
+% \n=#1 \advance\n"F00
+% \setbox0=\hbox{$\radical\n{\copy1}$}
+% \d=\dp0 \advance\d-5000pt \advance\d\d %\showthe\d
+% \setbox0=\hbox{$\radical\n{\copy2}$}
+% \h=\ht0 \advance\h-5000pt \advance\h-.5\d
+% \ifdim\h>0pt \h=.5\h \fi
+% ....very tricky! But it works only when height+depth is positive.)
+
+\tracinglostchars=0
+\nopagenumbers
+
+\def\testrow#1#2{\setbox0=\hbox{\penalty1\def\\{\char'#1#2}%
+ \\0\\1\\2\\3\\4\\5\\6\\7\global\chardef\p=\lastpenalty}} % p=1 if none there
+
+\raggedbottom
+\baselineskip=1in
+\topskip=.75in
+\newdimen\w \w=.75in
+\headline={\vtop{\hbox{\tt\fontname\unskip, page \folio\hfil}
+ \kern-.75in\unitsdigits}\hss}
+\footline={\unitsdigits\hss}
+\def\unitsdigits{\hbox{\kern.3in \tt
+ \hbox to\w{\ \ 0\hss}%
+ \hbox to\w{\ \ 1\hss}%
+ \hbox to\w{\ \ 2\hss}%
+ \hbox to\w{\ \ 3\hss}%
+ \hbox to\w{\ \ 4\hss}%
+ \hbox to\w{\ \ 5\hss}%
+ \hbox to\w{\ \ 6\hss}%
+ \hbox to\w{\ \ 7\hss}}}
+
+\def\row#1#2{\testrow#1#2%
+\ifnum\p=0\hbox{\hbox to.3in{\tt#1#2\hfil}%
+ \mod#1#20\mod#1#21\mod#1#22\mod#1#23\mod#1#24\mod#1#25\mod#1#26\mod#1#27%
+ \hbox to.3in{\tt\hfil#1#2}}\fi}
+
+\newdimen\pixel \pixel=.00333333in
+\def\mod#1#2#3{\chardef\c='#1#2#3 \htdp\c
+ \setbox0=\hbox{\penalty1\c\global\chardef\p=\lastpenalty}%
+ \ifnum\p=1 \hbox to\w{}\else
+ \setbox2=\hbox{\c\/}%
+ \hbox to\w{\kern-\pixel \vrule width\pixel height\h depth\d
+ \copy\leftbox\copy0\copy\rightbox
+ \vrule width\pixel height\h depth\d \kern-\pixel \kern-\wd0
+ \raise\h\vbox{\hrule height\pixel width\wd0}\kern-\wd0
+ \lower\d\vbox{\hrule height0pt depth\pixel width\wd0}\kern-\wd0
+ \ifdim\wd2>\wd0 \kern\wd2\raise\h\copy\icbox \fi
+ \hss}\fi}
+
+\newbox\leftbox % marking the baseline at the left
+\setbox\leftbox=\hbox{\kern-\pixel\vrule width\pixel height4pt
+ \vrule height0pt depth\pixel width4pt \kern-4pt}
+\newbox\rightbox % marking the baseline at the right
+\setbox\rightbox=\hbox{\kern-4pt\vrule height0pt depth\pixel width4pt
+ \vrule width\pixel height4pt \kern-\pixel}
+\newbox\icbox % the mark of an italic correction
+\setbox\icbox=\hbox{\kern-4pt\vrule height\pixel width4pt depth0pt
+ \vrule width\pixel depth4pt}
+
+\row00 \row01 \row02 \row03 \row04 \row05 \row06 \row07
+\row10 \row11 \row12 \row13 \row14 \row15 \row16 \row17
+\row20 \row21 \row22 \row23 \row24 \row25 \row26 \row27
+\row30 \row31 \row32 \row33 \row34 \row35 \row36 \row37
+\bye
diff --git a/Master/texmf-dist/tex/plain/base/gkpmac.tex b/Master/texmf-dist/tex/plain/base/gkpmac.tex
new file mode 100644
index 00000000000..cdcd7b9c087
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/gkpmac.tex
@@ -0,0 +1,859 @@
+\tracingpages=1 % TEMPORARY!
+% Macros for `Concrete Mathematics'
+\ifx\gkpmac\fmtversion\endinput\else\let\gkpmac=\fmtversion\fi
+
+% Fonts for regular text
+
+\font\textrm=ccr10 % roman
+\font\textit=ccti10 % italic (emphasis)
+\font\textsl=ccsl10 % slanted (titles)
+\font\textbf=cmbx10 % bold
+\font\textcsc=cccsc10 % caps and small caps
+\font\oldsty=ccmi10 % equation numbers
+
+% Fonts for regular math
+% I'm setting \fontdimen2 to zero because AMS forgot to do it;
+% they may have fixed the problem in the meantime, but no harm is done
+
+\font\mathtext=ccr10
+ \font\mathsubtext=ccr7
+ \font\mathsubsubtext=ccr5
+\font\mathlet=eurm10 \fontdimen2\mathlet=0pt
+ \font\mathsublet=eurm7 \fontdimen2\mathsublet=0pt
+ \font\mathsubsublet=eurm5 \fontdimen2\mathsubsublet=0pt
+ \skewchar\mathlet='177 \skewchar\mathsublet='177 \skewchar\mathsubsublet='177
+\font\mathsym=cmsy10
+ \font\mathsubsym=cmsy7
+ \font\mathsubsubsym=cmsy5
+ \skewchar\mathsym='60 \skewchar\mathsubsym='60 \skewchar\mathsubsubsym='60
+\font\mathext=cmex10
+ \font\mathsubext=cmex10
+ \font\mathsubsubext=cmex10
+\font\mathscr=euxm10\fontdimen2\mathscr=0pt
+ \font\mathsubscr=euxm7 \fontdimen2\mathsubscr=0pt
+ \font\mathsubsubscr=euxm5 \fontdimen2\mathsubsubscr=0pt
+ \skewchar\mathscr='60 \skewchar\mathsubscr='60 \skewchar\mathsubsubscr='60
+\font\mathfr=eufm10\fontdimen2\mathfr=0pt
+ \font\mathsubfr=eufm7 \fontdimen2\mathsubfr=0pt
+ \font\mathsubsubfr=eufm5 \fontdimen2\mathsubsubfr=0pt
+\font\matheuex=euex10\fontdimen2\matheuex=0pt
+
+\font\eulerbf=eurb10 \fontdimen2\eulerbf=0pt % not hooked in to these macros
+
+% Fonts for graffiti
+
+\font\gtext=ccslc9
+\font\goldstyle=ccmic9
+ \fontdimen3\gtext=0pt \fontdimen4\gtext=0pt % no stretch or shrink
+\font\gmathtext=ccr9
+ \font\gmathsubtext=ccr6
+ \font\gmathsubsubtext=ccr5
+\font\gmathlet=eurm10 scaled 900 \fontdimen2\gmathlet=0pt
+ \font\gmathsublet=eurm7 scaled 857 \fontdimen2\gmathsublet=0pt
+ \font\gmathsubsublet=eurm5 \fontdimen2\gmathsubsublet=0pt
+ \skewchar\gmathlet='177 \skewchar\gmathsublet='177
+ \skewchar\gmathsubsublet='177
+\font\gmathsym=cmsy9
+ \font\gmathsubsym=cmsy6
+ \font\gmathsubsubsym=cmsy5
+ \skewchar\gmathsym='60 \skewchar\gmathsubsym='60 \skewchar\gmathsubsubsym='60
+\font\gmathext=cmex9
+ \font\gmathsubext=cmex9
+ \font\gmathsubsubext=cmex9
+\font\gmathscr=euxm10 scaled 900 \fontdimen2\gmathscr=0pt
+ \font\gmathsubscr=euxm7 scaled 857 \fontdimen2\gmathsubscr=0pt
+ \font\gmathsubsubscr=euxm5 \fontdimen2\gmathsubsubscr=0pt
+ \skewchar\gmathscr='60 \skewchar\gmathsubscr='60 \skewchar\gmathsubsubscr='60
+\font\gmathfr=eufm10 scaled 900 \fontdimen2\gmathfr=0pt
+ \font\gmathsubfr=eufm7 scaled 857 \fontdimen2\gmathsubfr=0pt
+ \font\gmathsubsubfr=eufm5 \fontdimen2\gmathsubsubfr=0pt
+\font\gmatheuex=euex9 \fontdimen2\gmatheuex=0pt
+
+% Fonts for headings, etc.
+
+\font\chapfont=cmbxcd10 scaled 8000
+\font\title=cmbx10 scaled \magstep5
+\font\subtitle=cmbx10 scaled 1315 % that's magstep 1.5
+\font\subsubtitle=cmbxsl10
+\font\runhead=cmbx9
+\font\foliofont=cmr9
+\font\gtfont=cmmi9 % for the \t accent
+\font\ninesl=ccsl9 % used in the index only
+
+% Normal text conventions
+
+\catcode`@=11 % borrow the private macros of PLAIN (with care)
+\def\wlog#1{} % don't put allocation info into the log
+
+\hsize=28pc
+\vsize=45.25pc
+\parindent=20pt
+\baselineskip=13pt
+
+\let\sc=\textcsc
+\let\bf=\textbf
+\def\textindent#1{\noindent\hbox to\parindent{\bf#1\hfil}\ignorespaces}
+\def\exitem{\hangindent2\parindent \textindent}
+
+\textfont0=\mathtext
+ \scriptfont0=\mathsubtext
+ \scriptscriptfont0=\mathsubsubtext
+\textfont1=\mathlet \let\tfont=\teni
+ \scriptfont1=\mathsublet
+ \scriptscriptfont1=\mathsubsublet
+\textfont2=\mathsym
+ \scriptfont2=\mathsubsym
+ \scriptscriptfont2=\mathsubsubsym
+\textfont3=\mathext
+ \scriptfont3=\mathsubext
+ \scriptscriptfont3=\mathsubsubext
+\def\rm{\fam\z@\textrm}
+\def\it{\fam\itfam\textit} % \it is family 4, defined in PLAIN
+\def\sl{\textsl}
+\textfont\itfam=\textit
+\newfam\scrfam \ifnum\scrfam=8\relax\else\error\fi % family 8, script
+\textfont\scrfam=\mathscr
+ \scriptfont\scrfam=\mathsubscr
+ \scriptscriptfont\scrfam=\mathsubsubscr
+\def\scr{\fam8 }
+\mathcode`0="7130
+\mathcode`1="7131
+\mathcode`2="7132
+\mathcode`3="7133
+\mathcode`4="7134
+\mathcode`5="7135
+\mathcode`6="7136
+\mathcode`7="7137
+\mathcode`8="7138
+\mathcode`9="7139
+\newfam\frfam % family 9, fraktur
+\textfont\frfam=\mathfr
+ \scriptfont\frfam=\mathsubfr
+ \scriptscriptfont\frfam=\mathsubsubfr
+\def\frak{\fam9 }
+\newfam\euexfam % family 10, substitions for euler symbols
+\newfam\eqfam % family 11, cmr equal signs for Relbar (!)
+\font\teneq=cmr10 \textfont\eqfam=\teneq
+\font\nineeq=cmr9
+% I'm not using Relbar except in 9&10pt, so this family is very incomplete...
+
+\mathchardef\intop="1A52
+\mathchardef\ointop="1A48
+\mathchardef\coprod="1A60
+\mathchardef\prod="1A51
+\mathchardef\sum="1A50
+\mathchardef\braceld="A7A \mathchardef\bracerd="A7B
+\mathchardef\bracelu="A7C \mathchardef\braceru="A7D
+\mathchardef\infty="0A31
+
+\mathchardef\nearrow="3A25
+\mathchardef\searrow="3A26
+\mathchardef\nwarrow="3A2D
+\mathchardef\swarrow="3A2E
+\mathchardef\Leftrightarrow="3A2C
+\mathchardef\Leftarrow="3A28
+\mathchardef\Rightarrow="3A29
+\mathchardef\leftrightarrow="3A24 \mathcode`\^^W="3A24
+\mathchardef\leftarrow="3A20 \let\gets=\leftarrow \mathcode`\^^X="3A20
+\mathchardef\rightarrow="3A21 \let\to=\rightarrow \mathcode`\^^Y="3A21
+\def\uparrow{\delimiter"3A22378 } \mathcode`\^^K="3A22
+\def\downarrow{\delimiter"3A23379 } \mathcode`\^^A="3A23
+\def\updownarrow{\delimiter"3A6C33F }
+\def\Uparrow{\delimiter"3A2A37E }
+\def\Downarrow{\delimiter"3A2B37F }
+\def\Updownarrow{\delimiter"3A6D377 }
+\mathchardef\leftharpoonup="3A18
+\mathchardef\leftharpoondown="3A19
+\mathchardef\rightharpoonup="3A1A
+\mathchardef\rightharpoondown="3A1B
+
+\textfont\euexfam=\matheuex
+\scriptfont\euexfam=\mathsubsym % this is OK since I don't use all characters
+% of euex in subscripts/superscripts; otherwise I'd have to make euex7 and euex6
+\scriptscriptfont\euexfam=\mathsubsym % only for \mathchoice, not really chosen
+\mathcode`+="292B
+\mathcode`-="292D
+\mathcode`!="0921
+\mathcode`(="4928 \delcode`(="928300
+\mathcode`)="5929 \delcode`)="929301
+\mathcode`[="495B \delcode`[="95B302
+\mathcode`]="595D \delcode`]="95D303
+\mathcode`=="393D
+\mathchardef\Relbar="3B3D % we need the old = to match \Arrows
+\mathchardef\Gamma="7100
+\mathchardef\Delta="7101
+\mathchardef\Theta="7102
+\mathchardef\Lambda="7103
+\mathchardef\Xi="7104
+\mathchardef\Pi="7105
+\mathchardef\Sigma="7106
+\mathchardef\Upsilon="7107
+\mathchardef\Phi="7108
+\mathchardef\Psi="7109
+\mathchardef\Omega="710A
+\let\varsigma=\sigma \let\varrho=\rho % Euler doesn't have these
+\mathchardef\aleph="0840
+\def\rbrace{\delimiter"5867A09 } \let\}=\rbrace
+\def\lbrace{\delimiter"4866A08 } \let\{=\lbrace
+%\mathchardef\equiv="3811 \let\cong=\equiv % lowres bars weren't spaced right
+\mathchardef\leq="3814 \let\le=\leq
+\mathchardef\geq="3815 \let\ge=\geq
+\mathchardef\Re="083C
+\mathchardef\Im="083D
+\def\vert{\delimiter"86A30C }
+\def\backslash{\delimiter"86E30F }
+
+\setbox\strutbox=\hbox{\vrule height9pt depth4pt width\z@}%
+\newbox\bigstrutbox \newbox\biggstrutbox
+\setbox\bigstrutbox=\hbox{\vrule height11pt depth4pt width\z@}%
+\def\bigstrut{\relax\ifmmode\copy\bigstrutbox\else\unhcopy\bigstrutbox\fi}
+\setbox\biggstrutbox=\hbox{\vrule height17pt depth10pt width\z@}%
+\def\biggstrut{\relax\ifmmode\copy\biggstrutbox\else\unhcopy\biggstrutbox\fi}
+\rm
+
+\newmuskip\normalthick \normalthick=5mu plus 5mu
+\newmuskip\normalmedmu \normalmedmu=\medmuskip
+\newmuskip\displaythick \displaythick=10mu minus 3mu
+\everymath{\thickmuskip=\normalthick}
+
+\abovedisplayskip=8pt plus 3pt minus 2pt % there's 2pt more (opened up)
+\belowdisplayskip=10pt plus 3pt minus 2pt
+
+% displays not centered; all have capability of \eqalign
+\outer\def\begindisplay{\obeylines\startdisplay}
+{\obeylines\gdef\startdisplay#1
+ {\catcode`\^^M=5$$%
+ \advance\displayindent\parindent\advance\displaywidth-\parindent%
+ \openup2pt #1\halign\bgroup\span\preamble\cr}}
+\outer\def\enddisplay{\crcr\egroup$$}
+\jot=\z@ % we do our own opening up
+
+\def\displaymath{$\thickmuskip=\displaythick\displaystyle}
+\def\preamble{\hfil\displaymath{##}$&&\displaymath{{}##}$\hfil}
+\def\tablepreamble{\bigstrut\hfil$##$\hfil\ &\vrule##&&\quad\hfil$##$\hfil}
+\def\xbox{\qquad\hbox} % for third column of explanation
+
+\newcount\eqcount
+\def\equ(#1.#2){{\rm({\oldsty#1}.{\oldsty#2})}}
+\def\eq(#1){\equ(\chapno.#1)}
+\def\thiseq{\xdef\next{(\chapno.\number\eqcount)}\expandafter\equ\next}
+\def\eqno{\global\advance\eqcount 1 \global\everycr{\makeeqno\thiseq}}
+\newdimen\backup
+\def\makeeqno#1{\noalign{\global\everycr{}%
+ \advance\displaywidth\displayindent
+ \setbox0=\hbox to\displaywidth{\hfil#1}%
+ \backup=\prevdepth \advance\backup\ht0
+ \setbox0=\vbox{\kern-\backup\box0}\ht0=\z@ \dp0=\z@
+ \setbox0=\vbox{\box0}\unvbox0}} % that puts equation number on prev line!
+
+\newif\iftitle
+\newskip\chaptopspace \chaptopspace=1in minus 5pt
+\def\beginchapter#1 #2 \par{ % we should be at top of a page
+ \titletrue \eqcount=0
+ \ifodd\pageno
+ \rightline{\chapfont#1\kern-.05em}
+ \vskip\chaptopspace
+ \rightline{\title#2}
+ \moveleft7pc % this applies to the \vbox after the \fi
+ \else % left-hand page
+ \leftline{\kern-.05em\chapfont#1}
+ \vskip\chaptopspace
+ \leftline{\title#2} \fi
+ \vbox{\hrule width 35pc}
+ \def\chapno{#1} \edef\chaptitle{#2}
+ \mark{#1\enspace #2}
+ \smallskip\noindent}
+
+\def\beginsection#1 #2 \par{ % should not be first in the chapter
+ \backup=\lastskip % but should come on first or second page of chapter
+ \mark{#1\enspace #2} % because the mark gives running head on right page
+ \nobreak\vskip-\backup\penalty-200
+ {\subtitle\baselineskip=34pt
+ \noindent\hbox to2\parindent{#1\hfil}\uppercase{\kern-.05em#2}\par}
+ \nobreak\vskip5pt\noindent\hbox to2\parindent{}}
+
+\newcount\excount
+\def\beginexercises{\backup=\lastskip \excount=0
+ \mark{\chapno\enspace Exercises}
+ \nobreak\vskip-\backup\penalty-200
+ {\subtitle\baselineskip=34pt\noindent Exercises\par}\nobreak}
+
+{\catcode`\|=\active
+\gdef\table#1\tabref|#2|{\hrule height1pt width\hsize \kern2pt
+ \noindent\strut{\bf Table |#2|\enspace}#1\par
+ \hrule height.5pt width\hsize\tabref|#2|}}
+
+\def\medbr{\ifnum\lastpenalty>9999 \medskip \else\medbreak\fi}
+\def\subhead#1\par{\medbr
+ {\subsubtitle\noindent#1\par}\nobreak}
+\def\ex:{\par{\advance\medskipamount-1pt\medbr}%
+ \advance\excount 1 \item{\number\excount}}
+
+\def\dash---{\thinspace---\hskip.16667em\relax}
+\def\qback{\kern-.15em} % between , or . and ''
+\def\undertext#1{$\underline{\smash{\hbox{#1}}}$}
+\def\newline{\hfil\break}
+\def\Hint:{{\it Hint:\/}}
+\let\macron=\= % we will use \= for congruence relation
+\def\t#1{{\edef\next{\the\font}\tfont\accent"7F\next#1}}
+
+% Here's a definition that was corrected in plain.tex version 3.14159;
+% I'm keeping the old version here, because I had already been compensating
+% for its deficiencies in script and scriptscript styles; without this
+% buggy version, it would be hard for me to match the old pages precisely
+\def\bmod{\mskip-\medmuskip\mkern5mu
+ \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip}
+
+% Graffiti macros
+\chardef\other=12
+\newread\grfi \openin\grfi=\jobname.grf
+%\newwrite\grfo \immediate\openout\grfo=\jobname.grf % let's hope no conflict
+%% Hmmm...; that doesn't work on Unix.
+%% Here's my first solution, a kludge where I alternated between .grf and .gr
+%\newif\ifgrf \newwrite\grfo \newwrite\grfempty
+%\ifeof\grfi \grffalse
+%\else\read\grfi to\grfitest \ifeof\grfi \grffalse \else \grftrue \fi\fi
+%\ifgrf\else \openin\grfi=\jobname.gr
+% \ifeof\grfi\else\read\grfi to\grfitest \fi\fi
+%\immediate\openout\grfo=\jobname.gr\ifgrf\else f\fi
+%\immediate\write\grfo{} % an empty line will start a nonempty file (Unix only)
+%% and then at the end I said
+% \immediate\openout\grfempty=\jobname.gr\ifgrf f\fi % clear the input file
+%% That solution worked with the following original macros
+%\def\testnextgrf{{\def\do##1{\catcode`##1=\other}\dospecials
+% \global\read\grfi to\next}\expandafter\testgrf\meaning\next\testgrf}
+%\expandafter\def\expandafter\testgrf\meaning\empty#1 #2\testgrf{%
+% \setup#2!!!!!$\ifx\thisone\thatone\if#1R\Rtrue\else\Rfalse\fi\else\Rguess\fi}
+%% Anyway, here's my second approach to Unix: (order n^2 algorithm)
+\def\\{{\def\do##1{\catcode`##1=\other}\dospecials \endlinechar=-1 \let\eol=0
+ \gdef\grfmem{}
+ \expandafter\def\expandafter\gbbl\meaning\empty{}
+ \def\appgrf{\read\grfi to\g
+ \ifx\g\empty\else\xdef\grfmem{\grfmem\expandafter\gbbl\meaning\g\eol}\fi}
+ \def\next{\ifeof\grfi\let\next\relax\else\appgrf\fi\next}\next}}
+\\ % now \grfmem is "L aaaaa\eol R bbbbb\eol ... R zzzzz\eol".
+\def\testnextgrf#1 #2\eol#3\\{\gdef\grfmem{#3}\setup#2!!!!!$%
+ \ifx\thisone\thatone\if#1R\Rtrue\else\Rfalse\fi\else\Rguess\fi}
+\newwrite\grfo \immediate\openout\grfo=\jobname.grf % no conflict now
+
+\def\graffiti{% set up graffiti style
+ \hsize=6pc
+ \baselineskip=10pt \lineskip=0pt \lineskiplimit=0pt
+ \parindent=0pt
+ \mathsurround=1pt
+ \textfont0=\gmathtext
+ \scriptfont0=\gmathsubtext
+ \scriptscriptfont0=\gmathsubsubtext
+ \textfont1=\gmathlet \let\tfont=\gtfont
+ \scriptfont1=\gmathsublet
+ \scriptscriptfont1=\gmathsubsublet
+ \textfont2=\gmathsym
+ \scriptfont2=\gmathsubsym
+ \scriptscriptfont2=\gmathsubsubsym
+ \textfont3=\gmathext
+ \scriptfont3=\gmathsubext
+ \scriptscriptfont3=\gmathsubsubext
+\textfont\scrfam=\gmathscr
+ \scriptfont\scrfam=\gmathsubscr
+ \scriptscriptfont\scrfam=\gmathsubsubscr
+\textfont\frfam=\gmathfr
+ \scriptfont\frfam=\gmathsubfr
+ \scriptscriptfont\frfam=\gmathsubsubfr
+\textfont\euexfam=\gmatheuex
+\scriptfont\euexfam=\gmathsubsym % OK since I don't use all chars in this size
+\textfont\eqfam=\nineeq
+ \def\rm{\fam\z@\gtext}%
+ \let\oldsty=\goldstyle
+ \let\big=\ninebig
+ \setbox\strutbox=\hbox{\vrule height7.25pt depth2.75pt width\z@}%
+ \gtext
+ \rightskip=\z@ plus2em % ragged right
+ \tolerance=2000
+ \hyphenpenalty=300
+ \exhyphenpenalty=300
+ \doublehyphendemerits=100000
+ \finalhyphendemerits=\doublehyphendemerits
+ }
+\def\ninebig#1{{\hbox{$\textfont0=\tenrm\textfont2=\tensy
+ \left#1\vbox to7.25pt{}\right.\n@space$}}}
+\def\grafctr{\hbox to4.5pc{\hfil##\hfil}}
+
+\newif\ifR % does this entry go on a right-hand page?
+\def\Rguess{\def\ifR{\ifodd\pageno}}
+\long\def\g#1\g{\def\next{#1!!!!!}\expandafter\writegrf\meaning\next$%
+ \ifx\grfmem\empty\Rguess\else\expandafter\testnextgrf\grfmem\\\fi
+% pre-Unix, that line was \ifeof\grfi\Rguess\else\testnextgrf\fi
+ \setbox0=\vtop{\graffiti#1%
+ \write\m@ne\ifR{\Rcheck}\else{\Lcheck}\fi}% log file records successes
+ \ifvmode\kern-\prevdepth\kern-\ht0\dp0=\z@\nointerlineskip\bgroup
+ \else\dp0=\dp\strutbox\strut\vadjust{\kern-\dp\strutbox\kern-\ht0\fi
+ \ifR\moveleft7\else\moveright29\fi pc\box0}}
+\expandafter\def\expandafter\writegrf\meaning\empty#1#2#3#4#5#6${%
+ \write\grfo{\LorR #1#2#3#4#5}\def\thisone{#1#2#3#4#5}}
+\def\setup#1#2#3#4#5#6${\def\thatone{#1#2#3#4#5}}
+\def\LorR{\ifodd\pageno R \else L \fi}
+\def\Lcheck{\ifodd\pageno Bad guess!\fi}
+\def\Rcheck{\ifodd\pageno\else Bad guess!\fi}
+
+% Page layout
+\newif\ifpreprint \preprinttrue % should be false when making the final copy
+\newdimen\pageheight \pageheight=\vsize
+\newdimen\totheight \totheight=49.5pc
+\newdimen\folioht \setbox0=\hbox{\foliofont0} \folioht=\ht0
+\def\leftheadline{\hbox to35pc{\vbox to 10pt{}% strut to position the baseline
+ \llap{\kern-2pc\iftitle\leftcorner\else\foliofont\folio\fi\hfil}%
+ \iftitle\hfil\copyrite\else\runhead\uppercase\expandafter{\chaptitle}\hfil\fi}}
+\def\rightheadline{\hbox to35pc{\iftitle\copyrite\fi\hfil
+ \vbox to 10pt{}% strut to position the baseline
+ \runhead\uppercase\expandafter{\topmark}%
+ \rlap{\hfil\iftitle\rightcorner\else\foliofont\folio\fi\kern-2pc}}}
+\def\leftcorner{\vrule\vbox to\folioht{\hrule width9pt\vfil}}
+\def\rightcorner{\vbox to\folioht{\hrule width9pt\vfil}\vrule}
+\def\copyrite{\ifpreprint{\textfont2=\sevensy\sevenrm\copyright\ 1988
+ Addison-Wesley Publishing Company; all rights reserved}\fi}
+
+\def\onepageout#1{\escapechar=-1 % for writing \tabrefs
+ \shipout\vbox to\totheight{ % here we define one page of output
+ \offinterlineskip % butt the boxes together
+ \vbox to 2pc{ % this part goes on top of the regular pages
+ \ifodd\pageno \rightheadline\else\leftheadline\fi
+ \vfill} % this completes the \vbox to 2pc
+ \ifodd\pageno\moveright7pc\fi #1
+ \vfill
+ \iftitle \global\titlefalse % reset the titlepage switch
+ \ifodd\pageno \hbox to35pc{\hfil\foliofont\folio}
+ \else\hbox{\foliofont\folio}\fi\fi
+ \ifpreprint\ifinxmode\makeinxfooter\fi\fi
+ }
+ \advancepageno}
+
+\output{\onepageout{\pagebody}}
+
+\newbox\inxfootbanner
+\def\hours{\count0=\time \divide\count0 by60 % find the o'clock
+ \multiply\count0 by40 \advance\count0\time % convert to hhmm
+ \advance\count0 10000 \expandafter\gobbleone\number\count0\relax}
+\def\gobbleone1{}
+\setbox\inxfootbanner=\rlap{\hbox to 6.5in{\hrulefill\sevenrm\quad
+ Author's page proof produced by \TeX\ at
+ \hours\space on \ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day}}
+\def\makeinxfooter{\vbox to0pt{\kern10pt\copy\inxfootbanner\kern4pt
+ \rlap{\vbadness=\maxdimen \inxcolumns}\vss}}
+\def\inxcolumns{\ifvoid\inxbox\let\next\relax\else\let\next\contribcol\fi\next}
+\def\contribcol{\setbox0=\vsplit\inxbox to54pt
+ \vtop{\unvbox0}\kern20pt \inxcolumns}
+\def\inxstyle{\vrule height6pt depth2pt width\z@ \sevenrm}
+\splittopskip=6pt
+
+% Cross references
+
+% \ref{value}|name| gives value to |name|
+% \eqref|name| gives \eqcount to |name|
+% \exref|name| gives \excount to |name|
+% \tabref|name| gives appropriate page number to |name|
+% \refin foo inputs references from job foo (other than this job)
+% \showmissestrue if you want to see missing references
+
+\newif\ifshowmisses
+\def\vertical{|}
+\def\inref#1 #{\expandafter\def\csname\vertical#1\endcsname}
+
+\catcode`\|=\active
+\expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\|}
+\newcount\defcount % number of old definitions not yet repeated
+\newcount\changecount % number of new definitions that are changed
+\newcount\miscount % number of unknown references
+
+\newread\tempin
+\def\refin#1 {\openin\tempin=#1.ref
+ \ifeof\tempin\closein\tempin
+ \else\closein\tempin \let|\inref \input#1.ref \let|\crossref \fi}
+
+{\let\|=\jobname
+ \def\def{\global\advance\defcount1 \gdef}\expandafter\refin\| }
+\newwrite\refo \immediate\openout\refo=\jobname.ref
+
+\def\ref#1|#2|{\xdef\temp{#1}\expandafter\dordef\csname\vertical#2\endcsname}
+\def\dordef#1{\ifx#1\temp \global\advance\defcount-1
+ \else\global\advance\changecount1 \global\let#1\temp\fi
+ {\escapechar=-1\immediate\write\refo{\noexpand#1{\temp}}}}
+\def\eqref{\ref{\number\eqcount}}
+\def\exref{\ref{\number\excount}}
+\def\tabref|#1|{\expandafter\pageref\csname\vertical#1\endcsname}
+\def\pageref#1{\ifx#1\relax\else\global\advance\defcount-1 \fi
+ \write\refo{\noexpand#1{\number\pageno}}%
+ \write\m@ne{\ifx#1\relax New Pageref!\else
+ \ifnum#1=\pageno\else Changed Pageref!\fi\fi}}
+\def\crossref#1|{\expandafter\usedef\csname\vertical#1\endcsname}
+\def\usedef#1{\ifx#1\relax
+ \ifshowmisses\showmiss#1\fi\global\advance\miscount1 ??\else #1\fi}
+\let|=\crossref
+\def\showmiss#1{{\escapechar=-1%
+ \message{***** WARNING: Undefined reference #1\string|! *****}}}
+
+\def\cite#1.{\ifinxmode\write\bnx{[#1] \number\pageno.}\fi#1}
+{\catcode`\@=\active
+\gdef\newcite#1.{\ifinxmode\write\bnx{[#1'] \number\pageno.}\fi#1$'@$}}
+
+\outer\def\bye{
+ \ifnum\miscount>0
+ \message{(\the\miscount\space undefined references were present)}\fi
+ \ifnum\changecount>0
+ \message{(\the\changecount\space new references written on \jobname.ref)}\fi
+ \ifnum\defcount>0
+ \message{(\the\defcount\space old references dropped from \jobname.ref)}\fi
+ \par\vfill\supereject
+ \end}
+
+% Exercises
+
+\newwrite\ans
+\immediate\openout\ans=\jobname.ans
+
+\outer\def\answer{\par
+ \immediate\write\ans{}
+ \immediate\write\ans{\string\ansno\chapno.\the\excount:}
+ \copytoblankline}
+\def\copytoblankline{\begingroup\setupcopy\copyans}
+\def\setupcopy{\def\do##1{\catcode`##1=\other}\dospecials \obeylines}
+{\obeylines \gdef\copyans#1
+ {\def\next{#1}%
+ \ifx\next\empty\let\next=\endgroup %
+ \else\immediate\write\ans{\next} \let\next=\copyans\fi\next}}
+
+\def\ansno#1:{\par\medbreak\def\thisansno{\source#1}%
+ \noindent\hbox to\parindent{\bf #1\hfil}\ignorespaces}
+
+% Pictures (a subset of \LaTeX's conventions)
+\newskip\hsssglue \hsssglue=0pt plus 1fill minus 1fill \def\hsss{\hskip\hsssglue}
+
+\newdimen\unitlength \newdimen\linethickness
+\newdimen\@picheight \newdimen\@xdim \newdimen\@ydim \newdimen\@len \newdimen\@save
+\newcount\@multicount \newcount\@xarg \newcount\@yarg
+\newbox\@picbox \newbox\@mpbox
+
+\font\tenln=line10 \font\tenlnw=linew10
+\font\tencirc=lcircle10 \font\tencircw=lcirclew10
+\font\smallln=linew10 scaled 483 % that's magstep-4
+
+\def\thinlines{\let\linefont=\tenln \let\circlefont=\tencirc
+ \linethickness=\fontdimen8\linefont}
+\def\thicklines{\let\linefont=\tenlnw \let\circlefont=\tencircw
+ \linethickness=\fontdimen8\linefont}
+\thinlines
+
+\def\beginpicture(#1,#2)(#3,#4){\@picheight=#2\unitlength \let\line=\@line
+ \setbox\@picbox=\hbox to#1\unitlength\bgroup
+ \kern-#3\unitlength \lower#4\unitlength\hbox\bgroup\ignorespaces}
+\def\endpicture{\egroup\hss\egroup
+ \ht\@picbox=\@picheight \dp\@picbox=\z@
+ \leavevmode\box\@picbox}
+
+\def\put(#1,#2)#3{\raise#2\unitlength\rlap{\kern#1\unitlength #3}\ignorespaces}
+
+\def\multiput(#1,#2)(#3,#4)#5#6{\@multicount=#5
+ \@xdim=#1\unitlength \@ydim=#2\unitlength \setbox\@mpbox=\hbox{#6}%
+ \loop\ifnum\@multicount>0
+ \raise\@ydim\rlap{\kern\@xdim \unhcopy\@mpbox}%
+ \advance\@xdim#3\unitlength \advance\@ydim#4\unitlength
+ \advance\@multicount\m@ne \repeat\ignorespaces}
+
+\def\makebox(#1,#2)#3{\setbox\@picbox=\hbox to#1\unitlength{\hss#3\hss}%
+ \@ydim=\ht\@picbox \advance\@ydim-\dp\@picbox
+ \ht\@picbox=#2\unitlength \dp\@picbox=\z@
+ \leavevmode\lower.5\@ydim\box\@picbox}
+
+\newif\ifneg
+\def\@line(#1,#2)#3{\@xarg=#1 \@yarg=#2 \@len=#3\unitlength \leavevmode
+ \ifnum\@xarg<0 \reverseline \else \negfalse \@ydim=\z@\fi
+ \ifnum\@xarg=0 \@vline
+ \else\ifnum\@yarg=0 \@hline \else\@sline\fi\fi
+ \ifneg\kern-\@len\else\@save=\@ydim\fi}
+\def\reverseline{\negtrue \kern-\@len \@xarg=-\@xarg
+ \@ydim=\@len \multiply\@ydim\@yarg \divide\@ydim\@xarg \@yarg=-\@yarg}
+
+\def\@hline{\vrule height.5\linethickness depth.5\linethickness width\@len}
+\def\@vline{\kern-.5\linethickness\vrule width\linethickness
+ \ifnum\@yarg<0 height\z@ depth\else depth\z@ height\fi\@len
+ \kern-.5\linethickness}
+
+\def\@sline{\setbox\@picbox=\hbox{\linefont \count@=\@xarg \multiply\count@ 8
+ \ifnum\@yarg>0 \advance\count@\@yarg \advance\count@-9
+ \else \advance\count@-\@yarg \advance\count@ 55 \fi \char\count@}%
+ \ifnum\@yarg<0 \@picheight=-\ht\@picbox \advance\@ydim\@picheight
+ \else \@picheight=\ht\@picbox \fi
+ \@xdim=\wd\@picbox \@save=\@ydim
+ \loop\ifdim\@xdim<\@len \raise\@ydim\copy\@picbox
+ \advance\@xdim\wd\@picbox \advance\@ydim\@picheight \repeat
+ \advance\@xdim-\@len \kern-\@xdim
+ \multiply\@xdim\@yarg \divide\@xdim\@xarg \advance\@ydim-\@xdim
+ \raise\@ydim\box\@picbox}
+
+\def\vector(#1,#2)#3{\@line(#1,#2){#3}%
+ \ifnum\@xarg=0 \@vvector \else\ifnum\@yarg=0 \@hvector \else\@svector\fi\fi}
+\def\@hvector{\ifneg\rlap{\linefont\char27}\else
+ \smash{\llap{\linefont\char45}}\fi} % we have to smash because of font bug
+\def\@vvector{\ifnum\@yarg<0 \raise-\@len\rlap{\linefont\char63}%
+ \else\setbox\@picbox=\rlap{\linefont\char54}\advance\@len-\ht\@picbox
+ \raise\@len\box\@picbox\fi}
+
+\def\@svector{\setbox\@picbox=\hbox to\z@{\linefont
+ \ifnum\@yarg<0 \count@=55 \@yarg=-\@yarg \else\count@=-9 \fi
+ \ifneg\multiply\@xarg16 \multiply\@yarg2
+ \else\hss % \llap
+ \ifnum\@xarg>2 \multiply\@xarg9 \multiply\@yarg2 \advance\count@29
+ \else\ifnum\@yarg>2 \multiply\@xarg16 \multiply\@yarg9 \advance\count@-20
+ \else\multiply\@xarg24 \multiply\@yarg3 \fi\fi\fi
+ \advance\count@\@xarg \advance\count@\@yarg \char\count@
+ \ifneg\hss\fi}% \rlap
+ \raise\@save\box\@picbox}
+
+\def\disk#1{\@len=#1\unitlength \count@='160 \@diskcirc}
+\def\circle#1{\@len=#1\unitlength \count@='140 \@diskcirc}
+\def\@diskcirc{\setbox\@picbox=\hbox{\circlefont\char\count@}\@xdim=\wd\@picbox
+ \leavevmode \ifdim\@len>15.499\@xdim \@bigdc \else \@smalldc\fi}
+\def\@bigdc{\ifnum\count@<'160 \@bigcirc
+ \else \@len=15\@xdim \@diskcirc\fi}
+\def\@smalldc{{\advance\@len-.5\@xdim
+ \loop\ifdim\@xdim<\@len \advance\count@\@ne \advance\@xdim\wd\@picbox\repeat
+ \hbox{\circlefont\char\count@}}}
+\def\@bigcirc{{\circlefont\count@=15
+ \setbox\@picbox=\hbox{\char\count@}\@xdim=\wd\@picbox
+ \ifdim\@len>2.5\@xdim \@len=2.5\@xdim\fi
+ \advance\@len-.125\wd\@picbox
+ \loop\ifdim\@xdim<\@len \advance\count@ 4 \advance\@xdim.25\wd\@picbox\repeat
+ \@ydim=.5\@xdim \advance\@ydim.5\linethickness
+ \setbox\@picbox=\vbox{\hbox{\char\count@\advance\count@-3\char\count@}%
+ \nointerlineskip
+ \hbox{\advance\count@\m@ne\char\count@\advance\count@\m@ne\char\count@}}%
+ \kern-\@ydim\lower\@ydim\box\@picbox}}
+
+\newif\ifovaltl \newif\ifovaltr \newif\ifovalbl \newif\ifovalbr
+\ovaltltrue \ovaltrtrue \ovalbltrue \ovalbrtrue
+\def\oval(#1,#2){\@xdim=#1\unitlength \@ydim=#2\unitlength
+ {\circlefont \setbox\@picbox=\hbox{\char0}
+ \ifdim\@xdim<\wd\@picbox \@xdim=\wd\@picbox\fi
+ \ifdim\@ydim<\wd\@picbox \@ydim=\wd\@picbox\fi
+ \@save=\@xdim \ifdim\@ydim<\@save \@save=\@ydim \fi
+ \count@=39
+ \loop \setbox\@picbox=\hbox{\char\count@}\ifdim\@save<\wd\@picbox
+ \advance\count@-4 \repeat
+ \setbox\strutbox=\hbox{\vrule height\ht\@picbox depth\dp\@picbox width\z@
+ \kern\wd\@picbox}%
+ \@save=.5\wd\@picbox \advance\@save-.5\linethickness
+ \setbox0=\hbox to\@xdim{\ifovaltl\char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height\ifovaltl\linethickness\else\z@\fi\hfil
+ \leaders\hrule height\ifovaltr\linethickness\else\z@\fi\hfil\kern\@save
+ \ifovaltr\advance\count@-3\char\count@\else\strut\fi\kern-\wd\@picbox}%
+ \advance\count@\m@ne
+ \setbox2=\hbox to\@xdim{\ifovalbl\char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height\ifovalbl\linethickness\else\z@\fi\hfil
+ \leaders\hrule height\ifovalbr\linethickness\else\z@\fi\hfil\kern\@save
+ \ifovalbr\advance\count@\m@ne\char\count@\else\strut\fi\kern-\wd\@picbox}%
+ \@save=\@ydim \advance\@save-\wd\@picbox \divide\@save 2
+ \setbox\@picbox=\vbox{\box0\nointerlineskip
+ \hbox to\@xdim{\vrule height\@save width\ifovaltl\linethickness\else\z@\fi
+ \hfil\ifovaltr\vrule width\linethickness\kern-\linethickness\fi}%
+ \nointerlineskip
+ \hbox to\@xdim{\vrule height\@save width\ifovalbl\linethickness\else\z@\fi
+ \hfil\ifovalbr\vrule width\linethickness\kern-\linethickness\fi}%
+ \nointerlineskip\box2}%
+ \@save=.5\@ydim \advance\@save.5\linethickness \leavevmode
+ \kern-.5\@xdim \kern-.5\linethickness \lower\@save\box\@picbox}}
+
+\def\cpic#1\endcpic{\vcenter{\hbox{\beginpicture#1\endpicture}}}
+
+% Squines (quadratic splines)
+% example of use: to plot f(x) between x0 and x1, you can say
+% \put(0,0){\squine(x0,xm,x1,y0,ym,y1)}, where y0=f(x0), y1=f(x1)
+% xm=(y0-y1+s1x1-s0x0)/(s1-s0), ym=(s0(s1x1-y1)-s1(s0x0-y0))/(s1-s0),
+% s0=f'(x0), and s1=f'(x1).
+
+\newdimen\@xi \newdimen\@xii \newdimen\@xiii \newdimen\@xiv
+\newdimen\@xpt \newdimen\@xoldpt
+\newdimen\@yi \newdimen\@yii \newdimen\@yiii \newdimen\@yiv
+\newdimen\@ypt \newdimen\@yoldpt
+\def\squine(#1,#2,#3,#4,#5,#6){\setbox\@picbox\hbox{\tencirc q}%
+ \global\@xoldpt=#1\unitlength \global\@yoldpt=#4\unitlength \kern\@xoldpt
+ \@xi=\@xoldpt \@xii=#2\unitlength \@xiii=#3\unitlength
+ \@yi=\@yoldpt \@yii=#5\unitlength \@yiii=#6\unitlength
+ \squinerec
+ \@xpt=#3\unitlength \@ypt=#6\unitlength \@addpoint
+ \raise\@ypt\copy\@picbox}
+\newif\iffar
+\def\squinerec{\farfalse \testnear\@xi\@xiii \testnear\@yi\@yiii
+ \iffar \decast \fi}
+\def\testnear#1#2{\@save=#1\advance\@save-#2%
+ \ifdim\@save<\z@ \@save=-\@save\fi \ifdim\@save>\p@ \fartrue \fi}
+\def\decast{\@xpt=\@xi \advance\@xpt\@xii \divide\@xpt2
+ \advance\@xii\@xiii \divide\@xii2
+ \@xiv=\@xpt \advance\@xiv\@xii \divide\@xiv2
+ \@ypt=\@yi \advance\@ypt\@yii \divide\@ypt2
+ \advance\@yii\@yiii \divide\@yii2
+ \@yiv=\@ypt \advance\@yiv\@yii \divide\@yiv2
+ \begingroup\@xii=\@xpt \@xiii=\@xiv
+ \@yii=\@ypt \@yiii=\@yiv \squinerec\endgroup
+ \@xpt=\@xiv \@ypt=\@yiv \@addpoint
+ \@xi=\@xiv \@yi=\@yiv \squinerec}
+\def\@addpoint{%\message{(\the\@xpt,\the\@ypt)}%
+ \global\advance\@xoldpt-\@xpt \wd\@picbox=-\@xoldpt
+ \raise\@yoldpt\copy\@picbox \global\@xoldpt=\@xpt \global\@yoldpt=\@ypt}
+
+% Math operators
+\def\2{\mskip-.5mu2\mskip.5mu}
+\newmuskip\lessfortimes \lessfortimes=-2mu minus -2mu
+\def\cdt{\mskip\lessfortimes\cdot\mskip\lessfortimes}
+\def\nullnum{\phantom{0}}
+\def\twonullnum{\phantom{00}}
+\def\bex{\mskip-2mu}
+\def\twoconditions#1#2{_{\scriptstyle#1\atop\scriptstyle#2}}
+\def\tworestrictions#1#2{\vcenter{\offinterlineskip
+ \halign{\strut\hfil##\hfil\cr#1\cr#2\cr}}}
+\def\dts{\mathinner{\ldotp\ldotp}}
+\def\[#1]{[\hbox{$\mskip1mu\thickmuskip=\thinmuskip#1\mskip1mu$}]}
+\def\bigi[#1\bigr]{\bigl[\hbox{$\thickmuskip=\thinmuskip#1$}\bigr]}
+\def\Bigi[#1\Bigr]{\Bigl[\hbox{$\thickmuskip=\thinmuskip#1$}\Bigr]}
+\def\prp(#1){(\hbox{$\thickmuskip=\thinmuskip#1$})}
+\def\pbigi(#1\bigr){\bigl(\hbox{$\thickmuskip=\thinmuskip#1$}\bigr)}
+\def\_#1{\def\next{#1}%
+ \ifx\next\risingsign\expandafter\rising\else^{\underline{#1}}\fi}
+\def\risingsign{^}
+\def\rising#1{^{\overline{#1}}}
+\def\dotminus{\mathbin{\buildrel{\hbox{\runhead.}}\over{\smash{-}\vphantom{_2}}}}
+\let\divides=\backslash
+\def\edivides{\divides\mskip-4mu\divides}
+\def\ndivides{\mathpalette\notdiv\relax}
+\def\notdiv#1#2{\setbox0=\hbox{$#1\divides$}%
+ \vcenter{\hbox to\wd0{$\hss\scriptscriptstyle/\hss$}}\kern-\wd0
+ \vcenter{\hbox to\wd0{$\hss\kern.5pt\scriptscriptstyle/\hss$}}\kern-\wd0
+ \box0\relax}
+\def\spec{\mathop{\rm Spec}}
+\def\half{{1\over2}}
+\def\rp{\mathchar"323F } % relatively prime
+\def\lcm{\mathop{\rm lcm}}
+\def\And{\quad{\rm and}\quad}
+\let\==\equiv
+\def\tmod#1{(mod~$#1$)}
+\let\implies=\Longrightarrow
+\def\?{\hbox{!`}} % subfactorial
+\def\hyp{\mathop{F{}}\nolimits\hyper}
+\def\tightplus{\medmuskip=1.5mu\relax}
+\def\hyper#1#2#3{\mathchoice{\tightplus
+ \hbox{$\displaystyle\biggl({#1\atop#2}\Big\vert\,{#3}\!\biggr)$}}%
+ {\bigl({#1\atop#2}\vert\mskip2mu#3\bigr)}%
+ {}{}} % used only in D and T styles
+%\def\hypk_#1{\mathop{F{}}_{#1}\nolimits\hyper} % confl with mFn convention
+\def\hypk_#1#2#3#4{\mathop{F{}}\mathchoice{\tightplus
+ \hbox{$\displaystyle\biggl({#2\atop#3}\Big\vert\,{#4}\!\biggr)$}%
+ \lower\fontdimen11\mathsym\hbox{$\scriptstyle\!#1$}}%
+ {\bigl({#2\atop#3}\vert\mskip2mu#4\bigr)\lower\fontdimen12\mathsym
+ \hbox{$\scriptstyle\!#1$}}%
+ {}{}} % used only in D and T styles
+\def\double(#1\choose#2){\mathchoice{\biggl(\!\!{#1\choose#2}\!\!\biggr)}
+ {\bigl(\!{#1\choose#2}\!\bigr)}{}{}} % only D and T styles
+\def\hypstrut{\vphantom{_1\_^k}} % if there's another denominator with \_^k
+\def\deg{\mathop{\rm deg}}
+\def\Bscr{{\scr B}}
+\def\Escr{{\scr E}}
+\def\Fscr{{\scr F}}
+\def\Pscr{{\scr P}}
+\def\Sscr{{\scr S}}
+\def\adj{\relbar\joinrel\relbar} % adjacent in a graph
+\let\<=\langle \let \>=\rangle
+\def\Pr{\mathop{\rm Pr}\nolimits}
+\def\Mean{\mathop{\rm Mean}\nolimits}
+\def\Var{\mathop{\rm Var}\nolimits}
+\def\between{\big\vert\hbox{\vphantom)}} % \between_a^b
+{\catcode`\'=\active \gdef'{^\bgroup\mskip2mu\prim@s}} % more space before '
+\def\array#1[#2]{\hbox{\tt#1[$#2$]}}
+\def\given{\mskip1mu\vert\mskip1mu}
+\def\euler{\atopwithdelims<>}
+\def\Euler#1#2{\mathchoice{\biggl<\mskip-7mu{#1\euler#2}\mskip-7mu\biggr>}%
+ {\bigl<\!{#1\euler#2}\!\bigr>}{}{}}
+
+\newbox\phihatbox \newbox\scrphihatbox
+\setbox\phihatbox=\hbox{$\phi$} \ht\phihatbox=1ex
+\setbox\scrphihatbox=\hbox{$\scriptstyle\phi$}
+ \ht\scrphihatbox=\fontdimen5\mathsublet
+\setbox\phihatbox=\hbox{$\widehat{\box\phihatbox}$}
+\setbox\scrphihatbox=\hbox{$\hat{\box\scrphihatbox}$}
+\def\phihat{\mathchoice{\copy\phihatbox}{\copy\phihatbox}%
+ {\copy\scrphihatbox}{{\hat\phi}}}
+
+\newbox\mathsizebox
+\def\setmathsize#1{\global\setbox\mathsizebox=\hbox{\displaymath#1$}}
+\def\mathsize#1{\hbox to\wd\mathsizebox{\displaymath#1$\hss}}
+
+\newbox\sqrtstrutbox
+\setbox\sqrtstrutbox=\hbox{\vrule height10.5pt width\z@}
+\def\strutsqrt#1{\copy\sqrtstrutbox\sqrt{{}^{\mathstrut}#1}}
+
+\newbox\Sqbox % for sum of squares
+\setbox\Sqbox=\vbox{\tenrm\hrule height.6pt\kern-.6pt
+ \hbox to1.5ex{\vrule height1.5ex width.6pt\hss\vrule width.6pt}\kern-.6pt
+ \hrule height.3pt depth.3pt}
+\def\Sq{\mskip1.5mu\copy\Sqbox\mskip1.5mu}
+
+% primitive index macros
+% "stuff for index" will go into a file for sorting and into normal text
+% "!stuff for index" will go into the file only
+\expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\"}
+\def\hexcode{"} \catcode`\"=\active
+
+\newif\ifinxmode
+\newwrite\inx \newwrite\bnx
+\newbox\inxbox
+
+\newif\ifsilent
+\def\beginxref{\futurelet\next\beginxrefswitch}
+\def\beginxrefswitch{\ifx\next!\let\next=\silentxref
+ \else\silentfalse\let\next=\xref\fi \next}
+\def\silentxref!{\silenttrue\xref}
+\let"=\beginxref
+
+\def\xref#1"{\ifinxmode\edef\text{#1}\makexref\fi
+ \ifsilent\ignorespaces\else#1\fi}
+\def\makexref{\global\setbox\inxbox=%
+ \vbox{\unvbox\inxbox\allowbreak\hbox{\inxstyle\text}}%
+ \xdef\writeit{\write\inx{\text\space!\space
+ \noexpand\number\pageno.}}\writeit}
+
+% Final considerations
+\catcode`\@=\active \def@{\mskip1mu\relax}
+\expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\@}
+
+\hyphenation{logical Mac-Mahon hyper-geo-metric hyper-geo-met-rics Ber-noulli}
+
+\preprintfalse % WE ARE MAKING THE REAL BOOK!
+\inxmodetrue % WE ARE PREPARING A ROUGH INDEX
+\showmissestrue % THE REFERENCES SHOULD ALL BE READY NOW
+
+\ifinxmode\immediate\openout\inx=\jobname.inx \fi % file for index reminders
+\ifinxmode\immediate\openout\bnx=\jobname.bnx \fi % file for bib reminders
+
+% To make the book:
+% First TeX BIB, to get BIB.REF correct. (Must have \cite entries.)
+% Then TeX CHAP1..CHAP9, PREF, ANS, CRED, FRONT, CONT.
+% Then make BNX file from individual *.BNX files including BIB.BNX.
+% Then reTeX BIB.
+% *.INX files are raw data only. Index and Contents are prepared by hand.
+
+% To produce only a subset of pages, put the page numbers on separate
+% lines in a file called pages.tex, ended by 999
+% WARNING: This will screw up the .grf file! Save it, then restore it.
+% WARNING: This may screw up the .ref file (if there are \tabrefs). Ditto.
+\let\Shipout=\shipout
+\newread\pages \newcount\nxtpg \openin\pages=pages
+\def\getnxtpg{\ifeof\pages\else
+ {\endlinechar=-1\read\pages to\next
+ \ifx\next\empty % in this case we should have eof now
+ \else\global\nxtpg=\next\fi}\fi}
+\ifeof\pages\else\message{OK, I'll ship only the requested pages!}
+ \getnxtpg\fi
+\def\shipout{\ifeof\pages\let\next=\Shipout
+ \else\ifnum\pageno=\nxtpg\getnxtpg\let\next=\Shipout
+ \else\let\next=\Tosspage\fi\fi \next}
+\newbox\garbage \def\Tosspage{\deadcycles=0\setbox\garbage=}
diff --git a/Master/texmf-dist/tex/plain/base/letter.tex b/Master/texmf-dist/tex/plain/base/letter.tex
new file mode 100644
index 00000000000..531a8b520df
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/letter.tex
@@ -0,0 +1,119 @@
+% This macro file is for business letters
+
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+\def\narrower{\advance\leftskip by 20pt \advance\rightskip by 20pt }
+
+\raggedbottom
+\interlinepenalty=1000
+\hsize=6.25truein \voffset=24pt \advance\vsize by-\voffset
+\parindent=0pt \parskip=0pt
+\nopagenumbers
+\headline={\ifnum\pageno>1
+ \tenrm To \addressee\hfil\today\hfil Page \folio
+ \else\hfil\fi}
+
+\def\beginlinemode{\endmode
+ \begingroup\obeylines\def\endmode{\par\endgroup}}
+\def\beginparmode{\endmode
+ \begingroup\parskip=\medskipamount \def\endmode{\par\endgroup}}
+\let\endmode=\par
+\def\endletter{\endmode\vfill\supereject \pageno=1 }
+
+\newdimen\longindentation \longindentation=4truein
+\newbox\theaddress
+\def\address{\beginlinemode\getaddress}
+{\obeylines\gdef\getaddress#1
+ #2
+ {\gdef\addressee{#2\unskip}%
+ \global\setbox\theaddress=\vbox\bgroup\raggedright%
+ \hsize=\longindentation \everypar{\hangindent2em}#2
+ \def\endmode{\egroup\endgroup \copy\theaddress \bigskip}}}
+
+\def\body{\beginparmode}
+\def\closing{\beginlinemode\getclosing}
+{\obeylines\gdef\getclosing #1
+ #2
+ {\nobreak\bigskip \leftskip=\longindentation #2
+ \nobreak\bigskip\bigskip\bigskip % space for signature
+ \def
+ {\endgraf\nobreak}}}
+\def\annotations{\beginlinemode\def\par{\endgraf\nobreak}\obeylines\par}
+\def\ps{\beginparmode\nobreak
+ \interlinepenalty5000\def\par{\endgraf\penalty5000}}
+\def\cc{\beginparmode\nobreak
+ \interlinepenalty5000\def\par{\endgraf\penalty5000}}
+
+\def\up#1{\leavevmode \raise.16ex\hbox{#1}}
+\font\smallheadfont=cmr8 at 8truept
+\font\largeheadfont=cmbx10 at 14.4truept
+\font\logofont=stan70 at 70truept
+\def\stanfordseal{\vbox{\kern-3truept\hbox{\logofont A}\kern-3truept}}
+
+\def\csdreturn{Computer Science Department\par \stanfordreturn}
+\def\stanfordreturn{Stanford University\par
+ Stanford, CA 94305\kern.5pt-21\kern-.5pt40 USA\par}
+\def\letterhead{\pageno=1 \univletterhead
+ {\leftskip=\longindentation
+ {\baselineskip9truept\smallheadfont\sendingaddress}
+ \bigskip\bigskip\rm\today\bigskip}}
+\def\specrule#1{\nointerlineskip
+ \line{\hbox to 60truept{\hrulefill
+ \hphantom{\stanfordseal\kern-#1truept}%
+ \hrulefill}\hrulefill}\nointerlineskip}
+\def\univletterhead{\vglue-34pt
+ \specrule{11}\vskip8truept
+ \hbox{\hbox to\longindentation{\smash{\hbox to60truept{\hfil\kern2.5truept
+ \lower10truept\stanfordseal\hfil}}%
+ \largeheadfont STANFORD UNIVERSITY\hfil}%
+ \smallheadfont STANFORD, CALIFORNIA 94305\kern.5pt-21\kern-.5pt40}
+ \vskip6truept\specrule{17}\vskip13truept }
+
+\def\deklet{
+ \def\sendingaddress{DONALD E. KNUTH\par
+ Professor Emeritus of The Art of\par
+ \qquad Computer Programming\par
+ Department of Computer Science\par
+ Telephone \up[415\up]\thinspace 723-4367\par}
+ \def\returnaddress{Prof.~D. E. Knuth\par \csdreturn}
+ \letterhead}
+
+\def\memoto{\beginlinemode\parindent=60truept
+ \everypar{\hangindent70truept}\startmemo}
+\def\bigmemoto{\beginlinemode\parindent=60pt % use this for magstep>1!
+ \everypar{\hangindent70pt}\startmemo}
+\def\textin#1{\noindent\hbox to\parindent{#1\hss}\ignorespaces}
+{\obeylines\gdef\startmemo #1
+ {\gdef\addressee{#1}%
+ \global\pageno=1 \vglue-34pt\specrule{11}\vskip8truept
+ \leftline{\smash{\hbox to60truept{\hfil\kern2.5truept
+ \lower10truept\stanfordseal\hfil}}%
+ \largeheadfont Stanford Computer Science Department %
+ \rm\today}%
+ \vskip6truept\specrule{20}\bigskip\bigskip\bigskip%
+ \textin{Memo to:}#1
+ \def\endmode{\par\endgroup\bigskip}}
+ \gdef\from #1
+ {\smallskip\textin{From:}#1
+ }
+ \gdef\subject #1
+ {\smallskip\textin{Subject:}#1
+ }
+}
+
+\def\makelabel{\endletter\hbox{\vrule
+ \vbox{\hrule \kern6truept
+ \hbox{\kern6truept\stanfordseal\kern3pt
+ \vbox{\smallheadfont\baselineskip9truept\hsize=2truein\returnaddress}
+ \kern6truept}\kern6truept\hrule}\vrule}
+ \kern.1truein
+ \hbox{\vrule
+ \vbox{\hrule \kern12truept
+ \hbox{\kern12truept\copy\theaddress
+ \kern12truept}\kern12truept\hrule}\vrule}
+ \pageno=0\vfill\eject}
+
+\def\frac#1/#2{\leavemode\kern.1em\raise.5ex\hbox{\the\scriptfont0
+ #1}\kern-.1em/\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
diff --git a/Master/texmf-dist/tex/plain/base/list.tex b/Master/texmf-dist/tex/plain/base/list.tex
new file mode 100644
index 00000000000..1daeba2bbe8
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/list.tex
@@ -0,0 +1,47 @@
+% Makes a listing of one or more files
+% Typical usage:
+% tex list *.c \\end
+
+\def\grabfile#1 {\setbox0=\lastbox\endgraf\doit{#1}}
+\everypar{\grabfile}
+
+\font\filenamefont= cmtt8 scaled\magstep3
+\font\headlinefont= cmr8
+\font\listingfont= cmtex10
+\font\eoffont= cmti8
+
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+\newcount\m \newcount\n
+\n=\time \divide\n 60 \m=-\n \multiply\m 60 \advance\m \time
+\def\hours{\twodigits\n\twodigits\m}
+\def\twodigits#1{\ifnum #1<10 0\fi \number#1}
+
+\newlinechar=`@
+\message{@\today\space at \hours}
+
+\raggedbottom
+\nopagenumbers
+
+\chardef\other=12
+\def\doit#1{\message{@Listing #1@}
+ \begingroup \everypar{} \frenchspacing
+ \headline{\filenamefont#1\quad\headlinefont \today\ at \hours
+ \hfill Page \folio}
+ \def\do##1{\catcode`##1=\other}\dospecials
+ \catcode127=\other \catcode9=\other \catcode12=\other
+ \parindent 0pt \parfillskip=0pt plus 1fil minus 1in
+ \everypar{\hangindent 1in} \rightskip=0pt plus 2in
+ \def\par{\ifvmode\penalty-500\medskip\else\endgraf\fi}
+ \listingfont \obeylines \obeyspaces \global\pageno=1
+ \input #1 {\eoffont(end of\/ file)}\endgraf\vfill\eject\endgroup}
+{\obeyspaces\global\let =\ }
+\catcode`\_=\other % allow _ in file names
+
+% A tab (^^I) prints as lowercase gamma.
+% Character ^^M could be made visible, with a bit of work;
+% at present, it's indistinguishable from newline (^^J).
+
+% You can get up to 103 characters on a line without an overfull box.
diff --git a/Master/texmf-dist/tex/plain/base/llist.tex b/Master/texmf-dist/tex/plain/base/llist.tex
new file mode 100644
index 00000000000..f107169e248
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/llist.tex
@@ -0,0 +1,67 @@
+% Makes a landscape listing of one or more files
+% Typical usage:
+% tex llist *.c \\end
+
+\def\grabfile#1 {\setbox0=\lastbox\endgraf\doit{#1}}
+\everypar{\grabfile}
+
+\font\filenamefont= cmtt8 scaled\magstep3
+\font\headlinefont= cmr8
+\font\listingfont= cmtex8
+\font\eoffont= cmti8
+
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+\newcount\m \newcount\n
+\n=\time \divide\n 60 \m=-\n \multiply\m 60 \advance\m \time
+\def\hours{\twodigits\n\twodigits\m}
+\def\twodigits#1{\ifnum #1<10 0\fi \number#1}
+
+\newlinechar=`@
+\message{@\today\space at \hours}
+
+\baselineskip=9pt
+\medskipamount=4pt minus 1pt
+\raggedbottom
+\nopagenumbers
+
+\chardef\other=12
+\def\doit#1{\message{@Listing #1@}
+ \begingroup \everypar{} \frenchspacing
+ \headline{\ifright \headlinefont \hfill Page \folio
+ \else\filenamefont#1\quad\headlinefont \today\ at \hours\hfill \fi}
+ \def\do##1{\catcode`##1=\other}\dospecials
+ \catcode127=\other \catcode9=\other \catcode12=\other
+ \parindent 0pt \parfillskip=0pt plus 1fil minus .8in
+ \everypar{\hangindent 1in} \rightskip=0pt plus 2in
+ \def\par{\ifvmode\penalty-50\medskip\else\endgraf\fi}
+ \listingfont \obeylines \obeyspaces \global\pageno=1
+ \input #1 {\eoffont(end of\/ file)}\endgraf\vfill\eject
+ \ifright\null\vfill\eject\fi\endgroup}
+{\obeyspaces\global\let =\ }
+\catcode`\_=\other % allow _ in file names
+
+\hsize=4.6truein
+\vsize=7truein
+\hoffset=-.5truein
+\voffset=-.2truein
+\newif\ifright
+\newbox\lefthalf
+\output{\ifright
+ \shipout\hbox{\hbox to5.5in{\box\lefthalf\hss}%
+ \vbox{\makeheadline\pagebody\makefootline}}
+ \advancepageno\global\rightfalse
+ \else\global\setbox\lefthalf\vbox{\makeheadline\pagebody\makefootline}
+ \global\righttrue\fi}
+
+\special{landscape}
+
+% A tab (^^I) prints as lowercase gamma.
+% Character ^^M could be made visible, with a bit of work;
+% at present, it's indistinguishable from newline (^^J).
+
+% You can get up to 91 characters on a line without an overfull box.
+% (But lines with more than 84 characters will be clipped, if they
+% appear on a righthand halfpage.)
diff --git a/Master/texmf-dist/tex/plain/base/manmac.tex b/Master/texmf-dist/tex/plain/base/manmac.tex
new file mode 100644
index 00000000000..d8678ab5070
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/manmac.tex
@@ -0,0 +1,715 @@
+% Macros for The TeXbook
+
+\catcode`@=11 % borrow the private macros of PLAIN (with care)
+
+\font\tentex=cmtex10
+
+\font\inchhigh=cminch
+\font\titlefont=cmssdc10 at 40pt
+
+\font\ninerm=cmr9
+\font\eightrm=cmr8
+\font\sixrm=cmr6
+
+\font\ninei=cmmi9
+\font\eighti=cmmi8
+\font\sixi=cmmi6
+\skewchar\ninei='177 \skewchar\eighti='177 \skewchar\sixi='177
+
+\font\ninesy=cmsy9
+\font\eightsy=cmsy8
+\font\sixsy=cmsy6
+\skewchar\ninesy='60 \skewchar\eightsy='60 \skewchar\sixsy='60
+
+\font\eightss=cmssq8
+
+\font\eightssi=cmssqi8
+
+\font\ninebf=cmbx9
+\font\eightbf=cmbx8
+\font\sixbf=cmbx6
+
+\font\ninett=cmtt9
+\font\eighttt=cmtt8
+
+\hyphenchar\tentt=-1 % inhibit hyphenation in typewriter type
+\hyphenchar\ninett=-1
+\hyphenchar\eighttt=-1
+
+\font\ninesl=cmsl9
+\font\eightsl=cmsl8
+
+\font\nineit=cmti9
+\font\eightit=cmti8
+
+\font\tenu=cmu10 % unslanted text italic
+\font\magnifiedfiverm=cmr5 at 10pt
+\font\manual=manfnt % font used for the METAFONT logo, etc.
+\font\cmman=cmman % font used for miscellaneous Computer Modern variations
+
+\newskip\ttglue
+\def\tenpoint{\def\rm{\fam0\tenrm}%
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\tenit}%
+ \textfont\itfam=\tenit
+ \def\sl{\fam\slfam\tensl}%
+ \textfont\slfam=\tensl
+ \def\bf{\fam\bffam\tenbf}%
+ \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\tentt}%
+ \textfont\ttfam=\tentt
+ \tt \ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=12pt
+ \def\MF{{\manual META}\-{\manual FONT}}%
+ \let\sc=\eightrm
+ \let\big=\tenbig
+ \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}%
+ \normalbaselines\rm}
+
+\def\ninepoint{\def\rm{\fam0\ninerm}%
+ \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+ \textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
+ \textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\nineit}%
+ \textfont\itfam=\nineit
+ \def\sl{\fam\slfam\ninesl}%
+ \textfont\slfam=\ninesl
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\ninett}%
+ \textfont\ttfam=\ninett
+ \tt \ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=11pt
+ \def\MF{{\manual hijk}\-{\manual lmnj}}%
+ \let\sc=\sevenrm
+ \let\big=\ninebig
+ \setbox\strutbox=\hbox{\vrule height8pt depth3pt width\z@}%
+ \normalbaselines\rm}
+
+\def\eightpoint{\def\rm{\fam0\eightrm}%
+ \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+ \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
+ \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\eightit}%
+ \textfont\itfam=\eightit
+ \def\sl{\fam\slfam\eightsl}%
+ \textfont\slfam=\eightsl
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\eighttt}%
+ \textfont\ttfam=\eighttt
+ \tt \ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=9pt
+ \def\MF{{\manual opqr}\-{\manual stuq}}%
+ \let\sc=\sixrm
+ \let\big=\eightbig
+ \setbox\strutbox=\hbox{\vrule height7pt depth2pt width\z@}%
+ \normalbaselines\rm}
+
+\def\tenmath{\tenpoint\fam-1 } % use after $ in ninepoint sections
+\def\tenbig#1{{\hbox{$\left#1\vbox to8.5pt{}\right.\n@space$}}}
+\def\ninebig#1{{\hbox{$\textfont0=\tenrm\textfont2=\tensy
+ \left#1\vbox to7.25pt{}\right.\n@space$}}}
+\def\eightbig#1{{\hbox{$\textfont0=\ninerm\textfont2=\ninesy
+ \left#1\vbox to6.5pt{}\right.\n@space$}}}
+
+% Page layout
+\newdimen\pagewidth \newdimen\pageheight \newdimen\ruleht
+\hsize=29pc \vsize=44pc \maxdepth=2.2pt \parindent=3pc
+\pagewidth=\hsize \pageheight=\vsize \ruleht=.5pt
+\abovedisplayskip=6pt plus 3pt minus 1pt
+\belowdisplayskip=6pt plus 3pt minus 1pt
+\abovedisplayshortskip=0pt plus 3pt
+\belowdisplayshortskip=4pt plus 3pt
+
+%\newinsert\footins
+\def\footnote#1{\edef\@sf{\spacefactor\the\spacefactor}#1\@sf
+ \insert\footins\bgroup\eightpoint
+ \interlinepenalty100 \let\par=\endgraf
+ \leftskip=\z@skip \rightskip=\z@skip
+ \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000
+ \smallskip\item{#1}\bgroup\strut\aftergroup\@foot\let\next}
+\skip\footins=12pt plus 2pt minus 4pt % space added when footnote is present
+%\count\footins=1000 % footnote magnification factor (1 to 1)
+\dimen\footins=30pc % maximum footnotes per page
+
+\newinsert\margin
+\dimen\margin=\maxdimen
+%\count\margin=0 \skip\margin=0pt % marginal inserts take up no space
+
+\newif\iftitle
+\def\titlepage{\global\titletrue} % for pages without headlines
+\def\rhead{} % \rhead contains the running headline
+
+\def\leftheadline{\hbox to \pagewidth{%
+ \vbox to 10pt{}% strut to position the baseline
+ \llap{\tenbf\folio\kern1pc}% folio to left of text
+ \tenit\rhead\hfil% running head flush left
+ }}
+\def\rightheadline{\hbox to \pagewidth{%
+ \vbox to 10pt{}% strut to position the baseline
+ \hfil\tenit\rhead\/% running head flush right
+ \rlap{\kern1pc\tenbf\folio}% folio to right of text
+ }}
+
+\def\onepageout#1{\shipout\vbox{ % here we define one page of output
+ \offinterlineskip % butt the boxes together
+ \vbox to 3pc{ % this part goes on top of the 44pc pages
+ \iftitle % the next is used for title pages
+ \global\titlefalse % reset the titlepage switch
+ \setcornerrules % for camera alignment
+ \else\ifodd\pageno \rightheadline\else\leftheadline\fi\fi
+ \vfill} % this completes the \vbox to 3pc
+ \vbox to \pageheight{
+ \ifvoid\margin\else % marginal info is present
+ \rlap{\kern31pc\vbox to\z@{\kern4pt\box\margin \vss}}\fi
+ #1 % now insert the main information
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins \kern-3pt
+ \hrule height\ruleht width\pagewidth \kern-\ruleht \kern3pt
+ \unvbox\footins\fi
+ \boxmaxdepth=\maxdepth
+ } % this completes the \vbox to \pageheight
+ }
+ \advancepageno}
+
+\def\setcornerrules{\hbox to \pagewidth{\vrule width 1pc height\ruleht
+ \hfil \vrule width 1pc}
+ \hbox to \pagewidth{\llap{\sevenrm(page \folio)\kern1pc}%
+ \vrule height1pc width\ruleht depth\z@
+ \hfil \vrule width\ruleht depth\z@}}
+
+\output{\onepageout{\unvbox255}}
+
+\newbox\partialpage
+\def\begindoublecolumns{\begingroup
+ \output={\global\setbox\partialpage=\vbox{\unvbox255\bigskip}}\eject
+ \output={\doublecolumnout} \hsize=14pc \vsize=89pc}
+\def\enddoublecolumns{\output={\balancecolumns}\eject
+ \endgroup \pagegoal=\vsize}
+
+\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth
+ \dimen@=44pc \advance\dimen@ by-\ht\partialpage
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255 \penalty\outputpenalty}
+\def\pagesofar{\unvbox\partialpage
+ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
+\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0
+ \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by2 \splittopskip=\topskip
+ {\vbadness=10000 \loop \global\setbox3=\copy0
+ \global\setbox1=\vsplit3 to\dimen@
+ \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}
+ \setbox0=\vbox to\dimen@{\unvbox1}
+ \setbox2=\vbox to\dimen@{\unvbox3}
+ \pagesofar}
+
+% To produce only a subset of pages, put the page numbers on separate
+% lines in a file called pages.tex
+\let\Shipout=\shipout
+\newread\pages \newcount\nextpage \openin\pages=pages
+\def\getnextpage{\ifeof\pages\else
+ {\endlinechar=-1\read\pages to\next
+ \ifx\next\empty % in this case we should have eof now
+ \else\global\nextpage=\next\fi}\fi}
+\ifeof\pages\else\message{OK, I'll ship only the requested pages!}
+ \getnextpage\fi
+\def\shipout{\ifeof\pages\let\next=\Shipout
+ \else\ifnum\pageno=\nextpage\getnextpage\let\next=\Shipout
+ \else\let\next=\Tosspage\fi\fi \next}
+\newbox\garbage \def\Tosspage{\deadcycles=0\setbox\garbage=}
+
+% Chapter formatting
+% The preface and table of contents are formatted in place, not here
+
+\newcount\exno % for the number of exercises in the current chapter
+\newcount\subsecno % for the number of subsections in the current chapter
+
+\def\beginchapter#1 #2#3. #4\par{\global\exno=0
+ \subsecno=0
+ \def\chapno{#2#3}
+ \ifodd\pageno
+ \errmessage{You had too much text on that last page; I'm backing up}
+ \advance\pageno by-1 \fi
+ \titlepage
+ \def\\{ } % \\'s in the title will be treated as spaces
+ \message{#1 #2#3:} % show the chapter title on the terminal
+ \def\MF{{\manual 89:;<=>:}} % slant the logo
+ \xdef\rhead{#1 #2#3: #4\unskip}
+ {\def\TeX{T\kern-.2em\lower.5ex\hbox{E}\kern-.06em X}
+ \def\MF{{\vbox to30pt{}\manual ()*+,-.*}}
+ \def\\{#3}
+ \ifx\empty\\ \rightline{\inchhigh #2\kern-.04em}
+ \else\rightline{\inchhigh #2\kern-.06em#3\kern-.04em}\fi
+ \vskip 1.75pc
+ \baselineskip 36pt \lineskiplimit \titlelsl \lineskip 12pt
+ \let\\=\cr % now the \\'s are line dividers
+ \halign{\line{\titlefont\hfil##}\\#4\unskip\\}
+ \vfill\eject} % output the chapter title page
+ \tenpoint
+ \noindent\ignorespaces} % the first paragraph of a chapter is not indented
+\newdimen\titlelsl \titlelsl=1pt
+
+\outer\def\endchapter{\ifodd\pageno \else\vfill\eject\null\fi
+ \begingroup\bigskip\vfill % beginning of the quotes
+ \def\eject{\endgroup\eject}
+ \def\par{\ifhmode\/\endgraf\fi}\obeylines
+ \def\TeX{T\kern-.2em\lower.5ex\hbox{E}\kern-.000em X}
+ \def\MF{{\manual opqr}\-{\manual stuq}}
+ \eightpoint \let\tt=\ninett
+ \baselineskip 10pt
+ \parfillskip \z@
+ \interlinepenalty 10000
+ \leftskip \z@ plus 40pc minus \parindent
+ \let\rm=\eightss \let\sl=\eightssi
+ \everypar{\sl}}
+\def\author#1(#2){\smallskip\noindent\rm--- #1\unskip\enspace(#2)}
+
+\def\dbend{{\manual\char127}} % dangerous bend sign
+\def\d@nger{\medbreak\begingroup\clubpenalty=10000
+ \def\par{\endgraf\endgroup\medbreak} \noindent\hang\hangafter=-2
+ \hbox to0pt{\hskip-\hangindent\dbend\hfill}\ninepoint}
+\outer\def\danger{\d@nger}
+\def\dd@nger{\medbreak\begingroup\clubpenalty=10000
+ \def\par{\endgraf\endgroup\medbreak} \noindent\hang\hangafter=-2
+ \hbox to0pt{\hskip-\hangindent\dbend\kern1pt\dbend\hfill}\ninepoint}
+\outer\def\ddanger{\dd@nger}
+\def\enddanger{\endgraf\endgroup} % omits the \medbreak
+
+\outer\def\subsection#1. {\medbreak\advance\subsecno by 1
+ \noindent{\it \the\subsecno.\enspace#1.\enspace}}
+\def\ansno#1.#2:{\medbreak\noindent
+ \hbox to\parindent{\bf\hss#1.#2.\enspace}\ignorespaces}
+
+% Composition macros
+\hyphenation{man-u-script man-u-scripts ap-pen-dix xscaled}
+
+\def\AmSTeX{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.075em
+ S$-\TeX}
+\def\bull{\vrule height .9ex width .8ex depth -.1ex } % square bullet
+\def\SS{{\it SS}} % scriptscript style
+\def\|{\leavevmode\hbox{\tt\char`\|}} % vertical line
+\def\dn{\leavevmode\hbox{\tt\char'14}} % downward arrow
+\def\up{\leavevmode\hbox{\tt\char'13}} % upward arrow
+\def\]{\leavevmode\hbox{\tt\char`\ }} % visible space
+
+\def\pt{\,{\rm pt}} % units of points, in math formulas
+\def\em{\,{\rm em}} % units of ems, in math formulas
+\def\<#1>{\leavevmode\hbox{$\langle$#1\/$\rangle$}} % syntactic quantity
+\def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant
+\def\hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant
+\def\cstok#1{\leavevmode\thinspace\hbox{\vrule\vtop{\vbox{\hrule\kern1pt
+ \hbox{\vphantom{\tt/}\thinspace{\tt#1}\thinspace}}
+ \kern1pt\hrule}\vrule}\thinspace} % control sequence token
+
+{\obeyspaces\gdef {\ }}
+\def\parbreak{\hfil\break\indent\strut}
+\def\stretch{\nobreak\hskip0pt plus2pt\relax}
+
+% macros for non-centered displays
+\outer\def\begindisplay{\obeylines\startdisplay}
+{\obeylines\gdef\startdisplay#1
+ {\catcode`\^^M=5$$#1\halign\bgroup\indent##\hfil&&\qquad##\hfil\cr}}
+\outer\def\enddisplay{\crcr\egroup$$}
+
+% (the following \begin...\end-type macros do not appear in Appendix E)
+% macros for demonstrating math constructions
+\outer\def\beginmathdemo{$$\advance\baselineskip by2pt
+ \halign\bgroup\indent\hbox to 160pt{##\hfil}&$##$\hfil\cr\noalign{\vskip-2pt}}
+\outer\def\begindisplaymathdemo {$$\advance\baselineskip by15pt
+ \halign\bgroup\indent\hbox to 160pt{##\hfil}&$\displaystyle{##}$\hfil\cr
+ \noalign{\vskip-15pt}}
+\outer\def\beginlongmathdemo{$$\advance\baselineskip by2pt
+ \halign\bgroup\indent\hbox to 210pt{##\hfil}&$##$\hfil\cr\noalign{\vskip-2pt}}
+\outer\def\beginlongdisplaymathdemo {$$\advance\baselineskip by15pt
+ \halign\bgroup\indent\hbox to 210pt{##\hfil}&$\displaystyle{##}$\hfil\cr
+ \noalign{\vskip-15pt}}
+\outer\def\endmathdemo{\egroup$$}
+
+% macros for font tables
+\def\oddline#1{\cr
+ \noalign{\nointerlineskip}
+ \multispan{19}\hrulefill&
+ \setbox0=\hbox{\lower 2.3pt\hbox{\hex{#1x}}}\smash{\box0}\cr
+ \noalign{\nointerlineskip}}
+\def\evenline{\cr\noalign{\hrule}}
+\def\chartstrut{\lower4.5pt\vbox to14pt{}}
+\def\beginchart#1{$$\postdisplaypenalty=-10000 \global\count@=0 #1
+ \halign to\hsize\bgroup
+ \chartstrut##\tabskip0pt plus10pt&
+ &\hfil##\hfil&\vrule##\cr
+ \lower6.5pt\null
+ &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline}
+\def\endchart{\raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B&
+ &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$}
+\def\:{\setbox0=\hbox{\char\count@}%
+ \ifdim\ht0>7.5pt\reposition
+ \else\ifdim\dp0>2.5pt\reposition\fi\fi
+ \box0\global\advance\count@ by1 }
+\def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}
+\def\normalchart{%
+ &\oct{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline0
+ &\oct{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\oct{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline1
+ &\oct{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\oct{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline2
+ &\oct{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\oct{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline3
+ &\oct{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\oct{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline4
+ &\oct{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\oct{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline5
+ &\oct{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\oct{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline6
+ &\oct{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline
+ &\oct{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\oddline7
+ &\oct{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&\evenline}
+
+% (now Appendix E resumes again)
+% macros for verbatim scanning
+\chardef\other=12
+\def\ttverbatim{\begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \obeyspaces \obeylines \tt}
+
+\outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@
+ \catcode`\|=0 \rightskip-5pc \ttfinish}
+{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}|endgroup$$}}
+
+\catcode`\|=\active
+{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
+
+% macros for syntax rules (again, not in Appendix E)
+\def\[#1]{\silenttrue\xref|#1|\thinspace{\tt#1}\thinspace} % keyword in syntax
+\def\beginsyntax{\endgraf\nobreak\medskip
+ \begingroup \catcode`<=13 \catcode`[=13
+ \let\par=\endsyntaxline \obeylines}
+\def\endsyntaxline{\futurelet\next\syntaxswitch}
+\def\syntaxswitch{\ifx\next\<\let\next=\syntaxrule
+ \else\ifx\next\endsyntax\let\next=\endgroup
+ \else\let\next=\continuerule\fi\fi \next}
+\def\continuerule{\hfil\break\indent\qquad}
+\def\endsyntax{\medbreak\noindent}
+{\catcode`<=13 \catcode`[=13
+ \global\let<=\< \global\let[=\[
+ \gdef\syntaxrule<#1>{\endgraf\indent\silentfalse\xref\<#1>}}
+\def\is{\ $\longrightarrow$ }
+\def\alt{\ $\vert$ }
+
+% macros to demarcate lines quoted from TeX source files
+\def\beginlines{\par\begingroup\nobreak\medskip\parindent\z@ \obeylines
+ \hrule\kern1pt\nobreak \everypar{\strut}}
+\def\endlines{\kern1pt\hrule\endgroup\medbreak\noindent}
+\def\weakendlines{\kern1pt\hrule\endgroup\medskip\noindent}
+\def\finalendlines{\kern1pt\hrule\endgroup\medbreak}
+
+\outer\def\exercise{\medbreak
+ \global\advance\exno by 1
+ \noindent\llap{\manual\char'170\rm\kern.15em}% triangle in margin
+ {\ninebf EXERCISE \bf\chapno.\the\exno}\par\nobreak\noindent}
+\def\dexercise{\global\advance\exno by 1
+ \llap{\manual\char'170\rm\kern.15em}% triangle in indented space
+ {\eightbf EXERCISE \bf\chapno.\the\exno}\hfil\break}
+\outer\def\dangerexercise{\d@nger \dexercise}
+\outer\def\ddangerexercise{\dd@nger \dexercise}
+
+\newwrite\ans
+\immediate\openout\ans=answers % file for answers to exercises
+\outer\def\answer{\par\medbreak
+ \immediate\write\ans{}
+ \immediate\write\ans{\string\ansno\chapno.\the\exno:}
+ \copytoblankline}
+\def\copytoblankline{\begingroup\setupcopy\copyans}
+\def\setupcopy{\def\do##1{\catcode`##1=\other}\dospecials
+ \catcode`\|=\other \obeylines}
+{\obeylines \gdef\copyans#1
+ {\def\next{#1}%
+ \ifx\next\empty\let\next=\endgroup %
+ \else\immediate\write\ans{\next} \let\next=\copyans\fi\next}}
+
+% Editorial notes: some things to watch for.
+
+% f |\ and f ^|\ => insert \/ [e.g., if\/ |\hbox|...]
+% appendi => check for \null [e.g., Appendix~B\null.]
+% ly- => the hyphen is probably omittable
+% ''. and '', => transpose to .'' and ,''
+% dgement => dgment
+% in MFbook: f@' and \MF, and \MF.
+
+% Macros for drawing figures (not in Appendix E)
+\def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2 \kern-#2 }
+\def\hidevrule#1#2{\kern-#1{\dimen0=#1
+ \advance\dimen0 by#2\vrule width\dimen0}\kern-#2 }
+% \makeblankbox puts rules at the edges of a blank box
+% whose dimensions are those of \box0 (assuming nonnegative wd,ht,dp)
+% #1 is rule thickness outside, #2 is rule thickness inside
+\def\makeblankbox#1#2{\hbox{\lower\dp0\vbox{\hidehrule{#1}{#2}%
+ \kern-#1% overlap the rules at the corners
+ \hbox to\wd0{\hidevrule{#1}{#2}%
+ \raise\ht0\vbox to #1{}% set the vrule height
+ \lower\dp0\vtop to #1{}% set the vrule depth
+ \hfil\hidevrule{#2}{#1}}%
+ \kern-#1\hidehrule{#2}{#1}}}}
+\def\maketypebox{\makeblankbox{0pt}{1pt}}
+\def\makelightbox{\makeblankbox{.2pt}{.2pt}}
+
+% \box\bigdot is a null box with a bullet at its reference point
+\newbox\bigdot \newbox\smalldot
+\setbox0=\hbox{$\vcenter{}$} % \ht0 is the axis height
+\setbox1=\hbox to\z@{$\hss\bullet\hss$} % bullet is centered on the axis
+\setbox\bigdot=\vbox to\z@{\kern-\ht1 \kern\ht0 \box1 \vss}
+\setbox1=\hbox to\z@{$\hss\cdot\hss$} % cdot is centered on the axis
+\setbox\smalldot=\vbox to\z@{\kern-\ht1 \kern\ht0 \box1 \vss}
+
+% \arrows makes things like <--- text --->
+\def\arrows#1#2{% #1=width, #2=text
+ {\setbox0=\hbox{$\mkern-2mu\mathord-\mkern-2mu$}
+ \hbox to #1{\kern-.055556em$\leftarrow\mkern-6mu$%
+ \cleaders\copy0\hfil
+ \kern.4em #2\kern.4em
+ \cleaders\copy0\hfil
+ $\mkern-6mu\rightarrow$\kern-.055556em}}}
+
+% \samplebox makes the outline of a box, with big dot at reference point
+\def\samplebox#1#2#3#4{% #1=ht, #2=dp, #3=wd, #4=text
+ {\setbox0=\vtop{\vbox to #1{\hbox to #3{}\vss}
+ \nointerlineskip
+ \vbox to #2{}}% now \box0 has the desired ht, dp, and wd
+ \hbox{\copy\bigdot
+ \vrule height.2pt depth.2pt width#3%
+ \kern-#3%
+ \makelightbox
+ \kern-#3%
+ \raise#1\vbox{\hbox to #3{\hss#4\hss}
+ \kern 3pt}}}}
+
+% \sampleglue makes glue between sample boxes
+\newdimen\varunit
+\varunit=\hsize \advance\varunit by-2\parindent
+\divide\varunit by 58 % illustrations in Chapter 12
+\def\sampleglue#1#2{% #1=width, #2=text
+ \vtop{\hbox to #1{\xleaders\hbox to .5\varunit{\hss\copy\smalldot\hss}\hfil}
+ \kern3pt
+ \tabskip \z@ plus 1fil
+ \halign to #1{\hfil##\cr#2\cr}}}
+
+% Indexing macros
+\newif\ifproofmode
+\proofmodetrue % this should be false when making camera-ready copy
+\newwrite\inx
+\immediate\openout\inx=index % file for index reminders
+\newif\ifsilent
+\def\specialhat{\ifmmode\def\next{^}\else\let\next=\beginxref\fi\next}
+\def\beginxref{\futurelet\next\beginxrefswitch}
+\def\beginxrefswitch{\ifx\next\specialhat\let\next=\silentxref
+ \else\silentfalse\let\next=\xref\fi \next}
+\catcode`\^=\active \let ^=\specialhat
+\def\silentxref^{\silenttrue\xref}
+
+\def\marginstyle{\vrule height6pt depth2pt width\z@ \sevenrm}
+
+\chardef\bslash=`\\
+\def\xref{\futurelet\next\xrefswitch}
+\def\xrefswitch{\begingroup
+ \ifx\next|\aftergroup\vxref % case 1 or 2, |arg| or |\arg|
+ \else\ifx\next\<\aftergroup\anglexref % case 3, "\<arg>" means angle brackets
+ \else\aftergroup\normalxref \fi\fi\endgroup} % case 0, "{arg}"
+\def\vxref|{\catcode`\\=\active \futurelet\next\vxrefswitch}
+\def\vxrefswitch#1|{\catcode`\\=0
+ \ifx\next\empty\def\xreftype{2}%
+ \def\next{{\tt\bslash\text}}% type 2, |\arg|
+ \else\def\xreftype{1}\def\next{{\tt\text}}\fi % type 1, |arg|
+ \edef\text{#1}\makexref}
+{\catcode`\|=0 \catcode`\\=\active |gdef\{}}
+\def\anglexref\<#1>{\def\xreftype{3}\def\text{#1}%
+ \def\next{\<\text>}\makexref}
+\def\normalxref#1{\def\xreftype{0}\def\text{#1}\let\next=\text\makexref}
+\def\makexref{\ifproofmode\insert\margin{\hbox{\marginstyle\text}}%
+ \xdef\writeit{\write\inx{\text\space!\xreftype\space
+ \noexpand\number\pageno.}}\writeit
+ \else\ifhmode\kern\z@\fi\fi
+ \ifsilent\ignorespaces\else\next\fi}
+% the \insert (which is done in proofmode only) suppresses hyphenation,
+% so the \kern\z@ is put in to give the same effect in non-proofmode.
+
+% Internal cross references that may change
+\def\sesame{61} % page number for Sesame Street quote
+\def\bmiexno{20} % exercise number for bold math italic
+\def\punishexno{1} % exercise number for `punishment'
+\def\fracexno{6} % exercise number for `\frac'
+\def\vshippage{31} % error message from `\vship'
+\def\storypage{24} % listing of story.tex
+\def\metaT{4} % exercise number for T of METAFONT
+\def\xwhat{2} % exercise number for x3:=whatever
+\def\Xwhat{2} % exercise number for whatever itself
+
+\def\checkequals#1#2{\ifnum#1=#2\else
+ \errmessage{Redefine \string#1 to be \the#2}\fi}
+
+% Things for The METAFONTbook only
+\ifx\MFmanual\!\else\endinput\fi
+
+\def\!{\kern-.03em\relax}
+
+\def\frac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
+
+\outer\def\displayfig #1 (#2){$$\advance\abovedisplayskip by 3pt
+ \leftline{\indent\figbox{#1}{3in}{#2}\vbox}$$}
+\def\rightfig #1 (#2 x #3) ^#4 {% #2 wide and #3 deep, raised #4
+ \strut\vadjust{\setbox0=\vbox to 0pt{\vss
+ \hbox to\pagewidth{\hfil
+ \raise #4\figbox{#1}{#2}{#3}\vtop \quad}}
+ \dp0=0pt \box0}}
+\def\figbox#1#2#3#4{#4to#3{ % makes a box #2 wide and #3 deep
+ \ifproofmode\kern0pt\hrule\vfill
+ \hsize=#2 \baselineskip 6pt \fiverm\noindent\raggedright
+ (Figure #1 will be inserted here; too bad you can't see it now.)
+ \endgraf\vfill\hrule
+ \else\vfill\hbox to#2{}\fi}}
+
+\def\endsyntax{\begingroup\let\par=\endgraf\medbreak\endgroup\noindent}
+
+\let\BEGINCHAPTER=\beginchapter
+\def\beginchapter{\titlelsl=1pt \BEGINCHAPTER}
+\def\beginChapter{\titlelsl=2pt \BEGINCHAPTER}
+
+\def\decreasehsize #1 {\advance\hsize-#1}
+\def\restorehsize{\hsize=\pagewidth}
+
+\catcode`\@=\active
+\catcode`\"=\active
+\def\ttverbatim{\begingroup \catcode`\@=\other \catcode`\"=\other
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \obeyspaces \obeylines \tt}
+\def\setupcopy{\def\do##1{\catcode`##1=\other}\dospecials
+ \catcode`\|=\other \catcode`\@=\other \catcode`\"=\other \obeylines}
+\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
+\def@#1@{\begingroup\def\_{\kern.04em
+ \vbox{\hrule width.3em height .6pt}\kern.08em}%
+ \ifmmode\mathop{\bf#1}\else\hbox{\bf#1\/}\fi\endgroup}
+\def"#1"{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\xrefswitch{\begingroup
+ \ifx\next|\aftergroup\vxref % case 1, |arg| or |\arg|
+ \else\ifx\next@\aftergroup\boldxref % case 2, "@arg@" means boldface
+ \else\ifx\next"\aftergroup\italxref % case 4, ""arg"" means boldface
+ \else\ifx\next\<\aftergroup\anglexref % case 3, "\<arg>" means angle brackets
+ \else\aftergroup\normalxref \fi\fi\fi\fi\endgroup} % case 0, "{arg}"
+\def\boldxref@#1@{\def\xreftype{2}\def\text{#1}%
+ \def\next{@\text@}\makexref}
+\def\italxref"#1"{\def\xreftype{4}\def\text{#1}%
+ \def\next{"\text"}\makexref}
+
+\def\pyth+{\mathbin{++}}
+\def\0{\raise.7ex\hbox{$\scriptstyle\#$}}
+\def\to{\mathrel{\ldotp\ldotp}}
+\def\dashto{\mathrel{\hbox{-\thinspace-\kern-.05em}}}
+\def\ddashto{\mathrel{\hbox{-\thinspace-\thinspace-\kern-.05em}}}
+\def\round{\mathop{\rm round}}
+\def\angle{\mathop{\rm angle}}
+\def\rmsqrt{\mathop{\rm sqrt}}
+\def\reverse{\mathop{\rm reverse}}
+\def\curl{\mathop{\rm curl}}
+\def\tension{\mathop{\rm tension}}
+\def\atleast{\mathop{\rm atleast}}
+\def\controls{\mathop{\rm controls}}
+\def\and{\,{\rm and}\,}
+\def\cycle{{\rm cycle}}
+\def\pickup{@pickup@ \thinspace}
+\def\penpos#1{\hbox{\it penpos}_{#1}}
+\def\pentaper#1{\hbox{\it pentaper}_{#1}}
+
+\chardef\hexa=1 % first hex
+\chardef\hexb=2 % top and bot adjusted
+\chardef\hexc=3 % same, bold
+\chardef\hexd=4 % same, confined to box
+\chardef\hexe=5 % penstroked hex
+\chardef\Aa=6 % stick-figure A, golden ratio
+\def\sevenAs{\char7\char8\char9\char10\char11\char12\char13} % same, variants
+\chardef\Az=14 % same, with crooked bar
+\chardef\Ab=15 % \Aa with rectilinear elliptical pen
+\chardef\Ac=16 % same, with the ellipse tilted
+\chardef\beana=17 % kidney bean, default pen
+\chardef\beanb=18 % same, twice as bold
+\chardef\beanc=19 % same, rectilinear elliptical pen
+\chardef\beand=20 % same, with the ellipse tilted
+\chardef\niba=21 % 10x rectilinear ellipse
+\chardef\nibb=22 % same, with the ellipse tilted
+\chardef\nibc=23 % same, 90 degrees titled
+\chardef\IOT=24 % Ionian T
+\chardef\IOS=25 % Ionian S
+\chardef\IOO=26 % Ionian O
+\chardef\IOI=27 % Ionian I
+\chardef\cubea=28 % possible cube
+\chardef\cubeb=29 % impossible cube
+\chardef\bicentennial=30 % star with overlapping strokes
+\chardef\oneu=31 % 1/4 of uuuu ornament
+\chardef\circa=32 % quartercircle
+\chardef\circb=33 % filled quartercircle
+\chardef\circc=34 % rotated quartercircle
+\chardef\circd=35 % cone
+\chardef\circe=36 % concentric circles
+\chardef\circf=37 % concentric diamonds
+\chardef\fouru=38 % uuuu ornament
+\chardef\fourc=39 % same, rotated
+\chardef\seventh='140 % 1/7, to go with cmssqi8
+
+\newdimen\apspix
+\apspix=31448sp % 8 APS pixels = 52413.64sp, and I'm taking 60% of this
+% to crude approximation, there are about 2\apspix per pt
+\newdimen\blankpix \newdimen\Blankpix
+\setbox0=\hbox{\manual P} \blankpix=\wd0 % approximately 1pt blank pixel
+\setbox0=\hbox{\manual R} \Blankpix=\wd0 % approximately 3pt blank pixel
+
+\def\leftheadline{\hbox to \pagewidth{%
+ \vbox to 10pt{}% strut to position the baseline
+ \llap{\tenbf\folio\kern1pc}% folio to left of text
+ \def\MF{{\manual 89:;<=>:}}% slanted 10pt
+ \tenit\rhead\hfil% running head flush left
+ }}
+\def\rightheadline{\hbox to \pagewidth{%
+ \vbox to 10pt{}% strut to position the baseline
+ \def\MF{{\manual 89:;<=>:}}% slanted 10pt
+ \hfil\tenit\rhead\/% running head flush right
+ \rlap{\kern1pc\tenbf\folio}% folio to right of text
+ }}
+\def\ttok#1{\leavevmode\thinspace\hbox{\vrule\vtop{\vbox{\hrule\kern1pt
+ \hbox{\vphantom{\tt(j}\thinspace{\tt#1}\thinspace}}
+ \kern1pt\hrule}\vrule}\thinspace} % token
+
+\newdimen\tinypix \setbox0=\hbox{\sixrm0} \tinypix=5pt
+\newdimen\pixcorr \pixcorr=\tinypix \advance\pixcorr by-\wd0
+\def\pixpat#1#2#3#4{\vcenter{\sixrm\baselineskip=\tinypix
+ \hbox{#1\kern\pixcorr#2}\hbox{#3\kern\pixcorr#4}}}
+
+\font\rand=random
diff --git a/Master/texmf-dist/tex/plain/base/mftmac.tex b/Master/texmf-dist/tex/plain/base/mftmac.tex
new file mode 100644
index 00000000000..3243e74d68d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/mftmac.tex
@@ -0,0 +1,55 @@
+% special macros for use with MFT output
+
+\font\tenlogo=logo10 % font used for the METAFONT logo
+\font\tentex=cmtex10 \hyphenchar\tentex=-1 % font used for strings
+\font\sevenit=cmti7 \scriptfont\itfam=\sevenit
+\def\MF{{\tenlogo META}\-{\tenlogo FONT}}
+
+\parindent=0pt
+\thinmuskip=5mu
+\thickmuskip=6mu plus 6mu
+\mathcode`\|="326A
+
+\def\\#1{{\it#1}} % italic type for identifiers
+\def\0#1#2#3{\hbox{\rm\'{}\kern-.2em\it#1#2#3\/\kern.05em}} % octal constant
+\def\1#1{\mathop{\hbox{\rm#1}}} % operator, in roman type
+\def\2#1{\mathop{\hbox{\bf#1\/\kern.05em}}} % operator, in bold type
+\def\3#1{\,\mathclose{\hbox{\bf#1\/}}} % `fi' and `endgroup'
+\def\4#1{\mathbin{\hbox{\bf#1\/}}} % `step' and `at'
+\def\5#1{\hbox{\bf#1\/}} % `true' and `nullpicture'
+\def\6#1{\mathbin{\rm#1}} % `++' and `scaled'
+\def\7{\hbox\bgroup\nocats\frenchspacing\finstring} % string token
+\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000
+ #1\unkern}} % `..' and `--'
+\def\9{\hfill$\%} % comment separator
+\def\?#1{\mathopen{#1}\;} % `:', `::', and `||:'
+\def\frac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
+
+\mathchardef\AM="2026 % ampersand
+\let\BL=\medskip % space for empty line
+\mathchardef\BS="026E % backslash
+\mathchardef\HA="0222 % hat ("005E not as good)
+\def\PS{\mathbin{+{-}+}} % pythagorean subtraction
+\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
+\mathchardef\TI="007E % tilde
+
+\chardef\other=12
+\def\nocats{\catcode`\\=\other \catcode`\{=\other
+ \catcode`\}=\other \catcode`\$=\other \catcode`\&=\other
+ \catcode`\#=\other \catcode`\%=\other \catcode`\~=\other
+ \catcode`\_=\other \catcode`\^=\other}
+\def\finstring"#1"{\tentex"#1"\egroup}
+
+\newbox\shorthyf \setbox\shorthyf=\hbox{-\kern-.05em}
+\mathchardef\period=`\.
+{\catcode`\-=\active \global\def-{\copy\shorthyf\mkern3.9mu}
+ \catcode`\.=\active \global\def.{\period\mkern3mu}}
+
+\def\bf{\fam\bffam
+ \def\_{\kern.04em\vbox{\hrule width.3em height .6pt}\kern.08em}%
+ \tenbf}
+
+\def\join#1${} % say %%\join in .mf file to join lines together
+\def\]{\hskip0pt plus 1filll\ } % say % comment\] to get comment flush left
diff --git a/Master/texmf-dist/tex/plain/base/mptmac.tex b/Master/texmf-dist/tex/plain/base/mptmac.tex
new file mode 100644
index 00000000000..f5af73afdfd
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/mptmac.tex
@@ -0,0 +1,89 @@
+% Special macros for use with MFT output.
+% Adapted to METAPOST sources by Wlodek Bzyl, July 2001.
+
+\ifx\mptmacisloaded\relax\endinput\else\let\mptmacisloaded=\relax\fi
+
+\catcode`\@=11
+
+\font\tenlogo=logo10 % font used for the METAFONT logo
+\font\tentex=cmtex10 \hyphenchar\tentex=-1 % font used for strings
+\font\sevenit=cmti7 \scriptfont\itfam=\sevenit
+\def\MF{{\tenlogo META}\-{\tenlogo FONT}}
+\def\MP{{\tenlogo META}\-{\tenlogo POST}}
+
+\parindent=0pt
+\thinmuskip=5mu
+\thickmuskip=6mu plus 6mu
+\mathcode`\|="326A
+
+\def\\#1{{\it#1}} % italic type for identifiers
+\def\0#1#2#3{\hbox{\rm\'{}\kern-.2em\it#1#2#3\/\kern.05em}} % octal constant
+\def\1#1{\mathop{\hbox{\rm#1}}} % operator, in roman type
+\def\2#1{\mathop{\hbox{\mftbf#1\/\kern.05em}}} % operator, in bold type
+\def\3#1{\,\mathclose{\hbox{\mftbf#1\/}}} % `fi' and `endgroup'
+\def\4#1{\mathbin{\hbox{\mftbf#1\/}}} % `step' and `at'
+\def\5#1{\hbox{\mftbf#1\/}} % `true' and `nullpicture'
+\def\6#1{\mathbin{\rm#1}} % `++' and `scaled'
+\def\7{\hbox\bgroup\mft@nocats\frenchspacing\mft@finstring} % string token
+\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000
+ #1\unkern}} % `..' and `--'
+\def\9{\hfill$\%} % comment separator
+\def\?#1{\mathopen{#1}\;} % `:', `::', and `||:'
+\def\frac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
+
+\mathchardef\AM="2026 % ampersand
+\let\BL=\medskip % space for empty line
+\mathchardef\BS="026E % backslash
+\mathchardef\HA="0222 % hat ("005E not as good)
+\def\PS{\mathbin{+{-}+}} % pythagorean subtraction
+\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
+\mathchardef\TI="007E % tilde
+
+\chardef\other=12
+\def\mft@noc@ts{\catcode`\\=\other \catcode`\{=\other
+ \catcode`\}=\other \catcode`\$=\other \catcode`\&=\other
+ \catcode`\#=\other \catcode`\~=\other
+ \catcode`\_=\other \catcode`\^=\other}
+\def\mft@nocats{\mft@noc@ts \catcode`\%=\other}
+\def\mft@finstring"#1"{\tentex"#1"\egroup}
+
+\newbox\mft@shorthyf \setbox\mft@shorthyf=\hbox{-\kern-.05em}
+\mathchardef\period=`\.
+{\catcode`\-=\active \global\def-{\copy\mft@shorthyf\mkern3.9mu}
+ \catcode`\.=\active \global\def.{\period\mkern3mu}}
+
+\def\mftbf{\fam\bffam
+ \def\_{\kern.04em\vbox{\hrule width.3em height .6pt}\kern.08em}%
+ \tenbf}
+
+\def\join#1${} % say %%\join in .mf file to join lines together
+\def\]{\hskip0pt plus 1filll\ } % say % comment\] to get comment flush left
+
+{\obeyspaces \global\let =\ } % don't skip spaces which begin a line
+
+\def\mft@verbatimtex{\begingroup
+ \def\par{\leavevmode\endgraf}% don't skip empty lines
+ \mft@nocats \obeyspaces \obeylines \tt}
+
+% the percent sign in btex .. etex group is a comment character.
+\def\mft@btex{\begingroup \mft@noc@ts \obeyspaces \tt}
+
+% Names `\mftbeginV', `\mftbeginB', and `\mftend' are hard-wired into MFT
+
+\outer\def\mftbeginV#1{\5{#1}$\mftverbatimtex}
+\outer\def\mftbeginB#1{\5{#1}$\mftbtex}
+\def\mftend#1{$\5{#1}}
+
+\outer\def\mftverbatimtex{\let\par=\endgraf \mft@verbatimtex \parskip=\z@
+ \mft@finish}
+\outer\def\mftbtex{\mft@btex \mft@finish}
+
+{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|mft@finish#1\mftend{#1|endgroup|mftend}}
+
+\catcode`\@=12
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/base/picmac.tex b/Master/texmf-dist/tex/plain/base/picmac.tex
new file mode 100644
index 00000000000..0e1b537ab8b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/picmac.tex
@@ -0,0 +1,178 @@
+% Pictures (a subset of \LaTeX's conventions, plus squines)
+\catcode`@=11 % enable private control sequences
+\def\wlog#1{} % don't put allocation info into the log
+
+\newskip\hsssglue \hsssglue=0pt plus 1fill minus 1fill \def\hsss{\hskip\hsssglue}
+
+\newdimen\unitlength \newdimen\linethickness
+\newdimen\@picheight \newdimen\@xdim \newdimen\@ydim \newdimen\@len \newdimen\@save
+\newcount\@multicount \newcount\@xarg \newcount\@yarg
+\newbox\@picbox \newbox\@mpbox
+
+\font\tenln=line10 \font\tenlnw=linew10
+\font\tencirc=lcircle10 \font\tencircw=lcirclew10
+
+\def\thinlines{\let\linefont=\tenln \let\circlefont=\tencirc
+ \linethickness=\fontdimen8\linefont}
+\def\thicklines{\let\linefont=\tenlnw \let\circlefont=\tencircw
+ \linethickness=\fontdimen8\linefont}
+\thinlines
+
+\def\beginpicture(#1,#2)(#3,#4){\@picheight=#2\unitlength
+ \setbox\@picbox=\hbox to#1\unitlength\bgroup \let\line=\@line
+ \kern-#3\unitlength \lower#4\unitlength\hbox\bgroup\ignorespaces}
+\def\endpicture{\egroup\hss\egroup
+ \ht\@picbox=\@picheight \dp\@picbox=\z@
+ \leavevmode\box\@picbox}
+
+\def\put(#1,#2)#3{\raise#2\unitlength\rlap{\kern#1\unitlength #3}\ignorespaces}
+
+\def\multiput(#1,#2)(#3,#4)#5#6{\@multicount=#5\relax
+ \@xdim=#1\unitlength \@ydim=#2\unitlength \setbox\@mpbox=\hbox{#6}%
+ \loop\ifnum\@multicount>0
+ \raise\@ydim\rlap{\kern\@xdim \unhcopy\@mpbox}%
+ \advance\@xdim#3\unitlength \advance\@ydim#4\unitlength
+ \advance\@multicount\m@ne \repeat\ignorespaces}
+
+\def\makebox(#1,#2)#3{\setbox\@picbox=\hbox to#1\unitlength{\hss#3\hss}%
+ \@ydim=\ht\@picbox \advance\@ydim-\dp\@picbox
+ \ht\@picbox=#2\unitlength \dp\@picbox=\z@
+ \leavevmode\lower.5\@ydim\box\@picbox}
+
+\newif\ifneg
+\def\@line(#1,#2)#3{\@xarg=#1 \@yarg=#2 \@len=#3\unitlength \leavevmode
+ \ifnum\@xarg<0 \reverseline \else \negfalse \@ydim=\z@\fi
+ \ifnum\@xarg=0 \@vline
+ \else\ifnum\@yarg=0 \@hline \else\@sline\fi\fi
+ \ifneg\kern-\@len\else\@save=\@ydim\fi}
+\def\reverseline{\negtrue \kern-\@len \@xarg=-\@xarg
+ \@ydim=\@len \multiply\@ydim\@yarg \divide\@ydim\@xarg \@yarg=-\@yarg}
+
+\def\@hline{\vrule height.5\linethickness depth.5\linethickness width\@len}
+\def\@vline{\kern-.5\linethickness\vrule width\linethickness
+ \ifnum\@yarg<0 height\z@ depth\else depth\z@ height\fi\@len
+ \kern-.5\linethickness}
+
+\def\@sline{\setbox\@picbox=\hbox{\linefont \count@=\@xarg \multiply\count@ 8
+ \ifnum\@yarg>0 \advance\count@\@yarg \advance\count@-9
+ \else \advance\count@-\@yarg \advance\count@ 55 \fi \char\count@}%
+ \ifnum\@yarg<0 \@picheight=-\ht\@picbox \advance\@ydim\@picheight
+ \else \@picheight=\ht\@picbox \fi
+ \@xdim=\wd\@picbox \@save=\@ydim
+ \loop\ifdim\@xdim<\@len \raise\@ydim\copy\@picbox
+ \advance\@xdim\wd\@picbox \advance\@ydim\@picheight \repeat
+ \advance\@xdim-\@len \kern-\@xdim
+ \multiply\@xdim\@yarg \divide\@xdim\@xarg \advance\@ydim-\@xdim
+ \raise\@ydim\box\@picbox}
+
+\def\vector(#1,#2)#3{\@line(#1,#2){#3}%
+ \ifnum\@xarg=0 \@vvector \else\ifnum\@yarg=0 \@hvector \else\@svector\fi\fi}
+\def\@hvector{\ifneg\rlap{\linefont\char27}\else
+ \smash{\llap{\linefont\char45}}\fi} % we have to smash because of font bug
+\def\@vvector{\ifnum\@yarg<0 \raise-\@len\rlap{\linefont\char63}%
+ \else\setbox\@picbox=\rlap{\linefont\char54}\advance\@len-\ht\@picbox
+ \raise\@len\box\@picbox\fi}
+
+\def\@svector{\setbox\@picbox=\hbox to\z@{\linefont
+ \ifnum\@yarg<0 \count@=55 \@yarg=-\@yarg \else\count@=-9 \fi
+ \ifneg\multiply\@xarg16 \multiply\@yarg2
+ \else\hss % \llap
+ \ifnum\@xarg>2 \multiply\@xarg9 \multiply\@yarg2 \advance\count@29
+ \else\ifnum\@yarg>2 \multiply\@xarg16 \multiply\@yarg9 \advance\count@-20
+ \else\multiply\@xarg24 \multiply\@yarg3 \fi\fi\fi
+ \advance\count@\@xarg \advance\count@\@yarg \char\count@
+ \ifneg\hss\fi}% \rlap
+ \raise\@save\box\@picbox}
+
+\def\disk#1{\@len=#1\unitlength \count@='160 \@diskcirc}
+\def\circle#1{\@len=#1\unitlength \count@='140 \@diskcirc}
+\def\@diskcirc{\setbox\@picbox=\hbox{\circlefont\char\count@}\@xdim=\wd\@picbox
+ \leavevmode \ifdim\@len>15.499\@xdim \@bigdc \else \@smalldc\fi}
+\def\@bigdc{\ifnum\count@<'160 \@bigcirc
+ \else \@len=15\@xdim \@diskcirc\fi}
+\def\@smalldc{{\advance\@len-.5\@xdim
+ \loop\ifdim\@xdim<\@len \advance\count@\@ne \advance\@xdim\wd\@picbox\repeat
+ \hbox{\circlefont\char\count@}}}
+\def\@bigcirc{{\circlefont\count@=15
+ \setbox\@picbox=\hbox{\char\count@}\@xdim=\wd\@picbox
+ \ifdim\@len>2.5\@xdim \@len=2.5\@xdim\fi
+ \advance\@len-.125\wd\@picbox
+ \loop\ifdim\@xdim<\@len \advance\count@ 4 \advance\@xdim.25\wd\@picbox\repeat
+ \@ydim=.5\@xdim \advance\@ydim.5\linethickness
+ \setbox\@picbox=\vbox{\hbox{\char\count@\advance\count@-3\char\count@}%
+ \nointerlineskip
+ \hbox{\advance\count@\m@ne\char\count@\advance\count@\m@ne\char\count@}}%
+ \kern-\@ydim\lower\@ydim\box\@picbox}}
+
+\newif\ifovaltl \newif\ifovaltr \newif\ifovalbl \newif\ifovalbr
+\ovaltltrue \ovaltrtrue \ovalbltrue \ovalbrtrue
+\def\oval(#1,#2){\@xdim=#1\unitlength \@ydim=#2\unitlength
+ {\circlefont \setbox\@picbox=\hbox{\char0}
+ \ifdim\@xdim<\wd\@picbox \@xdim=\wd\@picbox\fi
+ \ifdim\@ydim<\wd\@picbox \@ydim=\wd\@picbox\fi
+ \@save=\@xdim \ifdim\@ydim<\@save \@save=\@ydim \fi
+ \count@=39
+ \loop \setbox\@picbox=\hbox{\char\count@}\ifdim\@save<\wd\@picbox
+ \advance\count@-4 \repeat
+ \setbox\strutbox=\hbox{\vrule height\ht\@picbox depth\dp\@picbox width\z@
+ \kern\wd\@picbox}%
+ \@save=.5\wd\@picbox \advance\@save-.5\linethickness
+ \setbox0=\hbox to\@xdim{\ifovaltl\char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height\ifovaltl\linethickness\else\z@\fi\hfil
+ \leaders\hrule height\ifovaltr\linethickness\else\z@\fi\hfil\kern\@save
+ \ifovaltr\advance\count@-3\char\count@\else\strut\fi\kern-\wd\@picbox}%
+ \advance\count@\m@ne
+ \setbox2=\hbox to\@xdim{\ifovalbl\char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height\ifovalbl\linethickness\else\z@\fi\hfil
+ \leaders\hrule height\ifovalbr\linethickness\else\z@\fi\hfil\kern\@save
+ \ifovalbr\advance\count@\m@ne\char\count@\else\strut\fi\kern-\wd\@picbox}%
+ \@save=\@ydim \advance\@save-\wd\@picbox \divide\@save 2
+ \setbox\@picbox=\vbox{\box0\nointerlineskip
+ \hbox to\@xdim{\vrule height\@save width\ifovaltl\linethickness\else\z@\fi
+ \hfil\ifovaltr\vrule width\linethickness\kern-\linethickness\fi}%
+ \nointerlineskip
+ \hbox to\@xdim{\vrule height\@save width\ifovalbl\linethickness\else\z@\fi
+ \hfil\ifovalbr\vrule width\linethickness\kern-\linethickness\fi}%
+ \nointerlineskip\box2}%
+ \@save=.5\@ydim \advance\@save.5\linethickness \leavevmode
+ \kern-.5\@xdim \kern-.5\linethickness \lower\@save\box\@picbox}}
+
+\def\cpic#1\endcpic{\vcenter{\hbox{\beginpicture#1\endpicture}}}
+
+% Squines (quadratic splines)
+% example of use: to plot f(x) between x0 and x1, you can say
+% \put(0,0){\squine(x0,xm,x1,y0,ym,y1)}, where y0=f(x0), y1=f(x1)
+% xm=(y0-y1+s1x1-s0x0)/(s1-s0), ym=(s0(s1x1-y1)-s1(s0x0-y0))/(s1-s0),
+% s0=f'(x0), and s1=f'(x1).
+
+\newdimen\@xi \newdimen\@xii \newdimen\@xiii \newdimen\@xiv
+\newdimen\@xpt \newdimen\@xoldpt
+\newdimen\@yi \newdimen\@yii \newdimen\@yiii \newdimen\@yiv
+\newdimen\@ypt \newdimen\@yoldpt
+\def\squine(#1,#2,#3,#4,#5,#6){\setbox\@picbox\hbox{\tencirc q}%
+ \global\@xoldpt=#1\unitlength \global\@yoldpt=#4\unitlength \kern\@xoldpt
+ \@xi=\@xoldpt \@xii=#2\unitlength \@xiii=#3\unitlength
+ \@yi=\@yoldpt \@yii=#5\unitlength \@yiii=#6\unitlength
+ \squinerec
+ \@xpt=#3\unitlength \@ypt=#6\unitlength \@addpoint
+ \raise\@ypt\copy\@picbox}
+\newif\iffar
+\def\squinerec{\farfalse \testnear\@xi\@xiii \testnear\@yi\@yiii
+ \iffar \decast \fi}
+\def\testnear#1#2{\@save=#1\advance\@save-#2%
+ \ifdim\@save<\z@ \@save=-\@save\fi \ifdim\@save>\p@ \fartrue \fi}
+\def\decast{\@xpt=\@xi \advance\@xpt\@xii \divide\@xpt2
+ \advance\@xii\@xiii \divide\@xii2
+ \@xiv=\@xpt \advance\@xiv\@xii \divide\@xiv2
+ \@ypt=\@yi \advance\@ypt\@yii \divide\@ypt2
+ \advance\@yii\@yiii \divide\@yii2
+ \@yiv=\@ypt \advance\@yiv\@yii \divide\@yiv2
+ \begingroup\@xii=\@xpt \@xiii=\@xiv
+ \@yii=\@ypt \@yiii=\@yiv \squinerec\endgroup
+ \@xpt=\@xiv \@ypt=\@yiv \@addpoint
+ \@xi=\@xiv \@yi=\@yiv \squinerec}
+\def\@addpoint{%\message{(\the\@xpt,\the\@ypt)}%
+ \global\advance\@xoldpt-\@xpt \wd\@picbox=-\@xoldpt
+ \raise\@yoldpt\copy\@picbox \global\@xoldpt=\@xpt \global\@yoldpt=\@ypt}
+
+\catcode`\@=12 % disable private control sequences
diff --git a/Master/texmf-dist/tex/plain/base/plain.tex b/Master/texmf-dist/tex/plain/base/plain.tex
new file mode 100644
index 00000000000..02d0523dd55
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/plain.tex
@@ -0,0 +1,1241 @@
+% This is the plain TeX format that's described in The TeXbook.
+% N.B.: A version number is defined at the very end of this file;
+% please change that number whenever the file is modified!
+% And don't modify the file unless you change its name:
+% Everybody's "plain.tex" file should be the same, worldwide.
+
+% Unlimited copying and redistribution of this file are permitted as long
+% as this file is not modified. Modifications are permitted, but only if
+% the resulting file is not named plain.tex.
+
+\catcode`\{=1 % left brace is begin-group character
+\catcode`\}=2 % right brace is end-group character
+\catcode`\$=3 % dollar sign is math shift
+\catcode`\&=4 % ampersand is alignment tab
+\catcode`\#=6 % hash mark is macro parameter character
+\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow are for superscripts
+\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow are for subscripts
+\catcode`\^^I=10 % ascii tab is a blank space
+\chardef\active=13 \catcode`\~=\active % tilde is active
+\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par"
+
+\message{Preloading the plain format: codes,}
+
+% We had to define the \catcodes right away, before the message line,
+% since \message uses the { and } characters.
+% When INITEX (the TeX initializer) starts up,
+% it has defined the following \catcode values:
+% \catcode`\^^@=9 % ascii null is ignored
+% \catcode`\^^M=5 % ascii return is end-line
+% \catcode`\\=0 % backslash is TeX escape character
+% \catcode`\%=14 % percent sign is comment character
+% \catcode`\ =10 % ascii space is blank space
+% \catcode`\^^?=15 % ascii delete is invalid
+% \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters
+% \catcode`\a=11 ... \catcode`\z=11 % lowercase letters
+% all others are type 12 (other)
+
+% Here is a list of the characters that have been specially catcoded:
+\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
+% (not counting ascii null, tab, linefeed, formfeed, return, delete)
+% Each symbol in the list is preceded by \do, which can be defined
+% if you want to do something to every item in the list.
+
+% We make @ signs act like letters, temporarily, to avoid conflict
+% between user names and internal control sequences of plain format.
+\catcode`@=11
+
+% INITEX sets up \mathcode x=x, for x=0..255, except that
+% \mathcode x=x+"7100, for x = `A to `Z and `a to `z;
+% \mathcode x=x+"7000, for x = `0 to `9.
+% The following changes define internal codes as recommended
+% in Appendix C of The TeXbook:
+\mathcode`\^^@="2201 % \cdot
+\mathcode`\^^A="3223 % \downarrow
+\mathcode`\^^B="010B % \alpha
+\mathcode`\^^C="010C % \beta
+\mathcode`\^^D="225E % \land
+\mathcode`\^^E="023A % \lnot
+\mathcode`\^^F="3232 % \in
+\mathcode`\^^G="0119 % \pi
+\mathcode`\^^H="0115 % \lambda
+\mathcode`\^^I="010D % \gamma
+\mathcode`\^^J="010E % \delta
+\mathcode`\^^K="3222 % \uparrow
+\mathcode`\^^L="2206 % \pm
+\mathcode`\^^M="2208 % \oplus
+\mathcode`\^^N="0231 % \infty
+\mathcode`\^^O="0140 % \partial
+\mathcode`\^^P="321A % \subset
+\mathcode`\^^Q="321B % \supset
+\mathcode`\^^R="225C % \cap
+\mathcode`\^^S="225B % \cup
+\mathcode`\^^T="0238 % \forall
+\mathcode`\^^U="0239 % \exists
+\mathcode`\^^V="220A % \otimes
+\mathcode`\^^W="3224 % \leftrightarrow
+\mathcode`\^^X="3220 % \leftarrow
+\mathcode`\^^Y="3221 % \rightarrow
+\mathcode`\^^Z="8000 % \ne
+\mathcode`\^^[="2205 % \diamond
+\mathcode`\^^\="3214 % \le
+\mathcode`\^^]="3215 % \ge
+\mathcode`\^^^="3211 % \equiv
+\mathcode`\^^_="225F % \lor
+\mathcode`\ ="8000 % \space
+\mathcode`\!="5021
+\mathcode`\'="8000 % ^\prime
+\mathcode`\(="4028
+\mathcode`\)="5029
+\mathcode`\*="2203 % \ast
+\mathcode`\+="202B
+\mathcode`\,="613B
+\mathcode`\-="2200
+\mathcode`\.="013A
+\mathcode`\/="013D
+\mathcode`\:="303A
+\mathcode`\;="603B
+\mathcode`\<="313C
+\mathcode`\=="303D
+\mathcode`\>="313E
+\mathcode`\?="503F
+\mathcode`\[="405B
+\mathcode`\\="026E % \backslash
+\mathcode`\]="505D
+\mathcode`\_="8000 % \_
+\mathcode`\{="4266
+\mathcode`\|="026A
+\mathcode`\}="5267
+\mathcode`\^^?="1273 % \smallint
+
+% INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x,
+% and \lccode`x=`x, \lccode`X=`x; all other values are zero.
+% No changes to those tables are needed in plain TeX format.
+
+% INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999
+% for uppercase letters. The following changes are needed:
+\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0
+% The \nonfrenchspacing macro will make further changes to \sfcode values.
+
+% Finally, INITEX sets all \delcode values to -1, except \delcode`.=0
+\delcode`\(="028300
+\delcode`\)="029301
+\delcode`\[="05B302
+\delcode`\]="05D303
+\delcode`\<="26830A
+\delcode`\>="26930B
+\delcode`\/="02F30E
+\delcode`\|="26A30C
+\delcode`\\="26E30F
+% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails!
+
+% To make the plain macros more efficient in time and space,
+% several constant values are declared here as control sequences.
+% If they were changed, anything could happen; so they are private symbols.
+\chardef\@ne=1
+\chardef\tw@=2
+\chardef\thr@@=3
+\chardef\sixt@@n=16
+\chardef\@cclv=255
+\mathchardef\@cclvi=256
+\mathchardef\@m=1000
+\mathchardef\@M=10000
+\mathchardef\@MM=20000
+
+% Allocation of registers
+
+% Here are macros for the automatic allocation of \count, \box, \dimen,
+% \skip, \muskip, and \toks registers, as well as \read and \write
+% stream numbers, \fam codes, \language codes, and \insert numbers.
+
+\message{registers,}
+
+% When a register is used only temporarily, it need not be allocated;
+% grouping can be used, making the value previously in the register return
+% after the close of the group. The main use of these macros is for
+% registers that are defined by one macro and used by others, possibly at
+% different nesting levels. All such registers should be defined through
+% these macros; otherwise conflicts may occur, especially when two or more
+% macro packages are being used at once.
+
+% The following counters are reserved:
+% 0 to 9 page numbering
+% 10 count allocation
+% 11 dimen allocation
+% 12 skip allocation
+% 13 muskip allocation
+% 14 box allocation
+% 15 toks allocation
+% 16 read file allocation
+% 17 write file allocation
+% 18 math family allocation
+% 19 language allocation
+% 20 insert allocation
+% 21 the most recently allocated number
+% 22 constant -1
+% New counters are allocated starting with 23, 24, etc. Other registers are
+% allocated starting with 10. This leaves 0 through 9 for the user to play
+% with safely, except that counts 0 to 9 are considered to be the page and
+% subpage numbers (since they are displayed during output). In this scheme,
+% \count 10 always contains the number of the highest-numbered counter that
+% has been allocated, \count 14 the highest-numbered box, etc.
+% Inserts are given numbers 254, 253, etc., since they require a \count,
+% \dimen, \skip, and \box all with the same number; \count 20 contains the
+% lowest-numbered insert that has been allocated. Of course, \box255 is
+% reserved for \output; \count255, \dimen255, and \skip255 can be used freely.
+
+% It is recommended that macro designers always use
+% \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and
+% always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255.
+% This will prevent ``save stack buildup'' that might otherwise occur.
+
+\count10=22 % allocates \count registers 23, 24, ...
+\count11=9 % allocates \dimen registers 10, 11, ...
+\count12=9 % allocates \skip registers 10, 11, ...
+\count13=9 % allocates \muskip registers 10, 11, ...
+\count14=9 % allocates \box registers 10, 11, ...
+\count15=9 % allocates \toks registers 10, 11, ...
+\count16=-1 % allocates input streams 0, 1, ...
+\count17=-1 % allocates output streams 0, 1, ...
+\count18=3 % allocates math families 4, 5, ...
+\count19=0 % allocates \language codes 1, 2, ...
+\count20=255 % allocates insertions 254, 253, ...
+\countdef\insc@unt=20 % the insertion counter
+\countdef\allocationnumber=21 % the most recent allocation
+\countdef\m@ne=22 \m@ne=-1 % a handy constant
+\def\wlog{\immediate\write\m@ne} % write on log file (only)
+
+% Here are abbreviations for the names of scratch registers
+% that don't need to be allocated.
+
+\countdef\count@=255
+\dimendef\dimen@=0
+\dimendef\dimen@i=1 % global only
+\dimendef\dimen@ii=2
+\skipdef\skip@=0
+\toksdef\toks@=0
+
+% Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo
+% and \foo will be defined (with \countdef) to be the next counter.
+% To find out which counter \foo is, you can look at \allocationnumber.
+% Since there's no \boxdef command, \chardef is used to define a \newbox,
+% \newinsert, \newfam, and so on.
+
+\outer\def\newcount{\alloc@0\count\countdef\insc@unt}
+\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
+\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt}
+\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
+\outer\def\newbox{\alloc@4\box\chardef\insc@unt}
+\let\newtoks=\relax % we do this to allow plain.tex to be read in twice
+\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
+\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
+\outer\def\newread{\alloc@6\read\chardef\sixt@@n}
+\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n}
+\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n}
+\outer\def\newlanguage{\alloc@9\language\chardef\@cclvi}
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
+ \ch@ck#1#4#2% make sure there's still room
+ \allocationnumber=\count1#1%
+ \global#3#5=\allocationnumber
+ \wlog{\string#5=\string#2\the\allocationnumber}}
+\outer\def\newinsert#1{\global\advance\insc@unt by\m@ne
+ \ch@ck0\insc@unt\count
+ \ch@ck1\insc@unt\dimen
+ \ch@ck2\insc@unt\skip
+ \ch@ck4\insc@unt\box
+ \allocationnumber=\insc@unt
+ \global\chardef#1=\allocationnumber
+ \wlog{\string#1=\string\insert\the\allocationnumber}}
+\def\ch@ck#1#2#3{\ifnum\count1#1<#2%
+ \else\errmessage{No room for a new #3}\fi}
+
+% Here are some examples of allocation.
+\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen>
+\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow
+\newskip\centering \centering=0pt plus 1000pt minus 1000pt
+\newdimen\p@ \p@=1pt % this saves macro space and time
+\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
+\newskip\z@skip \z@skip=0pt plus0pt minus0pt
+\newbox\voidb@x % permanently void box register
+
+% And here's a different sort of allocation:
+% For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo.
+\outer\def\newif#1{\count@\escapechar \escapechar\m@ne
+ \expandafter\expandafter\expandafter
+ \def\@if#1{true}{\let#1=\iftrue}%
+ \expandafter\expandafter\expandafter
+ \def\@if#1{false}{\let#1=\iffalse}%
+ \@if#1{false}\escapechar\count@} % the condition starts out false
+\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname}
+{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required
+
+% Assign initial values to TeX's parameters
+
+\message{parameters,}
+
+% All of TeX's numeric parameters are listed here,
+% but the code is commented out if no special value needs to be set.
+% INITEX makes all parameters zero except where noted.
+
+\pretolerance=100
+\tolerance=200 % INITEX sets this to 10000
+\hbadness=1000
+\vbadness=1000
+\linepenalty=10
+\hyphenpenalty=50
+\exhyphenpenalty=50
+\binoppenalty=700
+\relpenalty=500
+\clubpenalty=150
+\widowpenalty=150
+\displaywidowpenalty=50
+\brokenpenalty=100
+\predisplaypenalty=10000
+% \postdisplaypenalty=0
+% \interlinepenalty=0
+% \floatingpenalty=0, set during \insert
+% \outputpenalty=0, set before TeX enters \output
+\doublehyphendemerits=10000
+\finalhyphendemerits=5000
+\adjdemerits=10000
+% \looseness=0, cleared by TeX after each paragraph
+% \pausing=0
+% \holdinginserts=0
+% \tracingonline=0
+% \tracingmacros=0
+% \tracingstats=0
+% \tracingparagraphs=0
+% \tracingpages=0
+% \tracingoutput=0
+\tracinglostchars=1
+% \tracingcommands=0
+% \tracingrestores=0
+% \language=0
+\uchyph=1
+% \lefthyphenmin=2 \righthyphenmin=3 set below
+% \globaldefs=0
+% \maxdeadcycles=25 % INITEX does this
+% \hangafter=1 % INITEX does this, also TeX after each paragraph
+% \fam=0
+% \mag=1000 % INITEX does this
+% \escapechar=`\\ % INITEX does this
+\defaulthyphenchar=`\-
+\defaultskewchar=-1
+% \endlinechar=`\^^M % INITEX does this
+\newlinechar=-1
+\delimiterfactor=901
+% \time=now % TeX does this at beginning of job
+% \day=now % TeX does this at beginning of job
+% \month=now % TeX does this at beginning of job
+% \year=now % TeX does this at beginning of job
+\showboxbreadth=5
+\showboxdepth=3
+\errorcontextlines=5
+
+\hfuzz=0.1pt
+\vfuzz=0.1pt
+\overfullrule=5pt
+\hsize=6.5in
+\vsize=8.9in
+\maxdepth=4pt
+\splitmaxdepth=\maxdimen
+\boxmaxdepth=\maxdimen
+% \lineskiplimit=0pt, changed by \normalbaselines
+\delimitershortfall=5pt
+\nulldelimiterspace=1.2pt
+\scriptspace=0.5pt
+% \mathsurround=0pt
+% \predisplaysize=0pt, set before TeX enters $$
+% \displaywidth=0pt, set before TeX enters $$
+% \displayindent=0pt, set before TeX enters $$
+\parindent=20pt
+% \hangindent=0pt, zeroed by TeX after each paragraph
+% \hoffset=0pt
+% \voffset=0pt
+
+% \baselineskip=0pt, changed by \normalbaselines
+% \lineskip=0pt, changed by \normalbaselines
+\parskip=0pt plus 1pt
+\abovedisplayskip=12pt plus 3pt minus 9pt
+\abovedisplayshortskip=0pt plus 3pt
+\belowdisplayskip=12pt plus 3pt minus 9pt
+\belowdisplayshortskip=7pt plus 3pt minus 4pt
+% \leftskip=0pt
+% \rightskip=0pt
+\topskip=10pt
+\splittopskip=10pt
+% \tabskip=0pt
+% \spaceskip=0pt
+% \xspaceskip=0pt
+\parfillskip=0pt plus 1fil
+
+\thinmuskip=3mu
+\medmuskip=4mu plus 2mu minus 4mu
+\thickmuskip=5mu plus 5mu
+
+% We also define special registers that function like parameters:
+\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
+\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt
+\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt
+\newskip\normalbaselineskip \normalbaselineskip=12pt
+\newskip\normallineskip \normallineskip=1pt
+\newdimen\normallineskiplimit \normallineskiplimit=0pt
+\newdimen\jot \jot=3pt
+\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
+\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100
+
+% Definitions for preloaded fonts
+
+\def\magstephalf{1095 }
+\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax}
+
+% Fonts assigned to \preloaded are not part of "plain TeX",
+% but they are preloaded so that other format packages can use them.
+% For example, if another set of macros says "\font\ninerm=cmr9",
+% TeX will not have to reload the font metric information for cmr9.
+
+\message{fonts,}
+
+\font\tenrm=cmr10 % roman text
+\font\preloaded=cmr9
+\font\preloaded=cmr8
+\font\sevenrm=cmr7
+\font\preloaded=cmr6
+\font\fiverm=cmr5
+
+\font\teni=cmmi10 % math italic
+\font\preloaded=cmmi9
+\font\preloaded=cmmi8
+\font\seveni=cmmi7
+\font\preloaded=cmmi6
+\font\fivei=cmmi5
+
+\font\tensy=cmsy10 % math symbols
+\font\preloaded=cmsy9
+\font\preloaded=cmsy8
+\font\sevensy=cmsy7
+\font\preloaded=cmsy6
+\font\fivesy=cmsy5
+
+\font\tenex=cmex10 % math extension
+
+\font\preloaded=cmss10 % sans serif
+\font\preloaded=cmssq8
+
+\font\preloaded=cmssi10 % sans serif italic
+\font\preloaded=cmssqi8
+
+\font\tenbf=cmbx10 % boldface extended
+\font\preloaded=cmbx9
+\font\preloaded=cmbx8
+\font\sevenbf=cmbx7
+\font\preloaded=cmbx6
+\font\fivebf=cmbx5
+
+\font\tentt=cmtt10 % typewriter
+\font\preloaded=cmtt9
+\font\preloaded=cmtt8
+
+\font\preloaded=cmsltt10 % slanted typewriter
+
+\font\tensl=cmsl10 % slanted roman
+\font\preloaded=cmsl9
+\font\preloaded=cmsl8
+
+\font\tenit=cmti10 % text italic
+\font\preloaded=cmti9
+\font\preloaded=cmti8
+\font\preloaded=cmti7
+
+\message{more fonts,}
+\font\preloaded=cmu10 % unslanted text italic
+
+\font\preloaded=cmmib10 % bold math italic
+\font\preloaded=cmbsy10 % bold math symbols
+
+\font\preloaded=cmcsc10 % caps and small caps
+
+\font\preloaded=cmssbx10 % sans serif bold extended
+
+\font\preloaded=cmdunh10 % Dunhill style
+
+\font\preloaded=cmr7 scaled \magstep4 % for titles
+\font\preloaded=cmtt10 scaled \magstep2
+\font\preloaded=cmssbx10 scaled \magstep2
+
+\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols
+
+% Additional \preloaded fonts can be specified here.
+% (And those that were \preloaded above can be eliminated.)
+
+\let\preloaded=\undefined % preloaded fonts must be declared anew later.
+
+\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177
+\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60
+
+\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+\def\rm{\fam\z@\tenrm}
+\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni}
+\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+\def\cal{\fam\tw@}
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4
+\textfont\itfam=\tenit
+\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5
+\textfont\slfam=\tensl
+\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6
+\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+\scriptscriptfont\bffam=\fivebf
+\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7
+\textfont\ttfam=\tentt
+
+% Macros for setting ordinary text
+\message{macros,}
+
+\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m
+ \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m}
+\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000%
+ \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 }
+
+\def\normalbaselines{\lineskip\normallineskip
+ \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}
+
+\def\^^M{\ } % control <return> = control <space>
+\def\^^I{\ } % same for <tab>
+
+\def\lq{`} \def\rq{'}
+\def\lbrack{[} \def\rbrack{]}
+
+\let\endgraf=\par \let\endline=\cr
+
+\def\space{ }
+\def\empty{}
+\def\null{\hbox{}}
+
+\let\bgroup={ \let\egroup=}
+
+% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}'
+% since this allows, for example, `\let\par=\cr \obeylines \halign{...'
+{\catcode`\^^M=\active % these lines must end with %
+ \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
+ \global\let^^M\par} % this is in case ^^M appears in a \write
+\def\obeyspaces{\catcode`\ \active}
+{\obeyspaces\global\let =\space}
+
+\def\loop#1\repeat{\def\body{#1}\iterate}
+\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next}
+\let\repeat=\fi % this makes \loop...\if...\repeat skippable
+
+\def\thinspace{\kern .16667em }
+\def\negthinspace{\kern-.16667em }
+\def\enspace{\kern.5em }
+
+\def\enskip{\hskip.5em\relax}
+\def\quad{\hskip1em\relax}
+\def\qquad{\hskip2em\relax}
+
+\def\smallskip{\vskip\smallskipamount}
+\def\medskip{\vskip\medskipamount}
+\def\bigskip{\vskip\bigskipamount}
+
+\def\nointerlineskip{\prevdepth-1000\p@}
+\def\offinterlineskip{\baselineskip-1000\p@
+ \lineskip\z@ \lineskiplimit\maxdimen}
+
+\def\topglue{\nointerlineskip\vglue-\topskip\vglue} % for top of page
+\def\vglue{\afterassignment\vgl@\skip@=}
+\def\vgl@{\par \dimen@\prevdepth \hrule height\z@
+ \nobreak\vskip\skip@ \prevdepth\dimen@}
+\def\hglue{\afterassignment\hgl@\skip@=}
+\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@
+ \nobreak\hskip\skip@ \spacefactor\count@}
+
+\def~{\penalty\@M \ } % tie
+\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'
+
+\def\break{\penalty-\@M}
+\def\nobreak{\penalty \@M}
+\def\allowbreak{\penalty \z@}
+
+\def\filbreak{\par\vfil\penalty-200\vfilneg}
+\def\goodbreak{\par\penalty-500 }
+\def\eject{\par\break}
+\def\supereject{\par\penalty-\@MM}
+
+\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi}
+\def\smallbreak{\par\ifdim\lastskip<\smallskipamount
+ \removelastskip\penalty-50\smallskip\fi}
+\def\medbreak{\par\ifdim\lastskip<\medskipamount
+ \removelastskip\penalty-100\medskip\fi}
+\def\bigbreak{\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\penalty-200\bigskip\fi}
+
+\def\line{\hbox to\hsize}
+\def\leftline#1{\line{#1\hss}}
+\def\rightline#1{\line{\hss#1}}
+\def\centerline#1{\line{\hss#1\hss}}
+
+\def\rlap#1{\hbox to\z@{#1\hss}}
+\def\llap#1{\hbox to\z@{\hss#1}}
+
+\def\m@th{\mathsurround\z@}
+\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@
+ \m@th \underline{\box\z@}$}
+
+\newbox\strutbox
+\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}
+\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+
+\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out
+\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign
+\newcount\mscount
+\def\multispan#1{\omit \mscount#1\relax
+ \loop\ifnum\mscount>\@ne \sp@n\repeat}
+\def\sp@n{\span\omit\advance\mscount\m@ne}
+
+\newif\ifus@ \newif\if@cr
+\newbox\tabs \newbox\tabsyet \newbox\tabsdone
+
+\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null}
+\def\settabs{\setbox\tabs\null \futurelet\next\sett@b}
+\let\+=\relax % in case this file is being read in twice
+\def\sett@b{\ifx\next\+\def\nxt{\afterassignment\s@tt@b\let\nxt}%
+ \else\let\nxt\s@tcols\fi \let\next\relax \nxt}
+\def\s@tt@b{\let\nxt\relax \us@false\m@ketabbox}
+\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+
+\outer\def\+{\tabalign}
+\def\s@tcols#1\columns{\count@#1\dimen@\hsize
+ \loop\ifnum\count@>\z@ \@nother \repeat}
+\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@
+ \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}%
+ \advance\dimen@-\dimen@ii \advance\count@\m@ne}
+
+\def\m@ketabbox{\begingroup
+ \global\setbox\tabsyet\copy\tabs
+ \global\setbox\tabsdone\null
+ \def\cr{\@crtrue\crcr\egroup\egroup
+ \ifus@\unvbox\z@\lastbox\fi\endgroup
+ \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}%
+ \setbox\z@\vbox\bgroup\@crfalse
+ \ialign\bgroup&\t@bbox##\t@bb@x\crcr}
+
+\def\t@bbox{\setbox\z@\hbox\bgroup}
+\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column
+ \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet
+ \global\setbox\@ne\lastbox}% now \box\@ne holds its size
+ \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}%
+ \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi
+ \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi
+ \box\z@}
+
+\def\hang{\hangindent\parindent}
+\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\indent \hangindent2\parindent \textindent}
+\def\narrower{\advance\leftskip\parindent
+ \advance\rightskip\parindent}
+
+\outer\def\beginsection#1\par{\vskip\z@ plus.3\vsize\penalty-250
+ \vskip\z@ plus-.3\vsize\bigskip\vskip\parskip
+ \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent}
+\outer\def\proclaim #1. #2\par{\medbreak
+ \noindent{\bf#1.\enspace}{\sl#2\par}%
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+\def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
+\def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only
+
+\chardef\%=`\%
+\chardef\&=`\&
+\chardef\#=`\#
+\chardef\$=`\$
+\chardef\ss="19
+\chardef\ae="1A
+\chardef\oe="1B
+\chardef\o="1C
+\chardef\AE="1D
+\chardef\OE="1E
+\chardef\O="1F
+\chardef\i="10 \chardef\j="11 % dotless letters
+\def\aa{\accent23a}
+\def\l{\char32l}
+\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}
+
+\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary
+\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
+\def\AA{\leavevmode\setbox0\hbox{!}\dimen@\ht0\advance\dimen@-1ex%
+ \rlap{\raise.67\dimen@\hbox{\char'27}}A}
+
+\def\mathhexbox#1#2#3{\leavevmode
+ \hbox{$\m@th \mathchar"#1#2#3$}}
+\def\dag{\mathhexbox279}
+\def\ddag{\mathhexbox27A}
+\def\S{\mathhexbox278}
+\def\P{\mathhexbox27B}
+\def\Orb{\mathhexbox20D}
+
+\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex%
+ \ialign{##\crcr#1\crcr}}} \def\o@lign{\lineskiplimit\z@ \oalign}
+\def\ooalign{\lineskiplimit-\maxdimen \oalign} % chars over each other
+{\catcode`p=12 \catcode`t=12 \gdef\\#1pt{#1}} \let\getf@ctor=\\
+\def\sh@ft#1{\dimen@#1\kern\expandafter\getf@ctor\the\fontdimen1\font
+ \dimen@} % kern by #1 times the current slant
+\def\d#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{-1ex}.\hidewidth}}}
+\def\b#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{-3ex}%
+ \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}}
+\def\c#1{{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1%
+ \else\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}\fi}}
+\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\Orb}}}
+
+\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi}
+\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}
+
+\def\`#1{{\accent18 #1}}
+\def\'#1{{\accent19 #1}}
+\def\v#1{{\accent20 #1}} \let\^^_=\v
+\def\u#1{{\accent21 #1}} \let\^^S=\u
+\def\=#1{{\accent22 #1}}
+\def\^#1{{\accent94 #1}} \let\^^D=\^
+\def\.#1{{\accent95 #1}}
+\def\H#1{{\accent"7D #1}}
+\def\~#1{{\accent"7E #1}}
+\def\"#1{{\accent"7F #1}}
+\def\t#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}}
+
+\def\hrulefill{\leaders\hrule\hfill}
+\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}
+\def\rightarrowfill{$\m@th\smash-\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
+ \mkern-7mu\mathord\rightarrow$}
+\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu%
+ \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
+ \mkern-7mu\smash-$}
+\mathchardef\braceld="37A \mathchardef\bracerd="37B
+\mathchardef\bracelu="37C \mathchardef\braceru="37D
+\def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
+ \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru
+ \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd$}
+\def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
+ \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd
+ \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru$}
+
+\outer\def\bye{\par\vfill\supereject\end}
+
+% Macros for math setting
+\message{math definitions,}
+
+\let\sp=^ \let\sb=_
+\def\,{\mskip\thinmuskip}
+\def\>{\mskip\medmuskip}
+\def\;{\mskip\thickmuskip}
+\def\!{\mskip-\thinmuskip}
+\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
+{\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
+\def\prim@s{\prime\futurelet\next\pr@m@s}
+\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t
+ \else\let\nxt\egroup\fi\fi \nxt}
+\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}
+{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math
+
+{\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_
+
+\mathchardef\alpha="010B
+\mathchardef\beta="010C
+\mathchardef\gamma="010D
+\mathchardef\delta="010E
+\mathchardef\epsilon="010F
+\mathchardef\zeta="0110
+\mathchardef\eta="0111
+\mathchardef\theta="0112
+\mathchardef\iota="0113
+\mathchardef\kappa="0114
+\mathchardef\lambda="0115
+\mathchardef\mu="0116
+\mathchardef\nu="0117
+\mathchardef\xi="0118
+\mathchardef\pi="0119
+\mathchardef\rho="011A
+\mathchardef\sigma="011B
+\mathchardef\tau="011C
+\mathchardef\upsilon="011D
+\mathchardef\phi="011E
+\mathchardef\chi="011F
+\mathchardef\psi="0120
+\mathchardef\omega="0121
+\mathchardef\varepsilon="0122
+\mathchardef\vartheta="0123
+\mathchardef\varpi="0124
+\mathchardef\varrho="0125
+\mathchardef\varsigma="0126
+\mathchardef\varphi="0127
+\mathchardef\Gamma="7000
+\mathchardef\Delta="7001
+\mathchardef\Theta="7002
+\mathchardef\Lambda="7003
+\mathchardef\Xi="7004
+\mathchardef\Pi="7005
+\mathchardef\Sigma="7006
+\mathchardef\Upsilon="7007
+\mathchardef\Phi="7008
+\mathchardef\Psi="7009
+\mathchardef\Omega="700A
+
+\mathchardef\aleph="0240
+\def\hbar{{\mathchar'26\mkern-9muh}}
+\mathchardef\imath="017B
+\mathchardef\jmath="017C
+\mathchardef\ell="0160
+\mathchardef\wp="017D
+\mathchardef\Re="023C
+\mathchardef\Im="023D
+\mathchardef\partial="0140
+\mathchardef\infty="0231
+\mathchardef\prime="0230
+\mathchardef\emptyset="023B
+\mathchardef\nabla="0272
+\def\surd{{\mathchar"1270}}
+\mathchardef\top="023E
+\mathchardef\bot="023F
+\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+ \not\mathrel{\mkern14mu}\crcr
+ \noalign{\nointerlineskip}
+ \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
+\mathchardef\triangle="0234
+\mathchardef\forall="0238
+\mathchardef\exists="0239
+\mathchardef\neg="023A \let\lnot=\neg
+\mathchardef\flat="015B
+\mathchardef\natural="015C
+\mathchardef\sharp="015D
+\mathchardef\clubsuit="027C
+\mathchardef\diamondsuit="027D
+\mathchardef\heartsuit="027E
+\mathchardef\spadesuit="027F
+
+\mathchardef\coprod="1360
+\mathchardef\bigvee="1357
+\mathchardef\bigwedge="1356
+\mathchardef\biguplus="1355
+\mathchardef\bigcap="1354
+\mathchardef\bigcup="1353
+\mathchardef\intop="1352 \def\int{\intop\nolimits}
+\mathchardef\prod="1351
+\mathchardef\sum="1350
+\mathchardef\bigotimes="134E
+\mathchardef\bigoplus="134C
+\mathchardef\bigodot="134A
+\mathchardef\ointop="1348 \def\oint{\ointop\nolimits}
+\mathchardef\bigsqcup="1346
+\mathchardef\smallint="1273
+
+\mathchardef\triangleleft="212F
+\mathchardef\triangleright="212E
+\mathchardef\bigtriangleup="2234
+\mathchardef\bigtriangledown="2235
+\mathchardef\wedge="225E \let\land=\wedge
+\mathchardef\vee="225F \let\lor=\vee
+\mathchardef\cap="225C
+\mathchardef\cup="225B
+\mathchardef\ddagger="227A
+\mathchardef\dagger="2279
+\mathchardef\sqcap="2275
+\mathchardef\sqcup="2274
+\mathchardef\uplus="225D
+\mathchardef\amalg="2271
+\mathchardef\diamond="2205
+\mathchardef\bullet="220F
+\mathchardef\wr="226F
+\mathchardef\div="2204
+\mathchardef\odot="220C
+\mathchardef\oslash="220B
+\mathchardef\otimes="220A
+\mathchardef\ominus="2209
+\mathchardef\oplus="2208
+\mathchardef\mp="2207
+\mathchardef\pm="2206
+\mathchardef\circ="220E
+\mathchardef\bigcirc="220D
+\mathchardef\setminus="226E % for set difference A\setminus B
+\mathchardef\cdot="2201
+\mathchardef\ast="2203
+\mathchardef\times="2202
+\mathchardef\star="213F
+
+\mathchardef\propto="322F
+\mathchardef\sqsubseteq="3276
+\mathchardef\sqsupseteq="3277
+\mathchardef\parallel="326B
+\mathchardef\mid="326A
+\mathchardef\dashv="3261
+\mathchardef\vdash="3260
+\mathchardef\nearrow="3225
+\mathchardef\searrow="3226
+\mathchardef\nwarrow="322D
+\mathchardef\swarrow="322E
+\mathchardef\Leftrightarrow="322C
+\mathchardef\Leftarrow="3228
+\mathchardef\Rightarrow="3229
+\def\neq{\not=} \let\ne=\neq
+\mathchardef\leq="3214 \let\le=\leq
+\mathchardef\geq="3215 \let\ge=\geq
+\mathchardef\succ="321F
+\mathchardef\prec="321E
+\mathchardef\approx="3219
+\mathchardef\succeq="3217
+\mathchardef\preceq="3216
+\mathchardef\supset="321B
+\mathchardef\subset="321A
+\mathchardef\supseteq="3213
+\mathchardef\subseteq="3212
+\mathchardef\in="3232
+\mathchardef\ni="3233 \let\owns=\ni
+\mathchardef\gg="321D
+\mathchardef\ll="321C
+\mathchardef\not="3236
+\mathchardef\leftrightarrow="3224
+\mathchardef\leftarrow="3220 \let\gets=\leftarrow
+\mathchardef\rightarrow="3221 \let\to=\rightarrow
+\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow}
+\mathchardef\sim="3218
+\mathchardef\simeq="3227
+\mathchardef\perp="323F
+\mathchardef\equiv="3211
+\mathchardef\asymp="3210
+\mathchardef\smile="315E
+\mathchardef\frown="315F
+\mathchardef\leftharpoonup="3128
+\mathchardef\leftharpoondown="3129
+\mathchardef\rightharpoonup="312A
+\mathchardef\rightharpoondown="312B
+
+\def\joinrel{\mathrel{\mkern-3mu}}
+\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as +
+\def\Relbar{\mathrel=}
+\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow}
+\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook}
+\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
+\def\models{\mathrel|\joinrel=}
+\def\Longrightarrow{\Relbar\joinrel\Rightarrow}
+\def\longrightarrow{\relbar\joinrel\rightarrow}
+\def\longleftarrow{\leftarrow\joinrel\relbar}
+\def\Longleftarrow{\Leftarrow\joinrel\Relbar}
+\def\longmapsto{\mapstochar\longrightarrow}
+\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
+\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
+\def\iff{\;\Longleftrightarrow\;}
+
+\mathchardef\ldotp="613A % ldot as a punctuation mark
+\mathchardef\cdotp="6201 % cdot as a punctuation mark
+\mathchardef\colon="603A % colon as a punctuation mark
+\def\ldots{\mathinner{\ldotp\ldotp\ldotp}}
+\def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
+\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
+\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
+ \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
+
+\def\acute{\mathaccent"7013 }
+\def\grave{\mathaccent"7012 }
+\def\ddot{\mathaccent"707F }
+\def\tilde{\mathaccent"707E }
+\def\bar{\mathaccent"7016 }
+\def\breve{\mathaccent"7015 }
+\def\check{\mathaccent"7014 }
+\def\hat{\mathaccent"705E }
+\def\vec{\mathaccent"017E }
+\def\dot{\mathaccent"705F }
+\def\widetilde{\mathaccent"0365 }
+\def\widehat{\mathaccent"0362 }
+\def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr
+ \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr
+ \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}
+ \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
+ \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
+\def\skew#1#2#3{{\muskip\z@#1mu\divide\muskip\z@\tw@ \mkern\muskip\z@
+ #2{\mkern-\muskip\z@{#3}\mkern\muskip\z@}\mkern-\muskip\z@}{}}
+
+\def\lmoustache{\delimiter"437A340 } % top from (, bottom from )
+\def\rmoustache{\delimiter"537B341 } % top from ), bottom from (
+\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips
+\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips
+\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads
+\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads
+\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces
+\def\Vert{\delimiter"26B30D } \let\|=\Vert
+\def\vert{\delimiter"26A30C }
+\def\uparrow{\delimiter"3222378 }
+\def\downarrow{\delimiter"3223379 }
+\def\updownarrow{\delimiter"326C33F }
+\def\Uparrow{\delimiter"322A37E }
+\def\Downarrow{\delimiter"322B37F }
+\def\Updownarrow{\delimiter"326D377 }
+\def\backslash{\delimiter"26E30F } % for double coset G\backslash H
+\def\rangle{\delimiter"526930B }
+\def\langle{\delimiter"426830A }
+\def\rbrace{\delimiter"5267309 } \let\}=\rbrace
+\def\lbrace{\delimiter"4266308 } \let\{=\lbrace
+\def\rceil{\delimiter"5265307 }
+\def\lceil{\delimiter"4264306 }
+\def\rfloor{\delimiter"5263305 }
+\def\lfloor{\delimiter"4262304 }
+
+\def\bigl{\mathopen\big}
+\def\bigm{\mathrel\big}
+\def\bigr{\mathclose\big}
+\def\Bigl{\mathopen\Big}
+\def\Bigm{\mathrel\Big}
+\def\Bigr{\mathclose\Big}
+\def\biggl{\mathopen\bigg}
+\def\biggm{\mathrel\bigg}
+\def\biggr{\mathclose\bigg}
+\def\Biggl{\mathopen\Bigg}
+\def\Biggm{\mathrel\Bigg}
+\def\Biggr{\mathclose\Bigg}
+\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
+\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
+\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
+\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
+\def\n@space{\nulldelimiterspace\z@ \m@th}
+
+\def\choose{\atopwithdelims()}
+\def\brack{\atopwithdelims[]}
+\def\brace{\atopwithdelims\{\}}
+
+\def\sqrt{\radical"270370 }
+
+\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}%
+ {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}}
+\newbox\rootbox
+\def\root#1\of{\setbox\rootbox
+ \hbox{$\m@th\scriptscriptstyle{#1}$}\mathpalette\r@@t}
+\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}\dimen@\ht\z@
+ \advance\dimen@-\dp\z@
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\z@}
+\newif\ifv@ \newif\ifh@
+\def\vphantom{\v@true\h@false\ph@nt}
+\def\hphantom{\v@false\h@true\ph@nt}
+\def\phantom{\v@true\h@true\ph@nt}
+\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}%
+ \else\let\next\makeph@nt\fi\next}
+\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt}
+\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt}
+\def\finph@nt{\setbox\tw@\null
+ \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
+ \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
+\def\mathstrut{\vphantom(}
+\def\smash{\relax % \relax, in case this comes first in \halign
+ \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh
+ \fi\next}
+\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh}
+\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
+\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
+
+\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
+\def\@vereq#1#2{\lower.5\p@\vbox{\lineskiplimit\maxdimen\lineskip-.5\p@
+ \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
+\def\notin{\mathrel{\mathpalette\c@ncel\in}}
+\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
+\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}}
+\def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt
+ \hbox{$#1\rightharpoonup$}\crcr
+ $#1\leftharpoondown$}}}}
+\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
+\def\doteq{\buildrel\textstyle.\over=}
+
+\def\log{\mathop{\rm log}\nolimits}
+\def\lg{\mathop{\rm lg}\nolimits}
+\def\ln{\mathop{\rm ln}\nolimits}
+\def\lim{\mathop{\rm lim}}
+\def\limsup{\mathop{\rm lim\,sup}}
+\def\liminf{\mathop{\rm lim\,inf}}
+\def\sin{\mathop{\rm sin}\nolimits}
+\def\arcsin{\mathop{\rm arcsin}\nolimits}
+\def\sinh{\mathop{\rm sinh}\nolimits}
+\def\cos{\mathop{\rm cos}\nolimits}
+\def\arccos{\mathop{\rm arccos}\nolimits}
+\def\cosh{\mathop{\rm cosh}\nolimits}
+\def\tan{\mathop{\rm tan}\nolimits}
+\def\arctan{\mathop{\rm arctan}\nolimits}
+\def\tanh{\mathop{\rm tanh}\nolimits}
+\def\cot{\mathop{\rm cot}\nolimits}
+\def\coth{\mathop{\rm coth}\nolimits}
+\def\sec{\mathop{\rm sec}\nolimits}
+\def\csc{\mathop{\rm csc}\nolimits}
+\def\max{\mathop{\rm max}}
+\def\min{\mathop{\rm min}}
+\def\sup{\mathop{\rm sup}}
+\def\inf{\mathop{\rm inf}}
+\def\arg{\mathop{\rm arg}\nolimits}
+\def\ker{\mathop{\rm ker}\nolimits}
+\def\dim{\mathop{\rm dim}\nolimits}
+\def\hom{\mathop{\rm hom}\nolimits}
+\def\det{\mathop{\rm det}}
+\def\exp{\mathop{\rm exp}\nolimits}
+\def\Pr{\mathop{\rm Pr}}
+\def\gcd{\mathop{\rm gcd}}
+\def\deg{\mathop{\rm deg}\nolimits}
+
+\def\bmod{\nonscript\mskip-\medmuskip\mkern5mu
+ \mathbin{\rm mod}\penalty900\mkern5mu\nonscript\mskip-\medmuskip}
+\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}
+
+\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th
+ \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.}
+\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
+ \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+ \mathstrut\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
+\def\pmatrix#1{\left(\matrix{#1}\right)}
+\newdimen\p@renwd
+\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
+\def\bordermatrix#1{\begingroup \m@th
+ \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
+ \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil
+ &&\quad\hfil$##$\hfil\crcr
+ \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
+ #1\crcr\omit\strut\cr}}%
+ \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
+ \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
+ \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne
+ \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
+ \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
+ \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
+
+\def\openup{\afterassignment\@penup\dimen@=}
+\def\@penup{\advance\lineskip\dimen@
+ \advance\baselineskip\dimen@
+ \advance\lineskiplimit\dimen@}
+\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
+ \crcr#1\crcr}}\,}
+\newif\ifdt@p
+\def\displ@y{\global\dt@ptrue\openup\jot\m@th
+ \everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@
+ \vskip-\lineskiplimit \vskip\normallineskiplimit \fi
+ \else \penalty\interdisplaylinepenalty \fi}}}
+\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y
+\def\displaylines#1{\displ@y \tabskip\z@skip
+ \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
+ #1\crcr}}
+\def\eqalignno#1{\displ@y \tabskip\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\llap{$\@lign##$}\tabskip\z@skip\crcr
+ #1\crcr}}
+\def\leqalignno#1{\displ@y \tabskip\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr
+ #1\crcr}}
+
+% Definitions related to output
+
+\message{output routines,}
+
+\countdef\pageno=0 \pageno=1 % first page is number 1
+\newtoks\headline \headline={\hfil} % headline is normally blank
+\newtoks\footline \footline={\hss\tenrm\folio\hss}
+ % footline is normally a centered page number in font \tenrm
+\newif\ifr@ggedbottom
+\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue}
+\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom
+\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi}
+\def\nopagenumbers{\footline{\hfil}} % blank out the footline
+\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne
+ \else\global\advance\pageno\@ne \fi} % increase |pageno|
+
+\newinsert\footins
+\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ #1\@sf\vfootnote{#1}}
+\def\vfootnote#1{\insert\footins\bgroup
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \textindent{#1}\footstrut\futurelet\next\fo@t}
+\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
+ \else\let\next\f@t\fi \next}
+\def\f@@t{\bgroup\aftergroup\@foot\let\next}
+\def\f@t#1{#1\@foot}
+\def\@foot{\strut\egroup}
+\def\footstrut{\vbox to\splittopskip{}}
+\skip\footins=\bigskipamount % space added when footnote is present
+\count\footins=1000 % footnote magnification factor (1 to 1)
+\dimen\footins=8in % maximum footnotes per page
+
+\newinsert\topins
+\newif\ifp@ge \newif\if@mid
+\def\topinsert{\@midfalse\p@gefalse\@ins}
+\def\midinsert{\@midtrue\@ins}
+\def\pageinsert{\@midfalse\p@getrue\@ins}
+\skip\topins=\z@skip % no space added when a topinsert is present
+\count\topins=1000 % magnification factor (1 to 1)
+\dimen\topins=\maxdimen % no limit per page
+\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@
+ \advance\dimen@\pagetotal \advance\dimen@-\pageshrink
+ \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi
+ \if@mid \bigskip\box\z@\bigbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\nobreak\bigskip\fi}\fi\endgroup}
+
+\output{\plainoutput}
+\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
+ \advancepageno
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
+\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}}
+\def\makeheadline{\vbox to\z@{\vskip-22.5\p@
+ \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip}
+\def\makefootline{\baselineskip24\p@\lineskiplimit\z@\line{\the\footline}}
+\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over
+ \line{}\kern-\topskip\nobreak\vfill\supereject\fi}
+
+\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+\def\footnoterule{\kern-3\p@
+ \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high
+
+% Hyphenation, miscellaneous macros, and initial values for standard layout
+\message{hyphenation}
+
+\lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks
+\input hyphen
+
+\def\magnification{\afterassignment\m@g\count@}
+\def\m@g{\mag\count@
+ \hsize6.5truein\vsize8.9truein\dimen\footins8truein}
+
+\def\loggingall{\tracingcommands\tw@\tracingstats\tw@
+ \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
+ \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
+ \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode}
+\def\tracingall{\tracingonline\@ne\loggingall}
+
+\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm
+ \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}}
+
+\normalbaselines\rm % select roman font
+\nonfrenchspacing % punctuation affects the spacing
+\catcode`@=12 % at signs are no longer letters
+
+\def\fmtname{plain}\def\fmtversion{3.14159265} % identifies the current format
diff --git a/Master/texmf-dist/tex/plain/base/story.tex b/Master/texmf-dist/tex/plain/base/story.tex
new file mode 100644
index 00000000000..fcbaa4151af
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/story.tex
@@ -0,0 +1,18 @@
+\hrule
+\vskip 1in
+\centerline{\bf A SHORT STORY}
+\vskip 6pt
+\centerline{\sl by A. U. Thor} % !`?`?! (modified)
+\vskip .5cm
+Once upon a time, in a distant
+ galaxy called \"O\"o\c c,
+there lived a computer
+named R.~J. Drofnats.
+
+Mr.~Drofnats---or ``R. J.,'' as
+he preferred to be called---% error has been fixed!
+was happiest when he was at work
+typesetting beautiful documents.
+\vskip 1in
+\hrule
+\vfill\eject
diff --git a/Master/texmf-dist/tex/plain/base/testfont.tex b/Master/texmf-dist/tex/plain/base/testfont.tex
new file mode 100644
index 00000000000..f7d146f8671
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/testfont.tex
@@ -0,0 +1,208 @@
+% A testbed for font evaluation (see The METAFONTbook, Appendix H)
+
+\tracinglostchars=0
+\tolerance=1000
+\raggedbottom
+\nopagenumbers
+\parindent=0pt
+\newlinechar=`@
+\hyphenpenalty=200
+\doublehyphendemerits=30000
+\hyphenation{prom-i-nent}
+
+\newcount\m \newcount\n \newcount\p \newdimen\dim
+\chardef\other=12
+
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+\def\hours{\n=\time \divide\n 60
+ \m=-\n \multiply\m 60 \advance\m \time
+ \twodigits\n\twodigits\m}
+\def\twodigits#1{\ifnum #1<10 0\fi \number#1}
+
+\def\init{\message{@Name of the font to test = }
+ \read-1 to\fontname \startfont
+ \message{Now type a test command (\string\help\space for help):}}
+\def\startfont{\font\testfont=\fontname \spaceskip=0pt
+ \leftline{\sevenrm Test of \fontname\unskip\ on \today\ at \hours}
+ \medskip
+ \testfont \setbaselineskip
+ \ifdim\fontdimen6\testfont<10pt \rightskip=0pt plus 20pt
+ \else\rightskip=0pt plus 2em \fi
+ \spaceskip=\fontdimen2\testfont % space between words (\raggedright)
+ \xspaceskip=\fontdimen2\testfont \advance\xspaceskip by\fontdimen7\testfont}
+
+{\catcode`\|=0 \catcode`\\=\other
+|gdef|help{|message{%
+\init switches to another font;@%
+\end or \bye finishes the run;@%
+\table prints the font layout in tabular format;@%
+\text prints a sample text, assuming TeX text font conventions;@%
+\sample combines \table and \text;@%
+\mixture mixes a background character with a series of others;@%
+\alternation interleaves a background character with a series;@%
+\alphabet prints all lowercase letters within a given background;@%
+\ALPHABET prints all uppercase letters within a given background;@%
+\series prints a series of letters within a given background;@%
+\lowers prints a comprehensive test of lowercase;@%
+\uppers prints a comprehensive test of uppercase;@%
+\digits prints a comprehensive test of numerals;@%
+\math prints a comprehensive test of TeX math italic;@%
+\names prints a text that mixes upper and lower case;@%
+\punct prints a punctuation test;@%
+\bigtest combines many of the above routines;@%
+\help repeats this message;@%
+and you can use ordinary TeX commands (e.g., to \input a file).}}}
+
+\def\setbaselineskip{\setbox0=\hbox{\n=0
+\loop\char\n \ifnum \n<255 \advance\n 1 \repeat}
+\baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 }
+
+\def\setchar#1{{\escapechar-1\message{\string#1 character = }%
+ \def\do##1{\catcode`##1=\other}\dospecials
+ \read-1 to\next
+ \expandafter\finsetchar\next\next#1}}
+\def\finsetchar#1#2\next#3{\global\chardef#3=`#1
+ \ifnum #3=`\# \global\chardef#3=#2 \fi}
+\def\promptthree{\setchar\background
+ \setchar\starting \setchar\ending}
+
+\def\mixture{\promptthree \domix\mixpattern}
+\def\alternation{\promptthree \domix\altpattern}
+\def\mixpattern{\0\1\0\0\1\1\0\0\0\1\1\1\0\1}
+\def\altpattern{\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0\1\0}
+\def\domix#1{\par\chardef\0=\background \n=\starting
+ \loop \chardef\1=\n #1\endgraf
+ \ifnum \n<\ending \advance\n 1 \repeat}
+
+\def\!{\discretionary{\background}{\background}{\background}}
+\def\series{\promptthree \!\doseries\starting\ending\par}
+\def\doseries#1#2{\n=#1\loop\char\n\!\ifnum\n<#2\advance\n 1 \repeat}
+\def\complower{\!\doseries{`a}{`z}\doseries{'31}{'34}\par}
+\def\compupper{\!\doseries{`A}{`Z}\doseries{'35}{'37}\par}
+\def\compdigs{\!\doseries{`0}{`9}\par}
+\def\alphabet{\setchar\background\complower}
+\def\ALPHABET{\setchar\background\compupper}
+
+\def\lowers{\docomprehensive\complower{`a}{`z}{'31}{'34}}
+\def\uppers{\docomprehensive\compupper{`A}{`Z}{'35}{'37}}
+\def\digits{\docomprehensive\compdigs{`0}{`4}{`5}{`9}}
+\def\docomprehensive#1#2#3#4#5{\par\chardef\background=#2
+ \loop{#1} \ifnum\background<#3\m=\background\advance\m 1
+ \chardef\background=\m \repeat \chardef\background=#4
+ \loop{#1} \ifnum\background<#5\m=\background\advance\m 1
+ \chardef\background=\m \repeat}
+
+\def\names{ {\AA}ngel\aa\ Beatrice Claire
+ Diana \'Erica Fran\c{c}oise Ginette H\'el\`ene Iris
+ Jackie K\=aren {\L}au\.ra Mar{\'\i}a N\H{a}ta{\l}{\u\i}e {\O}ctave
+ Pauline Qu\^eneau Roxanne Sabine T\~a{\'\j}a Ur\v{s}ula
+ Vivian Wendy Xanthippe Yv{\o}nne Z\"azilie\par}
+\def\punct{\par\dopunct{min}\dopunct{pig}\dopunct{hid}
+ \dopunct{HIE}\dopunct{TIP}\dopunct{fluff}
+ \$1,234.56 + 7/8 = 9\% @ \#0\par}
+\def\dopunct#1{#1,\ #1:\ #1;\ `#1'\ ?`#1?\ !`#1!\ (#1)\ [#1]\ #1*\ #1.\par}
+
+\def\bigtest{\sample
+ hamburgefonstiv HAMBURGEFONSTIV\par
+ \names \punct \lowers \uppers \digits}
+
+\def\math{\textfont1=\testfont \skewchar\testfont=\skewtrial
+ \mathchardef\Gamma="100 \mathchardef\Delta="101
+ \mathchardef\Theta="102 \mathchardef\Lambda="103 \mathchardef\Xi="104
+ \mathchardef\Pi="105 \mathchardef\Sigma="106 \mathchardef\Upsilon="107
+ \mathchardef\Phi="108 \mathchardef\Psi="109 \mathchardef\Omega="10A
+ \def\ii{i} \def\jj{j}
+ \def\\##1{|##1|+}\mathtrial
+ \def\\##1{##1_2+}\mathtrial
+ \def\\##1{##1^2+}\mathtrial
+ \def\\##1{##1/2+}\mathtrial
+ \def\\##1{2/##1+}\mathtrial
+ \def\\##1{##1,{}+}\mathtrial
+ \def\\##1{d##1+}\mathtrial
+ \let\ii=\imath \let\jj=\jmath \def\\##1{\hat##1+}\mathtrial}
+\newcount\skewtrial \skewtrial='177
+\def\mathtrial{$\\A \\B \\C \\D \\E \\F \\G \\H \\I \\J \\K \\L \\M \\N \\O
+ \\P \\Q \\R \\S \\T \\U \\V \\W \\X \\Y \\Z \\a \\b \\c \\d \\e \\f \\g
+ \\h \\\ii \\\jj \\k \\l \\m \\n \\o \\p \\q \\r \\s \\t \\u \\v \\w \\x \\y
+ \\z \\\alpha \\\beta \\\gamma \\\delta \\\epsilon \\\zeta \\\eta \\\theta
+ \\\iota \\\kappa \\\lambda \\\mu \\\nu \\\xi \\\pi \\\rho \\\sigma \\\tau
+ \\\upsilon \\\phi \\\chi \\\psi \\\omega \\\vartheta \\\varpi \\\varphi
+ \\\Gamma \\\Delta \\\Theta \\\Lambda \\\Xi \\\Pi \\\Sigma \\\Upsilon
+ \\\Phi \\\Psi \\\Omega \\\partial \\\ell \\\wp$\par}
+\def\mathsy{\begingroup\skewtrial='060 % for math symbol font tests
+ \def\mathtrial{$\\A \\B \\C \\D \\E \\F \\G \\H \\I \\J \\K \\L
+ \\M \\N \\O \\P \\Q \\R \\S \\T \\U \\V \\W \\X \\Y \\Z$\par}
+ \math\endgroup}
+
+\def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant
+\def\hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant
+\def\setdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal
+ \m=\n \divide\m by 64 \xdef\0{\the\m}%
+ \multiply\m by-64 \advance\m by\n \divide\m by 8 \xdef\1{\the\m}}
+\def\testrow{\setbox0=\hbox{\penalty 1\def\\{\char"\h}%
+ \\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F%
+ \global\p=\lastpenalty}} % \p=1 if none of the characters exist
+\def\oddline{\cr
+ \noalign{\nointerlineskip}
+ \multispan{19}\hrulefill&
+ \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr
+ \noalign{\nointerlineskip}}
+\newif\ifskipping
+\def\evenline{\loop\skippingfalse
+ \ifnum\n<256 \m=\n \divide\m 16 \chardef\next=\m
+ \expandafter\setdigs\meaning\next \testrow
+ \ifnum\p=1 \skippingtrue \fi\fi
+ \ifskipping \global\advance\n 16 \repeat
+ \ifnum\n=256 \let\next=\endchart\else\let\next=\morechart\fi
+ \next}
+\def\morechart{\cr\noalign{\hrule\penalty5000}
+ \chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m}
+ \chartline \evenline}
+\def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&}
+\def\chartstrut{\lower4.5pt\vbox to14pt{}}
+\def\table{$$\global\n=0
+ \halign to\hsize\bgroup
+ \chartstrut##\tabskip0pt plus10pt&
+ &\hfil##\hfil&\vrule##\cr
+ \lower6.5pt\null
+ &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline}
+\def\endchart{\cr\noalign{\hrule}
+ \raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B&
+ &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$\par}
+\def\:{\setbox0=\hbox{\noboundary\char\n\noboundary}%
+ \ifdim\ht0>7.5pt\reposition
+ \else\ifdim\dp0>2.5pt\reposition\fi\fi
+ \box0\global\advance\n 1 }
+\def\reposition{\setbox0=\vbox{\kern2pt\box0}\dim=\dp0
+ \advance\dim 2pt \dp0=\dim}
+\def\centerlargechars{
+ \def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}}
+
+\def\text{{\advance\baselineskip-4pt
+\setbox0=\hbox{abcdefghijklmnopqrstuvwxyz}
+\ifdim\hsize>2\wd0 \ifdim 15pc>2\wd0 \hsize=15pc \else \hsize=2\wd0 \fi\fi
+On November 14, 1885, Senator \& Mrs.~Leland Stanford called
+together at their San Francisco mansion the 24~prominent men who had
+been chosen as the first trustees of The Leland Stanford Junior University.
+They handed to the board the Founding Grant of the University, which they
+had executed three days before. This document---with various amendments,
+legislative acts, and court decrees---remains as the University's charter.
+In bold, sweeping language it stipulates that the objectives of the University
+are ``to qualify students for personal success and direct usefulness in life;
+and to promote the publick welfare by exercising an influence in behalf of
+humanity and civilization, teaching the blessings of liberty regulated by
+law, and inculcating love and reverence for the great principles of
+government as derived from the inalienable rights of man to life, liberty,
+and the pursuit of happiness.'' \moretext
+(!`THE DAZED BROWN FOX QUICKLY GAVE 12345--67890 JUMPS!)\par}}
+\def\moretext{?`But aren't Kafka's Schlo{\ss} and {\AE}sop's {\OE}uvres
+often na{\"\i}ve vis-\`a-vis the d{\ae}monic ph{\oe}nix's official r\^ole
+in fluffy souffl\'es? }
+\def\omitaccents{\let\moretext=\relax}
+
+\def\sample{\table\text}
+
+\ifx\noinit!\else\init\fi
diff --git a/Master/texmf-dist/tex/plain/base/webmac.tex b/Master/texmf-dist/tex/plain/base/webmac.tex
new file mode 100644
index 00000000000..5ca707bb9b2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/webmac.tex
@@ -0,0 +1,206 @@
+% standard macros for WEB listings (in addition to PLAIN.TEX)
+\xdef\fmtversion{\fmtversion+WEBMAC4.1} % identifies current set of macros
+\parskip 0pt % no stretch between paragraphs
+\parindent 1em % for paragraphs and for the first line of Pascal text
+
+\font\eightrm=cmr8 \let\sc=\eightrm % NOT a caps-and-small-caps font!
+\let\mainfont=\tenrm
+\font\titlefont=cmr7 scaled\magstep4 % title on the contents page
+\font\ttitlefont=cmtt10 scaled\magstep2 % typewriter type in title
+\font\tentex=cmtex10 % TeX extended character set (used in strings)
+\fontdimen7\tentex=0pt % no extra space after punctuation
+
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\|#1{\hbox{$#1$}} % one-letter identifiers look a bit better this way
+\def\&#1{\hbox{\bf#1\/}} % boldface type for reserved words
+\def\.#1{\hbox{\tentex % typewriter type for strings
+ \let\\=\BS % backslash in a string
+ \let\'=\RQ % right quote in a string
+ \let\`=\LQ % left quote in a string
+ \let\{=\LB % left brace in a string
+ \let\}=\RB % right brace in a string
+ \let\~=\TL % tilde in a string
+ \let\ =\SP % space in a string
+ \let\_=\UL % underline in a string
+ \let\&=\AM % ampersand in a string
+ #1}}
+\def\#{\hbox{\tt\char`\#}} % parameter sign
+\def\${\hbox{\tt\char`\$}} % dollar sign
+\def\%{\hbox{\tt\char`\%}} % percent sign
+\def\^{\ifmmode\mathchar"222 \else\char`^ \fi} % pointer or hat
+% circumflex accents can be obtained from \^^D instead of \^
+\def\AT!{@} % at sign for control text
+
+\chardef\AM=`\& % ampersand character in a string
+\chardef\BS=`\\ % backslash in a string
+\chardef\LB=`\{ % left brace in a string
+\def\LQ{{\tt\char'22}} % left quote in a string
+\chardef\RB=`\} % right brace in a string
+\def\RQ{{\tt\char'23}} % right quote in a string
+\def\SP{{\tt\char`\ }} % (visible) space in a string
+\chardef\TL=`\~ % tilde in a string
+\chardef\UL=`\_ % underline character in a string
+
+\newbox\bak \setbox\bak=\hbox to -1em{} % backspace one em
+\newbox\bakk\setbox\bakk=\hbox to -2em{} % backspace two ems
+
+\newcount\ind % current indentation in ems
+\def\1{\global\advance\ind by1\hangindent\ind em} % indent one more notch
+\def\2{\global\advance\ind by-1} % indent one less notch
+\def\3#1{\hfil\penalty#10\hfilneg} % optional break within a statement
+\def\4{\copy\bak} % backspace one notch
+\def\5{\hfil\penalty-1\hfilneg\kern2.5em\copy\bakk\ignorespaces}% optional break
+\def\6{\ifmmode\else\par % forced break
+ \hangindent\ind em\noindent\kern\ind em\copy\bakk\ignorespaces\fi}
+\def\7{\Y\6} % forced break and a little extra space
+
+\let\yskip=\smallskip
+\def\to{\mathrel{.\,.}} % double dot, used only in math mode
+\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1~#2.\par}}
+\def\lapstar{\rlap{*}}
+\def\startsection{\Q\noindent{\let\*=\lapstar\bf\modstar.\quad}}
+\def\defin#1{\global\advance\ind by 2 \1\&{#1 }} % begin `define' or `format'
+\def\A{\note{See also section}} % crossref for doubly defined section name
+\def\As{\note{See also sections}} % crossref for multiply defined section name
+\def\B{\mathopen{\.{@\{}}} % begin controlled comment
+\def\C#1{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % Pascal comments
+ \XX\hfil\penalty-1\hfilneg\quad$\{\,$#1$\,\}$\XX}
+\def\D{\defin{define}} % macro definition
+\def\E{\cdot10^} % exponent in floating point constant
+\def\ET{ and~} % conjunction between two section numbers
+\def\ETs{, and~} % conjunction between the last two of several section numbers
+\def\F{\defin{format}} % format definition
+\let\G=\ge % greater than or equal sign
+\def\H#1{\hbox{\rm\char"7D\tt#1}} % hexadecimal constant
+\let\I=\ne % unequal sign
+\def\J{\.{@\&}} % TANGLE's join operation
+\let\K=\gets % left arrow
+\let\L=\le % less than or equal sign
+\outer\def\M#1.{\MN#1.\ifon\vfil\penalty-100\vfilneg % beginning of section
+ \vskip12ptminus3pt\startsection\ignorespaces}
+\outer\def\N#1.#2.{\MN#1.\vfil\eject % beginning of starred section
+ \def\rhead{\uppercase{\ignorespaces#2}} % define running headline
+ \message{*\modno} % progress report
+ \edef\next{\write\cont{\Z{#2}{\modno}{\the\pageno}}}\next % to contents file
+ \ifon\startsection{\bf\ignorespaces#2.\quad}\ignorespaces}
+\def\MN#1.{\par % common code for \M, \N
+ {\xdef\modstar{#1}\let\*=\empty\xdef\modno{#1}}
+ \ifx\modno\modstar \onmaybe \else\ontrue \fi \mark{\modno}}
+\def\O#1{\hbox{\rm\char'23\kern-.2em\it#1\/\kern.05em}} % octal constant
+\def\P{\rightskip=0pt plus 100pt minus 10pt % go into Pascal mode
+ \sfcode`;=3000
+ \pretolerance 10000
+ \hyphenpenalty 10000 \exhyphenpenalty 10000
+ \global\ind=2 \1\ \unskip}
+\def\Q{\rightskip=0pt % get out of Pascal mode
+ \sfcode`;=1500 \pretolerance 200 \hyphenpenalty 50 \exhyphenpenalty 50 }
+\let\R=\lnot % logical not
+\let\S=\equiv % equivalence sign
+\def\T{\mathclose{\.{@\}}}} % terminate controlled comment
+\def\U{\note{This code is used in section}} % crossref for use of a section
+\def\Us{\note{This code is used in sections}} % crossref for uses of a section
+\let\V=\lor % logical or
+\let\W=\land % logical and
+\def\X#1:#2\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % section name
+ \XX$\langle\,$#2{\eightrm\kern.5em#1}$\,\rangle$\XX}
+\def\Y{\par\yskip}
+\let\Z=\let % now you can \send the control sequence \Z
+\def\){\hbox{\.{@\$}}} % sign for string pool check sum
+\def\]{\hbox{\.{@\\}}} % sign for forced line break
+\def\=#1{\kern2pt\hbox{\vrule\vtop{\vbox{\hrule
+ \hbox{\strut\kern2pt\.{#1}\kern2pt}}
+ \hrule}\vrule}\kern2pt} % verbatim string
+\let\~=\ignorespaces
+\let\*=*
+
+\def\onmaybe{\let\ifon=\maybe} \let\maybe=\iftrue
+\newif\ifon \newif\iftitle \newif\ifpagesaved
+\def\lheader{\mainfont\the\pageno\eightrm\qquad\rhead\hfill\title\qquad
+ \tensy x\mainfont\topmark} % top line on left-hand pages
+\def\rheader{\tensy x\mainfont\topmark\eightrm\qquad\title\hfill\rhead
+ \qquad\mainfont\the\pageno} % top line on right-hand pages
+\def\page{\box255 }
+\def\normaloutput#1#2#3{\ifodd\pageno\hoffset=\pageshift\fi
+ \shipout\vbox{
+ \vbox to\fullpageheight{
+ \iftitle\global\titlefalse
+ \else\hbox to\pagewidth{\vbox to10pt{}\ifodd\pageno #3\else#2\fi}\fi
+ \vfill#1}} % parameter #1 is the page itself
+ \global\advance\pageno by1}
+
+\def\rhead{\.{WEB} OUTPUT} % this running head is reset by starred sections
+\def\title{} % an optional title can be set by the user
+\def\topofcontents{\centerline{\titlefont\title}
+ \vfill} % this material will start the table of contents page
+\def\botofcontents{\vfill} % this material will end the table of contents page
+\def\contentspagenumber{0} % default page number for table of contents
+\newdimen\pagewidth \pagewidth=6.5in % the width of each page
+\newdimen\pageheight \pageheight=8.7in % the height of each page
+\newdimen\fullpageheight \fullpageheight=9in % page height including headlines
+\newdimen\pageshift \pageshift=0in % shift righthand pages wrt lefthand ones
+\def\magnify#1{\mag=#1\pagewidth=6.5truein\pageheight=8.7truein
+ \fullpageheight=9truein\setpage}
+\def\setpage{\hsize\pagewidth\vsize\pageheight} % use after changing page size
+\def\contentsfile{CONTENTS} % file that gets table of contents info
+\def\readcontents{\input CONTENTS}
+
+\newwrite\cont
+\output{\setbox0=\page % the first page is garbage
+ \openout\cont=\contentsfile
+ \global\output{\normaloutput\page\lheader\rheader}}
+\setpage
+\vbox to \vsize{} % the first \topmark won't be null
+
+\def\ch{\note{The following sections were changed by the change file:}
+ \let\*=\relax}
+\newbox\sbox % saved box preceding the index
+\newbox\lbox % lefthand column in the index
+\def\inx{\par\vskip6pt plus 1fil % we are beginning the index
+ \write\cont{} % ensure that the contents file isn't empty
+ \closeout\cont % the contents information has been fully gathered
+ \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi
+ \global\setbox\sbox=\page \global\pagesavedtrue}
+ \pagesavedfalse \eject % eject the page-so-far and predecessors
+ \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
+ \vsize=\pageheight \advance\vsize by -\ht\sbox % the remaining height
+ \hsize=.5\pagewidth \advance\hsize by -10pt
+ % column width for the index (20pt between cols)
+ \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
+ \def\lr{L} % this tells whether the left or right column is next
+ \output{\if L\lr\global\setbox\lbox=\page \gdef\lr{R}
+ \else\normaloutput{\vbox to\pageheight{\box\sbox\vss
+ \hbox to\pagewidth{\box\lbox\hfil\page}}}\lheader\rheader
+ \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi}
+ \message{Index:}
+ \parskip 0pt plus .5pt
+ \outer\def\:##1, {\par\hangindent2em\noindent##1:\kern1em} % index entry
+ \let\ttentry=\. \def\.##1{\ttentry{##1\kern.2em}} % give \tt a little room
+ \def\[##1]{$\underline{##1}$} % underlined index item
+ \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar
+ \hyphenpenalty 10000 \parindent0pt}
+\def\fin{\par\vfill\eject % this is done when we are ending the index
+ \ifpagesaved\null\vfill\eject\fi % output a null index column
+ \if L\lr\else\null\vfill\eject\fi % finish the current page
+ \parfillskip 0pt plus 1fil
+ \def\rhead{NAMES OF THE SECTIONS}
+ \message{Section names:}
+ \output{\normaloutput\page\lheader\rheader}
+ \setpage
+ \def\note##1##2.{\hfil\penalty-1\hfilneg\quad{\eightrm##1~##2.}}
+ \linepenalty=10 % try to conserve lines
+ \def\U{\note{Used in section}} % crossref for use of a section
+ \def\Us{\note{Used in sections}} % crossref for uses of a section
+ \def\:{\par\hangindent 2em}\let\*=*\let\.=\ttentry}
+\def\con{\par\vfill\eject % finish the section names
+ \rightskip 0pt \hyphenpenalty 50 \tolerance 200
+ \setpage
+ \output{\normaloutput\page\lheader\rheader}
+ \titletrue % prepare to output the table of contents
+ \pageno=\contentspagenumber \def\rhead{TABLE OF CONTENTS}
+ \message{Table of contents:}
+ \topofcontents
+ \line{\hfil Section\hbox to3em{\hss Page}}
+ \def\Z##1##2##3{\line{\ignorespaces##1
+ \leaders\hbox to .5em{.\hfil}\hfil\ ##2\hbox to3em{\hss##3}}}
+ \readcontents\relax % read the contents info
+ \botofcontents \end} % print the contents page(s) and terminate
diff --git a/Master/texmf-dist/tex/plain/base/wlist.tex b/Master/texmf-dist/tex/plain/base/wlist.tex
new file mode 100644
index 00000000000..a665a32a627
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/base/wlist.tex
@@ -0,0 +1,53 @@
+% Makes a landscape listing of one or more files with wide lines
+% Typical usage:
+% tex list *.c \\end
+
+\hsize=9in
+\vsize=6.5in
+\special{landscape}
+
+\def\grabfile#1 {\setbox0=\lastbox\endgraf\doit{#1}}
+\everypar{\grabfile}
+
+\font\filenamefont= cmtt8 scaled\magstep3
+\font\headlinefont= cmr8
+\font\listingfont= cmtex8
+\font\eoffont= cmti8
+
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+\newcount\m \newcount\n
+\n=\time \divide\n 60 \m=-\n \multiply\m 60 \advance\m \time
+\def\hours{\twodigits\n\twodigits\m}
+\def\twodigits#1{\ifnum #1<10 0\fi \number#1}
+
+\newlinechar=`@
+\message{@\today\space at \hours}
+
+\baselineskip=9pt
+\medskipamount=4pt minus 1pt
+\raggedbottom
+\nopagenumbers
+
+\chardef\other=12
+\def\doit#1{\message{@Listing #1@}
+ \begingroup \everypar{} \frenchspacing
+ \headline{\filenamefont#1\quad\headlinefont \today\ at \hours
+ \hfill Page \folio}
+ \def\do##1{\catcode`##1=\other}\dospecials
+ \catcode127=\other \catcode9=\other \catcode12=\other
+ \parindent 0pt \parfillskip=0pt plus 1fil minus 1in
+ \everypar{\hangindent 1in} \rightskip=0pt plus 2in
+ \def\par{\ifvmode\penalty-500\medskip\else\endgraf\fi}
+ \listingfont \obeylines \obeyspaces \global\pageno=1
+ \input #1 {\eoffont(end of\/ file)}\endgraf\vfill\eject\endgroup}
+{\obeyspaces\global\let =\ }
+\catcode`\_=\other % allow _ in file names
+
+% A tab (^^I) prints as lowercase gamma.
+% Character ^^M could be made visible, with a bit of work;
+% at present, it's indistinguishable from newline (^^J).
+
+% You can get up to 170 characters on a line without an overfull box.
diff --git a/Master/texmf-dist/tex/plain/calendar/a5.sty b/Master/texmf-dist/tex/plain/calendar/a5.sty
new file mode 100644
index 00000000000..6c09b53428d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/a5.sty
@@ -0,0 +1,45 @@
+%%
+%% FILE a5.sty
+%%
+\newcount\daysinpage
+\newdimen\cellheight
+\vsize=17.5cm\voffset=-0.5in
+\hsize=11cm\hoffset=-0.6in
+\cellheight=\vsize
+\divide\cellheight by7
+\advance\cellheight by-0.4pt
+\parindent=0pt
+\font\Rm=cmr10 at 14pt
+\font\Bf=cmbx10 at 14pt
+\font\rm=cmr10
+\footline={\Bf\ifodd\pageno\hfill\botmark
+ \else\botmark\hfill\fi}
+\def\newpage{\vfill\penalty-10000}
+\def\beginday{\ifnum\daysinpage>0\hrule\fi
+ \mark{\themonth} % Outside any box
+ \setbox2=\vbox\bgroup
+ \ifodd\pageno
+ \rightskip=3cm plus 1fill
+ \else
+ \leftskip=3cm plus 1fill\fi\rm}
+\def\endday{\egroup
+ \vbox to\cellheight{\vglue2pt
+ \setbox0=\hbox to\hsize{%
+ \ifodd\pageno
+ \hfill{\Rm\theweekday\ \ifholy\Bf\fi\the\Day}
+ \else
+ {\Rm{\ifholy\Bf\fi\the\Day}\ \theweekday}%
+ \hfill\fi}
+ \copy0\kern-\ht0\box2\vfill}
+ \advance\daysinpage by1
+ \ifnum\daysinpage=7 \daysinpage=0
+ \newpage\fi}
+%
+% Local: from monday ...
+\Day=1 \Month=9\dayno\nextday1\currentdate=\date
+% Local: ... to sunday.
+{\nextyear\Day=31 \Month=5\dayno\nextday0
+ \global\lastdate=\date}
+\leftskip=0pt\rightskip=0pt
+\daysinpage=0
+\def\epilog{}
diff --git a/Master/texmf-dist/tex/plain/calendar/a6.sty b/Master/texmf-dist/tex/plain/calendar/a6.sty
new file mode 100644
index 00000000000..d6fa4e274b0
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/a6.sty
@@ -0,0 +1,66 @@
+%%
+%% FILE a6.sty
+%%
+\baselineskip=10pt
+\newcount\daysinpage
+\newdimen\cellwidth
+\newdimen\cellheight
+\vsize=5in\voffset=-0.2in
+\hsize=3.5in\hoffset=-0.25in
+\newdimen\sphsize
+\sphsize=\hsize
+\divide\sphsize by2\advance\sphsize by-0.4pt
+\cellheight=\vsize
+\divide\cellheight by3
+\advance\cellheight by-0.4pt\parindent=0pt
+\font\bf=cmbx12
+\font\rm=cmr12
+\font\small=cmr9
+\headline={\hfill
+ \ifodd\pageno
+ \rm\xdef\ftmk{\firstmark}%
+ \divide\pageno by2\advance\pageno by1
+ Week \#\the\pageno
+ \else
+ \bf\edef\btmk{\botmark}%
+ \ifx\ftmk\btmk\else\ftmk/\fi\btmk
+ \fi\hfill}
+\footline={}
+\def\newpage{\vfill\penalty-10000}
+\def\beginday{
+ \ifcase\daysinpage\or\hrule\or\hrule\or\or
+ \hrule\or\hrule\fi
+ \mark{\themonth} % Outside any box
+ \setbox1=\vbox to\cellheight\bgroup\vglue4pt
+ \ifnum\daysinpage>4\hsize=\sphsize\fi
+ \setbox3=\vbox\bgroup
+ \ifnum\daysinpage>2
+ \rightskip=1.45cm plus 1fill
+ \else
+ \leftskip=1.45cm plus 1fill\fi
+ \noindent\small}
+\def\endday{\egroup
+ \setbox0=\hbox to\hsize{\rm\ifholy\bf\fi
+ \ifnum\daysinpage=6\bf\fi
+ \ifnum\daysinpage>2
+ \hfill{{\rm\theshortweekday}
+ \ \the\Day\hskip0.5em}
+ \else
+ {\hskip0.5em\the\Day
+ \ {\rm\theshortweekday}}\hfill\fi}
+ \copy0\kern-\ht0\vskip0pt\box3
+ \vfill\egroup
+ \advance\daysinpage by1
+ \ifcase\daysinpage\or\box1\or\box1\or
+ \box1\newpage\or\box1\or\box1\or
+ \setbox2=\box1\or
+ \hbox{\box2\vrule\box1}\newpage
+ \daysinpage=0\fi}
+%
+% Local: from monday ...
+\Day=1\Month=1\dayno\prevday1\currentdate=\date
+% Local: ... to sunday.
+\Day=31\Month=12\dayno\nextday0\lastdate=\date
+\leftskip=3pt\rightskip=3pt
+\daysinpage=0
+\def\epilog{}
diff --git a/Master/texmf-dist/tex/plain/calendar/block.sty b/Master/texmf-dist/tex/plain/calendar/block.sty
new file mode 100644
index 00000000000..72433136f1b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/block.sty
@@ -0,0 +1,59 @@
+%%
+%% FILE block.sty
+%%
+\newcount\daysinrow
+\newcount\saveMonth
+\font\bf=cmbx12 at 16pt
+\font\Rm=cmr12 at 48pt
+\font\Bf=cmbx12 at 48pt
+\font\rm=cmr12
+\font\small=cmr10
+\footline={}
+\def\card{{\mute
+ \saveMonth=\Month
+ \def\beginday{
+ \ifnum\daysinrow=0\setbox1=\hbox{}\fi
+ \setbox0=\hbox to1.3em{\hss
+ \ifnum\Month=\saveMonth\the\Day\fi}}
+ \def\endday{\setbox1=\hbox{\unhbox1\box0}
+ \advance\daysinrow by1
+ \ifnum\daysinrow=7\box1\daysinrow=0\fi}
+% Local: from sunday ...
+ \Day=1\dayno
+ \prevday0\currentdate=\date
+ \Day=1\advancemonth \dayno
+% Local: ... to saturday.
+ \advance\date by-1 \nextday6 \lastdate=\date
+ \daysinrow=0
+ \baselineskip=9pt\small
+ \global\setbox3=\vbox to0.55in{\makeempty\vss}}}
+%
+\def\cstrut{\vrule width0pt depth0.3in}
+\baselineskip=14pt
+\parindent=0pt
+\vsize=5in \voffset=-0.2in
+\hsize=4in \hoffset=-0.25in
+\def\advancemonth{\ifnum\Month=12
+ \nextyear\Month=1\else
+ \advance\Month by1\fi}
+\def\beginday{\ifnum\Day=1
+ \setbox2=\box3{\advancemonth\card}\fi
+ \date=\currentdate\caldate
+ \centerline{\bf\uppercase
+ \expandafter{\themonth}}
+ \setbox0=\vbox\bgroup\noindent\rm}
+\def\endday{\egroup\vskip10pt
+ \centerline{\cstrut\copy2\quad
+ \hbox to1in{\Rm\weekday
+% Local: sundays in bf.
+ \ifnum\weekd=0\Bf\fi\ifholy\Bf\fi
+ \hss\the\Day\hss}\quad\copy3}
+ \centerline{\rm\theweekday}
+ \vskip20pt\box0\newpage}
+\def\newpage{\vfill\penalty-10000}
+%
+\Day=31\Month=12\dayno\lastdate=\date
+\Day=1\Month=1\dayno\currentdate=\date
+\card
+\leftskip=1em plus1fill\rightskip=1em plus1fill
+\def\epilog{}
diff --git a/Master/texmf-dist/tex/plain/calendar/calend0.tex b/Master/texmf-dist/tex/plain/calendar/calend0.tex
new file mode 100644
index 00000000000..854adc3cab6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/calend0.tex
@@ -0,0 +1,156 @@
+%%
+%% FILE calend0.tex
+%% Modificat 9/12/92
+\catcode`\@=11
+\newif\ifleapyear
+\def\loadadvanced{%
+ \input calend1.tex\relax}
+\newcount\date
+\newcount\weekd
+\newcount\Year
+\newcount\yearbase
+\newcount\Month
+\newcount\Day
+\newcount\@catch
+\newcount\timezone\timezone=0
+\def\setyear#1{\Year=#1
+ \advance\Year by-1900\calculateyearbase}
+\def\nextyear{\advance\Year by1
+ \calculateyearbase}
+\def\settimezone#1{\timezone=#1
+ \multiply\timezone by 1000
+ \divide\timezone by24}
+% \ifleapyear is set;
+% \yearbase is the number of
+% days passed from 1900, Jan 0
+% to New year's date;
+\def\calculateyearbase{%
+ \yearbase=-1
+ {\count0=\Year\divide\count0 by4
+ \multiply\count0 by4
+ \ifnum\Year=\count0
+ \global\@catch=0\else\global\@catch=1\fi}%
+ \ifcase\@catch \leapyeartrue\or
+ \leapyearfalse\fi
+ {\count0=\Year\multiply\count0
+ by1461\advance\count0 by3
+ \divide\count0 by4
+ \global\@catch=\count0}%
+ \advance\yearbase by\@catch
+ \ifnum\Year=0\yearbase=0\leapyearfalse\fi}
+% Gives the number of days passed
+% at the end of each month.
+% Value returned in \Day
+\def\monthdays{\global
+ \@catch=\ifcase\Month 0\or31\or
+ 59\or90\or120\or151\or181\or212\or
+ 243\or273\or304\or334\or365\fi
+ {\ifleapyear\ifnum\Month>1
+ \global\advance\@catch by1\fi\fi}%
+ \Day=\@catch}
+% Long date of \Month, \Day
+% in the year \Year.
+% Value returned in \date
+\def\dayno{\date=\Day{\advance
+ \Month by-1\monthdays
+ \advance\date by\Day
+ \global\advance\date by\yearbase}}
+% Long date MOD 7 gives the week day.
+% Sunday is 0 and Saturday is 6.
+\def\weekday{{\count0=\date\relax
+ \count1=\count0\divide\count0 by 7
+ \multiply\count0 by 7
+\advance\count1 by -\count0
+ \global\weekd=\count1}}
+% Name of week day (Local).
+\def\theweekday{\weekday
+ \ifcase\weekd
+ Sunday\or Monday\or Tuesday\or
+ Wednesday\or Thursday\or Friday\or
+ Saturday\fi}
+% (Local)
+\def\theshortweekday{\weekday
+ \ifcase\weekd Sun\or Mon\or Tue\or
+ Wed\or Thu\or Fri\or Sat\fi}
+% Gives the usual calendar date for
+% a long date in counter \date.
+% Returned in \Day, \Month and \Year
+\def\caldate{\Year=\date
+ \multiply\Year by4\divide\Year by1461
+ \calculateyearbase
+ {\advance\date by-\yearbase\Month=0
+ \loop\monthdays\ifnum\Day<\date
+ \global\advance\Month by1\repeat
+ {\advance\Month by-1\monthdays
+ \advance\date by-\Day
+ \global\Day=\date}}}
+% Name of month \Month. (Local)
+\def\themonth{\ifcase\Month
+ \or January\or February\or March\or
+ April\or May\or June\or July\or
+ August\or September\or October\or
+ November\or December\fi}
+% Find the next (previous) day after
+% (before) \date with \weekday=#1.
+\def\nextday#1{{\count0=#1\weekday
+ \advance\count0 by-\weekd
+ \ifnum\count0<0\advance\count0 by7\fi
+ \global\advance\date by\count0}}
+\def\prevday#1{\snextday#1
+ \advance\date by-7}
+\def\snextday#1{\advance\date by1
+ \nextday#1}
+\def\sprevday#1{\advance\date by-1
+ \prevday#1}
+% \beginevents...\endevents
+% contains control sequences like
+% \event or \evday or sequences
+% generating these commands.
+\newwrite\evefile
+\def\beginevents{%
+ \immediate\openout
+ \evefile=\jobname.eve\relax}
+\def\endevents{\immediate\closeout
+ \evefile\end}
+\newtoks\evetext
+\def\event#1/#2[#3]{\evetext={#3}%
+ \Day=#1\Month=#2\dayno
+ \evday[\the\evetext]}
+\def\evday[#1]{\immediate\write\evefile{%
+ \string\evententry{\the\date}{#1}}}
+\def\thecaldate{\the\Day/\the\Month}
+\def\mute{\def\thecaldate{}}
+%
+% 2nd run commands
+%
+\newcount\currentdate
+\newcount\lastdate
+\newcount\nextdate
+\newif\ifdoing@day
+\newif\ifholy
+\def\holy{\global\holytrue}
+\def\upto#1{\nextdate=#1
+ \loop\advance\currentdate by1\relax
+ \ifnum\currentdate<\nextdate
+ \begin@day\end@day\repeat}
+\def\evententry#1#2{\unskip
+ \ifnum#1>\lastdate\else
+ \ifnum\currentdate<#1
+ \ifdoing@day\end@day\fi
+ \upto{#1}\fi
+ \ifnum\currentdate=#1
+ \ifdoing@day\else\begin@day\fi
+ #2\par\fi\fi}
+\def\begin@day{\doing@daytrue
+ \date=\currentdate\caldate
+ \message{<\thecaldate}\beginday}
+\def\end@day{\endday\doing@dayfalse
+ \global\holyfalse\message{>}}
+\def\makeagenda#1{\input #1.sty\relax
+ \begin@day\input\jobname.eve\relax
+ \evententry{\the\lastdate}{}\end@day
+ \epilog\end}
+% Do not read events
+\def\makeempty{\begin@day
+ \evententry{\the\lastdate}{}\end@day}
+\catcode`\@=12
diff --git a/Master/texmf-dist/tex/plain/calendar/calend1.tex b/Master/texmf-dist/tex/plain/calendar/calend1.tex
new file mode 100644
index 00000000000..7ce74606469
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/calend1.tex
@@ -0,0 +1,85 @@
+%%
+%% FILE calend1.tex
+%%
+\def\loadadvanced{\relax}
+% Convert from Julian date and time in
+% \date to long date (in local time)
+\def\JDTtoL{\advance\date by500
+ \advance\date by\timezone\divide\date by1000}
+%% Trigonometric functions
+\def\sintable#1{\ifcase #1 0\or100\or199
+ \or296\or389\or479\or565\or644\or717
+ \or783\or841\or891\or932\or964\or985
+ \or997\or1000\or992\or974\or946\or909
+ \or863\or808\or746\or675\or598\or516
+ \or427\or335\or239\or141\or42\or-58
+ \or-158\fi}
+% Reduces modulo 2\pi (requires positive
+% argument theta):
+% theta := theta MOD 2\pi, where
+% theta = count1*10^(-3)
+\def\twopimod{\count2 =\count1
+ \divide\count2 by6284 \count3 =1853
+ \count4 =6283\multiply\count3 by\count2
+ \multiply\count4 by\count2
+ \divide\count3 by10000
+ \advance\count3 by\count4
+ \advance\count1 by-\count3}
+\newif\ifsign
+% v := sin(theta), where
+% v = count4*10^(-3);
+% theta = count1*10^(-3)
+% theta is reduced MOD 2\pi to be
+% 0<=theta<2\pi by \TWOPIMOD,
+% then linear interpolation is performed
+% using \SINTABLE.
+\def\Sin{
+ \ifnum\count1<0 \signtrue
+ \count1=-\count1\else \signfalse\fi
+ \loop\ifnum\count1>6284\twopimod\repeat
+ \ifnum\count1>3142
+ \advance\count1 by-3142
+ \ifsign\signfalse\else\signtrue\fi\fi
+ \multiply\count1 by10 \count3 =\count1
+ \divide\count3 by1000 \count2 =\count3
+ \multiply\count3 by1000
+ \advance\count3 by-\count1
+ \count5 =\sintable{\count2 }
+ \count4 =\count5\advance\count2 by1
+ \advance\count4 by -\sintable{\count2 }
+ \multiply\count4 by\count3
+ \divide\count4 by1000
+ \advance\count4 by\count5
+ \ifsign\count4 =-\count4 \fi}
+% v := cos(theta), where
+% v = count4*10^(-3);
+% theta = count1*10^(-3).
+% \SIN is evaluated on pi/2-theta.
+\def\Cos{\advance\count1 by-1571
+ \multiply\count1 by-1\Sin}
+% Linear transformation of T giving
+% theta := a*T+b, where
+% T = count0*10^(-6);
+% theta = count1*10^(-3);
+% a = #1*10^3+#2+#3*10^(-3);
+% b = #4*10^(-3)
+\def\lin#1.#2.#3+#4.{\count1 =#3
+ \count2 =#2 \count3 =#1
+ \multiply\count1 by\count0
+ \multiply\count2 by\count0
+ \multiply\count3 by\count0
+ \divide\count1 by1000
+ \advance\count1 by\count2
+ \divide\count1 by1000
+ \advance\count1 by\count3
+ \advance\count1 by #4}
+% Accumulate value returned by a
+% trigonometric function, scaled by
+% factor f, into count6:
+% ac := ac+f*v, where
+% ac = count6*10^(-7)
+% v = value of SIN or COS =count4*10^(-3)
+% f = #1*10^(-4)
+\def\fac#1{\multiply\count4 by #1
+ \advance\count6 by\count4}
+\def\id{\count4=\count1} % Identity
diff --git a/Master/texmf-dist/tex/plain/calendar/feasts.tex b/Master/texmf-dist/tex/plain/calendar/feasts.tex
new file mode 100644
index 00000000000..ab5d48976b3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/feasts.tex
@@ -0,0 +1,32 @@
+%%
+%% FILE feasts.tex
+%%
+% Date of Easter for year \Year.
+% Value returned in \date
+\def\easter{{\count0=\Year\count1=\count0
+ \divide\count0 by19\multiply\count0 by19
+ \advance\count1 by-\count0
+ \advance\count1 by 1 % Golden number
+ \count2=\count1\multiply\count2 by11
+ \advance\count2 by18\count0=\count2
+ \divide\count0 by30\multiply\count0 by30
+ \advance\count2 by-\count0 % Epact
+ \ifnum\count2=25\ifnum\count1>11
+ \count2=26 \fi\fi
+ \ifnum\count2=24 \count2=25\fi
+ \advance\count2 by-44
+ \multiply\count2 by-1
+ \ifnum\count2<21 \advance\count2 by30\fi
+ \Month=3\Day=0\dayno\global\advance\date
+ by\count2}\snextday0}
+% (local)
+\def\includefeasts{%
+ \message{Including feasts}
+ \easter\evday[Easter Sunday]
+ {\advance\date by49\evday[Whitsun]}
+ {\advance\date by-7\evday[Palm Sunday]}
+ {\advance\date by-46\evday[Ash Wendsday]
+ \advance\date by-3\evday[Carnival]}
+ \Month=1\Day=1\dayno\snextday0
+ \evday[Epiphany]
+ \event 25/12[\holy Christmas]}
diff --git a/Master/texmf-dist/tex/plain/calendar/moon.tex b/Master/texmf-dist/tex/plain/calendar/moon.tex
new file mode 100644
index 00000000000..f64c1f10b73
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/moon.tex
@@ -0,0 +1,89 @@
+%%
+%% FILE moon.tex
+%%
+\loadadvanced
+\newcount\moonno
+\def\firstmoon{\moonno=\Year
+ \multiply\moonno by123685
+ \divide\moonno by10000
+ \multiply\moonno by4\advance\moonno by-1
+ \loop\moondate\ifnum\date<\yearbase
+ \advance\moonno by1\repeat}
+% Compute date for cycle quarter MOONNO
+\def\moondate{{\count0=\moonno
+ \lin 202.126.369+0.\count0=\count1
+ \count6=0
+ \lin 0.2.319+2907.\Sin\fac{3}
+ \divide\count6 by1000
+ \lin 365.249.86+7593.\id\fac{1}
+ \divide\count6 by10\count7 =\count6
+ \ifodd\moonno\quarters
+ \else\fullornew\fi\global\date=\count7}
+ \JDTtoL\message{\the\date}}
+% Correction for full and new moon
+\def\fullornew{\count6=0
+ \lin -393.0.0+0.
+ \divide\count1 by100000000
+ \advance\count6 by\count1
+ \lin 0.628.300+6269.\Sin
+ \multiply\count6 by\count4
+ \lin -7.-700.-369+ 928.\Sin\fac{ -74}
+ \lin 0. 628. 300+ 6269.\Sin\fac{ 1734}
+ \lin 1. 256. 600+12539.\Sin\fac{ 21}
+ \lin 8. 328. 670+ 5341.\Sin\fac{-4068}
+ \lin 8. 538. 220+-4597.\Sin\fac{ 10}
+ \lin 8. 956. 970+11610.\Sin\fac{ -51}
+ \lin 16. 238. 589+-5526.\Sin\fac{ -4}
+ \lin 16. 657. 340+10682.\Sin\fac{ 161}
+ \lin 16. 866. 890+ 743.\Sin\fac{ 104}
+ \lin 17. 285. 640+16951.\Sin\fac{ 50}
+ \lin 17. 495. 190+ 7013.\Sin\fac{ 4}
+ \lin 24. 986. 10+16023.\Sin\fac{ -4}
+ \lin 25. 195. 560+ 6084.\Sin\fac{ -6}
+ \divide\count6 by10000
+ \advance\count7 by\count6 }
+% Correction for quarters
+\def\quarters{\lin -393.0.0+0.
+ \divide\count1 by100000000
+ \count6 =\count1 \lin 0.628.300+6269.
+ \Sin\multiply\count6 by\count4
+ \lin -16. -29. -40+-4413.\Sin\fac{ 40}
+ \lin -7.-700.-369+ 928.\Sin\fac{ -47}
+ \lin -7. -72. -69+ 7198.\Sin\fac{ -30}
+ \lin 0. 628. 300+ 6270.\Sin\fac{ 1721}
+ \lin 1. 256. 600+12539.\Sin\fac{ 21}
+ \lin 8. 328. 670+ 5341.\Sin\fac{-6280}
+ \lin 8. 538. 220+-4598.\Sin\fac{ 21}
+ \lin 8. 956. 970+11611.\Sin\fac{ -119}
+ \lin 16. 238. 589+-5526.\Sin\fac{ -4}
+ \lin 16. 657. 340+10682.\Sin\fac{ 89}
+ \lin 16. 866. 890+ 743.\Sin\fac{ 79}
+ \lin 17. 285. 640+16952.\Sin\fac{ 3}
+ \lin 17. 495. 190+ 7013.\Sin\fac{ 3}
+ \lin 24. 986. 10+16023.\Sin\fac{ -4}
+ \lin 25. 195. 560+ 6085.\Sin\fac{ -6}
+ \count8=\count6\count6=28000
+ \lin 628. 300. 373+ 6270.\Cos\fac{ -4}
+ \lin 8. 328. 670+ 5341.\Cos\fac{ 3}
+ \count2=\moonno
+ \advance\count2 by-1\divide\count2 by2
+ \ifodd\count2\multiply\count6 by-1 \fi
+ \advance\count6 by\count8
+ \divide\count6 by10000
+ \advance\count7 by\count6 }
+% Events for phases.
+% Uses PHASE (local).
+\def\includemoons{\message{Including moons}
+ {\firstmoon
+\Month=12\Day=31\dayno\advance\date by1
+ \count1=\date
+ \loop\moondate\phase\ifnum\date<\count1
+ \evday[\themoon]\advance\moonno by1
+ \repeat}}
+\def\phase{{\count0=\moonno
+ \count1=\moonno
+ \divide\count0 by4\multiply\count0 by4
+ \advance\count1 by-\count0\relax
+ \global\edef\themoon{\ifcase\count1
+ New moon\or First quarter\or
+ Full Moon\or Last quarter\fi}}}
diff --git a/Master/texmf-dist/tex/plain/calendar/sun.tex b/Master/texmf-dist/tex/plain/calendar/sun.tex
new file mode 100644
index 00000000000..9ec246b1f9a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/sun.tex
@@ -0,0 +1,15 @@
+%%
+%% FILE sun.tex
+%%
+\loadadvanced
+\def\linY#1.#2.#3+#4.{{\count0=\Year
+ \multiply\count0 by1000\count1=0
+ \lin #1.#2.#3+#4.
+ \global\date=\count1}\JDTtoL}
+% (local)
+\def\includeseasons{%
+ \message{Including seasons}
+ \linY 365.242.365+ 79573.\evday[Spring]
+ \linY 365.241.628+172405.\evday[Summer]
+ \linY 365.242.045+266014.\evday[Fall]
+ \linY 365.242.756+355784.\evday[Winter]}
diff --git a/Master/texmf-dist/tex/plain/calendar/wall.sty b/Master/texmf-dist/tex/plain/calendar/wall.sty
new file mode 100644
index 00000000000..076eb579ba1
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/calendar/wall.sty
@@ -0,0 +1,60 @@
+%%
+%% FILE wall.sty
+%%
+\hsize=9.5in
+\vsize=7.5in\voffset=-0.65in
+\baselineskip=12pt
+\newcount\daysinrow
+\newdimen\cellwidth
+\newdimen\cellheight
+\cellheight=1.13in
+\parindent=0pt
+\cellwidth=\hsize
+\divide\cellwidth by7
+\advance\cellwidth by-0.4pt
+\font\BBf=cmbx12 at 24pt
+\font\Bf=cmbx10 at 20pt
+\font\Rm=cmr10 at 20pt
+\font\rm=cmr12 at 14pt
+\font\small=cmr9
+\footline={}
+\def\hstrut{\hrule height0pt depth0pt
+ width\cellwidth}
+\def\beginday{
+ \ifnum\daysinrow=0\setbox1=\hbox{\vrule}\fi
+ \setbox0=\vbox to\cellheight\bgroup
+ \hstrut\hsize=\cellwidth\vskip5pt
+ \setbox2=\vbox\bgroup\small}
+\def\endday{\egroup
+ \hbox{\hskip0.5em\Rm\ifholy\Bf\fi\the\Day}
+ \vskip2pt\box2\vfill\egroup
+ \setbox1=\hbox{\unhbox1\box0\vrule}
+ \advance\daysinrow by1
+ \ifnum\daysinrow=7\box1\hrule\daysinrow=0\fi}
+%
+\def\advancemonth{\ifnum\Month=12
+ \nextyear\Month=1\else\advance\Month by1\fi}
+% If no Month is given, take today's date.
+\ifnum\Month=0 \Month=\month
+ \ifnum\day>15 \advancemonth\fi\fi
+\Day=1\dayno
+\topskip=0pt\hbox{}
+\vfill
+\centerline{\BBf\themonth}
+\penalty10000
+\vskip40pt minus32pt
+% Local: from sunday ...
+\prevday0\currentdate=\date
+\hbox{\rm\loop
+ \hbox to\cellwidth{\hss\theweekday\hss}
+ \unskip\ifnum\weekd<6\advance\date by1\repeat}
+\penalty10000
+\vskip3pt
+% Local: ... to saturday.
+\Day=1 \advance\Month by1\dayno
+\advance\date by-1\nextday6\lastdate=\date
+\leftskip=3pt
+\raggedright
+\daysinrow=0
+\vbox\bgroup\hrule
+\def\epilog{\vfill\egroup\supereject}
diff --git a/Master/texmf-dist/tex/plain/cellular/cell1.tex b/Master/texmf-dist/tex/plain/cellular/cell1.tex
new file mode 100644
index 00000000000..89b98a354ea
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cellular/cell1.tex
@@ -0,0 +1,148 @@
+% File: TeX Inputs Cell1.tex
+% Author: J E Pittman
+% Bitnet: JEPTeX@TAMVenus
+% Internet: JEPTeX@Venus.TAMU.EDU
+% Date: October 11, 1988
+%
+% Set up the cellular environment
+%
+\catcode`_=11 % Protect local macros.
+%
+\ifx\forcount\undefined \input loopy \fi
+\ifx\declarecount\undefined \input declare \fi
+%
+% Handy abbreviations
+%
+\def\half{0.5}%
+\def\by{by}%
+\def\height{height}%
+\def\depth{depth}%
+\def\width{width}%
+\def\to{to}%
+\def\zeropt{0pt}%
+\let\x_after=\expandafter
+%
+% When using the Xerox 9700s or 4050, use \setverticaladjustment for
+% portrait output and \sethorizontaladjustment for landscape output
+% due to the differences in the way that vertical and horizontal lines
+% of the same weight are printed.
+%
+\declaredimen\pixelwidth
+\pixelwidth=1in
+\divide\pixelwidth by 300 % assume 300dpi
+%
+\declaredimen\horizontal_rule_adjust
+\horizontal_rule_adjust=\zeropt
+\def\sethorizontaladjustment{\horizontal_rule_adjust=\pixelwidth}%
+%
+\declaredimen\vertical_rule_adjust
+\vertical_rule_adjust=\zeropt
+\def\setverticaladjustment{\vertical_rule_adjust=\pixelwidth}%
+%
+% The left, right, bottom, and top rule widths are used to determine
+% the widths of the box around each cell.
+%
+\declaredimen\leftrulewidth
+\declaredimen\rightrulewidth
+\declaredimen\bottomrulewidth
+\declaredimen\toprulewidth
+%
+% The left, right, bottom, and top border skips are used to position
+% the text of a cell within it, relative to the centers of the rulers.
+%
+\declareskip\leftborderskip
+\declareskip\rightborderskip
+\declareskip\bottomborderskip
+\declareskip\topborderskip
+%
+\declarecount\last_column
+\declaredimen\columnwidth
+\declarecount\merge_columns
+\declaredimen\merge_width
+%
+\declarecount\last_row
+\declaredimen\rowheight
+\declarecount\merge_rows
+\declaredimen\merge_height
+\declarecount\rowpenalty
+%
+% The row info and column info token registers contain a list of
+% tokens of the form /number/info, where number is the number of a
+% row or column of interest and info is information, usually register
+% assignments, that pertains to the row or column.
+%
+\declaretoks\column_info
+\column_info={/}%
+%
+\declaretoks\row_info
+\row_info={/}%
+%
+\def\everycolumn{\leftrulewidth=0.4pt\relax
+ \rightrulewidth=\leftrulewidth
+ \leftborderskip=6pt plus 1fil\relax
+ \rightborderskip=\leftborderskip
+ \columnwidth=\zeropt\relax
+ \merge_rows=0\relax
+ \merge_height=\zeropt\relax
+ \columnwidth=\zeropt\relax
+ }%
+%
+\def\everyrow{\toprulewidth=0.4pt\relax
+ \bottomrulewidth=\toprulewidth
+ \topborderskip=3pt plus 1fil\relax
+ \bottomborderskip=\topborderskip
+ \rowheight=\zeropt\relax
+ \merge_columns=0\relax
+ \merge_width=\zeropt\relax
+ }%
+%
+\def\get_data#1<#2{\relax
+ \def\temp##1/#1/##2/##3***{\relax
+ \def\temp{##2}%
+ \ifnum1=0\temp
+ #2={##1/#1//}%
+ \else
+% \message{extracted ##2}% debug
+ ##2%
+ \fi
+ }%
+ \x_after\temp\the#2#1/1/***%
+ }%
+%
+\def\add_data#1>#2#3{\relax
+ \def\temp##1/#1/##2/##3***{\relax
+ #2={##1/#1/##2#3/##3}%
+% \message{\string#2=\the#2}% debug
+ }%
+ \x_after\temp\the#2***%
+ }%
+%
+\def\add_column_number_data{\relax
+ \x_after \add_data \the\column_number>\column_info
+ }%
+%
+\def\get_column_number_data{\relax
+ \x_after \get_data \the\column_number<\column_info
+ }%
+%
+\def\add_row_number_data{\relax
+ \x_after \add_data \the\row_number>\row_info
+ }%
+%
+\def\get_row_number_data{\relax
+ \x_after \get_data \the\row_number<\row_info
+ }%
+%
+\declarebox\temp_box
+\declarebox\scratch_box
+\declaredimen\temp_dimen
+\declaredimen\scratch_dimen
+\declareskip\temp_skip
+\declarecount\temp_count
+%
+\declarecount\tracingexpansions
+\tracingexpansions=0
+%
+\catcode`_=8 % Return to normal.
+%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/cellular/cell2.tex b/Master/texmf-dist/tex/plain/cellular/cell2.tex
new file mode 100644
index 00000000000..4b025aabb8e
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cellular/cell2.tex
@@ -0,0 +1,216 @@
+% File: TeX Inputs Cell2.tex
+% Author: J E Pittman
+% Bitnet: JEPTeX@TAMVenus
+% Internet: JEPTeX@Venus.TAMU.EDU
+% Date: November 8, 1988
+%
+% Prepare to scan the data, taking notes as to span sizes, row and
+% column dimensions, et cetera.
+%
+\catcode`_=11 % Used to protect local control sequence names.
+%
+% The span info tokens contain sets of entries of the form \process
+% {position}{number}{dimension}, where position is the terminal column
+% or row, number is the number of columns or rows leading into the
+% column or row, and dimension is the size of the information.
+%
+\declaretoks\column_span_info
+\column_span_info={}%
+\declaretoks\row_span_info
+\row_span_info={}%
+%
+\let\process=\relax
+%
+\declarecount\column_number
+\column_number=0
+%
+% Create a column information entry and put the user's specifications
+% into it.
+%
+\def\column#1{\relax
+ \advance\column_number \by 1
+ \last_column=\column_number
+ \get_column_number_data
+ \add_column_number_data {#1}%
+ \ignorespaces
+ }%
+%
+\declarecount\row_number
+\row_number=0
+%
+% Same as \column.
+%
+\def\row#1{\relax
+ \advance\row_number \by 1
+ \message{Scanning row \the\row_number.}%
+ \last_row=\row_number
+ \everyrow
+ \get_row_number_data
+ \add_row_number_data {#1}%
+ \column_number=0
+ \ignorespaces
+ }%
+%
+% \blank is used to generate a cell without a border or data. In this
+% context, all it does is absorb merges.
+%
+\def\blank{\relax
+ \advance\column_number \by 1
+ \if\column_number>\last_column
+ \advance\column_number \by -1
+ \column{}%
+ \fi
+ \everycolumn
+ \get_column_number_data
+ \ifnum\merge_rows>1
+ \add_column_number_data {\merge_rows=0\relax}%
+ \fi
+ \merge_columns=0
+ }%
+%
+% \cell is used to generate a normal, ruled cell. In this context, it
+% merely measures the cell and makes the appropriate notes.
+%
+\def\cell#1{\relax
+ \advance\column_number \by 1
+ \if\column_number>\last_column
+ \advance\column_number \by -1
+ \column{}%
+ \fi
+ \everycolumn
+ \get_column_number_data
+%
+% Typeset the information into temp box.
+%
+ \setbox\temp_box=\vbox \bgroup
+ \begingroup
+ \ifnum\merge_rows>0
+ \advance\row_number \by -\merge_rows
+ \get_row_number_data
+ \fi
+ \vskip \topborderskip
+ \endgroup
+ \hbox \bgroup
+ \begingroup
+ \ifnum\merge_columns>0
+ \advance\column_number \by -\merge_columns
+ \get_column_number_data
+ \fi
+ \hskip \leftborderskip
+ \endgroup
+ #1\vphantom{)}%
+ \hskip \rightborderskip
+ \egroup
+ \vskip \bottomborderskip
+ \egroup
+%
+% If it is a row merger, record it for later processing.
+%
+ \ifnum \merge_rows>0
+ \edef\temp{\process
+ {\the\merge_rows}{\the\ht\temp_box}{\the\row_number}%
+ \the\row_span_info
+ }%
+ \x_after\row_span_info\x_after=\x_after{\temp}%
+% \message{\string\row_span_info=\the\row_span_info}% debug
+ \add_column_number_data {\merge_rows=0\relax}%
+ \else
+%
+% Not a merger, record the height if max.
+%
+ \ifdim\ht\temp_box>\rowheight
+ \let\info=\relax
+ \edef\temp{\the\row_number>\info
+ {\rowheight=\the\ht\temp_box\relax}}%
+ \let\info=\row_info
+ \x_after \add_data \temp
+% \message{\string\row_info=\the\row_info}% debug
+ \rowheight=\ht\temp_box
+ \fi
+ \fi
+%
+% Same as above for column merger and width.
+%
+ \ifnum \merge_columns>0
+ \edef\temp{\process
+ {\the\merge_columns}{\the\wd\temp_box}{\the\column_number}%
+ \the\column_span_info
+ }%
+ \x_after\column_span_info\x_after=\x_after{\temp}%
+% \message{\string\column_span_info=\the\column_span_info}% debug
+ \merge_columns=0
+ \else
+ \ifdim\wd\temp_box>\columnwidth
+ \let\info=\relax
+ \edef\temp{\the\column_number>\info
+ {\columnwidth=\the\wd\temp_box\relax}}%
+ \let\info=\column_info
+ \x_after \add_data \temp
+% \message{\string\column_info=\the\column_info}% debug
+ \fi
+ \fi
+ }%
+%
+% \mergeright specifies that the corresponding position is to be
+% merged with the cell to its right.
+%
+\def\mergeright{\relax
+ \advance\column_number \by 1
+ \if\column_number>\last_column
+ \advance\column_number \by -1
+ \column{}%
+ \fi
+ \everycolumn
+ \get_column_number_data
+ \advance\merge_columns \by 1
+%
+% Cancel a row merge, if present.
+%
+ \ifnum\merge_rows>1
+ \add_column_number_data {\merge_rows=0\relax}%
+ \fi
+ }%
+%
+% Same as \mergeright, except down.
+%
+\def\mergedown{\relax
+ \advance\column_number \by 1
+ \if\column_number>\last_column
+ \advance\column_number \by -1
+ \column{}%
+ \fi
+ \everycolumn
+ \get_column_number_data
+ \add_column_number_data {\advance\merge_rows \by 1\relax}%
+ \merge_columns=0
+ }%
+%
+% The horizontal and vertical stretch macros allow the user to specify
+% an explicit stretch that will subsequently be processed like a span.
+% User-specified stretches are processed after span caused ones. The
+% parameters are the starting column/row, the ending column/row, and
+% the size of the stretch.
+%
+\def\horizontalstretch#1#2#3{\relax
+ \temp_count=#2\relax
+ \advance\temp_count \by -#1\relax
+ \edef\temp{\the\column_span_info\process{\the\temp_count}{#3}{#2}}%
+ \x_after \column_span_info\x_after=\x_after{\temp}%
+% \message{\string\column_span_info=\the\column_span_info}% debug
+ \ignorespaces
+ }%
+%
+\def\verticalstretch#1#2#3{\relax
+ \temp_count=#2\relax
+ \advance\temp_count \by -#1\relax
+ \edef\temp{\the\row_span_info\process{\the\temp_count}{#3}{#2}}%
+ \x_after \row_span_info\x_after=\x_after{\temp}%
+% \message{\string\row_span_info=\the\row_span_info}% debug
+ \ignorespaces
+ }%
+%
+\def\noalign#1{\ignorespaces}% don't do anything for the first pass
+%
+\catcode`_=8 % Return to normal.
+%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/cellular/cell3.tex b/Master/texmf-dist/tex/plain/cellular/cell3.tex
new file mode 100644
index 00000000000..1daa3b1746d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cellular/cell3.tex
@@ -0,0 +1,132 @@
+% File: TeX Inputs Cell3.tex
+% Author: J E Pittman
+% Bitnet: JEPTeX@TAMVenus
+% Internet: JEPTeX@Venus.TAMU.EDU
+% Date: October 11, 1988
+%
+% Process the column and row span info.
+%
+\declaredimen\expansion
+%
+\edef\everycolumn{\everycolumn\expansion=\zeropt\relax}%
+\edef\everyrow{\everyrow\expansion=\zeropt\relax}%
+%
+\catcode`_=11 % used to protect local control sequence names.
+%
+%\message{\string\row_span_info=\the\row_span_info}% debug
+%\message{\string\column_span_info=\the\column_span_info}% debug
+%
+\def\process#1#2#3{\relax
+ \last_cell=#3\relax
+ \first_cell=\last_cell
+ \advance \first_cell \by -#1\relax
+ \span_size=#2\relax
+%
+% Compute the gap between the size of the span and the total size of
+% the cells spanned.
+%
+ \gap=\span_size
+ \forcount \cell_number=\first_cell to \last_cell by 1 do
+ \everycell
+ \get_cell_number_data
+ \advance \gap \by -\cell_size
+ \advance \gap \by -\expansion
+ \endfor \cell_number
+% \message{\string\first_cell=\the\first_cell}% debug
+% \message{\string\last_cell=\the\last_cell}% debug
+% \message{\string\span_size=\the\span_size}% debug
+% \message{\string\gap=\the\gap}% debug
+%
+% If the gap is 0pt or less, nothing needs to be done, else search for
+% the minimum expansion that can be applied to every cell with a
+% current expansion less than the expansion found such that the span
+% is properly accomadated.
+%
+ \ifdim \gap>\zeropt
+ \expandable_cells=#1\relax
+ \advance \expandable_cells \by 1
+ \trial_expansion=\zeropt
+ \whilenot\search \ifdim\gap=\zeropt do
+% \message{\string\gap=\the\gap}% debug
+ \ifnum \expandable_cells=0
+ \advance \trial_expansion \by \expansion
+ \else
+ \multiply \trial_expansion \by \expandable_cells
+ \advance \trial_expansion \by \gap
+ \divide \trial_expansion \by \expandable_cells
+ \expandable_cells=0
+ \fi
+ \gap=\span_size
+% \message{\string\trial_expansion=\the\trial_expansion}% debug
+ \forcount \cell_number=\first_cell to \last_cell by 1 do
+ \everycell
+ \get_cell_number_data
+ \advance \gap \by -\cell_size
+ \ifdim \expansion>\trial_expansion
+ \advance \gap \by -\expansion
+ \else
+ \advance \gap \by -\trial_expansion
+ \advance \expandable_cells \by 1
+ \fi
+ \endfor \cell_number
+ \temp_dimen=1sp
+ \multiply \temp_dimen \by \expandable_cells
+ \ifdim \gap>-\temp_dimen
+ \ifdim \gap<\temp_dimen
+ \gap=\zeropt
+ \fi
+ \fi
+ \endwhilenot \search
+ \forcount \cell_number=\first_cell to \last_cell by 1 do
+ \everycell
+ \get_cell_number_data
+ \ifdim \expansion<\trial_expansion
+ \let\info=\relax
+ \edef\temp{\the\cell_number>\info
+ {\expansion=\the\trial_expansion\relax}}%
+ \let\info=\cell_info
+ \x_after \add_data \temp
+ \ifnum\tracingexpansions>0
+ \message{Expanded \the\cell_number}%
+ \message{by \the\trial_expansion}%
+ \message{from \the\cell_size}%
+ \advance \cell_size \by \trial_expansion
+ \message{to \the\cell_size.}%
+ \fi
+ \fi
+ \endfor \cell_number
+ \fi
+ }%
+%
+\declarecount\first_cell
+\declarecount\last_cell
+\declaredimen\span_size
+\let\expandable_cells=\temp_count
+\declaredimen\trial_expansion
+\let\gap=\scratch_dimen
+%
+\let\cell_number=\row_number
+\let\everycell=\everyrow
+\let\get_cell_number_data=\get_row_number_data
+\let\cell_info=\row_info
+\let\cell_size=\rowheight
+\ifnum\tracingexpansions>0
+ \message{Checking row expansions.}%
+\fi
+\the\row_span_info
+%
+\let\cell_number=\column_number
+\let\everycell=\everycolumn
+\let\get_cell_number_data=\get_column_number_data
+\let\cell_info=\column_info
+\let\cell_size=\columnwidth
+\ifnum\tracingexpansions>0
+ \message{Checking column expansions.}%
+\fi
+\the\column_span_info
+%
+\let\process=\relax
+%
+\catcode`_=8 % back to normal
+%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/cellular/cell4.tex b/Master/texmf-dist/tex/plain/cellular/cell4.tex
new file mode 100644
index 00000000000..498fd6f0044
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cellular/cell4.tex
@@ -0,0 +1,355 @@
+% File: TeX Inputs Cell4.tex
+% Author: J E Pittman
+% Bitnet: JEPTeX@TAMVenus
+% Internet: JEPTeX@Venus.TAMU.EDU
+% Date: November 8, 1988
+%
+% Set up to output the data.
+%
+\catcode`_=11 % Protect local control sequence names.
+%
+% The user supplied information about the column has already been
+% processed.
+%
+\def\column #1{\relax\ignorespaces}%
+%
+\row_number=0
+\rowpenalty=0
+%
+% This routine is used for horizontal kerning when there might be a
+% kern to the left of the current position.
+%
+\def\move_right_via_lastkern #1{\relax
+ \temp_dimen=#1\relax
+ \ifdim \lastkern>\zeropt
+ \advance \temp_dimen \by \lastkern
+ \unkern
+ \else
+ \fi
+ \kern \temp_dimen
+ }%
+%
+% \row begins a row by getting its specifications, terminating the
+% previous row (if any) and going into horizontal mode.
+%
+\def\row #1{\relax
+ \advance \row_number \by 1
+ \everyrow
+ \get_row_number_data
+ \advance \rowheight \by \expansion
+ \ifdim \bottomrulewidth>\zeropt
+ \advance \bottomrulewidth \by \horizontal_rule_adjust
+ \fi
+ \column_number=0
+ \par
+ \ifnum \rowpenalty=0
+ \else
+ \penalty \rowpenalty
+ \rowpenalty=0
+ \fi
+ \noindent
+ \ignorespaces
+ \message{Outputting row \the\row_number.}%
+ }%
+%
+% \blank creates a blank cell by kerning the appropriate amount.
+%
+\def\blank {\relax
+ \advance \column_number \by 1
+ \everycolumn
+ \get_column_number_data
+ \advance \columnwidth \by \expansion
+ \advance \merge_width \by \expansion
+ \move_right_via_lastkern \merge_width
+%
+% Terminate merger(s).
+%
+ \merge_width=\zeropt
+ \merge_columns=0
+ \ifnum \merge_rows>0
+ \add_column_number_data
+ {\merge_rows=0\relax\merge_height=\zeropt\relax}%
+ \fi
+ }%
+%
+% \cell outputs a cell. The components of the cell are (in the order
+% output) the entry, the top ruler, the bottom ruler, and the left and
+% right rulers.
+%
+\def\cell #1{\relax
+ \advance \column_number \by 1
+ \everycolumn
+ \get_column_number_data
+ \advance \columnwidth \by \expansion
+ \advance \merge_height \by \rowheight
+ \advance \merge_width \by \columnwidth
+ \ifdim \leftrulewidth>\zeropt
+ \advance \leftrulewidth \by \vertical_rule_adjust
+ \fi
+ \ifdim \rightrulewidth>\zeropt
+ \advance \rightrulewidth \by \vertical_rule_adjust
+ \fi
+%
+% Get the correct top border skip and rule width. Note that it is
+% necessary to extract this informaion even if a row merger is not
+% present because a previous row merger might have left the wrong
+% values.
+%
+ \begingroup
+ \advance \row_number \by -\merge_rows
+ \everyrow
+ \get_row_number_data
+ \xdef\globaltemp{\topborderskip=\the\topborderskip\relax
+ \toprulewidth=\the\toprulewidth\relax
+ }%
+ \aftergroup \globaltemp
+ \endgroup
+ \ifdim \toprulewidth>\zeropt
+ \advance \toprulewidth \by \horizontal_rule_adjust
+ \fi
+%
+% Same procedure for the left border skip and rule width except that
+% extraction is necessary only in the presense of a column merger due
+% to the execution of an every column and a get at the start of \cell.
+%
+ \ifnum \merge_columns>0
+ \begingroup
+ \advance \column_number \by -\merge_columns
+ \everycolumn
+ \get_column_number_data
+ \xdef\globaltemp{\leftrulewidth=\the\leftrulewidth\relax
+ \leftborderskip=\the\leftborderskip\relax
+ }%
+ \aftergroup \globaltemp
+ \endgroup
+ \ifdim \leftrulewidth>\zeropt
+ \advance \leftrulewidth \by \vertical_rule_adjust
+ \fi
+ \fi
+%
+% Typeset the entry into temp box horizontally first, trying kerns
+% before glue in case the cell does not require horizontal stretching
+% and taking advantage of an empty cell by doing nothing, if such is
+% the case.
+%
+ \setbox\temp_box=\hbox{#1}%
+ \ifdim\wd\temp_box>\zeropt
+ \setbox\temp_box=\hbox \bgroup
+ \kern \leftborderskip
+ \box\temp_box
+ \egroup
+ \temp_dimen=\wd\temp_box
+ \advance\temp_dimen \by \rightborderskip
+ \wd\temp_box=\temp_dimen
+%
+ \ifdim\wd\temp_box=\merge_width
+%
+% then the kerns can be used instead of skips.
+%
+ \else
+ \setbox\temp_box=\hbox \to \merge_width \bgroup
+ \hskip \leftborderskip
+ #1%
+ \hskip \rightborderskip
+ \egroup
+ \fi
+%
+% Hide the width of temp box and put a phantom into it the hard way.
+%
+ \wd\temp_box=\zeropt
+ \setbox\scratch_box=\hbox{#1)}%
+ \ifdim \dp\scratch_box>\dp\temp_box
+ \dp\temp_box=\dp\scratch_box
+ \fi
+ \ifdim \ht\scratch_box>\ht\temp_box
+ \ht\temp_box=\ht\scratch_box
+ \fi
+%
+ \temp_dimen=\ht\temp_box
+ \advance \temp_dimen \by \dp\temp_box
+ \advance \temp_dimen \by \bottomborderskip
+ \advance \temp_dimen \by \topborderskip
+ \ifdim \temp_dimen=\merge_height
+%
+% then the entry can be positioned vertically via a raise statement.
+% The total height of the material output should be equal to the row
+% height, thus acting as a strut.
+%
+ \temp_dimen=\bottomborderskip
+ \advance \temp_dimen \by \dp\temp_box
+ \scratch_dimen=\rowheight
+ \advance\scratch_dimen by -\temp_dimen
+ \ht\temp_box=\scratch_dimen
+ \raise \temp_dimen \box\temp_box
+ \else % have to do it via a box
+ \setbox\temp_box=\vbox \to \rowheight \bgroup
+%
+% Subtracting merge height - row height from top border skip allows
+% the cell to stick up into the next row by an appropriate amount.
+%
+ \advance \topborderskip \by \rowheight
+ \advance \topborderskip \by -\merge_height
+ \vskip \topborderskip
+ \box\temp_box
+ \vskip \bottomborderskip
+ \egroup
+ \box\temp_box
+ \fi
+ \fi
+%
+% All of the rules are typeset with an overlap of at least pixel width
+% which insures that there will be no gaps.
+%
+% Typeset the top rule into an hbox and use a raise statement to put
+% it into position.
+%
+ \ifdim \toprulewidth>\zeropt
+ \setbox\temp_box=\hbox \bgroup
+ \temp_dimen=\merge_width
+ \ifdim \half\leftrulewidth<\pixelwidth
+ \kern -\pixelwidth
+ \else
+ \kern -\half\leftrulewidth
+ \fi
+ \advance \temp_dimen \by -\lastkern
+ \vrule \height \half\toprulewidth
+ \depth \half\toprulewidth
+ \width \temp_dimen
+ \ifdim \half\rightrulewidth<\pixelwidth
+ \temp_dimen=\pixelwidth
+ \else
+ \temp_dimen=\half\rightrulewidth
+ \fi
+ \kern -\temp_dimen
+ \vrule \height \half\toprulewidth
+ \depth \half\toprulewidth
+ \width 2\temp_dimen
+ \egroup
+ \wd\temp_box=\zeropt
+ \temp_dimen=\rowheight
+ \advance\temp_dimen \by -\merge_height
+ \ht\temp_box=\temp_dimen
+ \dp\temp_box=\merge_height
+ \raise \merge_height \box\temp_box
+ \fi
+%
+% Output the bottom rule using the same methods.
+%
+ \ifdim \bottomrulewidth>\zeropt
+ \setbox\temp_box=\hbox \bgroup
+ \temp_dimen=\merge_width
+ \ifdim \half\leftrulewidth<\pixelwidth
+ \kern -\pixelwidth
+ \else
+ \kern -\half\leftrulewidth
+ \fi
+ \advance \temp_dimen \by -\lastkern
+ \vrule \height \half\bottomrulewidth
+ \depth \half\bottomrulewidth
+ \width \temp_dimen
+ \ifdim \half\rightrulewidth<\pixelwidth
+ \temp_dimen=\pixelwidth
+ \else
+ \temp_dimen=\half\rightrulewidth
+ \fi
+ \kern -\temp_dimen
+ \vrule \height \half\bottomrulewidth
+ \depth \half\bottomrulewidth
+ \width 2\temp_dimen
+ \egroup
+ \wd\temp_box=\zeropt
+ \dp\temp_box=\zeropt
+ \ht\temp_box=\rowheight
+ \box\temp_box
+ \fi
+%
+% Test to see if the left inclusive-or right rule width is non-zero.
+%
+ \ifdim \leftrulewidth=\zeropt
+ \temp_dimen=\rightrulewidth
+ \else
+ \temp_dimen=\leftrulewidth
+ \fi
+ \ifdim \temp_dimen>\zeropt
+ \setbox\temp_box=\hbox \bgroup
+ \temp_dimen=\merge_height
+ \advance \merge_height \by \pixelwidth
+ \ifdim \leftrulewidth>\zeropt
+ \kern -\half\leftrulewidth
+ \vrule \height \temp_dimen
+ \depth \pixelwidth
+ \width \leftrulewidth
+ \fi
+ \ifdim \rightrulewidth>\zeropt
+ \scratch_dimen=\merge_width
+ \advance \scratch_dimen \by -\half\leftrulewidth
+ \advance \scratch_dimen \by -\half\rightrulewidth
+ \kern \scratch_dimen
+ \vrule \height \temp_dimen
+ \depth \pixelwidth
+ \width \rightrulewidth
+ \fi
+ \egroup
+ \wd\temp_box=\merge_width
+ \ht\temp_box=\rowheight
+ \dp\temp_box=\zeropt
+ \box\temp_box
+ \else
+ \move_right_via_lastkern \merge_width
+ \fi
+%
+% Cancel the mergers.
+%
+ \merge_width=\zeropt
+ \merge_columns=0
+ \ifnum \merge_rows>0
+ \add_column_number_data
+ {\merge_rows=0\relax\merge_height=\zeropt\relax}%
+ \fi
+ \ignorespaces
+ }%
+%
+% No surprises here.
+%
+\def\mergeright {\relax
+ \advance \column_number \by 1
+ \everycolumn
+ \get_column_number_data
+ \advance \columnwidth \by \expansion
+ \advance \merge_width \by \columnwidth
+ \advance \merge_columns \by 1
+ \ifnum \merge_rows>0
+ \add_column_number_data
+ {\merge_rows=0\relax\merge_height=\zeropt\relax}%
+ \fi
+ }%
+%
+% No surprises here.
+%
+\def\mergedown {\relax
+ \advance \column_number \by 1
+ \everycolumn
+ \get_column_number_data
+ \advance \columnwidth \by \expansion
+ \advance \merge_width \by \columnwidth
+ \move_right_via_lastkern \merge_width
+ \merge_width=\zeropt
+ \merge_columns=0
+ \advance \merge_height \by \rowheight
+ \let\info=\relax
+ \edef\temp{\the\column_number>\info
+ {\merge_height=\the\merge_height\relax
+ \advance\merge_rows \by 1\relax}}%
+ \let\info=\column_info
+ \x_after \add_data \temp
+ \rowpenalty=10000 % do not allow a break over a row merge.
+ }%
+%
+\catcode`_=8 % Back to normal.
+%
+\def\noalign#1{\relax
+ \vadjust{#1}%
+ \ignorespaces
+ }%
+%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/cellular/cellular.tex b/Master/texmf-dist/tex/plain/cellular/cellular.tex
new file mode 100644
index 00000000000..62f2c7c02f5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cellular/cellular.tex
@@ -0,0 +1,29 @@
+% File: TeX Inputs cellular.tex
+% Author: J E Pittman
+% Bitnet: JEPTeX@TAMVenus
+% Internet: JEPTeX@Venus.TAMU.EDU
+% Date: November 8, 1988
+%
+% This file defines the main macro for cellular table construction.
+% For commentary, please see the file cellular.doc.
+%
+\message{Cellular.TeX version 0.}%
+%
+\def\begincellular#1#2\endcellular{\relax
+ \begingroup
+ \input Cell1 % set up enviroment
+ #1\relax
+ \input Cell2 % set up for scan
+ \ignorespaces
+ #2\relax % scan the cells
+ \input Cell3 % compute spans
+ \input Cell4 % set up for output
+ \offinterlineskip
+ \parskip=\zeropt
+ \ignorespaces
+ #2\relax % output cells
+ \par
+ \endgroup
+ }%
+%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/config/aleph.ini b/Master/texmf-dist/tex/plain/config/aleph.ini
new file mode 100644
index 00000000000..949e5bd0540
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/aleph.ini
@@ -0,0 +1,2 @@
+\input plain
+\dump
diff --git a/Master/texmf-dist/tex/plain/config/bplain.ini b/Master/texmf-dist/tex/plain/config/bplain.ini
new file mode 100644
index 00000000000..892588b5df6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/bplain.ini
@@ -0,0 +1,5 @@
+% Thomas Esser, 1998. public domain.
+% hyphenation tables are now set up in language.dat
+\input bplain
+\dump
+\endinput
diff --git a/Master/texmf-dist/tex/plain/config/etex.ini b/Master/texmf-dist/tex/plain/config/etex.ini
new file mode 100644
index 00000000000..f8db7a942ef
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/etex.ini
@@ -0,0 +1,4 @@
+% Thomas Esser, 1998. public domain.
+\input etex.src
+\dump
+\endinput
diff --git a/Master/texmf-dist/tex/plain/config/language.def b/Master/texmf-dist/tex/plain/config/language.def
new file mode 100644
index 00000000000..e1552e44690
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/language.def
@@ -0,0 +1,29 @@
+%% e-TeX V2.0;2
+
+% Note: the first line of this file must match the corresponding line
+% in "etex.src" and "etexdefs.lib", otherwise fallback will be used.
+
+% This is "language.def", e-TeX's language definition file.
+
+% It is explicitly permitted to augment this file by adding additional
+% \addlanguage ... commands AFTER the first (\addlanguage {USenglish})
+% which must remain as the first language added to ensure total document
+% portability for pre-\language documents. The last line of the file
+% MUST be left as \uselanguage {USenglish} for the sane reason.
+
+\addlanguage {USenglish}{hyphen}{}{2}{3} %%% This MUST be the first non-comment
+ %%% line of the file
+
+% Additional languages, patterns, exceptions and left- and right-hyphen
+% minima may be added here, and an example is given for German.
+
+% The five parameters for \addlanguage are:
+% language, patterns file, exceptions file, left- and right-hyphen minima
+
+%%% Next section is E X A M P L E O N L Y
+%%% \addlanguage {German}{ghyph31}{}{2}{2} %%% further such lines may be used;
+%%% Previous section is E X A M P L E O N L Y
+
+%%% No changes may be made beyond this point.
+
+\uselanguage {USenglish} %%% This MUST be the last line of the file.
diff --git a/Master/texmf-dist/tex/plain/config/omega.ini b/Master/texmf-dist/tex/plain/config/omega.ini
new file mode 100644
index 00000000000..949e5bd0540
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/omega.ini
@@ -0,0 +1,2 @@
+\input plain
+\dump
diff --git a/Master/texmf-dist/tex/plain/config/pdfetex.ini b/Master/texmf-dist/tex/plain/config/pdfetex.ini
new file mode 100644
index 00000000000..e5b7c74d585
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/pdfetex.ini
@@ -0,0 +1,5 @@
+% Thomas Esser, 1998. public domain.
+\input pdftexconfig.tex
+\input etex.src
+\dump
+\endinput
diff --git a/Master/texmf-dist/tex/plain/config/pdftex.ini b/Master/texmf-dist/tex/plain/config/pdftex.ini
new file mode 100644
index 00000000000..12af71c38a5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/pdftex.ini
@@ -0,0 +1,6 @@
+% Thomas Esser, 1998. public domain.
+% hyphenation tables are now set up in language.dat
+\input pdftexconfig.tex
+\input plain
+\dump
+\endinput
diff --git a/Master/texmf-dist/tex/plain/config/tex.ini b/Master/texmf-dist/tex/plain/config/tex.ini
new file mode 100644
index 00000000000..18cd78cb56d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/config/tex.ini
@@ -0,0 +1,4 @@
+% Thomas Esser, 1998. public domain.
+\input plain
+\dump
+\endinput
diff --git a/Master/texmf-dist/tex/plain/croatian/glhyphen.tex b/Master/texmf-dist/tex/plain/croatian/glhyphen.tex
new file mode 100644
index 00000000000..de86bf12226
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/glhyphen.tex
@@ -0,0 +1,279 @@
+%GLHYPHEN.TEX, %14.10.92
+
+%tablica rastavljanja %verzija 1.00
+
+\patterns{
+a1a
+a1e
+a1i
+a1o
+a2s
+4ast.
+a1u
+1bdi
+1bdj
+1bj
+1bna.
+1bne.
+1bni.
+1bno.
+1bnu.
+1ba
+1bar
+1be
+.1be4s3
+1bi
+1b2l
+1bl4j
+1bo
+1b2r
+1bu
+1ca
+1ce
+1ci
+1c2j
+1cma
+1cmo
+1co
+1c2r
+1cv
+1cu
+1d2a
+1d2e
+1d2i
+1d2j4e
+1d2o
+1d2u
+1d2r
+1dl
+1dna.
+1dne.
+1dni.
+1dno.
+1dnu.
+1dne
+1dno
+1dv
+d2j
+e1a
+e1e
+e1i
+e1o
+e1u
+1fa
+1fe
+1fi
+1f4l
+1fo
+1f4r
+1fu
+1fj
+1gma
+1gmi
+1gn
+1gv
+1ga
+1ge
+1gi
+1g4l
+1go
+1gu
+1g2r
+1ha
+1he
+1hi
+1ho
+1hu
+1hla
+1hle
+1h2r
+1h2v
+1hj
+1hl
+1hna.
+1hne.
+1hni.
+1hno.
+1hnu.
+i1a
+i1e
+i1i
+i3o
+i1u
+1j2a
+1j4e
+1j4em
+1j4i
+1j4o
+1j4u
+1ka
+1ka.
+k1c
+1ke
+1ke.
+1ki
+3k2l
+1ko
+1k4r
+1ku
+1ku.
+1k2v
+k1t2n
+1la
+1le
+1li
+1lo
+1lu
+l8j
+1lja
+1lje
+1lji
+1ljo
+1lju
+1ma
+1ma.
+1me
+1mi
+1m2je
+1mo
+1mu
+1mr
+1mj
+1ml
+1na
+1na.
+5nad
+1naj5
+1ne
+1ne.
+1ni
+1ni.
+n1k2t
+n1k2c
+n1t2n
+1no
+1no.
+1nu
+1nu.
+n8j
+1nja
+1nje
+1nji
+1njo
+1nju
+o1a
+o1e
+o1i
+o1o
+o1u
+o2s
+o4st.
+1pa
+1pe
+1pi
+1p2l
+1po
+pod1
+po3s
+pot1
+pre1
+pre2d1
+pre2t1
+pri1
+1p2r
+1p2t
+1pj
+1pne
+1pu
+1ra
+r1d2
+1re
+re3do
+re3ta
+1ri
+1ro
+1ru
+3sa
+3se
+3si
+3s2k
+3s2l
+3s2n
+3s2r
+3s2t
+3sto
+1s2t2v
+3so
+s4t.
+3su
+3sv2j
+1sj
+1sm
+1sv
+1sf
+1sp
+1t2j
+1tl
+1tka.
+1tke.
+1tki.
+1tko.
+1tku.
+1ta
+1te
+1ti
+t2en
+1t2lo
+1to
+1t2r
+1tu
+1t2v
+u1a
+u1e
+u1i
+u1o
+u1u
+1va
+1ve
+1vi
+1v2je
+1v2l
+1vla3
+1v2lj
+1vo
+1v2r
+1vu
+1vj
+1zdj
+1zdr
+1zj
+1zl
+1zv
+1zr
+1zg
+1zm
+1za
+1z2b
+1ze
+1zi
+1z2n
+1zo
+1zu
+s8s
+z8z
+c8c
+c8h
+d8d
+c8x
+c8y
+d8y
+s8x
+z8x
+y8a
+y8e
+y8u }
+
+\hyphenation{ ras-tav-lja-nje }
+
+
+
diff --git a/Master/texmf-dist/tex/plain/croatian/llig.tex b/Master/texmf-dist/tex/plain/croatian/llig.tex
new file mode 100644
index 00000000000..3f637673b46
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/llig.tex
@@ -0,0 +1,126 @@
+
+\def\ja{{\gg \char'000}}
+\def\je{{\gg \char'000}}
+\def\ju{{\gg \char'001}}
+\def\ml{{\gg \char'002}}
+\def\ili{{\gg \char'003}}
+\def\tv{{\gg \char'004}}
+\def\pr{{\gg \char'005}}
+\def\ti{{\gg \char'006}}
+\def\itt{{\gg \char'007}}
+\def\bo{{\gg \char'010}}
+\def\br{{\gg \char'011}}
+\def\lju{{\gg \char'012}}
+\def\li{{\gg \char'013}}
+\def\il{{\gg \char'014}}
+\def\tr{{\gg \char'015}}
+\def\tto{{\gg \char'016}}
+\def\jur{{\gg \char'017}}
+\def\ol{{\gg \char'020}}
+\def\lo{{\gg \char'021}}
+\def\vo{{\gg \char'022}}
+\def\po{{\gg \char'023}}
+\def\oli{{\gg \char'024}}
+\def\olju{{\gg \char'025}}
+\def\ljud{{\gg \char'026}\hskip2pt\relax}
+\def\bll{{\gg \char'027}}
+\def\mo{{\gg \char'030}}
+\def\vr{{\gg \char'031}}
+\def\tvo{{\gg \char'032}}
+\def\no{{\gg \char'033}}
+\def\pov{{\gg \char'034}}
+\def\poto{{\gg \char'035}}
+\def\povr{{\gg \char'036}}
+\def\potr{{\gg \char'037}}
+\def\pt{{\gg \char'040}}
+\def\pot{{\gg \char'041}}
+\def\jutr{{\gg \char'042}}
+\def\vd{{\gg \char'043}}
+\def\vod{{\gg \char'044}}
+\def\tvr{{\gg \char'045}}
+\def\thita{{\gg \char'046}}
+\def\izica{{\gg \char'047}}
+\def\zl{{\gg \char'050}}
+\def\zo{{\gg \char'051}}
+\def\zr{{\gg \char'052}}
+\def\pv{{\gg \char'053}}
+\def\pov{{\gg \char'054}}
+\def\prv{{\gg \char'055}}
+\def\pl{{\gg \char'056}}
+\def\pod{{\gg \char'057}}
+\def\mlc{{\gg \char'060}}
+\def\lv{{\gg \char'061}}
+\def\vl{{\gg \char'062}}
+\def\lt{{\gg \char'063}}
+\def\tl{{\gg \char'064}}
+\def\vt{{\gg \char'065}}
+\def\mc{{\gg \char'066}}
+\def\so{{\gg \char'067}}
+\def\am{{\gg \char'070}}
+\def\ko{{\gg \char'071}}
+\def\ot{{\gg \char'072}}
+\def\ms{{\gg \char'073}}
+\def\mm{{\gg \char'074}}
+\def\jeje{{\gg \char'075}}
+\def\izze{{\gg \char'076}}
+\def\jezze{{\gg \char'077}}
+\def\krizz{{\gg \char'100}}
+\def\jazze{{\gg \char'101}}
+\def\komentar{{\gg \char'102}}
+\def\go{{\gg \char'103}}
+\def\gr{{\gg \char'104}}
+\def\hr{{\gg \char'105}}
+\def\ho{{\gg \char'106}}
+
+\def\vjeje{{\ggvv \char'075}}
+\def\vizze{{\ggvv \char'076}}
+\def\vjezze{{\ggvv \char'077}}
+\def\vkrizz{{\ggvv \char'100}}
+\def\vjazze{{\ggvv \char'101}}
+\def\vkomentar{{\ggvv \char'102}}
+\def\vgo{{\ggvv \char'103}}
+\def\vgr{{\ggvv \char'104}}
+\def\vhr{{\ggvv \char'105}}
+\def\vho{{\ggvv \char'106}}
+\def\myl{{\gg \char'107}}
+\def\ly{{\gg \char'110}}
+
+
+%\let\je=\ja
+
+
+\def\til#1{$\widetilde{\text{#1}}$}
+
+
+%\font\ugvv=ugvv
+\font\ugve=ugve
+\font\bb=ugv
+\font\zz=ggv
+\font\be=ugl
+\font\zzz=gg
+\font\mbl=ugl10
+\font\zzzz=gg10
+
+\font\mobl=obl10 %obla gl.
+\font\obl=obl \let\nobl=\obl
+\font\mkal=cal10 % kaligrafska gl. slova
+\font\kal=cal
+
+\font\ggvv=ggv1 % kraj i.mf, koji se ne mozze uccitati
+
+\font\pleter=pleter
+\font\plet=plet
+\font\ple=ple
+\font\kur=kur % kurzivna gl.
+\font\hc=hcyr % hrv. chirilica
+\font\mhc=hcyr10 % hrv. chirilica
+
+\font\lom=lom % baromicheve
+\font\bass=bass10
+\font\bassv=bass
+
+\def\vvgl{\ugvv\baselineskip=.7truecm}
+\def\vgl{\let\gg=\zz\bb\baselineskip=.7truecm}
+\def\ngl{\let\gg=\zzz\be\baselineskip=.6cm}
+\def\mgl{\let\gg=\zzzz\mbl\baselineskip=.5cm}
+
diff --git a/Master/texmf-dist/tex/plain/croatian/ste.tex b/Master/texmf-dist/tex/plain/croatian/ste.tex
new file mode 100644
index 00000000000..365c0049c08
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/ste.tex
@@ -0,0 +1,14 @@
+
+% Croatian fonts
+% ste\'cak border ornaments
+
+\def\trokut{\centerline{$\text{\stechak JJJJJJJJJJJJJ}$}} % trokut
+\def\Oo{\centerline{$\text{\stechak IIIIIIIIIIIIIIIII}$}} % Oo
+\def\dvije8{\centerline{$\text{\stechak HHHHHHHHHHH}$}} % 8
+\def\kukagd{\centerline{$\text{\stechak GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG}$}} % kukice gd.
+\def\kukag{\centerline{$\text{\stechak FFFFFFFFFFFFFFFFFFFFFF}$}} % kukice g.
+\def\kukad{\centerline{$\text{\stechak EEEEEEEEEEEEEEEEEE}$}} %kukice d.
+\def\cvijet{\centerline{$\text{\stechak NNNNNNNNNNN}$}} %cvjetichi
+\def\ZZZ{\centerline{$\text{\stechak MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM}$}} %ZZZ
+
+
diff --git a/Master/texmf-dist/tex/plain/croatian/ttabl.tex b/Master/texmf-dist/tex/plain/croatian/ttabl.tex
new file mode 100644
index 00000000000..c240ff39674
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/ttabl.tex
@@ -0,0 +1,56 @@
+%\hsize=10cm
+
+%\font\blj=blj
+%\def\tvr{{\cyr\t}\relax}
+
+{
+\baselineskip=0.5cm\rm
+
+\setbox1=\vbox{\halign{\ngl\hfil#\hfil&\quad#\hfil&\quad\hfil#\quad\cr
+A& A& 1\cr
+B& B& 2\cr
+V& V& 3\cr
+G& G& 4\cr
+D& D& 5\cr
+E& E& 6\cr
+Zz& \v Z& 7\cr
+9& Dz& 8\cr
+Z& Z& 9\cr
+Y& \"I& 10\cr
+I& I& 20\cr
+Dd, J& Dj& 30\cr
+K& K& 40\cr
+L& L& 50\cr
+M& M& 60\cr
+N& N& 70\cr
+}}
+
+
+
+\setbox2=\vbox{\halign{\ngl\hfil#\hfil&\quad#\hfil&\quad\hfil#\quad\cr
+O& O& 80\cr
+P& P& 90\cr
+R& R& 100\cr
+S& S& 200\cr
+T& T& 300\cr
+U& U& 400\cr
+F& F& 500\cr
+H& H& 600\cr
+Q & $\omega$& 700\cr
+Ch& \v S\'c, \' C& 800\cr
+C& C& 900\cr
+Cc, Cx& \v C& 1000\cr
+Ss& \v S& 2000\cr
+\^{}& semivowel& \cr
+YA& Ja, Je& \cr
+YU& Ju&\cr}}
+
+
+
+\setbox22=\vbox to \ht1{\vskip3.33pt\copy2\vss}
+%\setbox33=\vbox to \ht1{\vskip3.33pt\copy3\vss}
+
+$$
+\hbox to \hsize{\copy1\hfil\copy22}
+$$
+}
diff --git a/Master/texmf-dist/tex/plain/croatian/ttablb.tex b/Master/texmf-dist/tex/plain/croatian/ttablb.tex
new file mode 100644
index 00000000000..87e5c0c8c3a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/ttablb.tex
@@ -0,0 +1,55 @@
+
+{
+\baselineskip=0.5cm\rm
+
+\setbox1=\vbox{\halign{\bassv\hfil#\hfil&\quad#\hfil&\quad\hfil#\q\cr
+a, x& A&1\cr
+b& B& 2\cr
+v, V& V& 3\cr
+g& G& 4\cr
+d& D& 5\cr
+e& E& 6\cr
+zz& \v Z& 7\cr
+%9& {\cyr Z} (zjelo)& 8\cr
+z& Z& 9\cr
+y& \"I& 10\cr
+i, I& I& 20\cr
+%& Dd, J& 30\cr
+k& K& 40\cr
+l& L& 50\cr
+m, M& M& 60\cr
+n, N& N& 70\cr
+}}
+
+
+
+\setbox2=\vbox{\halign{\bassv\hfil#\hfil&\quad#\hfil&\quad\hfil#\q\cr
+o, O& O& 80\cr
+p& P& 90\cr
+r& R& 100\cr
+s& S& 200\cr
+t, T& T& 300\cr
+u& U& 400\cr
+%F& F& 500\cr
+h& H& 600\cr
+%Q & $\omega$& 700\cr
+ch& \hbox to0pt{\v S\'c, \' C\hss}& 800\cr
+c& C& 900\cr
+cc, CC& \v C& 1000\cr
+ss& \v S& 2000\cr
+3, 4& \hbox to 0cm{semivowels\hss}& \cr
+ya& Ja, Je& \cr
+yu& Ju&\cr
+\char'002& \hbox to0cm{nasal ``en''\hss}&\cr
+}}
+
+
+
+\setbox22=\vbox to \ht1{\vskip3.33pt\copy2\vss}
+%\setbox33=\vbox to \ht1{\vskip3.33pt\copy3\vss}
+
+$$
+\hbox to \hsize{\copy1\hfil\copy22}
+$$
+}
+
diff --git a/Master/texmf-dist/tex/plain/croatian/ttablhc.tex b/Master/texmf-dist/tex/plain/croatian/ttablhc.tex
new file mode 100644
index 00000000000..9fc4a1905a2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/ttablhc.tex
@@ -0,0 +1,59 @@
+%\hsize=10cm
+\font\hc=hcyr
+%\def\cc{\hc\char'034}
+
+{
+\baselineskip=0.5cm\rm
+
+\setbox1=\vbox{\halign{\hc\hfil#\hfil&\quad\hfil#\hfil\quad\cr
+A& A \cr
+B& B \cr
+V& V \cr
+G& G \cr
+D, \char'076, 5& D \cr
+%DDD& Dd \cr % \cc -> DD
+E& E \cr
+ZZ, ZX, \char'017& Zz \cr
+9& DZ \cr
+Z& Z \cr
+I& I \cr
+DD, 2& Dj \cr
+K& K \cr
+L& L \cr
+DDL& LJ \cr
+M& M \cr
+N& N \cr
+DDN& NJ \cr
+}}
+
+
+
+\setbox2=\vbox{\halign{\hc\hfil#\hfil&\quad\hfil#\hfil\quad\cr
+O& O \cr
+P& P \cr
+R& R \cr
+S& S \cr
+T& T \cr
+U& U \cr
+F& F \cr
+H& H \cr
+Q & OT \cr
+CH& {\v S\'c, \v C} \cr
+C& C \cr
+CC& \v C \cr
+SS& \v S \cr
+\^{}& {semivowel} \cr
+J, \&{}& ja \cr
+%YA& JA \cr
+%YE& JE \cr
+YU& ju\cr}}
+
+
+
+\setbox22=\vbox to \ht1{\vskip3.33pt\copy2\vss}
+%\setbox33=\vbox to \ht1{\vskip3.33pt\copy3\vss}
+
+$$
+\hbox to \hsize{\copy1\hss\copy22}
+$$
+}
diff --git a/Master/texmf-dist/tex/plain/croatian/ttablo.tex b/Master/texmf-dist/tex/plain/croatian/ttablo.tex
new file mode 100644
index 00000000000..ba50abbd35d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/ttablo.tex
@@ -0,0 +1,56 @@
+%\hsize=10cm
+
+%\font\blj=blj
+%\def\tvr{{\cyr\t}\relax}
+
+{
+\baselineskip=0.5cm\rm
+
+\setbox1=\vbox{\halign{\nobl\hfil#\hfil&\quad#\hfil&\quad\hfil#\q\cr
+A& A&1\cr
+B& B& 2\cr
+V& V& 3\cr
+G& G& 4\cr
+D& D& 5\cr
+E& E& 6\cr
+Zz& \v Z& 7\cr
+9& Dz& 8\cr
+Z& Z& 9\cr
+Y& \"I& 10\cr
+I& I& 20\cr
+J& Dj& 30\cr
+K& K& 40\cr
+L& L& 50\cr
+M& M& 60\cr
+N& N& 70\cr
+}}
+
+
+
+\setbox2=\vbox{\halign{\nobl\hfil#\hfil&\quad#\hfil&\quad\hfil#\q\cr
+O& O& 80\cr
+P& P& 90\cr
+R& R& 100\cr
+S& S& 200\cr
+T& T& 300\cr
+U& U& 400\cr
+F& F& 500\cr
+H& H& 600\cr
+Q & $\omega$& 700\cr
+Ch& \v S\'c, \' C& 800\cr
+C& C& 900\cr
+Cc& \v C& 1000\cr
+Ss& \v S& 2000\cr
+4, 7& \hbox to 1cm{semivowels\hss}& \cr
+W& Ja, Je& \cr
+2& Ju&\cr}}
+
+
+
+\setbox22=\vbox to \ht1{\vskip3.33pt\copy2\vss}
+%\setbox33=\vbox to \ht1{\vskip3.33pt\copy3\vss}
+
+$$
+\hbox to \hsize{\copy1\hfil\copy22}
+$$
+}
diff --git a/Master/texmf-dist/tex/plain/croatian/ttabloku.tex b/Master/texmf-dist/tex/plain/croatian/ttabloku.tex
new file mode 100644
index 00000000000..3b508ba60a6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/ttabloku.tex
@@ -0,0 +1,57 @@
+%\hsize=10cm
+
+%\font\blj=blj
+\font\kur=kur
+%\def\tvr{{\cyr\t}\relax}
+
+{
+\baselineskip=0.7cm\rm
+
+\setbox1=\vbox{\halign{\kur\hfil#\hfil&\q\mgl\hfil#\hfil&\quad#\hfil&\quad\hfil#\q\cr
+A& A& A&1\cr
+B& B& B& 2\cr
+V& V& V& 3\cr
+G& G& G& 4\cr
+D& D& D& 5\cr
+E& E& E& 6\cr
+Zz& ZZ& \v Z& 7\cr
+9& 9& Dz& 8\cr
+Z& Z& Z& 9\cr
+Y& Y& \"I& 10\cr
+I& I& I& 20\cr
+J& J& J& 30\cr
+K& K& K& 40\cr
+L& L& L& 50\cr
+M& M& M& 60\cr
+N& N& N& 70\cr
+}}
+
+
+
+\setbox2=\vbox{\halign{\kur\hfil#\hfil&\q\mgl\hfil#\hfil&\quad#\hfil&\quad\hfil#\q\cr
+O& O& O& 80\cr
+P& P& P& 90\cr
+R& R& R& 100\cr
+S& S& S& 200\cr
+T& T& T& 300\cr
+U& U& U& 400\cr
+F& F& F& 500\cr
+H& H& H& 600\cr
+Q& Q& $\omega$& 700\cr
+Ch& Ch& \v S\'c, \' C& 800\cr
+C& C& C& 900\cr
+Cc& Cc& \v C& 1000\cr
+Ss& Ss& \v S& 2000\cr
+%6& {\blj\^{}}& poluglas (jer)& \cr
+\char'136& Ya& Ja, Je& \cr
+\char'137& Yu& Ju&\cr}}
+
+
+
+\setbox22=\vbox to \ht1{\vskip3.33pt\copy2\vss}
+%\setbox33=\vbox to \ht1{\vskip3.33pt\copy3\vss}
+
+$$
+\hbox to \hsize{\copy1\hfil\copy22}
+$$
+}
diff --git a/Master/texmf-dist/tex/plain/croatian/ttlis.tex b/Master/texmf-dist/tex/plain/croatian/ttlis.tex
new file mode 100644
index 00000000000..4633d3ce1af
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/croatian/ttlis.tex
@@ -0,0 +1,99 @@
+
+%\input llig
+{
+\baselineskip=.7cm
+%\font\gg=ggv
+
+
+%\obeylines
+
+\setbox1=\vbox{\halign{\hfil\vgl #\hfil&\quad\hfil#\hfil\cr
+\am& am\cr
+\bll& bl\cr
+\bo& bo\cr
+\br& br\cr
+\go& go\cr
+\gr& gr\cr
+\ho& ho\cr
+\hr& hr\cr
+\il& il\cr
+\ili& ili\cr
+\itt& it\cr
+\izze& i\v ze\cr
+\jazze& ja\v ze\cr
+%\ggvv\char'101& jazze\cr
+\jeje& jeje\cr
+%\ggvv\char'075& jeje\cr
+\jezze& je\v ze\cr
+}}
+
+\setbox2=\vbox{\halign{\hfil\vgl #\hfil&\quad\hfil#\hfil\cr
+\jur& jur\cr
+\jutr& jutr\cr
+\ko& ko\cr
+\li& li\cr
+\lo& lo\cr
+\lt& lt\cr
+\lv& lv\cr
+\ly& ly\cr
+\lju& lju\cr
+\ljud& ljud\cr
+\ml& ml\cr
+\mlc& ml\v c\cr
+\mo& mo\cr
+\ms& ms\cr
+\mc& m\v z\cr
+\myl& myl\cr
+}}
+
+
+\setbox3=\vbox{\halign{\hfil\vgl #\hfil&\quad\hfil#\hfil\cr
+\no& no\cr
+\ol& ol\cr
+\oli& oli\cr
+\olju& olju\cr
+\ot& ot\cr
+\pl& pl\cr
+\po& po\cr
+\pod& pod\cr
+\pot& pot\cr
+\poto& poto\cr
+\potr& potr\cr
+\povr& povr\cr
+\pr& pr\cr
+\prv& prv\cr
+\pt& pt\cr
+\so& so\cr
+}}
+
+
+\setbox4=\vbox{\halign{\hfil\vgl #\hfil&\quad\hfil#\hfil\cr
+\ti& ti\cr
+\tl& tl\cr
+\tto& to\cr
+\tr& tr\cr
+%
+\tv& tv\cr
+\tvo& tvo\cr
+\tvr& tvr\cr
+\vd& vd\cr
+\vl& vl\cr
+\vo& vo\cr
+\vod& vod\cr
+\vr& vr\cr
+\vt& vt\cr
+\zl& zl\cr
+\zo& zo\cr
+\zr& zr\cr
+}}
+
+%\setbox5=\vbox{\halign{\hfil\vgl #\hfil&\quad\hfil#\hfil\cr
+%}}
+
+$$
+\hbox
+to\hsize{\copy1\hfil\copy2\hfil\copy3\hfil\copy4}
+$$
+
+}
+
diff --git a/Master/texmf-dist/tex/plain/cweb/pdfXcwebmac.tex b/Master/texmf-dist/tex/plain/cweb/pdfXcwebmac.tex
new file mode 100644
index 00000000000..6906f7ff0c0
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cweb/pdfXcwebmac.tex
@@ -0,0 +1,37 @@
+% standard macros for CWEB listings (in addition to plain.tex)
+% Version 2.4 --- Don Knuth, June 1992
+% Version 2.4 [p5] --- Hans-Hermann Bode, July 1992
+% Version 2.7 --- Don Knuth, July 1992
+% Version 2.7 [p6] --- Hans-Hermann Bode, September 1992
+% Version 2.8 --- Don Knuth, September 1992
+% Version 2.8 [p7] --- Andreas Scherer, October 1993
+% Version 3.0 --- Don Knuth, June 1993
+% Version 3.0 [p8c] --- Hans-Hermann Bode, June 1993
+% Version 3.0 [p8d] --- Andreas Scherer, October 1993
+% Version 3.0 [p8e] --- Andreas Scherer, November 1993
+% Version 3.1 [p9b] --- Andreas Scherer, January 1994
+% Version 3.1 [p9c] --- Andreas Scherer, June 1994
+% Version 3.2 [p10] --- Andreas Scherer, September 1994
+% Version 3.3 [p11] --- Andreas Scherer, December 1994
+% Version 3.3 [p11a] --- Andreas Scherer, January 1995
+% Version 3.3 [p11b] --- Andreas Scherer, March 1995
+% Version 3.4 [p13] --- Andreas Scherer, May 1996
+% Version 3.4 [p14] --- Andreas Scherer, March 1997
+
+\ifx\undefined\documentclass\else\endinput\fi % LaTeX will use other macros
+
+\input pdfcwebmac.tex
+
+\xdef\fmtversion{\fmtversion+CWEB3.4[p14]}
+
+\def\Cpp{\CPLUSPLUS/} % for backward compatibility
+
+\font\tenss=cmss10 \let\cmntfont\tenss % comment font
+
+\def\C#1{\5\5\quad$\triangleright\,${\cmntfont#1}$\,\triangleleft$}
+\def\SHC#1{\5\5\quad$\diamond\,${\cmntfont#1}}
+
+\let\K=\leftarrow % "honest" alternative to standard assignment operator
+
+\def\afourshift{\pageshift=-0.5truecm}
+ % shift righthand pages wrt lefthand pages
diff --git a/Master/texmf-dist/tex/plain/cweb/pdfcwebmac.tex b/Master/texmf-dist/tex/plain/cweb/pdfcwebmac.tex
new file mode 100644
index 00000000000..aa52dae79a4
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cweb/pdfcwebmac.tex
@@ -0,0 +1,406 @@
+% standard macros for CWEB listings (in addition to plain.tex)
+% Version 3.1 --- September 1994
+% Modified for use with "pdftex" by Andreas Scherer, April 1997
+\ifx\documentstyle\undefined\else\endinput\fi % LaTeX will use other macros
+\xdef\fmtversion{\fmtversion+HyperCWEB3.1}
+
+\let\:=\. % preserve a way to get the dot accent
+ % (all other accents will still work as usual)
+
+\parskip 0pt % no stretch between paragraphs
+\parindent 1em % for paragraphs and for the first line of C text
+
+\font\ninerm=cmr9
+\let\mc=\ninerm % medium caps
+\def\CEE/{{\mc C\spacefactor1000}}
+\def\UNIX/{{\mc U\kern-.05emNIX\spacefactor1000}}
+\def\TEX/{\TeX}
+\def\CPLUSPLUS/{{\mc C\PP\spacefactor1000}}
+\def\Cee{\CEE/} % for backward compatibility
+\def\9#1{}
+\font\eightrm=cmr8
+\let\sc=\eightrm % small caps (NOT a caps-and-small-caps font)
+\let\mainfont=\tenrm
+\let\cmntfont\tenrm
+%\font\tenss=cmss10 \let\cmntfont\tenss % alternative comment font
+\font\titlefont=cmr7 scaled\magstep4 % title on the contents page
+\font\ttitlefont=cmtt10 scaled\magstep2 % typewriter type in title
+\font\tentex=cmtex10 % TeX extended character set (used in strings)
+\fontdimen7\tentex=0pt % no double space after sentences
+
+\def\\#1{\leavevmode\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\|#1{\leavevmode\hbox{$#1$}} % one-letter identifiers look better this way
+\def\&#1{\leavevmode\hbox{\bf
+ \def\_{\kern.04em\vbox{\hrule width.3em height .6pt}\kern.08em}%
+ #1\/\kern.05em}} % boldface type for reserved words
+\def\.#1{\leavevmode\hbox{\tentex % typewriter type for strings
+ \let\\=\BS % backslash in a string
+ \let\{=\LB % left brace in a string
+ \let\}=\RB % right brace in a string
+ \let\~=\TL % tilde in a string
+ \let\ =\SP % space in a string
+ \let\_=\UL % underline in a string
+ \let\&=\AM % ampersand in a string
+ \let\^=\CF % circumflex in a string
+ #1\kern.05em}}
+\def\){\discretionary{\hbox{\tentex\BS}}{}{}}
+\def\AT{@} % at sign for control text (not needed in versions >= 2.9)
+\def\ATL{\par\noindent\bgroup\catcode`\_=12 \postATL} % print @l in limbo
+\def\postATL#1 #2 {\bf letter \\{\uppercase{\char"#1}}
+ tangles as \tentex "#2"\egroup\par}
+\def\noATL#1 #2 {}
+\def\noatl{\let\ATL=\noATL} % suppress output from @l
+\def\ATH{\X\kern-.5em:Preprocessor definitions\X}
+\let\PB=\relax % hook for program brackets |...| in TeX part or section name
+
+\chardef\AM=`\& % ampersand character in a string
+\chardef\BS=`\\ % backslash in a string
+\chardef\LB=`\{ % left brace in a string
+\chardef\RB=`\} % right brace in a string
+\def\SP{{\tt\char`\ }} % (visible) space in a string
+\chardef\TL=`\~ % tilde in a string
+\chardef\UL=`\_ % underline character in a string
+\chardef\CF=`\^ % circumflex character in a string
+
+\newbox\PPbox % symbol for ++
+\setbox\PPbox=\hbox{\kern.5pt\raise1pt\hbox{\sevenrm+\kern-1pt+}\kern.5pt}
+\def\PP{\copy\PPbox}
+\newbox\MMbox \setbox\MMbox=\hbox{\kern.5pt\raise1pt\hbox{\sevensy\char0
+ \kern-1pt\char0}\kern.5pt}
+\def\MM{\copy\MMbox}
+\newbox\MGbox % symbol for ->
+\setbox\MGbox=\hbox{\kern-2pt\lower3pt\hbox{\teni\char'176}\kern1pt}
+\def\MG{\copy\MGbox}
+\def\MRL#1{\mathrel{\let\K==#1}}
+%\def\MRL#1{\KK#1}\def\KK#1#2{\buildrel\;#1\over{#2}}
+\let\GG=\gg
+\let\LL=\ll
+\let\NULL=\Lambda
+\mathchardef\AND="2026 % bitwise and; also \& (unary operator)
+\let\OR=\mid % bitwise or
+\let\XOR=\oplus % bitwise exclusive or
+\def\CM{{\sim}} % bitwise complement
+\newbox\MODbox \setbox\MODbox=\hbox{\eightrm\%}
+\def\MOD{\mathbin{\copy\MODbox}}
+\def\DC{\kern.1em{::}\kern.1em} % symbol for ::
+\def\PA{\mathbin{.*}} % symbol for .*
+\def\MGA{\mathbin{\MG*}} % symbol for ->*
+\def\this{\&{this}}
+
+\newbox\bak \setbox\bak=\hbox to -1em{} % backspace one em
+\newbox\bakk\setbox\bakk=\hbox to -2em{} % backspace two ems
+
+\newcount\ind % current indentation in ems
+\def\1{\global\advance\ind by1\hangindent\ind em} % indent one more notch
+\def\2{\global\advance\ind by-1} % indent one less notch
+\def\3#1{\hfil\penalty#10\hfilneg} % optional break within a statement
+\def\4{\copy\bak} % backspace one notch
+\def\5{\hfil\penalty-1\hfilneg\kern2.5em\copy\bakk\ignorespaces}% optional break
+\def\6{\ifmmode\else\par % forced break
+ \hangindent\ind em\noindent\kern\ind em\copy\bakk\ignorespaces\fi}
+\def\7{\Y\6} % forced break and a little extra space
+\def\8{\hskip-\ind em\hskip 2em} % no indentation
+
+\newcount\gdepth % depth of current major group, plus one
+\newcount\secpagedepth
+\secpagedepth=3 % page breaks will occur for depths -1, 0, and 1
+\newtoks\gtitle % title of current major group
+\newskip\intersecskip \intersecskip=12pt minus 3pt % space between sections
+\let\yskip=\smallskip
+\def\?{\mathrel?}
+
+% Some changes for pdftex
+%\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1~#2.\par}}
+\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1~\pdfnote#2..\par}}
+\pdfoutput=1
+\pdfcompresslevel=9
+\input pdfcolor
+
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newcount\countA
+\countA=0
+\def\pdfnote#1.{\setbox0=\hbox{\toksA={#1.}\toksB={}\maketoks}\the\toksA}
+\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+\def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+\def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+\def\maketoks{%
+ \expandafter\poptoks\the\toksA|ENDTOKS|
+ \ifx\first0\adn0
+ \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+ \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else
+ \ifnum0=\countA\else\makenote\fi
+ \ifx\first.\let\next=\done\else
+ \let\next=\maketoks
+ \addtokens{\toksB}{\the\toksD}
+ \ifx\first,\addtokens{\toksB}{\space}\fi
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next
+}
+\def\n#1{\pdfannotlink attr{/Border [0 0 0]} goto num #1
+ \BlueGreen #1\Black\pdfendlink}
+\def\makenote{\addtokens{\toksB}%
+ {\noexpand\n{\the\toksC}}\toksC={}\global\countA=0}
+\def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+% End of pdftex changes
+
+\def\lapstar{\rlap{*}}
+
+% Some changes for pdftex
+%\def\stsec{\rightskip=0pt % get out of C mode (cf. \B)
+% \sfcode`;=1500 \pretolerance 200 \hyphenpenalty 50 \exhyphenpenalty 50
+% \noindent{\let\*=\lapstar\bf\secstar.\quad}}
+\def\stsec{\rightskip=0pt % get out of C mode (cf. \B)
+ \sfcode`;=1500 \pretolerance 200 \hyphenpenalty 50 \exhyphenpenalty 50
+ \noindent{\let\*=\lapstar\bf\secstar.\quad}%
+ {\let\*=\empty\pdfdest num \secstar fitbh}}
+% End of pdftex changes
+
+\let\startsection=\stsec
+\def\defin#1{\global\advance\ind by 2 \1\&{#1 } } % begin `define' or `format'
+\def\A{\note{See also section}} % xref for doubly defined section name
+\def\As{\note{See also sections}} % xref for multiply defined section name
+\def\B{\rightskip=0pt plus 100pt minus 10pt % go into C mode
+ \sfcode`;=3000
+ \pretolerance 10000
+ \hyphenpenalty 1000 % so strings can be broken (discretionary \ is inserted)
+ \exhyphenpenalty 10000
+ \global\ind=2 \1\ \unskip}
+\def\C#1{\5\5\quad$/\ast\,${\cmntfont #1}$\,\ast/$}
+\let\SHC\C % "// short comments" treated like "/* ordinary comments */"
+%\def\C#1{\5\5\quad$\triangleright\,${\cmntfont#1}$\,\triangleleft$}
+%\def\SHC#1{\5\5\quad$\diamond\,${\cmntfont#1}}
+\def\D{\defin{\#define}} % macro definition
+\let\E=\equiv % equivalence sign
+\def\ET{ and~} % conjunction between two section numbers
+\def\ETs{, and~} % conjunction between the last two of several section numbers
+\def\F{\defin{format}} % format definition
+\let\G=\ge % greater than or equal sign
+% \H is long Hungarian umlaut accent
+\let\I=\ne % unequal sign
+\def\J{\.{@\&}} % TANGLE's join operation
+\let\K== % assignment operator
+%\let\K=\leftarrow % "honest" alternative to standard assignment operator
+% \L is Polish letter suppressed-L
+\outer\def\M#1{\MN{#1}\ifon\vfil\penalty-100\vfilneg % beginning of section
+ \vskip\intersecskip\startsection\ignorespaces}
+\outer\def\N#1#2#3.{\gdepth=#1\gtitle={#3}\MN{#2}% beginning of starred section
+ \ifon\ifnum#1<\secpagedepth \vfil\eject % force page break if depth is small
+ \else\vfil\penalty-100\vfilneg\vskip\intersecskip\fi\fi
+ \message{*\secno} % progress report
+ \edef\next{\write\cont{\ZZ{#3}{#1}{\secno}% write to contents file
+ {\noexpand\the\pageno}}}\next % \ZZ{title}{depth}{sec}{page}
+ \ifon\startsection{\bf#3.\quad}\ignorespaces}
+\def\MN#1{\par % common code for \M, \N
+ {\xdef\secstar{#1}\let\*=\empty\xdef\secno{#1}}% remove \* from section name
+ \ifx\secno\secstar \onmaybe \else\ontrue \fi
+ \mark{{{\tensy x}\secno}{\the\gdepth}{\the\gtitle}}}
+% each \mark is {section reference or null}{depth plus 1}{group title}
+% \O is Scandinavian letter O-with-slash
+% \P is paragraph sign
+\def\Q{\note{This code is cited in section}} % xref for mention of a section
+\def\Qs{\note{This code is cited in sections}} % xref for mentions of a section
+\let\R=\lnot % logical not
+% \S is section sign
+\def\T#1{\leavevmode % octal, hex or decimal constant
+ \hbox{$\def\?{\kern.2em}%
+ \def\$##1{\egroup_{\,\rm##1}\bgroup}% suffix to constant
+ \def\_{\cdot 10^{\aftergroup}}% power of ten (via dirty trick)
+ \let\~=\oct \let\^=\hex {#1}$}}
+\def\U{\note{This code is used in section}} % xref for use of a section
+\def\Us{\note{This code is used in sections}} % xref for uses of a section
+\let\V=\lor % logical or
+\let\W=\land % logical and
+
+% Some changes for pdftex
+%\def\X#1:#2\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % section name
+% \XX$\langle\,${#2\eightrm\kern.5em#1}$\,\rangle$\XX}
+\def\X#1:#2\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % section name
+ \XX$\langle\,${#2\eightrm\kern.5em\pdfnote#1.}$\,\rangle$\XX}
+% End of pdftex changes
+
+\def\Y{\par\yskip}
+\let\Z=\le
+\let\ZZ=\let % now you can \write the control sequence \ZZ
+\let\*=*
+
+%\def\oct{\hbox{\rm\char'23\kern-.2em\it\aftergroup\?\aftergroup}} % WEB style
+%\def\hex{\hbox{\rm\char"7D\tt\aftergroup}} % WEB style
+\def\oct{\hbox{$^\circ$\kern-.1em\it\aftergroup\?\aftergroup}}% CWEB style
+\def\hex{\hbox{$^{\scriptscriptstyle\#}$\tt\aftergroup}} % CWEB style
+\def\vb#1{\leavevmode\hbox{\kern2pt\vrule\vtop{\vbox{\hrule
+ \hbox{\strut\kern2pt\.{#1}\kern2pt}}
+ \hrule}\vrule\kern2pt}} % verbatim string
+
+\def\onmaybe{\let\ifon=\maybe} \let\maybe=\iftrue
+\newif\ifon \newif\iftitle \newif\ifpagesaved
+
+\def\lheader{\mainfont\the\pageno\eightrm\qquad\grouptitle\hfill\title\qquad
+ \mainfont\topsecno} % top line on left-hand pages
+\def\rheader{\mainfont\topsecno\eightrm\qquad\title\hfill\grouptitle
+ \qquad\mainfont\the\pageno} % top line on right-hand pages
+\def\grouptitle{\let\i=I\let\j=J\uppercase\expandafter{\expandafter
+ \takethree\topmark}}
+\def\topsecno{\expandafter\takeone\topmark}
+\def\takeone#1#2#3{#1}
+\def\taketwo#1#2#3{#2}
+\def\takethree#1#2#3{#3}
+\def\nullsec{\eightrm\kern-2em} % the \kern-2em cancels \qquad in headers
+
+\let\page=\pagebody \raggedbottom
+% \def\page{\box255 }\normalbottom % faster, but loses plain TeX footnotes
+\def\normaloutput#1#2#3{\ifodd\pageno\hoffset=\pageshift\fi
+ \shipout\vbox{
+ \vbox to\fullpageheight{
+ \iftitle\global\titlefalse
+ \else\hbox to\pagewidth{\vbox to10pt{}\ifodd\pageno #3\else#2\fi}\fi
+ \vfill#1}} % parameter #1 is the page itself
+ \global\advance\pageno by1}
+
+\gtitle={\.{CWEB} output} % this running head is reset by starred sections
+\mark{\noexpand\nullsec0{\the\gtitle}}
+\def\title{\expandafter\uppercase\expandafter{\jobname}}
+\def\topofcontents{\centerline{\titlefont\title}\vskip.7in
+ \vfill} % this material will start the table of contents page
+\def\botofcontents{\vfill
+ \centerline{\covernote}} % this material will end the table of contents page
+\def\covernote{}
+\def\contentspagenumber{0} % default page number for table of contents
+\newdimen\pagewidth \pagewidth=6.5in % the width of each page
+\newdimen\pageheight \pageheight=8.7in % the height of each page
+\newdimen\fullpageheight \fullpageheight=9in % page height including headlines
+\newdimen\pageshift \pageshift=0in % shift righthand pages wrt lefthand ones
+\def\magnify#1{\mag=#1\pagewidth=6.5truein\pageheight=8.7truein
+ \fullpageheight=9truein\setpage}
+\def\setpage{\hsize\pagewidth\vsize\pageheight} % use after changing page size
+\def\contentsfile{\jobname.toc} % file that gets table of contents info
+\def\readcontents{\input \contentsfile}
+\def\readindex{\input \jobname.idx}
+\def\readsections{\input \jobname.scn}
+
+\newwrite\cont
+\output{\setbox0=\page % the first page is garbage
+ \openout\cont=\contentsfile
+ \write\cont{\catcode `\noexpand\@=11\relax} % \makeatletter
+ \global\output{\normaloutput\page\lheader\rheader}}
+\setpage
+\vbox to \vsize{} % the first \topmark won't be null
+
+\def\ch{\note{The following sections were changed by the change file:}
+ \let\*=\relax}
+\newbox\sbox % saved box preceding the index
+\newbox\lbox % lefthand column in the index
+\def\inx{\par\vskip6pt plus 1fil % we are beginning the index
+ \def\page{\box255 } \normalbottom
+ \write\cont{} % ensure that the contents file isn't empty
+ \write\cont{\catcode `\noexpand\@=12\relax} % \makeatother
+ \closeout\cont % the contents information has been fully gathered
+ \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi
+ \global\setbox\sbox=\page \global\pagesavedtrue}
+ \pagesavedfalse \eject % eject the page-so-far and predecessors
+ \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
+ \vsize=\pageheight \advance\vsize by -\ht\sbox % the remaining height
+ \hsize=.5\pagewidth \advance\hsize by -10pt
+ % column width for the index (20pt between cols)
+ \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
+ \def\lr{L} % this tells whether the left or right column is next
+ \output{\if L\lr\global\setbox\lbox=\page \gdef\lr{R}
+ \else\normaloutput{\vbox to\pageheight{\box\sbox\vss
+ \hbox to\pagewidth{\box\lbox\hfil\page}}}\lheader\rheader
+ \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi}
+ \message{Index:}
+ \parskip 0pt plus .5pt
+%
+% Some changes for pdftex
+% \outer\def\I##1, {\par\hangindent2em\noindent##1:\kern1em} % index entry
+ \outer\def\I##1, {\par\hangindent2em\noindent##1:\kern1em\pdfnote} % index entry
+% End of pdftex changes
+%
+ \def\[##1]{$\underline{##1}$} % underlined index item
+ \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar
+ \hyphenpenalty 10000 \parindent0pt
+ \readindex}
+\def\fin{\par\vfill\eject % this is done when we are ending the index
+ \ifpagesaved\null\vfill\eject\fi % output a null index column
+ \if L\lr\else\null\vfill\eject\fi % finish the current page
+ \parfillskip 0pt plus 1fil
+ \def\grouptitle{NAMES OF THE SECTIONS}
+ \let\topsecno=\nullsec
+ \message{Section names:}
+ \output={\normaloutput\page\lheader\rheader}
+ \setpage
+%
+% Some changes for pdftex
+% \def\note##1##2.{\quad{\eightrm##1~##2.}}
+ \def\note##1##2.{\quad{\eightrm##1~\pdfnote##2..}}
+% End of pdftex changes
+%
+ \def\Q{\note{Cited in section}} % crossref for mention of a section
+ \def\Qs{\note{Cited in sections}} % crossref for mentions of a section
+ \def\U{\note{Used in section}} % crossref for use of a section
+ \def\Us{\note{Used in sections}} % crossref for uses of a section
+ \def\I{\par\hangindent 2em}\let\*=*
+ \readsections}
+\def\con{\par\vfill\eject % finish the section names
+% \ifodd\pageno\else\titletrue\null\vfill\eject\fi % for duplex printers
+ \rightskip 0pt \hyphenpenalty 50 \tolerance 200
+ \setpage \output={\normaloutput\page\lheader\rheader}
+ \titletrue % prepare to output the table of contents
+ \pageno=\contentspagenumber
+ \def\grouptitle{TABLE OF CONTENTS}
+ \message{Table of contents:}
+ \topofcontents
+ \line{\hfil Section\hbox to3em{\hss Page}}
+ \let\ZZ=\contentsline
+ \readcontents\relax % read the contents info
+ \botofcontents \end} % print the contents page(s) and terminate
+%
+% Some changes for pdftex
+%\def\contentsline#1#2#3#4{\ifnum#2=0 \smallbreak\fi
+% \line{\consetup{#2}#1
+% \rm\leaders\hbox to .5em{.\hfil}\hfil\ #3\hbox to3em{\hss#4}}}
+\def\contentsline#1#2#3#4{\ifnum#2=0 \smallbreak\fi
+ \line{\consetup{#2}\pdfoutline goto num #3{#1}
+ \pdfannotlink attr{/Border [0 0 0]} goto num #3
+ \BlueGreen #1 \rm\leaders\hbox to .5em{.\hfil}\hfil\ #3\pdfendlink
+ \Black\hbox to3em{\hss#4}}}
+\pdfcatalog pagemode{/UseOutlines}
+% End of pdftex changes
+%
+\def\consetup#1{\ifcase#1 \bf % depth -1 (@**)
+ \or % depth 0 (@*)
+ \or \hskip2em % depth 1 (@*1)
+ \or \hskip4em % depth 2 (@*2)
+ \or \hskip6em % depth 3 (@*3)
+ \or \hskip8em % depth 4 (@*4)
+ \or \hskip10em % depth 5 (@*5)
+ \else \hskip12em \fi} % depth 6 or more
+\def\noinx{\let\inx=\end} % no indexes or table of contents
+\def\nosecs{\let\FIN=\fin \def\fin{\let\parfillskip=\end \FIN}}
+ % no index of section names or table of contents
+\def\nocon{\let\con=\end} % no table of contents
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+\newcount\twodigits
+\def\hours{\twodigits=\time \divide\twodigits by 60 \printtwodigits
+ \multiply\twodigits by-60 \advance\twodigits by\time :\printtwodigits}
+\def\gobbleone1{}
+\def\printtwodigits{\advance\twodigits100
+ \expandafter\gobbleone\number\twodigits
+ \advance\twodigits-100 }
+\def\TeX{{\ifmmode\it\fi
+ \leavevmode\hbox{T\kern-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}}
+\def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
+\def\datethis{\def\startsection{\leftline{\sc\today\ at \hours}\bigskip
+ \let\startsection=\stsec\stsec}}
+ % say `\datethis' in limbo, to get your listing timestamped before section 1
+\def\datecontentspage{%
+ \def\topofcontents{\leftline{\sc\today\ at \hours}\bigskip
+ \centerline{\titlefont\title}\vfill}} % timestamps the contents page
diff --git a/Master/texmf-dist/tex/plain/cweb/pdfdcwebmac.tex b/Master/texmf-dist/tex/plain/cweb/pdfdcwebmac.tex
new file mode 100644
index 00000000000..52188ce6607
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cweb/pdfdcwebmac.tex
@@ -0,0 +1,113 @@
+% standard macros for CWEB listings (in addition to plain.tex)
+% modified for use with "tex2pdf" --- March 1997
+% Version 2.0 --- Don Knuth, July 1990
+% Version 2.0 [german] --- Carsten Steger, October 1991
+% Version 2.0 [german] --- Andreas Scherer, February 1993
+% Version 2.7 --- Don Knuth, July 1992
+% Version 2.7 [p6c] --- Andreas Scherer, September 1993
+% Version 2.8 --- Don Knuth, September 1992
+% Version 2.8 [german] --- Carsten Steger, 1993
+% Version 2.8 [p7] --- Andreas Scherer, October 1993
+% Version 3.0 --- Don Knuth, June 1993
+% Version 3.0 [p8e] --- Andreas Scherer, November 1993
+% Version 3.1 [p9b] --- Andreas Scherer, January 1994
+% Version 3.1 [p9c] --- Andreas Scherer, March 1994
+% Version 3.1 [p9d] --- Andreas Scherer, July 1994
+% Version 3.2 [p10] --- Andreas Scherer, August 1994
+% Version 3.2 [p10b] --- Andreas Scherer, October 1994
+% Version 3.3 [p11a] --- Andreas Scherer, December 1994
+% Version 3.3 [p11b] --- Andreas Scherer, March 1995
+% Version 3.4 [p13] --- Andreas Scherer, August 1995
+% Version 3.4 [p14] --- Andreas Scherer, March 1997
+
+\ifx\undefined\documentclass\else\endinput\fi % LaTeX will use other macros
+
+\input pdfXcwebmac.tex
+
+% In case `german.sty' has been loaded, we have to redefine the `\3'
+% macro for an optional break within a statement. This should be the
+% first command after `\input german.sty' in your CWEB source.
+\def\originalthree{\def\3##1{\hfil\penalty##10\hfilneg}}
+
+\def\.#1{\leavevmode\hbox{\tentex % typewriter type for strings
+ \ifx\Cstringchars\undefined\else\Cstringchars\fi % special string characters
+ \let\\=\BS % backslash in a string
+ \let\{=\LB % left brace in a string
+ \let\}=\RB % right brace in a string
+ \let\~=\TL % tilde in a string
+ \let\ =\SP % space in a string
+ \let\_=\UL % underline in a string
+ \let\&=\AM % ampersand in a string
+ \let\^=\CF % circumflex in a string
+ \ifx\originalTeX\undefined\else\originalTeX\fi#1\kern.05em}}
+
+\def\postATL#1 #2 {\bf Buchstabe \\{\uppercase{\char"#1}}
+ wird getangled als \tentex "#2"\egroup\par}
+\def\ATH{\X\kern-.5em:Pr\"aprozessor Definitionen\X}
+
+\def\A{\note{Siehe auch Abschnitt}} % xref for doubly defined section name
+\def\As{\note{Siehe auch die Abschnitte}} % xref for multiply defined section name
+
+\def\ET{ und~} % conjunction between two section numbers
+\def\ETs{ und~} % conjunction between the last two of several section numbers
+
+\def\Q{\note{Dieser Programmteil wird zitiert in Abschnitt}} % xref for mention of a section
+\def\Qs{\note{Dieser Programmteil wird zitiert in den Abschnitten}} % xref for mentions of a section
+
+\def\U{\note{Dieser Programmteil wird verwendet in Abschnitt}} % xref for use of a section
+\def\Us{\note{Dieser Programmteil wird verwendet in den Abschnitten}} % xref for uses of a section
+
+\gtitle={\.{CWEB} Ausgabe} % this running head is reset by starred sections
+\mark{\noexpand\nullsec0{\the\gtitle}}
+
+\def\ch{\note{Die folgenden Abschnitte sind vom Change-File ver\"andert worden:}
+ \let\*=\relax}
+
+\def\fin{\par\vfill\eject % this is done when we are ending the index
+ \ifpagesaved\null\vfill\eject\fi % output a null index column
+ \if L\lr\else\null\vfill\eject\fi % finish the current page
+ \parfillskip 0pt plus 1fil
+ \def\grouptitle{ABSCHNITTSNAMEN}
+ \let\topsecno=\nullsec
+ \message{Abschnittsnamen:}
+ \output={\normaloutput\page\lheader\rheader}
+ \setpage
+%
+% Change for PDFTeX
+% \def\note##1##2.{\quad{\eightrm##1~##2.}}
+ \def\note##1##2.{\quad{\eightrm##1~\pdfnote##2..}}
+% End of PDFTeX change
+%
+ \def\Q{\note{Zitiert in Abschnitt}} % crossref for mention of a section
+ \def\Qs{\note{Zitiert in den Abschnitten}} % crossref for mentions of a section
+ \def\U{\note{Verwendet in Abschnitt}} % crossref for use of a section
+ \def\Us{\note{Verwendet in den Abschnitten}} % crossref for uses of a section
+ \def\I{\par\hangindent 2em}\let\*=*
+ \readsections}
+\def\con{\par\vfill\eject % finish the section names
+% \ifodd\pageno\else\titletrue\null\vfill\eject\fi % for duplex printers
+ \rightskip 0pt \hyphenpenalty 50 \tolerance 200
+ \setpage \output={\normaloutput\page\lheader\rheader}
+ \titletrue % prepare to output the table of contents
+ \pageno=\contentspagenumber
+ \def\grouptitle{INHALTSVERZEICHNIS:}
+ \message{Inhaltsverzeichnis:}
+ \topofcontents
+ \line{\hfil Abschnitt\hbox to3em{\hss Seite}}
+ \let\ZZ=\contentsline
+ \readcontents\relax % read the contents info
+ \botofcontents \end} % print the contents page(s) and terminate
+\def\today{\number\day.~\ifcase\month\or
+ Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
+ Juli\or August\or September\or Oktober\or November\or Dezember\fi
+ \space\number\year}
+\newcount\twodigits
+\def\hours{\twodigits=\time \divide\twodigits by60 \printtwodigits
+ \null\space\sc Uhr\space % distinguish between time and year
+ \multiply\twodigits by-60 \advance\twodigits by\time \printtwodigits}
+\def\datethis{\def\startsection{\leftline{\sc\today\ um \hours}\bigskip
+ \let\startsection=\stsec\stsec}}
+ % say `\datethis' in limbo, to get your listing timestamped before section 1
+\def\datecontentspage{%
+ \def\topofcontents{\leftline{\sc\today\ um \hours}\bigskip
+ \centerline{\titlefont\title}\vfill}} % timestamps the contents page
diff --git a/Master/texmf-dist/tex/plain/cweb/pdffcwebmac.tex b/Master/texmf-dist/tex/plain/cweb/pdffcwebmac.tex
new file mode 100644
index 00000000000..db06e2f7e7e
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cweb/pdffcwebmac.tex
@@ -0,0 +1,115 @@
+% standard macros for CWEB listings (in addition to plain.tex)
+% modified for use with "tex2pdf" --- March 1997
+% Version 2.0 --- Don Knuth, July 1990
+% Version 2.0 [german] --- Carsten Steger, October 1991
+% Version 2.0 [german] --- Andreas Scherer, February 1993
+% Version 2.7 --- Don Knuth, July 1992
+% Version 2.7 [p6c] --- Andreas Scherer, September 1993
+% Version 2.8 --- Don Knuth, September 1992
+% Version 2.8 [german] --- Carsten Steger, 1993
+% Version 2.8 [p7] --- Andreas Scherer, October 1993
+% Version 3.0 --- Don Knuth, June 1993
+% Version 3.0 [p8e] --- Andreas Scherer, November 1993
+% Version 3.1 [p9b] --- Andreas Scherer, January 1994
+% Version 3.1 [p9c] --- Andreas Scherer, March 1994
+% Version 3.1 [p9d] --- Andreas Scherer, July 1994
+% Version 3.2 [p10] --- Andreas Scherer, July 1994
+% Version 3.2 [p10a] --- Denis B. Roegel, September 1994
+% Version 3.3 [p10b] --- Andreas Scherer, October 1994
+% Version 3.3 [p11b] --- Andreas Scherer, March 1995
+% Version 3.4 [p13] --- Andreas Scherer, August 1995
+% Version 3.4 [p14] --- Andreas Scherer, March 1997
+
+% french translations --- Denis Roegel, 18 September 1994
+
+\ifx\undefined\documentclass\else\endinput\fi % LaTeX will use other macros
+
+\input pdfXcwebmac.tex
+
+\def\.#1{\leavevmode\hbox{\tentex % typewriter type for strings
+ \ifx\Cstringchars\undefined\else\Cstringchars\fi % special string characters
+ \let\\=\BS % backslash in a string
+ \let\{=\LB % left brace in a string
+ \let\}=\RB % right brace in a string
+ \let\~=\TL % tilde in a string
+ \let\ =\SP % space in a string
+ \let\_=\UL % underline in a string
+ \let\&=\AM % ampersand in a string
+ \let\^=\CF % circumflex in a string
+ #1\kern.05em}}
+
+\def\postATL#1 #2 {\bf La lettre \\{\uppercase{\char"#1}}
+ est \string`\string`tanglee\string'\string' en \tentex "#2"\egroup\par}
+\def\ATH{\X\kern-.5em:D\'efinitions du pr\'eprocesseur\X}
+
+\def\A{\note{Voir aussi la section}} % xref for doubly defined section name
+\def\As{\note{Voir aussi les sections}} % xref for multiply defined
+ % section name
+
+\def\ET{ et~} % conjunction between two section numbers
+\def\ETs{ et~} % conjunction between the last two of several section numbers
+
+\def\Q{\note{Cette partie du programme est cit\'ee dans la section}}
+ % xref for mention of a section
+\def\Qs{\note{Cette partie du programme est cit\'ee dans les sections}}
+ % xref for mentions of a section
+
+\def\U{\note{Cette partie du programme est utilis\'ee dans la section}}
+ % xref for use of a section
+\def\Us{\note{Cette partie du programme est utilis\'ee dans les sections}}
+ % xref for uses of a section
+
+\gtitle={Sortie \.{CWEB}} % this running head is reset by starred sections
+\mark{\noexpand\nullsec0{\the\gtitle}}
+
+\def\ch{\note{Les sections suivantes ont \'et\'e modifi\'ees dans le
+ Change-File:}\let\*=\relax}
+
+\def\fin{\par\vfill\eject % this is done when we are ending the index
+ \ifpagesaved\null\vfill\eject\fi % output a null index column
+ \if L\lr\else\null\vfill\eject\fi % finish the current page
+ \parfillskip 0pt plus 1fil
+ \def\grouptitle{NOMS DES SECTIONS}
+ \let\topsecno=\nullsec
+ \message{Noms des sections:}
+ \output={\normaloutput\page\lheader\rheader}
+ \setpage
+%
+% Change for PDFTeX
+% \def\note##1##2.{\quad{\eightrm##1~##2.}}
+ \def\note##1##2.{\quad{\eightrm##1~\pdfnote##2..}}
+% End of PDFTeX change
+%
+ \def\Q{\note{Cit\'e dans la section}} % crossref for mention of a section
+ \def\Qs{\note{Cit\'e dans les sections}} % crossref for mentions of a section
+ \def\U{\note{Utilis\'e dans la section}} % crossref for use of a section
+ \def\Us{\note{Utilis\'e dans les sections}} % crossref for uses of a section
+ \def\I{\par\hangindent 2em}\let\*=*
+ \readsections}
+\def\con{\par\vfill\eject % finish the section names
+% \ifodd\pageno\else\titletrue\null\vfill\eject\fi % for duplex printers
+ \rightskip 0pt \hyphenpenalty 50 \tolerance 200
+ \setpage \output={\normaloutput\page\lheader\rheader}
+ \titletrue % prepare to output the table of contents
+ \pageno=\contentspagenumber
+ \def\grouptitle{SOMMAIRE:}
+ \message{Sommaire:}
+ \topofcontents
+ \line{\hfil Section\hbox to3em{\hss Page}}
+ \let\ZZ=\contentsline
+ \readcontents\relax % read the contents info
+ \botofcontents \end} % print the contents page(s) and terminate
+\def\today{\number\day.~\ifcase\month\or
+ Janvier\or F\'evrier\or Mars\or Avril\or Mai\or Juin\or
+ Juillet\or Ao\^ut\or Septembre\or Octobre\or Novembre\or D\'ecembre\fi
+ \space\number\year}
+\newcount\twodigits
+\def\hours{\twodigits=\time \divide\twodigits by60 \printtwodigits
+ \null\space\sc h\space % distinguish between time and year
+ \multiply\twodigits by-60 \advance\twodigits by\time \printtwodigits}
+\def\datethis{\def\startsection{\leftline{\sc\today\ \`a \hours}\bigskip
+ \let\startsection=\stsec\stsec}}
+ % say `\datethis' in limbo, to get your listing timestamped before section 1
+\def\datecontentspage{%
+ \def\topofcontents{\leftline{\sc\today\ \`a \hours}\bigskip
+ \centerline{\titlefont\title}\vfill}} % timestamps the contents page
diff --git a/Master/texmf-dist/tex/plain/cweb/pdficwebmac.tex b/Master/texmf-dist/tex/plain/cweb/pdficwebmac.tex
new file mode 100644
index 00000000000..74f35eaaba3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cweb/pdficwebmac.tex
@@ -0,0 +1,136 @@
+% standard macros for CWEB listings (in addition to plain.tex)
+% modified for use with "tex2pdf" --- March 1997
+% Version 2.0 --- Don Knuth, July 1990
+% Version 2.0 [german] --- Carsten Steger, October 1991
+% Version 2.0 [german] --- Andreas Scherer, February 1993
+% Version 2.7 --- Don Knuth, July 1992
+% Version 2.7 [p6c] --- Andreas Scherer, September 1993
+% Version 2.8 --- Don Knuth, September 1992
+% Version 2.8 [german] --- Carsten Steger, 1993
+% Version 2.8 [p7] --- Andreas Scherer, October 1993
+% Version 3.0 --- Don Knuth, June 1993
+% Version 3.0 [p8e] --- Andreas Scherer, November 1993
+% Version 3.1 [p9b] --- Andreas Scherer, January 1994
+% Version 3.1 [p9c] --- Andreas Scherer, March 1994
+% Version 3.1 [p9d] --- Andreas Scherer, July 1994
+% Version 3.2 [p10] --- Andreas Scherer, July 1994
+% Version 3.2 [p10a] --- Giuseppe Ghibò, September 1994
+% Version 3.2 [p10b] --- Andreas Scherer, October 1994
+% Version 3.3 [p11b] --- Andreas Scherer, March 1995
+% Version 3.4 [p13] --- Andreas Scherer, August 1995
+% Version 3.4 [p14] --- Andreas Scherer, March 1997
+
+\ifx\undefined\documentclass\else\endinput\fi % LaTeX will use other macros
+
+\input pdfXcwebmac.tex
+
+\def\.#1{\leavevmode\hbox{\tentex % typewriter type for strings
+ \ifx\Cstringchars\undefined\else\Cstringchars\fi % special string characters
+ \let\\=\BS % backslash in a string
+ \let\{=\LB % left brace in a string
+ \let\}=\RB % right brace in a string
+ \let\~=\TL % tilde in a string
+ \let\ =\SP % space in a string
+ \let\_=\UL % underline in a string
+ \let\&=\AM % ampersand in a string
+ \let\^=\CF % circumflex in a string
+ #1\kern.05em}}
+
+\def\postATL#1 #2 {\bf lettera \\{\uppercase{\char"#1}}
+ tangles as \tentex "#2"\egroup\par}
+\def\ATH{\X\kern-.5em:Definizioni preprocessore\X}
+
+\def\A{\note{Vedi anche sezione}} % xref for doubly defined section name
+\def\As{\note{Vedi anche sezioni}} % xref for multiply defined section name
+
+\def\ET{ e~} % conjunction between two section numbers
+\def\ETs{ e~} % conjunction between the last two of several section numbers
+
+\def\Q{\note{Questo codice \`e citato nella sezione}} % xref for mention of a section
+\def\Qs{\note{Questo codice \`e citato nelle sezioni}} % xref for mentions of a section
+
+\def\U{\note{Questo codice \`e usato nella sezione}} % xref for use of a section
+\def\Us{\note{Questo codice \`e usato nelle sezioni}} % xref for uses of a section
+
+\gtitle={Output \.{CWEB}} % this running head is reset by starred sections
+\mark{\noexpand\nullsec0{\the\gtitle}}
+
+\def\ch{\note{Le seguenti sezioni sono state modificate tramite il change-file:}
+ \let\*=\relax}
+
+\def\inx{\par\vskip6pt plus 1fil % we are beginning the index
+ \def\page{\box255 } \normalbottom
+ \write\cont{} % ensure that the contents file isn't empty
+ \write\cont{\catcode `\noexpand\@=12\relax} % \makeatother
+ \closeout\cont % the contents information has been fully gathered
+ \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi
+ \global\setbox\sbox=\page \global\pagesavedtrue}
+ \pagesavedfalse \eject % eject the page-so-far and predecessors
+ \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
+ \vsize=\pageheight \advance\vsize by -\ht\sbox % the remaining height
+ \hsize=.5\pagewidth \advance\hsize by -10pt
+ % column width for the index (20pt between cols)
+ \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
+ \def\lr{L} % this tells whether the left or right column is next
+ \output{\if L\lr\global\setbox\lbox=\page \gdef\lr{R}
+ \else\normaloutput{\vbox to\pageheight{\box\sbox\vss
+ \hbox to\pagewidth{\box\lbox\hfil\page}}}\lheader\rheader
+ \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi}
+ \message{Indice Analitico:}
+ \parskip 0pt plus .5pt
+%
+% Change for PDFTeX
+% \outer\def\I##1, {\par\hangindent2em\noindent##1:\kern1em} % index entry
+ \outer\def\I##1, {\par\hangindent2em\noindent##1:\kern1em\pdfnote} % index entry
+% End of PDFTeX change
+%
+ \def\[##1]{$\underline{##1}$} % underlined index item
+ \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar
+ \hyphenpenalty 10000 \parindent0pt
+ \readindex}
+
+\def\fin{\par\vfill\eject % this is done when we are ending the index
+ \ifpagesaved\null\vfill\eject\fi % output a null index column
+ \if L\lr\else\null\vfill\eject\fi % finish the current page
+ \parfillskip 0pt plus 1fil
+ \def\grouptitle{NOMI DELLE SEZIONI}
+ \let\topsecno=\nullsec
+ \message{Nomi delle sezioni:}
+ \output={\normaloutput\page\lheader\rheader}
+ \setpage
+%
+% Change for PDFTeX
+% \def\note##1##2.{\quad{\eightrm##1~##2.}}
+ \def\note##1##2.{\quad{\eightrm##1~\pdfnote##2..}}
+% End of PDFTeX change
+%
+ \def\Q{\note{Citato nella sezione}} % crossref for mention of a section
+ \def\Qs{\note{Citato nelle sezioni}} % crossref for mentions of a section
+ \def\U{\note{Usato nella sezione}} % crossref for use of a section
+ \def\Us{\note{Usato nelle sezioni}} % crossref for uses of a section
+ \def\I{\par\hangindent 2em}\let\*=*
+ \readsections}
+\def\con{\par\vfill\eject % finish the section names
+% \ifodd\pageno\else\titletrue\null\vfill\eject\fi % for duplex printers
+ \rightskip 0pt \hyphenpenalty 50 \tolerance 200
+ \setpage \output={\normaloutput\page\lheader\rheader}
+ \titletrue % prepare to output the table of contents
+ \pageno=\contentspagenumber
+ \def\grouptitle{INDICE}
+ \message{Indice:}
+ \topofcontents
+ \line{\hfil Sezione\hbox to3em{\hss Pag.}}
+ \let\ZZ=\contentsline
+ \readcontents\relax % read the contents info
+ \botofcontents \end} % print the contents page(s) and terminate
+\def\today{\number\day\space\ifcase\month\or
+ gennaio\or febbraio\or marzo\or aprile\or maggio\or giugno\or
+ luglio\or agosto\or settembre\or ottobre\or novembre\or dicembre\fi
+ \space\number\year}
+\newcount\twodigits
+\def\datethis{\def\startsection{\leftline{\sc\today, ore \hours}\bigskip
+ \let\startsection=\stsec\stsec}}
+ % say `\datethis' in limbo, to get your listing timestamped before section 1
+\def\datecontentspage{%
+ \def\topofcontents{\leftline{\sc\today, ore \hours}\bigskip
+ \centerline{\titlefont\title}\vfill}} % timestamps the contents page
diff --git a/Master/texmf-dist/tex/plain/cweb/pdfwebmac.tex b/Master/texmf-dist/tex/plain/cweb/pdfwebmac.tex
new file mode 100644
index 00000000000..8bcf2e8281c
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cweb/pdfwebmac.tex
@@ -0,0 +1,261 @@
+% standard macros for WEB listings (in addition to PLAIN.TEX)
+%
+% pdfTeX adjustments mainained by Han The Thanh <hanthethanh@gmx.net>.
+%
+\xdef\fmtversion{\fmtversion+WEBMAC4.1} % identifies current set of macros
+\parskip 0pt % no stretch between paragraphs
+\parindent 1em % for paragraphs and for the first line of Pascal text
+
+\font\eightrm=cmr8 \let\sc=\eightrm % NOT a caps-and-small-caps font!
+\let\mainfont=\tenrm
+\font\titlefont=cmr7 scaled\magstep4 % title on the contents page
+\font\ttitlefont=cmtt10 scaled\magstep2 % typewriter type in title
+\font\tentex=cmtex10 % TeX extended character set (used in strings)
+\fontdimen7\tentex=0pt % no extra space after punctuation
+
+\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
+\def\|#1{\hbox{$#1$}} % one-letter identifiers look a bit better this way
+\def\&#1{\hbox{\bf#1\/}} % boldface type for reserved words
+\def\.#1{\hbox{\tentex % typewriter type for strings
+ \let\\=\BS % backslash in a string
+ \let\'=\RQ % right quote in a string
+ \let\`=\LQ % left quote in a string
+ \let\{=\LB % left brace in a string
+ \let\}=\RB % right brace in a string
+ \let\~=\TL % tilde in a string
+ \let\ =\SP % space in a string
+ \let\_=\UL % underline in a string
+ \let\&=\AM % ampersand in a string
+ #1}}
+\def\#{\hbox{\tt\char`\#}} % parameter sign
+\def\${\hbox{\tt\char`\$}} % dollar sign
+\def\%{\hbox{\tt\char`\%}} % percent sign
+\def\^{\ifmmode\mathchar"222 \else\char`^ \fi} % pointer or hat
+% circumflex accents can be obtained from \^^D instead of \^
+\def\AT!{@} % at sign for control text
+
+\chardef\AM=`\& % ampersand character in a string
+\chardef\BS=`\\ % backslash in a string
+\chardef\LB=`\{ % left brace in a string
+\def\LQ{{\tt\char'22}} % left quote in a string
+\chardef\RB=`\} % right brace in a string
+\def\RQ{{\tt\char'23}} % right quote in a string
+\def\SP{{\tt\char`\ }} % (visible) space in a string
+\chardef\TL=`\~ % tilde in a string
+\chardef\UL=`\_ % underline character in a string
+
+\newbox\bak \setbox\bak=\hbox to -1em{} % backspace one em
+\newbox\bakk\setbox\bakk=\hbox to -2em{} % backspace two ems
+
+\newcount\ind % current indentation in ems
+\def\1{\global\advance\ind by1\hangindent\ind em} % indent one more notch
+\def\2{\global\advance\ind by-1} % indent one less notch
+\def\3#1{\hfil\penalty#10\hfilneg} % optional break within a statement
+\def\4{\copy\bak} % backspace one notch
+\def\5{\hfil\penalty-1\hfilneg\kern2.5em\copy\bakk\ignorespaces}% optional break
+\def\6{\ifmmode\else\par % forced break
+ \hangindent\ind em\noindent\kern\ind em\copy\bakk\ignorespaces\fi}
+\def\7{\Y\6} % forced break and a little extra space
+
+\let\yskip=\smallskip
+\def\to{\mathrel{.\,.}} % double dot, used only in math mode
+
+% Some changes for pdftex
+%\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1~#2.\par}}
+\def\note#1#2.{\Y\noindent{\hangindent2em\baselineskip10pt\eightrm#1~\pdfnote#2..\par}}
+\pdfoutput=1
+\pdfcompresslevel=9
+\input pdfcolor
+
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newcount\countA
+\countA=0
+\def\pdfnote#1.{\setbox0=\hbox{\toksA={#1.}\toksB={}\maketoks}\the\toksA}
+\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+\def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+\def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+\def\maketoks{%
+ \expandafter\poptoks\the\toksA|ENDTOKS|
+ \ifx\first0\adn0
+ \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+ \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else
+ \ifnum0=\countA\else\makenote\fi
+ \ifx\first.\let\next=\done\else
+ \let\next=\maketoks
+ \addtokens{\toksB}{\the\toksD}
+ \ifx\first,\addtokens{\toksB}{\space}\fi
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next
+}
+\def\n#1{\pdfstartlink attr{/Border [0 0 0]} goto num #1
+ \BlueGreen #1\Black\pdfendlink}
+\def\makenote{\addtokens{\toksB}%
+ {\noexpand\n{\the\toksC}}\toksC={}\global\countA=0}
+\def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+
+\def\lapstar{\rlap{*}}
+% \def\startsection{\Q\noindent{\let\*=\lapstar\bf\modstar.\quad}%
+% {\let\*=\empty\pdfdest num \modstar fitbh}}
+\def\startsection{\Q{\let\*=\empty\pdfdest num \modstar xyz}%
+ \noindent{\let\*=\lapstar\bf\modstar.\quad}}
+\def\defin#1{\global\advance\ind by 2 \1\&{#1 }} % begin `define' or `format'
+\def\A{\note{See also section}} % crossref for doubly defined section name
+\def\As{\note{See also sections}} % crossref for multiply defined section name
+\def\B{\mathopen{\.{@\{}}} % begin controlled comment
+\def\C#1{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % Pascal comments
+ \XX\hfil\penalty-1\hfilneg\quad$\{\,$#1$\,\}$\XX}
+\def\D{\defin{define}} % macro definition
+\def\E{\cdot10^} % exponent in floating point constant
+\def\ET{ and~} % conjunction between two section numbers
+\def\ETs{, and~} % conjunction between the last two of several section numbers
+\def\F{\defin{format}} % format definition
+\let\G=\ge % greater than or equal sign
+\def\H#1{\hbox{\rm\char"7D\tt#1}} % hexadecimal constant
+\let\I=\ne % unequal sign
+\def\J{\.{@\&}} % TANGLE's join operation
+\let\K=\gets % left arrow
+\let\L=\le % less than or equal sign
+\outer\def\M#1.{\MN#1.\ifon\vfil\penalty-100\vfilneg % beginning of section
+ \vskip12ptminus3pt\startsection\ignorespaces}
+\outer\def\N#1.#2.{\MN#1.\vfil\eject % beginning of starred section
+ \def\rhead{\uppercase{\ignorespaces#2}} % define running headline
+ \message{*\modno} % progress report
+ \edef\next{\write\cont{\Z{#2}{\modno}{\the\pageno}}}\next % to contents file
+ \ifon\startsection{\bf\ignorespaces#2.\quad}\ignorespaces}
+\def\MN#1.{\par % common code for \M, \N
+ {\xdef\modstar{#1}\let\*=\empty\xdef\modno{#1}}
+ \ifx\modno\modstar \onmaybe \else\ontrue \fi \mark{\modno}}
+\def\O#1{\hbox{\rm\char'23\kern-.2em\it#1\/\kern.05em}} % octal constant
+\def\P{\rightskip=0pt plus 100pt minus 10pt % go into Pascal mode
+ \sfcode`;=3000
+ \pretolerance 10000
+ \hyphenpenalty 10000 \exhyphenpenalty 10000
+ \global\ind=2 \1\ \unskip}
+\def\Q{\rightskip=0pt % get out of Pascal mode
+ \sfcode`;=1500 \pretolerance 200 \hyphenpenalty 50 \exhyphenpenalty 50 }
+\let\R=\lnot % logical not
+\let\S=\equiv % equivalence sign
+\def\T{\mathclose{\.{@\}}}} % terminate controlled comment
+\def\U{\note{This code is used in section}} % crossref for use of a section
+\def\Us{\note{This code is used in sections}} % crossref for uses of a section
+\let\V=\lor % logical or
+\let\W=\land % logical and
+\def\X#1:#2\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi % section name
+ \XX$\langle\,$#2{\eightrm\kern.5em\pdfnote#1.}$\,\rangle$\XX}
+\def\Y{\par\yskip}
+\let\Z=\let % now you can \send the control sequence \Z
+\def\){\hbox{\.{@\$}}} % sign for string pool check sum
+\def\]{\hbox{\.{@\\}}} % sign for forced line break
+\def\=#1{\kern2pt\hbox{\vrule\vtop{\vbox{\hrule
+ \hbox{\strut\kern2pt\.{#1}\kern2pt}}
+ \hrule}\vrule}\kern2pt} % verbatim string
+\let\~=\ignorespaces
+\let\*=*
+
+\def\onmaybe{\let\ifon=\maybe} \let\maybe=\iftrue
+\newif\ifon \newif\iftitle \newif\ifpagesaved
+\def\lheader{\mainfont\the\pageno\eightrm\qquad\rhead\hfill\title\qquad
+ \tensy x\mainfont\topmark} % top line on left-hand pages
+\def\rheader{\tensy x\mainfont\topmark\eightrm\qquad\title\hfill\rhead
+ \qquad\mainfont\the\pageno} % top line on right-hand pages
+\def\page{\box255 }
+\def\normaloutput#1#2#3{\ifodd\pageno\hoffset=\pageshift\fi
+ \shipout\vbox{
+ \vbox to\fullpageheight{
+ \iftitle\global\titlefalse
+ \else\hbox to\pagewidth{\vbox to10pt{}\ifodd\pageno #3\else#2\fi}\fi
+ \vfill#1}} % parameter #1 is the page itself
+ \global\advance\pageno by1}
+
+\def\rhead{\.{WEB} OUTPUT} % this running head is reset by starred sections
+\def\title{} % an optional title can be set by the user
+\def\topofcontents{\centerline{\titlefont\title}
+ \vfill} % this material will start the table of contents page
+\def\botofcontents{\vfill} % this material will end the table of contents page
+\def\contentspagenumber{0} % default page number for table of contents
+\newdimen\pagewidth \pagewidth=6.5in % the width of each page
+\newdimen\pageheight \pageheight=8.7in % the height of each page
+\newdimen\fullpageheight \fullpageheight=9in % page height including headlines
+\newdimen\pageshift \pageshift=0in % shift righthand pages wrt lefthand ones
+\def\magnify#1{\mag=#1\pagewidth=6.5truein\pageheight=8.7truein
+ \fullpageheight=9truein\setpage}
+\def\setpage{\hsize\pagewidth\vsize\pageheight} % use after changing page size
+\def\contentsfile{CONTENTS} % file that gets table of contents info
+\def\readcontents{\input CONTENTS}
+
+\newwrite\cont
+\output{\setbox0=\page % the first page is garbage
+ \openout\cont=\contentsfile
+ \global\output{\normaloutput\page\lheader\rheader}}
+\setpage
+\vbox to \vsize{} % the first \topmark won't be null
+
+\def\ch{\note{The following sections were changed by the change file:}
+ \let\*=\relax}
+\newbox\sbox % saved box preceding the index
+\newbox\lbox % lefthand column in the index
+\def\inx{\par\vskip6pt plus 1fil % we are beginning the index
+ \write\cont{} % ensure that the contents file isn't empty
+ \closeout\cont % the contents information has been fully gathered
+ \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi
+ \global\setbox\sbox=\page \global\pagesavedtrue}
+ \pagesavedfalse \eject % eject the page-so-far and predecessors
+ \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
+ \vsize=\pageheight \advance\vsize by -\ht\sbox % the remaining height
+ \hsize=.5\pagewidth \advance\hsize by -10pt
+ % column width for the index (20pt between cols)
+ \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
+ \def\lr{L} % this tells whether the left or right column is next
+ \output{\if L\lr\global\setbox\lbox=\page \gdef\lr{R}
+ \else\normaloutput{\vbox to\pageheight{\box\sbox\vss
+ \hbox to\pagewidth{\box\lbox\hfil\page}}}\lheader\rheader
+ \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi}
+ \message{Index:}
+ \parskip 0pt plus .5pt
+ \outer\def\:##1, {\par\hangindent2em\noindent##1:\kern1em\pdfnote} % index entry
+ \let\ttentry=\. \def\.##1{\ttentry{##1\kern.2em}} % give \tt a little room
+ \def\[##1]{$\underline{##1}$} % underlined index item
+ \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar
+ \hyphenpenalty 10000 \parindent0pt}
+\def\fin{\par\vfill\eject % this is done when we are ending the index
+ \ifpagesaved\null\vfill\eject\fi % output a null index column
+ \if L\lr\else\null\vfill\eject\fi % finish the current page
+ \parfillskip 0pt plus 1fil
+ \def\rhead{NAMES OF THE SECTIONS}
+ \message{Section names:}
+ \output{\normaloutput\page\lheader\rheader}
+ \setpage
+ %\def\note##1##2.{\hfil\penalty-1\hfilneg\quad{\eightrm##1~##2.}}
+ \def\note##1##2.{\hfil\penalty-1\hfilneg\quad{\eightrm##1~\pdfnote##2..}}
+ \linepenalty=10 % try to conserve lines
+ \def\U{\note{Used in section}} % crossref for use of a section
+ \def\Us{\note{Used in sections}} % crossref for uses of a section
+ \def\:{\par\hangindent 2em}\let\*=*\let\.=\ttentry}
+\def\con{\par\vfill\eject % finish the section names
+ \rightskip 0pt \hyphenpenalty 50 \tolerance 200
+ \setpage
+ \output{\normaloutput\page\lheader\rheader}
+ \titletrue % prepare to output the table of contents
+ \pageno=\contentspagenumber \def\rhead{TABLE OF CONTENTS}
+ \message{Table of contents:}
+ \topofcontents
+ \line{\hfil Section\hbox to3em{\hss Page}}
+ \def\Z##1##2##3{\line{\pdfstartlink attr{/Border [0 0 0]} goto num ##2
+ \BlueGreen \ignorespaces##1
+ \leaders\hbox to .5em{.\hfil}\hfil\ ##2\pdfendlink\Black
+ \hbox to3em{\hss##3}}}
+ \readcontents\relax % read the contents info
+ \botofcontents \makeoutlines\end} % print the contents page(s) and terminate
+
+\newcount\countB
+\def\makeoutlines{%
+ \def\?##1]{}\def\Z##1##2##3{\pdfoutline goto num ##2{##1}}
+ \input CONTENTS\relax}
+\pdfcatalog{/PageMode /UseOutlines}
+\endinput
diff --git a/Master/texmf-dist/tex/plain/cyrplain/README b/Master/texmf-dist/tex/plain/cyrplain/README
new file mode 100644
index 00000000000..9cdbbc15ee6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/README
@@ -0,0 +1,86 @@
+This directory contains files which can be used to make rusified
+Plain TeX and other Plain TeX based formats, such as AMS-TeX, Texinfo
+or BLUe TeX, using cyrillic fonts in LCY encoding (which is an 8-bit
+extension of OT1 similar to cp866) or T2A encoding.
+
+The file `plainenc.tex' provides a preliminary support of
+inputenc/fontenc mechanisms for Plain TeX. It uses the standard
+*unmodified* LaTeX files: inputenc.sty, font encoding definition files
+(such as lcyenc.def), and input encoding definition files (koi8-r.def,
+cp866.def, etc), so that your documents may be in any input encoding
+supported by the `cyrillic' bundle of LaTeX.
+
+The files `example4.tex' and `example2.tex' contain examples of using
+different input encodings in Plain TeX. See also a file example3.tex
+which shows another way to process Plain TeX files---using the `plain'
+package for LaTeX.
+
+To install russian support for Plain TeX, AMS-TeX, Texinfo or BLUe
+TeX, please do the following steps:
+
+1) To setup hyphenation, you will need russian hyphenation patterns
+and a file `hyphen.cfg' (either from BABEL or created manually). It is
+recommended to use russian hyphenation patterns contained in the
+`ruhyphen' package (see the README in the parent directory for more
+information). There you will find also documentation on installation
+and usage of patterns. Note, that for all Plain TeX-based formats it
+is recommended to use "combined" Russian-English patterns as a single
+language to avoid necessity to use language switching commands like
+\Russian and \English (you may use a sample "language.dat" from the
+ruhyphen package when creating format files).
+
+2) If you want to be able to use input encodings other than cp866, you
+should install the T2 package first. Then edit the file `cyrtex.cfg',
+and choose the default input encoding of your documents in the line
+"\def\definpenc{koi8-r}". In this case you must install BABEL, because
+we use some files from BABEL (e.g., plain.def, hyphen.cfg).
+
+Otherwise (if you will process only documents in cp866 encoding),
+change "\iftrue" to "\iffalse" in `cyrtex.cfg' (or put cp866 in the
+definition of \definpenc).
+
+Note that we use here the file `lcydefs.tex' which is part of the
+`cyrillic' bundle for LaTeX2e (CTAN:macros/latex/required/cyrillic).
+Note that this file should be generated as explained in `00readme.txt'
+from the `cyrillic' bundle.
+
+3) By default, we use LH fonts. You could change this to any other
+LCY- or T2A-encoded font set (e.g. to use Type1 virtual fonts like
+`C1 fonts package'), by redefining the command `\fontprefix' in
+cyrtex.cfg.
+
+We support LCY and T2A font encodings (see cyrtex.cfg). If you use
+T2A encoding, you should get EXMI fonts from CTAN:macros/ec-plain/*.mf
+and define \miprefix to `ex' in cyrtex.cfg.
+
+4) Edit the file `makefmts.sh' or `makefmts.bat' (depending on your
+platform), and (optionally) remove or comment out the lines which call
+INITEX for formats which you do not want to install.
+
+Then run the script/batch file `makefmts.sh' or `makefmts.bat'. This will
+create TeX format files: `cyrtex.fmt', `cyramstex.fmt', `cyrtexinfo.fmt'
+and `cyrblue.fmt' (maybe not all of them if you commented some lines
+in makefmts script). In case of `makefmts.bat', we use short DOSish
+filenames `cyramstx.fmt', `cyrtxinf.fmt' instead of `cyramstex.fmt',
+`cyrtexinfo.fmt'. You can rename them to long names if your OS
+supports them. ;-) Finally, install the format files as usual (maybe
+creating symlinks or scripts/batch files which call TeX with these
+formats).
+
+Note: if you are using `amsppt' with AMS-TeX, you should also patch
+the file `amsppt.sty', changing some hard-coded CM fonts to the
+corresponding cyrillic fonts. The patch `amsppt.diff' is in the `etc'
+directory of the T2 package [if you do not have a `patch' utility, you
+may do the changes manually].
+
+Please, use plain.tex version 3.1415926 or above.
+
+To make your documents encoding independent, you can use macros like
+`\inputencoding{koi8-r}' in your documents (you can even use several
+input encodings in one document, --- see the file `example4.tex' in
+the directory `../examples').
+
+Please report bugs via email addresses given in the file README in
+the parent directory.
+
+Happy TeXing!
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyramstx.ini b/Master/texmf-dist/tex/plain/cyrplain/cyramstx.ini
new file mode 100644
index 00000000000..197bc7ae530
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyramstx.ini
@@ -0,0 +1,10 @@
+\input cyrtex
+\UNPROTECT
+\input amstex
+%% Uncomment this line to include the AMSPPT preprint style in the
+%% format file:
+%%\documentstyle{amsppt}
+\input txxextra
+\makerobust\dots
+\PROTECT
+\dump
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyrblue.ini b/Master/texmf-dist/tex/plain/cyrplain/cyrblue.ini
new file mode 100644
index 00000000000..5c20ae26912
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyrblue.ini
@@ -0,0 +1,3 @@
+\input cyrtex
+\input blue
+\dump
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyrcmfnt.tex b/Master/texmf-dist/tex/plain/cyrplain/cyrcmfnt.tex
new file mode 100644
index 00000000000..82c031f5fb8
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyrcmfnt.tex
@@ -0,0 +1,82 @@
+% Definitions of fonts for `cyrillized' Plain TeX: CM-like names
+%
+% Fonts assigned to \preloaded are not part of "plain TeX",
+% but they are preloaded so that other format packages can use them.
+% For example, if another set of macros says "\font\ninerm=cmr9",
+% TeX will not have to reload the font metric information for cmr9.
+
+\message{fonts,}
+
+\font\tenrm=\fontprefix r10 % roman text
+%\font\preloaded=\fontprefix r9
+%\font\preloaded=\fontprefix r8
+\font\sevenrm=\fontprefix r7
+%\font\preloaded=\fontprefix r6
+\font\fiverm=\fontprefix r5
+
+\font\teni=\miprefix mi10 % math italic
+%\font\preloaded=\miprefix mi9
+%\font\preloaded=\miprefix mi8
+\font\seveni=\miprefix mi7
+%\font\preloaded=\miprefix mi6
+\font\fivei=\miprefix mi5
+
+\font\tensy=cmsy10 % math symbols
+%\font\preloaded=cmsy9
+%\font\preloaded=cmsy8
+\font\sevensy=cmsy7
+%\font\preloaded=cmsy6
+\font\fivesy=cmsy5
+
+\font\tenex=cmex10 % math extension
+
+%\font\preloaded=\fontprefix ss10 % sans serif
+%\font\preloaded=\fontprefix ssq8
+
+%\font\preloaded=\fontprefix ssi10 % sans serif italic
+%\font\preloaded=\fontprefix ssqi8
+
+\font\tenbf=\fontprefix bx10 % boldface extended
+%\font\preloaded=\fontprefix bx9
+%\font\preloaded=\fontprefix bx8
+\font\sevenbf=\fontprefix bx7
+%\font\preloaded=\fontprefix bx6
+\font\fivebf=\fontprefix bx5
+
+\font\tentt=\fontprefix tt10 % typewriter
+%\font\preloaded=\fontprefix tt9
+%\font\preloaded=\fontprefix tt8
+
+%\font\preloaded=\fontprefix sltt10 % slanted typewriter
+
+\font\tensl=\fontprefix sl10 % slanted roman
+%\font\preloaded=\fontprefix sl9
+%\font\preloaded=\fontprefix sl8
+
+\font\tenit=\fontprefix ti10 % text italic
+%\font\preloaded=\fontprefix ti9
+%\font\preloaded=\fontprefix ti8
+%\font\preloaded=\fontprefix ti7
+
+\message{more fonts,}
+%\font\preloaded=\fontprefix u10 % unslanted text italic
+
+%\font\preloaded=\miprefix mib10 % bold math italic
+%\font\preloaded=cmbsy10 % bold math symbols
+
+%\font\preloaded=\fontprefix csc10 % caps and small caps
+
+%\font\preloaded=\fontprefix ssbx10 % sans serif bold extended
+
+%\font\preloaded=\fontprefix dunh10 % Dunhill style
+
+%\font\preloaded=\fontprefix r7 scaled \magstep4 % for titles
+%\font\preloaded=\fontprefix tt10 scaled \magstep2
+%\font\preloaded=\fontprefix ssbx10 scaled \magstep2
+
+%\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols
+
+% Additional \preloaded fonts can be specified here.
+% (And those that were \preloaded above can be eliminated.)
+
+\let\preloaded=\undefined % preloaded fonts must be declared anew later.
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyrecfnt.tex b/Master/texmf-dist/tex/plain/cyrplain/cyrecfnt.tex
new file mode 100644
index 00000000000..2920195c016
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyrecfnt.tex
@@ -0,0 +1,82 @@
+% Definitions of fonts for `cyrillized' Plain TeX: EC-like names
+%
+% Fonts assigned to \preloaded are not part of "plain TeX",
+% but they are preloaded so that other format packages can use them.
+% For example, if another set of macros says "\font\ninerm=cmr9",
+% TeX will not have to reload the font metric information for cmr9.
+
+\message{fonts,}
+
+\font\tenrm=\fontprefix rm1000 % roman text
+%\font\preloaded=\fontprefix rm0900
+%\font\preloaded=\fontprefix rm0800
+\font\sevenrm=\fontprefix rm0700
+%\font\preloaded=\fontprefix rm0600
+\font\fiverm=\fontprefix rm0500
+
+\font\teni=\miprefix mi10 % math italic
+%\font\preloaded=\miprefix mi9
+%\font\preloaded=\miprefix mi8
+\font\seveni=\miprefix mi7
+%\font\preloaded=\miprefix mi6
+\font\fivei=\miprefix mi5
+
+\font\tensy=cmsy10 % math symbols
+%\font\preloaded=cmsy9
+%\font\preloaded=cmsy8
+\font\sevensy=cmsy7
+%\font\preloaded=cmsy6
+\font\fivesy=cmsy5
+
+\font\tenex=cmex10 % math extension
+
+%\font\preloaded=\fontprefix ss1000 % sans serif
+%\font\preloaded=\fontprefix sq8
+
+%\font\preloaded=\fontprefix si1000 % sans serif italic
+%\font\preloaded=\fontprefix qi8
+
+\font\tenbf=\fontprefix bx1000 % boldface extended
+%\font\preloaded=\fontprefix bx0900
+%\font\preloaded=\fontprefix bx0800
+\font\sevenbf=\fontprefix bx0700
+%\font\preloaded=\fontprefix bx0600
+\font\fivebf=\fontprefix bx0500
+
+\font\tentt=\fontprefix tt1000 % typewriter
+%\font\preloaded=\fontprefix tt0900
+%\font\preloaded=\fontprefix tt0800
+
+%\font\preloaded=\fontprefix st1000 % slanted typewriter
+
+\font\tensl=\fontprefix sl1000 % slanted roman
+%\font\preloaded=\fontprefix sl0900
+%\font\preloaded=\fontprefix sl0800
+
+\font\tenit=\fontprefix ti1000 % text italic
+%\font\preloaded=\fontprefix ti0900
+%\font\preloaded=\fontprefix ti0800
+%\font\preloaded=\fontprefix ti0700
+
+\message{more fonts,}
+%\font\preloaded=\fontprefix ui1000 % unslanted text italic
+
+%\font\preloaded=\miprefix mib10 % bold math italic
+%\font\preloaded=cmbsy10 % bold math symbols
+
+%\font\preloaded=\fontprefix cc1000 % caps and small caps
+
+%\font\preloaded=\fontprefix sx1000 % sans serif bold extended
+
+%\font\preloaded=\fontprefix dh1000 % Dunhill style
+
+%\font\preloaded=\fontprefix rm0700 scaled \magstep4 % for titles
+%\font\preloaded=\fontprefix tt1000 scaled \magstep2
+%\font\preloaded=\fontprefix sx1000 scaled \magstep2
+
+%\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols
+
+% Additional \preloaded fonts can be specified here.
+% (And those that were \preloaded above can be eliminated.)
+
+\let\preloaded=\undefined % preloaded fonts must be declared anew later.
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyrtex.cfg b/Master/texmf-dist/tex/plain/cyrplain/cyrtex.cfg
new file mode 100644
index 00000000000..97963bb26d2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyrtex.cfg
@@ -0,0 +1,45 @@
+% Cyrillic TeX configuration file for Plain TeX based packages
+
+% Select text font encoding and fonts which will be used
+\c lh/lcy/lcydefs/cm/cyrcmfnt
+%\c c3/lcy/lcydefs/cm/cyrcmfnt
+%\c la/t2a/txxdefs/ex/cyrecfnt
+%\c c1/t2a/txxdefs/ex/cyrcmfnt
+%\c lb/t2b/txxdefs/ex/cyrecfnt
+%\c lc/t2c/txxdefs/ex/cyrecfnt
+%\c ld/t2d/txxdefs/ex/cyrecfnt
+% In general, latin-based setups are also supported
+%\c cm/ot1/null/cm/cyrcmfnt
+%\c ec/t1/txxdefs/ex/cyrecfnt
+%\c ae/t1/txxdefs/ex/cyrcmfnt
+
+% Which Russian hyphenation pattern to load (if not defined here,
+% the default from ruhyphen.tex will be used)
+%\def\Pattern{al}
+%\def\Pattern{as}
+%\def\Pattern{ct}
+%\def\Pattern{dv}
+%\def\Pattern{vl}
+%\def\Pattern{zn}
+
+% Whether to switch on hyphenation of words with explicit hyphens
+% (requires hyphenation patterns with hypht1.tex or hypht2.tex loaded!)
+\iftxxenc\lccode`\-=`\- \defaulthyphenchar=127 \fi
+
+% Whether to use input encoding selection (with active characters)
+\let\ifinpenc\iftrue
+%\let\ifinpenc\iffalse
+
+% Select the default input encoding (only if inputenc is activated).
+% Some possible choices for cyrillic:
+% cp1251, cp855, cp866, cp866av, cp866mav, cp866nav, cp866tat, ctt, dbk,
+% iso88595, isoir111, koi8-r, koi8-ru, koi8-u, maccyr, macukr, mik, mls,
+% mnk, mos, ncc
+%
+% Some possible choices for latin:
+% ansinew, applemac, ascii, cp1250, cp1252, cp437, cp437de, cp850,
+% cp852, cp865, decmulti, latin1, latin2, latin3, latin5, next
+% latin1jk, latin2jk, latin3jk
+% amigapl, mazovia
+% atari, isolatin, mac, pc850, roman8
+\def\definpenc{koi8-r}
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyrtex.ini b/Master/texmf-dist/tex/plain/cyrplain/cyrtex.ini
new file mode 100644
index 00000000000..def81c80380
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyrtex.ini
@@ -0,0 +1,2 @@
+\input cyrtex
+\dump
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyrtex.tex b/Master/texmf-dist/tex/plain/cyrplain/cyrtex.tex
new file mode 100644
index 00000000000..20c3d911e79
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyrtex.tex
@@ -0,0 +1,29 @@
+\catcode`\{=1
+\catcode`\}=2
+\catcode`\#=6
+\let\iftxxenc\iffalse
+\def\c#1/#2/#3/#4/#5 {\def\fontprefix{#1}\def\Encoding{#2}\input#3
+ \def\miprefix{#4}\def\fontdefs{#5}}
+\input cyrtex.cfg
+
+\let\next\font\long\def\font#1\undefined{\let\font\next\input\fontdefs
+ \let\next\lefthyphenmin\def\lefthyphenmin##1hyphen{\let\lefthyphenmin\next
+ \let\next\undefined\input hyphen.cfg}}
+\input plain
+\edef\fmtversion{\fmtversion-Cyr}
+
+\input txxextra
+
+%\input\Encoding defs
+\ifinpenc
+ \input plainenc
+ \fontencoding\Encoding
+ \inputencoding\definpenc
+\else
+ \let\PROTECT\relax\let\UNPROTECT\relax\def\makerobust#1{}
+\fi
+
+\catcode`\@=11
+\def\Russian{\set@hyphenmins22\language\l@russian}\let\Rus\Russian
+\def\English{\set@hyphenmins23\language\l@english}\let\Eng\English
+\catcode`\@=12
diff --git a/Master/texmf-dist/tex/plain/cyrplain/cyrtxinf.ini b/Master/texmf-dist/tex/plain/cyrplain/cyrtxinf.ini
new file mode 100644
index 00000000000..9f8821a6411
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/cyrtxinf.ini
@@ -0,0 +1,25 @@
+\input cyrtex
+\ifx\fontencoding\undefined\else
+ \def\putwordAppendix{\CYRP\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyre}
+ \def\putwordChapter{\CYRG\cyrl\cyra\cyrv\cyra}
+ \def\putwordfile{\cyrf\cyra\cyrishrt\cyrl}
+% \def\putwordInfo{Info}
+% \def\putwordMethodon{Method on}
+ \def\putwordon{\cyrn\cyra}
+ \def\putwordpage{\cyrs.}
+ \def\putwordsection{\cyrr\cyra\cyrz\cyrd\cyre\cyrl}
+ \def\putwordSection{\CYRR\cyra\cyrz\cyrd\cyre\cyrl}
+ \def\putwordsee{\cyrs\cyrm.}
+ \def\putwordSee{\CYRS\cyrm.}
+ \def\putwordShortContents{\CYRK\cyrr\cyra\cyrt\cyrk\cyro\cyre\ \cyrs\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre}
+ \def\putwordTableofContents{\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyre}
+\fi
+\catcode`\@=11
+\let\org@IeC\IeC
+\def\tmp@IeC#1{\realbackslash IeC\space{\realbackslash\expandafter\@gobble\string#1 }}
+\def\newrefx#1#2{\let\IeC\tmp@IeC\edef\reserved@a{#1}\let\IeC\org@IeC\orgrefx\reserved@a{#2}}
+\catcode`\@=12
+\input texinfo
+@let@orgrefx@refx
+@let@refx@newrefx
+@dump
diff --git a/Master/texmf-dist/tex/plain/cyrplain/makefmts.bat b/Master/texmf-dist/tex/plain/cyrplain/makefmts.bat
new file mode 100644
index 00000000000..6b2dff2638d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/makefmts.bat
@@ -0,0 +1,4 @@
+tex386.exe -i -8 -o -mt18000 cyrtex.ini
+tex386.exe -i -8 -o -mt18000 cyramstx.ini
+tex386.exe -i -8 -o -mt18000 cyrtxinf.ini
+tex386.exe -i -8 -o -mt18000 cyrblue.ini
diff --git a/Master/texmf-dist/tex/plain/cyrplain/makefmts.sh b/Master/texmf-dist/tex/plain/cyrplain/makefmts.sh
new file mode 100644
index 00000000000..05065946a88
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/makefmts.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+tex -ini -fmt=cyrtex -progname=tex cyrtex.ini
+tex -ini -fmt=cyramstex -progname=amstex cyramstx.ini
+tex -ini -fmt=cyrtexinfo -progname=texinfo cyrtxinf.ini
+tex -ini -fmt=cyrblue -progname=tex cyrblue.ini
+
+pdftex -ini -fmt=cyrpdftex -progname=pdftex cyrtex.ini
+pdftex -ini -fmt=cyrpdftexinfo -progname=pdftexinfo cyrtxinf.ini
diff --git a/Master/texmf-dist/tex/plain/cyrplain/plainenc.tex b/Master/texmf-dist/tex/plain/cyrplain/plainenc.tex
new file mode 100644
index 00000000000..c127997c0df
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/plainenc.tex
@@ -0,0 +1,252 @@
+% This is the file plainenc.tex of the T2 package.
+%
+% This file defines some commands for Plain TeX, so that it is able to
+% read (and interpret accordingly) some LaTeX files (unchanged), such as
+% inputenc.sty, font encoding definition files (lcyenc.def, t2aenc.def,
+% t1enc.def, etc.), and various input encoding definition files
+% (koi8-r.def, latin1.def, etc.).
+%
+% These definitions are the `minimal' possible. Probably, some
+% extensions will be needed.
+
+%\ProvidesFile{plainenc.tex}[1999/12/15 v0.1 inputenc support for Plain TeX]
+\ifx\inputencoding\undefined\else\expandafter\endinput\fi
+\chardef\atcatcode=\catcode`\@ \catcode`\@=11
+
+% load definitions from BABEL's plain.def (\adddialect should now be defined)
+\ifx\adddialect\undefined\let\adddialect\relax\let\protect\relax\fi
+\input plain.def
+
+\def\NeedsTeXFormat#1[#2]{}
+\def\ProvidesFile#1{%
+ \begingroup
+ \catcode`\ 10 %
+ \@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}}
+\def\@providesfile#1[#2]{%
+ \wlog{File: #1 #2}%
+ \expandafter\xdef\csname ver@#1\endcsname{#2}%
+ \endgroup}
+\let\ProvidesPackage\ProvidesFile % better than #1[#2] -> {}
+%\def\DeclareOption#1#2{\def\@OptionBody{#2}}
+%\def\ProcessOptions{\@OptionBody}
+\def\DeclareOption#1#2{}
+\def\ProcessOptions{}
+\newlinechar`\^^J
+\def\MessageBreak{^^J}
+
+\let\@empty\empty
+\long\def\@gobbletwo#1#2{}
+\let\@inmathwarn\@gobble
+
+\def\PackageWarning#1#2{\immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}}
+\def\PackageWarningNoLine#1#2{\PackageWarning{#1}{#2\@gobble}}
+\def\on@line{ on input line \the\inputlineno}
+\def\PackageError#1#2#3{\begingroup\let\protect\string
+ \errmessage{Package #1 Error: #2.^^J}\endgroup}
+\def\@latex@error#1{\PackageError{plainenc}{#1}{}}
+\def\@latex@info#1{\wlog{Info: #1}}
+
+\def\DeclareFontEncoding#1#2#3{%
+ \expandafter\let\csname#1-cmd\endcsname\@current@cmd
+% \expandafter\let\csname#1-tmcmd\endcsname\@current@tmcmd
+ \def\LastDeclaredEncoding{#1}}
+% special math setup is unneeded if only one font encoding is used
+\def\@current@cmd#1{%
+ \ifx\protect\@typeset@protect
+ \else
+ \noexpand#1\expandafter\@gobble
+ \fi}
+\def\DeclareFontSubstitution#1#2#3#4{}
+\def\DeclareErrorFont#1#2#3#4#5{}
+\def\DeclareSymbolFont#1#2#3#4#5{}
+\def\SetSymbolFont#1#2#3#4#5#6{}
+\def\DeclareSymbolFontAlphabet#1#2{}
+\def\DeclareMathAlphabet#1#2#3#4#5{}
+\def\SetMathAlphabet#1#2#3#4#5#6{}
+\def\DeclareMathSymbol#1#2#3#4{% simplified definition
+ \count@=#4 \advance\count@ "7000 \mathchardef#1\count@}
+
+\def\@unexpandable@protect{\noexpand\protect\noexpand}
+%\let\protect\@typeset@protect
+
+\def\protected@edef{%
+ \let\@@protect\protect
+ \let\protect\@unexpandable@protect
+ \afterassignment\restore@protect
+ \@edef}
+\def\protected@xdef{%
+ \let\@@protect\protect
+ \let\protect\@unexpandable@protect
+ \afterassignment\restore@protect
+ \@xdef}
+\def\restore@protect{\let\protect\@@protect}
+
+\let\@edef\edef
+\let\@xdef\xdef
+
+% redefine \input to be compatible with LaTeX (for inputenc.sty)
+\ifx\@@input\@undefined\let\@@input\input\fi
+\def\input{\@ifnextchar\bgroup\@iinput\@@input}
+\def\@iinput#1{\@@input#1 } % This is a simplified definition
+
+% this is used in cyrillic encoding definition files
+\def\@ifundefined#1{%
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\long\def\@secondoftwo#1#2{#2}
+
+% support for uppercase/lowercase
+\let\@uppercase\uppercase
+\let\@lowercase\lowercase
+\newtoks\@uclctoks
+\DeclareRobustCommand\uppercas@{\afterassignment\upperc@se\@uclctoks}
+\DeclareRobustCommand\lowercas@{\afterassignment\lowerc@se\@uclctoks}
+\def\upperc@se{{%
+ \def\i{I}\def\j{J}%
+ \def\reserved@a##1##2{\let##1##2\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\@uppercase\expandafter{\the\@uclctoks}}%
+ \reserved@a}}
+\def\lowerc@se{{%
+ \def\reserved@a##1##2{\let##2##1\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\@lowercase\expandafter{\the\@uclctoks}}%
+ \reserved@a}}
+\def\@uclclist{\oe\OE\o\O\ae\AE\dh\DH\dj\DJ\l\L\ng\NG\ss\SS\th\TH
+\cyra\CYRA\cyrabhch\CYRABHCH\cyrabhchdsc\CYRABHCHDSC\cyrabhdze
+\CYRABHDZE\cyrabhha\CYRABHHA\cyrae\CYRAE\cyrb\CYRB\cyrbyus
+\CYRBYUS\cyrc\CYRC\cyrch\CYRCH\cyrchldsc\CYRCHLDSC\cyrchrdsc
+\CYRCHRDSC\cyrchvcrs\CYRCHVCRS\cyrd\CYRD\cyrdelta\CYRDELTA
+\cyrdje\CYRDJE\cyrdze\CYRDZE\cyrdzhe\CYRDZHE\cyre\CYRE\cyreps
+\CYREPS\cyrerev\CYREREV\cyrery\CYRERY\cyrf\CYRF\cyrfita
+\CYRFITA\cyrg\CYRG\cyrgdsc\CYRGDSC\cyrgdschcrs\CYRGDSCHCRS
+\cyrghcrs\CYRGHCRS\cyrghk\CYRGHK\cyrgup\CYRGUP\cyrh\CYRH
+\cyrhdsc\CYRHDSC\cyrhhcrs\CYRHHCRS\cyrhhk\CYRHHK\cyrhrdsn
+\CYRHRDSN\cyri\CYRI\cyrie\CYRIE\cyrii\CYRII\cyrishrt\CYRISHRT
+\cyrishrtdsc\CYRISHRTDSC\cyrizh\CYRIZH\cyrje\CYRJE\cyrk\CYRK
+\cyrkbeak\CYRKBEAK\cyrkdsc\CYRKDSC\cyrkhcrs\CYRKHCRS\cyrkhk
+\CYRKHK\cyrkvcrs\CYRKVCRS\cyrl\CYRL\cyrldsc\CYRLDSC\cyrlhk
+\CYRLHK\cyrlje\CYRLJE\cyrm\CYRM\cyrmdsc\CYRMDSC\cyrmhk\CYRMHK
+\cyrn\CYRN\cyrndsc\CYRNDSC\cyrng\CYRNG\cyrnhk\CYRNHK\cyrnje
+\CYRNJE\cyrnlhk\CYRNLHK\cyro\CYRO\cyrotld\CYROTLD\cyrp\CYRP
+\cyrphk\CYRPHK\cyrq\CYRQ\cyrr\CYRR\cyrrdsc\CYRRDSC\cyrrhk
+\CYRRHK\cyrrtick\CYRRTICK\cyrs\CYRS\cyrsacrs\CYRSACRS
+\cyrschwa\CYRSCHWA\cyrsdsc\CYRSDSC\cyrsemisftsn\CYRSEMISFTSN
+\cyrsftsn\CYRSFTSN\cyrsh\CYRSH\cyrshch\CYRSHCH\cyrshha\CYRSHHA
+\cyrt\CYRT\cyrtdsc\CYRTDSC\cyrtetse\CYRTETSE\cyrtshe\CYRTSHE
+\cyru\CYRU\cyrushrt\CYRUSHRT\cyrv\CYRV\cyrw\CYRW\cyry\CYRY
+\cyrya\CYRYA\cyryat\CYRYAT\cyryhcrs\CYRYHCRS\cyryi\CYRYI\cyryo
+\CYRYO\cyryu\CYRYU\cyrz\CYRZ\cyrzdsc\CYRZDSC\cyrzh\CYRZH
+\cyrzhdsc\CYRZHDSC}
+\def\PROTECT{%
+ \let\uppercase\uppercas@\let\lowercase\lowercas@
+ \let\edef\protected@edef\let\xdef\protected@xdef}
+\def\UNPROTECT{%
+ \let\uppercase\@uppercase\let\lowercase\@lowercase
+ \let\edef\@edef\let\xdef\@xdef}
+\PROTECT
+
+\let\org@write\write
+\let\org@immediate\immediate
+\DeclareRobustCommand\write{\afterassignment\write@a\count@}
+\def\immediate#1{\ifx#1\write\def\immediate@{\org@immediate}\fi\org@immediate#1}
+\let\immediate@\@empty
+\long\def\write@a#1{%
+ \begingroup
+ \let\thepage\relax
+ \let\protect\@unexpandable@protect
+% \@edef\reserved@a{\expandafter\noexpand\immediate@\org@write\the\count@{#1}}%
+% \reserved@a
+ \immediate@\org@write\the\count@{#1}%
+ \endgroup
+ \let\immediate@\@empty}
+
+% make handling of protected commands within whatsits correct:
+\let\org@shipout\shipout
+\def\shipout#1#2{\begingroup\setbox0=#1{#2}\let\protect\noexpand\org@shipout\box0\endgroup}
+
+% avoid problems in references with russian letters (e.g. in Texinfo)
+% (experimental code):
+%\def\DeclareTextSymbol#1#2#3{%
+% \@dec@text@cmd\chardef@hack#1{#2}#3\relax
+%}
+%\def\chardef@hack#1#2{%
+% \bgroup
+% \lccode`\0=#2
+% \lowercase{
+% \egroup
+% \let#1=0
+% }
+% \show#1
+%}
+
+% for inputenc files
+\def\makeatletter{\catcode`\@11\relax}
+\def\makeatother{\catcode`\@12\relax}
+
+\ifx\Orb\undefined
+ \message{^^J* Please get newer version of plain.tex from^^J%
+ * CTAN:systems/knuth/lib/plain.tex^^J* Aborting.^^J^^J}\end
+\fi
+\def\textcircled#1{{\ooalign{\hfil\raise.07ex\hbox{#1}\hfil\crcr\Orb}}}
+%\let\textlatin\rm
+
+\def\fontencoding#1{\makeatletter
+ \UNPROTECT % \lowercase for \DeclareTextComposite
+ \@lowercase{\input{#1enc.def}}%
+ \PROTECT
+ \@edef\cf@encoding{\@uppercase{\def\noexpand\cf@encoding{#1}}}%
+ \cf@encoding
+ \makeatother}
+\input inputenc.sty
+\let\org@inputencoding\inputencoding
+\def\inputencoding#1{\UNPROTECT % \uppercase, \edef
+ \org@inputencoding{#1}%
+ \PROTECT}
+
+% definitions of some LaTeX macros used in enc.def and .def files
+\def\sh@ft#1{\dimen@.00#1ex\multiply\dimen@\fontdimen1\font\kern-.0156\dimen@}
+\chardef\@xxxii=32
+\def\hb@xt@{\hbox to}
+\def\@tabacckludge#1{\expandafter\@changed@cmd
+ \csname\string#1\endcsname\relax}
+\DeclareRobustCommand{\ensuremath}{%
+ \ifmmode
+ \expandafter\@firstofone
+ \else
+ \expandafter\@ensuredmath
+ \fi}
+\long\def\@ensuredmath#1{$\relax#1$}
+\def\TextSymbolUnavailable#1{\@latex@error{%
+ Command \protect#1 unavailable in encoding \cf@encoding}}
+\def\textbullet{{\tensy\char15}}
+\def\textperiodcentered{{\tensy\char1}}
+%\font\tensmc=cmcsc10
+%\DeclareTextCommandDefault{\textregistered}{\textcircled{\tensmc r}}
+\DeclareTextCommandDefault{\texttrademark}{\textsuperscript{TM}}
+\DeclareTextCommandDefault{\SS}{SS}
+\DeclareTextCommandDefault{\textordfeminine}{\textsuperscript{a}}
+\DeclareTextCommandDefault{\textordmasculine}{\textsuperscript{o}}
+\DeclareRobustCommand*\textsuperscript[1]{%
+ {\m@th\ensuremath{^{\hbox{\sevenrm#1}}}}}
+\DeclareRobustCommand{\nobreakspace}{\leavevmode\nobreak\ }
+%\DeclareRobustCommand{\pounds}{%
+% \ifmmode\mathsterling\else\textsterling\fi}
+%\def\mathsterling{\mathit{\mathchar"7024}}
+%\def\mathit#1{{\it#1}}
+\def\frac#1#2{{\begingroup#1\endgroup\over#2}}
+\def\@height{height} \def\@depth{depth} \def\@width{width}
+\def\hmode@bgroup{\leavevmode\bgroup}
+
+% a helper command
+\def\makerobust#1{\expandafter\let\csname\expandafter
+ \@gobble\string#1 \endcsname#1%
+ \@edef#1{\noexpand\protect\expandafter\noexpand\csname\expandafter
+ \@gobble\string#1 \endcsname}}
+
+\catcode`\@=\atcatcode \let\atcatcode\undefined
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/cyrplain/txxdefs.tex b/Master/texmf-dist/tex/plain/cyrplain/txxdefs.tex
new file mode 100644
index 00000000000..be56c4b7570
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/txxdefs.tex
@@ -0,0 +1,38 @@
+% setup {cat,uc,lc,sf,math}code values for T* font encodings
+\expandafter\ifx\csname txxfam\endcsname\relax
+ \def\txxfam{0}
+\fi
+\def\letter#1 #2 {%
+ \ifnum\catcode#1=13\else\catcode#1=11 \catcode#2=11 \fi
+ \uccode#1=#1 \uccode#2=#1
+ \lccode#1=#2 \lccode#2=#2
+ \sfcode#1=999 \sfcode#2=1000
+ \count255=#1 \advance\count255 "7\txxfam 00 \mathcode#1=\count255
+ \count255=#2 \advance\count255 "7\txxfam 00 \mathcode#2=\count255
+}
+\letter 128 160 \letter 129 161 \letter 130 162 \letter 131 163
+\letter 132 164 \letter 133 165 \letter 134 166 \letter 135 167
+\letter 136 168 \letter 137 169 \letter 138 170 \letter 139 171
+\letter 140 172 \letter 141 173 \letter 142 174 \letter 143 175
+\letter 144 176 \letter 145 177 \letter 146 178 \letter 147 179
+\letter 148 180 \letter 149 181 \letter 150 182 \letter 151 183
+\letter 152 184 \letter 153 185 \letter 154 186 \letter 155 187
+\letter 156 188
+\letter 192 224 \letter 193 225 \letter 194 226 \letter 195 227
+\letter 196 228 \letter 197 229 \letter 198 230 \letter 199 231
+\letter 200 232 \letter 201 233 \letter 202 234 \letter 203 235
+\letter 204 236 \letter 205 237 \letter 206 238 \letter 207 239
+\letter 208 240 \letter 209 241 \letter 210 242 \letter 211 243
+\letter 212 244 \letter 213 245 \letter 214 246 \letter 215 247
+\letter 216 248 \letter 217 249 \letter 218 250 \letter 219 251
+\letter 220 252 \letter 221 253 \letter 222 254 \letter 223 255
+\let\letter\undefined
+\lccode 25=25 \uccode 25=73 \lccode 26=26 \uccode 26=74 \lccode 27=27
+\lccode 157=105 \uccode 157=157 \mathcode 157="7\txxfam 9D
+\lccode 158=158 \uccode 158=208 \mathcode 158="7\txxfam 9E
+\lccode 159=0 \uccode 159=0 \mathcode 159="7\txxfam 9F
+\lccode 189=0 \uccode 189=0 \mathcode 189="7\txxfam BD
+\lccode 190=0 \uccode 190=0 \mathcode 190="7\txxfam BE
+\lccode 191=0 \uccode 191=0 \mathcode 191="7\txxfam BF
+\let\iftxxenc\iftrue
+\endinput
diff --git a/Master/texmf-dist/tex/plain/cyrplain/txxextra.tex b/Master/texmf-dist/tex/plain/cyrplain/txxextra.tex
new file mode 100644
index 00000000000..6ce4041f5b2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/cyrplain/txxextra.tex
@@ -0,0 +1,27 @@
+\def\next{ex}\ifx\next\miprefix
+\mathchardef\Gamma="0180
+\mathchardef\Delta="0181
+\mathchardef\Theta="0182
+\mathchardef\Lambda="0183
+\mathchardef\Xi="0184
+\mathchardef\Pi="0185
+\mathchardef\Sigma="0186
+\mathchardef\Upsilon="0187
+\mathchardef\Phi="0188
+\mathchardef\Psi="0189
+\mathchardef\Omega="018A
+\fi\let\next\undefined
+
+\iftxxenc
+\def\aa{\r a}
+\def\AA{\r A}
+\def\acute{\mathaccent"7001 }
+\def\grave{\mathaccent"7000 }
+\def\ddot{\mathaccent"7004 }
+\def\tilde{\mathaccent"7003 }
+\def\bar{\mathaccent"7009 }
+\def\breve{\mathaccent"7008 }
+\def\check{\mathaccent"7007 }
+\def\hat{\mathaccent"7002 }
+\def\dot{\mathaccent"700A }
+\fi
diff --git a/Master/texmf-dist/tex/plain/devanagr/dnmacs.tex b/Master/texmf-dist/tex/plain/devanagr/dnmacs.tex
new file mode 100644
index 00000000000..00f3e8123dd
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/devanagr/dnmacs.tex
@@ -0,0 +1,530 @@
+%
+% dnmacs.tex v2.12 alpha 11
+%
+% Plain TeX macros for Devanagari for TeX package
+% Copyright (C) 1991-2003 University of Groningen, The Netherlands
+%
+% Author : Frans J. Velthuis <velthuis@rc.rug.nl>
+% Maintainer : John Smith <jds10@cam.ac.uk>
+% Anshuman Pandey <apandey@u.washington.edu>
+% Kevin Carmody <i@kevincarmody.com>
+% Date : 14 March 2005
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 1, or (at your option)
+% any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+%
+% Master Devanagari mode macro
+%
+% Define the basic \dn macro for entering Devanagari mode.
+%
+\def\dn{\dnmodetrue\ifdnpenfont\ifdnbombayfont\pdnpbom\else\ifdncalcuttafont%
+\pdnpcal\else\pdnp\fi\fi\else\ifdnbombayfont\ifdnboldfont\ifdnitalfont%
+\pdnbombi\else\pdnbomb\fi\else\ifdnitalfont\pdnbomi\else\pdnbom\fi\fi%
+\else\ifdncalcuttafont\ifdnboldfont\ifdnitalfont\pdncalbi\else\pdncalb\fi%
+\else\ifdnitalfont\pdncali\else\pdncal\fi\fi\else\ifdnboldfont\ifdnitalfont%
+\pdnbi\else\pdnb\fi\else\ifdnitalfont\pdni\else\pdn\fi\fi\fi\fi\fi%
+\baselineskip=\dnblskip
+\chnum=0
+\loop\catcode\chnum=11
+\ifnum\chnum<12\advance\chnum by1
+\repeat
+\chnum=14
+\loop\catcode\chnum=11
+\ifnum\chnum<31\advance\chnum by1
+\repeat
+\catcode127=11
+\tolerance=10000
+\pretolerance=10000
+\language=\nohyphenation}
+%
+% Alternate, bold, italic, and size modes
+%
+% Use these macros in DN files to switch modes, either inside or outside
+% Devanagari mode. Alternate, bold, italic, and size macros may be mixed
+% and still produce proper results. Examples:
+%
+% \dnbombay {\dn atha yogaanu"saasanam}
+% {\dn\dnbomay atha yogaanu"saasanam}
+% {\dn\dnbig\dnbf atha yogaanu"saasanam}
+% {\dn {\dnbombay\dnbig a}tha yogaanu"saasanam}
+%
+% Definition of \dnoriginal
+%
+\def\dnoriginal{\dnbombayfontfalse\dncalcuttafontfalse\ifdnmode%
+\ifdnboldfont\ifdnitalfont\pdnbi\else\pdnb\fi\else\ifdnitalfont%
+\pdni\else\pdn\fi\fi\fi}
+%
+% Definition of \dnbombay
+%
+\def\dnbombay{\dnbombayfonttrue\dncalcuttafontfalse\ifdnmode%
+\ifdnboldfont\ifdnitalfont\pdnbombi\else\pdnbomb\fi\else\ifdnitalfont%
+\pdnbomi\else\pdnbom\fi\fi\fi}
+%
+% Definition of \dncalcutta
+%
+\def\dncalcutta{\dncalcuttafonttrue\dnbombayfontfalse\ifdnmode%
+\ifdnboldfont\ifdnitalfont\pdncalbi\else\pdncalb\fi\else\ifdnitalfont%
+\pdncali\else\pdncal\fi\fi\fi}
+%
+% Definition of \dnbf for bold
+%
+\def\dnbf{\dnboldfonttrue\ifdnmode\ifdnbombayfont\ifdnitalfont%
+\pdnbombi\else\pdnbomb\fi\else\ifdncalcuttafont\ifdnitalfont%
+\pdncalbi\else\pdncalb\fi\else\ifdnitalfont\pdnbi\else\pdnb\fi\fi\fi\fi}
+%
+% Definition of \dnit for italics
+%
+\def\dnit{\dnitalfonttrue\ifdnmode\ifdnbombayfont\ifdnboldfont%
+\pdnbombi\else\pdnbomi\fi\else\ifdncalcuttafont\ifdnboldfont%
+\pdncalbi\else\pdncali\fi\else\ifdnboldfont\pdnbi\else\pdni\fi\fi\fi\fi}
+%
+% Definition of \dnpen
+%
+\def\dnpen{\dnpenfonttrue\ifdnmode\ifdnbombayfont\pdnpbom\else%
+\ifdncalcuttafont\pdnpcal\else\pdnp\fi\fi\fi}
+%
+% Definition of various sizes
+%
+% \dnsmall: 8pt font, 12pt baselineskip
+\def\dnsmall{\let\pdn=\smalldn\let\pdnb=\smalldnb%
+\let\pdni=\smalldni\let\pdnbi=\smalldnbi%
+\let\pdnbom=\smalldnbom\let\pdnbomb=\smalldnbomb%
+\let\pdnbomi=\smalldnbomi\let\pdnbombi=\smalldnbombi%
+\let\pdncal=\smalldncal\let\pdncalb=\smalldncalb%
+\let\pdncali=\smalldncali\let\pdncalbi=\smalldncalbi%
+\let\pdnp=\smalldnp\let\pdnpbom=\smalldnpbom\let\pdnpcal=\smalldnpcal%
+\let\rsize=\smallcr\dnblskip=12pt\ifdnsamavedamode\dnsmalltf\fi%
+\ifdnmode\dn\fi}
+%
+% \dnnine: 9pt font, 13.5pt baselineskip
+\def\dnnine{\let\pdn=\ninedn\let\pdnb=\ninednb%
+\let\pdni=\ninedni\let\pdnbi=\ninednbi%
+\let\pdnbom=\ninednbom\let\pdnbomb=\ninednbomb%
+\let\pdnbomi=\ninednbomi\let\pdnbombi=\ninednbombi%
+\let\pdncal=\ninedncal\let\pdncalb=\ninedncalb%
+\let\pdncali=\ninedncali\let\pdncalbi=\ninedncalbi%
+\let\pdnp=\ninednp\let\pdnpbom=\ninednpbom\let\pdnpcal=\ninednpcal%
+\let\rsize=\ninecr\dnblskip=13.5pt\ifdnsamavedamode\dnninetf\fi%
+\ifdnmode\dn\fi}
+%
+% \dnnormal: 10pt font, 15pt baselineskip
+\def\dnnormal{\let\pdn=\dvng\let\pdnb=\dvngb%
+\let\pdni=\dvngi\let\pdnbi=\dvngbi%
+\let\pdnbom=\dvngbom\let\pdnbomb=\dvngbomb%
+\let\pdnbomi=\dvngbomi\let\pdnbombi=\dvngbombi%
+\let\pdncal=\dvngcal\let\pdncalb=\dvngcalb%
+\let\pdncali=\dvngcali\let\pdncalbi=\dvngcalbi%
+\let\pdnp=\dvngp\let\pdnpbom=\dvngpbom\let\pdnpcal=\dvngpcal%
+\let\rsize=\rm\dnblskip=15pt\ifdnsamavedamode\dnnormaltf\fi%
+\ifdnmode\dn\fi}
+%
+% \dnhalf: 11pt font, 16.5pt baselineskip
+\def\dnhalf{\let\pdn=\halfdn\let\pdnb=\halfdnb%
+\let\pdni=\halfdni\let\pdnbi=\halfdnbi%
+\let\pdnbom=\halfdnbom\let\pdnbomb=\halfdnbomb%
+\let\pdnbomi=\halfdnbomi\let\pdnbombi=\halfdnbombi%
+\let\pdncal=\halfdncal\let\pdncalb=\halfdncalb%
+\let\pdncali=\halfdncali\let\pdncalbi=\halfdncalbi%
+\let\pdnp=\halfdnp\let\pdnpbom=\halfdnpbom\let\pdnpcal=\halfdnpcal%
+\let\rsize=\halfcr\dnblskip=16.5pt\ifdnsamavedamode\dnhalftf\fi%
+\ifdnmode\dn\fi}
+%
+% \dnbig: 12pt font, 18pt baselineskip
+\def\dnbig{\let\pdn=\bigdn\let\pdnb=\bigdnb%
+\let\pdni=\bigdni\let\pdnbi=\bigdnbi%
+\let\pdnbom=\bigdnbom\let\pdnbomb=\bigdnbomb%
+\let\pdnbomi=\bigdnbomi\let\pdnbombi=\bigdnbombi%
+\let\pdncal=\bigdncal\let\pdncalb=\bigdncalb%
+\let\pdncali=\bigdncali\let\pdncalbi=\bigdncalbi%
+\let\pdnp=\bigdnp\let\pdnpbom=\bigdnpbom\let\pdnpcal=\bigdnpcal%
+\let\rsize=\bigcr\dnblskip=18pt\ifdnsamavedamode\dnbigtf\fi%
+\ifdnmode\dn\fi}
+%
+% \dnlarge: 14.4pt font, 22pt baselineskip
+\def\dnlarge{\let\pdn=\largedn\let\pdnb=\largednb%
+\let\pdni=\largedni\let\pdnbi=\largednbi%
+\let\pdnbom=\largednbom\let\pdnbomb=\largednbomb%
+\let\pdnbomi=\largednbomi\let\pdnbombi=\largednbombi%
+\let\pdncal=\largedncal\let\pdncalb=\largedncalb%
+\let\pdncali=\largedncali\let\pdncalbi=\largedncalbi%
+\let\pdnp=\largednp\let\pdnpbom=\largednpbom\let\pdnpcal=\largednpcal%
+\let\rsize=\largecr\dnblskip=22pt\ifdnsamavedamode\dnlargetf\fi%
+\ifdnmode\dn\fi}
+%
+% \dnhuge: 17.3pt font, 26pt baselineskip
+\def\dnhuge{\let\pdn=\hugedn\let\pdnb=\hugednb%
+\let\pdni=\hugedni\let\pdnbi=\hugednbi%
+\let\pdnbom=\hugednbom\let\pdnbomb=\hugednbomb%
+\let\pdnbomi=\hugednbomi\let\pdnbombi=\hugednbombi%
+\let\pdncal=\hugedncal\let\pdncalb=\hugedncalb%
+\let\pdncali=\hugedncali\let\pdncalbi=\hugedncalbi%
+\let\pdnp=\hugednp\let\pdnpbom=\hugednpbom\let\pdnpcal=\hugednpcal%
+\let\rsize=\hugecr\dnblskip=26pt\ifdnsamavedamode\dnhugetf\fi%
+\ifdnmode\dn\fi}
+%
+% Numeral modes
+%
+% Use these macros in DN files to control the numeral display style.
+%
+\def\dnnum{\let\nstyle=d}
+\def\cmnum{\let\nstyle=r}
+\def\rn#1{\if\nstyle r{\rsize #1}\else#1\fi}
+%
+% Vedic intonation mark macros
+%
+% Use these macros in DN files to enable and use Vedic intonation macros.
+%
+\def\dnveda{\dnvedamodetrue%
+\def\_{\anudatta}%
+\def\|{\svarita}%
+\def\~{\padasep}}
+%
+\def\dnfixedanudatta{\dnanudattafixedtrue}%
+\def\dnvariableanudatta{\dnanudattafixedfalse}%
+%
+\def\dnsamaveda{\dnsamavedamodetrue%
+\def\^{\samatone}%
+\def\@{\vedicanusvara}%
+\ifdnsamavedafont\else%
+\font\sixdn=dvng10 at 6pt%
+\font\sixdnbom=dvnb10 at 6pt%
+\font\sixdncal=dvnc10 at 6pt%
+\font\sixdnp=dvpn10 at 6pt%
+\font\sixdnpbom=dvpb10 at 6pt%
+\font\sixdnpcal=dvpc10 at 6pt%
+\font\sevendn=dvng10 at 7pt%
+\font\sevendnbom=dvnb10 at 7pt%
+\font\sevendncal=dvnc10 at 7pt%
+\font\sevendnp=dvpn10 at 7pt%
+\font\sevendnpbom=dvpb10 at 7pt%
+\font\sevendnpcal=dvpc10 at 7pt%
+\dnsamavedafonttrue%
+\fi%
+\ifx\pdn\smalldn\dnsmalltf\else%
+\ifx\pdn\ninedn\dnninetf\else%
+\ifx\pdn\halfdn\dnhalftf\else%
+\ifx\pdn\bigdn\dnbigtf\else%
+\ifx\pdn\largedn\dnlargetf\else%
+\ifx\pdn\hugedn\dnhugetf\else%
+\dnnormaltf\fi\fi\fi\fi\fi\fi}
+%
+\def\anudatta#1{\leavevmode\setbox0=\hbox{#1}%
+\anudep=\dp0\anuwid=\wd0\advance\anudep by 0.7ex%
+\ifdnanudattafixed{#1}\llap{\lower\anudep%
+\hbox to\anuwid{\hss\vrule width0.5em height0.07em\hss}}%
+\else\advance\anuwid by -0.1em{#1}\llap{\lower\anudep%
+\hbox{\vrule width\anuwid height0.07em}%
+\hbox{\phantom{\vrule width0.1em height0.08em}}}\fi}
+%
+\def\svarita#1{\leavevmode\hbox{#1}%
+\llap{\raise5.7ex\hbox{\vrule height2.5ex width0.08em}%
+\hbox{\phantom{\vrule height2.5ex width0.15em}}}}
+%
+\def\padasep{\leavevmode\hbox{%
+\kern-0.15em\raise2.42ex\hbox{\char255}%
+\kern-0.15em\raise2.42ex\hbox{\char255}%
+\kern-0.15em\raise2.42ex\hbox{\char255}}}
+%
+\def\samatone#1#2{\leavevmode\hbox{#1}%
+\llap{\raise9.5ex\hbox{\dnnum\dntf #2}%
+\hbox{\phantom{\vrule height2.5ex width0.15em}}}}
+%
+\def\vedicanusvara{\leavevmode{\kern1.0ex\lower1.5ex\hbox{\char32}}%
+\kern-2.0ex\raise3.7ex\llap{\char94}\kern3.8ex}
+%
+% Macros for selection of Sama Veda tone font \dntf
+%
+\def\dnsmalltf{\ifdnpenfont\ifdnbombayfont\let\dntf=\sixdnpbom\else%
+\ifdncalcuttafont\let\dntf=\sixdnpcal\else\let\dntf=\sixdnp\fi\fi%
+\else\ifdnbombayfont\let\dntf=\sixdnbom\else%
+\ifdncalcuttafont\let\dntf=\sixdncal\else\let\dntf=\sixdn\fi\fi\fi}
+%
+\def\dnninetf{\ifdnpenfont\ifdnbombayfont\let\dntf=\sixdnpbom\else%
+\ifdncalcuttafont\let\dntf=\sixdnpcal\else\let\dntf=\sixdnp\fi\fi%
+\else\ifdnbombayfont\let\dntf=\sixdnbom\else%
+\ifdncalcuttafont\let\dntf=\sixdncal\else\let\dntf=\sixdn\fi\fi\fi}
+%
+\def\dnnormaltf{\ifdnpenfont\ifdnbombayfont\let\dntf=\sevendnpbom\else%
+\ifdncalcuttafont\let\dntf=\sevendnpcal\else\let\dntf=\sevendnp\fi\fi%
+\else\ifdnbombayfont\let\dntf=\sevendnbom\else%
+\ifdncalcuttafont\let\dntf=\sevendncal\else\let\dntf=\sevendn\fi\fi\fi}
+%
+\def\dnhalftf{\ifdnpenfont\ifdnbombayfont\let\dntf=\smalldnpbom\else%
+\ifdncalcuttafont\let\dntf=\smalldnpcal\else\let\dntf=\smalldnp\fi\fi%
+\else\ifdnbombayfont\let\dntf=\smalldnbom\else%
+\ifdncalcuttafont\let\dntf=\smalldncal\else\let\dntf=\smalldn\fi\fi}
+%
+\def\dnbigtf{\ifdnpenfont\ifdnbombayfont\let\dntf=\smalldnpbom\else%
+\ifdncalcuttafont\let\dntf=\smalldnpcal\else\let\dntf=\smalldnp\fi\fi%
+\else\ifdnbombayfont\let\dntf=\smalldnbom\else%
+\ifdncalcuttafont\let\dntf=\smalldncal\else\let\dntf=\smalldn\fi\fi}
+%
+\def\dnlargetf{\ifdnpenfont\ifdnbombayfont\let\dntf=\dvngpbom\else%
+\ifdncalcuttafont\let\dntf=\dvngpcal\else\let\dntf=\dvngp\fi\fi%
+\else\ifdnbombayfont\let\dntf=\dvngbom\else%
+\ifdncalcuttafont\let\dntf=\dvngcal\else\let\dntf=\dvng\fi\fi}
+%
+\def\dnhugetf{\ifdnpenfont\ifdnbombayfont\let\dntf=\bigdnpbom\else%
+\ifdncalcuttafont\let\dntf=\bigdnpcal\else\let\dntf=\bigdnp\fi\fi%
+\else\ifdnbombayfont\let\dntf=\bigdnbom\else%
+\ifdncalcuttafont\let\dntf=\bigdncal\else\let\dntf=\bigdn\fi\fi}
+%
+% Devanagari Fonts
+%
+\font\smalldn=dvng8
+\font\smalldnb=dvngb10 at 8pt
+\font\smalldni=dvngi10 at 8pt
+\font\smalldnbi=dvngbi10 at 8pt
+\font\smalldnbom=dvnb8
+\font\smalldnbomb=dvnbb10 at 8pt
+\font\smalldnbomi=dvnbi10 at 8pt
+\font\smalldnbombi=dvnbbi10 at 8pt
+\font\smalldncal=dvnc8
+\font\smalldncalb=dvncb10 at 8pt
+\font\smalldncali=dvnci10 at 8pt
+\font\smalldncalbi=dvncbi10 at 8pt
+\font\smalldnp=dvpn8
+\font\smalldnpbom=dvpb8
+\font\smalldnpcal=dvpc8
+\font\ninedn=dvng9
+\font\ninednb=dvngb10 at 9pt
+\font\ninedni=dvngi10 at 9pt
+\font\ninednbi=dvngbi10 at 9pt
+\font\ninednbom=dvnb9
+\font\ninednbomb=dvnbb10 at 9pt
+\font\ninednbomi=dvnbi10 at 9pt
+\font\ninednbombi=dvnbbi10 at 9pt
+\font\ninedncal=dvnc9
+\font\ninedncalb=dvncb10 at 9pt
+\font\ninedncali=dvnci10 at 9pt
+\font\ninedncalbi=dvncbi10 at 9pt
+\font\ninednp=dvpn9
+\font\ninednpbom=dvpb9
+\font\ninednpcal=dvpc9
+\font\dvng=dvng10
+\font\dvngb=dvngb10
+\font\dvngi=dvngi10
+\font\dvngbi=dvngbi10
+\font\dvngbom=dvnb10
+\font\dvngbomb=dvnbb10
+\font\dvngbomi=dvnbi10
+\font\dvngbombi=dvnbbi10
+\font\dvngcal=dvnc10
+\font\dvngcalb=dvncb10
+\font\dvngcali=dvnci10
+\font\dvngcalbi=dvncbi10
+\font\dvngp=dvpn10
+\font\dvngpbom=dvpb10
+\font\dvngpcal=dvpc10
+\font\halfdn=dvng10 scaled\magstephalf
+\font\halfdnb=dvngb10 scaled\magstephalf
+\font\halfdni=dvngi10 scaled\magstephalf
+\font\halfdnbi=dvngbi10 scaled\magstephalf
+\font\halfdnbom=dvnb10 scaled\magstephalf
+\font\halfdnbomb=dvnbb10 scaled\magstephalf
+\font\halfdnbomi=dvnbi10 scaled\magstephalf
+\font\halfdnbombi=dvnbbi10 scaled\magstephalf
+\font\halfdncal=dvnc10 scaled\magstephalf
+\font\halfdncalb=dvncb10 scaled\magstephalf
+\font\halfdncali=dvnci10 scaled\magstephalf
+\font\halfdncalbi=dvncbi10 scaled\magstephalf
+\font\halfdnp=dvpn10 scaled\magstephalf
+\font\halfdnpbom=dvpb10 scaled\magstephalf
+\font\halfdnpcal=dvpc10 scaled\magstephalf
+\font\bigdn=dvng10 scaled\magstep1
+\font\bigdnb=dvngb10 scaled\magstep1
+\font\bigdni=dvngi10 scaled\magstep1
+\font\bigdnbi=dvngbi10 scaled\magstep1
+\font\bigdnbom=dvnb10 scaled\magstep1
+\font\bigdnbomb=dvnbb10 scaled\magstep1
+\font\bigdnbomi=dvnbi10 scaled\magstep1
+\font\bigdnbombi=dvnbbi10 scaled\magstep1
+\font\bigdncal=dvnc10 scaled\magstep1
+\font\bigdncalb=dvncb10 scaled\magstep1
+\font\bigdncali=dvnci10 scaled\magstep1
+\font\bigdncalbi=dvncbi10 scaled\magstep1
+\font\bigdnp=dvpn10 scaled\magstep1
+\font\bigdnpbom=dvpb10 scaled\magstep1
+\font\bigdnpcal=dvpc10 scaled\magstep1
+\font\largedn=dvng10 scaled\magstep2
+\font\largednb=dvngb10 scaled\magstep2
+\font\largedni=dvngi10 scaled\magstep2
+\font\largednbi=dvngbi10 scaled\magstep2
+\font\largednbom=dvnb10 scaled\magstep2
+\font\largednbomb=dvnbb10 scaled\magstep2
+\font\largednbomi=dvnbi10 scaled\magstep2
+\font\largednbombi=dvnbbi10 scaled\magstep2
+\font\largedncal=dvnc10 scaled\magstep2
+\font\largedncalb=dvncb10 scaled\magstep2
+\font\largedncali=dvnci10 scaled\magstep2
+\font\largedncalbi=dvncbi10 scaled\magstep2
+\font\largednp=dvpn10 scaled\magstep2
+\font\largednpbom=dvpb10 scaled\magstep2
+\font\largednpcal=dvpc10 scaled\magstep2
+\font\hugedn=dvng10 scaled\magstep3
+\font\hugednb=dvngb10 scaled\magstep3
+\font\hugedni=dvngi10 scaled\magstep3
+\font\hugednbi=dvngbi10 scaled\magstep3
+\font\hugednbom=dvnb10 scaled\magstep3
+\font\hugednbomb=dvnbb10 scaled\magstep3
+\font\hugednbomi=dvnbi10 scaled\magstep3
+\font\hugednbombi=dvnbbi10 scaled\magstep3
+\font\hugedncal=dvnc10 scaled\magstep3
+\font\hugedncalb=dvncb10 scaled\magstep3
+\font\hugedncali=dvnci10 scaled\magstep3
+\font\hugedncalbi=dvncbi10 scaled\magstep3
+\font\hugednp=dvpn10 scaled\magstep3
+\font\hugednpbom=dvpb10 scaled\magstep3
+\font\hugednpcal=dvpc10 scaled\magstep3
+%
+% Hyphenation
+%
+\def\sethyph#1{
+\hyphenchar\smalldn=#1\hyphenchar\smalldnb=#1
+\hyphenchar\smalldni=#1\hyphenchar\smalldnbi=#1
+\hyphenchar\smalldnbom=#1\hyphenchar\smalldnbomb=#1
+\hyphenchar\smalldnbomi=#1\hyphenchar\smalldnbombi=#1
+\hyphenchar\smalldncal=#1\hyphenchar\smalldncalb=#1
+\hyphenchar\smalldncali=#1\hyphenchar\smalldncalbi=#1
+\hyphenchar\smalldnp=#1\hyphenchar\smalldnpbom=#1\hyphenchar\smalldnpcal=#1
+\hyphenchar\ninedn=#1\hyphenchar\ninednb=#1
+\hyphenchar\ninedni=#1\hyphenchar\ninednbi=#1
+\hyphenchar\ninednbom=#1\hyphenchar\ninednbomb=#1
+\hyphenchar\ninednbomi=#1\hyphenchar\ninednbombi=#1
+\hyphenchar\ninedncal=#1\hyphenchar\ninedncalb=#1
+\hyphenchar\ninedncali=#1\hyphenchar\ninedncalbi=#1
+\hyphenchar\ninednp=#1\hyphenchar\ninednpbom=#1\hyphenchar\ninednpcal=#1
+\hyphenchar\dvng=#1\hyphenchar\dvngb=#1
+\hyphenchar\dvngi=#1\hyphenchar\dvngbi=#1
+\hyphenchar\dvngbom=#1\hyphenchar\dvngbomb=#1
+\hyphenchar\dvngbomi=#1\hyphenchar\dvngbombi=#1
+\hyphenchar\dvngcal=#1\hyphenchar\dvngcalb=#1
+\hyphenchar\dvngcali=#1\hyphenchar\dvngcalbi=#1
+\hyphenchar\dvngp=#1\hyphenchar\dvngpbom=#1\hyphenchar\dvngpcal=#1
+\hyphenchar\halfdn=#1\hyphenchar\halfdnb=#1
+\hyphenchar\halfdni=#1\hyphenchar\halfdnbi=#1
+\hyphenchar\halfdnbom=#1\hyphenchar\halfdnbomb=#1
+\hyphenchar\halfdnbomi=#1\hyphenchar\halfdnbombi=#1
+\hyphenchar\halfdncal=#1\hyphenchar\halfdncalb=#1
+\hyphenchar\halfdncali=#1\hyphenchar\halfdncalbi=#1
+\hyphenchar\halfdnp=#1\hyphenchar\halfdnpbom=#1\hyphenchar\halfdnpcal=#1
+\hyphenchar\bigdn=#1\hyphenchar\bigdnb=#1
+\hyphenchar\bigdni=#1\hyphenchar\bigdnbi=#1
+\hyphenchar\bigdnbom=#1\hyphenchar\bigdnbomb=#1
+\hyphenchar\bigdnbomi=#1\hyphenchar\bigdnbombi=#1
+\hyphenchar\bigdncal=#1\hyphenchar\bigdncalb=#1
+\hyphenchar\bigdncali=#1\hyphenchar\bigdncalbi=#1
+\hyphenchar\bigdnp=#1\hyphenchar\bigdnpbom=#1\hyphenchar\bigdnpcal=#1
+\hyphenchar\largedn=#1\hyphenchar\largednb=#1
+\hyphenchar\largedni=#1\hyphenchar\largednbi=#1
+\hyphenchar\largednbom=#1\hyphenchar\largednbomb=#1
+\hyphenchar\largednbomi=#1\hyphenchar\largednbombi=#1
+\hyphenchar\largedncal=#1\hyphenchar\largedncalb=#1
+\hyphenchar\largedncali=#1\hyphenchar\largedncalbi=#1
+\hyphenchar\largednp=#1\hyphenchar\largednpbom=#1\hyphenchar\largednpcal=#1
+\hyphenchar\hugedn=#1\hyphenchar\hugednb=#1
+\hyphenchar\hugedni=#1\hyphenchar\hugednbi=#1
+\hyphenchar\hugednbom=#1\hyphenchar\hugednbomb=#1
+\hyphenchar\hugednbomi=#1\hyphenchar\hugednbombi=#1
+\hyphenchar\hugedncal=#1\hyphenchar\hugedncalb=#1
+\hyphenchar\hugedncali=#1\hyphenchar\hugedncalbi=#1
+\hyphenchar\hugednp=#1\hyphenchar\hugednpbom=#1\hyphenchar\hugednpcal=#1}
+%
+% Roman Fonts
+%
+\font\smallcr=cmr8
+\font\ninecr=cmr9
+\font\halfcr=cmr10 scaled\magstephalf
+\font\bigcr=cmr10 scaled\magstep1
+\font\largecr=cmr10 scaled\magstep2
+\font\hugecr=cmr10 scaled\magstep3
+%
+% Registers
+%
+\newcount\chnum
+\newdimen\itdim
+\newdimen\dnblskip
+\newdimen\subdep
+\newdimen\anudep
+\newdimen\anuwid
+\newif\ifdnmode
+\newif\ifdnbombayfont
+\newif\ifdncalcuttafont
+\newif\ifdnboldfont
+\newif\ifdnitalfont
+\newif\ifdnpenfont
+\newif\ifdnvedamode
+\newif\ifdnsamavedamode
+\newif\ifdnsamavedafont
+\newif\ifdnanudattafixed
+%
+% Letter macros
+%
+% The preprocessor inserts uses of these macros into the preprocessor output.
+% TeX then uses them to typeset individual characters. Under normal
+% conditions, you should not need to use these macros in DN files.
+%
+\def\subscr#1{\/\itdim=\lastkern%
+\unkern\kern-\itdim\lower\subdep\hbox to\itdim{#1\hfil}}
+\def\0{\llap{\char13}}
+\def\1{\llap{\char32}}
+\def\2{\llap{\char92}}
+\def\3#1w{{\char"#1}}
+\def\4{\llap{\char123}}
+\def\5{\llap{\char125}}
+\def\6#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char126}}}
+\def\7#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char0}}}
+\def\8#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char1}}}
+\def\9#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char2}}}
+\def\qb#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char253}}}
+\def\qq#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char94}}}
+\def\qx#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char14}}}
+\def\qy#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char31}}}
+\def\qz#1{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1\subscr{\char124}}}
+\def\qa#1#2{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1%
+\subscr{\char253\kern0.5ex\lower2.5ex\hbox{\char#2}\kern-1.5ex}}}
+\def\qc#1#2{\leavevmode\setbox0=\hbox{#1}\subdep=\dp0\hbox{#1%
+\subscr{\char126\kern0.5ex\lower2.5ex\hbox{\char#2}\kern-1.5ex}}}
+\def\qva{\kern0.5ex\2\kern-0.5ex}
+\def\qvb{\kern1ex\0\kern-1ex}
+\def\qvc{\kern1ex\rdt\kern-1ex}
+\def\?{\llap{\char3}}
+\def\<{\llap{\char4}}
+\def\rs{\rsize\thinspace}
+\let\re=\thinspace
+\def\rdt{\llap{\char19}}
+%
+% Initialization
+%
+\newlanguage\nohyphenation
+\sethyph{255}
+\let\pdn=\dvng
+\let\pdnb=\dvngb
+\let\pdni=\dvngi
+\let\pdnbi=\dvngbi
+\let\pdnbom=\dvngbom
+\let\pdnbomb=\dvngbomb
+\let\pdnbomi=\dvngbomi
+\let\pdnbombi=\dvngbombi
+\let\pdncal=\dvngcal
+\let\pdncalb=\dvngcalb
+\let\pdncali=\dvngcali
+\let\pdncalbi=\dvngcalbi
+\let\pdnp=\dvngp
+\let\pdnpbom=\dvngpbom
+\let\pdnpcal=\dvngpcal
+\dnblskip=15pt
+\let\rsize=\rm
+\cmnum \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/esint-type1/esint.tex b/Master/texmf-dist/tex/plain/esint-type1/esint.tex
new file mode 100644
index 00000000000..d36aa286db0
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/esint-type1/esint.tex
@@ -0,0 +1,82 @@
+% esint.tex 1.0 2005/06/21 -- macros for esint integral font
+%%%@TeX-definition-file {
+%%% filename = "esint.tex",
+%%% version = "1.0",
+%%% date = "2005/06/21",
+%%% package = "esint 1.0",
+%%% author = "Michael M. Tung",
+%%% email = "mtung@mat.upv.es",
+%%% address = "Universidad Politécnica de Valencia,
+%%% Departamento de Matemática Aplicada,
+%%% Camino de Vera, s/n,
+%%% 46022 Valencia (Spain)",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% abstract = "plain TeX macro to use the esint integral
+%%% symbols available at CTAN or the website
+%%% http://perso.wanadoo.fr/eddie.saudrais",
+%%% copyright = "Copyright (c) 2005 Michael M. Tung",
+%%% copying = "DISTRIBUTE THIS FILE AS YOU WISH.",
+%%% dependencies = "esint10.pfb,esint10.tfm".
+%%%}
+
+\message{1.0 <esint 2005/06/21}
+
+\font\esint=esint10
+
+\def\int{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char02\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char01\kern1pt}}}{}{}}
+\def\iint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char04\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char03\kern1pt}}}{}{}}
+\def\iiint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char06\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char05\kern1pt}}}{}{}}
+\def\iiiint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char08\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char07\kern1pt}}}{}{}}
+\def\dotsint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char10\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char09\kern1pt}}}{}{}}
+\def\oint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char12\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char11\kern1pt}}}{}{}}
+\def\oiint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char14\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char13\kern1pt}}}{}{}}
+\def\varoiint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char34\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char33\kern1pt}}}{}{}}
+\def\sqint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char16\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char15\kern1pt}}}{}{}}
+\def\sqiint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char18\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char17\kern1pt}}}{}{}}
+\def\ointclockwise{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char24\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char23\kern1pt}}}{}{}}
+\def\ointctrclockwise{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char26\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char25\kern1pt}}}{}{}}
+\def\varointclockwise{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char28\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char27\kern1pt}}}{}{}}
+\def\varointctrclockwise{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char30\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char29\kern1pt}}}{}{}}
+\def\fint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char32\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char31\kern1pt}}}{}{}}
+\def\landupint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char36\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char35\kern1pt}}}{}{}}
+\def\landdownint{\mathchoice
+{\mathop{\raise14pt\hbox{\esint\char38\kern4pt}}}
+{\mathop{\raise8pt\hbox{\esint\char37\kern1pt}}}{}{}}
+
+%
+% end of file esint.tex
+%
diff --git a/Master/texmf-dist/tex/plain/etex/etex.src b/Master/texmf-dist/tex/plain/etex/etex.src
new file mode 100644
index 00000000000..d7857c8e809
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/etex/etex.src
@@ -0,0 +1,892 @@
+%% e-TeX V2.1;0
+%% Revision-date: 01-FEB-1999 22:36:22 /PB
+%% Revision-history: (at-end)
+
+% The version number in the first line is compared with the corresponding
+% element in e-TeX, and an error reported if incompatibility is detected.
+% The cycle and revision numbers (that is, the element(s) following the
+% period) are not used in this comparison, allowing enhancements to be made to
+% this module and recorded in its header without introducing a risk of conflict.
+%
+% This allows to use this file with e-TeX versions 2.0 and 2.1!
+%
+% Other files whose headers must be kept in synch include "etexdefs.lib" and
+% "language.def".
+
+% This is "etex.src", the (e-TeX) source file for the "etex" format file.
+% To build the format from it, use one of the following commands or the
+% local equivalent:
+
+% Generic: einitex *etex.src \dump
+% emTeX: etex -i *etex.src \dump
+% VMS: etex /init /noformat *"etex.src \dump"
+
+% Assume a purely IniTeX environment and set up a minimal \catcode r\'egime
+
+\catcode `\{=1
+\catcode `\}=2
+\catcode `\#=6
+\catcode `\^=7
+\catcode `\@=\catcode `\A
+
+% Define the basic error-reporting and abort mechanisms:
+
+\def \et@xmsg #1#2%
+ {\begingroup
+ \def \n {^^J}%
+ \def \ { }%
+ \newlinechar=\expandafter `\n
+ \if E#1%
+ \errorcontextlines=0
+ \errmessage {e-TeX error: #2}%
+ \else
+ \message {\n ! e-TeX \if I#1 message%
+ \else \if W#1 warning%
+ \else \if F#1 fatal error%
+ \else
+ \ unknown (#1)%
+ \fi
+ \fi
+ \fi: #2%
+ }%
+ \fi
+ \endgroup
+ }
+
+% Note: a future version may report errors in the %<fac>-<s>-<code>[, <text>]
+% format, allowing the more verbose <text>s to be read from file rather than
+% stored in the format.
+
+\def \et@xabort #1%
+ {\et@xmsg {F}{#1}%
+ \batchmode
+ \end
+ }
+
+% Make sure this file is being read by e-TeX in extended mode;
+% If it is, prepare to check version/revision compatibility, otherwise abort.
+
+\ifx \undefined \eTeXversion
+ \et@xabort {this file can be processed only in extended mode;\n
+ \ \ did you perhaps forget the asterisk?%
+ }%
+\else
+ \begingroup
+ \catcode `\%=12
+ \catcode `\?=14
+ \xdef \et@xfilehdr
+ {\detokenize {%% e-TeX V}\the \eTeXversion \eTeXrevision}?
+ \xdef \et@xlibhdr
+ {\detokenize {%% e-TeXlib V}\the \eTeXversion \eTeXrevision}?
+ \endgroup
+\fi
+
+% Assume extended mode, but no additional \catcodes/\defs yet;
+% set up a simple e-TeX condition-reporting system:
+
+\def \et@xinf #1{\et@xmsg {I}{#1}} %%% not currently used
+\def \et@xwarn #1{\et@xmsg {W}{#1}}
+\def \et@xerr #1#2{{\errhelp={#2}\et@xmsg {E}{#1}}}
+
+% deactivate the processing of patterns and exceptions; these will be
+% reinstated later, after the \uselanguage mechanism has been defined.
+
+\let \et@xpatterns=\patterns
+\def \patterns
+ {\begingroup
+ \everyeof={\fi \endgroup}%
+ \message {[skipping from \noexpand \patterns to end-of-file...]}%
+ \iffalse
+ }
+
+% Read "plain.tex" (\patterns & \hyphenation will be skipped)
+
+\input plain
+
+% restore the catcode of commercial-at (@), which will just have been clobbered
+
+\catcode `\@=\catcode `\A
+
+% Assume an extended Plain environment (i.e. there are no longer any
+% restrictions on the coding techniques we can use). First prepare to
+% carry out consistency checks on the file headers and the current e-TeX
+% version/revision levels:
+
+\newread \et@xinput
+
+\def \etexhdrchk #1#2%
+ {\openin \et@xinput=#2
+ \ifeof \et@xinput
+ \chardef \etexstatus=0 % V1.0-1
+ \else
+ \begingroup
+ \endlinechar=-1
+ \readline \et@xinput to \et@xbuf
+ \closein \et@xinput
+ \def \p@rtition ##1.##2\endp@rtition {##1}% V2.1%0
+ \xdef \et@xbuf
+ {\expandafter \p@rtition \et@xbuf .\endp@rtition}% V2.1;0
+ \xdef \et@xtmp {\csname et@x#1hdr\endcsname}%
+ \xdef \et@xtmp
+ {\expandafter \p@rtition \et@xtmp .\endp@rtition}% V2.1;0
+ \endgroup
+ \ifx \et@xtmp \et@xbuf
+ \chardef \etexstatus=2 % V1.1;4
+ \else
+ \chardef \etexstatus=1 % V1.1;4
+ \fi
+ \fi
+ }
+
+% Check the version number of this file:
+
+\def \et@xfmtsrc {etex.src}
+\etexhdrchk {file} {\et@xfmtsrc}
+\ifcase \etexstatus
+ \et@xerr {unable to open format source file "\et@xfmtsrc";}
+ {This should not happen; please ensure that your system
+ allows a file to be opened for reading more than once
+ concurrently.%
+ }%
+\or
+ \et@xwarn {format source file "\et@xfmtsrc" has wrong header;\n
+ \ \ expected: "\et@xfilehdr"; found: "\et@xbuf";%
+ }%
+ {You are using a version of e-TeX which may be incompatible
+ with the source for the format file you are trying to
+ compile; please ensure that you have the most recent
+ version of each. I will proceed, but you should treat
+ the results with caution...%
+ }%
+\fi
+
+% Module handling now implemented (V1.0-2)
+
+\def \module #1{\iftrue}
+\let \endmodule=\fi
+
+\newtoks \et@xtoks
+
+\def \et@xl@@d #1 #2\endl@ad %%% the "#1 #2" code avoids trailing spaces
+ {\ifcsname module:#1\endcsname
+ \et@xwarn {duplicate module name "#1"}%
+ \else
+ \csname module:#1\endcsname %%% we exploit the side-effect explicitly
+ \et@xtoks=\expandafter
+ {\the \et@xtoks
+ \expandafter \let \csname module:#1\endcsname=\undefined
+ }%
+ \fi
+ }
+
+\def \et@xl@ad #1#2,#3\endl@ad %%% the #1#2 code avoids spurious leading spaces
+ {\et@xl@@d #1#2 \endl@ad
+ \if *#3*
+ \let \n@xt=\relax
+ \else
+ \def \n@xt {\et@xl@ad #3\endl@ad}%
+ \fi
+ \n@xt
+ }
+
+\def \et@xload #1 %%% needed because of the embedded \ifs...
+ {\def \module ##1%
+ {\unless
+ \ifcsname module:##1\endcsname
+ \message {Skipping module "##1";}%
+ \else
+ \message {Loading module "##1";}%
+ }%
+ \input #1
+ \def \module ##1{\iftrue}%
+ }
+
+\def \load #1 from #2 %%% selective module loading from an e-TeX library file
+ {\etexhdrchk {lib} {#2}%
+ \ifcase \etexstatus
+ \et@xerr {unable to open library file "#2"; load aborted.}
+ {I got an <eof> on trying to open your library file;
+ please make sure it exists, is readable and is not locked.%
+ }%
+ \or
+ \et@xerr {library file "#2" has wrong header;\n
+ \ \ expected: "\et@xlibhdr"; found: "\et@xbuf";\n
+ \ \ load aborted.%
+ }%
+ {The first line of your library does not start with
+ the correct e-TeX header; you may need to update the
+ file to be compatible with the current version of
+ e-TeX, or you may simply have specified the wrong file.%
+ }%
+ \else
+ \et@xtoks={\et@xtoks={}}%
+ \et@xl@ad #1,\endl@ad
+ \et@xload {#2}
+ \the \et@xtoks
+ \fi
+ }
+
+\load interactionmodes from etexdefs.lib %%% \load <foo>[, <bar>...] from <baz>
+
+\def \@sk #1#2#3%
+ {\ifnum \interactionmode=\interactionmodes {errorstop} %%% V2.0;15
+ \def \pr@mpt {\csname #1 \endcsname}%
+ \edef \pr@mptloop {{\escapechar=-1 \global \readline 16 to \pr@mpt}}%
+ \loop \pr@mptloop
+ \ch@ckforyn \pr@mpt {#2}%
+ \ifb@dresponse
+ \message {Please answer Y[es] or N[o]}%
+ \repeat
+ \else
+ \def \pr@mpt {#3}%
+ \ch@ckforyn \pr@mpt {#2}%
+ \fi
+ }
+
+\def \ch@ckforyn #1#2% Bernd Raichle's improved version, V1.0-1
+ {\edef \@nswer {#1}%
+ \def \p@rse ##1##2\endp@rse
+ {\lowercase {\if y##1}\b@dresponsefalse \csname #2true\endcsname
+ \else \lowercase {\if n##1}\b@dresponsefalse \csname #2false\endcsname
+ \else
+ \b@dresponsetrue
+ \fi
+ \fi
+ }%
+ \expandafter \p@rse \@nswer \endp@rse
+ }
+
+\def \usef@llback %%% V1.0-3
+ {\message {Using fallback mode (USenglish)}%
+ \addlanguage {USenglish}{hyphen}{}{2}{3}%
+ }
+
+% OK, that's all the utilities defined; on with the real work:
+% First, re-instate \patterns:
+
+\let \patterns=\et@xpatterns
+
+% Define the language-handling commands
+
+\def \et@xlang {\csname newlanguage\endcsname}
+
+\def \uselanguage #1%
+ {\ifcsname lang@#1\endcsname
+ \language=\csname lang@#1\endcsname
+ \lefthyphenmin=\csname lhm@#1\endcsname
+ \righthyphenmin=\csname rhm@#1\endcsname
+ \ifdefined \uselanguage@hook % V1.0-1
+ \uselanguage@hook {#1}% % V1.0-1
+ \fi
+ \else
+ \et@xerr {language #1 undefined.}%
+ {You are trying to use a language which has not previously
+ been defined; remember that any language you want to use
+ will need to have been specified at the time the format
+ was created.%
+ }%
+ \fi
+ }
+
+\def \addlanguage #1#2#3#4#5% language patterns exceptions lhm rhm
+ {\expandafter \et@xlang \csname lang@#1\endcsname
+ \expandafter \chardef \csname lhm@#1\endcsname=#4 % V1.0-1
+ \expandafter \chardef \csname rhm@#1\endcsname=#5 % V1.0-1
+ \uselanguage {#1}%
+ \input #2
+ \if *#3*\else \input #3 \fi
+ \ifdefined \addlanguage@hook % V1.0-4
+ \addlanguage@hook {#1}% % V1.0-4
+ \fi
+ \edef \fmtversion {\fmtversion/#1}%
+ }
+
+% Decrement \count 19, because \newlanguage will increment it again
+
+\advance \count 19 by -1
+
+% We are about to try to process a user/site-specific file "language.def",
+% which establishes a Babel-like language selection environment. Since
+% there is always a risk of a spurious file of that name being found,
+% we look for an e-TeX header in the first line. If the file can be opened,
+% but doesn't have the right header, we interrogate the user as to whether
+% to use fallback mode; in this mode, we simply establish USenglish as the
+% sole language, with the et@x patterns, exceptions and left- and right-
+% hyphen minima for TeX. If we can't interrogate the user (e.g. not in
+% \errorstopmode), or if the user elects not to use fallback, we abort;
+% if the file can't be found/opened, we use fallback unconditionally.
+
+\newif \ifb@dresponse
+\newif \ifusef@llback
+
+\def \l@ngdefnfile {language.def}
+
+\etexhdrchk {file} {\l@ngdefnfile}
+\ifcase \etexstatus
+ \et@xwarn {unable to open file "\l@ngdefnfile";}%
+ \usef@llback % unable to open "language.def"
+\or
+ \et@xwarn {file "\l@ngdefnfile" has wrong header;\n
+ \ \ expected: "\et@xfilehdr"; found: "\et@xbuf";%
+ }%
+ \@sk {Use fallback?} {usef@llback} {y}%
+ \ifusef@llback
+ \usef@llback
+ \else
+ \input \l@ngdefnfile % use "language.def" after warning
+ \fi
+\else
+ \input \l@ngdefnfile % "language.def" open & valid
+\fi
+
+% All that was just to set up natural language handling...
+% The "real" work of "etex.src", however, is to augment the non-primitives
+% of Plain.TeX to incorporate e-TeX specific features, and to add new
+% non-primitives to simplify access to new e-TeX specific primitives.
+
+\message {Augmenting the Plain TeX definitions:}
+\message {\string \tracingall;}
+
+\def \tracingall
+ {\tracingonline=\@ne
+ \tracingcommands=\thr@@ % plain.tex has \tw@
+ \tracingstats=\tw@
+ \tracingpages=\@ne
+ \tracingoutput=\@ne
+ \tracinglostchars=\tw@ % plain.tex has \@ne
+ \tracingmacros=\tw@
+ \tracingparagraphs=\@ne
+ \tracingrestores=\@ne
+ \showboxbreadth=\maxdimen
+ \showboxdepth=\maxdimen
+ \errorstopmode
+ \tracinggroups=\@ne
+ \tracingifs=\@ne
+ \tracingscantokens=\@ne
+ \tracingnesting=\@ne
+ \tracingassigns=\tw@
+ }
+
+\message {Adding new e-TeX definitions:}
+
+\message {\string \eTeX,}
+\def \eTeX {$\varepsilon$-\TeX} %%% the simple version, not suitable for maths;
+ %%% a more sophisticated one may find its way
+ %%% into "etexdefs.lib" in due course.
+
+\message {\string \loggingall,}
+\def \loggingall {\tracingall \tracingonline=\z@}
+
+\message {\string \tracingnone,}
+\def \tracingnone
+ {\tracingassigns=\z@
+ \tracingnesting=\z@
+ \tracingscantokens=\z@
+ \tracingifs=\z@
+ \tracinggroups=\z@
+ \showboxdepth=\thr@@
+ \showboxbreadth=5
+ \tracingrestores=\z@
+ \tracingparagraphs=\z@
+ \tracingmacros=\z@
+ \tracinglostchars=\@ne
+ \tracingoutput=\z@
+ \tracingpages=\z@
+ \tracingstats=\z@
+ \tracingcommands=\z@
+ \tracingonline=\z@
+ }
+
+\message {register allocation;}
+
+\newcount \et@xins % our insertion counter (\insc@unt is used differently)
+
+% We have to adjust the Plain TeX register allocation counts for our
+% slightly modified book-keeping:
+
+\advance \count 10 by 1 % \count 10=23 % allocates \count registers 23, 24, ...
+\advance \count 11 by 1 % \count 11=10 % allocates \dimen registers 10, 11, ...
+\advance \count 12 by 1 % \count 12=10 % allocates \skip registers 10, 11, ...
+\advance \count 13 by 1 % \count 13=10 % allocates \muskip registers 10, 11, ...
+\advance \count 14 by 1 % \count 14=10 % allocates \box registers 10, 11, ...
+\advance \count 15 by 1 % \count 15=10 % allocates \toks registers 10, 11, ...
+\advance \count 16 by 1 % \count 16=0 % allocates input streams 0, 1, ...
+\advance \count 17 by 1 % \count 17=0 % allocates output streams 0, 1, ...
+\advance \count 18 by 1 % \count 18=4 % allocates math families 4, 5, ...
+\advance \count 19 by 1 % \count 19=0 % allocates \language codes 0, 1, ...
+
+\et@xins=\insc@unt % \et@xins=255 % allocates insertions 254, 253, ...
+
+% We don't change the Plain TeX definitions of \newcount, etc., but the
+% \alloc@ macro doing the actual work is redefined.
+
+% When the normal register pool for \count, \dimen, \skip, \muskip,
+% \box, or \toks registers is exhausted, we switch to the extended pool.
+
+\def \alloc@ #1#2#3#4#5%
+ {\ifnum \count 1#1 < #4% make sure there's still room
+ \allocationnumber=\count 1#1
+ \global \advance \count 1#1 by \@ne
+ \global #3#5=\allocationnumber
+ \wlog {\string #5=\string #2\the \allocationnumber}%
+ \else \ifnum #1 < 6
+ \begingroup \escapechar=\m@ne
+ \expandafter \alloc@@ \expandafter {\string #2}#5%
+ \else
+ \errmessage {No room for a new #2}%
+ \fi
+ \fi
+ }
+
+% The \expandafter construction used here allows the generation of
+% \newcount and \globcount from #1=count. Moreover (and more important)
+% this construction avoids the appearance of \outer macros inside
+% macro definitions or conditionals.
+
+\def \alloc@@ #1#2%
+ {\endgroup % restore \escapechar
+ \message {Normal \csname#1\endcsname register pool exhausted,
+ switching to extended pool.}%
+ \global \expandafter
+ \let \csname new#1\expandafter \endcsname \csname glob#1\endcsname
+ \csname new#1\endcsname#2%
+ }
+
+% We do change the Plain TeX definition of \newinsert
+
+\outer \def \newinsert #1%make sure there's still room for ...
+ {\ch@ck 0 \et@xins \count % ... a \count, ...
+ {\ch@ck 1 \et@xins \dimen % ... \dimen, ...
+ {\ch@ck 2 \et@xins \skip % ... \skip, ...
+ {\ch@ck 4 \et@xins \box % ... and \box register
+ {\global \advance \et@xins by \m@ne
+ \unless
+ \ifnum \insc@unt < \et@xins
+ \global \insc@unt=\et@xins
+ \fi
+ \allocationnumber=\et@xins
+ \global \chardef #1=\allocationnumber
+ \wlog {\string #1=\string \insert \the \allocationnumber}%
+ }%
+ }%
+ }%
+ }%
+ }
+
+\def \ch@ck #1#2#3#4%
+ {\ifnum \count 1#1 < #2#4\else \errmessage {No room for a new #3}\fi}
+
+% And we define \reserveinserts, so that you can say \reserveinserts{17}
+% in order to reserve room for up to 17 additional insertion classes that will
+% not be taken away by \newcount, \newdimen, \newskip, or \newbox.
+
+\outer \def \reserveinserts#1%
+ {\global \insc@unt=\numexpr \et@xins \ifnum #1 > \z@ -#1\fi \relax}
+
+\message {extended register allocation;}
+
+% Now, we define \globcount, \globbox, etc., so that you can say
+% \globcount\foo and \foo will be defined (with \countdef) to be the
+% next count register from the vastly larger but somewhat less efficient
+% extended register pool. We also define \loccount, etc., but these
+% register definitions are local to the current group.
+
+\count 260=277 % globally allocates \count registers 277, 278, ...
+\count 261=\@cclvi % globally allocates \dimen registers 256, 257, ...
+\count 262=\@cclvi % globally allocates \skip registers 256, 257, ...
+\count 263=\@cclvi % globally allocates \muskip registers 256, 257, ...
+\count 264=\@cclvi % globally allocates \box registers 256, 257, ...
+\count 265=\@cclvi % globally allocates \toks registers 256, 257, ...
+\count 266=\@ne % globally allocates \marks classes 1, 2, ...
+
+\def \et@xmaxregs {32768}
+
+\count 270=\et@xmaxregs % locally allocates \count registers 32767, 32766, ...
+\count 271=\et@xmaxregs % ditto for \dimen registers
+\count 272=\et@xmaxregs % ditto for \skip registers
+\count 273=\et@xmaxregs % ditto for \muskip registers
+\count 274=\et@xmaxregs % ditto for \box registers
+\count 275=\et@xmaxregs % ditto for \toks registers
+\count 276=\et@xmaxregs % ditto for \marks classes
+
+% \count registers 256-259 and 267-269 are not (yet) used
+
+\outer \def \globcount {\et@xglob 0 \count \countdef}
+ \def \loccount {\et@xloc 0 \count \countdef}
+\outer \def \globdimen {\et@xglob 1 \dimen \dimendef}
+ \def \locdimen {\et@xloc 1 \dimen \dimendef}
+\outer \def \globskip {\et@xglob 2 \skip \skipdef}
+ \def \locskip {\et@xloc 2 \skip \skipdef}
+\outer \def \globmuskip {\et@xglob 3 \muskip \muskipdef}
+ \def \locmuskip {\et@xloc 3 \muskip \muskipdef}
+\outer \def \globbox {\et@xglob 4 \box \mathchardef}
+ \def \locbox {\et@xloc 4 \box \mathchardef}
+\outer \def \globtoks {\et@xglob 5 \toks \toksdef}
+ \def \loctoks {\et@xloc 5 \toks \toksdef}
+\outer \def \globmarks {\et@xglob 6 \marks \mathchardef}
+ \def \locmarks {\et@xloc 6 \marks \mathchardef}
+
+\let\newmark=\globmarks %%% 2.0;14
+\let\newmarks=\globmarks
+
+\def \et@xglob #1#2#3#4%
+ {\et@xchk #1#2% make sure there's still room
+ {\allocationnumber=\count 26#1
+ \global \advance \count 26#1 by \@ne
+ \global #3#4=\allocationnumber
+ \wlog {\string #4=\string #2\the \allocationnumber}%
+ }%
+ }
+
+\def \et@xloc#1#2#3#4%
+ {\et@xchk #1#2% make sure there's still room
+ {\advance \count 27#1 by \m@ne
+ \allocationnumber=\count 27#1
+ #3#4=\allocationnumber
+ \wlog {\string #4=\string #2\the \allocationnumber \space (local)}%
+ }%
+ }
+
+\def \et@xchk #1#2#3%
+ {\ifnum \count 26#1 < \count 27#1
+ #3%
+ \else
+ \errmessage {No room for a new #2}%
+ \fi
+ }
+
+% Next we define \globcountblk, \loccountblk, etc., so that one can
+% write \globcountblk\foo{17} and \foo will be defined (with \mathchardef)
+% as the first (the zeroth?) of a block of 17 consecutive registers.
+% Thus the user is intended to reference elements <\foo+0> to <\foo+n-1>,
+% where n is the length of the block allocated.
+
+\outer \def \globcountblk {\et@xgblk 0 \count}
+ \def \loccountblk {\et@xlblk 0 \count}
+\outer \def \globdimenblk {\et@xgblk 1 \dimen}
+ \def \locdimenblk {\et@xlblk 1 \dimen}
+\outer \def \globskipblk {\et@xgblk 2 \skip}
+ \def \locskipblk {\et@xlblk 2 \skip}
+\outer \def \globmuskipblk {\et@xgblk 3 \muskip}
+ \def \locmuskipblk {\et@xlblk 3 \muskip}
+\outer \def \globboxblk {\et@xgblk 4 \box}
+ \def \locboxblk {\et@xlblk 4 \box}
+\outer \def \globtoksblk {\et@xgblk 5 \toks}
+ \def \loctoksblk {\et@xlblk 5 \toks}
+\outer \def \globmarksblk {\et@xgblk 6 \marks}
+ \def \locmarksblk {\et@xlblk 6 \marks}
+
+% And, both to provide a higher-level interface to the block allocation
+% scheme, and to demonstrate possible applications of the new \...expr
+% primitives, we also define \globcountvector and \loccountvector (etc)
+% which allow the user to access elements with embedded arithmetic, as in
+
+% \globcountvector \foo {12}
+% \foo {\count 0 + 3} = \foo {\count 1 * 2}
+
+\outer \def \globcountvector {\et@xgvec 0 \count}
+ \def \loccountvector {\et@xlvec 0 \count}
+\outer \def \globdimenvector {\et@xgvec 1 \dimen}
+ \def \locdimenvector {\et@xlvec 1 \dimen}
+\outer \def \globskipvector {\et@xgvec 2 \skip}
+ \def \locskipvector {\et@xlvec 2 \skip}
+\outer \def \globmuskipvector {\et@xgvec 3 \muskip}
+ \def \locmuskipvector {\et@xlvec 3 \muskip}
+\outer \def \globboxvector {\et@xgvec 4 \box}
+ \def \locboxvector {\et@xlvec 4 \box}
+\outer \def \globtoksvector {\et@xgvec 5 \toks}
+ \def \loctoksvector {\et@xlvec 5 \toks}
+\outer \def \globmarksvector {\et@xgvec 6 \marks}
+ \def \locmarksvector {\et@xlvec 6 \marks}
+
+\def \et@xgblk #1#2#3#4%
+ {\et@xchkblk #1#2{#4}% make sure there's still room
+ {\allocationnumber=\count 26#1
+ \global \advance \count 26#1 by #4%
+ \global \mathchardef #3=\allocationnumber
+ \wlog {\string #3=\string #2blk{\number #4} at \the \allocationnumber}%
+ }%
+ }
+
+\def \et@xlblk #1#2#3#4%
+ {\et@xchkblk #1#2{#4}% make sure there's still room
+ {\advance \count 27#1 by -#4%
+ \allocationnumber=\count 27#1
+ \mathchardef #3=\allocationnumber
+ \wlog {\string #3=\string #2blk{\number #4}
+ at \the \allocationnumber \space (local)%
+ }%
+ }%
+ }
+
+\begingroup
+\catcode `\# = 12
+\gdef \et@xhash {#}
+\endgroup
+
+\def \et@xgvec #1#2#3#4%
+ {\et@xchkblk #1#2{#4}% make sure there's still room
+ {\allocationnumber=\count 26#1
+ \global \advance \count 26#1 by #4%
+ \ifx #2\box
+ \def \2{}%
+ \else \ifx #2\marks
+ \def \2{}%
+ \else
+ \def \2{\string #2}%
+ \fi
+ \fi
+ \xdef #3##1{\2 \noexpand \numexpr \the \allocationnumber+##1\relax}%
+ \wlog {\string #3 {\et@xhash 1} =
+ \2 {\the \allocationnumber+\et@xhash 1} (global #2 vector)%
+ }%
+ }%
+ }
+
+\def \et@xlvec #1#2#3#4%
+ {\et@xchkblk #1#2{#4}% make sure there's still room
+ {\advance \count 27#1 by -#4%
+ \allocationnumber=\count27#1
+ \mathchardef #3=\allocationnumber
+ \ifx #2\box
+ \def \2{}%
+ \else \ifx #2\marks
+ \def \2{}%
+ \else
+ \def \2{\string #2}%
+ \fi
+ \fi
+ \edef #3##1{\2 \noexpand \numexpr \the \allocationnumber+##1\relax}%
+ \wlog {\string #3 {\et@xhash 1} =
+ \2 {\the \allocationnumber+\et@xhash 1} (local #2 vector)%
+ }%
+ }%
+ }
+
+\def \et@xchkblk #1#2#3#4%
+ {\ifnum #3 < \z@
+ \errmessage {Negative register block size \number #3}%
+ \else \ifnum \numexpr \count 26#1+#3 > \count 27#1
+ \errmessage {No room for new #2block of size \number#3}%
+ \else
+ #4%
+ \fi
+ \fi
+ }
+
+% In an attempt to reduce the overheads of e-TeX, we recycle all possible
+% resources, including (as a penultimate step) the recycler itself...
+% The user can circumvent (or force) this during format creation,
+% by \letting \ifrecycle=\iffalse (or \iftrue, to force it).
+
+% As this file has grown by accretion, it is possible that we are no
+% longer recycling all the resources we could; this will be investigated.
+
+\def \mayber@cycle {\expandafter \ifrecycle}
+\def \forcer@cycle {\expandafter \iftrue}
+
+\ifdefined \ifrecycle
+ \mayber@cycle
+\else
+ \forcer@cycle
+\fi
+
+% There's a concealed \if... lurking here, which explains the
+% strange indentation of the code that follows (V1.0-1)
+
+ \def \r@cycle #1%
+ {\ifdefined #1
+ \message {\string #1,}\let #1=\und@fined
+ \else
+ \message {\string #1 (not defined),}
+ \fi
+ }
+ {\newlinechar=`\! \message {!Recycling:}}
+
+ \r@cycle \addlanguage
+ \r@cycle \@nswer
+ \r@cycle \@sk
+ \r@cycle \b@dresponsetrue
+ \r@cycle \b@dresponsefalse
+ \r@cycle \ch@ckforyn
+ \r@cycle \mayber@cycle
+ \r@cycle \et@xabort
+ \r@cycle \et@xbuf
+ \r@cycle \et@xfmtsrc
+ \r@cycle \et@xfilehdr
+ \r@cycle \et@xinf
+ \r@cycle \et@xpatterns
+% \r@cycle \ifb@dresponse
+% \r@cycle \ifusef@llback
+ \r@cycle \l@ngdefnfile
+ \r@cycle \n@xt
+ \r@cycle \p@rse
+ \r@cycle \pr@mpt
+ \r@cycle \pr@mptloop
+ \r@cycle \forcer@cycle
+ \r@cycle \usef@llback
+ \r@cycle \usef@llbacktrue
+ \r@cycle \usef@llbackfalse
+
+% The following are retained, since they may be needed by user code; with a few
+% (regrettable) exceptions, all of these are given the \etex or \et@x prefix,
+% to reduce as far as possible the risk of them clashing with other used-defined
+% names.
+
+% The e-TeX team are willing to change the names of the remaining, at-risk,
+% control sequences if it is demonstrated that the current names cause problems
+% or difficulties.
+
+ \def \r@tain #1%
+ {\ifdefined #1
+ \message {\string #1,}
+ \else
+ \message {\string #1 (not defined),}
+ \fi
+ }
+ {\newlinechar=`\! \message {!Retaining:}}
+
+ \r@tain \et@xerr
+ \r@tain \et@xinput
+ \r@tain \et@xlibhdr
+ \r@tain \et@xmsg
+ \r@tain \et@xtoks
+ \r@tain \et@xwarn
+ \r@tain \et@xl@@d
+ \r@tain \et@xl@ad
+ \r@tain \et@xload
+ \r@tain \et@xlang
+ \r@tain \et@xhash
+ \r@tain \eTeX
+ \r@tain \etexhdrchk
+% \r@tain \endmodule
+ \r@tain \etexstatus
+ \r@tain \module
+ \r@tain \uselanguage
+
+ \r@cycle \r@tain
+ \r@cycle \r@cycle
+
+\fi
+
+% And finally re-catcode commercial-at
+
+\catcode `\@=12
+\endinput
+
+%% Revision-history:
+
+01-FEB-1999: 2.1;0 Allow file to be used with e-TeX versions 2.0 and 2.1
+
+25-MAR-1998: 2.0;19 Improved log message for \{glob|loc}{marks|box}vector (PEB)
+
+24-MAR-1998: 2.0;18 Optimisation of one section made (DC & PEB),
+ a couple of \if tests made more robust,
+ and spacing improved in one macro.
+
+24-MAR-1998: 2.0;17 Coding styles unified and all references to Peter
+ Breitenlohner eliminated from main code
+
+23-MAR-1998: 2.0;16 Continued from 2.0;15
+
+20-MAR-1998: 2.0;15 Changes made here and in "etexdefs.lib" to
+ improve compatibility with LaTeX, and
+ \{glob,loc}{marks,box}vector re-thought.
+
+11-MAR-1998: 2.0;14 \newmark made synonym for \newmarks / PT
+
+10-MAR-1998: 2.0;13 Missing brace re-inserted in \...lvec /PT
+
+10-MAR-1998: 2.0;12 Typo corrected in Peter's name /PT
+
+10-MAR-1998: 2.0;11 "\...lvec" failed to use \et@xhash; fixed / PT
+
+10-MAR-1998: 2.0;10 \h@sh -> \et@xhash /PT
+
+06-MAR-1998: 2.0;9 Final tweaks by PEB !
+
+05-MAR-1998: <missing version number> Final tweaks by PT
+
+28-Feb-1998: 2.0;8 Major re-work by PEB
+
+24-Feb-1998: 2.0;7 \tracingnesting -> \tw@
+
+24-FEB-1998: 2.0;6 version-mismatch reduced in severity;
+ \tracingall and ...none improved;
+ aesthetic spaces around "=" removed
+
+24-Jan-1998: 2.0;5: block allocation of registers added
+
+21-Jan-1998: 2.0;4: released to e-TeX team for testing/comments
+
+20-Jan-1998: \glob... implemented, and coding simplified by
+ the implementation and use of of \max@xpr
+
+06-Jan-1998: Alpha-testing complete of extended and local register allocation.
+
+29-Dec-1997: The "%!" convention replaced by a corresponding "%%":
+ this should avoid any inadvertent conflict with Adobe conventions.
+
+ \tracingall augmented with
+ \tracinglostchars=\tw@ %%% Q -- should this be default?
+ \tracingnesting=\@ne
+
+ \tracingnone augmented.
+
+05-DEC-1997: A long-standing bug removed: left- and right- hyphenmin
+ were transposed in fallback mode :-(((((
+
+24-APR-1997: An interim release, to provide compatibility with Peter's
+ naming conventions for beta-test versions of e-TeX V2.
+ Consistency checking is now restricted to \eTeXversion,
+ and \eTeXrevision is ignored.
+
+01-NOV-1996: V1.1;5: Final stage? Checking that everything possible
+ is recycled whilst nothing that is needed is lost. Retained
+ names given \etex or \et@x prefix wherever possible. Some
+ potentially dangerous cs-names commented out of the recycle/retain
+ lists because they were synonyms of members of the if-else-fi set.
+ The definition of the e-TeX logo added: this had somehow slipped
+ through the net! Intended to be the final revision before public
+ release, but awaiting comments from other members of the team.
+
+31-OCT-1996: V1.1;4: errors noticed while proof-reading corrected; far
+ greater use made of concealed control sequences with
+ commercial-at (@); library file headers differentiated
+ from ordinary file headers; return-values for header-check
+ altered to allow fall-thru' if ok; fallback-use algorithm
+ significantly modified (major semantic shift).
+
+29-OCT-1996: V1.1;3: tidying up prior to release; careful check on
+ which control words can be re-cycled; \recycle made more
+ robust, to check whether one is trying to re-cycle something
+ that was never 'cycled' in the first place (PEB suggestion);
+ \et@xmsg re-written to use \message or \errmessage as necessary;
+ \errhelps provided for all places they might be referenced.
+
+27-OCT-1996: V1.1;2: minor version numbers re-introduced, using semi-colon
+ as delimiter and stopping pattern matching at the semi-colon;
+ \et@xfilehdr defined dynamically, based in \eTeXversion and
+ \eTeXrevision; \load now uses \etexhdrchk, so library
+ files are required to start with an e-TeX header; this will
+ have implications when e-TeX -> V2+, so this code should be
+ re-considered at this point.
+
+17-OCT-1996: V1.1: minor version numbers eliminated, to reduce the
+ need for users to update their "language.def" files.
+
+17-OCT-1996: V1.0-4: \addlanguage@hook added, version history moved to end.
+
+17-OCT-1996: Version 1.0-3 does away with the "fallback" file.
+
+16-OCT-1996: Version 1.0-2 implements module handling, so constant "3"
+ no longer used (see below).
+
+13-Oct-1996: Replaced \def by \chardef where possible;
+ eliminated dependency on "etexdefs.def", hard-coding
+ in the constant "3" (with comment) instead;
+ used Bernd's \ch@ckforyn;
+ re-catcoded `\@ earlier, to reduce number of \[if]csnames;
+ commented the strange indentation of the \recycles at end.
+
+11-Oct-1996: language handling commands modified (V1.0): PT/BR
diff --git a/Master/texmf-dist/tex/plain/etex/etexdefs.lib b/Master/texmf-dist/tex/plain/etex/etexdefs.lib
new file mode 100644
index 00000000000..1801dd78cbe
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/etex/etexdefs.lib
@@ -0,0 +1,85 @@
+%% e-TeXlib V2.0;8 24-MAR-1998 16:30:14 /PT
+
+% This is "etexdefs.def", the library file which
+% defines symbolic names for e-TeX's constants.
+
+\module {grouptypes}
+\def \grouptypes #1{\csname gr@up: #1\endcsname}
+\def \etexgroupdef #1
+ {\expandafter \expandafter \expandafter \chardef \grouptypes {#1}}
+\etexgroupdef bottomlevel = 0 %%% {code for the outside world}
+\etexgroupdef simple = 1 %%% {code for local structure only}
+\etexgroupdef hbox = 2 %%% {code for `\.{\\hbox}\grp'}
+\etexgroupdef adjustedhbox = 3 %%% {code for `\.{\\hbox}\grp' in vertical mode}
+\etexgroupdef vbox = 4 %%% {code for `\.{\\vbox}\grp'}
+\etexgroupdef vtop = 5 %%% {code for `\.{\\vtop}\grp'}
+\etexgroupdef align = 6 %%% {code for `\.{\\halign}\grp', `\.{\\valign}\grp'}
+\etexgroupdef noalign = 7 %%% {code for `\.{\\noalign}\grp'}
+\etexgroupdef output = 8 %%% {code for output routine}
+\etexgroupdef math = 9 %%% {code for, e.g, `\.{\char'136}\grp'}
+\etexgroupdef disc = 10 %%% {code for `\.{\\discretionary}\grp\grp\grp'}
+\etexgroupdef insert = 11 %%% {code for `\.{\\insert}\grp', `\.{\\vadjust}\grp'}
+\etexgroupdef vcenter = 12 %%% {code for `\.{\\vcenter}\grp'}
+\etexgroupdef mathchoice = 13 %%% {code for `\.{\\mathchoice}\grp\grp\grp\grp'}
+\etexgroupdef semisimple = 14 %%% {code for `\.{\\begingroup...\\endgroup}'}
+\etexgroupdef mathshift = 15 %%% {code for `\.{\$...\$}'}
+\etexgroupdef mathleft = 16 %%% {code for `\.{\\left...\\right}'}
+\endmodule
+
+\module {interactionmodes}
+\def \interactionmodes #1{\csname m@de: #1\endcsname}
+\def \etexmodedef #1
+ {\expandafter \expandafter \expandafter \chardef \interactionmodes {#1}}
+\etexmodedef batch = 0 %%% {omits all stops and omits terminal output}
+\etexmodedef nonstop = 1 %%% {omits all stops}
+\etexmodedef scroll = 2 %%% {omits error stops}
+\etexmodedef errorstop = 3 %%% {stops at every opportunity to interact}
+\endmodule
+
+\module {nodetypes}
+\def \nodetypes #1{\csname n@de: #1\endcsname}
+\def \etexnodedef #1
+ {\expandafter \expandafter \expandafter \chardef \nodetypes {#1}}
+\etexnodedef char = 0 %%% {|type| of character nodes}
+\etexnodedef hlist = 1 %%% {|type| of hlist nodes}
+\etexnodedef vlist = 2 %%% {|type| of vlist nodes}
+\etexnodedef rule = 3 %%% {|type| of rule nodes}
+\etexnodedef ins = 4 %%% {|type| of insertion nodes}
+\etexnodedef mark = 5 %%% {|type| of a mark node}
+\etexnodedef adjust = 6 %%% {|type| of an adjust node}
+\etexnodedef ligature = 7 %%% {|type| of a ligature node}
+\etexnodedef disc = 8 %%% {|type| of a discretionary node}
+\etexnodedef whatsit = 9 %%% {|type| of special extension nodes}
+\etexnodedef math = 10 %%% {|type| of a math node}
+\etexnodedef glue = 11 %%% {|type| of that points to a glue specification}
+\etexnodedef kern = 12 %%% {|type| of a kern node}
+\etexnodedef penalty = 13 %%% {|type| of a penalty node}
+\etexnodedef unset = 14 %%% {|type| for an unset node}
+\etexnodedef maths = 15 %%% {|type| of nodes that occur only in maths mode}
+\endmodule
+
+\module {iftypes}
+\def \conditionaltypes #1{\csname @f: #1\endcsname}
+\def \etexifdef #1
+ {\expandafter \expandafter \expandafter \chardef \conditionaltypes {#1}}
+\etexifdef charif = 1
+\etexifdef catif = 2
+\etexifdef numif = 3
+\etexifdef dimif = 4
+\etexifdef oddif = 5
+\etexifdef vmodeif = 6
+\etexifdef hmodeif = 7
+\etexifdef mmodeif = 8
+\etexifdef innerif = 9
+\etexifdef voidif = 10
+\etexifdef hboxif = 11
+\etexifdef vboxif = 12
+\etexifdef xif = 13
+\etexifdef eofif = 14
+\etexifdef trueif = 15
+\etexifdef falseif = 16
+\etexifdef caseif = 17
+\etexifdef definedif = 18
+\etexifdef csnameif = 19
+\etexifdef fontcharif = 20
+\endmodule
diff --git a/Master/texmf-dist/tex/plain/fp/fp.tex b/Master/texmf-dist/tex/plain/fp/fp.tex
new file mode 100644
index 00000000000..39f62d60b38
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/fp/fp.tex
@@ -0,0 +1,49 @@
+%load the fp-package for TeX
+\chardef\FPcatamp=\the\catcode`\@
+\catcode`@=11
+
+\def\NeedsTeXFormat#1{}
+\def\ProvidesPackage#1[#2]{}
+\def\DeclareOption#1#2{}
+\let\ProcessOptions\relax
+
+%the for-loop of latex2e
+\def\@nnil{\@nil}
+\def\@empty{}
+\def\@fornoop#1\@@#2#3{}
+
+\def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
+
+\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
+
+\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \let\@nextwhile\@fornoop \else
+ #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}}
+
+\edef\FP@loadedfiles{fp.tex}
+
+\def\FP@alreadyloaded#1{}
+\def\FP@notyetloaded#1{
+ \edef\FP@loadedfiles{\FP@loadedfiles,#1}
+ \input #1.sty
+}
+\def\RequirePackage#1{%
+ \let\FP@in@\FP@notyetloaded%
+ \edef\@tempb{#1}%
+ \@for\@tempa:=\FP@loadedfiles\do{%
+ \ifx\@tempa\@tempb%
+ \let\FP@in@\FP@alreadyloaded%
+ \fi%
+ }%
+ \FP@in@{#1}%
+}
+
+\def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}%
+ \iterate \let\iterate\relax}
+\let\repeat=\fi
+
+\RequirePackage{fp}
+
+\catcode`\@=\FPcatamp
diff --git a/Master/texmf-dist/tex/plain/gustlib/biblotex/biblotex.tex b/Master/texmf-dist/tex/plain/gustlib/biblotex/biblotex.tex
new file mode 100644
index 00000000000..50a6d5f247c
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/biblotex/biblotex.tex
@@ -0,0 +1,316 @@
+% 2 IX 1994
+% =========
+%
+% To jest:
+% BibloTeX ver.1.0
+%
+% system makr do generowania bibliografii w systemie plain-TeX
+%
+% adaptacja: B.Licho¤ski 1994
+%----------------------------------- begin BibloTeX ----------------------
+%% @texfile{
+%% author = "Bogus/law Licho/nski",
+%% version = "1.0",
+%% date = "30 Mar 1994",
+%% filename = "biblotex.tex",
+%% address = "Gdynia ul. Kameliowa 17",
+%% codetable = "ISO/ASCII",
+%% supported = "yes",
+%% docstring = "Definicje makr plain TeX dla programu BibTeX",
+%% }
+\edef\cite{\the\catcode`@}%
+\catcode`@ = 11
+\let\@oldatcatcode = \cite
+\chardef\@letter = 11
+\chardef\@other = 12
+\def\@innerdef#1#2{\edef#1{\expandafter\noexpand\csname #2\endcsname}}%
+\@innerdef\@innernewcount{newcount}%
+\@innerdef\@innernewdimen{newdimen}%
+\@innerdef\@innernewif{newif}%
+\@innerdef\@innernewwrite{newwrite}%
+\def\@gobble#1{}%
+\ifx\inputlineno\@undefined
+ \let\@linenumber = \empty % Pre-3.0.
+\else
+ \def\@linenumber{\the\inputlineno:\space}%
+\fi
+\def\@futurenonspacelet#1{\def\cs{#1}%
+ \afterassignment\@stepone\let\@nexttoken=
+}%
+\begingroup % The grouping here avoids stepping on an outside use of `\\'.
+\def\\{\global\let\@stoken= }%
+\\ % now \@stoken is a space token (\\ is a control symbol, so that
+ % space after it is seen).
+\endgroup
+\def\@stepone{\expandafter\futurelet\cs\@steptwo}%
+\def\@steptwo{\expandafter\ifx\cs\@stoken\let\@@next=\@stepthree
+ \else\let\@@next=\@nexttoken\fi \@@next}%
+\def\@stepthree{\afterassignment\@stepone\let\@@next= }%
+\def\@getoptionalarg#1{%
+ \let\@optionaltemp = #1%
+ \let\@optionalnext = \relax
+ \@futurenonspacelet\@optionalnext\@bracketcheck
+}%
+\def\@bracketcheck{%
+ \ifx [\@optionalnext
+ \expandafter\@@getoptionalarg
+ \else
+ \let\@optionalarg = \empty
+ \expandafter\@optionaltemp
+ \fi
+}%
+\def\@@getoptionalarg[#1]{%
+ \def\@optionalarg{#1}%
+ \@optionaltemp
+}%
+%
+% From LaTeX.
+%
+\def\@nnil{\@nil}%
+\def\@fornoop#1\@@#2#3{}%
+\def\@for#1:=#2\do#3{%
+ \edef\@fortmp{#2}%
+ \ifx\@fortmp\empty \else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}%
+ \fi
+}%
+\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi
+}%
+\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \let\@nextwhile=\@fornoop \else
+ #4\relax\let\@nextwhile=\@iforloop\fi\@nextwhile#2\@@#3{#4}%
+}%
+\@innernewif\if@fileexists
+\def\@testfileexistence{\@getoptionalarg\@finishtestfileexistence}%
+\def\@finishtestfileexistence#1{%
+ \begingroup
+ \def\extension{#1}%
+ \immediate\openin0 =
+ \ifx\@optionalarg\empty\jobname\else\@optionalarg\fi
+ \ifx\extension\empty \else .#1\fi
+ \space
+ \ifeof 0
+ \global\@fileexistsfalse
+ \else
+ \global\@fileexiststrue
+ \fi
+ \immediate\closein0
+ \endgroup
+}%
+\toks0 = {%
+\def\bibliographystyle#1{%
+ \@readauxfile
+ \@writeaux{\string\bibstyle{#1}}%
+}%
+\let\bibstyle = \@gobble
+\let\bblfilebasename = \jobname
+\def\bibliography#1{%
+ \@readauxfile
+ \@writeaux{\string\bibdata{#1}}%
+ \@testfileexistence[\bblfilebasename]{bbl}%
+ \if@fileexists
+ \nobreak
+ \@readbblfile
+ \fi
+}%
+\let\bibdata = \@gobble
+\def\nocite#1{%
+ \@readauxfile
+ \@writeaux{\string\citation{#1}}%
+}%
+\@innernewif\if@notfirstcitation
+\def\cite{\@getoptionalarg\@cite}%
+\def\@cite#1{%
+ \let\@citenotetext = \@optionalarg
+ \printcitestart
+ \nocite{#1}%
+ \@notfirstcitationfalse
+ \@for \@citation :=#1\do
+ {%
+ \expandafter\@onecitation\@citation\@@
+ }%
+ \ifx\empty\@citenotetext\else
+ \printcitenote{\@citenotetext}%
+ \fi
+ \printcitefinish
+}%
+\def\@onecitation#1\@@{%
+ \if@notfirstcitation
+ \printbetweencitations
+ \fi
+ \expandafter \ifx \csname\@citelabel{#1}\endcsname \relax
+ \if@citewarning
+ \message{\@linenumber Undefined citation `#1'.}%
+ \fi
+ \expandafter\gdef\csname\@citelabel{#1}\endcsname{%
+ {\tt
+ \escapechar = -1
+ \nobreak\hskip0pt
+ \expandafter\string\csname#1\endcsname
+ \nobreak\hskip0pt
+ }%
+ }%
+ \fi
+ \csname\@citelabel{#1}\endcsname
+ \@notfirstcitationtrue
+}%
+\def\@citelabel#1{b@#1}%
+\def\@citedef#1#2{\expandafter\gdef\csname\@citelabel{#1}\endcsname{#2}}%
+\def\@readbblfile{%
+ \ifx\@itemnum\@undefined
+ \@innernewcount\@itemnum
+ \fi
+ \begingroup
+ \def\begin##1##2{%
+ \setbox0 = \hbox{\biblabelcontents{##2}}%
+ \biblabelwidth = \wd0
+ }%
+ \def\end##1{}% ##1 is `thebibliography' again.
+ \@itemnum = 0
+ \def\bibitem{\@getoptionalarg\@bibitem}%
+ \def\@bibitem{%
+ \ifx\@optionalarg\empty
+ \expandafter\@numberedbibitem
+ \else
+ \expandafter\@alphabibitem
+ \fi
+ }%
+ \def\@alphabibitem##1{%
+ \expandafter \xdef\csname\@citelabel{##1}\endcsname {\@optionalarg}%
+ \ifx\biblabelprecontents\@undefined
+ \let\biblabelprecontents = \relax
+ \fi
+ \ifx\biblabelpostcontents\@undefined
+ \let\biblabelpostcontents = \hss
+ \fi
+ \@finishbibitem{##1}%
+ }%
+ \def\@numberedbibitem##1{%
+ \advance\@itemnum by 1
+ \expandafter \xdef\csname\@citelabel{##1}\endcsname{\number\@itemnum}%
+ \ifx\biblabelprecontents\@undefined
+ \let\biblabelprecontents = \hss
+ \fi
+ \ifx\biblabelpostcontents\@undefined
+ \let\biblabelpostcontents = \relax
+ \fi
+ \@finishbibitem{##1}%
+ }%
+ \def\@finishbibitem##1{%
+ \biblabelprint{\csname\@citelabel{##1}\endcsname}%
+ \@writeaux{\string\@citedef{##1}{\csname\@citelabel{##1}\endcsname}}%
+ \ignorespaces
+ }%
+ \let\em = \bblem
+ \let\newblock = \bblnewblock
+ \let\sc = \bblsc
+ \frenchspacing
+ \clubpenalty = 4000 \widowpenalty = 4000
+ \tolerance = 10000 \hfuzz = .5pt
+ \everypar = {\hangindent = \biblabelwidth
+ \advance\hangindent by \biblabelextraspace}%
+ \bblrm
+ \parskip = 1.5ex plus .5ex minus .5ex
+ \biblabelextraspace = .5em
+ \bblhook
+ \input \bblfilebasename.bbl
+ \endgroup
+}%
+\@innernewdimen\biblabelwidth
+\@innernewdimen\biblabelextraspace
+\def\biblabelprint#1{%
+ \noindent
+ \hbox to \biblabelwidth{%
+ \biblabelprecontents
+ \biblabelcontents{#1}%
+ \biblabelpostcontents
+ }%
+ \kern\biblabelextraspace
+}%
+\def\biblabelcontents#1{{\bblrm [#1]}}%
+\def\bblrm{\rm}%
+\def\bblem{\it}%
+\def\bblsc{\ifx\@scfont\@undefined
+ \font\@scfont = plcsc10
+ \fi
+ \@scfont
+}%
+\def\bblnewblock{\hskip .11em plus .33em minus .07em }%
+\let\bblhook = \empty
+\def\printcitestart{[}% left bracket
+\def\printcitefinish{]}% right bracket
+\def\printbetweencitations{, }% comma, space
+\def\printcitenote#1{, #1}% comma, space, note (if it exists)
+\let\citation = \@gobble
+\@innernewcount\@numparams
+\def\newcommand#1{%
+ \def\@commandname{#1}%
+ \@getoptionalarg\@continuenewcommand
+}%
+\def\@continuenewcommand{%
+ \@numparams = \ifx\@optionalarg\empty 0\else\@optionalarg \fi \relax
+ \@newcommand
+}%
+\def\@newcommand#1{%
+ \def\@startdef{\expandafter\edef\@commandname}%
+ \ifnum\@numparams=0
+ \let\@paramdef = \empty
+ \else
+ \ifnum\@numparams>9
+ \errmessage{\the\@numparams\space is too many parameters}%
+ \else
+ \ifnum\@numparams<0
+ \errmessage{\the\@numparams\space is too few parameters}%
+ \else
+ \edef\@paramdef{%
+ \ifcase\@numparams
+ \empty No arguments.
+ \or ####1%
+ \or ####1####2%
+ \or ####1####2####3%
+ \or ####1####2####3####4%
+ \or ####1####2####3####4####5%
+ \or ####1####2####3####4####5####6%
+ \or ####1####2####3####4####5####6####7%
+ \or ####1####2####3####4####5####6####7####8%
+ \or ####1####2####3####4####5####6####7####8####9%
+ \fi
+ }%
+ \fi
+ \fi
+ \fi
+ \expandafter\@startdef\@paramdef{#1}%
+}%
+}%
+\ifx\nobibtex\@undefined \the\toks0 \fi
+\def\@readauxfile{%
+ \if@auxfiledone \else % remember: \@auxfiledonetrue if \noauxfile is defined
+ \global\@auxfiledonetrue
+ \@testfileexistence{aux}%
+ \if@fileexists
+ \begingroup
+ \endlinechar = -1
+ \catcode`@ = 11
+ \input \jobname.aux
+ \endgroup
+ \else
+ \message{\@undefinedmessage}%
+ \global\@citewarningfalse
+ \fi
+ \immediate\openout\@auxfile = \jobname.aux
+ \fi
+}%
+\newif\if@auxfiledone
+\ifx\noauxfile\@undefined \else \@auxfiledonetrue\fi
+\@innernewwrite\@auxfile
+\def\@writeaux#1{\ifx\noauxfile\@undefined \write\@auxfile{#1}\fi}%
+\ifx\@undefinedmessage\@undefined
+ \def\@undefinedmessage{No .aux file; I won't give you warnings about
+ undefined citations.}%
+\fi
+\@innernewif\if@citewarning
+\ifx\noauxfile\@undefined \@citewarningtrue\fi
+\catcode`@ = \@oldatcatcode
+\prefixing
+%----------------------------------- end BibloTeX -------------------------
diff --git a/Master/texmf-dist/tex/plain/gustlib/infr-ex.tex b/Master/texmf-dist/tex/plain/gustlib/infr-ex.tex
new file mode 100644
index 00000000000..dae0428affa
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/infr-ex.tex
@@ -0,0 +1,6 @@
+%% u/zycie: \infram <gr.ramki> <odl.od ramki> {tre/s/c (materia/l pionowy)}
+%% usage: \infram <thickness> <distance> {contents (vertical stuff)}
+\input infram
+\infram 1.8pt 3mm {\hbox{tekst w ramce (text in a frame)}}
+\end
+
diff --git a/Master/texmf-dist/tex/plain/gustlib/infram.tex b/Master/texmf-dist/tex/plain/gustlib/infram.tex
new file mode 100644
index 00000000000..8aae4ebae8d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/infram.tex
@@ -0,0 +1,11 @@
+%% u/zycie: \infram <gr.ramki> <odl.od ramki> {tre/s/c (materia/l pionowy)}
+%% usage: \infram <thickness> <distance> {contents (vertical stuff)}
+\newdimen\frth \newdimen\frdi
+\long\def\infram{\vbox\bgroup \afterassignment\inframa \frth = }
+\def\inframa{\afterassignment\inframb \frdi = }
+\long\def\inframb#1{\hrule height\frth
+ \hbox{\vrule width\frth
+ \kern\frdi \vbox{\kern\frdi#1\kern\frdi}\kern\frdi
+ \vrule width\frth}
+ \hrule height\frth\egroup}
+\endinput
diff --git a/Master/texmf-dist/tex/plain/gustlib/licz/licz-tst.mex b/Master/texmf-dist/tex/plain/gustlib/licz/licz-tst.mex
new file mode 100644
index 00000000000..dc20aa7dc77
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/licz/licz-tst.mex
@@ -0,0 +1,101 @@
+% Test zestawu makr LICZ (Mazovia)
+% wersja 4.0
+% 27.04.96 19:49
+
+\input licz.mex
+
+
+\let\ad\advance
+
+\def\tl
+ % testline
+ #1%
+ {%
+ \edef\s’ownie{\licz{#1}}%
+ \item{\bf\number#1}(\s’ownie)\endgraf
+ \immediate\write16{\number#1}%
+ }
+
+\def\tloop
+ #1% from
+ #2% step
+ #3% to
+ {{%
+ \n #1\relax
+ \k #3\relax \ad\k1
+ \loop
+ \tl\n
+ \ad\n#2\relax
+ \ifnum\n<\k
+ \repeat
+ }}
+\newcount\n
+\newcount\k
+
+\let\rm\fiverm
+\font\bf plbx5
+\baselineskip7pt
+\rm
+\raggedright
+\nopagenumbers
+\raggedbottom
+\vsize9.9in
+\parindent1.5cm
+
+\def\test
+ {%
+ \liczspace{ }
+
+ \tl{1}
+ \tl{12}
+ \tl{20}
+ \tl{21}
+ \tl{34}
+ \tl{234}
+
+ \tl{123}
+ \tl{1234}
+ \tl{12345}
+ \tl{1234546}
+ \tl{12345678}
+ \tl{123456789}
+ \tl{1234567891}
+
+ \bigskip
+ najmniejsza liczba w \TeX-u:
+ \tl{-2147483647}
+ najwi‘ksza liczba w \TeX-u:
+ \tl{2147483647}
+
+ \bigskip
+ {%
+ \tloop
+ {1}
+ {1}
+ {250}
+ }
+
+ \bigskip
+ \liczspace{\=}
+ \tl{1001001001}
+ \tl{1000000001}
+ \tl{1000000000}
+ \tl{1000030000}
+
+ \bigskip
+ {\liczspace{\hrulefill}
+ \line{\licz{174568}}}
+
+ \liczspace{ }
+ \message{12345 = \licz{12345}}
+ \vfill
+ \eject
+ }
+
+\prefixing
+\test
+
+\nonprefixing
+\test
+
+\end
diff --git a/Master/texmf-dist/tex/plain/gustlib/licz/licz.mex b/Master/texmf-dist/tex/plain/gustlib/licz/licz.mex
new file mode 100644
index 00000000000..1e336015f30
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/licz/licz.mex
@@ -0,0 +1,529 @@
+% zestaw makr LICZ.MEX
+% makro \licz podaj/ace s/lownie po polsku liczb/e
+% wraz z makrami pomocniczymi
+
+% autor: Marek Ry/cko
+
+% wersja 0.0, 11 sierpnia 1993 r.
+% wersja 0.1, 12 sierpnia 1993 r.
+% -- wszystko na poziomie rozwiajania
+% wersja 0.2, 13 sierpnia 1993 r. (pi/atek!)
+% -- pewne optymalizacje czasowe zwi/azane ze sposobem realizacji
+% dope/lniania zerami (na poziomie makr)
+% wersja 0.3, 23 sierpnia 1993 r.
+% -- jedynie troch/e zmieniony program testuj/acy
+% wersja 0.4, 25//26 stycznia 1994 r.
+% -- istotna poprawka makra \lead_zeroo (dzi/eki BJ)
+% wersja 0.5, 18 lutego 1995 r. (po wyk/ladzie o rozwijaniu /zeton/ow)
+% -- poprawki pomy/lek w komentarzach
+% -- uzupe/lnienie brakuj/acego procentu w \licz_err
+% wersja 0.6, 27 kwietnia 1996 r. (przygotowanie do Bachotka 96)
+% -- oparcie tylko na MEX-u
+% -- uniezale/znienie od rodzaju stosowanej notacji polskich liter
+
+% OPIS:
+
+% \licz{<liczba>}
+% rozwija si/e do liczby wyra/zonej s/lownie po polsku
+% \liczspace{<cokolwiek>}
+% powoduje, /ze <cokolwiek> b/edzie wstawiane jako
+% odst/ep separuj/acy s/lowa (domy/slnie: <cokolwiek>=zwyk/ly odst/ep)
+
+% to do:
+% -- parametryczne pisanie ,,jeden'' przed tysi/acami itp.
+% -- ewentualnie zamieni/c \lead_zero na og/olniejsze makro dope/lniaj/ace czym/s...
+
+% makra normalnie zawarte w formacie ,,Do'':
+\let\e\expandafter
+\let\expi\e
+\def\expii{\e\expi\e}
+\def\expiii{\e\expii\e}
+\def\expiv{\e\expiii\e}
+\def\letter{11}
+
+\edef\liczundcatcode{\the\catcode`\_}
+\catcode`\_\letter
+\edef\liczatcatcode{\the\catcode`\@}
+\catcode`\@\letter
+
+% zapami/etanie dotychczasowej ,,prefiksyjno/sci'':
+\let\liczprefix\pr@fix
+\if\liczprefix F\prefixing\fi
+
+% nast/epne dzia/ly zawieraj/a rozmaite makra podr/eczne:
+
+\def\expfull
+ % four times expansion of \expfull{...} expands fully ...
+ #1% a sequence of tokens expanding to characters only
+ {%
+ % triple expansion of the following expands fully #1
+ \e\e\e\gobble_first
+ % the following expands at the 2-nd level to the sequence of characters
+ % preceded by backslash
+ \e\string\csname#1\endcsname
+ \end_gobble
+ }
+\def\gobble_first#1#2\end_gobble{#2}
+
+\def\lead_zero
+ % zamienia liczb/e nieujemn/a na 10-cyfrow/a liczb/e dope/lnion/a zerami
+ #1% positive number (any)
+ {%
+ % apply \lead_zeroo to the already calculated sequence of digits:
+ \e\lead_zeroo\e{\number#1}%
+ }
+\def\lead_zeroo
+ #1% positive number (sequence of digits)
+ {%
+ \ifnum#1<10 000000000\else
+ \ifnum#1<100 00000000\else
+ \ifnum#1<1000 0000000\else
+ \ifnum#1<10000 000000\else
+ \ifnum#1<100000 00000\else
+ \ifnum#1<1000000 0000\else
+ \ifnum#1<10000000 000\else
+ \ifnum#1<100000000 00\else
+ \ifnum#1<1000000000 0\else
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi
+ #1}
+
+\def\div_ten_to
+ % expands to a number (a sequence of decimal digits)
+ % without the last #2 decimal digits
+ #1% nonnegative number (<=9 999 999 999)
+ #2% divided by ten to #2 (>=0 <=9)
+ {%
+ \number % normalize the result (no leading zeros)
+ \ifcase#2
+ % 0:
+ #1%
+ \or
+ % 1:
+ \apply_take\take_ix{#1}%
+ \or
+ % 2:
+ \apply_take\take_viii{#1}%
+ \or
+ % 3:
+ \apply_take\take_vii{#1}%
+ \or
+ % 4:
+ \apply_take\take_vi{#1}%
+ \or
+ % 5:
+ \apply_take\take_v{#1}%
+ \or
+ % 6:
+ \apply_take\take_iv{#1}%
+ \or
+ % 7:
+ \apply_take\take_iii{#1}%
+ \or
+ % 8:
+ \apply_take\take_ii{#1}%
+ \or
+ % 9:
+ \apply_take\take_i{#1}%
+ \else
+ \licz_err{dzielenie przez 10 do b/l/ednej pot/egi}%
+ \fi
+ }
+
+\def\mod_ten_to
+ % expands to the last #2 decimal digits
+ % of a number (a sequence of decimal digits)
+ #1% nonnegative number (<=9 999 999 999)
+ #2% modulo ten to #2 (>=0 <=9)
+ {%
+ \number % normalize the result (no leading zeros)
+ \ifcase#2
+ % 0:
+ 0%
+ \or
+ % 1:
+ \apply_take\gob_ix{#1}%
+ \or
+ % 2:
+ \apply_take\gob_viii{#1}%
+ \or
+ % 3:
+ \apply_take\gob_vii{#1}%
+ \or
+ % 4:
+ \apply_take\gob_vi{#1}%
+ \or
+ % 5:
+ \apply_take\gob_v{#1}%
+ \or
+ % 6:
+ \apply_take\gob_iv{#1}%
+ \or
+ % 7:
+ \apply_take\gob_iii{#1}%
+ \or
+ % 8:
+ \apply_take\gob_ii{#1}%
+ \or
+ % 9:
+ \apply_take\gob_i{#1}%
+ \else
+ \licz_err{dzielenie przez 10 do b/l/ednej pot/egi}%
+ \fi
+ }
+
+\def\apply_take
+ #1% np. \take_ix
+ #2% number
+ {\e\apply_takee\e#1\e{\number#2}}
+\def\apply_takee
+ #1% np. \take_ix
+ #2% number
+ {\expiv#1\expfull{\lead_zero{#2}}\end_take}
+
+\def\take_ix #1{#1\take_viii}
+\def\take_viii #1{#1\take_vii}
+\def\take_vii #1{#1\take_vi}
+\def\take_vi #1{#1\take_v}
+\def\take_v #1{#1\take_iv}
+\def\take_iv #1{#1\take_iii}
+\def\take_iii #1{#1\take_ii}
+\def\take_ii #1{#1\take_i}
+\def\take_i #1{#1\take_zero}
+\def\take_zero {\gob_rest}
+\def\gob_rest#1\end_take{}
+
+\def\gob_ix #1{\gob_viii}
+\def\gob_viii #1{\gob_vii}
+\def\gob_vii #1{\gob_vi}
+\def\gob_vi #1{\gob_v}
+\def\gob_v #1{\gob_iv}
+\def\gob_iv #1{\gob_iii}
+\def\gob_iii #1{\gob_ii}
+\def\gob_ii #1{\gob_i}
+\def\gob_i #1{\gob_zero}
+\def\gob_zero {\take_rest}
+\def\take_rest#1\end_take{#1}
+
+% koniec makr pomocniczych og/olnego u/zytku
+
+\def\licz
+ #1% number (jest obliczany jednokrotnie)
+ {\e\licz_licz\e{\number#1}}
+\def\licz_licz
+ #1% number
+ {%
+ \ifnum#1=0
+ zero%
+ \else
+ % <> 0
+ \ifnum#1<0
+ % < 0
+ minus\licz_space\licz_dod{-#1}%
+ \else
+ % > 0
+ \licz_dod{#1}%
+ \fi
+ \fi
+ }
+
+\def\licz_sep
+ #1% liczba >=0
+ {% first calculate the number, then apply
+ \e\licz_sepp\e{\number#1}}
+\def\licz_sepp
+ #1% liczba >=0 (ju/z obliczona)
+ #2% separacja modulo 10 do pot/egi #2
+ {% first calculate the mod separation, then apply
+ \e\licz_seppp\e{\number\mod_ten_to{#1}{#2}}%
+ {#1}{#2}% powtarzamy parametry
+ }
+\def\licz_seppp
+ #1% modulo ju/z wyliczone (patrz wy/zej)
+ #2% liczba >=0 (ju/z obliczona)
+ #3% separacja modulo 10 do pot/egi #3
+ {% first calculate the div separation, then apply
+ \e\licz_sepppp\e{\number\div_ten_to{#2}{#3}}%
+ {#1}% modulo ju/z wyliczone
+ }
+\def\licz_sepppp
+ #1% div
+ #2% mod
+ #3% makro dla du/zych
+ #4% makro dla ko/nc/owki
+ {%
+ \ifnum#1>0
+ #3{#1}%
+ \licz_mk_space{#1}{#2}%
+ \fi
+ #4{#2}%
+ }
+
+\def\licz_dod
+ #1% liczba dodatnia (w dowolnym zapisie w sensie TeX-a)
+ {\licz_sep{#1}3\licz_tys\licz_dotys}
+
+\def\licz_tys
+ #1% liczba dodatnia
+ {\licz_sep{#1}3\licz_miliony
+ {\licz_tylko{tysi}{/ac}{/ace}{/ecy}}}%
+
+\def\licz_miliony
+ #1% liczba dodatnia
+ {\licz_sep{#1}3\licz_miliardy
+ {\licz_tylko{milion}{}{y}{/ow}}}%
+
+\def\licz_miliardy
+ #1% liczba dodatnia
+ {\licz_sep{#1}3\licz_overflow
+ {\licz_tylko{miliard}{}{y}{/ow}}}%
+
+\def\licz_overflow
+ #1%
+ {\ifnum#1>0 \licz_err{za du/za liczba}\fi}
+
+\def\licz_tylko
+ #1% rdze/n
+ #2#3#4% ko/nc/owki 1, 2, 5
+ #5% liczba tego
+ {%
+ \ifnum#5>0
+ \licz_dod{#5}\licz_space
+ \licz_odm{#5}{#1}{#2}{#3}{#4}%
+ \else
+ % nic
+ \fi
+ }
+
+\def\licz_dotys
+ #1% >=1, <=999
+ {\licz_sep{#1}2\licz_setki\licz_dostu}
+
+\def\licz_dostu
+ #1%
+ {%
+ %
+ \ifnum#1<10
+ \licz_jedn{#1}%
+ \else
+ % #1 >= 10
+ \ifnum#1<20
+ % 10 <= #1 <= 19
+ \licz_at_least_ten{#1}%
+ \else
+ % #1 >= 20
+ \ifnum#1<100
+ % 20 <= #1 <= 99
+ \licz_sep{#1}1\licz_at_least_twenty\licz_jedn
+ \else
+ % #1 >= 100
+ \licz_err{mia/lo by/c do stu}%
+ \fi
+ \fi
+ \fi
+ }
+
+\def\licz_jedn
+ #1%
+ {%
+ \ifcase\number#1\space\space
+ % 0:
+ % nic
+ \or % 1:
+ jeden%
+ \or % 2:
+ dwa%
+ \or % 3:
+ trzy%
+ \or % 4:
+ cztery%
+ \or % 5:
+ pi/e/c%
+ \or % 6:
+ sze/s/c%
+ \or % 7:
+ siedem%
+ \or % 8:
+ osiem%
+ \or % 9:
+ dziewi/e/c%
+ \else
+ \licz_err{cyfra > 9}%
+ \fi
+ }
+
+\def\licz_at_least_ten
+ #1%
+ {%
+ \ifcase \number\mod_ten_to{#1}{1}\space\space
+ % 10:
+ dziesi/e/c%
+ \or % 11:
+ jedena/scie%
+ \or % 12:
+ dwana/scie%
+ \or % 13:
+ trzyna/scie%
+ \or % 14:
+ czterna/scie%
+ \or % 15:
+ pi/etna/scie%
+ \or % 16:
+ szesna/scie%
+ \or % 17:
+ siedemna/scie%
+ \or % 18:
+ osiemna/scie%
+ \or % 19:
+ dziewi/etna/scie%
+ \else
+ \licz_err{na/scie > 19}%
+ \fi
+ }
+
+\def\licz_at_least_twenty
+ #1%
+ {%
+ % 2 <= #1 <= 9
+ % sk/ladamy dziesi/atki:
+ \ifcase \number#1\space\space
+ % 0:
+ \licz_err{dzie/scia < 10}%
+ \or % 1:
+ \licz_err{dzie/scia < 20}%
+ \or % 2:
+ dwadzie/scia%
+ \or % 3:
+ trzydzie/sci%
+ \or % 4:
+ czterdzie/sci%
+ \or % 5:
+ pi/e/cdziesi/at%
+ \or % 6:
+ sze/s/cdziesi/at%
+ \or % 7:
+ siedemdziesi/at%
+ \or % 8:
+ osiemdziesi/at%
+ \or % 9:
+ dziewi/e/cdziesi/at%
+ \else
+ % > 9
+ \licz_err{dzie/scia > 99}%
+ \fi
+ % dziesi/atki z/lo/zone
+ }
+
+\def\licz_setki
+ #1%
+ {%
+ % 0 <= #1 <= 9
+ % sk/ladamy setki:
+ \ifcase\number#1\space\space
+ % 0:
+ % nic
+ \or % 1:
+ sto%
+ \or % 2:
+ dwie/scie%
+ \or % 3:
+ trzysta%
+ \or % 4:
+ czterysta%
+ \or % 5:
+ pi/e/cset%
+ \or % 6:
+ sze/s/cset%
+ \or % 7:
+ siedemset%
+ \or % 8:
+ osiemset%
+ \or % 9:
+ dziewi/e/cset%
+ \else
+ % > 9
+ \licz_err{setki > 9}%
+ \fi
+ }
+
+\def\licz_mk_space
+ #1#2% je/sli obie liczby >0, to rozwi/n si/e do odst/epu
+ {%
+ \ifnum#1>0
+ \ifnum#2>0
+ \licz_space
+ \fi
+ \fi
+ }
+
+\def\licz_odm
+ #1% liczba >=1
+ #2% rdze/n
+ #3% ko/nc/owka 1
+ #4% ko/nc/owka 2, 3, 4
+ #5% ko/nc/owka 5, 6, 7, 8, 9, 0
+ {%
+ \ifcase\number\mod_ten_to{#1}{1}\space\space
+ % 0:
+ #2#5%
+ \or % 1:
+ \ifnum#1=1
+ #2#3%
+ \else
+ #2#5%
+ \fi
+ \or % 2:
+ \ifnum\mod_ten_to{#1}{2}=12
+ #2#5%
+ \else
+ #2#4%
+ \fi
+ \or % 3:
+ \ifnum\mod_ten_to{#1}{2}=13
+ #2#5%
+ \else
+ #2#4%
+ \fi
+ \or % 4:
+ \ifnum\mod_ten_to{#1}{2}=14
+ #2#5%
+ \else
+ #2#4%
+ \fi
+ \or % 5:
+ #2#5%
+ \or % 6:
+ #2#5%
+ \or % 7:
+ #2#5%
+ \or % 8:
+ #2#5%
+ \or % 9:
+ #2#5%
+ \else
+ % > 9
+ \licz_err{modulo w odmianie nie dzia/la}%
+ \fi
+ }
+
+% w poni/zszym makrze u/zyty jest jawny parametr, ze wzgl/edu na mo/zliwo/s/c
+% u/zycia np. w formie \liczspace\space (bez nawias/ow klamrowych)
+\def\liczspace
+ #1% cokolwiek
+ {\def\licz_space{#1}}
+
+\def\licz_err
+ #1%
+ {{%
+ \newlinechar`\@%
+ \errhelp{Co/s jest nie tak w makrach obs/luguj/acych liczenie.@%
+ Najlepiej zawiadomi/c autora, bo to pewnie jego wina.}%
+ \errmessage{B/l/ad w liczeniu: #1}%
+ }}
+
+\catcode`\_\liczundcatcode\space
+\catcode`\@\liczatcatcode\space
+\if\liczprefix F\nonprefixing\fi
+
+% domy/slnie:
+\liczspace\space
+\endinput
diff --git a/Master/texmf-dist/tex/plain/gustlib/map/map.tex b/Master/texmf-dist/tex/plain/gustlib/map/map.tex
new file mode 100644
index 00000000000..779ef6ae3c7
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/map/map.tex
@@ -0,0 +1,63 @@
+% MAP.TEX
+
+% Marek Ry\'cko
+
+% Macro \map
+% for applying operations to token sequences
+
+% uses SPLIT.TEX
+
+% version 0.0 24.07.1993
+% version 0.1 1.5.1996
+% -- english description
+
+\def\map
+ % for each element E of the token list #2
+ % ``execute'' the token list #1
+ % possibly making use of the following macros:
+ % \mappre the token list before E (without E)
+ % \mapcur the token E
+ % \mappost the token list after E (without E)
+ % \mapupto the token list from the beginning till and including E
+ % \mapfrom the token list from and including E till the end
+ % \mapent the entire token list
+ %
+ % -------------\mapent----------------
+ % ---\mapfrom---------
+ % ----\mapupto-----
+ % ................E...................
+ % ----\mappre----- ---\mappost--------
+ % 
+ % |
+ % |
+ % \mapcur
+ %
+ #1% operation
+ #2% token list
+ {{%
+ \def\mapent{#2}%
+ \def\mappre{}%
+ \let\mapfrom\mapent
+ % \mappre contains already processed sequence
+ % \mapfrom contains the sequence to be processed
+ % while nonempty \mapfrom do:
+ \ifx\empty\mapfrom \mapcontfalse \else \mapconttrue \fi
+ \loop \ifmapcont
+ % \mapfrom nonempty, so it can be split:
+ % split \mapfrom to head and tail:
+ \split\mapfrom\mapcur\mappost
+ % set \mapupto as the concatenation of \mappre and \mapcur:
+ \expandafter\expandafter\expandafter
+ \def\expandafter\expandafter\expandafter
+ \mapupto\expandafter\expandafter\expandafter
+ {\expandafter\mappre\mapcur}%
+ % execute operation(s):
+ #1%
+ % define new values of \mappre and \mapfrom
+ \expandafter\def\expandafter\mappre\expandafter{\mapupto}%
+ \expandafter\def\expandafter\mapfrom\expandafter{\mappost}%
+ % \mappre contains already processed sequence
+ % \mapfrom contains the sequence to be processed
+ \ifx\empty\mapfrom \mapcontfalse \else \mapconttrue \fi
+ \repeat}}%
+\newif\ifmapcont
diff --git a/Master/texmf-dist/tex/plain/gustlib/map/split.tex b/Master/texmf-dist/tex/plain/gustlib/map/split.tex
new file mode 100644
index 00000000000..252f1d358b1
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/map/split.tex
@@ -0,0 +1,63 @@
+% SPLIT.TEX
+
+% Marek Ry\'cko
+
+% Macro \split (and auxiliary macros)
+% for splitting token sequences
+% Macro \hdtl
+
+% version 0.0 24.07.1993
+% version 0.1 31.12.94
+% version 0.2 1.5.1996
+% -- english description
+
+\def\hdtl
+ #1% inp. t.s. (nonempty, poss blanks)
+ #2% outp. -- head
+ #3% outp. -- tail
+ {\let\reshead=#2% synonims for token-register names
+ \let\restail=#3%
+ \expandafter\gethead\the#1\endoftokens}
+\def\gethead
+ {\futurelet\thehead\analysehead}
+\def\analysehead
+ {\ifcat \noexpand\thehead \space
+ \let\followby=\followbyspace
+ \else
+ \let\followby=\followbynospace
+ \fi
+ \followby}
+\def\followbyspace
+ {\reshead={ }% space token
+ \afterassignment\gettail
+ \let\swallow= }% swallowing the head-space
+\def\gettail
+ #1\endoftokens
+ {\restail={#1}}
+\def\followbynospace
+ #1#2\endoftokens
+ {\reshead={#1}%
+ \restail={#2}}
+\def\split
+ #1% input macro name (should expand to nonemty token sequence)
+ #2% macro head (name)
+ #3% macro tail (name)
+ {%
+ % define
+ % #2 as the first token (with nested braces) of #1
+ % #3 as the tail (with nested braces) of #1
+ \expandafter\splithdtl\expandafter{#1}%
+ \expandafter\def\expandafter\splittest\expandafter{\the\splithdtl}%
+ \ifx\splittest\empty
+ \gdef#2{}%
+ \gdef#3{}%
+ \else
+ \hdtl\splithdtl\splithd\splittl
+ \expandafter\gdef\expandafter#2\expandafter{\the\splithd}%
+ \expandafter\gdef\expandafter#3\expandafter{\the\splittl}%
+ \fi
+ }
+\newtoks\splithdtl
+\newtoks\splithd
+\newtoks\splittl
+
diff --git a/Master/texmf-dist/tex/plain/gustlib/map/tsp-tst.mex b/Master/texmf-dist/tex/plain/gustlib/map/tsp-tst.mex
new file mode 100644
index 00000000000..bb887172a97
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/map/tsp-tst.mex
@@ -0,0 +1,68 @@
+% TSP-TEST.MEX
+
+% test zestawu makr TSP
+
+% Bogus/law Jackowski i Marek Ry/cko
+% 24 lipca 1993 r., dotkni/ete 14 lutego 1997 r.
+
+\input split
+\input map
+\input tsp
+\prefixing
+
+\def\wlaz
+ {%
+ Wlaz/l pies do kuchni
+ {i\nobreak} porwa/l mi/esa /cwier{/c,}
+ {a\nobreak} jaki/s kucharz g/lupi
+ zar/aba/l go na /smier{/c.}
+ {A\nobreak} drugi kucharz m/adr{y,}
+ co lito/s/c {w\nobreak} sercu mia/l
+ postawi/l mu nagrobek
+ {i\nobreak} taki napis da}
+\edef\lista
+ {\wlaz{/l:} \wlaz{/l...}}
+
+\def\test
+ #1% odst/ep zamiast spacji
+ #2% odst/ep mi/edzy literami
+ {%
+ \def\paramtest{#1#2}
+ \ifx\paramtest\empty\else
+ % odst/ep zamiast spacji:
+ \def\tspsp {#1}
+ % odst/ep mi/edzy literami:
+ \def\tsplet {#2}
+ \fi
+ \leftline{\tt \string\def\string\tspsp\{\tspsp\}\space\space
+ \string\def\string\tsplet\{\tsplet\}}
+ \vskip2pt
+ \expandafter\tsp\expandafter{\lista}
+ \vskip6pt
+ \message{.}
+ }
+
+\font\xxx plr12 scaled \magstep1 \xxx
+\baselineskip16.4pt
+\vsize24.7cm
+\nopagenumbers
+\chardef\{"7B
+\chardef\}"7D
+
+\message{Prosz/e czeka/c.}
+
+{\tenrm
+\line{Test makra {\tt\string\tsp}\hss
+ 1 maja 1996 r.}
+\smallskip
+\hrule
+\vfill
+}
+\test {} {}% standard
+\test {0.555em plus.2777em minus.111em} {.1em}%
+\test {0.28em plus.1em minus.111em} {-.05em}%
+\test {0.22em plus.1em minus.111em} {-.06em}%
+\test {0.333em plus.167em minus.111em} {0em}%
+\leftline{\tt zwyk/ly tekst:}\vskip2pt
+\tsp {\lista}% bez u/zycia makra
+\eject\end
diff --git a/Master/texmf-dist/tex/plain/gustlib/map/tsp.tex b/Master/texmf-dist/tex/plain/gustlib/map/tsp.tex
new file mode 100644
index 00000000000..e140ed624de
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/map/tsp.tex
@@ -0,0 +1,49 @@
+% TSP.TEX
+
+% Marek Ry\'cko
+
+% Macro \tsp
+% Text SPace
+
+% uses SPLIT.TEX
+
+% version 0.0 24.07.1993
+% version 0.2, 8.10.1993
+% -- no \input map
+% version 0.3 1.5.1996
+% -- english description
+
+
+% uses SPLIT
+% uses MAP
+
+
+\def\tsp
+ %#1%
+ {\map
+ {\ifx\mapcur\space
+ \hskip\tspsp\relax
+ \else
+ \mapcur
+ % if it is not the last element -- join using kern:
+ \ifx\mappost\empty \else
+ % ``future'' is nonempty;
+ % we put interletter spacing only if
+ % next character is not space:
+ \split\mappost\tsptest\fool
+ \ifx\tsptest\space
+ % will be space, don't put glue:
+ \else
+ % not kern to make it streachable:
+ \nobreak\hskip\tsplet\relax
+ \fi
+ \fi
+ \fi
+ }% the end of first parameter
+ %{#1}%
+ }
+% default parameters:
+% the amount of space in place of the space character:
+ \def\tspsp {0.9em plus.3em minus.2em}
+% distance between letters:
+ \def\tsplet {.1666667em}%
diff --git a/Master/texmf-dist/tex/plain/gustlib/map/tun-test.mex b/Master/texmf-dist/tex/plain/gustlib/map/tun-test.mex
new file mode 100644
index 00000000000..9034c81ef90
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/map/tun-test.mex
@@ -0,0 +1,51 @@
+% TUN-TEST.MEX (Mazovia)
+
+% test zestawu makr TSP
+
+% Bogus/law Jackowski i Marek Ry/cko
+% 9.10.94, dotkni/ete 14 lutego 1997 r.
+
+\input split
+\input map
+\input tun
+\prefixing
+
+\def\zda
+ {Moim zdaniem ten tekst powinien by{/c} podkre{/s}lony...}
+\edef\aka
+ {%
+ \zda\
+ \zda\
+ \zda\
+ \zda\
+ \zda
+ }
+\def\tes#1%
+ {\expandafter\tun\expandafter{#1}\vskip5pt}
+\def\uf{\afterassignment\tunfont\font\tunfont}
+\footline{\hfill\tenrm\expandafter\tun\expandafter{\the\pageno}\hfill}
+\pageno1001
+
+%\def\tunsep {.25ex}%
+%\def\tunwd {.1ex}%
+\def\tunfac {1.1}%
+
+\tes\zda
+
+\uf plr17
+
+\tes\zda
+
+\uf plb10
+
+\tes\zda
+
+\uf plr17 scaled\magstep1
+\baselineskip22.4pt
+
+\tes\zda
+
+%\edef\param{\licz{157}}
+%\expandafter\tun\expandafter{\param}
+
+\end
diff --git a/Master/texmf-dist/tex/plain/gustlib/map/tun.tex b/Master/texmf-dist/tex/plain/gustlib/map/tun.tex
new file mode 100644
index 00000000000..275135adb97
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/map/tun.tex
@@ -0,0 +1,51 @@
+% TUN.TEX
+
+% Marek Ry\'cko
+
+% Macro \tun
+% Text UNderline
+
+% version 0.1, 9.10.94
+% version 0.3, 1.5.1996
+% -- english description
+
+
+% uses SPLIT
+% uses MAP
+
+
+\newbox\boxA
+\newdimen\dimenA
+\newdimen\dimenB
+
+
+\def\tun
+ %#1%
+ {\map
+ {\ifx\mapcur\space
+ \space
+ \else
+ \tunel\mapcur
+ \fi
+ }%
+ %{#1}%
+ }
+\def\tunel
+ #1% what to underline
+ {{%
+ #1%
+ \setbox\boxA\hbox{#1}%
+ \dimenA-\tunsep
+ \dimenB-\dimenA \advance\dimenB\tunwd
+ \llap{\hbox to\wd\boxA{\hss
+ \vrule height\dimenA depth\dimenB width\tunfac\wd\boxA
+ \hss}}%
+ }}
+
+% default parameters:
+% underline separator width
+ \def\tunsep {.25ex}%
+% underline width
+ \def\tunwd {.09ex}%
+% underline factor of letter width:
+ \def\tunfac {1}%
diff --git a/Master/texmf-dist/tex/plain/gustlib/mcol-ex.tex b/Master/texmf-dist/tex/plain/gustlib/mcol-ex.tex
new file mode 100644
index 00000000000..0992ef39131
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/mcol-ex.tex
@@ -0,0 +1,149 @@
+%%% przyklad skladu wielokolumnowego, | an example of multicolumn for plain
+%%% oops... wielo/lamowego
+%%% (opr. Staszek Wawrykiewicz)
+\input mimulcol
+%---------------------------------------------------------------------
+
+%% sk/lad 1 /lamowy | 1 column
+1 2 3 4 5 6 7 8 9 10
+11 12 13 14 15 16 17 18 19 20
+21 22 23 24 25 26 27 28 29 30
+31 32 33 34 35 36 37 38 39 40
+41 42 43 44 45 46 47 48 49 50
+51 52 53 54 55 56 57 58 59 60
+61 62 63 64 65 66 67 68 69 70
+71 72 73 74 75 76 77 78 79 80
+81 82 83 84 85 86 87 88 89 90
+91 92 93 94 95 96 97 98 99 100
+
+\columnsep=24pt % odleg/lo/s/c mi/edzy /lamami| distance between columns
+\columnseprule=0.4pt % opcjonalna pionowa | optional vertical rule
+ % krecha mi/edzy lamami | between columns
+\multicolbaselineskip=0pt plus 0.2pt % opcjonalna |
+ % korekta | optional correction of
+ % \baselineskip
+%\raggedcolumns % opcjonalne wy/l/aczenie | optional toggle to turn
+ % wyr/ownywania prawego | off balancing of the right
+ % /lamu | column
+
+%% a teraz 3 /lamy | now 3 columns
+\beginmulticols 3[{{\bf TITLE}}] % opcjonalny tekst |optional text (e.g. title)
+
+101 102 103 104 105 106 107 108 109 110
+111 112 113 114 115 116 117 118 119 120
+121 122 123 124 125 126 127 128 129 130
+131 132 133 134 135 136 137 138 139 140
+141 142 143 144 145 146 147 148 149 150\footnote{**}{%
+This is a small footnote.
+This is a small footnote.
+This is a small footnote.}
+151 152 153 154 155 156 157 158 159 160
+161 162 163 164 165 166 167 168 169 170
+171 172 173 174 175 176 177 178 179 180
+181 182 183 184 185 186 187 188 189 190
+191 192 193 194 195 196 197 198 199 200
+
+201 202 203 204 205 206 207 208 209 210
+211 212 213 214 215 216 217 218 219 220
+221 222 223 224 225 226 227 228 229 230
+231 232 233 234 235 236 237 238 239 240
+241 242 243 244 245 246 247 248 249 250
+251 252 253 254 255 256 257 258 259 260
+261 262 263 264 265 266 267 268 269 270
+271 272 273 274 275 276 277 278 279 280
+281 282 283 284 285 286 287 288 289 290
+291 292 293 294 295 296 297 298 299 300
+
+301 302 303 304 305 306 307 308 309 310
+311 312 313 314 315 316 317 318 319 320
+321 322 323 324 325 326 327 328 329 330
+331 332 333 334 335 336 337 338 339 340
+341 342 343 344 345 346 347 348 349 350
+351 352 353 354 355 356 357 358 359 360
+361 362 363 364 365 366 367 368 369 370
+371 372 373 374 375 376 377 378 379 380
+381 382 383 384 385 386 387 388 389 390
+391 392 393 394 395 396 397 398 399 400
+
+401 402 403 404 405 406 407 408 409 410
+411 412 413 414 415 416 417 418 419 420
+421 422 423 424 425 426 427 428 429 430
+431 432 433 434 435 436 437 438 439 440
+441 442 443 444 445 446 447 448 449 450
+451 452 453 454 455 456 457 458 459 460
+461 462 463 464 465 466 467 468 469 470
+471 472 473 474 475 476 477 478 479 480
+481 482 483 484 485 486 487 488 489 490
+491 492 493 494 495 496 497 498 499 500
+
+501 502 503 504 505 506 507 508 509 510
+511 512 513 514 515 516 517 518 519 520
+521 522 523 524 525 526 527 528 529 530
+531 532 533 534 535 536 537 538 539 540
+541 542 543 544 545 546 547 548 549 550
+551 552 553 554 555 556 557 558 559 560
+561 562 563 564 565 566 567 568 569 570
+571 572 573 574 575 576 577 578 579 580
+581 582 583 584 585 586 587 588 589 590
+591 592 593 594 595 596 597 598 599 600
+\endmulticols
+
+%Ponownie 1 /lam % Again 1 column
+601 602 603 604 605 606 607 608 609 610
+611 612 613 614 615 616 617 618 619 620
+621 622 623 624 625 626 627 628 629 630
+631 632 633 634 635 636 637 638 639 640
+641 642 643 644 645 646 647 648 649 650
+651 652 653 654 655 656 657 658 659 660
+661 662 663 664 665 666 667 668 669 670
+671 672 673 674 675 676 677 678 679 680
+681 682 683 684 685 686 687 688 689 690
+691 692 693 694 695 696 697 698 699 700
+
+%% a teraz 2 /lamy % Then 2 columns
+\beginmulticols 2
+701 702 703 704 705 706 707 708 709 710
+711 712 713 714 715 716 717 718 719 720
+721 722 723 724 725 726 727 728 729 730
+731 732 733 734 735 736 737 738 739 740
+741 742 743 744 745 746 747 748 749 750
+751 752 753 754 755 756 757 758 759 760
+761 762 763 764 765 766 767 768 769 770
+771 772 773 774 775 776 777 778 779 780
+781 782 783 784 785 786 787 788 789 790
+791 792 793 794 795 796 797 798 799 800
+
+801 802 803 804 805 806 807 808 809 810
+811 812 813 814 815 816 817 818 819 820
+821 822 823 824 825 826 827 828 829 830
+831 832 833 834 835 836 837 838 839 840
+841 842 843 844 845 846 847 848 849 850
+851 852 853 854 855 856 857 858 859 860
+861 862 863 864 865 866 867 868 869 870
+871 872 873 874 875 876 877 878 879 880
+881 882 883 884 885 886 887 888 889 890
+891 892 893 894 895 896 897 898 899 900
+
+901 902 903 904 905 906 907 908 909 910
+911 912 913 914 915 916 917 918 919 920
+921 922 923 924 925 926 927 928 929 930
+931 932 933 934 935 936 937 938 939 940
+941 942 943 944 945 946 947 948 949 950
+951 952 953 954 955 956 957 958 959 960
+961 962 963 964 965 966 967 968 969 970
+971 972 973 974 975 976 977 978 979 980
+981 982 983 984 985 986 987 988 989 990
+991 992 993 994 995 996 997 998 999 1000
+\endmulticols
+
+%% a teraz 1 /lam % and again 1 column
+1001 1002 1003 1004 1005 1006 1007 1008 1009 1010
+1011 1012 1013 1014 1015 1016 1017 1018 1019 1020
+1021 1022 1023 1024 1025 1026 1027 1028 1029 1030
+1031 1032 1033 1034 1035 1036 1037 1038 1039 1040
+1041 1042 1043 1044 1045 1046 1047 1048 1049 1050
+1051 1052 1053 1054 1055 1056 1057 1058 1059 1060
+1061 1062 1063 1064 1065 1066 1067 1068 1069 1070
+1071 1072 1073 1074 1075 1076
+
+\bye
diff --git a/Master/texmf-dist/tex/plain/gustlib/meashor.tex b/Master/texmf-dist/tex/plain/gustlib/meashor.tex
new file mode 100644
index 00000000000..59ef7db314d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/meashor.tex
@@ -0,0 +1,71 @@
+% =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+% Autor: | Author:
+% Bogus\l{}aw Jackowski, 22 V 1990
+ email: B.Jackowski@gust.org.pl
+% Sprawdzone i udost/epnione: | Revised and released:
+% 18 II 1997
+% =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+% Makro \meashor umieszczone | Macro \meashor, when used in
+% w akapicie nadaje warto/s/c | a paragraph, assigns values to
+% dw/om zmiennym: \measnum i \measdim, | two registers: \measnum and
+% oznaczaj/acym odpowiednio numer | \measdim (number of the line
+% wiersza akapitu w kt/orym pojawi/lo | of the paragraph from which the
+% si/e makro \meashor i odleg/lo/s/c | macro was invoked and the distance
+% punktu pomiaru od lewego skraju | of the measuring point from the
+% akapitu. | left edge of the paragraph, resp.).
+% Przyk/lad: | Example:
+% Fragment programu | The piece of code
+% Ala\meashor\ ma kota | Alice\meashor\ has a cat
+% spowoduje nadanie zmiennym | results in assigning the
+% nast/epuj/acych warto/sci: | following values
+% \measnum=1 | \measnum=1
+% \measdim=35.27782pt (parindent | \measdim=41.94447pt (parindent
+% plus d/lugo/s/c s/lowa Ala | plus the length of the word Alice
+% dla fontu CMR10). | for the font CMR10).
+% Autor b/edzie wdzi/eczny za | The author will be grateful for
+% poinformowanie o zgrabnych | informing him about neat
+% zastosowaniach makra \meashor. | applications of the macro \meashor.
+% =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+\newif\ifmeasdisp % ,,kosmetyka'' | cosmetic powder
+\measdispfalse % ustawienie domy/slne | default
+\newcount\measnum % wynik | result
+\newdimen\measdim % wynik | result
+\def\meashor{%
+ \ifhmode
+ \bgroup % zmiany parametr/ow s/a lokalne | parameters settings are local
+ \leftskip0pt \rightskip0pt
+ \parfillskip=0pt plus 1fil
+ \predisplaypenalty=10000
+ \postdisplaypenalty=10000
+ \displaywidowpenalty=\widowpenalty
+ \abovedisplayskip=-\baselineskip
+ \belowdisplayskip=-\baselineskip
+ \abovedisplayshortskip=-\baselineskip
+ \belowdisplayshortskip=-\baselineskip
+ \null % pozostaw poprzedzaj/ac/a spacj/e | leave preceding space
+ $$\global\measdim=\predisplaysize$$%
+ \ifnum\prevgraf=0
+ \immediate\write16{!
+ perhaps restricted hmode:
+ MEASURING IGNORED}%
+ \else
+ \global\advance\measdim by -2em
+ \global\measnum=\prevgraf
+ \global\advance\measnum by -3
+ \ifmeasdisp
+ \immediate\write16{>>
+ \the\measnum: \the\measdim}%
+ \fi
+% \advance\prevgraf to operacja zabroniona | \advance\prevgraf is forbidden
+ \global\advance\measnum by -1
+ \global\prevgraf=\measnum
+ \global\advance\measnum by 1
+ \kern\measdim
+ \fi
+ \egroup
+ \else
+ \immediate\write16{! vmode:
+ MEASURING IGNORED}%
+ \fi
+}%
+\endinput
diff --git a/Master/texmf-dist/tex/plain/gustlib/mimulcol.tex b/Master/texmf-dist/tex/plain/gustlib/mimulcol.tex
new file mode 100644
index 00000000000..9ea91182ca6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/mimulcol.tex
@@ -0,0 +1,286 @@
+% copied from TUGboat, Vol.10 (1989) No.3 p.409--415 (B.J.)
+% MULTICOLUMN LaTeX environement.
+% Author: F. Mittelbach
+% Quick adaptation to PLAIN: B. Jackowski (Ver. 0.9); alterations are
+% marked by `(B.J.)'
+%
+% Since I do not understand floats I assume that they are
+% not used while multicolumning. Maybe some other day...
+%
+% ========================================================================
+% --------------------- PSEUDO-LaTeX ENVIRONEMENT ------------------------
+% ========================================================================
+\catcode`\@=11
+\newtoks\@uteroutput % (P.P.)
+\@uteroutput\output %
+% --------------------------
+\def\adjust@PLAIN{%
+ \newlinechar=`\^^J
+ \columnwidth\hsize \textwidth\hsize
+ \@colht\vsize \@colroom\vsize % NO FLOATs PLEASE!
+ \def\makefootline{\baselineskip24\p@\hbox to \textwidth{\the\footline}}
+ \def\pagebody{\vbox to\@colht{\boxmaxdepth\maxdepth \pagecontents}}
+ \def\vfootnote##1{\insert\footins\bgroup
+ \hsize=\textwidth
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \textindent{##1}\footstrut\futurelet\next\fo@t}
+}
+% --------------------------
+\mathchardef\@Mi=10001
+\newcount\@tempcnta % temporary count register
+% ------ These four macros differ from their LaTeX twins ------
+\def\thepage{\number\pageno}
+\def\addvspace#1{\vskip#1\relax}
+\def\typeout#1{\immediate\write\z@{#1}}
+\def\@warning#1{\typeout{WARNING: #1.}}
+% --------------------------
+\def\newpage{\par\vfil\penalty -\@M}
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
+ #1\endcsname\relax#2\else#3\fi}
+\def\@ifnextchar#1#2#3{\let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet
+ \@tempc\@ifnch}
+\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch
+ \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi
+ \fi \@tempd}
+\def\:{\let\@sptoken= } \: % this makes \@sptoken a space token
+\def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch}
+% --------------------------
+\def\@spaces{\space\space\space\space}
+\def\@width{width}
+\newdimen\@colroom
+\newdimen\@colht
+\newdimen\columnwidth
+\newdimen\textwidth
+% --------------------------
+\newdimen\columnsep \columnsep=24pt
+\newdimen\columnseprule \columnseprule = 0pt
+% ========================================================================
+% -------------------- MITTELBACH's MACROS -------------------------------
+% ========================================================================
+\newcount\unbalance \unbalance = 0
+\newcount\collectmore \collectmore = 0
+\newcount\tracingmulticols \tracingmulticols = 0
+\newcount\col@number
+\newcount\doublecol@number
+\newcount\multicoltolerance \multicoltolerance = 9999
+\newdimen\page@free
+\newdimen\premulticols \premulticols = 50pt
+\newdimen\postmulticols \postmulticols = 20pt
+\newskip\multicolsep \multicolsep = 12pt plus 4pt minus 3pt
+\newskip\multicolbaselineskip \multicolbaselineskip = 0pt
+\newbox\partial@page
+\newif\ifshr@nking
+%
+\@ifundefined{mult@cols}{}{\endinput}
+\ifnum\tracingmulticols>\z@ % <--------------------------------- added (B.J.)
+ \typeout{%
+ MULTI COLUMN format designed by Frank Mittelbach --- see TUGboat}
+ \typeout{%
+ Vol.10 (1989) No.3 pp.407--415> for doc.; PLAIN ver. 0.9 by B. Jackowski}
+\fi
+%
+\def\beginmulticols{\begingroup\multicols}% <--- substitute of LaTeX's phrase
+ % \begin{...} ... \end{...} (B.J.)
+%
+\def\multicols#1{\col@number#1\relax
+ %
+ \adjust@PLAIN
+ %
+ \ifnum\col@number<\@ne
+ \@warning{Using `number\col@number'
+ columns doesn't seem a good idea.^^J
+ \@spaces\@spaces I therefore use two columns instead}%
+ \col@number\tw@ \fi
+ \@ifnextchar[\mult@cols{\mult@cols[]}}
+%
+\def\mult@cols[#1]{\@ifnextchar[%
+ {\mult@@cols{#1}}%
+ {\mult@@cols{#1}[\premulticols]}}
+%
+\def\mult@@cols#1[#2]{%
+ \ifnum\tracingmulticols>\z@
+ \typeout{^^J^^JStarting multicolumn
+ output with \the\col@number
+ \space columns:^^J}\fi
+ \enough@room#2%
+ {#1}\par % <-------------- instead of #1\par---it seems more natural (B.J.)
+ % the more so, as outer {} braces inside [] brackets are gobbled:
+ % \multicols{...}[cosik] is equivalent to \multicols{...}[{cosik}]
+ \addvspace\multicolsep
+ \begingroup
+ \prepare@multicols\ignorespaces}
+%
+\def\enough@room#1{\par \penalty\z@
+ \page@free \pagegoal
+ \advance \page@free -\pagetotal
+ \ifnum \tracingmulticols>\z@
+ \typeout{Current page:}%
+ \message{\@spaces goal height=%
+ \the\pagegoal: used \the\pagetotal
+ \space -> free\the\page@free}%
+ \typeout{\@spaces needed \the#1
+ (for \string#1)}\fi
+ \ifdim \page@free <#1\newpage \fi}
+%
+\def\prepare@multicols{%
+ \output{\global\setbox\partial@page
+ \vbox{\unvbox\@cclv}}\eject
+ \vbadness9999 \hbadness5000
+ \tolerance\multicoltolerance
+ \doublecol@number\col@number
+ \multiply\doublecol@number\tw@
+ \advance\baselineskip\multicolbaselineskip
+ \advance\@colroom-\ht\partial@page
+ \vsize\col@number\@colroom
+ \advance\vsize\collectmore\baselineskip
+ \hsize\columnwidth \advance\hsize\columnsep
+ \advance\hsize-\col@number\columnsep
+ \divide\hsize\col@number
+% \linewidth\hsize % <----------------- it seems unnecessary in PLAIN (B.J.)
+ \output{\multi@columnout}%
+ \multiply\count\footins\col@number
+ \multiply\skip \footins\col@number
+ \reinsert@footnotes}
+%
+\def\endmulticols{\par\penalty\z@
+ \output{\balance@columns}\eject
+ \endgroup \reinsert@footnotes
+ \global\unbalance\z@
+ \enough@room\postmulticols
+ \addvspace\multicolsep
+ \nointerlineskip % <------------------------------------------ added (B.J.)
+ \ifnum \tracingmulticols>\z@
+ \typeout{^^JEnding multicolumn
+ output.^^J^^J}\fi
+ \endgroup}
+%
+\def\process@cols#1#2{\count@#1\relax
+ \loop #2%
+ \advance\count@\tw@
+ \ifnum\count@<\doublecol@number
+ \repeat}
+%
+\def\page@sofar{\unvbox\partial@page
+ \process@cols\z@{\wd\count@\hsize}%
+ \hbox to \textwidth{%
+ \process@cols\tw@{\box\count@
+ \hss\vrule\@width\columnseprule\hss}%
+ \box\z@}}
+%
+\def\reinsert@footnotes{\ifvoid\footins\else
+ \insert\footins{\unvbox\footins}\fi}
+%
+\def\multi@columnout{%
+ \ifnum\outputpenalty <-\@Mi
+ \speci@ls
+ \else
+ \splittopskip\topskip
+ \splitmaxdepth\maxdepth
+ \dimen@\@colroom
+ \divide\skip\footins\col@number
+ \ifvoid\footins \else
+ \advance\dimen@-\skip\footins
+ \advance\dimen@-\ht\footins \fi
+ \process@cols\tw@{\setbox\count@
+ \vsplit\@cclv to\dimen@}%
+ \setbox\z@\vsplit\@cclv to\dimen@
+ \ifvoid\@cclv \else
+ \unvbox\@cclv
+ \penalty\outputpenalty
+ \ifnum \tracingmulticols>\tw@
+ \hrule\allowbreak \fi
+ \ifvoid\footins\else % <----------------------------------- added (B.J.)
+ \@warning{I moved some lines to the next page.^^J
+ \@spaces\@spaces Footnotes on page \thepage\space
+ might be wrong}\fi\fi
+ \setbox\@cclv\vbox{\page@sofar}%
+% \plainoutput % <---------------- instead of \@makecol\@outputpage (B.J.)
+ \the\@uteroutput % <------------- instead of \plainoutput (P.P.)
+ \global\@colroom\@colht
+ \process@deferreds
+ \ifnum\tracingmulticols>\@ne
+ \typeout{Colroom: \the\@colht\space after float
+ space removed = \the\@colroom}\fi
+ \global\vsize\col@number\@colroom
+ \global\advance\vsize \collectmore\baselineskip
+ \multiply\skip\footins\col@number
+ \fi}
+%
+\def\speci@ls{%
+ \typeout{Floats and marginpars not allowed inside
+ `multicols' environement!}%
+ \unvbox\@cclv\reinsert@footnotes
+% \gdef\@currlist{}% <----------------------------- not used in PLAIN (B.J.)
+ }
+%
+\def\process@deferreds{}% <---------- instead of the `percented' macro (B.J.)
+ % (temporarily: until I'll learn what all that
+ % mumbling means)
+%\def\process@deferreds{%
+% \@floatplacement
+% \begingroup
+% \let\@tempb\@deferlist
+% \gdef\@deferlist{}%
+% \let\@elt\@scoelt
+% \@tempb \endgroup}
+%
+% Originally: <------------------------------------------------------- (B.J.)
+%\def\raggedcolumns{\@bsphack\shr@nkingtrue\@esphack}
+%\def\flushcolumns{\@bsphack\shr@nkingfalse\@esphack}
+%
+\def\raggedcolumns{\shr@nkingtrue}
+\def\flushcolumns{\shr@nkingfalse}
+%
+\def\balance@columns{%
+ \splittopskip\topskip
+ \splitmaxdepth\maxdepth
+ \setbox\z@\vbox{\unvbox\@cclv}\dimen@\ht\z@
+ \advance\dimen@ \col@number\topskip
+ \advance\dimen@ -\col@number\baselineskip
+ \divide\dimen@ \col@number
+ \advance\dimen@ \unbalance\baselineskip
+ \ifnum\tracingmulticols>\@ne
+ \typeout{Balance columns: \ifnum\unbalance=\z@\else
+ (off balance=\number\unbalance)\fi}%
+ \fi
+ {\vbadness\@M
+ \loop
+ {\process@cols\@ne{\global\setbox\count@\box\voidb@x}}%
+ \global\setbox\@ne\copy\z@
+ {\process@cols\thr@@{\global\setbox\count@
+ \vsplit\@ne to\dimen@}}%
+ %
+ % ... After \process@cols has done its job we have the following situation:
+ % box0 <-- all material
+ % box3 <-- first column
+ % box5 <-- second column
+ % ...
+ % box1 <-- last column ...
+ %
+ \ifnum\tracingmulticols>\@ne
+ \message{\@spaces First column = \the\ht\thr@@}\fi
+ \ifshr@nking \global\setbox\thr@@\vbox{\unvbox\thr@@}%
+ \ifnum\tracingmulticols>\@ne
+ \message{ after shrinking \the\ht\thr@@}\fi\fi
+ \ifnum\tracingmulticols>\@ne
+ \message{<> last column = \the\ht\@ne}%
+ \typeout{}\fi
+ \ifdim\ht\@ne > \ht\thr@@
+ \global\advance\dimen@\p@
+ \repeat}%
+ \dimen@\ht\thr@@
+ \process@cols\z@{\@tempcnta\count@
+ \advance\@tempcnta\@ne
+ \setbox\count@\vtop to\dimen@
+ {\unvbox\@tempcnta
+ \ifshr@nking\vfill\fi}}%
+ \global\vsize\@colroom
+ \global\advance\vsize\ht\partial@page
+ \page@sofar}
+% ========================================================================
+\catcode`\@=12 % default PLAIN value
+% ========================================================================
+\endinput
diff --git a/Master/texmf-dist/tex/plain/gustlib/plbtx993/plbtxbst.doc b/Master/texmf-dist/tex/plain/gustlib/plbtx993/plbtxbst.doc
new file mode 100644
index 00000000000..24f6fc34ca7
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/plbtx993/plbtxbst.doc
@@ -0,0 +1,2605 @@
+% 22 X 1997
+% =========
+%
+% To jest:
+% PLBTXBST v.0.99.3[a-z]
+%
+% system polskich styli bibliograficznych dla programu BibTeX 0.99[a-z]
+%
+% autor: (c) B.Licho\'nski 1994
+%
+% historia: v.0.99[a-z] 2 Paz 1994 -- pierwsze wydanie
+% v.0.99.1[a-z] 9 Paz 1997 -- poprawka polegaj/aca na usuni/eciu
+% sp/ojnika "i" przy wyliczaniu
+% autor/ow
+% v.0.99.2[a-z] 10 Paz 1997 -- poprawka polegaj/aca na usuni/eciu
+% angielskiej nazwy Master's thesis
+% na polsk/a ,,Praca magisterska''
+% v.0.99.3[a-z] 22 Paz 1997 -- poprawka polegaj/aca na dopisywaniu
+% przecinka mi/edzy dwoma nazwiskami
+% autor/ow
+%% @texfile{
+%% author = "Bogus{\l}aw Licho\'nski",
+%% version = "PLBTXBST v.0.99.3[a-z]",
+%% date = "22 Paz 1994",
+%% filename = "plbtxbst.doc",
+%% address = "Gdynia ul. Kameliowa 17",
+%% codetable = "ISO/ASCII",
+%% supported = "yes",
+%% docstring = "Definicje polskich styli bibliograficznych
+%% dla programu BibTeX 0.99[a-z].",
+%% }
+% BibTeX `plain' Polish family
+ % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+ % Copyright (C) 1985, all rights reserved by Oren Patashnik.
+ % Copyright (C) 1994, all rights reserved by Bogus/law Licho/nski.
+ % Copying of this file is authorized only if either
+ % (1) you make absolutely no changes to your copy, including name, or
+ % (2) if you do make changes, you name it something other than
+ % plbtxbst.doc, plplain.bst, plunsrt.bst, plalpha.bst, and plabbrv.bst.
+ % This restriction helps ensure that all standard polish styles are identical.
+ % The file plbtxbst.doc has the documentation for this style.
+% Please notify Bogus/law Licho/nski of any bugs in
+% these polish standard styles or in this documentation file.
+%
+% This is file plbtxbst.doc; it helps document bibliography styles,
+% and is also a template file that you can use to make
+% several different style files, if you have access to a C preprocessor.
+% For example, the standard styles were made by doing something like
+% cpp -P -DPLPLAIN plbtxbst.doc plplain.txt
+% cpp -P -DPLUNSRT plbtxbst.doc plunsrt.txt
+% cpp -P -DPLALPHA plbtxbst.doc plalpha.txt
+% cpp -P -DPLABBRV plbtxbst.doc plabbrv.txt
+% and then renaming after removing unwanted comments and blank lines.
+% If you don't have access, you can edit this file by hand to imitate
+% the preprocessor, with the following explanation of the C preprocessor
+% constructs used here.
+%
+% The output of the preprocessor is the same as the input, except that certain
+% lines will be excluded (and some blank lines will be added). The sequence
+% #if VAR
+% lines to be included when VAR is not zero
+% #else
+% lines to be included when VAR is zero
+% #endif
+% (with the #-signs appearing in column 1) means that one set or the other of
+% the lines are to be included depending on the value of VAR.
+% The #else part is optional. Comments can be added after #else and #endif.
+% Variables can be set by
+% #define VAR value
+% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef
+% to see if it has none.
+% Another #if form used in this file is #if !VAR, which includes the lines
+% after the #if only if VAR is zero.
+%
+% Convention: Use all uppercase identifiers for these preprocessor variables
+% so you can spot them easily
+%
+% The command line to the preprocessor should define one of PLPLAIN, PLUNSRT,
+% PLALPHA or PLABBRV (though PLPLAIN will be used by default if none is given),
+% and the following lines will set various boolean variables to control the
+% various lines that are chosen from the rest of the file.
+% Each boolean variable should be set true (1) or false (0) in each style.
+% Here are the current variables, and their meanings:
+% LAB_ALPH: an alphabetic label is used (if false then a numeric
+% label is used)
+% SORTED: the entries should be sorted by label (if nonnumeric)
+% and other info, like authors (if false, then
+% entries remain in order of occurrence)
+% NAME_FULL: the authors, editors, etc., get the full names as
+% given in the bibliography file (if false, the first
+% names become initials)
+% ATIT_LOWER: titles of non-"books" (e.g., articles) should be
+% converted to lower-case, except the first letter or
+% first letter after a colon
+% (if false then they appear as in the database)
+% MONTH_FULL: months are spelled out in full (if false, then
+% they're abbreviated)
+% JOUR_FULL: macro journal names are spelled out in full
+% (if false then they are abbreviated, currently
+% as they appear in ACM publications)
+#ifndef PLUNSRT
+# ifndef PLALPHA
+# ifndef PLABBRV
+# define PLPLAIN 1
+# endif
+# endif
+#endif
+#ifdef PLPLAIN
+% plain style (sorted numbers)
+# define LAB_ALPH 0
+# define SORTED 1
+# define NAME_FULL 1
+# define ATIT_LOWER 1
+# define MONTH_FULL 1
+# define JOUR_FULL 1
+#endif
+#ifdef PLUNSRT
+% unsrt style (unsorted numbers)
+# define LAB_ALPH 0
+# define SORTED 0
+# define NAME_FULL 1
+# define ATIT_LOWER 1
+# define MONTH_FULL 1
+# define JOUR_FULL 1
+#endif
+#ifdef PLALPHA
+% alpha style (sorted short alphabetics)
+# define LAB_ALPH 1
+# define SORTED 1
+# define NAME_FULL 1
+# define ATIT_LOWER 1
+# define MONTH_FULL 1
+# define JOUR_FULL 1
+#endif
+#ifdef PLABBRV
+% abbrv style (sorted numbers, with abbreviations)
+# define LAB_ALPH 0
+# define SORTED 1
+# define NAME_FULL 0
+# define ATIT_LOWER 1
+# define MONTH_FULL 0
+# define JOUR_FULL 0
+#endif
+%
+% Entry formatting: Similar to that recommended by Mary-Claire van Leunen
+% in "A Handbook for Scholars". Book-like titles are italicized
+% (emphasized) and non-book titles are converted to sentence
+% capitilization (and not enclosed in quotes).
+% This file outputs a \newblock between major blocks of an entry
+% (the name \newblock is analogous to the names \newline and \newpage)
+% so that the user can obtain an "open" format, which has a line break
+% before each block and lines after the first are indented within blocks,
+% by giving the optional \documentstyle argument `openbib';
+% The default is the "closed" format---blocks runs together.
+%
+% Citation alphabetic label format:
+% [Knu73] for single author (or editor or key)
+% [AHU83] (first letters of last names) for multiple authors
+%
+% Citation label numberic format:
+% [number]
+%
+% Reference list ordering for sorted, alphabetic lables:
+% alphabetical by citation label, then by author(s) or whatever
+% passes for author in the absence of one, then by year,
+% then title
+%
+% Reference list ordering for sorted, numeric lables:
+% alphabetical by author(s) or whatever passes
+% for author in the absence of one, then by year, then title
+%
+% Reference list ordering for unsorted:
+% by the order cited in the text
+%
+% History
+% 12/16/84 (HWT) Original `plain' version, by Howard Trickey.
+% 12/23/84 (LL) Some comments made by Leslie Lamport.
+% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik.
+% 2/17/85 (HWT) Template file and other standard styles made.
+% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f.
+% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i:
+% fixed Theoretical Computer Science macro name;
+% fixed the format.vol.num.pages function.
+% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes:
+% assignment operator (:=) arguments reversed;
+% the preamble$ function outputs the database PREAMBLE;
+% entry.max$ and global.max$ (built-in) variables replace
+% entry.string.max and global.string.max functions;
+% alphabetizing by year then title, not just title;
+% many unnecessary ties removed; \it ==> \em;
+% the `alpha' style uses a superscripted `+' instead of a
+% `*' for unnamed names in constructing the label;
+% the `abbrv' style now uses "Mar." and "Sept.";
+% the functions calc.label and presort now look at just
+% the fields they're supposed to;
+% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles;
+% INBOOK and INCOLLECTION take an optional type (e.g.
+% type = "Section"), overriding the default "chapter";
+% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow
+% either volume or number, not just volume;
+% INCOLLECTION now allows an edition and series field;
+% PROCEEDINGS and INPROCEEDINGS now use the address field
+% to tell where a conference was held;
+% INPROCEEDINGS and PROCEEDINGS now allow either volume
+% or number, and also a series field;
+% MASTERSTHESIS and PHDTHESIS accept types other than
+% "Master's thesis" and "PhD thesis";
+% UNPUBLISHED now outputs, in one block, note then date;
+% MANUAL now prints out the organization in
+% the first block if the author field is empty;
+% MISC can't be empty---it requires some optional field.
+% 6/6/94 (BL) Polish PLPLAIN styles by Bogus/law Licho/nski.
+%
+% The ENTRY declaration
+% Like Scribe's (according to pages 231-2 of the April '84 edition),
+% but no fullauthor or editors fields because BibTeX does name handling.
+% The annote field is commented out here because this family doesn't
+% include an annotated bibliography style. And in addition to the fields
+% listed here, BibTeX has a built-in crossref field, explained later.
+
+ENTRY
+% Fields:
+ { address
+% Usually the address of a publisher or other type of organization.
+% Put information in this field only if it helps the reader find the
+% thing---for example you should omit the address of a major
+% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS,
+% however, it's the address of the conference; for those two entry
+% types, include the publisher's or organization's address, if
+% necessary, in the publisher or organization field.
+% annote
+% Long annotation---for annotated bibliographies (begins sentence).
+ author
+% Name(s) of author(s), in BibTeX name format.
+ booktitle
+% Book title when the thing being referenced isn't the whole book.
+% For book entries, the title field should be used instead.
+ chapter
+% Chapter (or section or whatever) number.
+ edition
+% Edition of a book---should be an ordinal (e.g., "Second").
+ editor
+% Name(s) of editor(s), in BibTeX name format.
+% If there is also an author field, then the editor field should be
+% for the book or collection that the work appears in.
+ howpublished
+% How something strange has been published (begins sentence).
+ institution
+% Sponsoring institution of a technical report.
+ journal
+% Journal name (macros are provided for many).
+ key
+% Alphabetizing, labeling, and cross-referencing key
+% (needed when an entry has no author or editor).
+ month
+% Month (macros are provided).
+ note
+% To help the reader find a reference (begins sentence).
+ number
+% Number of a journal or technical report, or of a work in a series.
+ organization
+% Organization sponsoring a conference (or publishing a manual); if
+% the editor (or author) is empty, and if the organization produces
+% an awkward label or cross reference, you should put appropriately
+% condensed organization information in the key field as well.
+ pages
+% Page number or numbers (use `--' to separate a range, use `+'
+% to indicate pages following that don't form a simple range).
+ publisher
+% Publisher name.
+ school
+% School name (for theses).
+ series
+% The name of a series or set of books.
+% An individual book will will also have it's own title.
+ title
+% The title of the thing you're referred to.
+ type
+% Type of a Techreport (e.g., "Research Note") to be used instead of
+% the default "Technical Report"; or, similarly, the type of a
+% thesis; or of a part of a book.
+ volume
+% The volume number of a journal or multivolume work.
+ year
+% The year should contain only numerals (technically, it should end
+% with four numerals, after purification; doesn't a begin sentence).
+ }
+% There are no integer entry variables
+ {}
+% These string entry variables are used to form the citation label.
+% In a storage pinch, sort.label can be easily computed on the fly.
+#if LAB_ALPH
+#if SORTED
+ { label extra.label sort.label }
+#else !SORTED
+% It doesn't seem like a good idea to use an order-of-citation
+% reference list when using alphabetic labels, but when this happens
+% we do things a little differently
+ { label }
+#endif SORTED
+#else !LAB_ALPH
+ { label }
+#endif LAB_ALPH
+
+% Each entry function starts by calling output.bibitem, to write the
+% \bibitem and its arguments to the .BBL file. Then the various fields
+% are formatted and printed by output or output.check. Those functions
+% handle the writing of separators (commas, periods, \newblock's),
+% taking care not to do so when they are passed a null string.
+% Finally, fin.entry is called to add the final period and finish the
+% entry.
+%
+% A bibliographic reference is formatted into a number of `blocks':
+% in the open format, a block begins on a new line and subsequent
+% lines of the block are indented. A block may contain more than
+% one sentence (well, not a grammatical sentence, but something to
+% be ended with a sentence ending period). The entry functions should
+% call new.block whenever a block other than the first is about to be
+% started. They should call new.sentence whenever a new sentence is
+% to be started. The output functions will ensure that if two
+% new.sentence's occur without any non-null string being output between
+% them then there won't be two periods output. Similarly for two
+% successive new.block's.
+%
+% The output routines don't write their argument immediately.
+% Instead, by convention, that argument is saved on the stack to be
+% output next time (when we'll know what separator needs to come
+% after it). Meanwhile, the output routine has to pop the pending
+% output off the stack, append any needed separator, and write it.
+%
+% To tell which separator is needed, we maintain an output.state.
+% It will be one of these values:
+% before.all just after the \bibitem
+% mid.sentence in the middle of a sentence: comma needed
+% if more sentence is output
+% after.sentence just after a sentence: period needed
+% after.block just after a block (and sentence):
+% period and \newblock needed.
+% Note: These styles don't use after.sentence
+%
+% VAR: output.state : INTEGER -- state variable for output
+%
+% The output.nonnull function saves its argument (assumed to be nonnull)
+% on the stack, and writes the old saved value followed by any needed
+% separator. The ordering of the tests is decreasing frequency of
+% occurrence.
+%
+% output.nonnull(s) ==
+% BEGIN
+% s := argument on stack
+% if output.state = mid.sentence then
+% write$(pop() * ", ")
+% -- "pop" isn't a function: just use stack top
+% else
+% if output.state = after.block then
+% write$(add.period$(pop()))
+% newline$
+% write$("\newblock ")
+% else
+% if output.state = before.all then
+% write$(pop())
+% else -- output.state should be after.sentence
+% write$(add.period$(pop()) * " ")
+% fi
+% fi
+% output.state := mid.sentence
+% fi
+% push s on stack
+% END
+%
+% The output function calls output.nonnull if its argument is non-empty;
+% its argument may be a missing field (thus, not necessarily a string)
+%
+% output(s) ==
+% BEGIN
+% if not empty$(s) then output.nonnull(s)
+% fi
+% END
+%
+% The output.check function is the same as the output function except that, if
+% necessary, output.check warns the user that the t field shouldn't be empty
+% (this is because it probably won't be a good reference without the field;
+% the entry functions try to make the formatting look reasonable even when
+% such fields are empty).
+%
+% output.check(s,t) ==
+% BEGIN
+% if empty$(s) then
+% warning$("empty " * t * " in " * cite$)
+% else output.nonnull(s)
+% fi
+% END
+%
+% The output.bibitem function writes the \bibitem for the current entry
+% (the label should already have been set up), and sets up the separator
+% state for the output functions. And, it leaves a string on the stack
+% as per the output convention.
+%
+% output.bibitem ==
+% BEGIN
+% newline$
+% write$("\bibitem[") % for alphabetic labels,
+% write$(label) % these three lines
+% write$("]{") % are used
+% write$("\bibitem{") % this line for numeric labels
+% write$(cite$)
+% write$("}")
+% push "" on stack
+% output.state := before.all
+% END
+%
+% The fin.entry function finishes off an entry by adding a period to the
+% string remaining on the stack. If the state is still before.all
+% then nothing was produced for this entry, so the result will look bad,
+% but the user deserves it. (We don't omit the whole entry because the
+% entry was cited, and a bibitem is needed to define the citation label.)
+%
+% fin.entry ==
+% BEGIN
+% write$(add.period$(pop()))
+% newline$
+% END
+%
+% The new.block function prepares for a new block to be output, and
+% new.sentence prepares for a new sentence.
+%
+% new.block ==
+% BEGIN
+% if output.state <> before.all then
+% output.state := after.block
+% fi
+% END
+%
+% new.sentence ==
+% BEGIN
+% if output.state <> after.block then
+% if output.state <> before.all then
+% output.state := after.sentence
+% fi
+% fi
+% END
+%
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+% the variables s and t are temporary string holders
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.period$ write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+#if LAB_ALPH
+ "\bibitem[" write$
+ label write$
+ "]{" write$
+#else
+ "\bibitem{" write$
+#endif LAB_ALPH
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+
+% This function finishes all entries.
+
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+ 'skip$
+ { output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+% These three functions pop one or two (integer) arguments from the stack
+% and push a single one, either 0 or 1.
+% The 'skip$ in the `and' and `or' functions are used because
+% the corresponding if$ would be idempotent
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+% Sometimes we begin a new block only if the block will be big enough. The
+% new.block.checka function issues a new.block if its argument is nonempty;
+% new.block.checkb does the same if either of its TWO arguments is nonempty.
+
+FUNCTION {new.block.checka}
+{ empty$
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+% The new.sentence.check functions are analogous.
+
+FUNCTION {new.sentence.checka}
+{ empty$
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+ swap$ empty$
+ and
+ 'skip$
+ 'new.sentence
+ if$
+}
+
+% Here are some functions for formatting chunks of an entry.
+% By convention they either produce a string that can be followed by
+% a comma or period (using add.period$, so it is OK to end in a period),
+% or they produce the null string.
+%
+% A useful utility is the field.or.null function, which checks if the
+% argument is the result of pushing a `missing' field (one for which no
+% assignment was made when the current entry was read in from the database)
+% or the result of pushing a string having no non-white-space characters.
+% It returns the null string if so, otherwise it returns the field string.
+% Its main (but not only) purpose is to guarantee that what's left on the
+% stack is a string rather than a missing field.
+%
+% field.or.null(s) ==
+% BEGIN
+% if empty$(s) then return ""
+% else return s
+% END
+%
+% Another helper function is emphasize, which returns the argument emphazised,
+% if that is non-empty, otherwise it returns the null string. Italic
+% corrections aren't used, so this function should be used when punctation
+% will follow the result.
+%
+% emphasize(s) ==
+% BEGIN
+% if empty$(s) then return ""
+% else return "{\em " * s * "}"
+%
+% The format.names function formats the argument (which should be in
+% BibTeX name format) into "First Von Last, Junior", separated by commas
+% and with an "and" before the last (but ending with "et~al." if the last
+% of multiple authors is "others"). This function's argument should always
+% contain at least one name.
+%
+% VAR: nameptr, namesleft, numnames: INTEGER
+% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack)
+%
+% format.names(s) ==
+% BEGIN
+% nameptr := 1
+% numnames := num.names$(s)
+% namesleft := numnames
+% while namesleft > 0
+% do
+% % for full names:
+% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}")
+% % for abbreviated first names:
+% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}")
+% if nameptr > 1 then
+% if namesleft > 1 then nameresult := nameresult * ", " * t
+% else if numnames > 2
+% then nameresult := nameresult * ","
+% fi
+% if t = "others"
+% then nameresult := nameresult * " et~al."
+% else nameresult := nameresult * " and " * t
+% fi
+% fi
+% else nameresult := t
+% fi
+% nameptr := nameptr + 1
+% namesleft := namesleft - 1
+% od
+% return nameresult
+% END
+%
+% The format.authors function returns the result of format.names(author)
+% if the author is present, or else it returns the null string
+%
+% format.authors ==
+% BEGIN
+% if empty$(author) then return ""
+% else return format.names(author)
+% fi
+% END
+%
+% Format.editors is like format.authors, but it uses the editor field,
+% and appends ", editor" or ", editors"
+%
+% format.editors ==
+% BEGIN
+% if empty$(editor) then return ""
+% else
+% if num.names$(editor) > 1 then
+% return format.names(editor) * ", editors"
+% else
+% return format.names(editor) * ", editor"
+% fi
+% fi
+% END
+%
+% Other formatting functions are similar, so no "comment version" will be
+% given for them.
+%
+% The `pop$' in this function gets rid of the duplicate `empty' value and
+% the `skip$' returns the duplicate field value
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\em " swap$ * "}" * }
+ if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+#if NAME_FULL
+ { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+#else
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+#endif NAME_FULL
+ nameptr #1 >
+ { numnames #2 = % %BL poprawka 22.10.97 (przecinek mi/edzy 2 autor/ow)
+ { ", " * } %
+ 'skip$ %
+ if$ %
+ namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " i~in." * } %BL
+ { " " * t * } %BL poprawka 9.10.97
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { author format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { editor format.names
+ editor num.names$ #1 >
+ { ", redaktorzy" * } %BL
+ { ", redaktor" * } %BL
+ if$
+ }
+ if$
+}
+
+% The format.title function is used for non-book-like titles.
+% For most styles we convert to lowercase (except for the very first letter,
+% and except for the first one after a colon (followed by whitespace)),
+% and hope the user has brace-surrounded words that need to stay capitilized;
+% for some styles, however, we leave it as it is in the database.
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+#if ATIT_LOWER
+ { title "t" change.case$ }
+#else
+ 'title
+#endif ATIT_LOWER
+ if$
+}
+
+% By default, BibTeX sets the global integer variable global.max$ to the BibTeX
+% constant glob_str_size, the maximum length of a global string variable.
+% Analogously, BibTeX sets the global integer variable entry.max$ to
+% ent_str_size, the maximum length of an entry string variable.
+% The style designer may change these if necessary (but this is unlikely)
+
+% The n.dashify function makes each single `-' in a string a double `--'
+% if it's not already
+%
+% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack)
+%
+% n.dashify(s) ==
+% BEGIN
+% t := s
+% pageresult := ""
+% while (not empty$(t))
+% do
+% if (first character of t = "-")
+% then
+% if (next character isn't)
+% then
+% pageresult := pageresult * "--"
+% t := t with the "-" removed
+% else
+% while (first character of t = "-")
+% do
+% pageresult := pageresult * "-"
+% t := t with the "-" removed
+% od
+% fi
+% else
+% pageresult := pageresult * the first character
+% t := t with the first character removed
+% fi
+% od
+% return pageresult
+% END
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+% The format.date function is for the month and year, but we give a warning if
+% there's an empty year but the month is there, and we return the empty string
+% if they're both empty.
+
+FUNCTION {format.date}
+{ year empty$
+ { month empty$
+ { "" }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ }
+ if$
+ }
+ { month empty$
+ 'year
+ { month " " * year * }
+ if$
+ }
+ if$
+}
+
+% The format.btitle is for formatting the title field when it is a book-like
+% entry---the style used here keeps it in uppers-and-lowers and emphasizes it.
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+% For several functions we'll need to connect two strings with a
+% tie (~) if the second one isn't very long (fewer than 3 characters).
+% The tie.or.space.connect function does that. It concatenates the two
+% strings on top of the stack, along with either a tie or space between
+% them, and puts this concatenation back onto the stack:
+%
+% tie.or.space.connect(str1,str2) ==
+% BEGIN
+% if text.length$(str2) < 3
+% then return the concatenation of str1, "~", and str2
+% else return the concatenation of str1, " ", and str2
+% END
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+% The either.or.check function complains if both fields or an either-or pair
+% are nonempty.
+%
+% either.or.check(t,s) ==
+% BEGIN
+% if empty$(s) then
+% warning$(can't use both " * t * " fields in " * cite$)
+% fi
+% END
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+% The format.bvolume function is for formatting the volume and perhaps
+% series name of a multivolume work. If both a volume and a series field
+% are there, we assume the series field is the title of the whole multivolume
+% work (the title field should be the title of the thing being referred to),
+% and we add an "of <series>". This function is called in mid-sentence.
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { "wolumen" volume tie.or.space.connect %BL
+ series empty$
+ 'skip$
+ { " serii " * series emphasize * }
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+% The format.number.series function is for formatting the series name
+% and perhaps number of a work in a series. This function is similar to
+% format.bvolume, although for this one the series must exist (and the
+% volume must not exist). If the number field is empty we output either
+% the series field unchanged if it exists or else the null string.
+% If both the number and series fields are there we assume the series field
+% gives the name of the whole series (the title field should be the title
+% of the work being one referred to), and we add an "in <series>".
+% We capitilize Number when this function is used at the beginning of a block.
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "number" } %tu skon.
+ { "Number" }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "there's a number but no series in " cite$ * warning$ }
+ { " serii " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+% The format.edition function appends " edition" to the edition, if present.
+% We lowercase the edition (it should be something like "Third"), because
+% this doesn't start a sentence.
+
+FUNCTION {format.edition}
+{ edition empty$
+ { "" }
+ { output.state mid.sentence =
+ { "wydanie " edition "l" change.case$ * }
+ { "wydanie " edition "t" change.case$ * }
+ if$
+ }
+ if$
+}
+
+% The format.pages function is used for formatting a page range in a book
+% (and in rare circumstances, an article).
+%
+% The multi.page.check function examines the page field for a "-" or "," or "+"
+% so that format.pages can use "page" instead of "pages" if none exists.
+% Note: global.max$ here means "take the rest of the string"
+%
+% VAR: multiresult: INTEGER (actually, a boolean)
+%
+% multi.page.check(s) ==
+% BEGIN
+% t := s
+% multiresult := false
+% while ((not multiresult) and (not empty$(t)))
+% do
+% if (first character of t = "-" or "," or "+")
+% then multiresult := true
+% else t := t with the first character removed
+% fi
+% od
+% return multiresult
+% END
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+% This function doesn't begin a sentence so "pages" isn't capitalized.
+% Other functions that use this should keep that in mind.
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { "strony" pages n.dashify tie.or.space.connect }
+ { "strona" pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+% The format.vol.num.pages function is for the volume, number, and page range
+% of a journal article. We use the format: vol(number):pages, with some
+% variations for empty fields. This doesn't begin a sentence.
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+ number empty$
+ 'skip$
+ { "(" number * ")" * *
+ volume empty$
+ { "there's a number but no volume in " cite$ * warning$ }
+ 'skip$
+ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$
+ format.pages } { ":" * pages n.dashify * } if$ } if$ }
+
+
+% The format.chapter.pages, if the chapter is present, puts whatever is in the
+% type field (or else "chapter" if type is empty) in front of a chapter number.
+% It then appends the pages, if present. This doesn't begin a sentence.
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { "rozdzia/l" } %problem
+%%% { "chapter" } %problem
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+% The format.in.ed.booktitle function is used for starting out a sentence
+% that begins "In <booktitle>", putting an editor before the title if one
+% exists.
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "" booktitle emphasize * } %BL wywali/lem In
+ { "" format.editors * ", " * booktitle emphasize * } %BL
+ if$
+ }
+ if$
+}
+
+% The function empty.misc.check complains if all six fields are empty, and
+% if there's been no sorting or alphabetic-label complaint.
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ month empty$ year empty$ note empty$
+ and and and and and
+#if SORTED
+ key empty$ not and
+#else !SORTED
+#if LAB_ALPH
+ key empty$ not and
+#endif LAB_ALPH
+#endif SORTED
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+% The function format.thesis.type returns either the (case-changed) type field,
+% if it is defined, or else the default string already on the stack
+% (like "Master's thesis" or "PhD thesis").
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type "t" change.case$
+ }
+ if$
+}
+
+% The function format.tr.number makes a string starting with "Technical Report"
+% (or type, if that field is defined), followed by the number if there is one;
+% it returns the starting part (with a case change) even if there is no number.
+% This is used at the beginning of a sentence.
+
+FUNCTION {format.tr.number}
+{ type empty$
+ { "Raport instytutowy" }
+ 'type
+ if$
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+}
+
+% Now come the cross-referencing functions (these are invoked because
+% one entry in the database file(s) cross-references another, by giving
+% the other entry's database key in a `crossref' field). This feature
+% allows one or more titled things that are part of a larger titled
+% thing to cross-reference the larger thing. These styles allow for
+% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE;
+% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK;
+% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS.
+% Each of these is explained in more detail later.
+%
+% An ARTICLE entry type may cross reference another ARTICLE (this is
+% intended for when an entire journal is devoted to a single topic---
+% but since there is no JOURNAL entry type, the journal, too, should be
+% classified as an ARTICLE but without the author and title fields).
+% This will result in two warning messages for the journal's entry
+% if it's included in the reference list, but such is life.
+%
+% format.article.crossref ==
+% BEGIN
+% if empty$(key) then
+% if empty$(journal) then
+% warning$("need key or journal for " * cite$ *
+% " to crossref " * crossref)
+% return(" \cite{" * crossref * "}")
+% else
+% return("In " * emphazise.correct (journal) *
+% " \cite{" * crossref * "}")
+% fi
+% else
+% return("In " * key * " \cite{" * crossref * "}")
+% fi
+% END
+%
+% The other cross-referencing functions are similar, so no "comment version"
+% will be given for them.
+
+FUNCTION {format.article.crossref}
+{ key empty$
+ { journal empty$
+ { "need key or journal for " cite$ * " to crossref " * crossref *
+ warning$
+ ""
+ }
+ { "Patrz {\em " journal * "\/}" * } %BL
+ if$
+ }
+ { "Patrz " key * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% We use just the last names of editors for a cross reference: either
+% "editor", or "editor1 and editor2", or "editor1 et~al." depending on
+% whether there are one, or two, or more than two editors.
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " i~in." * }
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " i~in." * }
+ { " i~" * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a
+% multivolume work) may cross reference another BOOK (the entire multivolume).
+% Usually there will be an editor, in which case we use that to construct the
+% cross reference; otherwise we use a nonempty key field or else the series
+% field (since the series gives the title of the multivolume work).
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "Patrz " %BL
+ }
+ { "Wolumen" volume tie.or.space.connect
+ " serii " *
+ }
+ if$
+ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { series empty$
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { "{\em " * series * "\/}" * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the
+% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS.
+% Often there will be an editor, in which case we use that to construct
+% the cross reference; otherwise we use a nonempty key field or else
+% the booktitle field (which gives the cross-referenced work's title).
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+ editor field.or.null author field.or.null =
+ or
+ { key empty$
+ { booktitle empty$
+ { "need editor, key, or booktitle for " cite$ * " to crossref " *
+ crossref * warning$
+ ""
+ }
+ { "Patrz {\em " booktitle * "\/}" * } %BL
+ if$
+ }
+ { "Patrz " key * } %BL
+ if$
+ }
+ { "Patrz " format.crossref.editor * } %BL
+ if$
+ " \cite{" * crossref * "}" *
+}
+
+% Now we define the type functions for all entry types that may appear
+% in the .BIB file---e.g., functions like `article' and `book'. These
+% are the routines that actually generate the .BBL-file output for
+% the entry. These must all precede the READ command. In addition, the
+% style designer should have a function `default.type' for unknown types.
+% Note: The fields (within each list) are listed in order of appearance,
+% except as described for an `inbook' or a `proceedings'.
+%
+% The article function is for an article in a journal. An article may
+% CROSSREF another article.
+% Required fields: author, title, journal, year
+% Optional fields: volume, number, pages, month, note
+%
+% article ==
+% BEGIN
+% output.bibitem
+% output.check(format.authors,"author")
+% new.block
+% output.check(format.title,"title")
+% new.block
+% if missing$(crossref) then
+% output.check(emphasize(journal),"journal")
+% output(format.vol.num.pages)
+% output.check(format.date,"year")
+% else
+% output.nonnull(format.article.crossref)
+% output(format.pages)
+% fi
+% new.block
+% output(note)
+% fin.entry
+% END
+%
+% The book function is for a whole book. A book may CROSSREF another book.
+% Required fields: author or editor, title, publisher, year
+% Optional fields: volume or number, series, address, edition, month,
+% note
+%
+% book ==
+% BEGIN
+% if empty$(author) then output.check(format.editors,"author and editor")
+% else output.check(format.authors,"author")
+% if missing$(crossref) then
+% either.or.check("author and editor",editor)
+% fi
+% fi
+% new.block
+% output.check(format.btitle,"title")
+% if missing$(crossref) then
+% output(format.bvolume)
+% new.block
+% output(format.number.series)
+% new.sentence
+% output.check(publisher,"publisher")
+% output(address)
+% else
+% new.block
+% output.nonnull(format.book.crossref)
+% fi
+% output(format.edition)
+% output.check(format.date,"year")
+% new.block
+% output(note)
+% fin.entry
+% END
+%
+% The other entry functions are all quite similar, so no "comment version"
+% will be given for them.
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { journal emphasize "journal" output.check
+ format.vol.num.pages output
+ format.date "year" output.check
+ }
+ { format.article.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+% A booklet is a bound thing without a publisher or sponsoring institution.
+% Required: title
+% Optional: author, howpublished, address, month, year, note
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ new.block
+ format.title "title" output.check
+ howpublished address new.block.checkb
+ howpublished output
+ address output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+% For the conference entry type, see inproceedings.
+
+% An inbook is a piece of a book: either a chapter and/or a page range.
+% It may CROSSREF a book. If there's no volume field, the type field
+% will come before number and series.
+% Required: author or editor, title, chapter and/or pages, publisher,year
+% Optional: volume or number, series, type, address, edition, month, note
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ }
+ { format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ format.edition output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+% An incollection is like inbook, but where there is a separate title
+% for the referenced thing (and perhaps an editor for the whole).
+% An incollection may CROSSREF a book.
+% Required: author, title, booktitle, publisher, year
+% Optional: editor, volume or number, series, type, chapter, pages,
+% address, edition, month, note
+
+FUNCTION {incollection}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.chapter.pages output
+ new.sentence
+ publisher "publisher" output.check
+ address output
+ format.edition output
+ format.date "year" output.check
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+% An inproceedings is an article in a conference proceedings, and it may
+% CROSSREF a proceedings. If there's no address field, the month (& year)
+% will appear just before note.
+% Required: author, title, booktitle, year
+% Optional: editor, volume or number, series, pages, address, month,
+% organization, publisher, note
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ organization output
+ publisher output
+ }
+ if$
+ }
+ { format.incoll.inproc.crossref output.nonnull
+ format.pages output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+% The conference function is included for Scribe compatibility.
+
+FUNCTION {conference} { inproceedings }
+
+% A manual is technical documentation.
+% Required: title
+% Optional: author, organization, address, edition, month, year, note
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ author empty$
+ { organization empty$
+ { address new.block.checka
+ address output
+ }
+ 'skip$
+ if$
+ }
+ { organization address new.block.checkb
+ organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ new.block
+ note output
+ fin.entry
+}
+
+% A mastersthesis is a Master's thesis.
+% Required: author, title, school, year
+% Optional: type, address, month, note
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ "Praca magisterska" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+% A misc is something that doesn't fit elsewhere.
+% Required: at least one of the `optional' fields
+% Optional: author, title, howpublished, month, year, note
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ title howpublished new.block.checkb
+ format.title output
+ howpublished new.block.checka
+ howpublished output
+ format.date output
+ new.block
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+% A phdthesis is like a mastersthesis.
+% Required: author, title, school, year
+% Optional: type, address, month, note
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.btitle "title" output.check
+ new.block
+ "Praca doktorska" format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+% A proceedings is a conference proceedings.
+% If there is an organization but no editor field, the organization will
+% appear as the first optional field (we try to make the first block nonempty);
+% if there's no address field, the month (& year) will appear just before note.
+% Required: title, year
+% Optional: editor, volume or number, series, address, month,
+% organization, publisher, note
+
+FUNCTION {proceedings}
+{ output.bibitem
+ editor empty$
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ format.btitle "title" output.check
+ format.bvolume output
+ format.number.series output
+ address empty$
+ { editor empty$
+ { publisher new.sentence.checka }
+ { organization publisher new.sentence.checkb
+ organization output
+ }
+ if$
+ publisher output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ new.sentence
+ editor empty$
+ 'skip$
+ { organization output }
+ if$
+ publisher output
+ }
+ if$
+ new.block
+ note output
+ fin.entry
+}
+
+% A techreport is a technical report.
+% Required: author, title, institution, year
+% Optional: type, number, address, month, note
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ format.tr.number output.nonnull
+ institution "institution" output.check
+ address output
+ format.date "year" output.check
+ new.block
+ note output
+ fin.entry
+}
+
+% An unpublished is something that hasn't been published.
+% Required: author, title, note
+% Optional: month, year
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ new.block
+ format.title "title" output.check
+ new.block
+ note "note" output.check
+ format.date output
+ fin.entry
+}
+
+% We use entry type `misc' for an unknown type; BibTeX gives a warning.
+
+FUNCTION {default.type} { misc }
+
+% Here are macros for common things that may vary from style to style.
+% Users are encouraged to use these macros.
+%
+% Months are either written out in full or abbreviated
+
+#if MONTH_FULL
+
+MACRO {jan} {"Stycze/n"}
+
+MACRO {feb} {"Luty"}
+
+MACRO {mar} {"Marzec"}
+
+MACRO {apr} {"Kwiecie/n"}
+
+MACRO {may} {"Maj"}
+
+MACRO {jun} {"Czerwiec"}
+
+MACRO {jul} {"Lipiec"}
+
+MACRO {aug} {"Sierpie/n"}
+
+MACRO {sep} {"Wrzesie/n"}
+
+MACRO {oct} {"Pa/xdziernik"}
+
+MACRO {nov} {"Listopad"}
+
+MACRO {dec} {"Grudzie/n"}
+
+MACRO {sty} {"Stycze/n"}
+
+MACRO {lut} {"Luty"}
+
+%MACRO {mar} {"Marzec"}
+
+MACRO {kwi} {"Kwiecie/n"}
+
+MACRO {maj} {"Maj"}
+
+MACRO {cze} {"Czerwiec"}
+
+MACRO {lip} {"Lipiec"}
+
+MACRO {sie} {"Sierpie/n"}
+
+MACRO {wrz} {"Wrzesie/n"}
+
+MACRO {paz} {"Pa/xdziernik"}
+
+MACRO {lis} {"Listopad"}
+
+MACRO {gru} {"Grudzie/n"}
+
+#else !MONTH_FULL
+
+MACRO {jan} {"Sty."}
+
+MACRO {feb} {"Luty"}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Kwi."}
+
+MACRO {may} {"Maj"}
+
+MACRO {jun} {"Czerw."}
+
+MACRO {jul} {"Lip."}
+
+MACRO {aug} {"Sier."}
+
+MACRO {sep} {"Wrze."}
+
+MACRO {oct} {"Paz."}
+
+MACRO {nov} {"List."}
+
+MACRO {dec} {"Gru."}
+
+MACRO {sty} {"Sty."}
+
+MACRO {lut} {"Luty"}
+
+%MACRO {mar}{"Mar."}
+
+MACRO {kwi} {"Kwi."}
+
+MACRO {maj} {"Maj"}
+
+MACRO {cze} {"Czerw."}
+
+MACRO {lip} {"Lip."}
+
+MACRO {sie} {"Sier."}
+
+MACRO {wrz} {"Wrze."}
+
+MACRO {paz} {"Paz."}
+
+MACRO {lis} {"List."}
+
+MACRO {gru} {"Gru."}
+
+
+#endif MONTH_FULL
+
+% Journals are either written out in full or abbreviated;
+% the abbreviations are like those found in ACM publications.
+%
+% To get a completely different set of abbreviations, it may be best to make
+% a separate .bib file with nothing but those abbreviations; users could then
+% include that file name as the first argument to the \bibliography command
+
+#if JOUR_FULL
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+MACRO {gust} {"Grupa U/zytkownik/ow Systemu \TeX"}
+
+#else !JOUR_FULL
+
+MACRO {acmcs} {"ACM Comput. Surv."}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Commun. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~ACM"}
+
+MACRO {jcss} {"J.~Comput. Syst. Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+MACRO {gust} {"G.U.S.T."}
+
+#endif JOUR_FULL
+
+% Now we read in the .BIB entries.
+
+READ
+
+% The sortify function converts to lower case after purify$ing; it's
+% used in sorting and in computing alphabetic labels after sorting
+%
+% The chop.word(w,len,s) function returns either s or, if the first len
+% letters of s equals w (this comparison is done in the third line of the
+% function's definition), it returns that part of s after w.
+
+#if SORTED
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+#else !SORTED
+#if LAB_ALPH
+
+% We need the chop.word stuff for the dubious unsorted-list-with-labels case.
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+#endif LAB_ALPH
+#endif SORTED
+
+% This long comment applies only to alphabetic labels
+%
+% The format.lab.names function makes a short label by using the initials of
+% the von and Last parts of the names (but if there are more than four names,
+% (i.e., people) it truncates after three and adds a superscripted "+";
+% it also adds such a "+" if the last of multiple authors is "others").
+% If there is only one name, and its von and Last parts combined have just
+% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two),
+% we take the first three letters of the last name. The boolean
+% et.al.char.used tells whether we've used a superscripted "+", so that we
+% know whether to include a LaTeX macro for it.
+%
+% format.lab.names(s) ==
+% BEGIN
+% numnames := num.names$(s)
+% if numnames > 1 then
+% if numnames > 4 then
+% namesleft := 3
+% else
+% namesleft := numnames
+% nameptr := 1
+% nameresult := ""
+% while namesleft > 0
+% do
+% if (name_ptr = numnames) and
+% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others"
+% then nameresult := nameresult * "{\etalchar{+}}"
+% et.al.char.used := true
+% else nameresult := nameresult *
+% format.name$(s, nameptr, "{v{}}{l{}}")
+% nameptr := nameptr + 1
+% namesleft := namesleft - 1
+% od
+% if numnames > 4 then
+% nameresult := nameresult * "{\etalchar{+}}"
+% et.al.char.used := true
+% else
+% t := format.name$(s, 1, "{v{}}{l{}}")
+% if text.length$(t) < 2 then % there's just one name-token
+% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3)
+% else
+% nameresult := t
+% fi
+% fi
+% return nameresult
+% END
+%
+% Exactly what fields we look at in constructing the primary part of the label
+% depends on the entry type; this selectivity (as opposed to, say, always
+% looking at author, then editor, then key) helps ensure that "ignored" fields,
+% as described in the LaTeX book, really are ignored. Note that MISC is part
+% of the deepest `else' clause in the nested part of calc.label; thus, any
+% unrecognized entry type in the database is handled correctly.
+%
+% There is one auxiliary function for each of the four different sequences of
+% fields we use. The first of these functions looks at the author field, and
+% then, if necessary, the key field. The other three functions, which might
+% look at two fields and the key field, are similar, except that the key field
+% takes precedence over the organization field (for labels---not for sorting).
+%
+% The calc.label function calculates the preliminary label of an entry, which
+% is formed by taking three letters of information from the author or editor or
+% key or organization field (depending on the entry type and on what's empty,
+% but ignoring a leading "The " in the organization), and appending the last
+% two characters (digits) of the year. It is an error if the appropriate fields
+% among author, editor, organization, and key are missing, and we use
+% the first three letters of the cite$ in desperation when this happens.
+% The resulting label has the year part, but not the name part, purify$ed
+% (purify$ing the year allows some sorting shenanigans by the user).
+%
+% This function also calculates the version of the label to be used in sorting.
+%
+% The final label may need a trailing 'a', 'b', etc., to distinguish it from
+% otherwise identical labels, but we can't calculated those "extra.label"s
+% until after sorting.
+%
+% calc.label ==
+% BEGIN
+% if type$ = "book" or "inbook" then
+% author.editor.key.label
+% else if type$ = "proceedings" then
+% editor.key.organization.label
+% else if type$ = "manual" then
+% author.key.organization.label
+% else
+% author.key.label
+% fi fi fi
+% label := label * substring$(purify$(field.or.null(year)), -1, 2)
+% % assuming we will also sort, we calculate a sort.label
+% sort.label := sortify(label), but use the last four, not two, digits
+% END
+
+#if LAB_ALPH
+
+INTEGERS { et.al.char.used }
+
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+
+EXECUTE {initialize.et.al.char.used}
+
+FUNCTION {format.lab.names}
+{ 's :=
+ s num.names$ 'numnames :=
+ numnames #1 >
+ { numnames #4 >
+ { #3 'namesleft := }
+ { numnames 'namesleft := }
+ if$
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ { nameptr numnames =
+ { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ }
+ { s nameptr "{v{}}{l{}}" format.name$ * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ numnames #4 >
+ { "{\etalchar{+}}" *
+ #1 'et.al.char.used :=
+ }
+ 'skip$
+ if$
+ }
+ { s #1 "{v{}}{l{}}" format.name$
+ duplicate$ text.length$ #2 <
+ { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+ { key empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need author or key in " cite$ * warning$
+ cite$ #1 #3 substring$
+ }
+#endif SORTED
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+ { editor empty$
+ { key empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need author, editor, or key in " cite$ * warning$
+ cite #1 #3 substring$
+ }
+#endif SORTED
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {author.key.organization.label}
+{ author empty$
+ { key empty$
+ { organization empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need author, key, or organization in " cite$ *
+ warning$
+ cite #1 #3 substring$
+ }
+#endif SORTED
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+ { key empty$
+ { organization empty$
+#if SORTED
+ { cite$ #1 #3 substring$ }
+#else !SORTED % need warning here because we won't give it later
+ { "for label, need editor, key, or organization in " cite$ *
+ warning$
+ cite #1 #3 substring$
+ }
+#endif SORTED
+ { "The " #4 organization chop.word #3 text.prefix$ }
+ if$
+ }
+ { key #3 text.prefix$ }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.key.organization.label
+ 'author.key.label
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year field.or.null purify$ #-1 #2 substring$
+ *
+ 'label :=
+ year field.or.null purify$ #-1 #4 substring$
+ *
+ sortify 'sort.label :=
+}
+
+% It doesn't seem like a particularly good idea to use an order-of-citation
+% reference list when using alphabetic labels, but we need to have a
+% special pass to calculate labels when this happens.
+
+#if !SORTED
+
+ITERATE {calc.label}
+
+#endif !SORTED
+
+#endif LAB_ALPH
+
+% When sorting, we compute the sortkey by executing "presort" on each entry.
+% The presort key contains a number of "sortify"ed strings, concatenated
+% with multiple blanks between them. This makes things like "brinch per"
+% come before "brinch hansen per".
+%
+% The fields used here are: the sort.label for alphabetic labels (as set by
+% calc.label), followed by the author names (or editor names or organization
+% (with a leading "The " removed) or key field, depending on entry type and on
+% what's empty), followed by year, followed by the first bit of the title
+% (chopping off a leading "The ", "A ", or "An ").
+% Names are formatted: Von Last First Junior.
+% The names within a part will be separated by a single blank
+% (such as "brinch hansen"), two will separate the name parts themselves
+% (except the von and last), three will separate the names,
+% four will separate the names from year (and from label, if alphabetic),
+% and four will separate year from title.
+%
+% The sort.format.names function takes an argument that should be in
+% BibTeX name format, and returns a string containing " "-separated
+% names in the format described above. The function is almost the same
+% as format.names.
+
+#if SORTED
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+#if NAME_FULL
+ s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
+#else
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+#endif NAME_FULL
+ nameptr numnames = t "others" = and
+ { "i~in" * } %BL
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+% The sort.format.title function returns the argument,
+% but first any leading "A "'s, "An "'s, or "The "'s are removed.
+% The chop.word function uses s, so we need another string variable, t
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+% The auxiliary functions here, for the presort function, are analogous to
+% the ones for calc.label; the same comments apply, except that the
+% organization field takes precedence here over the key field. For sorting
+% purposes, we still remove a leading "The " from the organization field.
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need author, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+ { organization empty$
+ { key empty$
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { "The " #4 organization chop.word sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+% There is a limit, entry.max$, on the length of an entry string variable
+% (which is what its sort.key$ is), so we take at most that many characters
+% of the constructed key, and hope there aren't many references that match
+% to that many characters!
+
+FUNCTION {presort}
+#if LAB_ALPH
+{ calc.label
+ sort.label
+ " "
+ *
+ type$ "book" =
+#else !LAB_ALPH
+{ type$ "book" =
+#endif LAB_ALPH
+ type$ "inbook" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+#if LAB_ALPH
+ *
+#endif LAB_ALPH
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE {presort}
+
+% And now we can sort
+
+SORT
+
+#endif SORTED
+
+% This long comment applies only to alphabetic labels, when sorted
+%
+% Now comes the final computation for alphabetic labels, putting in the 'a's
+% and 'b's and so forth if required. This involves two passes: a forward
+% pass to put in the 'b's, 'c's and so on, and a backwards pass
+% to put in the 'a's (we don't want to put in 'a's unless we know there
+% are 'b's).
+% We have to keep track of the longest (in width$ terms) label, for use
+% by the "thebibliography" environment.
+%
+% VAR: longest.label, last.sort.label, next.extra: string
+% longest.label.width, last.extra.num: integer
+%
+% initialize.longest.label ==
+% BEGIN
+% longest.label := ""
+% last.sort.label := int.to.chr$(0)
+% next.extra := ""
+% longest.label.width := 0
+% last.extra.num := 0
+% END
+%
+% forward.pass ==
+% BEGIN
+% if last.sort.label = sort.label then
+% last.extra.num := last.extra.num + 1
+% extra.label := int.to.chr$(last.extra.num)
+% else
+% last.extra.num := chr.to.int$("a")
+% extra.label := ""
+% last.sort.label := sort.label
+% fi
+% END
+%
+% reverse.pass ==
+% BEGIN
+% if next.extra = "b" then
+% extra.label := "a"
+% fi
+% label := label * extra.label
+% if width$(label) > longest.label.width then
+% longest.label := label
+% longest.label.width := width$(label)
+% fi
+% next.extra := extra.label
+% END
+
+#if LAB_ALPH
+
+#if SORTED
+
+STRINGS { longest.label last.sort.label next.extra }
+
+INTEGERS { longest.label.width last.extra.num }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 int.to.chr$ 'last.sort.label :=
+ "" 'next.extra :=
+ #0 'longest.label.width :=
+ #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+{ last.sort.label sort.label =
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ sort.label 'last.sort.label :=
+ }
+ if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label extra.label * 'label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+ extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+#else !SORTED
+
+% It still doesn't seem like a good idea to use an order-of-citation
+% reference list when using alphabetic labels, but when this happens we
+% must compute the longest label
+
+STRINGS { longest.label }
+
+INTEGERS { longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+#endif SORTED
+
+#else !LAB_ALPH
+
+% Now comes the computation for numeric labels.
+% We use either the sorted order or original order.
+% We still have to keep track of the longest (in width$ terms) label, for use
+% by the "thebibliography" environment.
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+#endif LAB_ALPH
+
+% Now we're ready to start writing the .BBL file.
+% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic
+% label; next comes stuff from the `preamble' command in the database files.
+% Then we give an incantation containing the command
+% \begin{thebibliography}{...}
+% where the `...' is the longest label.
+%
+% We also call init.state.consts, for use by the output routines.
+
+FUNCTION {begin.bib}
+#if LAB_ALPH
+{ et.al.char.used
+ { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
+ 'skip$
+ if$
+ preamble$ empty$
+#else !LAB_ALPH
+{ preamble$ empty$
+#endif LAB_ALPH
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+% Now we produce the output for all the entries
+
+ITERATE {call.type$}
+
+% Finally, we finish up by writing the `\end{thebibliography}' command.
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
diff --git a/Master/texmf-dist/tex/plain/gustlib/plbtx993/test.mex b/Master/texmf-dist/tex/plain/gustlib/plbtx993/test.mex
new file mode 100644
index 00000000000..8ff961ac62a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/plbtx993/test.mex
@@ -0,0 +1,19 @@
+% To jest plik /xr/od/lowy dla systemu TeX z formatym MeX
+
+\input biblotex
+
+\prefixing
+
+Program X posiada wszystkie mo/zliwo/sci programu
+(ang. upward compatible). Szczeg/o/lowe informacje o~mo/zliwo/sciach obu
+program/ow znale/x/c mo/zna w~pracy~\cite{test}.
+
+\bibliography{test} % Use *.bib to resolve the labels.
+
+\bibliographystyle{plunsrt} % Number the references.
+%\bibliographystyle{plabbrv} % Number the references.
+%\bibliographystyle{plplain} % Number the references.
+%\bibliographystyle{plalpha} % Number the references.
+
+\bye
+
diff --git a/Master/texmf-dist/tex/plain/gustlib/plmac218/plidxmac.tex b/Master/texmf-dist/tex/plain/gustlib/plmac218/plidxmac.tex
new file mode 100644
index 00000000000..0d0d4859346
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/plmac218/plidxmac.tex
@@ -0,0 +1,266 @@
+% 2 X 1993
+% ========
+%
+% To jest:
+% PLIDXMAC ver.2.18
+%
+% system makr do tworzenia indeks/ow w systemie plain-TeX
+%
+% adaptacja: B.Licho/nski 1993
+%----------------------------------- begin PLIDXMAC ----------------------
+%% @texfile{
+%% author = "Bogus/law Licho/nski",
+%% version = "2.18",
+%% date = "2 Paz 1993",
+%% filename = "plidxmac.tex",
+%% address = "Gdynia ul. Kameliowa 17",
+%% codetable = "ISO/ASCII",
+%% supported = "yes",
+%% docstring = "Definicje makr plain TeX dla programu PLindex",
+%% }
+%
+% Most of the code in this file are excerpts from latex.tex and manmac.tex.
+% The actual style of the index environment \beginindex ... \endindex
+% at the end of this file is left empty.
+%
+%
+\def\makeatletter{\catcode`\@=11\relax}
+\def\makeatother{\catcode`\@=12\relax}
+\makeatletter
+\def\newwrite{\alloc@7\write\chardef\sixt@@n}% added by B.L. 1.X.93 Gdynia 16:47:02
+\newif\ifignore% added by B.L. 1.X.93 Gdynia 16:47:02
+\newif\if@filesw \@fileswtrue
+\newif\if@nobreak \@nobreakfalse
+\def\@makeother#1{\catcode`#112\relax}
+\def\newwrite{\alloc@7\write\chardef\sixt@@n}
+\newwrite\@unused
+\def\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}
+
+% ****************************************
+% * PAGE NUMBERING *
+% ****************************************
+%
+% Page numbers are produced by a page counter, used just like any other
+% counter. The only difference is that \c@page contains the number of
+% the next page to be output (the one currently being produced), rather
+% than one minus it. Thus, it is normally initialized to 1 rather than
+% 0. \c@page is defined to be \count0, rather than a count assigned by
+% \newcount.
+%
+% The user sets the pagenumber style with the \pagenumbering{FOO}
+% command, which sets the page counter to 1 and defines \thepage to be
+% \FOO. For example, \pagenumbering{roman} causes pages to be numbered
+% i, ii, etc.
+
+% Numbering commands for definitions of \theCOUNTER and \list arguments.
+% \fnsymbol produces the standard footnoting symbols: asterisk, dagger, etc.
+% They can be used only in math mode.
+
+% \@nameuse{NAME} : Expands to \NAME .
+\def\@nameuse#1{\csname #1\endcsname}
+
+\def\arabic#1{\@arabic{\@nameuse{c@#1}}}
+\def\roman#1{\@roman{\@nameuse{c@#1}}}
+\def\Roman#1{\@Roman{\@nameuse{c@#1}}}
+\def\alph#1{\@alph{\@nameuse{c@#1}}}
+\def\Alph#1{\@Alph{\@nameuse{c@#1}}}
+%\def\fnsymbol#1{\@fnsymbol{\@nameuse{c@#1}}}
+
+\def\@arabic#1{\ifnum #1>0 \number #1\fi}
+\def\@roman#1{\romannumeral #1}
+\def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}}
+\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
+\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or
+ z\else\@ctrerr\fi}
+\def\@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi}
+\def\@Ialph#1{\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or
+ K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or
+ Z\else\@ctrerr\fi}
+%\def\@fnsymbol#1{\ifcase#1\or *\or \dagger\or \ddagger\or
+% \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
+% \or \ddagger\ddagger \else\@ctrerr\fi\relax}
+
+\countdef\c@page=0 \c@page=1
+\def\cl@page{}
+\def\pagenumbering#1{\global\c@page \@ne \gdef\thepage{\csname @#1\endcsname
+ \c@page}}
+\pagenumbering{arabic}
+
+% \@bsphack ... \@esphack
+% used by macros such as \index and \begin{@float} ... \end{@float}
+% that want to be invisible -- i.e.,
+% not leave any extra space when used in the middle of text. Such
+% a macro should begin with \@bsphack and end with \@esphack
+% The macro in question should not create any text, nor change the
+% mode.
+%
+% \@bsphack ==
+% BEGIN
+% \dimen\@savsk := \lastskip
+% if hmode then \@savsf := \spacefactor fi
+% END
+%
+% \@esphack ==
+% BEGIN
+% if hmode
+% then \spacefactor := \@savsf
+% if \dimen\@savsk > 0pt then \ignorespaces
+% \global\ignoretrue fi
+% fi
+% END
+%
+
+\newdimen\@savsk
+\newcount\@savsf
+
+\def\@bsphack{\@savsk\lastskip
+ \ifhmode\@savsf\spacefactor\fi}
+
+\def\@esphack{\relax\ifhmode\spacefactor\@savsf
+ {}\ifdim \@savsk >\z@ \global\ignoretrue \ignorespaces
+ \fi \fi}
+
+% The command \@sanitize changes the catcode of all special characters
+% except for braces to 'other'. It can be used for commands like
+% \index that want to write their arguments verbatim. Needless to
+% say, this command should only be executed within a group, or chaos
+% will ensue.
+
+\def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&%
+\@makeother\#\@makeother\^\@makeother\^^K\@makeother\_\@makeother\^^A%
+\@makeother\%\@makeother\~}
+
+% ****************************************
+% * INDEX COMMANDS *
+% ****************************************
+%
+% \makeindex ==
+% BEGIN
+% if \@filesw = T
+% then open file \jobname.IDX as \indexfile
+% \index == BEGIN \@bsphack
+% \begingroup
+% re-\catcode special characters to 'other'
+% \wrindex
+% fi
+% END
+%
+% \wrindex{ITEM} ==
+% BEGIN
+% write of {\indexentry{ITEM}{page number}}
+% \endgroup
+% \@esphack
+% END
+
+% INITIALIZATION:
+%
+% \index == BEGIN \@bsphack
+% \begingroup
+% re-\catcode special characters (in case '%' there)
+% \index
+% END
+%
+% \index{ITEM} == BEGIN \endgroup \@esphack END
+%
+\def\makeindex{\if@filesw \newwrite\@indexfile
+ \immediate\openout\@indexfile=\jobname.idx
+ \def\index{\@bsphack\begingroup\@sanitize\@wrindex\@indexfile}
+ \typeout{Writing index file \jobname.idx }\fi}
+
+\def\@wrindex#1#2{\let\thepage\relax
+ \xdef\gtempa{\write#1{\string
+ \indexentry{#2}{\thepage}}}\endgroup\gtempa
+ \if@nobreak \ifvmode\@nobreak\fi\fi\@esphack}
+
+\def\index{\@bsphack\begingroup\@sanitize\@index}
+\def\@index#1{\endgroup\@esphack}
+
+\def\makeglossary{\if@@filesw \newwrite\@glossaryfile
+ \immediate\openout\@glossaryfile=\jobname.glo
+ \def\glossary{\@bsphack\begingroup\@sanitize\@wrindex\@glossaryfile}\typeout
+ {Writing glossary file \jobname.glo }\fi}
+
+\def\glossary{\@bsphack\begingroup\@sanitize\index}
+
+
+% Doublecolumns formatting
+\newdimen\pagewidth
+\pagewidth=\hsize
+\newbox\partialpage
+\def\begindoublecolumns{\begingroup
+ \output={\global\setbox\partialpage=\vbox{\unvbox255\bigskip}}\eject
+ \output={\doublecolumnout} \hsize=14pc \vsize=89pc
+ \let\item\@idxitem}
+\def\enddoublecolumns{\output={\balancecolumns}\eject
+ \endgroup \pagegoal=\vsize}
+\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth
+ \dimen@=44pc \advance\dimen@ by-\ht\partialpage
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255 \penalty\outputpenalty}
+\def\pagesofar{\unvbox\partialpage
+ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
+\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0
+ \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by2 \splittopskip=\topskip
+ {\vbadness=10000 \loop \global\setbox3=\copy0
+ \global\setbox1=\vsplit3 to\dimen@
+ \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}
+ \setbox0=\vbox to\dimen@{\unvbox1}
+ \setbox2=\vbox to\dimen@{\unvbox3}
+ \pagesofar}
+
+%%%%%%%%%%%% do/lo/zy/lem z texinfo 20:26:54
+\newdimen \bindingoffset \bindingoffset=0pt
+\newdimen \normaloffset \normaloffset=\hoffset
+\def\onepageout#1{\hoffset=\normaloffset
+\ifodd\pageno \advance\hoffset by \bindingoffset
+\else \advance\hoffset by -\bindingoffset\fi
+{\escapechar=`\\\relax % makes sure backslash is used in output files.
+\shipout\vbox{{\let\hsize=\pagewidth \makeheadline} \pagebody{#1}%
+{\let\hsize=\pagewidth \makefootline}}}%
+\advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi}
+%%%%%%%%%%%%%%%%%%%%%%
+
+\def\@idxitem{\par\hangindent 40pt}
+\def\subitem{\par\hangindent 40pt \hskip 20pt}
+\def\subsubitem{\par\hangindent 40pt \hskip 30pt}
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
+
+\def\indexemdashes{%
+\def\@idxitem{\par\hangindent 0pt}
+\def\subitem{\par\hangindent 0pt --- }
+\def\subsubitem{\par\hangindent 0pt --- --- }
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}}
+
+
+ \def\beginindex{\begingroup\let\item\@idxitem
+ % Output opening routines go here
+ }
+ \def\endindex{
+ % Output closing routines go here.
+ \endgroup}
+
+% \@ifundefined{NAME}{YES}{NO}
+% : If \NAME is undefined then it executes YES,
+% otherwise it executes NO. More precisely,
+% true if \NAME either undefined or = \relax.
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
+ #1\endcsname\relax#2\else#3\fi}
+\@ifundefined{seeterm}{\def\seeterm{see}}{}
+\@ifundefined{zobterm}{\def\zobterm{zob.}}{}
+\def\see#1#2{{\it \seeterm\/} #1}
+\def\zob#1#2{{\it \zobterm\/} #1}
+
+\def\Input#1{\openin1 #1 \ifeof1 \typeout
+ {I cannot find file #1.}\else\closein1 \relax\input #1 \fi}
+\def\printindex{\Input{\jobname.ind}}
+\def\printtheindex#1{\Input{#1}}
+% above added by B.L. 1.X.93 Gdynia 16:47:03
+
+\def\endindex{
+% Output closing routines go here.
+\endgroup}
+
+\makeatother
diff --git a/Master/texmf-dist/tex/plain/gustlib/plmac218/plind.bat b/Master/texmf-dist/tex/plain/gustlib/plmac218/plind.bat
new file mode 100644
index 00000000000..f3ca45dbca2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/plmac218/plind.bat
@@ -0,0 +1,6 @@
+@echo off
+rem Przyk/ladowy batch. (StaW)
+rem PLindex sortuje plik przyklad.idx zapisany w standardzie Mazovii,
+rem daj/ac wyj/sciowy plik przyklad.ind
+rem U/zycie stylu plaintex.ist pozwala na sk/lad formatem MeX/Plain
+plindex.exe -z mazovia -s plaintex.ist przyklad.idx
diff --git a/Master/texmf-dist/tex/plain/gustlib/plmac218/przyklad.tex b/Master/texmf-dist/tex/plain/gustlib/plmac218/przyklad.tex
new file mode 100644
index 00000000000..63849c3b260
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/plmac218/przyklad.tex
@@ -0,0 +1,10 @@
+% plik test.tex (kodowanie Mazovia)
+\input plidxmac.tex
+\makeindex
+Kot\index{kot} poluje na kanarka\index{kanarek}, a~pies\index{pies}
+poluje na kota\index{kot}. Z~kolei §¢’w\index{§¢’w} to strasznie powolne
+zwierz‘%
+\index{zwierz‘}.
+\vfil\eject
+\printindex
+\bye
diff --git a/Master/texmf-dist/tex/plain/gustlib/rbox-ex.tex b/Master/texmf-dist/tex/plain/gustlib/rbox-ex.tex
new file mode 100644
index 00000000000..913f2a51b6e
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/rbox-ex.tex
@@ -0,0 +1,56 @@
+%% przyk/lad u/zycia ramek zaokr/aglonych | rounded frames example
+%% (opr. St. Wawrykiewicz)
+\input roundbox
+\def\bsl{{\tt\char'134}}
+\setcorners 2 %
+\roundbox width 9cm height 9cm {Some text}
+ % ramka o gr. linii 0.4pt | frame of 0.4pt thickness
+ % parametry: szer. i wys. {tekst} | parameters: width height {contents}
+ % tre/s/c umieszczona centralnie | the contents is centered in the frame
+ % w ramce |
+
+\def\\{\par}
+ % w parametrze makra nie mo/ze | in macro parameter \par or newline
+ % by/c \par b/ad/x wolnej linii!!! | is not allowed
+\Roundbox width 9cm {%ramka o gr. 0.8pt | 0.8pt thickness of the frame
+\vbox{\hsize=0.45\hsize \bf
+\parindent=0pt
+Some text in rounded frame, in the column of
+0.45 ({\tt \bsl hsize}).
+\\ \bigskip
+Next paragraph after {\tt\bsl bigskip}.
+All typeset in boldface.
+}}
+
+\vfill\eject
+\message{Next page}
+\roundbox width 9cm height 9cm {% %% wymiary ramki | frame dimensions
+\vbox to9cm{\hsize=9cm\parindent=0pt %% wymiary pude/lka| box dimensions
+ %% w ramce |
+\vss % \vss rozmieszcza tre/s/c
+\leftline{left} % r/ownomiernie
+\rightline{right} %
+\vss %
+\centerline{center} %
+\vss
+\leftline{left}
+\rightline{right}
+\vss}}
+
+\medskip
+
+\roundbox width 9cm height 9cm { % wymiary ramki | frame dimentions
+\vbox to9cm{\hsize=9cm\parindent=0pt % wymiary pude/lka | box dimentions
+\parskip=0pt
+Test of text. Test of text. Test of text. Test of text. Test of text.
+Test of text.\\
+\vbox to 3cm{%
+\vss
+\centerline{centered in 3cm height of space}
+\vss}
+Test of text. Test of text. Test of text. Test of text.
+Test of text. Test of text. Test of text. Test of text.
+Everything flushed from bottom.
+\vss}} % to w/la/snie dopych od do/lu!! |\vss flush from bottom
+
+\bye
diff --git a/Master/texmf-dist/tex/plain/gustlib/roundbox.tex b/Master/texmf-dist/tex/plain/gustlib/roundbox.tex
new file mode 100644
index 00000000000..f512bf01786
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/roundbox.tex
@@ -0,0 +1,233 @@
+% FILE ROUNDBOX.TEX, version 1.1 (14.VIII.1990)
+% ------------------------------------------------------------------------
+% AUTHOR:
+% Garry Glendown (see in TUGboat Vol. 10 (1989) no.3 pp.386--387)
+% ------------------------------------------------------------------------
+% MODIFICATOR:
+% B. Jackowski, Tatrza\'nska 6/1, 80-331 Gda\'nsk, POLAND
+%
+% Modification includes shadow boxes, possibility of defining outer
+% sizes (vertical and horizontal), and possibility of choosing various
+% set of corners.
+% ``Degenerated'' roundboxes (rectangles) are also available,
+% although because of round-off errors (or BJ errors?) they don't
+% look nice sometimes.
+% ------------------------------------------------------------------------
+% USAGE:
+% 1) thin frame (.4pt):
+% \roundbox <outer size(s)> {<text>}
+% \shadowbox <outer size(s)> {<text>}
+% 2) thick frame (.85pt) --- see remark 4:
+% \Roundbox <outer size(s)> {<text>}
+% \Shadowbox <outer size(s)> {<text>}
+% Outer size is optional and can have the form either `height <dimen>' or
+% `width <dimen>', or both---the order does not matter. This convention
+% is identical to that of `\hrule' and `\vrule'. You can even specify
+% depth; however, it is ignored.
+%
+% Usage of these commands can be preceeded by fixing an appropriate set
+% of corners:
+% \setcorners <number>
+% where
+% -1 <= <number> <= 7
+% and
+% size of corner = 2*(1+<number>)pt for <number> >= 0.
+%
+%
+% REMARKS:
+% 1. <outer size(s)> is/are optional and MUST NOT appear in braces.
+% 2. Errors in this parameter are not checked, hence odd results may occur.
+% 3. I made some names longer and add \@ as a letter, otherwise they
+% might interfere.
+% 4. Thick corners are said to have line thickness 0.8pt, however the
+% corrected value 0.85pt yields better results (for 300dpi fonts).
+% 5. Shadows do not change the size of the box (my shadow does not increase
+% my weight).
+% 6. I'm not very happy about the elegancy of the code. I hope that some day
+% I or somebody else will improve it.
+% 7. Is it reasonable to employ also scaled circle fonts?
+% ------------------------------------------------------------------------
+%
+\catcode`\@=11
+%
+% ------------------------------------------------------------------------
+% DECLARATIONS
+% ------------------------------------------------------------------------
+%
+\newbox\t@mpb@x
+\newdimen\t@mpwd
+\newdimen\t@mpht
+\newdimen\t@mpth
+%
+\newdimen\xt@mpwd % used for making
+\newdimen\xt@mpht % shadows instead
+\newdimen\xt@mpdp % of phantoms
+%
+\newdimen\c@rnwd % width of corner (first --- doubled, finally --- true)
+\newdimen\c@frwd % doubled width of corner + width of frame
+\newdimen\c@rnsh % corner shift
+\newdimen\sh@dsh % shadow shift
+%
+% ------------------------------------------------------------------------
+% QUARTER CIRCLES:
+% ------------------------------------------------------------------------
+%\font\circle=circle10 \font\circlew=circlew10
+\font\circle=lcircle1 \font\circlew=lcirclew
+% ------------------------------------------------------------------------
+\newcount\cornern@
+\def\@vailcorn{\immediate
+ \write16{! AVAILABLE CORNER SETS: -1,0,1,2,...,9 --- 4th set assumed}%
+ \cornern@=4}
+\def\s@tc@rn@rs{%
+ \ifnum\cornern@<-1\@vailcorn\fi
+ \ifnum\cornern@>9\@vailcorn\fi
+ \ifnum\cornern@=-1
+ % degenerated corner set;
+ % in fact, only the width of \luq@tr is important, the corners are
+ % not drawn, simply the rules are longer.
+ \def\Ph@ntc@rn{\vbox to 0.8pt{\vss\hbox to 1.6pt{}}}%
+ \def\ph@ntc@rn{\vbox to 0.4pt{\vss\hbox to 0.8pt{}}}%
+ \def\luq@tr{\ifx\cf\circlew \Ph@ntc@rn \else \ph@ntc@rn \fi}%
+ \else
+ \multiply\cornern@4
+ \edef\ruq@tr{{\noexpand\cf\char\the\cornern@}}% right upper qtr
+ \advance\cornern@ 1
+ \edef\rlq@tr{{\noexpand\cf\char\the\cornern@}}% left upper qtr
+ \advance\cornern@ 1
+ \edef\llq@tr{{\noexpand\cf\char\the\cornern@}}% left lower qtr
+ \advance\cornern@ 1
+ \edef\luq@tr{{\noexpand\cf\char\the\cornern@}}% left upper qtr
+ \fi}
+\def\setcorners{\afterassignment\s@tc@rn@rs \cornern@ = }
+\setcorners 4 % G. Glendown preferred set no 2
+% ------------------------------------------------------------------------
+% ROUND BOXES:
+% ------------------------------------------------------------------------
+%
+\def\RB@x#1#2{% #1 - rule thickness, #2 - text
+% known:
+% \t@mpwd \t@mpht
+ \t@mpth=#1\relax
+ \setbox\t@mpb@x=\hbox{\luq@tr}\c@rnwd=\wd\t@mpb@x
+ \ifdim\c@rnwd=\z@ \c@rnwd=2\t@mpth\fi
+ \c@frwd=\t@mpth % \c@frwd is globally copied to \sh@dsh in
+ % \s(S)hadowB@x
+ \advance \c@frwd \c@rnwd
+ \c@rnsh=-\t@mpth\advance \c@rnsh \c@rnwd
+ \setbox\t@mpb@x=\hbox{#2}%
+ \xt@mpht=\ht\t@mpb@x % pha
+ \xt@mpwd=\wd\t@mpb@x % nt
+ \xt@mpdp=\dp\t@mpb@x % om...
+ \setbox\t@mpb@x=\hbox \ifdim\t@mpwd<\c@frwd
+ spread \c@rnwd
+ \else
+ to \t@mpwd
+ \fi
+ {\hss\box\t@mpb@x\hss}%
+ \advance\t@mpht-\c@frwd \ifdim\t@mpht<\z@ \t@mpht=\z@\fi
+ \setbox\t@mpb@x=\hbox to \wd\t@mpb@x{\vrule width\t@mpth\hss
+ \vbox \ifdim\t@mpht>\z@ to \t@mpht\fi
+ {\vss\box\t@mpb@x\vss}%
+ \hss\vrule width\t@mpth}%
+ \c@rnwd=0.5\c@rnwd
+ \t@mpwd=\wd\t@mpb@x
+ \vbox spread -\c@rnsh{%
+ \offinterlineskip
+ \vss
+ \hbox to \t@mpwd{\ifnum\cornern@=-1 \else
+ \hbox to \c@rnwd{\luq@tr\hss}%
+ \fi
+ \leaders\hrule height\t@mpth\hfil
+ \ifnum\cornern@=-1 \else
+ \hbox to \c@rnwd{\hss\ruq@tr\kern-\c@rnsh}%
+ \fi}
+ \box\t@mpb@x
+ \hbox to \t@mpwd{\ifnum\cornern@=-1 \else
+ \hbox to \c@rnwd{\llq@tr\hss}%
+ \fi
+ \leaders\hrule height\t@mpth\hfil
+ \ifnum\cornern@=-1 \else
+ \hbox to \c@rnwd{\hss\rlq@tr\kern-\c@rnsh}%
+ \fi}
+ \vss
+ }%
+ }% end \def\RB@x
+%
+\def\roundbox#1#{\setbox\t@mpb@x=\hbox{\vrule #1}% Attention! trick!
+ \t@mpwd=\wd\t@mpb@x \t@mpht=\ht\t@mpb@x
+ \roundB@x}
+\def\roundB@x#1{\font\cf=lcircle1 \RB@x{.4pt}{#1}}
+%
+\def\Roundbox#1#{\setbox\t@mpb@x=\hbox{\vrule #1}% Attention! trick!
+ \t@mpwd=\wd\t@mpb@x \t@mpht=\ht\t@mpb@x
+ \RoundB@x}
+\def\RoundB@x#1{\font\cf=lcirclew \RB@x{.85pt}{#1}}
+%
+% ------------------------------------------------------------------------
+% SHADOW BOXES:
+% ------------------------------------------------------------------------
+%
+\def\RShB@x#1{% #1 - rule thickness
+% known:
+% \t@mpwd \t@mpht
+% \xt@mpwd \xt@mpht \xt@mpdp
+ \t@mpth=#1\relax
+ \setbox\t@mpb@x=\hbox{\luq@tr}\c@rnwd=\wd\t@mpb@x
+ \ifdim\c@rnwd=\z@ \c@rnwd=2\t@mpth\fi
+ \c@frwd=\t@mpth % \c@frwd is globally copied to \sh@dsh in
+ % \s(S)hadowB@x
+ \advance \c@frwd \c@rnwd
+ \c@rnsh=-\t@mpth\advance \c@rnsh \c@rnwd
+ \setbox\t@mpb@x=\hbox \ifdim\t@mpwd<\c@frwd
+ spread \c@rnwd
+ \else
+ to \t@mpwd
+ \fi
+ {\hss\vrule width \z@ height\xt@mpht depth\xt@mpdp
+ \hskip\xt@mpwd\hss}%
+ \setbox\t@mpb@x=\vbox \ifdim\t@mpht>\z@ to \t@mpht\fi
+ {\vss\box\t@mpb@x\vss}%
+ \c@rnwd=0.5\c@rnwd
+ \t@mpwd=\wd\t@mpb@x
+ \setbox\t@mpb@x=\hbox to \t@mpwd{\vbox \ifnum\cornern@=-1 spread\c@rnwd \fi
+ {\vss\box\t@mpb@x}\hss\vrule width\t@mpth}%
+ \vbox spread -\c@rnsh{%
+ \offinterlineskip
+ \vss
+ \hbox to \t@mpwd{\hfil
+ \ifnum\cornern@=-1 \else
+ \hbox to \c@rnwd{\hss\ruq@tr\kern-\c@rnsh}%
+ \fi}
+ \box\t@mpb@x
+ \hbox to \t@mpwd{\ifnum\cornern@=-1 \else
+ \hbox to \c@rnwd{\llq@tr\hss}%
+ \fi
+ \leaders\hrule height\t@mpth\hfil
+ \ifnum\cornern@=-1 \else
+ \hbox to \c@rnwd{\hss\rlq@tr\kern-\c@rnsh}%
+ \fi}
+ \vss
+ }%
+ }% end \def\RShB@x
+%
+\def\shadowbox#1#{\def\p@r@m{#1}\shadowB@x}
+\def\shadowB@x#1{\vbox{\hbox{\roundbox\p@r@m{#1}\global\sh@dsh\c@frwd
+ \kern-\t@mpwd \kern0.5\sh@dsh \lower0.5\sh@dsh
+ \hbox{\font\cf=lcircle1 \RShB@x{.4pt}}%
+ \kern-0.5\sh@dsh} \kern-0.5\sh@dsh}}
+%
+\def\Shadowbox#1#{\def\p@r@m{#1}\ShadowB@x}
+\def\ShadowB@x#1{\vbox{\hbox{\Roundbox\p@r@m{#1}\global\sh@dsh\c@frwd
+ \kern-\t@mpwd \kern0.5\sh@dsh \lower0.5\sh@dsh
+ \hbox{\font\cf=lcirclew \RShB@x{.85pt}}%
+ \kern-0.5\sh@dsh} \kern-0.5\sh@dsh}}
+%
+% ------------------------------------------------------------------------
+%
+\catcode`\@=12
+%
+% ------------------------------------------------------------------------
+\endinput
+% ------------------------------------------------------------------------
+% END OF ROUNDBOX.TEX
+% ------------------------------------------------------------------------
diff --git a/Master/texmf-dist/tex/plain/gustlib/tp-crf.tex b/Master/texmf-dist/tex/plain/gustlib/tp-crf.tex
new file mode 100644
index 00000000000..164c86d2fed
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/tp-crf.tex
@@ -0,0 +1,115 @@
+% ------------------------------------------------------------------
+% TP-CRF: cross-reference generic macros.
+% Author: Tomasz Przechlewski <ekotp@halina.univ.gda.pl>.
+% Date: 02.01.1997. Version 0.5
+%
+% This macros are described in detail in the article ,,Odsy{\l}acze'',
+% GUST bulletin, number 5, 1995
+% --------------
+% User commands:
+% --------------
+% \ref, \pageref = insert cross-reference, insert page number.
+% \defreference = define cross-reference.
+% \makecrfile = write references to auxilliary (*.crf) file.
+% \nocrfile = suppress writing to auxilliary file.
+% \nocrwarnings = suppress warning messages.
+%
+% ------------------------------------------------------------------
+
+\catcode`@=11
+
+\def\@crwrn#1{\if@crwrns\immediate\write16{#1}\fi}
+\def\@markmissingcr{\relax}
+%\def\@markmissingcr{{\bf ??}\@marginmarker}
+%\def\@marginmarker{\vadjust{\vbox to0pt{%
+%\kern-.77\normalbaselineskip
+%\hbox{{\it\kern\hsize\kern15pt?}}\vss}}}
+
+\newif\if@crwrns \global\@crwrnstrue % default
+
+\def\nocrfile{\global\@crfilefalse}
+\def\nocrwarnings{\global\@crwrnsfalse}
+
+\def\@car#1#2{#1} \def\@cdr#1#2{#2}
+
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
+ #1\endcsname\relax#2\else#3\fi}
+
+\def\namedef#1{\expandafter \def\csname #1\endcsname}
+
+\def\newlabel#1#2{\@ifundefined{#1}{}%
+{\@crwrn{!WARNING: LABEL #1 REPEATED}}%
+\global\namedef{#1}{#2}}
+
+\newread\crfile
+
+\openin\crfile=\jobname.crf
+\ifeof\crfile
+ \@crwrn{FILE \jobname.crf NOT FOUND}
+ \else
+ \@crwrn{READING REFS FROM \jobname.crf}
+ \input \jobname.crf
+\fi
+
+\closein\crfile
+\newwrite\crfile
+
+\def\makecrfile{\@crwrn{STARTING CR-FILE: \jobname.crf}%
+\immediate \openout\crfile=\jobname.crf}
+\def\nocrfile{\@crwrn{CR-FILE \jobname.crf NOT CREATED}\def\crfile{-1}}
+
+\def\ref#1{\@nextcrf\@ifundefined{#1}{\@markmissingcr
+\@crwrn{!WARNING: UNDEFINED REFERENCE \string#1}}%
+{\edef\@tempa{\csname #1\endcsname}\expandafter \@car\@tempa}}
+
+\def\pageref#1{\@nextpcrf \@ifundefined{#1}{\@markmissingcr
+\@crwrn{!WARNING: UNDEFINED REFERENCE \string#1}}%
+{\edef\@tempa{\csname #1\endcsname}\expandafter \@cdr\@tempa}}
+
+\def\defreference#1#2{\@nextdrf
+\edef\save{\string\newlabel{#1}%
+{{#2}{\noexpand\folio}}}\write\crfile\expandafter{\save}%
+\ignorespaces}
+
+\newcount\@crfC \newcount\@pcrfC \newcount\@dcrfC
+
+\def\@nextdrf{\global\advance\@dcrfC1\relax}
+\def\@nextcrf{\global\advance\@crfC1}
+\def\@nextpcrf{\global\advance\@pcrfC1}
+\def\crstatistics{%
+\@crwrn{==============================}
+\@crwrn{= REFERENCE STATISTICS =======}
+\@crwrn{= refs defined.... \the\@dcrfC}
+\@crwrn{= refs used....... \the\@crfC}
+\@crwrn{= page refs used.. \the\@pcrfC}
+\@crwrn{==============================}}
+
+\outer\def\bye{\crstatistics\end}
+\catcode`@=12
+
+\endinput
+%%
+%% Example:
+%% =======
+%\input tp-crf
+%\makecrfile
+%
+%\newcount\SecC
+%\def\label#1{\defreference{#1}{\the\SecC}}
+%\def\sec#1{\vskip\baselineskip\global\advance\SecC1
+%\leftline{\bf\the\SecC.~#1}\par\nobreak\smallskip}
+%
+%\sec{First section}
+%\label{sec:first}
+%This is section~\ref{sec:first} on page~\pageref{sec:first}.
+%Compare section~\ref{sec:second} on page~\pageref{sec:second}.
+%
+%\vfill\eject
+%
+%\sec{Second section}
+%\label{sec:second}
+%This is section~\ref{sec:second} on page~\pageref{sec:second}.
+%Compare section~\ref{sec:first} on page~\pageref{sec:first}.
+%
+%\bye
+%%
diff --git a/Master/texmf-dist/tex/plain/gustlib/verbatim.tex b/Master/texmf-dist/tex/plain/gustlib/verbatim.tex
new file mode 100644
index 00000000000..ed2aa700b9c
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/gustlib/verbatim.tex
@@ -0,0 +1,48 @@
+% F I L E V E R B A T I M . T E X
+%
+% THIS SET OF MACROs IS TAKEN FROM D.E.K.'s TeXBook
+% AND PROVIDES AN EASY WAY OF TYPESETTING TEXTS VERBATIM:
+%
+% 1. \verbatim<character><text without that character><character>
+% causes the text to be set verbatim using \tt font;
+% 2. if the text uses up all the alphabet, \doubleverbatim macro
+% can be used instead; this is similar to the previous one but
+% a pair of characters is now used as a delimiter;
+% 3. in case of emergency \tripleverbatim macro may be of help...
+%
+%---------------------------------------------
+\def\uncatcodespecials % see D.E.K., pp. 344 and 380
+ {\def\do##1{\catcode`##1=12}\dospecials}%
+%---------------------------------------------
+{\catcode`\^^I=\active \gdef^^I{\ \ \ \ }% TAB character is replaced by
+ % 4 spaces; it is better than
+ % nothing, but it does not mimic
+ % true tabbing satisfactorily---maybe
+ % some nice day...
+ \catcode`\`=\active\gdef`{\relax\lq}}% this line inhibits Spanish
+ % ligatures ?` and !` of \tt font
+\def\setupverbatim % see D.E.K., p. 381
+ {\tt %
+ \spaceskip=0pt \xspaceskip=0pt % just in case...
+ \catcode`\^^I=\active %
+ \catcode`\`=\active %
+ \def\par{\leavevmode\endgraf}% this causes that empty lines aren't
+ % skipped
+ \obeylines \uncatcodespecials \obeyspaces}%
+{\obeyspaces \global\let =\ }% this causes that leading blanks aren't
+ % skipped; cf. also def's of \space, \endgraf,
+ % \lq, \obeyspaces, and \obeylines,
+ % D.E.K., pp. 351--352
+%---------------------------------------------
+% see D.E.K., p. 382
+\def\doverbatim#1{\def\next##1#1{##1\endgroup}\next}%
+\def\verbatim{\begingroup\setupverbatim\doverbatim}%
+%----------
+\def\dodoubleverbatim#1#2{\def\next##1#1#2{##1\endgroup}\next}%
+\def\doubleverbatim{\begingroup\setupverbatim\dodoubleverbatim}%
+%----------
+\def\dotripleverbatim#1#2#3{\def\next##1#1#2#3{##1\endgroup}\next}%
+\def\tripleverbatim{\begingroup\setupverbatim\dotripleverbatim}%
+%---------------------------------------------
+\endinput
+
diff --git a/Master/texmf-dist/tex/plain/harvmac/harvmac.tex b/Master/texmf-dist/tex/plain/harvmac/harvmac.tex
new file mode 100644
index 00000000000..17d8809d9ea
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/harvmac/harvmac.tex
@@ -0,0 +1,324 @@
+%%%%%%%%%%%%%%%%%% tex macros for preprints, cm version %%%%%%%%%%%%%%
+% (P. Ginsparg, last updated 9/91)
+% if confused, type `b' in response to query
+%
+%---------------------------------------------------------------------%
+%% site dependent options:
+%% \unredoffs and \redoffs define horizontal and vertical offsets
+%% respectively for unreduced and reduced modes. \speclscape defines
+%% the \special{} call that sets printer to landscape (sideways) mode.
+%% from standard set below, leave uncommented as appropriate or redefine
+%
+%%% next 400dpi
+%\def\unredoffs{} \def\redoffs{\voffset=-.31truein\hoffset=-.48truein}
+%\def\speclscape{\special{landscape}}
+%
+%%% apple lw
+\def\unredoffs{} \def\redoffs{\voffset=-.31truein\hoffset=-.59truein}
+\def\speclscape{\special{ps: landscape}}
+%
+%%% qms lasergrafix:
+%\def\unredoffs{} \def\redoffs{\voffset=-.4truein\hoffset=.125truein}
+%\def\speclscape{\special{qms: landscape}}
+%
+%%% saclay A4 paper:
+%\def\unredoffs{\hoffset-.14truein\voffset-.2truein}
+%\def\redoffs{\voffset=-.45truein\hoffset=-.21truein}
+%\def\speclscape{\special{landscape}}
+%
+%---------------------------------------------------------------------%
+%
+\newbox\leftpage \newdimen\fullhsize \newdimen\hstitle \newdimen\hsbody
+\tolerance=1000\hfuzz=2pt\def\fontflag{cm}
+%
+\catcode`\@=11 % This allows us to modify PLAIN macros.
+\def\bigans{b }
+\message{ big or little (b/l)? }\read-1 to\answ
+%
+\ifx\answ\bigans\message{(This will come out unreduced.}
+\magnification=1200\unredoffs\baselineskip=16pt plus 2pt minus 1pt
+\hsbody=\hsize \hstitle=\hsize %take default values for unreduced format
+%
+\else\message{(This will be reduced.} \let\l@r=L
+\magnification=1000\baselineskip=16pt plus 2pt minus 1pt \vsize=7truein
+\redoffs \hstitle=8truein\hsbody=4.75truein\fullhsize=10truein\hsize=\hsbody
+%
+\output={\ifnum\pageno=0 %%% This is the HUTP version
+ \shipout\vbox{\speclscape{\hsize\fullhsize\makeheadline}
+ \hbox to \fullhsize{\hfill\pagebody\hfill}}\advancepageno
+ \else
+ \almostshipout{\leftline{\vbox{\pagebody\makefootline}}}\advancepageno
+ \fi}
+\def\almostshipout#1{\if L\l@r \count1=1 \message{[\the\count0.\the\count1]}
+ \global\setbox\leftpage=#1 \global\let\l@r=R
+ \else \count1=2
+ \shipout\vbox{\speclscape{\hsize\fullhsize\makeheadline}
+ \hbox to\fullhsize{\box\leftpage\hfil#1}} \global\let\l@r=L\fi}
+\fi
+%---------------------------------------------------------------------
+%
+\newcount\yearltd\yearltd=\year\advance\yearltd by -1900
+\def\HUTP#1#2{\Title{HUTP-\number\yearltd/A#1}{#2}}
+\def\Title#1#2{\nopagenumbers\abstractfont\hsize=\hstitle\rightline{#1}%
+\vskip 1in\centerline{\titlefont #2}\abstractfont\vskip .5in\pageno=0}
+%
+\def\Date#1{\vfill\leftline{#1}\tenpoint\supereject\global\hsize=\hsbody%
+\footline={\hss\tenrm\folio\hss}}% restores pagenumbers
+%
+% use following instead of \Date on the preliminary draft,
+% puts date/time on each page in big mode, writes labels in margins
+\def\draft{\draftmode\Date{\draftdate}}
+\def\draftmode{\message{ DRAFTMODE }\def\draftdate{{\rm preliminary draft:
+\number\month/\number\day/\number\yearltd\ \ \hourmin}}%
+\headline={\hfil\draftdate}\writelabels\baselineskip=20pt plus 2pt minus 2pt
+ {\count255=\time\divide\count255 by 60 \xdef\hourmin{\number\count255}
+ \multiply\count255 by-60\advance\count255 by\time
+ \xdef\hourmin{\hourmin:\ifnum\count255<10 0\fi\the\count255}}}
+% use \nolabels to get rid of eqn, ref, and fig labels in draft mode
+\def\nolabels{\def\wrlabeL##1{}\def\eqlabeL##1{}\def\reflabeL##1{}}
+\def\writelabels{\def\wrlabeL##1{\leavevmode\vadjust{\rlap{\smash%
+{\line{{\escapechar=` \hfill\rlap{\sevenrm\hskip.03in\string##1}}}}}}}%
+\def\eqlabeL##1{{\escapechar-1\rlap{\sevenrm\hskip.05in\string##1}}}%
+\def\reflabeL##1{\noexpand\llap{\noexpand\sevenrm\string\string\string##1}}}
+\nolabels
+%
+% tagged sec numbers
+\global\newcount\secno \global\secno=0
+\global\newcount\meqno \global\meqno=1
+%
+\def\newsec#1{\global\advance\secno by1\message{(\the\secno. #1)}
+%\ifx\answ\bigans \vfill\eject \else \bigbreak\bigskip \fi %if desired
+\global\subsecno=0\eqnres@t\noindent{\bf\the\secno. #1}
+\writetoca{{\secsym} {#1}}\par\nobreak\medskip\nobreak}
+\def\eqnres@t{\xdef\secsym{\the\secno.}\global\meqno=1\bigbreak\bigskip}
+\def\sequentialequations{\def\eqnres@t{\bigbreak}}\xdef\secsym{}
+%
+\global\newcount\subsecno \global\subsecno=0
+\def\subsec#1{\global\advance\subsecno by1\message{(\secsym\the\subsecno. #1)}
+\ifnum\lastpenalty>9000\else\bigbreak\fi
+\noindent{\it\secsym\the\subsecno. #1}\writetoca{\string\quad
+{\secsym\the\subsecno.} {#1}}\par\nobreak\medskip\nobreak}
+%
+\def\appendix#1#2{\global\meqno=1\global\subsecno=0\xdef\secsym{\hbox{#1.}}
+\bigbreak\bigskip\noindent{\bf Appendix #1. #2}\message{(#1. #2)}
+\writetoca{Appendix {#1.} {#2}}\par\nobreak\medskip\nobreak}
+%
+% \eqn\label{a+b=c} gives displayed equation, numbered
+% consecutively within sections.
+% \eqnn and \eqna define labels in advance (of eqalign?)
+%
+\def\eqnn#1{\xdef #1{(\secsym\the\meqno)}\writedef{#1\leftbracket#1}%
+\global\advance\meqno by1\wrlabeL#1}
+\def\eqna#1{\xdef #1##1{\hbox{$(\secsym\the\meqno##1)$}}
+\writedef{#1\numbersign1\leftbracket#1{\numbersign1}}%
+\global\advance\meqno by1\wrlabeL{#1$\{\}$}}
+\def\eqn#1#2{\xdef #1{(\secsym\the\meqno)}\writedef{#1\leftbracket#1}%
+\global\advance\meqno by1$$#2\eqno#1\eqlabeL#1$$}
+%
+% footnotes
+\newskip\footskip\footskip14pt plus 1pt minus 1pt %sets footnote baselineskip
+\def\footnotefont{\ninepoint}\def\f@t#1{\footnotefont #1\@foot}
+\def\f@@t{\baselineskip\footskip\bgroup\footnotefont\aftergroup\@foot\let\next}
+\setbox\strutbox=\hbox{\vrule height9.5pt depth4.5pt width0pt}
+%
+\global\newcount\ftno \global\ftno=0
+\def\foot{\global\advance\ftno by1\footnote{$^{\the\ftno}$}}
+%
+%say \footend to put footnotes at end
+%will cause problems if \ref used inside \foot, instead use \nref before
+\newwrite\ftfile
+\def\footend{\def\foot{\global\advance\ftno by1\chardef\wfile=\ftfile
+$^{\the\ftno}$\ifnum\ftno=1\immediate\openout\ftfile=foots.tmp\fi%
+\immediate\write\ftfile{\noexpand\smallskip%
+\noexpand\item{f\the\ftno:\ }\pctsign}\findarg}%
+\def\footatend{\vfill\eject\immediate\closeout\ftfile{\parindent=20pt
+\centerline{\bf Footnotes}\nobreak\bigskip\input foots.tmp }}}
+\def\footatend{}
+%
+% \ref\label{text}
+% generates a number, assigns it to \label, generates an entry.
+% To list the refs on a separate page, \listrefs
+%
+\global\newcount\refno \global\refno=1
+\newwrite\rfile
+%
+\def\ref{[\the\refno]\nref}
+\def\nref#1{\xdef#1{[\the\refno]}\writedef{#1\leftbracket#1}%
+\ifnum\refno=1\immediate\openout\rfile=refs.tmp\fi
+\global\advance\refno by1\chardef\wfile=\rfile\immediate
+\write\rfile{\noexpand\item{#1\ }\reflabeL{#1\hskip.31in}\pctsign}\findarg}
+% horrible hack to sidestep tex \write limitation
+\def\findarg#1#{\begingroup\obeylines\newlinechar=`\^^M\pass@rg}
+{\obeylines\gdef\pass@rg#1{\writ@line\relax #1^^M\hbox{}^^M}%
+\gdef\writ@line#1^^M{\expandafter\toks0\expandafter{\striprel@x #1}%
+\edef\next{\the\toks0}\ifx\next\em@rk\let\next=\endgroup\else\ifx\next\empty%
+\else\immediate\write\wfile{\the\toks0}\fi\let\next=\writ@line\fi\next\relax}}
+\def\striprel@x#1{} \def\em@rk{\hbox{}}
+%
+\def\lref{\begingroup\obeylines\lr@f}
+\def\lr@f#1#2{\gdef#1{\ref#1{#2}}\endgroup\unskip}
+%
+\def\semi{;\hfil\break}
+\def\addref#1{\immediate\write\rfile{\noexpand\item{}#1}} %now unnecessary
+%
+\def\listrefs{\footatend\vfill\supereject\immediate\closeout\rfile\writestoppt
+\baselineskip=14pt\centerline{{\bf References}}\bigskip{\frenchspacing%
+\parindent=20pt\escapechar=` \input refs.tmp\vfill\eject}\nonfrenchspacing}
+%
+\def\startrefs#1{\immediate\openout\rfile=refs.tmp\refno=#1}
+%
+\def\xref{\expandafter\xr@f}\def\xr@f[#1]{#1}
+\def\refs#1{\count255=1[\r@fs #1{\hbox{}}]}
+\def\r@fs#1{\ifx\und@fined#1\message{reflabel \string#1 is undefined.}%
+\nref#1{need to supply reference \string#1.}\fi%
+\vphantom{\hphantom{#1}}\edef\next{#1}\ifx\next\em@rk\def\next{}%
+\else\ifx\next#1\ifodd\count255\relax\xref#1\count255=0\fi%
+\else#1\count255=1\fi\let\next=\r@fs\fi\next}
+%
+\def\figures{\centerline{{\bf Figure Captions}}\medskip\parindent=40pt%
+\def\fig##1##2{\medskip\item{Fig.~##1. }##2}}
+%
+% this is ugly, but moore insists
+\newwrite\ffile\global\newcount\figno \global\figno=1
+%
+\def\fig{fig.~\the\figno\nfig}
+\def\nfig#1{\xdef#1{fig.~\the\figno}%
+\writedef{#1\leftbracket fig.\noexpand~\the\figno}%
+\ifnum\figno=1\immediate\openout\ffile=figs.tmp\fi\chardef\wfile=\ffile%
+\immediate\write\ffile{\noexpand\medskip\noexpand\item{Fig.\ \the\figno. }
+\reflabeL{#1\hskip.55in}\pctsign}\global\advance\figno by1\findarg}
+%
+\def\listfigs{\vfill\eject\immediate\closeout\ffile{\parindent40pt
+\baselineskip14pt\centerline{{\bf Figure Captions}}\nobreak\medskip
+\escapechar=` \input figs.tmp\vfill\eject}}
+%
+\def\xfig{\expandafter\xf@g}\def\xf@g fig.\penalty\@M\ {}
+\def\figs#1{figs.~\f@gs #1{\hbox{}}}
+\def\f@gs#1{\edef\next{#1}\ifx\next\em@rk\def\next{}\else
+\ifx\next#1\xfig #1\else#1\fi\let\next=\f@gs\fi\next}
+%
+\newwrite\lfile
+{\escapechar-1\xdef\pctsign{\string\%}\xdef\leftbracket{\string\{}
+\xdef\rightbracket{\string\}}\xdef\numbersign{\string\#}}
+\def\writedefs{\immediate\openout\lfile=labeldefs.tmp \def\writedef##1{%
+\immediate\write\lfile{\string\def\string##1\rightbracket}}}
+%
+\def\writestop{\def\writestoppt{\immediate\write\lfile{\string\pageno%
+\the\pageno\string\startrefs\leftbracket\the\refno\rightbracket%
+\string\def\string\secsym\leftbracket\secsym\rightbracket%
+\string\secno\the\secno\string\meqno\the\meqno}\immediate\closeout\lfile}}
+%
+\def\writestoppt{}\def\writedef#1{}
+%
+\def\seclab#1{\xdef #1{\the\secno}\writedef{#1\leftbracket#1}\wrlabeL{#1=#1}}
+\def\subseclab#1{\xdef #1{\secsym\the\subsecno}%
+\writedef{#1\leftbracket#1}\wrlabeL{#1=#1}}
+%
+\newwrite\tfile \def\writetoca#1{}
+\def\leaderfill{\leaders\hbox to 1em{\hss.\hss}\hfill}
+% use this to write file with table of contents
+\def\writetoc{\immediate\openout\tfile=toc.tmp
+ \def\writetoca##1{{\edef\next{\write\tfile{\noindent ##1
+ \string\leaderfill {\noexpand\number\pageno} \par}}\next}}}
+% and this lists table of contents on second pass
+\def\listtoc{\centerline{\bf Contents}\nobreak\medskip{\baselineskip=12pt
+ \parskip=0pt\catcode`\@=11 \input toc.tex \catcode`\@=12 \bigbreak\bigskip}}
+%
+\catcode`\@=12 % at signs are no longer letters
+%
+% Unpleasantness in calling in abstract and title fonts
+\edef\tfontsize{\ifx\answ\bigans scaled\magstep3\else scaled\magstep4\fi}
+\font\titlerm=cmr10 \tfontsize \font\titlerms=cmr7 \tfontsize
+\font\titlermss=cmr5 \tfontsize \font\titlei=cmmi10 \tfontsize
+\font\titleis=cmmi7 \tfontsize \font\titleiss=cmmi5 \tfontsize
+\font\titlesy=cmsy10 \tfontsize \font\titlesys=cmsy7 \tfontsize
+\font\titlesyss=cmsy5 \tfontsize \font\titleit=cmti10 \tfontsize
+\skewchar\titlei='177 \skewchar\titleis='177 \skewchar\titleiss='177
+\skewchar\titlesy='60 \skewchar\titlesys='60 \skewchar\titlesyss='60
+%
+\def\titlefont{\def\rm{\fam0\titlerm}% switch to title font
+\textfont0=\titlerm \scriptfont0=\titlerms \scriptscriptfont0=\titlermss
+\textfont1=\titlei \scriptfont1=\titleis \scriptscriptfont1=\titleiss
+\textfont2=\titlesy \scriptfont2=\titlesys \scriptscriptfont2=\titlesyss
+\textfont\itfam=\titleit \def\it{\fam\itfam\titleit}\rm}
+%
+\font\authorfont=cmcsc10 \ifx\answ\bigans\else scaled\magstep1\fi
+%
+\ifx\answ\bigans\def\abstractfont{\tenpoint}\else
+\font\abssl=cmsl10 scaled \magstep1
+\font\absrm=cmr10 scaled\magstep1 \font\absrms=cmr7 scaled\magstep1
+\font\absrmss=cmr5 scaled\magstep1 \font\absi=cmmi10 scaled\magstep1
+\font\absis=cmmi7 scaled\magstep1 \font\absiss=cmmi5 scaled\magstep1
+\font\abssy=cmsy10 scaled\magstep1 \font\abssys=cmsy7 scaled\magstep1
+\font\abssyss=cmsy5 scaled\magstep1 \font\absbf=cmbx10 scaled\magstep1
+\skewchar\absi='177 \skewchar\absis='177 \skewchar\absiss='177
+\skewchar\abssy='60 \skewchar\abssys='60 \skewchar\abssyss='60
+%
+\def\abstractfont{\def\rm{\fam0\absrm}% switch to abstract font
+\textfont0=\absrm \scriptfont0=\absrms \scriptscriptfont0=\absrmss
+\textfont1=\absi \scriptfont1=\absis \scriptscriptfont1=\absiss
+\textfont2=\abssy \scriptfont2=\abssys \scriptscriptfont2=\abssyss
+\textfont\itfam=\bigit \def\it{\fam\itfam\bigit}\def\footnotefont{\tenpoint}%
+\textfont\slfam=\abssl \def\sl{\fam\slfam\abssl}%
+\textfont\bffam=\absbf \def\bf{\fam\bffam\absbf}\rm}\fi
+%
+\def\tenpoint{\def\rm{\fam0\tenrm}% switch back to 10-point type
+\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+\textfont\itfam=\tenit \def\it{\fam\itfam\tenit}\def\footnotefont{\ninepoint}%
+\textfont\bffam=\tenbf \def\bf{\fam\bffam\tenbf}\def\sl{\fam\slfam\tensl}\rm}
+%
+\font\ninerm=cmr9 \font\sixrm=cmr6 \font\ninei=cmmi9 \font\sixi=cmmi6
+\font\ninesy=cmsy9 \font\sixsy=cmsy6 \font\ninebf=cmbx9
+\font\nineit=cmti9 \font\ninesl=cmsl9 \skewchar\ninei='177
+\skewchar\sixi='177 \skewchar\ninesy='60 \skewchar\sixsy='60
+%
+\def\ninepoint{\def\rm{\fam0\ninerm}% switch to footnote font
+\textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+\textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
+\textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+\textfont\itfam=\ninei \def\it{\fam\itfam\nineit}\def\sl{\fam\slfam\ninesl}%
+\textfont\bffam=\ninebf \def\bf{\fam\bffam\ninebf}\rm}
+%
+%---------------------------------------------------------------------
+%
+\def\noblackbox{\overfullrule=0pt}
+\hyphenation{anom-aly anom-alies coun-ter-term coun-ter-terms}
+%
+\def\inv{^{\raise.15ex\hbox{${\scriptscriptstyle -}$}\kern-.05em 1}}
+\def\dup{^{\vphantom{1}}}
+\def\Dsl{\,\raise.15ex\hbox{/}\mkern-13.5mu D} %this one can be subscripted
+\def\dsl{\raise.15ex\hbox{/}\kern-.57em\partial}
+\def\del{\partial}
+\def\Psl{\dsl}
+\def\tr{{\rm tr}} \def\Tr{{\rm Tr}}
+\font\bigit=cmti10 scaled \magstep1
+\def\biglie{\hbox{\bigit\$}} %pound sterling
+\def\lspace{\ifx\answ\bigans{}\else\qquad\fi}
+\def\lbspace{\ifx\answ\bigans{}\else\hskip-.2in\fi} % $$\lbspace...$$
+\def\boxeqn#1{\vcenter{\vbox{\hrule\hbox{\vrule\kern3pt\vbox{\kern3pt
+ \hbox{${\displaystyle #1}$}\kern3pt}\kern3pt\vrule}\hrule}}}
+\def\mbox#1#2{\vcenter{\hrule \hbox{\vrule height#2in
+ \kern#1in \vrule} \hrule}} %e.g. \mbox{.1}{.1}
+% matters of taste
+%\def\tilde{\widetilde} \def\bar{\overline} \def\hat{\widehat}
+%
+% some sample definitions
+\def\CAG{{\cal A/\cal G}} \def\CO{{\cal O}} % curly letters
+\def\CA{{\cal A}} \def\CC{{\cal C}} \def\CF{{\cal F}} \def\CG{{\cal G}}
+\def\CL{{\cal L}} \def\CH{{\cal H}} \def\CI{{\cal I}} \def\CU{{\cal U}}
+\def\CB{{\cal B}} \def\CR{{\cal R}} \def\CD{{\cal D}} \def\CT{{\cal T}}
+\def\e#1{{\rm e}^{^{\textstyle#1}}}
+\def\grad#1{\,\nabla\!_{{#1}}\,}
+\def\gradgrad#1#2{\,\nabla\!_{{#1}}\nabla\!_{{#2}}\,}
+\def\ph{\varphi}
+\def\psibar{\overline\psi}
+\def\om#1#2{\omega^{#1}{}_{#2}}
+\def\vev#1{\langle #1 \rangle}
+\def\lform{\hbox{$\sqcup$}\llap{\hbox{$\sqcap$}}}
+\def\darr#1{\raise1.5ex\hbox{$\leftrightarrow$}\mkern-16.5mu #1}
+\def\lie{\hbox{\it\$}} %pound sterling
+\def\ha{{1\over2}}
+\def\half{{\textstyle{1\over2}}} %puts a small half in a displayed eqn
+\def\roughly#1{\raise.3ex\hbox{$#1$\kern-.75em\lower1ex\hbox{$\sim$}}}
diff --git a/Master/texmf-dist/tex/plain/iwona/iwona-math.tex b/Master/texmf-dist/tex/plain/iwona/iwona-math.tex
new file mode 100644
index 00000000000..e689c684aa5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/iwona/iwona-math.tex
@@ -0,0 +1,251 @@
+\catcode`@=11
+% roman text
+\font\seventeenrm= rm-iwonar at17.28pt
+\font\fourteenrm= rm-iwonar at14.4pt
+\font\twelverm= rm-iwonar at12pt
+\font\elevenrm= rm-iwonar at11pt
+\font\tenrm= rm-iwonar
+\font\ninerm= rm-iwonar at9pt
+\font\eightrm= rm-iwonar at8pt
+\font\sevenrm= rm-iwonar at7pt
+\font\sixrm= rm-iwonar at6pt
+\font\fiverm= rm-iwonar at5pt
+% math italic
+\font\seventeeni= mi-iwonari at17.28pt
+\font\fourteeni= mi-iwonari at14.4pt
+\font\twelvei= mi-iwonari at12pt
+\font\eleveni= mi-iwonari at11pt
+\font\teni= mi-iwonari
+\font\ninei= mi-iwonari at9pt
+\font\eighti= mi-iwonari at8pt
+\font\seveni= mi-iwonari at7pt
+\font\sixi= mi-iwonari at6pt
+\font\fivei= mi-iwonari at5pt
+% math symbols
+\font\seventeensy= sy-iwonarz at17.28pt
+\font\fourteensy= sy-iwonarz at14.4pt
+\font\twelvesy= sy-iwonarz at12pt
+\font\elevensy= sy-iwonarz at11pt
+\font\tensy= sy-iwonarz
+\font\ninesy= sy-iwonarz at9pt
+\font\eightsy= sy-iwonarz at8pt
+\font\sevensy= sy-iwonarz at7pt
+\font\sixsy= sy-iwonarz at6pt
+\font\fivesy= sy-iwonarz at5pt
+% math extension
+\font\seventeenex= ex-iwonar at17.28pt
+\font\fourteenex= ex-iwonar at14.4pt
+\font\twelveex= ex-iwonar at12pt
+\font\elevenex= ex-iwonar at11pt
+\font\tenex= ex-iwonar
+\font\nineex= ex-iwonar at9pt
+\font\eightex= ex-iwonar at8pt
+\font\sevenex= ex-iwonar at7pt
+\font\sixex= ex-iwonar at6pt
+\font\fiveex= ex-iwonar at5pt
+% boldface
+\font\seventeenbf= qx-iwonab at17.28pt
+\font\fourteenbf= qx-iwonab at14.4pt
+\font\twelvebf= qx-iwonab at12pt
+\font\elevenbf= qx-iwonab at11pt
+\font\tenbf= qx-iwonab
+\font\ninebf= qx-iwonab at9pt
+\font\eightbf= qx-iwonab at8pt
+\font\sevenbf= qx-iwonab at7pt
+\font\sixbf= qx-iwonab at6pt
+\font\fivebf= qx-iwonab at5pt
+% typewriter
+\font\seventeentt= qx-lmtt12 at17.28pt
+\font\fourteentt= qx-lmtt12 at14.4pt
+\font\twelvett= qx-lmtt12
+\font\eleventt= qx-lmtt10 at11pt
+\font\tentt= qx-lmtt10
+\font\ninett= qx-lmtt9
+\font\eighttt= qx-lmtt8
+\font\seventt= qx-lmtt8 at7pt
+\font\sixtt= qx-lmtt8 at6pt
+\font\fivett= qx-lmtt8 at5pt
+% text italic
+\font\seventeenit= qx-iwonari at17.28pt
+\font\fourteenit= qx-iwonari at14.4pt
+\font\twelveit= qx-iwonari at12pt
+\font\elevenit= qx-iwonari at11pt
+\font\tenit= qx-iwonari
+\font\nineit= qx-iwonari at9pt
+\font\eightit= qx-iwonari at8pt
+\font\sevenit= qx-iwonari at7pt
+\font\sixit= qx-iwonari at6pt
+\font\fiveit= qx-iwonari at5pt
+%
+\skewchar\seventeeni='177 \skewchar\fourteeni='177 \skewchar\twelvei='177
+\skewchar\eleveni='177 \skewchar\teni='177 \skewchar\ninei='177
+\skewchar\eighti='177 \skewchar\seveni='177 \skewchar\sixi='177
+\skewchar\fivei='177
+\skewchar\seventeensy='60 \skewchar\fourteensy='60 \skewchar\twelvesy='60
+\skewchar\elevensy='60 \skewchar\tensy='60 \skewchar\ninesy='60
+\skewchar\eightsy='60 \skewchar\sevensy='60 \skewchar\sixsy='60
+\skewchar\fivesy='60
+%
+\let\usereightpointmacro=\relax
+\def\eightpoint{\let\pointsize=\eightpoint
+ \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\eightrm}%
+ \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eighti}%
+ \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\eightit
+ \def\it{\fam\itfam\eightit}%
+ \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\ttfam=\eighttt \def\tt{\fam\ttfam\eighttt}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usereightpointmacro}
+%
+\let\userninepointmacro=\relax
+\def\ninepoint{\let\pointsize=\ninepoint
+ \textfont0=\ninerm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\ninerm}%
+ \textfont1=\ninei \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\ninei}%
+ \textfont2=\ninesy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\nineit
+ \def\it{\fam\itfam\nineit}%
+ \textfont\bffam=\ninebf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\ttfam=\ninett \def\tt{\fam\ttfam\ninett}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userninepointmacro}
+%
+\let\usertenpointmacro=\relax
+\def\tenpoint{\let\pointsize=\tenpoint
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\tenrm}%
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\teni}%
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\tenit
+ \def\it{\fam\itfam\tenit}%
+ \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\tenbf}%
+ \textfont\ttfam=\tentt \def\tt{\fam\ttfam\tentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usertenpointmacro}
+%
+\let\userelevenpointmacro=\relax
+\def\elevenpoint{\let\pointsize=\elevenpoint
+ \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\elevenrm}%
+ \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eleveni}%
+ \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex%
+ \textfont\itfam=\elevenit
+ \def\it{\fam\itfam\elevenit}%
+ \textfont\bffam=\elevenbf \scriptfont\bffam=\eightbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\elevenbf}%
+ \textfont\ttfam=\eleventt \def\tt{\fam\ttfam\eleventt}%
+ \def\big##1{{\hbox{$\left##1\vbox to9.3\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to12.6\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to16\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to19.2\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userelevenpointmacro}
+%
+\let\usertwelvepointmacro=\relax
+\def\twelvepoint{\let\pointsize=\twelvepoint
+ \textfont0=\twelverm \scriptfont0=\ninerm \scriptscriptfont0=\sixrm
+ \def\rm{\fam\z@\twelverm}%
+ \textfont1=\twelvei \scriptfont1=\ninei \scriptscriptfont1=\sixi
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\twelvei}%
+ \textfont2=\twelvesy \scriptfont2=\ninesy \scriptscriptfont2=\sixsy
+ \def\cal{\fam\tw@}%
+ \textfont3=\twelveex \scriptfont3=\twelveex \scriptscriptfont3=\twelveex%
+ \textfont\itfam=\twelveit
+ \def\it{\fam\itfam\twelveit}%
+ \textfont\bffam=\twelvebf \scriptfont\bffam=\ninebf
+ \scriptscriptfont\bffam=\sixbf
+ \def\bf{\fam\bffam\twelvebf}%
+ \textfont\ttfam=\twelvett \def\tt{\fam\ttfam\twelvett}%
+ \def\big##1{{\hbox{$\left##1\vbox to10.2\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to13.8\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to17.4\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to21\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usertwelvepointmacro}
+%
+\let\userfourteenpointmacro=\relax
+\def\fourteenpoint{\let\pointsize=\fourteenpoint
+ \textfont0=\fourteenrm \scriptfont0=\tenrm \scriptscriptfont0=\sevenrm
+ \def\rm{\fam\z@\fourteenrm}%
+ \textfont1=\fourteeni \scriptfont1=\teni \scriptscriptfont1=\seveni
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\fourteeni}%
+ \textfont2=\fourteensy \scriptfont2=\tensy \scriptscriptfont2=\sevensy
+ \def\cal{\fam\tw@}%
+ \textfont3=\fourteenex \scriptfont3=\fourteenex \scriptscriptfont3=\fourteenex%
+ \textfont\itfam=\fourteenit
+ \def\it{\fam\itfam\fourteenit}%
+ \textfont\bffam=\fourteenbf \scriptfont\bffam=\tenbf
+ \scriptscriptfont\bffam=\sixbf
+ \def\bf{\fam\bffam\fourteenbf}%
+ \textfont\ttfam=\fourteentt \def\tt{\fam\ttfam\fourteentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to11.9\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to16.1\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to20.3\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to24.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userfourteenpointmacro}
+%
+\newcount\antttext \antttext=10
+\let\userseventeenpointmacro=\relax
+\def\seventeenpoint{\let\pointsize=\seventeenpoint
+ \textfont0=\seventeenrm \scriptfont0=\twelverm \scriptscriptfont0=\ninerm
+ \textfont1=\seventeeni \scriptfont1=\twelvei \scriptscriptfont1=\ninei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\seventeeni}%
+ \textfont2=\seventeensy \scriptfont2=\twelvesy \scriptscriptfont2=\ninesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\seventeenex \scriptfont3=\seventeenex \scriptscriptfont3=\seventeenex%
+ \textfont\itfam=\seventeenit
+ \textfont\bffam=\seventeenbf \scriptfont\bffam=\twelvebf
+ \scriptscriptfont\bffam=\ninebf
+ \textfont\ttfam=\seventeentt
+ \def\rm{\fam\z@\seventeenrm}%
+ \def\bf{\fam\bffam\seventeenbf}%
+ \def\it{\fam\itfam\seventeenit}%
+ \def\tt{\fam\ttfam\seventeentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to15.3\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to20.7\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to26.1\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to31.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userseventeenpointmacro}
+%
+\newtoks\baselinefactor \baselinefactor={1.2}
+\def\setnormalsp@cing{%
+ \rm % set the em properly
+ \normalbaselineskip=\the\baselinefactor em\relax
+ \normalbaselines
+ \abovedisplayskip=1.2em plus .3em minus .9em%
+ \abovedisplayshortskip=0em plus .3em%
+ \belowdisplayskip=1.2em plus .3em minus .9em%
+ \belowdisplayshortskip=.7em plus .3em minus .4em%
+ \setbox\strutbox=\hbox{\vrule height .7\baselineskip
+ depth .3\baselineskip width\z@}}
+%
+\catcode`@=12 % at signs are no longer letters
+\endinput
diff --git a/Master/texmf-dist/tex/plain/jsmisc/cassette.tex b/Master/texmf-dist/tex/plain/jsmisc/cassette.tex
new file mode 100644
index 00000000000..828260153bf
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/jsmisc/cassette.tex
@@ -0,0 +1,166 @@
+% $Id: cassette.tex,v 1.2 1995/03/16 01:17:54 schrod Exp $
+%--------------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+% Put into public domain.
+
+
+\catcode`\@=11
+
+\font\norm=cmss8
+\font\intfont=cmssi8
+\font\titfont@page=cmcsc10 scaled 800
+\font\titfont=cmss10
+\font\titintfont=cmssi10
+\font\cassfont=cmcsc10
+
+\newdimen\colwidth \colwidth=50 true mm
+\newdimen\backheight \backheight=10 true mm
+\newdimen\titheight \titheight=14 true mm
+\newdimen\pagheight \pagheight=66 true mm
+
+\def\@seite#1{%
+ \global\setbox\@page=\vbox{\hsize=\colwidth
+ \everypar={\global\hangindent=1em }%
+ \vskip \tw@\p@
+ #1\endgraf
+ \vfil
+ }%
+ }
+
+\def\cnt#1:{[#1]}
+\def\von#1:{{\intfont #1\/}:\penalty -100 } % <== Space!
+\def\nl{\hfill\break}
+
+\def\@titel#1{%
+ \global\setbox\@title=\vbox{\hsize=\colwidth
+ \let\intfont=\titintfont % Font fuer Interpret
+ \vfill
+ \unvbox\@title
+ \titfont #1\endgraf
+ \vfill
+ }%
+ {\titfont@page
+ \def\von##1:{\uppercase{##1}:\penalty -100 }% % <== Space!
+ #1%
+ }}
+
+
+\newbox\@seitea
+\newbox\@seiteb
+\newbox\@titela
+\newbox\@titelb
+\def\seitea{\let\@page=\@seitea \let\titel=\titela \obeylines \@seite}
+\def\seiteb{\let\@page=\@seiteb \let\titel=\titelb \obeylines \@seite}
+\def\titela{\let\@title=\@titela \@titel}
+\def\titelb{\let\@title=\@titelb \@titel}
+
+\def\titelcass#1{%
+ \global\setbox\@titela=\vbox{\hsize=\colwidth
+ \vfill
+ \unvbox\@titela
+ \titfont #1\endgraf
+ \vfill
+ }%
+ }
+
+
+
+
+\def\begincassette#1{%
+ \def\cassname{#1}%
+ \setbox\@seitea\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}%
+ \setbox\@seiteb\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}%
+ \setbox\@titela\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}%
+ \setbox\@titelb\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}%
+ \splittopskip\baselineskip
+ }
+
+\newif\if@text@left@
+\def\endcassette{%
+ \hbox{%
+ \vrule
+ \vbox{%
+ \hrule
+ \vbox to \backheight{\hsize2\colwidth \advance\hsize by 4.4\p@
+ \vfill
+ \centerline{\cassfont \cassname}%
+ \vfill
+ }%
+ \hrule
+ \col{\titheight}{@titel}%
+ \hrule
+ \loop
+ \global\@text@left@false
+ \one@page
+ \if@text@left@ \repeat
+ }%
+ \vrule
+ }%
+ }
+\def\one@page{%
+ \col{\pagheight}{@seite}%
+ \hrule
+ }%
+\def\col#1#2{%
+ \hbox{%
+ \hskip \p@
+ \split@col{#2a}{#1}%
+ \hskip \p@
+ \vrule
+ \hskip \p@
+ \split@col{#2b}{#1}%
+ \hskip \p@
+ }%
+ }
+\def\split@col#1#2{%
+ \expandafter \ifvoid \csname #1\endcsname
+ \vbox to #2{\hrule width\colwidth height\z@ depth\z@ \vfil}%
+ \else
+ \vbox to #2{\hsize\colwidth
+ \setbox\z@ \vsplit \csname #1\endcsname to #2\relax
+ \unvbox\z@
+ \vskip 2pt plus 1fil minus 2pt
+ }%
+ \expandafter \ifvoid \csname #1\endcsname
+ \else \global\@text@left@true
+ \fi
+ \fi
+ }
+
+
+\norm \baselineskip=9pt \lineskip=0pt \lineskiplimit=0pt
+\parindent=\z@ \parskip=\tw@\p@ minus \tw@\p@
+\rightskip=\z@ plus 0.7\colwidth \linepenalty=100
+\r@ggedbottomtrue
+\frenchspacing
+\nopagenumbers
+
+
+\endinput
+
+
+
+% ============================================================
+%
+% $Log: cassette.tex,v $
+% Revision 1.2 1995/03/16 01:17:54 schrod
+% Support for magnified typesetting.
+% Might be more changes as well, they looked sensible.
+%
+% Revision 1.1 1995/03/13 23:18:10 schrod
+% Started to manage this package with CVS. Made minor code cleanup.
+%
+
+%
+% Pre-CVS Log:
+%
+% 87-09-20 js Initial revision
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Local Variables:
+mode: plain-TeX
+TeX-master: t
+TeX-brace-indent-level: 4
+End:
diff --git a/Master/texmf-dist/tex/plain/jsmisc/idverb.tex b/Master/texmf-dist/tex/plain/jsmisc/idverb.tex
new file mode 100644
index 00000000000..f40dbf860cb
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/jsmisc/idverb.tex
@@ -0,0 +1,215 @@
+% $Id: idverb.doc,v 1.1 1995/03/13 23:18:11 schrod Exp $
+%----------------------------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+% Copyright conditions see below.
+
+%
+% idverb.doc --- typeset identifiers verbatim
+%
+% [plain TeX in MAKEPROG]
+% (history at end)
+
+
+%%%%
+%%%%
+%%%% These TeX macros were documented with the documentation system
+%%%% MAKEPROG and automatically converted to the current form.
+%%%% If you have MAKEPROG available you may transform it back to
+%%%% the original input: Remove every occurence of three percents
+%%%% and one optional blank from the beginning of a line and remove
+%%%% every line which starts with four percents. The following lex
+%%%% program will do this:
+%%%%
+%%%% %%
+%%%%
+%%%% ^%%%\ ? ;
+%%%% ^%%%%.*\n ;
+%%%%
+%%%% If you just want to print the documentation you may fetch
+%%%% the archive print-makeprog.tar.Z from ftp.th-darmstadt.de (directory
+%%%% pub/tex/latex). It contains *all* used styles -- but beware, they
+%%%% may not be in a documented form...
+%%%%
+%%%%
+%%% \input progdoc
+
+%%% \input names.sty
+%%% \def\v{{\tt \vbar\/}}
+
+
+
+%%% \title{Identifiers Verbatim \`a la {\ttitlefont WEB}}
+
+
+
+%%% \chap Introduction.
+
+%%% This macro files allows to write identifiers in a \WEB{} like style,
+%%% i.e.\ as {\tt \origvert identifier\origvert\/}. The identifiers are
+%%% typeset verbatim in the monospace type face. The macros
+%%% |\makevertother| and |\makevertactive| are available to activate and
+%%% deactivate the special behaviour of the vertical bar.
+
+
+%%% \sect This macro file uses the namespace |idv|.
+
+%%% \beginprog
+\ifx \IdvLoaded\undefined
+ \def\IdvLoaded{$Revision: 1.1 $}
+\else \endinput \fi % <-- one line!
+%%% \endprog
+
+
+%%% \sect These macros are supported. Send bug reports, comments and
+%%% repairs.
+
+%%% The reference version may be retrieved via anonymous ftp from
+%%% |ftp.th-darmstadt.de| [130.83.47.112], directory |pub/tex/plain|. It's
+%%% placed there as a gzipped tar file. (The information on the
+%%% IP~number is dated March 13, 1995. It might have changed, also this is very
+%%% unlikely. Use your friendly nameserver.)
+
+
+%%% \sect This is freely distributable software; you can redistribute it
+%%% and/or modify it under the terms of the GNU General Public License as
+%%% published by the Free Software Foundation; either version~2 of the
+%%% License, or (at your option) any later version.
+
+%%% This software is distributed in the hope that it will be useful, but
+%%% {\bf without any warranty\/}; without even the implied warranty of
+%%% {\bf merchantability\/} or {\bf fitness for a particular purpose}. See
+%%% the GNU General Public License for more details.
+
+%%% You should have received a copy of the GNU General Public License in
+%%% the file |License| along with this package; if not, write to the Free
+%%% Software Foundation, Inc., 675~Mass Ave, Cambridge, MA~02139,~USA.
+
+
+%%% \sect But before we start we declare some shorthands for category
+%%% codes. By declaring the at sign~(`|@|') as well as the
+%%% underscore~`(|_|)' as letters we can use them in our macros. (I agree
+%%% with D.~Knuth that |\identifier_several_words_long| is more readable
+%%% than |\IdentifierSeveralWordsLong| and in every case better than
+%%% |\p@@@s|.) With the at sign we can use the ``private'' Plain macros
+%%% and with the underscore we can make our own macros more readable. But
+%%% as we have to restore these category codes at the end of this macro
+%%% file we store their former values in control sequences. This method is
+%%% better than to use a group because not all macros have to be defined
+%%% global this way.
+
+%%% Only the first macro file read in defines the |Cat| cseqs.
+
+%%% \beginprog
+\ifx \CatEscape\undefined
+ \chardef\CatEscape=0
+ \chardef\CatOpen=1
+ \chardef\CatClose=2
+ \chardef\CatIgnore=9
+ \chardef\CatLetter=11
+ \chardef\CatOther=12
+ \chardef\CatActive=13 % \active of plain.tex
+ \chardef\CatInvalid=15
+
+ \chardef\CatAtCode=\catcode`\@
+ \chardef\CatUsCode=\catcode`\_
+\fi
+
+\catcode`\@=\CatLetter % top level macro file
+\catcode`\_=\CatLetter
+%%% \endprog
+
+
+%%% \sect Let's identify this macro file against the user and in the Log file.
+
+%%% \beginprog
+\begingroup
+ \catcode`\$=\CatIgnore
+ \catcode`\:=\CatIgnore
+ \message{Verbatim identifiers, $Revision: 1.1 $}
+\endgroup
+%%% \endprog
+
+
+%%% \sect The usual verbatim macros use |\dospecials| to change the
+%%% catcode of all special characters. We have to add `\v' to this list.
+%%% The old meaning is stored in |\idv_OrigDospecials|.
+
+%%% \beginprog
+\let\idv_OrigDospecials=\dospecials
+\begingroup
+ \def\do#1{\noexpand\do\noexpand#1}
+ \xdef\dospecials{\idv_OrigDospecials\do\|}
+\endgroup
+\let\idv_dospecials=\dospecials
+
+\def\makevertactive{\catcode`\|\CatActive \let\dospecials\idv_dospecials}
+\def\makevertother{\catcode`\|\CatOther \let\dospecials\idv_OrigDospecials}
+
+\makevertactive
+%%% \endprog
+
+
+%%% \sect Now we can define `\v'. This definition is a little bit tricky,
+%%% as it redefines itself to |\egroup| to close the hbox. But if the hbox
+%%% is ended, `\v' is restored to its original meaning. |\origvert| is
+%%% given the original meaning of `\v'. |\vbar| is the character from the
+%%% current font that has the ASCII code of a vertical bar, sometimes this
+%%% {\it is\/} a vertical bar.
+
+%%% \beginprog
+\let\origvert=|
+\chardef\vbar=`\|
+
+\def\idv_setup_verbatim{%
+ \def\do##1{\catcode`##1\CatOther}\idv_OrigDospecials
+ \parskip\z@skip \parindent\z@
+ \obeylines \obeyspaces \frenchspacing
+ \tt
+ }
+
+\def|{%
+ \leavevmode
+ \hbox\bgroup
+ \let\par\space \idv_setup_verbatim
+ \let|\egroup
+ }
+%%% \endprog
+
+
+%%% \sect We are finished;
+%%% restore the catcodes and prevent from following garbage.
+
+%%% \beginprog
+\catcode`\@=\CatAtCode
+\catcode`\_=\CatUsCode
+
+\endinput
+%%% \endprog
+
+
+%%% %% \sect {\it Acknowledgements:}\quad I would like to thank XXX
+
+
+%%% \bye
+
+%%%
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% %
+%%% % $Log: idverb.doc,v $
+%%% % Revision 1.1 1995/03/13 23:18:11 schrod
+%%% % Started to manage this package with CVS. Made minor code cleanup.
+%%% %
+
+%%% %
+%%% % Pre-CVS Log:
+%%% %
+%%% % 27 Jul 89 js Initial revision.
+
+
+%%%
+%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Local Variables:
+%%% mode: plain-TeX
+%%% TeX-master: t
+%%% TeX-brace-indent-level: 4
+%%% End:
diff --git a/Master/texmf-dist/tex/plain/jsmisc/js-misc.tex b/Master/texmf-dist/tex/plain/jsmisc/js-misc.tex
new file mode 100644
index 00000000000..c39e7c257f5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/jsmisc/js-misc.tex
@@ -0,0 +1,244 @@
+% $Id: js-misc.tex,v 1.1 1995/03/13 23:18:12 schrod Exp $
+%--------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+
+% This is a german description for cassette.tex & schild.tex.
+
+
+% Manual fuer ``Kleine TeX-Makros, aufbauend auf PLAIN'':
+% Tonbandkassetten-Schilder
+% Buecherruecken-Schilder
+%
+% [Formate]
+
+
+\berichtformat
+
+\input idverb
+\def\.{$\bullet$}
+
+
+
+
+\titel{}{Kleine \TeX{}-Makros}{, aufbauend auf {\tt PLAIN}}
+\autor{Joachim Schrod}
+\datum{Rödermark, den 08.02.88}
+
+
+
+
+
+\kapitel{Beschriftung von Tonband-Kassetten}{}
+
+Die Beschriftung von Tonband-Kassetten wird durch
+|\input cassette| geladen.
+Durch diese Makros werden Schilder erzeugt, die
+in eine Kassettenhülle gelegt werden können.
+%Jedes Schild wird auf eine einzelne Seite gedruckt.
+Das Layout eines Schildes ist in Abb.~1.1 zu sehen.
+Das Schild wird an den äußeren Rändern ausgeschnitten
+und entlang der horizontalen Linien gefaltet.
+
+\abbvoll{
+{\input cassette
+\let\eject=\relax
+\begincassette{Kassettenname}
+\titelcass{Frontseite mit Titeln}
+\seitea{Musikstücke der Seite A}
+\seiteb{Musikstücke der Seite B}
+\endcassette
+}}{Layout eines Kassettenschildes}
+
+\noindent Folgende Befehle erzeugen das gewünschte Layout:
+
+\beginitemize
+
+\item{\.} |\begincassette|\quad (1 Parameter)\nl
+Mit diesem Befehl beginnt die Beschreibung eines Kassettenschilds.
+Der Parameter ist der Name der Kassette, der in |\cassfont|
+(Kapitälchen, 10pt) gesetzt wird.
+
+\item{\.} |\titelcass|\quad (1 Parameter)\nl
+Dieser Befehl gibt den Titel der Kassette an, der auf die
+Frontseite gesetzt wird.
+Der Titel wird in |\titfont| (Serifenlose, 10pt) gesetzt.
+Dieser Befehl ist optional, da Titel auch durch |\titel| (s.u.)\
+angegeben werden können.
+
+\item{\.} |\seitea|\quad (1 Parameter)\nl
+Durch den Parameter von |\seitea| wird die Seite~A der
+Kassette beschrieben.
+Diese Beschreibung umfaßt einen optionalen Titel und eine
+Folge von Musikstücken.
+Sie ist zeilenorientiert, d.h.\ jeweils ein Musikstück
+(mit eventuellem Interpret) steht auf einer Eingabezeile.
+Wenn der Text zu lang wird, kann durch die Angabe von |%|
+am Zeilenende die Folgezeile mitbenutzt werden.
+Innerhalb eines Musikstücks kann durch |\nl| gezielt
+umgebrochen werden, wenn man mit dem von \TeX{} gewähltem
+Umbruch nicht zufrieden ist.
+Die Musikstücke werden in |\norm| (Serifenlose, 8pt) gesetzt.
+Dieser Befehl ist optional.
+\itempar
+Folgende Hilfsbefehle stehen zur Beschreibung zur Verfügung:
+
+{\nextitemlevel\itemskip=0pt
+\item{--} |\cnt|\quad (1 Parameter, beendet durch |:|)\nl
+Mit |\cnt| kann die Zählerstellung des Beginns eines
+Musikstücks angegeben werden.
+Die angegebene Zahl wird in eckige Klammern gesetzt.
+
+\item{--} |\von|\quad (1 Parameter, beendet durch |:|)\nl
+Durch |\von| kann ein Interpret dem Musikstück vorgestellt werden.
+Ein Beispiel für eine vollständige Angabe eines Musikstücks
+kann also
+$$
+ \hbox{|\von Led Zeppelin: Stairway to heaven|}
+$$
+sein.
+Der Interpret wird in |\intfont| (Serifenlose Kursiv, 8pt) gesetzt.
+
+\item{--} |\titel|\quad (1 Parameter)\nl
+Mit diesem Befehl kann in die Seite eine Angabe eines Titels
+(z.B.~einer Schallplatte) übernommen werden.
+Dieser Titel wird gleichzeitig auf die Frontseite gesetzt.
+Innerhalb des Titels kann |\von| zur Angabe eines Interpreten
+benutzt werden.
+Dieser Befehl kann mehrmals vorkommen.
+Der Titel wird auf der Seite in |\titfont@page| (Kapitälchen, 8pt)
+gesetzt, wobei der Interpret in Versalien gesetzt wird.
+Auf der Frontseite wird der Titel in |\titfont| (Serifenlose, 10pt)
+gesetzt, wobei der Interpret in |\titintfont| (Serifenlose Kursiv, 10pt)
+gesetzt wird.
+\par}
+
+\item{\.} |\seiteb|\quad (1 Parameter)\nl
+Dieser Befehl beschreibt die Seite~B der Kassette.
+Die Beschreibungsmöglichkeiten sind mit denen von |\seitea|
+identisch.
+
+\item{\.} |\endcassette|\nl
+Durch diesen Befehl wird die Beschreibung des Kassettenschildes
+beendet und das Kassettenschild gesetzt.
+Gleichzeitig wird eine neue Seite begonnen.
+
+\enditemize
+
+
+
+
+
+\kapitel{Beschriftung von Bücherrücken}{}
+
+Die Beschriftung von Bücherrücken wird durch
+|\input schild| geladen.
+Durch diese Makrodatei ist es möglich Schilder für
+Bücherrücken zu erzeugen, die anschließend auf die Bücher
+geklebt werden können.
+Das Layout eines Schildes ist in der Abb.~2.1 gezeigt,
+es wird an den äußeren Rändern ausgeschnitten.
+
+\def\schild{%
+ \vbox{%
+ \hrule
+ \hbox{%
+ \vrule
+ \vbox to 10mm{%
+ \vfill
+ \hbox{\kern 25mm \svtnrm Name des Buches\kern 25mm}%
+ \vfill
+ }%
+ \vrule
+ }%
+ \hrule
+ }%
+ }
+
+\def\vertlen{%
+ \llap{%
+ \vbox to 10mm{%
+ \vfill
+ \hbox{{\tt \#1\/} mm }%
+ \vfill
+ }
+ }%
+ }
+\def\vertmass{%
+ \vbox{%
+ \hrule width 4mm
+ \hbox{%
+ \vertlen
+ \kern 2mm
+ \vrule height 10mm
+ }%
+ \hrule width 4mm
+ }%
+ }
+
+\def\horizmass{%
+ \hbox{%
+ \vrule height 2mm depth 2mm
+ \vtop{%
+ \hrule width 25mm
+ \kern 2mm
+ \hbox to 25mm{\ctr{\tt \char`\\rand}}%
+ }%
+ \vrule height 2mm depth 2mm
+ }%
+ }
+
+\abbvoll{
+ \offinterlineskip
+ \hbox{%
+ \llap{%
+ \vertmass
+ \hskip 2mm
+ }%
+ \schild
+ }%
+ \vskip 2mm
+ \hbox{%
+ \horizmass
+ \phantom{\svtnrm Name des Buches}%
+ \horizmass
+ }%
+}{Layout eines Buchrückenschildes}
+
+\noindent Um das Buchrückenschild zu erzeugen, existieren
+folgende Makros und Parameter:
+
+\beginitemize
+
+\item{\.} |\schild|\quad (2 Parameter)\nl
+Durch dieses Makro wird ein Schild erzeugt.
+Der erste Parameter ist die Höhe des Schildes, der zweite
+der Text, der auf das Buchrückenschild soll.
+
+\item{\.} |\rand|\nl
+|\rand| ist eine Dimensionsangabe, die beschreibt, wieviel
+Platz zwischen dem Buchnamen und dem Rand des Schildes
+horizontal verbleibt.
+
+\item{\.} |\namfont|\nl
+In |\namfont| wird der Buchname gesetzt.
+
+\enditemize
+
+
+
+
+
+\bye
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% $Log: js-misc.tex,v $
+% Revision 1.1 1995/03/13 23:18:12 schrod
+% Started to manage this package with CVS. Made minor code cleanup.
+%
+
+%
+% Pre-CVS Log:
+%
+% 88-02-08 js Initial revision
diff --git a/Master/texmf-dist/tex/plain/jsmisc/schild.tex b/Master/texmf-dist/tex/plain/jsmisc/schild.tex
new file mode 100644
index 00000000000..9bc3ef237b3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/jsmisc/schild.tex
@@ -0,0 +1,84 @@
+% $Id: schild.tex,v 1.1 1995/03/13 23:18:13 schrod Exp $
+%--------------------------------------------------------
+
+
+% Rueckenschild fuer ein gelumbacktes Buch:
+%
+% \buchschild#1#2 #1 == Breite in mm #2 == Name des Buches
+%
+%
+% Tuerschilder ITI:
+%
+% \tuerschild#1 #1 == Text (ueblicherweise in Grossbuchstaben)
+% falls zu lang, Font auf magstep3 reduzieren
+
+
+\newdimen\rand
+\rand=25mm
+
+\let\buchfont=\svtnrm
+\font\tuerfont=cmssdc10 scaled \magstep4 % magstep3, falls zu lang
+\let\tuerschildfont=\tuerfont
+
+
+
+\def\buchschild#1#2{%
+ \vbox{%
+ \offinterlineskip
+ \hrule
+ \hbox{%
+ \vrule
+ \vbox to #1mm{%
+ \vfill
+ \hbox{\kern\rand \buchfont #2\kern\rand}%
+ \vfill
+ }%
+ \vrule
+ }%
+ \hrule
+ }%
+ \vskip 2cm
+ }
+
+\def\tuerschild#1{%
+ \vbox{%
+ \offinterlineskip
+ \hrule
+ \hbox{%
+ \vrule
+ \vbox to 10mm{%
+ \rand=15mm
+ \vfill
+ \hbox to 155mm{\kern\rand \tuerschildfont #1\hfill}%
+ \vfill
+ }%
+ \vrule
+ }%
+ \hrule
+ }%
+ \vskip 2cm
+ }
+
+
+
+\raggedbottom
+\nopagenumbers
+
+
+\endinput
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% $Log: schild.tex,v $
+% Revision 1.1 1995/03/13 23:18:13 schrod
+% Started to manage this package with CVS. Made minor code cleanup.
+%
+
+%
+% Pre-CVS Log:
+%
+% 92-04-15 cd renamed \schild to \buchschild
+% introduced \tuerschild
+% 88-02-08 js first release
diff --git a/Master/texmf-dist/tex/plain/jsmisc/sperr.tex b/Master/texmf-dist/tex/plain/jsmisc/sperr.tex
new file mode 100644
index 00000000000..4e6b0902301
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/jsmisc/sperr.tex
@@ -0,0 +1,116 @@
+% $Id: sperr.tex,v 1.2 1995/04/16 23:27:04 schrod Exp $
+%---------------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+% This file is distributed without any copyright restriction.
+
+
+%
+% Makro-Datei zum Sperren von Zeichenfolgen.
+%
+% Bitte sperrt damit keine Gemeinen.
+%
+% Joachim Schrod
+%
+
+%
+% Benutzung: \sperr{TEXT}{KERNING}
+% Wenn in TEXT mehrere Token als eines behandelt werden sollen
+% (z.B. Umlaute), m\"ussen diese Tokens geklammert werden.
+%
+
+
+\ifx \CatEscape\undefined
+ \chardef\CatEscape=0
+ \chardef\CatOpen=1
+ \chardef\CatClose=2
+ \chardef\CatIgnore=9
+ \chardef\CatLetter=11
+ \chardef\CatOther=12
+ \chardef\CatActive=13 % \active of plain.tex
+ \chardef\CatInvalid=15
+
+ \chardef\CatAtCode=\catcode`\@
+ \chardef\CatUsCode=\catcode`\_
+\fi
+
+\catcode`\@=\CatLetter % top level macro file
+\catcode`\_=\CatLetter
+
+\begingroup
+ \catcode`\$=\CatIgnore
+ \catcode`\:=\CatIgnore
+ \message{Text sperren, $Revision: 1.2 $}
+\endgroup
+
+
+\let\end_list=\relax
+\edef\empty_list{\end_list}
+
+\def\split#1#2\end_list{%
+ \edef\sec_char{#1}%
+ \toks@={#2\end_list}%
+ }
+
+\def\do_split{%
+ \expandafter \split \the\toks@ \end_list
+ }
+
+\def\next_char{%
+ \edef\first_char{\sec_char}%
+ \do_split
+ }
+
+
+
+\newdimen\sperr_width
+
+\def\sperr#1#2{% % Text, Sperrbreite
+ \toks@={#1\end_list}%
+ \sperr_width=#2\relax
+ \do_split
+ \next_char % initialize pipeline
+ \ifx \sec_char\empty_list #1% % nur 1 Zeichen
+ \else \do_sperr
+ \fi
+ }
+
+
+\newif \if@loop
+
+\def\do_sperr{%
+ \loop
+ \set_char % Zeichen und nachfolgendes Kerning setzen
+ \next_char
+ \ifx \sec_char\empty_list
+ \first_char
+ \@loopfalse
+ \else \@looptrue
+ \fi
+ \if@loop
+ \repeat
+ }
+
+
+
+
+\newbox\kern_box
+\newdimen\kern_width
+
+\def\set_char{%
+ \setbox\kern_box=\hbox{\first_char\sec_char}%
+ \kern_width=\wd\kern_box
+ \setbox\kern_box=\hbox{\hbox{\first_char}\hbox{\sec_char}}%
+ \advance \kern_width by -\wd\kern_box
+ \advance \kern_width by \sperr_width
+ \first_char \kern\kern_width
+ }
+
+
+
+
+\catcode`\@=\CatAtCode
+\catcode`\_=\CatUsCode
+
+
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/jsmisc/xfig.tex b/Master/texmf-dist/tex/plain/jsmisc/xfig.tex
new file mode 100644
index 00000000000..95a86cff5e9
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/jsmisc/xfig.tex
@@ -0,0 +1,626 @@
+% $Id: xfig.tex,v 1.4 1995/05/07 16:52:05 schrod Exp $
+%------------------------------------------------------------
+% Hacked together by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>
+% Put into public domain.
+
+%
+% Support for xfig pictures in plain TeX
+% orginally written for transfig 2.1.7
+% support last checked for transfig 3.1.3
+%
+
+
+% USAGE:
+%
+% To include xfig figures in plain TeX documents, just input these
+% macros and then input the (La)TeX file you got by exporting your
+% figure as `LaTeX picture' or by calling fig2dev with option `-L
+% latex'. No other ``language'' is supported by these macros; in
+% particular, `Combined PS/LaTeX' is not supported.
+
+% You can select the used types for text by redefining some macros:
+% \FigFontType<type> (with <type> equal `rm', `bf', `it', `sf', or
+% `tt') must expand to the external font name that's used for the
+% respective xfig font selection.
+% \FigFontDefault specifies the font that's used for the `Default'
+% font selection. That macro is only accessed if you use the new xfig,
+% or if you repaired the no-NFSS code of fig2dev (in texfonts.h, see
+% comments at \xfig@bindSetFigFont implementation below).
+%
+% At the start of each figure \pictureHook is evaluated, you might
+% want to bind that to some code that does document-specific setup.
+% Each figure is set in a group, so you can rebind other control
+% sequences in that hook.
+
+
+% ------------------------------------------------------------
+
+% IMPLEMENTATION NOTES:
+%
+% The macros might not work in all circumstances, it's updated and improved
+% by need...
+%
+% In particular:
+% -- The font selection in \SetFigFont could be improved.
+% -- The environment code (\begin/\end) is very rough and should
+% check for erroneous input.
+
+
+% Code structure:
+%
+% After general setup, code from DEK that implements most parts of
+% LaTeX's picture environment is used. Then we add definitions for the
+% missing and xfig-specific tags.
+%
+% In Emacs, each section starts on a new page.
+
+
+% ============================================================
+
+% standard setup:
+
+\ifx \CatEscape\undefined
+ \chardef\CatEscape=0
+ \chardef\CatOpen=1
+ \chardef\CatClose=2
+ \chardef\CatIgnore=9
+ \chardef\CatLetter=11
+ \chardef\CatOther=12
+ \chardef\CatActive=13 % \active of plain.tex
+ \chardef\CatInvalid=15
+
+ \chardef\CatAtCode=\catcode`\@
+ \chardef\CatUsCode=\catcode`\_
+\fi
+
+\catcode`\@=\CatLetter % top level macro file
+
+\begingroup
+ \catcode`\$=\CatIgnore
+ \catcode`\:=\CatIgnore
+ \message{xfig pictures, $Revision: 1.4 $}
+\endgroup
+
+
+% This macro file allocates registers and might be read in multiple
+% times, in groups. (Actually, this occured for the first time when we
+% wanted to use xfig pictures in Texinfo documents. There they are
+% typeset in a `tex' environment, and xfig is read in anew for each
+% figure.) As all register allocations are globally, we define some
+% macros that help us to define them only once.
+
+\def\xfig@newskip#1{%
+ \ifx #1\undefined \csname newskip\endcsname #1\fi
+ }
+\def\xfig@newdimen#1{%
+ \ifx #1\undefined \csname newdimen\endcsname #1\fi
+ }
+\def\xfig@newcount#1{%
+ \ifx #1\undefined \csname newcount\endcsname #1\fi
+ }
+\def\xfig@newbox#1{%
+ \ifx #1\undefined \csname newbox\endcsname #1\fi
+ }
+
+
+% ============================================================
+
+%% First comes an implementation of the picture environment's features,
+%% by the Grand Wizard of TeX Arcana himself. This is from picture.tex,
+%% I deleted the \cpic macro and the squines. \makebox did not support
+%% position specifiers, I substituted the definition by the one from
+%% LaTeX2e. In addition, all register allocations are made with the
+%% macros defined above.
+
+% --------------------------------------------------
+
+% Pictures (a subset of \LaTeX's conventions, plus squines)
+
+%% [start of change to DEK's code]
+%%
+%% At's catcode is changed above already.
+%% Allocation info for registers should go to log file.
+
+% \chardef\CatcodeAt=\catcode`\@
+% \catcode`\@=11 % enable private control sequences
+% \def\wlog#1{} % don't put allocation info into the log
+
+%% [end of change]
+
+\xfig@newskip\hsssglue \hsssglue=0pt plus 1fill minus 1fill
+\def\hsss{\hskip\hsssglue}
+
+\xfig@newdimen\unitlength \xfig@newdimen\linethickness
+\xfig@newdimen\@picheight \xfig@newdimen\@xdim \xfig@newdimen\@ydim \xfig@newdimen\@len
+\xfig@newdimen\@save
+\xfig@newcount\@multicount \xfig@newcount\@xarg \xfig@newcount\@yarg
+\xfig@newbox\@picbox \xfig@newbox\@mpbox
+
+\font\tenln=line10 \font\tenlnw=linew10
+\font\tencirc=lcircle10 \font\tencircw=lcirclew10
+
+\xfig@newdimen\@halfwidth
+
+\def\thinlines{\let\linefont=\tenln \let\circlefont=\tencirc
+ \linethickness=\fontdimen8\linefont \@halfwidth .5\linethickness}
+\def\thicklines{\let\linefont=\tenlnw \let\circlefont=\tencircw
+ \linethickness=\fontdimen8\linefont \@halfwidth .5\linethickness}
+\thinlines
+
+\def\beginpicture(#1,#2)(#3,#4){\@picheight=#2\unitlength
+ \setbox\@picbox=\hbox to#1\unitlength\bgroup \let\line=\@line
+ \kern-#3\unitlength \lower#4\unitlength\hbox\bgroup\ignorespaces}
+\def\endpicture{\egroup\hss\egroup
+ \ht\@picbox=\@picheight \dp\@picbox=\z@
+ \leavevmode\box\@picbox}
+
+\def\put(#1,#2)#3{\raise#2\unitlength\rlap{\kern#1\unitlength #3}\ignorespaces}
+
+\def\multiput(#1,#2)(#3,#4)#5#6{\@multicount=#5\relax
+ \@xdim=#1\unitlength \@ydim=#2\unitlength \setbox\@mpbox=\hbox{#6}%
+ \loop\ifnum\@multicount>0
+ \raise\@ydim\rlap{\kern\@xdim \unhcopy\@mpbox}%
+ \advance\@xdim#3\unitlength \advance\@ydim#4\unitlength
+ \advance\@multicount\m@ne \repeat\ignorespaces}
+
+\def\@ifnextchar#1#2#3{\let\@tempe=#1\def\@tempa{#2}\def\@tempb{#3}\futurelet
+ \@tempc\@ifnch}
+\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch
+ \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi
+ \fi \@tempd}
+
+%% [start of change to DEK's code]
+%%
+%% \makebox is called with an optional argument, the position
+%% specifier. The code below is copied from the LaTeX2e beta-test
+%% release.
+
+\def\makebox(#1,#2){%
+ \@ifnextchar[{\@makebox(#1,#2)}{\@makebox(#1,#2)[]}}
+
+\def\@nnil{\@nil}
+\def\@fornoop#1\@@#2#3{}
+\def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\empty \else
+ \@tforloop#2\@nil\@nil\@@#1{#3}\fi}
+\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \let\@nextwhile\@fornoop \else
+ #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}}
+
+\long\def\@makebox(#1,#2)[#3]#4{%
+ \vbox to#2\unitlength
+ {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
+ \let\mb@t\vss
+ \@tfor\@tempa :=#3\do{%
+ \if s\@tempa
+ \let\mb@l\relax\let\mb@r\relax
+ \else
+ \expandafter\let\csname mb@\@tempa\endcsname\relax
+ \fi}%
+ \mb@t
+ \hbox to #1\unitlength{\mb@l #4\mb@r}%
+ \mb@b
+ \kern\z@}}
+
+%% [end of change]
+
+\newif\ifneg
+\def\@line(#1,#2)#3{\@xarg=#1 \@yarg=#2 \@len=#3\unitlength \leavevmode
+ \ifnum\@xarg<0 \reverseline \else \negfalse \@ydim=\z@\fi
+ \ifnum\@xarg=0 \@vline
+ \else\ifnum\@yarg=0 \@hline \else\@sline\fi\fi
+ \ifneg\kern-\@len\else\@save=\@ydim\fi}
+\def\reverseline{\negtrue \kern-\@len \@xarg=-\@xarg
+ \@ydim=\@len \multiply\@ydim\@yarg \divide\@ydim\@xarg \@yarg=-\@yarg}
+
+\def\@hline{\vrule height.5\linethickness depth.5\linethickness width\@len}
+\def\@vline{\kern-.5\linethickness\vrule width\linethickness
+ \ifnum\@yarg<0 height\z@ depth\else depth\z@ height\fi\@len
+ \kern-.5\linethickness}
+
+\def\@sline{\setbox\@picbox=\hbox{\linefont \count@=\@xarg \multiply\count@ 8
+ \ifnum\@yarg>0 \advance\count@\@yarg \advance\count@-9
+ \else \advance\count@-\@yarg \advance\count@ 55 \fi \char\count@}%
+ \ifnum\@yarg<0 \@picheight=-\ht\@picbox \advance\@ydim\@picheight
+ \else \@picheight=\ht\@picbox \fi
+ \@xdim=\wd\@picbox \@save=\@ydim
+ \loop\ifdim\@xdim<\@len \raise\@ydim\copy\@picbox
+ \advance\@xdim\wd\@picbox \advance\@ydim\@picheight \repeat
+ \advance\@xdim-\@len \kern-\@xdim
+ \multiply\@xdim\@yarg \divide\@xdim\@xarg \advance\@ydim-\@xdim
+ \raise\@ydim\box\@picbox}
+
+\def\vector(#1,#2)#3{\@line(#1,#2){#3}%
+ \ifnum\@xarg=0 \@vvector \else\ifnum\@yarg=0 \@hvector \else\@svector\fi\fi}
+\def\@hvector{\ifneg\rlap{\linefont\char27}\else
+ \smash{\llap{\linefont\char45}}\fi} % we have to smash because of font bug
+\def\@vvector{\ifnum\@yarg<0 \raise-\@len\rlap{\linefont\char63}%
+ \else\setbox\@picbox=\rlap{\linefont\char54}\advance\@len-\ht\@picbox
+ \raise\@len\box\@picbox\fi}
+
+\def\@svector{\setbox\@picbox=\hbox to\z@{\linefont
+ \ifnum\@yarg<0 \count@=55 \@yarg=-\@yarg \else\count@=-9 \fi
+ \ifneg\multiply\@xarg16 \multiply\@yarg2
+ \else\hss % \llap
+ \ifnum\@xarg>2 \multiply\@xarg9 \multiply\@yarg2 \advance\count@29
+ \else\ifnum\@yarg>2 \multiply\@xarg16 \multiply\@yarg9 \advance\count@-20
+ \else\multiply\@xarg24 \multiply\@yarg3 \fi\fi\fi
+ \advance\count@\@xarg \advance\count@\@yarg \char\count@
+ \ifneg\hss\fi}% \rlap
+ \raise\@save\box\@picbox}
+
+\def\disk#1{\@len=#1\unitlength \count@='160 \@diskcirc}
+\def\circle#1{\@len=#1\unitlength \count@='140 \@diskcirc}
+\def\@diskcirc{\setbox\@picbox=\hbox{\circlefont\char\count@}\@xdim=\wd\@picbox
+ \leavevmode \ifdim\@len>15.499\@xdim \@bigdc \else \@smalldc\fi}
+\def\@bigdc{\ifnum\count@<'160 \@bigcirc
+ \else \@len=15\@xdim \@diskcirc\fi}
+\def\@smalldc{{\advance\@len-.5\@xdim
+ \loop\ifdim\@xdim<\@len \advance\count@\@ne \advance\@xdim\wd\@picbox\repeat
+ \hbox{\circlefont\char\count@}}}
+\def\@bigcirc{{\circlefont\count@=15
+ \setbox\@picbox=\hbox{\char\count@}\@xdim=\wd\@picbox
+ \ifdim\@len>2.5\@xdim \@len=2.5\@xdim\fi
+ \advance\@len-.125\wd\@picbox
+ \loop\ifdim\@xdim<\@len \advance\count@ 4 \advance\@xdim.25\wd\@picbox\repeat
+ \@ydim=.5\@xdim \advance\@ydim.5\linethickness
+ \setbox\@picbox=\vbox{\hbox{\char\count@\advance\count@-3\char\count@}%
+ \nointerlineskip
+ \hbox{\advance\count@\m@ne\char\count@\advance\count@\m@ne\char\count@}}%
+ \kern-\@ydim\lower\@ydim\box\@picbox}}
+
+\newif\ifovaltl \newif\ifovaltr \newif\ifovalbl \newif\ifovalbr
+\ovaltltrue \ovaltrtrue \ovalbltrue \ovalbrtrue
+\def\oval(#1,#2){\@xdim=#1\unitlength \@ydim=#2\unitlength
+ {\circlefont \setbox\@picbox=\hbox{\char0}
+ \ifdim\@xdim<\wd\@picbox \@xdim=\wd\@picbox\fi
+ \ifdim\@ydim<\wd\@picbox \@ydim=\wd\@picbox\fi
+ \@save=\@xdim \ifdim\@ydim<\@save \@save=\@ydim \fi
+ \count@=39
+ \loop \setbox\@picbox=\hbox{\char\count@}\ifdim\@save<\wd\@picbox
+ \advance\count@-4 \repeat
+ \setbox\strutbox=\hbox{\vrule height\ht\@picbox depth\dp\@picbox width\z@
+ \kern\wd\@picbox}%
+ \@save=.5\wd\@picbox \advance\@save-.5\linethickness
+ \setbox0=\hbox to\@xdim{\ifovaltl\char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height\ifovaltl\linethickness\else\z@\fi\hfil
+ \leaders\hrule height\ifovaltr\linethickness\else\z@\fi\hfil\kern\@save
+ \ifovaltr\advance\count@-3\char\count@\else\strut\fi\kern-\wd\@picbox}%
+ \advance\count@\m@ne
+ \setbox2=\hbox to\@xdim{\ifovalbl\char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height\ifovalbl\linethickness\else\z@\fi\hfil
+ \leaders\hrule height\ifovalbr\linethickness\else\z@\fi\hfil\kern\@save
+ \ifovalbr\advance\count@\m@ne\char\count@\else\strut\fi\kern-\wd\@picbox}%
+ \@save=\@ydim \advance\@save-\wd\@picbox \divide\@save 2
+ \setbox\@picbox=\vbox{\box0\nointerlineskip
+ \hbox to\@xdim{\vrule height\@save width\ifovaltl\linethickness\else\z@\fi
+ \hfil\ifovaltr\vrule width\linethickness\kern-\linethickness\fi}%
+ \nointerlineskip
+ \hbox to\@xdim{\vrule height\@save width\ifovalbl\linethickness\else\z@\fi
+ \hfil\ifovalbr\vrule width\linethickness\kern-\linethickness\fi}%
+ \nointerlineskip\box2}%
+ \@save=.5\@ydim \advance\@save.5\linethickness \leavevmode
+ \kern-.5\@xdim \kern-.5\linethickness \lower\@save\box\@picbox}}
+
+% ============================================================
+
+%% More picture environment tags, output by fig2dev
+
+
+%% The framebox tag was missing in DEK's code. Below is a copy from
+%% the 1994/06/01 version of ltboxes.dtx. Actually, we need only the
+%% \@framepicbox tag.
+
+% \DescribeMacro\framebox
+% |\framebox| ... : like |\makebox|, except it puts a `frame' around
+% the box. The frame is made of lines of thickness
+% |\fboxrule|, separated by space |\fboxsep| from the
+% text -- except for |\framebox(X,Y)| ... , where the
+% thickness of the lines is as for the picture environment,
+% and there is no separation added.
+
+\def\framebox(#1,#2){%
+ \@ifnextchar[{\@framebox(#1,#2)}{\@framebox(#1,#2)[]}% ] (Emacs)
+ }
+\long\def\@framebox(#1,#2)[#3]#4{%
+ \frame{\makebox(#1,#2)[#3]{#4}}}
+
+\long\def\frame#1{%
+ \leavevmode
+ \hbox{%
+ \hskip-\linethickness
+ \vbox{%
+ \vskip-\linethickness
+ \hrule height\linethickness
+ \hbox{%
+ \vrule width\linethickness
+ #1%
+ \vrule width\linethickness}%
+ \hrule height\linethickness
+ \vskip -\linethickness}%
+ \hskip -\linethickness}}
+
+
+%% The dashbox tag was also missing. We copy it from ltpictur.dtx,
+%% 1994/05/22 v1.0e LaTeX Kernel (Picture Mode). The (missing)
+%% indentation is from there, not introduced by me. Sorry, but this
+%% must be emphasized.
+
+% \@wholewidth -> \linethickness
+% \@makepicbox -> \makebox
+
+\xfig@newdimen\@dashdim
+\xfig@newbox\@dashbox
+\xfig@newcount\@dashcnt
+
+\def\@whilenoop#1{}
+\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax
+ #2\relax}\fi}
+\def\@iwhilenum#1{\ifnum #1\let\@nextwhile\@iwhilenum
+ \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}}
+
+\def\dashbox#1(#2,#3){\leavevmode\hbox to\z@{\baselineskip \z@skip
+\lineskip \z@skip
+\@dashdim #2\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt\@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox \hbox{\vrule height \@halfwidth depth \@halfwidth
+width \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(0,#3){\copy\@dashbox}%
+\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
+\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
+\multiply\@dashdim \thr@@
+\fi
+\setbox\@dashbox \hbox{\vrule height \@halfwidth depth \@halfwidth
+width #1\unitlength\hskip #1\unitlength}\count@\z@
+\put(0,0){\hskip\@dashdim \@whilenum \count@ <\@dashcnt
+\do{\copy\@dashbox\advance\count@ \@ne }}\count@\z@
+\put(0,#3){\hskip\@dashdim \@whilenum \count@ <\@dashcnt
+\do{\copy\@dashbox\advance\count@ \@ne }}%
+\@dashdim #3\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt \@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else
+\divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox\hbox{\hskip -\@halfwidth
+\vrule width \linethickness
+height \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(#2,0){\copy\@dashbox}%
+\put(0,#3){\lower\@dashdim\copy\@dashbox}%
+\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
+\multiply\@dashdim \thr@@
+\fi
+\setbox\@dashbox\hbox{\vrule width \linethickness
+height #1\unitlength}\count@\z@
+\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \count@ <\@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\count@ \@ne }%
+\vskip\@dashdim}}\count@\z@
+\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \count@<\@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\count@ \@ne }%
+\vskip\@dashdim}}}\makebox(#2,#3)}
+
+
+% ============================================================
+
+%% Then we must supply the LaTeX tags that are inserted by fig2dev.
+
+% \setlength is the LaTeX PC way of setting a register.
+\def\setlength#1#2{#1=#2\relax}
+
+% --------------------------------------------------
+
+% \makeatletter is called to access private macros in the \SetFigFont
+% definition. Since we never expand that definition, we could ignore
+% the catcode change. But we should not define a macro with a nonsense
+% name...
+\ifx \makeatletter\undefined
+ \def\makeatletter{\catcode`\@=11 } % <-- Space
+\fi
+
+% --------------------------------------------------
+
+% The real hassle in that macro file is the font switch code. Once
+% there was an interface, in transfig 2.1.7 & 2.1.8: A macro named
+% \SetFigFont was used to select the type for texts. The macro
+% definition itself is written by fig2dev, it is part of the figure
+% code.
+%
+% Then transfig 3 was released and the interface disappeared. There's
+% still the macro \SetFigFont and the macro definition is still
+% written by fig2dev, but it may be defined with 3 arguments or with 5
+% arguments, one cannot determine what's used. The second form is used
+% when NFSS is added to the defines of fig2dev and should be the
+% default. (After all, LaTeX2e subsumed NFSS.) The first form must be
+% used for LaTeX 2.09 w/OFSS.
+%
+% \SetFigFont is not defined if it is defined already when the figure
+% code is read. OK, one might think, let's define a plain TeX version.
+% (Actually, xfig.tex up to revision 1.3 did so.) But which interface
+% shall we use for our definition? In a typical installation one has
+% old documents with xfig pictures that were created with an old
+% fig2dev, we must therefore support the three-arg-variant. Newly
+% created figures will use the five-arg-variant, though. There is no
+% obvious way to determine which variant will be used in the
+% respective figure.
+
+% Please note that the information above -- and the one below about
+% the actual possible interfaces of \SetFigFont -- was determined by
+% looking at the output of example files and the code in setfigfont.c
+% and texfonts.h, as not even the comments in these files got updated
+% when the new \SetFigFont interface was introduced. (Sigh.)
+%
+% The changes were not even marked in the list of changes, I learned
+% about them when folks from the Net sent me complaints about revision
+% 1.1 of xfig.tex. (I hadn't installed xfig 3 at this time.)
+%
+% Do I really have to tell you what I think about these kinds of
+% changes, in terms of software quality? (Don't ask me when I'm in a
+% bad mood if you want polite answers.)
+
+% Well, here's the solution: As told above, I've analyzed the possible
+% expansions of \SetFigFont. I'll define macros for every cseq that's
+% in the expansion, one of these macros will bind \SetFigFont to
+% \SetFigFontOFSS or \SetFigFontNFSS, respectively. Let's have a look:
+%
+% OFSS: evaluates \@setsize. This macro has supposed to have 4
+% arguments (type, baselineskip, font-setup, font-setup). Then the
+% type specifier is evaluated by a \csname. Passing nothing there will
+% effectively be a nop.
+%
+% NFSS: The \SetFigfont expansion uses more cseqs, but is more
+% regular, too. We may supply empty expansions for everything that
+% shall setup the font parameters: \reset@font, \fontsize (2 args),
+% \fontfamily & \fontseries & \fontshape (each 1 arg). Then
+% \selectfont is evaluated, here we bind the appropriate expansion of
+% \SetFigFont.
+
+% Now we may setup the macro definitions, evaluate one pseudo
+% \SetFigFont and \SetFigFont will be bound to the correct expansion.
+%
+% The first argument must be a number, as the OFSS \SetFigFont version
+% assigns it to a count register.
+\def\xfig@bindSetFigFont{%
+ % OFSS
+ \def\@setsize##1##2##3##4{\let\SetFigFont\SetFigFontOFSS}%
+ % NFSS
+ \let\reset@font\relax
+ \def\fontsize##1##2{}%
+ \def\fontfamily##1{}%
+ \def\fontseries##1{}%
+ \def\fontshape##1{}%
+ \def\selectfont{\let\SetFigFont\SetFigFontNFSS}%
+ % Now bind correct \SetFigFont by evaluating \SetFigFont.
+ \SetFigFont{0}{}{}{}{}%
+ }
+
+% --------------------------------------------------
+
+% The interface of \SetFigFontOFSS:
+% #1 is the size (w/o pt),
+% #2 the baselineskip (w/o pt),
+% #3 a plain TeX type specifier.
+% If #3 is empty we assume that a default font should be taken.
+% This default font can be named by \FigFontDefault. Note, that
+% this parameter is not empty if you choose the font `Default' in
+% xfig. You have to chang texfonts.h accordingly. I did it
+% already for 2.1.7 and sent the diffs to the maintainer, but
+% obviously he dumped them since they did not appear in 3.x.
+%
+% It's a pity, that we can't use the plain TeX type specifier. We
+% demand an appropriate font scaled to the correct size. This is not
+% the best solution, but nowadays most DVI drivers generate the fonts on
+% the fly anyhow.
+
+\def\FigFontDefault{cmr10}
+\def\FigFontType{\FigFontDefault\space}
+\def\FigFontTyperm{cmr10}
+\def\FigFontTypebf{cmbx10}
+\def\FigFontTypeit{cmti10}
+\def\FigFontTypesf{cmss10}
+\def\FigFontTypett{cmtt10}
+\def\SetFigFontOFSS#1#2#3{%
+ \font\FigFont \csname FigFontType#3\endcsname\space at #1pt
+ \FigFont
+ \baselineskip #2pt\relax
+ }
+
+% The interface of \SetFigFontNFSS:
+% #1 is the size (w/o pt),
+% #2 the baselineskip (w/o pt),
+% #3 the NFSS font family (as a cseq),
+% #4 the NFSS font series (as a cseq), and
+% #5 the NFSS font shape (as a cseq).
+%
+% The current font state is reset before the arguments take effect.
+% The call to \SetFigFont doesn't use the full possibilities of NFSS;
+% only fixed combinations of arguments are supplied, as xfig itself
+% knows only about a fixed set of fonts (default, roman, bold, italic,
+% sans serif, and typewriter).
+
+% We map that interface back to the one of \SetFigFontOFSS. To do that
+% we redefine the NFSS font specifiers locally to create plain TeX
+% font specifiers. That's mostly easy, medium density (`md') series
+% and upright (`up') shape are ignored in plain anyhow. The default is
+% explicitely specified by \familydefault, we don't need to infer it.
+% But there is one exception: bold is specified as `roman bold', ie,
+% as `rmbf'. For that exception we just define a new FigFontType macro.
+
+\def\FigFontTypermbf{\FigFontTypebf}
+\def\SetFigFontNFSS#1#2#3#4#5{%
+ \begingroup
+ \let\familydefault\empty
+ \def\rmdefault{rm}%
+ \def\sfdefault{sf}%
+ \def\ttdefault{tt}%
+ \let\mddefault\empty
+ \def\bfdefault{bf}%
+ \let\updefault\empty
+ \def\itdefault{it}%
+ \xdef\FigFontSpec{#3#4#5}%
+ \endgroup
+ \SetFigFontOFSS{#1}{#2}{\FigFontSpec}%
+ }
+
+% --------------------------------------------------
+
+% Environments are enclosed in \begin{foo} ... \end{foo}.
+% I don't check if the call is ok -- this file is specific for
+% machine-generated code, that shall be correct by definition.
+%
+% We need to setup the correct \SetFigFont binding, as explained above.
+% And let's evaluate a hook to enable document specific adaptions.
+
+\def\begin#1{%
+ \begingroup
+ \def\end##1{%
+ \csname end##1\endcsname
+ \endgroup
+ }%
+ \xfig@bindSetFigFont
+ \csname #1Hook\endcsname
+ \csname begin#1\endcsname
+ }
+
+
+% ============================================================
+
+\catcode`\@=\CatAtCode
+
+\endinput
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% $Log: xfig.tex,v $
+% Revision 1.4 1995/05/07 16:52:05 schrod
+% Determine \SetFigFont variant automatically. \OldXfig is not
+% looked at any more, \SetFigFontOld and \SetFigFontNew are renamed to
+% \SetFigFontOFSS and \SetFigFontNFSS.
+%
+% Revision 1.3 1995/04/17 00:01:08 schrod
+% Don't allocate registers anew if xfig.tex is read in the second
+% time.
+%
+% Revision 1.2 1995/03/16 01:15:51 schrod
+% Support output of transfig 3.1.1.
+%
+% Revision 1.1 1995/03/13 23:18:15 schrod
+% Started to manage this package with CVS. Made minor code cleanup.
+%
+
+% 94-06-10 js Initial revision.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Local Variables:
+mode: plain-tex
+TeX-master: t
+TeX-brace-indent-level: 4
+page-delimiter: "^% ==*$"
+End:
diff --git a/Master/texmf-dist/tex/plain/kdgreek/greek.tex b/Master/texmf-dist/tex/plain/kdgreek/greek.tex
new file mode 100644
index 00000000000..db5745d5802
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/kdgreek/greek.tex
@@ -0,0 +1,366 @@
+%
+% GREEK.TEX
+% ---------
+%
+% K J Dryllerakis
+%
+% Dec 7, 1992
+%
+% VERSION: 3.1
+%
+% This is the source file for building the greek format for the
+% kd fsmily of fonts.
+% Note that PLAIN.TEX must exist and bare a fmtversion 3.0 or
+% higher (to ensure existence of language definitions).
+% Greek is defined to be language 1 or actually last_language+1.
+%
+% Pleaaaaaaaaase don't modify this file
+%
+% Note: Used in conjunction with KD Fonts
+% Load the standard macro package
+\input plain
+%
+\message{Greek Definitions:}
+%
+\message{general definitions,}
+%
+\catcode`\@=11 % We will access TeX private macros
+\newwrite\@screen % Define a screen ouput
+\def\showstring#1{\immediate\write\@screen{#1}}
+\def\sp@{ }\def\sp@s{\sp@\sp@\sp@\sp@\sp@\sp@\sp@\sp@\sp@}
+\def\c@p{\showstring{}\showstring{\sp@s\sp@s\sp@s GreekTeX -- Version 3.1}%
+\showstring{\sp@s\sp@s\sp@s ---------------------------}
+\showstring{\sp@s GreekTeX is a macro package for typesetting greek texts.}
+\showstring{\sp@s It is maily compatible with the haralambous package,}
+\showstring{\sp@s from which it inherits the top level macros.}
+\showstring{\sp@s GreekTeX includes easy access to font families, a choise}
+\showstring{\sp@s of delimiters, and makes typesetting scientific papers}
+\showstring{\sp@s in greek as easy as in TeX itself.}
+\showstring{\sp@s}
+\showstring{\sp@s\sp@s\sp@s Copyright K J Dryllerakis 1991-1992}
+\showstring{\sp@s\sp@s\sp@s ------------------------------}%
+}
+\c@p
+%
+% A List of Reserved Keywords that should not be redefined
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% a. accesible from the document
+%
+% \| The character |
+% \begingreek Begin a group of greek text
+% \endgreek End a group of greek text
+% \greek A new language definition
+% \gr switch to classical greek font
+% \gbf switch to classical boldface font
+% \git switch to classical italics font
+% \gsl switch to classical slanted font
+% \gtt switch to classical typewritter font
+% \gt Greater than > symbol
+% \lt Less than < symbol
+% \math If we are using $ as del. it is equiv to $
+% \setgreek Select greek mode to be the primary mode
+% \setlatin Restore standard mode (at any stage)
+% \showstring Log a string on the terminal
+%
+% b. Internal Control Sequences
+%
+% \gr@@kdelimsbar Use | as begin- and end-greek
+% \gr@@kdelimsdol Use $ as begin- and end-greek
+% \@ldend A copy of plain TeX's \end
+% \@screen Screen Output for messages
+% \t@f@nt Remembers greek font used last
+% \t@f@m Remembers greek family used last
+% \t@size Remembers greek point size used last
+% \c@p Product Copyright Notice
+% \grfam Greek classic font family register
+% \grslfam Greek slanted font family register
+% \grttfam Greek typewriter font family register
+% \grbffam Greek boldface font family register
+% \grifam Greek italics font family register
+% \l@tinm@de Definition to restore plain TeX's mode
+%
+% Start Up Definitions
+% --------------------
+%
+\ifx\gr@@kformatloaded\relax\catcode`\@=\active
+ \endinput\else\let\gr@@kformatloaded\relax\fi
+\newif\ifdelimsbar\delimsbarfalse % Check for | as delimiter
+\chardef\|=`\| % A way to access |
+\gdef\t@f@nt{\tengr} % Remember font used last
+\gdef\t@size{\grtenpoint} % Remember size used last
+\gdef\t@f@m{\fam\grfam} % Remember family used last
+% ^ THESE ARE INITIAL VALUES. DO NOT ALTER!
+\newlanguage\greek % Define Greek as a new language
+\def\lt{<} % Remember Less than
+\def\gt{>} % and greater than signs
+\language0 % Switch to default language
+%
+\message{fonts,}
+%
+% Greek Font Bits
+% _______________
+%
+% First we load the greek fonts and declare the families
+% Then we define point sizes for typesetting greek texts
+%
+% Classic Greek Family
+% ^^^^^^^^^^^^^^^^^^^^
+\newfam\grfam
+\font\tengr=kdgr10 % 10 point Classic Greek Font
+\font\ninegr=kdgr9 % 9 point Classic Greek Font
+\font\eightgr=kdgr8 % 8 point Classic Greek Font
+\font\sixgr=kdgr8 at 6truept % 6 point simulated Classic Greek (x.75)
+\def\gr{\tengr\fam\grfam}
+%
+% Slanted Greek Family
+% ^^^^^^^^^^^^^^^^^^^^
+\newfam\grslfam
+\font\tengrsl=kdsl10 % 10 Point Slanted Greek Font
+\font\ninegrsl=kdsl10 at 9truept% 9 point (sim.) Slanted Greek
+\font\eightgrsl=kdsl10 at 8truept%8 point (sim.) Slanted Greek
+\def\gsl{\tengrsl\fam\grslfam}
+%
+% Boldface Greek Family
+% ^^^^^^^^^^^^^^^^^^^^^
+\newfam\grbffam
+\font\tengrbf=kdbf10 % 10 Point Boldface Greek Font
+\font\ninegrbf=kdbf9 % 9 Point Boldface Greek
+\font\eightgrbf=kdbf8 % 8 Point (sim.) Boldface Greek
+\def\gbf{\tengrbf\fam\grbffam}
+%
+% Italic Greek Family
+% ^^^^^^^^^^^^^^^^^^^
+\newfam\grifam
+\font\tengri=kdti10 % 10 Point Italic Greek Font
+\font\ninegri=kdti10 at 9truept % 9 Point (sim.) Italic Greek
+\font\eightgri=kdti10 at 8truept% 8 Point (sim.) Italic Greek
+\def\git{\tengri\fam\grifam}
+%
+% Typerwriter Greek Family
+% ^^^^^^^^^^^^^^^^^^^^^^^^
+\newfam\grttfam
+\font\tengrtt=kdtt10 % 10 Point Typewritter Greek Font
+\font\ninegrtt=kdtt10 at 9truept% 9 Point (sim.) Typewritter Greek
+\font\eightgrtt=kdtt10 at 8truept% 8 Point (sim.) Typewritter Greek
+\hyphenchar\eightgrtt=-1 \hyphenchar\tengrtt=-1
+\hyphenchar\ninegrtt=-1 % Supress Hyphenation
+\def\gtt{\tengrtt\fam\grttfam}
+%
+% Greek Point Size Conventions
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+\def\grtenpoint{% GREEK TENPOINT
+\gdef\t@size{\grtenpoint}% Make a note of the font size
+\textfont\grfam=\tengr\scriptfont\grfam=\eightgr\scriptscriptfont\grfam=\sixgr%
+\textfont\grbffam=\tengrbf\scriptfont\grbffam=\ninegrbf%
+\textfont\grifam=\tengri\scriptfont\grbffam=\ninegri%
+\textfont\grttfam=\tengrtt%
+\textfont\grslfam=\tengrsl%
+\def\gr{\fam\grfam\tengr}% Switch for classic greek
+\let\rg\gr% Also rg for compatibility
+\def\it{\fam\grifam\tengri}% Switch for Greek Italics
+\def\sl{\fam\grslfam\tengrsl}% Switch for Greek Slanted
+\def\tt{\fam\grttfam\tengrtt}% Switch for Greek Typerwriter
+\def\bf{\fam\grbffam\tengrbf}% Switch for Greek Boldface
+\let\git\it\let\gsl\sl%
+\let\gbf\bf\let\gtt\tt% Retain LaTeX compatibility
+\def\rm{\fam0\tenrm}% Switch For latin roman
+\def\lit{\fam\itfam\tenit}% Switch for latin italics
+\def\lsl{\fam\slfam\tensl}% Switch for latin slanted
+\def\ltt{\fam\ttfam\tentt}% Switch for latin typewriter
+\def\lbf{\fam\bffam\tenbf}% Switch for latin boldface
+\normalbaselineskip=.6cm% Normal Base Line distance
+\setbox\strutbox=\hbox{\vrule height8.5pt width0pt depth4.5pt}%
+\normalbaselines\gr%
+}
+\def\grninepoint{% GREEK NINEPOINT
+\gdef\t@size{\grninepoint}% Make a note of the font size
+\textfont\grfam=\ninegr\scriptfont\grfam=\eightgr\scriptscriptfont\grfam=\sixgr%
+\textfont\grbffam=\ninegrbf\scriptfont\grbffam=\eightgrbf%
+\textfont\grifam=\ninegri\scriptfont\grbffam=\eightgri%
+\textfont\grttfam=\ninegrtt%
+\textfont\grslfam=\ninegrsl%
+\def\gr{\fam\grfam\ninegr}% Switch for classic greek
+\let\rg\gr% Also rg for compatibility
+\def\it{\fam\grifam\ninegri}% Switch for Greek Italics
+\def\sl{\fam\grslfam\ninegrsl}% Switch for Greek Slanted
+\def\tt{\fam\grttfam\ninegrtt}% Switch for Greek Typerwriter
+\def\bf{\fam\grbffam\ninegrbf}% Switch for Greek Boldface
+\let\git\it\let\gsl\sl%
+\let\gbf\bf\let\gtt\tt% Retain LaTeX compatibility
+\def\rm{\fam0\tenrm}% Switch For latin roman
+\def\lit{\fam\itfam\nineit}% Switch for latin italics
+\def\lsl{\fam\slfam\ninesl}% Switch for latin slanted
+\def\ltt{\fam\ttfam\ninett}% Switch for latin typewriter
+\def\lbf{\fam\bffam\ninebf}% Switch for latin boldface
+\normalbaselineskip=.52cm% Normal Base Line distance
+\setbox\strutbox=\hbox{\vrule height8pt width0pt depth3pt}%
+\normalbaselines\gr%
+}
+\def\greightpoint{% GREEK EIGHTPOINT
+\gdef\t@size{\greightpoint}% Make a note of the font size
+\textfont\grfam=\eightgr\scriptfont\grfam=\sixgr\scriptscriptfont\grfam=\sixgr%
+\textfont\grbffam=\eightgrbf\scriptfont\grbffam=\eightgrbf%
+\textfont\grifam=\eightgri\scriptfont\grbffam=\eightgri%
+\textfont\grttfam=\eightgrtt%
+\textfont\grslfam=\eightgrsl%
+\def\gr{\fam\grfam\eightgr}% Switch for classic greek
+\let\rg\gr% Also rg for compatibility
+\def\it{\fam\grifam\eightgri}% Switch for Greek Italics
+\def\sl{\fam\grslfam\eightgrsl}% Switch for Greek Slanted
+\def\tt{\fam\grttfam\eightgrtt}% Switch for Greek Typerwriter
+\def\bf{\fam\grbffam\eightgrbf}% Switch for Greek Boldface
+\let\git\it\let\gsl\sl%
+\let\gbf\bf\let\gtt\tt% Retain LaTeX compatibility
+\def\rm{\fam0\eightrm}% Switch For latin roman
+\def\lit{\fam\itfam\eightit}% Switch for latin italics
+\def\lsl{\fam\slfam\eightsl}% Switch for latin slanted
+\def\ltt{\fam\ttfam\eighttt}% Switch for latin typewriter
+\def\lbf{\fam\bffam\eightbf}% Switch for latin boldface
+\normalbaselineskip=.35cm% Normal Base Line distance
+\setbox\strutbox=\hbox{\vrule height7pt width0pt depth2pt}%
+\normalbaselines\gr%
+}
+%
+% Hyphenation Patterns
+% ^^^^^^^^^^^^^^^^^^^^
+\message{hyphenation,}
+%
+{\language\greek
+\lefthyphenmin=2 \righthyphenmin=2 % disallow x- or -x breaks
+\def\lt{<}%
+\def\gt{>}%
+\catcode`\|=11%
+\catcode`\<=11%
+\catcode`\>=11%
+\catcode`\'=11%
+\catcode`\~=11%
+\catcode`\"=11%
+\lccode`\<=`\<%
+\lccode`\>=`\>%
+\lccode`\'=`\'%
+\lccode`\~=`\~%
+\lccode`\"=`\"%
+\lccode`\|=`\|%
+%
+\input grkhyphen%
+\catcode`\~=13%
+}
+%
+\def\showgreekhyphens#1{{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen%
+\language\greek\tengr\pretolerance\m@ne\hbadness0\showboxdepth0\ #1}}}
+%
+%
+\message{miscellaneous macros}
+%
+% Macros For entering greek mode,
+% and delimiter preferences.
+% -------------------------------
+%
+% \begingreek : Begin a group of Greek Text.
+% ^^^^^^^^^^^^ Everything is enclosed in a group to keep
+% changes local. Then we switch to greek hyphenation
+% and iniciate the greekmode. This assigns the correct
+% \catcode values to punctuation and accentuation marks.
+% We then reload the information of the point
+% size used last and switch to the family needed.
+% The \t@f@nt and \t@f@m macro is used to ensure that
+% or fonts and families are remembered.
+%
+% \endgreek : Ends a group of Greek Text.
+% ^^^^^^^^^^ Before ending the group we save information
+% about the current font, to be used when we re-enter
+% greek mode.
+%
+% \gr@@km@de : Switches to greek interpretation of ascii characters
+% ^^^^^^^^^^^ Normally changes are kept local but can be used
+% as a general macro to obtain a global greek mode.
+% Note the different use of | if this is chosen
+% to be a delimiter.
+%
+\def\begingreek{\bgroup\language\greek\gr@@km@de%
+\t@size\t@f@m\t@f@nt\ignorespaces}
+%
+\def\endgreek{\xdef\t@f@nt{\the\font}\xdef\t@f@m{\noexpand\fam\the\fam}\egroup}
+%
+\def\gr@@km@de{%
+\ifdelimsbar\else\catcode`\|=11\fi%
+\catcode`\<=11% Turn Everything to letters!
+\catcode`\>=11% All accents are done through ligatures
+\catcode`\'=11%
+\catcode`\`=11%
+\catcode`\~=11%
+\catcode`\"=11%
+\lccode`\<=`\<%
+\lccode`\>=`\>%
+\lccode`\'=`\'%
+\lccode`\~=`\~%
+\lccode`\"=`\"%
+}
+%
+\def\l@tinm@de{%
+\catcode`\|=12%
+\catcode`\<=12% Turn Everything to what plain tex has
+\catcode`\>=12%
+\catcode`\'=12%
+\catcode`\`=12%
+\catcode`\~=13%
+\catcode`\"=12%
+\catcode`\$=3% % Restore the math symbol!
+}
+%
+% Switch Permenantly do greek mode
+%
+\def\setgreek{\delimsbarfalse\gr@@km@de\language\greek}
+%
+% and to latin as well
+%
+\def\setlatin{\l@tinm@de\language0}
+%
+% It is very frequent that the user will ask to \end the document
+% before a greek group was closed. In order to prevent this we
+% redefine the \end command after saving the old one in \@ldend.
+% The new \end checks for un-ended greek groups and if it is found
+% a warning message is issued and the group is automatically closed.
+%
+\let\@ldend=\end
+\gdef\end{\ifnum\language=\greek\endgreek%
+\showstring{GreekTeX Warning: A group of greek text was automatically closed}%
+\fi\@ldend}
+%
+% Since it is possible that switching from one language to
+% the other is very frequent, a special way to avoid \begingreek
+% and \endgreek is defined. This is done through the definition of
+% delimiters; available delims are | and $. If \greekdelims{bar}
+% is chosen then a greek block is marked as | ..greek text.. |
+% In order to access |, use \|.
+% If $ is used, use \math for math mode and \math\math for
+% display mode.
+%
+\gdef\greekdelims#1{\edef\c@mp@re{#1}\def\t@st@a{bar}\def\t@st@b{dollar}%
+\ifx\c@mp@re\t@st@a\gr@@kdelimsbar\else%
+\ifx\c@mp@re\t@st@b\gr@@kdelimsdol\fi\fi}
+%
+% Bar as delimeter
+%
+{\catcode`\|=13\gdef\gr@@kdelimsbar{\catcode`\|=13\delimsbartrue%
+\def|{\ifnum\language=\greek\endgreek\else\begingreek\fi}}
+}
+%
+% Dollar as delimiter
+%
+\let\m@thm@de=$
+{\catcode`\$=13%
+\gdef\gr@@kdelimsdol{\catcode`\$=13%
+\def${\ifnum\language=\greek\endgreek\else\begingreek\fi}%
+\global\let\math=\m@thm@de%
+\gdef\display{\math\math}\gdef\enddisplay{\math\math}}%
+}
+%
+\catcode`\@=12 % at signs are no longer letters
+%
+\def\fmtname{greek}\def\fmtversion{3.1} % identifies the current format
+
+\message{version \fmtversion .)}
+
diff --git a/Master/texmf-dist/tex/plain/kdgreek/greektex.tex b/Master/texmf-dist/tex/plain/kdgreek/greektex.tex
new file mode 100644
index 00000000000..1a801c26926
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/kdgreek/greektex.tex
@@ -0,0 +1,329 @@
+%
+% GREEKTEX.TEX
+% ---------
+%
+% K J Dryllerakis
+%
+% Dec 7, 1992
+%
+% VERSION: 3.1
+%
+% This is the macro file for GreekTeX. If this file is used
+% and not the greek.tex (FMT) no hyphenation patterns for greek
+% are loaded. IT can be used for short greek text inside english text.
+% Note that PLAIN must be preloaded and bare a fmtversion 3.0 or
+% higher (to ensure existence of language definitions).
+% Greek is defined to be language 1 or actually last_language+1.
+%
+% Pleaaaaaaaaase don't modify this file
+%
+% Note: Used in conjunction with KD Fonts
+%
+\catcode`\@=11 % We will access TeX private macros
+\newwrite\@screen % Define a screen ouput
+\def\showstring#1{\immediate\write\@screen{#1}}
+\def\sp@{ }\def\sp@s{\sp@\sp@\sp@\sp@\sp@\sp@\sp@\sp@\sp@}
+\def\c@p{\showstring{}\showstring{\sp@s\sp@s\sp@s GreekTeX -- Version 3.1}%
+\showstring{\sp@s\sp@s\sp@s ---------------------------}
+\showstring{\sp@s GreekTeX is a macro package for typesetting greek texts.}
+\showstring{\sp@s It is maily compatible with the haralambous package,}
+\showstring{\sp@s from which it inherits the top level macros.}
+\showstring{\sp@s GreekTeX includes easy access to font families, a choise}
+\showstring{\sp@s of delimiters, and makes typesetting scientific papers}
+\showstring{\sp@s in greek as easy as in TeX itself.}
+\showstring{\sp@s}
+\showstring{\sp@s\sp@s\sp@s Copyright K J Dryllerakis 1991-1992}
+\showstring{\sp@s\sp@s\sp@s ------------------------------}%
+}
+\c@p
+%
+% A List of Reserved Keywords that should not be redefined
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% a. accesible from the document
+%
+% \| The character |
+% \begingreek Begin a group of greek text
+% \endgreek End a group of greek text
+% \greek A new language definition
+% \gr switch to classical greek font
+% \gbf switch to classical boldface font
+% \git switch to classical italics font
+% \gsl switch to classical slanted font
+% \gtt switch to classical typewritter font
+% \gt Greater than > symbol
+% \lt Less than < symbol
+% \math If we are using $ as del. it is equiv to $
+% \setgreek Select greek mode to be the primary mode
+% \setlatin Restore standard mode (at any stage)
+% \showstring Log a string on the terminal
+%
+% b. Internal Control Sequences
+%
+% \gr@@kdelimsbar Use | as begin- and end-greek
+% \gr@@kdelimsdol Use $ as begin- and end-greek
+% \@ldend A copy of plain TeX's \end
+% \@screen Screen Output for messages
+% \t@f@nt Remembers greek font used last
+% \t@f@m Remembers greek family used last
+% \t@size Remembers greek point size used last
+% \c@p Product Copyright Notice
+% \grfam Greek classic font family register
+% \grslfam Greek slanted font family register
+% \grttfam Greek typewriter font family register
+% \grbffam Greek boldface font family register
+% \grifam Greek italics font family register
+% \l@tinm@de Definition to restore plain TeX's mode
+%
+% Start Up Definitions
+% --------------------
+%
+\ifx\gr@@kformatloaded\relax\catcode`\@=\active
+ \endinput\else\let\gr@@kformatloaded\relax\fi
+\newif\ifdelimsbar\delimsbarfalse % Check for | as delimiter
+\chardef\|=`\| % A way to access |
+\gdef\t@f@nt{\tengr} % Remember font used last
+\gdef\t@size{\grtenpoint} % Remember size used last
+\gdef\t@f@m{\fam\grfam} % Remember family used last
+% ^ THESE ARE INITIAL VALUES. DO NOT ALTER!
+\newlanguage\greek % Define Greek as a new language
+\def\lt{<} % Remember Less than
+\def\gt{>} % and greater than signs
+\language0 % Switch to default language
+%
+% Greek Font Bits
+% _______________
+%
+% First we load the greek fonts and declare the families
+% Then we define point sizes for typesetting greek texts
+%
+% Classic Greek Family
+% ^^^^^^^^^^^^^^^^^^^^
+\newfam\grfam
+\font\tengr=kdgr10 % 10 point Classic Greek Font
+\font\ninegr=kdgr9 % 9 point Classic Greek Font
+\font\eightgr=kdgr8 % 8 point Classic Greek Font
+\font\sixgr=kdgr8 at 6truept % 6 point simulated Classic Greek (x.75)
+\def\gr{\tengr\fam\grfam}
+%
+% Slanted Greek Family
+% ^^^^^^^^^^^^^^^^^^^^
+\newfam\grslfam
+\font\tengrsl=kdsl10 % 10 Point Slanted Greek Font
+\font\ninegrsl=kdsl10 at 9truept% 9 point (sim.) Slanted Greek
+\font\eightgrsl=kdsl10 at 8truept%8 point (sim.) Slanted Greek
+\def\gsl{\tengrsl\fam\grslfam}
+%
+% Boldface Greek Family
+% ^^^^^^^^^^^^^^^^^^^^^
+\newfam\grbffam
+\font\tengrbf=kdbf10 % 10 Point Boldface Greek Font
+\font\ninegrbf=kdbf9 % 9 Point Boldface Greek
+\font\eightgrbf=kdbf8 % 8 Point Boldface Greek
+\def\gbf{\tengrbf\fam\grbffam}
+%
+% Italic Greek Family
+% ^^^^^^^^^^^^^^^^^^^
+\newfam\grifam
+\font\tengri=kdti10 % 10 Point Italic Greek Font
+\font\ninegri=kdti10 at 9truept % 9 Point (sim.) Italic Greek
+\font\eightgri=kdti10 at 8truept% 8 Point (sim.) Italic Greek
+\def\git{\tengri\fam\grifam}
+%
+% Typerwriter Greek Family
+% ^^^^^^^^^^^^^^^^^^^^^^^^
+\newfam\grttfam
+\font\tengrtt=kdtt10 % 10 Point Typewritter Greek Font
+\font\ninegrtt=kdtt10 at 9truept% 9 Point (sim.) Typewritter Greek
+\font\eightgrtt=kdtt10 at 8truept% 8 Point (sim.) Typewritter Greek
+\hyphenchar\eightgrtt=-1 \hyphenchar\tengrtt=-1
+\hyphenchar\ninegrtt=-1 % Supress Hyphenation
+\def\gtt{\tengrtt\fam\grttfam}
+%
+% Greek Point Size Conventions
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+\def\grtenpoint{% GREEK TENPOINT
+\gdef\t@size{\grtenpoint}% Make a note of the font size
+\textfont\grfam=\tengr\scriptfont\grfam=\eightgr\scriptscriptfont\grfam=\sixgr%
+\textfont\grbffam=\tengrbf\scriptfont\grbffam=\ninegrbf%
+\textfont\grifam=\tengri\scriptfont\grbffam=\ninegri%
+\textfont\grttfam=\tengrtt%
+\textfont\grslfam=\tengrsl%
+\def\gr{\fam\grfam\tengr}% Switch for classic greek
+\let\rg\gr% Also rg for compatibility
+\def\it{\fam\grifam\tengri}% Switch for Greek Italics
+\def\sl{\fam\grslfam\tengrsl}% Switch for Greek Slanted
+\def\tt{\fam\grttfam\tengrtt}% Switch for Greek Typerwriter
+\def\bf{\fam\grbffam\tengrbf}% Switch for Greek Boldface
+\let\git\it\let\gsl\sl%
+\let\gbf\bf\let\gtt\tt% Retain LaTeX compatibility
+\def\rm{\fam0\tenrm}% Switch For latin roman
+\def\lit{\fam\itfam\tenit}% Switch for latin italics
+\def\lsl{\fam\slfam\tensl}% Switch for latin slanted
+\def\ltt{\fam\ttfam\tentt}% Switch for latin typewriter
+\def\lbf{\fam\bffam\tenbf}% Switch for latin boldface
+\normalbaselineskip=.6cm% Normal Base Line distance
+\setbox\strutbox=\hbox{\vrule height8.5pt width0pt depth4.5pt}%
+\normalbaselines\gr%
+}
+\def\grninepoint{% GREEK NINEPOINT
+\gdef\t@size{\grninepoint}% Make a note of the font size
+\textfont\grfam=\ninegr\scriptfont\grfam=\eightgr\scriptscriptfont\grfam=\sixgr%
+\textfont\grbffam=\ninegrbf\scriptfont\grbffam=\eightgrbf%
+\textfont\grifam=\ninegri\scriptfont\grbffam=\eightgri%
+\textfont\grttfam=\ninegrtt%
+\textfont\grslfam=\ninegrsl%
+\def\gr{\fam\grfam\ninegr}% Switch for classic greek
+\let\rg\gr% Also rg for compatibility
+\def\it{\fam\grifam\ninegri}% Switch for Greek Italics
+\def\sl{\fam\grslfam\ninegrsl}% Switch for Greek Slanted
+\def\tt{\fam\grttfam\ninegrtt}% Switch for Greek Typerwriter
+\def\bf{\fam\grbffam\ninegrbf}% Switch for Greek Boldface
+\let\git\it\let\gsl\sl%
+\let\gbf\bf\let\gtt\tt% Retain LaTeX compatibility
+\def\rm{\fam0\tenrm}% Switch For latin roman
+\def\lit{\fam\itfam\nineit}% Switch for latin italics
+\def\lsl{\fam\slfam\ninesl}% Switch for latin slanted
+\def\ltt{\fam\ttfam\ninett}% Switch for latin typewriter
+\def\lbf{\fam\bffam\ninebf}% Switch for latin boldface
+\normalbaselineskip=.52cm% Normal Base Line distance
+\setbox\strutbox=\hbox{\vrule height8pt width0pt depth3pt}%
+\normalbaselines\gr%
+}
+\def\greightpoint{% GREEK EIGHTPOINT
+\gdef\t@size{\greightpoint}% Make a note of the font size
+\textfont\grfam=\eightgr\scriptfont\grfam=\sixgr\scriptscriptfont\grfam=\sixgr%
+\textfont\grbffam=\eightgrbf\scriptfont\grbffam=\eightgrbf%
+\textfont\grifam=\eightgri\scriptfont\grbffam=\eightgri%
+\textfont\grttfam=\eightgrtt%
+\textfont\grslfam=\eightgrsl%
+\def\gr{\fam\grfam\eightgr}% Switch for classic greek
+\let\rg\gr% Also rg for compatibility
+\def\it{\fam\grifam\eightgri}% Switch for Greek Italics
+\def\sl{\fam\grslfam\eightgrsl}% Switch for Greek Slanted
+\def\tt{\fam\grttfam\eightgrtt}% Switch for Greek Typerwriter
+\def\bf{\fam\grbffam\eightgrbf}% Switch for Greek Boldface
+\let\git\it\let\gsl\sl%
+\let\gbf\bf\let\gtt\tt% Retain LaTeX compatibility
+\def\rm{\fam0\eightrm}% Switch For latin roman
+\def\lit{\fam\itfam\eightit}% Switch for latin italics
+\def\lsl{\fam\slfam\eightsl}% Switch for latin slanted
+\def\ltt{\fam\ttfam\eighttt}% Switch for latin typewriter
+\def\lbf{\fam\bffam\eightbf}% Switch for latin boldface
+\normalbaselineskip=.35cm% Normal Base Line distance
+\setbox\strutbox=\hbox{\vrule height7pt width0pt depth2pt}%
+\normalbaselines\gr%
+}
+%
+% Macros For entering greek mode,
+% and delimiter preferences.
+% -------------------------------
+%
+% \begingreek : Begin a group of Greek Text.
+% ^^^^^^^^^^^^ Everything is enclosed in a group to keep
+% changes local. Then we switch to greek hyphenation
+% and iniciate the greekmode. This assigns the correct
+% \catcode values to punctuation and accentuation marks.
+% We then reload the information of the point
+% size used last and switch to the family needed.
+% The \t@f@nt and \t@f@m macro is used to ensure that
+% or fonts and families are remembered.
+%
+% \endgreek : Ends a group of Greek Text.
+% ^^^^^^^^^^ Before ending the group we save information
+% about the current font, to be used when we re-enter
+% greek mode.
+%
+% \gr@@km@de : Switches to greek interpretation of ascii characters
+% ^^^^^^^^^^^ Normally changes are kept local but can be used
+% as a general macro to obtain a global greek mode.
+% Note the different use of | if this is chosen
+% to be a delimiter.
+%
+\def\begingreek{\bgroup\language\greek\gr@@km@de%
+\t@size\t@f@m\t@f@nt\ignorespaces}
+%
+\def\endgreek{\xdef\t@f@nt{\the\font}\xdef\t@f@m{\noexpand\fam\the\fam}\egroup}
+%
+\def\gr@@km@de{%
+\ifdelimsbar\else\catcode`\|=11\fi%
+\catcode`\<=11% Turn Everything to letters!
+\catcode`\>=11% All accents are done through ligatures
+\catcode`\'=11%
+\catcode`\`=11%
+\catcode`\~=11%
+\catcode`\"=11%
+\lccode`\<=`\<%
+\lccode`\>=`\>%
+\lccode`\'=`\'%
+\lccode`\~=`\~%
+\lccode`\"=`\"%
+}
+%
+\def\l@tinm@de{%
+\catcode`\|=12%
+\catcode`\<=12% Turn Everything to what plain tex has
+\catcode`\>=12%
+\catcode`\'=12%
+\catcode`\`=12%
+\catcode`\~=13%
+\catcode`\"=12%
+\catcode`\$=3% % Restore the math symbol!
+}
+%
+% Switch Permenantly do greek mode
+%
+\def\setgreek{\delimsbarfalse\gr@@km@de\language\greek}
+%
+% and to latin as well
+%
+\def\setlatin{\l@tinm@de\language0}
+%
+% It is very frequent that the user will ask to \end the document
+% before a greek group was closed. In order to prevent this we
+% redefine the \end command after saving the old one in \@ldend.
+% The new \end checks for un-ended greek groups and if it is found
+% a warning message is issued and the group is automatically closed.
+%
+\let\@ldend=\end
+\gdef\end{\ifnum\language=\greek\endgreek%
+\showstring{GreekTeX Warning: A group of greek text was automatically closed}%
+\fi\@ldend}
+%
+% Since it is possible that switching from one language to
+% the other is very frequent, a special way to avoid \begingreek
+% and \endgreek is defined. This is done through the definition of
+% delimiters; available delims are | and $. If \greekdelims{bar}
+% is chosen then a greek block is marked as | ..greek text.. |
+% In order to access |, use \|.
+% If $ is used, use \math for math mode and \math\math for
+% display mode.
+%
+\gdef\greekdelims#1{\edef\c@mp@re{#1}\def\t@st@a{bar}\def\t@st@b{dollar}%
+\ifx\c@mp@re\t@st@a\gr@@kdelimsbar\else%
+\ifx\c@mp@re\t@st@b\gr@@kdelimsdol\fi\fi}
+%
+% Bar as delimeter
+%
+{\catcode`\|=13\gdef\gr@@kdelimsbar{\catcode`\|=13\delimsbartrue%
+\def|{\ifnum\language=\greek\endgreek\else\begingreek\fi}}
+}
+%
+% Dollar as delimiter
+%
+\let\m@thm@de=$
+{\catcode`\$=13%
+\gdef\gr@@kdelimsdol{\catcode`\$=13%
+\def${\ifnum\language=\greek\endgreek\else\begingreek\fi}%
+\global\let\math=\m@thm@de%
+\gdef\display{\math\math}\gdef\enddisplay{\math\math}}%
+}
+%
+\catcode`\@=12 % at signs are no longer letters
+%
+\def\fmtname{greek}\def\fmtversion{3.1} % identifies the current format
+
+\endinput
+
+
diff --git a/Master/texmf-dist/tex/plain/kdgreek/grkhyphen.tex b/Master/texmf-dist/tex/plain/kdgreek/grkhyphen.tex
new file mode 100644
index 00000000000..38880ecc1ab
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/kdgreek/grkhyphen.tex
@@ -0,0 +1,1181 @@
+%
+%
+% Hyphenation patterns for modern greek language
+% **********************************************
+%
+\patterns{%
+.>a4
+.>'a4
+.>~a4
+.<a4
+.<'a4
+.<~a4
+.'a4
+.>e4
+.>'e4
+.>~e4
+.<e4
+.<'e4
+.<~e4
+.'e4
+.>h4
+.>'h4
+.>~h4
+.<h4
+.<'h4
+.<~h4
+.'h4
+.>i4
+.>'i4
+.>~i4
+.<i4
+.<'i4
+.<~i4
+.'i4
+.>o4
+.>'o4
+.>~o4
+.<o4
+.<'o4
+.<~o4
+.'o4
+.<u4
+.<'u4
+.<~u4
+.'u4
+.>w4
+.>'w4
+.>~w4
+.<w4
+.<'w4
+.<~w4
+.'w4
+a1
+a2i
+a2'i
+a2~i
+a2>i
+a2>'i
+a2>~i
+a2<i
+a2<'i
+a2<~i
+'a3i
+a3"
+a2u
+a2'u
+a2~u
+a2>u
+a2>'u
+a2>~u
+a2<u
+a2<'u
+a2<~u
+'a3u
+e1
+e2i
+e2'i
+e2~i
+e2>i
+e2>'i
+e2>~i
+e2<i
+e2<'i
+e2<~i
+'e3i
+e3"
+e2u
+e2'u
+e2~u
+e2>u
+e2>'u
+e2>~u
+e2<u
+e2<'u
+e2<~u
+'e3u
+h1
+h2u
+h2'u
+h2~u
+h2>u
+h2>'u
+h2>~u
+h2<u
+h2<'u
+h2<~u
+'h3u
+h3"
+i1
+i2a
+i2'a
+i2~a
+'i3a
+~i3a
+u2'a
+i2e
+i2'e
+'i3e
+~i3e
+u2'e
+i2o
+i2'o
+'i3o
+~i3o
+u2'o
+i2w
+i2'w
+i2~w
+'i3w
+~i3w
+u2'w
+'4'
+''4'
+''4>
+''4<
+'''a4
+''>a'4
+''<a'4
+''>~a4
+''<~a4
+'''e4
+'''>e'4
+'''<e'4
+'''h4
+''>h'4
+''<h'4
+''>~h4
+''<~h4
+'''i4
+''>i'4
+''<i'4
+''>~i4
+''<~i4
+'''o4
+''>o'4
+''<o'4
+'''u4
+''>u'4
+''<u'4
+''>~u4
+''<~u4
+'''w4
+''>w'4
+''<w'4
+''>~w4
+''<~w4
+o1
+o2i
+o2'i
+o2~i
+o2>i
+o2>'i
+o2>~i
+o2<i
+o2<'i
+o2<~i
+'o3i
+o3"
+o2u
+o2'u
+o2~u
+o2>u
+o2>'u
+o2>~u
+o2<u
+o2<'u
+o2<~u
+'o3u
+u1
+u2i
+u2'i
+u2~i
+u2>i
+u2>'i
+u2>~i
+u2<i
+u2<'i
+u2<~i
+u3"
+w1
+~a3i
+~a3u
+~h3u
+a1b
+a1g
+a1d
+a1z
+a1j
+a1k
+a1l
+a1m
+a1n
+a1x
+a1p
+a1r
+a1s
+a1t
+a1f
+a1q
+a1y
+e1b
+e1g
+e1d
+e1z
+e1j
+e1k
+e1l
+e1m
+e1n
+e1x
+e1p
+e1r
+e1s
+e1t
+e1f
+e1q
+e1y
+h1b
+h1g
+h1d
+h1z
+h1j
+h1k
+h1l
+h1m
+h1n
+h1x
+h1p
+h1r
+h1s
+h1t
+h1f
+h1q
+h1y
+i1b
+i1g
+i1d
+i1z
+i1j
+i1k
+i1l
+i1m
+i1n
+i1x
+i1p
+i1r
+i1s
+i1t
+i1f
+i1q
+i1y
+o1b
+o1g
+o1d
+o1z
+o1j
+o1k
+o1l
+o1m
+o1n
+o1x
+o1p
+o1r
+o1s
+o1t
+o1f
+o1q
+o1y
+u1b
+u1g
+u1d
+u1z
+u1j
+u1k
+u1l
+u1m
+u1n
+u1x
+u1p
+u1r
+u1s
+u1t
+u1f
+u1q
+u1y
+w1b
+w1g
+w1d
+w1z
+w1j
+w1k
+w1l
+w1m
+w1n
+w1x
+w1p
+w1r
+w1s
+w1t
+w1f
+w1q
+w1y
+2b1b
+2b1z
+2b1j
+2b1k
+2b1m
+2b1n
+2b1x
+2b1s
+2b1t
+2b1f
+2b1q
+2b1y
+2g1b
+2g1g
+2g1z
+2g1j
+2g1m
+2g1x
+2g1s
+2g1t
+2g1f
+2g1q
+2g1y
+2d1b
+2d1g
+2d1d
+2d1z
+2d1j
+2d1k
+2d1l
+2d1m
+2d1n
+2d1x
+2d1p
+2d1s
+2d1t
+2d1f
+2d1q
+2d1y
+2z1b
+2z1g
+2z1d
+2z1z
+2z1j
+2z1k
+2z1l
+2z1m
+2z1n
+2z1x
+2z1p
+2z1r
+2z1s
+2z1t
+2z1f
+2z1q
+2z1y
+2j1b
+2j1g
+2j1d
+2j1z
+2j1j
+2j1k
+2j1m
+2j1n
+2j1x
+2j1p
+2j1s
+2j1t
+2j1f
+2j1q
+2j1y
+2k1b
+2k1g
+2k1d
+2k1z
+2k1j
+2k1k
+2k1m
+2k1n
+2k1x
+2k1p
+2k1s
+2k1f
+2k1q
+2k1y
+2l1b
+2l1g
+2l1d
+2l1z
+2l1j
+2l1k
+2l1l
+2l1m
+2l1n
+2l1x
+2l1p
+2l1r
+2l1s
+2l1t
+2l1f
+2l1q
+2l1y
+2m1b
+2m1g
+2m1d
+2m1z
+2m1j
+2m1k
+2m1l
+2m1m
+2m1x
+2m1r
+2m1s
+2m1t
+2m1f
+2m1q
+2m1y
+2n1b
+2n1g
+2n1d
+2n1z
+2n1j
+2n1k
+2n1l
+2n1m
+2n1n
+2n1x
+2n1p
+2n1r
+2n1s
+2n1f
+2n1q
+2n1y
+2x1b
+2x1g
+2x1d
+2x1z
+2x1j
+2x1k
+2x1l
+2x1m
+2x1n
+2x1x
+2x1p
+2x1r
+2x1s
+2x1t
+2x1f
+2x1q
+2x1y
+2p1b
+2p1g
+2p1d
+2p1z
+2p1j
+2p1k
+2p1m
+2p1x
+2p1p
+2p1s
+2p1f
+2p1q
+2p1y
+2r1b
+2r1g
+2r1d
+2r1z
+2r1j
+2r1k
+2r1l
+2r1m
+2r1n
+2r1x
+2r1p
+2r1r
+2r1s
+2r1t
+2r1f
+2r1q
+2r1y
+2s1b
+2s1d
+2s1z
+sj2m
+2s1l
+2s1n
+2s1x
+2s1r
+2s1s
+2s1y
+2t1b
+2t1g
+2t1d
+2t1z
+2t1j
+2t1k
+2t1l
+2t1m
+2t1n
+2t1x
+2t1p
+2t1t
+2t1f
+2t1q
+2t1y
+2f1b
+2f1g
+2f1d
+2f1z
+2f1k
+2f1m
+2f1n
+2f1x
+2f1p
+2f1s
+2f1f
+2f1y
+2q1b
+2q1g
+2q1d
+2q1z
+2q1j
+2q1k
+2q1m
+2q1n
+2q1x
+2q1p
+2q1s
+2q1f
+2q1q
+2q1y
+2y1b
+2y1g
+2y1d
+2y1z
+2y1j
+2y1k
+2y1l
+2y1m
+2y1n
+2y1x
+2y1p
+2y1r
+2y1s
+2y1t
+2y1f
+2y1q
+2y1y
+a1"'i
+e1"'i
+o1"'i
+a1"'u
+e1"'u
+o1"'u
+h1"'u
+a1"~1
+e1"~i
+o1"~i
+a1"~u
+e1"~u
+o1"~u
+h1"~u
+4'a.
+4~a.
+4'e.
+4~e.
+4'h.
+4~h.
+4'i.
+4~i.
+4'u.
+4~u.
+4'o.
+4~o.
+4'w.
+4~w.
+4'aa.
+4'ab.
+4'ag.
+4'ad.
+4'ae.
+4'az.
+4'ah.
+4'aj.
+4'ai.
+4'ak.
+4'al.
+4'am.
+4'an.
+4'ax.
+4'ao.
+4'ap.
+4'ar.
+4'ac.
+4'at.
+4'au.
+4'af.
+4'aq.
+4'ay.
+4'aw.
+4'ea.
+4'eb.
+4'eg.
+4'ed.
+4'ee.
+4'ez.
+4'eh.
+4'ej.
+4'ei.
+4'ek.
+4'el.
+4'em.
+4'en.
+4'ex.
+4'eo.
+4'ep.
+4'er.
+4'ec.
+4'et.
+4'eu.
+4'ef.
+4'eq.
+4'ey.
+4'ew.
+4'ha.
+4'hb.
+4'hg.
+4'hd.
+4'he.
+4'hz.
+4'hh.
+4'hj.
+4'hi.
+4'hk.
+4'hl.
+4'hm.
+4'hn.
+4'hx.
+4'ho.
+4'hp.
+4'hr.
+4'hc.
+4'ht.
+4'hu.
+4'hf.
+4'hq.
+4'hy.
+4'hw.
+4'ia.
+4'ib.
+4'ig.
+4'id.
+4'ie.
+4'iz.
+4'ih.
+4'ij.
+4'ii.
+4'ik.
+4'il.
+4'im.
+4'in.
+4'ix.
+4'io.
+4'ip.
+4'ir.
+4'ic.
+4'it.
+4'iu.
+4'if.
+4'iq.
+4'iy.
+4'iw.
+}
+\endinput
+% Problem on number of patterns on TeX's memory!
+4'oa.
+4'ob.
+4'og.
+4'od.
+4'oe.
+4'oz.
+4'oh.
+4'oj.
+4'oi.
+4'ok.
+4'ol.
+4'om.
+4'on.
+4'ox.
+4'oo.
+4'op.
+4'or.
+4'oc.
+4'ot.
+4'ou.
+4'of.
+4'oq.
+4'oy.
+4'ow.
+4'ua.
+4'ub.
+4'ug.
+4'ud.
+4'ue.
+4'uz.
+4'uh.
+4'uj.
+4'ui.
+4'uk.
+4'ul.
+4'um.
+4'un.
+4'ux.
+4'uo.
+4'up.
+4'ur.
+4'uc.
+4'ut.
+4'uu.
+4'uf.
+4'uq.
+4'uy.
+4'uw.
+4'wa.
+4'wb.
+4'wg.
+4'wd.
+4'we.
+4'wz.
+4'wh.
+4'wj.
+4'wi.
+4'wk.
+4'wl.
+4'wm.
+4'wn.
+4'wx.
+4'wo.
+4'wp.
+4'wr.
+4'wc.
+4'wt.
+4'wu.
+4'wf.
+4'wq.
+4'wy.
+4'ww.
+4~aa.
+4~ab.
+4~ag.
+4~ad.
+4~ae.
+4~az.
+4~ah.
+4~aj.
+4~ai.
+4~ak.
+4~al.
+4~am.
+4~an.
+4~ax.
+4~ao.
+4~ap.
+4~ar.
+4~ac.
+4~at.
+4~au.
+4~af.
+4~aq.
+4~ay.
+4~aw.
+4~ha.
+4~hb.
+4~hg.
+4~hd.
+4~he.
+4~hz.
+4~hh.
+4~hj.
+4~hi.
+4~hk.
+4~hl.
+4~hm.
+4~hn.
+4~hx.
+4~ho.
+4~hp.
+4~hr.
+4~hc.
+4~ht.
+4~hu.
+4~hf.
+4~hq.
+4~hy.
+4~hw.
+4~ia.
+4~ib.
+4~ig.
+4~id.
+4~ie.
+4~iz.
+4~ih.
+4~ij.
+4~ii.
+4~ik.
+4~il.
+4~im.
+4~in.
+4~ix.
+4~io.
+4~ip.
+4~ir.
+4~ic.
+4~it.
+4~iu.
+4~if.
+4~iq.
+4~iy.
+4~iw.
+4~ua.
+4~ub.
+4~ug.
+4~ud.
+4~ue.
+4~uz.
+4~uh.
+4~uj.
+4~ui.
+4~uk.
+4~ul.
+4~um.
+4~un.
+4~ux.
+4~uo.
+4~up.
+4~ur.
+4~uc.
+4~ut.
+4~uu.
+4~uf.
+4~uq.
+4~uy.
+4~uw.
+4~wa.
+4~wb.
+4~wg.
+4~wd.
+4~we.
+4~wz.
+4~wh.
+4~wj.
+4~wi.
+4~wk.
+4~wl.
+4~wm.
+4~wn.
+4~wx.
+4~wo.
+4~wp.
+4~wr.
+4~wc.
+4~wt.
+4~wu.
+4~wf.
+4~wq.
+4~wy.
+4~ww.
+4a'a.
+4b'a.
+4g'a.
+4d'a.
+4e'a.
+4z'a.
+4h'a.
+4j'a.
+4i'a.
+4k'a.
+4l'a.
+4m'a.
+4n'a.
+4x'a.
+4o'a.
+4p'a.
+4r'a.
+4s'a.
+4t'a.
+4u'a.
+4f'a.
+4q'a.
+4y'a.
+4w'a.
+4a'e.
+4b'e.
+4g'e.
+4d'e.
+4e'e.
+4z'e.
+4h'e.
+4j'e.
+4i'e.
+4k'e.
+4l'e.
+4m'e.
+4n'e.
+4x'e.
+4o'e.
+4p'e.
+4r'e.
+4s'e.
+4t'e.
+4u'e.
+4f'e.
+4q'e.
+4y'e.
+4w'e.
+4a'h.
+4b'h.
+4g'h.
+4d'h.
+4e'h.
+4z'h.
+4h'h.
+4j'h.
+4i'h.
+4k'h.
+4l'h.
+4m'h.
+4n'h.
+4x'h.
+4o'h.
+4p'h.
+4r'h.
+4s'h.
+4t'h.
+4u'h.
+4f'h.
+4q'h.
+4y'h.
+4w'h.
+4a'i.
+4b'i.
+4g'i.
+4d'i.
+4e'i.
+4z'i.
+4h'i.
+4j'i.
+4i'i.
+4k'i.
+4l'i.
+4m'i.
+4n'i.
+4x'i.
+4o'i.
+4p'i.
+4r'i.
+4s'i.
+4t'i.
+4u'i.
+4f'i.
+4q'i.
+4y'i.
+4w'i.
+4a'o.
+4b'o.
+4g'o.
+4d'o.
+4e'o.
+4z'o.
+4h'o.
+4j'o.
+4i'o.
+4k'o.
+4l'o.
+4m'o.
+4n'o.
+4x'o.
+4o'o.
+4p'o.
+4r'o.
+4s'o.
+4t'o.
+4u'o.
+4f'o.
+4q'o.
+4y'o.
+4w'o.
+4a'u.
+4b'u.
+4g'u.
+4d'u.
+4e'u.
+4z'u.
+4h'u.
+4j'u.
+4i'u.
+4k'u.
+4l'u.
+4m'u.
+4n'u.
+4x'u.
+4o'u.
+4p'u.
+4r'u.
+4s'u.
+4t'u.
+4u'u.
+4f'u.
+4q'u.
+4y'u.
+4w'u.
+4a'w.
+4b'w.
+4g'w.
+4d'w.
+4e'w.
+4z'w.
+4h'w.
+4j'w.
+4i'w.
+4k'w.
+4l'w.
+4m'w.
+4n'w.
+4x'w.
+4o'w.
+4p'w.
+4r'w.
+4s'w.
+4t'w.
+4u'w.
+4f'w.
+4q'w.
+4y'w.
+4w'w.
+4a~a.
+4b~a.
+4g~a.
+4d~a.
+4e~a.
+4z~a.
+4h~a.
+4j~a.
+4i~a.
+4k~a.
+4l~a.
+4m~a.
+4n~a.
+4x~a.
+4o~a.
+4p~a.
+4r~a.
+4s~a.
+4t~a.
+4u~a.
+4f~a.
+4q~a.
+4y~a.
+4w~a.
+4a~h.
+4b~h.
+4g~h.
+4d~h.
+4e~h.
+4z~h.
+4h~h.
+4j~h.
+4i~h.
+4k~h.
+4l~h.
+4m~h.
+4n~h.
+4x~h.
+4o~h.
+4p~h.
+4r~h.
+4s~h.
+4t~h.
+4u~h.
+4f~h.
+4q~h.
+4y~h.
+4w~h.
+4a~i.
+4b~i.
+4g~i.
+4d~i.
+4e~i.
+4z~i.
+4h~i.
+4j~i.
+4i~i.
+4k~i.
+4l~i.
+4m~i.
+4n~i.
+4x~i.
+4o~i.
+4p~i.
+4r~i.
+4s~i.
+4t~i.
+4u~i.
+4f~i.
+4q~i.
+4y~i.
+4w~i.
+4a~u.
+4b~u.
+4g~u.
+4d~u.
+4e~u.
+4z~u.
+4h~u.
+4j~u.
+4i~u.
+4k~u.
+4l~u.
+4m~u.
+4n~u.
+4x~u.
+4o~u.
+4p~u.
+4r~u.
+4s~u.
+4t~u.
+4u~u.
+4f~u.
+4q~u.
+4y~u.
+4w~u.
+4a~w.
+4b~w.
+4g~w.
+4d~w.
+4e~w.
+4z~w.
+4h~w.
+4j~w.
+4i~w.
+4k~w.
+4l~w.
+4m~w.
+4n~w.
+4x~w.
+4o~w.
+4p~w.
+4r~w.
+4s~w.
+4t~w.
+4u~w.
+4f~w.
+4q~w.
+4y~w.
+4w~w.
+}
+\endinput
+
+
diff --git a/Master/texmf-dist/tex/plain/kurier/kurier-math.tex b/Master/texmf-dist/tex/plain/kurier/kurier-math.tex
new file mode 100644
index 00000000000..1e8cf5654d4
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/kurier/kurier-math.tex
@@ -0,0 +1,251 @@
+\catcode`@=11
+% roman text
+\font\seventeenrm= rm-kurierr at17.28pt
+\font\fourteenrm= rm-kurierr at14.4pt
+\font\twelverm= rm-kurierr at12pt
+\font\elevenrm= rm-kurierr at11pt
+\font\tenrm= rm-kurierr
+\font\ninerm= rm-kurierr at9pt
+\font\eightrm= rm-kurierr at8pt
+\font\sevenrm= rm-kurierr at7pt
+\font\sixrm= rm-kurierr at6pt
+\font\fiverm= rm-kurierr at5pt
+% math italic
+\font\seventeeni= mi-kurierri at17.28pt
+\font\fourteeni= mi-kurierri at14.4pt
+\font\twelvei= mi-kurierri at12pt
+\font\eleveni= mi-kurierri at11pt
+\font\teni= mi-kurierri
+\font\ninei= mi-kurierri at9pt
+\font\eighti= mi-kurierri at8pt
+\font\seveni= mi-kurierri at7pt
+\font\sixi= mi-kurierri at6pt
+\font\fivei= mi-kurierri at5pt
+% math symbols
+\font\seventeensy= sy-kurierrz at17.28pt
+\font\fourteensy= sy-kurierrz at14.4pt
+\font\twelvesy= sy-kurierrz at12pt
+\font\elevensy= sy-kurierrz at11pt
+\font\tensy= sy-kurierrz
+\font\ninesy= sy-kurierrz at9pt
+\font\eightsy= sy-kurierrz at8pt
+\font\sevensy= sy-kurierrz at7pt
+\font\sixsy= sy-kurierrz at6pt
+\font\fivesy= sy-kurierrz at5pt
+% math extension
+\font\seventeenex= ex-kurierr at17.28pt
+\font\fourteenex= ex-kurierr at14.4pt
+\font\twelveex= ex-kurierr at12pt
+\font\elevenex= ex-kurierr at11pt
+\font\tenex= ex-kurierr
+\font\nineex= ex-kurierr at9pt
+\font\eightex= ex-kurierr at8pt
+\font\sevenex= ex-kurierr at7pt
+\font\sixex= ex-kurierr at6pt
+\font\fiveex= ex-kurierr at5pt
+% boldface
+\font\seventeenbf= qx-kurierb at17.28pt
+\font\fourteenbf= qx-kurierb at14.4pt
+\font\twelvebf= qx-kurierb at12pt
+\font\elevenbf= qx-kurierb at11pt
+\font\tenbf= qx-kurierb
+\font\ninebf= qx-kurierb at9pt
+\font\eightbf= qx-kurierb at8pt
+\font\sevenbf= qx-kurierb at7pt
+\font\sixbf= qx-kurierb at6pt
+\font\fivebf= qx-kurierb at5pt
+% typewriter
+\font\seventeentt= qx-lmtt12 at17.28pt
+\font\fourteentt= qx-lmtt12 at14.4pt
+\font\twelvett= qx-lmtt12
+\font\eleventt= qx-lmtt10 at11pt
+\font\tentt= qx-lmtt10
+\font\ninett= qx-lmtt9
+\font\eighttt= qx-lmtt8
+\font\seventt= qx-lmtt8 at7pt
+\font\sixtt= qx-lmtt8 at6pt
+\font\fivett= qx-lmtt8 at5pt
+% text italic
+\font\seventeenit= qx-kurierri at17.28pt
+\font\fourteenit= qx-kurierri at14.4pt
+\font\twelveit= qx-kurierri at12pt
+\font\elevenit= qx-kurierri at11pt
+\font\tenit= qx-kurierri
+\font\nineit= qx-kurierri at9pt
+\font\eightit= qx-kurierri at8pt
+\font\sevenit= qx-kurierri at7pt
+\font\sixit= qx-kurierri at6pt
+\font\fiveit= qx-kurierri at5pt
+%
+\skewchar\seventeeni='177 \skewchar\fourteeni='177 \skewchar\twelvei='177
+\skewchar\eleveni='177 \skewchar\teni='177 \skewchar\ninei='177
+\skewchar\eighti='177 \skewchar\seveni='177 \skewchar\sixi='177
+\skewchar\fivei='177
+\skewchar\seventeensy='60 \skewchar\fourteensy='60 \skewchar\twelvesy='60
+\skewchar\elevensy='60 \skewchar\tensy='60 \skewchar\ninesy='60
+\skewchar\eightsy='60 \skewchar\sevensy='60 \skewchar\sixsy='60
+\skewchar\fivesy='60
+%
+\let\usereightpointmacro=\relax
+\def\eightpoint{\let\pointsize=\eightpoint
+ \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\eightrm}%
+ \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eighti}%
+ \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\eightit
+ \def\it{\fam\itfam\eightit}%
+ \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\ttfam=\eighttt \def\tt{\fam\ttfam\eighttt}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usereightpointmacro}
+%
+\let\userninepointmacro=\relax
+\def\ninepoint{\let\pointsize=\ninepoint
+ \textfont0=\ninerm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\ninerm}%
+ \textfont1=\ninei \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\ninei}%
+ \textfont2=\ninesy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\nineit
+ \def\it{\fam\itfam\nineit}%
+ \textfont\bffam=\ninebf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\ttfam=\ninett \def\tt{\fam\ttfam\ninett}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userninepointmacro}
+%
+\let\usertenpointmacro=\relax
+\def\tenpoint{\let\pointsize=\tenpoint
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\tenrm}%
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\teni}%
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\tenit
+ \def\it{\fam\itfam\tenit}%
+ \textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\tenbf}%
+ \textfont\ttfam=\tentt \def\tt{\fam\ttfam\tentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to8.5\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to11.5\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to14.5\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to17.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usertenpointmacro}
+%
+\let\userelevenpointmacro=\relax
+\def\elevenpoint{\let\pointsize=\elevenpoint
+ \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\fiverm
+ \def\rm{\fam\z@\elevenrm}%
+ \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\fivei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\eleveni}%
+ \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\fivesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\elevenex \scriptfont3=\elevenex \scriptscriptfont3=\elevenex%
+ \textfont\itfam=\elevenit
+ \def\it{\fam\itfam\elevenit}%
+ \textfont\bffam=\elevenbf \scriptfont\bffam=\eightbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\bf{\fam\bffam\elevenbf}%
+ \textfont\ttfam=\eleventt \def\tt{\fam\ttfam\eleventt}%
+ \def\big##1{{\hbox{$\left##1\vbox to9.3\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to12.6\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to16\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to19.2\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userelevenpointmacro}
+%
+\let\usertwelvepointmacro=\relax
+\def\twelvepoint{\let\pointsize=\twelvepoint
+ \textfont0=\twelverm \scriptfont0=\ninerm \scriptscriptfont0=\sixrm
+ \def\rm{\fam\z@\twelverm}%
+ \textfont1=\twelvei \scriptfont1=\ninei \scriptscriptfont1=\sixi
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\twelvei}%
+ \textfont2=\twelvesy \scriptfont2=\ninesy \scriptscriptfont2=\sixsy
+ \def\cal{\fam\tw@}%
+ \textfont3=\twelveex \scriptfont3=\twelveex \scriptscriptfont3=\twelveex%
+ \textfont\itfam=\twelveit
+ \def\it{\fam\itfam\twelveit}%
+ \textfont\bffam=\twelvebf \scriptfont\bffam=\ninebf
+ \scriptscriptfont\bffam=\sixbf
+ \def\bf{\fam\bffam\twelvebf}%
+ \textfont\ttfam=\twelvett \def\tt{\fam\ttfam\twelvett}%
+ \def\big##1{{\hbox{$\left##1\vbox to10.2\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to13.8\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to17.4\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to21\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \usertwelvepointmacro}
+%
+\let\userfourteenpointmacro=\relax
+\def\fourteenpoint{\let\pointsize=\fourteenpoint
+ \textfont0=\fourteenrm \scriptfont0=\tenrm \scriptscriptfont0=\sevenrm
+ \def\rm{\fam\z@\fourteenrm}%
+ \textfont1=\fourteeni \scriptfont1=\teni \scriptscriptfont1=\seveni
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\fourteeni}%
+ \textfont2=\fourteensy \scriptfont2=\tensy \scriptscriptfont2=\sevensy
+ \def\cal{\fam\tw@}%
+ \textfont3=\fourteenex \scriptfont3=\fourteenex \scriptscriptfont3=\fourteenex%
+ \textfont\itfam=\fourteenit
+ \def\it{\fam\itfam\fourteenit}%
+ \textfont\bffam=\fourteenbf \scriptfont\bffam=\tenbf
+ \scriptscriptfont\bffam=\sixbf
+ \def\bf{\fam\bffam\fourteenbf}%
+ \textfont\ttfam=\fourteentt \def\tt{\fam\ttfam\fourteentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to11.9\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to16.1\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to20.3\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to24.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userfourteenpointmacro}
+%
+\newcount\antttext \antttext=10
+\let\userseventeenpointmacro=\relax
+\def\seventeenpoint{\let\pointsize=\seventeenpoint
+ \textfont0=\seventeenrm \scriptfont0=\twelverm \scriptscriptfont0=\ninerm
+ \textfont1=\seventeeni \scriptfont1=\twelvei \scriptscriptfont1=\ninei
+ \def\mit{\fam\@ne}\def\oldstyle{\fam\@ne\seventeeni}%
+ \textfont2=\seventeensy \scriptfont2=\twelvesy \scriptscriptfont2=\ninesy
+ \def\cal{\fam\tw@}%
+ \textfont3=\seventeenex \scriptfont3=\seventeenex \scriptscriptfont3=\seventeenex%
+ \textfont\itfam=\seventeenit
+ \textfont\bffam=\seventeenbf \scriptfont\bffam=\twelvebf
+ \scriptscriptfont\bffam=\ninebf
+ \textfont\ttfam=\seventeentt
+ \def\rm{\fam\z@\seventeenrm}%
+ \def\bf{\fam\bffam\seventeenbf}%
+ \def\it{\fam\itfam\seventeenit}%
+ \def\tt{\fam\ttfam\seventeentt}%
+ \def\big##1{{\hbox{$\left##1\vbox to15.3\p@{}\right.\n@space$}}}%
+ \def\Big##1{{\hbox{$\left##1\vbox to20.7\p@{}\right.\n@space$}}}%
+ \def\bigg##1{{\hbox{$\left##1\vbox to26.1\p@{}\right.\n@space$}}}%
+ \def\Bigg##1{{\hbox{$\left##1\vbox to31.5\p@{}\right.\n@space$}}}%
+ \setnormalsp@cing \userseventeenpointmacro}
+%
+\newtoks\baselinefactor \baselinefactor={1.2}
+\def\setnormalsp@cing{%
+ \rm % set the em properly
+ \normalbaselineskip=\the\baselinefactor em\relax
+ \normalbaselines
+ \abovedisplayskip=1.2em plus .3em minus .9em%
+ \abovedisplayshortskip=0em plus .3em%
+ \belowdisplayskip=1.2em plus .3em minus .9em%
+ \belowdisplayshortskip=.7em plus .3em minus .4em%
+ \setbox\strutbox=\hbox{\vrule height .7\baselineskip
+ depth .3\baselineskip width\z@}}
+%
+\catcode`@=12 % at signs are no longer letters
+\endinput
diff --git a/Master/texmf-dist/tex/plain/levy/greekmacros.tex b/Master/texmf-dist/tex/plain/levy/greekmacros.tex
new file mode 100644
index 00000000000..8e88c6a645b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/levy/greekmacros.tex
@@ -0,0 +1,51 @@
+\def\ifnextchar#1#2#3{\let\tempe #1\def\tempa{#2}\def\tempb{#3}\futurelet
+ \tempc\ifnch}
+\def\ifnch{\ifx\tempc\tempe\let\tempd\tempa\else\let\tempd\tempb\fi\tempd}
+\def\gobble#1{}
+\font\tengr=grreg10
+\font\tengrbf=grbld10
+\font\tengrtt=grtt10
+\def\greekmode{%
+\catcode`\<=13
+\catcode`\>=13
+\catcode`\'=11
+\catcode`\`=11
+\catcode`\~=11
+\catcode`\"=11
+\catcode`\|=11
+\lccode`\<=`\<%
+\lccode`\>=`\>%
+\lccode`\'=`\'%
+\lccode`\`=`\`%
+\lccode`\~=`\~%
+\lccode`\"=`\"%
+\lccode`\|=`\|%
+\tengr\def\bf{\tengrbf}\def\tt{\tengrtt}}
+\newcount\vwl
+\newcount\acct
+\def\lt{<}
+\def\gt{>}
+{
+ \greekmode
+ \gdef>{\ifnextchar `{\expandafter\smoothgrave\gobble}{\char\lq\>}}
+ \gdef<{\ifnextchar `{\expandafter\roughgrave\gobble}{\char\lq\<}}
+ \gdef\smoothgrave#1{\acct=\rq137 \vwl=\lq#1 \dobreathinggrave}
+ \gdef\roughgrave#1{\acct=\rq103 \vwl=\lq#1 \dobreathinggrave}
+ \gdef\dobreathinggrave{\ifnum\vwl\lt\rq140 %if uppercase
+ \char\the\acct\char\the\vwl\else\expandafter\testiota\fi}
+ \gdef\testiota{\ifnextchar |{\addiota\doaccent\gobble}{\doaccent}}
+ \gdef\addiota{\ifnum\vwl=\lq a\vwl=\rq370
+ \else\ifnum\vwl=\lq h\vwl=\rq371 \else\vwl=\rq372 \fi\fi}
+ \gdef\doaccent{\accent\the\acct \char\the\vwl\relax}
+}
+
+\newif\ifgreek\greekfalse
+
+\def\begingreek{\bgroup\greektrue\greekmode}
+\def\endgreek{\egroup}
+
+\let\math=$
+{\catcode`\$=13
+\gdef\greekdelims{\catcode`\$=13
+\def${\ifgreek\endgreek\else\begingreek\fi}
+\def\display{\math\math}\def\enddisplay{\math\math}}}
diff --git a/Master/texmf-dist/tex/plain/metatex/metatex.tex b/Master/texmf-dist/tex/plain/metatex/metatex.tex
new file mode 100644
index 00000000000..bb35b5368cc
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/metatex/metatex.tex
@@ -0,0 +1,205 @@
+% METATeX.TeX (RMCG19940730)
+
+% METATeX.TeX communicates TeX and METAFONT
+% Copyright (C) 2003, 2004 Ram\'on Casares
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the
+% Free Software Foundation, Inc.,
+% 59 Temple Place, Suite 330,
+% Boston, MA 02111-1307 USA
+
+%\message{V1.0 by RMCG 20031002}
+\message{V1.1 by RMCG 20040812} % mptopdf -> mtmp2pdf
+
+\chardef\MToldatcatcode=\catcode`\@\catcode`\@=11
+
+\newif\ifMTf@le % true if auxiliar.mf is found (second pass)
+\newif\ifMTmf % true if second pass and MF (not MPost) has drawn the figures
+\newwrite\MToutf@le
+\newread\MTinf@le
+\newbox\MTbox
+\newbox\MTb@x
+\newcount\MTn@
+\newdimen\MTxpos@
+\newdimen\MTypos@
+
+\openin\MTinf@le=auxiliar.mf % First see if the mf file exists
+\ifeof\MTinf@le \MTf@lefalse \else \MTf@letrue \fi
+\closein\MTinf@le
+
+\def\MTendmark{}
+{\obeylines\gdef\MTign@re#1
+ {\def\next{#1}\ifx\next\MTendmark \let\next\endgroup \else %
+ \let\next\MTign@re\fi \next}}
+{\obeylines\gdef\MTc@py#1
+ {\def\next{#1}\ifx\next\MTendmark \let\next\endgroup \else %
+ \immediate\write\MToutf@le{\next}\let\next\MTc@py\fi \next}}
+
+{\obeylines\gdef\MTign@reline#1
+ {\endgroup}}
+{\obeylines\gdef\MTc@pyline#1
+ {\immediate\write\MToutf@le{#1}\endgroup}}
+
+\def\MTsetupc@py{\def\do##1{\catcode`##1=12 }\dospecials
+ \catcode`\\=0 \let\\=\MTbackslash \obeyspaces\obeylines}
+
+\def\MTmf@mp{\ifeof\MTinf@le
+ \errhelp={It seems to me that file auxiliar.mf has not been processed,
+ or that file auxiliar.log was deleted.}%
+ \errmessage{File auxiliar.log not found}%
+ \else
+ \read\MTinf@le to \next % reads METAXXXX banner
+ \def\MT@mf{METAFONT}%
+ \def\MT@##1 ##2 ##3,##4\MT@@{##3}% #1 = This, #2 = is, #3 = METAFONT ?
+ \edef\MTmeta{\expandafter\MT@\next\MT@@}%
+ \message{(Drawings made by \MTmeta)}%
+ \ifx\MTmeta\MT@mf \MTmftrue \else \MTmffalse \fi
+ \fi}
+
+\def\MTl@gl@b{\MTloglabel }
+\def\MTgetl@g{\ifeof\MTinf@le \let\next\relax
+ \errhelp={I was expecting to read a label location.}%
+ \errmessage{Unexpected end of auxiliar.log}%
+ \else \read\MTinf@le to \next
+ \ifx\next\MTl@gl@b \let\next\relax
+ {\catcode`\>=9
+ \global\read\MTinf@le to \MTxpos@text
+ \global\read\MTinf@le to \MTypos@text }%
+ \else \let\next\MTgetl@g \fi\fi \next}
+
+\escapechar=-1 \edef\MTbackslash{\string\\}\escapechar=`\\
+\def\MTslashing{\begingroup \escapechar=-1 \edef\\{\string\\}%
+ \edef\{{\string\{}\edef\}{\string\}}\edef\#{\string\#}%
+ \edef\${\string\$}\edef\^{\string\^}\edef\_{\string\_}%
+ \edef\&{\string\&}\edef\~{\string\~}\edef\%{\string\%}%
+ \escapechar=`\\}
+\let\MTendslashing=\endgroup
+
+\def\MTf@rst#1#2#3/{#1}\def\MTsec@nd#1#2#3/{#2}
+
+\ifMTf@le \message{Second TeX pass} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \openin\MTinf@le=auxiliar.log
+ \MTmf@mp
+ \ifMTmf % METAFONT has written auxiliar.log
+ \font\MTfont=auxiliar \def\MTchar{\MTfont\char\MTn@}%
+ \else % MetaPost has written auxiliar.log
+ \ifx\pdfliteral\undefined
+ \def\MTchar{\special{psfile=auxiliar.\number\MTn@}}%
+ \else
+ \input mtmp2pdf
+ \def\MTchar{\MPtoPDF{auxiliar.\number\MTn@}}%
+ %\input supp-pdf.tex % Context
+ %\let\oldfinMPgrap=\finishMPgraphic % to avoid centering
+ %\def\finishMPgraphic{\xdef\MPxoffset{0}\xdef\MPyoffset{0}\oldfinMPgrap}%
+ %\def\MTchar{\convertMPtoPDF{auxiliar.\number\MTn@}{1}{1}}%
+ \fi
+ \fi
+ \def\MTcode{\begingroup\MTsetupc@py\MTign@re{ }}
+ \def\MT:{\begingroup\MTsetupc@py\MTign@reline}
+ \def\MTline#1{}
+ \def\MTbeginchar(#1,#2,#3);{\setbox\MTb@x=\hbox{\MTchar}%
+ \wd\MTb@x=#1\ht\MTb@x=#2\dp\MTb@x=#3\setbox\MTbox=\vtop{\box\MTb@x}}
+ \def\MTlabel#1(#2)#3"#4";{\setbox\MTb@x\hbox{#4}\MTgetl@g
+ \MTxpos@=\MTxpos@text pt \MTypos@=\MTypos@text pt \dimen@=\dp\MTbox
+ \setbox\MTbox=\vtop{\unvbox\MTbox\nointerlineskip
+ \def\1{\MTf@rst#3cc/}\def\2{\MTsec@nd#3cc/}%
+ \vbox to 0pt{\advance\dimen@\MTypos@ \kern-\dimen@
+ \if b\1\kern-\ht\MTb@x \else \if c\1\kern-0.5\ht\MTb@x \fi\fi
+ \hbox to 0pt{\kern\MTxpos@
+ \if r\2\kern-\wd\MTb@x \else \if c\2\kern-0.5\wd\MTb@x \fi\fi
+ \box\MTb@x\hss}\vss}}}
+ \def\MTendchar;{\global\advance\MTn@1 }
+\else \message{First TeX pass} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \let\MTfont=\nullfont
+ \let\MTchar=\relax
+ \tracinglostchars=0
+ \immediate\openout\MToutf@le=auxiliar.mf
+ \def\MTcode{\begingroup\MTsetupc@py\MTc@py{ }}
+ \def\MT:{\begingroup\MTsetupc@py\MTc@pyline}
+ \def\MTline#1{\MTslashing\immediate\write\MToutf@le{#1}\MTendslashing}
+ \def\MTbeginchar(#1,#2,#3);{%
+ \MTline{beginchar(\number\MTn@,#1\#,#2\#,#3\#); \% line \the\inputlineno}%
+ \global\setbox\MTbox=\vtop{}\wd\MTbox=#1\ht\MTbox=#2\dp\MTbox=#3}
+ \def\MTlabel#1(#2)#3"#4";{{\setbox0=\hbox{#4}%
+ \def\1{\MTf@rst#3cc/}\def\2{\MTsec@nd#3cc/}%
+ \MTline{ MTlabel(#2)("\1","\2","#1",\the\wd0,\the\ht0,\the\dp0);}}}
+ \def\MTendchar;{\MTline{endchar;}\MTline{}\global\advance\MTn@1 }
+\fi
+
+\MT:% Generated by METATeX
+\MT:
+\MT: mag:=\number\mag/1000;
+\MT:
+\MT: truept = pt/mag; truept# = pt#/mag;
+\MT: truepc = pc/mag; truepc# = pc#/mag;
+\MT: truein = in/mag; truein# = in#/mag;
+\MT: truebp = bp/mag; truebp# = bp#/mag;
+\MT: truecm = cm/mag; truecm# = cm#/mag;
+\MT: truemm = mm/mag; truemm# = mm#/mag;
+\MT: truedd = dd/mag; truedd# = dd#/mag;
+\MT: truecc = cc/mag; truecc# = cc#/mag;
+\MT:
+\MT:if known prologues: % if mpost:
+\MT:
+\MT: mm#=2.84528; pt#=1; dd#=1.07001; bp#=1.00375;
+\MT: cm#=28.45276; pc#=12; cc#=12.84010; in#=72.27;
+\MT:
+\MT: string extra_setup, extra_beginchar, extra_endchar;
+\MT: extra_setup = extra_beginchar = extra_endchar = "";
+\MT:
+\MT: def mode_setup =
+\MT: proofing:=0; % no, we're not making proofs
+\MT: fontmaking:=0; % no, we're not making a font
+\MT: tracingtitles:=0; % no, don't show titles at all
+\MT: scantokens extra_setup;
+\MT: enddef;
+\MT:
+\MT: def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+\MT: begingroup
+\MT: charcode:=c;
+\MT: w:=w_sharp*pt; h:=h_sharp*pt; d:=d_sharp*pt;
+\MT: clearxy; clearit; clearpen;
+\MT: pickup defaultpen;
+\MT: drawoptions();
+\MT: scantokens extra_beginchar;
+\MT: enddef;
+\MT:
+\MT: def endchar =
+\MT: scantokens extra_endchar;
+\MT: shipit;
+\MT: endgroup
+\MT: enddef;
+\MT:
+\MT:else: % mf
+\MT: mode:=localfont;
+\MT:fi
+\MT:
+\MT:mode_setup;
+\MT:
+\MT:def MTlabel(suffix i)(expr v,h,add,wd,ht,dp) =
+\MT: x.i.l = x.i if h="c": - wd/2 elseif h="r": - wd fi;
+\MT: y.i.t = y.i if v="c": + ht/2 elseif v="b": + ht fi;
+\MT: x.i.r = x.i.l + wd; y.i.b = y.i.t - ht - dp;
+\MT: if not (add=""): erase fill (x.i.l,y.i.t) --
+\MT: (x.i.l,y.i.b) -- (x.i.r,y.i.b) -- (x.i.r,y.i.t) -- cycle; fi
+\MT: message"\\MTloglabel"; show x\\i/pt; show y\\i/pt; message"";
+\MT:enddef;
+\MT:
+
+\let\texbye=\bye
+\outer\def\bye{\ifMTf@le \closein\MTinf@le \else
+ \MTline{end.}\immediate\closeout\MToutf@le \fi
+ \par\vfill\supereject\end}
+
+\catcode`\@=\MToldatcatcode
diff --git a/Master/texmf-dist/tex/plain/misc/idxmac.tex b/Master/texmf-dist/tex/plain/misc/idxmac.tex
new file mode 100644
index 00000000000..3782293b690
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/misc/idxmac.tex
@@ -0,0 +1,200 @@
+%
+% idxmac.tex
+%
+% Most of the code in this file are excerpts from latex.tex and manmac.tex.
+% The actual style of the index environment \beginindex ... \endindex
+% at the end of this file is left empty.
+%
+%
+\def\makeatletter{\catcode`\@=11\relax}
+\def\makeatother{\catcode`\@=12\relax}
+\makeatletter
+\newif\if@filesw \@fileswtrue
+\newif\if@nobreak \@nobreakfalse
+\def\@makeother#1{\catcode`#112\relax}
+\def\newwrite{\alloc@7\write\chardef\sixt@@n}
+\newwrite\@unused
+\def\typeout#1{{\let\protect\string\immediate\write\@unused{#1}}}
+
+% ****************************************
+% * PAGE NUMBERING *
+% ****************************************
+%
+% Page numbers are produced by a page counter, used just like any other
+% counter. The only difference is that \c@page contains the number of
+% the next page to be output (the one currently being produced), rather
+% than one minus it. Thus, it is normally initialized to 1 rather than
+% 0. \c@page is defined to be \count0, rather than a count assigned by
+% \newcount.
+%
+% The user sets the pagenumber style with the \pagenumbering{FOO}
+% command, which sets the page counter to 1 and defines \thepage to be
+% \FOO. For example, \pagenumbering{roman} causes pages to be numbered
+% i, ii, etc.
+
+% Numbering commands for definitions of \theCOUNTER and \list arguments.
+% \fnsymbol produces the standard footnoting symbols: asterisk, dagger, etc.
+% They can be used only in math mode.
+
+\def\arabic#1{\@arabic{\@nameuse{c@#1}}}
+\def\roman#1{\@roman{\@nameuse{c@#1}}}
+\def\Roman#1{\@Roman{\@nameuse{c@#1}}}
+\def\alph#1{\@alph{\@nameuse{c@#1}}}
+\def\Alph#1{\@Alph{\@nameuse{c@#1}}}
+\def\fnsymbol#1{\@fnsymbol{\@nameuse{c@#1}}}
+
+\def\@arabic#1{\ifnum #1>0 \number #1\fi}
+\def\@roman#1{\romannumeral #1}
+\def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}}
+\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
+\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or
+ z\else\@ctrerr\fi}
+\def\@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi}
+\def\@Ialph#1{\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or
+ K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or
+ Z\else\@ctrerr\fi}
+\def\@fnsymbol#1{\ifcase#1\or *\or \dagger\or \ddagger\or
+ \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
+ \or \ddagger\ddagger \else\@ctrerr\fi\relax}
+
+\countdef\c@page=0 \c@page=1
+\def\cl@page{}
+\def\pagenumbering#1{\global\c@page \@ne \gdef\thepage{\csname @#1\endcsname
+ \c@page}}
+\pagenumbering{arabic}
+
+% \@bsphack ... \@esphack
+% used by macros such as \index and \begin{@float} ... \end{@float}
+% that want to be invisible -- i.e.,
+% not leave any extra space when used in the middle of text. Such
+% a macro should begin with \@bsphack and end with \@esphack
+% The macro in question should not create any text, nor change the
+% mode.
+%
+% \@bsphack ==
+% BEGIN
+% \dimen\@savsk := \lastskip
+% if hmode then \@savsf := \spacefactor fi
+% END
+%
+% \@esphack ==
+% BEGIN
+% if hmode
+% then \spacefactor := \@savsf
+% if \dimen\@savsk > 0pt then \ignorespaces
+% \global\ignoretrue fi
+% fi
+% END
+%
+
+\newdimen\@savsk
+\newcount\@savsf
+
+\def\@bsphack{\@savsk\lastskip
+ \ifhmode\@savsf\spacefactor\fi}
+
+\def\@esphack{\relax\ifhmode\spacefactor\@savsf
+ {}\ifdim \@savsk >\z@ \global\ignoretrue \ignorespaces
+ \fi \fi}
+
+% The command \@sanitize changes the catcode of all special characters
+% except for braces to 'other'. It can be used for commands like
+% \index that want to write their arguments verbatim. Needless to
+% say, this command should only be executed within a group, or chaos
+% will ensue.
+
+\def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&%
+\@makeother\#\@makeother\^\@makeother\^^K\@makeother\_\@makeother\^^A%
+\@makeother\%\@makeother\~}
+
+% ****************************************
+% * INDEX COMMANDS *
+% ****************************************
+%
+% \makeindex ==
+% BEGIN
+% if \@filesw = T
+% then open file \jobname.IDX as \indexfile
+% \index == BEGIN \@bsphack
+% \begingroup
+% re-\catcode special characters to 'other'
+% \wrindex
+% fi
+% END
+%
+% \wrindex{ITEM} ==
+% BEGIN
+% write of {\indexentry{ITEM}{page number}}
+% \endgroup
+% \@esphack
+% END
+
+% INITIALIZATION:
+%
+% \index == BEGIN \@bsphack
+% \begingroup
+% re-\catcode special characters (in case '%' there)
+% \index
+% END
+%
+% \index{ITEM} == BEGIN \endgroup \@esphack END
+%
+\def\makeindex{\if@filesw \newwrite\@indexfile
+ \immediate\openout\@indexfile=\jobname.idx
+ \def\index{\@bsphack\begingroup\@sanitize\@wrindex\@indexfile}
+ \typeout{Writing index file \jobname.idx }\fi}
+
+\def\@wrindex#1#2{\let\thepage\relax
+ \xdef\gtempa{\write#1{\string
+ \indexentry{#2}{\thepage}}}\endgroup\gtempa
+ \if@nobreak \ifvmode\@nobreak\fi\fi\@esphack}
+
+\def\index{\@bsphack\begingroup\@sanitize\@index}
+\def\@index#1{\endgroup\@esphack}
+
+\def\makeglossary{\if@@filesw \newwrite\@glossaryfile
+ \immediate\openout\@glossaryfile=\jobname.glo
+ \def\glossary{\@bsphack\begingroup\@sanitize\@wrindex\@glossaryfile}\typeout
+ {Writing glossary file \jobname.glo }\fi}
+
+\def\glossary{\@bsphack\begingroup\@sanitize\index}
+
+\newdimen\pagewidth
+\pagewidth=\hsize
+\newbox\partialpage
+\def\begindoublecolumns{\begingroup
+ \output={\global\setbox\partialpage=\vbox{\unvbox255\bigskip}}\eject
+ \output={\doublecolumnout} \hsize=14pc \vsize=89pc
+ \let\item\@idxitem}
+\def\enddoublecolumns{\output={\balancecolumns}\eject
+ \endgroup \pagegoal=\vsize}
+\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth
+ \dimen@=44pc \advance\dimen@ by-\ht\partialpage
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255 \penalty\outputpenalty}
+\def\pagesofar{\unvbox\partialpage
+ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
+\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0
+ \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by2 \splittopskip=\topskip
+ {\vbadness=10000 \loop \global\setbox3=\copy0
+ \global\setbox1=\vsplit3 to\dimen@
+ \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat}
+ \setbox0=\vbox to\dimen@{\unvbox1}
+ \setbox2=\vbox to\dimen@{\unvbox3}
+ \pagesofar}
+
+\def\@idxitem{\par\hangindent 40pt}
+\def\subitem{\par\hangindent 40pt \hskip 20pt}
+\def\subsubitem{\par\hangindent 40pt \hskip 30pt}
+\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
+
+\def\beginindex{\begingroup\let\item\@idxitem
+% Output opening routines go here
+}
+\def\endindex{
+% Output closing routines go here.
+\endgroup}
+\makeatother
diff --git a/Master/texmf-dist/tex/plain/misc/pdfcolor.tex b/Master/texmf-dist/tex/plain/misc/pdfcolor.tex
new file mode 100644
index 00000000000..f09ecbcb750
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/misc/pdfcolor.tex
@@ -0,0 +1,158 @@
+% Very simple macros to show how to use colors with pdftex
+
+\def\cmykGreenYellow{0.15 0 0.69 0}
+\def\cmykYellow{0 0 1 0}
+\def\cmykGoldenrod{0 0.10 0.84 0}
+\def\cmykDandelion{0 0.29 0.84 0}
+\def\cmykApricot{0 0.32 0.52 0}
+\def\cmykPeach{0 0.50 0.70 0}
+\def\cmykMelon{0 0.46 0.50 0}
+\def\cmykYellowOrange{0 0.42 1 0}
+\def\cmykOrange{0 0.61 0.87 0}
+\def\cmykBurntOrange{0 0.51 1 0}
+\def\cmykBittersweet{0 0.75 1 0.24}
+\def\cmykRedOrange{0 0.77 0.87 0}
+\def\cmykMahogany{0 0.85 0.87 0.35}
+\def\cmykMaroon{0 0.87 0.68 0.32}
+\def\cmykBrickRed{0 0.89 0.94 0.28}
+\def\cmykRed{0 1 1 0}
+\def\cmykOrangeRed{0 1 0.50 0}
+\def\cmykRubineRed{0 1 0.13 0}
+\def\cmykWildStrawberry{0 0.96 0.39 0}
+\def\cmykSalmon{0 0.53 0.38 0}
+\def\cmykCarnationPink{0 0.63 0 0}
+\def\cmykMagenta{0 1 0 0}
+\def\cmykVioletRed{0 0.81 0 0}
+\def\cmykRhodamine{0 0.82 0 0}
+\def\cmykMulberry{0.34 0.90 0 0.02}
+\def\cmykRedViolet{0.07 0.90 0 0.34}
+\def\cmykFuchsia{0.47 0.91 0 0.08}
+\def\cmykLavender{0 0.48 0 0}
+\def\cmykThistle{0.12 0.59 0 0}
+\def\cmykOrchid{0.32 0.64 0 0}
+\def\cmykDarkOrchid{0.40 0.80 0.20 0}
+\def\cmykPurple{0.45 0.86 0 0}
+\def\cmykPlum{0.50 1 0 0}
+\def\cmykViolet{0.79 0.88 0 0}
+\def\cmykRoyalPurple{0.75 0.90 0 0}
+\def\cmykBlueViolet{0.86 0.91 0 0.04}
+\def\cmykPeriwinkle{0.57 0.55 0 0}
+\def\cmykCadetBlue{0.62 0.57 0.23 0}
+\def\cmykCornflowerBlue{0.65 0.13 0 0}
+\def\cmykMidnightBlue{0.98 0.13 0 0.43}
+\def\cmykNavyBlue{0.94 0.54 0 0}
+\def\cmykRoyalBlue{1 0.50 0 0}
+\def\cmykBlue{1 1 0 0}
+\def\cmykCerulean{0.94 0.11 0 0}
+\def\cmykCyan{1 0 0 0}
+\def\cmykProcessBlue{0.96 0 0 0}
+\def\cmykSkyBlue{0.62 0 0.12 0}
+\def\cmykTurquoise{0.85 0 0.20 0}
+\def\cmykTealBlue{0.86 0 0.34 0.02}
+\def\cmykAquamarine{0.82 0 0.30 0}
+\def\cmykBlueGreen{0.85 0 0.33 0}
+\def\cmykEmerald{1 0 0.50 0}
+\def\cmykJungleGreen{0.99 0 0.52 0}
+\def\cmykSeaGreen{0.69 0 0.50 0}
+\def\cmykGreen{1 0 1 0}
+\def\cmykForestGreen{0.91 0 0.88 0.12}
+\def\cmykPineGreen{0.92 0 0.59 0.25}
+\def\cmykLimeGreen{0.50 0 1 0}
+\def\cmykYellowGreen{0.44 0 0.74 0}
+\def\cmykSpringGreen{0.26 0 0.76 0}
+\def\cmykOliveGreen{0.64 0 0.95 0.40}
+\def\cmykRawSienna{0 0.72 1 0.45}
+\def\cmykSepia{0 0.83 1 0.70}
+\def\cmykBrown{0 0.81 1 0.60}
+\def\cmykTan{0.14 0.42 0.56 0}
+\def\cmykGray{0 0 0 0.50}
+\def\cmykBlack{0 0 0 1}
+\def\cmykWhite{0 0 0 0}
+
+\def\GreenYellow{\pdfsetcolor{\cmykGreenYellow}}
+\def\Yellow{\pdfsetcolor{\cmykYellow}}
+\def\Goldenrod{\pdfsetcolor{\cmykGoldenrod}}
+\def\Dandelion{\pdfsetcolor{\cmykDandelion}}
+\def\Apricot{\pdfsetcolor{\cmykApricot}}
+\def\Peach{\pdfsetcolor{\cmykPeach}}
+\def\Melon{\pdfsetcolor{\cmykMelon}}
+\def\YellowOrange{\pdfsetcolor{\cmykYellowOrange}}
+\def\Orange{\pdfsetcolor{\cmykOrange}}
+\def\BurntOrange{\pdfsetcolor{\cmykBurntOrange}}
+\def\Bittersweet{\pdfsetcolor{\cmykBittersweet}}
+\def\RedOrange{\pdfsetcolor{\cmykRedOrange}}
+\def\Mahogany{\pdfsetcolor{\cmykMahogany}}
+\def\Maroon{\pdfsetcolor{\cmykMaroon}}
+\def\BrickRed{\pdfsetcolor{\cmykBrickRed}}
+\def\Red{\pdfsetcolor{\cmykRed}}
+\def\OrangeRed{\pdfsetcolor{\cmykOrangeRed}}
+\def\RubineRed{\pdfsetcolor{\cmykRubineRed}}
+\def\WildStrawberry{\pdfsetcolor{\cmykWildStrawberry}}
+\def\Salmon{\pdfsetcolor{\cmykSalmon}}
+\def\CarnationPink{\pdfsetcolor{\cmykCarnationPink}}
+\def\Magenta{\pdfsetcolor{\cmykMagenta}}
+\def\VioletRed{\pdfsetcolor{\cmykVioletRed}}
+\def\Rhodamine{\pdfsetcolor{\cmykRhodamine}}
+\def\Mulberry{\pdfsetcolor{\cmykMulberry}}
+\def\RedViolet{\pdfsetcolor{\cmykRedViolet}}
+\def\Fuchsia{\pdfsetcolor{\cmykFuchsia}}
+\def\Lavender{\pdfsetcolor{\cmykLavender}}
+\def\Thistle{\pdfsetcolor{\cmykThistle}}
+\def\Orchid{\pdfsetcolor{\cmykOrchid}}
+\def\DarkOrchid{\pdfsetcolor{\cmykDarkOrchid}}
+\def\Purple{\pdfsetcolor{\cmykPurple}}
+\def\Plum{\pdfsetcolor{\cmykPlum}}
+\def\Violet{\pdfsetcolor{\cmykViolet}}
+\def\RoyalPurple{\pdfsetcolor{\cmykRoyalPurple}}
+\def\BlueViolet{\pdfsetcolor{\cmykBlueViolet}}
+\def\Periwinkle{\pdfsetcolor{\cmykPeriwinkle}}
+\def\CadetBlue{\pdfsetcolor{\cmykCadetBlue}}
+\def\CornflowerBlue{\pdfsetcolor{\cmykCornflowerBlue}}
+\def\MidnightBlue{\pdfsetcolor{\cmykMidnightBlue}}
+\def\NavyBlue{\pdfsetcolor{\cmykNavyBlue}}
+\def\RoyalBlue{\pdfsetcolor{\cmykRoyalBlue}}
+\def\Blue{\pdfsetcolor{\cmykBlue}}
+\def\Cerulean{\pdfsetcolor{\cmykCerulean}}
+\def\Cyan{\pdfsetcolor{\cmykCyan}}
+\def\ProcessBlue{\pdfsetcolor{\cmykProcessBlue}}
+\def\SkyBlue{\pdfsetcolor{\cmykSkyBlue}}
+\def\Turquoise{\pdfsetcolor{\cmykTurquoise}}
+\def\TealBlue{\pdfsetcolor{\cmykTealBlue}}
+\def\Aquamarine{\pdfsetcolor{\cmykAquamarine}}
+\def\BlueGreen{\pdfsetcolor{\cmykBlueGreen}}
+\def\Emerald{\pdfsetcolor{\cmykEmerald}}
+\def\JungleGreen{\pdfsetcolor{\cmykJungleGreen}}
+\def\SeaGreen{\pdfsetcolor{\cmykSeaGreen}}
+\def\Green{\pdfsetcolor{\cmykGreen}}
+\def\ForestGreen{\pdfsetcolor{\cmykForestGreen}}
+\def\PineGreen{\pdfsetcolor{\cmykPineGreen}}
+\def\LimeGreen{\pdfsetcolor{\cmykLimeGreen}}
+\def\YellowGreen{\pdfsetcolor{\cmykYellowGreen}}
+\def\SpringGreen{\pdfsetcolor{\cmykSpringGreen}}
+\def\OliveGreen{\pdfsetcolor{\cmykOliveGreen}}
+\def\RawSienna{\pdfsetcolor{\cmykRawSienna}}
+\def\Sepia{\pdfsetcolor{\cmykSepia}}
+\def\Brown{\pdfsetcolor{\cmykBrown}}
+\def\Tan{\pdfsetcolor{\cmykTan}}
+\def\Gray{\pdfsetcolor{\cmykGray}}
+\def\Black{\pdfsetcolor{\cmykBlack}}
+\def\White{\pdfsetcolor{\cmykWhite}}
+
+\def\pdfsetcolor#1{\pdfliteral{#1 k}}
+\def\setcolor#1{\mark{#1}\pdfsetcolor{#1}}
+
+\pdfoutput=1
+\def\maincolor{\cmykBlack}
+\pdfsetcolor{\maincolor}
+
+\def\makefootline{
+ \baselineskip24pt
+ \line{\pdfsetcolor{\maincolor}\the\footline}}
+
+\def\makeheadline{%
+ \edef\M{\topmark}
+ \ifx\M\empty\let\M=\maincolor\fi
+ \vbox to 0pt{\vskip-22.5pt
+ \line{\vbox to8.5pt{}%
+ \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\M}}\vss}%
+ \nointerlineskip}
diff --git a/Master/texmf-dist/tex/plain/misc/placeins.tex b/Master/texmf-dist/tex/plain/misc/placeins.tex
new file mode 100644
index 00000000000..1f3a7211c47
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/misc/placeins.tex
@@ -0,0 +1,135 @@
+% P L A C E I N S . T E X ver 2.0 Mar 3, 1995
+%
+% By Donald Arseneau <asnd@reg.triumf.ca>
+%
+% Insertions that keep their place.
+%
+% This TeX file provides various mechanisms (for plain TeX and close
+% relatives) to let insertions (footnotes, topins, pageins, etc.) float
+% within their appropriate section, but to prevent them from intruding
+% into the following section, even when sections do not normally begin
+% a new page. (If your sections normally begin a new page, just use
+% \supereject to flush out insertions.)
+%
+% Different combinations of insertions can be controlled with different
+% commands:
+%
+% \par\penalty-20029
+% If there are any insertions that will not fit on the current page,
+% a \supereject is performed and the following text will continue at
+% the top of a page after all insertions. If all insertions do fit
+% on the current page, then the following text will continue
+% immediately on this page.
+% \par\penalty-20030
+% Like above, except that if there are any footnotes at all on the
+% current page, the section must begin on the next page. (This is so
+% no footnote text from section 1 will appear beneath the beginning
+% of section 2.)
+% \par\penalty-10029
+% If any insertions cannot fit on the current page, eject them, and
+% then allow the following section to begin immediately on the same
+% page as the last insert. If all insertions do fit on the current
+% page, then the following text will continue immediately on this
+% page.
+% \barrier{\eject}{\topins}
+% If there are any pageinserts or topinserts that do not fit on the
+% current page, eject them, and then allow the following section to
+% begin immediately on the same page as the last insert. Split
+% footnotes or other insertions are allowed to intrude into the next
+% section.
+% \barrier{\supereject}{\topins}
+% Like the \barrier command above, but if any inserts are ejected
+% the following section will begin at the top of a new page (like
+% \supereject).
+% \barrier{...}{\footins}
+% *** NOT ALLOWED *** You will get spurious space and footnote-rules
+% at the bottom of pages!
+% \barrier{...}{\margins}
+% If you define other insertion classes, such as marginal notes, you
+% can use \barrier for them too. But only if \skip\margins=0pt.
+% You must also add any new insertion classes to the definition of
+% \placerestoreoutput
+%
+% How to use: First, \input this file (of course!). Then, at the beginning
+% of a new section, or at any boundary that insertions should not cross, put
+% one of the commands listed above. Presumably, you will actually put these
+% commands at the start of your own \section or \startsection macro; that is
+% why they are non mnemonic!
+%
+% There is a slight chance that a footnote may be separated from its reference
+% in the text after \penalty-xxxxx when there are no split insertions. (LaTeX
+% has the same possibility at every float!)
+
+\chardef\noplaceoutput\catcode`\@
+\catcode`\@=11
+
+\edef\zero@skip{\the\z@skip}
+
+\def\barrier#1#2{\par\begingroup
+ \ifdim\skip#2>\z@{\newlinechar10\errhelp{\barrier#2may produce some spurious
+ extra material on the page, ^^J but I will try anyway.}\errmessage{Bad use
+ of \string\barrier}}%
+ \fi
+ \skip@\lastskip \edef\next{\the\skip@}\ifx\next\zero@skip\else\vskip-\skip@\fi
+ \penalty\z@ % update page parameters
+ \fam-\insertpenalties
+ \insert#2{\floatingpenalty\@ne}%
+ \ifx\next\zero@skip\else\vskip\skip@\fi
+ \advance\fam\insertpenalties % 0: no held; 1: held over
+ \expandafter\endgroup
+ \ifnum\fam=\@ne % then do eject
+% \message{There are held-over \string#2 inserts; performing \string#1. }%
+ \ifdim\pagetotal<\topskip \leftline{}\kern-\topskip\fi % avoid empty list
+ {\dimen@\pagetotal \advance\dimen@\pagedepth
+ \ifdim\dimen@<\pagegoal\vfill\fi}%
+ #1\@barrier{#1}{#2}\else
+% \message{There are no held-over \string#2 inserts. \space}%
+\fi
+}
+
+\def\placeinsoutput{%
+\ifnum\outputpenalty=-20030\relax % eject if any footnotes
+ \ifvoid\footins\else
+ \fam\insertpenalties \advance\fam\@ne \insertpenalties\fam
+ \fi \outputpenalty=-20029\relax
+\fi
+\ifnum\outputpenalty=-20029\relax % Check for `supereject' flag
+ \ifnum\insertpenalties>\z@ % something is being held over, must get it out
+% \message{Forcing insertions on their own pages. \space}%
+ \ifvoid\footins \r@ggedbottomtrue \else \advance\skip\footins 0ptplus1fil\fi
+ \noplaceoutput % performs \supereject
+ \else % must rejoin seamlessly:
+ \placerestoreoutput
+ \fi
+\else % check for other flag...
+ \ifnum\outputpenalty=-10028 % in the middle of ejecting
+ \ifnum\insertpenalties=\z@ \global\setbox\@cclv\vbox{}\fi
+ \outputpenalty=-10029
+ \fi
+ \ifnum\outputpenalty=-10029\relax % section start
+ \ifnum\insertpenalties>\z@ % something is being held over, must get it out
+% \message{Forcing insertions. \space}%
+ \ifvoid\footins \r@ggedbottomtrue \else \advance\skip\footins 0ptplus1fil\fi
+ \noplaceoutput % performs \eject, perhaps repeatedly:
+ \leftline{}\kern-\topskip \penalty-10028\relax % (like \dosupereject)
+ \else % must rejoin seamlessly:
+ \placerestoreoutput
+ \fi
+ \else % just a regular page break
+ \noplaceoutput
+ \fi
+\fi
+}
+
+% there is a slim chance that footnotes may lose their place.
+\def\placerestoreoutput{%
+ \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
+ \ifvoid\topins\else\insert\topins{\unvbox\topins}\fi
+% If you have other floating insertion classes, do the same here.
+ \unvbox\@cclv
+}
+
+\catcode`\@=\noplaceoutput
+
+\edef\noplaceoutput{\the\output}
+\output{\placeinsoutput}
diff --git a/Master/texmf-dist/tex/plain/misc/tugboat.def b/Master/texmf-dist/tex/plain/misc/tugboat.def
new file mode 100644
index 00000000000..de9957b5526
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/misc/tugboat.def
@@ -0,0 +1,1164 @@
+% -*-tex-*-
+% The following macros are used in TUGboat tables of contents.
+% This file may be automatically extended by tugboat.awk.
+% It may be used by plain TeX, LaTeX, or AmSTeX.
+% [04-Jun-1999]
+
+\ifx\makeatletter\undefined
+ \def\makeatletter{\catcode`\@=11\relax}
+ \def\makeatother{\catcode`\@=12\relax}
+\fi
+
+\makeatletter
+
+\font\manual=manfnt %logo10 doesn't have what we need
+\hyphenchar\manual=-1
+
+\chardef\bs=`\\
+
+\newbox\T@stBox \newbox\TestBox
+\newcount\T@stCount \newcount\TestCount
+\newdimen\T@stDimen \newdimen\TestDimen
+\newif\ifT@stIf \newif\ifTestIf
+
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\AMS{American Mathematical Society}
+\def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox
+ {\the\textfont2 M}\kern-.125em{\the\textfont2 S}}
+\def\AMSTeX{\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex
+ \hbox{$\cal M$}\kern-.2em\cal S$-\TeX}}
+\let\AmSTeX=\AMSTeX
+\def\archiTeX{\lower.5ex\hbox{A}\kern-.18em rch\i\kern-.1em \TeX}
+\def\bull{\vrule height 1ex width .8ex depth -.2ex } % square bullet
+\def\cents{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}}
+\def\comment#1\endcomment{} % AMS-TeX not loaded
+\def\BaSiX{{B\kern-.18em\lower.45ex\hbox{A}\kern-.15em S
+ \kern-.4em\lower.45ex\hbox{I}\kern-.1em X}}
+\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025emb}\kern-.08em\TeX}}
+\def\Dash{\d@sh{---}}
+\def\d@sh#1{\nobreak\thinspace#1\penalty0\thinspace}
+\def\dash{\d@sh{--}}
+\def\DVItoVDU{DVIto\kern-.12em VDU}
+\font\eightrm=cmr8
+\def\JemTeX{J\kern-.15em {\it{em}}\kern-.1em\TeX}
+\def\JoT{{\sl The Joy of \TeX}}
+\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
+\def\La{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em}}
+\def\latex{\LaTeX}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\MF{{\manual META}\-{\manual FONT}}
+\def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX}
+\def\MTH{$}
+\def\otr{{\sc otr}}
+\def\plain{{\tt plain}}
+\def\POBox{P.\thinspace O.~Box }
+\def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940}
+\def\Pas{Pascal}
+\def\PiCTeX{\PiC\kern-.11em\TeX}
+\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
+\def\PS{Post\-Script}
+\def\sb{_}
+\def\SC{Steering Committee}
+\def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}}
+\let\sltt=\tt
+\let\smc=\sc
+\def\sp{^}
+\def\SP{{\tt\char"20 }} % "visible" space
+\def\tex{\TeX}
+\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG}
+\def\TeXtures{\TestCount=\the\fam\TeX\kern-.1em$\fam\TestCount\scriptstyle
+ TURES$}
+\def\Tib{\TestCount=\the\fam \leavevmode T\kern-.1667em
+ $\fam\TestCount\scriptstyle I$b}
+\def\TUB{TUGboat}
+\ifx\tugstyloaded@\plaintubstyle
+ \def\tubissue#1(#2){\TUB~#1, no.~#2}
+\else
+ \def\tubissue#1#2{\TUB~#1, no.~#2}
+\fi
+\def\TUG{\TeX\ \UG}
+\def\UG{Users Group}
+\def\UNIX{{\sc unix}}
+\def\VAX{\leavevmode\hbox{V\kern-.12em A\kern-.1em X}}
+\def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX}
+\def\vrt{{\tt\char`\|}}
+\def\WEB{{\tt WEB}}
+%
+% Define \SMC to work with plain TeX, LaTeX, and AmSTeX.
+\ifx\small\undefined
+ \ifx\ninerm\undefined
+ \def\SMC{\tenrm}
+ \else
+ \def\SMC{\ninerm}
+ \fi
+\else
+ \def\SMC{\small}
+\fi
+%
+\ifx \ssf \undefined \let \ssf = \sf \fi
+\ifx \slMF \undefined \let \slMF = \MF \fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\BaSiX{{B\kern-.18em\lower.45ex\hbox{A}\kern-.15em S
+ \kern-.4em\lower.45ex\hbox{I}\kern-.1em X}}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\otr{{\smc otr}}
+\def\postissno{1989 Conference Proceedings}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\LaTeXe{\LaTeX{}\kern.05em2$_{\textstyle\varepsilon}$}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+% \tensy is unknown in LaTeX-2e; this is a temporary workaround
+\ifx \undefined \tensy \font \tensy = cmsy10 \fi
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\CTAN{{\SMC CTAN}\spacefactor1000 }
+\def\HTML{{\SMC HTML}\spacefactor1000 }
+\def\MF{{\manual META}\-{\manual FONT}\spacefactor1000 }
+\def\MP{{\manual META}\-{\manual POST}\spacefactor1000 }
+\def\NTS{{\sc NTS}}
+\def\PDF{{\sc PDF}}
+\def\SGML{{\SMC SGML}\spacefactor1000 }
+\def\uktug{UK\,TUG}
+\def\XYMTeX{%
+ X\kern-.25em\smash{\raise.50ex\hbox{$\Upsilon$}}\kern-.25em{M}\kern-.1em\TeX}
+\def\acro#1{{\sc #1}}
+\ifx \undefined \tenss \let \tenss = \sf \fi
+%=======================================================================
+% End of hand-generated list of definitions. Additional ones are
+% appended here by tugboat.awk; most need to be eliminated manually,
+% and the remainder moved before the === line above.
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\NTG{{\smc NTG}}
+\def\Xy{{\smc Xy}}
+\def\TeXLive{\TeX{}Live}
+\def\eTeX{e\TeX{}}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+% End of Volume 19
+%=======================================================================
+% Start Volume 20
+% Adapted from c.t.t posting by Donald Arseneau, 26 May 93.
+\def\nth#1{\TestCount=#1\relax
+ \ifnum\TestCount <0 \multiply\TestCount by\m@ne \fi % subdue negatives
+ \T@stCount=\TestCount
+ \divide\T@stCount by 100 \multiply\T@stCount by 100
+ \advance\TestCount by-\T@stCount % n mod 100
+ \ifnum\TestCount >20 \T@stCount=\TestCount
+ \divide\T@stCount by 10 \multiply\T@stCount by 10
+ \advance\TestCount by-\T@stCount % n mod 10
+ \fi
+ \T@stCount=\the\fam\relax
+ $\fam\T@stCount#1^{\fam\T@stCount
+ \ifcase\TestCount th% 0th
+ \or st% 1st
+ \or nd% 2nd
+ \or rd% 3rd
+ \else th% nth
+ \fi
+ }$}
+%=======================================================================
+\makeatother
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+%=======================================================================
+\def\acro#1{{\small #1}}
+\def\CONTEXT% The \CONTEXT\ logo from the \CONTEXT\ sources
+ {C%
+ \kern-.0333emo%
+ \kern-.0333emn%
+ \kern-.0333em\-\TeX%
+ \kern-.0333emt}
+\def\Java{\acro{JAVA}}
+\def\NetBibTeX{{\smc Net}\BibTeX}
+\def\ninesmc{\small\sc}
+\def\PreTeX{Pre\kern -0.11em\-\TeX}
+\def\TeXML{\TeX\-\acro{ML}}
+\def\WARMreader{{\small\texttt{WARM}}\texttt{reader}}
+\def\XML{\acro{XML}}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2000 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+
+\def \Abstract {{\rm[}Abstract\/{\rm]}}
+\def \FDNTeX {\acro{FDN}\TeX}
+\def \GeX {G\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}
+\def \mathsPIC {\ssf maths\acro{PIC}}
+\def \NTS {$\cal{N}$\lower.5ex\hbox{$\cal{T}$}$\cal{S}$}
+\def \PDF {\acro{PDF}}
+\def \TeXLive {{\bf\TeX{} Live}}
+\def \UPSILON {$\Upsilon$}
+\def \XML {\acro{XML}}
+\def \XyM {X\kern-.25em\smash{\raise.50ex\hbox{\UPSILON}}\kern-.25em{M}}
+\def \XyMTeX {\XyM\kern-.1em\TeX}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2000 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2000 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2000 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2001 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2002 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2000 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2001 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{2002 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{1989 Conference Proceedings}
+\def\otr{{\smc otr}}
+\def\postissno{1990 Annual Meeting Proceedings}
+\def\postissno{}
+\def\postissno{\TeX90 Conference Proceedings}
+\def\gaelmhodh#1{%
+\if a#1\'a\else\if A#1\'A%
+\else\if e#1\'e\else\if E#1\'E%
+\else\if i#1\'{\char16}\else\if I#1\'I%
+\else\if o#1\'o\else\if O#1\'O%
+\else\if u#1\'u\else\if U#1\'U%
+\else\if .#1/\else\.#1%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+\def\postissno{{\TUG} Resource Directory}
+\def\CSTUG{{\tensy C\kern-.1emS\kern-.05em}TUG}
+\def\uktug{UK\,TUG}
+\def\postissno{1991 TUG Conference Proceedings}
+\def\Mc{\setbox0=\hbox{M}\leavevmode\hbox{M\/\vbox to \ht0{\hbox{c}\vfil}}}
+\def\postissno{1992 Annual Meeting Proceedings}
+\def\<#1>{$\langle\hbox{\rm#1}\rangle$}
+\def\LexiTeX{{\rm\ \unskip\hbox{L%
+ \kern-.06em\hbox{\smc e}%
+ \kern-.05em\hbox{\smc x}%
+ \kern-.05em\lower.5ex\hbox{I}%
+ \kern-.18em\TeX}}}
+\def\NexTeX{N\kern-.2em\lower0.5ex\hbox{E}\kern-0.1emX\kern-0.2em\TeX}
+\def\postissno{1993 Annual Meeting Proceedings}
+\def\postissno{1994 Annual Meeting Proceedings}
+\def\postissno{1995 Annual Meeting Proceedings}
+\def\postissno{1996 Annual Meeting Proceedings}
+\def\postissno{1997 Annual Meeting Proceedings}
+\def\postissno{1998 Annual Meeting Proceedings}
+\def\postissno{1999 Annual Meeting Proceedings}
+\def\postissno{2000 Annual Meeting Proceedings}
+\def\postissno{2001 Annual Meeting Proceedings}
+\def\postissno{2002 Annual Meeting Proceedings}
+\def\AllTeX{(\La)\TeX}
+\def\THANH{H{\'a}n Th\^e\llap{\raise 0.5ex\hbox{\'{\relax}}} Th{\'a}nh}
+\def\ConTeXt{Con{\TeX}t}
+\def\Xypic{\Xy-pic}
+\def\LyX{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\spacefactor1000}
+\def\mathsPIC{\ssf maths\acro{PIC}}
+\def\curve{{\bf C}\kern-.32ex\raise-.3ex\hbox{u}\kern-.2ex r\kern-.25ex{\bf V}\kern-.6ex\raise-.3ex\hbox{e}}
diff --git a/Master/texmf-dist/tex/plain/misc/wasyfont.tex b/Master/texmf-dist/tex/plain/misc/wasyfont.tex
new file mode 100644
index 00000000000..7109ce06971
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/misc/wasyfont.tex
@@ -0,0 +1,172 @@
+% this is wasyfont.tex version 2.01--92/10
+\font\tenwasy = wasy10
+\font\wasyb = wasyb10
+\font\ninewasy = wasy9
+\font\eightwasy = wasy8
+\font\sevenwasy = wasy7
+\font\fivewasy = wasy5
+\newfam\wasyfam
+\newcount\wasyfamcount
+\wasyfamcount=\wasyfam \multiply\wasyfamcount by 256
+\def\wasy{\fam\wasyfam\tenwasy}
+\textfont\wasyfam=\tenwasy
+\scriptfont\wasyfam=\sevenwasy
+\scriptscriptfont\wasyfam=\fivewasy
+%%%%%% special macro
+\def\overstrike#1#2{{\setbox0\hbox{$#2$}\hbox to \wd0{\hss
+ $#1$\hss}\kern-\wd0\box0}}
+%%%%%% special symbols
+\def\male{\hbox{\wasy\char"1A}}
+\def\female{\hbox{\wasy\char"19}}
+\def\currency{{\wasy\char"1B}}
+\def\phone{{\wasy\char"07}}
+\def\recorder{{\wasy\char"06}}
+\def\clock{{\wasy\char"1C}}
+\def\lightning{{\wasy\char"12}}
+\def\pointer{{\wasy\char"09}}
+\def\RIGHTarrow{{\wasy\char"11}}
+\def\LEFTarrow{{\wasy\char"10}}
+\def\UParrow{{\wasy\char"4B}}
+\def\DOWNarrow{{\wasy\char"4C}}
+\def\AC{\hbox{\kern0.5pt\wasy\char"3A\kern0.5pt}}
+\def\HF{\lower0.9pt\hbox to 0pt{\kern0.5pt\wasy\char"3A\hss}%
+ \raise0.9pt\hbox{\kern0.5pt\wasy\char"3A\kern0.5pt}}
+\def\VHF{\hbox{\wasy\char"40}}
+\def\Box{\hbox{\wasy\char"32}}\let\Square\Box
+\def\XBox{\hbox{\wasy\char"34}}
+\def\Diamond{\hbox{\wasy\char"33}}
+\def\hexagon{\hbox{\wasy\char"37}}
+\def\pentagon{\hbox{\wasy\char"44}}
+\def\octagon{\hbox{\wasy\char"38}}
+\def\varhexagon{\hbox{\wasy\char"39}}
+\def\hexstar{\hbox{\wasy\char"41}}
+\def\varhexstar{\hbox{\wasy\char"42}}
+\def\davidsstar{\hbox{\wasy\char"43}}
+\def\diameter{\hbox{\wasy\char"1F}}
+\def\invdiameter{\hbox{\wasy\char"15}}
+\def\varangle{\hbox{\wasy\char"1E}}
+\def\lozenge{\hbox{\wasy\char"35}}
+\def\kreuz{\hbox{\wasy\char"36}}
+\def\smiley{\hbox{\wasy\char"2C}}
+\def\frownie{\hbox{\wasy\char"2F}}
+\def\blacksmiley{\hbox{\wasy\char"2D}}
+\def\sun{\hbox{\wasy\char"2E}}
+\def\checked{\hbox{\wasy\char"08}}
+\def\bell{\hbox{\wasy\char"0A}}
+\def\eighthnote{\hbox{\wasy\char"0B}}
+\def\quarternote{\hbox{\wasy\char"0C}}
+\def\halfnote{\hbox{\wasy\char"0D}}
+\def\fullnote{\hbox{\wasy\char"0E}}
+\def\twonotes{\hbox{\wasy\char"0F}}
+\def\brokenvert{\hbox{\wasy\char"7C}}
+\def\therefore{\hbox{\wasy\char"05}}
+\def\ataribox{\hbox{\wasy\char"6D}}
+\def\Circle{\hbox{\wasy\char"23}}
+\def\CIRCLE{\hbox{\wasy\char"20}}
+\def\Leftcircle{\hbox{\wasy\char"49}}
+\def\LEFTCIRCLE{\hbox{\wasy\char"47}}
+\def\Rightcircle{\hbox{\wasy\char"4A}}
+\def\RIGHTCIRCLE{\hbox{\wasy\char"48}}
+\def\LEFTcircle{\hbox to 0pt{\wasy\char"47\hss}\hbox{\wasy\char"23}}
+\def\RIGHTcircle{\hbox to 0pt{\wasy\char"48\hss}\hbox{\wasy\char"23}}
+%%%%%% astronomy
+\def\vernal{\hbox{\wasy\char"17}}
+\def\ascnode{\hbox{\wasy\char"13}}
+\def\descnode{\hbox{\wasy\char"14}}
+\def\fullmoon{\hbox{\wasy\char"23}}
+\def\newmoon{\hbox{\wasy\char"20}}
+\def\leftmoon{\hbox{\wasy\char"24}}
+\def\rightmoon{\hbox{\wasy\char"25}}
+\def\astrosun{\hbox{\tensy\char"0C}}
+\def\mercury{\hbox{\wasy\char"27}}
+\def\venus{\raise0.2ex\hbox{\wasy\char"19}}
+\def\earth{\lower0.3ex\hbox{\wasy\char"26}}
+\def\mars{\lower0.2ex\hbox{\wasy\char"1A}}
+\def\jupiter{\hbox{\wasy\char"58}}
+\def\saturn{\hbox{\wasy\char"59}}
+\def\uranus{\hbox{\wasy\char"5A}}
+\def\neptune{\hbox{\wasy\char"5B}}
+\def\pluto{\hbox{\wasy\char"5C}}
+\def\conjunction{\hbox{\wasy\char"56}}
+\def\opposition{\hbox{\wasy\char"57}}
+%%%%%% the zodiac
+\def\aries{\hbox{\wasy\char"17}}
+\def\taurus{\hbox{\wasy\char"5D}}
+\def\gemini{\hbox{\wasy\char"5E}}
+\def\cancer{\hbox{\wasy\char"5F}}
+\def\leo{\hbox{\wasy\char"13}}
+\def\virgo{\hbox{\wasy\char"60}}
+\def\libra{\hbox{\wasy\char"61}}
+\def\scorpio{\hbox{\wasy\char"62}}
+\def\sagittarius{\hbox{\wasy\char"63}}
+\def\capricornus{\hbox{\wasy\char"64}}
+\def\aquarius{\hbox{\wasy\char"65}}
+\def\pisces{\hbox{\wasy\char"66}}
+%%%%%% APL characters
+\def\APLstar{{\hbox{\wasy\char"45}}}
+\def\APLlog{{\hbox{\wasy\char"16}}}
+\def\APLbox{{\hbox{\wasy\char"7E}}}
+\def\APLup{{\hbox{\wasy\char"00}}}
+\def\APLdown{{\hbox{\wasy\char"46}}}
+\def\APLinput{{\hbox{\wasy\char"7D}}}
+\def\APLcomment{{\hbox{\wasy\char"7F}}}
+\def\APLinv{{\hbox to 0pt{\tensy\char"04\hss}\APLbox}}
+\def\APLuparrowbox{{\hbox{\wasy\char"6E}}}
+\def\APLdownarrowbox{{\hbox{\wasy\char"6F}}}
+\def\APLleftarrowbox{{\hbox{\wasy\char"70}}}
+\def\APLrightarrowbox{{\hbox{\wasy\char"71}}}
+\def\notbackslash{\overstrike{\backslash}{-}}
+\def\notslash{\overstrike{/}{-}}
+\def\APLnot#1{\overstrike{\sim}{#1}}
+\def\APLcirc#1{\overstrike{\circ}{#1}}
+\def\APLvert#1{\overstrike{\vert}{#1}}
+\def\APLminus{\raise0.7ex\hbox{$-$}}
+%%%%%% diagrams
+\def\photon{\hbox{\wasy\char"3A\char"3A\char"3A\char"3A}}
+\def\gluon{\hbox{\wasy\char"51\char"50\char"50\char"50%
+ \char"50\char"50\char"50\char"52}}
+%%%%%% math characters
+\def\Bowtie{\hbox{\wasy\char"31}}
+\def\leftturn{\hbox{\wasy\char"22}}
+\def\rightturn{\hbox{\wasy\char"21}}
+%%%%%% special characters
+\def\cent{\hbox{\wasy\char"67}}
+\def\permil{\hbox{\wasy\char"68}}
+\def\agemO{{\wasy\char"30}}
+\def\thorn{{\wasy\char"69}}
+\def\Thorn{{\wasy\char"6A}}
+\def\dh{{\wasy\char"6B}}
+\def\Dh{\leavevmode{\rm\setbox0\hbox{D}%
+ \hbox to\wd0{\kern 0.04em\char32\hss D}}}
+\def\openo{{\wasy\char"6C}}
+\def\inve{{\wasy\char"55}}
+%%%%%% math operators as mathchars
+\def\wasymathchardef#1#2{%
+ \count255=\wasyfamcount
+ \advance\count255 by"#1
+ \mathchardef#2\count255}
+\wasymathchardef{3001}{\lhd}
+\wasymathchardef{3003}{\rhd}
+\wasymathchardef{3010}{\LHD}
+\wasymathchardef{3011}{\RHD}
+\wasymathchardef{3002}{\unlhd}
+\wasymathchardef{3004}{\unrhd}
+\wasymathchardef{303C}{\sqsubset}
+\wasymathchardef{303D}{\sqsupset}
+\wasymathchardef{303E}{\apprle}
+\wasymathchardef{303F}{\apprge}
+\wasymathchardef{301D}{\varpropto}
+\wasymathchardef{0018}{\invneg}
+\wasymathchardef{303B}{\leadsto}
+\wasymathchardef{2023}{\ocircle}
+\wasymathchardef{3016}{\logof}
+\wasymathchardef{1072}{\varint}
+\wasymathchardef{1073}{\iint}
+\wasymathchardef{1074}{\iiint}
+\wasymathchardef{1075}{\varoint}
+\wasymathchardef{1076}{\oiint}
+%
+%%%%%% new definitions
+%
+\def\newpropto{\let\propto\varpropto}
+\def\newint{\let\int\varint \let\oint\varoint} % default limits
diff --git a/Master/texmf-dist/tex/plain/misc/xepsf.tex b/Master/texmf-dist/tex/plain/misc/xepsf.tex
new file mode 100644
index 00000000000..b2b1a4605c2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/misc/xepsf.tex
@@ -0,0 +1,219 @@
+% XEPSF.TEX macro file:
+% Same as EPSF.TEX except that it uses the ExactBoundingBox put out by
+% MetaPost under appropriate coding.
+%
+% (I made this unnecessary on 22 Jan 97 by changing MetaPost to
+% output the exact bounding box when prologues<0. But I retain this
+% file for compatibility with older uses of MetaPost, e.g. gbmac.tex.)
+%
+% Written by Tomas Rokicki of Radical Eye Software, 29 Mar 1989.
+% Revised by Don Knuth, 3 Jan 1990.
+% Revised by Tomas Rokicki to accept bounding boxes with no
+% space after the colon, 18 Jul 1990.
+%
+% TeX macros to include an Encapsulated PostScript graphic.
+% Works by finding the bounding box comment,
+% calculating the correct scale values, and inserting a vbox
+% of the appropriate size at the current position in the TeX document.
+%
+% To use with the center environment of LaTeX, preface the \epsffile
+% call with a \leavevmode. (LaTeX should probably supply this itself
+% for the center environment.)
+%
+% To use, simply say
+% \input epsf % somewhere early on in your TeX file
+% \epsfbox{filename.ps} % where you want to insert a vbox for a figure
+%
+% Alternatively, you can type
+%
+% \epsfbox[0 0 30 50]{filename.ps} % to supply your own BB
+%
+% which will not read in the file, and will instead use the bounding
+% box you specify.
+%
+% The effect will be to typeset the figure as a TeX box, at the
+% point of your \epsfbox command. By default, the graphic will have its
+% `natural' width (namely the width of its bounding box, as described
+% in filename.ps). The TeX box will have depth zero.
+%
+% You can enlarge or reduce the figure by saying
+% \epsfxsize=<dimen> \epsfbox{filename.ps}
+% (or
+% \epsfysize=<dimen> \epsfbox{filename.ps})
+% instead. Then the width of the TeX box will be \epsfxsize and its
+% height will be scaled proportionately (or the height will be
+% \epsfysize and its width will be scaled proportiontally). The
+% width (and height) is restored to zero after each use.
+%
+% A more general facility for sizing is available by defining the
+% \epsfsize macro. Normally you can redefine this macro
+% to do almost anything. The first parameter is the natural x size of
+% the PostScript graphic, the second parameter is the natural y size
+% of the PostScript graphic. It must return the xsize to use, or 0 if
+% natural scaling is to be used. Common uses include:
+%
+% \epsfxsize % just leave the old value alone
+% 0pt % use the natural sizes
+% #1 % use the natural sizes
+% \hsize % scale to full width
+% 0.5#1 % scale to 50% of natural size
+% \ifnum#1>\hsize\hsize\else#1\fi % smaller of natural, hsize
+%
+% If you want TeX to report the size of the figure (as a message
+% on your terminal when it processes each figure), say `\epsfverbosetrue'.
+%
+\newread\epsffilein % file to \read
+\newif\ifepsffileok % continue looking for the bounding box?
+\newif\ifepsfbbfound % success?
+\newif\ifepsfverbose % report what you're making?
+\newdimen\epsfxsize % horizontal size after scaling
+\newdimen\epsfysize % vertical size after scaling
+\newdimen\epsftsize % horizontal size before scaling
+\newdimen\epsfrsize % vertical size before scaling
+\newdimen\epsftmp % register for arithmetic manipulation
+\newdimen\pspoints % conversion factor
+%
+\pspoints=1bp % Adobe points are `big'
+\epsfxsize=0pt % Default value, means `use natural size'
+\epsfysize=0pt % ditto
+%
+\def\epsfbox#1{\global\def\epsfllx{72}\global\def\epsflly{72}%
+ \global\def\epsfurx{540}\global\def\epsfury{720}%
+ \def\lbracket{[}\def\testit{#1}\ifx\testit\lbracket
+ \let\next=\epsfgetlitbb\else\let\next=\epsfnormal\fi\next{#1}}%
+%
+\def\epsfgetlitbb#1#2 #3 #4 #5]#6{\epsfgrab #2 #3 #4 #5 .\\%
+ \epsfsetgraph{#6}}%
+%
+\def\epsfnormal#1{\epsfgetbb{#1}\epsfsetgraph{#1}}%
+%
+\def\epsfgetbb#1{%
+%
+% The first thing we need to do is to open the
+% PostScript file, if possible.
+%
+\openin\epsffilein=#1
+\ifeof\epsffilein\errmessage{I couldn't open #1, will ignore it}\else
+%
+% Okay, we got it. Now we'll scan lines until we find one that doesn't
+% start with %. We're looking for the bounding box comment.
+%
+ {\epsffileoktrue \chardef\other=12
+ \def\do##1{\catcode`##1=\other}\dospecials \catcode`\ =10
+ \loop
+ \read\epsffilein to \epsffileline
+ \ifeof\epsffilein\epsffileokfalse\else
+%
+% We check to see if the first character is a % sign;
+% if not, we stop reading (unless the line was entirely blank);
+% if so, we look further and stop only if the line begins with
+% `%%%ExactBoundingBox:'.
+%
+ \expandafter\epsfaux\epsffileline:. \\%
+ \fi
+ \ifepsffileok\repeat
+ \ifepsfbbfound\else
+ \ifepsfverbose\message{No bounding box comment in #1; using defaults}\fi\fi
+ }\closein\epsffilein\fi}%
+%
+% Now we have to calculate the scale and offset values to use.
+% First we compute the natural sizes.
+%
+\def\epsfclipstring{}% do we clip or not? If so,
+\def\epsfclipon{\def\epsfclipstring{ clip}}%
+\def\epsfclipoff{\def\epsfclipstring{}}%
+%
+\def\epsfsetgraph#1{%
+ \epsfrsize=\epsfury\pspoints
+ \advance\epsfrsize by-\epsflly\pspoints
+ \epsftsize=\epsfurx\pspoints
+ \advance\epsftsize by-\epsfllx\pspoints
+%
+% If `epsfxsize' is 0, we default to the natural size of the picture.
+% Otherwise we scale the graph to be \epsfxsize wide.
+%
+ \epsfxsize\epsfsize\epsftsize\epsfrsize
+ \ifnum\epsfxsize=0 \ifnum\epsfysize=0
+ \epsfxsize=\epsftsize \epsfysize=\epsfrsize
+ \epsfrsize=0pt
+%
+% We have a sticky problem here: TeX doesn't do floating point arithmetic!
+% Our goal is to compute y = rx/t. The following loop does this reasonably
+% fast, with an error of at most about 16 sp (about 1/4000 pt).
+%
+ \else\epsftmp=\epsftsize \divide\epsftmp\epsfrsize
+ \epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp
+ \multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp
+ \epsftmp=\epsfysize
+ \loop \advance\epsftsize\epsftsize \divide\epsftmp 2
+ \ifnum\epsftmp>0
+ \ifnum\epsftsize<\epsfrsize\else
+ \advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp \fi
+ \repeat
+ \epsfrsize=0pt
+ \fi
+ \else \ifnum\epsfysize=0
+ \epsftmp=\epsfrsize \divide\epsftmp\epsftsize
+ \epsfysize=\epsfxsize \multiply\epsfysize\epsftmp
+ \multiply\epsftmp\epsftsize \advance\epsfrsize-\epsftmp
+ \epsftmp=\epsfxsize
+ \loop \advance\epsfrsize\epsfrsize \divide\epsftmp 2
+ \ifnum\epsftmp>0
+ \ifnum\epsfrsize<\epsftsize\else
+ \advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp \fi
+ \repeat
+ \epsfrsize=0pt
+ \else
+ \epsfrsize=\epsfysize
+ \fi
+ \fi
+%
+% Finally, we make the vbox and stick in a \special that dvips can parse.
+%
+ \ifepsfverbose\message{#1: width=\the\epsfxsize, height=\the\epsfysize}\fi
+ \epsftmp=10\epsfxsize \divide\epsftmp\pspoints
+ \vbox to\epsfysize{\vfil\hbox to\epsfxsize{%
+ \ifnum\epsfrsize=0\relax
+ \special{PSfile=#1 llx=\epsfllx\space lly=\epsflly\space
+ urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp
+ \epsfclipstring}%
+ \else
+ \epsfrsize=10\epsfysize \divide\epsfrsize\pspoints
+ \special{PSfile=#1 llx=\epsfllx\space lly=\epsflly\space
+ urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp\space
+ rhi=\number\epsfrsize \epsfclipstring}%
+ \fi
+ \hfil}}%
+\global\epsfxsize=0pt\global\epsfysize=0pt}%
+%
+% We still need to define the tricky \epsfaux macro. This requires
+% a couple of magic constants for comparison purposes.
+%
+{\catcode`\%=12 \global\let\epsfpercent=%\global\def\epsfbblit{%%ExactBoundingBox}}%
+%
+% So we're ready to check for `%%ExactBoundingBox:' and to grab the
+% values if they are found.
+%
+\long\def\epsfaux#1#2:#3\\{\ifx#1\epsfpercent
+ \def\testit{#2}\ifx\testit\epsfbblit
+ \epsfgrab #3 . . . \\%
+ \epsffileokfalse
+ \global\epsfbbfoundtrue
+ \fi\else\ifx#1\par\else\epsffileokfalse\fi\fi}%
+%
+% Here we grab the values and stuff them in the appropriate definitions.
+%
+\def\epsfempty{}%
+\def\epsfgrab #1 #2 #3 #4 #5\\{%
+\global\def\epsfllx{#1}\ifx\epsfllx\epsfempty
+ \epsfgrab #2 #3 #4 #5 .\\\else
+ \global\def\epsflly{#2}%
+ \global\def\epsfurx{#3}\global\def\epsfury{#4}\fi}%
+%
+% We default the epsfsize macro.
+%
+\def\epsfsize#1#2{\epsfxsize}
+%
+% Finally, another definition for compatibility with older macros.
+%
+\let\epsffile=\epsfbox
diff --git a/Master/texmf-dist/tex/plain/mnras/mn.tex b/Master/texmf-dist/tex/plain/mnras/mn.tex
new file mode 100644
index 00000000000..cf6b0cbedcd
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/mnras/mn.tex
@@ -0,0 +1,3034 @@
+% MN.TEX (Computer Modern version)
+%
+% plain TeX single / double column macros for the
+% Monthly Notices of Royal Astronomical Society
+%
+% v1.5 (mn.tex) --- released 25th August 1994 (M. Reed)
+% v1.4 " --- released 22nd February 1994
+% v1.3 (mnd.tex) --- released 28th November 1992
+% v1.26 " --- released 1st August 1992
+% v1.25 " --- released 25th February 1992
+%
+% Copyright Cambridge University Press
+%
+% > Incorporating special symbol code from laa.sty v1.1 (25th Feb 1991)
+% used with the permission of Springer Verlag.
+% > Incorporating parts of mssymb.tex (8th July 1987).
+% > Incorporating NewFont.sty v ALPHA patchlevel 8 (16th August 1994).
+
+\catcode `\@=11 % @ signs are letters
+
+\def\@version{1.5}
+\def\@verdate{25th Aug 1994}
+
+
+% Fonts: Computer Modern / Monotype Times (CUP only)
+%
+% Font family sizes available:
+% 8pt, 9pt, 10pt, 11pt, 14pt and 17pt.
+%
+% Faces available:
+% \rm, math italic, symbol, \it, \bf, \sl, \tt, \sc, \sf, \cal, \em,
+% \mit and \oldstyle.
+
+% define the typeface in use
+
+\newif\ifprod@font
+
+\ifx\@typeface\undefined
+ \def\@typeface{Comp. Modern}\prod@fontfalse
+\else
+ \prod@fonttrue % We want Times
+\fi
+
+\def\newfam{\alloc@8\fam\chardef\sixt@@n} % made not outer
+
+\ifprod@font
+%
+\font\fiverm=mtr10 at 5pt
+\font\fivebf=mtbx10 at 5pt
+\font\fiveit=mtti10 at 5pt
+\font\fivesl=mtsl10 at 5pt
+\font\fivett=cmtt8 at 5pt \hyphenchar\fivett=-1
+\font\fivecsc=mtcsc10 at 5pt
+\font\fivesf=mtss10 at 5pt
+\font\fivei=mtmi10 at 5pt \skewchar\fivei='177
+\font\fivesy=mtsy10 at 5pt \skewchar\fivesy='60
+
+\font\sixrm=mtr10 at 6pt
+\font\sixbf=mtbx10 at 6pt
+\font\sixit=mtti10 at 6pt
+\font\sixsl=mtsl10 at 6pt
+\font\sixtt=cmtt8 at 6pt \hyphenchar\sixtt=-1
+\font\sixcsc=mtcsc10 at 6pt
+\font\sixsf=mtss10 at 6pt
+\font\sixi=mtmi10 at 6pt \skewchar\sixi='177
+\font\sixsy=mtsy10 at 6pt \skewchar\sixsy='60
+
+\font\sevenrm=mtr10 at 7pt
+\font\sevenbf=mtbx10 at 7pt
+\font\sevenit=mtti10 at 7pt
+\font\sevensl=mtsl10 at 7pt
+\font\seventt=cmtt8 at 7pt \hyphenchar\seventt=-1
+\font\sevencsc=mtcsc10 at 7pt
+\font\sevensf=mtss10 at 7pt
+\font\seveni=mtmi10 at 7pt \skewchar\seveni='177
+\font\sevensy=mtsy10 at 7pt \skewchar\sevensy='60
+
+\font\eightrm=mtr10 at 8pt
+\font\eightbf=mtbx10 at 8pt
+\font\eightit=mtti10 at 8pt
+\font\eighti=mtmi10 at 8pt \skewchar\eighti='177
+\font\eightsy=mtsy10 at 8pt \skewchar\eightsy='60
+\font\eightsl=mtsl10 at 8pt
+\font\eighttt=cmtt8 \hyphenchar\eighttt=-1
+\font\eightcsc=mtcsc10 at 8pt
+\font\eightsf=mtss10 at 8pt
+
+\font\ninerm=mtr10 at 9pt
+\font\ninebf=mtbx10 at 9pt
+\font\nineit=mtti10 at 9pt
+\font\ninei=mtmi10 at 9pt \skewchar\ninei='177
+\font\ninesy=mtsy10 at 9pt \skewchar\ninesy='60
+\font\ninesl=mtsl10 at 9pt
+\font\ninett=cmtt9 \hyphenchar\ninett=-1
+\font\ninecsc=mtcsc10 at 9pt
+\font\ninesf=mtss10 at 9pt
+
+\font\tenrm=mtr10
+\font\tenbf=mtbx10
+\font\tenit=mtti10
+\font\teni=mtmi10 \skewchar\teni='177
+\font\tensy=mtsy10 \skewchar\tensy='60
+\font\tenex=cmex10
+\font\tensl=mtsl10
+\font\tentt=cmtt10 \hyphenchar\tentt=-1
+\font\tencsc=mtcsc10
+\font\tensf=mtss10
+
+\font\elevenrm=mtr10 at 11pt
+\font\elevenbf=mtbx10 at 11pt
+\font\elevenit=mtti10 at 11pt
+\font\eleveni=mtmi10 at 11pt \skewchar\eleveni='177
+\font\elevensy=mtsy10 at 11pt \skewchar\elevensy='60
+\font\elevensl=mtsl10 at 11pt
+\font\eleventt=cmtt10 at 11pt \hyphenchar\eleventt=-1
+\font\elevencsc=mtcsc10 at 11pt
+\font\elevensf=mtss10 at 11pt
+
+\font\twelverm=mtr10 at 12pt
+\font\twelvebf=mtbx10 at 12pt
+\font\twelveit=mtti10 at 12pt
+\font\twelvesl=mtsl10 at 12pt
+\font\twelvett=cmtt12 \hyphenchar\twelvett=-1
+\font\twelvecsc=mtcsc10 at 12pt
+\font\twelvesf=mtss10 at 12pt
+\font\twelvei=mtmi10 at 12pt \skewchar\twelvei='177
+\font\twelvesy=mtsy10 at 12pt \skewchar\twelvesy='60
+
+\font\fourteenrm=mtr10 at 14pt
+\font\fourteenbf=mtbx10 at 14pt
+\font\fourteenit=mtti10 at 14pt
+\font\fourteeni=mtmi10 at 14pt \skewchar\fourteeni='177
+\font\fourteensy=mtsy10 at 14pt \skewchar\fourteensy='60
+\font\fourteensl=mtsl10 at 14pt
+\font\fourteentt=cmtt12 at 14pt \hyphenchar\fourteentt=-1
+\font\fourteencsc=mtcsc10 at 14pt
+\font\fourteensf=mtss10 at 14pt
+
+\font\seventeenrm=mtr10 at 17pt
+\font\seventeenbf=mtbx10 at 17pt
+\font\seventeenit=mtti10 at 17pt
+\font\seventeeni=mtmi10 at 17pt \skewchar\seventeeni='177
+\font\seventeensy=mtsy10 at 17pt \skewchar\seventeensy='60
+\font\seventeensl=mtsl10 at 17pt
+\font\seventeentt=cmtt12 at 17pt \hyphenchar\seventeentt=-1
+\font\seventeencsc=mtcsc10 at 17pt
+\font\seventeensf=mtss10 at 17pt
+%
+\else
+%
+\font\fiverm=cmr5
+\font\fivei=cmmi5 \skewchar\fivei='177
+\font\fivesy=cmsy5 \skewchar\fivesy='60
+\font\fivebf=cmbx5
+
+\font\sixrm=cmr6
+\font\sixi=cmmi6 \skewchar\sixi='177
+\font\sixsy=cmsy6 \skewchar\sixsy='60
+\font\sixbf=cmbx6
+
+\font\sevenrm=cmr7
+\font\sevenit=cmti7
+\font\seveni=cmmi7 \skewchar\seveni='177
+\font\sevensy=cmsy7 \skewchar\sevensy='60
+\font\sevenbf=cmbx7
+
+\font\eightrm=cmr8
+\font\eightbf=cmbx8
+\font\eightit=cmti8
+\font\eighti=cmmi8 \skewchar\eighti='177
+\font\eightsy=cmsy8 \skewchar\eightsy='60
+\font\eightsl=cmsl8
+\font\eighttt=cmtt8 \hyphenchar\eighttt=-1
+\font\eightcsc=cmcsc10 at 8pt
+\font\eightsf=cmss8
+
+\font\ninerm=cmr9
+\font\ninebf=cmbx9
+\font\nineit=cmti9
+\font\ninei=cmmi9 \skewchar\ninei='177
+\font\ninesy=cmsy9 \skewchar\ninesy='60
+\font\ninesl=cmsl9
+\font\ninett=cmtt9 \hyphenchar\ninett=-1
+\font\ninecsc=cmcsc10 at 9pt
+\font\ninesf=cmss9
+
+\font\tenrm=cmr10
+\font\tenbf=cmbx10
+\font\tenit=cmti10
+\font\teni=cmmi10 \skewchar\teni='177
+\font\tensy=cmsy10 \skewchar\tensy='60
+\font\tenex=cmex10
+\font\tensl=cmsl10
+\font\tentt=cmtt10 \hyphenchar\tentt=-1
+\font\tencsc=cmcsc10
+\font\tensf=cmss10
+
+\font\elevenrm=cmr10 scaled \magstephalf
+\font\elevenbf=cmbx10 scaled \magstephalf
+\font\elevenit=cmti10 scaled \magstephalf
+\font\eleveni=cmmi10 scaled \magstephalf \skewchar\eleveni='177
+\font\elevensy=cmsy10 scaled \magstephalf \skewchar\elevensy='60
+\font\elevensl=cmsl10 scaled \magstephalf
+\font\eleventt=cmtt10 scaled \magstephalf \hyphenchar\eleventt=-1
+\font\elevencsc=cmcsc10 scaled \magstephalf
+\font\elevensf=cmss10 scaled \magstephalf
+
+\font\twelverm=cmr10 scaled \magstep1
+\font\twelvebf=cmbx10 scaled \magstep1
+\font\twelvei=cmmi10 scaled \magstep1 \skewchar\twelvei='177
+\font\twelvesy=cmsy10 scaled \magstep1 \skewchar\twelvesy='60
+
+\font\fourteenrm=cmr10 scaled \magstep2
+\font\fourteenbf=cmbx10 scaled \magstep2
+\font\fourteenit=cmti10 scaled \magstep2
+\font\fourteeni=cmmi10 scaled \magstep2 \skewchar\fourteeni='177
+\font\fourteensy=cmsy10 scaled \magstep2 \skewchar\fourteensy='60
+\font\fourteensl=cmsl10 scaled \magstep2
+\font\fourteentt=cmtt10 scaled \magstep2 \hyphenchar\fourteentt=-1
+\font\fourteencsc=cmcsc10 scaled \magstep2
+\font\fourteensf=cmss10 scaled \magstep2
+
+\font\seventeenrm=cmr10 scaled \magstep3
+\font\seventeenbf=cmbx10 scaled \magstep3
+\font\seventeenit=cmti10 scaled \magstep3
+\font\seventeeni=cmmi10 scaled \magstep3 \skewchar\seventeeni='177
+\font\seventeensy=cmsy10 scaled \magstep3 \skewchar\seventeensy='60
+\font\seventeensl=cmsl10 scaled \magstep3
+\font\seventeentt=cmtt10 scaled \magstep3 \hyphenchar\seventeentt=-1
+\font\seventeencsc=cmcsc10 scaled \magstep3
+\font\seventeensf=cmss10 scaled \magstep3
+%
+\fi
+
+\def\hexnumber#1{\ifcase#1 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or
+ A\or B\or C\or D\or E\or F\fi}
+
+\def\makestrut{%
+ \setbox\strutbox=\hbox{%
+ \vrule height.7\baselineskip depth.3\baselineskip width \z@}%
+}
+
+\def\baselinestretch{1}
+\newskip\tmp@bls
+
+\def\b@ls#1{% set baseline using \baselinestretch as a scale factor
+ \tmp@bls=#1\relax
+ \baselineskip=#1\relax\makestrut
+ \normalbaselineskip=\baselinestretch\tmp@bls
+ \normalbaselines
+}
+
+\def\nostb@ls#1{% set baseline skip ignoring \baselinestretch
+ \normalbaselineskip=#1\relax
+ \normalbaselines
+ \makestrut
+}
+
+
+% families \itfam, \slfam, \bffam, \ttfam defined in PLAIN.
+%
+% \itfam is \fam4
+% \slfam is \fam5
+% \bffam is \fam6
+% \ttfam is \fam7
+
+\newfam\scfam % \fam8
+\newfam\sffam % \fam9
+
+\def\mit{\fam\@ne}
+\def\cal{\fam\tw@}
+\def\em{\ifdim\fontdimen1\font>\z@ \rm\else\it\fi}
+
+\textfont3=\tenex
+\scriptfont3=\tenex
+\scriptscriptfont3=\tenex
+
+\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
+
+\def\eightpoint{% 8^6^5 on 10pt
+ \def\rm{\fam0\eightrm}%
+ \textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm%
+ \textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei%
+ \textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy%
+ \textfont\itfam=\eightit\def\it{\fam\itfam\eightit}%
+ \ifprod@font
+ \scriptfont\itfam=\sixit
+ \scriptscriptfont\itfam=\fiveit
+ \else
+ \scriptfont\itfam=\eightit
+ \scriptscriptfont\itfam=\eightit
+ \fi
+ \textfont\bffam=\eightbf%
+ \scriptfont\bffam=\sixbf%
+ \scriptscriptfont\bffam=\fivebf%
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\slfam=\eightsl\def\sl{\fam\slfam\eightsl}%
+ \ifprod@font
+ \scriptfont\slfam=\sixsl
+ \scriptscriptfont\slfam=\fivesl
+ \else
+ \scriptfont\slfam=\eightsl
+ \scriptscriptfont\slfam=\eightsl
+ \fi
+ \textfont\ttfam=\eighttt\def\tt{\fam\ttfam\eighttt}%
+ \ifprod@font
+ \scriptfont\ttfam=\sixtt
+ \scriptscriptfont\ttfam=\fivett
+ \else
+ \scriptfont\ttfam=\eighttt
+ \scriptscriptfont\ttfam=\eighttt
+ \fi
+ \textfont\scfam=\eightcsc\def\sc{\fam\scfam\eightcsc}%
+ \ifprod@font
+ \scriptfont\scfam=\sixcsc
+ \scriptscriptfont\scfam=\fivecsc
+ \else
+ \scriptfont\scfam=\eightcsc
+ \scriptscriptfont\scfam=\eightcsc
+ \fi
+ \textfont\sffam=\eightsf\def\sf{\fam\sffam\eightsf}%
+ \ifprod@font
+ \scriptfont\sffam=\sixsf
+ \scriptscriptfont\sffam=\fivesf
+ \else
+ \scriptfont\sffam=\eightsf
+ \scriptscriptfont\sffam=\eightsf
+ \fi
+ \def\oldstyle{\fam\@ne\eighti}%
+ \b@ls{10pt}\rm\@viiipt%
+}
+\def\@viiipt{}
+
+\def\ninepoint{% 9^6^5 on 11pt (two col) / 12 (single col)
+ \def\rm{\fam0\ninerm}%
+ \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm%
+ \textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei%
+ \textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy%
+ \textfont\itfam=\nineit\def\it{\fam\itfam\nineit}%
+ \ifprod@font
+ \scriptfont\itfam=\sixit
+ \scriptscriptfont\itfam=\fiveit
+ \else
+ \scriptfont\itfam=\nineit
+ \scriptscriptfont\itfam=\nineit
+ \fi
+ \textfont\bffam=\ninebf%
+ \scriptfont\bffam=\sixbf%
+ \scriptscriptfont\bffam=\fivebf%
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\slfam=\ninesl\def\sl{\fam\slfam\ninesl}%
+ \ifprod@font
+ \scriptfont\slfam=\sixsl
+ \scriptscriptfont\slfam=\fivesl
+ \else
+ \scriptfont\slfam=\ninesl
+ \scriptscriptfont\slfam=\ninesl
+ \fi
+ \textfont\ttfam=\ninett\def\tt{\fam\ttfam\ninett}%
+ \ifprod@font
+ \scriptfont\ttfam=\sixtt
+ \scriptscriptfont\ttfam=\fivett
+ \else
+ \scriptfont\ttfam=\ninett
+ \scriptscriptfont\ttfam=\ninett
+ \fi
+ \textfont\scfam=\ninecsc\def\sc{\fam\scfam\ninecsc}%
+ \ifprod@font
+ \scriptfont\scfam=\sixcsc
+ \scriptscriptfont\scfam=\fivecsc
+ \else
+ \scriptfont\scfam=\ninecsc
+ \scriptscriptfont\scfam=\ninecsc
+ \fi
+ \textfont\sffam=\ninesf\def\sf{\fam\sffam\ninesf}%
+ \ifprod@font
+ \scriptfont\sffam=\sixsf
+ \scriptscriptfont\sffam=\fivesf
+ \else
+ \scriptfont\sffam=\ninesf
+ \scriptscriptfont\sffam=\ninesf
+ \fi
+ \def\oldstyle{\fam\@ne\ninei}%
+ \b@ls{\TextLeading plus \Feathering}\rm\@ixpt%
+}
+\def\@ixpt{}
+
+\def\tenpoint{% 10^7^5 on 11pt
+ \def\rm{\fam0\tenrm}%
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm%
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei%
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy%
+ \textfont\itfam=\tenit\def\it{\fam\itfam\tenit}%
+ \ifprod@font
+ \scriptfont\itfam=\sevenit
+ \scriptscriptfont\itfam=\fiveit
+ \else
+ \scriptfont\itfam=\tenit
+ \scriptscriptfont\itfam=\tenit
+ \fi
+ \textfont\bffam=\tenbf%
+ \scriptfont\bffam=\sevenbf%
+ \scriptscriptfont\bffam=\fivebf%
+ \def\bf{\fam\bffam\tenbf}%
+ \textfont\slfam=\tensl\def\sl{\fam\slfam\tensl}%
+ \ifprod@font
+ \scriptfont\slfam=\sevensl
+ \scriptscriptfont\slfam=\fivesl
+ \else
+ \scriptfont\slfam=\tensl
+ \scriptscriptfont\slfam=\tensl
+ \fi
+ \textfont\ttfam=\tentt\def\tt{\fam\ttfam\tentt}%
+ \ifprod@font
+ \scriptfont\ttfam=\seventt
+ \scriptscriptfont\ttfam=\fivett
+ \else
+ \scriptfont\ttfam=\tentt
+ \scriptscriptfont\ttfam=\tentt
+ \fi
+ \textfont\scfam=\tencsc\def\sc{\fam\scfam\tencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\sevencsc
+ \scriptscriptfont\scfam=\fivecsc
+ \else
+ \scriptfont\scfam=\tencsc
+ \scriptscriptfont\scfam=\tencsc
+ \fi
+ \textfont\sffam=\tensf\def\sf{\fam\sffam\tensf}%
+ \ifprod@font
+ \scriptfont\sffam=\sevensf
+ \scriptscriptfont\sffam=\fivesf
+ \else
+ \scriptfont\sffam=\tensf
+ \scriptscriptfont\sffam=\tensf
+ \fi
+ \def\oldstyle{\fam\@ne\teni}%
+ \b@ls{11pt}\rm\@xpt%
+}
+\def\@xpt{}
+
+\def\elevenpoint{% 11^8^6 on 13pt
+ \def\rm{\fam0\elevenrm}%
+ \textfont0=\elevenrm \scriptfont0=\eightrm \scriptscriptfont0=\sixrm%
+ \textfont1=\eleveni \scriptfont1=\eighti \scriptscriptfont1=\sixi%
+ \textfont2=\elevensy \scriptfont2=\eightsy \scriptscriptfont2=\sixsy%
+ \textfont\itfam=\elevenit\def\it{\fam\itfam\elevenit}%
+ \ifprod@font
+ \scriptfont\itfam=\eightit
+ \scriptscriptfont\itfam=\sixit
+ \else
+ \scriptfont\itfam=\elevenit
+ \scriptscriptfont\itfam=\elevenit
+ \fi
+ \textfont\bffam=\elevenbf%
+ \scriptfont\bffam=\eightbf%
+ \scriptscriptfont\bffam=\sixbf%
+ \def\bf{\fam\bffam\elevenbf}%
+ \textfont\slfam=\elevensl\def\sl{\fam\slfam\elevensl}%
+ \ifprod@font
+ \scriptfont\slfam=\eightsl
+ \scriptscriptfont\slfam=\sixsl
+ \else
+ \scriptfont\slfam=\elevensl
+ \scriptscriptfont\slfam=\elevensl
+ \fi
+ \textfont\ttfam=\eleventt\def\tt{\fam\ttfam\eleventt}%
+ \ifprod@font
+ \scriptfont\ttfam=\eighttt
+ \scriptscriptfont\ttfam=\sixtt
+ \else
+ \scriptfont\ttfam=\eleventt
+ \scriptscriptfont\ttfam=\eleventt
+ \fi
+ \textfont\scfam=\elevencsc\def\sc{\fam\scfam\elevencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\eightcsc
+ \scriptscriptfont\scfam=\sixcsc
+ \else
+ \scriptfont\scfam=\elevencsc
+ \scriptscriptfont\scfam=\elevencsc
+ \fi
+ \textfont\sffam=\elevensf\def\sf{\fam\sffam\elevensf}%
+ \ifprod@font
+ \scriptfont\sffam=\eightsf
+ \scriptscriptfont\sffam=\sixsf
+ \else
+ \scriptfont\sffam=\elevensf
+ \scriptscriptfont\sffam=\elevensf
+ \fi
+ \def\oldstyle{\fam\@ne\eleveni}%
+ \b@ls{13pt}\rm\@xipt%
+}
+\def\@xipt{}
+
+\def\fourteenpoint{% 14^10^7 on 17pt
+ \def\rm{\fam0\fourteenrm}%
+ \textfont0\fourteenrm \scriptfont0\tenrm \scriptscriptfont0\sevenrm%
+ \textfont1\fourteeni \scriptfont1\teni \scriptscriptfont1\seveni%
+ \textfont2\fourteensy \scriptfont2\tensy \scriptscriptfont2\sevensy%
+ \textfont\itfam=\fourteenit\def\it{\fam\itfam\fourteenit}%
+ \ifprod@font
+ \scriptfont\itfam=\tenit
+ \scriptscriptfont\itfam=\sevenit
+ \else
+ \scriptfont\itfam=\fourteenit
+ \scriptscriptfont\itfam=\fourteenit
+ \fi
+ \textfont\bffam=\fourteenbf%
+ \scriptfont\bffam=\tenbf%
+ \scriptscriptfont\bffam=\sevenbf%
+ \def\bf{\fam\bffam\fourteenbf}%
+ \textfont\slfam=\fourteensl\def\sl{\fam\slfam\fourteensl}%
+ \ifprod@font
+ \scriptfont\slfam=\tensl
+ \scriptscriptfont\slfam=\sevensl
+ \else
+ \scriptfont\slfam=\fourteensl
+ \scriptscriptfont\slfam=\fourteensl
+ \fi
+ \textfont\ttfam=\fourteentt\def\tt{\fam\ttfam\fourteentt}%
+ \ifprod@font
+ \scriptfont\ttfam=\tentt
+ \scriptscriptfont\ttfam=\seventt
+ \else
+ \scriptfont\ttfam=\fourteentt
+ \scriptscriptfont\ttfam=\fourteentt
+ \fi
+ \textfont\scfam=\fourteencsc\def\sc{\fam\scfam\fourteencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\tencsc
+ \scriptscriptfont\scfam=\sevencsc
+ \else
+ \scriptfont\scfam=\fourteencsc
+ \scriptscriptfont\scfam=\fourteencsc
+ \fi
+ \textfont\sffam=\fourteensf\def\sf{\fam\sffam\fourteensf}%
+ \ifprod@font
+ \scriptfont\sffam=\tensf
+ \scriptscriptfont\sffam=\sevensf
+ \else
+ \scriptfont\sffam=\fourteensf
+ \scriptscriptfont\sffam=\fourteensf
+ \fi
+ \def\oldstyle{\fam\@ne\fourteeni}%
+ \b@ls{17pt}\rm\@xivpt%
+}
+\def\@xivpt{}
+
+\def\seventeenpoint{% 17^12^10 on 20pt
+ \def\rm{\fam0\seventeenrm}%
+ \textfont0\seventeenrm \scriptfont0\twelverm \scriptscriptfont0\tenrm%
+ \textfont1\seventeeni \scriptfont1\twelvei \scriptscriptfont1\teni%
+ \textfont2\seventeensy \scriptfont2\twelvesy \scriptscriptfont2\tensy%
+ \textfont\itfam=\seventeenit\def\it{\fam\itfam\seventeenit}%
+ \ifprod@font
+ \scriptfont\itfam=\twelveit
+ \scriptscriptfont\itfam=\tenit
+ \else
+ \scriptfont\itfam=\seventeenit
+ \scriptscriptfont\itfam=\seventeenit
+ \fi
+ \textfont\bffam=\seventeenbf%
+ \scriptfont\bffam=\twelvebf%
+ \scriptscriptfont\bffam=\tenbf%
+ \def\bf{\fam\bffam\seventeenbf}%
+ \textfont\slfam=\seventeensl\def\sl{\fam\slfam\seventeensl}%
+ \ifprod@font
+ \scriptfont\slfam=\twelvesl
+ \scriptscriptfont\slfam=\tensl
+ \else
+ \scriptfont\slfam=\seventeensl
+ \scriptscriptfont\slfam=\seventeensl
+ \fi
+ \textfont\ttfam=\seventeentt\def\tt{\fam\ttfam\seventeentt}%
+ \ifprod@font
+ \scriptfont\ttfam=\twelvett
+ \scriptscriptfont\ttfam=\tentt
+ \else
+ \scriptfont\ttfam=\seventeentt
+ \scriptscriptfont\ttfam=\seventeentt
+ \fi
+ \textfont\scfam=\seventeencsc\def\sc{\fam\scfam\seventeencsc}%
+ \ifprod@font
+ \scriptfont\scfam=\twelvecsc
+ \scriptscriptfont\scfam=\tencsc
+ \else
+ \scriptfont\scfam=\seventeencsc
+ \scriptscriptfont\scfam=\seventeencsc
+ \fi
+ \textfont\sffam=\seventeensf\def\sf{\fam\sffam\seventeensf}%
+ \ifprod@font
+ \scriptfont\sffam=\twelvesf
+ \scriptscriptfont\sffam=\tensf
+ \else
+ \scriptfont\sffam=\seventeensf
+ \scriptscriptfont\sffam=\seventeensf
+ \fi
+ \def\oldstyle{\fam\@ne\seventeeni}%
+ \b@ls{20pt}\rm\@xviipt%
+}
+\def\@xviipt{}
+
+\lineskip=1pt \normallineskip=\lineskip
+\lineskiplimit=\z@ \normallineskiplimit=\lineskiplimit
+
+
+% BOLD MATH SYMBOLS
+
+\def\loadboldmathnames{%
+ \def\balpha{{\bmath{\alpha}}}%
+ \def\bbeta{{\bmath{\beta}}}%
+ \def\bgamma{{\bmath{\gamma}}}%
+ \def\bdelta{{\bmath{\delta}}}%
+ \def\bepsilon{{\bmath{\epsilon}}}%
+ \def\bzeta{{\bmath{\zeta}}}%
+ \def\boldeta{{\bmath{\eta}}}%
+ \def\btheta{{\bmath{\theta}}}%
+ \def\biota{{\bmath{\iota}}}%
+ \def\bkappa{{\bmath{\kappa}}}%
+ \def\blambda{{\bmath{\lambda}}}%
+ \def\bmu{{\bmath{\mu}}}%
+ \def\bnu{{\bmath{\nu}}}%
+ \def\bxi{{\bmath{\xi}}}%
+ \def\bpi{{\bmath{\pi}}}%
+ \def\brho{{\bmath{\rho}}}%
+ \def\bsigma{{\bmath{\sigma}}}%
+ \def\btau{{\bmath{\tau}}}%
+ \def\bupsilon{{\bmath{\upsilon}}}%
+ \def\bphi{{\bmath{\phi}}}%
+ \def\bchi{{\bmath{\chi}}}%
+ \def\bpsi{{\bmath{\psi}}}%
+ \def\bomega{{\bmath{\omega}}}%
+ \def\bvarepsilon{{\bmath{\varepsilon}}}%
+ \def\bvartheta{{\bmath{\vartheta}}}%
+ \def\bvarpi{{\bmath{\varpi}}}%
+ \def\bvarrho{{\bmath{\varrho}}}%
+ \def\bvarsigma{{\bmath{\varsigma}}}%
+ \def\bvarphi{{\bmath{\varphi}}}%
+ \def\baleph{{\bmath{\aleph}}}%
+ \def\bimath{{\bmath{\imath}}}%
+ \def\bjmath{{\bmath{\jmath}}}%
+ \def\bell{{\bmath{\ell}}}%
+ \def\bwp{{\bmath{\wp}}}%
+ \def\bRe{{\bmath{\Re}}}%
+ \def\bIm{{\bmath{\Im}}}%
+ \def\bpartial{{\bmath{\partial}}}%
+ \def\binfty{{\bmath{\infty}}}%
+ \def\bprime{{\bmath{\prime}}}%
+ \def\bemptyset{{\bmath{\emptyset}}}%
+ \def\bnabla{{\bmath{\nabla}}}%
+ \def\btop{{\bmath{\top}}}%
+ \def\bbot{{\bmath{\bot}}}%
+ \def\btriangle{{\bmath{\triangle}}}%
+ \def\bforall{{\bmath{\forall}}}%
+ \def\bexists{{\bmath{\exists}}}%
+ \def\bneg{{\bmath{\neg}}}%
+ \def\bflat{{\bmath{\flat}}}%
+ \def\bnatural{{\bmath{\natural}}}%
+ \def\bsharp{{\bmath{\sharp}}}%
+ \def\bclubsuit{{\bmath{\clubsuit}}}%
+ \def\bdiamondsuit{{\bmath{\diamondsuit}}}%
+ \def\bheartsuit{{\bmath{\heartsuit}}}%
+ \def\bspadesuit{{\bmath{\spadesuit}}}%
+ \def\bsmallint{{\bmath{\smallint}}}%
+ \def\btriangleleft{{\bmath{\triangleleft}}}%
+ \def\btriangleright{{\bmath{\triangleright}}}%
+ \def\bbigtriangleup{{\bmath{\bigtriangleup}}}%
+ \def\bbigtriangledown{{\bmath{\bigtriangledown}}}%
+ \def\bwedge{{\bmath{\wedge}}}%
+ \def\bvee{{\bmath{\vee}}}%
+ \def\bcap{{\bmath{\cap}}}%
+ \def\bcup{{\bmath{\cup}}}%
+ \def\bddagger{{\bmath{\ddagger}}}%
+ \def\bdagger{{\bmath{\dagger}}}%
+ \def\bsqcap{{\bmath{\sqcap}}}%
+ \def\bsqcup{{\bmath{\sqcup}}}%
+ \def\buplus{{\bmath{\uplus}}}%
+ \def\bamalg{{\bmath{\amalg}}}%
+ \def\bdiamond{{\bmath{\diamond}}}%
+ \def\bbullet{{\bmath{\bullet}}}%
+ \def\bwr{{\bmath{\wr}}}%
+ \def\bdiv{{\bmath{\div}}}%
+ \def\bodot{{\bmath{\odot}}}%
+ \def\boslash{{\bmath{\oslash}}}%
+ \def\botimes{{\bmath{\otimes}}}%
+ \def\bominus{{\bmath{\ominus}}}%
+ \def\boplus{{\bmath{\oplus}}}%
+ \def\bmp{{\bmath{\mp}}}%
+ \def\bpm{{\bmath{\pm}}}%
+ \def\bcirc{{\bmath{\circ}}}%
+ \def\bbigcirc{{\bmath{\bigcirc}}}%
+ \def\bsetminus{{\bmath{\setminus}}}%
+ \def\bcdot{{\bmath{\cdot}}}%
+ \def\bast{{\bmath{\ast}}}%
+ \def\btimes{{\bmath{\times}}}%
+ \def\bstar{{\bmath{\star}}}%
+ \def\bpropto{{\bmath{\propto}}}%
+ \def\bsqsubseteq{{\bmath{\sqsubseteq}}}%
+ \def\bsqsupseteq{{\bmath{\sqsupseteq}}}%
+ \def\bparallel{{\bmath{\parallel}}}%
+ \def\bmid{{\bmath{\mid}}}%
+ \def\bdashv{{\bmath{\dashv}}}%
+ \def\bvdash{{\bmath{\vdash}}}%
+ \def\bnearrow{{\bmath{\nearrow}}}%
+ \def\bsearrow{{\bmath{\searrow}}}%
+ \def\bnwarrow{{\bmath{\nwarrow}}}%
+ \def\bswarrow{{\bmath{\swarrow}}}%
+ \def\bLeftrightarrow{{\bmath{\Leftrightarrow}}}%
+ \def\bLeftarrow{{\bmath{\Leftarrow}}}%
+ \def\bRightarrow{{\bmath{\Rightarrow}}}%
+ \def\bleq{{\bmath{\leq}}}%
+ \def\bgeq{{\bmath{\geq}}}%
+ \def\bsucc{{\bmath{\succ}}}%
+ \def\bprec{{\bmath{\prec}}}%
+ \def\bapprox{{\bmath{\approx}}}%
+ \def\bsucceq{{\bmath{\succeq}}}%
+ \def\bpreceq{{\bmath{\preceq}}}%
+ \def\bsupset{{\bmath{\supset}}}%
+ \def\bsubset{{\bmath{\subset}}}%
+ \def\bsupseteq{{\bmath{\supseteq}}}%
+ \def\bsubseteq{{\bmath{\subseteq}}}%
+ \def\bin{{\bmath{\in}}}%
+ \def\bni{{\bmath{\ni}}}%
+ \def\bgg{{\bmath{\gg}}}%
+ \def\bll{{\bmath{\ll}}}%
+ \def\bnot{{\bmath{\not}}}%
+ \def\bleftrightarrow{{\bmath{\leftrightarrow}}}%
+ \def\bleftarrow{{\bmath{\leftarrow}}}%
+ \def\brightarrow{{\bmath{\rightarrow}}}%
+ \def\bmapstochar{{\bmath{\mapstochar}}}%
+ \def\bsim{{\bmath{\sim}}}%
+ \def\bsimeq{{\bmath{\simeq}}}%
+ \def\bperp{{\bmath{\perp}}}%
+ \def\bequiv{{\bmath{\equiv}}}%
+ \def\basymp{{\bmath{\asymp}}}%
+ \def\bsmile{{\bmath{\smile}}}%
+ \def\bfrown{{\bmath{\frown}}}%
+ \def\bleftharpoonup{{\bmath{\leftharpoonup}}}%
+ \def\bleftharpoondown{{\bmath{\leftharpoondown}}}%
+ \def\brightharpoonup{{\bmath{\rightharpoonup}}}%
+ \def\brightharpoondown{{\bmath{\rightharpoondown}}}%
+ \def\blhook{{\bmath{\lhook}}}%
+ \def\brhook{{\bmath{\rhook}}}%
+ \def\bldotp{{\bmath{\ldotp}}}%
+ \def\bcdotp{{\bmath{\cdotp}}}%
+}
+
+% Make \, work in non-math mode
+\def\,{\relax\ifmmode \mskip\thinmuskip\else \thinspace\fi}
+\let\protect=\relax
+
+\long\def\@ifundefined#1#2#3{\expandafter\ifx\csname
+ #1\endcsname\relax#2\else#3\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% NewFont.sty: ALPHA VERSION patchlevel 8, 16th August 1994, M. Reed
+
+% \addtom@thgroup{math font loading info}
+% Adds to internal \math@groups definition, which is executed at the end
+% of each size changing command. It is called by \NewSymbolFont.
+
+\newtoks\math@groups \math@groups={}
+\def\addtom@thgroup#1#2{#1\expandafter{\the#1#2}} % \mac={new\the\mac}
+
+
+% Make TeX change the values of \s@ze, \ss@ze, \sss@ze when \@npt is
+% executed. This makes it possible for math characters to be loaded
+% at the correct size automatically when the size is changed.
+
+% \addtosizeh@ok{x}{10}{7}{5}
+
+\def\addtosizeh@ok#1#2#3#4{%
+ \expandafter\def\csname @#1pt\endcsname{%
+ \def\s@ze{#2}\def\ss@ze{#3}\def\sss@ze{#4}\the\math@groups%
+ }%
+}
+
+
+% \resetsizehook allows the size parameters to be reset after \addtosizeh@ok
+% has been called (it re-defines \@npt).
+% e.g JFM which requires \xpt to have 10.5pt instead of 10pt.
+% Note: \resetsizehook must be used in the preamble BEFORE any
+% \New... commands.
+
+% e.g. \resetsizehook{x}{10.5}{7}{5}
+
+\let\resetsizehook=\addtosizeh@ok
+
+
+% Standard LaTeX sizes
+
+\ifprod@font
+% \addtosizeh@ok{v} {5} {5} {5}
+% \addtosizeh@ok{vi} {6} {6} {6}
+% \addtosizeh@ok{vii} {7} {6} {5}
+ \addtosizeh@ok{viii} {8} {6} {5}
+ \addtosizeh@ok{ix} {9} {6} {5}
+ \addtosizeh@ok{x} {10}{7} {5}
+ \addtosizeh@ok{xi} {11}{8} {6}
+% \addtosizeh@ok{xii} {12}{8} {6}
+ \addtosizeh@ok{xiv} {14}{10} {7}
+ \addtosizeh@ok{xvii} {17}{12}{10}
+% \addtosizeh@ok{xx} {20}{14}{12}
+% \addtosizeh@ok{xxv} {25}{20}{17}
+\else
+% \addtosizeh@ok{v} {5} {5} {5}
+% \addtosizeh@ok{vi} {6} {6} {6}
+% \addtosizeh@ok{vii} {7} {6} {5}
+ \addtosizeh@ok{viii} {8} {6} {5}
+ \addtosizeh@ok{ix} {9} {6} {5}
+ \addtosizeh@ok{x} {10} {7} {5}
+ \addtosizeh@ok{xi} {10.95} {8} {6}
+% \addtosizeh@ok{xii} {12} {8} {6}
+ \addtosizeh@ok{xiv} {14.4} {10} {7}
+ \addtosizeh@ok{xvii} {17.28} {12} {10}
+% \addtosizeh@ok{xx} {20.74} {14.4} {12}
+% \addtosizeh@ok{xxv} {24.88} {20.74} {17.28}
+\fi
+
+
+\def\get@font#1#2#3{%
+ \edef\fonts@ze{\romannumeral#3}% 10 -> x
+ \edef\fontn@me{\fonts@ze#1}% AMSa -> xAMSa
+ \@ifundefined{\fontn@me}%
+ {%%\typeout{defining \fontn@me}%
+ \global\expandafter\font\csname \fontn@me\endcsname=#2 at #3pt}%
+ {}%
+}
+
+\def\ass@tfont#1#2{%
+ \xdef\fam@name{\csname #1\endcsname}%
+ \xdef\font@name{\csname #2\endcsname}%
+ \let\textfont@name\font@name
+ \textfont\fam@name\textfont@name
+}
+
+\def\ass@sfont#1#2{%
+ \xdef\fam@name{\csname #1\endcsname}%
+ \xdef\font@name{\csname #2\endcsname}%
+ \let\textfont@name\font@name
+ \scriptfont\fam@name\textfont@name
+}
+
+\def\ass@ssfont#1#2{%
+ \xdef\fam@name{\csname #1\endcsname}%
+ \xdef\font@name{\csname #2\endcsname}%
+ \let\textfont@name\font@name
+ \scriptscriptfont\fam@name\textfont@name
+}
+
+
+% fam name base font (allocates a \newfam)
+% \NewSymbolFont {AMSa} {mtxm10}
+
+\def\NewSymbolFont#1#2{%
+ \expandafter\ifx\csname sym#1fam\endcsname\relax % if not defined
+ \expandafter\newfam\csname sym#1fam\endcsname
+ \expandafter\edef\csname sym#1fam\endcsname{\the\allocationnumber}%
+ \addtom@thgroup\math@groups{%
+ \get@font{#1}{#2}{\s@ze}%
+ \ass@tfont{sym#1fam}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \ass@sfont{sym#1fam}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \ass@ssfont{sym#1fam}{\fontn@me}%
+ }%
+ \else
+ \errmessage{Family `#1' already defined}%
+ \fi
+}
+
+
+% symbol type fam pos (hex)
+% \NewMathSymbol {\blacksquare} {0} {AMSa} {04}
+
+\def\NewMathSymbol#1#2#3#4{%
+ \edef\f@mly{\expandafter\hexnumber{\csname sym#3fam\endcsname}}%
+ \mathchardef#1="#2\f@mly#4\relax
+}
+
+
+% macro name type fam1 pos fam2 pos
+% \NewMathDelimiter{\ulcorner} {4} {AMSa} {70} {AMSb} {70}
+
+\newif\ifd@f
+
+\def\NewMathDelimiter#1#2#3#4#5#6{%
+ \d@ftrue
+ \expandafter\ifx\csname sym#3fam\endcsname\relax
+ \d@ffalse \errmessage{Family `#3' is not defined}%
+ \fi
+ \expandafter\ifx\csname sym#5fam\endcsname\relax
+ \d@ffalse \errmessage{Family `#5' is not defined}%
+ \fi
+ \ifd@f
+ \edef\f@mly{\expandafter\hexnumber{\csname sym#3fam\endcsname}}%
+ \edef\f@mlytw@{\expandafter\hexnumber{\csname sym#5fam\endcsname}}%
+ \xdef#1{\delimiter"#2\f@mly #4\f@mlytw@ #6\relax}%
+ \fi
+}
+
+
+% macro name base font skewchar setting e.g '60 (octal)
+% \NewMathAlphabet {mathbssi} {mtmisb10} {}
+
+\def\setboxz@h{\setbox\z@\hbox}
+\def\wdz@{\wd\z@}
+\def\boxz@{\box\z@}
+\def\setbox@ne{\setbox\@ne}
+\def\wd@ne{\wd\@ne}
+
+\def\math@atom#1#2{%
+ \binrel@{#1}\binrel@@{#2}}
+\def\binrel@#1{\setboxz@h{\thinmuskip0mu
+ \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}%
+ \setbox@ne\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip
+ \@ne mu${}#1{}\m@th$}%
+ \setbox\tw@\hbox{\hskip\wd@ne\hskip-\wdz@}}
+\def\binrel@@#1{\ifdim\wd2<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@
+ \mathrel{#1}\else{#1}\fi\fi}
+
+\def\m@thit{1}
+
+\def\set@skchar#1{\global\expandafter\skewchar
+ \csname\fontn@me\endcsname=#1\relax}
+
+\def\NewMathAlphabet#1#2#3{%
+ \def\tst{#3}%
+ \ifx\tst\empty\else % if a \skewchar setting is present
+ \expandafter\gdef\csname #1@sc\endcsname{}% \def\cmd@sc{..}
+ \fi
+ %
+ \expandafter\def\csname #1\endcsname{% \def\cmd{\protect\@cmd}
+ \protect\csname @#1\endcsname}%
+ %
+ \expandafter\def\csname @#1\endcsname##1{% \def\@cmd{..}
+ {%
+ \begingroup
+ \get@font{#1}{#2}{\s@ze}%
+ \@ifundefined{#1@sc}{}{\set@skchar{#3}}%
+ \ass@tfont{m@thit}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \@ifundefined{#1@sc}{}{\set@skchar{#3}}%
+ \ass@sfont{m@thit}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \@ifundefined{#1@sc}{}{\set@skchar{#3}}%
+ \ass@ssfont{m@thit}{\fontn@me}%
+ %
+ \math@atom{##1}{%
+ \mathchoice%
+ {\hbox{$\m@th\displaystyle##1$}}%
+ {\hbox{$\m@th\textstyle##1$}}%
+ {\hbox{$\m@th\scriptstyle##1$}}%
+ {\hbox{$\m@th\scriptscriptstyle##1$}}}%
+ \endgroup
+ }%
+ }%
+}
+
+
+% macro name base font hyphenchar setting e.g -1 (off)
+% \NewTextAlphabet {textbfit} {mtbxti10} {}
+
+% save a family if \NewTextAlphabet is not used.
+\newif\iffirstta \firsttatrue
+
+\def\set@hchar#1{\global\expandafter\hyphenchar
+ \csname\fontn@me\endcsname=#1\relax}
+
+\def\NewTextAlphabet#1#2#3{%
+ \iffirstta
+ \global\firsttafalse
+ \newfam\scratchfam
+ \edef\scrt@fam{\the\allocationnumber}%
+ \fi
+ \def\tst{#3}%
+ \ifx\tst\empty\else % if a \hyphenchar setting is required
+ \expandafter\gdef\csname #1@hc\endcsname{}% \def\cmd@sc{..}
+ \fi
+ %
+ \expandafter\def\csname #1\endcsname{% \def\cmd{\protect\t@cmd}
+ \protect\csname t@#1\endcsname}%
+ %
+ \long\expandafter\def\csname t@#1\endcsname##1{% \def\t@cmd{..}
+ \ifmmode
+ \typeout{Warning: do not use \expandafter\string\csname #1\endcsname
+ \space in math mode}\fi%
+ {%
+ \get@font{#1}{#2}{\s@ze}\let\t@xtfnt=\fontn@me\relax
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@tfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@sfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@ssfont{scrt@fam}{\fontn@me}%
+ \fam\scratchfam\csname\t@xtfnt\endcsname
+ ##1%
+ }%
+ }%
+ %
+ \expandafter\def\csname #1shape% \def\cmdshape{\protect\@cmdshape}
+ \endcsname{\protect\csname @#1shape\endcsname}%
+ %
+ \expandafter\def\csname @#1shape\endcsname{% \def\@cmdshape
+ \ifmmode
+ \typeout{Warning: do not use \expandafter\string\csname
+ #1shape\endcsname \space in math mode}\fi
+ %
+ \get@font{#1}{#2}{\s@ze}\let\t@xtfnt=\fontn@me\relax
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@tfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\ss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@sfont{scrt@fam}{\fontn@me}%
+ \get@font{#1}{#2}{\sss@ze}%
+ \@ifundefined{#1@hc}{}{\set@hchar{#3}}%
+ \ass@ssfont{scrt@fam}{\fontn@me}%
+ \fam\scratchfam\csname\t@xtfnt\endcsname
+ }%
+}
+
+
+% \bmath{math text}
+
+\ifprod@font
+ \def\math@itfnt{mtmib10}
+ \def\math@syfnt{mtbsy10}
+\else
+ \def\math@itfnt{cmmib10}
+ \def\math@syfnt{cmbsy10}
+\fi
+
+\def\m@thsy{2}
+
+\def\bmath{\protect\@bmath}
+\def\@bmath#1{%
+ {%
+ \begingroup
+ \get@font{mthit}{\math@itfnt}{\s@ze}\set@skchar{'177}%
+ \ass@tfont{m@thit}{\fontn@me}%
+ \get@font{mthit}{\math@itfnt}{\ss@ze}\set@skchar{'177}%
+ \ass@sfont{m@thit}{\fontn@me}%
+ \get@font{mthit}{\math@itfnt}{\sss@ze}\set@skchar{'177}%
+ \ass@ssfont{m@thit}{\fontn@me}%
+ %
+ \get@font{mthsy}{\math@syfnt}{\s@ze}\set@skchar{'60}%
+ \ass@tfont{m@thsy}{\fontn@me}%
+ \get@font{mthsy}{\math@syfnt}{\ss@ze}\set@skchar{'60}%
+ \ass@sfont{m@thsy}{\fontn@me}%
+ \get@font{mthsy}{\math@syfnt}{\sss@ze}\set@skchar{'60}%
+ \ass@ssfont{m@thsy}{\fontn@me}%
+ %
+ \math@atom{#1}{%
+ \mathchoice%
+ {\hbox{$\m@th\displaystyle#1$}}%
+ {\hbox{$\m@th\textstyle#1$}}%
+ {\hbox{$\m@th\scriptstyle#1$}}%
+ {\hbox{$\m@th\scriptscriptstyle#1$}}}%
+ \endgroup
+ }%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% Astronomy and Astrophysics symbol macros
+
+\def\la{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\sim\cr}}}}}
+
+\def\ga{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\sim\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\sim\cr}}}}}
+
+\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
+\halign{\hfil
+$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\gets\cr\to\cr}}}}}
+
+\def\cor{\mathrel{\mathchoice {\hbox{$\widehat=$}}{\hbox{$\widehat=$}}
+{\hbox{$\scriptstyle\hat=$}}
+{\hbox{$\scriptscriptstyle\hat=$}}}}
+
+\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+
+\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+
+\def\sol{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr\sim\cr<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\sim\cr
+<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\sim\cr
+<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\sim\cr<\cr}}}}}
+
+\def\sog{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr\sim\cr>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\sim\cr
+>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+\sim\cr>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\sim\cr>\cr}}}}}
+
+\def\lse{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\simeq\cr}}}}}
+
+\def\gse{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\simeq\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\simeq\cr}}}}}
+
+\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1.5pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\noalign{\vskip-1.5pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-1pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-0.5pt}<\cr}}}}}
+
+\def\leogr{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\noalign{\vskip-1.5pt}>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\noalign{\vskip-1.5pt}>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\noalign{\vskip-1pt}>\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\noalign{\vskip-0.5pt}>\cr}}}}}
+
+\def\loa{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+<\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+<\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr\approx\cr}}}}}
+
+\def\goa{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\approx\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\approx\cr}}}}}
+
+\def\sun{\hbox{$\odot$}}
+\def\degr{\hbox{$^\circ$}}
+\def\diameter{{\ifmmode\mathchoice
+{\ooalign{\hfil\hbox{$\displaystyle/$}\hfil\crcr
+{\hbox{$\displaystyle\mathchar"20D$}}}}
+{\ooalign{\hfil\hbox{$\textstyle/$}\hfil\crcr
+{\hbox{$\textstyle\mathchar"20D$}}}}
+{\ooalign{\hfil\hbox{$\scriptstyle/$}\hfil\crcr
+{\hbox{$\scriptstyle\mathchar"20D$}}}}
+{\ooalign{\hfil\hbox{$\scriptscriptstyle/$}\hfil\crcr
+{\hbox{$\scriptscriptstyle\mathchar"20D$}}}}
+\else{\ooalign{\hfil/\hfil\crcr\mathhexbox20D}}%
+\fi}}
+
+\def\sq{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
+\penalty50\hskip1em\null\nobreak\hfil\squareforqed
+\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}
+\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
+
+\def\fd{\hbox{$.\!\!^{\rm d}$}}
+\def\fh{\hbox{$.\!\!^{\rm h}$}}
+\def\fm{\hbox{$.\!\!^{\rm m}$}}
+\def\fs{\hbox{$.\!\!^{\rm s}$}}
+\def\fdg{\hbox{$.\!\!^\circ$}}
+\def\farcm{\hbox{$.\mkern-4mu^\prime$}}
+\def\farcs{\hbox{$.\!\!^{\prime\prime}$}}
+\def\fp{\hbox{$.\!\!^{\scriptscriptstyle\rm p}$}}
+\def\arcmin{\hbox{$^\prime$}}
+\def\arcsec{\hbox{$^{\prime\prime}$}}
+
+% Simulated Blackboard Bold symbols
+
+\def\bbbr{{\rm I\!R}}
+\def\bbbm{{\rm I\!M}}
+\def\bbbn{{\rm I\!N}}
+\def\bbbf{{\rm I\!F}}
+\def\bbbh{{\rm I\!H}}
+\def\bbbk{{\rm I\!K}}
+\def\bbbp{{\rm I\!P}}
+\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
+{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
+\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
+\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbs{{\mathchoice
+{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
+\def\bbbz{{\mathchoice {\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\sf\scriptstyle Z\kern-0.3em Z$}}
+{\hbox{$\sf\scriptscriptstyle Z\kern-0.2em Z$}}}}
+
+
+% NUMBER THE DESIGN ELEMENTS
+
+\def\Nulle{0} % null element
+\def\Afe{1} % author affiliation
+\def\Hae{2} % heading A
+\def\Hbe{3} % heading B
+\def\Hce{4} % heading C
+\def\Hde{5} % heading D
+
+
+% TEMPORARY REGISTERS
+
+\newcount\LastMac \LastMac=\Nulle
+
+\newskip\half \half=5.5pt plus 1.5pt minus 2.25pt
+\newskip\one \one=11pt plus 3pt minus 5.5pt
+\newskip\onehalf \onehalf=16.5pt plus 5.5pt minus 8.25pt
+\newskip\two \two=22pt plus 5.5pt minus 11pt
+
+\def\Half{\addvspace{\half}}
+\def\One{\addvspace{\one}}
+\def\OneHalf{\addvspace{\onehalf}}
+\def\Two{\addvspace{\two}}
+
+\def\Referee{% produce version for refereeing
+ \def\baselinestretch{2}%
+ \ninepoint
+}
+
+\def\Raggedright{% set lines unjustified
+ \rightskip=\z@ plus \hsize\relax
+}
+
+\def\Fullout{% set lines justified
+ \rightskip=\z@\relax
+}
+
+\def\Hang#1#2{% set hanging indentation
+ \hangindent=#1%
+ \hangafter=#2\relax
+}
+
+\def\makeatletter{\catcode `\@=11\relax}
+\def\makeatother{\catcode `\@=12\relax}
+
+
+% Pagestyles
+
+\newif\ifsp@page
+\def\pagestyle#1{\csname ps@#1\endcsname}
+\def\thispagestyle#1{\global\sp@pagetrue\gdef\sp@type{#1}}
+
+\def\ps@titlepage{%
+ \def\@oddhead{\eightpoint\noindent \the\CatchLine
+ \ifprod@font\else\qquad Printed\ \today\qquad
+ (MN plain \TeX\ macros\ v\@version)\fi \hfil}%
+ \let\@evenhead=\@oddhead
+}
+
+\def\ps@headings{%
+ \def\@oddhead{\elevenpoint\it\noindent
+ \hfill\the\RightHeader\hskip1.5em\rm\folio}%
+ \def\@evenhead{\elevenpoint\noindent
+ \folio\hskip1.5em\it\the\LeftHeader\hfill}%
+}
+
+\def\ps@plate{%
+ \def\@oddhead{\eightpoint\noindent\plt@cap\hfil}%
+ \def\@evenhead{\eightpoint\noindent\plt@cap\hfil}%
+}
+
+
+% DESIGN ELEMENT DEFINITIONS
+
+% Article opening
+
+\def\title#1{% article title
+ \bgroup
+ \vbox to 8pt{\vss}%
+ \seventeenpoint
+ \Raggedright
+ \noindent \strut{\bf #1}\par
+ \egroup
+}
+
+\def\author#1{% article author(s)
+ \bgroup
+ \ifnum\LastMac=\Afe \OneHalf\else \vskip 21pt\fi
+ \fourteenpoint
+ \Raggedright
+ \noindent \strut #1\par
+ \vskip 3pt%
+ \egroup
+}
+
+\def\affiliation#1{% author(s) affiliation
+ \bgroup
+ \vskip -4pt%
+ \eightpoint
+ \Raggedright
+ \noindent \strut {\it #1}\par
+ \egroup
+ \LastMac=\Afe\relax
+}
+
+\def\acceptedline#1{% acceptance date
+ \bgroup
+ \Two
+ \eightpoint
+ \Raggedright
+ \noindent \strut #1\par
+ \egroup
+}
+
+\long\def\abstract#1{%
+ \bgroup
+ \vskip 20pt%
+ \everypar{\Hang{11pc}{0}}%
+ \noindent{\ninebf ABSTRACT}\par
+ \tenpoint
+ \Fullout
+ \noindent #1\par
+ \egroup
+}
+
+\long\def\keywords#1{% keywords
+ \bgroup
+ \Half
+ \everypar{\Hang{11pc}{0}}%
+ \tenpoint
+ \Fullout
+ \noindent\hbox{\bf Key words:}\ #1\par
+ \egroup
+}
+
+
+% The \maketitle macro ensures that the two spanning material appears
+% at the top of the first page, and that it has two lines of space
+% underneath it. If you forget this in you input, no output will be produced.
+% The \BeginOpening (alias \begintopmatter) macro should be called at the
+% very start of the input file, so that it is in force when the document
+% starts. This ensures that when \maketitle is called that the group is
+% closed, and the material gets printed.
+
+\def\maketitle{%
+ \EndOpening
+ \ifsinglecol \else \MakePage\fi
+}
+
+
+% Page offset
+
+\def\pageoffset#1#2{\hoffset=#1\relax\voffset=#2\relax}
+
+
+% Counter setup
+
+\def\@nameuse#1{\csname #1\endcsname}
+\def\arabic#1{\@arabic{\@nameuse{#1}}}
+\def\alph#1{\@alph{\@nameuse{#1}}}
+\def\Alph#1{\@Alph{\@nameuse{#1}}}
+\def\@arabic#1{\number #1}
+\def\@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi}
+\def\@Ialph#1{\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or
+ K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or
+ Y\or Z\else\errmessage{Counter out of range}\fi}
+\def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi}
+\def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or
+ z\else\errmessage{Counter out of range}\fi}
+
+
+% Equation auto-numbering
+
+\newcount\Eqnno
+\newcount\SubEqnno
+
+\def\theeq{\arabic{Eqnno}}
+\def\thesubeq{\alph{SubEqnno}}
+
+\def\stepeq{\relax
+ \global\SubEqnno \z@
+ \global\advance\Eqnno \@ne\relax
+ {\rm (\theeq)}%
+}
+
+\def\startsubeq{\relax
+ \global\SubEqnno \z@
+ \global\advance\Eqnno \@ne\relax
+ \stepsubeq
+}
+
+\def\stepsubeq{\relax
+ \global\advance\SubEqnno \@ne\relax
+ {\rm (\theeq\thesubeq)}%
+}
+
+
+% Headings
+
+\newcount\Sec % heading auto number counters
+\newcount\SecSec
+\newcount\SecSecSec
+
+\def\thesection{\arabic{Sec}}
+\def\thesubsection{\thesection.\arabic{SecSec}}
+\def\thesubsubsection{\thesubsection.\arabic{SecSecSec}}
+
+
+\Sec=\z@
+
+\def\:{\let\@sptoken= } \: % this makes \@sptoken a space token
+\def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch}
+
+\def\@ifnextchar#1#2#3{%
+ \let\@tempMACe #1%
+ \def\@tempMACa{#2}%
+ \def\@tempMACb{#3}%
+ \futurelet \@tempMACc\@ifnch%
+}
+
+\def\@ifnch{%
+\ifx \@tempMACc \@sptoken%
+ \let\@tempMACd\@xifnch%
+\else%
+ \ifx \@tempMACc \@tempMACe%
+ \let\@tempMACd\@tempMACa%
+ \else%
+ \let\@tempMACd\@tempMACb%
+ \fi%
+\fi%
+\@tempMACd%
+}
+
+\def\@ifstar#1#2{\@ifnextchar *{\def\@tempMACa*{#1}\@tempMACa}{#2}}
+
+\newskip\@tempskipb
+
+\def\addvspace#1{%
+ \ifvmode\else \endgraf\fi%
+ \ifdim\lastskip=\z@%
+ \vskip #1\relax%
+ \else%
+ \@tempskipb#1\relax\@xaddvskip%
+ \fi%
+}
+
+\def\@xaddvskip{%
+ \ifdim\lastskip<\@tempskipb%
+ \vskip-\lastskip%
+ \vskip\@tempskipb\relax%
+ \else%
+ \ifdim\@tempskipb<\z@%
+ \ifdim\lastskip<\z@ \else%
+ \advance\@tempskipb\lastskip%
+ \vskip-\lastskip\vskip\@tempskipb%
+ \fi%
+ \fi%
+ \fi%
+}
+
+\newskip\@tmpSKIP
+
+\def\addpen#1{%
+ \ifvmode
+ \if@nobreak
+ \else
+ \ifdim\lastskip=\z@
+ \penalty#1\relax
+ \else
+ \@tmpSKIP=\lastskip
+ \vskip -\lastskip
+ \penalty#1\vskip\@tmpSKIP
+ \fi
+ \fi
+ \fi
+}
+
+\newcount\@clubpen \@clubpen=\clubpenalty
+\newif\if@nobreak \@nobreakfalse
+
+\def\@noafterindent{%
+ \global\@nobreaktrue
+ \everypar{\if@nobreak
+ \global\@nobreakfalse
+ \clubpenalty \@M
+ {\setbox\z@\lastbox}%
+ \LastMac=\Nulle\relax%
+ \else
+ \clubpenalty \@clubpen
+ \everypar{}%
+ \fi}%
+}
+
+\newcount\gds@cbrk \gds@cbrk=-300
+
+\def\@nohdbrk{\interlinepenalty \@M\relax}
+
+\let\@par=\par
+\def\@restorepar{\def\par{\@par}}
+
+\newif\if@endpe \@endpefalse
+
+\def\@doendpe{\@endpetrue \@nobreakfalse \LastMac=\Nulle\relax%
+ \def\par{\@restorepar\everypar{}\par\@endpefalse}%
+ \everypar{\setbox\z@\lastbox\everypar{}\@endpefalse}%
+}
+
+\def\section{\@ifstar{\@ssection}{\@section}}
+
+\def\@section#1{% heading A (\section{....})
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{\half}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\two}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+ \global\advance\Sec \@ne
+ \ifappendix
+ \global\Eqnno=\z@ \global\SubEqnno=\z@\relax
+ \def\ch@ck{#1}%
+ \ifx\ch@ck\empty \def\c@lon{}\else\def\c@lon{:}\fi
+ \noindent\@nohdbrk APPENDIX\ \thesection\c@lon\hskip 0.5em%
+ \uppercase{#1}\par
+ \else
+ \noindent\@nohdbrk\thesection\hskip 1pc \uppercase{#1}\par
+ \fi
+ \global\SecSec=\z@
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hae\relax
+}
+
+\def\@ssection#1{% main section heading (\section*{....})
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{\half}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\two}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+% \ifappendix
+% \global\Eqnno=\z@ \global\SubEqnno=\z@\relax % mh in apps dont reset
+% \noindent\@nohdbrk APPENDIX:\hskip 0.5em%
+% \uppercase{#1}\par
+% \else
+ \noindent\@nohdbrk\uppercase{#1}\par
+% \fi
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hae\relax
+}
+
+\def\subsection{\@ifstar{\@ssubsection}{\@subsection}}
+
+\def\@subsection#1{% heading B
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+ \global\advance\SecSec \@ne
+ \noindent\@nohdbrk\thesubsection \hskip 1pc\relax #1\par
+ \global\SecSecSec=\z@
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hbe\relax
+}
+
+\def\@ssubsection#1{% heading B*
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hae \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\bf
+ \Raggedright
+ \noindent\@nohdbrk #1\par
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hbe\relax
+}
+
+\def\subsubsection{\@ifstar{\@ssubsubsection}{\@subsubsection}}
+
+\def\@subsubsection#1{% heading C
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hbe \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\it
+ \Raggedright
+ \global\advance\SecSecSec \@ne
+ \noindent\@nohdbrk\thesubsubsection \hskip 1pc\relax #1\par
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hce\relax
+}
+
+\def\@ssubsubsection#1{% heading C*
+ \if@nobreak
+ \everypar{}%
+ \ifnum\LastMac=\Hbe \addvspace{1pt plus 1pt minus .5pt}\fi
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\onehalf}%
+ \fi
+ \bgroup
+ \ninepoint\it
+ \Raggedright
+ \noindent\@nohdbrk #1\par
+ \egroup
+ \nobreak
+ \vskip\half
+ \nobreak
+ \@noafterindent
+ \LastMac=\Hce\relax
+}
+
+\def\paragraph#1{% heading D
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpen{\gds@cbrk}%
+ \addvspace{\one}%
+ \fi%
+ \bgroup%
+ \ninepoint\it
+ \noindent #1\ \nobreak%
+ \egroup
+ \LastMac=\Hde\relax
+ \ignorespaces
+}
+
+
+% Appendix
+
+\newif\ifappendix
+
+\def\appendix{%
+ \global\appendixtrue
+ \def\thesection{\Alph{Sec}}%
+ \def\thesubsection{\thesection\arabic{SecSec}}%
+ \def\theeq{\thesection\arabic{Eqnno}}%
+ \Sec=\z@ \SecSec=\z@ \SecSecSec=\z@ \Eqnno=\z@ \SubEqnno=\z@\relax
+}
+
+
+% Text
+
+\let\tx=\relax % provided for backward compatibility
+
+
+% Lists
+
+\def\beginlist{%
+ \par\if@nobreak \else\addvspace{\half}\fi%
+ \bgroup%
+ \ninepoint
+ \let\item=\list@item%
+}
+
+\def\list@item{%
+ \par\noindent\hskip 1em\relax%
+ \ignorespaces%
+}
+
+\def\endlist{\par\egroup\addvspace{\half}\@doendpe}
+
+
+% References
+
+\def\beginrefs{%
+ \par
+ \bgroup
+ \eightpoint
+ \Fullout
+ \let\bibitem=\bib@item
+}
+
+\def\bib@item{%
+ \par\parindent=1.5em\Hang{1.5em}{1}%
+ \everypar={\Hang{1.5em}{1}\ignorespaces}%
+ \noindent\ignorespaces
+}
+
+\def\endrefs{\par\egroup\@doendpe}
+
+
+% Page heads
+
+\newtoks\CatchLine
+
+\def\@journal{Mon.\ Not.\ R.\ Astron.\ Soc.\ } % The journal title string
+\def\@pubyear{1994} % Assign a default publication year
+\def\@pagerange{000--000} % Assign a default page-range
+\def\@volume{000} % Assign a default volume number
+\def\@microfiche{} %
+
+\def\pubyear#1{\gdef\@pubyear{#1}\@makecatchline}
+\def\pagerange#1{\gdef\@pagerange{#1}\@makecatchline}
+\def\volume#1{\gdef\@volume{#1}\@makecatchline}
+\def\microfiche#1{\gdef\@microfiche{and Microfiche\ #1}\@makecatchline}
+
+\def\@makecatchline{%
+ \global\CatchLine{%
+ {\rm \@journal {\bf \@volume},\ \@pagerange\ (\@pubyear)\ \@microfiche}}%
+}
+
+\@makecatchline % Assign a catchline, using the above defaults
+
+\newtoks\LeftHeader
+\def\shortauthor#1{% left page head
+ \global\LeftHeader{#1}%
+}
+
+\newtoks\RightHeader
+\def\shorttitle#1{% right page head
+ \global\RightHeader{#1}%
+}
+
+\def\PageHead{% recto/verso running heads
+ \begingroup
+ \ifsp@page
+ \csname ps@\sp@type\endcsname
+ \global\sp@pagefalse
+ \fi
+ \ifodd\pageno
+ \let\the@head=\@oddhead
+ \else
+ \let\the@head=\@evenhead
+ \fi
+ \vbox to \z@{\vskip-22.5\p@%
+ \hbox to \PageWidth{\vbox to8.5\p@{}%
+ \the@head
+ }%
+ \vss}%
+ \endgroup
+ \nointerlineskip
+}
+
+\def\today{%
+ \number\day\space
+ \ifcase\month\or January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\year%
+}
+
+\def\PageFoot{} % No page footer as default
+
+\def\authorcomment#1{%
+ \gdef\PageFoot{%
+ \nointerlineskip%
+ \vbox to 22pt{\vfil%
+ \hbox to \PageWidth{\elevenpoint\noindent \hfil #1 \hfil}}%
+ }%
+}
+
+
+% Plate pages
+
+\newif\ifplate@page
+\newbox\plt@box
+
+\def\beginplatepage{%
+ \let\plate=\plate@head
+ \let\caption=\fig@caption
+ \global\setbox\plt@box=\vbox\bgroup
+ \TEMPDIMEN=\PageWidth % For \fig@caption test
+ \hsize=\PageWidth\relax
+}
+
+\def\endplatepage{\par\egroup\global\plate@pagetrue}
+\def\plate@head#1{\gdef\plt@cap{#1}}
+
+% Letters option
+
+\def\letters{%
+ \gdef\folio{\ifnum\pageno<\z@ L\romannumeral-\pageno
+ \else L\number\pageno \fi}%
+}
+
+
+% Math setup
+
+% The standard math indentation
+\newdimen\mathindent
+
+\global\mathindent=\z@
+\global\everydisplay{\global\@dspwd=\displaywidth\displaysetup}
+
+% New versions of \displaylines, \eqalign, \eqalignno for
+% when non-centered math is in use.
+
+\def\@displaylines#1{% (for non-centered math)
+ {}$\displ@y\hbox{\vbox{\halign{$\@lign\hfil\displaystyle##\hfil$\crcr
+ #1\crcr}}}${}%
+}
+
+\def\@eqalign#1{\null\vcenter{\openup\jot\m@th% (for non-centered math)
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
+ \crcr#1\crcr}}%
+}
+
+\def\@eqalignno#1{% (for non-centered math)
+ \global\advance\@dspwd by -\mathindent%
+ {}$\displ@y\hbox{\vbox{\halign to\@dspwd%
+ {\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\llap{$\@lign##$}\tabskip\z@skip\crcr
+ #1\crcr}}}${}%
+}
+
+% When equations are flushleft ensure, that \displaylines,
+% \eqalign, \eqalignno and \leqalignno point to the new versions of
+% the macros. Also make \leqalignno act like \eqalignno, otherwise the
+% equation text would `crash' into the equation number.
+
+\global\let\displaylines=\@displaylines
+\global\let\eqalign=\@eqalign
+\global\let\eqalignno=\@eqalignno
+\global\let\leqalignno=\@eqalignno
+
+\newdimen\@dspwd \@dspwd=\z@
+\newif\if@eqno
+\newif\if@leqno
+\newtoks\@eqn
+\newtoks\@eq
+
+\def\displaysetup#1$${\displaytest#1\eqno\eqno\displaytest}
+
+\def\displaytest#1\eqno#2\eqno#3\displaytest{%
+ \if!#3!\ldisplaytest#1\leqno\leqno\ldisplaytest
+ \else\@eqnotrue\@leqnofalse\@eqn={#2}\@eq={#1}\fi
+ \generaldisplay$$}
+
+\def\ldisplaytest#1\leqno#2\leqno#3\ldisplaytest{%
+\@eq={#1}%
+ \if!#3!\@eqnofalse\else\@eqnotrue\@leqnotrue
+ \@eqn={#2}\fi}
+
+\def\generaldisplay{%
+ \if@eqno
+ \if@leqno
+ \hbox to \displaywidth{\noindent
+ \rlap{$\displaystyle\the\@eqn$}%
+ \hskip\mathindent$\displaystyle\the\@eq$\hfil}%
+ \else
+ \hbox to \displaywidth{\noindent
+ \hskip\mathindent
+ $\displaystyle\the\@eq$\hfil$\displaystyle\the\@eqn$}%
+ \fi
+ \else
+ \hbox to \displaywidth{\noindent
+ \hskip\mathindent$\displaystyle\the\@eq$\hfil}%
+ \fi
+}
+
+
+% Finishing notice
+
+\def\@notice{%
+ \par\Two%
+ \noindent{\b@ls{11pt}\ninerm This paper has been produced using the
+ Royal Astronomical Society/Blackwell Science \TeX\ macros.\par}%
+}
+
+% redefine \bye to output our identification notice :
+\outer\def\bye{\@notice\par\vfill\supereject\end}
+
+
+% define a sign on :
+
+\def\start@mess{%
+ Monthly notices of the RAS journal style (\@typeface)\space
+ v\@version,\space \@verdate.%
+}
+
+\everyjob{\Warn{\start@mess}}
+
+
+% Two-column macros
+
+%--------------------------------------------------------%
+% INITIALISATION %
+%--------------------------------------------------------%
+
+\newif\if@debug \@debugfalse % when false, only warnings displayed
+
+\def\Print#1{\if@debug\immediate\write16{#1}\else \fi}
+\def\Warn#1{\immediate\write16{#1}}
+\def\wlog#1{}
+
+\newcount\Iteration % temporary loop counter
+
+\def\Single{0} \def\Double{1} % ItemSPAN's
+\def\Figure{0} \def\Table{1} % ItemTYPE's
+
+\def\InStack{0} % ItemSTATUS
+\def\InZoneA{1}
+\def\InZoneB{2}
+\def\InZoneC{3}
+
+\newcount\TEMPCOUNT % temporary count register
+\newdimen\TEMPDIMEN % temporary dimen register
+\newbox\TEMPBOX % temporary box register
+\newbox\VOIDBOX % a box which is permenately void
+
+\newcount\LengthOfStack % number of items currently in stack
+\newcount\MaxItems % maximum number of items allowed in stack
+\newcount\StackPointer
+\newcount\Point % used in calculation for generating the
+ % physical address of an item in the stack.
+\newcount\NextFigure % number of next figure to be output
+\newcount\NextTable % number of next table to be output
+\newcount\NextItem % Next item to consider by order in stack
+
+\newcount\StatusStack % set to point to top of STATUS stack
+\newcount\NumStack % set to point to top of NUMBER stack
+\newcount\TypeStack % set to point to top of TYPE stack
+\newcount\SpanStack % set to point to top of SPAN stack
+\newcount\BoxStack % set to point to top of BOX stack
+
+\newcount\ItemSTATUS % status of present item
+\newcount\ItemNUMBER % number of present item
+\newcount\ItemTYPE % type of present item
+\newcount\ItemSPAN % span of present item
+\newbox\ItemBOX % box of present item
+\newdimen\ItemSIZE % size of present item
+ % (calculated by GetItemBOX)
+
+\newdimen\PageHeight % vertical measure of full page
+\newdimen\TextLeading % distance between baselines of body text
+\newdimen\Feathering % amount of interline stretch
+\newcount\LinesPerPage % height of page in text lines
+\newdimen\ColumnWidth % width of 1 column of text
+\newdimen\ColumnGap % size of gap between columns
+\newdimen\PageWidth % = \ColumnWidth * 2 + \ColumnGap
+\newdimen\BodgeHeight % Bodge to align figures and tables with text
+\newcount\Leading % Set to same as \TextLeading above
+
+\newdimen\ZoneBSize % size of items in ZoneB
+\newdimen\TextSize % size of text in ZoneB
+\newbox\ZoneABOX % contains Zone A material
+\newbox\ZoneBBOX % contains Zone B material
+\newbox\ZoneCBOX % contains Zone C material
+
+\newif\ifFirstSingleItem
+\newif\ifFirstZoneA
+\newif\ifMakePageInComplete
+\newif\ifMoreFigures \MoreFiguresfalse % set true in join stack
+\newif\ifMoreTables \MoreTablesfalse % set true in join stack
+
+\newif\ifFigInZoneB % used to determine in which zone an item
+\newif\ifFigInZoneC % will be placed based on what is in other
+\newif\ifTabInZoneB % zones already for a given page.
+\newif\ifTabInZoneC
+
+\newif\ifZoneAFullPage
+
+\newbox\MidBOX % = LeftBOX+gap+RightBOX
+\newbox\LeftBOX
+\newbox\RightBOX
+\newbox\PageBOX % complete made-up page
+
+\newif\ifLeftCOL % flags first pass through output routine
+\LeftCOLtrue
+
+\newdimen\ZoneBAdjust
+
+\newcount\ItemFits
+\def\Yes{1}
+\def\No{2}
+
+\def\LineAdjust#1{\global\ZoneBAdjust=#1\TextLeading\relax}
+
+
+% Setup file.
+
+\MaxItems=15
+\NextFigure=\z@ % used for article opening
+\NextTable=\@ne
+
+\BodgeHeight=6pt
+\TextLeading=11pt % baselineskip of body text
+\Leading=11
+\Feathering=\z@ % amount of interline stretch
+\LinesPerPage=61 % number of text lines per full page -1
+\topskip=\TextLeading
+\ColumnWidth=20pc % width of text columns
+\ColumnGap=2pc % gap between columns
+
+\newskip\ItemSepamount % space between floats
+\ItemSepamount=\TextLeading plus \TextLeading minus 4pt
+
+\parskip=\z@ plus .1pt
+\parindent=18pt
+\widowpenalty=\z@
+\clubpenalty=10000
+\tolerance=1500
+\hbadness=1500
+\abovedisplayskip=6pt plus 2pt minus 1pt
+\belowdisplayskip=6pt plus 2pt minus 1pt
+\abovedisplayshortskip=6pt plus 2pt minus 1pt
+\belowdisplayshortskip=6pt plus 2pt minus 1pt
+
+\frenchspacing
+
+\ninepoint % start main text size
+
+\PageHeight=682pt
+\PageWidth=2\ColumnWidth
+\advance\PageWidth by \ColumnGap
+
+\pagestyle{headings}
+
+
+%--------------------------------------------------------%
+% STACKS %
+%--------------------------------------------------------%
+
+% THE ITEM STACK
+% The item stack contains contains figures and tables
+% in the order in which they appear in the article source
+% code.
+
+% allocate stack space
+
+\newcount\DUMMY \StatusStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newcount\DUMMY \NumStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newcount\DUMMY \TypeStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newcount\DUMMY \SpanStack=\allocationnumber
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+\newcount\DUMMY \newcount\DUMMY \newcount\DUMMY
+
+\newbox\DUMMY \BoxStack=\allocationnumber
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+\newbox\DUMMY \newbox\DUMMY \newbox\DUMMY
+
+\def\wlog{\immediate\write\m@ne}
+
+% \GetItemSTATUS, \GetItemNUMBER, \GetItemTYPE, \GetItemSPAN,
+% \GetItemBox
+% are used to get details of a particular item from the item
+% stack. The argument to each of these is the items position
+% in the stack (usually \StackPointer)...not the items number.
+
+\def\GetItemAll#1{%
+ \GetItemSTATUS{#1}
+ \GetItemNUMBER{#1}
+ \GetItemTYPE{#1}
+ \GetItemSPAN{#1}
+ \GetItemBOX{#1}
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemSTATUS#1{%
+ \Point=\StatusStack
+ \advance\Point by #1
+ \global\ItemSTATUS=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemNUMBER#1{%
+ \Point=\NumStack
+ \advance\Point by #1
+ \global\ItemNUMBER=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemTYPE#1{%
+ \Point=\TypeStack
+ \advance\Point by #1
+ \global\ItemTYPE=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemSPAN#1{%
+ \Point\SpanStack
+ \advance\Point by #1
+ \global\ItemSPAN=\count\Point
+}
+
+% Note: \LeaveStack uses this routine. Do not destroy \Point
+\def\GetItemBOX#1{%
+ \Point=\BoxStack
+ \advance\Point by #1
+ \global\setbox\ItemBOX=\vbox{\copy\Point}
+ \global\ItemSIZE=\ht\ItemBOX
+ \global\advance\ItemSIZE by \dp\ItemBOX
+ \TEMPCOUNT=\ItemSIZE
+ \divide\TEMPCOUNT by \Leading
+ \divide\TEMPCOUNT by 65536
+ \advance\TEMPCOUNT \@ne
+ \ItemSIZE=\TEMPCOUNT pt
+ \global\multiply\ItemSIZE by \Leading
+}
+
+% item joins stack
+
+\def\JoinStack{%
+ \ifnum\LengthOfStack=\MaxItems % stack is full of items
+ \Warn{WARNING: Stack is full...some items will be lost!}
+ \else
+ \Point=\StatusStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemSTATUS
+ \Point=\NumStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemNUMBER
+ \Point=\TypeStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemTYPE
+ \Point\SpanStack
+ \advance\Point by \LengthOfStack
+ \global\count\Point=\ItemSPAN
+ \Point=\BoxStack
+ \advance\Point by \LengthOfStack
+ \global\setbox\Point=\vbox{\copy\ItemBOX}
+ \global\advance\LengthOfStack \@ne
+ \ifnum\ItemTYPE=\Figure % used in \MakePage
+ \global\MoreFigurestrue
+ \else
+ \global\MoreTablestrue
+ \fi
+ \fi
+}
+
+% item leaves stack
+% #1=physical position of the item to be removed
+
+\def\LeaveStack#1{%
+ {\Iteration=#1
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \advance\Iteration \@ne
+ \GetItemSTATUS{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemSTATUS
+ \GetItemNUMBER{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemNUMBER
+ \GetItemTYPE{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemTYPE
+ \GetItemSPAN{\Iteration}
+ \advance\Point by \m@ne
+ \global\count\Point=\ItemSPAN
+ \GetItemBOX{\Iteration}
+ \advance\Point by \m@ne
+ \global\setbox\Point=\vbox{\copy\ItemBOX}
+ \repeat}
+ \global\advance\LengthOfStack by \m@ne
+}
+
+% clean stack
+% This routine scans through the stack and removes anything
+% that does not have STATUS=\InStack.
+
+\newif\ifStackNotClean
+
+\def\CleanStack{%
+ \StackNotCleantrue
+ {\Iteration=\z@
+ \loop
+ \ifStackNotClean
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InStack
+ \advance\Iteration \@ne
+ \else
+ \LeaveStack{\Iteration}
+ \fi
+ \ifnum\LengthOfStack<\Iteration
+ \StackNotCleanfalse
+ \fi
+ \repeat}
+}
+
+% Find item.
+% This macro searches from the top to the bottom of the
+% stack for an item of a specified type and number.
+% #1=type, #2=number
+% If the specified item is found, then \StackPointer is set
+% to point to it, else \StackPointer=-1.
+% This routine is used to find the next figure or table
+% by number.
+
+\def\FindItem#1#2{%
+ \global\StackPointer=\m@ne % assume item isn't in stack for now
+ {\Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InStack
+ \GetItemTYPE{\Iteration}
+ \ifnum\ItemTYPE=#1
+ \GetItemNUMBER{\Iteration}
+ \ifnum\ItemNUMBER=#2
+ \global\StackPointer=\Iteration
+ \Iteration=\LengthOfStack % terminate loop
+ \fi
+ \fi
+ \fi
+ \advance\Iteration \@ne
+ \repeat}
+}
+
+% Find next type
+% This macro searches from the top to the bottom of the stack
+% looking for the first item which has STATUS=\InStack.
+% If it is a figure then a figure is what will be considered
+% next by \MakePage else table.
+
+\def\FindNext{%
+ \global\StackPointer=\m@ne % assume stack is empty for now
+ {\Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InStack
+ \GetItemTYPE{\Iteration}
+ \ifnum\ItemTYPE=\Figure
+ \ifMoreFigures
+ \global\NextItem=\Figure
+ \global\StackPointer=\Iteration
+ \Iteration=\LengthOfStack % terminate loop
+ \fi
+ \fi
+ \ifnum\ItemTYPE=\Table
+ \ifMoreTables
+ \global\NextItem=\Table
+ \global\StackPointer=\Iteration
+ \Iteration=\LengthOfStack % terminate loop
+ \fi
+ \fi
+ \fi
+ \advance\Iteration \@ne
+ \repeat}
+}
+
+% Change status
+% Macro to change the status of a specified item in stack.
+% #1=item, #2=new status
+
+\def\ChangeStatus#1#2{%
+ \Point=\StatusStack
+ \advance\Point by #1
+ \global\count\Point=#2
+}
+
+
+%--------------------------------------------------------%
+% MAKEPAGE %
+%--------------------------------------------------------%
+
+% This macro is called at the start of every new page
+% including the first. It scans through the stack picking
+% out items which should be placed on this page. It then
+% leaves space for the items to be placed later. The routine
+% terminates when either there is no room on the page to
+% fit the next figure or table, or there are no more items
+% in the stack.
+
+\def\Zone{\InZoneA}
+
+\ZoneBAdjust=\z@
+
+\def\MakePage{% allocate space on this page for stack items
+ \global\ZoneBSize=\PageHeight
+ \global\TextSize=\ZoneBSize
+ \global\ZoneAFullPagefalse
+ \global\topskip=\TextLeading
+ \MakePageInCompletetrue
+ \MoreFigurestrue
+ \MoreTablestrue
+ \FigInZoneBfalse
+ \FigInZoneCfalse
+ \TabInZoneBfalse
+ \TabInZoneCfalse
+ \global\FirstSingleItemtrue
+ \global\FirstZoneAtrue
+ \global\setbox\ZoneABOX=\box\VOIDBOX
+ \global\setbox\ZoneBBOX=\box\VOIDBOX
+ \global\setbox\ZoneCBOX=\box\VOIDBOX
+ \loop
+ \ifMakePageInComplete
+ \FindNext
+ \ifnum\StackPointer=\m@ne
+ \NextItem=\m@ne
+ \MoreFiguresfalse
+ \MoreTablesfalse
+ \fi
+ \ifnum\NextItem=\Figure
+ \FindItem{\Figure}{\NextFigure}
+ \ifnum\StackPointer=\m@ne \global\MoreFiguresfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Single \def\Zone{\InZoneB}\relax
+ \ifFigInZoneC \global\MoreFiguresfalse\fi
+ \else
+ \def\Zone{\InZoneA}
+ \ifFigInZoneB \def\Zone{\InZoneC}\fi
+ \fi
+ \fi
+ \ifMoreFigures\Print{}\FigureItems\fi
+ \fi
+\ifnum\NextItem=\Table
+ \FindItem{\Table}{\NextTable}
+ \ifnum\StackPointer=\m@ne \global\MoreTablesfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Single\relax
+ \ifTabInZoneC \global\MoreTablesfalse\fi
+ \else
+ \def\Zone{\InZoneA}
+ \ifTabInZoneB \def\Zone{\InZoneC}\fi
+ \fi
+ \fi
+ \ifMoreTables\Print{}\TableItems\fi
+ \fi
+ \MakePageInCompletefalse % assume page is complete
+ \ifMoreFigures\MakePageInCompletetrue\fi
+ \ifMoreTables\MakePageInCompletetrue\fi
+ \repeat
+%\Print{TextSize=\the\TextSize}
+%\Print{ZoneBSize=\the\ZoneBSize}
+ \ifZoneAFullPage
+ \global\TextSize=\z@
+ \global\ZoneBSize=\z@
+ \global\vsize=\z@\relax
+ \global\topskip=\z@\relax
+ \vbox to \z@{\vss}
+ \eject
+ \else
+ \global\advance\ZoneBSize by -\ZoneBAdjust
+ \global\vsize=\ZoneBSize
+ \global\hsize=\ColumnWidth
+ \global\ZoneBAdjust=\z@
+ \ifdim\TextSize<23pt
+ \Warn{}
+ \Warn{* Making column fall short: TextSize=\the\TextSize *}
+ \vskip-\lastskip\eject\fi
+ \fi
+}
+
+\def\MakeRightCol{% allocate space for the right column of text
+ \global\TextSize=\ZoneBSize
+ \MakePageInCompletetrue
+ \MoreFigurestrue
+ \MoreTablestrue
+ \global\FirstSingleItemtrue
+ \global\setbox\ZoneBBOX=\box\VOIDBOX
+ \def\Zone{\InZoneB}
+ \loop
+ \ifMakePageInComplete
+ \FindNext
+ \ifnum\StackPointer=\m@ne
+ \NextItem=\m@ne
+ \MoreFiguresfalse
+ \MoreTablesfalse
+ \fi
+ \ifnum\NextItem=\Figure
+ \FindItem{\Figure}{\NextFigure}
+ \ifnum\StackPointer=\m@ne \MoreFiguresfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Double\relax
+ \MoreFiguresfalse\fi
+ \fi
+ \ifMoreFigures\Print{}\FigureItems\fi
+ \fi
+ \ifnum\NextItem=\Table
+ \FindItem{\Table}{\NextTable}
+ \ifnum\StackPointer=\m@ne \MoreTablesfalse
+ \else
+ \GetItemSPAN{\StackPointer}
+ \ifnum\ItemSPAN=\Double\relax
+ \MoreTablesfalse\fi
+ \fi
+ \ifMoreTables\Print{}\TableItems\fi
+ \fi
+ \MakePageInCompletefalse % assume page is complete
+ \ifMoreFigures\MakePageInCompletetrue\fi
+ \ifMoreTables\MakePageInCompletetrue\fi
+ \repeat
+ \ifZoneAFullPage
+ \global\TextSize=\z@
+ \global\ZoneBSize=\z@
+ \global\vsize=\z@\relax
+ \global\topskip=\z@\relax
+ \vbox to \z@{\vss}
+ \eject
+ \else
+ \global\vsize=\ZoneBSize
+ \global\hsize=\ColumnWidth
+ \ifdim\TextSize<23pt
+ \Warn{}
+ \Warn{* Making column fall short: TextSize=\the\TextSize *}
+ \vskip-\lastskip\eject\fi
+\fi
+}
+
+\def\FigureItems{% Stack pointer points to next figure
+ \Print{Considering...}
+ \ShowItem{\StackPointer}
+ \GetItemBOX{\StackPointer} % auto calculates ItemSIZE
+ \GetItemSPAN{\StackPointer}
+ \CheckFitInZone % check to see if item fits
+ \ifnum\ItemFits=\Yes
+ \ifnum\ItemSPAN=\Single
+ \ChangeStatus{\StackPointer}{\InZoneB} % flag to be output
+ \global\FigInZoneBtrue
+ \ifFirstSingleItem
+ \hbox{}\vskip-\BodgeHeight
+ \global\advance\ItemSIZE by \TextLeading
+ \fi
+ \unvbox\ItemBOX\ItemSep
+ \global\FirstSingleItemfalse
+ \global\advance\TextSize by -\ItemSIZE% allocate space
+ \global\advance\TextSize by -\TextLeading
+ \else
+ \ifFirstZoneA
+ \global\advance\ItemSIZE by \TextLeading
+ \global\FirstZoneAfalse\fi
+ \global\advance\TextSize by -\ItemSIZE
+ \global\advance\TextSize by -\TextLeading
+ \global\advance\ZoneBSize by -\ItemSIZE
+ \global\advance\ZoneBSize by -\TextLeading
+ \ifFigInZoneB\relax
+ \else
+ \ifdim\TextSize<3\TextLeading
+ \global\ZoneAFullPagetrue
+ \fi
+ \fi
+ \ChangeStatus{\StackPointer}{\Zone}
+ \ifnum\Zone=\InZoneC \global\FigInZoneCtrue\fi
+ \fi
+ \Print{TextSize=\the\TextSize}
+ \Print{ZoneBSize=\the\ZoneBSize}
+ \global\advance\NextFigure \@ne
+ \Print{This figure has been placed.}
+ \else
+ \Print{No space available for this figure...holding over.}
+ \Print{}
+ \global\MoreFiguresfalse
+ \fi
+}
+
+\def\TableItems{% Stack pointer points to next table
+ \Print{Considering...}
+ \ShowItem{\StackPointer}
+ \GetItemBOX{\StackPointer} % auto calculates ItemSIZE
+ \GetItemSPAN{\StackPointer}
+ \CheckFitInZone % check to see of item fits in Zone
+ \ifnum\ItemFits=\Yes
+ \ifnum\ItemSPAN=\Single
+ \ChangeStatus{\StackPointer}{\InZoneB}
+ \global\TabInZoneBtrue
+ \ifFirstSingleItem
+ \hbox{}\vskip-\BodgeHeight
+ \global\advance\ItemSIZE by \TextLeading
+ \fi
+ \unvbox\ItemBOX\ItemSep
+ \global\FirstSingleItemfalse
+ \global\advance\TextSize by -\ItemSIZE
+ \global\advance\TextSize by -\TextLeading
+ \else
+ \ifFirstZoneA
+ \global\advance\ItemSIZE by \TextLeading
+ \global\FirstZoneAfalse\fi
+ \global\advance\TextSize by -\ItemSIZE
+ \global\advance\TextSize by -\TextLeading
+ \global\advance\ZoneBSize by -\ItemSIZE
+ \global\advance\ZoneBSize by -\TextLeading
+ \ifFigInZoneB\relax
+ \else
+ \ifdim\TextSize<3\TextLeading
+ \global\ZoneAFullPagetrue
+ \fi
+ \fi
+ \ChangeStatus{\StackPointer}{\Zone}
+ \ifnum\Zone=\InZoneC \global\TabInZoneCtrue\fi
+ \fi
+% \Print{TextSize=\the\TextSize}
+% \Print{ZoneBSize=\the\ZoneBSize}
+ \global\advance\NextTable \@ne
+ \Print{This table has been placed.}
+ \else
+ \Print{No space available for this table...holding over.}
+ \Print{}
+ \global\MoreTablesfalse
+ \fi
+}
+
+% These macros check to see if an item of ItemSIZE will
+% fit in a particular zone. If it will, then ItemFits
+% will be set true else false.
+
+\def\CheckFitInZone{%
+{\advance\TextSize by -\ItemSIZE
+ \advance\TextSize by -\TextLeading
+ \ifFirstSingleItem
+ \advance\TextSize by \TextLeading
+ \fi
+ \ifnum\Zone=\InZoneA\relax
+ \else \advance\TextSize by -\ZoneBAdjust
+ \fi
+ \ifdim\TextSize<3\TextLeading \global\ItemFits=\No
+ \else \global\ItemFits=\Yes\fi}
+}
+
+\def\BeginOpening{%
+ % start 9pt a.s.a.p. so that \New.. commands get a chance to init.
+ \ninepoint
+ \thispagestyle{titlepage}%
+ \global\setbox\ItemBOX=\vbox\bgroup%
+ \hsize=\PageWidth%
+ \hrule height \z@
+ \ifsinglecol\vskip 6pt\fi % Bodge, to get same pos. as two-column!
+}
+
+\let\begintopmatter=\BeginOpening % alias for \BeginOpening
+
+\def\EndOpening{%
+ \One% 1 line fixed space below opening
+ \egroup
+ \ifsinglecol
+ \box\ItemBOX%
+ \vskip\TextLeading plus 2\TextLeading% var. space: min 1, max 3 lines
+ \@noafterindent
+ \else
+ \ItemNUMBER=\z@%
+ \ItemTYPE=\Figure
+ \ItemSPAN=\Double
+ \ItemSTATUS=\InStack
+ \JoinStack
+ \fi
+}
+
+
+% Figures
+
+\newif\if@here \@herefalse
+
+\def\no@float{\global\@heretrue}
+\let\nofloat=\relax % only enabled for one column
+
+\def\beginfigure{%
+ \@ifstar{\global\@dfloattrue \@bfigure}{\global\@dfloatfalse \@bfigure}%
+}
+
+\def\@bfigure#1{%
+ \par
+ \if@dfloat
+ \ItemSPAN=\Double
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSPAN=\Single
+ \TEMPDIMEN=\ColumnWidth
+ \fi
+ \ifsinglecol
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSTATUS=\InStack
+ \ItemNUMBER=#1%
+ \ItemTYPE=\Figure
+ \fi
+ \bgroup
+ \hsize=\TEMPDIMEN
+ \global\setbox\ItemBOX=\vbox\bgroup
+ \eightpoint\nostb@ls{10pt}%
+ \let\caption=\fig@caption
+ \ifsinglecol \let\nofloat=\no@float\fi
+}
+
+\def\fig@caption#1{%
+ \vskip 5.5pt plus 6pt%
+ \bgroup % grouping and size change needed for plate pages
+ \eightpoint\nostb@ls{10pt}%
+ \setbox\TEMPBOX=\hbox{#1}%
+ \ifdim\wd\TEMPBOX>\TEMPDIMEN
+ \noindent \unhbox\TEMPBOX\par
+ \else
+ \hbox to \hsize{\hfil\unhbox\TEMPBOX\hfil}%
+ \fi
+ \egroup
+}
+
+\def\endfigure{%
+ \par\egroup % end \vbox
+ \egroup
+ \ifsinglecol
+ \if@here \midinsert\global\@herefalse\else \topinsert\fi
+ \unvbox\ItemBOX
+ \endinsert
+ \else
+ \JoinStack
+ \Print{Processing source for figure \the\ItemNUMBER}%
+ \fi
+}
+
+
+% Tables
+
+\newbox\tab@cap@box
+\def\tab@caption#1{\global\setbox\tab@cap@box=\hbox{#1\par}}
+
+\newtoks\tab@txt@toks
+\long\def\tab@txt#1{\global\tab@txt@toks={#1}\global\table@txttrue}
+
+\newif\iftable@txt \table@txtfalse
+\newif\if@dfloat \@dfloatfalse
+
+\def\begintable{%
+ \@ifstar{\global\@dfloattrue \@btable}{\global\@dfloatfalse \@btable}%
+}
+
+\def\@btable#1{%
+ \par
+ \if@dfloat
+ \ItemSPAN=\Double
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSPAN=\Single
+ \TEMPDIMEN=\ColumnWidth
+ \fi
+ \ifsinglecol
+ \TEMPDIMEN=\PageWidth
+ \else
+ \ItemSTATUS=\InStack
+ \ItemNUMBER=#1%
+ \ItemTYPE=\Table
+ \fi
+ \bgroup
+ \eightpoint\nostb@ls{10pt}%
+ \global\setbox\ItemBOX=\vbox\bgroup
+ \let\caption=\tab@caption
+ \let\tabletext=\tab@txt
+ \ifsinglecol \let\nofloat=\no@float\fi
+}
+
+\def\endtable{%
+ \par\egroup % end \vbox
+ \egroup
+ \setbox\TEMPBOX=\hbox to \TEMPDIMEN{%
+ \eightpoint\nostb@ls{10pt}%
+ \hss
+ \vbox{%
+ \hsize=\wd\ItemBOX
+ \ifvoid\tab@cap@box
+ \else
+ \noindent\unhbox\tab@cap@box
+ \vskip 5.5pt plus 6pt%
+ \fi
+ \box\ItemBOX
+ \iftable@txt
+ \vskip 10pt%
+ \noindent\the\tab@txt@toks
+ \global\table@txtfalse
+ \fi
+ }%
+ \hss
+ }%
+ \ifsinglecol
+ \if@here \midinsert\global\@herefalse\else \topinsert\fi
+ \box\TEMPBOX
+ \endinsert
+ \else
+ \global\setbox\ItemBOX=\box\TEMPBOX
+ \JoinStack
+ \Print{Processing source for table \the\ItemNUMBER}%
+ \fi
+}
+
+
+\def\UnloadZoneA{%
+\FirstZoneAtrue
+ \Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InZoneA
+ \GetItemBOX{\Iteration}
+ \ifFirstZoneA \vbox to \BodgeHeight{\vfil}%
+ \FirstZoneAfalse\fi
+ \unvbox\ItemBOX\ItemSep
+ \LeaveStack{\Iteration}
+ \else
+ \advance\Iteration \@ne
+ \fi
+ \repeat
+}
+
+\def\UnloadZoneC{%
+\Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \GetItemSTATUS{\Iteration}
+ \ifnum\ItemSTATUS=\InZoneC
+ \GetItemBOX{\Iteration}
+ \ItemSep\unvbox\ItemBOX
+ \LeaveStack{\Iteration}
+ \else
+ \advance\Iteration \@ne
+ \fi
+ \repeat
+}
+
+
+%--------------------------------------------------------%
+% DIAGNOSTICS %
+%--------------------------------------------------------%
+
+\def\ShowItem#1{% Show details of on item entry in stack
+ {\GetItemAll{#1}
+ \Print{\the#1:
+ {TYPE=\ifnum\ItemTYPE=\Figure Figure\else Table\fi}
+ {NUMBER=\the\ItemNUMBER}
+ {SPAN=\ifnum\ItemSPAN=\Single Single\else Double\fi}
+ {SIZE=\the\ItemSIZE}}}
+}
+
+\def\ShowStack{%
+ \Print{}
+ \Print{LengthOfStack = \the\LengthOfStack}
+ \ifnum\LengthOfStack=\z@ \Print{Stack is empty}\fi
+ \Iteration=\z@
+ \loop
+ \ifnum\Iteration<\LengthOfStack
+ \ShowItem{\Iteration}
+ \advance\Iteration \@ne
+ \repeat
+}
+
+\def\B#1#2{%
+\hbox{\vrule\kern-0.4pt\vbox to #2{%
+\hrule width #1\vfill\hrule}\kern-0.4pt\vrule}
+}
+
+
+%-------------------------------------------------------%
+% SINGLE COLUMN OUTPUT ROUTINE %
+%-------------------------------------------------------%
+
+\newif\ifsinglecol \singlecolfalse
+
+\def\onecolumn{%
+ \global\output={\singlecoloutput}%
+ \global\hsize=\PageWidth
+ \global\vsize=\PageHeight
+ \global\ColumnWidth=\hsize
+ \global\TextLeading=12pt
+ \global\Leading=12
+ \global\singlecoltrue
+ \global\let\onecolumn=\relax% stop them using \onecolumn again
+ \global\let\footnote=\sing@footnote% enable footnotes
+ \global\let\vfootnote=\sing@vfootnote
+ \ninepoint % reset \baselineskip after leading change
+ \message{(Single column)}%
+}
+
+\def\singlecoloutput{%
+ \shipout\vbox{\PageHead\pagebody\PageFoot}%
+ \advancepageno
+%
+ \ifplate@page
+ \shipout\vbox{%
+ \sp@pagetrue
+ \def\sp@type{plate}%
+ \global\plate@pagefalse
+ \PageHead\vbox to \PageHeight{\unvbox\plt@box\vfil}\PageFoot%
+ }%
+ \message{[plate]}%
+ \advancepageno
+ \fi
+%
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi%
+}
+
+\def\ItemSep{\vskip\ItemSepamount\relax}
+
+\def\ItemSepbreak{\par\ifdim\lastskip<\ItemSepamount
+ \removelastskip\penalty-200\ItemSep\fi%
+}
+
+% Modify plain's \endinsert so that the mn's spacing is used
+
+\let\@@endinsert=\endinsert % save plain's original \endinsert
+
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@
+ \advance\dimen@\pagetotal \advance\dimen@-\pageshrink
+ \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi
+ \if@mid \ItemSep\box\z@\ItemSepbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\nobreak\ItemSep\fi}\fi\endgroup%
+}
+
+
+% Footnotes (only enabled in single column)
+
+\def\gobbleone#1{}
+\def\gobbletwo#1#2{}
+\let\footnote=\gobbletwo % Gobble footnote's unless enabled by \onecolumn
+\let\vfootnote=\gobbleone
+
+\def\sing@footnote#1{\let\@sf\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ \hbox{$^{\hbox{\eightpoint #1}}$}\@sf\sing@vfootnote{#1}%
+}
+
+\def\sing@vfootnote#1{\insert\footins\bgroup\eightpoint\b@ls{9pt}%
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \noindent $^{\scriptstyle\hbox{#1}}$\hskip 4pt%
+ \footstrut\futurelet\next\fo@t%
+}
+
+% Kill footnote rule
+\def\footnoterule{\kern-3\p@ \hrule height \z@ \kern 3\p@}
+
+\skip\footins=19.5pt plus 12pt minus 1pt
+\count\footins=1000
+\dimen\footins=\maxdimen
+
+
+% Landscape
+
+\def\landscape{%
+ \global\TEMPDIMEN=\PageWidth
+ \global\PageWidth=\PageHeight
+ \global\PageHeight=\TEMPDIMEN
+ \global\let\landscape=\relax% stop them using \landscape again.
+ \onecolumn
+ \message{(landscape)}%
+ \raggedbottom
+}
+
+
+%-------------------------------------------------------%
+% TWO COLUMN OUTPUT ROUTINE %
+%-------------------------------------------------------%
+
+\output{%
+ \ifLeftCOL
+ \global\setbox\LeftBOX=\vbox to \ZoneBSize{\box255\unvbox\ZoneBBOX}%
+ \global\LeftCOLfalse
+ \MakeRightCol
+ \else
+ \setbox\RightBOX=\vbox to \ZoneBSize{\box255\unvbox\ZoneBBOX}%
+ \setbox\MidBOX=\hbox{\box\LeftBOX\hskip\ColumnGap\box\RightBOX}%
+ \setbox\PageBOX=\vbox to \PageHeight{%
+ \UnloadZoneA\box\MidBOX\UnloadZoneC}%
+ \shipout\vbox{\PageHead\box\PageBOX\PageFoot}%
+ \advancepageno
+%
+ \ifplate@page
+ \shipout\vbox{%
+ \sp@pagetrue
+ \def\sp@type{plate}%
+ \global\plate@pagefalse
+ \PageHead\vbox to \PageHeight{\unvbox\plt@box\vfil}\PageFoot%
+ }%
+ \message{[plate]}%
+ \advancepageno
+ \fi
+%
+ \global\LeftCOLtrue
+ \CleanStack
+ \MakePage
+ \fi
+}
+
+
+% Startup message
+
+\Warn{\start@mess}
+
+\newif\ifCUPmtplainloaded % for use in documents
+\ifprod@font
+ \global\CUPmtplainloadedtrue
+\fi
+
+\def\mnmacrosloaded{} % so articles can see if a format file has been used.
+
+\catcode `\@=12 % @ signs are non-letters
+
+% \dump
+
+% end of mn.tex
diff --git a/Master/texmf-dist/tex/plain/newsletr/italic.tex b/Master/texmf-dist/tex/plain/newsletr/italic.tex
new file mode 100644
index 00000000000..6af739150aa
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/newsletr/italic.tex
@@ -0,0 +1,38 @@
+% Save file as: ITALIC.TEX Source: FILESERV@SHSU.BITNET
+%
+% File: ITALIC.TEX
+%
+% Author: Hunter Goatley
+% goathunter@WKUVX1.BITNET
+%
+% Date: August 21, 1991
+%
+% Abstract:
+%
+% The macros \ital and \slant are defined to typeset tex in italic
+% (\it) and slanted (\sl) fonts, automatically inserting the italic
+% correction (\/) if necessary. The correction is not inserted if
+% the token following the parameter is a period or a comma, as
+% suggested on page 14 of _The TeXbook_.
+%
+% Based on the \predict macro presented in _TeX for the Impatient_,
+% p. 233.
+%
+% These macros use \toks0 as a temporary.
+%
+% The \futurelet\it@next in \ital and \slant defines \it@next to be
+% whatever the character following the parameter is. \d@slant checks
+% to see if \it@next is a comma or period; if it is neither, the
+% italic correction (\/) is included.
+%
+\catcode`\@=11 % Temporarily make @ a letter
+\def\ital#1{\toks0={#1}\let\slf@nt=\it\futurelet\it@next\d@slant}
+\def\slant#1{\toks0={#1}\let\slf@nt=\sl\futurelet\it@next\d@slant}
+\def\d@slant{{\slf@nt\the\toks0}%
+ \ifx\it@next,% % If \it@next is not a comma
+ \else\ifx\it@next.% % ... and is not a period
+ \else\/% % ... insert the correction (\/)
+ \fi\fi% % ...
+ \let\it@next=\relax% % "Undefine" \it@next
+ }
+\catcode`\@=12 % Reset @ as other
diff --git a/Master/texmf-dist/tex/plain/newsletr/lodriver.tex b/Master/texmf-dist/tex/plain/newsletr/lodriver.tex
new file mode 100644
index 00000000000..f1e1149be41
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/newsletr/lodriver.tex
@@ -0,0 +1,57 @@
+% Save file as: LODRIVER.TEX Source: FILESERV@SHSU.BITNET
+%
+% File: LODRIVER.TEX
+%
+% Functional description:
+%
+% This file is the TeX control file for the Robert R. McCammon newsletter
+% published by Hunter Goatley.
+%
+% It depends on the file NEWSLETTER_FORMAT.TEX.
+%
+% Author: Hunter Goatley
+%
+% Date: May 26, 1990
+%
+% Modified by:
+%
+% 01-000 Hunter Goatley 3-JUN-1989 14:56
+% Original version.
+%
+\ifx\undefined\eoa\input newsletr \fi % Include macro definitions if needed
+
+\def\LO{\book{Lights Out!\/}}
+\def\POBox{P.\thinspace O.~Box 9609\relax}
+\def\CityState{Bowling Green, KY\relax}
+\def\ZipCode{42102-9609\relax}
+\def\LOAddress{\POBox, \CityState \ZipCode\relax}
+\def\RRM{Robert~R. McCammon\relax}
+\def\RM{Rick McCammon\relax}
+\def\McC{McCammon\relax}
+\newspage
+\begindoublequotes %Handle double-quotes
+
+\say{Producing Robert R. McCammon Newsletter: Vol. 2 No. 1, Issue 5}
+
+\pageheaderlinetrue \pagefooterlinetrue % Do head/foot lines
+\evenpageheader{}{Lights Out!}{} % Header for even pages
+\oddpageheader{}{The Robert R. McCammon Newsletter}{} % Header for odd pages
+\evenpagefooter{Page\ \folio}{}{January 1991} % Footer for even pages
+\oddpagefooter{Vol.\ 2\ \ No.\ 1}{}{Page\ \folio} % Footer for odd pages
+
+%\say{}
+%\say{************* PROOF MODE IS SET ************}
+%\say{}
+
+\ignoreunderfill
+%
+% Normally, I have separate files that I include.
+%
+%\include{TITLE.TEX}
+%\include{EDITORIAL.TEX}
+%\include{KAZUE.TEX}
+%\include{NEXTTIME.TEX}
+
+\include{LOSAMPLE.TEX}
+
+\bye
diff --git a/Master/texmf-dist/tex/plain/newsletr/newsletr.tex b/Master/texmf-dist/tex/plain/newsletr/newsletr.tex
new file mode 100644
index 00000000000..d05c957c533
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/newsletr/newsletr.tex
@@ -0,0 +1,1453 @@
+% Save file as: NEWSLETR.TEX Source: FILESERV@SHSU.BITNET
+ \def\IDENT{01-014}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Copyright 1989--1991 by Hunter Goatley. This code may be freely %
+% distributed and modified for non-commercial purposes as long as this %
+% copyright notice is retained. Please notify the author of any fixes or %
+% improvements you make. %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% File: NEWSLETTER_FORMAT.TEX
+%
+% Abstract:
+%
+% This file defines TeX control sequences required to produce a
+% newsletter. It assumes plain.tex has been loaded.
+%
+% Author: Hunter Goatley
+% VAX Systems Programmer
+% Western Kentucky University
+% Academic Computing, STH 226
+% Bowling Green, KY 42101
+% Voice: 502-745-5251
+% E-mail: goathunter@WKUVX1.BITNET
+%
+% Partially based on examples from _The TeXbook_, by
+% Donald E. Knuth, and various other sources. Virtually
+% all of the macros from other sources have been rewritten
+% or at least modified.
+%
+% Date: June 3, 1989
+%
+% Modified by:
+%
+% 01-014 Hunter Goatley 21-AUG-1991 10:47
+% Rewrote double-quote macros (they work now!). Cleaned up
+% a little bit. Added \slant and \ital.
+%
+% 01-013 Hunter Goatley 25-JAN-1991 08:23
+% Added \newpage. Added \tt definitions to \*point macros.
+% Fixed problem with \quotee (quotee name was getting split).
+% Added setting of \hyphenpenalty and \emergencystretch to
+% \newspage macro.
+%
+% 01-012 Hunter Goatley 15-JAN-1991 07:03
+% Added macro \round to help with keeping page & figure heights
+% even. It helps some. Re-worked \beginquote and \endquote.
+% Add \Quote and \quotee. Added \listindent and dimens.
+% Modified \coltitle to include \noindent; changed amount of
+% \vglue. Modified \beginlist and \endlist to check for
+% a \parskip of 0pt; if 0, skip .5\baselineskip. Fixed
+% \centerbox (was \vbox, now \hbox).
+%
+% 01-011 Hunter Goatley 5-JAN-1991 23:40
+% Changed \ednote macro so that \sl is redefined as \rm, not \ss.
+% Changed \say macro to look like LaTeX's \typeout macro.
+%
+% 01-010 Hunter Goatley 6-OCT-1990 02:55
+% Commented out \ss calls at end of font macros.
+% Placed newsletter hsize commands in a macro (\newspage)
+% so that NEWTEX can be used like TeX normally is.
+%
+% 01-009 Hunter Goatley 10-MAR-1990 16:05
+% Added \par to the beginning of definition of \endlist.
+%
+% 01-008 Hunter Goatley 7-DEC-1989 22:07
+% Added \farright (place hbox flush right or on next line if it
+% won't fit). Modified definition of \eoa to call \farright.
+% Added \pmb -- "poor man's bold." Added font cmssxb. Added
+% \eldots and \edots.
+%
+% 01-007 Hunter Goatley 1-OCT-1989 03:41
+% Added figure support for multiple column environment.
+% Added \centerbox.
+%
+% 01-006 Hunter Goatley 17-AUG-1989 10:11
+% Modified so that "@" is an active character throughout the
+% format file. Added new header/footer commands that are more
+% flexible. Improved appearance of shadow box created by
+% \leftshadowbox.
+%
+% 01-005 Hunter Goatley 10-AUG-1989 22:09
+% Modified \onepageout output routine so that it does not
+% disable interline skip (commented out \offinterlineskip).
+% This was causing the header and footer to appear flush
+% with the main body of text on the page. Added routine
+% \checkdqbalsub. Modified \include to automatically call
+% \checkdqbalsub after the file has been read in.
+%
+% 01-004 Hunter Goatley 30-JUL-1989 03:10
+% Added macros to handle font size changes. Added code to
+% let " be used.
+%
+% 01-003 Hunter Goatley 29-JUL-1989 19:26
+% Modified double column routines so that the number of columns
+% can be specified. The routines now work for 2 to 6 columns
+% of output.
+%
+% 01-002 Hunter Goatley 23-JUL-1989 22:21
+% Added more comments. Fixed double column routines so that
+% page sizes are handled properly.
+%
+% 01-001 Hunter Goatley 2-JUL-1989 21:28
+% Added macros to handle bibliographies.
+%
+% 01-000 Hunter Goatley 3-JUN-1989 14:56
+% Original version.
+%
+
+\def\say#1{{\let\protect\string\immediate\write10{#1}}}
+
+\say{TeX Input file for Newsletter format - version \IDENT}
+\say{Copyright 1989-1991, Hunter Goatley}
+
+\everyjob{\say{TeX Newsletter version \IDENT. Copyright 1989-1991, Hunter Goatley}}
+
+%
+% The \catcode command below lets us use "@" as a letter. It can therefore
+% be used in command and variable names. PLAIN TeX uses this to avoid
+% conflicts with user code, so we'll do it, too.
+%
+\catcode`@=11 % borrow the private macros of PLAIN (with care)
+
+\say{Loading fonts...}
+%
+% Load fonts and define commands to switch between fonts
+%
+\font\twelverm=cmr12 \font\tenrm=cmr10 \font\ninerm=cmr9 \font\eightrm=cmr8
+\font\twelvei=cmmi12 \font\teni=cmmi10 \font\ninei=cmmi9 \font\eighti=cmmi8
+%\font\twelvesy=cmsy12 \font\tensy=cmsy10 \font\ninesy=cmsy9 \font\eightsy=cmsy8
+\font\twelvebf=cmbx12 \font\tenbf=cmbx10 \font\ninebf=cmbx9 \font\eightbf=cmbx8
+\font\twelvett=cmtt12 \font\tentt=cmtt10 \font\ninett=cmtt9 \font\eighttt=cmtt8
+\font\twelveit=cmti12 \font\tenit=cmti10 \font\nineit=cmti9 \font\eightit=cmti8
+\font\twelvesl=cmsl12 \font\tensl=cmsl10 \font\ninesl=cmsl9 \font\eightsl=cmsl8
+\font\twelvess=cmss12 \font\tenss=cmss10 \font\niness=cmss9 \font\eightss=cmss8
+\font\twelvessi=cmssi12 \font\tenssi=cmssi10 \font\ninessi=cmssi9
+\font\eightssi=cmssi8 \font\tenssb=cmssbx10
+%
+% 11-point font is scaled 10pt
+%
+\font\elevenrm=cmr10 scaled\magstephalf
+\font\eleveni=cmmi10 scaled\magstephalf
+\font\elevenbf=cmbx10 scaled\magstephalf
+\font\eleventt=cmtt10 scaled\magstephalf
+\font\elevenit=cmti10 scaled\magstephalf
+\font\elevensl=cmsl10 scaled\magstephalf
+\font\elevenss=cmss10 scaled\magstephalf
+\font\elevenssi=cmssi10 scaled\magstephalf
+
+\font\seventeenrm=cmr17 \font\seventeenss=cmss17 \font\seventeenssi=cmssi17
+
+\def\seventeenpoint{%
+ \def\sl{\seventeenssi}\def\it{\seventeenssi}\def\bf{\seventeenss}%
+ \def\rm{\seventeenrm}\def\ss{\seventeenss}\def\ssi{\seventeenssi}%
+ \baselineskip=19pt% % Change baselineskip
+ \rm% % By default, use sans serif
+}
+\def\twelvepoint{%
+ \def\sl{\twelvesl}\def\it{\twelveit}\def\bf{\twelvebf}%
+ \def\rm{\twelverm\let\sl=\twelvesl}\def\ss{\twelvess\let\sl=\ssi}%
+ \def\ssi{\twelvessi}\def\tt{\twelvett}%
+ \baselineskip=14pt% % Change baselineskip
+ \rm% % By default, use sans serif
+}
+\def\elevenpoint{%
+ \def\sl{\elevensl}\def\it{\elevenit}\def\bf{\elevenbf}%
+ \def\rm{\elevenrm\let\sl=\elevensl}\def\ss{\elevenss\let\sl=\ssi}%
+ \def\ssi{\elevenssi}%
+ \def\tt{\eleventt}%
+ \baselineskip=13pt% % Change baselineskip
+ \rm% % By default, use sans serif
+}
+\def\tenpoint{%
+ \def\sl{\tensl}\def\it{\tenit}\def\bf{\tenbf}%
+ \def\ssb{\tenssb}%
+ \def\rm{\tenrm\let\sl=\tensl}\def\ss{\tenss\let\sl=\ssi}%
+ \def\ssi{\tenssi}%
+ \def\tt{\tentt}%
+ \baselineskip=12pt% % Change baselineskip
+ \rm% % By default, use sans serif
+}
+\def\ninepoint{%
+ \def\sl{\ninesl}\def\it{\nineit}\def\bf{\ninebf}%
+ \def\rm{\ninerm\let\sl=\ninesl}\def\ss{\niness\let\sl=\ssi}%
+ \def\ssi{\ninessi}%
+ \def\tt{\ninett}%
+ \baselineskip=11pt% % Change baselineskip
+ \rm% % By default, use sans serif
+}
+\def\eightpoint{%
+ \def\sl{\eightsl}\def\it{\eightit}\def\bf{\eightbf}%
+ \def\rm{\eightrm\let\sl=\eightsl}\def\ss{\eightss\let\sl=\ssi}%
+ \def\ssi{\eightssi}%
+ \def\tt{\eighttt}%
+ \baselineskip=10pt% % Change baselineskip
+ \rm% % By default, use sans serif
+}
+
+\font\HUGE=cmr17 %scaled\magstep2
+\font\verysmallrm=cmr5 % Used to make small copyright "C"
+\font\smallsy=cmsy7 % Used to make small copyright circle
+\def\tiny{\eightpoint\ss} % Equate \tiny to \eightpoint
+\let\em=\eightssi
+\font\quotefont=cmss12 at 14.4truept % Quotation font
+\font\quoteefont=cmcsc10 % Font for quotee
+
+\say{Defining macros...}
+
+\newdimen\normalhsize % Create a new dimension
+\newdimen\normalvsize % Create a new dimension
+
+\normalhsize=\hsize
+
+%
+% \newspage
+%
+% Set up the page for a newsletter (7" by 9" of text, higher tolerance).
+%
+\def\newspage{%
+ \global\topskip=0pt % Set 1 inch top margin
+ \global\hoffset=-.25 true in % Move output .25 in to the left
+ \global\pretolerance=1000 % Set tolerance up (before hyphenation)
+ \global\tolerance=1500 % ... (after hyphenation)
+ \global\hyphenpenalty=500 % Discourage hyphenation
+ \global\emergencystretch=30pt
+ \global\normalhsize=7in
+ \global\hsize=\normalhsize % Pages are 7 inches wide
+ \global\vsize=9in % ... and 9 inches tall
+ \global\abovedisplayskip=\baselineskip
+ \global\belowdisplayskip=\baselineskip
+ \global\pagewidth=\hsize
+ \global\pageheight=\vsize
+}
+
+\clubpenalty=500 %-1000 % Set penalties for club and widow lines
+\widowpenalty=1000 % ...
+
+%
+%=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+% Multiple Column Output
+%=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+%
+% Define macros to handle multiple column output
+%
+% These macros support figures, but the figures must be defined inside
+% the multiple-column environment. Each column can have up to 3 figures
+% of varying sizes; the figures are referred to as "top", "middle", and
+% "bottom". Figures are identified via page number, column number, and
+% the position. In addition, two special figures that span all columns
+% can be specified using column 0 with "top" and "bottom".
+%
+% For example, {3}{2}{middle} refers to the middle figure in column 2
+% of output page 3.
+%
+% The figures are stored as temporary inserts (the inserts are freed
+% after \endcolumns). The inserts are treated as an array whose first
+% entry is \c@lfigstart.
+%
+% Note: column figures are not handled on the last page of column output.
+% \balancecolumns does not understand how to deal with them.
+%
+% While in X column mode, the text is arranged as one column
+% \columnwidth wide and \pageheight*X tall. This narrow column is
+% then split into X boxes of equal height.
+%
+%***************************************
+%
+% Allocate a bunch of dimens, boxes, and counts for use in multiple-column
+% macros.
+%
+\newdimen\columnwidth % Width of a column
+\newdimen\columnseprule % Width of rule between columns
+\newdimen\columnsep % Width of whitespace between columns
+\newdimen\pagewidth % Total width of page
+\newdimen\pageheight % Total height of page
+\newdimen\pageheightkeep % Total height of page
+\newdimen\ruleht % Height of \hrules
+\newif\ifcolfigs % Create a new \if (true if figures)
+\newbox\partialpage % Box to hold partial page before cols.
+\newbox\partialpagetop % Box to hold figure for top of page
+\newbox\partialpagebottom % Box to hold figure for bottom of page
+\newcount\mulc@lbegin % Allocate a counter
+\newcount\mulc@lpart % Allocate a counter
+\newcount\numberofcols % Number of columns
+\newcount\c@lpageno % Current page # for column environment
+\newcount\maxcolfigs % Maximum # of figures
+\newcount\c@lfigstart % Starting array slot # for inserts
+\newcount\c@lslot % Work counter to hold current slot #
+\newcount\maxfigp@ges % Maximum # of pages of column output
+\newcount\figsperp@ge % Number of figures on each page
+%
+% Allocate multi-column work counters and dimens.
+%
+\newdimen\tmp@ % Dimen used to calculate pageheights, etc.
+\newdimen\tmp@one % Dimen used to calculate pageheights, etc.
+\newcount\tmp@two % Usually # of cols * 2
+\newcount\tmp@three
+\newcount\tmp@four
+\newcount\tmp@five
+\newcount\tmp@six
+\newcount\tmp@seven
+\newdimen\rtmp@ % Dimen used in rounding
+%
+% Initialize the \column* dimens. If \columnwidth is still 0pt when
+% \begincolumns is called, the correct \columnwidth will be
+% calculated from the current \hsize. This lets the user set a column
+% width, without requiring that it be done.
+%
+\columnsep=20pt % Space between columns
+\columnseprule=.4pt % Width of rule between columns
+\columnwidth=0pt % Initialize columnwidth to 0pt
+%
+% Initialize pagewidth, pageheight, and ruleht
+%
+\pagewidth=\hsize \pageheight=\vsize \ruleht=.5pt
+%
+% Define constant values used to indicate type of figure stored in
+% figure boxes. Probably inefficient to store them as macros, but it's
+% easier that way (and they're not hardcoded in the macros below).
+%
+\def\TopFig@{500} % Figure is at top of page
+\def\BotFig@{600} % Figure is at bottom of page
+\def\RegFig@{321} % Figure is a corner figure
+\def\topc@lpos{1} % The top figure position (1)
+\def\middlec@lpos{2} % The middle figure position (2)
+\def\bottomc@lpos{3} % The bottom figure position (3)
+
+%
+% Macro \onepageout
+%
+% Output routine used to actually shipout pages to the DVI file.
+%
+\def\onepageout#1{\shipout\vbox{ % here we define one page of output
+ {\hsize=\pagewidth\makeheadline} % Do normal width headline
+ %\offinterlineskip % butt the boxes together
+ \vbox to \pageheightkeep{ % Create a vbox big enough
+ \boxmaxdepth=\maxdepth % Set boxmaxdepth
+ #1 % Now insert the information
+ } % \vbox to \pageheight
+ {\hsize=\pagewidth\makefootline} % Do normal width footline
+ } % End of \vbox
+ \advancepageno % Advance current page number
+ } % End of \def\onepageout
+
+%\output{\onepageout{\unvbox255}} % Send out any current output
+
+%
+% When \begincolumns is called:
+%
+% \output is set to perform the following functions:
+% Store the current vbox in the partialpage box (with some vskip)
+% Eject the page (executing \output - page is not really ejected)
+% Set new definition of output:
+% Call \multiplecolumnout to output the columns
+% Set \hsize = \columnwidth
+% Set \vsize = (\pageheight * X) - (\ht\partialpage * X) --- each column will
+% now be just as tall as the space below \partialpage
+%
+% Sometimes the first \output was executed twice in a row, which caused the
+% first \partialpage to be lost. The code below includes a counter that is
+% used to determine if the output routine is called a second time. If it
+% is, the routine ships the previously stored partial page and then creates
+% a new \partialpage.
+%
+% Originally, \begincolumns set \vsize = X * \pageheight (it did not
+% take the height of the \partialpage into account). If the complete text
+% would fit in the full \vsize, the balancing routine would have problems
+% balancing and you'd end up with lots of whitespace on a page and the
+% multiple columns would show up on the next page. Make sense? If not,
+% just trust me; it caused problems.
+%
+% The solution to the problem was to set
+%
+% \vsize = (\pageheight * X) - (\ht\partialpage * X)
+%
+% and then set \vsize back to (X*\pageheight) after the first page had been
+% ejected. This worked fine and dandy except for the fact that grouping was
+% causing the changes to not hold. The solution (and it is a little
+% dangerous) was to use \global\vsize so that the \vsize changes were never
+% local to the group. \endcolumns then resets \vsize = \pageheight.
+% Again, trust me; it seems to work OK.
+%
+\def\begincolumns#1{
+ \ifnum#1<2 \errmessage{Invalid number of columns -- #1; must be 1 < X < 7}\fi
+ \ifnum#1>6 \errmessage{Invalid number of columns -- #1; must be 1 < X < 7}\fi
+ \begingroup % Begin a new group
+ \global\mulc@lbegin=1 % Set "first time" output counter
+ \global\mulc@lpart=1 % Set "first time" outputting dbl cols.
+ \global\pageheightkeep=\vsize % Initialize \pageheight
+ \global\pageheight=\vsize % Initialize \pageheight
+ \round{\pageheight}{\baselineskip}{<} % Round the pageheight down
+ \global\pagewidth=\hsize % Initialize \pagewidth
+ \global\tmp@two=#1 \global\advance\tmp@two by-1
+ \global\numberofcols=#1 % Initialize number of columns
+ % Calculate column width unless user set a value
+ \ifdim\columnwidth=0pt % If user did not set \columnwidth
+ \columnwidth=\hsize % Set columnwidth = normal page width
+ \tmp@=-\columnsep % Copy neg. amount of columnsep to tmp@
+ \multiply\tmp@ by\tmp@two % Multiply by X (total amount of colsep)
+ \advance\columnwidth by\tmp@ % Subtract width space between columns
+ \divide\columnwidth by\numberofcols % Divide by X to get X column output
+ \fi % End of \columnwidth calculation
+ \output={
+ \ifnum\mulc@lbegin=1 % 1st time through?
+ \global\setbox\partialpage=\vbox{\unvbox255\bigskip} % Store partial
+ \global\mulc@lbegin=2 % Increment counter
+ \else % 2nd time through...
+ \onepageout{\vbox{\unvbox\partialpage}} % Ship previous partial
+ \global\setbox\partialpage=\vbox{\unvbox255\bigskip} % Make a new
+ \fi % ... partial
+ }\eject % Force the output routine to execute
+ \output={\multiplecolumnout} % Output X columns
+ \hsize=\columnwidth % Set hsize = col. width
+ % Set \vsize = (\pageheight * X) - (\ht\partialpage * X)
+ \global\vsize=\pageheight % Set \vsize=X*\pageht
+ \global\multiply\vsize by\numberofcols % Multiply by X
+ \tmp@=-\ht\partialpage \multiply\tmp@ by\numberofcols % Subtract (height of
+ \global\advance\vsize by\tmp@ % ... partial page * X)
+ \round{\vsize}{\baselineskip}{>} % Round it up
+ } % End of \begincolumns
+
+%
+% \endcolumns performs the following functions:
+%
+% Sets \output to call \balancecolumns
+% \vfills page and ejects it
+% Terminates the group
+% Resets vsize to original size
+% Resets pagegoal = to original \vsize
+% Skips parskip vertical space
+% Signals that this is a good place for a break, if necessary
+%
+\def\endcolumns{\output={\balancecolumns} \eject
+ \endgroup \global\vsize=\pageheightkeep \pagegoal=\vsize \bigskip \goodbreak}
+%
+% \multiplecolumnout
+%
+% Sets splittopskip = topskip
+% Sets splitmaxdepth = maxdepth
+% Sets TeX register \dimen@ = to height of the page
+% Subtracts the height of the partial page from \dimen@
+% Subtracts the heights of the top & bottom figures from \dimen@
+% Splits up the current output box into X boxes of size \dimen@, handling
+% figures, if present
+% Calls \onepageout to dump the new boxes
+% Resets \vsize = (X * \pageheight) if first time through macro
+% Frees up current output vbox (255)
+%
+\def\multiplecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth
+ \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
+ \advance\dimen@ by-\ht\partialpagetop % Subtract height of top figure
+ \advance\dimen@ by-\ht\partialpagebottom % Subtract height of bottom fig.
+ \tmp@four=\numberofcols \multiply\tmp@four by2 % Calculate upper box #
+ \tmp@five=0 % Start boxes with box 0
+ \ifcolfigs % Are there figures defined?
+ \splitfigc@ls % Yes - go handle text & figures
+ \else % No - split \box255 into X cols
+ %
+ % Split box255 into a box of dimen@ height. Loop until X boxes created.
+ %
+ {\loop
+ \global\setbox\tmp@five=\vsplit255 to\dimen@ \advance\tmp@five by2
+ \ifnum\tmp@five<\tmp@four \repeat} % Loop if not done
+ \fi % \ifcolfigs
+ \onepageout\pagesofar % Send this page to DVI file
+ \ifnum\mulc@lpart=1 % Does vsize need to be reset?
+ \global\mulc@lpart=2 % Yes - change counter
+ \global\vsize=\pageheight % Set \vsize = X * \pageheight
+ \global\multiply\vsize by\numberofcols % ...
+ \fi % ...
+ \ifcolfigs % If figures defined...
+ \global\advance\c@lpageno by\@ne % Bump column output page no.
+ \handlefigures % Handle next page's figures
+ \fi % \ifcolfigs
+ \unvbox255 \penalty\outputpenalty % Free current output vbox
+} % End of \multiplcolumnout
+
+%
+% \splitfigc@ls
+%
+% This macro splits \box255 into X columns, handling the figures.
+%
+% Get figure array slot number for figure 1, column 1 on current page
+% Loop for each column (starting with column in \tmp@five)
+% Make a copy of \dimen@ -> \tmp@
+% If a figure is defined for top of column
+% Decrease \tmp@ by the height of the figure
+% Set box 1 = the figure
+% Else
+% Set box 1 = null vbox
+% Bump figure array slot number - now points to slot for middle figure
+% If a figure is defined for middle of column
+% Decrease \tmp@ by the height of the figure
+% Set box 5 = the figure
+% Else
+% Set box 5 = null vbox
+% Bump figure array slot number - now points to slot for bottom figure
+% If a figure is defined for bottom of column
+% Decrease \tmp@ by the height of the figure
+% Set box 9 = the figure
+% Else
+% Set box 9 = null vbox
+% Bump figure array slot number - now points to slot for next top figure
+% Split \box255 into 1 or 2 pieces (2 if there is a middle figure)
+% Set \box\tmp@five = \box1 + \box3 + \box5 + \box7 + \box9
+% Advance \tmp@five by 2 and loop until X "columns" created
+%
+\def\splitfigc@ls{
+ %
+ % Split box255 into a box of dimen@ height. Loop until X boxes created.
+ %
+ \tmp@two=1 % Figure counter
+ \calcc@lslot{\c@lpageno}{1}{\tmp@two} % Get slot for figure 2 on current page
+ {\loop % Start loop
+ \tmp@=\dimen@ % Make a working copy of dimen@
+ %
+ % Handle top figure
+ %
+ \ifnum\count\c@lslot=\RegFig@ % If this slot holds a single-column fig
+ \advance\tmp@ by-\ht\c@lslot % Subtract figure's height from \tmp@
+ \setbox1=\vbox{\unvbox\c@lslot} % Copy figure to \box1
+\say{Figure \the\tmp@two\space on page \the\c@lpageno, document page \folio}
+ \else \setbox1=\vbox{} % Else set box 1 = null page
+ \fi % \ifnum
+ %
+ % Handle middle figure
+ %
+ \advance\c@lslot by\@ne % Point to next figure
+ \advance\tmp@two by\@ne % Advance figure counter
+ \ifnum\count\c@lslot=\RegFig@ % If this slot holds a single-column fig
+ \advance\tmp@ by-\ht\c@lslot % Subtract figure's height from \tmp@
+ \setbox5=\vbox{\unvbox\c@lslot} % Copy figure to \box3
+\say{Figure \the\tmp@two\space on page \the\c@lpageno, document page \folio}
+ \else \setbox5=\vbox{} % Else set box 3 = null page
+ \fi % \ifnum
+ %
+ % Handle bottom figure
+ %
+ \advance\c@lslot by\@ne % Point to next figure
+ \advance\tmp@two by\@ne % Advance figure counter
+ \ifnum\count\c@lslot=\RegFig@ % If this slot holds a single-column fig
+ \advance\tmp@ by-\ht\c@lslot % Subtract figure's height from \tmp@
+ \setbox9=\vbox{\unvbox\c@lslot} % Copy figure to \box3
+\say{Figure \the\tmp@two\space on page \the\c@lpageno, document page \folio}
+ \else \setbox9=\vbox{} % Else set box 3 = null page
+ \fi % \ifnum
+ \advance\c@lslot by\@ne % Point to next figure in array
+ \advance\tmp@two by\@ne % Advance figure counter
+ %
+ % Here, top figure is in \box1, middle figure is in \box5, and bottom
+ % figure is in \box9.
+ % Split \box255 to fill the remaining column space, splitting in
+ % half if there is a middle figure.
+ % Special case: if height of \box1 = \pageheight, \box\tmp@five=null
+ %
+ \ifdim\ht1=\pageheight % Is top = whole column?
+ \global\setbox3=\vbox{} % Yes - set \box3 to null
+ \global\setbox7=\vbox{} % Yes - set \box7 to null
+ \else % No - go ahead and do split
+ \ifdim\ht5>0pt % Is there a middle figure?
+ \divide\tmp@ by2 % Yes - break text to 2 pieces
+ \global\setbox3=\vsplit255 to\tmp@ % Set \box3 = 1st piece
+ \global\setbox7=\vsplit255 to\tmp@ % Set \box7 = 2nd piece
+ \else % No middle column...
+ \global\setbox3=\vsplit255 to\tmp@ % Put all text in \box3
+ \global\setbox7=\vbox{} % Set \box7 to null
+ \fi % \ifdim\ht5...
+ \fi % \ifdim
+ %
+ % Now put the 5 pieces together as one vbox in \box\tmp@five
+ %
+ \global\setbox\tmp@five=\vbox to\dimen@{\offinterlineskip%
+ \ifdim\ht1=0pt\else\vbox{\unvbox1}\fi
+ \ifdim\ht3=0pt\else\vbox{\unvbox3}\fi
+ \ifdim\ht5=0pt\else\vbox{\unvbox5}\fi
+ \ifdim\ht7=0pt\else\vbox{\unvbox7}\fi
+ \ifdim\ht9=0pt\else\vbox{\unvbox9}\fi
+ \vfil\vfilneg % Cancels spurious vglue ???? (it works)
+ }
+ \advance\tmp@five by2 % Bump column box #
+ \ifnum\tmp@five<\tmp@four \repeat} % Loop if not done
+} % End of \splitc@lfigs
+
+%
+% \pagesofar
+%
+% Releases \partialpage box
+% Sets width of X boxes (from box 0 to box X) = to \columnwidth
+% Creates an hbox = pagewidth that consists of box0 + separator rule + box 2
+% + separator rule + box X
+% This new hbox is \box255 and can be used to \shipout
+%
+\def\pagesofar{\unvbox\partialpage
+ \unvbox\partialpagetop % Include top figure
+ \tmp@four=\numberofcols \multiply\tmp@four by2 % Loop boundary number
+ \tmp@five=0 % Start with box 0
+ %
+ % For each box, set the width equal to the column width
+ %
+ {\loop \wd\tmp@five=\columnwidth \advance\tmp@five by2
+ \ifnum\tmp@five<\tmp@four \repeat} % Loop until X done
+ %
+ % Now put all the boxes together like this:
+ %
+ % box | box | ... | box
+ %
+ \tmp@five=0 % Start with box 0 again
+ \hbox to\pagewidth{\box\tmp@five\advance\tmp@five by2% Do the left column
+ \loop \hfil\vrule width\columnseprule \hfil \box\tmp@five%
+ \advance\tmp@five by2 % Bump box counter
+ \ifnum\tmp@five<\tmp@four \repeat % Loop if not done
+ } % End of hbox
+ \unvbox\partialpagebottom % Include bottom figure
+} % End of \pagesofar
+
+%
+% \balancecolumns - Balance both columns at end of X column page
+%
+% Sets box 0 = current page
+% Sets dimen@ = height of the vbox in box 0
+% Adds topskip value to dimen@
+% Subtracts X * \baselineskip from dimen@
+% Divides dimen@ by X -- dimen@ now has target height of each column
+% Sets splittopskip = to topskip so it can be added to all columns
+% Loops
+% Copies box 0 to box 3
+% Splits box 3 to dimen@ and stores in box 1 & 3
+% Increments dimen@ by 1pt and loops if column in box 3 exceeds dimen@
+% Note: Splitting of box is actually implemented as a loop that creates
+% X boxes
+% Moves columns in odd-numbered boxes to corresponding even-numbered boxes
+% Calls pagesofar to make the hbox for it
+%
+\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0
+ %
+ % Subtract X * \baselineskip from dimen@ and divide dimen@ by X
+ %
+ \tmp@two=\numberofcols \advance\tmp@two by-1
+ \tmp@=-\baselineskip \multiply\tmp@ by\tmp@two \advance\dimen@ by\tmp@
+ \divide\dimen@ by\numberofcols \splittopskip=\topskip % Dimen@/X
+ %
+ % Split the column X times so we have X columns of equal height. If our
+ % last column is > dimen@, bump dimen@ by one and loop.
+ %
+ \tmp@four=\numberofcols \multiply\tmp@four by2 % X * 2
+ \tmp@seven=\tmp@four \advance\tmp@seven by-1 % Work box: (X*2)-1
+ {\vbadness=10000 \loop \global\setbox\tmp@seven=\copy0
+ \tmp@five=0 \tmp@six=1 % Work box starts with 1
+ {\loop % Loop for X boxes
+ \global\setbox\tmp@six=\vsplit\tmp@seven to\dimen@ % Vsplit box
+ \advance\tmp@six by2 % Bump box counter
+ \ifnum\tmp@six<\tmp@seven \repeat} % Loop if not done
+ \ifdim\ht\tmp@seven>\dimen@ \global\advance\dimen@ by1pt \repeat}
+ %
+ % Here we have X columns of equal height. Note that the last column may
+ % not be equal to the others.
+ %
+ % Copy the columns to the even-numbered boxes in preparation for \pagesofar
+ %
+ \tmp@five=0 \tmp@six=1
+ {\loop \global\setbox\tmp@five=\vbox to\dimen@{\unvbox\tmp@six}
+ \advance\tmp@five by2 \advance\tmp@six by2
+ \ifnum\tmp@five<\tmp@four \repeat}
+ \pagesofar} % Call \pagesofar to build page
+%
+% \c@lnewinsert
+%
+% This macro is used to perform a \newinsert for temporary usage (inside a grp)
+%
+\def\c@lnewinsert{\advance\insc@unt by\m@ne % Decrement insert counter
+ \ch@ck0\insc@unt\count % Make sure count is available
+ \ch@ck1\insc@unt\dimen % Make sure dimen is available
+ \ch@ck2\insc@unt\skip % Make sure skip is available
+ \ch@ck4\insc@unt\box % Make sure box is available
+% NEED TO EMPTY BOX!!!
+ \count\insc@unt=0 % Set the count to 0
+ \allocationnumber=\insc@unt % Set the allocation number
+} % End of \c@lnewinsert
+
+%
+% \definefigs
+%
+% This macro is called to establish the figure environment inside of the
+% multiple-column environment. It allocates (until \endcolumns) an array
+% of inserts (boxes, counts, dimens, and skips) to handle all of the
+% figures per page for the given number of pages. When the figures
+% are defined using \definefig, the proper box is filled with the figure.
+%
+% Inputs:
+%
+% #1 - Number of pages of multiple-column output (should be as large
+% as the total number of pages between \begincolumns and
+% \endcolumns)
+%
+\def\definefigs#1{
+ \colfigstrue % Set column figure flag
+ \global\c@lpageno=1 % Get current page number
+ \maxfigp@ges=#1 % Set maximum # of pages with figures
+ \figsperp@ge=\numberofcols % Calculate # of figures per page
+ \multiply\figsperp@ge by3 % Figs/Page = 2 + (3 * number of cols)
+ \advance\figsperp@ge by2 % ...
+ \maxcolfigs=\maxfigp@ges % Figure out how many inserts are needed
+ \multiply\maxcolfigs by\figsperp@ge % ... for all of the figures
+ \tmp@two=\maxcolfigs % Start there and work down to first box
+ \loop \c@lnewinsert \advance\tmp@two by\m@ne
+ \ifnum\tmp@two>0 \repeat
+ \c@lfigstart=\insc@unt % Save starting array slot #
+ % We've allocated all boxes now
+ } % End of \definefigs
+
+%
+% \definefig
+%
+% This macro stores figure information in the appropriate slot in the insert
+% array. After calculating the proper slot number for the figure, it stores
+% the figure in the corresponding box and sets the corresponding \count to
+% a code identifying the box as holding a figure.
+%
+% Inputs:
+%
+% #1 Output page number
+% #2 Column Number
+% #3 Position (top, middle, bottom)
+% #4 The vbox for the figure
+%
+\def\definefig#1#2#3#4{
+ \ifcolfigs % Has \definefigs been called?
+ \else
+ \errmessage{Illegal use of \string\definefig\space before \string\definefigs}
+ \fi % \ifnum
+ \ifnum#2>\numberofcols % Illegal column number?
+ \errmessage{Column number #2 exceeds number of columns}
+ \fi % \ifnum
+ \calcc@lslot{#1}{#2}{\csname #3c@lpos\endcsname} % Calculate slot #
+ \ifcase\csname #3c@lpos\endcsname
+ \or\setbox\c@lslot=\vbox{#4\vskip\belowdisplayskip}
+ \or\setbox\c@lslot=\vbox{\vskip\abovedisplayskip#4%
+ \vskip\belowdisplayskip}
+ \or\setbox\c@lslot=\vbox{\vskip\abovedisplayskip#4}
+ \tmp@=\ht\c@lslot % Round up the size
+ \round{\tmp@}{\baselineskip}{>} % ...
+ \tmp@one=\tmp@ \advance\tmp@one by-\ht\c@lslot
+ \setbox\c@lslot=\vbox to\tmp@{\box\c@lslot}
+ \fi
+ \ifnum#2=0 % If column # is 0, special fig.
+ \ifnum\csname #3c@lpos\endcsname=1\count\c@lslot=\TopFig@
+ \else\count\c@lslot=\BotFig@\fi % Top or Bottom figure that
+ \else % ... spans all columns
+ \count\c@lslot=\RegFig@ % Otherwise, identify the box
+ \fi % ... as containing a figure
+\say{Processed #3 figure for column #2\space on page #1\space
+ - slot \the\c@lslot}
+ \say{The height is \the\ht\c@lslot}
+}
+
+%
+% \calcc@lslot
+%
+% This macro is called to calculate the array slot number for a figure.
+% The formula for normal figures is:
+%
+% ((column# - 1) * 3figs/column) + Position
+%
+% This macro assumes there can be 3 figures per column (top, middle, & bottom)
+%
+% Inputs:
+%
+% #1 - Page number
+% #2 - Column number (0 = special figure that spans all columns)
+% #3 - Figure number (1 = top, 2 = middle, 3 = bottom)
+%
+% Returns:
+%
+% \c@lslot - Slot number for given figure. This slot number
+% identifies the allocated insert for the figure.
+%
+\def\calcc@lslot#1#2#3{
+ \tmp@seven=#1 % Start with page #
+ \advance\tmp@seven by\m@ne % (Page - 1)
+ \multiply\tmp@seven by\figsperp@ge % (Page - 1) * # of figs
+ \ifnum#2=0 % If column is 0, special one
+ \ifnum#3=1\tmp@six=1\else\tmp@six=\figsperp@ge\fi
+ \advance\tmp@six by\m@ne % Decrement for slot #
+ \else
+ \tmp@six=#2 % Column #
+ \advance\tmp@six by\m@ne % (Column# - 1)
+ \multiply\tmp@six by3 % (Column# - 1) * 3
+ \advance\tmp@six by#3 % (Column# - 1) * 3 + Position
+ \fi % Really + 1, but -1 negates it
+ \advance\tmp@seven by\tmp@six % Add figure # to page #
+ \advance\tmp@seven by\c@lfigstart % Figure slot number
+ \global\c@lslot=\tmp@seven % Set the slot number
+ } % End of \calcc@lslot
+%
+% \handlefigures
+%
+% This macro is called to step through all of the figures for the current
+% page and subtract the height of each from the total \vsize.
+%
+% The two special figures (top (1) and bottom (\figsperp@ge)) are handled
+% differently; because each spans all of the columns on the page, the height
+% of each is multiplied by the number of columns before subtracting it from
+% \vsize. The top figure is then placed in \partialpagetop and the bottom
+% figure is placed in \partialpagebottom.
+%
+% Returns: Adjusted \vsize.
+%
+\def\handlefigures{
+ \global\vsize=\pageheight % \vsize to pageheight
+ \global\multiply\vsize by\numberofcols % Multiply by # of columns
+ \tmp@three=\figsperp@ge % Start with figure X
+ \calcc@lslot{\c@lpageno}{0}{3} % Start with last figure box
+ {\loop
+ \ifnum\count\c@lslot=\TopFig@ % If box is top section of page
+ \global\setbox\partialpagetop=\vbox{\unvbox\c@lslot} % Copy it
+ \tmp@=\ht\partialpagetop % Get the height
+ \multiply\tmp@ by\numberofcols % Multiply by number of columns
+ \global\advance\vsize by-\tmp@ % (vsize - figure size)
+ \else % Else
+ \ifnum\count\c@lslot=\BotFig@ % If box is bottom section
+ \global\setbox\partialpagebottom=\vbox{\unvbox\c@lslot}
+ \tmp@=\ht\partialpagebottom
+ \multiply\tmp@ by\numberofcols
+ \global\advance\vsize by-\tmp@ % (vsize - figure size)
+ \else % Else, see if regular figure
+ \ifdim\ht\c@lslot>0pt\all@wfigure{\ht\c@lslot}\fi % \vsize
+ \fi % End \ifnum
+ \fi % End \ifnum
+ \advance\tmp@three by\m@ne % Point to next box
+ \advance\c@lslot by\m@ne % Point to next box
+ \ifnum\tmp@three>0 \repeat} % Loop until done
+ } % End of \handlefigures
+
+\def\all@wfigure#1{
+ \tmp@=#1 % Height of figure
+ \global\advance\vsize by-\tmp@ % Subtract figure size from vsize
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macro: \round#1#2#3
+%
+% Purpose: Round a dimen parameter (#1) to the nearest even multiple of
+% parameter #2. Primarily used to ensure that the page height
+% or a figure height is an even multiple of the baselineskip.
+%
+% NOTE: this macro assumes there is no stretch or shrink to #2.
+%
+% Inputs:
+% #1 Dimen variable to change (e.g., \pageheight)
+% #2 Dimen variable to use as multiple (e.g., \baselineskip)
+% #3 Symbol indicating round up (>) or round down (<)
+% \tmp@ Work dimen (saved and restored)
+%
+% Example:
+% \pageheight=598.213pt \baselineskip=12pt
+% \round{\pageheight}{\baselineskip}{<} %yields \pageheight=588.0pt
+% \round{\pageheight}{\baselineskip}{>} %yields \pageheight=600.0pt
+%
+\def\round#1#2#3{\bgroup% %Keep \tmp@ changes local
+ \rtmp@=0pt %Initialize \tmp@
+ \loop %Begin a loop
+ \advance\rtmp@ by #2 %Bump \tmp@ by #2
+ \ifdim#1>\rtmp@ \repeat %Loop until \tmp@ > #1
+ \ifx<#3 %If #3 = "<" then
+ \advance\rtmp@ by-#2 %... subtract #2 from \tmp@
+ \fi %...
+ \global#1=\rtmp@ %Reset parameter #1
+ \egroup %End the group
+} %End of macro
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Define list macros
+%
+% Dimens:
+%
+% \llistindent - Amount of left indent (0pt by default)
+% \rlistindent - Amount of right indent (0pt by default)
+%
+% Macros:
+%
+% \beginlist - Begin list (skips space, sets indent)
+% \endlist - Terminates a list
+% \beginlistt - Begin list with glue (used for list headers)
+% \endlistt - Terminates a \beginlistt
+% \dotitem - Itemize with a dot "o"
+%
+\newdimen\llistindent \llistindent=0pt
+\newdimen\rlistindent \rlistindent=0pt
+\def\listindent#1{\llistindent=#1\rlistindent=#1}
+
+\def\beginlist{\begingroup%
+ \ifdim\parskip=0pt \vskip.5\baselineskip % Skip 1/2 line
+ \else \vskip\parskip % or the \parskip
+ \fi %
+ \parindent=10pt\parskip=0pt% % Reset parindent
+ \leftskip=\llistindent \rightskip=\rlistindent} % Indent margins
+
+\def\endlist{\par\endgroup%
+ \ifdim\parskip=0pt \vskip.5\baselineskip
+ \else \vskip\parskip\fi}
+
+\def\dotitem#1\par{\item{$\bullet$} #1 \par}
+
+\def\beginlistt#1{#1\vglue0pt\begingroup%
+ \divide\parskip by2\vskip\parskip\parindent=10pt\parskip=0pt%
+ \leftskip=\llistindent \rightskip=\rlistindent}
+\def\endlistt{\par\endgroup} %\vskip\parskip}
+
+%
+% Define a small copyright (for use with 8-point type).
+%
+\def\smallcir{\smallsy\char13}
+\def\smallcopyright{\leavevmode\raise.25ex\hbox{
+ \ooalign{\hfil\raise.03ex\hbox{\kern .16em\verysmallrm C}
+ \hfil\crcr\smallcir}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Define macros to manipulate boxes
+%
+% Dimens:
+%
+% \boxitrule=Xpt - Width of rules used to draw boxes
+% \boxitspace=Xpt - Space between box rules and box contents
+% \boxshadowsize=Xpt - Width of shadow boxes
+%
+% Macros:
+%
+% \articletitle{Title}{byline} - Do article title in double box
+% \coltitle{Title} - Do a title box in a column
+% \shadowbox{some_box} - Draw a shadow box around an hbox or vbox
+% \leftshadowbox{somebox} - Draw a left-hand shadow box around a box
+% \centerbox{somebox} - Center a \vbox on a page
+% \boxit{some_box} - Draw a box around an hbox or vbox
+% \ednote - Do editor's note in a box
+%
+\newdimen\boxitspace \newdimen\boxitrule \newdimen\boxitwidth
+\boxitspace=3pt \boxitrule=1.2pt
+\boxitwidth=\boxitspace \advance\boxitwidth by\boxitspace
+\advance\boxitwidth by\boxitrule \advance\boxitwidth by\boxitrule
+
+%
+% Define macro to write an article title inside a double box
+%
+% Parameters:
+%
+% #1 - Title of article
+% #2 - Byline
+%
+% For both \articletitle and \coltitle, the width of the box(es) must be
+% subtracted from the current hsize in order for centering and justification
+% to work right (otherwise the letters will run into the lines of the box).
+%
+\def\articletitle#1#2{
+ \bestbreak{ % Say that this is best break
+ \advance\hsize by -\boxitwidth % Bring margin in before \center
+ \advance\hsize by -\boxitwidth % Do for both boxes!
+ \vskip 10pt plus 5pt % Skip some space
+ \boxit{ % Box the box
+ \divide\boxitrule by 2 % Make inside box lines thinner
+ \boxit{ % Box the text
+ \vbox{\noindent % Create a box
+ \centerline{\seventeenpoint\ss #1} % Print title of article
+ \centerline{\ninepoint\ss #2} % Print article byline
+ }}}}} % Create the text box
+
+\def\coltitle#1\par{{% % Swallow next paragraph
+ \advance\hsize by -\boxitwidth % Bring margins in
+ \boxit{% % Draw a box around the text
+ \vbox{\ss\noindent #1}}}% % Create a vbox that contains
+ \vglue.5\baselineskip% % Skip some non-breakable space
+ \noindent} % Don't indent next paragraph
+
+\def\ednote#1{{
+ \sl % Switch to slanted font
+ \def\sl{\/\rm} % Redefine \sl
+ \advance\hsize by -\boxitwidth % Bring margins in
+ \boxit{ % Draw a box around the text
+ \vbox{\noindent Editor's note: #1}}} % Create a vbox that contains
+ \vglue 0pt} % Finish it up
+
+\def\boxit#1{\vbox{\tithrule\hbox{\titvrule\kern\boxitspace%
+ \vbox{\kern\boxitspace #1 \kern\boxitspace}%
+ \kern\boxitspace\titvrule}\tithrule}}
+
+\def\tithrule{\hrule height\boxitrule}
+\def\titvrule{\vrule width\boxitrule}
+
+%
+% \centerbox
+%
+% Create a \vbox that contains a centered \hbox. The centering is relative
+% to the current \hsize.
+%
+% Inputs:
+%
+% #1 - \vbox to center -> \centerbox{\shadowbox{...}}
+%
+\def\centerbox#1{\hbox{\hfil#1\hfil}} % Create a \vbox containing a centered
+
+
+\newdimen\oboxht \newdimen\oboxwd \newdimen\boxshadowsize
+\boxshadowsize=4pt % Shadow box size is 4pt
+%
+% Draw a righthand shadow box. This is accomplished by building a vbox
+% containing an hbox that is the boxed text and an hbox that is the right
+% hand shadow. This vbox is then joined with a vbox that forms
+% the bottom shadow.
+%
+\def\shadowbox#1{{
+ \setbox0=\vbox{\boxit{#1}} % Set box after \boxit
+ \oboxht=\ht0 \oboxwd=\wd0 % Store the dimensions
+ \advance\oboxwd by-\boxshadowsize % Subtract shadow size from wd
+ \vbox{ % Put it all in one vbox
+ \offinterlineskip % Butt \vboxes together
+ \vbox{ % Create a vbox of whole thing
+ \hbox{\vbox{\unvbox0} % Create box with text box +
+ \hskip-\fontdimen2\font
+ \lower\boxshadowsize % Draw the right-hand boxshadowsize
+ \hbox{\vrule width\boxshadowsize height\oboxht}} % ... Finish off \hbox
+ } % End of the \vbox
+ \advance\boxshadowsize by\boxitrule
+ \vskip-\boxshadowsize % Back up to bottom of \vbox
+ \vbox{ % Start a new \vbox
+ \hbox{\kern\boxshadowsize\vbox{ % Create \hbox that is shadow
+ \hrule height\boxshadowsize width\oboxwd}} % ...
+ } % End of the \vbox
+ } % End of \vbox
+ }} % End of \shadowbox
+%
+% Draw a lefthand shadow box. This is accomplished by building a lowered
+% vbox containing an hbox that is the left hand shadow and an hbox that
+% contains the boxed text. This vbox is then joined with a vbox that forms
+% the bottom shadow.
+%
+\def\leftshadowbox#1{{
+ \setbox0=\vbox{\boxit{#1}} % Set box after \boxit
+ \oboxht=\ht0 \oboxwd=\wd0 % Store the dimensions
+ \advance\oboxwd by-\boxshadowsize % Subtract shadow size from wd
+ \vbox{
+ \offinterlineskip % Butt \vboxes together
+ \vbox{ % Create a vbox of whole thing
+ \hbox{ % Create an hbox
+ \hskip-\fontdimen2\font % Move left one character width
+ \hskip-\boxshadowsize % Move left = size of shadow box
+ \advance\boxitrule by\boxshadowsize % Make shadow a tad bit wider
+ \lower\boxshadowsize % Move down the same amount
+ \hbox{\vrule width\boxitrule height\oboxht} % Draw the left box
+ } % ... Finish off \hbox
+ \vskip-\oboxht\vskip-\boxshadowsize % Move back up to top of box
+ \hbox{\vbox{\unvbox0} % Create box with text inside it
+ }} % End of vboxes
+ \advance\boxshadowsize by\boxitrule % Make box a little thicker
+ % ... so it overlaps bottom line
+ \vskip-\boxitrule % Move up height of bottom line
+ \vbox{ % Start a new \vbox
+ \hbox{\vbox{ % Create \hbox that is shadow
+ \hrule height\boxshadowsize width\oboxwd}} % ...
+ } % End of the \vbox
+ } % End of \vbox
+ }} % End of \shadowbox
+
+\def\bestbreak{\par\penalty-1000}
+
+%
+% Begin a quotation. The quote is separated from the main text by two
+% hrules and is indented from the normal text.
+%
+\def\beginquote{
+ \begingroup % Define beginning of a group
+ \quotefont\baselineskip=16.8pt
+ \hrule height2pt % Draw a line
+ \parindent 5pt % Indent paragraphs by 5pt
+ \vglue\medskipamount % Use some glue so rule sticks
+ \narrower\narrower % Bring margins in (10pt)
+ \noindent % Don't indent
+ } % End of macro
+%
+% End a quotation.
+%
+\def\endquote{
+ \vglue\medskipamount % Use some glue so rule sticks
+ \hrule height2pt % Draw a line
+ \endgroup % End the quote group
+ }
+
+\def\quotee#1{{\hfill\break\hbox{}\nobreak\hfill\hbox{\quoteefont #1}
+ \finalhyphendemerits=0}}
+\def\Quote#1#2{\vbox{\vskip1.2pt\beginquote #1%
+ \quotee{#2}\endquote\vskip1.20003pt}}
+
+%
+% Insert current month and year
+%
+\def\DATE{\ifcase\month\or January\or February\or March\or April\or May
+ \or June\or July\or August\or September\or October\or November
+ \or December\fi\space\number\year}
+%
+% Include a TeX file.
+%
+\def\include#1{\immediate\write10{Including TeX file #1}
+ \input #1 % Read the file in
+ % Things to do after formatting the file
+ }
+%
+% Separate articles with some vskip and an \hrule
+%
+\def\articlesep{ % Rule to separate articles
+ \vglue 10pt plus2pt minus4pt % Use vglue
+ \hrule %height.4pt % Draw a rule equal to \hsize
+ \vskip 10pt plus2pt minus2pt % Skip some vertical space
+ }
+
+% Put release flush right. If it won't fit, put it on the next line.
+% From TeXbook, Chapter 14.
+\def\farright#1{{\unskip\nobreak\hfill\penalty50\hskip2em
+ \hbox{}\nobreak\hfill \hbox{#1}\finalhyphendemerits=0}}
+
+%
+% Define end-of-article marker.
+%
+\def\eoa{\farright{\vrule height1.5ex width1.5ex depth0pt}}
+%
+% Generate a blank page and a blank line.
+%
+\def\nullpage{\eject\line{}\vfil\eject} % Define an empty page
+\def\nullline{\break\hbox{}\hfil\break} % Define an empty line
+%
+% Start on a new page.
+%
+\def\newpage{\vfill\eject}
+%
+% Get rid of underfill errors
+%
+\def\ignoreunderfill{\vbadness=10000\hbadness=10000\tolerance=2000}
+
+%=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+% Macros for bibliography entries
+%=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+%
+% Sample usage:
+%
+% \beginbibliography
+% \bibbook{The Wolf's Hour}
+% \ENUM New York: Pocket Books, March 1989 (paperback)
+% \endbibliography
+%
+\newcount\enumno % New counter - item #
+%
+% \beginbibliography - Begin a bibliography
+%
+\def\beginbibliography{\begingroup\global\enumno=1
+ \tiny % Use 8pt font
+ \parskip=1pt plus 1pt % Skip up to 2 points
+ } % End of \beginbibliography
+\def\endbibliography{\par\endbiblist\endgroup} % End of bibliography
+%
+% \beginbiblist - Begin a list of bibliographic references
+%
+\def\beginbiblist{\begingroup
+ \vglue0pt\parindent=30pt\parskip=0pt}
+%
+% \beginanotherlist - Begin a list inside a list of bibliographic references
+%
+\def\beginanotherlist{\begingroup
+ \divide\parskip by 2
+ \vglue\parskip\advance\parindent by10pt\parskip=0pt}
+\def\endbiblist{\par\endgroup\vskip4pt}
+
+% ENUM - Number items in a list
+% ENum - No number, but spaced as if number was present
+% NoENUM - Only one reference is present. Start reference where number would
+% normally start (hanging into left column).
+%
+% Examples:
+%
+% \ENUM First one 1. First one
+% \ENUM Second one Yields 2. Second one
+% \ENum Third one Third one
+% \NoENUM Fourth one Fourth one
+%
+\def\ENUM#1\par{\item{\the\enumno.}\advance\enumno by 1 #1 \par }
+\def\ENum#1\par{\item{}\advance\enumno by 1 #1 \par }
+\def\NoENUM#1\par{\advance\enumno by 1\par\hang\hskip-10pt #1 \par }
+%
+% \bibshort, \bibbook, \bibview
+%
+% Macros to begin a new bibliography entry for a short story, a book, and
+% and interviews. These macros will terminate the previous bibliography
+% entry (if there is one) and begin a new entry.
+%
+\def\bibshort#1{\ifnum\enumno>1 \bestbreak\endbiblist\fi % Short story
+ \noindent{\story{#1}}\beginbiblist
+ }
+\def\bibbook#1{\ifnum\enumno>1 \endbiblist\fi % Book
+ \noindent{\sl #1}\beginbiblist
+ }
+\def\bibview#1{\ifnum\enumno>1 \endbiblist\fi % Interview
+ \noindent{#1}\beginbiblist
+ }
+\def\subbib#1{\hskip-20pt #1\hfill} %Subheading for a bib entry
+\def\bibsectitle#1{ %Title of bib section (BOOKS...)
+ \vskip 8pt plus1pt minus1pt % Skip some space
+ \hrule % Draw an hrule
+ {\tenss #1} % Add text in 10pt font
+ \vglue 10pt plus1pt minus1pt % Skip some more space
+ }
+%=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+%
+% File: QUOTE.TEX
+%
+% Author: Hunter Goatley
+%
+% Date: August 14, 1991
+%
+% Abstract:
+%
+% This file defines the macros \begindoublequotes and \enddoublequotes,
+% which let TeX replace the double-quote character (") with TeX's
+% left double-quote and right double-quote. For example:
+%
+% "This is a test." ---> ``This is a test.''
+%
+% The double-quote character is still available via \dq. (\" is still
+% treated as the umlaut accent.)
+%
+% This macro makes a couple of assumptions about the double-quotes:
+%
+% 1. Double-quotes are assumed to come in pairs. When replacing
+% double-quotes, the macro alternates between `` and ''. The only
+% exception to this is noted in (2) below.
+% 2. A double-quote at the beginning of a paragraph is always treated
+% as ``. This correctly handles the case where a quotation is
+% continued into a second paragraph:
+%
+% "This is the first paragraph.\par
+% "This is the second paragraph of the same quote."
+%
+% Normal TeX spacing after `` and '' is maintained by saving and
+% restoring the \spacefactor.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% HOW IT WORKS:
+%
+% The double-quote character (") is made active by \begindoublequotes.
+% The " macro keeps track of left-quote/right-quote pairs and inserts
+% the appropriate `` and '' in its place.
+%
+% Each character has a \spacefactor associated with it, which specifies
+% the amount of stretch or shrink that a space following the character
+% can have. Most characters have a factor of 1000, but some punctuation
+% marks have higher spacefactors, most notably the period, which has a
+% \spacefactor of 3000. This means the space following a period can
+% stretch up to 3 times more than the space after a regular character,
+% accounting for the increased space at the end of sentences.
+%
+% The `` and '' ligatures are assigned \spacefactor's of 0, so that the
+% \spacefactor that is applied to the next character is the same as that
+% of the character preceding the quotes. Because " has been redefined as
+% a macro, any spaces following " are swallowed by TeX. It was necessary
+% to have this macro re-insert any needed space so that the following
+% cases worked correctly:
+%
+% "This is a test," she said. --> ``This is a test,'' she said.
+% "This is in a list"; etc. --> ``This is in a list''; etc.
+%
+% Without the added space, the first example becomes:
+%
+% ``This is a test,''she said.
+%
+% The solution was to save the current \spacefactor before inserting a
+% right double-quote, then resetting the \spacefactor after the
+% insertion. The net effect was that the " macro has a \spacefactor
+% of 0, which matches the way TeX treats `` and ''.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{% % Begin a group for which " is active
+\catcode`\"=\active % Make " an active character
+\catcode`\@=11 % Make @ an active character
+%
+% \begindoublequotes
+%
+% This macro makes " an active character, resets the control sequence
+% \dblqu@te to L (left), and defines \dq as a replacement for ".
+%
+\gdef\begindoublequotes{% % \begindoublequotes enables "
+ \global\catcode`\"=\active % Make " an active character
+ \global\chardef\dq=`\" % Double-quote char. via \dq
+ \global\let\dblqu@te=L % Always start with a left double-quote
+ } % End of macro
+%
+% Define the macro that will be executed whenever " is encountered.
+%
+\gdef"{%
+ % If the double-quote is the first character in a new paragraph,
+ % make sure it becomes a left double-quote. This case can be
+ % detected by checking to see if TeX is currently in vertical mode.
+ % If so, the double-quote is at the beginning of the paragraph
+ % (since " hasn't actually generated any horizontal mode tokens
+ % yet, TeX is still in vertical mode). If the mode is vertical,
+ % set \dblqu@te equal to L.
+ %
+ \ifinner\else\ifvmode\let\dblqu@te=L\fi\fi
+ %
+ % Now insert the appropriate left or right double-quote.
+ %
+ % If \dblqu@te is L, insert a `` and set \dblqu@te to R.
+ %
+ \if L\dblqu@te``\global\let\dblqu@te=R%
+ %
+ % Otherwise, save the current \spacefactor, insert '', set \dblqu@te
+ % to L, and reset the original \spacefactor.
+ %
+ \else
+ \let\xxx=\spacefactor % Save the \spacefactor
+ ''\global\let\dblqu@te=L% % Insert '' and reset \dblqu@te
+ \spacefactor\xxx % Reset the \spacefactor
+ \fi % End of \if L\dblqu@te...
+ } % End of " macro
+} % End of group
+
+\gdef\enddoublequotes{%
+ \catcode`\"=12 %Set " back to other
+ }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Header & Footer Macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% These macros implement the headers and footers for the newsletter format.
+% The macros accept three parameters: text that is to appear flush-left on
+% the line, text that should be centered, and text that should be flush-right
+% on the line. Parameters can be omitted by specifying empty braces ({}).
+%
+% The following macros are defined for headers and footers:
+%
+% \evenpageheader{LEFT}{CENTER}{RIGHT}
+% \oddpageheader{LEFT}{CENTER}{RIGHT}
+% \evenpagefooter{LEFT}{CENTER}{RIGHT}
+% \oddpagefooter{LEFT}{CENTER}{RIGHT}
+%
+% If the headers/footers are the same for even & odd pages, the following
+% macros can be used instead of the four above:
+%
+% \pageheader{LEFT}{CENTER}{RIGHT}
+% \pagefooter{LEFT}{CENTER}{RIGHT}
+%
+% Additional header/footer definitions:
+%
+% \pageheaderlinetrue - A line should extend below header text
+% \pageheaderlinefalse - Header does NOT have a line
+% \pagefooterlinetrue - A line should extend above footer text
+% \pagefooterlinefalse - Footer does NOT have a line
+% \headfootrule=Xpt - Thickness of header/footer lines
+% \pageheaderskip=Xpt - \vskip between header and line
+% \pagefooterskip=Xpt - \vskip between footer and line
+% \headfont=\fontname - Font to use for header text
+% \footfont=\fontname - Font to use for footer text
+%
+% Example:
+%
+% \pageheader{}{My Newsletter}{}
+% \pagefooter{October 1989}{}{\pageno}
+%
+\newif\ifpageheaderline \pageheaderlinefalse % By default, no header line
+\newif\ifpagefooterline \pagefooterlinefalse % By default, no footer line
+\newdimen\headfootrule \headfootrule=0.50pt % Height of header & footer rule
+\newdimen\pageheaderskip \pageheaderskip=4pt % Space between header and rule
+\newdimen\pagefooterskip \pagefooterskip=4pt % Space between rule and footer
+
+\let\headfont=\twelverm \let\footfont=\twelverm % Assign fonts for head/foot
+
+\def\@pageheader#1#2#3{%
+ \ifpageheaderline % If headerline
+ \vbox{\hbox to\normalhsize{{\headfont\rlap{#1}\hss{#2}\hss\llap{#3}}}%
+ \vskip\pageheaderskip\hrule height\headfootrule}% Do hbox and hrule
+ \else
+ {\headfont\rlap{#1}\hss{#2}\hss\llap{#3}}
+ \fi
+ }
+
+\def\@pagefooter#1#2#3{%
+ \ifpagefooterline
+ \vbox{\hrule height\headfootrule\vskip\pagefooterskip
+ \hbox to\normalhsize{\footfont\rlap{#1}\hss{#2}\hss\llap{#3}}}%
+ \else
+ {\footfont\rlap{#1}\hss{#2}\hss\llap{#3}}
+ \fi
+ }
+%
+% Define default headers and footers - null lines of text
+%
+\def\@oddhead{\nullline} \def\@evenhead{\nullline}
+\def\@oddfoot{\nullline} \def\@evenfoot{\nullline}
+
+\def\@newhead{\headline{\ifodd\pageno\@oddhead\else\@evenhead\fi}}
+\def\@newfoot{\footline{\ifodd\pageno\@oddfoot\else\@evenfoot\fi}}
+
+\def\oddpageheader#1#2#3{\@newhead\def\@oddhead{\@pageheader{#1}{#2}{#3}}}
+\def\evenpageheader#1#2#3{\@newhead\def\@evenhead{\@pageheader{#1}{#2}{#3}}}
+\def\oddpagefooter#1#2#3{\@newfoot\def\@oddfoot{\@pagefooter{#1}{#2}{#3}}}
+\def\evenpagefooter#1#2#3{\@newfoot\def\@evenfoot{\@pagefooter{#1}{#2}{#3}}}
+%
+% If no difference between even and odd pages, just define both to be the same.
+%
+\def\pageheader#1#2#3{\evenpageheader{#1}{#2}{#3}\oddpageheader{#1}{#2}{#3}}
+\def\pagefooter#1#2#3{\evenpagefooter{#1}{#2}{#3}\oddpagefooter{#1}{#2}{#3}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Command for "poor man's bold": \pmb (use sparingly)
+%
+\def\pmb#1{\setbox0=\hbox{#1}% % Copy box to box0
+ \leavevmode\hbox{% % Make an hbox that holds
+ \kern-.025em\copy0\kern-\wd0% % Move left 1/4 em and copy box0
+ \kern.05em\copy0\kern-\wd0% % Move right 1/4 em and copy it
+ \kern-.025em\raise.0433em\box0 }} % Raise a little and copy again
+
+%
+% Define dots for ending sentences (4 dots instead of 3)
+%
+\def\eldots{\mathinner{\ldotp\ldotp\ldotp\ldotp}}
+\def\edots{\relax\ifmmode\eldots\else$\m@th\eldots\,$\fi}
+\def\ellip{\hskip.2em\ifmmode\ldots\else$\ldots$\fi\hskip.25em}
+%
+% Define macros \ital and \slant to switch to italic (\it) and slanted (\sl)
+% respectively. These macros automatically insert the italic correction
+% unless the next character is a period or a comma. Based on the
+% \predict macro presented in _TeX for the Impatient_, p. 233.
+%
+% These macros use \toks0 as a temporary.
+%
+% The \futurelet\it@next in \ital and \slant defines \it@next to be whatever
+% the character following the parameter is. \d@slant checks to see if
+% \it@next is a comma or period; if it is neither, the italic correction
+% (\/) is included.
+%
+\def\ital#1{\toks0={#1}\let\slf@nt=\it\futurelet\it@next\d@slant}
+\def\slant#1{\toks0={#1}\let\slf@nt=\sl\futurelet\it@next\d@slant}
+\def\d@slant{{\slf@nt\the\toks0}%
+ \ifx\it@next,% % If \it@next not a comma
+ \else\ifx\it@next.% % ... and is not a period
+ \else\/% % ... insert the correction (\/)
+ \fi\fi% % ...
+ \let\it@next=\relax% % "Undefine" \it@next
+ }
+
+\def\book#1{\ital{#1}} %For ease, define \book too
+%
+% Important - make "@" a valid alphanumeric character again
+%
+\catcode`\@=12 % Follow TeX's lead on variable names
+
+\tenpoint % Default point size is 10pt
diff --git a/Master/texmf-dist/tex/plain/newsletr/quote.tex b/Master/texmf-dist/tex/plain/newsletr/quote.tex
new file mode 100644
index 00000000000..627dc44d627
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/newsletr/quote.tex
@@ -0,0 +1,119 @@
+% Save file as: QUOTE.TEX Source: FILESERV@SHSU.BITNET
+%
+% File: QUOTE.TEX
+%
+% Author: Hunter Goatley
+% goathunter@WKUVX1.BITNET
+%
+% Date: August 14, 1991
+%
+% Abstract:
+%
+% This file defines the macros \begindoublequotes and \enddoublequotes,
+% which let TeX replace the double-quote character (") with TeX's
+% left double-quote and right double-quote. For example:
+%
+% "This is a test." ---> ``This is a test.''
+%
+% The double-quote character is still available via \dq. (\" is still
+% treated as the umlaut accent.)
+%
+% This macro makes a couple of assumptions about the double-quotes:
+%
+% 1. Double-quotes are assumed to come in pairs. When replacing
+% double-quotes, the macro alternates between `` and ''. The only
+% exception to this is noted in (2) below.
+% 2. A double-quote at the beginning of a paragraph is always treated
+% as ``. This correctly handles the case where a quotation is
+% continued into a second paragraph:
+%
+% "This is the first paragraph.\par
+% "This is the second paragraph of the same quote."
+%
+% Normal TeX spacing after `` and '' is maintained by saving and
+% restoring the \spacefactor.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% HOW IT WORKS:
+%
+% The double-quote character (") is made active by \begindoublequotes.
+% The " macro keeps track of left-quote/right-quote pairs and inserts
+% the appropriate `` and '' in its place.
+%
+% Each character has a \spacefactor associated with it, which specifies
+% the amount of stretch or shrink that a space following the character
+% can have. Most characters have a factor of 1000, but some punctuation
+% marks have higher spacefactors, most notably the period, which has a
+% \spacefactor of 3000. This means the space following a period can
+% stretch up to 3 times more than the space after a regular character,
+% accounting for the increased space at the end of sentences.
+%
+% The `` and '' ligatures are assigned \spacefactor's of 0, so that the
+% \spacefactor that is applied to the next character is the same as that
+% of the character preceding the quotes. Because " has been redefined as
+% a macro, any spaces following " are swallowed by TeX. It was necessary
+% to have this macro re-insert any needed space so that the following
+% cases worked correctly:
+%
+% "This is a test," she said. --> ``This is a test,'' she said.
+% "This is in a list"; etc. --> ``This is in a list''; etc.
+%
+% Without the added space, the first example becomes:
+%
+% ``This is a test,''she said.
+%
+% The solution was to save the current \spacefactor before inserting a
+% right double-quote, then resetting the \spacefactor after the
+% insertion. The net effect was that the " macro has a \spacefactor
+% of 0, which matches the way TeX treats `` and ''.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+{% % Begin a group for which " is active
+\catcode`\"=\active % Make " an active character
+\catcode`\@=11 % Make @ an active character
+%
+% \begindoublequotes
+%
+% This macro makes " an active character, resets the control sequence
+% \dblqu@te to L (left), and defines \dq as a replacement for ".
+%
+\gdef\begindoublequotes{% % \begindoublequotes enables "
+ \global\catcode`\"=\active % Make " an active character
+ \global\chardef\dq=`\" % Double-quote char. via \dq
+ \global\let\dblqu@te=L % Always start with a left double-quote
+ } % End of macro
+%
+% Define the macro that will be executed whenever " is encountered.
+%
+\gdef"{%
+ % If the double-quote is the first character in a new paragraph,
+ % make sure it becomes a left double-quote. This case can be
+ % detected by checking to see if TeX is currently in vertical mode.
+ % If so, the double-quote is at the beginning of the paragraph
+ % (since " hasn't actually generated any horizontal mode tokens
+ % yet, TeX is still in vertical mode). If the mode is vertical,
+ % set \dblqu@te equal to L.
+ %
+ \ifinner\else\ifvmode\let\dblqu@te=L\fi\fi
+ %
+ % Now insert the appropriate left or right double-quote.
+ %
+ % If \dblqu@te is L, insert a `` and set \dblqu@te to R.
+ %
+ \if L\dblqu@te``\global\let\dblqu@te=R%
+ %
+ % Otherwise, save the current \spacefactor, insert '', set \dblqu@te
+ % to L, and reset the original \spacefactor.
+ %
+ \else
+ \let\xxx=\spacefactor % Save the \spacefactor
+ ''\global\let\dblqu@te=L% % Insert '' and reset \dblqu@te
+ \spacefactor\xxx % Reset the \spacefactor
+ \fi % End of \if L\dblqu@te...
+ } % End of " macro
+} % End of group
+
+\gdef\enddoublequotes{%
+ \catcode`\"=12 %Set " back to other
+ }
diff --git a/Master/texmf-dist/tex/plain/omega/grlccode.tex b/Master/texmf-dist/tex/plain/omega/grlccode.tex
new file mode 100644
index 00000000000..b3a06ecaad4
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/omega/grlccode.tex
@@ -0,0 +1,572 @@
+% 03ca est "i, 03cb est "u
+\typeout{Greek lccodes...}
+\catcode"0710=12 \lccode"0710=`\a
+\catcode"0711=12 \lccode"0711=`\a
+\catcode"0712=12 \lccode"0712=`\a
+\catcode"0713=12 \lccode"0713=`\a
+\catcode"0714=12 \lccode"0714=`\a
+\catcode"0715=12 \lccode"0715=`\a
+\catcode"0716=12 \lccode"0716=`\a
+\catcode"0717=12 \lccode"0717=`\a
+\catcode"0718=12 \lccode"0718=`\a
+\catcode"0719=12 \lccode"0719=`\a
+\catcode"071A=12 \lccode"071A=`\a
+\catcode"071B=12 \lccode"071B=`\a
+\catcode"071C=12 \lccode"071C=`\a
+\catcode"071D=12 \lccode"071D=`\a
+\catcode"071E=12 \lccode"071E=`\a
+\catcode"071F=12 \lccode"071F=`\a
+\catcode"0720=12 \lccode"0720=`\a
+\catcode"0721=12 \lccode"0721=`\a
+\catcode"0722=12 \lccode"0722=`\a
+\catcode"0723=12 \lccode"0723=`\a
+\catcode"0724=12 \lccode"0724=`\a
+\catcode"0725=12 \lccode"0725=`\a
+\catcode"0726=12 \lccode"0726=`\a
+\catcode"0727=12 \lccode"0727=`\a
+\catcode"0728=12 \lccode"0728=`\a
+\catcode"0729=12 \lccode"0729=`\a
+\catcode"072A=12 \lccode"072A=`\a
+\catcode"072B=12 \lccode"072B=`\a
+\catcode"072C=12 \lccode"072C=`\a
+\catcode"072D=12 \lccode"072D=`\a
+\catcode"072E=12 \lccode"072E=`\a
+\catcode"072F=12 \lccode"072F=`\a
+\catcode"07B0=12 \lccode"07B0=`\a
+\catcode"07B8=12 \lccode"07B8=`\a
+\catcode"07CD=12 \lccode"07CD=`\a
+\catcode"07D0=12 \lccode"07D0=`\a
+\catcode"07D1=12 \lccode"07D1=`\a
+\catcode"07D2=12 \lccode"07D2=`\a
+\catcode"0810=12 \lccode"0810=`\a
+\catcode"0811=12 \lccode"0811=`\a
+\catcode"0812=12 \lccode"0812=`\a
+\catcode"0813=12 \lccode"0813=`\a
+\catcode"0814=12 \lccode"0814=`\a
+\catcode"0815=12 \lccode"0815=`\a
+\catcode"0816=12 \lccode"0816=`\a
+\catcode"0817=12 \lccode"0817=`\a
+\catcode"0818=12 \lccode"0818=`\a
+\catcode"0819=12 \lccode"0819=`\a
+\catcode"081A=12 \lccode"081A=`\a
+\catcode"081B=12 \lccode"081B=`\a
+\catcode"081C=12 \lccode"081C=`\a
+\catcode"081D=12 \lccode"081D=`\a
+\catcode"081E=12 \lccode"081E=`\a
+\catcode"081F=12 \lccode"081F=`\a
+\catcode"0820=12 \lccode"0820=`\a
+\catcode"0821=12 \lccode"0821=`\a
+\catcode"0822=12 \lccode"0822=`\a
+\catcode"0823=12 \lccode"0823=`\a
+\catcode"0824=12 \lccode"0824=`\a
+\catcode"0825=12 \lccode"0825=`\a
+\catcode"0826=12 \lccode"0826=`\a
+\catcode"0827=12 \lccode"0827=`\a
+\catcode"0828=12 \lccode"0828=`\a
+\catcode"0829=12 \lccode"0829=`\a
+\catcode"082A=12 \lccode"082A=`\a
+\catcode"082B=12 \lccode"082B=`\a
+\catcode"082C=12 \lccode"082C=`\a
+\catcode"082D=12 \lccode"082D=`\a
+\catcode"0910=12 \lccode"0910=`\a
+\catcode"0911=12 \lccode"0911=`\a
+\catcode"0912=12 \lccode"0912=`\a
+\catcode"0913=12 \lccode"0913=`\a
+\catcode"0914=12 \lccode"0914=`\a
+\catcode"0915=12 \lccode"0915=`\a
+\catcode"0916=12 \lccode"0916=`\a
+\catcode"0917=12 \lccode"0917=`\a
+\catcode"0918=12 \lccode"0918=`\a
+\catcode"0919=12 \lccode"0919=`\a
+\catcode"091A=12 \lccode"091A=`\a
+\catcode"091B=12 \lccode"091B=`\a
+\catcode"091C=12 \lccode"091C=`\a
+\catcode"091D=12 \lccode"091D=`\a
+\catcode"091E=12 \lccode"091E=`\a
+\catcode"091F=12 \lccode"091F=`\a
+\catcode"0920=12 \lccode"0920=`\a
+\catcode"0921=12 \lccode"0921=`\a
+\catcode"0922=12 \lccode"0922=`\a
+\catcode"0923=12 \lccode"0923=`\a
+\catcode"0924=12 \lccode"0924=`\a
+\catcode"0925=12 \lccode"0925=`\a
+\catcode"0926=12 \lccode"0926=`\a
+\catcode"0927=12 \lccode"0927=`\a
+\catcode"0928=12 \lccode"0928=`\a
+\catcode"0929=12 \lccode"0929=`\a
+\catcode"092A=12 \lccode"092A=`\a
+\catcode"092B=12 \lccode"092B=`\a
+\catcode"092C=12 \lccode"092C=`\a
+\catcode"092D=12 \lccode"092D=`\a
+\catcode"0730=12 \lccode"0730=`\e
+\catcode"0731=12 \lccode"0731=`\e
+\catcode"0732=12 \lccode"0732=`\e
+\catcode"0733=12 \lccode"0733=`\e
+\catcode"0734=12 \lccode"0734=`\e
+\catcode"0735=12 \lccode"0735=`\e
+\catcode"0736=12 \lccode"0736=`\e
+\catcode"0737=12 \lccode"0737=`\e
+\catcode"0738=12 \lccode"0738=`\e
+\catcode"0739=12 \lccode"0739=`\e
+\catcode"073A=12 \lccode"073A=`\e
+\catcode"073B=12 \lccode"073B=`\e
+\catcode"073C=12 \lccode"073C=`\e
+\catcode"073D=12 \lccode"073D=`\e
+\catcode"073E=12 \lccode"073E=`\e
+\catcode"073F=12 \lccode"073F=`\e
+\catcode"07B1=12 \lccode"07B1=`\e
+\catcode"07B9=12 \lccode"07B9=`\e
+\catcode"0830=12 \lccode"0830=`\e
+\catcode"0831=12 \lccode"0831=`\e
+\catcode"0832=12 \lccode"0832=`\e
+\catcode"0833=12 \lccode"0833=`\e
+\catcode"0834=12 \lccode"0834=`\e
+\catcode"0835=12 \lccode"0835=`\e
+\catcode"0836=12 \lccode"0836=`\e
+\catcode"0837=12 \lccode"0837=`\e
+\catcode"0838=12 \lccode"0838=`\e
+\catcode"0839=12 \lccode"0839=`\e
+\catcode"083A=12 \lccode"083A=`\e
+\catcode"083B=12 \lccode"083B=`\e
+\catcode"083C=12 \lccode"083C=`\e
+\catcode"083D=12 \lccode"083D=`\e
+\catcode"0930=12 \lccode"0930=`\e
+\catcode"0931=12 \lccode"0931=`\e
+\catcode"0932=12 \lccode"0932=`\e
+\catcode"0933=12 \lccode"0933=`\e
+\catcode"0934=12 \lccode"0934=`\e
+\catcode"0935=12 \lccode"0935=`\e
+\catcode"0936=12 \lccode"0936=`\e
+\catcode"0937=12 \lccode"0937=`\e
+\catcode"0938=12 \lccode"0938=`\e
+\catcode"0939=12 \lccode"0939=`\e
+\catcode"093A=12 \lccode"093A=`\e
+\catcode"093B=12 \lccode"093B=`\e
+\catcode"093C=12 \lccode"093C=`\e
+\catcode"093D=12 \lccode"093D=`\e
+\catcode"0740=12 \lccode"0740=`\h
+\catcode"0741=12 \lccode"0741=`\h
+\catcode"0742=12 \lccode"0742=`\h
+\catcode"0743=12 \lccode"0743=`\h
+\catcode"0744=12 \lccode"0744=`\h
+\catcode"0745=12 \lccode"0745=`\h
+\catcode"0746=12 \lccode"0746=`\h
+\catcode"0747=12 \lccode"0747=`\h
+\catcode"0748=12 \lccode"0748=`\h
+\catcode"0749=12 \lccode"0749=`\h
+\catcode"074A=12 \lccode"074A=`\h
+\catcode"074B=12 \lccode"074B=`\h
+\catcode"074C=12 \lccode"074C=`\h
+\catcode"074D=12 \lccode"074D=`\h
+\catcode"074E=12 \lccode"074E=`\h
+\catcode"074F=12 \lccode"074F=`\h
+\catcode"0750=12 \lccode"0750=`\h
+\catcode"0751=12 \lccode"0751=`\h
+\catcode"0752=12 \lccode"0752=`\h
+\catcode"0753=12 \lccode"0753=`\h
+\catcode"0754=12 \lccode"0754=`\h
+\catcode"0755=12 \lccode"0755=`\h
+\catcode"0756=12 \lccode"0756=`\h
+\catcode"0757=12 \lccode"0757=`\h
+\catcode"0758=12 \lccode"0758=`\h
+\catcode"0759=12 \lccode"0759=`\h
+\catcode"075A=12 \lccode"075A=`\h
+\catcode"075B=12 \lccode"075B=`\h
+\catcode"075C=12 \lccode"075C=`\h
+\catcode"075D=12 \lccode"075D=`\h
+\catcode"075E=12 \lccode"075E=`\h
+\catcode"075F=12 \lccode"075F=`\h
+\catcode"07B2=12 \lccode"07B2=`\h
+\catcode"07BA=12 \lccode"07BA=`\h
+\catcode"07CE=12 \lccode"07CE=`\h
+\catcode"07D3=12 \lccode"07D3=`\h
+\catcode"07D4=12 \lccode"07D4=`\h
+\catcode"07D5=12 \lccode"07D5=`\h
+\catcode"0840=12 \lccode"0840=`\h
+\catcode"0841=12 \lccode"0841=`\h
+\catcode"0842=12 \lccode"0842=`\h
+\catcode"0843=12 \lccode"0843=`\h
+\catcode"0844=12 \lccode"0844=`\h
+\catcode"0845=12 \lccode"0845=`\h
+\catcode"0846=12 \lccode"0846=`\h
+\catcode"0847=12 \lccode"0847=`\h
+\catcode"0848=12 \lccode"0848=`\h
+\catcode"0849=12 \lccode"0849=`\h
+\catcode"084A=12 \lccode"084A=`\h
+\catcode"084B=12 \lccode"084B=`\h
+\catcode"084C=12 \lccode"084C=`\h
+\catcode"084D=12 \lccode"084D=`\h
+\catcode"084E=12 \lccode"084E=`\h
+\catcode"084F=12 \lccode"084F=`\h
+\catcode"0850=12 \lccode"0850=`\h
+\catcode"0851=12 \lccode"0851=`\h
+\catcode"0852=12 \lccode"0852=`\h
+\catcode"0853=12 \lccode"0853=`\h
+\catcode"0854=12 \lccode"0854=`\h
+\catcode"0855=12 \lccode"0855=`\h
+\catcode"0856=12 \lccode"0856=`\h
+\catcode"0857=12 \lccode"0857=`\h
+\catcode"0858=12 \lccode"0858=`\h
+\catcode"0859=12 \lccode"0859=`\h
+\catcode"085A=12 \lccode"085A=`\h
+\catcode"085B=12 \lccode"085B=`\h
+\catcode"085C=12 \lccode"085C=`\h
+\catcode"085D=12 \lccode"085D=`\h
+\catcode"0940=12 \lccode"0940=`\h
+\catcode"0941=12 \lccode"0941=`\h
+\catcode"0942=12 \lccode"0942=`\h
+\catcode"0943=12 \lccode"0943=`\h
+\catcode"0944=12 \lccode"0944=`\h
+\catcode"0945=12 \lccode"0945=`\h
+\catcode"0946=12 \lccode"0946=`\h
+\catcode"0947=12 \lccode"0947=`\h
+\catcode"0948=12 \lccode"0948=`\h
+\catcode"0949=12 \lccode"0949=`\h
+\catcode"094A=12 \lccode"094A=`\h
+\catcode"094B=12 \lccode"094B=`\h
+\catcode"094C=12 \lccode"094C=`\h
+\catcode"094D=12 \lccode"094D=`\h
+\catcode"094E=12 \lccode"094E=`\h
+\catcode"094F=12 \lccode"094F=`\h
+\catcode"0950=12 \lccode"0950=`\h
+\catcode"0951=12 \lccode"0951=`\h
+\catcode"0952=12 \lccode"0952=`\h
+\catcode"0953=12 \lccode"0953=`\h
+\catcode"0954=12 \lccode"0954=`\h
+\catcode"0955=12 \lccode"0955=`\h
+\catcode"0956=12 \lccode"0956=`\h
+\catcode"0957=12 \lccode"0957=`\h
+\catcode"0958=12 \lccode"0958=`\h
+\catcode"0959=12 \lccode"0959=`\h
+\catcode"095A=12 \lccode"095A=`\h
+\catcode"095B=12 \lccode"095B=`\h
+\catcode"095C=12 \lccode"095C=`\h
+\catcode"095D=12 \lccode"095D=`\h
+\catcode"0760=12 \lccode"0760=`\i
+\catcode"0761=12 \lccode"0761=`\i
+\catcode"0762=12 \lccode"0762=`\i
+\catcode"0763=12 \lccode"0763=`\i
+\catcode"0764=12 \lccode"0764=`\i
+\catcode"0765=12 \lccode"0765=`\i
+\catcode"0766=12 \lccode"0766=`\i
+\catcode"0767=12 \lccode"0767=`\i
+\catcode"0768=12 \lccode"0768=`\i
+\catcode"0769=12 \lccode"0769=`\i
+\catcode"076A=12 \lccode"076A=`\i
+\catcode"076B=12 \lccode"076B=`\i
+\catcode"076C=12 \lccode"076C=`\i
+\catcode"076D=12 \lccode"076D=`\i
+\catcode"076E=12 \lccode"076E=`\i
+\catcode"076F=12 \lccode"076F=`\i
+\catcode"07B3=12 \lccode"07B3=`\i
+\catcode"07C0=12 \lccode"07C0=`\i
+\catcode"07C1=12 \lccode"07C1=`\i
+\catcode"07C2=12 \lccode"07C2=`\i
+\catcode"07C3=12 \lccode"07C3=`\i
+\catcode"0830=12 \lccode"0830=`\i
+\catcode"0831=12 \lccode"0831=`\i
+\catcode"0832=12 \lccode"0832=`\i
+\catcode"0833=12 \lccode"0833=`\i
+\catcode"0834=12 \lccode"0834=`\i
+\catcode"0835=12 \lccode"0835=`\i
+\catcode"0836=12 \lccode"0836=`\i
+\catcode"0837=12 \lccode"0837=`\i
+\catcode"0838=12 \lccode"0838=`\i
+\catcode"0839=12 \lccode"0839=`\i
+\catcode"083A=12 \lccode"083A=`\i
+\catcode"083B=12 \lccode"083B=`\i
+\catcode"083C=12 \lccode"083C=`\i
+\catcode"083D=12 \lccode"083D=`\i
+\catcode"0930=12 \lccode"0930=`\i
+\catcode"0931=12 \lccode"0931=`\i
+\catcode"0932=12 \lccode"0932=`\i
+\catcode"0933=12 \lccode"0933=`\i
+\catcode"0934=12 \lccode"0934=`\i
+\catcode"0935=12 \lccode"0935=`\i
+\catcode"0936=12 \lccode"0936=`\i
+\catcode"0937=12 \lccode"0937=`\i
+\catcode"0938=12 \lccode"0938=`\i
+\catcode"0939=12 \lccode"0939=`\i
+\catcode"093A=12 \lccode"093A=`\i
+\catcode"093B=12 \lccode"093B=`\i
+\catcode"093C=12 \lccode"093C=`\i
+\catcode"093D=12 \lccode"093D=`\i
+\catcode"0770=12 \lccode"0770=`\o
+\catcode"0771=12 \lccode"0771=`\o
+\catcode"0772=12 \lccode"0772=`\o
+\catcode"0773=12 \lccode"0773=`\o
+\catcode"0774=12 \lccode"0774=`\o
+\catcode"0775=12 \lccode"0775=`\o
+\catcode"0776=12 \lccode"0776=`\o
+\catcode"0777=12 \lccode"0777=`\o
+\catcode"0778=12 \lccode"0778=`\o
+\catcode"0779=12 \lccode"0779=`\o
+\catcode"077A=12 \lccode"077A=`\o
+\catcode"077B=12 \lccode"077B=`\o
+\catcode"077C=12 \lccode"077C=`\o
+\catcode"077D=12 \lccode"077D=`\o
+\catcode"077E=12 \lccode"077E=`\o
+\catcode"077F=12 \lccode"077F=`\o
+\catcode"07B4=12 \lccode"07B4=`\o
+\catcode"0870=12 \lccode"0870=`\o
+\catcode"0871=12 \lccode"0871=`\o
+\catcode"0872=12 \lccode"0872=`\o
+\catcode"0873=12 \lccode"0873=`\o
+\catcode"0874=12 \lccode"0874=`\o
+\catcode"0875=12 \lccode"0875=`\o
+\catcode"0876=12 \lccode"0876=`\o
+\catcode"0877=12 \lccode"0877=`\o
+\catcode"0878=12 \lccode"0878=`\o
+\catcode"0879=12 \lccode"0879=`\o
+\catcode"087A=12 \lccode"087A=`\o
+\catcode"087B=12 \lccode"087B=`\o
+\catcode"087C=12 \lccode"087C=`\o
+\catcode"087D=12 \lccode"087D=`\o
+\catcode"0970=12 \lccode"0970=`\o
+\catcode"0971=12 \lccode"0971=`\o
+\catcode"0972=12 \lccode"0972=`\o
+\catcode"0973=12 \lccode"0973=`\o
+\catcode"0974=12 \lccode"0974=`\o
+\catcode"0975=12 \lccode"0975=`\o
+\catcode"0976=12 \lccode"0976=`\o
+\catcode"0977=12 \lccode"0977=`\o
+\catcode"0978=12 \lccode"0978=`\o
+\catcode"0979=12 \lccode"0979=`\o
+\catcode"097A=12 \lccode"097A=`\o
+\catcode"097B=12 \lccode"097B=`\o
+\catcode"097C=12 \lccode"097C=`\o
+\catcode"097D=12 \lccode"097D=`\o
+\catcode"07C8=12 \lccode"07C8=`\r
+\catcode"07C9=12 \lccode"07C9=`\r
+\catcode"07CA=12 \lccode"07CA=`\r
+\catcode"07CB=12 \lccode"07CB=`\r
+\catcode"0780=12 \lccode"0780=`\u
+\catcode"0781=12 \lccode"0781=`\u
+\catcode"0782=12 \lccode"0782=`\u
+\catcode"0783=12 \lccode"0783=`\u
+\catcode"0784=12 \lccode"0784=`\u
+\catcode"0785=12 \lccode"0785=`\u
+\catcode"0786=12 \lccode"0786=`\u
+\catcode"0787=12 \lccode"0787=`\u
+\catcode"0788=12 \lccode"0788=`\u
+\catcode"0789=12 \lccode"0789=`\u
+\catcode"078A=12 \lccode"078A=`\u
+\catcode"078B=12 \lccode"078B=`\u
+\catcode"078C=12 \lccode"078C=`\u
+\catcode"078D=12 \lccode"078D=`\u
+\catcode"078E=12 \lccode"078E=`\u
+\catcode"078F=12 \lccode"078F=`\u
+\catcode"07B5=12 \lccode"07B5=`\u
+\catcode"07C4=12 \lccode"07C4=`\u
+\catcode"07C5=12 \lccode"07C5=`\u
+\catcode"07C6=12 \lccode"07C6=`\u
+\catcode"07C7=12 \lccode"07C7=`\u
+\catcode"0880=12 \lccode"0880=`\u
+\catcode"0881=12 \lccode"0881=`\u
+\catcode"0882=12 \lccode"0882=`\u
+\catcode"0883=12 \lccode"0883=`\u
+\catcode"0884=12 \lccode"0884=`\u
+\catcode"0885=12 \lccode"0885=`\u
+\catcode"0886=12 \lccode"0886=`\u
+\catcode"0887=12 \lccode"0887=`\u
+\catcode"0888=12 \lccode"0888=`\u
+\catcode"0889=12 \lccode"0889=`\u
+\catcode"088A=12 \lccode"088A=`\u
+\catcode"088B=12 \lccode"088B=`\u
+\catcode"088C=12 \lccode"088C=`\u
+\catcode"088D=12 \lccode"088D=`\u
+\catcode"0980=12 \lccode"0980=`\u
+\catcode"0981=12 \lccode"0981=`\u
+\catcode"0982=12 \lccode"0982=`\u
+\catcode"0983=12 \lccode"0983=`\u
+\catcode"0984=12 \lccode"0984=`\u
+\catcode"0985=12 \lccode"0985=`\u
+\catcode"0986=12 \lccode"0986=`\u
+\catcode"0987=12 \lccode"0987=`\u
+\catcode"0988=12 \lccode"0988=`\u
+\catcode"0989=12 \lccode"0989=`\u
+\catcode"098A=12 \lccode"098A=`\u
+\catcode"098B=12 \lccode"098B=`\u
+\catcode"098C=12 \lccode"098C=`\u
+\catcode"098D=12 \lccode"098D=`\u
+\catcode"0790=12 \lccode"0790=`\w
+\catcode"0791=12 \lccode"0791=`\w
+\catcode"0792=12 \lccode"0792=`\w
+\catcode"0793=12 \lccode"0793=`\w
+\catcode"0794=12 \lccode"0794=`\w
+\catcode"0795=12 \lccode"0795=`\w
+\catcode"0796=12 \lccode"0796=`\w
+\catcode"0797=12 \lccode"0797=`\w
+\catcode"0798=12 \lccode"0798=`\w
+\catcode"0799=12 \lccode"0799=`\w
+\catcode"079A=12 \lccode"079A=`\w
+\catcode"079B=12 \lccode"079B=`\w
+\catcode"079C=12 \lccode"079C=`\w
+\catcode"079D=12 \lccode"079D=`\w
+\catcode"079E=12 \lccode"079E=`\w
+\catcode"079F=12 \lccode"079F=`\w
+\catcode"07A0=12 \lccode"07A0=`\w
+\catcode"07A1=12 \lccode"07A1=`\w
+\catcode"07A2=12 \lccode"07A2=`\w
+\catcode"07A3=12 \lccode"07A3=`\w
+\catcode"07A4=12 \lccode"07A4=`\w
+\catcode"07A5=12 \lccode"07A5=`\w
+\catcode"07A6=12 \lccode"07A6=`\w
+\catcode"07A7=12 \lccode"07A7=`\w
+\catcode"07A8=12 \lccode"07A8=`\w
+\catcode"07A9=12 \lccode"07A9=`\w
+\catcode"07AA=12 \lccode"07AA=`\w
+\catcode"07AB=12 \lccode"07AB=`\w
+\catcode"07AC=12 \lccode"07AC=`\w
+\catcode"07AD=12 \lccode"07AD=`\w
+\catcode"07AE=12 \lccode"07AE=`\w
+\catcode"07AF=12 \lccode"07AF=`\w
+\catcode"07B6=12 \lccode"07B6=`\w
+\catcode"07BE=12 \lccode"07BE=`\w
+\catcode"07CF=12 \lccode"07CF=`\w
+\catcode"07D6=12 \lccode"07D6=`\w
+\catcode"07D7=12 \lccode"07D7=`\w
+\catcode"07D8=12 \lccode"07D8=`\w
+\catcode"0890=12 \lccode"0890=`\w
+\catcode"0891=12 \lccode"0891=`\w
+\catcode"0892=12 \lccode"0892=`\w
+\catcode"0893=12 \lccode"0893=`\w
+\catcode"0894=12 \lccode"0894=`\w
+\catcode"0895=12 \lccode"0895=`\w
+\catcode"0896=12 \lccode"0896=`\w
+\catcode"0897=12 \lccode"0897=`\w
+\catcode"0898=12 \lccode"0898=`\w
+\catcode"0899=12 \lccode"0899=`\w
+\catcode"089A=12 \lccode"089A=`\w
+\catcode"089B=12 \lccode"089B=`\w
+\catcode"089C=12 \lccode"089C=`\w
+\catcode"089D=12 \lccode"089D=`\w
+\catcode"089E=12 \lccode"089E=`\w
+\catcode"089F=12 \lccode"089F=`\w
+\catcode"08A0=12 \lccode"08A0=`\w
+\catcode"08A1=12 \lccode"08A1=`\w
+\catcode"08A2=12 \lccode"08A2=`\w
+\catcode"08A3=12 \lccode"08A3=`\w
+\catcode"08A4=12 \lccode"08A4=`\w
+\catcode"08A5=12 \lccode"08A5=`\w
+\catcode"08A6=12 \lccode"08A6=`\w
+\catcode"08A7=12 \lccode"08A7=`\w
+\catcode"08A8=12 \lccode"08A8=`\w
+\catcode"08A9=12 \lccode"08A9=`\w
+\catcode"08AA=12 \lccode"08AA=`\w
+\catcode"08AB=12 \lccode"08AB=`\w
+\catcode"08AC=12 \lccode"08AC=`\w
+\catcode"08AD=12 \lccode"08AD=`\w
+\catcode"0990=12 \lccode"0990=`\w
+\catcode"0991=12 \lccode"0991=`\w
+\catcode"0992=12 \lccode"0992=`\w
+\catcode"0993=12 \lccode"0993=`\w
+\catcode"0994=12 \lccode"0994=`\w
+\catcode"0995=12 \lccode"0995=`\w
+\catcode"0996=12 \lccode"0996=`\w
+\catcode"0997=12 \lccode"0997=`\w
+\catcode"0998=12 \lccode"0998=`\w
+\catcode"0999=12 \lccode"0999=`\w
+\catcode"099A=12 \lccode"099A=`\w
+\catcode"099B=12 \lccode"099B=`\w
+\catcode"099C=12 \lccode"099C=`\w
+\catcode"099D=12 \lccode"099D=`\w
+\catcode"099E=12 \lccode"099E=`\w
+\catcode"099F=12 \lccode"099F=`\w
+\catcode"09A0=12 \lccode"09A0=`\w
+\catcode"09A1=12 \lccode"09A1=`\w
+\catcode"09A2=12 \lccode"09A2=`\w
+\catcode"09A3=12 \lccode"09A3=`\w
+\catcode"09A4=12 \lccode"09A4=`\w
+\catcode"09A5=12 \lccode"09A5=`\w
+\catcode"09A6=12 \lccode"09A6=`\w
+\catcode"09A7=12 \lccode"09A7=`\w
+\catcode"09A8=12 \lccode"09A8=`\w
+\catcode"09A9=12 \lccode"09A9=`\w
+\catcode"09AA=12 \lccode"09AA=`\w
+\catcode"09AB=12 \lccode"09AB=`\w
+\catcode"09AC=12 \lccode"09AC=`\w
+\catcode"09AD=12 \lccode"09AD=`\w
+\catcode"0386=12 \lccode"0386=`\a
+\catcode"0388=12 \lccode"0388=`\e
+\catcode"0389=12 \lccode"0389=`\h
+\catcode"038A=12 \lccode"038A=`\i
+\catcode"038C=12 \lccode"038C=`\o
+\catcode"038E=12 \lccode"038E=`\u
+\catcode"038F=12 \lccode"038F=`\w
+\catcode"0390=12 \lccode"0390="03CA
+\catcode"0391=12 \lccode"0391=`\a
+\catcode"0392=12 \lccode"0392=`\b
+\catcode"0393=12 \lccode"0393=`\g
+\catcode"0394=12 \lccode"0394=`\d
+\catcode"0395=12 \lccode"0395=`\e
+\catcode"0396=12 \lccode"0396=`\z
+\catcode"0397=12 \lccode"0397=`\h
+\catcode"0398=12 \lccode"0398=`\j
+\catcode"0399=12 \lccode"0399=`\i
+\catcode"039A=12 \lccode"039A=`\k
+\catcode"039B=12 \lccode"039B=`\l
+\catcode"039C=12 \lccode"039C=`\m
+\catcode"039D=12 \lccode"039D=`\n
+\catcode"039E=12 \lccode"039E=`\x
+\catcode"039F=12 \lccode"039F=`\o
+\catcode"03A0=12 \lccode"03A0=`\p
+\catcode"03A1=12 \lccode"03A1=`\r
+\catcode"03A3=12 \lccode"03A3=`\s
+\catcode"03A4=12 \lccode"03A4=`\t
+\catcode"03A5=12 \lccode"03A5=`\u
+\catcode"03A6=12 \lccode"03A6=`\f
+\catcode"03A7=12 \lccode"03A7=`\q
+\catcode"03A8=12 \lccode"03A8=`\y
+\catcode"03A9=12 \lccode"03A9=`\w
+\catcode"03AA=12 \lccode"03AA="03CA
+\catcode"03AB=12 \lccode"03AB="03CB
+\catcode"03AC=12 \lccode"03AC=`\a
+\catcode"03AD=12 \lccode"03AD=`\e
+\catcode"03AE=12 \lccode"03AE=`\h
+\catcode"03AF=12 \lccode"03AF=`\i
+\catcode"03B0=12 \lccode"03B0="03CB
+\catcode"03B1=12 \lccode"03B1=`\a
+\catcode"03B2=12 \lccode"03B2=`\b
+\catcode"03B3=12 \lccode"03B3=`\g
+\catcode"03B4=12 \lccode"03B4=`\d
+\catcode"03B5=12 \lccode"03B5=`\e
+\catcode"03B6=12 \lccode"03B6=`\z
+\catcode"03B7=12 \lccode"03B7=`\h
+\catcode"03B8=12 \lccode"03B8=`\j
+\catcode"03B9=12 \lccode"03B9=`\i
+\catcode"03BA=12 \lccode"03BA=`\k
+\catcode"03BB=12 \lccode"03BB=`\l
+\catcode"03BC=12 \lccode"03BC=`\m
+\catcode"03BD=12 \lccode"03BD=`\n
+\catcode"03BE=12 \lccode"03BE=`\x
+\catcode"03BF=12 \lccode"03BF=`\o
+\catcode"03C0=12 \lccode"03C0=`\p
+\catcode"03C1=12 \lccode"03C1=`\r
+\catcode"03C2=12 \lccode"03C2=`\c
+\catcode"03C3=12 \lccode"03C3=`\s
+\catcode"03C4=12 \lccode"03C4=`\t
+\catcode"03C5=12 \lccode"03C5=`\u
+\catcode"03C6=12 \lccode"03C6=`\f
+\catcode"03C7=12 \lccode"03C7=`\q
+\catcode"03C8=12 \lccode"03C8=`\y
+\catcode"03C9=12 \lccode"03C9=`\w
+\catcode"03CA=12 \lccode"03CA="03CA
+\catcode"03CB=12 \lccode"03CB="03CB
+\catcode"03CC=12 \lccode"03CC=`\o
+\catcode"03CD=12 \lccode"03CD=`\u
+\catcode"03CE=12 \lccode"03CE=`\w
+\catcode"03D0=12 \lccode"03D0=`\b
+\catcode"03D1=12 \lccode"03D1=`\j
+\catcode"03D2=12 \lccode"03D2=`\u
+\catcode"03D3=12 \lccode"03D3=`\u
+\catcode"03D4=12 \lccode"03D4="03CB
+\catcode"03D5=12 \lccode"03D5=`\f
+\catcode"03D6=12 \lccode"03D6=`\p
+\catcode"03DC=12 \lccode"03DC=`\v
+\catcode"03DD=12 \lccode"03DD=`\v
+\catcode"03F0=12 \lccode"03F0=`\k
+\catcode"03F1=12 \lccode"03F1=`\r
+\catcode"03F2=12 \lccode"03F2=`\s
+\catcode"03F3=12 \lccode"03F3=`\i
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/omega/omega.tex b/Master/texmf-dist/tex/plain/omega/omega.tex
new file mode 100644
index 00000000000..4ac77eef1b5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/omega/omega.tex
@@ -0,0 +1,3 @@
+\ocp\OCPebcdic=ebcdic
+\DefaultInputTranslation ebcdic \OCPebcdic
+\input plain.tex
diff --git a/Master/texmf-dist/tex/plain/patch/patch.tex b/Master/texmf-dist/tex/plain/patch/patch.tex
new file mode 100644
index 00000000000..8f62a280654
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/patch/patch.tex
@@ -0,0 +1,128 @@
+%%
+%% This is file `patch.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% patch.doc
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% You are *not* allowed to modify this file.
+%%
+%% You are *not* allowed to distribute this file.
+%% For distribution of the original source see
+%% the terms for copying and modification in the file patch.doc.
+%%
+%% patch.doc/patch.tex
+%% (c) 1994 by David Kastrup (dak@pool.informatik.rwth-aachen.de)
+%% Version 0.91
+%% Redistribution of patch.doc is allowed, provided it is not modified
+%% in any way. The stripped version patch.tex may only be distributed
+%% as part of other packages, and only if the unstripped version
+%% is distributed on demand.
+\begingroup
+\catcode`@=11
+\toks@={\endgroup}
+\outer\def\endpatch{\the\toks@}
+\def\futuredef#1#2{\begingroup
+ \aftergroup\afterassignment \aftergroup#2%
+ \aftergroup\def \aftergroup#1%
+ \futurelet\next\^^90}
+\let\bgroup\relax \let\egroup\relax
+\def\^^90{%
+ \ifcat\noexpand\next{%
+ \^^91{\aftergroup{\iffalse}\fi}%
+ \else\ifcat\noexpand\next}%
+ \^^91{\iffalse{\fi\aftergroup}}%
+ \else\ifcat\noexpand\next\space
+ \^^91{\expandafter\aftergroup\space}%
+ \else\ifcat\noexpand\next##
+ \^^91{\aftergroup########}%
+ \else
+ \let\next\^^93%
+ \fi\fi\fi\fi\next}
+\def\^^91#1{\def\next@{\endgroup{#1}}%
+ \let\next\^^92}
+\def\^^92{\afterassignment\next@ \let\next= }
+\long\def\^^93#1{\endgroup{\aftergroup#1}}
+\def\@ndp@tch{\aftergroup\@ndp@tch}
+\def\gpatch{\ifnum\globaldefs<\z@
+ \expandafter\patch
+ \else
+ \expandafter\^^98%
+ \fi}
+\long\def\^^98#1#2#{\def\next{}%
+ \long\edef\next##1\@ndp@tch%
+ {\ifx\next\empty\else\long\fi\gdef##1}%
+ \^^a0#1{#2}}
+\def\patch#1#2#{\def\next{}%
+ \long\edef\next##1\@ndp@tch
+ {\toks@ \noexpand\expandafter {\noexpand\the \toks@
+ \ifx\next\empty\else\long\fi \def##1}}%
+ \^^a0#1{#2}}
+\long\def\^^a0#1#2#3#4{\begingroup
+ \def\^^e0{#1}%
+ \toks@{\endgroup\next#1#2}%
+ \begingroup
+ \aftergroup\the\aftergroup\toks@
+ \toks@{#4}%
+ \expandafter\p@check\expandafter{#1#3}\@ndp@tch}
+\toksdef\p@match=\@ne
+\toksdef\p@replace=\tw@
+\def\p@check{\edef\next@{\the\toks@}%
+ \ifx\empty\next@ \expandafter\endgroup
+ \else \expandafter\^^a1\fi}
+\def\^^a1{\iffalse{\fi
+ \expandafter\futuredef \expandafter\p@first
+ \expandafter\^^a2\the\toks@}}
+\def\^^a2#1#{\p@match{#1}\afterassignment\^^a3\p@replace}
+\def\^^a3{\afterassignment\^^a4\toks@\expandafter{\iffalse}\fi}
+\def\^^a4{\futuredef\next\^^a5}
+\def\^^a5{\ifx\next\p@first
+ \begingroup \toks@{}\expandafter\^^a6%
+ \else\ifx\next\@ndp@tch \^^e1\fi
+ \next \expandafter \^^a4%
+ \fi}
+\def\^^e1{\let\^^a4\endgroup
+ \newlinechar`\^^J
+ \toks@\expandafter{\next@}%
+ \errorcontextlines\m@ne
+ \errhelp{I am ignoring inapplicable patches. Go on.}%
+ \errmessage{When trying to patch
+ \expandafter\string\^^e0, which was defined as^^J%
+ \expandafter\meaning\^^e0^^J%
+ the following patches remained inapplicable:^^J%
+ \the\toks@^^J%
+ I will show the results of the succeeded patches as soon^^J%
+ as I can without further comment, so do not be surprised.}%
+ \aftergroup\show \expandafter\aftergroup\^^e0%
+}
+\def\^^a6{\edef\next{\the\p@match}%
+ \ifx\next\empty \endgroup\expandafter\^^ac%
+ \else \expandafter\^^a7\fi}
+\def\^^a7{\iffalse{\fi
+ \expandafter\futuredef\expandafter\next@
+ \expandafter\^^a8\the\p@match}}
+\def\^^a8{\afterassignment\^^a9\p@match\expandafter{\iffalse}\fi}
+\def\^^a9{\futuredef\next\^^aa}
+\def\^^aa{\ifx\next@\next
+ \expandafter\^^ab%
+ \else \aftergroup\p@first
+ \aftergroup\^^a4%
+ \the\toks@\next\expandafter\endgroup\fi}
+\def\^^ab{\toks@\expandafter\expandafter\expandafter{%
+ \expandafter\the\expandafter\toks@\next}%
+ \^^a6}
+\def\^^ac{\expandafter\^^ad\the\p@replace\@ndp@tch}
+\def\^^ad{\futuredef\next\^^ae}
+\def\^^ae{\ifx\next\@ndp@tch
+ \expandafter\p@check
+ \else
+ \next \expandafter\^^ad%
+ \fi}
+\endinput
+%%
+%% End of file `patch.tex'.
diff --git a/Master/texmf-dist/tex/plain/pdcmac/ma55doc.tex b/Master/texmf-dist/tex/plain/pdcmac/ma55doc.tex
new file mode 100644
index 00000000000..c22a178174f
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/ma55doc.tex
@@ -0,0 +1,70 @@
+% ma55doc.tex 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "ma55doc.tex",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% abstract = "Top-level macro file for documents set in
+%%% Malvern 55, 56 and 75 fonts.
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "maamac.tex, pdcfmt2.tex, pdcfsel.tex,
+%%% pdchyex.tex, pdcimth.tex, pdcmigr.tex,
+%%% pdcoput5.tex, pdcdoc.def",
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\input pdcimth
+\input pdcmigr
+\input pdcfmt2
+\input pdchyex
+\input pdcoput5
+\input pdcfsel
+\input maamac
+\def\footnotetextmark#1{{\rmsy#1}}
+\def\footnotenotemark#1{{\rmsy#1}}
+\autoloadfonts
+\def\STYheadingT{%
+ \m{rm}{ma75a}\@\m{mi}{cmmi10}\@\m{sy}{cmsy10}%
+ \f{it}{ma76a}\@\f{tt}{cmtt10}\@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+}
+\fontset{subheading}\STYheadingT{12}{14pt}{subheading}{subheading}
+\fontset{heading}\STYheadingT{18}{20pt}{subheading}{subheading}
+\newfam\rmsyfam
+\def\STYbodyT{%
+ \m{rm}{ma55a}\f{rmsy}{ma55b}\m{it}{ma56a}%
+ \m{bf}{ma75a}\f{bi}{ma76a}%
+ \m{mi}{cmmi}\m{sy}{cmsy}%
+ \@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+ \f{tt}{cmtt}\f{tb}{cmsltt}%
+}
+\font\bodymi=cmmi10 scaled \magstep2
+\font\bodysy=cmsy10 scaled \magstep2
+\font\notemi=cmmi10 scaled \magstep1
+\font\notesy=cmsy10 scaled \magstep1
+\font\smallmi=cmmi10 scaled \magstephalf
+\font\smallsy=cmsy10 scaled \magstephalf
+\fontset{tiny}\STYbodyT{7}{9pt}{tiny}{tiny}
+\fontset{small}\STYbodyT{9}{11pt}{tiny}{tiny}
+\fontset{note}\STYbodyT{10}{12pt}{tiny}{tiny}
+\fontset{body}\STYbodyT{12}{14pt}{small}{tiny}
+\def\everyloadfont#1#2{\fontdimen3#1=0pt \fontdimen4#1=0pt}
+\rightskip=0pt plus 2em \tolerance=1000
+\bodyfonts
+{\tt \hyphenchar\font=-1 }
+\def\PS{\csc{PostScript}}
+\def\La{L\negthinspace\flushtop{\char"C1 }}
+\input pdcdoc.def
+\inputifexists{ma55doc.cfg}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/ma55lft.tex b/Master/texmf-dist/tex/plain/pdcmac/ma55lft.tex
new file mode 100644
index 00000000000..0b72a6e99a4
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/ma55lft.tex
@@ -0,0 +1,70 @@
+% ma55lft.tex 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "ma55lft.tex",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% abstract = "Top-level macro file for documents set in
+%%% Malvern 55, 56 and 75 fonts.
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "maamac.tex, pdcfmt2.tex, pdcfsel.tex,
+%%% pdchyex.tex, pdcimth.tex, pdcmigr.tex,
+%%% pdcoput5.tex, pdclft.def",
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\input pdcimth
+\input pdcmigr
+\input pdcfmt2
+\input pdchyex
+\input pdcoput5
+\input pdcfsel
+\input maamac
+\def\footnotetextmark#1{{\rmsy#1}}
+\def\footnotenotemark#1{{\rmsy#1}}
+\autoloadfonts
+\def\STYheadingT{%
+ \m{rm}{ma75a}\@\m{mi}{cmmi10}\@\m{sy}{cmsy10}%
+ \f{it}{ma76a}\@\f{tt}{cmtt10}\@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+}
+\fontset{subheading}\STYheadingT{12}{14pt}{subheading}{subheading}
+\fontset{heading}\STYheadingT{18}{20pt}{subheading}{subheading}
+\newfam\rmsyfam
+\def\STYbodyT{%
+ \m{rm}{ma55a}\f{rmsy}{ma55b}\m{it}{ma56a}%
+ \m{bf}{ma75a}\f{bi}{ma76a}%
+ \m{mi}{cmmi}\m{sy}{cmsy}%
+ \@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+ \f{tt}{cmtt}\f{tb}{cmsltt}%
+}
+\font\bodymi=cmmi10 scaled \magstep2
+\font\bodysy=cmsy10 scaled \magstep2
+\font\notemi=cmmi10 scaled \magstep1
+\font\notesy=cmsy10 scaled \magstep1
+\font\smallmi=cmmi10 scaled \magstephalf
+\font\smallsy=cmsy10 scaled \magstephalf
+\fontset{tiny}\STYbodyT{7}{9pt}{tiny}{tiny}
+\fontset{small}\STYbodyT{9}{11pt}{tiny}{tiny}
+\fontset{note}\STYbodyT{10}{12pt}{tiny}{tiny}
+\fontset{body}\STYbodyT{12}{14pt}{small}{tiny}
+\def\everyloadfont#1#2{\fontdimen3#1=0pt \fontdimen4#1=0pt}
+\rightskip=0pt plus 2em \tolerance=1000
+\bodyfonts
+{\tt \hyphenchar\font=-1 }
+\def\PS{\csc{PostScript}}
+\def\La{L\negthinspace\flushtop{\char"C1 }}
+\input pdclft.def
+\inputifexists{ma55lft.cfg}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/maamac.tex b/Master/texmf-dist/tex/plain/pdcmac/maamac.tex
new file mode 100644
index 00000000000..c3c2835eb10
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/maamac.tex
@@ -0,0 +1,193 @@
+% maamac.tex 1.5 1995/04/06 -- Malvern A Macros
+
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/maamac.tex",
+%%% version = "1.5",
+%%% date = "1995/04/06",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "Macros for using the Malvern-A font coding
+%%% scheme in plain TeX documents.
+%%% This file was generated by running
+%%% plain TeX on maamac.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute maamac.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
+
+\message{1.5 <pdc 1995/04/06>}
+
+\dimendef\dimena0 \dimendef\dimenb2
+\toksdef\toksa0
+\countdef\counta255
+\ifx\countb\UNDEFINED \csname newcount\endcsname\countb \fi
+\ifx\countc\UNDEFINED \csname newcount\endcsname\countc \fi
+\def\code#1{%
+ \ifcat#1a%
+ `#1
+ \else\ifcat#1+%
+ `#1
+ \else\ifx\char#1
+ \else
+ #1%
+ \fi\fi\fi
+}
+\let\then=\iffalse
+\def\ifcap#1\then{\expandafter\ifcapnum\code{#1}\then}
+\def\ifcapnum#1\then{\ifnum\lccode#1=#1}
+\def\iflower#1\then{\expandafter\iflowernum\code{#1}\then}
+\def\iflowernum#1\then{\ifnum\uccode#1=#1}
+\def\fontslant#1{\expandafter\stripPT\the\fontdimen1#1}
+\begingroup \uccode`2=`p \uccode`3=`t \uppercase{\toksa{\endgroup
+ \def\\#123{#1}
+}} \the\toksa
+\let\stripPT=\\
+\def\putxy#1#2#3{\leavevmode\rlap{\hskip#1\raise#2\hbox{#3}}}
+\def\putmarkxy#1#2#3#4{{%
+ \setbox0=\hbox{#4}#2\relax
+ \dimenb#1\wd0 \advance\dimenb\fontslant\font\dimena
+ \leavevmode
+ \putxy{\dimenb}{\dimena}{\hbox to 0pt{\hss\char#3\hss}}%
+ \box0
+}}
+\def\putmarky{\putmarkxy{0.5}}
+\def\typeImark#1#2{{%
+ \setbox2=\hbox{#2}%
+ \ifdim \ht2=1ex
+ \accent#1\relax#2%
+ \else
+ \counta\code{#2}%
+ \ifnum\counta>64 \ifnum\counta<96
+ \advance\counta 128
+ \fi \fi
+ \putmarky{\dimena0.5\ht0 \advance\dimena-0.5ex }
+ {#1}{\char\counta}%
+ \fi
+}}
+\chardef\dotglyph22 \def\.{\typeImark\dotglyph}
+\chardef\twodotsglyph23 \def\"{\typeImark\twodotsglyph}
+\chardef\macronglyph150 \def\={\typeImark\macronglyph}
+\chardef\longmacronglyph151
+ \def\longmacronmark{\typeImark\longmacronglyph}
+\def\typeIImark#1#2{{%
+ \counta#1\relax \countb\code{#2}%
+ \ifcap{#2}\then
+ \ifnum \counta<128 \advance\counta 128 \fi
+ \ifnum \countb<128 \advance\countb 128 \fi
+ \fi
+ \accent\counta \char\countb
+}}
+\chardef\acuteglyph8 \def\'{\typeIImark\acuteglyph}
+\chardef\graveglyph9 \def\`{\typeIImark\graveglyph}
+\chardef\circumglyph10 \def\^{\typeIImark\circumglyph}
+\chardef\tildeglyph11 \def\~{\typeIImark\tildeglyph}
+\chardef\ringglyph12 \def\ringmark{\typeIImark\ringglyph}
+\chardef\caronglyph13 \def\v{\typeIImark\caronglyph}
+\chardef\breveglyph14 \def\u{\typeIImark\breveglyph}
+\chardef\hungarglyph15 \def\H{\typeIImark\hungarglyph}
+\def\cedillalike#1#2#3{{%
+ \setbox0=\hbox{#3}%
+ \ifdim\ht0>1ex
+ \ooalign{\hidewidth\char#2\relax\hidewidth\crcr\unhbox0 }%
+ \else
+ \accent#1 #3%
+ \fi
+}}
+\chardef\cedillaglyph6 \chardef\Cedillaglyph134
+\def\c{\cedillalike\cedillaglyph\Cedillaglyph}
+\chardef\ogonekglyph7 \chardef\Ogonekglyph135
+\def\k{\cedillalike\ogonekglyph\Ogonekglyph}
+\chardef\TH"00 \chardef\th"10 \chardef\DH"04 \chardef\dh"14
+\chardef\A "01 \chardef\a "11 \chardef\E "05 \chardef\e "15
+\chardef\NG"02 \chardef\ng"12 \chardef\L "03 \chardef\l "13
+\chardef\AE"5E \chardef\ae"7E \chardef\OE"5F \chardef\oe"7F
+\chardef\O "5C \chardef\o "7C
+\chardef\vd"9C \chardef\vt"9D \chardef\h "9E \chardef\vl"9F
+\chardef\ss"18 \chardef\i "19 \chardef\j "1A
+\def\aa{\ringmark a} \def\AA{\ringmark A}
+\chardef\orda"98 \chardef\ordo"99 \def\No{N\ordo} \def\no{n\ordo}
+\chardef\csuperior"98 \def\Mc{M\csuperior}
+\chardef\trademark "22
+\chardef\copyright "FB \chardef\registered"FD
+\chardef\careof "9A \chardef\Box "A0
+\chardef\cents "A2 \chardef\pounds "A3
+\chardef\currency "A4 \chardef\permille "A5
+\chardef\yen "A8 \chardef\florin "A9
+\chardef\dag "AA \chardef\ddag "AB
+\chardef\gbdecimal "AE \chardef\minus "AF
+\chardef\S "BA \chardef\P "BB
+\chardef\degrees "C0
+\chardef\lguillemet"BC \chardef\rguillemet"BE
+\mathcode`\,"602C \mathcode`\-"20AF
+\mathcode`\."002E \mathcode`\/"002F
+\mathchardef\bullet "2020 \mathchardef\times "20A6
+\mathchardef\backslash"005B \mathchardef\setminus "205B
+\mathchardef\cdot "20AE \mathchardef\cdotp "60AE
+\def\langle{\delimiter"40DB30A } \delcode`\<"0DB30A
+\def\rangle{\delimiter"50DD30B } \delcode`\>"0DD30B
+\def\lbrace{\delimiter"407B308 } \let\{\lbrace \mathcode`\{"407B
+\def\rbrace{\delimiter"507D309 } \let\}\rbrace \mathcode`\}"407D
+\uccode\th\TH \lccode\TH\th \uccode\TH\TH \lccode\th\th
+\uccode\a \A \lccode\A \a \uccode\A \A \lccode\a \a
+\uccode\ng\NG \lccode\NG\ng \uccode\NG\NG \lccode\ng\ng
+\uccode\l \L \lccode\L \l \uccode\L \L \lccode\l \l
+\uccode\dh\DH \lccode\DH\dh \uccode\DH\DH \lccode\dh\dh
+\uccode\e \E \lccode\E \e \uccode\E \E \lccode\e \e
+\uccode\o \O \lccode\O \o \uccode\O \O \lccode\o \o
+\uccode\ae\AE \lccode\AE\ae \uccode\AE\AE \lccode\ae\ae
+\uccode\oe\OE \lccode\OE\oe \uccode\OE\OE \lccode\oe\oe
+\uccode\i`I \uccode\j`J \lccode\i\i \lccode\j\j
+\uccode\csuperior`C
+\def\changecodes#1#2#3#4{%
+ \counta#2\relax \countb#3\relax \countc#4\relax
+ \loop
+ \ifnum\countc>0
+ #1\counta\countb
+ \advance\counta 1
+ \advance\countb 1
+ \advance\countc-1
+ \repeat
+}
+\changecodes\uccode{"E1}{`A}{26}
+\changecodes\uccode{"C1}{"C1}{26}
+\changecodes\lccode{"E1}{"E1}{26}
+\changecodes\lccode{"C1}{`a}{26}
+\changecodes\lccode{"B0}{`0}{10}
+\changecodes\uccode{`0}{"B0}{10}
+\changecodes\mathcode{`a}{"7461}{26}
+\changecodes\mathcode{`A}{"7441}{26}
+\changecodes\mathcode{`0}{"70B0}{10}
+\def\capspecials#1#2{%
+ \chardef\TH"#10 \chardef\A "#11 \chardef\NG"#12
+ \chardef\L "#13 \chardef\DH"#14 \chardef\E "#15
+ \chardef\O "#2C \chardef\AE"#2E \chardef\OE"#2F
+}
+\def\lcspecials#1#2#3{%
+ \chardef\th"#10 \chardef\a "#11 \chardef\ng"#12
+ \chardef\l "#13 \chardef\dh"#14 \chardef\e "#15
+ \chardef\o "#2C \chardef\ae"#2E \chardef\oe"#2F
+ \def\ss{\char"#23 \char"#23 }\chardef\i"#39 \chardef\j"#3A
+}
+\def\sc#1{{%
+ \changecodes\lccode{`A}{"E1}{26}\capspecials9F\lowercase{#1}%
+}}
+\def\mc#1{{%
+ \changecodes\lccode{`A}{"C1}{26}\capspecials8D\lowercase{#1}%
+}}
+\def\csc#1{{%
+ \changecodes\uccode{`a}{"E1}{26}\lcspecials9FE\uppercase{#1}%
+}}
+\def\allcaps#1{{%
+ \lcspecials054\uppercase{#1}%
+}}
+\def\alllc#1{{%
+ \capspecials17\lowercase{#1}%
+}}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/magrmac.tex b/Master/texmf-dist/tex/plain/pdcmac/magrmac.tex
new file mode 100644
index 00000000000..eebec3bdfac
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/magrmac.tex
@@ -0,0 +1,67 @@
+% magrmac.tex 1.3 1995/03/29 -- Malvern Greek Macros
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/magrmac.tex",
+%%% version = "1.3",
+%%% date = "1995/03/29",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, Malvern, Greek, macros",
+%%% supported = "Maybe",
+%%% abstract = "Macros for using Malvern Greek fonts.
+%%% This file was generated by running
+%%% plain TeX on magrmac.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute magrmac.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%%}
+
+\message{1.3 1995/03/29}
+
+\newtoks\everygreek
+\chardef\other=12
+\def\begingreek{%
+ \begingroup
+ \catcode`\~\other \catcode`\|\other \catcode`\"\other
+ \the\everygreek
+}
+\let\endgreek=\endgroup
+\toksdef\toksa=0
+\begingroup \let\\=\toksa \catcode`\s=13 \catcode`\S=13 \\={\endgroup
+ \def\tmp{%
+ \catcode`\s\active \chardef s`c
+ \catcode`\S\active \chardef S`C
+ }
+}\the\\
+\let\grlunatesigma=\tmp
+\chardef\ninetytwo=92
+\begingroup \uccode`\~=`f \uppercase{\toksa={\endgroup
+ \def\grvarphi{%
+ \catcode`\f\active \chardef~\ninetytwo
+ }
+}} \the\toksa
+\begingroup \catcode`\<=\active \catcode`\>=\active
+ \catcode`\'=\active \catcode`\`=\active \toksa={\endgroup
+ \def\monotoniko{%
+ \catcode\lq\'\active \chardef'3
+ \catcode\lq\`\active \chardef`3
+ \catcode\lq\~\active \chardef~3
+ \catcode\lq\<\active \let<\relax
+ \catcode\lq\>\active \let>\relax
+ \catcode\lq\|\active \let|\relax
+ }
+}\the\toksa
+\def\plutoniko{%
+ \catcode`\'\other \catcode`\`\other \catcode`\~\other
+ \catcode`\<\other \catcode`\>\other \catcode`\|\other
+}
+\def\grdelimiter#1{
+ \begingroup \uccode`~=`#1 \uppercase{\toksa={\endgroup
+ \def~{\begingreek \let~\endgreek}
+ }} \the\toksa
+}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcadobe.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcadobe.tex
new file mode 100644
index 00000000000..909cec7dfd2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcadobe.tex
@@ -0,0 +1,300 @@
+% pdcadobe.tex 1.3 1995/03/30 -- macros for Adobe style fonts
+
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdcadobe.tex",
+%%% version = "1.3",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "Formatting macros for Adobe-style fonts.
+%%% This file was generated by running
+%%% plain TeX on pdcadobe.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcadobe.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
+
+\message{1.3 <pdc 1995/03/30>}
+
+\chardef\quotesingle="0D
+\chardef\quotedouble="22
+\chardef\_="5F
+\chardef\asciicircum="80
+\chardef\asciitilde="81
+\chardef\cents="A2
+\chardef\pounds="A3
+\chardef\fractionslash="A4
+\chardef\yen="A5
+\chardef\florin="A6
+\chardef\S="A7
+\chardef\currency="A8
+\chardef\lguillemet="AB
+\chardef\dag="B2
+\chardef\ddag="B3
+\chardef\gbdecimal="B4
+\chardef\P="B6
+\chardef\bullet="B7
+\chardef\quotesinglebase="B8
+\chardef\quotedblbase="B9
+\chardef\rguillemet="BB
+\chardef\ellipsis="BC \def\dots{\ellipsis\thinspace}
+\chardef\permille="BD
+\chardef\orda="E3
+\chardef\ordo="EB
+\mathchardef\backslash="205C
+\edef\lbrace{\delimiter"407B308} \let\{=\lbrace \mathcode`\{="407B
+\mathcode`\|="707C \mathchardef\mid="307C
+\edef\rbrace{\delimiter"507D309} \let\}=\rbrace \mathcode`\}="507D
+\mathchardef\sim="3081
+\mathchardef\cdot="20B4
+\mathchardef\bullet="20B7
+\mathchardef\ldots="60BC
+\chardef\graveglyph="12
+\chardef\acuteglyph="13
+\chardef\hookglyph="14
+\chardef\breveglyph="15
+\chardef\macronglyph="16
+\chardef\ringglyph="17
+\chardef\cedillaglyph="18
+\chardef\circumglyph="5E
+\chardef\tildeglyph="7E
+\chardef\twodotsglyph="7F
+\chardef\dotglyph="C7
+\chardef\hungarianglyph="CD
+\chardef\ogonekglyph="CE
+\chardef\AA="C8 \chardef\aa="98
+\chardef\L="E8 \chardef\l="F8
+\def\.#1{\accent\dotglyph #1}
+\def\H#1{\accent\hungarianglyph"CD #1}
+\ifx\asyfam\UNDEFINED
+ \newfam\asyfam
+\fi
+\edef\\{\ifcase\asyfam 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or
+ 8\or 9\or A\or B\or C\or D\or E\or F\fi
+}
+\mathchardef\forall="0\\22
+\mathchardef\exists="0\\24
+\mathchardef\suchthat="0\\27
+\mathcode`*="2\\2A
+\mathcode`,="6\\2C
+\mathcode`-="2\\2D
+\mathcode`.="2\\2E
+\mathcode`/="2\\2F
+\mathcode`<="3\\3C
+\mathcode`>="3\\3E
+\mathchardef\cong="3\\40
+\mathchardef\Alpha="0\\41
+\mathchardef\Beta="0\\42
+\mathchardef\Chi="0\\43
+\mathchardef\Delta="0\\44
+\mathchardef\Epsilon="0\\45
+\mathchardef\Phi="0\\46
+\mathchardef\Gamma="0\\47
+\mathchardef\Eta="0\\48
+\mathchardef\Iota="0\\49
+\mathchardef\vartheta="0\\4A
+\mathchardef\Kappa="0\\4B
+\mathchardef\Lambda="0\\4C
+\mathchardef\Mu="0\\4D
+\mathchardef\Ni="0\\4E
+\mathchardef\Omicron="0\\4F
+\mathchardef\Pi="0\\50
+\mathchardef\Theta="0\\51
+\mathchardef\Rho="0\\52
+\mathchardef\Sigma="0\\53
+\mathchardef\Tau="0\\54
+\mathchardef\varUpsilon="0\\55
+\mathchardef\varsigma="0\\56
+\mathchardef\Omega="0\\57
+\mathchardef\Xi="0\\58
+\mathchardef\Psi="0\\59
+\mathchardef\Zeta="0\\5A
+\mathchardef\therefore="3\\5C
+\mathchardef\perp="3\\5E
+\mathchardef\alpha="0\\61
+\mathchardef\beta="0\\62
+\mathchardef\chi="0\\63
+\mathchardef\delta="0\\64
+\mathchardef\epsilon="0\\65
+\mathchardef\phi="0\\66
+\mathchardef\gamma="0\\67
+\mathchardef\eta="0\\68
+\mathchardef\iota="0\\69
+\mathchardef\varphi="0\\6A
+\mathchardef\kappa="0\\6B
+\mathchardef\lambda="0\\6C
+\mathchardef\mu="0\\6D
+\mathchardef\ni="0\\6E
+\mathchardef\omicron="0\\6F
+\mathchardef\pi="0\\70
+\mathchardef\theta="0\\71
+\mathchardef\rho="0\\72
+\mathchardef\sigma="0\\73
+\mathchardef\tau="0\\74
+\mathchardef\upsilon="0\\75
+\mathchardef\varpi="0\\76
+\mathchardef\omega="0\\77
+\mathchardef\xi="0\\78
+\mathchardef\psi="0\\79
+\mathchardef\zeta="0\\7A
+\mathchardef\sim="3\\7E
+\mathchardef\Upsilon="0\\A1
+\mathcode`'="0\\A2 \mathchardef\minutes="0\\A2
+\mathchardef\leq="3\\A3 \let\le=\leq
+\mathchardef\fractionslash="0\\A4
+\mathchardef\infinity="0\\A5
+\mathchardef\clubsuit="0\\A7
+\mathchardef\diamondsuit="0\\A8
+\mathchardef\heartsuit="0\\A9
+\mathchardef\spadesuit="0\\AA
+\mathchardef\leftrightarrow="3\\AB
+\mathchardef\leftarrow="3\\AC \let\gets=\rightarrow
+\mathchardef\uparrow="3\\AD
+\mathchardef\rightarrow="3\\AE \let\to=\rightarrow
+\mathchardef\downarrow="3\\AF
+\mathchardef\degrees="0\\B0
+\mathchardef\pm="2\\B1
+\mathchardef\seconds="0\\B2
+\mathchardef\geq="3\\B3 \let\ge=\geq
+\mathchardef\times="2\\B4
+\mathchardef\propto="3\\B5
+\mathchardef\partial="0\\B6
+\mathchardef\div="2\\B8
+\mathchardef\neq="3\\B9 \let\ne=\neq
+\mathchardef\equiv="3\\BA
+\mathchardef\approx="3\\BB
+\mathchardef\ldots="6\\BC
+\edef\arrowvert{\delimiter"0\\BD33C }
+\mathchardef\relbar"3\\BE
+\edef\crlf{\noexpand\mathexbox\\BF}
+\mathchardef\aleph="0\\C0
+\mathchardef\Im="0\\C1
+\mathchardef\Re="0\\C2
+\mathchardef\wp="0\\C3
+\mathchardef\otimes="2\\C4
+\mathchardef\oplus="2\\C5
+\mathchardef\emptyset="0\\C6
+\mathchardef\cap="2\\C7
+\mathchardef\cup="2\\C8
+\mathchardef\supset="3\\C9
+\mathchardef\supseteq="3\\CA
+\mathchardef\nsubset="3\\CB
+\mathchardef\subset="3\\CC
+\mathchardef\subseteq="3\\CD
+\mathchardef\in="3\\CE
+\mathchardef\nin="3\\CF
+\mathchardef\angle="0\\D0
+\mathchardef\nabla="0\\D1
+\edef\registered{\noexpand\mathhexbox\\D2}
+\edef\copyright{\noexpand\mathhexbox\\D3}
+\edef\trademark{\noexpand\mathhexbox\\D4}
+\mathchardef\prod="1\\D5
+\edef\sqrt{\radical"\\D6370 }
+\mathchardef\cdot="2\\D7
+\mathchardef\neg="0\\D8 \let\lnot=\neg
+\mathchardef\wedge="3\\D9 \let\land=\wedge
+\mathchardef\vee="3\\DA \let\lor=\vee
+\mathchardef\Leftrightarrow="3\\DB
+\mathchardef\Leftarrow="3\\DC
+\mathchardef\Uparrow="3\\DD
+\mathchardef\Rightarrow="3\\DE
+\mathchardef\Downarrow="3\\DF
+\mathchardef\diamond="3\\E0
+\edef\langle{\delimiter"4\\E130A }
+\mathchardef\sum="1\\E5
+\edef\rangle{\delimiter"5\\F130B }
+\catcode`^^a0\active \let^^a0=~
+\catcode`^^a1\active \def^^a1{!`}
+\catcode`^^a4\active \let^^a4=\currency
+\catcode`^^a8\active \let^^a8=\twodotsglyph
+\catcode`^^a9\active \let^^a9=\copyright
+\catcode`^^aa\active \let^^aa=\orda
+\catcode`^^ac\active \let^^ac=\lnot
+\catcode`^^ad\active \let^^ad=\-
+\catcode`^^ae\active \let^^ae=\registered
+\catcode`^^af\active \let^^af=\macronglyph
+\catcode`^^b0\active \let^^b0=\degrees
+\catcode`^^b1\active \let^^b1=\pm
+\catcode`^^b2\active \def^^b2{^2}
+\catcode`^^b3\active \def^^b3{^3}
+\catcode`^^b4\active \let^^b4=\acuteglyph
+\catcode`^^b5\active \let^^b5=\mu
+\catcode`^^b7\active \let^^b7=\gbdecimal
+\catcode`^^b8\active \let^^b8=\cedillaglyph
+\catcode`^^b9\active \def^^b9{^1}
+\catcode`^^ba\active \let^^ba=\ordo
+\catcode`^^bc\active \def^^bc{\frac14}
+\catcode`^^bd\active \def^^bd{\frac12}
+\catcode`^^be\active \def^^be{\frac34}
+\catcode`^^bf\active \def^^bf{?`}
+\catcode`^^d7\active \let^^d7=\times
+\catcode`^^f7\active \let^^f7=\div
+\catcode`^^c0\active \def^^c0{\graveglyph A}
+\catcode`^^c1\active \def^^c1{\acuteglyph A}
+\catcode`^^c2\active \def^^c2{\circumglyph A}
+\catcode`^^c3\active \def^^c3{\tildeglyph A}
+\catcode`^^c4\active \def^^c4{\twodotsglyph A}
+\catcode`^^c5\active \def^^c5{\ringglyph A}
+\catcode`^^c6\active \let^^c6=\AE
+\catcode`^^c7\active \def^^c7{\cedillaglyph C}
+\catcode`^^c8\active \def^^c8{\graveglyph E}
+\catcode`^^c9\active \def^^c9{\acuteglyph E}
+\catcode`^^ca\active \def^^ca{\circumglyph E}
+\catcode`^^cb\active \def^^cb{\twodotsglyph E}
+\catcode`^^cc\active \def^^cc{\graveglyph I}
+\catcode`^^cd\active \def^^cd{\acuteglyph I}
+\catcode`^^ce\active \def^^ce{\circumglyph I}
+\catcode`^^cf\active \def^^cf{\twodotsglyph I}
+\catcode`^^d1\active \def^^d1{\tildeglyph N}
+\catcode`^^d2\active \def^^d2{\graveglyph O}
+\catcode`^^d3\active \def^^d3{\acuteglyph O}
+\catcode`^^d4\active \def^^d4{\circumglyph O}
+\catcode`^^d5\active \def^^d5{\tildeglyph O}
+\catcode`^^d6\active \def^^d6{\twodotsglyph O}
+\catcode`^^d8\active \let^^d8=\O
+\catcode`^^d9\active \def^^d9{\graveglyph U}
+\catcode`^^da\active \def^^da{\acuteglyph U}
+\catcode`^^db\active \def^^db{\circumglyph U}
+\catcode`^^dc\active \def^^dc{\twodotsglyph U}
+\catcode`^^dd\active \def^^dd{\acuteglyph Y}
+\catcode`^^df\active \let^^df=\ss
+\catcode`^^e0\active \def^^e0{\acuteglyph a}
+\catcode`^^e1\active \def^^e1{\graveglyph a}
+\catcode`^^e2\active \def^^e2{\circumglyph a}
+\catcode`^^e3\active \def^^e3{\tildeglyph a}
+\catcode`^^e4\active \def^^e4{\twodotsglyph a}
+\catcode`^^e5\active \def^^e5{\ringglyph a}
+\catcode`^^e6\active \let^^e6=\ae
+\catcode`^^e7\active \def^^e7{\cedillaglyph c}
+\catcode`^^e8\active \def^^e8{\graveglyph e}
+\catcode`^^e9\active \def^^e9{\acuteglyph e}
+\catcode`^^ea\active \def^^ea{\circumglyph e}
+\catcode`^^eb\active \def^^eb{\twodotsglyph e}
+\catcode`^^ec\active \def^^ec{\graveglyph i}
+\catcode`^^ed\active \def^^ed{\acuteglyph i}
+\catcode`^^ee\active \def^^ee{\circumglyph i}
+\catcode`^^ef\active \def^^ef{\twodotsglyph i}
+\catcode`^^f1\active \def^^f1{\tildeglyph n}
+\catcode`^^f2\active \def^^f2{\graveglyph o}
+\catcode`^^f3\active \def^^f3{\acuteglyph o}
+\catcode`^^f4\active \def^^f4{\circumglyph o}
+\catcode`^^f5\active \def^^f5{\tildeglyph o}
+\catcode`^^f6\active \def^^f6{\twodotsglyph o}
+\catcode`^^f8\active \let^^f8=\o
+\catcode`^^f9\active \def^^f9{\graveglyph u}
+\catcode`^^fa\active \def^^fa{\acuteglyph u}
+\catcode`^^fb\active \def^^fb{\circumglyph u}
+\catcode`^^fc\active \def^^fc{\twodotsglyph u}
+\catcode`^^fd\active \def^^fd{\acuteglyph y}
+\catcode`^^ff\active \def^^ff{\twodotsglyph y}
+\def\ttminus{--{}}
+\let\ttcircum=\asciicircum
+\let\tttilde=\asciitilde
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdccmdoc.tex b/Master/texmf-dist/tex/plain/pdcmac/pdccmdoc.tex
new file mode 100644
index 00000000000..843a8c96361
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdccmdoc.tex
@@ -0,0 +1,64 @@
+% pdccmdoc.tex 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "pdccmdoc.tex",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% abstract = "Top-level macro file for documents set in
+%%% Computer Modern fonts.
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "pdcfmt2.tex, pdcfsel.tex, pdchyex.tex,
+%%% pdcimth.tex, pdccmsub.tex, pdcmigr.tex,
+%%% pdcoput5.tex, pdcdoc.def",
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\input pdcimth
+\input pdcmigr
+\input pdcfmt2
+\input pdchyex
+\input pdcoput5
+\input pdcfsel
+\input pdccmsub
+\autoloadfonts
+\def\STYheadingT{%
+ \m{rm}{cmss}\m{mi}{cmmi}\m{sy}{cmsy}%
+ \f{it}{cmssi}\f{tt}{cmtt}\f{mf}{logo}\f{mfi}{logosl}%
+}
+\font\headingrm=cmss17 \font\headingit=cmssi17
+\fontset{subheading}\STYheadingT{10 scaled 1200}{14pt}
+ {small}{tiny}
+\fontset{heading}\STYheadingT{10 scaled 1728}{20pt}
+ {subheading}{small}
+\def\STYbodyT{\m{rm}{cmr}\m{it}{cmti}%
+ \m{bf}{cmbx}\@\f{bi}{cmbxti10}%
+ \m{mi}{cmmi}\m{sy}{cmsy}%
+ \@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+ \f{tt}{cmtt}\@\f{ttb}{cmsltt10}%
+}
+\font\tinytt=cmtt8 at 7pt
+\font\bodysy=cmsy10 at 12pt
+\fontset{tiny}\STYbodyT{7}{9pt}{tiny}{tiny}
+\fontset{small}\STYbodyT{9}{11pt}{tiny}{tiny}
+\fontset{note}\STYbodyT{10}{12pt}{tiny}{tiny}
+\fontset{body}\STYbodyT{12}{14pt}{small}{tiny}
+\def\everyloadfont#1#2{\fontdimen3#1=0pt \fontdimen4#1=0pt}
+\rightskip=0pt plus 2em \tolerance=1000
+\bodyfonts
+{\tt \hyphenchar\font=-1 }
+\def\PS{PostScript}
+\input pdcdoc.def
+\inputifexists{pdccmdoc.cfg}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdccmlft.tex b/Master/texmf-dist/tex/plain/pdcmac/pdccmlft.tex
new file mode 100644
index 00000000000..905b7d04627
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdccmlft.tex
@@ -0,0 +1,64 @@
+% pdccmlft.tex 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "pdccmlft.tex",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% abstract = "Top-level macro file for documents set in
+%%% Computer Modern fonts.
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "pdcfmt2.tex, pdcfsel.tex, pdchyex.tex,
+%%% pdcimth.tex, pdccmsub.tex, pdcmigr.tex,
+%%% pdcoput5.tex, pdclft.def",
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\input pdcimth
+\input pdcmigr
+\input pdcfmt2
+\input pdchyex
+\input pdcoput5
+\input pdcfsel
+\input pdccmsub
+\autoloadfonts
+\def\STYheadingT{%
+ \m{rm}{cmss}\m{mi}{cmmi}\m{sy}{cmsy}%
+ \f{it}{cmssi}\f{tt}{cmtt}\f{mf}{logo}\f{mfi}{logosl}%
+}
+\font\headingrm=cmss17 \font\headingit=cmssi17
+\fontset{subheading}\STYheadingT{10 scaled 1200}{14pt}
+ {small}{tiny}
+\fontset{heading}\STYheadingT{10 scaled 1728}{20pt}
+ {subheading}{small}
+\def\STYbodyT{\m{rm}{cmr}\m{it}{cmti}%
+ \m{bf}{cmbx}\@\f{bi}{cmbxti10}%
+ \m{mi}{cmmi}\m{sy}{cmsy}%
+ \@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+ \f{tt}{cmtt}\@\f{ttb}{cmsltt10}%
+}
+\font\tinytt=cmtt8 at 7pt
+\font\bodysy=cmsy10 at 12pt
+\fontset{tiny}\STYbodyT{7}{9pt}{tiny}{tiny}
+\fontset{small}\STYbodyT{9}{11pt}{tiny}{tiny}
+\fontset{note}\STYbodyT{10}{12pt}{tiny}{tiny}
+\fontset{body}\STYbodyT{12}{14pt}{small}{tiny}
+\def\everyloadfont#1#2{\fontdimen3#1=0pt \fontdimen4#1=0pt}
+\rightskip=0pt plus 2em \tolerance=1000
+\bodyfonts
+{\tt \hyphenchar\font=-1 }
+\def\PS{PostScript}
+\input pdclft.def
+\inputifexists{pdccmlft.cfg}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdccmsub.tex b/Master/texmf-dist/tex/plain/pdcmac/pdccmsub.tex
new file mode 100644
index 00000000000..a2712d5c445
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdccmsub.tex
@@ -0,0 +1,70 @@
+% pdcmisc.dtx 1.4 1995/03/30 -- CM subs for PS glyphs
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdcmigr.tex",
+%%% version = "1.4",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "Macros for simulating some PostScript characters
+%%% using glyphs form the Computer Modern family.
+%%% This file was generated by running
+%%% plain TeX on pdcmisc.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcmisc.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
+
+\message{1.4 1995/03/30}
+
+\dimendef\dimena=0
+\def\pounds{{\it\char36 }}
+\def\yen{{%
+ \ooalign{%
+ \hfil\raise0.25ex\hbox{$\scriptscriptstyle=$}\hfil\crcr
+ \hfil Y\hfil
+ }%
+}}
+\def\cents{\leavevmode\hbox{\rm\rlap/c}}
+\def\currency{{%
+ \ooalign{%
+ \hskip-0.1em
+ \raise0.2ex \hbox{\mathhexbox202}\hskip-0.1em\crcr
+ \hfil \raise0.2ex \hbox{\mathhexbox20E}\hfil
+ }%
+}}
+\def\florin{{\it f\/}}
+\def\circledletter#1#2{{%
+ \ooalign{%
+ \hfil\kern#1\raise0.00ex \hbox{$\scriptstyle\rm #2$}\hfil\crcr
+ \mathhexbox20D%
+ }%
+}}
+\def\registered{\circledletter{0.02em}R}
+\def\copyright{\circledletter{-0.045em}C}
+\def\lguillemet{%
+ \leavevmode
+ \raise0.5ex \hbox{$\scriptscriptstyle\langle\!\langle$}%
+}
+\def\rguillemet{%
+ \leavevmode
+ \raise0.5ex \hbox{$\scriptscriptstyle\rangle\!\rangle$}%
+}
+\def\permille{{%
+ \setbox0 \hbox{/}%
+ \flushtop{$\scriptstyle0\!$}/%
+ \lower\dp0 \hbox{$\!\scriptstyle00$}%
+}}
+\def\gbdecimal{\mathhexbox201}
+\def\orda{\flushtop{\the\scriptfont\ifnum\fam>0 \fam\else 0\fi \b a}}
+\def\ordo{\flushtop{\the\scriptfont\ifnum\fam>0 \fam\else 0\fi \b o}}
+\let\sc=\relax
+\let\csc=\relax
+\let\mc=\relax
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcdoc.def b/Master/texmf-dist/tex/plain/pdcmac/pdcdoc.def
new file mode 100644
index 00000000000..0061070fd79
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcdoc.def
@@ -0,0 +1,232 @@
+% pdcdoc.def 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "pdcdoc.def",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% abstract = "Sectioning macros for style files.
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = ""
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\topmg=297mm \advance\topmg-11in \advance\topmg7mm
+\botmg=\topmg
+\advance\topmg\ht\strutbox \advance\topmg\headlineskip
+\ifdim \topmg<20mm \topmg=20mm \fi
+\ifdim \botmg<27mm \botmg=27mm \fi
+\setpaper{210mm}{297mm}
+\setnkgrid{4}{3}
+\colrule=0pt
+\leftmargin=\gridwd \advance\leftmargin\colsep
+\everypage={\ifdim\leftmargin>0pt
+ \setbox\leftbox=\hbox to \gridwd{}\fi}
+\everyfootnote={\notefonts}
+\everylinenum={\smallfonts}
+\everylinenum={\smallfonts}
+\everytag={\bf}
+\newcount\partno
+\def\thepartno{%
+ \ifcase\partno O\or I\or II\or III\or IV\or V\else
+ \expandafter\uppercase\expandafter{\romannumeral\partno}%
+ \fi
+}
+\newcount\secno \newcount\subsecno \newcount\subsubsecno
+\def\thesecno{%
+ \n{%
+ \number\secno
+ \ifnum\subsecno>0
+ .\number\subsecno
+ \ifnum\subsubsecno>0
+ .\number\subsubsecno
+ \fi
+ \fi
+ }%
+}
+\newtoks\majorheadline
+\expandafter\majorheadline
+ \expandafter{\expandafter\uppercase\expandafter{\jobname}}
+\def\part#1{%
+ \global\advance\partno1
+ \newpageheading{2\baselineskip}{\headingfonts}
+ {}{\thepartno.\quad#1}
+ \TOCwrite\TOCentrypart{\thepartno}{#1}
+}
+\newcount\sectionpenalty
+\def\sectionheading#1{
+ \par
+ \vskip 0pt plus 0.3\vsize
+ \penalty\sectionpenalty \sectionpenalty-200
+ \vskip 1\bigskipamount plus -0.3\vsize
+ \begingroup \advance\leftskip-\leftmargin
+ \parskip=0pt \parindent=0pt
+ \hyphenpenalty=10000 \exhyphenpenalty=500
+ \interlinepenalty=100
+ \headingfonts \nointerlineskip
+ \hbox{\hskip-\leftmargin
+ \vrule height 2pt depth 0pt width \leftmargin
+ \vrule height 2pt depth 0pt width \hsize}
+ #1\par
+ \nobreak\smallskip
+ \endgroup
+ \global\noindenttrue
+}
+\newtoks\sectiontoks
+\newif\ifsecno \secnotrue
+\def\section#1{
+ \ifsecno
+ \global\advance\secno1 \global\subsecno0 \global\subsubsecno0
+ \fi
+ \toks0={#1}
+ \mark{{\the\sectiontoks}{\ifsecno\S\thesecno\space\fi\the\toks0 }}
+ \edef\tmp{\ifsecno\noexpand\S\the\secno\space\fi}
+ \global\sectiontoks\expandafter{\tmp#1}
+ \sectionheading{\ifsecno\thesecno\quad\fi #1}
+ \mark{{\the\sectiontoks}{\the\sectiontoks}}
+ \TOCwrite\TOCentrysection{\ifsecno\thesecno\fi}{#1}
+}
+\def\subsec#1{%
+ \ifsecno \global\advance\subsecno1 \global\subsubsecno0 \fi
+ \doheading\medskipamount{\subheadingfonts}{}
+ {\ifsecno\thesecno\quad\fi#1}
+ \TOCwrite\TOCentrysubsec{\ifsecno\thesecno\fi}{#1}
+}
+\def\subsubsec#1{%
+ \ifsecno \global\advance\subsubsecno+1 \fi
+ \doheading\smallskipamount{\rm}{}{\ifsecno\thesecno\quad\fi#1}
+ \TOCwrite\TOCentrysubsubsec{\ifsecno\thesecno\fi}{#1}
+}
+\newif\ifnoheadline
+\newif\iftwosided
+\footline={%
+ \ifnoheadline
+ \global\noheadlinefalse
+ \hfil\bodyfonts\n\folio\hfil
+ \else
+ \hfil
+ \fi
+}
+\headline={%
+ \ifnoheadline
+ \hfil
+ \else
+ \bodyfonts
+ \iftwosided
+ \ifodd\pageno
+ \hfil
+ \expandafter\firstoftwo\botmark\quad
+ {\bf\n\folio}%
+ \else
+ {\bf\n\folio}\quad
+ \the\majorheadline
+ \hfil
+ \fi
+ \else
+ \the\majorheadline
+ \hfil
+ \expandafter\secondoftwo\topmark\quad
+ {\bf\n\folio}%
+ \fi
+ \fi
+}
+\def\firstoftwo#1#2{#1}
+\def\secondoftwo#1{}
+\newwrite\TOCfile
+\openout\TOCfile=\jobname.toc
+\def\TOCwrite#1#2#3{%
+ \begingroup\def\n{\string\n}
+ \def\tmp{#3}%
+ \edef\tmp{\string#1{#2}{\expandafter\TOCtrim\meaning\tmp}}
+ \write\TOCfile\expandafter{\tmp{\folio}}\endgroup
+}
+\def\TOCtrim#1:->{}
+\def\TOCentrypart#1#2#3{
+ \smallskip
+ \dimen0=\hsize \advance\dimen0\leftmargin
+ \moveleft\leftmargin\hbox to\dimen0{\strut\bf #1. #2\hfil}
+ \smallskip
+}
+\def\TOCentrysection#1#2#3{
+ \smallskip\noindent\llap{#1\kern1pc}%
+ {\bf \ignorespaces #2\quad\rm \n{#3}}\par
+}
+\def\TOCentrysubsec#1#2#3{
+ \ifvmode \noindent \else \quad \fi
+ {#1}~{\ignorespaces #2}
+}
+\def\TOCentrysubsubsec#1#2#3{}
+\def\frontmatter{
+ \write\TOCfile{\string\endinput}
+ \write\TOCfile{\folio}
+ \closeout\TOCfile
+ \vfill\supereject
+ \ifvoid\partialpage\else \null\vfill\eject \fi
+ \beginthe{frontmatter}
+ \pageno=-1 \secnofalse \noheadlinetrue
+ \def\TOCwrite##1##2##3{}
+}
+\def\endfrontmatter{
+ \section{Contents}
+ \input\jobname.toc
+ \vfill\supereject
+ \endthe{frontmatter}
+}
+\def\titlepage{
+ \vfill\eject
+ \beginthe{titlepage}
+ \noheadlinetrue
+ \def\splittitlepage{
+ \iftwosided \vfill\eject\null\vfill \else \vfill \fi
+ }
+}
+\def\endtitlepage{
+ \eject
+ \endthe{titlepage}
+}
+\def\abstract{
+ \smallskip
+ \beginthe{abstract}
+ \setbox\parbox\hbox to \gridwd{\subheadingfonts Abstract\hfil}
+ \noindenttrue \bodyfonts
+}
+\def\endabstract{
+ \smallskip
+ \endthe{abstract}
+}
+\def\pt{\,{\rm pt}}
+\def\mm{\,{\rm mm}}
+\def\MF{{\ifdim\fontdimen1\font>0pt \mfi \else \mf \fi META}\-%
+ {\ifdim\fontdimen1\font>0pt \mfi \else \mf \fi FONT}}
+\def\MSDOS{\leavevmode\hbox{MS-DOS}}
+\def\TeX{T\kern-0.1em\lower0.5ex\hbox{E}X\spacefactor1000 }
+\begingroup\catcode`\|=12 \toks0={\endgroup
+ \def\dfn#1{\ifx\index\UNDEFINED\else\index{#1|INDdfn}\fi{\bi #1}}
+} \the\toks0
+\declareactivechar\* \def*#1*{{\it#1\/}}
+\def\|{%
+ \relax\ifmmode
+ \Vert
+ \else
+ \begingroup
+ \ttb \setupverbatim
+ \catcode`\|=13 \let|\endgroup
+ \fi
+}
+\def\inputifexists#1{%
+ \openin15=#1
+ \ifeof15 \else \input #1 \fi
+ \closein15
+}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcfmt2.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcfmt2.tex
new file mode 100644
index 00000000000..a7d81d4b601
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcfmt2.tex
@@ -0,0 +1,398 @@
+% pdcfmt2.tex 2.4 1995/04/06 -- macros for formatting
+
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdcfmt2.tex",
+%%% version = "2.4",
+%%% date = "1995/04/06",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "Formatting macros for plain TeX documents.
+%%% This file was generated by running
+%%% plain TeX on pdcfmt2.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcfmt2.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
+
+\message{2.4 <pdc 1995/04/06>}
+
+\toksdef\toksa=0
+\chardef\other=12
+\def\declareactivechar#1{%
+ \toksa\expandafter{\verbatimplains\do#1}%
+ \edef\verbatimplains{\the\toksa }%
+ \catcode`#1\active
+}
+\def\verbatimplains{\do\\\do\{\do\}\do\_\do\$\do\#\do\&\do\%}
+\def\verbatimactives{\do\-\do\`\do\'\do\~\do\^\do\ }
+\chardef\other=12
+\newtoks\everyverbatim
+\bgroup \catcode`\-=13\catcode`\^=13 \catcode`\'=13 \catcode`\`=13 \toksa={\egroup
+ \def\setupverbatim{%
+ \frenchspacing
+ \spaceskip0pt \xspaceskip0pt % use spacing of font
+ \def\do##1{\catcode\lq##112 }\verbatimplains
+ \def\do##1{\catcode\lq##1\active }\verbatimactives
+ \let`\ttlq \let'\ttrq
+ \let~\tttilde \let^\ttcircum \let-\ttminus
+ \the\everyverbatim
+ }
+}\the\toksa
+\def\ttlq{\lower0.125ex \hbox{\char18 }}
+\def\ttrq{\lower0.125ex \hbox{\char19 }}
+\def\tttilde{\lower0.5ex \hbox{\char`\~ }}
+\def\ttcircum{\lower0.5ex \hbox{\char`\^ }}
+\def\ttminus{-}
+\def\defverbatim#1{%
+ \ifcat\noexpand#1\noexpand~\else \declareactivechar#1 \fi
+ \begingroup \uccode`\~=`#1 \uppercase{\toksa={\endgroup
+ \def~{%
+ \leavevmode
+ \begingroup \tt \setupverbatim
+ \catcode`#1\active \let~\endgroup
+ }%
+ }}\the\toksa
+}
+\defverbatim\|
+\newtoks\everylisting
+\def\listfile#1{
+ \medskip
+ \begingroup
+ \parindent=0pt \parskip=0pt
+ \def\par{\null\endgraf}\obeylines
+ \setupverbatim \maketabstab
+ \tt \the\everylisting
+ \input#1
+ \endgroup
+ \medskip\noindent\ignorespaces
+}
+{\catcode`\^^I=\active
+ \gdef\maketabstab{\catcode`\^^I\active \def^^I{\hskip 4em}}
+}
+\newif\ifnoindent
+\newbox\parbox
+\newdimen\parboxsep \parboxsep=1pc
+\everypar={%
+ \ifvoid\parbox
+ \ifnoindent {\setbox0=\lastbox}\global\noindentfalse \fi
+ \else
+ {\setbox0=\lastbox}\global\noindentfalse
+ \dp\parbox=0pt
+ \hbox to 0pt{\hss \box\parbox \hskip\parboxsep}%
+ \fi
+}
+\def\beginthe#1{%
+ \begingroup\def\PDCFMTblockname{#1}%
+}
+\def\endthe#1{%
+ \def\tmp{#1}%
+ \ifx\tmp\PDCFMTblockname
+ \endgroup
+ \else
+ \errmessage{You should have said \string\endthe{\blockname}}%
+ \fi
+}
+\def\PDCFMTendenv#1{
+ \smallskip
+ \endthe{#1}
+ \global\noindenttrue
+}
+\newdimen\envindent \envindent=1pc
+\def\PDCFMTindent{%
+ \ifdim\parindent>0pt
+ \parindent
+ \else
+ \envindent
+ \fi
+}
+\newtoks\everyquotation
+\def\quotation{
+ \smallskip
+ \beginthe{quotation}
+ \advance\leftskip\PDCFMTindent
+ \noindenttrue
+ \the\everyquotation
+}
+\def\endquotation{\PDCFMTendenv{quotation}}
+\newtoks\everytextlist
+\newif\ifnumbered
+\newcount\textlistdepth \textlistdepth=-1
+\newcount\textlistcount
+\def\textlist{%
+ \par
+ \beginthe{textlist}
+ \advance\textlistdepth 1
+ \textlistcount0
+ \def\\{
+ \smallskip\noindent
+ \advance\textlistcount1
+ \llap{%
+ \ifnumbered
+ \numberfordepth\textlistdepth\textlistcount
+ \else
+ \bulletfordepth\textlistdepth
+ \fi\enspace}%
+ \ignorespaces
+ }
+ \advance\leftskip\PDCFMTindent
+ \the\everytextlist
+}
+\def\endtextlist{\PDCFMTendenv{textlist}}
+\newtoks\everybullets
+\def\bullets{\textlist \numberedfalse \the\everybullets}
+\let\endbullets=\endtextlist
+\def\bulletfordepth#1{%
+ \ifcase#1 $\bullet$\or --\or $\circ$\else $\cdot$\fi
+}
+\newtoks\everynumbered
+\def\numbered{\textlist \numberedtrue \the\everynumbered}
+\let\endnumbered=\endtextlist
+\def\numberfordepth#1#2{%
+ \ifcase#1 \n{\number#2}.\or (\n{\number#2})\or
+ ({\it\alphabetletter#2\/})\else (\romannumeral#2)\fi
+}
+\let\n\relax
+\def\alphabetletter#1{%
+ \ifcase#1 ??? \or a\or b\or c\or d\or e\else
+ \xxxalphabetletter#1\fi
+}
+\def\xxxalphabetletter#1{%
+ \ifcase#1 \or\or\or\or\or\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or
+ v\or w\or x\or y\or z\else !!!\fi
+}
+\newdimen\tagmaxwidth
+\newtoks\everytagged
+\def\tagged{%
+ \par
+ \beginthe{tagged}
+ \let\\\TAG
+ \ifdim\leftmargin=0pt
+ \tagmaxwidth\PDCFMTindent
+ \else
+ \tagmaxwidth\leftmargin
+ \fi
+ \the\everytagged
+ \ifdim\tagmaxwidth>\leftmargin
+ \leftskip\tagmaxwidth \advance\leftskip-\leftmargin
+ \fi
+}
+\def\endtagged{\PDCFMTendenv{tagged}}
+\newtoks\everytag
+\def\TAG{%
+ \smallskip\noindent
+ \setbox0=\hbox\bgroup % matched by \TAGfinish
+ \the\everytag\ignorespaces
+ \futurelet\next\TAGtest
+}
+\def\TAGtest{%
+ \ifcat\bgroup\noexpand\next
+ \let\next\TAGgotbrace
+ \else
+ \let\next\TAGnobrace
+ \fi \next
+}
+\def\TAGgotbrace{%
+ \bgroup\aftergroup\TAGfinish
+ \let\next
+}
+\def\TAGnobrace#1{%
+ #1\TAGfinish
+}
+\def\TAGfinish{%
+ \unskip\hskip0.5em\egroup % matches \TAG
+ \ifdim \wd0 < \tagmaxwidth
+ \wd0=\tagmaxwidth
+ \llap{\box0}%
+ \else
+ \hskip-\tagmaxwidth
+ \unhbox0 \unskip\quad
+ \fi
+ \ignorespaces
+}
+\newtoks\everylines
+\def\lines{
+ \par
+ \beginthe{lines}
+ \nobreak\smallskip\hrule\nobreak\smallskip
+ \obeylines
+ \parindent=0pt \parskip=0pt
+ \parfillskip=0pt plus 1fil
+ \the\everylines
+ \nobreak
+}
+\def\endlines{
+ \nobreak\smallskip
+ \endthe{lines}
+ \hrule\smallskip
+ \global\noindenttrue
+}
+\newcount\linenumber
+\newcount\PDCFMTcount
+\def\startlinenumbering{%
+ \global\linenumber=0 \global\PDCFMTcount=5
+ \everypar{\numberthisline}%
+}
+\def\continuelinenumbering{%
+ \everypar{\numberthisline}%
+}
+\newtoks\everylinenum \everylinenum{\the\scriptfont0 }
+\def\numberthisline{%
+ \strut
+ \global\advance\linenumber1 \global\advance\PDCFMTcount-1
+ \ifnum\PDCFMTcount>0 \else
+ \global\advance\PDCFMTcount 5
+ \rlap{\the\everylinenum \kern\hsize\kern1em \the\linenumber}%
+ \fi
+}%
+\def\linesskipped#1{%
+ \strut \hskip20pt $\vdots$ \hskip20pt
+ {\rm(\it #1 lines omitted\rm)}\par
+ \advance\linenumber#1\relax
+}
+\outer\def\display{\obeylines\startdisplay}
+\bgroup\obeylines \toksa={\egroup %
+ \def\startdisplay#1^^M{%
+ \catcode`\^^M=5 $$ #1 % matched by \enddisplay
+ \displayindent\PDCFMTindent %
+ \halign\bgroup##\hfil&&\quad##\hfil\cr %
+ } %
+}\the\toksa %
+\def\enddisplay{\crcr\egroup$$}
+\def\table{%
+ $$ % matching $$ is in \endtable
+ \displayindent\PDCFMTindent
+ \halign \bgroup
+}
+\let\endtable=\enddisplay
+\newtoks\everybnf
+\def\bnf{
+ \nobreak\smallskip
+ \beginthe{bnf}
+ \advance\leftskip2\parindent \parindent=-\parindent
+ \parskip0pt plus 1pt
+ \rightskip=1\rightskip plus 3em
+ \def\\{$\mid$}
+ \def\>{\unskip\enspace$::=$\enspace\ignorespaces}
+ \def|{`\begingroup\tt\setupverbatim\catcode`\|=13
+ \def|{\endgroup'}}
+ \def\{{$\lbrace$} \def\}{$\rbrace$}
+ \the\everybnf
+}
+\def\endbnf{
+ \smallskip
+ \endthe{bnf}
+ \global\noindenttrue
+}
+\def\<#1>{\leavevmode\hbox{$\langle${\it#1\/}$\rangle$}}
+\newdimen\leftmargin
+\newskip\headingtemp
+\def\doheading#1#2#3#4{
+ \ifdim\lastskip<#1\relax \removelastskip \vskip#1\relax \fi
+ \ifdim \leftmargin>0pt
+ \global\setbox\parbox=\vtop{%
+ \hsize=\leftmargin \advance\hsize-\parboxsep
+ \parindent=0pt
+ \leftskip=0pt \rightskip=0pt plus 3em
+ \hyphenpenalty=10000 \exhyphenpenalty=5000
+ \strut#2#4#3
+ }
+ \else
+ \begingroup
+ \parindent=0pt \parfillskip=0pt plus 1fil
+ \leftskip=0pt \rightskip=0pt plus0.25\hsize
+ \hyphenpenalty=10000 \exhyphenpenalty=5000
+ \strut#2#4#3
+ \global\headingtemp=\baselineskip
+ \par
+ \endgroup
+ \advance\headingtemp-\baselineskip
+ \ifdim\headingtemp>0pt \nobreak \vskip 1.0\headingtemp \fi
+ \smallskip
+ \noindenttrue
+ \fi
+}
+\def\newpageheading#1#2#3#4{
+ \vfill\supereject % ensure no insertions still floating
+ \null\vskip#1\relax
+ \moveleft\leftmargin\vbox{
+ \advance\hsize\leftmargin
+ \parindent=0pt \parfillskip=0pt plus 1fil
+ \leftskip=0pt \rightskip=0pt plus0.25\hsize
+ \hyphenpenalty=10000 \exhyphenpenalty=5000
+ #2\strut#4#3
+ \global\headingtemp=\baselineskip
+ \par
+ }
+ \advance\headingtemp-\baselineskip
+ \advance\headingtemp\smallskipamount
+ \vskip \headingtemp
+ \noindenttrue
+ \def\tmp{#4}
+ \message{*\expandafter\TOCtrim\meaning\tmp. }
+}
+\newcount\notecount
+\def\note{%
+ \global\advance\notecount+1
+ \footnote{\number\notecount}%
+}
+\newdimen\footnoteparindent
+\footnoteparindent=\parindent
+\newtoks\everyfootnote
+\catcode`\@=11
+\def\footnote#1{\let\@sf\empty
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ \footnotetextmark{#1}\@sf\vfootnote{#1}}
+\def\vfootnote#1{\insert\footins\bgroup % matched by \@foot
+ \interlinepenalty=\interfootnotelinepenalty
+ \parindent=\footnoteparindent
+ \leftskip=0pt
+ \the\everyfootnote
+ \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox
+ \floatingpenalty=20000
+ \indent\footstrut
+ \ifdim\parindent>1em
+ \llap{\footnotenotemark{#1}\enspace}%
+ \else
+ \footnotenotemark{#1}\enspace
+ \fi
+ \futurelet\next\fo@t
+}
+\def\@foot{\smallskip\egroup}
+\catcode`\@=12
+\def\footnotetextmark#1{$^{#1}$}
+\def\footnotenotemark#1{$^{#1}$}
+\def\today{\n{\number\day} \monthname\month\ \n{\number\year}}
+\def\monthname#1{%
+ \ifcase#1\or
+ January\or February\or March\or April\or
+ May\or June\or July\or August\or
+ September\or October\or November\or December%
+ \fi
+}
+\def\isodate{\n{\number\year}--\twodigits\month--\twodigits\day}
+\def\twodigits#1{%
+ \ifnum#1<10 0\fi \number#1%
+}
+\def\flushtop#1{%
+ \leavevmode
+ \begingroup
+ \setbox0\hbox{#1}\setbox2\hbox{X}%
+ \dimen0\ht2 \advance\dimen0-\ht0
+ \raise\dimen0\box0
+ \endgroup
+}
+\def\La{L\negthinspace\flushtop{a}}
+\def\LaTeX{\La\TeX}
+\def\superiorletter#1{%
+ \flushtop{\the\scriptfont\fam \vphantom{x}\smash{#1}}%
+}
+\def\Mc{M\flushtop{\the\scriptfont\fam \b{c}}}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcfsel.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcfsel.tex
new file mode 100644
index 00000000000..3b68aada1ab
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcfsel.tex
@@ -0,0 +1,110 @@
+% pdcfsel.tex -- macros for loading fonts -*-tex-*-
+
+%%%@TeX-document-file {
+%%% title = "PDC Font Selection Scheme",
+%%% filename = "$texmf/tex/plain/pdcmac/pdcfsel.tex",
+%%% version = "3.5",
+%%% Date = "1995/03/28",
+%%% creator = "pdcfsel.dtx",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,"
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% abstract = "A file of definitions for managing font
+%%% selection in documents based on the plain
+%%% TeX macros.
+%%% This file was generated by running
+%%% plain TeX on pdcfsel.dtx.",
+%%% dependencies = ""
+%%%}
+
+\message{3.5 <pdc 1995/03/28>}
+\def\expcs#1#2{\expandafter#1\csname#2\endcsname}
+\def\noexpcs{\expcs\noexpand}
+\newif\ifFSELautoload
+\def\autoloadfonts{
+ \FSELautoloadtrue
+ \csname newwrite\endcsname \FSELfile
+ \immediate\openout\FSELfile=\jobname.fnt
+}
+\def\loadfont#1#2{%
+ \ifx#1\relax
+ \FSELloadfont#1{#2}%
+ \else\ifx#1\UNDEFINED
+ \FSELloadfont#1{#2}%
+ \fi\fi
+}
+\def\FSELloadfont#1#2{%
+ \ifFSELautoload
+ \edef#1{%
+ \write\FSELfile{#2}%
+ \def\noexpand\subfont{\global\font\noexpand#1cmr10 }%
+ \global\font\noexpand#1#2\relax
+ \noexpand\everyloadfont\noexpand#1{#2}%
+ \noexpand#1%
+ }%
+ \else
+ \global\font#1#2\relax \everyloadfont#1{#2}%
+ \fi
+}
+\def\everyloadfont#1#2{}
+\def\xfontset#1#2#3{
+ \def\f##1##2{\expcs\loadfont{#1##1}{##2#3}}
+ \let\m=\f \let\M=\f
+ \def\@##1##2##3{\expcs\loadfont{#1##2}{##3 at #3pt }}
+ #2
+}
+% Set up a fontset -- define \#1fonts
+\def\fontset#1#2#3#4#5#6{%
+ \xfontset{#1}{#2}{#3}%
+ \expcs\edef{#1fonts}{%
+ \ifFSELautoload \noexpcs{#1mathsfonts}\fi
+ \noexpand\FSELnicknames{#1}{#5}{#6}\noexpand#2%
+ \noexpand\setbaselineskip{#4}%
+ \noexpand\rm
+ }%
+ \ifFSELautoload
+ \expcs\def{#1mathsfonts}{\FSELloadmaths{#1}{#5}{#6}#2}%
+ \fi
+}
+\def\FSELnicknames#1#2#3{%
+ \let\@\relax
+ \def\f##1##2{%
+ \expcs\edef{##1}{\noexpcs{#1##1}}%
+ }%
+ \def\m##1##2{%
+ \expcs\textfont{##1fam}\csname#1##1\endcsname
+ \expcs\scriptfont{##1fam}\csname#2##1\endcsname
+ \expcs\edef{##1}{%
+ \fam\expcs\noexpand{##1fam}%
+ \expcs\noexpand{#1##1}%
+ }%
+ }%
+ \def\M##1{%
+ \expcs\scriptscriptfont{##1fam}\csname#3##1\endcsname
+ \m{##1}%
+ }%
+}
+\def\setbaselineskip#1{%
+ \baselineskip#1\relax \normalbaselineskip\baselineskip
+ \jot0.25\baselineskip
+ \smallskipamount 0.25\baselineskip plus 0.083\baselineskip
+ minus 0.083\baselineskip
+ \medskipamount 0.5\baselineskip plus 0.167\baselineskip
+ minus 0.167\baselineskip
+ \bigskipamount 1\baselineskip plus 0.333\baselineskip
+ minus 0.333\baselineskip
+ \abovedisplayskip\medskipamount
+ \abovedisplayshortskip\abovedisplayskip
+ \advance\abovedisplayshortskip-1\abovedisplayskip
+ \belowdisplayskip\medskipamount
+ \belowdisplayshortskip\smallskipamount
+}
+\def\FSELloadmaths#1#2#3{%
+ \let\@\relax \def\f##1##2{}%
+ \def\m##1##2{\csname#1##1\endcsname \csname#2##1\endcsname}%
+ \def\M##1{\csname#3##1\endcsname \m{##1}}%
+ \global\expcs\let{#1mathsfonts}\relax
+}
+\chardef\rmfam=0 \chardef\mifam=1 \chardef\syfam=2
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdchyex.tex b/Master/texmf-dist/tex/plain/pdcmac/pdchyex.tex
new file mode 100644
index 00000000000..a83c61b95e6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdchyex.tex
@@ -0,0 +1,56 @@
+% pdchyex.tex 1.4 1995/03/30 -- some British hyphenations
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdchyex.tex",
+%%% version = "1.4",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "A non-exhaustive set of hyphenation exceptions
+%%% designed to make TeX with American hyphenation
+%%% tables produce some British hyphenations.
+%%% This file was generated by running
+%%% plain TeX on pdcmisc.dtx",
+%%% copyright = "Copyright (c) 1991, 1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcmisc.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%%}
+
+\message{1.4 <pdc 1995/03/30>}
+
+\lefthyphenmin=2 \righthyphenmin=3 \uchyph=0
+\hyphenation{
+ le-gend le-gends re-adjust re-appear exact-ing
+ abs-cess abs-cess-es abs-cessed ana-lyse ana-lyses
+ ana-lysis ana-lyses appear-ance appear-ances bio-graphy
+ celeb-rate celeb-rates celeb-rations cor-respond-ence
+ depend-ent des-pise des-pises dis-pised dimin-ish
+ dimin-ish-es dimin-ish-ed dis-connect dis-connect-ed
+ dis-connects forget-ting gener-ally haemor-rhage
+ illus-trate immedi-ate immedi-ately immport-ance
+ inexplic-able inter-pret inter-est inter-ested
+ inter-est-ing minis-ter origin-ally philo-sophy
+ philo-sophic philo-sophic-ally prim-ary prob-ably
+ semb-lance
+ calm-est debt-ors fea-ther fea-thers post-humous lamb-like
+ poingn-ant tough-ish ach-ing archaeo-logy etymo-logy
+ philo-logist psycho-logist tauto-logy zoolo-gist
+ art-iest cig-ar-ette bio-logy bio-chem-is-try boy-friend
+ brit-ain brit-ish com-ic com-ics cug-ley dogs-body
+ dor-mouse gai-man graph-ic immedie-ate immedi-ate
+ immedi-ately issue mckean mis-hap mis-haps news-letter
+ news-paper night-crawler origin-ally origin-ator phys-ique
+ phys-iques porn-o-graphy porn-o-graphic rec-om-mend-ation
+ Ser-geant ser-geant Sien-kie-wicz spon-tan-e-ous
+ spon-tan-e-ously stop-ped strip-ped teen-ager teen-agers
+ tem-per-men-tal Thatch-er-ism Thatch-er-ite under-ground
+ under-grounds var-i-able venge-ance warp-smith warp-smiths
+ whirl-pool
+}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcimth.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcimth.tex
new file mode 100644
index 00000000000..fc42eb8365a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcimth.tex
@@ -0,0 +1,39 @@
+% pdcimth.tex 1.4 1995/03/30 - maths letters in text italic
+\message{1.4 1995/03/30}
+
+\begingroup
+ \count0="7400 \count1=\count0
+ \advance\count0 by`A \advance\count1 by`a
+ \count2=`A \count3=`a \count4=26
+ \loop\ifnum\count4>0
+ \advance\count4 by-1
+ \global\mathcode\count2=\count0
+ \global\mathcode\count3=\count1
+ \advance\count0 by1 \advance\count1 by1
+ \advance\count2 by1 \advance\count3 by1
+ \repeat
+\endgroup
+\endinput
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdcimth.tex",
+%%% version = "1.4",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "A definition file for TeX, which redefines
+%%% mathcodes to use letters from the
+%%% text italic font instead of math italic.
+%%% This file was generated by running
+%%% plain TeX on pdcmisc.dtx",
+%%% copyright = "Copyright (c) 1991, 1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcmisc.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcl1maa.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcl1maa.tex
new file mode 100644
index 00000000000..17f690c48d5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcl1maa.tex
@@ -0,0 +1,117 @@
+% pdcl1maa.tex 1.3 1995/03/30 -- Latin-1 chars in Malvern-A
+
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdcl1maa.tex",
+%%% version = "1.3",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "ISO 8859-1 characters using Malvern-A fonts.
+%%% This file was generated by running
+%%% plain TeX on pdcl1maa.dtx",
+%%% copyright = "Copyright (c) 1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcl1maa.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
+
+\message{1.3 <pdc 1995/03/30>}
+
+\catcode`^^a0\active \let^^a0=~
+\catcode`^^a5\active \let^^a5=\yen
+\catcode`^^a7\active \let^^a7=\S
+\catcode`^^a8\active \let^^a8=\"
+\catcode`^^a9\active \let^^a9=\copyright
+\catcode`^^aa\active \let^^aa=\orda
+\catcode`^^ab\active \def^^ab{<<}
+\catcode`^^ac\active \let^^ac=\lnot
+\catcode`^^ad\active \let^^ad=\-
+\catcode`^^ae\active \let^^ae=\registered
+\catcode`^^af\active \let^^af=\=
+\catcode`^^b0\active \let^^b0=\degrees
+\catcode`^^b1\active \let^^b1=\pm
+\catcode`^^b2\active \def^^b2{^2}
+\catcode`^^b3\active \def^^b3{^3}
+\catcode`^^b4\active \let^^b4=\'
+\catcode`^^b5\active \let^^b5=\mu
+\catcode`^^b6\active \let^^b6=\P
+\catcode`^^b7\active \let^^b7=\gbdecimal
+\catcode`^^b8\active \let^^b8=\c
+\catcode`^^b9\active \def^^b9{^1}
+\catcode`^^ba\active \let^^ba=\ordo
+\catcode`^^bb\active \def^^bb{>>}
+\catcode`^^bc\active \def^^bc{\frac14}
+\catcode`^^bd\active \def^^bd{\frac12}
+\catcode`^^be\active \def^^be{\frac34}
+\catcode`^^bf\active \def^^bf{?`}
+\catcode`^^d7\active \let^^d7=\times
+\catcode`^^f7\active \let^^f7=\div
+\catcode`^^c0\active \def^^c0{\`A}
+\catcode`^^c1\active \def^^c1{\'A}
+\catcode`^^c2\active \def^^c2{\^A}
+\catcode`^^c3\active \def^^c3{\~A}
+\catcode`^^c4\active \def^^c4{\"A}
+\catcode`^^c5\active \let^^c5=\AA
+\catcode`^^c6\active \let^^c6=\AE
+\catcode`^^c7\active \def^^c7{\c C}
+\catcode`^^c8\active \def^^c8{\`E}
+\catcode`^^c9\active \def^^c9{\'E}
+\catcode`^^ca\active \def^^ca{\^E}
+\catcode`^^cb\active \def^^cb{\"E}
+\catcode`^^cc\active \def^^cc{\`I}
+\catcode`^^cd\active \def^^cd{\'I}
+\catcode`^^ce\active \def^^ce{\^I}
+\catcode`^^cf\active \def^^cf{\"I}
+\catcode`^^d0\active \let^^d0=\DH
+\catcode`^^d1\active \def^^d1{\~N}
+\catcode`^^d2\active \def^^d2{\`O}
+\catcode`^^d3\active \def^^d3{\'O}
+\catcode`^^d4\active \def^^d4{\^O}
+\catcode`^^d5\active \def^^d5{\~O}
+\catcode`^^d6\active \def^^d6{\"O}
+\catcode`^^d8\active \let^^d8=\O
+\catcode`^^d9\active \def^^d9{\`U}
+\catcode`^^da\active \def^^da{\'U}
+\catcode`^^db\active \def^^db{\^U}
+\catcode`^^dc\active \def^^dc{\"U}
+\catcode`^^dd\active \def^^dd{\'Y}
+\catcode`^^de\active \let^^de=\TH
+\catcode`^^df\active \let^^df=\ss
+\catcode`^^e0\active \def^^e0{\'a}
+\catcode`^^e1\active \def^^e1{\`a}
+\catcode`^^e2\active \def^^e2{\^a}
+\catcode`^^e3\active \def^^e3{\~a}
+\catcode`^^e4\active \def^^e4{\"a}
+\catcode`^^e5\active \let^^e5=\aa
+\catcode`^^e6\active \let^^e6=\ae
+\catcode`^^e7\active \def^^e7{\c c}
+\catcode`^^e8\active \def^^e8{\`e}
+\catcode`^^e9\active \def^^e9{\'e}
+\catcode`^^ea\active \def^^ea{\^e}
+\catcode`^^eb\active \def^^eb{\"e}
+\catcode`^^ec\active \def^^ec{\`i}
+\catcode`^^ed\active \def^^ed{\'i}
+\catcode`^^ee\active \def^^ee{\^i}
+\catcode`^^ef\active \def^^ef{\"i}
+\catcode`^^f0\active \let^^f0=\dh
+\catcode`^^f1\active \def^^f1{\~n}
+\catcode`^^f2\active \def^^f2{\`o}
+\catcode`^^f3\active \def^^f3{\'o}
+\catcode`^^f4\active \def^^f4{\^o}
+\catcode`^^f5\active \def^^f5{\~o}
+\catcode`^^f6\active \def^^f6{\"o}
+\catcode`^^f8\active \let^^f8=\o
+\catcode`^^f9\active \def^^f9{\`u}
+\catcode`^^fa\active \def^^fa{\'u}
+\catcode`^^fb\active \def^^fb{\^u}
+\catcode`^^fc\active \def^^fc{\"u}
+\catcode`^^fd\active \def^^fd{\'y}
+\catcode`^^fe\active \let^^fe=\th
+\catcode`^^ff\active \def^^ff{\"y}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdclft.def b/Master/texmf-dist/tex/plain/pdcmac/pdclft.def
new file mode 100644
index 00000000000..7ccd9172b55
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdclft.def
@@ -0,0 +1,106 @@
+% pdclft.def 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "pdclft.def",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% abstract = "Sectioning macros for style files.
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = ""
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\topmg=297mm \advance\topmg-11in \advance\topmg7mm
+\botmg=\topmg
+\advance\topmg\ht\strutbox \advance\topmg\headlineskip
+\ifdim \topmg<20mm \topmg=20mm \fi
+\ifdim \botmg<27mm \botmg=27mm \fi
+\setpaper{210mm}{297mm}
+\setnkgrid{4}{3}
+\colrule=0pt
+\leftmargin=\gridwd \advance\leftmargin\colsep
+\everypage={\ifdim\leftmargin>0pt
+ \setbox\leftbox=\hbox to \gridwd{}\fi}
+\everyfootnote={\notefonts}
+\everylinenum={\smallfonts}
+\everylinenum={\smallfonts}
+\everytag={\bf}
+\newcount\secno \newcount\subsecno
+\def\thesecno{%
+ \n{%
+ \number\secno
+ \ifnum\subsecno>0
+ .\number\subsecno
+ \fi
+ }%
+}
+\def\section{
+ \global\advance\secno1 \global\subsecno0
+ \doheading\medskipamount{\subheadingfonts\thesecno\enspace}{}
+}
+\def\subsec{
+ \global\advance\subsecno1
+ \doheading\smallskipamount{\bodyfonts\thesecno\enspace}{}
+}
+\newtoks\majorheadline
+\expandafter\majorheadline
+ \expandafter{\expandafter\uppercase\expandafter{\jobname}}
+\newif\ifnoheadline \newif\iftwosided
+\headline{%
+ \ifnoheadline
+ \hfil
+ \else\iftwosided
+ \ifodd\pageno
+ \hfil \the\majorheadline \quad{\bf\folio}%
+ \else
+ {\bf\folio}\quad \the\majorheadline\hfil
+ \fi
+ \else
+ \hfil \the\majorheadline \quad{\bf\folio}%
+ \fi\fi
+}
+\footline{%
+ \ifnoheadline
+ \global\noheadlinefalse
+ \hfil{\bf\folio}\hfil
+ \else
+ \hfil
+ \fi
+}
+\def\pt{\,{\rm pt}}
+\def\mm{\,{\rm mm}}
+\def\MF{{\ifdim\fontdimen1\font>0pt \mfi \else \mf \fi META}\-%
+ {\ifdim\fontdimen1\font>0pt \mfi \else \mf \fi FONT}}
+\def\MSDOS{\leavevmode\hbox{MS-DOS}}
+\def\TeX{T\kern-0.1em\lower0.5ex\hbox{E}X\spacefactor1000 }
+\begingroup\catcode`\|=12 \toks0={\endgroup
+ \def\dfn#1{\ifx\index\UNDEFINED\else\index{#1|INDdfn}\fi{\bi #1}}
+} \the\toks0
+\declareactivechar\* \def*#1*{{\it#1\/}}
+\def\|{%
+ \relax\ifmmode
+ \Vert
+ \else
+ \begingroup
+ \ttb \setupverbatim
+ \catcode`\|=13 \let|\endgroup
+ \fi
+}
+\def\inputifexists#1{%
+ \openin15=#1
+ \ifeof15 \else \input #1 \fi
+ \closein15
+}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcmigr.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcmigr.tex
new file mode 100644
index 00000000000..a01860a53e3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcmigr.tex
@@ -0,0 +1,37 @@
+% pdcmigr.tex 1.4 1995/03/30-- see end of file for more info
+\message{1.4 <pdc 1995/03/30>}
+\mathchardef\Gamma = "7100
+\mathchardef\Delta = "7101
+\mathchardef\Theta = "7102
+\mathchardef\Lambda = "7103
+\mathchardef\Xi = "7104
+\mathchardef\Pi = "7105
+\mathchardef\Sigma = "7106
+\mathchardef\Upsilon = "7107
+\mathchardef\Phi = "7108
+\mathchardef\Psi = "7109
+\mathchardef\Omega = "710A
+\endinput
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdcmigr.tex",
+%%% version = "1.4",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "A definition file for TeX, which redefines
+%%% \Gamma, ..., \Omega to use letters from the
+%%% maths italic font instead of the roman font.
+%%% This file was generated by running
+%%% plain TeX on pdcmisc.dtx",
+%%% copyright = "Copyright (c) 1991, 1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcmisc.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcoput5.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcoput5.tex
new file mode 100644
index 00000000000..30828ac9358
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcoput5.tex
@@ -0,0 +1,336 @@
+% pdcoput5.dtx 5.3 1995/04/06 -- output routine for zines
+
+%%%@TeX-definition-file {
+%%% filename = "$texmf/tex/plain/pdcmac/pdcoput5.tex",
+%%% version = "5.3",
+%%% date = "1995/04/06",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, macros",
+%%% supported = "Maybe",
+%%% abstract = "TeX output routine for magazine-style layout.
+%%% This file was generated by running
+%%% plain TeX on pdcoput5.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcoput5.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "",
+%%% }
+
+\message{5.3 <pdc 1995/04/06>}
+
+\countdef\counta=255
+\dimendef\dimena=0 \dimendef\dimenb=2
+\toksdef\toksa=0 \toksdef\toksb=2
+\long\def\qappend#1#2{%
+ \toksa={\\{#2}}\toksb=\expandafter{#1}%
+ \xdef#1{\the\toksb\the\toksa}%
+}
+\def\qremove#1#2{%
+ \expandafter\glopoff#2\glopoff#1#2%
+}
+\long\def\glopoff\\#1#2\glopoff#3#4{%
+ \gdef#3{#1}\gdef#4{#2}%
+}
+\newdimen\paperwd \newdimen\paperht
+\newdimen\bodywd \newdimen\bodyht
+\newdimen\gridwd \newdimen\gridht
+\newdimen\colwd \newdimen\colht
+\newdimen\topmg \topmg=20mm
+\newdimen\outermg \outermg=20mm
+\newdimen\innermg \innermg=20mm
+\newdimen\botmg \botmg=27mm
+\newskip\headlineskip \headlineskip=10mm
+\newskip\footlineskip \footlineskip=10mm
+\newdimen\caprule \caprule=0.4pt
+\newskip\capsep \capsep=5mm
+\newdimen\colrule \colrule=0.4pt
+\newdimen\colsep \colsep=5mm
+\newcount\ncols \ncols=1
+\newbox\partialpage
+\newbox\topbox \newbox\botbox
+\newbox\leftbox \newbox\rightbox
+\chardef\pagebox=255
+\let\pagelist\empty
+\let\collist\empty
+\newtoks\everypage
+\newtoks\everycaption
+\newdimen\toptotal \newdimen\bottotal
+\def\xxxmakecolumn#1#2#3#4#5{\xmakecolumn
+ {\ifdim#1=0pt\else \kern#1 \fi
+ \def\tmp{#2}\ifx\tmp\empty\else #2 \fi}
+ {#3}
+ {\def\tmp{#2}\ifx\tmp\empty\else #2 \fi
+ \ifdim#1=0pt\else \kern#1 \fi}%
+}
+\def\xmakecolumn#1#2#3{%
+ \vbox to \colht{
+ \dimena\colht
+ \setbox0=\vbox{#1}\advance\dimena-\ht0
+ \ifdim\ht0>0pt
+ \advance\dimena-\capsep
+ \advance\dimena\topskip \advance\dimena-\baselineskip
+ \fi
+ \setbox4=\vbox{\prevdepth=0pt #3}%
+ \advance\dimena-\ht4
+ \ifdim\ht4>0pt \advance\dimena-\capsep \fi
+ \ifvoid\footins\else
+ \advance\dimena-\ht\footins
+ \advance\dimena-\skip\footins
+ \fi
+ \ifvoid\topins\else
+ \advance\dimena-\ht\topins
+ \advance\dimena-\skip\topins
+ \fi
+ \splittopskip\topskip \splitmaxdepth\maxdepth
+ \setbox2=\vsplit#2to\dimena
+ \dimena=\ht0 \dimenb=\dp0 \unvbox0
+ \ifdim\dimena>0pt
+ \prevdepth=\dimenb
+ \capseparator
+ \dimena\baselineskip \advance\dimena-\topskip
+ \kern\dimena
+ \nointerlineskip
+ \fi
+ \ifvoid\topins\else \unvbox\topins \vskip\skip\topins \fi
+ \dimena\dp2
+ \ifvoid2 \vfil \else \unvbox2 \fi
+ \ifvoid\footins \else
+ \vskip\skip\footins \footnoterule
+ \dimena=\dp\footins \unvbox\footins
+ \fi
+ \ifdim\ht4>0pt
+ \prevdepth=\dimena
+ \capseparator \kern-\prevdepth \prevdepth0pt
+ \fi
+ \unvbox4
+ }%
+}
+\def\capseparator{%
+ \hbox to \colwd{%
+ \dimena=0.5ex \advance\dimena-0.5\caprule
+ \dimenb=\dimena \advance\dimenb\caprule
+ \vrule height \dimenb depth-\dimena width\colwd
+ }%
+}
+\def\topillustration#1#2{%
+ \setbox0=\vbox{#2}%
+ \dimena\ht0 \dimenb\dp0 \unvbox0
+ \counta\dimena \divide\counta\baselineskip
+ \advance\dimena-\counta\baselineskip \advance\dimena-\topskip
+ \kern-\dimena \prevdepth\dimenb
+ \hsize=\colwd \vskip-\parskip \noindent#1\par
+}
+\def\botillustration#1#2{%
+ \setbox0\vbox{\hsize=\colwd \vskip-\parskip \prevdepth=0pt #1}
+ \setbox2=\vbox{\prevdepth=\dp0 #2}%
+ \dimena=\ht0 \advance\dimena\dp0 \advance\dimena\ht2
+ \unvbox0
+ \counta\dimena \divide\counta\baselineskip
+ \advance\dimena-\counta\baselineskip
+ \advance\dimena-\baselineskip
+ \kern-\dimena
+ \unvbox2
+}
+\def\makebody#1{%
+ \hbox to \bodywd{%
+ \ifvoid\leftbox\else
+ \box\leftbox
+ \colseparator
+ \fi
+ \makecolumnfromcollist{#1}%
+ \counta\ncols
+ \loop \ifnum\counta>1
+ \colseparator
+ \makecolumnfromcollist{#1}%
+ \advance\counta -1
+ \repeat
+ \ifvoid\rightbox\else
+ \colseparator
+ \box\rightbox
+ \fi
+ }%
+}
+\def\colseparator{%
+ \hfil \vrule width\colrule depth0pt \hfil
+}
+\def\makecolumnfromcollist#1{%
+ \ifx\collist\empty
+ \xmakecolumn{}{#1}{}%
+ \else
+ \qremove\temp\collist
+ \temp
+ \fi
+}
+
+\def\makepage{%
+ \vbox{
+ \papersizespecial
+ \colht\bodyht \advance\colht-\ht\partialpage
+ \advance\colht-\ht\topbox \advance\colht-\ht\botbox
+ \advance\colht-\dp\partialpage
+ \advance\colht-\dp\topbox
+ \the\everypage
+ \makeheadline \nointerlineskip
+ \box\partialpage \nointerlineskip
+ \box\topbox \nointerlineskip
+ \ifx\pagelist\empty
+ \makebody\pagebox
+ \else
+ \qremove\temp\pagelist
+ \temp
+ \fi
+ \unvbox\botbox
+ \makefootline
+ }%
+}
+\def\makeheadline{
+ \vbox to 0pt {
+ \skip0=\topskip \advance\skip0-2\ht\strutbox
+ \advance\skip0-\headlineskip
+ \vskip\skip0
+ \hbox to \bodywd{\the\headline}
+ \vss
+ }
+}
+\def\makefootline{{
+ \baselineskip=\footlineskip
+ \hbox to \bodywd{\the\footline}
+}}
+\def\papersizespecial{{%
+ \dimena=0.001\paperwd \multiply\dimena\mag
+ \dimenb=0.001\paperht \multiply\dimenb\mag
+ \special{papersize=\the\dimena,\the\dimenb}%
+ \global\let\papersizespecial=\relax
+}}
+
+\def\pdcoutput{%
+ \ifodd\pageno \hoffset=\innermg \else \hoffset=\outermg \fi
+ \advance\hoffset-1 true in
+ \voffset=\topmg
+ \advance\voffset-1truein
+ \shipout\makepage \advancepageno
+ \ifnum\outputpenalty>-20000 \else \dosupereject \fi
+ \unvbox\pagebox
+}
+\output={\pdcoutput}
+\def\setpaper#1#2{%
+ \paperwd=#1\relax
+ \paperht=#2\relax
+ \OPUTcalcbodywdht
+ \OPUTcalctopskip
+}
+\def\OPUTcalcbodywdht{
+ \bodywd=\paperwd \advance\bodywd-\outermg \advance\bodywd-\innermg
+ \bodyht=\paperht \advance\bodyht-\topmg \advance\bodyht-\botmg
+ \OPUTcalctopskip
+}
+\def\setpaperA#1{
+ \ifcase#1
+ \setpaper{841mm}{1189mm}\or
+ \setpaper{594mm}{841mm}\or
+ \setpaper{420mm}{594mm}\or
+ \setpaper{297mm}{420mm}\or
+ \setpaper{210mm}{297mm}\or
+ \setpaper{148mm}{210mm}
+ \else
+ \errmessage{Dunno how big DIN A#1 paper is, sorry.}
+ \fi
+}
+\def\OPUTcalctopskip{
+ \setbox0=\hbox{AXbl()!gyJQ,}
+ \topskip=\ht0 \maxdepth=\dp0
+ \advance\bodyht-\topskip \divide\bodyht\baselineskip
+ \multiply\bodyht\baselineskip \advance\bodyht\topskip
+}
+\def\OPUTcalchsizevsize{
+ \hsize=\colwd
+ \vsize=\bodyht
+ \advance\vsize-\topskip \advance\vsize\baselineskip
+ \multiply\vsize\ncols
+ \advance\vsize-\baselineskip \advance\vsize\topskip
+}
+\def\setnkgrid#1#2{%
+ \gridwd=\bodywd
+ \advance\gridwd-#1\colsep \advance\gridwd\colsep \divide\gridwd#1
+ \colwd#2\gridwd \advance\colwd#2\colsep \advance\colwd-\colsep
+ \ncols#1 \divide\ncols#2
+ \gridht=\baselineskip
+ \capsep=\gridht
+ \OPUTcalchsizevsize
+}
+\def\setncolumns#1{%
+ \colwd=\bodywd
+ \advance\colwd-#1\colsep \advance\colwd\colsep \divide\colwd #1
+ \gridwd=\colwd
+ \ncols=#1
+ \OPUTcalchsizevsize
+}
+\setpaperA4
+\setncolumns1
+\newcount\RGDncols
+\def\rigidbalance#1#2#3#4{%
+ \setbox0=\box#1\relax \RGDncols=#2\relax \toksa={#4}%
+ \begingroup\splittopskip#3\relax \vbadness=10000
+ \valign{##\vfil\cr \RGDdosplits}%
+ \endgroup
+}
+\def\RGDdosplits{
+ \dimena\ht0 \divide\dimena\RGDncols
+ \advance\dimena\splittopskip
+ \setbox1=\vsplit0 to\dimena
+ \unvbox1
+ \global\advance\RGDncols-1
+ \cr
+ \ifnum\RGDncols>0
+ \noalign{\the\toksa}
+ \RGDdosplits
+ \fi
+}
+\def\makepartialpage#1#2{
+ \maybepagebreak
+ \begingroup
+ \output{%
+ \message{[partial}
+ \setbox0=\vbox{\unvbox\pagebox}%
+ \global\setbox\partialpage\vbox{
+ \box\partialpage \nointerlineskip
+ \the\everypage
+ \box\topbox \nointerlineskip
+ \hbox to \bodywd{%
+ \ifvoid\leftbox\else
+ \box\leftbox \colseparator
+ \fi
+ #1%
+ \ifvoid\rightbox\else
+ \colseparator \box\rightbox
+ \fi
+ }% \nointerlineskip
+ \box\botbox
+ #2
+ \dimena\baselineskip \advance\dimena-\topskip
+ \kern\dimena
+ }%
+ \message{page]}
+ }
+ \eject
+ \endgroup
+}
+\def\rigidbalancepartialpage{
+ \makepartialpage{\rigidbalance0\ncols\topskip\colseparator}
+}
+\def\maybepagebreak{%
+ \vskip0pt plus\baselineskip \penalty-100
+ \loop
+ \dimena\vsize \advance\dimena-\ncols\ht\partialpage
+ \advance\dimena-\ncols\ht\topbox
+ \advance\dimena-\ncols\ht\botbox
+ \ifdim\pagetotal>\dimena
+ \eject\null
+ \repeat
+}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcpsdoc.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcpsdoc.tex
new file mode 100644
index 00000000000..59d64508a5e
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcpsdoc.tex
@@ -0,0 +1,81 @@
+% pdcpsdoc.tex 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "pdcpsdoc.tex",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "pdcadobe.tex, pdcfmt2.tex, pdcfsel.tex,
+%%% pdchyex.tex, pdcimth.tex, pdcmigr.tex,
+%%% pdcoput5.tex, pdcdoc.def",
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\input pdcimth
+\input pdcmigr
+\input pdcfmt2
+\input pdchyex
+\input pdcoput5
+\input pdcfsel
+\input pdcadobe
+\autoloadfonts
+\def\KBcanonical#1{%
+ \expcs\ifx{KB#1}\relax #1\else\csname KB#1\endcsname \fi
+}
+\ifx\KBadobe\UNDEFINED \def\KBadobe#1{\KBcanonical{#10}} \fi
+\def\KBit#1{\KBcanonical{#1i}}
+\def\KBbi#1{\KBbf{#1i}}
+\def\KBbf#1{\expandafter\KBbfx#1.}
+\def\KBbfx#1#2#3#4#5.{\KBcanonical{#1#2#3b#5}}
+\def\KBpagbr{pagdr} \def\KBpagbri{pagdro}
+\def\KBpbkbr{pbkdr} \def\KBpbkbri{pbkdri}
+\def\KBpagri{pagro} \def\KBpagbi{pagbo}
+\def\KBphvri{phvro} \def\KBphvbi{phvbo}
+\def\KBpcrri{pcrro} \def\KBpcrbi{pcrbo}
+\def\KBphvrrni{phvron} \def\KBphvbrni{phvbon}
+\def\KBphvrrn0{phvr0n} \def\KBphvbrn0{phvb0n}
+\def\KBphvrrni0{phvro0n} \def\KBphvbrni0{phvbo0n}
+\ifx\headingfontname\UNDEFINED \def\headingfontname{phvr} \fi
+\ifx\headingttfontname\UNDEFINED \def\headingttfontname{pcrb} \fi
+\def\STYheadingT{%
+ \@\f{rm}{\headingfontname}\@\m{mi}{cmmi10}\@\m{sy}{cmsy10}%
+ \@\f{asy}{psyr}%
+ \@\f{it}{\KBit\headingfontname}%
+ \@\f{tt}{\headingttfontname}\@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+}
+\loadfont\bodysy{cmsy10 at 12pt}
+\fontset{subheading}\STYheadingT{12}{14pt}{subheading}{subheading}
+\fontset{heading}\STYheadingT{18}{20pt}{subheading}{subheading}
+\ifx\bodyfontname\UNDEFINED \def\bodyfontname{ptmr} \fi
+\ifx\bodyttfontname\UNDEFINED \def\bodyttfontname{pcrr} \fi
+\def\STYbodyT{%
+ \@\m{rm}{\bodyfontname}\@\m{it}{\KBit\bodyfontname}%
+ \@\m{bf}{\KBbf\bodyfontname}\@\f{bi}{\KBbi\bodyfontname}%
+ \@\m{asy}{psyr}\m{mi}{cmmi}\m{sy}{cmsy}%
+ \@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+ \@\f{tt}{\bodyttfontname}\@\f{tb}{\KBit\bodyttfontname}%
+}
+\let\sc=\relax \let\mc=\relax \let\csc=\relax
+\fontset{tiny}\STYbodyT{7}{9pt}{tiny}{tiny}
+\fontset{small}\STYbodyT{9}{11pt}{tiny}{tiny}
+\fontset{note}\STYbodyT{10}{12pt}{tiny}{tiny}
+\fontset{body}\STYbodyT{12}{14pt}{small}{tiny}
+\def\everyloadfont#1#2{\fontdimen3#1=0pt \fontdimen4#1=0pt}
+\rightskip=0pt plus 2em \tolerance=1000
+\bodyfonts
+{\tt \hyphenchar\font=-1 }
+\input pdcdoc.def
+\inputifexists{pdcpsdoc.cfg}
diff --git a/Master/texmf-dist/tex/plain/pdcmac/pdcpslft.tex b/Master/texmf-dist/tex/plain/pdcmac/pdcpslft.tex
new file mode 100644
index 00000000000..9912b2544fb
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pdcmac/pdcpslft.tex
@@ -0,0 +1,81 @@
+% pdcpslft.tex 1.2 1995/03/30 -- macros for short documents
+%%%@TeX-definition-file {
+%%% filename = "pdcpslft.tex",
+%%% version = "1.2",
+%%% date = "1995/03/30",
+%%% package = "pdcmac 1.0",
+%%% author = "P. Damian Cugley",
+%%% email = "damian.cugley@comlab.ox.ac.uk",
+%%% address = "Oxford University Computing Laboratory,
+%%% Parks Road, Oxford OX1 3QD, UK",
+%%% codetable = "USASCII",
+%%% keywords = "TeX, plain TeX, style file",
+%%% supported = "Maybe",
+%%% This macro file was generated by running plain
+%%% TeX on pdcsty.dtx",
+%%% copyright = "Copyright (c) 1991-1995 P. Damian Cugley",
+%%% copying = "DO NOT DISTRIBUTE THIS FILE.
+%%% Distribute pdcsty.dtx only as part of the
+%%% package it came in.",
+%%% dependencies = "pdcadobe.tex, pdcfmt2.tex, pdcfsel.tex,
+%%% pdchyex.tex, pdcimth.tex, pdcmigr.tex,
+%%% pdcoput5.tex, pdclft.def",
+%%%}
+
+\message{1.2 <pdc 1995/03/30>}
+
+\input pdcimth
+\input pdcmigr
+\input pdcfmt2
+\input pdchyex
+\input pdcoput5
+\input pdcfsel
+\input pdcadobe
+\autoloadfonts
+\def\KBcanonical#1{%
+ \expcs\ifx{KB#1}\relax #1\else\csname KB#1\endcsname \fi
+}
+\ifx\KBadobe\UNDEFINED \def\KBadobe#1{\KBcanonical{#10}} \fi
+\def\KBit#1{\KBcanonical{#1i}}
+\def\KBbi#1{\KBbf{#1i}}
+\def\KBbf#1{\expandafter\KBbfx#1.}
+\def\KBbfx#1#2#3#4#5.{\KBcanonical{#1#2#3b#5}}
+\def\KBpagbr{pagdr} \def\KBpagbri{pagdro}
+\def\KBpbkbr{pbkdr} \def\KBpbkbri{pbkdri}
+\def\KBpagri{pagro} \def\KBpagbi{pagbo}
+\def\KBphvri{phvro} \def\KBphvbi{phvbo}
+\def\KBpcrri{pcrro} \def\KBpcrbi{pcrbo}
+\def\KBphvrrni{phvron} \def\KBphvbrni{phvbon}
+\def\KBphvrrn0{phvr0n} \def\KBphvbrn0{phvb0n}
+\def\KBphvrrni0{phvro0n} \def\KBphvbrni0{phvbo0n}
+\ifx\headingfontname\UNDEFINED \def\headingfontname{phvr} \fi
+\ifx\headingttfontname\UNDEFINED \def\headingttfontname{pcrb} \fi
+\def\STYheadingT{%
+ \@\f{rm}{\headingfontname}\@\m{mi}{cmmi10}\@\m{sy}{cmsy10}%
+ \@\f{asy}{psyr}%
+ \@\f{it}{\KBit\headingfontname}%
+ \@\f{tt}{\headingttfontname}\@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+}
+\loadfont\bodysy{cmsy10 at 12pt}
+\fontset{subheading}\STYheadingT{12}{14pt}{subheading}{subheading}
+\fontset{heading}\STYheadingT{18}{20pt}{subheading}{subheading}
+\ifx\bodyfontname\UNDEFINED \def\bodyfontname{ptmr} \fi
+\ifx\bodyttfontname\UNDEFINED \def\bodyttfontname{pcrr} \fi
+\def\STYbodyT{%
+ \@\m{rm}{\bodyfontname}\@\m{it}{\KBit\bodyfontname}%
+ \@\m{bf}{\KBbf\bodyfontname}\@\f{bi}{\KBbi\bodyfontname}%
+ \@\m{asy}{psyr}\m{mi}{cmmi}\m{sy}{cmsy}%
+ \@\f{mf}{logo10}\@\f{mfi}{logosl10}%
+ \@\f{tt}{\bodyttfontname}\@\f{tb}{\KBit\bodyttfontname}%
+}
+\let\sc=\relax \let\mc=\relax \let\csc=\relax
+\fontset{tiny}\STYbodyT{7}{9pt}{tiny}{tiny}
+\fontset{small}\STYbodyT{9}{11pt}{tiny}{tiny}
+\fontset{note}\STYbodyT{10}{12pt}{tiny}{tiny}
+\fontset{body}\STYbodyT{12}{14pt}{small}{tiny}
+\def\everyloadfont#1#2{\fontdimen3#1=0pt \fontdimen4#1=0pt}
+\rightskip=0pt plus 2em \tolerance=1000
+\bodyfonts
+{\tt \hyphenchar\font=-1 }
+\input pdclft.def
+\inputifexists{pdcpslft.cfg}
diff --git a/Master/texmf-dist/tex/plain/pgf/basiclayer/pgf.tex b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgf.tex
new file mode 100644
index 00000000000..e8f183447d3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgf.tex
@@ -0,0 +1,22 @@
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the GNU Public License, version 2.
+
+\edef\pgfatcode{\the\catcode`\@}
+\catcode`\@=11
+
+
+\input pgfrcs.code.tex
+\ProvidesPackageRCS $Header: /cvsroot/pgf/pgf/plain/pgf/basiclayer/pgf.tex,v 1.3 2005/09/05 13:23:04 tantau Exp $
+
+\input pgfcore.tex
+\input pgfbaseshapes.tex
+\input pgfbaseplot.tex
+\input pgfbaseimage.tex
+\input pgfbaselayers.tex
+\input pgfbasesnakes.tex
+
+\catcode`\@=\pgfatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseimage.tex b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseimage.tex
new file mode 100644
index 00000000000..1748b35b7e6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseimage.tex
@@ -0,0 +1,17 @@
+% This file is pgfbaseshapes.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgfbaseimageatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgfbaseimage.code.tex
+
+\catcode`\@=\pgfbaseimageatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaselayers.tex b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaselayers.tex
new file mode 100644
index 00000000000..4a8db973c3a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaselayers.tex
@@ -0,0 +1,17 @@
+% This file is pgfbaselayers.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgfbaselayersatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgfbaselayers.code.tex
+
+\catcode`\@=\pgfbaselayersatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseplot.tex b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseplot.tex
new file mode 100644
index 00000000000..f2b7aa99c2b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseplot.tex
@@ -0,0 +1,17 @@
+% This file is pgfbaseshapes.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgfbaseplotatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgfbaseplot.code.tex
+
+\catcode`\@=\pgfbaseplotatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseshapes.tex b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseshapes.tex
new file mode 100644
index 00000000000..99d0a3973d2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbaseshapes.tex
@@ -0,0 +1,17 @@
+% This file is pgfbaseshapes.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgfbaseshapesatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgfbaseshapes.code.tex
+
+\catcode`\@=\pgfbaseshapesatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbasesnakes.tex b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbasesnakes.tex
new file mode 100644
index 00000000000..29b0c3d9106
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfbasesnakes.tex
@@ -0,0 +1,17 @@
+% This file is pgfbasesnakes.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgfbasesnakesatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgfbasesnakes.code.tex
+
+\catcode`\@=\pgfbasesnakesatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfcore.tex b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfcore.tex
new file mode 100644
index 00000000000..d70e1030d93
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/basiclayer/pgfcore.tex
@@ -0,0 +1,21 @@
+% This file is pgfcore.tex
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\ifx\pgfcoreincluded\undefined
+\def\pgfcoreincluded{}
+
+\edef\pgfcoreatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfsys.tex
+\input pgfcore.code.tex
+\catcode`\@=\pgfcoreatcode
+
+\fi
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/frontendlayer/tikz.tex b/Master/texmf-dist/tex/plain/pgf/frontendlayer/tikz.tex
new file mode 100644
index 00000000000..2353f9370db
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/frontendlayer/tikz.tex
@@ -0,0 +1,20 @@
+% This file is tikz.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\tikzatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input xkeyval.tex
+\input pgf.tex
+\input pgffor.tex
+\input pgflibraryplothandlers.tex
+\input tikz.code.tex
+
+\catcode`\@=\tikzatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryarrows.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryarrows.tex
new file mode 100644
index 00000000000..3a3912c0ab3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryarrows.tex
@@ -0,0 +1,17 @@
+% This file is pgflibraryarrows.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibraryarrowsatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgflibraryarrows.code.tex
+
+\catcode`\@=\pgflibraryarrowsatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryautomata.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryautomata.tex
new file mode 100644
index 00000000000..ee90303d2be
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryautomata.tex
@@ -0,0 +1,17 @@
+% This file is pgflibraryautomata.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibraryautomataatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgflibraryautomata.code.tex
+
+\catcode`\@=\pgflibraryautomataatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplothandlers.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplothandlers.tex
new file mode 100644
index 00000000000..96b11c38e5b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplothandlers.tex
@@ -0,0 +1,17 @@
+% This file is pgflibraryplothandlers.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibraryplothandlersatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgflibraryplothandlers.code.tex
+
+\catcode`\@=\pgflibraryplothandlersatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplotmarks.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplotmarks.tex
new file mode 100644
index 00000000000..fd91cad671a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryplotmarks.tex
@@ -0,0 +1,17 @@
+% This file is pgflibraryplotmarks.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibraryplotmarksatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgflibraryplotmarks.code.tex
+
+\catcode`\@=\pgflibraryplotmarksatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryshapes.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryshapes.tex
new file mode 100644
index 00000000000..7a47a37a6f5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibraryshapes.tex
@@ -0,0 +1,17 @@
+% This file is pgflibraryshapes.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibraryshapesatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgflibraryshapes.code.tex
+
+\catcode`\@=\pgflibraryshapesatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarysnakes.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarysnakes.tex
new file mode 100644
index 00000000000..43e185d3cfe
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarysnakes.tex
@@ -0,0 +1,17 @@
+% This file is pgflibrarysnakes.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibrarysnakesatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfcore.tex
+\input pgflibrarysnakes.code.tex
+
+\catcode`\@=\pgflibrarysnakesatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikzbackgrounds.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikzbackgrounds.tex
new file mode 100644
index 00000000000..ba7f243ff42
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikzbackgrounds.tex
@@ -0,0 +1,16 @@
+% This file is pgflibrarytikzbackgrounds.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibrarytikzbackgroundsatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgflibrarytikzbackgrounds.code.tex
+
+\catcode`\@=\pgflibrarytikzbackgroundsatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikztrees.tex b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikztrees.tex
new file mode 100644
index 00000000000..c25a04c4e50
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/libraries/pgflibrarytikztrees.tex
@@ -0,0 +1,16 @@
+% This file is pgflibrarytikztrees.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgflibrarytikztreesatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgflibrarytikztrees.code.tex
+
+\catcode`\@=\pgflibrarytikztreesatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/systemlayer/pgfsys.tex b/Master/texmf-dist/tex/plain/pgf/systemlayer/pgfsys.tex
new file mode 100644
index 00000000000..88d769b5c02
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/systemlayer/pgfsys.tex
@@ -0,0 +1,26 @@
+% This file is pgfsys.tex
+
+% Copyright 2005 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\ifx\pgfsysincluded\undefined
+\def\pgfsysincluded{}
+
+\edef\pgfsysatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfrcs.code.tex
+\input pgf-latex-emulation.tex
+
+\input pgfsys.code.tex
+\input pgfsyssoftpath.code.tex
+\input pgfsysprotocol.code.tex
+
+\catcode`\@=\pgfsysatcode\relax
+
+\fi
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/pgf/utilities/pgffor.tex b/Master/texmf-dist/tex/plain/pgf/utilities/pgffor.tex
new file mode 100644
index 00000000000..2251e120c26
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/pgf/utilities/pgffor.tex
@@ -0,0 +1,17 @@
+% This file is tikz.tex
+
+% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+\edef\pgfforatcode{\the\catcode`\@}
+\catcode`\@=11
+
+\input pgfrcs.code.tex
+\input pgffor.code.tex
+
+\catcode`\@=\pgfforatcode
+
+\endinput
diff --git a/Master/texmf-dist/tex/plain/plgraph/autopict.sty b/Master/texmf-dist/tex/plain/plgraph/autopict.sty
new file mode 100644
index 00000000000..3c35e57b21b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plgraph/autopict.sty
@@ -0,0 +1,396 @@
+%%
+%% This is file `autopict.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltpictur.dtx (with options: `def')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1993 1994 1995 1996
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% For further copyright information, and conditions for modification
+%% and distribution, see the file legal.txt, and any other copyright
+%% notices in this file.
+%%
+%% This file is part of the LaTeX2e system.
+%% ----------------------------------------
+%% This system is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see bugs.txt.
+%%
+%% Please do not request updates from us directly. Primary
+%% distribution is through the CTAN archives.
+%%
+%%
+%% IMPORTANT COPYRIGHT NOTICE:
+%%
+%% You are NOT ALLOWED to distribute this file alone.
+%%
+%% You are allowed to distribute this file under the condition that it
+%% is distributed together with all the files listed in manifest.txt.
+%%
+%% If you receive only some of these files from someone, complain!
+%%
+%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation, provided that you
+%% comply with the conditions in the file legal.txt.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file, taking care to
+%% observe the conditions in legal.txt; this will ensure that other
+%% users can safely use your modifications.
+%%
+%% You will also need to produce your own, suitably named, .ins file to
+%% control the generation of files from your source file; this file
+%% should contain your own preambles for the files it generates, not
+%% those in the standard .ins files.
+%%
+%% The names of the source files used are shown above.
+%%
+%%
+%%
+%%% From File: ltpictur.dtx
+\ProvidesFile{autopict.sty}
+ [1995/10/27 v1.1f Picture mode autoload file]
+\long\gdef\picture#1{\pictur@#1}
+\gdef\pictur@(#1){%
+ \@ifnextchar({\@picture(#1)}{\@picture(#1)(0,0)}}
+\gdef\@picture(#1,#2)(#3,#4){%
+ \@picht#2\unitlength
+ \setbox\@picbox\hb@xt@#1\unitlength\bgroup
+ \hskip -#3\unitlength
+ \lower #4\unitlength\hbox\bgroup
+ \ignorespaces}
+\gdef\endpicture{%
+ \egroup\hss\egroup
+ \ht\@picbox\@picht\dp\@picbox\z@
+ \mbox{\box\@picbox}}
+\long\gdef\put(#1,#2)#3{%
+ \@killglue\raise#2\unitlength
+ \hb@xt@\z@{\kern#1\unitlength #3\hss}%
+ \ignorespaces}
+\gdef\multiput(#1,#2)#3{%
+ \@xdim #1\unitlength
+ \@ydim #2\unitlength
+ \@multiput(}
+\long\gdef\@multiput(#1,#2)#3#4{%
+ \@killglue\@multicnt #3\relax
+ \@whilenum \@multicnt >\z@\do
+ {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}%
+ \advance\@multicnt\m@ne
+ \advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}%
+ \ignorespaces}
+\gdef\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
+\gdef\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+ \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth}
+\gdef\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+ \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth}
+\gdef\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth}
+\gdef\shortstack{\@ifnextchar[\@shortstack{\@shortstack[c]}}
+\gdef\@shortstack[#1]{%
+ \leavevmode
+ \vbox\bgroup
+ \baselineskip-\p@\lineskip 3\p@
+ \let\mb@l\hss\let\mb@r\hss
+ \expandafter\let\csname mb@#1\endcsname\relax
+ \let\\\@stackcr
+ \@ishortstack}
+\gdef\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup}
+\gdef\@stackcr{\@ifstar\@ixstackcr\@ixstackcr}
+\gdef\@ixstackcr{\@ifnextchar[\@istackcr{\cr\ignorespaces}}
+\gdef\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
+\newif\if@negarg
+\gdef\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@linelen #3\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vline
+ \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
+ \fi
+ \fi}
+\gdef\@sline{%
+ \ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
+ \else \@negargfalse \@yyarg \@yarg \fi
+\ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
+\ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi
+\ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi
+\setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}%
+\ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@
+ \else\let\@upordown\lower \@clnht \ht\@linechar\fi
+\@clnwd \wd\@linechar
+\if@negarg
+ \hskip -\wd\@linechar \def\reserved@a{\hskip -2\wd\@linechar}%
+\else
+ \let\reserved@a\relax
+\fi
+\@whiledim \@clnwd <\@linelen \do
+ {\@upordown\@clnht\copy\@linechar
+ \reserved@a
+ \advance\@clnht \ht\@linechar
+ \advance\@clnwd \wd\@linechar}%
+\advance\@clnht -\ht\@linechar
+\advance\@clnwd -\wd\@linechar
+\@tempdima\@linelen\advance\@tempdima -\@clnwd
+\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
+\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
+\multiply\@tempdima \@m
+\@tempcnta \@tempdima
+\@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
+\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
+\divide\@tempdima \@m
+\advance\@clnht \@tempdima
+\ifdim \@linelen <\wd\@linechar
+ \hskip \wd\@linechar
+ \else\@upordown\@clnht\copy\@linechar\fi}
+\gdef\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi
+\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen
+\ifnum \@xarg <\z@ \hskip -\@linelen \fi}
+\gdef\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8%
+ \advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else
+ \advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
+ \char\@tempcnta}
+\gdef\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
+ \ifnum\@tempcnta<5\relax
+ \@linelen #3\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vvector
+ \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
+ \fi
+ \fi
+ \else\@badlinearg\fi}
+\gdef\@hvector{\@hline\hb@xt@\z@{\@linefnt
+ \ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else
+ \hss\@getrarrow(1,0)\fi}}
+\gdef\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi}
+\gdef\@svector{\@sline
+ \@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi
+ \ifnum\@tempcnta <5%
+ \hskip -\wd\@linechar
+ \@upordown\@clnht \hbox{\@linefnt \if@negarg
+ \@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}%
+ \else\@badlinearg\fi}
+\gdef\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta'33 \else
+ \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta
+ -9 \@tempcntb #2\relax\multiply\@tempcntb \tw@
+ \ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb
+ \else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
+ \fi\fi\char\@tempcnta}
+\gdef\@getrarrow(#1,#2){\@tempcntb #2\relax
+\ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi
+\ifcase \@tempcntb\relax \@tempcnta'55 \or
+\ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta
+24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49
+\else\@tempcnta 58 \fi\fi\or
+\ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta
+24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or
+\@tempcnta #1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta -\tw@ \else
+\@tempcnta #1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi
+\char\@tempcnta}
+\gdef\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi}
+\gdef\@upline{%
+ \hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
+ \@height \@linelen \@depth \z@\hss}}
+\gdef\@downline{%
+ \hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
+ \@height \z@ \@depth \@linelen \hss}}
+\gdef\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise
+ \@linelen \hb@xt@\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
+\gdef\@downvector{\@downline\lower \@linelen
+ \hb@xt@\z@{\@linefnt\char'77\hss}}
+\gdef\dashbox#1(#2,#3){\leavevmode\hb@xt@\z@{\baselineskip \z@skip
+\lineskip \z@skip
+\@dashdim #2\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt\@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(0,#3){\copy\@dashbox}%
+\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
+\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
+\multiply\@dashdim \thr@@
+\fi
+\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
+\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
+\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
+\@dashdim #3\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt \@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else
+\divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox\hbox{\hskip -\@halfwidth
+\vrule \@width \@wholewidth
+\@height \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(#2,0){\copy\@dashbox}%
+\put(0,#3){\lower\@dashdim\copy\@dashbox}%
+\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
+\multiply\@dashdim \thr@@
+\fi
+\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
+\@height #1\unitlength}\@tempcnta\z@
+\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}\@tempcnta\z@
+\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}}\@makepicbox(#2,#3)}
+\newif\if@ovt
+\newif\if@ovb
+\newif\if@ovl
+\newif\if@ovr
+\gdef\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@
+ \@tempcnta\@tempdima
+ \@tempdima 4\p@ \divide\@tempcnta\@tempdima
+ \ifnum \@tempcnta >10\relax \@tempcnta 10\relax\fi
+ \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne
+ \else \@latex@warning{Oval too small}\fi
+ \multiply\@tempcnta 4\relax
+ \setbox \@tempboxa \hbox{\@circlefnt
+ \char \@tempcnta}\@tempdima \wd \@tempboxa}
+\gdef\@put#1#2#3{\raise #2\hb@xt@\z@{\hskip #1#3\hss}}
+\gdef\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}}
+\gdef\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@tfor\reserved@a :=#3\do{\csname @ov\reserved@a false\endcsname}%
+ \@ovxx
+ #1\unitlength \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
+ \advance \@tempdimb -2\p@
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+\gdef\@ovvert#1#2{\vbox to\@ovyy{%
+ \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
+ \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
+ \else \kern \@ovri \kern \@ovdy \fi
+ \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip
+ \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
+ \hbox{\char \@tempcntb}%
+ \else \kern \@ovdy \kern \@ovro \fi}}
+\gdef\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro
+ \if@ovr \else \kern \@ovdx \fi
+ \leaders \hrule \@height \@wholewidth \hfil
+ \if@ovl \else \kern \@ovdx \fi
+ \kern \@ovri}}
+\gdef\circle{\@inmatherr\circle\@ifstar\@dot\@circle}
+\gdef\@circle#1{%
+ \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
+ \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
+ \@ovro\ht\@tempboxa
+ \setbox\@tempboxa\hbox{\@circlefnt
+ \advance\@tempcnta\tw@ \char \@tempcnta
+ \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
+ \advance\@tempcnta\tw@
+ \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
+ \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
+ \else \@circ\@tempdimb{96}\fi\endgroup}
+\gdef\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
+\gdef\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5\p@
+ \@tempcnta\@tempdima \@tempdima \p@
+ \divide\@tempcnta\@tempdima
+ \ifnum\@tempcnta >15\relax \@tempcnta 15\relax \fi
+ \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi
+ \advance\@tempcnta #2\relax
+ \@circlefnt \char\@tempcnta}
+\ifx\qbeziermax\@undefined
+\gdef\qbeziermax{500}
+\fi
+\newcommand\qbezier[2][0]{\bezier{#1}#2}
+\gdef\bezier#1)#2(#3)#4({\@bezier#1)(#3)(}
+\gdef\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
+ \ifnum #1=\z@
+ \@ovxx #4\unitlength
+ \advance\@ovxx -#2\unitlength
+ \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
+ \@ovdx #6\unitlength
+ \advance\@ovdx -#4\unitlength
+ \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
+ \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
+ \@ovyy #5\unitlength
+ \advance\@ovyy -#3\unitlength
+ \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
+ \@ovdy #7\unitlength
+ \advance\@ovdy -#5\unitlength
+ \ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi
+ \ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi
+ \@multicnt
+ \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
+ \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
+ \ifnum \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax \fi
+ \else \@multicnt#1\relax \fi
+ \@tempcnta\@multicnt \advance\@tempcnta\@ne
+ \@ovdx #4\unitlength \advance\@ovdx -#2\unitlength
+ \multiply\@ovdx \tw@
+ \@ovxx #6\unitlength \advance\@ovxx -#2\unitlength
+ \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
+ \@ovdy #5\unitlength \advance\@ovdy -#3\unitlength
+ \multiply\@ovdy \tw@
+ \@ovyy #7\unitlength \advance\@ovyy -#3\unitlength
+ \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
+ \setbox\@tempboxa\hbox{\vrule \@height\@halfwidth
+ \@depth \@halfwidth
+ \@width \@wholewidth}%
+ \put(#2,#3){%
+ \count@\z@
+ \@whilenum{\count@<\@tempcnta}\do
+ {\@xdim\count@\@ovxx
+ \advance\@xdim\@ovdx
+ \divide\@xdim\@multicnt
+ \multiply\@xdim\count@
+ \@ydim\count@\@ovyy
+ \advance\@ydim\@ovdy
+ \divide\@ydim\@multicnt
+ \multiply\@ydim\count@
+ \raise \@ydim
+ \hb@xt@\z@{\kern\@xdim
+ \unhcopy\@tempboxa\hss}%
+ \advance\count@\@ne}}}
+\endinput
+%%
+%% End of file `autopict.sty'.
diff --git a/Master/texmf-dist/tex/plain/plgraph/color.tex b/Master/texmf-dist/tex/plain/plgraph/color.tex
new file mode 100644
index 00000000000..933fba7a385
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plgraph/color.tex
@@ -0,0 +1,9 @@
+% Plain TeX interface to color package.
+% David Carlisle
+
+\input miniltx
+\makeatletter
+\def\Gin@driver{dvips.def}
+\input color.sty
+
+\resetatcatcode
diff --git a/Master/texmf-dist/tex/plain/plgraph/graphicx.tex b/Master/texmf-dist/tex/plain/plgraph/graphicx.tex
new file mode 100644
index 00000000000..0dd2b7f944d
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plgraph/graphicx.tex
@@ -0,0 +1,13 @@
+% Plain TeX interface to graphicx package.
+% David Carlisle
+
+
+\input miniltx
+
+\def\Gin@driver{dvips.def}
+\input graphicx.sty
+
+
+\resetatcatcode
+
+
diff --git a/Master/texmf-dist/tex/plain/plgraph/miniltx.tex b/Master/texmf-dist/tex/plain/plgraph/miniltx.tex
new file mode 100644
index 00000000000..af4ee50f166
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plgraph/miniltx.tex
@@ -0,0 +1,438 @@
+%%%
+%%%
+%%% Parts of LaTeX: Slightly changed/simplified in places.
+%%% Changes
+%%% Copyright 1996 David Carlisle
+%%% Original Code
+%%% Copyright 1993-1996 LaTeX3 Project and original authors
+%%%
+%%% Under no circumstances should any problems relating to this file
+%%% be sent to the LaTeX bugs address, or any other LaTeX related
+%%% support address.
+%%%
+%%% Problems can be sent to me directly at carlisle@ma.man.ac.uk
+%%% (but I don't promise to fix them).
+%%%
+
+% 1996/01/29 initial version
+% 1996/05/09 a few missing commands added
+% 1996/11/21 fixed @ catcode handling
+
+\edef\resetatcatcode{\catcode`\noexpand\@\the\catcode`\@\relax}
+\ifx\miniltx\undefined\else\endinput\fi
+\let\miniltx\box
+
+\def\makeatletter{\catcode`\@11\relax}
+\def\makeatother{\catcode`\@12\relax}
+\makeatletter
+
+\def\@makeother#1{\catcode`#1=12\relax}
+
+
+\def\@ifnextchar#1#2#3{%
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}\def\reserved@b{#3}%
+ \futurelet\@let@token\@ifnch}
+\def\@ifnch{%
+ \ifx\@let@token\@sptoken
+ \let\reserved@c\@xifnch
+ \else
+ \ifx\@let@token\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \let\reserved@c\reserved@b
+ \fi
+ \fi
+ \reserved@c}
+\begingroup
+\def\:{\global\let\@sptoken= } \: % this makes \@sptoken a space token
+\def\:{\@xifnch} \expandafter\gdef\: {\futurelet\@let@token\@ifnch}
+\endgroup
+
+
+
+\def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}}
+\long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}}
+\long\def\@xdblarg#1#2{#1[{#2}]{#2}}
+
+\long\def \@gobble #1{}
+\long\def \@gobbletwo #1#2{}
+\long\def \@gobblefour #1#2#3#4{}
+\long\def\@firstofone#1{#1}
+\long\def\@firstoftwo#1#2{#1}
+\long\def\@secondoftwo#1#2{#2}
+
+\def\NeedsTeXFormat#1{\@ifnextchar[\@needsf@rmat\relax}
+\def\@needsf@rmat[#1]{}
+\def\ProvidesPackage#1{\@ifnextchar[%
+ {\@pr@videpackage{#1}}{\@pr@videpackage#1[]}}
+\def\@pr@videpackage#1[#2]{\wlog{#1: #2}}
+\let\ProvidesFile\ProvidesPackage
+\def\PackageInfo#1#2{\wlog{#1: #2}}
+
+\let\DeclareOption\@gobbletwo
+\let\ProcessOptions\relax
+
+\def\RequirePackage{%
+ \@fileswithoptions\@pkgextension}
+\def\@fileswithoptions#1{%
+ \@ifnextchar[%]
+ {\@fileswith@ptions#1}%
+ {\@fileswith@ptions#1[]}}
+\def\@fileswith@ptions#1[#2]#3{%
+ \@ifnextchar[%]
+ {\@fileswith@pti@ns#1[#2]#3}%
+ {\@fileswith@pti@ns#1[#2]#3[]}}
+
+\def\@fileswith@pti@ns#1[#2]#3[#4]{%
+ \def\reserved@b##1,{%
+ \ifx\@nil##1\relax\else
+ \ifx\relax##1\relax\else
+ \noexpand\@onefilewithoptions##1[#2][#4]\noexpand\@pkgextension
+ \fi
+ \expandafter\reserved@b
+ \fi}%
+ \edef\reserved@a{\zap@space#3 \@empty}%
+ \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nil,}%
+ \reserved@a}
+
+\def\zap@space#1 #2{%
+ #1%
+ \ifx#2\@empty\else\expandafter\zap@space\fi
+ #2}
+
+\let\@empty\empty
+\def\@pkgextension{sty}
+
+\def\@onefilewithoptions#1[#2][#3]#4{%
+ \input #1.#4 }
+
+
+
+\def\typein{%
+ \let\@typein\relax
+ \@testopt\@xtypein\@typein}
+\def\@xtypein[#1]#2{%
+ \message{#2}%
+ \advance\endlinechar\@M
+ \read\@inputcheck to#1%
+ \advance\endlinechar-\@M
+ \@typein}
+\def\@namedef#1{\expandafter\def\csname #1\endcsname}
+\def\@nameuse#1{\csname #1\endcsname}
+\def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup}
+\def\@car#1#2\@nil{#1}
+\def\@cdr#1#2\@nil{#2}
+\def\@carcube#1#2#3#4\@nil{#1#2#3}
+\def\@preamblecmds{}
+
+\def\@star@or@long#1{%
+ \@ifstar
+ {\let\l@ngrel@x\relax#1}%
+ {\let\l@ngrel@x\long#1}}
+
+\let\l@ngrel@x\relax
+\def\newcommand{\@star@or@long\new@command}
+\def\new@command#1{%
+ \@testopt{\@newcommand#1}0}
+\def\@newcommand#1[#2]{%
+ \@ifnextchar [{\@xargdef#1[#2]}%
+ {\@argdef#1[#2]}}
+\long\def\@argdef#1[#2]#3{%
+ \@ifdefinable #1{\@yargdef#1\@ne{#2}{#3}}}
+\long\def\@xargdef#1[#2][#3]#4{%
+ \@ifdefinable#1{%
+ \expandafter\def\expandafter#1\expandafter{%
+ \expandafter
+ \@protected@testopt
+ \expandafter
+ #1%
+ \csname\string#1\expandafter\endcsname
+ {#3}}%
+ \expandafter\@yargdef
+ \csname\string#1\endcsname
+ \tw@
+ {#2}%
+ {#4}}}
+\def\@testopt#1#2{%
+ \@ifnextchar[{#1}{#1[#2]}}
+\def\@protected@testopt#1{%%
+ \ifx\protect\@typeset@protect
+ \expandafter\@testopt
+ \else
+ \@x@protect#1%
+ \fi}
+\long\def\@yargdef#1#2#3{%
+ \@tempcnta#3\relax
+ \advance \@tempcnta \@ne
+ \let\@hash@\relax
+ \edef\reserved@a{\ifx#2\tw@ [\@hash@1]\fi}%
+ \@tempcntb #2%
+ \@whilenum\@tempcntb <\@tempcnta
+ \do{%
+ \edef\reserved@a{\reserved@a\@hash@\the\@tempcntb}%
+ \advance\@tempcntb \@ne}%
+ \let\@hash@##%
+ \l@ngrel@x\expandafter\def\expandafter#1\reserved@a}
+\long\def\@reargdef#1[#2]#3{%
+ \@yargdef#1\@ne{#2}{#3}}
+\def\renewcommand{\@star@or@long\renew@command}
+\def\renew@command#1{%
+ {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
+ \expandafter\@ifundefined\@gtempa
+ {\@latex@error{\string#1 undefined}\@ehc}%
+ {}%
+ \let\@ifdefinable\@rc@ifdefinable
+ \new@command#1}
+\long\def\@ifdefinable #1#2{%
+ \edef\reserved@a{\expandafter\@gobble\string #1}%
+ \@ifundefined\reserved@a
+ {\edef\reserved@b{\expandafter\@carcube \reserved@a xxx\@nil}%
+ \ifx \reserved@b\@qend \@notdefinable\else
+ \ifx \reserved@a\@qrelax \@notdefinable\else
+ #2%
+ \fi
+ \fi}%
+ \@notdefinable}
+\let\@@ifdefinable\@ifdefinable
+\long\def\@rc@ifdefinable#1#2{%
+ \let\@ifdefinable\@@ifdefinable
+ #2}
+\def\newenvironment{\@star@or@long\new@environment}
+\def\new@environment#1{%
+ \@testopt{\@newenva#1}0}
+\def\@newenva#1[#2]{%
+ \@ifnextchar [{\@newenvb#1[#2]}{\@newenv{#1}{[#2]}}}
+\def\@newenvb#1[#2][#3]{\@newenv{#1}{[#2][#3]}}
+\def\renewenvironment{\@star@or@long\renew@environment}
+\def\renew@environment#1{%
+ \@ifundefined{#1}%
+ {\@latex@error{Environment #1 undefined}\@ehc
+ }{}%
+ \expandafter\let\csname#1\endcsname\relax
+ \expandafter\let\csname end#1\endcsname\relax
+ \new@environment{#1}}
+\long\def\@newenv#1#2#3#4{%
+ \@ifundefined{#1}%
+ {\expandafter\let\csname#1\expandafter\endcsname
+ \csname end#1\endcsname}%
+ \relax
+ \expandafter\new@command
+ \csname #1\endcsname#2{#3}%
+ \l@ngrel@x\expandafter\def\csname end#1\endcsname{#4}}
+
+\def\providecommand{\@star@or@long\provide@command}
+\def\provide@command#1{%
+ {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}%
+ \expandafter\@ifundefined\@gtempa
+ {\def\reserved@a{\new@command#1}}%
+ {\def\reserved@a{\renew@command\reserved@a}}%
+ \reserved@a}%
+
+\def\@ifundefined#1{%
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\chardef\@xxxii=32
+\mathchardef\@Mi=10001
+\mathchardef\@Mii=10002
+\mathchardef\@Miii=10003
+\mathchardef\@Miv=10004
+
+\newcount\@tempcnta
+\newcount\@tempcntb
+\newif\if@tempswa\@tempswatrue
+\newdimen\@tempdima
+\newdimen\@tempdimb
+\newdimen\@tempdimc
+\newbox\@tempboxa
+\newskip\@tempskipa
+\newskip\@tempskipb
+\newtoks\@temptokena
+
+\long\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax
+ #2\relax}\fi}
+\long\def\@iwhilenum#1{\ifnum #1\expandafter\@iwhilenum
+ \else\expandafter\@gobble\fi{#1}}
+\long\def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi}
+\long\def\@iwhiledim#1{\ifdim #1\expandafter\@iwhiledim
+ \else\expandafter\@gobble\fi{#1}}
+\long\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi}
+\long\def\@iwhilesw#1\fi{#1\expandafter\@iwhilesw
+ \else\@gobbletwo\fi{#1}\fi}
+\def\@nnil{\@nil}
+\def\@empty{}
+\def\@fornoop#1\@@#2#3{}
+\long\def\@for#1:=#2\do#3{%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
+\long\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi}
+\long\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@iforloop\fi#2\@@#3{#4}}
+\def\@tfor#1:={\@tf@r#1 }
+\long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else
+ \@tforloop#2\@nil\@nil\@@#1{#3}\fi}
+\long\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@tforloop\fi#2\@@#3{#4}}
+\long\def\@break@tfor#1\@@#2#3{\fi\fi}
+\def\@removeelement#1#2#3{%
+ \def\reserved@a##1,#1,##2\reserved@a{##1,##2\reserved@b}%
+ \def\reserved@b##1,\reserved@b##2\reserved@b{%
+ \ifx,##1\@empty\else##1\fi}%
+ \edef#3{%
+ \expandafter\reserved@b\reserved@a,#2,\reserved@b,#1,\reserved@a}}
+
+\let\ExecuteOptions\@gobble
+
+\def\PackageError#1#2#3{%
+ \errhelp{#3}\errmessage{#1: #2}}
+\def\@latex@error#1#2{%
+ \errhelp{#2}\errmessage{#1}}
+
+\bgroup\uccode`\!`\%\uppercase{\egroup
+\def\@percentchar{!}}
+
+\let\@@input\input
+\def\input{\@ifnextchar\bgroup\@iinput\@@input}
+\def\@iinput#1{\@@input#1 }
+
+ \def\filename@parse#1{%
+ \let\filename@area\@empty
+ \expandafter\filename@simple#1.\\}
+
+ \def\filename@simple#1.#2\\{%
+ \ifx\\#2\\%
+ \let\filename@ext\relax
+ \else
+ \edef\filename@ext{\filename@dot#2\\}%
+ \fi
+ \edef\filename@base{#1}}
+ \def\filename@dot#1.\\{#1}
+
+\long\def \IfFileExists#1#2#3{%
+ \openin\@inputcheck#1 %
+ \ifeof\@inputcheck
+ \ifx\input@path\@undefined
+ \def\reserved@a{#3}%
+ \else
+ \def\reserved@a{\@iffileonpath{#1}{#2}{#3}}%
+ \fi
+ \else
+ \closein\@inputcheck
+ \edef\@filef@und{#1 }%
+ \def\reserved@a{#2}%
+ \fi
+ \reserved@a}
+\long\def\@iffileonpath#1{%
+ \let\reserved@a\@secondoftwo
+ \expandafter\@tfor\expandafter\reserved@b\expandafter
+ :\expandafter=\input@path\do{%
+ \openin\@inputcheck\reserved@b#1 %
+ \ifeof\@inputcheck\else
+ \edef\@filef@und{\reserved@b#1 }%
+ \let\reserved@a\@firstoftwo%
+ \closein\@inputcheck
+ \@break@tfor
+ \fi}%
+ \reserved@a}
+\long\def \InputIfFileExists#1#2{%
+ \IfFileExists{#1}%
+ {#2\@addtofilelist{#1}\@@input \@filef@und}}
+
+\chardef\@inputcheck0
+
+\let\@addtofilelist \@gobble
+
+
+\def\@defaultunits{\afterassignment\remove@to@nnil}
+\def\remove@to@nnil#1\@nnil{}
+
+\newdimen\leftmarginv
+\newdimen\leftmarginvi
+
+\newdimen\@ovxx
+\newdimen\@ovyy
+\newdimen\@ovdx
+\newdimen\@ovdy
+\newdimen\@ovro
+\newdimen\@ovri
+\newdimen\@xdim
+\newdimen\@ydim
+\newdimen\@linelen
+\newdimen\@dashdim
+
+
+\long\def\mbox#1{\leavevmode\hbox{#1}}
+
+
+\let\DeclareRobustCommand\newcommand
+\let\@onlypreamble\@gobble
+
+
+\def\AtBeginDocument#1{#1}
+\let\protect\relax
+
+
+\newdimen\fboxsep
+\newdimen\fboxrule
+
+\fboxsep = 3pt
+\fboxrule = .4pt
+
+\def\@height{height} \def\@depth{depth} \def\@width{width}
+\def\@minus{minus}
+\def\@plus{plus}
+\def\hb@xt@{\hbox to}
+
+
+\long\def\@begin@tempboxa#1#2{%
+ \begingroup
+ \setbox\@tempboxa#1{\color@begingroup#2\color@endgroup}%
+ \def\width{\wd\@tempboxa}%
+ \def\height{\ht\@tempboxa}%
+ \def\depth{\dp\@tempboxa}%
+ \let\totalheight\@ovri
+ \totalheight\height
+ \advance\totalheight\depth}
+\let\@end@tempboxa\endgroup
+
+\let\set@color\relax
+\let\color@begingroup\relax
+\let\color@endgroup\relax
+\let\color@setgroup\relax
+\let\normalcolor\relax
+\let\color@hbox\relax
+\let\color@vbox\relax
+\let\color@endbox\relax
+
+% 1996/05/09 \setlength and \strip@pt needed for some
+% \includegraphics options (Thierry Bouche)
+
+\def\setlength#1#2{#1#2\relax}
+
+\begingroup
+ \catcode`P=12
+ \catcode`T=12
+ \lowercase{
+ \def\x{\def\rem@pt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}}
+ \expandafter\endgroup\x
+\def\strip@pt{\expandafter\rem@pt\the}
+
+% 1996/11/13 \AtBeginDvi used in driver files for including headers.
+% \@input added.
+
+
+\def\AtBeginDvi#1{#1}
+
+\def\@input#1{%
+ \IfFileExists{#1}{\@@input\@filef@und}{\message{No file #1.}}}
+
+% 1996/11/21
+\def\@warning{\immediate\write16} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/plgraph/picture.tex b/Master/texmf-dist/tex/plain/plgraph/picture.tex
new file mode 100644
index 00000000000..f17a7268ad5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plgraph/picture.tex
@@ -0,0 +1,51 @@
+% Plain TeX interface to picture mode.
+% David Carlisle
+
+\input miniltx
+
+\makeatletter
+\let\@@line\line
+\input autopict.sty
+\let\LaTeX@line\line
+\let\line\@@line
+
+
+\newdimen\@wholewidth
+\newdimen\@halfwidth
+\newdimen\unitlength \unitlength =1pt
+\newbox\@picbox
+\newdimen\@picht
+\newcount\@xarg
+\newcount\@yarg
+\newcount\@yyarg
+
+\font\tenln =line10 \font\tenlnw =linew10\relax
+\font\tencirc=lcircle10 \font\tencircw=lcirclew10\relax
+\newcount\@multicnt
+\newdimen\@xdim
+\newdimen\@ydim
+\newbox\@linechar
+\newdimen\@linelen
+\newdimen\@clnwd
+\newdimen\@clnht
+\newdimen\@dashdim
+\newbox\@dashbox
+\newcount\@dashcnt
+\let\@linefnt\tenln
+\let\@circlefnt\tencirc
+\@wholewidth\fontdimen8\tenln
+\@halfwidth .5\@wholewidth
+
+\def\picture#1{%
+ \begingroup
+ \let\line\LaTeX@line
+ \def\end##1{\csname end##1\endcsname}%
+ \pictur@#1}
+
+\let\@@endpicture\endpicture
+\def\endpicture{\@@endpicture\endgroup}
+
+\def\LaTeXbegin{\def\begin##1{\csname##1\endcsname}}
+
+
+\resetatcatcode
diff --git a/Master/texmf-dist/tex/plain/plgraph/psfrag.tex b/Master/texmf-dist/tex/plain/plgraph/psfrag.tex
new file mode 100644
index 00000000000..27475c473a3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plgraph/psfrag.tex
@@ -0,0 +1,49 @@
+% Plain TeX interface to psfrag.
+% David Carlisle
+
+\input miniltx
+
+\makeatletter
+
+\ifx\@compatibilitytrue\@undefined
+ \csname newif\expandafter\endcsname
+ \csname if@compatibility\endcsname
+\fi
+
+
+\ifx\raisebox\@undefined
+\def\raisebox#1#2{{%
+ \setbox0=\hbox{#2}\def\depth{\dp0}\leavevmode\raise#1\box\z@}}
+\fi
+
+\ifx\@@underline\@undefined
+\let\@@underline\underline
+\def\underline{%
+ \ifmmode\expandafter\@@underline\else\expandafter\underbar\fi}
+\fi
+
+\ifx\sbox\@undefined
+\def\sbox#1{\setbox#1\hbox}
+\fi
+
+
+% psfrag loads the core graphics package, but only the extended
+% graphicx interface is available from plain TeX so just intercept
+% the call and ask for graphicx.
+\let\savedRP\RequirePackage
+\def\RequirePackage#1{%
+ \let\RequirePackage\savedRP
+ \ifx\includegraphics\@undefined
+ \input graphicx\fi\relax}
+\input psfrag.sty
+
+
+
+\ifx\pfg@dp\@undefined
+\csname newdimen\endcsname\pfg@dp
+\csname newdimen\endcsname\pfg@wd
+\csname newdimen\endcsname\pfg@dx
+\csname newdimen\endcsname\pfg@dy
+\fi
+
+\resetatcatcode
diff --git a/Master/texmf-dist/tex/plain/plnfss/MIKmathf.tex b/Master/texmf-dist/tex/plain/plnfss/MIKmathf.tex
new file mode 100644
index 00000000000..5dd335b41b6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/MIKmathf.tex
@@ -0,0 +1,82 @@
+% plnfss-1.1
+
+% Copyright 1996 Michal Konecny <mik@konecny.aow.cz>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% MIKmathf.tex, by Michal Konecny, 23.10.1996
+%
+% A macro package to supplement math font sizing
+% to Han The Thanh's package plnfss.
+
+\endlinechar=-1\catcode`@= 11
+
+% macros provided:
+\def\mathix{\mathsize{9}{6}{5}}
+\def\mathx{\mathsize{10}{7}{5}}
+\def\mathxii{\mathsize{12}{9}{6}}
+\def\mathxiv{\mathsize{14}{10}{7}}
+\def\mathxvii{\mathsize{17}{12}{9}}
+\def\mathxx{\mathsize{20}{14}{10}}
+\def\mathxxx{\mathsize{30}{20}{14}}
+\def\mathlii{\mathsize{52}{30}{20}}
+\def\nomathfonts{}
+\expandafter\let\csname math9\endcsname\mathix
+\expandafter\let\csname math10\endcsname\mathx
+\expandafter\let\csname math12\endcsname\mathxii
+\expandafter\let\csname math14\endcsname\mathxiv
+\expandafter\let\csname math17\endcsname\mathxvii
+\expandafter\let\csname math20\endcsname\mathxx
+
+\def\Bbb{\fam9\relax}
+\def\Cal{\fam2\relax}
+\def\bfam{5}
+\def\mathb{\fam5}
+\def\bxfam{6}
+\def\mathbx{\fam6}
+\def\Eurm{\fam10\relax}
+\def\Eurb{\fam11\relax}
+\def\Eusm{\fam12\relax}
+\def\Eusb{\fam13\relax}
+\def\Eufm{\fam14\relax}
+\def\Eufb{\fam15\relax}
+
+% \mathfsize{textsize}{scriptsize}{scriptscriptsize}
+\def\mathsize#1#2#3{
+ \def\txtsz{#1}
+ \def\scrsz{#2}
+ \def\sscsz{#3}
+ % family assignment probably not acc. to convention
+ \setmathfam{0}{/cmr/m/n//}%
+ \setmathfam{1}{OML/cmmi/m/it//}
+ \setmathfam{2}{OMS/cmsy/m/n//}% incl CALIGRAPHIC
+ \setmathfam{3}{OMX/cmex/m/n//}
+ \setmathfam{5}{/cmr/b/n//}
+ \setmathfam{6}{/cmr/bx/n//}
+ \setmathfam{7}{/cmr/m/it//}
+ \setmathfam{8}{MSA/msam/m/n//}% ams symbols
+ \setmathfam{9}{MSB/msbm/m/n//}% further ams incl. BLACKBOARD
+ \setmathfam{10}{/euler/m/n//}% euler regular
+ \setmathfam{11}{/euler/b/n//}% euler regular bold
+ \setmathfam{12}{/euler/m/cal//}% euler cal
+ \setmathfam{13}{/euler/b/cal//}% euler cal bold
+ \setmathfam{14}{/euler/m/fib//}% euler fib
+ \setmathfam{15}{/euler/b/fib//}% euler fib bold
+}
+
+% sets plnfss selected font into the special name \@arbfont
+\def\set@arbfont{%
+ \global\expandafter\let\expandafter\@arbfont\csname\@selectedfont\endcsname}
+
+% \setmathfam{fam}{<coding>/<name>/<weight>/<slant>//}
+% (sizes pre-set in macros \txtsz \scrsz \sscsz)
+\def\setmathfam#1#2{
+ {\setfont#2\fontsize\txtsz\selectfont\set@arbfont}
+ \expandafter\textfont#1=\@arbfont
+ {\setfont#2\fontsize\scrsz\selectfont\set@arbfont}
+ \expandafter\scriptfont#1=\@arbfont
+ {\setfont#2\fontsize\sscsz\selectfont\set@arbfont}
+ \expandafter\scriptscriptfont#1=\@arbfont
+}
+
+\catcode`@= 12\endlinechar=13
diff --git a/Master/texmf-dist/tex/plain/plnfss/ams.pfd b/Master/texmf-dist/tex/plain/plnfss/ams.pfd
new file mode 100644
index 00000000000..7441daf6821
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/ams.pfd
@@ -0,0 +1,21 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{OMS/cmsy/b/n} {cmbsy(10)}
+\DeclareFont{OMX/cmex/m/n} {cmex(9,10)}
+\DeclareFont{OML/cmmi/m/it} {cmmi(5,6,7,8,9,10,12)}
+\DeclareFont{OML/cmmi/b/it} {cmmib(10)}
+\DeclareFont{OMS/cmsy/m/n} {cmsy(5,6,7,8,9,10)}
+\DeclareFont{U/cmtex/m/n} {cmtex(8,9,10)}
+
+\DeclareFont{MSA/msam/m/n} {msam(5,6,7,8,9,10)}
+\DeclareFont{MSB/msbm/m/n} {msbm(5,6,7,8,9,10)}
+\DeclareFont{OT1/euler/m/n} {eurm(5,6,7,8,9,10)}
+\DeclareFont{OT1/euler/b/n} {eurb(5,6,7,8,9,10)}
+\DeclareFont{OT1/euler/m/cal} {eusm(5,6,7,8,9,10)}
+\DeclareFont{OT1/euler/b/cal} {eusb(5,6,7,8,9,10)}
+\DeclareFont{OT1/euler/m/fib} {eufm(5,6,7,8,9,10)}
+\DeclareFont{OT1/euler/b/fib} {eufb(5,6,7,8,9,10)}
diff --git a/Master/texmf-dist/tex/plain/plnfss/il2cm.pfd b/Master/texmf-dist/tex/plain/plnfss/il2cm.pfd
new file mode 100644
index 00000000000..397fa7bd3e0
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/il2cm.pfd
@@ -0,0 +1,49 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{IL2/cmr/b/n} {csb(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmr/bx/n} {csbx(5,6,7,8,9,10,12)}
+\DeclareFont{IL2/cmr/bx/sl} {csbxsl(5,6,7,8,9,10,12)}
+\DeclareFont{IL2/cmr/bx/it} {csbxti(10,12,17)}
+\DeclareFont{IL2/cmr/m/sc} {cscsc(8,9,10,12,17)}
+\DeclareFont{IL2/cmdh/m/n} {csdunh(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmfr/m/n} {csff(10)}
+\DeclareFont{IL2/cmfr/m/it} {csfi(10)}
+\DeclareFont{IL2/cmfib/m/n} {csfib(8,9,10,12)}
+\DeclareFont{IL2/cmtt/m/it} {csitt(8,9,10,12,17)}
+\DeclareFont{IL2/cmr/m/n} {csr(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmr/m/sl} {cssl(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmtt/m/sl} {cssltt(8,9,10,12)}
+\DeclareFont{IL2/cmss/m/n} {csss(8,9,10,12,17)}
+\DeclareFont{IL2/cmss/bx/n} {csssbx(9,10,12,17)}
+\DeclareFont{IL2/cmss/sbc/n} {csssdc(10)}
+\DeclareFont{IL2/cmss/m/sl} {csssi(8,9,10,12,17)}
+\DeclareFont{IL2/cmssq/m/n} {csssq(8)}
+\DeclareFont{IL2/cmssq/m/sl} {csssqi(8)}
+\DeclareFont{IL2/cmtt/m/sc} {cstcsc(10,12,17)}
+\DeclareFont{IL2/cmr/m/it} {csti(7,8,9,10,12,17)}
+\DeclareFont{IL2/cmtt/m/n} {cstt(8,9,10,12)}
+\DeclareFont{IL2/cmr/m/ui} {csu(7,8,9,10,12,17)}
+\DeclareFont{IL2/cmvtt/m/n} {csvtt(8,9,10,12)}
+
+\SubstFont{IL2/cmfib/b/n} {IL2/cmfib/bx/n}
+\SubstFont{IL2/cmr/b/it} {IL2/cmr/bx/it}
+\SubstFont{IL2/cmr/b/sl} {IL2/cmr/bx/sl}
+\SubstFont{IL2/cmr/b/ui} {IL2/cmr/bx/ui}
+\SubstFont{IL2/cmr/bx/ui} {IL2/cmr/m/ui}
+\SubstFont{IL2/cmss/b/n} {IL2/cmss/bx/n}
+\SubstFont{IL2/cmss/b/ui} {IL2/cmss/bx/ui}
+\SubstFont{IL2/cmss/bx/ui} {IL2/cmr/bx/ui}
+\SubstFont{IL2/cmss/m/it} {IL2/cmss/m/sl}
+\SubstFont{IL2/cmss/m/sc} {IL2/cmr/m/sc}
+\SubstFont{IL2/cmss/m/ui} {IL2/cmr/m/ui}
+\SubstFont{IL2/cmtt/b/it} {IL2/cmtt/bx/it}
+\SubstFont{IL2/cmtt/b/n} {IL2/cmtt/bx/n}
+\SubstFont{IL2/cmtt/b/ui} {IL2/cmtt/bx/ui}
+\SubstFont{IL2/cmtt/bx/it} {IL2/cmtt/m/it}
+\SubstFont{IL2/cmtt/bx/n} {IL2/cmtt/m/n}
+\SubstFont{IL2/cmtt/bx/ui} {IL2/cmtt/m/it}
+\SubstFont{IL2/cmtt/m/ui} {IL2/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/il2cmr.pfd b/Master/texmf-dist/tex/plain/plnfss/il2cmr.pfd
new file mode 100644
index 00000000000..cd0db72ea12
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/il2cmr.pfd
@@ -0,0 +1,34 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{IL2/cmdh/m/n} {csdunh(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmfr/m/it} {csfi(10)}
+\DeclareFont{IL2/cmfr/m/n} {csff(10)}
+\DeclareFont{IL2/cmfib/b/n} {csfib(8,9,10,12)}
+\DeclareFont{IL2/cmr/b/n} {csb(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmr/bx/it} {csbxti(10,12,17)}
+\DeclareFont{IL2/cmr/bx/n} {csbx(5,6,7,8,9,10,12)}
+\DeclareFont{IL2/cmr/bx/sl} {csbxsl(5,6,7,8,9,10,12)}
+\DeclareFont{IL2/cmr/m/it} {csti(7,8,9,10,12,17)}
+\DeclareFont{IL2/cmr/m/n} {csr(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmr/m/sc} {cscsc(10,12,17)}
+\DeclareFont{IL2/cmr/m/sl} {cssl(5,6,7,8,9,10,12,17)}
+\DeclareFont{IL2/cmr/m/ui} {csu(7,8,9,10,12,17)}
+\DeclareFont{IL2/cmss/bx/n} {csssbx(9,10,12,17)}
+\DeclareFont{IL2/cmss/dc/n} {csssdc(10)}
+\DeclareFont{IL2/cmss/m/it} {csssi(8,9,10,12,17)}
+\DeclareFont{IL2/cmss/n/n} {csss(8,9,10,12,17)}
+\DeclareFont{IL2/cmss/q/it} {csssqi(8)}
+\DeclareFont{IL2/cmss/q/n} {csssq(8)}
+\DeclareFont{IL2/cmtt/m/it} {csitt(8,9,10,12,17)}
+\DeclareFont{IL2/cmtt/m/n} {cstt(8,9,10,12)}
+\DeclareFont{IL2/cmtt/m/sc} {cstcsc(10,12,17)}
+\DeclareFont{IL2/cmtt/m/sl} {cssltt(8,9,10,12)}
+\DeclareFont{IL2/cmvtt/m/n} {csvtt(8,9,10,12)}
+
+\SubstFont{IL2/cmr/b/it} {IL2/cmr/bx/it}
+\SubstFont{IL2/cmr/b/sl} {IL2/cmr/bx/sl}
+\SubstFont{IL2/cmss/b/n} {IL2/cmss/bx/n}
diff --git a/Master/texmf-dist/tex/plain/plnfss/ly1lm.pfd b/Master/texmf-dist/tex/plain/plnfss/ly1lm.pfd
new file mode 100644
index 00000000000..6c229e25f0f
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/ly1lm.pfd
@@ -0,0 +1,51 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{LY1/lmr/b/n} {texnansi-lmb(10)}
+\DeclareFont{LY1/lmr/b/sl} {texnansi-lmbo(10)}
+\DeclareFont{LY1/lmr/bx/n} {texnansi-lmbx(5,6,7,8,9,10,12)}
+\DeclareFont{LY1/lmr/bx/it} {texnansi-lmbxi(10)}
+\DeclareFont{LY1/lmr/bx/sl} {texnansi-lmbxo(10)}
+\DeclareFont{LY1/lmr/m/sc} {texnansi-lmcsc(10)}
+\DeclareFont{LY1/lmr/m/scsl} {texnansi-lmcsco(10)}
+\DeclareFont{LY1/lmr/m/n} {texnansi-lmr(5,6,7,8,9,10,12,17)}
+\DeclareFont{LY1/lmr/m/it} {texnansi-lmri(7,8,9,10,12)}
+\DeclareFont{LY1/lmr/m/sl} {texnansi-lmro(8,9,10,12)}
+\DeclareFont{LY1/lmss/m/n} {texnansi-lmss(8,9,10,12,17)}
+\DeclareFont{LY1/lmss/bx/sl} {texnansi-lmssbo(10)}
+\DeclareFont{LY1/lmss/bx/n} {texnansi-lmssbx(10)}
+\DeclareFont{LY1/lmss/sbc/n} {texnansi-lmssdc(10)}
+\DeclareFont{LY1/lmss/sbc/sl} {texnansi-lmssdo(10)}
+\DeclareFont{LY1/lmss/m/sl} {texnansi-lmsso(8,9,10,12,17)}
+\DeclareFont{LY1/lmssq/m/n} {texnansi-lmssq(8)}
+\DeclareFont{LY1/lmssq/bx/sl} {texnansi-lmssqbo(8)}
+\DeclareFont{LY1/lmssq/bx/n} {texnansi-lmssqbx(8)}
+\DeclareFont{LY1/lmssq/m/sl} {texnansi-lmssqo(8)}
+\DeclareFont{LY1/lmtt/m/sc} {texnansi-lmtcsc(10)}
+\DeclareFont{LY1/lmtt/m/n} {texnansi-lmtt(8,9,10,12)}
+\DeclareFont{LY1/lmtt/m/it} {texnansi-lmtti(10)}
+\DeclareFont{LY1/lmtt/m/sl} {texnansi-lmtto(10)}
+\DeclareFont{LY1/lmvtt/m/n} {texnansi-lmvtt(10)}
+\DeclareFont{LY1/lmvtt/m/sl} {texnansi-lmvtto(10)}
+
+\SubstFont{LY1/cmfib/b/n} {LY1/cmfib/bx/n}
+\SubstFont{LY1/cmr/b/it} {LY1/cmr/bx/it}
+\SubstFont{LY1/cmr/b/sl} {LY1/cmr/bx/sl}
+\SubstFont{LY1/cmr/b/ui} {LY1/cmr/bx/ui}
+\SubstFont{LY1/cmr/bx/ui} {LY1/cmr/m/ui}
+\SubstFont{LY1/cmss/b/n} {LY1/cmss/bx/n}
+\SubstFont{LY1/cmss/b/ui} {LY1/cmss/bx/ui}
+\SubstFont{LY1/cmss/bx/ui} {LY1/cmr/bx/ui}
+\SubstFont{LY1/cmss/m/it} {LY1/cmss/m/sl}
+\SubstFont{LY1/cmss/m/sc} {LY1/cmr/m/sc}
+\SubstFont{LY1/cmss/m/ui} {LY1/cmr/m/ui}
+\SubstFont{LY1/cmtt/b/it} {LY1/cmtt/bx/it}
+\SubstFont{LY1/cmtt/b/n} {LY1/cmtt/bx/n}
+\SubstFont{LY1/cmtt/b/ui} {LY1/cmtt/bx/ui}
+\SubstFont{LY1/cmtt/bx/it} {LY1/cmtt/m/it}
+\SubstFont{LY1/cmtt/bx/n} {LY1/cmtt/m/n}
+\SubstFont{LY1/cmtt/bx/ui} {LY1/cmtt/m/it}
+\SubstFont{LY1/cmtt/m/ui} {LY1/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/ot1cm.pfd b/Master/texmf-dist/tex/plain/plnfss/ot1cm.pfd
new file mode 100644
index 00000000000..03a9a5c261e
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/ot1cm.pfd
@@ -0,0 +1,49 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{OT1/cmdh/m/n} {cmdunh(10)}
+\DeclareFont{OT1/cmfr/m/it} {cmfi(10)}
+\DeclareFont{OT1/cmfr/m/n} {cmff(10)}
+\DeclareFont{OT1/cmfib/m/n} {cmfib(8)}
+\DeclareFont{OT1/cmr/b/n} {cmb(10)}
+\DeclareFont{OT1/cmr/bx/it} {cmbxti(10)}
+\DeclareFont{OT1/cmr/bx/n} {cmbx(5,6,7,8,9,10,12)}
+\DeclareFont{OT1/cmr/bx/sl} {cmbxsl(10)}
+\DeclareFont{OT1/cmr/m/it} {cmti(7,8,9,10,12)}
+\DeclareFont{OT1/cmr/m/n} {cmr(5,6,7,8,9,10,12,17)}
+\DeclareFont{OT1/cmr/m/sc} {cmcsc(10)}
+\DeclareFont{OT1/cmr/m/sl} {cmsl(8,9,10,12)}
+\DeclareFont{OT1/cmr/m/ui} {cmu(10)}
+\DeclareFont{OT1/cmss/bx/n} {cmssbx(10)}
+\DeclareFont{OT1/cmss/sbc/n} {cmssdc(10)}
+\DeclareFont{OT1/cmss/m/sl} {cmssi(8,9,10,12,17)}
+\DeclareFont{OT1/cmss/m/n} {cmss(8,9,10,12,17)}
+\DeclareFont{OT1/cmssq/m/sl} {cmssqi(8)}
+\DeclareFont{OT1/cmssq/m/n} {cmssq(8)}
+\DeclareFont{OT1/cmtt/m/it} {cmitt(10)}
+\DeclareFont{OT1/cmtt/m/n} {cmtt(8,9,10,12)}
+\DeclareFont{OT1/cmtt/m/sc} {cmtcsc(10)}
+\DeclareFont{OT1/cmtt/m/sl} {cmsltt(10)}
+\DeclareFont{OT1/cmvtt/m/n} {cmvtt(10)}
+
+\SubstFont{OT1/cmfib/b/n} {OT1/cmfib/bx/n}
+\SubstFont{OT1/cmr/b/it} {OT1/cmr/bx/it}
+\SubstFont{OT1/cmr/b/sl} {OT1/cmr/bx/sl}
+\SubstFont{OT1/cmr/b/ui} {OT1/cmr/bx/ui}
+\SubstFont{OT1/cmr/bx/ui} {OT1/cmr/m/ui}
+\SubstFont{OT1/cmss/b/n} {OT1/cmss/bx/n}
+\SubstFont{OT1/cmss/b/ui} {OT1/cmss/bx/ui}
+\SubstFont{OT1/cmss/bx/ui} {OT1/cmr/bx/ui}
+\SubstFont{OT1/cmss/m/it} {OT1/cmss/m/sl}
+\SubstFont{OT1/cmss/m/sc} {OT1/cmr/m/sc}
+\SubstFont{OT1/cmss/m/ui} {OT1/cmr/m/ui}
+\SubstFont{OT1/cmtt/b/it} {OT1/cmtt/bx/it}
+\SubstFont{OT1/cmtt/b/n} {OT1/cmtt/bx/n}
+\SubstFont{OT1/cmtt/b/ui} {OT1/cmtt/bx/ui}
+\SubstFont{OT1/cmtt/bx/it} {OT1/cmtt/m/it}
+\SubstFont{OT1/cmtt/bx/n} {OT1/cmtt/m/n}
+\SubstFont{OT1/cmtt/bx/ui} {OT1/cmtt/m/it}
+\SubstFont{OT1/cmtt/m/ui} {OT1/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/ot1cmr.pfd b/Master/texmf-dist/tex/plain/plnfss/ot1cmr.pfd
new file mode 100644
index 00000000000..13c28abbaf3
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/ot1cmr.pfd
@@ -0,0 +1,46 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{OT1/cmdh/m/n} {cmdunh(10)}
+\DeclareFont{OT1/cmfr/m/it} {cmfi(10)}
+\DeclareFont{OT1/cmfr/m/n} {cmff(10)}
+\DeclareFont{OT1/cmfib/m/n} {cmfib(8)}
+\DeclareFont{OT1/cmr/b/n} {cmb(10)}
+\DeclareFont{OT1/cmr/bx/it} {cmbxti(10)}
+\DeclareFont{OT1/cmr/bx/n} {cmbx(5,6,7,8,9,10,12)}
+\DeclareFont{OT1/cmr/bx/sl} {cmbxsl(10)}
+\DeclareFont{OT1/cmr/m/it} {cmti(7,8,9,10,12)}
+\DeclareFont{OT1/cmr/m/n} {cmr(5,6,7,8,9,10,12,17)}
+\DeclareFont{OT1/cmr/m/sc} {cmcsc(10)}
+\DeclareFont{OT1/cmr/m/sl} {cmsl(8,9,10,12)}
+\DeclareFont{OT1/cmr/m/ui} {cmu(10)}
+\DeclareFont{OT1/cmss/bx/n} {cmssbx(10)}
+\DeclareFont{OT1/cmss/sbc/n} {cmssdc(10)}
+\DeclareFont{OT1/cmss/m/sl} {cmssi(8,9,10,12,17)}
+\DeclareFont{OT1/cmss/m/n} {cmss(8,9,10,12,17)}
+\DeclareFont{OT1/cmssq/m/sl} {cmssqi(8)}
+\DeclareFont{OT1/cmssq/m/n} {cmssq(8)}
+\DeclareFont{OT1/cmtt/m/it} {cmitt(10)}
+\DeclareFont{OT1/cmtt/m/n} {cmtt(8,9,10,12)}
+\DeclareFont{OT1/cmtt/m/sc} {cmtcsc(10)}
+\DeclareFont{OT1/cmtt/m/sl} {cmsltt(10)}
+\DeclareFont{OT1/cmvtt/m/n} {cmvtt(10)}
+
+\DeclareFont{OML/cmmi/b/it} {cmmib(10)}
+\DeclareFont{OML/cmmi/m/it} {cmmi(5,6,7,8,9,10,12)}
+\DeclareFont{OMS/cmsy/b/n} {cmbsy(10)}
+\DeclareFont{OMS/cmsy/m/n} {cmsy(5,6,7,8,9,10)}
+\DeclareFont{OMX/cmex/m/n} {cmex(10)}
+\DeclareFont{U/cmtex/m/n} {cmtex(8,9,10)}
+
+\SubstFont{OT1/cmr/bx/ui} {OT1/cmr/m/ui}
+\SubstFont{OT1/cmss/m/it} {OT1/cmss/m/sl}
+\SubstFont{OT1/cmss/m/sc} {OT1/cmr/m/sc}
+\SubstFont{OT1/cmss/m/ui} {OT1/cmr/m/ui}
+\SubstFont{OT1/cmss/bx/ui} {OT1/cmr/bx/ui}
+\SubstFont{OT1/cmtt/bx/n} {OT1/cmtt/m/n}
+\SubstFont{OT1/cmtt/bx/it} {OT1/cmtt/m/it}
+\SubstFont{OT1/cmtt/bx/ui} {OT1/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/ot4cm.pfd b/Master/texmf-dist/tex/plain/plnfss/ot4cm.pfd
new file mode 100644
index 00000000000..d93c5eecc6c
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/ot4cm.pfd
@@ -0,0 +1,49 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{OT4/cmr/b/n} {plb(10)}
+\DeclareFont{OT4/cmr/bx/n} {plbx(5,6,7,8,9,10,12)}
+\DeclareFont{OT4/cmr/bx/sl} {plbxsl(10)}
+\DeclareFont{OT4/cmr/bx/it} {plbxti(10)}
+\DeclareFont{OT4/cmr/m/sc} {plcsc(10)}
+\DeclareFont{OT4/cmdh/m/n} {pldunh(10)}
+\DeclareFont{OT4/cmfr/m/n} {plff(10)}
+\DeclareFont{OT4/cmfr/m/it} {plfi(10)}
+\DeclareFont{OT4/cmfib/m/n} {plfib(8)}
+\DeclareFont{OT4/cmtt/m/it} {plitt(10)}
+\DeclareFont{OT4/cmr/m/n} {plr(5,6,7,8,9,10,12,17)}
+\DeclareFont{OT4/cmr/m/sl} {plsl(8,9,10,12)}
+\DeclareFont{OT4/cmtt/m/sl} {plsltt(10)}
+\DeclareFont{OT4/cmss/m/n} {plss(8,9,10,12,17)}
+\DeclareFont{OT4/cmss/bx/n} {plssbx(10)}
+\DeclareFont{OT4/cmss/sbc/n} {plssdc(10)}
+\DeclareFont{OT4/cmss/m/sl} {plssi(8,9,10,12,17)}
+\DeclareFont{OT4/cmssq/m/n} {plssq(8)}
+\DeclareFont{OT4/cmssq/m/sl} {plssqi(8)}
+\DeclareFont{OT4/cmtt/m/sc} {pltcsc(10)}
+\DeclareFont{OT4/cmr/m/it} {plti(7,8,9,10,12)}
+\DeclareFont{OT4/cmtt/m/n} {pltt(8,9,10,12)}
+\DeclareFont{OT4/cmr/m/ui} {plu(10)}
+\DeclareFont{OT4/cmvtt/m/n} {plvtt(10)}
+
+\SubstFont{OT4/cmfib/b/n} {OT4/cmfib/bx/n}
+\SubstFont{OT4/cmr/b/it} {OT4/cmr/bx/it}
+\SubstFont{OT4/cmr/b/sl} {OT4/cmr/bx/sl}
+\SubstFont{OT4/cmr/b/ui} {OT4/cmr/bx/ui}
+\SubstFont{OT4/cmr/bx/ui} {OT4/cmr/m/ui}
+\SubstFont{OT4/cmss/b/n} {OT4/cmss/bx/n}
+\SubstFont{OT4/cmss/b/ui} {OT4/cmss/bx/ui}
+\SubstFont{OT4/cmss/bx/ui} {OT4/cmr/bx/ui}
+\SubstFont{OT4/cmss/m/it} {OT4/cmss/m/sl}
+\SubstFont{OT4/cmss/m/sc} {OT4/cmr/m/sc}
+\SubstFont{OT4/cmss/m/ui} {OT4/cmr/m/ui}
+\SubstFont{OT4/cmtt/b/it} {OT4/cmtt/bx/it}
+\SubstFont{OT4/cmtt/b/n} {OT4/cmtt/bx/n}
+\SubstFont{OT4/cmtt/b/ui} {OT4/cmtt/bx/ui}
+\SubstFont{OT4/cmtt/bx/it} {OT4/cmtt/m/it}
+\SubstFont{OT4/cmtt/bx/n} {OT4/cmtt/m/n}
+\SubstFont{OT4/cmtt/bx/ui} {OT4/cmtt/m/it}
+\SubstFont{OT4/cmtt/m/ui} {OT4/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/plnfss.tex b/Master/texmf-dist/tex/plain/plnfss/plnfss.tex
new file mode 100644
index 00000000000..08d4b07db94
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/plnfss.tex
@@ -0,0 +1,403 @@
+% plnfss-1.1
+
+% Copyright 2000-2005 Han The Thanh <HanTheThanh@gmx.net>
+% and Michal Konecny <mik@konecny.aow.cz>
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% plnfss.tex - simple NFSS macros for plain TeX
+
+
+\catcode`\@=11 \endlinechar=-1 %
+
+% general purpose accumulators and shortcuts
+\newdimen\dimenA
+\newcount\countA
+\let\ex=\expandafter
+
+% how to set \baselineskip (and \strutbox) when switching to another font
+\newif\ifupdatebaselineskip % update \baselineskip (and \strutbox) at all?
+\updatebaselineskiptrue % do so by default
+\def\baselineskipscale{1.2} % the factor \baselineskip : \@fontsize
+\def\setbaselineskip{
+ \baselineskip=\@fontsize
+ \baselineskip=\baselineskipscale\baselineskip
+ \setbox\strutbox=\hbox{\vrule
+ height .7\baselineskip depth .3\baselineskip width \z@}
+}
+
+\newdimen\@fontsize
+\def\setfontencoding#1{\if^^A#1^^A\else\edef\@fontencoding{#1}\fi}
+\def\setfontfamily#1{\if^^A#1^^A\else\edef\@fontfamily{#1}\fi}
+\def\setfontseries#1{\if^^A#1^^A\else\edef\@fontseries{#1}\fi}
+\def\setfontshape#1{\if^^A#1^^A\else\edef\@fontshape{#1}\fi}
+\def\setfontsize#1{\if^^A#1^^A\else\@fontsize=#1\fi}
+
+
+\def\addfontsize#1{
+ \add\@fontsize #1
+ \selectfont
+}
+
+\def\mulfontsize#1{
+ \@fontsize=#1\@fontsize
+ \selectfont
+}
+
+\def\setfont#1/#2/#3/#4/#5/{
+ \setfontencoding{#1}
+ \setfontfamily{#2}
+ \setfontseries{#3}
+ \setfontshape{#4}
+ \setfontsize{#5}
+ \selectfont
+}
+
+\def\usefont#1#2#3#4{
+ \setfontencoding{#1}
+ \setfontfamily{#2}
+ \setfontseries{#3}
+ \setfontshape{#4}
+ \selectfont
+}
+
+\def\excs#1#2{
+ \ex#1\csname#2\endcsname
+}
+
+\def\getsizelist #1(#2){
+ \def\fontname{#1}
+ \def\sizelist{#2,END,}
+}
+
+\def\endsizelist{END}
+\def\finish#1END,{}
+
+\def\selectfontsize#1,{
+ \def\cursize{#1}
+ \ifx\cursize\empty
+ \def\selectedsize{}
+ \let\next \finish
+ \else\ifx\cursize\endsizelist
+ \edef\selectedsize{\lastsize}
+ \let\next \relax
+ \else\ifdim\@fontsize > \cursize\p@
+ \edef\lastsize{\cursize}
+ \let\next \selectfontsize
+ \else\ifx\lastsize\empty
+ \edef\selectedsize{\cursize}
+ \let\next \finish
+ \else
+ \dimenA=\@fontsize
+ \advance \dimenA \dimenA
+ \advance \dimenA -\cursize\p@
+ \advance \dimenA -\lastsize\p@
+ \relax
+ \ifdim\dimenA < \z@
+ \edef\selectedsize{\lastsize}
+ \else
+ \edef\selectedsize{\cursize}
+ \fi
+ \let\next \finish
+ \fi\fi\fi\fi
+ \next
+}
+
+\def\loadfontdecl{
+ \excs\ifx\fontdecl\relax
+ \testprefix{cm}{\@fontfamily}
+ \ifisprefix \loadfd{cm}{pfd}\fi
+ \fi
+ \excs\ifx\fontdecl\relax
+ \testprefix{lm}{\@fontfamily}
+ \ifisprefix \loadfd{lm}{pfd}\fi
+ \fi
+ \excs\ifx\fontdecl\relax
+ \loadfd{\@fontfamily}{fd}
+ \fi
+}
+
+\let\plaininput=\input
+\let\plainlowercase=\lowercase
+
+\newread\testfd
+\def\loadfd#1#2{
+ \let\next=\relax
+ \edef\inputfd{\plainlowercase{\noexpand\openin\testfd=\@fontencoding#1.#2 }}\inputfd
+ \ifeof\testfd
+ \log{PLNFSS: cannot find font definition file for %
+ family \@fontencoding/#1}
+ \else
+ \closein\testfd
+ \edef\next{\plainlowercase{\noexpand\plaininput \@fontencoding#1.#2 }}
+ \fi
+%% Temporarily set \endlinechar=-1 to prevent spurious spaces.
+%% Fix provided by Hartmut Henkel.
+ \endlinechar=-1
+ \next
+ \endlinechar=13
+}
+
+\def\selectfont{
+ \edef\fontdecl{
+ \@fontencoding/\@fontfamily/\@fontseries/\@fontshape
+ }
+ \edef\selectedfont{
+ \fontdecl/\the\@fontsize/
+ }
+ \excs\ifx\selectedfont\relax
+ \loadfontdecl
+ \excs\ifx\fontdecl\relax
+ \errmessage{Font \fontdecl\space not defined, restore the last font \lastfont}
+ \ex\setfont\lastfont\relax
+ \else
+ \edef\fontdef{\csname\fontdecl\endcsname}
+ \ex\getsizelist\fontdef
+ \def\lastsize{}
+ \ex\selectfontsize\sizelist
+ \global\ex\font\csname\selectedfont\endcsname
+ \fontname\selectedsize\space at \@fontsize
+ \edef\lastfont{\selectedfont}
+ \csname\selectedfont\endcsname
+ \ifupdatebaselineskip \setbaselineskip \fi
+ \relax
+ \fi
+ \else
+ \csname\selectedfont\endcsname
+ \ifupdatebaselineskip \setbaselineskip \fi
+ \relax
+ \fi
+}
+
+\def\getcurfont{\csname\selectedfont\endcsname}
+
+\newcount\tracingplnfss
+
+\def\DeclareFont#1#2{
+ \ex\gdef\csname#1\endcsname{#2}
+ \ifnum\tracingplnfss>0
+ \log{PLNFSS: font #1 has been defined as #2}
+ \fi
+}
+
+\def\SubstFont#1#2{
+ \ex\ifx\csname#1\endcsname\relax
+ \global\ex\let\csname#1\ex\endcsname \csname#2\endcsname
+ \ifnum\tracingplnfss>0
+ \log{PLNFSS: font #1 has been substituted by #2}
+ \fi
+ \else
+ \ifnum\tracingplnfss>0
+ \log{PLNFSS: font #1 has been already defined, substitution ignored}
+ \fi
+ \fi
+}
+
+\def\setrmdefault#1{\edef\rmdefault{#1}}
+\def\setsfdefault#1{\edef\sfdefault{#1}}
+\def\setttdefault#1{\edef\ttdefault{#1}}
+
+%% LaTeX PSNFSS support
+\def\typeout{\immediate\write17}
+\def\@makeother#1{\catcode`#1=12\relax}
+\long\def\ProvidesFile#1{
+ \begingroup
+ \endlinechar=-1 %
+ \catcode`\ 10 %
+ \@makeother\/%
+ \@makeother\&%
+ \checkoptarg
+}
+\def\checkoptarg#1{
+ \global\let\curarg=#1
+ \ifx [\curarg
+ \let\next=\ignoreoptarg
+ \else
+ \let\next=\nooptarg
+ \fi
+ \next
+}
+\def\ignoreoptarg#1]{\endgroup}
+\def\nooptarg{\endgroup\curarg}
+\def\DeclareFontFamily#1#2#3{}
+\def\@ifundefined#1#2#3{#2}
+
+\ex\newcount\csname c:0\endcsname
+\ex\newcount\csname c:1\endcsname
+\ex\newcount\csname c:2\endcsname
+\ex\newcount\csname c:3\endcsname
+\ex\newcount\csname c:4\endcsname
+\ex\newcount\csname c:5\endcsname
+\ex\newcount\csname c:6\endcsname
+\ex\newcount\csname c:7\endcsname
+\ex\newcount\csname c:8\endcsname
+\ex\newcount\csname c:9\endcsname
+\chardef\maxprefixlength=10
+
+\newif\ifisprefix
+\newcount\charindex
+\newcount\prefixlength
+
+\def\stripspaces #1{
+ \if #1^^A
+ \let\next=\relax
+ \else
+ \let\next=\stripspaces
+ \edef\curparam{\curparam#1}
+ \fi
+ \next
+}
+
+\def\readprefix#1{
+ \if #1^^A
+ \let\next=\relax
+ \prefixlength=\charindex
+ \else
+ \let\next=\readprefix
+ \ex\csname c:\the\charindex \endcsname=`#1\relax
+ \advance\charindex 1\relax
+ \ifnum \charindex>\maxprefixlength
+ \errmessage{Prefix too long, try to increase `maxprefixlength'}
+ \let\next=\skipremain
+ \fi
+ \fi
+ \next
+}
+
+\def\skipremain#1^^A{}
+\def\storeremain#1^^A{\def\remain{#1}}
+
+\def\cmpprefix#1{
+ \if #1^^A
+ \let\next=\relax
+ \else
+ \countA=`#1\relax
+ \ifnum \countA=\csname c:\the\charindex \endcsname
+ \advance\charindex 1\relax
+ \ifnum \charindex=\prefixlength
+ \isprefixtrue
+ \let\next=\storeremain
+ \else
+ \let\next=\cmpprefix
+ \fi
+ \else
+ \let\next=\skipremain
+ \isprefixfalse
+ \fi
+ \fi
+ \next
+}
+
+\def\testprefix#1#2{
+ \charindex=0 \ex\readprefix#1^^A
+ \charindex=0 \isprefixfalse \ex\cmpprefix#2^^A
+}
+
+\newcount\fontresult % 0. cannot handle; 1. substituted; 2. TFM available
+
+\def\DeclareFontShape#1#2#3#4#5#6{
+ \let\curparam=\empty
+ \let\next=\relax
+ \stripspaces #5^^A
+ \fontresult=-1\relax
+ \testprefix{<->sub*}{\curparam}
+ \ifisprefix \fontresult=1 \fi
+ \ifnum \fontresult<0
+ \testprefix{<->ssub*}{\curparam}
+ \ifisprefix \fontresult=1 \fi
+ \fi
+ \ifnum \fontresult<0
+ \testprefix{<->subf*}{\curparam}
+ \ifisprefix \fontresult=1 \fi
+ \fi
+ \ifnum \fontresult<0
+ \testprefix{<->ssubf*}{\curparam}
+ \ifisprefix \fontresult=1 \fi
+ \fi
+ \ifnum \fontresult<0
+ \testprefix{<->fixed*}{\curparam}
+ \ifisprefix \fontresult=0 \fi
+ \fi
+ \ifnum \fontresult<0
+ \testprefix{<->sfixed*}{\curparam}
+ \ifisprefix \fontresult=0 \fi
+ \fi
+ \ifnum \fontresult<0
+ \testprefix{<->s*}{\curparam}
+ \ifisprefix \fontresult=0 \fi
+ \fi
+ \ifnum \fontresult<0
+ \testprefix{<->}{\curparam}
+ \ifisprefix \fontresult=2 \fi
+ \fi
+ \ifnum \fontresult=2 % TFM available
+ \def\fontshape{#1/#2/#3/#4^^A}
+ \edef\fontdef{\remain()^^A}
+ \ex\ex\ex\LaTeXDeclareFont \ex\fontshape \fontdef
+ \else \ifnum \fontresult=1 % substituted
+ \def\fontshape{#1/#2/#3/#4^^A}
+ \edef\fontdef{#1/\remain^^A}
+ \ex\ex\ex\LaTeXSubstFont \ex\fontshape \fontdef
+ \else % \fontresult <= 0
+ \errmessage{PLNFSS cannot handle form `\curparam' of font declaration}
+ \fi \fi
+}
+
+\def\LaTeXDeclareFont#1^^A#2^^A{\DeclareFont{#1}{#2}}
+\def\LaTeXSubstFont#1^^A#2^^A{\SubstFont{#1}{#2}}
+
+\newlinechar`^^J
+\def\log#1{\immediate \write 16 {^^J#1}}
+
+%% NFSS high-level commands
+
+\def\rmfamily{\setfontfamily{\rmdefault}\selectfont}
+\def\sffamily{\setfontfamily{\sfdefault}\selectfont}
+\def\ttfamily{\setfontfamily{\ttdefault}\selectfont}
+\def\mdseries{\setfontseries{m}\selectfont}
+\def\bfseries{\setfontseries{b}\selectfont}
+\def\upshape{\setfontshape{ui}\selectfont}
+\def\itshape{\setfontshape{it}\selectfont}
+\def\slshape{\setfontshape{sl}\selectfont}
+\def\scshape{\setfontshape{sc}\selectfont}
+\def\normalfont{\setfontseries{m}\setfontshape{n}\selectfont}
+
+\def\textrm#1{{\rmfamily #1}}
+\def\textsf#1{{\sffamily #1}}
+\def\texttt#1{{\ttfamily #1}}
+\def\textmd#1{{\mdseries #1}}
+\def\textbf#1{{\bfseries #1}}
+\def\textup#1{{\upshape #1}}
+\def\textit#1{{\itshape #1\/}}
+\def\textsl#1{{\slshape #1\/}}
+\def\textsc#1{{\scshape #1}}
+
+\let\rm=\rmfamily
+\let\sf=\sffamily
+\let\tt=\ttfamily
+\let\md=\mdseries
+\let\bf=\bfseries
+\let\up=\upshape
+\let\it=\itshape
+\let\sl=\slshape
+\let\sc=\scshape
+
+%% Default settings
+
+\setfontencoding{OT1}
+\setfontfamily{cmr}
+\setfontseries{m}
+\setfontshape{n}
+\setfontsize{10pt}
+\setrmdefault{cmr}
+\setttdefault{cmtt}
+\setsfdefault{cmss}
+\edef\lastfont{
+ \@fontencoding/
+ \@fontfamily/
+ \@fontseries/
+ \@fontshape/
+ \the\@fontsize/
+}
+
+\catcode`\@=12 \endlinechar=13 %
diff --git a/Master/texmf-dist/tex/plain/plnfss/qxlm.pfd b/Master/texmf-dist/tex/plain/plnfss/qxlm.pfd
new file mode 100644
index 00000000000..9a6acaca180
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/qxlm.pfd
@@ -0,0 +1,51 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{QX/lmr/b/n} {qx-lmb(10)}
+\DeclareFont{QX/lmr/b/sl} {qx-lmbo(10)}
+\DeclareFont{QX/lmr/bx/n} {qx-lmbx(5,6,7,8,9,10,12)}
+\DeclareFont{QX/lmr/bx/it} {qx-lmbxi(10)}
+\DeclareFont{QX/lmr/bx/sl} {qx-lmbxo(10)}
+\DeclareFont{QX/lmr/m/sc} {qx-lmcsc(10)}
+\DeclareFont{QX/lmr/m/scsl} {qx-lmcsco(10)}
+\DeclareFont{QX/lmr/m/n} {qx-lmr(5,6,7,8,9,10,12,17)}
+\DeclareFont{QX/lmr/m/it} {qx-lmri(7,8,9,10,12)}
+\DeclareFont{QX/lmr/m/sl} {qx-lmro(8,9,10,12)}
+\DeclareFont{QX/lmss/m/n} {qx-lmss(8,9,10,12,17)}
+\DeclareFont{QX/lmss/bx/sl} {qx-lmssbo(10)}
+\DeclareFont{QX/lmss/bx/n} {qx-lmssbx(10)}
+\DeclareFont{QX/lmss/sbc/n} {qx-lmssdc(10)}
+\DeclareFont{QX/lmss/sbc/sl} {qx-lmssdo(10)}
+\DeclareFont{QX/lmss/m/sl} {qx-lmsso(8,9,10,12,17)}
+\DeclareFont{QX/lmssq/m/n} {qx-lmssq(8)}
+\DeclareFont{QX/lmssq/bx/sl} {qx-lmssqbo(8)}
+\DeclareFont{QX/lmssq/bx/n} {qx-lmssqbx(8)}
+\DeclareFont{QX/lmssq/m/sl} {qx-lmssqo(8)}
+\DeclareFont{QX/lmtt/m/sc} {qx-lmtcsc(10)}
+\DeclareFont{QX/lmtt/m/n} {qx-lmtt(8,9,10,12)}
+\DeclareFont{QX/lmtt/m/it} {qx-lmtti(10)}
+\DeclareFont{QX/lmtt/m/sl} {qx-lmtto(10)}
+\DeclareFont{QX/lmvtt/m/n} {qx-lmvtt(10)}
+\DeclareFont{QX/lmvtt/m/sl} {qx-lmvtto(10)}
+
+\SubstFont{QX/cmfib/b/n} {QX/cmfib/bx/n}
+\SubstFont{QX/cmr/b/it} {QX/cmr/bx/it}
+\SubstFont{QX/cmr/b/sl} {QX/cmr/bx/sl}
+\SubstFont{QX/cmr/b/ui} {QX/cmr/bx/ui}
+\SubstFont{QX/cmr/bx/ui} {QX/cmr/m/ui}
+\SubstFont{QX/cmss/b/n} {QX/cmss/bx/n}
+\SubstFont{QX/cmss/b/ui} {QX/cmss/bx/ui}
+\SubstFont{QX/cmss/bx/ui} {QX/cmr/bx/ui}
+\SubstFont{QX/cmss/m/it} {QX/cmss/m/sl}
+\SubstFont{QX/cmss/m/sc} {QX/cmr/m/sc}
+\SubstFont{QX/cmss/m/ui} {QX/cmr/m/ui}
+\SubstFont{QX/cmtt/b/it} {QX/cmtt/bx/it}
+\SubstFont{QX/cmtt/b/n} {QX/cmtt/bx/n}
+\SubstFont{QX/cmtt/b/ui} {QX/cmtt/bx/ui}
+\SubstFont{QX/cmtt/bx/it} {QX/cmtt/m/it}
+\SubstFont{QX/cmtt/bx/n} {QX/cmtt/m/n}
+\SubstFont{QX/cmtt/bx/ui} {QX/cmtt/m/it}
+\SubstFont{QX/cmtt/m/ui} {QX/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/t1lm.pfd b/Master/texmf-dist/tex/plain/plnfss/t1lm.pfd
new file mode 100644
index 00000000000..b8ab9e5ef71
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/t1lm.pfd
@@ -0,0 +1,51 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{T1/lmr/b/n} {ec-lmb(10)}
+\DeclareFont{T1/lmr/b/sl} {ec-lmbo(10)}
+\DeclareFont{T1/lmr/bx/n} {ec-lmbx(5,6,7,8,9,10,12)}
+\DeclareFont{T1/lmr/bx/it} {ec-lmbxi(10)}
+\DeclareFont{T1/lmr/bx/sl} {ec-lmbxo(10)}
+\DeclareFont{T1/lmr/m/sc} {ec-lmcsc(10)}
+\DeclareFont{T1/lmr/m/scsl} {ec-lmcsco(10)}
+\DeclareFont{T1/lmr/m/n} {ec-lmr(5,6,7,8,9,10,12,17)}
+\DeclareFont{T1/lmr/m/it} {ec-lmri(7,8,9,10,12)}
+\DeclareFont{T1/lmr/m/sl} {ec-lmro(8,9,10,12)}
+\DeclareFont{T1/lmss/m/n} {ec-lmss(8,9,10,12,17)}
+\DeclareFont{T1/lmss/bx/sl} {ec-lmssbo(10)}
+\DeclareFont{T1/lmss/bx/n} {ec-lmssbx(10)}
+\DeclareFont{T1/lmss/sbc/n} {ec-lmssdc(10)}
+\DeclareFont{T1/lmss/sbc/sl} {ec-lmssdo(10)}
+\DeclareFont{T1/lmss/m/sl} {ec-lmsso(8,9,10,12,17)}
+\DeclareFont{T1/lmssq/m/n} {ec-lmssq(8)}
+\DeclareFont{T1/lmssq/bx/sl} {ec-lmssqbo(8)}
+\DeclareFont{T1/lmssq/bx/n} {ec-lmssqbx(8)}
+\DeclareFont{T1/lmssq/m/sl} {ec-lmssqo(8)}
+\DeclareFont{T1/lmtt/m/sc} {ec-lmtcsc(10)}
+\DeclareFont{T1/lmtt/m/n} {ec-lmtt(8,9,10,12)}
+\DeclareFont{T1/lmtt/m/it} {ec-lmtti(10)}
+\DeclareFont{T1/lmtt/m/sl} {ec-lmtto(10)}
+\DeclareFont{T1/lmvtt/m/n} {ec-lmvtt(10)}
+\DeclareFont{T1/lmvtt/m/sl} {ec-lmvtto(10)}
+
+\SubstFont{T1/cmfib/b/n} {T1/cmfib/bx/n}
+\SubstFont{T1/cmr/b/it} {T1/cmr/bx/it}
+\SubstFont{T1/cmr/b/sl} {T1/cmr/bx/sl}
+\SubstFont{T1/cmr/b/ui} {T1/cmr/bx/ui}
+\SubstFont{T1/cmr/bx/ui} {T1/cmr/m/ui}
+\SubstFont{T1/cmss/b/n} {T1/cmss/bx/n}
+\SubstFont{T1/cmss/b/ui} {T1/cmss/bx/ui}
+\SubstFont{T1/cmss/bx/ui} {T1/cmr/bx/ui}
+\SubstFont{T1/cmss/m/it} {T1/cmss/m/sl}
+\SubstFont{T1/cmss/m/sc} {T1/cmr/m/sc}
+\SubstFont{T1/cmss/m/ui} {T1/cmr/m/ui}
+\SubstFont{T1/cmtt/b/it} {T1/cmtt/bx/it}
+\SubstFont{T1/cmtt/b/n} {T1/cmtt/bx/n}
+\SubstFont{T1/cmtt/b/ui} {T1/cmtt/bx/ui}
+\SubstFont{T1/cmtt/bx/it} {T1/cmtt/m/it}
+\SubstFont{T1/cmtt/bx/n} {T1/cmtt/m/n}
+\SubstFont{T1/cmtt/bx/ui} {T1/cmtt/m/it}
+\SubstFont{T1/cmtt/m/ui} {T1/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/t5cm.pfd b/Master/texmf-dist/tex/plain/plnfss/t5cm.pfd
new file mode 100644
index 00000000000..7b0f8ce085f
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/t5cm.pfd
@@ -0,0 +1,49 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{T5/cmdh/m/n} {vndunh(10)}
+\DeclareFont{T5/cmfr/m/it} {vnfi(10)}
+\DeclareFont{T5/cmfr/m/n} {vnff(10)}
+\DeclareFont{T5/cmfib/m/n} {vnfib(8)}
+\DeclareFont{T5/cmr/b/n} {vnb(10)}
+\DeclareFont{T5/cmr/bx/it} {vnbxti(10)}
+\DeclareFont{T5/cmr/bx/n} {vnbx(5,6,7,8,9,10,12)}
+\DeclareFont{T5/cmr/bx/sl} {vnbxsl(10)}
+\DeclareFont{T5/cmr/m/it} {vnti(7,8,9,10,12)}
+\DeclareFont{T5/cmr/m/n} {vnr(5,6,7,8,9,10,12,17)}
+\DeclareFont{T5/cmr/m/sc} {vncsc(10)}
+\DeclareFont{T5/cmr/m/sl} {vnsl(8,9,10,12)}
+\DeclareFont{T5/cmr/m/ui} {vnu(10)}
+\DeclareFont{T5/cmss/bx/n} {vnssbx(10)}
+\DeclareFont{T5/cmss/sbc/n} {vnssdc(10)}
+\DeclareFont{T5/cmss/m/sl} {vnssi(8,9,10,12,17)}
+\DeclareFont{T5/cmss/m/n} {vnss(8,9,10,12,17)}
+\DeclareFont{T5/cmssq/m/sl} {vnssqi(8)}
+\DeclareFont{T5/cmssq/m/n} {vnssq(8)}
+\DeclareFont{T5/cmtt/m/it} {vnitt(10)}
+\DeclareFont{T5/cmtt/m/n} {vntt(8,9,10,12)}
+\DeclareFont{T5/cmtt/m/sc} {vntcsc(10)}
+\DeclareFont{T5/cmtt/m/sl} {vnsltt(10)}
+\DeclareFont{T5/cmvtt/m/n} {vnvtt(10)}
+
+\SubstFont{T5/cmfib/b/n} {T5/cmfib/bx/n}
+\SubstFont{T5/cmr/b/it} {T5/cmr/bx/it}
+\SubstFont{T5/cmr/b/sl} {T5/cmr/bx/sl}
+\SubstFont{T5/cmr/b/ui} {T5/cmr/bx/ui}
+\SubstFont{T5/cmr/bx/ui} {T5/cmr/m/ui}
+\SubstFont{T5/cmss/b/n} {T5/cmss/bx/n}
+\SubstFont{T5/cmss/b/ui} {T5/cmss/bx/ui}
+\SubstFont{T5/cmss/bx/ui} {T5/cmr/bx/ui}
+\SubstFont{T5/cmss/m/it} {T5/cmss/m/sl}
+\SubstFont{T5/cmss/m/sc} {T5/cmr/m/sc}
+\SubstFont{T5/cmss/m/ui} {T5/cmr/m/ui}
+\SubstFont{T5/cmtt/b/it} {T5/cmtt/bx/it}
+\SubstFont{T5/cmtt/b/n} {T5/cmtt/bx/n}
+\SubstFont{T5/cmtt/b/ui} {T5/cmtt/bx/ui}
+\SubstFont{T5/cmtt/bx/it} {T5/cmtt/m/it}
+\SubstFont{T5/cmtt/bx/n} {T5/cmtt/m/n}
+\SubstFont{T5/cmtt/bx/ui} {T5/cmtt/m/it}
+\SubstFont{T5/cmtt/m/ui} {T5/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/t5cmr.pfd b/Master/texmf-dist/tex/plain/plnfss/t5cmr.pfd
new file mode 100644
index 00000000000..73256dc3801
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/t5cmr.pfd
@@ -0,0 +1,49 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{T5/cmdh/m/n} {vndunh(10)}
+\DeclareFont{T5/cmfr/m/it} {vnfi(10)}
+\DeclareFont{T5/cmfr/m/n} {vnff(10)}
+\DeclareFont{T5/cmfib/m/n} {vnfib(8)}
+\DeclareFont{T5/cmr/b/n} {vnb(10)}
+\DeclareFont{T5/cmr/bx/it} {vnbxti(10)}
+\DeclareFont{T5/cmr/bx/n} {vnbx(5,6,7,8,9,10,12)}
+\DeclareFont{T5/cmr/bx/sl} {vnbxsl(10)}
+\DeclareFont{T5/cmr/m/it} {vnti(7,8,9,10,12)}
+\DeclareFont{T5/cmr/m/n} {vnr(5,6,7,8,9,10,12,17)}
+\DeclareFont{T5/cmr/m/sc} {vncsc(10)}
+\DeclareFont{T5/cmr/m/sl} {vnsl(8,9,10,12)}
+\DeclareFont{T5/cmr/m/ui} {vnu(10)}
+\DeclareFont{T5/cmss/bx/n} {vnssbx(10)}
+\DeclareFont{T5/cmss/sbc/n} {vnssdc(10)}
+\DeclareFont{T5/cmss/m/sl} {vnssi(8,9,10,12,17)}
+\DeclareFont{T5/cmss/m/n} {vnss(8,9,10,12,17)}
+\DeclareFont{T5/cmssq/m/sl} {vnssqi(8)}
+\DeclareFont{T5/cmssq/m/n} {vnssq(8)}
+\DeclareFont{T5/cmtt/m/it} {vnitt(10)}
+\DeclareFont{T5/cmtt/m/n} {vntt(8,9,10,12)}
+\DeclareFont{T5/cmtt/m/sc} {vntcsc(10)}
+\DeclareFont{T5/cmtt/m/sl} {vnsltt(10)}
+\DeclareFont{T5/cmvtt/m/n} {vnvtt(10)}
+
+\SubstFont{T5/cmss/m/it} {T5/cmss/m/sl}{}
+\SubstFont{T5/cmss/m/sc} {T5/cmr/m/sc}{}
+\SubstFont{T5/cmss/m/ui} {T5/cmr/m/ui}{}
+\SubstFont{T5/cmr/bx/ui} {T5/cmr/m/ui}{}
+\SubstFont{T5/cmss/bx/ui} {T5/cmr/bx/ui}{}
+\SubstFont{T5/cmtt/bx/n} {T5/cmtt/m/n}{}
+\SubstFont{T5/cmtt/bx/it} {T5/cmtt/m/it}{}
+\SubstFont{T5/cmtt/bx/ui} {T5/cmtt/m/it}{}
+
+\SubstFont{T5/cmfib/b/n} {T5/cmfib/bx/n}
+\SubstFont{T5/cmr/b/it} {T5/cmr/bx/it}
+\SubstFont{T5/cmr/b/sl} {T5/cmr/bx/sl}
+\SubstFont{T5/cmss/b/n} {T5/cmss/bx/n}
+\SubstFont{T5/cmr/b/ui} {T5/cmr/bx/ui}
+\SubstFont{T5/cmss/b/ui} {T5/cmss/bx/ui}
+\SubstFont{T5/cmtt/b/n} {T5/cmtt/bx/n}
+\SubstFont{T5/cmtt/b/it} {T5/cmtt/bx/it}
+\SubstFont{T5/cmtt/b/ui} {T5/cmtt/bx/ui}
diff --git a/Master/texmf-dist/tex/plain/plnfss/t5lm.pfd b/Master/texmf-dist/tex/plain/plnfss/t5lm.pfd
new file mode 100644
index 00000000000..33a36ca90df
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/t5lm.pfd
@@ -0,0 +1,51 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{T5/lmr/b/n} {t5-lmb(10)}
+\DeclareFont{T5/lmr/b/sl} {t5-lmbo(10)}
+\DeclareFont{T5/lmr/bx/n} {t5-lmbx(5,6,7,8,9,10,12)}
+\DeclareFont{T5/lmr/bx/it} {t5-lmbxi(10)}
+\DeclareFont{T5/lmr/bx/sl} {t5-lmbxo(10)}
+\DeclareFont{T5/lmr/m/sc} {t5-lmcsc(10)}
+\DeclareFont{T5/lmr/m/scsl} {t5-lmcsco(10)}
+\DeclareFont{T5/lmr/m/n} {t5-lmr(5,6,7,8,9,10,12,17)}
+\DeclareFont{T5/lmr/m/it} {t5-lmri(7,8,9,10,12)}
+\DeclareFont{T5/lmr/m/sl} {t5-lmro(8,9,10,12)}
+\DeclareFont{T5/lmss/m/n} {t5-lmss(8,9,10,12,17)}
+\DeclareFont{T5/lmss/bx/sl} {t5-lmssbo(10)}
+\DeclareFont{T5/lmss/bx/n} {t5-lmssbx(10)}
+\DeclareFont{T5/lmss/sbc/n} {t5-lmssdc(10)}
+\DeclareFont{T5/lmss/sbc/sl} {t5-lmssdo(10)}
+\DeclareFont{T5/lmss/m/sl} {t5-lmsso(8,9,10,12,17)}
+\DeclareFont{T5/lmssq/m/n} {t5-lmssq(8)}
+\DeclareFont{T5/lmssq/bx/sl} {t5-lmssqbo(8)}
+\DeclareFont{T5/lmssq/bx/n} {t5-lmssqbx(8)}
+\DeclareFont{T5/lmssq/m/sl} {t5-lmssqo(8)}
+\DeclareFont{T5/lmtt/m/sc} {t5-lmtcsc(10)}
+\DeclareFont{T5/lmtt/m/n} {t5-lmtt(8,9,10,12)}
+\DeclareFont{T5/lmtt/m/it} {t5-lmtti(10)}
+\DeclareFont{T5/lmtt/m/sl} {t5-lmtto(10)}
+\DeclareFont{T5/lmvtt/m/n} {t5-lmvtt(10)}
+\DeclareFont{T5/lmvtt/m/sl} {t5-lmvtto(10)}
+
+\SubstFont{T5/cmfib/b/n} {T5/cmfib/bx/n}
+\SubstFont{T5/cmr/b/it} {T5/cmr/bx/it}
+\SubstFont{T5/cmr/b/sl} {T5/cmr/bx/sl}
+\SubstFont{T5/cmr/b/ui} {T5/cmr/bx/ui}
+\SubstFont{T5/cmr/bx/ui} {T5/cmr/m/ui}
+\SubstFont{T5/cmss/b/n} {T5/cmss/bx/n}
+\SubstFont{T5/cmss/b/ui} {T5/cmss/bx/ui}
+\SubstFont{T5/cmss/bx/ui} {T5/cmr/bx/ui}
+\SubstFont{T5/cmss/m/it} {T5/cmss/m/sl}
+\SubstFont{T5/cmss/m/sc} {T5/cmr/m/sc}
+\SubstFont{T5/cmss/m/ui} {T5/cmr/m/ui}
+\SubstFont{T5/cmtt/b/it} {T5/cmtt/bx/it}
+\SubstFont{T5/cmtt/b/n} {T5/cmtt/bx/n}
+\SubstFont{T5/cmtt/b/ui} {T5/cmtt/bx/ui}
+\SubstFont{T5/cmtt/bx/it} {T5/cmtt/m/it}
+\SubstFont{T5/cmtt/bx/n} {T5/cmtt/m/n}
+\SubstFont{T5/cmtt/bx/ui} {T5/cmtt/m/it}
+\SubstFont{T5/cmtt/m/ui} {T5/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/plnfss/ts1lm.pfd b/Master/texmf-dist/tex/plain/plnfss/ts1lm.pfd
new file mode 100644
index 00000000000..c41ead4a76c
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/plnfss/ts1lm.pfd
@@ -0,0 +1,51 @@
+% plnfss-1.1
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of plnfss. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\DeclareFont{TS1/lmr/b/n} {ts1-lmb(10)}
+\DeclareFont{TS1/lmr/b/sl} {ts1-lmbo(10)}
+\DeclareFont{TS1/lmr/bx/n} {ts1-lmbx(5,6,7,8,9,10,12)}
+\DeclareFont{TS1/lmr/bx/it} {ts1-lmbxi(10)}
+\DeclareFont{TS1/lmr/bx/sl} {ts1-lmbxo(10)}
+\DeclareFont{TS1/lmr/m/sc} {ts1-lmcsc(10)}
+\DeclareFont{TS1/lmr/m/scsl} {ts1-lmcsco(10)}
+\DeclareFont{TS1/lmr/m/n} {ts1-lmr(5,6,7,8,9,10,12,17)}
+\DeclareFont{TS1/lmr/m/it} {ts1-lmri(7,8,9,10,12)}
+\DeclareFont{TS1/lmr/m/sl} {ts1-lmro(8,9,10,12)}
+\DeclareFont{TS1/lmss/m/n} {ts1-lmss(8,9,10,12,17)}
+\DeclareFont{TS1/lmss/bx/sl} {ts1-lmssbo(10)}
+\DeclareFont{TS1/lmss/bx/n} {ts1-lmssbx(10)}
+\DeclareFont{TS1/lmss/sbc/n} {ts1-lmssdc(10)}
+\DeclareFont{TS1/lmss/sbc/sl} {ts1-lmssdo(10)}
+\DeclareFont{TS1/lmss/m/sl} {ts1-lmsso(8,9,10,12,17)}
+\DeclareFont{TS1/lmssq/m/n} {ts1-lmssq(8)}
+\DeclareFont{TS1/lmssq/bx/sl} {ts1-lmssqbo(8)}
+\DeclareFont{TS1/lmssq/bx/n} {ts1-lmssqbx(8)}
+\DeclareFont{TS1/lmssq/m/sl} {ts1-lmssqo(8)}
+\DeclareFont{TS1/lmtt/m/sc} {ts1-lmtcsc(10)}
+\DeclareFont{TS1/lmtt/m/n} {ts1-lmtt(8,9,10,12)}
+\DeclareFont{TS1/lmtt/m/it} {ts1-lmtti(10)}
+\DeclareFont{TS1/lmtt/m/sl} {ts1-lmtto(10)}
+\DeclareFont{TS1/lmvtt/m/n} {ts1-lmvtt(10)}
+\DeclareFont{TS1/lmvtt/m/sl} {ts1-lmvtto(10)}
+
+\SubstFont{TS1/cmfib/b/n} {TS1/cmfib/bx/n}
+\SubstFont{TS1/cmr/b/it} {TS1/cmr/bx/it}
+\SubstFont{TS1/cmr/b/sl} {TS1/cmr/bx/sl}
+\SubstFont{TS1/cmr/b/ui} {TS1/cmr/bx/ui}
+\SubstFont{TS1/cmr/bx/ui} {TS1/cmr/m/ui}
+\SubstFont{TS1/cmss/b/n} {TS1/cmss/bx/n}
+\SubstFont{TS1/cmss/b/ui} {TS1/cmss/bx/ui}
+\SubstFont{TS1/cmss/bx/ui} {TS1/cmr/bx/ui}
+\SubstFont{TS1/cmss/m/it} {TS1/cmss/m/sl}
+\SubstFont{TS1/cmss/m/sc} {TS1/cmr/m/sc}
+\SubstFont{TS1/cmss/m/ui} {TS1/cmr/m/ui}
+\SubstFont{TS1/cmtt/b/it} {TS1/cmtt/bx/it}
+\SubstFont{TS1/cmtt/b/n} {TS1/cmtt/bx/n}
+\SubstFont{TS1/cmtt/b/ui} {TS1/cmtt/bx/ui}
+\SubstFont{TS1/cmtt/bx/it} {TS1/cmtt/m/it}
+\SubstFont{TS1/cmtt/bx/n} {TS1/cmtt/m/n}
+\SubstFont{TS1/cmtt/bx/ui} {TS1/cmtt/m/it}
+\SubstFont{TS1/cmtt/m/ui} {TS1/cmtt/m/it}
diff --git a/Master/texmf-dist/tex/plain/rsfs/scrload.tex b/Master/texmf-dist/tex/plain/rsfs/scrload.tex
new file mode 100644
index 00000000000..ca38e676f77
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/rsfs/scrload.tex
@@ -0,0 +1,14 @@
+% The following allows the use of Ralph Smith's Formal Script symbols
+% in Plain TeX documents. Use \scr like \cal.
+% Set the font sizes and restore the `at' clauses if you want them bigger.
+% You can use this method in LaTeX, but only at one basic size.
+% If you need symbols in LaTeX titles, captions, etc., work it out or ask
+% a LaTeXpert.
+
+\font\tenscr=rsfs10 % scaled \magstep1
+\font\sevenscr=rsfs7 % scaled \magstep1
+\font\fivescr=rsfs5 % scaled \magstep1
+\skewchar\tenscr='177 \skewchar\sevenscr='177 \skewchar\fivescr='177
+\newfam\scrfam \textfont\scrfam=\tenscr \scriptfont\scrfam=\sevenscr
+\scriptscriptfont\scrfam=\fivescr
+\def\scr{\fam\scrfam}
diff --git a/Master/texmf-dist/tex/plain/siam/docuptex.tex b/Master/texmf-dist/tex/plain/siam/docuptex.tex
new file mode 100644
index 00000000000..2f673f9b7bf
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/siam/docuptex.tex
@@ -0,0 +1,456 @@
+%%
+%% SIAM Plain TeX macro documentation.
+%% Paul Duggan
+%% 9-15-94
+
+\input siamptex.sty
+
+% The definitions are to provide a verbatim text environment
+
+\def\uncatcodespecials{\def\do##1{\catcode`##1=12 }\dospecials}
+\def\setupverbatim{\tt%
+ \def\par{\leavevmode\endgraf}%
+ \obeylines\uncatcodespecials\obeyspaces}
+{\obeyspaces\global\let =\ }
+\def\doverbatim#1{\def\next##1#1{##1\endgroup}\next}
+\def\verbatim{\begingroup\setupverbatim\doverbatim}
+
+
+\overfullrule=0pt
+
+\topmatter
+\vol{1}
+\no{1, pp.~000--000}
+\SIMAC
+\date{October 1994}
+\copyyear{1994}
+\code{000}
+
+\title Using SIAM's \TeX\ Macros\endtitle
+
+\shorttitle{USING SIAM'S \TeX\ MACROS}
+
+\recdate{*}{August 9, 1994.
+This work was supported by the Society for Industrial
+and Applied Mathematics}
+
+\author Paul Duggan\fnmark{$^{\dag}$}\endauthor
+
+\address{$^{\dag}$}{Society for Industrial and Applied Mathematics,
+Philadelphia, Pennsylvania ({\tt duggan@siam.org}). Questions, comments,
+or corrections to this document may be directed to that e-mail address}
+
+\abstract{Documentation is given for use of the SIAM \TeX\ macros.
+Instructions and suggestions for compliance with SIAM style
+standards are also included.}
+\subjclass\endsubjclass
+\keywords\endkeywords
+
+
+\endtopmatter
+
+
+\heading{1}{Introduction}
+This file is documentation for the SIAM \TeX\ macros and provides
+instruction for submission of files formatted in \TeX.
+
+To accommodate authors who electronically typeset their manuscripts,
+SIAM supports the use of \TeX. To ensure quality typesetting according
+to SIAM style standards, SIAM provides a \TeX\ macro style file.
+Using \TeX\ to format a manuscript should simplify the editorial process
+and lessen the author's proofreading burden. However,
+it is still necessary to proofread the galley proofs with care.
+
+Electronic files should not be submitted until the paper has been
+accepted, and then not until requested to do so by someone in the SIAM
+office. Once an article is slated for an issue,
+someone from the SIAM office will contact the author about any or all
+of the following: editorial and stylistic queries,
+supplying the source files (and any supplementary macros)
+for the properly formatted article, and handling figures.
+
+When submitting electronic files (electronic submissions)
+(to {\tt tex@siam.org}) write the journal, issue, and author's
+name in the subject line of the message.
+Authors are responsible for ensuring that the paper generated
+from the source files exactly matches the paper that
+was accepted for publication by the review editor. If it does not,
+information on how it differs should be indicated in the transmission
+of the file. When submitting a file, please be sure to include any
+additional macros (other than those provided by SIAM) that will be
+needed to run the paper.
+
+SIAM uses MS-DOS-based computers for \TeX\ processing. Therefore
+all filenames should be restricted to eight characters or less,
+plus a three character extension.
+
+Once the files are corrected here at SIAM, we will mail the revised
+proofs to be read against the original edited hardcopy
+manuscript. We are not
+set up to shuttle back and forth varying electronic versions of each
+paper, so we must rely on hard copy of the galleys. The author's proofreading
+is an important but easily overlooked step. Even if SIAM were not
+to introduce a single editorial change into your manuscript, there
+would still be a need to check, because electronic transmission
+can introduce errors.
+
+
+This distribution contains the following items: {\tt siamptex.sty}, the
+main macro package; this documentation file; and a sample file {\tt
+pexample.tex}. The sample file is representative of the standard way
+to apply the macros. The rest of this paper emphasizes some aspects
+of applying the macros, points out options and special cases, and
+describes the SIAM style standards.
+The SIAM macros make use of the small caps font, {\tt cmcsc}, which
+is not installed in some systems. This font along with other
+AMS-\TeX\ fonts can be retrieved from the American Mathematical
+Society via anonymous FTP to {\tt e-math.ams.com}.
+
+\heading{2}{Headings}
+The top matter of a journal is in a standard format. The macro
+and initial definitions should be included as follows.
+
+\verbatim:
+\input siamptex.sty
+\overfullrule=0pt
+
+:
+
+The \verbatim:\overfullrule: should be set wider than zero points
+while still being edited by the author to assist in locating
+lines that extend beyond the margins.
+
+
+The ``slugline,'' which contains the journal and copyright information, is
+created by special commands following the \verbatim:\topmatter:.
+
+\verbatim:
+\SIMAX
+\vol{0}
+\no{0, pp.~000--000}
+\date{April 1995}
+\copyyear{1995}
+\code{000}
+
+:
+Because authors will probably not know exact
+volume, number, date, or code, insert zeros in their place as
+above. SIAM will place the appropriate information in
+the commands in production; however, the commands must be used.
+\verbatim:\SIMAX:, \verbatim:\SIAP:, \verbatim:\SICOMP:,
+\verbatim:\SICON:, \verbatim:\SIDMA:, \verbatim:\SIMA:,
+\verbatim:\SIMAX:, \verbatim:\SINUM:, \verbatim:\SIOPT:,
+\verbatim:\SISC:, and \verbatim:\SIREV: are the commands provided
+to include the journal title in the heading.
+
+The title and author(s) of the paper are indicated by the
+\verbatim:\title\endtitle: and \verbatim:\author\endauthor: commands.
+Author support and address information is indicated as follows.
+
+\verbatim:
+\author A.~U. Thorone\fnmark{$^{\dag}$}
+ \and A.~U. Thortwo\fnmark{$^{\ddag}$}\endauthor
+
+\address{$^{\dag}$}{Address of the first author and support}
+\address{$^{\ddag}$}{Address of the second author and support}
+
+:
+
+If more than two authors are included, each should be separated
+by a comma after the \verbatim:\fnmark{}: command. If more than one
+author shares common footnote information, then a common footnote
+and footnote mark should be used.
+
+The commands \verbatim:\shorttitle{}: and \verbatim:\shortauthor{}:
+are used to designate the running heads for the paper.
+
+The \verbatim:\abstract{}:, \verbatim:\keywords\endkeywords:, and
+\verbatim:\subjclass\endsubjclass:\break commands are used to include the
+abstract, key words, and AMS subject classification numbers, respectively.
+If there is to be only one subject classification number, the
+\verbatim:\subjclass: command should be preceded by
+\verbatim:\oneclass:. (If the AMS numbers are unknown, leave that
+information blank.) Authors are responsible for providing AMS numbers.
+They can be found in the Annual Index of Math Reviews or
+through {\tt e-Math} ({\tt telnet e-math.ams.com}; login
+and password are both {\tt e-math}).
+Complete the topmatter section by including \verbatim:\endtopmatter:.
+
+
+
+\heading{3}{Equations and mathematics}
+Equations and mathematics
+are handled by standard \TeX\ commands. SIAM style is
+for numbered equations to appear flush with the left margin. The
+\verbatim:\leqno: and \verbatim:\leqalignno{}: commands are used for
+this purpose. If any letters indicating subequations are to be used
+with the numbers, they should be set in roman type.
+
+Clear equation formatting using \TeX\ can be challenging. Aside from
+the regular \TeX\ documentation, authors will find Nicholas
+J. Higham's book {\it Handbook of Writing for the Mathematical
+Sciences\/} [1] useful for guidelines and tips on formatting with
+\TeX. The book covers many other topics related to article
+writing as well.
+
+Authors commonly make mistakes by using
+ \verbatim:<:, \verbatim:>:, \verbatim:\mid:, and
+\verbatim:\parallel: as delimiters, instead of
+\verbatim:\langle:, \verbatim:\rangle:, \verbatim:|:,
+and \verbatim:\|:. The incorrect symbols have particular
+meanings distinct from the correct ones and should not be confused.
+
+\bigskip
+\eightpoint
+\halign{#\hfil\quad&&#\hfil\quad\cr
+&{\bf Wrong} &&&& {\bf Right}&\cr
+&\verbatim:<x, y>: & $<x, y>$ &&&
+ \verbatim:\langle x, y\rangle: & $\langle x, y\rangle$ \cr
+&\verbatim:5 < \mid A \mid: & $5 < \mid A \mid$ &&&
+ \verbatim:5 < |A|: & $5 < |A|$ \cr
+& \verbatim:6x = \parallel x: \cr
+&\verbatim: - 1\parallel_{i}: & $6x = \parallel x - 1\parallel_{i}$ &&&
+ \verbatim:6x = \|x - 1\|_{i}: & $6x = \| x - 1\|_{i}$\cr}
+ \tenpoint\rm
+\bigskip
+
+Another common author error is to put large (and even medium sized)
+matrices in-line with the text, rather than displaying them. This
+creates unattractive line spacing problems, and should be assiduously
+avoided. Text-sized matrices (like $({a \atop b} {b \atop c})$) might
+be used but anything much more complex than the example cited will
+not be easy to read and should be displayed.
+
+More information on the formatting of equations and aligned
+equations is found in Knuth [2]. Authors bear primary responsibility
+for formatting their equations within margins and in an aesthetically
+pleasing and informative manner.
+
+The SIAM macros include additional roman math words, or ``log-like"
+functions, to those provided in standard \TeX. The following
+commands are added: \verbatim:\const:, \verbatim:\diag:, \verbatim:\grad:,
+\verbatim:\Range:, \verbatim:\rank:, and \verbatim:\supp:.
+These commands produce the same word as the command name
+in math mode, in roman type.
+
+
+Groups of equations that are not directly related to each other
+should normally be centered independently. This may be done through
+the \TeX\ math command \verbatim:\displaylines{}:. Numbering
+independently centered equations can be difficult, so Seroul and
+Levy's [3] macro \verbatim:\ldisplaylinesno{}: has been included
+in {\tt siamptex.sty}. \verbatim:\ldisplaylinesno{}: works just
+like \verbatim:\leqalignno:, except no ampersand is used to align
+the equations, since they are to be centered.
+
+\heading{4}{Text formatting}
+Section and subsection headings are both included using the
+\verbatim:\heading{}{}: command, which requires two arguments. The
+first argument is for the number, and the second
+is the title of the section or
+subsection.
+
+No extra spacing should be placed between paragraphs. The
+\verbatim:\heading: command inserts the required spacing between
+sections.
+
+SIAM style does not normally make use of plain \TeX's
+\verbatim:\item: command. The \verbatim:\meti: command is preferred for
+lists of items beginning with, for instance, bullets ($\bullet$) or
+roman numerals (iv). The \verbatim:\meti: command retains normal
+paragraph shape but places all labels aligned flush right. For
+example:
+
+\verbatim:
+\meti{(i)} This is the first item.
+\meti{(ii)} This is the second item of the series.
+
+:
+
+produces
+
+\meti{(i)} This is the first item.
+\meti{(ii)} This is the second item of the series.
+\medskip
+
+The \verbatim:\meti: macro was adapted from Seroul and Levy [3].
+
+\heading{4.1}{Punctuation}
+All standard punctuation and all numerals should be set in roman type
+(upright) even within italic text.
+The only exceptions are periods and commas. They may
+be set to match the surrounding text.
+
+References to sections should use the symbol \S, generated by
+\verbatim:\S:. (If the reference begins a sentence, the term ``Section''
+should be spelled out in full.) Authors should not redefine
+\verbatim:\S:, say, to be a calligraphic S, because \verbatim:\S:
+must be reserved for use as the section symbol.
+
+Authors sometimes confuse the use of various types of dashes.
+Hyphens (\verbatim:-:, -) are used for some compound words (many
+such words should have no hyphen but must be run together,
+like ``nonzero,'' or split apart, like ``well defined.''
+Minus signs (\verbatim:$-$:, $-$)
+should be used in math to represent subtraction or negative numbers.
+En dashes (\verbatim:--:, --) are used for ranges (like 3--5,
+June--August), or for joined names (like Runge--Kutta). Em dashes
+(\verbatim:---:, ---) are used to set off a clause---such as this
+one---from the rest of the sentence.
+
+\heading{4.2}{Theorems, lemmas, and proofs}
+Theorems, lemmas, propositions, and so forth, have macros included
+for correct formatting. Below is an example.
+
+\verbatim:
+\thm{Theorem 4.1}
+Sample theorem included for illustration.
+Numbers and parentheses, like equation $(3.2)$, should be set
+in roman type. Note that words in displayed equations, such as
+$$ x^2 = Y^2 \sin z^2 \hbox{ for all } x $$
+will appear in italic type in a theorem, though normally
+they should appear in roman.\endthm
+
+:
+
+This sample produces Theorem 4.1 below.
+
+\thm{Theorem 4.1}
+Sample theorem included for illustration.
+Numbers and parentheses, like equation $(3.2)$, should be set
+in roman type. Note that words in displayed equations, such as
+$$ x^2 = Y^2 \sin z^2 \hbox{ for all } x $$
+will appear in italic type in a theorem, though normally
+they should appear in roman.\endthm
+
+
+The \verbatim:\cor:, \verbatim:\dfn:, \verbatim:\lem:, and
+\verbatim:\prop: commands
+all work similarly. Named theorems should be designated with the
+title in roman type, enclosed in parentheses.
+
+\verbatim:
+\thm{Theorem 3.2 {\rm (sample theorem with title)}}
+
+:
+
+Proofs are illustrated in the following example:
+
+\verbatim:
+\prf{Proof}
+The body of the proof.
+\qquad\endproof
+
+:
+
+If the proof ends with a displayed equation, the \verbatim:\endproof:
+box \endproof\ should appear two ems (\verbatim:\qquad:)
+from the end of the equation on line with it horizontally.
+
+\heading{5}{Figures and tables}
+Figures and tables are best handled in \TeX\ by putting them within a
+\verbatim:\topinsert \endinsert: or \verbatim:\midinsert \endinsert:
+environment. The appropriate amount
+of space should be left for the figure, and the caption should be
+formatted to be centered or as a paragraph if more than one line. Text
+should be italic, eight-point type, with the words ``Fig.~\#'' in small
+caps. A sample follows.
+
+\verbatim:
+\midinsert
+\vskip 22pc
+\centerline{\eightpoint{\smc Fig.~5.1}. \it Italic caption text.}
+\endinsert
+
+:
+
+SIAM tables should be formatted in eight-point type, with enough
+space left between entries and surrounding lines so that they do not
+touch. Take particular care with super- and subscript characters.
+See Knuth [2] or Seroul and Levy [3] for more information on
+the formatting of tables in \TeX. Table captions are similar to
+figure captions, but the word ``Table'' and the number appear on
+a separate line from the caption text.
+
+SIAM supports the use of {\tt psfig} for including {\smc PostScript}
+figures. All {\smc Post\-Script} figures should be sent in separate
+files. See the {\tt psfig} documentation (from wherever you acquired
+{\tt psfig}) for more details on the use
+of this style option. It is a good idea to submit high-quality
+hardcopy of all {\smc Post\-Script} figures just in case there
+is difficulty in the reproduction of the figure. Figures produced
+by other non-\TeX\ methods should be included as high-quality
+hardcopy when the manuscript is submitted.
+
+\heading{6}{Bibliographies}
+References are handled using the \verbatim:\Refs: command.
+All names are to be keyed initial upper case cap and small
+caps. Only the first and middle initials, followed by the
+last name, are to be used. Last names should never be listed first.
+Some representative sample entries are illustrated below:
+
+\verbatim|
+\Refs
+
+\ref 1\\ {\smc A.~U Thorone}, {\it Title of paper with lower case
+letters}, SIAM J. Abbrev. Correctly, 2 (1992), pp.~000--000.\endref
+
+\ref 2\\ \sameauthor, % generates a 3-em rule
+{\it Title of paper appearing in book}, in Book Title:
+With All Initial Caps, Publisher, Location, 1992.\endref
+
+\ref 3\\ {\smc W. Riter},
+{\it Title of another paper appearing in a book}, in The Book
+Title, E.~D. One, E.~D. Two, and A.~N. Othereditor, eds.,
+Publisher, Location, 1992, pp.~000--000.\endref
+
+\ref 4\\ {\smc A.~U. Thorone, A.~U. Thortwo, and A.~U. Thorthree},
+{\it Title of Book{\rm III:} Note Initial Caps},
+Publisher, Location, pp.~000--000, 1994.\endref
+
+\ref 5\\ {\smc A. Notherauth}, {\it Title of paper that's not yet
+published}, SIAM J. Abbrev. Correctly, to appear.\endref
+|
+
+Other types of references fall into the same general pattern. See the
+sample file or any SIAM journal for other examples. Authors must
+correctly format their bibliography to be considered as having used
+the macros correctly. An incorrectly formatted bibliography is not
+only time-consuming for SIAM to process
+but it is possible that errors may be introduced by
+keyboarders/copy editors.
+
+As an alternative to the above style of reference, an alphanumeric
+code may be used in place of the number (e.g., [AUTh90]). The same
+\verbatim:\Refs: and \verbatim:\ref: commands are used, but the
+command \verbatim:\resetrefindent{}: must be used before the
+\verbatim:\Refs: command, with the widest expected alphanumeric code
+as an argument.
+
+Another alternative is no number, simply the authors' names and
+the year of publication following in parentheses. The rest of the
+format is identical. To get an entry with no number in brackets
+before it, use the \verbatim:\xref: command. This method is acceptable
+but not encouraged.
+
+\heading{7}{Conclusion} Many other style suggestions and tips
+could be given to help authors but are beyond the scope of this
+document. Simple mistakes can be avoided by increasing your familiarity
+with how \TeX\ functions. The books referred to throughout this document
+are also useful to the author who wants clear, beautiful typography
+with minimal mistakes.
+
+\Refs
+
+\ref 1\\ {\smc N.~J. Higham}, {\it Handbook of Writing for
+the Mathematical Sciences}, Society for Industrial and Applied
+Mathematics, Philadelphia, PA, 1993.\endref
+
+\ref 2\\ {\smc D.~E. Knuth}, {\it The \TeX book}, Addison Wesley,
+Reading, MA, 1986.\endref
+
+\ref 3\\ {\smc R. Seroul and S. Levy}, {\it A Beginner's Book of
+{\rm \TeX}}, Springer-Verlag, Berlin, New York, 1991.\endref
+
+
+\bye
diff --git a/Master/texmf-dist/tex/plain/siam/pexample.tex b/Master/texmf-dist/tex/plain/siam/pexample.tex
new file mode 100644
index 00000000000..eb2c2f50101
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/siam/pexample.tex
@@ -0,0 +1,523 @@
+% Sample file for SIAM's plain TeX macro package.
+% 9-14-94 Paul Duggan
+\input siamptex.sty
+
+% author defined macros included for illustrative purposes only.
+% symbols for real numbers, complex, ... (\Bbb font from AMS-TeX
+% fonts v2.x also usable)
+
+\def\fR{{\bf R}}
+\def\fC{{\bf C}}
+\def\fK{{\bf K}}
+
+% misc. operators
+\def\Span {\mathop{\hbox{\rm span}}\nolimits}
+\def\Range{\mathop{\hbox{\rm Range}}\nolimits}
+\def\Det {\mathop{\hbox{\rm det}}}
+\def\Re {\mathop{\hbox{\rm Re}}}
+\def\Im {\mathop{\hbox{\rm Im}}}
+\def\Deg {\mathop{\hbox{\rm deg}}}
+
+% misc.
+
+\def\Kr{\hbox{\bf K}}
+\def\K { { K}}
+\def\sT{\hbox{$\cal T$}}
+\def\sB{\hbox{$\cal B$}}
+
+\def\bmatrix#1{\left[ \matrix{#1} \right]}
+
+% Each of the following commands have to be filled in with
+% something. If the data is unknown, the arguments can be
+% left blank.
+
+\topmatter
+\journal{SIAM J. E{\smc XAMPLE} F{\smc ILES}}
+\vol{1}
+\no{1, pp.~000--000}
+\date{October 1994}
+\copyyear{1994}
+\code{000}
+
+
+\title SAMPLE FILE FOR SIAM PLAIN \TeX\ MACRO
+PACKAGE\endtitle
+
+\shorttitle{SIAM MACRO EXAMPLE}
+
+\recdate{*}{October 1, 1994; accepted by the editors Month, x,
+xxxx. This work was supported by the Society for Industrial
+and Applied Mathematics, Philadelphia, Pennsylvania}
+
+\author Paul Duggan\fnmark{$^{\dag}$} \and Various A.~U.
+Thors\fnmark{$^{\ddag}$}\endauthor
+
+\address{$^{\dag}$}{Composition Department, Society for
+Industrial and Applied Mathematics, 3600 University City
+Science Center, Philadelphia, Pennsylvania, 19104-2688
+({\tt duggan@siam.org})}
+
+\address{$^{\ddag}$}{Various affiliations, supported by
+various foundation grants}
+
+\abstract{An example of SIAM \TeX\ macros is presented.
+Various aspects of composing manuscripts for SIAM's journals
+are illustrated with actual examples from accepted
+manuscripts. SIAM's stylistic standards are adhered to
+throughout, and illustrated.}
+
+\keywords polynomials, SI model\endkeywords
+
+\subjclass 33H40, 35C01\endsubjclass
+
+% if there is only one AMS subject number, the
+% command \oneclass should precede the \subjclass command.
+
+\endtopmatter
+
+\heading{1}{Introduction and examples}
+This paper presents a sample file for the use of SIAM's
+\TeX\ macro package. It illustrates the features of the
+macro package, using actual examples culled from various
+papers published in SIAM's journals. This sample will provide
+examples of how to use the
+macros to generate standard elements of journal papers,
+e.g., equations, theorems, or figures. This paper also
+serves as an exmple of SIAM's stylistic preferences for the
+formatting of such elements as bibliographic references,
+displayed equations, and aligned equations, among others.
+Some special circumstances are not dealt with this the
+sample file; for that information, please see the
+associated documentation file.
+
+{\it Note}. This paper is not to be read in any form for
+content. The conglomeration of equations, lemmas, and other
+text elements were put together solely for typographic
+illustrative purposes.
+
+For theoretical reasons, it is desirable to find characterizations of the
+conditions of breakdown of the algorithms that are based on the key {\it
+spaces} $\Kr_n(r^{(0)},A)$ and $\Kr_n(\tilde r^{(0)},A^*)$ rather than
+the {\it formulas} for the algorithms. In particular, we will
+characterize breakdown of the three Lanczos algorithms in terms of the
+{\it moment matrices} $\K_n(\tilde r^{(0)},A^*)^*\K_n(r^{(0)},A)$ and
+$\K_n(\tilde r^{(0)},A^*)^*A\K_n(r^{(0)},A)$. Here we define the matrix
+$\K_n(v,A)=\bmatrix{v&Av&\cdots&A^{n-1}v\cr}$, a matrix whose columns span
+the Krylov space $\Kr_n(v,A)$.
+
+The following three theorems give exact conditions for breakdown of the
+above algorithms. Detailed proofs may be found in [3]. A
+result similar to Theorem 2 is found in [1]; see also [5].
+
+
+\thm{Theorem 1 {\rm (Lanczos--Orthodir breakdown)}}
+Suppose Lanczos/Orthodir has successfully generated
+$u^{(n-1)}\not=u$. Then the following are equivalent:
+
+\meti{$\bullet$} The algorithm does not break down at step $n$.
+
+\meti{$\bullet$} The matrix $\K_n(\tilde r^{(0)},A^*)^*A\K_n(r^{(0)},A)$
+is nonsingular.
+
+\meti{$\bullet$} There exists a unique iterate $u^{(n)}$ satisfying $(2)$.
+\endthm
+
+
+\thm{Theorem 2 {\rm (Lanczos--Orthomin breakdown)}}
+Suppose Lanczos/Orthomin has successfully generated $u^{(n-1)}\not=u$.
+Then the following are equivalent:
+
+\meti{$\bullet$} The algorithm breaks down at step $n$.
+
+\meti{$\bullet$} Either
+$\K_{n-1}(\tilde r^{(0)},A^*)^*\K_{n-1}(r^{(0)},A)$ or
+$\K_n(\tilde r^{(0)},A^*)^*A\K_n(r^{(0)},A)$ is singular.
+\endthm
+
+
+\prop{Proposition 3 {\rm (zero sets of polynomials)}}
+Let $\fK=\fR$ or $\fC$. If $P$ is a complex nonzero polynomial in the
+variables $x_1,x_2,\ldots ,x_N\in\fK$, then $P(x)\not=0$ for almost every
+$x=(x_1,x_2,\ldots,x_N)\in \fK^N$.
+\endprop
+
+\prf{Proof}
+If $\fK=\fR$ and $P$ is nonzero, then either $\Re P(z)$ or $\Im P(z)$
+is a nonzero (real) polynomial; if $\fK=\fC$, we may decompose each $x_i$
+into real and imaginary parts, giving $2N$ variables, and consider the
+real polynomial $P(x)^*P(x)$. In any case, we may assume without loss of
+generality that $P$ is a nonzero real polynomial of real variables.
+
+We know that for any point $x$, the polynomial $P$ is the zero polynomial
+if and only if the polynomial and all its derivatives are zero at $x$.
+Let $V_0$ denote the set of zeros of $P$ in $\fR^N$. Suppose the set
+$V_0$ has nonzero measure. We know from integration theory (see, for
+example, [6, pp.\ 128f]) that almost every point of $V_0$ is
+a point of density in each of the $N$ coordinate directions. We recall
+that $x\in\fR$ is a point of density of a measurable subset
+$S\subseteq\fR$ if for any sequence of intervals $I_n$ such that
+$x\in I_n$ with measure $m(I_n)\rightarrow 0$ we have
+$m(S\cap I_n)/m(I_n)\rightarrow 1$.
+
+It is easily seen that at such points in $V_0$, the first
+partial derivatives of $P$ must necessarily be zero. Let $V_1$ be the
+points of $V_0$ where all first derivatives are also zero. We have just
+shown that $V_0$ and $V_1$ both have the same nonzero measure. The
+argument
+may be repeated for $V_1$ to show all second partial derivatives of $f$
+are zero at almost every point of $V_0$, and so forth, resulting in the
+fact that $P$ and all its derivatives are zero on a set which has nonzero
+measure. The proof is completed by selecting any one of these points.
+\qquad\endproof
+
+\thm{Theorem 4 {\rm (Lanczos breakdown, iterate $n$)}}
+Let $\fK=\fR$ or $\fC$, $A, \tilde Z\in\fK^{N\times N}$, and $n\leq d(A)$.
+Then exactly one of the following three conditions holds for the Lanczos
+method with $\tilde r^{(0)}=\tilde Z^* r^{(0)}$.
+
+\meti{\rm (i)} Hard breakdown at step $n$ occurs for every vector
+$r^{(0)}\in\sT_n(A)\cap\fK^N$ $($and thus at least for almost every
+$r^{(0)}\in\fK^N)$.
+
+\meti{\rm (ii)} Hard breakdown at step $n$ occurs for a nonempty measure-zero
+set of vectors $r^{(0)}\in\sT_n(A)\cap\fK^N$
+$($and thus a nonempty measure-zero set of vectors in $\fK^N)$.
+
+\meti{\rm (iii)} Hard breakdown at step $n$ occurs for no vectors
+$r^{(0)}\in\sT_n(A)\cap\fK^N$ $($and thus for at most a measure-zero set of
+vectors in $\fK^N)$.
+
+Furthermore, the same result holds if ``hard breakdown'' is replaced by
+``soft breakdown'' in the statement of this theorem.
+\endthm
+
+
+\prf{Proof}
+For vectors $r^{(0)}\in\sT_n(A)\cap\fK^N$, breakdown is equivalent to
+singularity of an appropriate moment matrix. The set $\sT_n(A)\cap\fK^N$
+amounts to almost
+every vector in $\fK^N$. Now, by Corollary 5, the set $S_n$ of vectors in
+$\fK^N$ for which the moment matrix of dimension $n$ is singular is either
+the set of all vectors or a subset of measure zero. If the moment matrix
+is singular for every vector (i.e., $S_n=\fK^N$), then it is singular for
+every vector in $\sT_n(A)\cap\fK^N$, giving case (i) above. Otherwise the
+set $S_n$ is measure zero in $\fK^N$. Thus
+$\sB_n\equiv S_n\cap(\sT_n(A)\cap\fK^N)$ is of measure zero
+and is either empty or nonempty.
+\qquad\endproof
+
+\heading{2}{Tables and figures}
+In Tables 1 and 2 we consider the unpreconditioned problem and also the (left)
+ILU- and MILU-preconditioned problem (see [2] and [4]). Runs for which
+convergence was not possible in ITMAX iterations are labeled by (--).
+
+
+\topinsert
+\hbox{\vbox{ \eightpoint
+{\parindent 0pt
+\centerline{\smc Table 1}
+\centerline{\it Model problem, $h^{-1}=128$, {\rm ITMAX=3000}.
+ Number of iterations.}\vskip 6pt
+\hfil\vbox{\offinterlineskip
+\hrule
+\halign{&\vrule#&\strut\ \hfil#\ \cr
+height2pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+&{\rm method $\backslash$ Dh: } &
+ &0&&2${}^{-3}$&&2${}^{-2}$&&2${}^{-1}$&&2${}^{0}$&
+ &2${}^{1}$&&2${}^{ 2}$&&2${}^{ 3}$&&2${}^{ 4}$&&2${}^{5}$&\cr
+height2pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+\noalign{\hrule}
+height2pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+&{GMRES}($\infty$) \hfill &
+& 290&& 269&& 245&& 220&& 200&& 189&& 186&& 189&& 207&& 249&\cr
+&{BCG} \hfill &
+& 308&& 341&& 299&&1518&& -- && -- && -- && -- && 533&& -- &\cr
+&{BCG}{\rm, random $u^{(0)}$} \hfill &
+& 309&& 354&& 300&& 310&& 313&& 301&& 299&& 302&& 290&& 293&\cr
+&{BCGNB} \hfill &
+& 308&& 353&& 284&& 338&& 253&& 240&& 243&& 240&& 302&& 962&\cr
+&{CGS} \hfill &
+& 272&& 254&& 222&& -- && -- && -- && -- && -- && -- && -- &\cr
+&{CGS}{\rm, random $u^{(0)}$} \hfill &
+& 193&& 189&& 200&& 192&& 193&& 175&& 225&& 212&& 216&& 197&\cr
+&{CGSNB} \hfill &
+& 272&& 284&& 212&& 196&& 151&& 162&& 158&& 173&& 156&& 256&\cr
+height1pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+} \hrule}\hfil}}}
+\endinsert
+
+
+\topinsert
+
+\hbox{\vbox{ \eightpoint
+{\parindent 0pt
+\centerline{\smc Table 2}
+
+\centerline{\it Model Problem, $h^{-1}=128$,}
+\centerline{\it {\rm MILU}-preconditioning, {\rm ITMAX=500.}
+Number of iterations.}
+
+\medskip
+
+\hfil\vbox{\offinterlineskip
+\hrule
+\halign{&\vrule#&\strut\ \hfil#\ \cr
+height2pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+&{\rm Method $\backslash$ Dh: } &
+ &0&&2${}^{-3}$&&2${}^{-2}$&&2${}^{-1}$&&2${}^{0}$&
+ &2${}^{1}$&&2${}^{ 2}$&&2${}^{ 3}$&&2${}^{ 4}$&&2${}^{5}$&\cr
+height2pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+\noalign{\hrule}
+height2pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+&{\rm {GMRES}($\infty$)} \hfill &
+& 27&& 25&& 24&& 26&& 28&& 28&& 25&& 19&& 14&& 10&\cr
+&{\rm {GMRES}($\infty$), random $u^{(0)}$} \hfill &
+& 33&& 29&& 28&& 29&& 31&& 31&& 29&& 24&& 19&& 14&\cr
+&{\rm {BCG}} \hfill &
+& 31&& 27&& 29&& 33&& 30&& 37&& 30&& 23&& 15&& 10&\cr
+% &{BCG}, random $u^{(0)}$, $\gamma=.1$ \hfill &
+% & 35&& 30&& 31&& 35&& 40&& 37&& 34&& 27&& 20&& 15&\cr
+&{\rm {BCG}, random $u^{(0)}$} \hfill &
+& 38&& 34&& 33&& 37&& 44&& 40&& 38&& 29&& 23&& 18&\cr
+&{\rm {BCGNB}} \hfill &
+& 28&& 27&& 29&& 30&& 34&& 35&& 30&& 23&& 15&& 10&\cr
+&{\rm {CGS}} \hfill &
+& 21&& 18&& 17&& 20&& 22&& 22&& 19&& 15&& 9&& 6&\cr
+&{\rm {CGS}, random $u^{(0)}$} \hfill &
+& 24&& 18&& 20&& 22&& 22&& 23&& 21&& 16&& 12&& 9&\cr
+&{\rm {CGSNB}} \hfill &
+& 21&& 18&& 17&& 20&& 22&& 27&& 20&& 15&& 9&& 6&\cr
+height1pt&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&\cr
+} \hrule}\hfil}}}
+\endinsert
+
+We make the following observations about these runs.
+
+\meti{$\bullet$} For the unpreconditioned problem, the standard
+{BCG} and {CGS} algorithms break down in a number of cases, but the use
+of random $u^{(0)}$ or the use of {BCGNB} or {CGSNB}
+resulted in convergence. Furthermore, the iteration counts for the
+algorithms {BCG} and {BCGNB} are in
+general comparatively close to those of the ``best'' method,
+{GMRES}($\infty$), while these algorithms have short economical
+recurrences, unlike {GMRES}($\infty$). This underscores the
+importance of the Lanczos algorithms as economical solution techniques.
+
+\meti{$\bullet$} For the ILU-preconditioned problems, in most cases
+all methods worked well. For the case of $Dh=1$, {BCG} gave
+an excessive number of iterations, but this was remedied significantly
+by {BCGNB} and much more so
+by the use of random $u^{(0)}$. Similarly, {CGS} could
+not converge, but {CGSNB} and {CGS} with random
+$u^{(0)}$ both converged.
+
+\meti{$\bullet$} For all of the MILU-preconditioned problems, all of
+the Lanczos-type algorithms performed quite well. In particular, the
+{BCG} algorithm gave approximately the same number of
+iterations as {GMRES}($\infty$).
+
+Figures 1 and 2 give representative plots of the convergence behavior of the
+algorithms for the case of $h^{-1}=128$, $Dh=4$, and no preconditioning.
+These results show that the new algorithms keep the residual size
+better behaved than the standard {BCG} and {CGS}
+algorithms over the course of the run.
+
+\topinsert
+\vskip 3.2in
+\centerline{\eightpoint\smc Fig.~1. \it Residual
+behavior: $h^{-1}=128$, $Dh=4$.}
+\endinsert
+
+
+\topinsert
+ \vskip 3.2in
+\centerline{\eightpoint\smc Fig.~2. \it Residual
+behavior: $h^{-1}=128$, $Dh=4$.}
+\endinsert
+
+We now consider a more difficult class of finite difference problems,
+namely, central finite differencing applied to the Dirichlet problem
+$$ -u_{xx}(x,y) - u_{yy}(x,y) +
+ D[(y-\textstyle{1\over 2}\displaystyle) u_x(x,y) +
+ (x-\textstyle{1\over 3}\displaystyle)
+ (x-\textstyle{2\over 3}\displaystyle) u_y(x,y)], $$
+$$ - 43\pi^2u(x,y) = G(x,y) \quad {\rm on}\ \Omega=[0,1]^2,$$
+$$u(x,y) = 1 + xy \quad \hbox{\rm on}\ \partial\Omega,$$
+with $G(x,y)$ chosen as before so that the true solution is $u(x,y)=1+xy$.
+Again, we let $h$ denote the mesh size in each direction. For $D=0$
+and $h$ small, the matrix generated by this problem is a symmetric
+indefinite matrix with 16 distinct negative eigenvalues and the rest
+of the spectrum positive.
+
+The standard conjugate residual algorithm applied to this problem with
+$h^{-1}=128$ and $D=0$ requires 766 iterations to converge to
+$||r^{(n)}||/||b||<\zeta=10^{-6}$. In any case, this is a difficult
+problem to solve.
+
+ \def\qed{\vrule height8pt width4pt depth0pt\par\medskip}
+ \def\Zero{{\bf 0}}
+ \def\dis{\displaystyle}
+ \def\b{\beta}
+ \def\r{\rho}
+ \def\X{{\bf X}}
+ \def\Y{{\bf Y}}
+ \def\bb{{\bar \beta}}
+ \def\tbcr{\theta\bb c_h \rho_h}
+ \def\ep{\varepsilon}
+
+
+
+Figures 3(a) and 3(b) show the compartmental diagrams for SI models without
+and with deaths due to the disease, for the situation in which the infectious
+period has only one stage. Figures 4(a) and 4(b) give the corresponding models
+with $m$ stages of infection. Venereal
+warts, caused by the human papilloma virus, and ordinary herpes are examples
+of sexually transmitted diseases without deaths
+due to the disease, although both are not quite SI diseases because of
+partial immunity. AIDS is the example of an SI disease with death due to
+the disease. Although our main focus is on the latter, we present results
+on SI models without deaths due to the
+disease because the simplification in the dynamics of such models
+ throws light on the case with disease-related deaths.
+
+\topinsert
+\vskip 2in
+\centerline{\eightpoint {\smc Fig.} 3(a). SI {\it model for subgroup $i$, without death
+due to the disease.}}
+\vskip 2in
+\centerline{\eightpoint {\smc Fig.} 3(b). SI {\it model with death due to the disease.}}
+\endinsert
+
+\topinsert
+\vskip 2in
+\centerline{\eightpoint {\smc Fig.} 4(a). SI {\it model without deaths due to the
+disease with $m$ stages of infection.}}
+\vskip 2in
+\centerline{\eightpoint {\smc Fig.} 4(b). SI {\it model with deaths due to the disease,
+with $m$ stages of infection.}}
+\endinsert
+
+\heading{3}{Equations and alignments}
+The equations for the system follow directly from the definitions and the
+compartmental diagrams. For one infected stage with no disease-related
+deaths, the equations are
+$$ \dot X_i=-X_ig_i-\mu X_i+U_i, \leqno(1)$$
+$$ \dot Y_i=X_ig_i-\mu Y_i. \leqno(2)$$
+If there are multiple stages to the infection, (2) is replaced by
+(3)--(5) as follows:
+$$\leqalignno{\dot Y_{i1}&=X_ig_i-(k+\mu)Y_{i1}, &(3)\cr
+\dot Y_{ir}&=kY_{i,r-1}-(k+\mu)Y_{ir},\qquad r=2,\ldots,m-1 &(4)\cr
+\dot Y_{im}&=kY_{i,m-1}-\mu Y_{im}. &(5)\cr }$$
+
+
+
+\heading{3.1}{The SI model with structured mixing}
+In this subsection we write the equations for the SI model with
+structured mixing, with one infected stage and with deaths due to the
+disease. The equations for multiple infected stages follow easily, as do
+those for SI models without death due to the disease. Recall that $f_{is}$
+gives the fraction of population subgroup $i$'s
+contacts that are made in activity group $s$. The total contact rate of
+susceptibles from population subgroup $i$ in activity group $s$ must be
+$c_iX_if_{is}$. Let $\rho_{ij}(s)$ be the fraction of the contacts of group
+$i$ that are with members of group $j$, within activity group $s$.
+Assuming random allocation of the susceptibles and infecteds from each
+population subgroup to the activity groups, the fraction infected in group
+$j$ in activity group $s$ must be $Y_j/N_j$, giving
+$$ c_iX_if_{is}\rho_{ij}(s)\beta_j{Y_j \over N_j}\leqno(6) $$
+for the rate at which susceptibles in $i$ are infected by contacts
+with infecteds from $j$ in activity group $s$. Thus, in this case, $g_i$ is
+given by
+$$
+ g_i=c_i\sum_sf_{is}\sum_j\rho_{ij}(s)\beta_j{Y_j \over N_j},
+\leqno(7)
+ $$
+and (1a) and (1b) become
+$$ \dot X_i=-c_iX_i\sum_sf_{is}\sum_j\rho_{ij}(s)\beta_j{Y_j \over
+N_j}-\mu X_i+U_i, \leqno(8) $$
+$$ \dot Y_i=c_iX_i\sum_sf_{is}\sum_j\rho_{ij}(s)\beta_j{Y_j \over
+N_j}-(\mu+k)Y_i. \leqno(9) $$
+
+\heading{3.2}{Structured mixing within activity groups}
+If the mixing within activity groups is proportional mixing, then
+$\rho_{ij}(s)$ is given by (10):
+$$\rho_{ij}(s)={f_{js}c_jN_j\over \sum_pf_{ps}c_pN_p}, \leqno(10)$$
+and (8) and (9) become (11) and (12):
+$$\dot X_i=-c_iX_i\sum_sf_{is}{\sum_jf_{js}c_j\beta_jY_j \over
+\sum_jf_{js}c_jN_j}-\mu X_i+U_i \leqno(11)$$
+$$\dot Y_i=c_iX_i\sum_sf_{is}{\sum_jf_{js}c_j\beta_jY_j \over
+\sum_jf_{js}c_jN_j}-(k+\mu)Y_i. \leqno(12)$$
+
+Expressions (11) and (12) show an important consequence of death due
+to the disease. If there are no deaths due to the disease, $N_j$ is
+constant on the asymptotically stable invariant subspace $U_j=\mu
+N_j$ for all $j$, and the first term, the nonlinear term, in
+(11) and (12) is a sum of {\it quadratic} terms. If there are deaths
+due to the disease, $N_j$ is no longer constant and the first term is
+a sum of rational expressions, each homogeneous of degree one. This
+observation extends to SIS, SIR, and SIRS models.
+
+
+
+\Refs
+
+
+\ref 1\\
+{\smc R. Fletcher}, {\it Conjugate gradient methods for indefinite
+systems}, in Numerical Analysis Dundee 1975, G.~A. Watson, ed.,
+Springer-Verlag, New York, Lecture Notes in Math. 506,
+1976, pp. 73--89.
+\endref
+
+
+\ref 2\\
+{\smc I. Gustafsson}, {\it Stability and rate of convergence of
+modified incomplete Cholesky factorization methods}, Ph.D. thesis,
+Chalmers University of Technology and the University of Goteborg,
+Goteborg, Sweden, 1979.
+\endref
+
+
+\ref 3\\
+{\smc W.~D. Joubert}, {\it Generalized conjugate gradient and
+Lanczos methods for the solution of nonsymmetric systems of linear
+equations}, Ph.D. thesis and Report
+CNA-238, Center for Numerical Analysis, University of Texas,
+Austin, TX, January 1990.
+\endref
+
+
+\ref 4\\
+{\smc J.~A. Meijerink and H.~A. van der Vorst}, {\it An iterative
+solution method for linear systems of which the coefficient matrix is
+a symmetric $M$-matrix}, Math. Comp., 31 (1977), pp.~148--162.
+\endref
+
+
+
+\ref 5\\
+{\smc Y.~Saad}, {\it The Lanczos biorthogonalization algorithm and
+other oblique projection methods for solving large unsymmetric systems},
+SIAM J. Numer. Anal., 19 (1982), pp. 485--506.
+\endref
+
+
+\ref 6\\
+{\smc S. Saks}, {\it The Theory of the Integral}, G.~E. Stechert,
+New York, 1937.
+\endref
+
+\ref 7\\
+{\smc M. Tinkham}, {\it Introduction to
+Superconductivity}, McGraw-Hill, New York, 1975.
+\endref
+
+\bye
diff --git a/Master/texmf-dist/tex/plain/siam/siamptex.sty b/Master/texmf-dist/tex/plain/siam/siamptex.sty
new file mode 100644
index 00000000000..3ffce26af64
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/siam/siamptex.sty
@@ -0,0 +1,373 @@
+% SIAMPTEX.STY; 12-11-92; Paul Duggan, Society for Industrial
+% and Applied Mathematics. From
+% Ralph Youngen's siamtex.sty
+% 9-14-94 ; Paul Duggan Revised.
+% This file may be freely distributed but may not be altered in
+% any way.
+%
+% This is a file of macros and definitions for creating an article
+% for publication in a SIAM journal.
+%
+% Make the @ sign a letter for internal control sequences.
+\catcode`\@=11
+%
+% Report the version number of this package.
+\message{ *** SIAM Plain TeX macro package, version
+ 2.1.1, SEPTEMBER-1994 ***}
+%
+%%%
+%%% FONTS
+%%%
+\font\tenrm=cmr10
+\font\tenbf=cmbx10
+\font\tenit=cmti10
+\font\tentt=cmtt10
+\font\tensmc=cmcsc10
+\def\tenpoint{%
+ \def\rm{\fam0\tenrm}\def\bf{\fam\bffam\tenbf}%
+ \def\it{\fam\itfam\tenit}\def\smc{\tensmc}\def\tt{\tentt}
+ \textfont0=\tenrm \scriptfont0=\sevenrm
+ \textfont1=\teni \scriptfont1=\seveni
+ \textfont2=\tensy \scriptfont2=\sevensy
+ \textfont3=\tenex \scriptfont3=\tenex
+\baselineskip=12pt\rm}%
+
+\font\ninerm=cmr9
+\font\ninebf=cmbx9
+\font\nineit=cmti9
+\def\ninepoint{%
+ \def\rm{\ninerm}\def\bf{\ninebf}%
+ \def\it{\nineit}\baselineskip=11pt\rm}%
+
+\font\eightrm=cmr8
+\font\eightbf=cmbx8
+\font\eightit=cmti8
+\font\eighti=cmmi8
+\font\eightsy=cmsy8
+\font\eightsmc=cmcsc10 at 8pt
+\font\eighttt=cmtt8
+ \def\eightpoint{%
+ \def\rm{\fam0\eightrm}\def\bf{\fam\bffam\eightbf}%
+ \def\it{\fam\itfam\eightit}\def\smc{\eightsmc}\def\tt{\eighttt}
+ \textfont0=\eightrm \scriptfont0=\sixrm
+ \textfont1=\eighti \scriptfont1=\sixi
+ \textfont2=\eightsy \scriptfont2=\sixsy
+\textfont3=\tenex \scriptfont3=\tenex
+\baselineskip=10pt\rm}%
+
+\font\sixrm=cmr6
+\font\sixbf=cmbx6
+\font\sixi=cmmi6
+\font\sixsmc=cmr5
+\font\sixsy=cmsy6
+\def\sixpoint{%
+ \def\rm{\sixrm}\def\bf{\sixbf}%
+ \def\smc{\sixsmc}\baselineskip=8pt\rm}%
+
+\fontdimen13\tensy=2.6pt
+\fontdimen14\tensy=2.6pt
+\fontdimen15\tensy=2.6pt
+\fontdimen16\tensy=1.2pt
+\fontdimen17\tensy=1.2pt
+\fontdimen18\tensy=1.2pt
+
+\def\rheadfont{\eightpoint\rm}
+\def\titlefont{\tenpoint\bf}
+\def\authorfont{\eightpoint\smc}
+\def\dedicatefont{\ninepoint\it}
+
+
+%%%
+%%% ROMAN PUNCTUATION
+%%% (WARNING: may cause incompatibility with psfig)
+%%%
+\def\othersmcolon{;}
+\catcode`\;= \active
+\def;{\relax\ifmmode\othersmcolon
+ \else\ifdim\fontdimen1\the\font>0pt\/{\rm \othersmcolon}%
+ \else\othersmcolon\fi\fi}
+
+
+%%% DIMENSIONS
+%%%
+\hsize=31pc
+\vsize=50pc
+\parindent=2em
+
+
+%%% TOPMATTER MACROS
+%%%
+\newif\ifkeywords@
+\newif\ifsubjclass@
+\newif\ifdedicate@
+\newif\ifrecdate@
+\newif\ifoneclass@
+
+\keywords@false
+\subjclass@false
+\dedicate@false
+\recdate@false
+\oneclass@false
+
+\def\title#1\endtitle{\def\thetitle{\uppercase{#1}}%
+ \def\\{\relax\ }\xdef\rightrh{\uppercase{#1}}}
+
+\def\shorttitle#1{\xdef\rightrh{\uppercase{#1}}}
+
+\let\protect\relax
+
+\def\author#1\endauthor{%
+ \def\and{\hbox{\sixrm AND }}\def\\{\break}
+ % prevent \uppercase when typesetting
+ \def\theauthor{\uppercase{#1}}%
+ {%
+ \def\\{\relax\ }% change \\ to be a space in the running head
+ \def\fnmark##1{}% turn address off in the running head
+ \def\and{and }% "and" is same size as names in running head
+ \def\protect{\noexpand\protect\noexpand}
+ \xdef\leftrh{\expandafter{\uppercase{#1}}}%
+ }}
+
+\def\shortauthor#1{\def\and{and }\xdef\leftrh{\uppercase{#1}}}
+
+\gdef\fnmark#1{#1}
+\gdef\address#1#2{\makefootnote@{\textfont2=\eightsy #1}{#2\unskip.}}
+\def\journal#1{\def\thejournal{#1}}
+\def\SIMAC{\journal{SIAM J{\smc OURNAL} M{\smc ACRO}}}
+\def\SIAP{\journal{SIAM J. A{\smc PPL.} M{\smc ATH.}}}
+\def\SICOMP{\journal{SIAM J. C{\smc OMPUT.}}}
+\def\SICON{\journal{SIAM J. C{\smc ONTROL} {\smc AND} O{\smc PTIMIZATION}}}
+\def\SIDMA{\journal{SIAM J. D{\smc ISC.} M{\smc ATH.}}}
+\def\SIMA{\journal{SIAM J. M{\smc ATH.} A{\smc NAL.}}}
+\def\SIMAX{\journal{SIAM J. M{\smc ATRIX} A{\smc NAL.} A{\smc PPL.}}}
+\def\SINUM{\journal{SIAM J. N{\smc UMER.} A{\smc NAL.}}}
+\def\SIOPT{\journal{SIAM J. O{\smc PTIMIZATION}}}
+\def\SISC{\journal{SIAM J. S{\smc CI.} C{\smc OMPUT.}}}
+\def\SIREV{\journal{SIAM R{\smc EVIEW}}}
+
+
+\def\copyyear#1{\def\thecopyyear{#1}}
+\copyyear{1989}
+\def\vol#1{\def\thevol{#1}}
+\def\no#1{\def\theno{#1}}
+\def\date#1{\def\thedate{#1}}
+\def\code#1{\def\thecode{#1}}
+\def\dedicate#1{\dedicate@true\def\thededicate{#1}}
+\def\keywords#1\endkeywords{\keywords@true\def\thekeywords{#1}}
+\def\subjclass#1\endsubjclass{\subjclass@true\def\thesubjclass{#1}}
+\def\oneclass{\oneclass@true}
+\long\def\abstract#1{\def\theabstract{#1}}
+
+\def\raggedcenter{\leftskip=0pt plus 1fill \rightskip=0pt plus 1fill}
+
+\def\copyright#1{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr#1\char"0D}}}
+
+\def\recdate#1#2{\global\recdate@true
+ \gdef\recdate@{#1Received by the editors \ignorespaces#2\unskip.}%
+ \makefootnote@{}{\recdate@}}
+
+\let\topmatter=\relax
+\def\endtopmatter{%
+ \global\headline={\hss\vtop to \z@ {%
+ \sixpoint\rm\noindent\thejournal \hfill%
+ \rm\copyright{\sevensy}\rm%
+ \ \thecopyyear\ Society for Industrial and Applied Mathematics\par
+ \noindent Vol. \thevol , No. \theno , \thedate\hfill\thecode\par
+ \vss}\hss}%
+ \leavevmode\vskip8pt
+ \vbox{\noindent\raggedcenter\let\\=\break\titlefont\thetitle
+ \ifrecdate@*\fi}
+ \vskip6pt
+ \vbox{\noindent\raggedcenter\let\\=\break\authorfont\theauthor}
+ \ifdedicate@
+ \vskip6pt
+ \vbox{\noindent\raggedcenter\let\\=\break\dedicatefont
+ \thededicate}
+ \fi
+ \vskip14pt
+ {\eightpoint{\bf Abstract.\ }\theabstract\par
+ \ifkeywords@
+ \vskip10pt
+ {\bf Key words.} \thekeywords\par
+ \fi
+ \ifsubjclass@
+ \vskip10pt
+ {\bf AMS subject classification\ifoneclass@\else s\fi. }%
+ \thesubjclass\par
+ \fi}
+ \vskip8pt
+ \tenpoint}
+
+
+%%% THEOREM AND OTHER MACROS
+%%%
+\def\heading#1#2{%
+ \vskip6pt{\bf #1.\enspace\ignorespaces#2.\enspace}\ignorespaces}
+
+\def\thm#1{{\smc #1.}\begingroup\it\enspace\ignorespaces}
+\let\lem=\thm
+\let\cor=\thm
+\let\prop=\thm
+\let\dfn=\thm
+
+\def\endthm{\endgroup}
+\let\endlem=\endthm
+\let\endcor=\endthm
+\let\endprop=\endthm
+\let\enddfn=\endthm
+
+\def\prf#1{{\it #1}.\rm\enspace\ignorespaces}
+\let\rem=\prf
+\let\case=\prf
+
+\def\endproof{\vbox{\hrule height0.8pt\hbox{%
+ \vrule height1.3ex width0.8pt\hskip0.8ex
+ \vrule width0.8pt}\hrule height0.8pt
+ }}
+
+
+%%% FORMATTING AND MATH
+%%%
+%%% NEW ROMAN MATH OPERATORS
+%%%
+\def\const{\mathop{\rm const}\nolimits}
+\def\diag{\mathop{\rm diag}\nolimits}
+\def\grad{\mathop{\rm grad}\nolimits}
+\def\Range{\mathop{\rm Range}\nolimits}
+\def\rank{\mathop{\rm rank}\nolimits}
+\def\supp{\mathop{\rm supp}\nolimits}
+
+%%% Centered displays, with numbering
+%%%
+
+\def\ldisplaylinesno#1{\displ@y\halign{
+ \hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}&
+ \kern-\displaywidth\rlap{$##$}\kern\displaywidth\crcr
+ #1\crcr}}
+
+%%% \meti to be used instead of \item
+%%%
+\def\meti#1{\parindent=2\parindent
+\par\indent\llap{#1\enspace}\ignorespaces\parindent=.5\parindent}
+\def\metimeti#1{\parindent=2\parindent
+\par\indent\llap{#1\enspace}\ignorespaces\parindent=.5\parindent}
+
+
+%%% Miscellaneous
+
+%%% REFERENCES
+
+\newdimen\refindent@
+\newdimen\refhangindent@
+\newbox\refbox@
+\setbox\refbox@=\hbox{\eightpoint\rm [00]}% Default 2 digits
+\refindent@=\wd\refbox@
+
+\def\resetrefindent#1{%
+ \setbox\refbox@=\hbox{\eightpoint\rm [#1]}%
+ \refindent@=\wd\refbox@}
+
+\def\Refs{%
+ \unskip\vskip2pc
+ \centerline{\eightpoint\rm REFERENCES}%
+ \penalty10000
+ \vskip4pt
+ \penalty10000
+ \refhangindent@=\refindent@
+ \global\advance\refhangindent@ by 2em
+ \global\everypar{\hangindent\refhangindent@}%
+ \parindent=0pt\eightpoint\rm}
+
+\def\XRefs{%
+ \unskip\vskip2pc
+ \centerline{\eightpoint\rm REFERENCES}%
+ \penalty10000
+ \vskip4pt
+ \penalty10000
+ \refhangindent@=\refindent@
+ \global\everypar{\hangindent\refhangindent@}%
+ \parindent=0pt\eightpoint\rm}
+
+\def\sameauthor{\leavevmode\vbox to 1ex{\vskip 0pt plus 100pt
+ \hbox to 3em{\leaders\hrule\hfil}\vskip 0pt plus 300pt}}
+
+\def\ref#1\\#2\endref{\leavevmode\hbox to \refindent@{\hfil[#1]}\enspace #2\par}
+
+\def\xref\\#1\endref{\leavevmode #1\par}
+
+%%% OUTPUT
+
+\global\footline={\hss\eightpoint\rm\folio\hss}% first page
+\output{\plainoutput}
+\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
+ \advancepageno
+ \ifnum\pageno>1
+ \global\footline={\hfill}%
+ \fi
+ \ifodd\pageno
+ \global\headline={\hss\rightrh\hss{\tenpoint\rm\folio}}%
+ \else
+ \global\headline={\hskip-8pt{\tenpoint\rm\folio}\hss\leftrh\hss}%
+ \fi
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
+\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}}
+\def\makeheadline{\vbox to\z@{\vskip-22.5\p@
+ \line{\vbox to8.5\p@{}\rheadfont\the\headline}\vss}%
+ \nointerlineskip}
+\def\makefootline{\baselineskip24\p@\vskip-8\p@\line{\the\footline}}
+\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over
+ \line{}\kern-\topskip\nobreak\vfill\supereject\fi}
+
+\def\relaxnext@{\let\next\relax}
+\def\footmarkform@#1{\ifmmode {}^{#1}\else$^{#1}$\fi }
+\let\thefootnotemark\footmarkform@
+\def\makefootnote@#1#2{\insert\footins
+ {\interlinepenalty\interfootnotelinepenalty
+ \eightpoint \splittopskip=\ht\strutbox
+ \splitmaxdepth=\dp\strutbox
+ \floatingpenalty=\@MM
+ \leftskip=\z@ \rightskip=\z@
+ \spaceskip=\z@ \xspaceskip=\z@
+ \leavevmode{#1}\footstrut\ignorespaces#2\unskip
+ \lower\dp\strutbox\vbox to\dp\strutbox{}}}
+\newcount\footmarkcount@
+ \footmarkcount@=\z@ % Initialization
+\def\footnotemark{\let\@sf=\empty \relaxnext@
+ \ifhmode \edef\@sf{\spacefactor=\the\spacefactor}\/\fi
+ \def\next@{\ifx[\next \let\next=\nextii@ \else
+ \ifx"\next \let\next=\nextiii@ \else
+ \let\next=\nextiv@ \fi\fi\next}%
+ \def\nextii@[##1]{\footmarkform@{##1}\@sf}%
+ \def\nextiii@"##1"{{##1}\@sf}%
+ \def\nextiv@{\global\advance\footmarkcount@\@ne
+ \footmarkform@{\number\footmarkcount@}\@sf}%
+ \futurelet\next\next@}
+\def\footnotetext{\relaxnext@
+ \def\next@{\ifx[\next \let\next=\nextii@ \else
+ \ifx"\next \let\next=\nextiii@ \else
+ \let\next=\nextiv@ \fi\fi\next}%
+ \def\nextii@[##1]##2{\makefootnote@{\footmarkform@{##1}}{##2}}%
+ \def\nextiii@"##1"##2{\makefootnote@{##1}{##2}}%
+ \def\nextiv@##1{\makefootnote@{\footmarkform@{%
+ \number\footmarkcount@}}{##1}}%
+ \futurelet\next\next@}
+\def\footnote{\let\@sf=\empty \relaxnext@
+ \ifhmode \edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ \def\next@{\ifx[\next \let\next=\nextii@ \else
+ \ifx"\next \let\next=\nextiii@ \else
+ \let\next=\nextiv@ \fi\fi\next}%
+ \def\nextii@[##1]##2{\footnotemark[##1]\footnotetext[##1]{##2}}%
+ \def\nextiii@"##1"##2{\footnotemark"##1"\footnotetext"##1"{##2}}%
+ \def\nextiv@##1{\footnotemark\footnotetext{##1}}%
+ \futurelet\next\next@}
+\def\adjustfootnotemark#1{\advance\footmarkcount@#1\relax}
+
+\skip\footins=18\p@ plus6\p@ minus6\p@
+
+\def\footnoterule{\kern -4\p@\hrule width 3pc \kern 3.6\p@ } % rule = .4 pt high
+
+
+
+% Turn off @ as being a letter.
+%
+\catcode`\@=12
diff --git a/Master/texmf-dist/tex/plain/treetex/classes.tex b/Master/texmf-dist/tex/plain/treetex/classes.tex
new file mode 100644
index 00000000000..f9dbc98bb9c
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/treetex/classes.tex
@@ -0,0 +1,105 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Complete binary trees %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The macro \b@nary{<number>} expands to the description of a complete
+% binary tree with <number> many internal nodes, where each level is filled with
+% the maximal number of internal nodes, and the last level of internal nodes
+% is filled from left to right.
+
+\newcount\b@nno % number of nodes
+\newcount\b@nlv % number of complete levels
+\newcount\b@ndl % number of nodes on incomplete level
+
+\def\ld(#1,#2,#3){% #1, #2, and #3 must be counter registers.
+ % #1 is the input, #1 must be >= 1.
+ % \ld makes the following assignments:
+ % #2:=|_log_2(#1)_|, #3:=2^#2.
+ % The contents of #1 is destroyed during the computation.
+ #2=0 #3=1
+ \loop\ifnum #1>\@ne\relax
+ \divide #1 by\tw@ % this is integer division
+ \advance #2 by\@ne
+ \multiply #3 by\tw@
+ \repeat}
+
+\def\b@nary#1{% draws a complete binary tree with #1 internal nodes,
+ % a complete binary tree with N internal nodes has
+ % lv:=|_log_2(N+1)_| many
+ % complete level of binary nodes and dl:=N-2^{lv}+1 many internal
+ % nodes on an incomplete level.
+ \b@nno=#1\relax\advance\b@nno by \@ne
+ \ld(\b@nno,\b@nlv,\b@ndl)%
+ \b@ndl=-\b@ndl\advance\b@ndl by #1\advance\b@ndl by\@ne
+ \b@n}
+
+\def\b@n{%
+ \ifnum\b@nlv>\@ne
+ \advance\b@nlv by-\@ne
+ \b@n
+ \b@n
+ \advance\b@nlv by\@ne
+ \node{}
+ \else\ifnum\b@ndl>\@ne
+ \advance\b@ndl by-\tw@
+ \node{\le@f\external}\node{\le@f\external}\node{}%
+ \node{\le@f\external}\node{\le@f\external}\node{}%
+ \node{}%
+ \else\ifnum\b@ndl=\@ne
+ \advance\b@ndl by-\@ne
+ \node{\le@f\external}\node{\le@f\external}\node{}%
+ \node{\le@f\external}%
+ \node{}%
+ \else\node{\le@f\external}\node{\le@f\external}\node{}%
+ \fi
+ \fi
+ \fi}
+
+\def\circleleaves{\def\le@f{\type{circle}}}
+\def\squareleaves{\def\le@f{\type{square}}}
+
+\newcount\no@
+\def\no#1{\no@=#1\relax}
+
+\def\binary#1{%
+ \no{1}\circleleaves
+ #1%
+ \b@nary{\no@}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Fibonacci trees %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \f@b expands to the description of a Fibonacci tree
+% of height \f@bht.
+
+\newcount\f@bht
+
+\def\f@b{% draws a Fibonacci tree of depth #1
+ \ifnum\f@bht>1
+ \advance\f@bht by-\@ne\f@b\advance\f@bht by\@ne
+ \advance\f@bht by-\tw@\f@b\advance\f@bht by\tw@
+ \ifunn@des\node{\unary}
+ \fi
+ \node{\lefttop}
+ \else\ifnum\f@bht=1
+ \node{\external\le@f}
+ \node{\external\le@f}
+ \node{}
+ \else\node{\external\le@f}
+ \fi
+ \fi}
+
+\newif\ifunn@des
+
+\let\unarynodes\unn@destrue
+\def\hght#1{\f@bht=#1\relax}
+
+\def\fibonacci#1{%
+ \hght{0}\unn@desfalse\circleleaves
+ #1%
+ \f@b}
+
+
+%
+
diff --git a/Master/texmf-dist/tex/plain/treetex/l_pic.tex b/Master/texmf-dist/tex/plain/treetex/l_pic.tex
new file mode 100644
index 00000000000..e5b5c110b1f
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/treetex/l_pic.tex
@@ -0,0 +1,839 @@
+% All this stuff comes from latex.tex, most of it from the
+% picture environment. No changes!!!
+% It is needed if you want to use TreeTeX together with plain TeX.
+
+\catcode`\@=11
+
+\def\@height{height}
+\def\@depth{depth}
+\def\@width{width}
+
+\font\tenln=line10
+\font\tencirc=lcircle10
+\font\tenlnw=linew10
+\font\tencircw=lcirclew10
+
+\newcount\@tempcnta
+\newcount\@tempcntb
+\newdimen\@tempdima
+\newdimen\@tempdimb
+\newbox\@tempboxa
+
+\def\@whilenoop#1{}
+
+\def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi}
+\def\@iwhiledim#1{\ifdim #1\let\@nextwhile=\@iwhiledim
+ \else\let\@nextwhile=\@whilenoop\fi\@nextwhile{#1}}
+
+\def\@ifnextchar#1#2#3{\let\@tempe #1\def\@tempa{#2}\def\@tempb{#3}\futurelet
+ \@tempc\@ifnch}
+\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch
+ \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi
+ \fi \@tempd}
+
+% NOTE: the following hacking must precede the definition of \:
+% as math medium space.
+
+\def\:{\let\@sptoken= } \: % this makes \@sptoken a space token
+
+\def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch}
+
+\def\@ifstar#1#2{\@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}}
+
+\let\:=\>
+
+% ****************************************
+% * THE PICTURE ENVIRONMENT *
+% ****************************************
+%
+% \unitlength = value of dimension argument
+% \@wholewidth = current line width
+% \@halfwidth = half of current line width
+% \@linefnt = font for drawing lines
+% \@circlefnt = font for drawing circles
+%
+% \linethickness{DIM} : Sets the width of horizontal and vertical lines
+% in a picture to DIM. Does not change width of slanted lines
+% or circles. Width of all lines reset by \thinlines and
+% \thicklines
+%
+% \picture(XSIZE,YSIZE)(XORG,YORG)
+% BEGIN
+% \@picht :=L YSIZE * \unitlength
+% box \@picbox :=
+% \hbox to XSIZE * \unitlength
+% {\hskip -XORG * \unitlength
+% \lower YORG * \unitlength
+% \hbox{
+% END
+%
+% \endpicture ==
+% BEGIN
+% } \hss }
+% heigth of \@picbox := \@picht
+% depth of \@picbox := 0
+% leavevmode
+% \box\@picbox
+% END
+%
+% \put(X, Y){OBJ} ==
+% BEGIN
+% \@killglue
+% \raise Y * \unitlength \hbox to 0pt { \hskip X * \unitlength
+% OBJ \hss }
+% \ignorespaces
+% END
+%
+% \multiput(X,Y)(DELX,DELY){N}{OBJ} ==
+% BEGIN
+% \@killglue
+% \@multicnt := N
+% \@xdim := X * \unitlength
+% \@ydim := Y * \unitlength
+% while \@multicnt > 0
+% do \raise \@ydim \hbox to 0pt { \hskip \@xdim
+% OBJ \hss }
+% \@multicnt := \@multicnt - 1
+% \@xdim := \@xdim + DELX * \unitlength
+% \@ydim := \@ydim + DELY * \unitlength
+% od
+% \ignorespaces
+% END
+%
+% \shortstack[POS]{TEXT} : Makes a \vbox containing TEXT stacked as
+% a one-column array, positioned l, r or c as indicated by POS.
+
+\newdimen\@wholewidth
+\newdimen\@halfwidth
+\newdimen\unitlength \unitlength =1pt
+\newbox\@picbox
+\newdimen\@picht
+
+\def\picture(#1,#2){\@ifnextchar({\@picture(#1,#2)}{\@picture(#1,#2)(0,0)}}
+
+\def\@picture(#1,#2)(#3,#4){\@picht #2\unitlength
+\setbox\@picbox\hbox to #1\unitlength\bgroup
+\hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup}
+
+\def\endpicture{\egroup\hss\egroup\ht\@picbox\@picht
+\dp\@picbox\z@\leavevmode\box\@picbox}
+
+\long\def\put(#1,#2)#3{\@killglue\raise#2\unitlength\hbox to \z@{\hskip
+#1\unitlength #3\hss}\ignorespaces}
+
+\long\def\multiput(#1,#2)(#3,#4)#5#6{\@killglue\@multicnt=#5\relax
+\@xdim=#1\unitlength
+\@ydim=#2\unitlength
+\@whilenum \@multicnt > 0\do
+{\raise\@ydim\hbox to \z@{\hskip
+\@xdim #6\hss}\advance\@multicnt \m@ne\advance\@xdim
+#3\unitlength\advance\@ydim #4\unitlength}\ignorespaces}
+
+\def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}}
+
+\def\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc
+ \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth}
+\def\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw
+ \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth}
+
+\def\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth}
+
+\def\shortstack{\@ifnextchar[{\@shortstack}{\@shortstack[c]}}
+
+\def\@shortstack[#1]{\leavevmode
+\vbox\bgroup\baselineskip-1pt\lineskip 3pt\let\mb@l\hss
+\let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax
+\let\\\@stackcr\@ishortstack}
+
+\def\@ishortstack#1{\halign{\mb@l ##\unskip\mb@r\cr #1\crcr}\egroup}
+
+
+\def\@stackcr{\@ifstar{\@ixstackcr}{\@ixstackcr}}
+\def\@ixstackcr{\@ifnextchar[{\@istackcr}{\cr\ignorespaces}}
+
+\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
+
+
+% \line(X,Y){LEN} ==
+% BEGIN
+% \@xarg := X
+% \@yarg := Y
+% \@linelen := LEN * \unitlength
+% if \@xarg = 0
+% then \@vline
+% else if \@yarg = 0
+% then \@hline
+% else \@sline
+% if
+% if
+% END
+%
+% \@sline ==
+% BEGIN
+% if \@xarg < 0
+% then @negarg := T
+% \@xarg := -\@xarg
+% \@yyarg := -\@yarg
+% else @negarg := F
+% \@yyarg := \@yarg
+% fi
+% \@tempcnta := |\@yyarg|
+% if \@tempcnta > 6
+% then error: 'LATEX ERROR: Illegal \line or \vector argument.'
+% \@tempcnta := 0
+% fi
+% \box\@linechar := \hbox{\@linefnt \@getlinechar(\@xarg,\@yyarg) }
+% if \@yarg > 0 then \@upordown = \raise
+% \@clnht := 0
+% else \@upordown = \lower
+% \@clnht := height of \box\@linechar
+% fi
+% \@clnwd := width of \box\@linechar
+% if @negarg
+% then \hskip - width of \box\@linechar
+% \@tempa == \hskip - 2* width of box \@linechar
+% else \@tempa == \relax
+% fi
+% %% Put out integral number of line segments
+% while \@clnwd < \@linelen
+% do \@upordown \@clnht \copy\@linechar
+% \@tempa
+% \@clnht := \@clnht + ht of \box\@linechar
+% \@clnwd := \@clnwd + width of \box\@linechar
+% od
+%
+% %% Put out last segment
+% \@clnht := \@clnht - height of \box\@linechar
+% \@clnwd := \@clnwd - width of \box\@linechar
+% \@tempdima := \@linelen - \@clnwd
+% \@tempdimb := \@tempdima - width of \box\@linechar
+% if @negarg then \hskip -\@tempdimb
+% else \hskip \@tempdimb
+% fi
+% \@tempdima := 1000 * \@tempdima
+% \@tempcnta := \@tempdima / width of \box\@linechar
+% \@tempdima := (\@tempcnta * ht of \box\@linechar)/1000
+% \@clnht := \@clnht + \@tempdima
+% if \@linelen < width of box\@linechar
+% then \hskip width of box\@linechar
+% else \hbox{\@upordown \@clnht \copy\@linechar}
+% fi
+% END
+%
+% \@hline ==
+% BEGIN
+% if \@xarg < 0 then \hskip -\@linelen \fi
+% \vrule height \@halfwidth depth \@halfwidth width \@linelen
+% if \@xarg < 0 then \hskip -\@linelen \fi
+% END
+%
+% \@vline == if \@yarg < 0 \@downline else \@upline fi
+%
+%
+% \@getlinechar(X,Y) ==
+% BEGIN
+% \@tempcnta := 8*X - 9
+% if Y > 0
+% then \@tempcnta := \@tempcnta + Y
+% else \@tempcnta := \@tempcnta - Y + 64
+% fi
+% \char\@tempcnta
+% END
+%
+% \vector(X,Y){LEN} ==
+% BEGIN
+% \@xarg := X
+% \@yarg := Y
+% \@linelen := LEN * \unitlength
+% if \@xarg = 0
+% then \@vvector
+% else if \@yarg = 0
+% then \@hvector
+% else \@svector
+% if
+% if
+% END
+%
+% \@hvector ==
+% BEGIN
+% \@hline
+% {\@linefnt if \@xarg < 0 then \@getlarrow(1,0)
+% else \@getrarrow(1,0)
+% fi}
+% END
+%
+% \@vvector == if \@yarg < 0 \@downvector else \@upvector fi
+%
+% \@svector ==
+% BEGIN
+% \@sline
+% \@tempcnta := |\@yarg|
+% if \@tempcnta < 5
+% then \hskip - width of \box\@linechar
+% \@upordown \@clnht \hbox
+% {\@linefnt
+% if @negarg then \@getlarrow(\@xarg,\@yyarg)
+% else \@getrarrow(\@xarg,\@yyarg)
+% fi }
+% else error: 'LATEX ERROR: Illegal \line or \vector argument.'
+% fi
+% END
+%
+% \@getlarrow(X,Y) ==
+% BEGIN
+% if Y = 0
+% then \@tempcnta := '33
+% else \@tempcnta := 16 * X - 9
+% \@tempcntb := 2 * Y
+% if \@tempcntb > 0
+% then \@tempcnta := \@tempcnta + \@tempcntb
+% else \@tempcnta := \@tempcnta - \@tempcntb + 64
+% fi
+% fi
+% \char\@tempcnta
+% END
+%
+% \@getrarrow(X,Y) ==
+% BEGIN
+% \@tempcntb := |Y|
+% case of \@tempcntb
+% 0 : \@tempcnta := '55
+% 1 : if X < 3
+% then \@tempcnta := 24*X - 6
+% else if X = 3
+% then \@tempcnta := 49
+% else \@tempcnta := 58 fi
+% fi
+% 2 : if X < 3
+% then \@tempcnta := 24*X - 3
+% else \@tempcnta := 51 % X must = 3
+% fi
+% 3 : \@tempcnta := 16*X - 2
+% 4 : \@tempcnta := 16*X + 7
+% endcase
+% if Y < 0
+% then \@tempcnta := \@tempcnta + 64
+% fi
+% \char\@tempcnta
+% END
+
+\newif\if@negarg
+
+\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+\@linelen=#3\unitlength
+\ifnum\@xarg =0 \@vline
+ \else \ifnum\@yarg =0 \@hline \else \@sline\fi
+\fi}
+
+\def\@sline{\ifnum\@xarg< 0 \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
+ \else \@negargfalse \@yyarg \@yarg \fi
+\ifnum \@yyarg >0 \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
+\ifnum\@tempcnta>6 \@badlinearg\@tempcnta0 \fi
+\setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}%
+\ifnum \@yarg >0 \let\@upordown\raise \@clnht\z@
+ \else\let\@upordown\lower \@clnht \ht\@linechar\fi
+\@clnwd=\wd\@linechar
+\if@negarg \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}\else
+ \let\@tempa\relax \fi
+\@whiledim \@clnwd <\@linelen \do
+ {\@upordown\@clnht\copy\@linechar
+ \@tempa
+ \advance\@clnht \ht\@linechar
+ \advance\@clnwd \wd\@linechar}%
+\advance\@clnht -\ht\@linechar
+\advance\@clnwd -\wd\@linechar
+\@tempdima\@linelen\advance\@tempdima -\@clnwd
+\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
+\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
+\multiply\@tempdima \@m
+\@tempcnta \@tempdima \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
+\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
+\divide\@tempdima \@m
+\advance\@clnht \@tempdima
+\ifdim \@linelen <\wd\@linechar
+ \hskip \wd\@linechar
+ \else\@upordown\@clnht\copy\@linechar\fi}
+
+\def\@hline{\ifnum \@xarg <0 \hskip -\@linelen \fi
+\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen
+\ifnum \@xarg <0 \hskip -\@linelen \fi}
+
+\def\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8
+\advance\@tempcnta -9 \ifnum #2>0 \advance\@tempcnta #2\relax\else
+\advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
+\char\@tempcnta}
+
+\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+\@linelen=#3\unitlength
+\ifnum\@xarg =0 \@vvector
+ \else \ifnum\@yarg =0 \@hvector \else \@svector\fi
+\fi}
+
+\def\@hvector{\@hline\hbox to 0pt{\@linefnt
+\ifnum \@xarg <0 \@getlarrow(1,0)\hss\else
+ \hss\@getrarrow(1,0)\fi}}
+
+\def\@vvector{\ifnum \@yarg <0 \@downvector \else \@upvector \fi}
+
+\def\@svector{\@sline
+\@tempcnta\@yarg \ifnum\@tempcnta <0 \@tempcnta=-\@tempcnta\fi
+\ifnum\@tempcnta <5
+ \hskip -\wd\@linechar
+ \@upordown\@clnht \hbox{\@linefnt \if@negarg
+ \@getlarrow(\@xarg,\@yyarg) \else \@getrarrow(\@xarg,\@yyarg) \fi}%
+\else\@badlinearg\fi}
+
+\def\@getlarrow(#1,#2){\ifnum #2 =\z@ \@tempcnta='33\else
+\@tempcnta=#1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta
+-9 \@tempcntb=#2\relax\multiply\@tempcntb \tw@
+\ifnum \@tempcntb >0 \advance\@tempcnta \@tempcntb\relax
+\else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
+\fi\fi\char\@tempcnta}
+
+\def\@getrarrow(#1,#2){\@tempcntb=#2\relax
+\ifnum\@tempcntb < 0 \@tempcntb=-\@tempcntb\relax\fi
+\ifcase \@tempcntb\relax \@tempcnta='55 \or
+\ifnum #1<3 \@tempcnta=#1\relax\multiply\@tempcnta
+24 \advance\@tempcnta -6 \else \ifnum #1=3 \@tempcnta=49
+\else\@tempcnta=58 \fi\fi\or
+\ifnum #1<3 \@tempcnta=#1\relax\multiply\@tempcnta
+24 \advance\@tempcnta -3 \else \@tempcnta=51\fi\or
+\@tempcnta=#1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta -\tw@ \else
+\@tempcnta=#1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<0 \advance\@tempcnta 64 \fi
+\char\@tempcnta}
+
+
+
+\def\@vline{\ifnum \@yarg <0 \@downline \else \@upline\fi}
+
+\def\@upline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
+ \@height \@linelen \@depth \z@\hss}}
+
+\def\@downline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
+ \@height \z@ \@depth \@linelen \hss}}
+
+\def\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise
+ \@linelen \hbox to\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
+
+\def\@downvector{\@downline\lower \@linelen
+ \hbox to \z@{\@linefnt\char'77\hss}}
+
+% \dashbox{D}(X,Y) ==
+% BEGIN
+% leave vertical mode
+% \hbox to 0pt {
+% \baselineskip := 0pt
+% \lineskip := 0pt
+% %% HORIZONTAL DASHES
+% \@dashdim := X * \unitlength
+% \@dashcnt := \@dashdim + 200 % to prevent roundoff error
+% \@dashdim := D * \unitlength
+% \@dashcnt := \@dashcnt / \@dashdim
+% if \@dashcnt is odd
+% then \@dashdim := 0pt
+% \@dashcnt := (\@dashcnt + 1) / 2
+% else \@dashdim := \@dashdim / 2
+% \@dashcnt := \@dashcnt / 2 - 1
+% \box\@dashbox := \hbox{\vrule height \@halfwidth
+% depth \@halfwidth width \@dashdim}
+% \put(0,0){\copy\@dashbox}
+% \put(0,Y){\copy\@dashbox}
+% \put(X,0){\hskip -\@dashdim\copy\@dashbox}
+% \put(X,Y){\hskip -\@dashdim\box\@dashbox}
+% \@dashdim := 3 * \@dashdim
+% fi
+% \box\@dashbox := \hbox{\vrule height \@halfwidth
+% depth \@halfwidth width D * \unitlength
+% \hskip D * \unitlength}
+% \@tempcnta := 0
+% \put(0,0){\hskip \@dashdim
+% while \@tempcnta < \@dascnt
+% do \copy\@dashbox
+% \@tempcnta := \@tempcnta + 1
+% od
+% }
+% \@tempcnta := 0
+% put(0,Y){\hskip \@dashdim
+% while \@tempcnta < \@dascnt
+% do \copy\@dashbox
+% \@tempcnta := \@tempcnta + 1
+% od
+% }
+%
+% %% vertical dashes
+% \@dashdim := Y * \unitlength
+% \@dashcnt := \@dashdim + 200 % to prevent roundoff error
+% \@dashdim := D * \unitlength
+% \@dashcnt := \@dashcnt / \@dashdim
+% if \@dashcnt is odd
+% then \@dashdim := 0pt
+% \@dashcnt := (\@dashcnt + 1) / 2
+% else \@dashdim := \@dashdim / 2
+% \@dashcnt := \@dashcnt / 2 - 1
+% \box\@dashbox := \hbox{\hskip -\@halfwidth
+% \vrule width \@wholewidth
+% height \@dashdim }
+% \put(0,0){\copy\@dashbox}
+% \put(X,0){\copy\@dashbox}
+% \put(0,Y){\lower\@dashdim\copy\@dashbox}
+% \put(X,Y){\lower\@dashdim\copy\@dashbox}
+% \@dashdim := 3 * \@dashdim
+% fi
+% \box\@dashbox := \hbox{\vrule width \@wholewidth
+% height D * \unitlength }
+% \@tempcnta := 0
+% put(0,0){\hskip -\halfwidth
+% \vbox{while \@tempcnta < \@dashcnt
+% do \vskip D*\unitlength
+% \copy\@dashbox
+% \@tempcnta := \@tempcnta + 1
+% od
+% \vskip \@dashdim
+% } }
+% \@tempcnta := 0
+% put(X,0){\hskip -\halfwidth
+% \vbox{while \@tempcnta < \@dashcnt
+% do \vskip D*\unitlength
+% \copy\@dashbox
+% \@tempcnta := \@tempcnta + 1
+% od
+% \vskip \@dashdim
+% }
+% }
+% } % END DASHES
+%
+% \@imakepicbox(X,Y)
+% END
+
+\def\dashbox#1(#2,#3){\leavevmode\hbox to \z@{\baselineskip \z@%
+\lineskip \z@%
+\@dashdim=#2\unitlength%
+\@dashcnt=\@dashdim \advance\@dashcnt 200
+\@dashdim=#1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt\@dashdim=\z@%
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox=\hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(0,#3){\copy\@dashbox}%
+\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
+\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
+\multiply\@dashdim 3
+\fi
+\setbox\@dashbox=\hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width #1\unitlength\hskip #1\unitlength}\@tempcnta=0
+\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta=0
+\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
+\@dashdim=#3\unitlength%
+\@dashcnt=\@dashdim \advance\@dashcnt 200
+\@dashdim=#1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt \@dashdim=\z@%
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else
+\divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox\hbox{\hskip -\@halfwidth
+\vrule \@width \@wholewidth
+\@height \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(#2,0){\copy\@dashbox}%
+\put(0,#3){\lower\@dashdim\copy\@dashbox}%
+\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
+\multiply\@dashdim 3
+\fi
+\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
+\@height #1\unitlength}\@tempcnta0
+\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta < \@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}\@tempcnta0
+\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta< \@dashcnt
+\relax\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}}\@makepicbox(#2,#3)}
+
+% CIRCLES AND OVALS
+%
+% USER COMMANDS:
+%
+% \circle{D} : Produces the circle with the diameter as close as
+% possible to D * \unitlength. \put(X,Y){\circle{D}}
+% puts the circle with its center at (X,Y).
+%
+% \oval(X,Y) : Makes an oval as round as possible that fits in the
+% rectangle of width X * \unitlength and height
+% Y * \unitlength. The reference point is the center.
+%
+% \oval(X,Y)[POS] : Save as \oval(X,Y) except it draws only the
+% half or quadrant of the oval indicated by POS.
+% E.G., \oval(X,Y)[t] draws just the top half
+% and \oval(X,Y)[br] draws just the bottom right
+% quadrant. In all cases, the reference point is
+% the same as the unqualified \oval(X,Y) command.
+%
+% \@ovvert {DELTA1} {DELTA2} : Makes a vbox containing either the left side
+% or the right side of the oval being constructed. The baseline
+% will coincide with the outside bottom edge of the oval; the left
+% side of the box will coincide with the left edge of the vertical
+% rule. The width of the box will be \@tempdima.
+% DELTA1 and DELTA2 are added to the character number in \@tempcnta
+% to get the characters for the top and bottom quarter circle pieces.
+%
+% \@ovhorz : Makes an hbox containing the straight rule for either the
+% top or the bottom of the oval being constructed. The baseline
+% will coincide with bottom edge of the rule; the left side of
+% the box will coincide with the left side of the oval.
+% The width of the box will be \@ovxx.
+%
+% \@getcirc {DIAM} : Sets \@tempcnta to the character number
+% of the top-right quarter circle with the largest
+% diameter less than or equal to DIAM.
+% Sets \@tempboxa to an hbox containing that character.
+% Sets \@tempdima to \wd \@tempboxa, which is the distance
+% from the circle's left outside edge to its right
+% inside edge.
+% (These characters are like those described in the
+% TeXbook, pp. 389-90.)
+%
+% \@getcirc {DIAM} ==
+% BEGIN
+% \@tempcnta := integer coercion of DIAM
+% \@tempcnta := \@tempcnta / integer coercion of 4pt
+% if \@tempcnta > 10
+% then \@tempcnta := 10 fi
+% if \@tempcnta > 0
+% then \@tempcnta := \@tempcnta-1
+% else LaTeX Warning: Oval too small.
+% fi
+% \@tempcnta := 4 * \@tempcnta
+% \@tempboxa := \hbox{\@circlefnt \char \@tempcnta}
+% \@tempdima := \wd \@tempboxa
+% END
+%
+% \@put{X}{Y}{OBJ} ==
+% BEGIN
+% \raise Y \hbox to 0pt{\hskip X OBJ \hss}
+% END
+%
+% \@oval(X,Y)[POS] ==
+% BEGIN
+% \begingroup
+% \boxmaxdepth := \maxdimen
+% @ovt := @ovb := @ovl := @ovr := true
+% for all E in POS
+% do @ovE := false od
+% \@ovxx := X * \unitlength
+% \@ovyy := Y * \unitlength
+% \@tempdimb := min(\@ovxx,\@ovyy)
+% \@getcirc{\@tempdimb}
+% \@ovro := \ht \@tempboxa
+% \@ovri := \dp \@tempboxa
+% \@ovdx := \@ovxx - \@tempdima
+% \@ovdx := \@ovdx/2
+% \@ovdy := \@ovyy - \@tempdima
+% \@ovdy := \@ovyy/2
+% \@circlefnt
+% \@tempboxa :=
+% \hbox{
+% if @ovr
+% then \@ovvert{3}{2} \kern -\@tempdima
+% fi
+% if @ovl
+% then \kern \@ovxx \@ovvert{0}{1} \kern -\@tempdima
+% \kern -\@ovxx
+% fi
+% if @ovt
+% then \@ovhorz \kern -\@ovxx
+% fi
+% if @ovb
+% then \raise \@ovyy \@ovhorz
+% fi
+% }
+% \@ovdx := \@ovdx + \@ovro
+% \@ovdy := \@ovdy + \@ovro
+% \ht\@tempboxa := \dp\@tempboxa := 0
+% \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}
+% \endgroup
+% END
+%
+% \@ovvert {DELTA1} {DELTA2} ==
+% BEGIN
+% \vbox to \@ovyy {
+% if @ovb
+% then \@tempcntb := \@tempcnta + DELTA1
+% \kern -\@ovro
+% \hbox { \char \@tempcntb }
+% \nointerlineskip
+% else \kern \@ovri \kern \@ovdy
+% fi
+% \leaders \vrule width \@wholewidth \vfil
+% \nointerlineskip
+% if @ovt
+% then \@tempcntb := \@tempcnta + DELTA2
+% \hbox { \char \@tempcntb }
+% else \kern \@ovdy \kern \@ovro
+% fi
+% }
+% END
+%
+% \@ovhorz ==
+% BEGIN
+% \hbox to \@ovxx{
+% \kern \@ovro
+% if @ovr
+% then
+% else \kern \@ovdx
+% fi
+% \leaders \hrule height \@wholewidth \hfil
+% if @ovl
+% then
+% else \kern \@ovdx
+% fi
+% \kern \@ovri
+% }
+% END
+%
+% \circle{DIAM} ==
+% BEGIN
+% \begingroup
+% \boxmaxdepth := maxdimen
+% \@tempdimb := DIAM *\unitlength
+% if \@tempdimb > 15.5pt
+% then \@getcirc{\@tempdimb}
+% \@ovro := \ht \@tempboxa
+% \@tempboxa := \hbox{
+% \@circlefnt
+% \@tempcnta := \@tempcnta + 2
+% \char \@tempcnta
+% \@tempcnta := \@tempcnta - 1
+% \char \@tempcnta
+% \kern -2\@tempdima
+% \@tempcnta := \@tempcnta + 2
+% \raise \@tempdima \hbox { \char \@tempcnta }
+% \raise \@tempdima \box\@tempboxa
+% }
+% \ht\@tempboxa := \dp\@tempboxa := 0
+% \@put{-\@ovro}{-\@ovro}{\@tempboxa}
+% else
+% \@circ{\@tempdimb}{96}
+% fi
+% \endgroup
+% END
+%
+% \circle*{DIAM} == \@dot{DIAM} == \@circ{DIAM*\unitlength}{112}
+%
+% \@circ{DIAM}{CHAR} ==
+% BEGIN
+% \@tempcnta := integer coercion of (DIAM + .5pt)/1pt.
+% if \@tempcnta > 15 then \@tempcnta := 15 fi
+% if \@tempcnta > 1 then \@tempcnta := \@tempcnta - 1 fi
+% \@tempcnta := \@tempcnta + CHAR
+% \@circlefnt
+% \char \@tempcnta
+% END
+%
+
+\newif\if@ovt
+\newif\if@ovb
+\newif\if@ovl
+\newif\if@ovr
+\newdimen\@ovxx
+\newdimen\@ovyy
+\newdimen\@ovdx
+\newdimen\@ovdy
+\newdimen\@ovro
+\newdimen\@ovri
+
+\def\@getcirc#1{\@tempdima #1\relax \@tempcnta\@tempdima
+ \@tempdima 4pt\relax \divide\@tempcnta\@tempdima
+ \ifnum \@tempcnta > 10\relax \@tempcnta 10\relax\fi
+ \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne
+ \else \@warning{Oval too small}\fi
+ \multiply\@tempcnta 4\relax
+ \setbox \@tempboxa \hbox{\@circlefnt
+ \char \@tempcnta}\@tempdima \wd \@tempboxa}
+
+\def\@put#1#2#3{\raise #2\hbox to \z@{\hskip #1#3\hss}}
+
+\def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}}
+
+\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx
+ #1\unitlength \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+
+\def\@ovvert#1#2{\vbox to \@ovyy{%
+ \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb by #1\relax
+ \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
+ \else \kern \@ovri \kern \@ovdy \fi
+ \leaders\vrule width \@wholewidth\vfil \nointerlineskip
+ \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb by #2\relax
+ \hbox{\char \@tempcntb}%
+ \else \kern \@ovdy \kern \@ovro \fi}}
+
+\def\@ovhorz{\hbox to \@ovxx{\kern \@ovro
+ \if@ovr \else \kern \@ovdx \fi
+ \leaders \hrule height \@wholewidth \hfil
+ \if@ovl \else \kern \@ovdx \fi
+ \kern \@ovri}}
+
+\def\circle{\@ifstar{\@dot}{\@circle}}
+\def\@circle#1{\begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
+ \ifdim \@tempdimb >15.5pt\relax \@getcirc\@tempdimb
+ \@ovro\ht\@tempboxa
+ \setbox\@tempboxa\hbox{\@circlefnt
+ \advance\@tempcnta\tw@ \char \@tempcnta
+ \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
+ \advance\@tempcnta\tw@
+ \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
+ \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
+ \else \@circ\@tempdimb{96}\fi\endgroup}
+
+\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
+
+\def\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5pt\relax
+ \@tempcnta\@tempdima \@tempdima 1pt\relax
+ \divide\@tempcnta\@tempdima
+ \ifnum\@tempcnta > 15\relax \@tempcnta 15\relax \fi
+ \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi
+ \advance\@tempcnta #2\relax
+ \@circlefnt \char\@tempcnta}
+
+
+%INITIALIZATION
+\thinlines
+
+\newcount\@xarg
+\newcount\@yarg
+\newcount\@yyarg
+\newcount\@multicnt
+\newdimen\@xdim
+\newdimen\@ydim
+\newbox\@linechar
+\newdimen\@linelen
+\newdimen\@clnwd
+\newdimen\@clnht
+\newdimen\@dashdim
+\newbox\@dashbox
+\newcount\@dashcnt
+
+
+
+%
+
diff --git a/Master/texmf-dist/tex/plain/treetex/treetex.tex b/Master/texmf-dist/tex/plain/treetex/treetex.tex
new file mode 100644
index 00000000000..0a3ae04f26c
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/treetex/treetex.tex
@@ -0,0 +1,1187 @@
+% This is file treetex.tex of TreeTeX, Version 2.1 (May 23, 1989).
+% For changes search for "vs. 2.1".
+%
+% TreeTeX is a public domain macro package for drawing
+% trees with TeX. It may be freely distributed, provided
+% that the following files are kept together:
+%
+% classes.tex, l_pic.tex, readme, tree_doc.aux, tree_doc.bbl
+% tree_doc.dvi, tree_doc.tex, treetex.tex
+%
+% Copyright is with Anne Brueggemann-Klein and Derick Wood.
+% Print tree_doc.dvi to get more information about TreeTeX.
+%
+% All remarks, bug reports etc. should be directed to
+%
+% Dr. Anne Brueggemann-Klein
+% Institut fuer Informatik
+% Rheinstr. 10--12
+% 7800 Freiburg, West Germany
+%
+% email: abk@sun1.ruf.uni-freiburg.dbp.de
+%
+
+\catcode`\@=11
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Only for testing, delete later %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\tracingonline=2 %
+% \showboxbreadth=100 % Only for testing
+% \showboxdepth=100 %
+
+\newcount\cnta\newcount\cntb\newcount\cntc
+
+\def\showlasttree{%
+ \g\cnta\count\l@stdiminfo
+ \g\cntb\cnta
+ \g\advance\cntb 5
+ \g\advance\cntb \count\l@sttreeheight
+ \g\advance\cntb \count\l@sttreeheight
+ \ifnum\count\l@sttreeheight=-1\relax
+ \g\advance\cntb by 2
+ \immediate\write16{Tree contour for dummy node:}
+ \else\immediate\write16{Tree contour:}%
+ \fi
+ \for\cntc:=\cnta\to\cntb\do\immediate\write16{\the\dimen\cntc}\od}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% TeX vs. LaTeX %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\lplain{lplain} % Set \LaTeXtrue if TreeTeX is
+\newif\ifLaTeX % used together with LaTeX,
+\ifx\fmtname\lplain\LaTeXtrue % otherwise set \LaTeXfalse
+ \else\LaTeXfalse\fi % (LaTeX defines \fmtname=={lplain}).
+
+\immediate\write16{This is TreeTeX, Version 2.1, for use with \ifLaTeX LaTeX%
+ \else plain TeX\fi.}
+
+\ifLaTeX \let\lineseg\line % latex_picture is part of latex.tex,
+ \else \let\@line\line % so you don't need it if you use
+ \input l_pic % TreeTeX together with LaTeX. LaTeX
+ \let\lineseg\line % has the command \line for geometric
+ \let\line\@line % lines, and plain TeX has the same
+ \fi % command for lines of text. Because
+ % both versions of \line play an
+ % important role in the respective
+ % macro packages, we introduce a new
+ % command \lineseg in TreeTeX for the
+ % geometric lines, and \line will have
+ % the LaTeX-meaning if TreeTeX is used
+ % with LaTeX, and the plain \TeX
+ % meaning otherwise.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% General programming environment %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`\@=11
+\let\g\global
+\def\gxdef{\global\xdef}
+
+% The command \newcount is redefined such that it can be used
+% inside a definition (i.e. it is no longer an \outer-command).
+
+\def\newcount{\alloc@0\count\countdef\insc@unt}
+
+% Implementing a for-loop (first argument must be a counter).
+% Usage: \for<counter>:=<start value>\to<stop value>\do<operations>\od
+% Semantics: the same as a PASCAL for-loop
+% Precautions: Don't change the counter-value inside the loop!
+% for-loops cannot be nested (nor can the \loop-commands!).
+
+\def\for#1:=#2\to#3\do#4\od{%
+ \def\f@rcount{#1}\def\upp@rlimit{#3}\def\b@dy{#4}\f@rcount=#2\relax\dof@r}
+
+\def\dof@r{\ifnum\f@rcount>\upp@rlimit\relax\let\n@xt\relax
+ \else\b@dy\advance\f@rcount\@ne\let\n@xt\dof@r\fi
+ \n@xt}
+
+% \ex repeats a sequence of commands a predetermined number of times.
+% Usage: \ex<number>\times<operations>\xe
+% Semantics: <operations> is executed as often as <number> says
+% Precautions: \ex commands cannot be nested.
+
+\newcount\@xcount
+\newcount\t@mes
+
+\def\ex#1\times#2\xe{%
+ \@xcount1 \t@mes#1\def\b@dy{#2}\do@x}
+
+\def\do@x{\ifnum\@xcount>\t@mes\let\n@xt\relax
+ \else\b@dy\advance\@xcount\@ne\let\n@xt\do@x\fi
+ \n@xt}
+
+% \rect@ngle produces a rectangle with horizontal edge length #1, vertical
+% edge length #2 and line thickness #3. The reference point is in the center of
+% the rectangle. The width is 0pt.
+
+\newskip\thickn@ss
+\newskip\@nner
+\newskip\@uter
+
+\def\rect@ngle#1#2#3{\hbox to 0pt{%
+ \thickn@ss#3%
+ \g\@nner#2\g\advance\@nner-\thickn@ss
+ \g\divide\@nner\tw@
+ \g\@uter#2\g\advance\@uter\thickn@ss
+ \g\divide\@uter\tw@
+ \hskip 0pt minus .5fil%
+ \vrule height\@uter depth\@nner width\thickn@ss
+ \vrule height\@uter depth-\@nner width#1%
+ \hskip 0pt minus 1fil%
+ \vrule height-\@nner depth\@uter width#1%
+ \vrule height\@nner depth\@uter width\thickn@ss
+ \hskip 0pt minus .5fil%
+ }% \hbox
+ }% \def
+
+% \s@ries takes two arguments. The first one is a name, say XXX, and
+% the second is a series of arguments, devided by two slashs (//).
+% \s@ries assigns this last series of arguments one after another to the
+% control sequences \XXXi, \XXXii, and so on. Furthermore, a control
+% sequence \XXX is defined, which takes a number k as its argument and
+% expands to \XXXk', where k' is the roman numeral equivalent to k.
+
+\def\s@ries#1#2{%
+ \g\t@mpcnta1
+ \gdef\t@mp{#1}%
+ \@ssign#2/\l@st % \l@st is a sentinal element
+ \expandafter\gdef\csname#1\endcsname##1{%
+ \csname#1\romannumeral##1\endcsname}%
+ }
+
+\def\@ssign#1/#2{%
+ \expandafter\gdef\csname\t@mp\romannumeral\t@mpcnta\endcsname{#1}%
+ \g\advance\t@mpcnta\@ne
+ \ifx#2\l@st
+ \g\let\n@xt\relax
+ \else\g\let\n@xt\@ssign
+ \fi
+ \n@xt}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Allocation of internal registers %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newdimen\leftdist
+\newdimen\rightdist
+\newbox\TeXTree
+
+\newcount\sl@pe
+\newcount\l@vels
+\newcount\s@ze
+
+\newbox\circleb@x
+\newbox\squareb@x
+\newbox\dotb@x
+\newbox\triangleb@x
+\newbox\textb@x
+\newbox\frameb@x
+
+\newdimen\circlew@dth
+\newdimen\squarew@dth
+\newdimen\dotw@dth
+\newdimen\trianglew@dth
+\newdimen\textw@dth
+\newdimen\framew@dth
+
+\newdimen\vd@st
+\newdimen\hd@st
+\newdimen\based@st
+\newdimen\dummyhalfcenterdim@n
+
+\newcount\t@mpcnta
+\newcount\t@mpcntb
+\newcount\t@mpcntc
+\newcount\t@mpcntd
+\newdimen\t@mpdima
+\newdimen\t@mpdimb
+\newdimen\t@mpdimc
+\newbox\t@mpboxa
+\newbox\t@mpboxb
+
+\newbox\leftb@x
+\newbox\rightb@x
+\newbox\centerb@x
+\newbox\beneathb@x
+\newtoks\typ@
+\newbox\centerb@@x
+\newdimen\centerdim@n
+\newdimen\halfcenterdim@n
+
+\newdimen\mins@p
+\newdimen\halfmins@p
+\newdimen\tots@p
+\newdimen\halftots@p
+\newdimen\currs@p
+\newdimen\adds@p
+\newcount\l@ftht
+\newcount\r@ghtht
+\newcount\l@ftinfo
+\newcount\r@ghtinfo
+\newbox\l@ftbox
+\newbox\r@ghtbox
+
+\newif\ifr@ghthigher % true iff the right subtree is higher than the left one
+\newif\ifadds@p
+
+\newcount\@larg
+\newcount\@rarg
+
+\newif\ifl@fttop
+\newif\ifl@ftonly
+\newif\ifr@ghtonly
+\newif\if@xt
+\newif\ifl@ftedge
+\newif\ifr@ghtedge
+\newif\ifext@nded
+
+\newdimen\lm@ff
+\newdimen\rm@ff
+\newdimen\lb@ff
+\newdimen\rb@ff
+\newdimen\lt@p
+\newdimen\rt@p
+
+\newcount\l@sttreebox % These four counter allocations have been copied
+\newcount\l@sttreeheight % to this position from the \Tree command
+\newcount\l@stdiminfo % (vs. 2.1). Previously each tree allocated its own
+\newcount\l@sttreetype % counters, using up counters for nothing.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Slope handling for the edges %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The picture environment of LaTeX gives us a choice of 24 positive
+% slopes for lines (i.e. edges of trees in this context),
+% including vertical ones. The slope of a line is
+% given by an x- and an y-value, see L. Lamport, LaTeX, pp. 105f for
+% further details. x/y can have the following values (decreasing amount
+% of slope): 0/1 1/6 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 5/6 1/1 6/5 5/4
+% 4/3 3/2 5/3 2/1 5/2 3/1 4/1 5/1 6/1.
+% The x-values are allocated to \xv@li, \xv@lii,..., \xv@lxxiv, and
+% they can conveniently be accessed by the command \xv@l{<number>}.
+% The same holds for the y-values.
+
+\s@ries{xv@l}{0//1//1//1//1//2//1//3//2//3//4//5//1//6//%
+ 5//4//3//5//2//5//3//4//5//6}
+\s@ries{yv@l}{1//6//5//4//3//5//2//5//3//4//5//6//1//5//%
+ 4//3//2//3//1//2//1//1//1//1}
+
+% \hv@ldef calculates \hv@li, \hv@lii,..., \hv@lxxiv for a given dimen
+% \vd@st according to the following picture:
+%
+% /-|
+% / |
+% / |
+% / |
+% / |\vd@st
+% / |
+% / |
+% / -| |
+% / |\yv@l|
+% / _| _|
+%
+% |___|
+% \xv@l
+% |_________|
+% .5\hv@l
+%
+% \hv@li,..., \hv@lxxiv are initialized in \beginTree, when the
+% actual value for \vd@st is known (\vd@st will depend on the point size of
+% the picture). As before, these values can conveniently be accessed by the
+% command \hv@l{<number>}.
+
+\def\hv@ldef{%
+ \for\t@mpcnta:=1\to24%
+ \do\g\t@mpdima\vd@st\g\multiply\t@mpdima by\xv@l{\t@mpcnta}%
+ \g\divide\t@mpdima by\yv@l{\t@mpcnta}\g\multiply\t@mpdima by 2
+ \expandafter\gxdef\csname hv@l\romannumeral\t@mpcnta\endcsname{%
+ \the\t@mpdima}%
+ \od}
+
+\def\hv@l#1{\csname hv@l\romannumeral#1\endcsname}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Naming trees %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% A TeXtree is stored in TeX's internal registers in the following way:
+% A TeXtree of height h has associated to itself the following internal
+% TeX registers: a box, holding the graphical appearance of the tree,
+% a consecutive number of 6+2h internal dimen registers, holding the
+% additional information about the contour of the tree, a counter
+% holding the height h of the tree, a counter holding the first
+% position of the additional information registers, and a toks register
+% holding the type of the node (circle, square, dot, triangle, text, or frame).
+% The height and position
+% of additional information are stored in consecutive order for
+% consecutive trees. The same is true for the boxes and toks.
+
+% Four key numbers, the register numbers (addresses)
+% for the height, diminfo, box, and type
+% of a tree, enable you to access all information which is stored about the
+% tree. For the last tree on the stack, the four key numbers are stored in the
+% counters \l@sttreeheight, \l@stdiminfo, \l@sttreebox, and \l@sttreetype,
+% the key numbers for the next tree are \l@sttreeheight-2, \l@stdiminfo-2,
+% \l@sttreebox-1, and \l@sttreetype-1, and so on.
+
+% The macro \n@metree gives names to some registers associated with the tree.
+% The tree to be named is specified by its four key numbers. \n@metree takes
+% five arguments, namely the keynumbers for height, info, box and type of the
+% tree, and the name to be given to the tree. If the tree gets the name XXX and
+% the key numbers are h, i, b, and t, the commands on the left side of the
+% following list get the meaning on the right side.
+
+% \XXXht <--- \count h
+% \XXXinfo <--- \count i
+% \XXXbox <--- b
+% \XXXtype <--- \toks t
+% \XXXlmoff <--- \dimen f where f is the address stored
+% in \count i
+% \XXXrmoff <--- \dimen (f+1)
+% \XXXlboff <--- \dimen (f+2)
+% \XXXrboff <--- \dimen (f+3)
+% \XXXltop <--- \dimen (f+4)
+% \XXXrtop <--- \dimen (f+5)
+% \XXXloff <--- \dimen (f+4+2g) where g is the height stored in
+% \count h, i.e. \dimen (f+4+2g)
+% holds loff(1) of the tree, if g>0
+% \XXXroff <--- \dimen (f+5+2g)
+
+% The macro \pr@vioustree sets \l@sttreeheight, \l@stdiminfo,
+% \l@sttreebox and \l@sttreetype to the key numbers of the previous tree
+% and gives the name `l@st' to this tree.
+
+% The macro \@ddname which has two names n1 and n2 as arguments, gives
+% the tree with name n1 the additional name n2.
+
+% The macro \n@mel@st gives the name `l@st' to the tree with the
+% key numbers \l@sttreeheight, \l@stdiminfo, \l@sttreebox and \l@sttreetype.
+
+% The macro \n@xttree sets \l@sttreebox, \l@sttreeheight, \l@stdiminfo,
+% \count\l@stdiminfo, and \l@sttreetype to the next free position.
+
+% The macro \@ppenddummy pushs a dummy onto the stack and names it `l@st'.
+% The dummy has height -1, its box is the empty box, its type is circle,
+% and all dimensions are 0pt.
+
+% \p@s#1#2#3 sets counter #1 to position #2 of tree #3. #1 must be a counter,
+% #3 must be a name for the tree. If the tree has the name XXX, \XXXinfo
+% must be a number holding the first position of the dimen-parameters of
+% the tree and \XXXht must hold the height of the tree.
+% #2 must be one of the following control sequences indicating the
+% desired position: \lmoff, \rmoff, \lboff, \rboff, \ltop, \rtop, \loff, or
+% \roff. \loff and \roff give the left resp. right offset of the *top*
+% level of the tree.
+
+\def\p@s#1#2#3{%
+ \g#1\csname#3info\endcsname
+ \gxdef\t@mp{\csname#3ht\endcsname}%
+ \ifnum\t@mp<0 \gxdef\t@mp{0}\fi
+ #2{#1}%
+ }
+
+\chardef\@lmoff0 \chardef\@rmoff1 \chardef\@ltop4 \chardef\@rtop5
+\chardef\@lboff2 \chardef\@rboff3 \chardef\@loff4 \chardef\@roff5
+
+\def\lmoff#1{\g\advance#1 by\@lmoff}
+\def\rmoff#1{\g\advance#1 by\@rmoff}
+\def\lboff#1{\g\advance#1 by\@lboff}
+\def\rboff#1{\g\advance#1 by\@rboff}
+\def\ltop#1{\g\advance#1 by\@ltop}
+\def\rtop#1{\g\advance#1 by\@rtop}
+\def\loff#1{\g\advance#1 by\@loff\g\advance#1 by\t@mp
+ \g\advance#1 by\t@mp\relax}
+\def\roff#1{\g\advance#1 by\@roff\g\advance#1 by\t@mp
+ \g\advance#1 by\t@mp\relax}
+
+% \n@meinfo#1 defines for an argument XXX (name of a tree) \XXXlmoff,
+% \XXXrmoff, ... as lmoff(XXX), rmoff(XXX),... .
+% The following arguments will be used: l@ft, r@ght, l@st,
+% m@n, and m@x.
+
+\def\n@meinfo#1{%
+ \n@me@nfo{#1}{lmoff}\n@me@nfo{#1}{rmoff}%
+ \n@me@nfo{#1}{lboff}\n@me@nfo{#1}{rboff}%
+ \n@me@nfo{#1}{ltop}\n@me@nfo{#1}{rtop}%
+ \n@me@nfo{#1}{loff}\n@me@nfo{#1}{roff}%
+ }
+
+\def\n@me@nfo#1#2{%
+ \p@s\t@mpcnta{\csname#2\endcsname}{#1}%
+ \expandafter\gxdef\csname#1#2\endcsname{\dimen\the\t@mpcnta}}
+
+\def\n@metree#1#2#3#4#5{%
+ \expandafter\gxdef\csname#5ht\endcsname{\count\the#1}%
+ \expandafter\gxdef\csname#5info\endcsname{\count\the#2}%
+ \expandafter\gxdef\csname#5box\endcsname{\the#3}%
+ \expandafter\gxdef\csname#5type\endcsname{\toks\the#4}%
+ \n@meinfo{#5}%
+ }
+
+\chardef\@cntoff3 \chardef\@boxoff1 \chardef\@dimoff2 \chardef\@typeoff1
+
+\def\pr@vioustree{%
+ \g\advance\l@sttreeheight by-\@cntoff
+ \g\advance\l@stdiminfo by-\@cntoff
+ \g\advance\l@sttreetype by-\@cntoff
+ \g\advance\l@sttreebox by-\@boxoff
+ \n@mel@st
+ }
+
+\def\@ddname#1#2{%
+ \expandafter\gxdef\csname#2ht\endcsname{\csname#1ht\endcsname}%
+ \expandafter\gxdef\csname#2info\endcsname{\csname#1info\endcsname}%
+ \expandafter\gxdef\csname#2type\endcsname{\csname#1type\endcsname}%
+ \expandafter\gxdef\csname#2box\endcsname{\csname#1box\endcsname}%
+ \n@meinfo{#2}%
+ }
+
+\def\n@xttree{%
+ \p@s\t@mpcnta\loff{l@st}\g\advance\t@mpcnta by\@dimoff
+ \g\advance\l@sttreeheight by\@cntoff
+ \g\advance\l@stdiminfo by\@cntoff
+ \g\advance\l@sttreetype by\@cntoff
+ \g\advance\l@sttreebox by\@boxoff
+ \g\count\l@stdiminfo\t@mpcnta
+ }
+
+\def\@ppenddummy{% pushs a dummy onto the stack and names it `l@st'
+ % The dummy has height -1, its box is the empty box, the type
+ % is circle, and all dimensions are 0pt.
+ \n@xttree \g\count\l@sttreeheight-\@ne\n@mel@st
+ \l@sttype{circle}%
+ \g\setbox\l@stbox\copy\voidb@x
+ \g\l@stlmoff=0pt\g\l@strmoff=0pt\g\l@stlboff=0pt\g\l@strboff=0pt%
+ \g\l@stltop=0pt\g\l@strtop=0pt\g\l@stloff=0pt\g\l@stroff=0pt%
+ }
+
+\def\g@tchildren{% enables us to talk about the left and the right child
+ % (names l@ft resp. r@ght) and the smaller and the larger
+ % child (names m@n resp. m@x)
+ \ifl@fttop\@ddname{l@st}{l@ft}%
+ \pr@vioustree
+ \@ddname{l@st}{r@ght}%
+ \else\@ddname{l@st}{r@ght}%
+ \pr@vioustree
+ \@ddname{l@st}{l@ft}%
+ \fi
+ \ifnum\r@ghtht>\l@ftht\relax
+ \r@ghthighertrue
+ \@ddname{r@ght}{m@x}%
+ \@ddname{l@ft}{m@n}%
+ \else\r@ghthigherfalse
+ \@ddname{l@ft}{m@x}%
+ \@ddname{r@ght}{m@n}%
+ \fi
+ }
+
+\def\n@mel@st{%
+ \n@metree\l@sttreeheight\l@stdiminfo\l@sttreebox\l@sttreetype{l@st}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Initialization of the tree environment %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\beginTree{%
+ \begingroup
+ \unitlength 1pt%
+ \divide\unitlength by 65536
+ \l@sttreebox\count14
+ \l@sttreeheight\count10
+ \advance\l@sttreeheight by \@ne
+ \count\l@sttreeheight=-1
+ \l@stdiminfo\l@sttreeheight
+ \advance\l@stdiminfo by \@ne
+ \count\l@stdiminfo\count11
+ \advance\count\l@stdiminfo by -5
+ \l@sttreetype\l@stdiminfo
+ \advance\l@sttreetype by\@ne
+ \count\l@sttreetype\count15
+ \n@mel@st\ignorespaces
+ }
+
+\let\Tree\beginTree
+
+\def\endTree{%
+ \g\leftdist-\l@stlmoff\g\advance\leftdist by \l@stltop
+ \g\rightdist\l@strmoff\g\advance\rightdist by\l@strtop
+ \g\setbox\TeXTree\box\l@stbox\endgroup\ignorespaces}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Specification of nodes %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% A node is defined by the command \node{<specifications>}.
+% <specifications> defines the labels, graphical appearence and the order
+% of the node and the thickness of the edges.
+% Labels are defined by the commands \lft, \rght, \cntr,
+% and \bnth. The specification of empty labels may be omitted.
+% The graphical appearence is defined by the command \type{<type>}.
+% <type> can have the values `circle', `square', `dot',
+% `triangle', 'text', or 'frame'. The thickness of the edges is defined by
+% \leftthick and \rightthick that give thick edges instead of the
+% normal thin ones. Furthermore,
+% the order of the node is given by the following commands:
+% \external (if the node is an external node), \leftonly (if the node has a
+% left successor only), \rightonly (analogous), \unary (if the node is an
+% unary one), and \lefttop (the
+% node which has been defined before this one, is supposed to be the left
+% successor instead of the right one).
+% Default: two children, no labels, type circle, thin edges,
+% left child has been entered first.
+
+\def\th@ck{\let\@linefnt\tenlnw
+ \@wholewidth\fontdimen8\tenlnw\@halfwidth.5\@wholewidth}
+
+\def\leftthick{\g\let\l@ftthick\th@ck}
+\def\rightthick{\g\let\r@ghtthick\th@ck}
+\def\lft#1{\g\setbox\leftb@x\hbox{#1\ }}
+\def\rght#1{\g\setbox\rightb@x\hbox{\ #1}}
+\def\cntr#1{\g\setbox\centerb@x\hbox{#1\strut}}
+\def\bnth#1{\g\setbox\beneathb@x\hbox to0pt{\hss\strut#1\hss}}
+\def\type#1{%
+ \g\setbox\centerb@@x\copy\csname#1b@x\endcsname
+ \g\centerdim@n\csname#1w@dth\endcsname
+ \typ@{#1}%
+ \g\halfcenterdim@n=.5\centerdim@n}
+
+\def\ext@nded{\g\ext@ndedfalse} % This definition must precede
+ % \input TreeTeX.sty (outdated now!)
+
+\def\node#1{%
+ %%% Initialization (node type and labels), defaults and actual values
+ \g\setbox\leftb@x\copy\voidb@x
+ \g\setbox\rightb@x\copy\voidb@x
+ \g\setbox\centerb@x\copy\voidb@x
+ \g\setbox\beneathb@x\copy\voidb@x
+ \type{circle}%
+ \g\l@fttopfalse\g\l@ftonlyfalse\g\l@ftedgetrue
+ \g\r@ghtonlyfalse\g\r@ghtedgetrue\g\@xtfalse\ext@nded\n@dummy
+ \g\let\l@ftthick\relax\g\let\r@ghtthick\relax
+ #1%
+ \@pdcenter
+ \d@mmy
+ \n@de
+ \ignorespaces
+ }
+
+\def\@pdcenter{\csname\the\typ@ @cntr\endcsname}
+
+\let\circle@cntr\relax
+\let\square@cntr\relax
+\let\triangle@cntr\relax
+\let\dot@cntr\relax
+
+\def\text@cntr{%
+ \g\centerdim@n\wd\centerb@x
+ \g\halfcenterdim@n.5\centerdim@n}
+
+\def\frame@cntr{%
+ \g\setbox\centerb@x\hbox{\ \unhcopy\centerb@x\ }
+ \g\centerdim@n\wd\centerb@x
+ % \g\advance\centerdim@n\fontdimen2\font
+ \g\halfcenterdim@n.5\centerdim@n
+ \g\setbox\centerb@@x\rect@ngle{\centerdim@n}{\squarew@dth}{.4pt}}
+
+\def\leftonly{\g\l@ftonlytrue\g\r@ghtedgefalse\g\let\d@mmy\l@ftdummy}
+\def\rightonly{\g\r@ghtonlytrue\g\l@ftedgefalse\g\let\d@mmy\r@ghtdummy}
+\def\unary{\g\r@ghtedgefalse\g\let\d@mmy\@ndummy}
+\def\external{\g\@xttrue\g\l@ftedgefalse\g\r@ghtedgefalse\g\let\d@mmy\@xtdummy}
+
+\def\lefttop{\g\l@fttoptrue}
+
+\def\@xtdummy{%
+ \@ppenddummy
+ \g\l@strtop-\halfmins@p
+ \@ppenddummy
+ \g\l@stltop-\halfmins@p
+ }
+
+\def\n@dummy{\g\let\d@mmy\relax}
+
+\def\l@ftdummy{% cf. \g@tposition
+ \@ppenddummy
+ \g\l@stltop=\dummyhalfcenterdim@n
+ \g\l@strtop=\dummyhalfcenterdim@n
+ }
+
+\def\r@ghtdummy{% cf. \g@tposition
+ \lefttop
+ \@ppenddummy
+ \g\l@stltop=\dummyhalfcenterdim@n
+ \g\l@strtop=\dummyhalfcenterdim@n
+ }
+
+\def\@ndummy{%
+ \g\t@mpdima\l@strtop\relax
+ \@ppenddummy
+ \g\l@stltop-\mins@p\g\advance\l@stltop by-\t@mpdima
+ \g\l@strtop=\t@mpdima
+ }
+
+\def\n@de{%
+ \g@tposition % naming children and calculating \sl@pe and \tots@p
+ \g@tlt@p\g@trt@p % calculating \lt@p and \rt@p
+ \g@tlm@ff\g@trm@ff % calculating \lm@ff and \rm@ff
+ \g@tlb@ff\g@trb@ff % calculating \lb@ff and \rb@ff
+ \@pdlroff % updating loff and roff for all levels but the top one
+ \@pdloffl\@pdroffl % updating loff(1) and roff(1) of the parent tree
+ \@pddim % updating ltop, rtop, lmoff, rmoff, lboff, and rboff
+ \@pdinfo\@pdht % updating diminfo and treeheight
+ \@pdbox % updating treebox
+ \@pdtype % updating type
+ \n@mel@st % giving the name `l@st' to the new tree
+ \ignorespaces
+ }
+
+\def\g@tposition{% naming children and calculating \sl@pe, \tots@p, and node offsets
+ \g@tchildren\c@lcsep\c@lcslope\c@lcoffsets
+ \ifext@nded\relax
+ \else\ifl@ftonly\g\r@ghtrtop=-\tots@p
+ \g\advance\r@ghtrtop by\l@ftrtop
+ \fi
+ \ifr@ghtonly\g\l@ftltop=-\tots@p
+ \g\advance\l@ftltop by\r@ghtltop
+ \fi
+ \fi % cf. \l@ftdummy and \r@ghtdummy
+ }
+
+\def\@pdinfo{% updating diminfo
+ \g\l@stinfo=\m@xinfo\relax
+ }
+
+\def\@pdht{% updating treeheight
+ \g\l@stht=\m@xht
+ \g\advance\l@stht by\@ne
+ }
+
+\def\@pdtype{% updating type
+ \g\l@sttype\typ@
+ }
+
+\def\g@tlt@p{% calculating \lt@p
+ \g\lt@p\wd\leftb@x\g\advance\lt@p by\halfcenterdim@n
+ }
+
+\def\g@trt@p{% calculating \rt@p
+ \g\rt@p\wd\rightb@x\g\advance\rt@p by\halfcenterdim@n
+ }
+
+\def\g@tlm@ff{% calculating \lm@ff
+ % \lm@ff:=lmoff(left tree)-ltop(left tree)
+ % -.5\tots@p+\lt@p
+ \g\lm@ff\l@ftlmoff
+ \g\advance\lm@ff by-\l@ftltop
+ \g\advance\lm@ff by-\halftots@p
+ \g\advance\lm@ff by\lt@p\relax
+ % if ht(left tree) < ht(right tree)
+ % \t@mpdima:=lmoff(right tree)-ltop(right tree)+.5\tots@p+\lt@p
+ % \lm@ff:=min(\lm@ff,\t@mpdima) fi
+ \ifnum\l@ftht<\r@ghtht\relax
+ \g\t@mpdima\r@ghtlmoff
+ \g\advance\t@mpdima by-\r@ghtltop
+ \g\advance\t@mpdima by\halftots@p
+ \g\advance\t@mpdima by\lt@p\relax
+ \ifdim\t@mpdima<\lm@ff\relax
+ \g\lm@ff\t@mpdima
+ \fi
+ \fi
+ % \lm@ff:=min(\lm@ff,0pt)
+ \ifdim0pt<\lm@ff\relax
+ \g\lm@ff=0pt%
+ \fi
+ }
+
+\def\g@trm@ff{% calculating \rm@ff
+ % analog to lm@ff
+ % \rm@ff:=rmoff(right tree)+rtop(right tree)
+ % +.5\tots@p-\rt@p
+ \g\rm@ff\r@ghtrmoff
+ \g\advance\rm@ff by\r@ghtrtop
+ \g\advance\rm@ff by\halftots@p
+ \g\advance\rm@ff by-\rt@p\relax
+ % \t@mpdima:=rmoff(left tree)+rtop(left tree)-.5\tots@p-\rt@p
+ \ifnum\r@ghtht<\l@ftht\relax
+ \g\t@mpdima\l@ftrmoff
+ \g\advance\t@mpdima by\l@ftrtop
+ \g\advance\t@mpdima by-\halftots@p
+ \g\advance\t@mpdima by-\rt@p\relax
+ \ifdim\t@mpdima>\rm@ff\relax
+ \g\rm@ff\t@mpdima
+ \fi
+ \fi
+ % \rm@ff:=max(\rm@ff,0pt)
+ \ifdim0pt>\rm@ff\relax
+ \g\rm@ff=0pt
+ \fi
+ }
+
+\def\g@tlb@ff{% calculating \lb@ff
+ % \lb@ff:=lboff(right tree)-ltop(right tree)+.5\tots@p+\lt@p
+ % resp.:=lboff(left tree)-ltop(left tree)
+ % -.5\tots@p+\lt@p
+ \if@xt\g\lb@ff0pt%
+ \else\ifnum\l@ftht<\r@ghtht\relax
+ \g\lb@ff\r@ghtlboff
+ \g\advance\lb@ff by-\r@ghtltop
+ \g\advance\lb@ff by\halftots@p
+ \g\advance\lb@ff by\lt@p\relax
+ \else\g\lb@ff\l@ftlboff
+ \g\advance\lb@ff by-\l@ftltop
+ \g\advance\lb@ff by-\halftots@p
+ \g\advance\lb@ff by\lt@p\relax
+ \fi
+ \fi
+ }
+
+\def\g@trb@ff{% calculating \rb@ff
+ % \rb@ff:=rboff(left tree)+rtop(left tree)-.5\tots@p-\rt@p
+ % resp.:=rboff(right tree)+rtop(right tree)
+ % +.5\tots@p-\rt@p
+ \if@xt\g\rb@ff0pt%
+ \else\ifnum\r@ghtht<\l@ftht\relax
+ \g\rb@ff\l@ftrboff
+ \g\advance\rb@ff by\l@ftrtop
+ \advance\rb@ff by-\halftots@p
+ \g\advance\rb@ff by-\rt@p\relax
+ \else\g\rb@ff\r@ghtrboff
+ \g\advance\rb@ff by\r@ghtrtop
+ \g\advance\rb@ff by\halftots@p
+ \g\advance\rb@ff by-\rt@p\relax
+ \fi
+ \fi
+ }
+
+\def\@pdlroff{% updating loff and roff for all levels but the top one
+ % if right tree higher \t@mpdima:=-ltop(right tree)
+ % \t@mpdimb:=lboff(left tree)-ltop(left tree)
+ % % \t@mpdimb holds the offset between the node
+ % % and the left edge of the bottom of the left tree
+ % else \t@mpdima:=rtop(left tree)
+ % \t@mpdimb:=lboff(right tree)+rtop(right tree)
+ % % substitute left by right
+ % fi
+ \ifr@ghthigher\g\t@mpdima-\r@ghtltop\relax
+ \g\t@mpdimb\l@ftlboff
+ \g\advance\t@mpdimb by-\l@ftltop\relax
+ \else\g\t@mpdima\l@ftrtop\relax
+ \g\t@mpdimb\r@ghtlboff
+ \g\advance\t@mpdimb by\r@ghtrtop\relax
+ \fi
+ \ifr@ghthigher\p@s\t@mpcnta\loff{m@n}% pointer to loff(1) of smaller tree
+ \p@s\t@mpcntb\loff{m@x}% pointer to loff(1) of larger tree
+ \else\p@s\t@mpcnta\roff{m@n}% pointer to roff(1) of smaller tree
+ \p@s\t@mpcntb\roff{m@x}% pointer to roff(1) of larger tree
+ \fi % if the right tree is the higher one you have to shift
+ % the left profile of the smaller tree, otherwise the
+ % right one
+ % For every level, \t@mpdima contains the offset between the node of the
+ % higher tree and the inner edge of the next level. Furthermore, if the
+ % right tree is the higher one, the left profile of the left tree becomes
+ % the upper part of the left profile of the parent tree, otherwise
+ % substitute `left' by `right.'
+ \ex\m@nht\times
+ \g\advance\t@mpdima by\dimen\t@mpcntb
+ \g\dimen\t@mpcntb\dimen\t@mpcnta
+ \g\advance\t@mpcnta by-\@dimoff
+ \g\advance\t@mpcntb by-\@dimoff\relax
+ \xe
+ % The link between the last outer level of the smaller tree and the next
+ % level of the higher one:
+ % \dimen\t@mpcntb:=\dimen\t@mpcntb+\t@mpdima+\tots@p-\t@mpdimb
+ % if left tree is smaller than right tree
+ % resp.\dimen\t@mpcntb+\t@mpdima-\tots@p-\t@mpdimb
+ % if right tree is smaller than left tree
+ \ifnum\m@xht=\m@nht\relax
+ \else\g\advance\dimen\t@mpcntb by\t@mpdima
+ \ifnum\l@ftht<\r@ghtht\relax
+ \g\advance\dimen\t@mpcntb by\tots@p
+ \else\g\advance\dimen\t@mpcntb by-\tots@p
+ \fi
+ \g\advance\dimen\t@mpcntb by-\t@mpdimb
+ \fi
+ }
+
+\def\@pdloffl{% updating loff(1) of parent tree
+ % loff(1) of parent tree:=+\lt@p-.5\tots@p-ltop(left tree)
+ \p@s\t@mpcnta\loff{m@x}%
+ \g\advance\t@mpcnta by \@dimoff\relax % pointer to loff(0) of parent tree
+ \g\dimen\t@mpcnta\lt@p
+ \g\advance\dimen\t@mpcnta by-\halftots@p
+ \g\advance\dimen\t@mpcnta by-\l@ftltop\relax
+ }
+
+\def\@pdroffl{% updating roff(1) of parent tree
+ % roff(l) of parent tree:=-\rt@p+.5\tots@p+rtop(right tree)
+ \p@s\t@mpcnta\roff{m@x}%
+ \g\advance\t@mpcnta by \@dimoff\relax % pointer to roff(0) of parent tree
+ \g\dimen\t@mpcnta-\rt@p
+ \g\advance\dimen\t@mpcnta by\halftots@p
+ \g\advance\dimen\t@mpcnta by\r@ghtrtop\relax
+ }
+
+\def\@pddim{% updating ltop, rtop, lmoff, rmoff, lboff, and rboff
+ \g\m@xlmoff=\lm@ff\g\m@xrmoff=\rm@ff
+ \g\m@xlboff=\lb@ff\g\m@xrboff=\rb@ff
+ \g\m@xltop=\lt@p\g\m@xrtop=\rt@p
+ }
+
+\def\@pdbox{% pushing the nodebox on the stack: updating treebox
+ \g\@xarg\xv@l\sl@pe\g\@yarg\yv@l\sl@pe
+ \ifnum\sl@pe=1 % vertical edge
+ \g\t@mpdima\vd@st
+ \g\advance\t@mpdima by-\y@ff\typ@
+ \g\advance\t@mpdima by-\y@ff\l@fttype
+ \g\@larg\t@mpdima % \@larg is a number register!
+ \g\t@mpdima\vd@st
+ \g\advance\t@mpdima by-\y@ff\typ@
+ \g\advance\t@mpdima by-\y@ff\r@ghttype
+ \g\@rarg\t@mpdima % \@rarg is a number register!
+ \else\g\t@mpdima\halftots@p
+ \g\advance\t@mpdima by-\x@ff\typ@
+ \g\advance\t@mpdima by-\x@ff\l@fttype
+ \g\@larg\t@mpdima % \@larg is a number register!
+ \g\t@mpdima\halftots@p
+ \g\advance\t@mpdima by-\x@ff\typ@
+ \g\advance\t@mpdima by-\x@ff\r@ghttype
+ \g\@rarg\t@mpdima % \@rarg is a number register!
+ \fi
+ \g\setbox\l@sttreebox\hbox{%
+ \ifvoid\leftb@x\relax
+ \else\hskip-\halfcenterdim@n\hskip-\wd\leftb@x
+ \unhcopy\leftb@x\hskip\halfcenterdim@n
+ \fi
+ \ifvoid\centerb@x\relax
+ \else\g\t@mpdima-.5\wd\centerb@x\hskip\t@mpdima
+ \unhbox\centerb@x\hskip\t@mpdima
+ \fi
+ \ifvoid\rightb@x\relax
+ \else\g\t@mpdima-\wd\rightb@x\hskip\halfcenterdim@n
+ \unhbox\rightb@x\hskip\t@mpdima\hskip-\halfcenterdim@n
+ \fi
+ \raise\based@st\copy\centerb@@x
+ \if@xt\relax
+ \lower\s@ze pt\hbox to0pt{\hss\unhbox\beneathb@x\hss}%
+ \else\hskip-\halftots@p
+ \lower\vd@st\box\l@ftbox
+ \ifl@ftedge\drawl@ftedge\else\hskip\halftots@p\fi
+ \ifr@ghtedge\drawr@ghtedge\else\hskip\halftots@p\fi
+ \lower\vd@st\box\r@ghtbox
+ \hskip-\halftots@p
+ \fi
+ }% of hbox
+ }
+
+\def\drawl@ftedge{%
+ \hskip\x@ff\l@fttype
+ \g\t@mpdimc\y@ff\l@fttype\g\advance\t@mpdimc by\based@st
+ \g\advance\t@mpdimc-\vd@st
+ \raise\t@mpdimc
+ \hbox{\l@ftthick\lineseg(\@xarg,\@yarg){\@larg}}%
+ \hskip\x@ff\typ@
+ }
+
+\def\drawr@ghtedge{%
+ \hskip\x@ff\typ@
+ \g\t@mpdimc\vd@st
+ \g\advance\t@mpdimc by \based@st
+ \g\advance\t@mpdimc by -\y@ff\typ@\relax
+ \g\advance\t@mpdimc by- \vd@st
+ \raise\t@mpdimc
+ \hbox{\r@ghtthick\lineseg(\@xarg,-\@yarg){\@rarg}}%
+ \hskip\x@ff\r@ghttype
+ }
+
+\def\x@ff#1{%
+ \csname\the#1x@ff\endcsname\sl@pe
+ }
+
+\def\y@ff#1{%
+ \csname\the#1y@ff\endcsname\sl@pe
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Calculating the separation of subtrees %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \c@lcslope will calculate the required slope of the edges
+% when the nodes are to be \vd@st apart vertically
+% and at least \tots@p apart horizontally. This slope is returned by
+% the value of the counter \sl@pe (a number between 1 and 23).
+% Furthermore, \tots@p is updated in order to fit to this slope.
+
+\def\c@lcslope{%
+ \g\sl@pe1
+ \loop
+ \ifdim\hv@l\sl@pe < \tots@p
+ \g\advance\sl@pe by1
+ \repeat
+ \g\tots@p\hv@l\sl@pe
+ \g\halftots@p.5\tots@p}
+
+
+\def\c@lcsep{%
+ %%% \tots@p:=\mins@p + rtop(left tree) + ltop(right tree)
+ %%% \currs@p:=\mins@p
+ \g\tots@p\mins@p
+ \g\advance\tots@p by\l@ftrtop
+ \g\advance\tots@p by\r@ghtltop\relax
+ \g\currs@p\mins@p
+ %%% \t@mpcnta:= pointer to roff(0) of left tree
+ %%% \t@mpcntb:= pointer to loff(0) of right tree
+ \p@s\t@mpcnta\roff{l@ft}%
+ \p@s\t@mpcntb\loff{r@ght}%
+ %%% Calculate \currs@p and update \tots@p for each level of the
+ %%% smaller tree
+ %%% If at any level the subtrees are as close or closer than at
+ %%% the level of their roots, they will be moved apart by the additional
+ %%% amount of \adds@p
+ \g\adds@pfalse
+ \g\t@mpcntc\m@nht
+ \ex\t@mpcntc\times
+ \g\advance\currs@p by-\dimen\t@mpcnta
+ \g\advance\currs@p by \dimen\t@mpcntb
+ \ifdim\mins@p<\currs@p
+ \else\g\adds@ptrue
+ \fi
+ \ifdim\currs@p<\mins@p
+ \g\advance\tots@p by\mins@p
+ \g\advance\tots@p by -\currs@p
+ \g\currs@p\mins@p
+ \fi
+ \g\advance\t@mpcnta by -\@dimoff
+ \g\advance\t@mpcntb by -\@dimoff
+ \xe
+ \ifadds@p\g\advance\tots@p by\adds@p\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Predefined trees %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \tri@ngle produces a triangle which covers \l@vels many level of a tree.
+% The slope of the edges is given by \sl@pe, the reference point of the
+% triangle is in the top, the width is 0pt.
+
+\def\tri@ngle{%
+ \vtop{\g\@xarg\xv@l\sl@pe \g\@yarg\yv@l\sl@pe
+ \g\t@mpdimc\l@vels\vd@st
+ \g\advance\t@mpdimc by .5\squarew@dth
+ \g\multiply\t@mpdimc\xv@l\sl@pe
+ \g\divide\t@mpdimc\yv@l\sl@pe
+ \g\@larg\t@mpdimc
+ \offinterlineskip
+ \vskip0pt% Force the reference point to the top
+ \hbox to0pt{\hss\lineseg(\@xarg,\@yarg){\@larg}%
+ \hskip\t@mpdimc\rlap{\lineseg(-\@xarg,\@yarg){\@larg}}%
+ \hss}%
+ \setbox\t@mpboxa
+ \hbox to0pt{\hss\vrule height.2pt depth.2pt width2\t@mpdimc\hss}%
+ \t@mpdimc-.5\squarew@dth\advance\t@mpdimc\based@st
+ \ht\t@mpboxa0pt\dp\t@mpboxa\t@mpdimc\copy\t@mpboxa
+ }%
+ }
+
+\def\lvls#1{\g\l@vels#1}
+\def\slnt#1{\g\sl@pe#1}
+
+\def\treesymbol#1{%
+ \g\setbox\leftb@x\copy\voidb@x
+ \g\setbox\rightb@x\copy\voidb@x
+ \g\setbox\centerb@x\copy\voidb@x
+ \g\setbox\beneathb@x\copy\voidb@x
+ \lvls{1}\slnt{3}%
+ #1%
+ \g\centerdim@n\trianglew@dth
+ \g\halfcenterdim@n.5\trianglew@dth
+ \n@xttree
+ \g\count\l@sttreeheight\l@vels% \g\advance\count\l@sttreeheight by\tw@
+ \g\toks\l@sttreetype{triangle}%
+ \n@mel@st
+ \g\hd@st\hv@l\sl@pe \g\divide\hd@st by\tw@
+ \g\l@stltop=\halfcenterdim@n\g\advance\l@stltop by\wd\leftb@x
+ \g\l@strtop=\halfcenterdim@n\g\advance\l@strtop by\wd\rightb@x
+ \g\l@stlboff=-\hd@st \g\multiply\l@stlboff by\l@vels
+ \g\advance\l@stlboff by\wd\leftb@x
+ \g\l@strboff=\hd@st \g\multiply\l@strboff by\l@vels
+ \g\advance\l@strboff by-\wd\rightb@x
+ \g\l@stlmoff=\l@stlboff\relax
+ \ifdim\l@stlmoff>0pt\relax\g\l@stlmoff=0pt\fi
+ \g\l@strmoff=\l@strboff
+ \ifdim\l@strmoff<0pt\relax\g\l@strmoff=0pt\fi
+ \g\t@mpcnta\l@stinfo\g\advance\t@mpcnta by6% preliminary
+ \ex\l@vels\times
+ \g\dimen\t@mpcnta-\hd@st\g\advance\t@mpcnta by\@ne
+ \g\dimen\t@mpcnta\hd@st\g\advance\t@mpcnta by\@ne
+ \xe
+ \g\advance\t@mpcnta by-\tw@
+ \g\advance\dimen\t@mpcnta by\wd\leftb@x
+ \g\advance\t@mpcnta by\@ne
+ \g\advance\dimen\t@mpcnta by-\wd\rightb@x
+ \g\setbox\l@stbox\vtop % to\l@vels\vd@st
+ {\offinterlineskip
+ \g\setbox\t@mpboxa
+ \hbox{\hskip-\halfcenterdim@n\hskip-\wd\leftb@x\unhbox\leftb@x
+ \hskip\halfcenterdim@n
+ \raise\based@st\tri@ngle
+ \hskip\halfcenterdim@n\t@mpdima-\wd\rightb@x
+ \unhbox\rightb@x\hskip\t@mpdima\hskip-\halfcenterdim@n}
+ \g\ht\t@mpboxa=0pt\box\t@mpboxa
+ \setbox\centerb@x\hbox to0pt{\hss\unhbox\centerb@x\hss}%
+ \ht\centerb@x0pt\dp\centerb@x0pt\box\centerb@x
+ \vskip\s@ze pt
+ \ht\beneathb@x0pt\box\beneathb@x
+ \vskip-\dp\beneathb@x\vskip-\ht\beneathb@x}%
+ \ignorespaces
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Node sizes %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The algorithm (macros \@pdbox, \drawl@ftedge, \drawr@ghtedge) accesses the
+% horizontal and vertical offset fo any node type XXX (circle, square,
+% dot, triangle, text, and frame) via the macros \XXXx@ff resp. \XXXy@ff.
+% These two macros take the slope of the outgoing edges
+% of the current node as their argument. Though horizontal offsets can
+% be calculated from the vertical offsets and vice versa, there is no
+% room to do so in the \XXXx@ff or \YYYy@ff macros, because these macros
+% have to expand to a dimension!
+%
+% Let k be a <number>. Actually k will be the slope of the outgoing
+% edges of the current node.
+%
+% There are three methods how, e.g., \XXXx@ff can be defined , depending
+% on the node type and the x- or y-orientation.
+% First, \XXXx@ff can be defined to expand to \XXXx@ffk', k' beeing
+% the roman numeral representation of the value of k, that in turn
+% expands to the appropriate dimension (example: \circley@ff).
+% In this case, \XXXx@ffi,...,\XXXx@ffiv are predefined by a \s@ries
+% command.
+% Second, \XXXx@ff can be defined to expand to a fixed dimension,
+% independent of its argument (example: \dotx@ff).
+% Third, the value of \XXXx@ff can be defined by the macro
+% \c@lcoffsets, when the slope k is already known. In this case,
+% the computation of \XXXx@ff makes use of the actual value
+% of k and possibly other offsets that are already predefined by method I
+% (examples: \circlex@ff, \squarex@ff).
+
+\def\norm@ff{% everything set up for 10pt node size
+\s@ries{circley@ff}{0.50000pt//0.49320pt//0.49029pt//0.48507pt//%
+ 0.47434pt//0.46424pt//0.44721pt//0.42875pt//%
+ 0.41603pt//0.40000pt//0.39043pt//0.38411pt//%
+ 0.35355pt//0.32009pt//0.31235pt//0.30000pt//%
+ 0.27735pt//0.25725pt//0.22361pt//0.18570pt//%
+ 0.15811pt//0.12127pt//0.09806pt//0.08220pt}%
+ }
+
+\def\dotx@ff#1{0pt}
+\def\doty@ff#1{0pt}
+
+\def\trianglex@ff#1{0pt}
+\def\triangley@ff#1{0pt}
+
+\def\c@lcoffsets{%
+ % \circlex@ff uses predefined \circley@ffi, \circley@ffii etc.
+ \ifnum\sl@pe=\@ne\relax
+ \xdef\circlex@ff##1{0pt}%
+ \else\g\t@mpcnta26 % number of slopes + 2
+ \g\advance\t@mpcnta-\sl@pe
+ \xdef\circlex@ff##1{\circley@ff\t@mpcnta}%
+ \fi
+ % \squarex@ff and \squarey@ff are computed directly from \sl@pe and \squarew@dth
+ \ifnum\sl@pe<13\relax % incoming edge meets upper border of a square node
+ % (slope 13 corresponds to 45 degrees)
+ \g\t@mpdima.5\squarew@dth
+ \xdef\squarey@ff##1{\the\t@mpdima}%
+ \g\multiply\t@mpdima\xv@l\sl@pe
+ \g\divide\t@mpdima\yv@l\sl@pe
+ \xdef\squarex@ff##1{\the\t@mpdima}%
+ \else\g\t@mpdima.5\squarew@dth
+ \xdef\squarex@ff##1{\the\t@mpdima}%
+ \g\multiply\t@mpdima\yv@l\sl@pe
+ \g\divide\t@mpdima\xv@l\sl@pe
+ \xdef\squarey@ff##1{\the\t@mpdima}%
+ \fi
+ % \texty@ff is .5\squarew@dth, \textx@ff is adjusted accordingly
+ \g\t@mpdima.5\squarew@dth
+ \xdef\texty@ff##1{\the\t@mpdima}%
+ \g\multiply\t@mpdima\xv@l\sl@pe
+ \g\divide\t@mpdima\yv@l\sl@pe
+ \xdef\textx@ff##1{\the\t@mpdima}%
+ \let\framex@ff\textx@ff
+ \let\framey@ff\texty@ff
+ }
+
+\def\upds@ze#1{%
+ \for\t@mpcntc:=1\to24
+ \do\g\t@mpdimc=\csname#1\romannumeral\t@mpcntc\endcsname\relax
+ \g\multiply\t@mpdimc by\s@ze
+ \expandafter\gxdef\csname#1\romannumeral\t@mpcntc\endcsname
+ {\the\t@mpdimc}%
+ \od}
+
+\def\nodes@ze{%
+ \begingroup
+ \unitlength 1pt%
+ \divide\unitlength by 65536
+ \g\based@st\s@ze pt\g\divide\based@st by 10 % \based@st is 10 % of
+ % circle diameter
+ \g\dummyhalfcenterdim@n=\s@ze pt\g\divide\dummyhalfcenterdim@n by\tw@
+ \g\circlew@dth=\s@ze pt%
+ \g\t@mpcntc\s@ze\g\multiply\t@mpcntc by 65536
+ \g\setbox\circleb@x\hbox to0pt{\circle{\t@mpcntc}\hss}%
+ \upds@ze{circley@ff}%
+ \g\squarew@dth.9pt\g\multiply\squarew@dth by\s@ze
+ \g\setbox\squareb@x\rect@ngle{\squarew@dth}{\squarew@dth}{.4pt}%
+ \g\dotw@dth=\s@ze pt\g\divide\dotw@dth by 5
+ \ifdim\dotw@dth < 1pt\relax
+ \g\dotw@dth1pt\relax
+ \fi
+ \g\t@mpcntc\dotw@dth
+ \g\setbox\dotb@x\hbox to 0pt{\circle*{\t@mpcntc}\hss}%
+ \g\trianglew@dth=\s@ze pt\g\multiply\trianglew@dth by \tw@
+ \g\divide\trianglew@dth by 3
+ \g\textw@dth=0pt%
+ \g\setbox\textb@x\copy\voidb@x
+ \g\framew@dth0pt%
+ \g\setbox\frameb@x\copy\voidb@x
+ \hv@ldef
+ \endgroup
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Changing the style %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\treefonts#1{#1}
+\def\vdist#1{\g\vd@st=#1\relax}
+\def\minsep#1{\g\mins@p=#1\relax\g\halfmins@p=.5\mins@p}
+\def\addsep#1{\g\adds@p=#1\relax}
+\def\extended{\def\ext@nded{\g\ext@ndedtrue}}
+\def\noextended{\def\ext@nded{\g\ext@ndedfalse}}
+\def\nodesize#1{\g\t@mpdima=#1\relax\g\s@ze=\t@mpdima
+ \g\divide\s@ze by 65536\relax} % conversion from dimension to number
+\def\Treestyle#1{\norm@ff#1\nodes@ze\ignorespaces}
+
+\input classes
+
+\Treestyle{%
+ \ifLaTeX\treefonts{\normalsize\rm}%
+ \else\treefonts{\tenrm}%
+ \fi
+ \vdist{60pt}%
+ \minsep{20pt}%
+ \addsep{0pt}%
+ \nodesize{20pt}%
+ }
+
+
+%
+
+
diff --git a/Master/texmf-dist/tex/plain/tugboat/tugboat.cmn b/Master/texmf-dist/tex/plain/tugboat/tugboat.cmn
new file mode 100644
index 00000000000..e8b7b771cae
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/tugboat/tugboat.cmn
@@ -0,0 +1,1070 @@
+%% @latexfile{
+%% filename = "tugboat.cmn",
+%% version = "1.14",
+%% date = "2004/07/12",
+%% time = "13:43:50 EDT",
+%% checksum = "02352 1070 2988 34579",
+%% filetype = "common macros for TUGboat",
+%% copyright = "Copyright (C) TeX Users Group.
+%% Copying of this file is authorized only if either:
+%% (1) you make absolutely no changes to your copy, OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author = "TeX Users Group",
+%% address = "TeX Users Group,
+%% P.O.Box 2311,
+%% Portland, OR 97208-2311,
+%% USA",
+%% telephone = "415-982-8449",
+%% FAX = "415-982-8559",
+%% email = "TUGboat@tug.org",
+%% codetable = "ISO/ASCII",
+%% keywords = "tex users group, tugboat, common macros",
+%% abstract = "This file contains macros common to both
+%% the PLAIN and LaTeX style files for TUGboat,
+%% the Communications of the TeX Users Group.
+%% Among other things, it contains supplementary
+%% definitions for abbreviations and logos that
+%% appear in TUGboat.",
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fileversion{v1.14}
+\def\filedate{2004/07/12}
+
+\message{File `TUGBOAT.CMN' \fileversion \space\space <\filedate>}
+
+%
+% ***** TUGBOAT.CMN *****
+%
+% See the bottom of the file (after \endinput) for a list of
+% items defined.
+%
+
+% *************************************************************************
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** helpful shorthand *****
+%
+
+% The following allow for easier changes of category. These require that
+% the character be addressed as a control-sequence: e.g. \makeescape\/ will
+% make the / an escape character.
+
+\def\makeescape#1{\catcode`#1=0 }
+\def\makebgroup#1{\catcode`#1=1 }
+\def\makeegroup#1{\catcode`#1=2 }
+\def\makemath#1{\catcode`#1=3 }
+\def\makealign#1{\catcode`#1=4 }
+\def\makeeol#1{\catcode`#1=5 }
+\def\makeparm#1{\catcode`#1=6 }
+\def\makesup#1{\catcode`#1=7 }
+\def\makesub#1{\catcode`#1=8 }
+\def\makeignore#1{\catcode`#1=9 }
+\def\makespace#1{\catcode`#1=10 }
+\def\makeletter#1{\catcode`#1=11 }
+\def\makeother#1{\catcode`#1=12 }
+\def\makeactive#1{\catcode`#1=13 }
+\def\makecomment#1{\catcode`#1=14 }
+
+\def\makeatletter{\catcode`\@=11 } % included for historical reasons
+\chardef\other=12
+\def\makeatother{\catcode`\@=\other}
+
+ % alternative to localization
+\def\savecat#1{%
+ \expandafter\xdef\csname\string#1savedcat\endcsname{\the\catcode`#1}}
+\def\restorecat#1{\catcode`#1=\csname\string#1savedcat\endcsname}
+
+
+\savecat\@
+\makeletter\@ % used, as in PLAIN, in protected control sequences
+
+ % for restoring meanings of global control sequences
+\def\SaveCS#1{%
+ \def\scratch{\expandafter\let\csname saved@@#1\endcsname}%
+ \expandafter\scratch\csname#1\endcsname}
+\def\RestoreCS#1{%
+ \def\scratch{\expandafter\let\csname#1\endcsname}%
+ \expandafter\scratch\csname saved@@#1\endcsname}
+
+
+% To distinguish between macro files loaded
+
+\def\plaintubstyle{plain}
+\def\latextubstyle{latex}
+\ifx\tugstyloaded@\undefined\let\tugstyloaded@\plaintubstyle\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** abbreviations and logos *****
+%
+
+\def\acro#1{{\SMC #1}\spacefactor1000 }
+
+\def\AllTeX{(\La)\TeX}
+
+\def\AMS{American Mathematical Society}
+
+\def\AmS{{\the\textfont2 A}\kern-.1667em\lower.5ex\hbox
+ {\the\textfont2 M}\kern-.125em{\the\textfont2 S}}
+\def\AmSLaTeX{\AmS-\LaTeX}
+\def\AmSTeX{\AmS-\TeX}
+
+\def\aw{A\kern.1em-W}
+\def\AW{Addison\kern.1em-\penalty\z@\hskip\z@skip Wesley}
+
+\def\BibTeX{{\rm B\kern-.05em{\smc i\kern-.025emb}\kern-.08em\TeX}}
+
+\def\CandT{{\sl Computers \& Typesetting}}
+\def\ConTeXt{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
+\def\CTAN{\acro{CTAN}}
+
+\def\DVItoVDU{DVIto\kern-.12em VDU}
+
+\def\eTeX{$\varepsilon$-\kern-.125em\TeX}
+
+\def\Hawaii{Hawai`i}
+\def\HTML{\acro{HTML}}
+
+\def\ISBN{\acro{ISBN} }
+\def\ISSN{\acro{ISSN} }
+
+% Japanese TeX
+\def\JTeX{\leavevmode\hbox{\lower.5ex\hbox{J}\kern-.18em\TeX}}
+
+\def\JoT{{\sl The Joy of \TeX}}
+
+\def\LAMSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont2 A}%
+ \kern-.2em\lower.376ex\hbox{\the\textfont2 M}\kern-.125em
+ {\the\textfont2 S}-\TeX}
+
+% note -- \LaTeX definition is from LATEX.TEX 2.09 of 7 Jan 86,
+% adapted for additional flexibility in TUGboat
+%\def\LaTeX{\TestCount=\the\fam \leavevmode L\raise.42ex
+% \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}\kern-.15em\TeX}
+% note -- broken in two parts, to permit separate use of La,
+% as in (La)TeX
+\def\La{\TestCount=\the\fam \leavevmode L%
+ \setbox\TestBox=\hbox{$\fam\TestCount\scriptstyle A$}%
+ \kern-.5\wd\TestBox\raise.42ex\box\TestBox}
+\def\LaTeX{\La\kern-.15em\TeX}
+\def\LaTeXe{\LaTeX{}\kern.05em2$_{\textstyle\varepsilon}$}
+
+\def\MathML{Math\acro{ML}}
+\def\MacOSX{Mac\,\acro{OS\,X}}
+
+% for Robert McGaffey
+\def\Mc{\setbox\TestBox=\hbox{M}M\vbox to\ht\TestBox{\hbox{c}\vfil}}
+
+\font\manual=logo10 % font used for the METAFONT logo, etc.
+\def\MF{{\manual META}\-{\manual FONT}\spacefactor1000 }
+\def\MP{{\manual META}\-{\manual POST}\spacefactor1000 }
+\def\mf{{\smc Metafont}}
+\def\MFB{{\sl The \slMF book}}
+
+% multilingual (INRS) TeX
+\def\mtex{T\kern-.1667em\lower.5ex\hbox{\^E}\kern-.125emX\spacefactor1000 }
+
+\def\NTStext{N\mkern-4mu \lower.5ex\hbox{$\cal T$}\mkern-2mu S}
+\def\NTS{{\ifmmode \cal\NTStext \else $\cal\NTStext $\fi}}
+
+\def\OCP{$\Omega$\acro{CP}}
+
+\def\PDF{\acro{PDF}}
+
+\def\pcMF{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}MF\spacefactor1000 }
+\def\PCTeX{PC\thinspace\TeX}
+\def\pcTeX{\leavevmode\raise.5ex\hbox{p\kern-.3ptc}\TeX}
+
+\def\Pas{Pascal}
+
+\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\spacefactor1000 }
+\def\PiCTeX{\PiC\kern-.11em\TeX}
+
+\def\plain{{\tt plain}}
+
+\def\POBox{P.\thinspace O.~Box }
+\def\POBoxTUG{\POBox\unskip~9506, Providence, RI~02940}
+
+\def\PS{{Post\-Script}}
+
+\def\SC{Steering Committee}
+
+\def\SGML{\acro{SGML}}
+
+\def\SliTeX{{\rm S\kern-.06em{\smc l\kern-.035emi}\kern-.06em\TeX}}
+
+\def\slMF{\MF}
+% Use \font\manualsl=logosl10 instead, if it's available,
+% for \def\slMF{{\manualsl META}\-{\manualsl FONT}\spacefactor1000 }
+
+% Atari ST (Klaus Guntermann)
+\def\stTeX{{\smc st\rm\kern-0.13em\TeX}}
+
+\def\TANGLE{{\tt TANGLE}\spacefactor1000 }
+
+\def\TB{{\sl The \TeX book}}
+\def\TP{{\sl \TeX\/}: {\sl The Program\/}}
+
+\def\TeX{T\kern-.1667em\lower.424ex\hbox{E}\kern-.125emX\spacefactor1000 }
+
+\def\TeXhax{\TeX hax}
+
+% Don Hosek
+\def\TeXMaG{\TeX M\kern-.1667em\lower.5ex\hbox{A}\kern-.2267emG%
+ \spacefactor1000 }
+
+%\def\TeXtures{\TestCount=\the\fam
+% \TeX\-\hbox{$\fam\TestCount\scriptstyle TURES$}}
+\def\TeXtures{{\it Textures}}
+\let\Textures=\TeXtures
+
+\def\TeXXeT{\TeX-{}-\XeT}
+
+\def\Thanh{H\`an~Th\^e\llap{\raise.5ex\hbox{\'{}}}~Th\`anh}
+
+\def\ttn{{\sl TTN}\spacefactor1000 }
+\def\TTN{{\sl \TeX{} and TUG NEWS}\spacefactor1000 }
+
+\def\tubfont{\sl} % redefined in other situations
+\def\TUB{{\tubfont TUGboat\/}}
+
+\def\TUG{\TeX\ \UG}
+
+\def\UG{Users Group}
+
+\def\UNIX{\acro{UNIX}}
+
+\def\VAX{V\kern-.12em A\kern-.1em X\spacefactor1000 }
+
+\def\VorTeX{V\kern-2.7pt\lower.5ex\hbox{O\kern-1.4pt R}\kern-2.6pt\TeX}
+
+\def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT\spacefactor1000 }
+\def\XML{\acro{XML}}
+
+\def\WEB{{\tt WEB}\spacefactor1000 }
+\def\WEAVE{{\tt WEAVE}\spacefactor1000 }
+
+
+
+%********************************************************************
+
+\newlinechar=`\^^J
+\normallineskiplimit=1pt
+
+\clubpenalty=10000
+\widowpenalty=10000
+
+\def\NoParIndent{\parindent=\z@}
+\newdimen\normalparindent \normalparindent=20pt % plain = 20pt
+\def\NormalParIndent{\global\parindent=\normalparindent}
+\NormalParIndent
+
+\def\BlackBoxes{\overfullrule=5pt }
+\def\NoBlackBoxes{\overfullrule=\z@ }
+\def\newline{\hskip\z@ plus \pagewd \break}
+\def\nohyphens{\hyphenpenalty\@M\exhyphenpenalty\@M}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** utility registers and definitions *****
+%
+
+% test registers for transient use; paired - internal/external
+\newbox\T@stBox \newbox\TestBox
+\newcount\T@stCount \newcount\TestCount
+\newdimen\T@stDimen \newdimen\TestDimen
+\newif\ifT@stIf \newif\ifTestIf
+
+
+% \cs existence test, stolen from TeXbook exercise 7.7
+\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }
+
+% LaTeX conventions which are also useful here.
+\ifx\tugstyloaded@\plaintubstyle
+ \let\@@input\input
+ \def\iinput#1{\@@input#1 }
+ \def\@inputcheck{\if\@nextchar\bgroup
+ \expandafter\iinput\else\expandafter\@@input\fi}
+ \def\input{\futurelet\@nextchar\@inputcheck}
+\fi
+
+% Smashes repeated from AMS-TeX; PLAIN implements only full \smash .
+\newif\iftop@ \newif\ifbot@
+\def\topsmash{\top@true\bot@false\smash@}
+\def\botsmash{\top@false\bot@true\smash@}
+\def\smash{\top@true\bot@true\smash@}
+\def\smash@{\relax\ifmmode\def\next{\mathpalette\mathsm@sh}%
+ \else\let\next\makesm@sh\fi \next }
+\def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\box\z@}
+
+
+% Vertical `laps'; cf. \llap and \rlap
+\long\def\ulap#1{\vbox to \z@{\vss#1}}
+\long\def\dlap#1{\vbox to \z@{#1\vss}}
+
+% And centered horizontal and vertical `laps'
+\def\xlap#1{\hbox to \z@{\hss#1\hss}}
+\long\def\ylap#1{\vbox to \z@{\vss#1\vss}}
+\long\def\zlap#1{\ylap{\xlap{#1}}}
+
+
+% Avoid unwanted vertical glue when making up pages.
+\def\basezero{\baselineskip\z@skip \lineskip\z@skip}
+
+
+% Empty rules for special occasions
+\def\nullhrule{\hrule height\z@ depth\z@ width\z@ }
+\def\nullvrule{\vrule height\z@ depth\z@ width\z@ }
+
+% Support ad-hoc strut construction.
+\def\makestrut[#1;#2]{\vrule height#1 depth#2 width\z@ }
+
+% Construct box for figure pasteup, etc.
+% height = #1, width = #2, rule thickness = #3
+\def\drawoutlinebox[#1;#2;#3]{\T@stDimen=#3
+ \vbox to#1{\hrule height\T@stDimen depth\z@
+ \vss\hbox to#2{\vrule width\T@stDimen
+ \hfil\makestrut[#1;\z@]%
+ \vrule width\T@stDimen}\vss
+ \hrule height\T@stDimen depth\z@}}
+
+
+% Today's date, to be printed on drafts. Based on TeXbook, p.406.
+
+\def\today{\number\day\space \ifcase\month\or
+ Jan \or Feb \or Mar \or Apr \or May \or Jun \or
+ Jul \or Aug \or Sep \or Oct \or Nov \or Dec \fi
+ \number\year}
+
+% Current time; this may be system dependent!
+\newcount\hours
+\newcount\minutes
+\def\SetTime{\hours=\time
+ \global\divide\hours by 60
+ \minutes=\hours
+ \multiply\minutes by 60
+ \advance\minutes by-\time
+ \global\multiply\minutes by-1 }
+\SetTime
+\def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes}
+
+\def\Now{\today\ \now}
+
+\newif\ifPrelimDraft \PrelimDraftfalse
+
+\def\midrtitle{\ifPrelimDraft {{\tensl preliminary draft, \Now}}\fi}
+
+% Section heads. The following set of macros is used to set the large
+% TUGboat section heads (e.g. "General Delivery", "Fonts", etc.)
+
+\newdimen\PreTitleDrop \PreTitleDrop=\z@
+
+\newskip\AboveTitleSkip \AboveTitleSkip=12pt
+\newskip\BelowTitleSkip \BelowTitleSkip=8pt
+
+\newdimen\strulethickness \strulethickness=.6pt
+\def\sthrule{\hrule height\strulethickness depth \z@ }
+\def\stvrule{\vrule width\strulethickness }
+
+\newdimen\stbaselineskip \stbaselineskip=18pt
+
+\def\@sectitle #1{%
+ \par \SecTitletrue
+ \penalty-1000
+ \secsep
+ \vbox{
+ \sthrule
+ \hbox{%
+ \stvrule
+ \vbox{
+ \advance\hsize by -2\strulethickness
+ \raggedcenter
+ \def\\{\unskip\break}%
+ \sectitlefont
+ \makestrut[2\stfontheight;\z@]
+ #1\unskip
+ \makestrut[\z@;\stfontheight]\endgraf
+ }%
+ \stvrule }
+ \sthrule }
+ \nobreak
+ \vskip\baselineskip }
+
+% distance between articles which are run together
+\def\secsep{\vskip 5\baselineskip}
+
+\newif\ifSecTitle
+\SecTitlefalse
+
+
+
+% Registration marks; permit them to be invisible
+
+\newdimen\RegRuleThickness \RegRuleThickness=0.2pt
+
+\def\HorzR@gisterRule{\vrule height\RegRuleThickness depth \z@ width 0.5in }
+\def\DownShortR@gisterRule{%
+ \vrule height 0.2pt depth 1pc width\RegRuleThickness }
+\def\UpShortR@gisterRule{\vrule height 1pc depth \z@ width\RegRuleThickness }
+
+
+% ``T'' marks centered on top and bottom edges of paper
+
+\def\ttopregister{\dlap{%
+ \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
+ \HorzR@gisterRule \hfil \HorzR@gisterRule}%
+ \hbox to \trimwd{\hfil \DownShortR@gisterRule \hfil}}}
+\def\tbotregister{\ulap{%
+ \hbox to \trimwd{\hfil \UpShortR@gisterRule \hfil}%
+ \hbox to \trimwd{\HorzR@gisterRule \hfil \HorzR@gisterRule
+ \HorzR@gisterRule \hfil \HorzR@gisterRule}}}
+
+\def\topregister{\ttopregister}
+\def\botregister{\tbotregister}
+
+
+
+% PLAIN's definition of \raggedright doesn't permit any stretch, and
+% results in too many overfull boxes. We also turn off hyphenation.
+\newdimen\raggedskip \raggedskip=\z@
+\newdimen\raggedstretch \raggedstretch=5em % ems of font set now (10pt)
+\newskip\raggedparfill \raggedparfill=\z@ plus 1fil
+
+\def\raggedspaces{\spaceskip=.3333em \relax \xspaceskip=.5em \relax }
+% Some applications may have to add stretch, in order to avoid
+% all overfull boxes.
+
+\def\raggedright{%
+ \nohyphens
+ \rightskip=\raggedskip plus\raggedstretch \raggedspaces
+ \parfillskip=\raggedparfill }
+\def\raggedleft{%
+ \nohyphens
+ \leftskip=\raggedskip plus\raggedstretch \raggedspaces
+ \parfillskip=\z@skip }
+\def\raggedcenter{%
+ \nohyphens
+ \leftskip=\raggedskip plus\raggedstretch
+ \rightskip=\leftskip \raggedspaces
+ \parindent=\z@ \parfillskip=\z@skip }
+
+\def\normalspaces{\spaceskip\z@skip \xspaceskip\z@skip }
+
+
+% Miscellaneous useful stuff
+
+\def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
+
+%\def~{\penalty\@M \ } % tie -- this is PLAIN value; it is reset in AMS-TeX
+\def~{\unskip\nobreak\ \ignorespaces} % AMS-TeX value
+
+\def\newbox{\alloc@4\box\chardef\insc@unt} % remove \outer
+\def\boxcs#1{\box\csname#1\endcsname}
+\def\setboxcs#1{\setbox\csname#1\endcsname}
+\def\newboxcs#1{\expandafter\newbox\csname#1\endcsname}
+
+\def\gobble#1{}
+
+\def\vellipsis{%
+ \leavevmode\kern0.5em
+ \raise1pt\vbox{\baselineskip6pt\vskip7pt\hbox{.}\hbox{.}\hbox{.}}
+ }
+
+\def\bull{\vrule height 1ex width .8ex depth -.2ex } % square bullet
+\def\cents{{\rm\raise.2ex\rlap{\kern.05em$\scriptstyle/$}c}}
+\def\Dag{\raise .6ex\hbox{$\scriptstyle\dagger$}}
+
+\def\careof{\leavevmode\hbox{\raise.75ex\hbox{c}\kern-.15em
+ /\kern-.125em\smash{\lower.3ex\hbox{o}}} \ignorespaces}
+\def\sfrac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont\z@ #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont\z@ #2}}
+
+\def\thinskip{\hskip 0.16667em\relax}
+\def\endash{--}
+\def\emdash{\endash-}
+\def\d@sh#1#2{\unskip#1\thinskip#2\thinskip\ignorespaces}
+\def\dash{\d@sh\nobreak\endash}
+\def\Dash{\d@sh\nobreak\emdash}
+\def\ldash{\d@sh\empty{\hbox{\endash}\nobreak}}
+\def\rdash{\d@sh\nobreak\endash}
+\def\Ldash{\d@sh\empty{\hbox{\emdash}\nobreak}}
+\def\Rdash{\d@sh\nobreak\emdash}
+
+% Hack to permit automatic hyphenation after an actual hyphen.
+
+\def\hyph{-\penalty\z@\hskip\z@skip }
+
+\def\slash{/\penalty\z@\hskip\z@skip } % "breakable" slash
+
+% Adapted from c.t.t posting by Donald Arseneau, 26 May 93.
+\def\nth#1{\TestCount=#1\relax
+ \ifnum\TestCount <0 \multiply\TestCount by\m@ne \fi % subdue negatives
+ \T@stCount=\TestCount
+ \divide\T@stCount by 100 \multiply\T@stCount by 100
+ \advance\TestCount by-\T@stCount % n mod 100
+ \ifnum\TestCount >20 \T@stCount=\TestCount
+ \divide\T@stCount by 10 \multiply\T@stCount by 10
+ \advance\TestCount by-\T@stCount % n mod 10
+ \fi
+ \T@stCount=\the\fam\relax
+ $\fam\T@stCount#1^{\fam\T@stCount
+ \ifcase\TestCount th% 0th
+ \or st% 1st
+ \or nd% 2nd
+ \or rd% 3rd
+ \else th% nth
+ \fi
+ }$}
+
+
+% Format information on reviewed items for book review articles.
+
+\def\Review:#1{\ifx[#1\@Rev[%
+ \else Book review:\enspace\sl #1%
+ \fi
+ }
+\def\@Rev[#1]{\ignorespaces#1\unskip:\enspace\ignorespaces\sl}
+\def\reviewitem{%
+ \def\revauth##1{\def\therevauth{##1, }\ignorespaces}%
+ \def\revtitle##1{\def\therevtitle{{\sl##1}. }\ignorespaces}%
+ \def\revpubinfo##1{\def\therevpubinfo{##1.}\ignorespaces}%
+ }
+\def\endreviewitem{{\noindent\interlinepenalty=10000
+ \therevauth\therevtitle\therevpubinfo\endgraf}%
+ \vskip\medskipamount
+ \ifx\tugstyloaded@\plaintubstyle
+ \DeleteOptionalSpacesandPars{\noindent\ignorespaces}%
+ \fi
+ }
+
+\def\booktitle#1{{\sl #1\/}}
+
+
+% Dates and other items which identify the volume and issue
+
+% To use: \vol 5, 2.
+% \issdate October 1984.
+% \issueseqno=10
+% For production, these are set in a separate file, TUGBOT.DATES,
+% which is issue-specific.
+
+\newcount\issueseqno \issueseqno=-1
+
+\def\v@lx{\gdef\volx{Volume~\volno~(\volyr), No.~\issno}}
+\def\volyr{}
+\def\volno{}
+\def\vol #1,#2.{\gdef\volno{#1\unskip}%
+ \gdef\issno{\ignorespaces#2\unskip}%
+ \setbox\TestBox=\hbox{\volyr}%
+ \ifdim \wd\TestBox > .2em \v@lx \fi }
+
+% Original issue date included month and year.
+\def\issdate #1#2 #3.{\gdef\issdt{#1#2 #3}\gdef\volyr{#3}%
+ \gdef\bigissdt{#1{\smc\uppercase{#2}} #3}%
+ \setbox\TestBox=\hbox{\volno}%
+ \ifdim \wd\TestBox > .2em \v@lx \fi }
+% Beginning in 2002, only year
+\def\issyear #1.{\gdef\issdt{#1}\gdef\volyr{#1}%
+ \gdef\bigissdt{#1}%
+ \setbox\TestBox=\hbox{\volno}%
+ \ifdim \wd\TestBox > .2em \v@lx \fi }
+
+\vol 0, 0. % volume, issue.
+\issdate Thermidor, 2001. % month, year of publication
+
+
+\ifx\tugstyloaded@\plaintubstyle
+ \def\tubissue#1(#2){\TUB~#1, no.~#2}
+\else
+ \def\tubissue#1#2{\TUB~#1, no.~#2}
+\fi
+
+\def\xEdNote{{\tenuit Editor's note:\enspace }}
+
+
+% TUGboat conventions include the issue number in the file name.
+% Permit this to be incorporated into file names automatically.
+% If issue number = 11, \Input filnam will read tb11filnam.tex.
+
+
+\def\infil@{\jobname}
+\def\Input #1 {\ifnum\issueseqno<0 \def\infil@{#1}%
+ \else \def\infil@{tb\number\issueseqno#1}\fi
+ \edef\jobname{\infil@}\@readFLN
+ \@@input \infil@\relax
+ \ifRMKopen\immediate\closeout\TBremarkfile\RMKopenfalse\fi}
+
+\newif\ifRMKopen \RMKopenfalse
+\newwrite\TBremarkfile
+\def\TBremarkON#1{%
+ \ifRMKopen\else\RMKopentrue\immediate\openout\TBremarkfile=\infil@.rmk \fi
+ \toks@={#1}%
+ \immediate\write\TBremarkfile{^^J\the\toks@}%
+ \immediate\write16{^^JTBremark:: \the\toks@^^J}}
+\def\TBremarkOFF#1{}
+\let\TBremark=\TBremarkOFF
+
+% for marking locations in articles that pertain to remarks
+% in another file of editorial comments
+\def\TUBedit#1{}
+
+% for using different filenames in Providence than those supplied
+% by authors
+
+\def\TUBfilename#1#2{\expandafter\def\csname file@@#1\endcsname{#2}}
+\newread\@altfilenames
+\def\@readFLN{\immediate\openin\@altfilenames=\jobname.fln
+ \ifeof\@altfilenames\let\@result\relax\else
+ \def\@result{\@@input\jobname.fln }\fi
+ \immediate\closein\@altfilenames
+ \@result}
+\@readFLN
+\everyjob=\expandafter{\the\everyjob\@readFLN}
+
+% Following needs to work entirely in TeX's mouth
+\def\@tubfilename#1{\expandafter\ifx\csname file@@#1\endcsname\relax
+ #1\else\csname file@@#1\endcsname\fi}
+
+\def\fileinput#1{\@@input\@tubfilename{#1} }
+
+% Write out (both to a file and to the log) the starting page number
+% of an article, to be used for cross references and in contents.
+% \pagexref is used for articles fully processed in the TUGboat run.
+% \PageXref is used for "extra" pages, where an item is submitted
+% as camera copy, and only running heads (at most) are run.
+
+\ifx\tugstyloaded@\plaintubstyle
+\def\pagexrefON#1{%
+ \write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
+ \write\ppoutfile{%
+ \def\expandafter\noexpand\csname#1\endcsname{\number\pageno}}%
+ }
+\def\PageXrefON#1{%
+ \immediate\write-1{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\pageno}}%
+ \immediate\write\ppoutfile{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\pageno}}}
+\else
+\def\pagexrefON#1{%
+ \write-1{\def\expandafter\noexpand\csname#1\endcsname{\number\c@page}}%
+ \write\ppoutfile{%
+ \def\expandafter\noexpand\csname#1\endcsname{\number\c@page}}%
+ }
+\def\PageXrefON#1{%
+ \immediate\write-1{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\c@page}}%
+ \immediate\write\ppoutfile{\def\expandafter
+ \noexpand\csname#1\endcsname{\number\c@page}}}
+\fi
+
+\def\pagexrefOFF#1{}
+\let\pagexref=\pagexrefOFF
+\def\PageXrefOFF#1{}
+\let\PageXref=\PageXrefOFF
+
+\def\xreftoON#1{%
+ \ifundefined{#1}%
+ ???\TBremark{Need cross reference for #1.}%
+ \else\csname#1\endcsname\fi}
+\def\xreftoOFF#1{???}
+\let\xrefto=\xreftoOFF
+
+\def\TBdriver#1{}
+
+
+% Authors, addresses, signatures
+
+\def\theauthor#1{\csname theauthor#1\endcsname}
+\def\theaddress#1{\csname theaddress#1\endcsname}
+\def\thenetaddress#1{\csname thenetaddress#1\endcsname}
+
+\newcount\count@@
+\def\@defaultauthorlist{% % standard way of listing authors
+ \count@=\authornumber
+ \advance\count@ by -2
+ \count@@=0
+ \loop
+ \ifnum\count@>0
+ \advance\count@@ by 1
+ \ignorespaces\csname theauthor\number\count@@\endcsname\unskip,
+ \advance\count@ by -1
+ \repeat
+ \count@=\authornumber
+ \advance\count@ by -\count@@
+ \ifnum\authornumber>0
+ \ifnum\count@>1
+ \count@=\authornumber
+ \advance\count@ by -1
+ \ignorespaces\csname theauthor\number\count@\endcsname\unskip\ and
+ \fi
+ \ignorespaces\csname theauthor\number\authornumber\endcsname\unskip
+ \fi
+ }
+
+\def\signature#1{\def\@signature{#1}}
+\def\@signature{\@defaultsignature}
+
+\def\@defaultsignature{%
+ \count@=0
+ \loop
+ \ifnum\count@<\authornumber
+ \medskip
+ \advance\count@ by \@ne
+ \signaturemark
+ \theauthor{\number\count@}\\
+ \leavevmode\theaddress{\number\count@}\\
+ \leavevmode\thenetaddress{\number\count@}\\
+ \repeat
+ }
+
+\newdimen\signaturewidth \signaturewidth=12pc
+\def\makesignature{%
+ \par
+ \penalty9000
+ \vskip\medskipamount
+ \rightline{%
+ \vbox{\hsize\signaturewidth \ninepoint \raggedright
+ \parindent \z@ \everypar={\hangindent 1pc }
+ \parskip \z@skip
+ \netaddrat
+ \netaddrpercent
+ \def\|{\unskip\hfil\break}%
+ \def\\{\endgraf}%
+ \def\net{\tt}%
+ \def\phone{\rm Phone: } \rm
+ \@signature}}
+ }
+
+{\makeactive\@
+ \gdef\signatureat{\makeactive\@\def@{\char"40\discretionary{}{}{}}}
+ \makeactive\%
+ \gdef\signaturepercent{\makeactive\%\def%{\char"25\discretionary{}{}{}}}
+}
+
+\def\signaturemark{\leavevmode\llap{$\diamond$\enspace}}
+
+
+% some hyphenation exceptions:
+\hyphenation{Dijk-stra Eijk-hout Hara-lam-bous
+ Doc-Book Flor-i-da Ghost-script Ghost-view Open-Type Pfa-Edit
+ Post-Script True-Type
+ ap-pen-dix
+ bit-map bit-mapped bit-maps bool-ean
+ col-umns
+ data-base data-bases
+ fall-ing
+ half-way
+ long-est
+ ma-gyar man-u-script man-u-scripts
+ over-view
+ par-a-digm par-a-digm-atic par-a-digms
+ se-vere-ly spell-ing spell-ings stand-alone strong-est
+ time-stamp time-stamped
+ which-ever white-space white-spaces wide-spread wrap-around
+}
+
+
+\restorecat\@
+
+\endinput
+
+
+% *************************************************************************
+
+Contents and Notes
+------------------
+
+\makeescape, ..., \makecomment allow users to change category
+codes a little more easily.
+
+\savecat#1 and \restorecat#1 will save and restore the category
+of a given character. These are useful in cases where one doesn't
+wish to localize the settings and therefore be required to globally
+define or set things.
+
+\SaveCS#1 and \RestoreCS#1 save and restore `meanings' of control
+sequences. Again this is useful in cases where one doesn't want to
+localize or where global definitions clobber a control sequence which
+is needed later with its `old' definition.
+
+Abbreviations. Just a listing with indications of expansion where
+that may not be obvious. For full definitions, see real code above.
+
+\AllTeX (\La)\TeX
+\AMS American Mathematical Society
+\AmSTeX
+\aw A-W (abbreviation for Addison-Wesley)
+\AW Addison-Wesley
+\BibTeX
+\CandT Computers \& Typesetting
+\ConTeXt
+\Cplusplus C++
+\DVItoVDU
+\Hawaii Hawai`i
+\HTML HTML
+\ISBN ISBN
+\JTeX
+\JoT The Joy of \TeX
+\LaTeX
+\MacOSX Mac OS X
+\MathML
+\Mc M ``w/ raised c''
+\MF METAFONT
+\mf Metafont (using small caps)
+\MFB The Metafont book
+\MP METAPOST
+\mtex multilingual TeX
+\NTS
+\OCP \Omega CP
+\pcMF pcMF
+\PCTeX
+\pcTeX
+\Pas Pascal
+\PDF PDF
+\PiCTeX
+\plain plain (in typewriter font)
+\POBox P. O. Box
+\POBoxTUG TUG PO Box
+\PS PostScript
+\SC Steering Committee
+\SGML SGML
+\SliTeX
+\slMF Metafont (slanted)
+\stTeX TeX for the Atari ST
+\TANGLE
+\TB The \TeX book
+\TeX
+\TeXhax
+\TeXMaG
+\TeXtures
+\TeXXeT
+\Thanh Han The Thanh
+\TUB TUGboat
+\TUG TeX Users Group
+\UNIX
+\VAX
+\VorTeX
+\XeT
+\XML
+\WEB
+\WEAVE
+
+\NoBlackBoxes turns off marginal rules marking overfull boxes
+\BlackBoxes turns them back on
+\newline horizontal glue plus a break
+
+\ifundefined#1 checks argument with \csname against \relax
+
+\topsmash smashes above baseline (from AMSTeX)
+\botsmash smashes below baseline (from AMSTeX)
+\smash smashes both (from plain)
+
+\ulap lap upwards
+\dlap lap downwards
+\xlap reference point at center horizontally; 0 width
+\ylap reference point at center vertically; 0 height, depth
+\zlap combination \xlap and \ylap
+
+\basezero to avoid insertion of baselineskip and lineskip glue
+
+\nullhrule empty \hrule
+\nullvrule empty \vrule
+
+\makestrut[#1;#2] ad hoc struts; #1=height, #2=depth
+
+\today today's date
+\SetTime converts \time to hours, minutes
+\now displays time in hours and minutes
+\Now shows current date and time
+
+\ifPrelimDraft flag to indicate status as preliminary draft
+
+\rtitlex TUGboat volume and number info for running head
+\midrtitle information for center of running head
+
+\HorzR@gisterRule pieces of registration marks ("trimmarks")
+\DownShortR@gisterRule
+\UpShortR@gisterRule
+
+\ttopregister top registration line with `T' in center
+\tbotregister bottom registration line with inverted `T' in center
+\topregister register actually used
+\botregister
+
+
+\raggedskip parameters used for ragged settings
+\raggedstretch
+\raggedparfill
+\raggedspaces
+
+\raggedright
+\raggedleft
+\raggedcenter
+\normalspaces
+\raggedbottom
+
+\bull square bullet
+\cents ``cents'' sign
+\Dag superscripted dagger
+\careof c/o
+\sfrac slashed fraction
+
+\dash en-dash surrounded by thinspaces; only breakable AFTER
+\Dash em-dash, as above
+
+\hyph permit automatic hyphenation after an actual hyphen
+
+\slash "breakable" slash
+\nth for obtaining "1^{st}", "2^{nd}", 3^{rd}, etc.
+
+\tubissue gets \TUB followed by volume and issue numbers
+
+\xEdNote Editor's Note:
+
+\Review: Review: (for title of book review article)
+\reviewitem begin data for item being reviewed
+ \revauth with one argument, author(s) of item being reviewed
+ \revtitle with one argument, title of ...
+ \revpubinfo with one argument, other info pertaining to ...
+\endreviewitem end data for item being reviewed
+\booktitle with one argument, format book title in text
+
+\Input \input with some other bookkeeping for
+ case where multiple articles are put together
+
+\TBremark reminder to TUGboat editorial staff
+\TBremarkON
+\TBremarkOFF
+
+\pagexref used to write out page numbers to screen and
+\pagexrefON external files
+\pagexrefOFF
+\PageXref
+\PageXrefON
+\PageXrefOFF
+
+\xrefto used for symbolic cross-reference to other pages
+\xreftoON in TUGboat
+\xreftoOFF
+
+\TBdriver marks code which only takes effect when articles
+ are run together in a driver file
+
+\signatureat items for signatures
+\signaturepercent
+\signaturemark
+\signaturewidth
+
+
+% *************************************************************************
+
+% Change history
+
+Version Date Changes
+------- --------- ---------------------------------------------------
+1.14 21 Jun 04 added numerous name macros and hyphenation exceptions
+
+1.13l 15 Nov 03 updated header address to Portland, OR
+
+1.13k 28 Jun 03 added \RegRuleThickness to allow easy modification
+
+1.13j 16 Feb 03 added \issyear to handle removal of month
+
+1.13i 14 Oct 96 updated header and installed CRC-16 checksum
+
+1.13h 10 Nov 95 added \acro and converted all \SMC entries to use it
+ added acronyms \HTML and \PDF
+
+1.13g 4 Nov 95 added \MP for METAPOST
+
+1.13f 15 Apr 94 added \@Rev[...] to permit variable text for reviews
+
+1.13e 14 Mar 94 revised definition of \La to use actual width of A
+ added \LaTeXe definition
+
+1.13d 5 Jan 94 added {} to \TeX-{}-\Xet
+
+1.13c 11 Nov 93 removed extraneous " from header
+ added \AmSLaTeX, \CTAN, \ISSN
+
+1.13b 4 Nov 93 added \hyphenation{Eijk-hout}
+
+1.13a 18 Aug 93 corrected \nth to produce ordinal in current font
+
+1.13 27 May 93 upgraded \nth based on algorithm by Donald Arseneau
+ in comp.text.tex, 26 May 93
+
+1.12 19 Feb 93 added \spacefactor1000 to all replacement text that ends
+ with a capital letter, so that if these items end a
+ sentence, there will be a normal end-of-sentence space
+ removed \hbox from definitions of \TeX, etc.; no longer
+ needed
+ changed definition of \TeXXeT to use \XeT rather than
+ unique dimensions
+ installed new TUG address and phone number in header
+ reformatted change history, similar to tugboat.sty
+
+1.11c 29 Nov 92 added macros to format book review and related items for
+ review articles
+ added \SGML
+ changed def of \UNIX to use \SMC rather than \smc
+
+1.11b 20 Oct 92 added font code for \ISBN font ("big small caps")
+ added \Textures as the current form
+
+1.11a 6 Jun 92 added \drawoutlinebox
+
+1.11 15 Mar 92 added \ttn and \TTN
+
+1.10 8 Mar 92 added \AllTeX
+ changed file name from .COM to .CMN to avoid objection
+ that .COM files have a special significance on DOS
+ and other operating systems
+ added standard headers, prepared for archive installation
+
+1.09 5 May 91 inserted large penalty at top of \makesignature to
+ inhibit break between article and signature
+
+1.08 24 Oct 90 modified signature slightly (took \medskip out of box)
+ fixed bug in previous rendition of \@readFLN
+
+1.07 16 Oct 90 added \TUBedit to facilitate editorial marking
+ added \iinput variant from LaTeX; \input redefined now
+ as with LaTeX
+ added mechanism for local file names in Providence
+ (\TUBfilename, \fileinput, etc.)
+ \tugstyload@ defaults to plain if it's not defined
+
+1.06 3 Aug 90 added \leavevmode to \@defaultsignature so that
+ \everypar is not executed inside a group
+ dash routines modified and corrected (to suppress
+ insertion of discretionary node after -- and ---;
+ and to allow hyphenation of ensuing word)
+ changed \lDash to \Ldash and \rDash to \Rdash
+
+1.05 29 Mar 90 added \lDash and \rDash for `parenthetical' dashing
+ added \TP for TeX: The Program
+ added \relax after file input of \Input
+ added \relax before \ifmmode of \,
+
+1.04 28 Feb 90 modified pagexref macros to work in both plain and
+ latex styles (this should NOT affect authors)
+
+1.03 26 Feb 90 removed <tab>s and adjusted definition of \slMF
+
+1.02 25 Feb 90 added definitions of \plaintubissue, \latextubissue
+ added definition of \tubissue
+
+1.01 19 Feb 90 added \signaturewidth to allow for modification
+ added \nth to obtain 1^{st}, etc.
diff --git a/Master/texmf-dist/tex/plain/tugboat/tugboat.sty b/Master/texmf-dist/tex/plain/tugboat/tugboat.sty
new file mode 100644
index 00000000000..04cfc7237cb
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/tugboat/tugboat.sty
@@ -0,0 +1,2238 @@
+%% @texfile{
+%% filename = "tugboat.sty",
+%% version = "1.14c",
+%% date = "14 October 1996",
+%% time = "14:26:08",
+%% filetype = "Plain TeX macros for TUGboat",
+%% copyright = "Copyright (C) TeX Users Group.
+%% Copying of this file is authorized only if either:
+%% (1) you make absolutely no changes to your copy, OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author = "TeX Users Group",
+%% address = "TeX Users Group,
+%% 1850 Union Street, \#1637,
+%% San Francisco, CA 94123,
+%% USA",
+%% telephone = "415-982-8449",
+%% FAX = "415-982-8559",
+%% email = "Internet: TUGboat@ams.org",
+%% codetable = "ISO/ASCII",
+%% checksum = "2238 6284 69130",
+%% keywords = "tex users group, tugboat, plain tex",
+%% supported = "yes",
+%% abstract = "This file contains the plain-based macros
+%% for preparation of TUGboat, the Communications
+%% of the TeX Users Group.",
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%% *********************************************************
+%%
+%% TeXing with this file also requires the following files:
+%% TUGBOAT.CMN (version 1.08+)
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% TUGBOAT.STY
+
+\def\thistubstyle{plain}
+\def\fileversion{v1.14c}
+\def\filedate{14 October 1996}
+
+% general items
+
+\def\makeatletter{\catcode`\@=11 }
+\makeatletter % used, as in PLAIN, in protected control sequences
+
+% stop reading this file if it's been loaded already
+\ifx\tugstyloaded@\thistubstyle\makeatother\initializearticle
+ \endinput\else\let\tugstyloaded@\thistubstyle\fi
+
+\message{File `TUGBOAT.STY' \fileversion \space\space <\filedate>}
+
+\input tugboat.cmn % macros common to tugboat.sty and
+ % ltugboat.sty (latex style file)
+
+
+% some things with the same names as in, or reiterated from, AMS-TeX
+
+\def\document{} % override an AMS-TeX convention
+
+\output{\output@}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Directory.
+%
+% ** fonts
+% ** page dimensions
+% ** headers/footers
+% ** page adjustment
+% ** output
+% ** general mechanism for tags
+% ** titles, authors, addresses
+% ** heads
+% ** text and subtext
+% ** lists
+% ** verbatim
+% ** figures
+% ** utilities
+% ** initialization
+
+
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** fonts *****
+%
+
+
+% Struts give ascenders and descenders to assist in baseline alignment
+% (e.g. of adjoining vertical boxes); useful only with text fonts.
+%
+% \strut is defined in PLAIN . The structure of \strutt is equivalent.
+
+\newbox\struttbox
+\def\strutt{\relax\ifmmode\copy\struttbox\else\unhcopy\struttbox\fi}
+
+% Struts are given the following dimensions for use in TUGboat:
+%
+% \strut = height/depth of parenthesis in current font
+% (not the same as PLAIN)
+% \strutt height + depth = \normalbaselineskip,
+% height = same as \strut
+% (equivalent to PLAIN \strut )
+
+
+% The fonts below are sufficient for most ordinary TUGboat production.
+% Additional titling fonts are defined elsewhere, and occasionally an
+% extra font will be needed for a particular item (e.g. the device
+% charts) and defined in that file.
+
+% All PLAIN CM fonts.
+
+\font\tenrm=cmr10
+\font\ninerm=cmr9
+\font\eightrm=cmr8
+\font\sevenrm=cmr7
+\font\sixrm=cmr6
+\font\fiverm=cmr5
+
+\font\teni=cmmi10 \skewchar\teni='177
+\font\ninei=cmmi9 \skewchar\ninei='177
+\font\eighti=cmmi8 \skewchar\eighti='177
+\font\seveni=cmmi7 \skewchar\seveni='177
+\font\sixi=cmmi6 \skewchar\sixi='177
+\font\fivei=cmmi5 \skewchar\fivei='177
+
+\font\tensy=cmsy10 \skewchar\tensy='60
+\font\ninesy=cmsy9 \skewchar\ninesy='60
+\font\eightsy=cmsy8 \skewchar\eightsy='60
+\font\sevensy=cmsy7 \skewchar\sevensy='60
+\font\sixsy=cmsy6 \skewchar\sixsy='60
+\font\fivesy=cmsy5 \skewchar\fivesy='60
+
+\font\tenex=cmex10
+
+\font\tenbf=cmbx10
+\font\ninebf=cmbx9
+\font\eightbf=cmbx8
+\font\sevenbf=cmbx7
+\font\sixbf=cmbx6
+\font\fivebf=cmbx5
+
+\font\tentt=cmtt10
+\font\ninett=cmtt9
+\font\eighttt=cmtt8
+
+\font\tensl=cmsl10
+\font\ninesl=cmsl9
+\font\eightsl=cmsl8
+\font\sevensl=cmti7 % Would use cmsl7 if it were standard.
+ % Currently needed only for \def of \LaTeX
+
+\font\tenit=cmti10
+\font\nineit=cmti9
+\font\eightit=cmti8
+\font\sevenit=cmti7
+
+\font\tenuit=cmu10
+\font\tenbfsl=cmbxsl10
+
+\font\tensmc=cmcsc10
+\font\ninesmc=cmcsc10 % redefine if cmcsc9 and/or cmcsc8 exist
+\font\eightsmc=cmcsc10
+
+\font\tentex=cmtex10 % for ASCII character set
+
+\def\mit{\fam\@ne} % from plain
+\def\cal{\fam\tw@} % from plain
+\def\sy{\cal}
+
+% cmss fonts are not needed all the time. Permit as-needed access.
+\def\LoadSansFonts{%
+ \global\font\twelvess=cmss10 scaled \magstep1
+ \global\font\tenss=cmss10
+ \global\font\niness=cmss9
+ \global\font\eightss=cmss8
+ \addto\tenpoint{\def\ssf{\tenss}}
+ \addto\ninepoint{\def\ssf{\niness}}
+ \addto\eightpoint{\def\ssf{\eightss}}
+ \gdef\LoadSansFonts{}}
+
+% TUGboat section heads
+\font \seventeenssb=cmssbx10 scaled \magstep3
+\font \twelvessb=cmssbx10 scaled \magstep1
+
+\newfam\sectitlefam
+\textfont\sectitlefam=\seventeenssb \scriptfont\sectitlefam=\twelvessb
+
+% \stbaselineskip set in tugboat.com
+\def\sectitlefont{%
+ \fam\sectitlefam \seventeenssb \baselineskip=\stbaselineskip }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** Definitions of \tenpoint, \ninepoint, etc. *****
+%
+
+% Following is a facility for adding commands to \tenpoint, \ninepoint
+% and \eightpoint. \LoadSansFonts uses this technique above.
+% Also used to add math families, as with:
+% \addto\tenpoint{\textfont\frakfam...}
+% to add a Fraktur family.
+%
+\def\addto#1#2{%
+ \csname @addsto\string#1\endcsname=
+ \expandafter{\the\csname @addsto\string#1\endcsname#2}}
+\def\@additionsto#1{\expandafter\the\csname @addsto\string#1\endcsname}
+\expandafter\newtoks\csname @addsto\string\tenpoint\endcsname
+\expandafter\newtoks\csname @addsto\string\ninepoint\endcsname
+\expandafter\newtoks\csname @addsto\string\eightpoint\endcsname
+
+
+\newskip\ttglue
+\def\setttglue{%
+ \edef\@thefont{\the\font}% to restore this font after the setting
+ \tt \ttglue=.5em plus .25em minus .15em
+ \@thefont}
+
+% We assume that \scriptscriptfonts remain the same throughout
+\scriptscriptfont\z@=\fiverm
+\scriptscriptfont\@ne=\fivei
+\scriptscriptfont\tw@=\fivesy
+\scriptscriptfont\thr@@=\tenex
+\scriptscriptfont\bffam=\sixbf
+
+\newdimen\normaltenpointstretch \normaltenpointstretch=1.6667pt
+\def\NormalTenPointSpacing{\AdjustNormalSpacing\tenpoint{}}
+\def\StretchyTenPointSpacing{\AdjustNormalSpacing\tenpoint{2.4}}
+
+\def\tenpoint{%
+ \normalbaselineskip=12pt
+ \abovedisplayskip=3pt plus 3pt minus 1pt
+ \belowdisplayskip=3pt plus 3pt minus 1pt
+ \abovedisplayshortskip=0pt plus 3pt
+ \belowdisplayshortskip=1pt plus 3pt minus 1pt
+ \def\rm{\fam\z@\tenrm}%
+ \textfont\z@=\tenrm \scriptfont\z@=\sevenrm
+ \def\oldstyle{\fam\@ne\teni}%
+ \textfont\@ne=\teni \scriptfont\@ne=\seveni
+ \textfont\tw@=\tensy \scriptfont\tw@=\sevensy
+ \textfont\thr@@=\tenex \scriptfont\thr@@=\tenex
+ \def\it{\fam\itfam\tenit}%
+ \textfont\itfam=\tenit \scriptfont\itfam=\sevenit
+ \def\sl{\fam\slfam\tensl}%
+ \textfont\slfam=\tensl \scriptfont\slfam=\sevensl
+ \def\bf{\def\sl{\tenbfsl}\fam\bffam\tenbf}%
+ \textfont\bffam=\tenbf \scriptfont\bffam=\eightbf
+ \def\smc{\tensmc}%
+ \def\SMC{\ninerm}%
+ \def\tt{\tentt}%
+ \setttglue
+ \def\upright{\tenuit}%
+ \setbox\strutbox=\hbox{\vrule height7.5pt depth2.5pt width\z@}%
+ \setbox\struttbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}%
+ \normalbaselines \rm
+ \@additionsto\tenpoint}
+
+\tenpoint % initialize -- default font
+
+
+\newdimen\normalninepointstretch \normalninepointstretch=1.5pt
+\def\NormalNinePointSpacing{\AdjustNormalSpacing\ninepoint{}}
+\def\StretchyNinePointSpacing{\AdjustNormalSpacing\ninepoint{2.4}}
+
+\def\ninepoint{\normalbaselineskip=11pt
+ \abovedisplayskip=2.5pt plus 2.5pt minus 1pt
+ \belowdisplayskip=2.5pt plus 2.5pt minus 1pt
+ \abovedisplayshortskip=0pt plus 2.5pt
+ \belowdisplayshortskip=1pt plus 2.5pt minus 1pt
+ \def\rm{\fam\z@\ninerm}%
+ \textfont\z@=\ninerm \scriptfont\z@=\sevenrm
+ \def\oldstyle{\fam\@ne\ninei}%
+ \textfont\@ne=\ninei \scriptfont\@ne=\seveni
+ \textfont\tw@=\ninesy \scriptfont\tw@=\sevensy
+ \def\it{\fam\itfam\nineit}%
+ \textfont\itfam=\nineit
+ \def\sl{\fam\slfam\ninesl}%
+ \textfont\slfam=\ninesl
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\bffam=\ninebf \scriptfont\bffam=\sevenbf
+ \def\smc{\ninesmc}%
+ \def\SMC{\eightrm}%
+ \def\tt{\ninett}%
+ \setttglue
+ \setbox\strutbox=\hbox{\vrule height 6.75pt depth 2.25pt width\z@}%
+ \setbox\struttbox=\hbox{\vrule height 7.75pt depth 3.25pt width\z@}%
+ \normalbaselines \rm
+ \@additionsto\ninepoint }
+
+% The following setting can be used when baselineskip = 10pt
+% \setbox\struttbox=\hbox{\vrule height 7.25pt depth 2.75pt width\z@}%
+
+
+\newdimen\normaleightpointstretch \normaleightpointstretch=1.333pt
+\def\NormalEightPointSpacing{\AdjustNormalSpacing\eightpoint{}}
+\def\StretchyEightPointSpacing{\AdjustNormalSpacing\eightpoint{2.25}}
+
+\def\eightpoint{\normalbaselineskip=10pt
+ \abovedisplayskip=2pt plus 2pt minus 1pt
+ \belowdisplayskip=2pt plus 2pt minus 1pt
+ \abovedisplayshortskip=0pt plus 2pt
+ \belowdisplayshortskip=1pt plus 2pt minus 1pt
+ \def\rm{\fam\z@\eightrm}%
+ \textfont\z@=\eightrm \scriptfont\z@=\sixrm
+ \def\oldstyle{\fam\@ne\eighti}%
+ \textfont\@ne=\eighti \scriptfont\@ne=\sixi
+ \textfont\tw@=\eightsy \scriptfont\tw@=\sixsy
+% \textfont\thr@@=\eightex \scriptfont\thr@@=\eightex
+ \def\it{\fam\itfam\eightit}%
+ \textfont\itfam=\eightit
+ \def\sl{\fam\slfam\eightsl}%
+ \textfont\slfam=\eightsl
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
+ \def\smc{\eightsmc}%
+ \def\tt{\eighttt}%
+ \setttglue
+ \setbox\strutbox=\hbox{\vrule height 6pt depth 2pt width\z@}%
+ \setbox\struttbox=\hbox{\vrule height 7pt depth 3pt width\z@}%
+ \normalbaselines \rm
+ \@additionsto\eightpoint }
+
+% The 8pt cap/small cap font is not loaded. See a corresponding remark
+% above for the 9pt csc font.
+
+% this is equivalent to baselineskip = 9pt
+% \setbox\struttbox=\hbox{\vrule height 6.5pt depth 2.5pt width\z@}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Following will allow text to be a bit stretchier than the built-in
+% setting; TeXbook, page 433, 355
+
+\def\@setstretch{\fontdimen3\the\font=}
+\def\AdjustNormalSpacing#1#2{% #1=pointsize, #2=adjustment factor
+ {\T@stDimen=#2\csname normal\expandafter\gobble\string#1stretch\endcsname
+ #1%
+ \rm\@setstretch\T@stDimen
+ \it\@setstretch\T@stDimen
+ \bf\@setstretch\T@stDimen
+ }}
+
+
+
+% Anticipated changes to this font handling scheme:
+%
+% Dynamic loading of fonts, probably in groups according to size
+% Removal of \rm, \bf, etc., from \*point expansions, replacement
+% by generic \rm, \bf, etc. definitions
+% Mechanism for switching neatly between serif and sans-serif
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** page dimensions *****
+%
+
+
+% vertical dimensions
+
+\newdimen\trimlgt \trimlgt=11in % 10.5in (vols 7-9)
+\newdimen\headmargin \headmargin=3.5pc % 2.5pc (vols 7-9)
+\newdimen\pagelgt
+\newdimen\rheadlgt \rheadlgt=2.5pc % + headmargin = 6pc = 1in
+\newdimen\toplgt \toplgt=\z@
+\newdimen\normalcollgt \normalcollgt=54pc % 52pc for 5#2
+\newdimen\collgt \collgt=\normalcollgt
+\newdimen\Collgt
+\maxdepth=2pt
+\newdimen\botlgt \botlgt=\z@
+\newdimen\rfootlgt \rfootlgt=2pc
+
+\newif\ifThisIsFirstPage \ThisIsFirstPagefalse
+
+\def\resetpagelgt{%
+ \pagelgt=\collgt \Collgt=\collgt
+ \advance\pagelgt by \rheadlgt
+ \ifThisIsFirstPage \advance\Collgt by-\toplgt
+ \advance\Collgt by-\botlgt \fi
+ \advance\pagelgt by \maxdepth
+ \global\advance\pagelgt by \rfootlgt
+ \global\vsize=\Collgt }
+
+\def\resetfpagelgt{%
+ \global\ThisIsFirstPagetrue
+ \resetpagelgt } % exclude special first page material
+
+\resetpagelgt
+\raggedbottom
+
+% horizontal dimensions
+
+\newdimen\colwd
+\newdimen\intercolwd \intercolwd=\z@
+\newdimen\pagewd \pagewd=39pc
+\newdimen\trimwd \trimwd=\pagewd
+\newdimen\oddleftindent \oddleftindent\z@
+\newdimen\evenleftindent \evenleftindent\z@
+
+\def\onecol{\colwd=\pagewd \OneCol }
+
+\newdimen\onenarrowcolwd \onenarrowcolwd=30pc
+\def\onenarrow{\colwd=\onenarrowcolwd \OneCol }
+
+% before 5#2, `narrow' was 34pc
+\newdimen\onemediumcolwd \onemediumcolwd=34pc
+\def\onemedium{\colwd=\onemediumcolwd \OneCol }
+
+\newdimen\twocolcolwd \twocolcolwd=18.75pc
+\def\twocol{\colwd=\twocolcolwd \intercolwd=1.5pc \TwoCol }
+
+\newdimen\threecolcolwd \threecolcolwd=12pc
+\def\threecol{\colwd=\threecolcolwd \intercolwd=1.5pc \ThreeCol }
+
+\def\CenterOneCol{%
+ \oddleftindent\pagewd
+ \advance\oddleftindent -\colwd
+ \divide\oddleftindent\tw@
+ \evenleftindent\oddleftindent
+ \coloffset\ifodd\pageno\oddleftindent\else\evenleftindent\fi
+ }
+
+\def\OneCol{\hsize=\colwd \CenterOneCol \numcols=1 \resetmaxcols}
+\def\ZeroLeftIndents{\oddleftindent\z@ \evenleftindent\z@ \coloffset\z@ }
+\def\TwoCol{\hsize=\colwd \numcols=2 \resetmaxcols \ZeroLeftIndents}
+\def\ThreeCol{\hsize=\colwd \numcols=3 \resetmaxcols \ZeroLeftIndents}
+
+\def\resetmaxcols{%
+ \ifnum\numcols>\maxcols
+ \ifOverlaysinTeX \maxcols=\numcols
+ \else \immediate\write\sixt@@n{%
+ The new setting of \string\numcols is greater than \string\maxcols.^^J
+ Either allow overlays in TeX or increase \string\maxcols.}\fi
+ \fi}
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** headers/footers *****
+%
+
+
+\def\pagenoprefix{}
+
+\def\rtitlex{\def\tubfont{\tenpoint\rm}\TUB, \volx }
+\def\rtitle{%
+ \hbox to \pagewd{%
+ \tenrm
+ \makestrut[10pt;\z@]%
+ \ifodd\pageno \rtitlex\qquad\midrtitle\hfil\pagenoprefix\number\pageno
+ \else \pagenoprefix\number\pageno\hfil\midrtitle\qquad\rtitlex \fi
+ }%
+ }
+
+\def\runhead{\vbox to \rheadlgt{\rtitle \vfil }}
+
+\def\rfoot{%
+ \hbox to \pagewd{%
+ \tenrm
+ \makestrut[\z@;0.5pc]%
+ \midrtitle\hfil\midrtitle
+ }%
+ }
+
+\def\runfoot{\vbox to \rfootlgt{\vfil \rfoot }}
+
+% Macros to produce extra running heads for stripping onto pages
+% received as camera copy. Format must be preset to \OneCol, and
+% start on a new page.
+
+% Generate 5 (4 + normal running head) per page.
+
+\def\DrawT@pLines{%
+ \vskip\topskip
+ \ulap{%
+ \line{%
+ \raise 1ex\rlap{\leaders\hrule\hskip\pagewd}%
+ \leaders\hrule\hfill
+ }}
+ \medskip}
+
+\def\r@nhead{%
+ \vbox to .23\vsize{%
+ \basezero \hsize=\pagewd \vfil
+ \topregister \vskip\headmargin \runhead \DrawT@pLines }
+ \medskip
+ \advancepageno }
+
+\def\nextrunner{%
+ \ifnum\T@stCount>0
+ \ifnum\T@stCount>5 \TestCount=5 \else\TestCount=\T@stCount \fi
+ \advance\T@stCount by-\TestCount
+ \DrawT@pLines % always one at top of page
+ \loop\ifnum\TestCount>1 \r@nhead \advance\TestCount by\m@ne \repeat
+ \newpage
+ \def\@next{\nextrunner}%
+ \else \def\@next{}%
+ \fi
+ \@next }
+
+% Use \ExtraRunheads to generate running heads for stripping (e.g. for
+% author-supplied camera-ready copy). E.g., ``\ExtraRunheads 12, {}.'' will
+% generate 12 TUGboat running heads, up to 5 per page, starting with
+% the current page number.
+
+\def\ExtraRunheads #1, #2.{%
+ \T@stCount=#1
+ \gdef\pageprefix{#2}% % as in A-10 for appendices; not used just now
+ \nextrunner }
+
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** insertions *****
+%
+
+
+\newif\if@floatable \@floatabletrue % sometimes we don't want
+\def\nofloat{\@floatablefalse} % midinsertions to float
+
+% redefine \@ins to avoid the \par of PLAIN
+\def\@ins{\begingroup\setbox\z@\vbox\bgroup}
+
+\newinsert\botins
+\newif\ifp@ge \newif\if@mid \newif\if@bot
+\def\topinsert{\@midfalse\p@gefalse\@botfalse\@ins}
+\def\botinsert{\@midfalse\p@gefalse\@bottrue\@ins}
+\def\midinsert{\@midtrue\@botfalse\@ins}
+\def\pageinsert{\@midfalse\@botfalse\p@getrue\@ins}
+\skip\botins=\z@skip
+\count\botins=1000
+\dimen\botins=\maxdimen
+\def\endinsert{\egroup % finish the \vbox
+ \gdef\@next{}%
+ \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@
+ \advance\dimen@12\p@ \advance\dimen@\pagetotal
+ \if@floatable
+ \ifdim\dimen@>\pagegoal\@midfalse\@botfalse\p@gefalse\fi\fi
+ \fi
+ \if@mid
+ \vskip\abovedisplayskip
+ \box\z@
+ \vskip\belowdisplayskip
+ \gdef\@next{\@asifbelowdisplay}%
+ \else\insert\if@bot\botins\else\topins\fi
+ {\penalty100 % floating insertion
+ \if@bot\medskip\nobreak\fi
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\fi
+ \if@bot\else\medskip\fi
+ }%
+ \fi\endgroup\@next}
+
+% Footnotes are mainly supported by PLAIN format, with these
+% exceptions.
+
+\skip\footins=10pt
+\def\footnoterule{\kern-5pt
+ \hrule width 5pc \kern 4.6pt } % the \hrule is .4pt high
+
+\newif\ifDelayFirstPar \DelayFirstParfalse
+\def\vfootnote#1{\ifFirstPar \DelayFirstPartrue \fi
+ \insert\footins\bgroup
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \rm \parindent=\normalparindent % always indent footnotes; added for TUGboat
+ \textindent{#1}\makestrut[10pt;\z@]\futurelet\next\fo@t}
+\def\@foot{\strut\egroup
+ \ifDelayFirstPar \SetupFirstPar \global\DelayFirstParfalse \fi }
+\newif\ifFirstPar \FirstParfalse
+\def\SetupFirstPar{\global\parindent=\z@ \global\FirstPartrue }
+
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** output *****
+%
+
+
+% Reorganize \pagecontents from PLAIN to put footnotes at very
+% bottom of page, even if \raggedbottom. Also add bottom insertions.
+
+\def\pagecontents{%
+ \ifvoid\topins\else\unvbox\topins\fi
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins\fi
+ \ifvoid\botins\else
+ \vskip\skip\botins
+ \unvbox\botins\fi }
+
+
+% Trim (registration) marks may or may not be placed around the pages;
+% Overlaying may or may not be done within TeX (as opposed
+% to the device driver).
+
+\newif\ifTrimmarks \Trimmarksfalse
+\newif\ifOverlaysinTeX \OverlaysinTeXtrue
+
+
+% All columns containing data are formatted by \midpage. Trim marks
+% are put on all columns, but running heads only on the last column
+% (i.e. column number = \numcols)
+
+\def\midpage#1{%
+ \vbox{
+ \basezero
+ \hrule height\z@ depth\z@ width\p@
+ \ifTrimmarks
+ \vskip-1in % default offset for laser printers
+ % this puts top trim at edge of paper
+ \vbox to \trimlgt \bgroup
+ \topregister
+ \vskip \headmargin
+ \else
+ \vskip-\rheadlgt % this puts runhead above default offset
+ \fi
+ \vbox to \pagelgt{
+ \ifnum\xcol=\numcols \runhead \else \vbox to \rheadlgt{}\fi
+ \ifThisIsFirstPage \firsthead \fi
+ \hbox to \pagewd{#1} % \vsize applied in \pagebody
+ \ifThisIsFirstPage \firstfoot \fi
+ \vfil % if no depth, avoid underfull box
+ \ifnum\xcol=\numcols \runfoot \else \vbox to \rfootlgt{}\fi
+ }
+ \ifTrimmarks \vfill \botregister \egroup \fi
+ }}
+
+% The production version includes trim marks, which are required
+% on photographic paper, but are unsuitable for laser printer output
+% (because they land at the edges of the page). For multiple
+% column output, allowance is made for column overlays either
+% within TeX or by the driver. The default is to have all
+% overlays done within TeX, but large pages or matters of efficiency
+% may dictate that driver-overlay is more appropriate.
+
+% When the overlaying is done within TeX, the .dvi contains just
+% one page for each page to be printed. However, in the case
+% that a driver is to do the overlaying we must anticipate that
+% it will not be smart enough to properly overlay different numbers
+% of .dvi pages for different printed pages (e.g. in the case that
+% one job has both single- and double-column layout). Thus, for
+% each printed page, TeX constructs a constant number (=\maxcols)
+% of .dvi pages. Columns 1 through and including \numcols will
+% be usual .dvi pages containing information for the typeset columns.
+% Upon reaching column number \numcols, TeX will `fill out' the
+% printed page with empty columns to \maxcols.
+
+
+% set up auxiliary `page numbers'
+% \pageno = \count0 as used in PLAIN
+
+% \xcol is the column number within a page; ranges from 1 to \maxcols
+\countdef\xcol=1 \xcol=1
+
+% \spoolno is the ordinal number of `.dvi' pages (i.e. the number
+% of \shipouts performed)
+\countdef\spoolno=2 \spoolno=0
+
+\def\newcol{\endgraf\vfill\eject}
+
+\def\newpage{%
+ \vfill\eject
+ \loop
+ \ifnum\xcol>1
+ {\leavevmode\endgraf\vfill\eject} % \xcol is advanced in the output routine
+ \repeat
+ }
+
+\newcount\numcols % `real' number of columns
+
+\newcount\@maxcolsofar % internal counter for box allocation
+\@maxcolsofar=0
+
+\newcount\maxcols % job-wide maximum number of columns
+\maxcols=2
+
+
+ % save the column or ship it out
+\def\@saveorship{%
+ \ifOverlaysinTeX
+ \ifnum\xcol>\@maxcolsofar % if we need another column box allocated
+ \global\advance\@maxcolsofar\@ne
+ \newboxcs{column\number\xcol}%
+ \fi
+ \global\setboxcs{column\number\xcol}%
+ \else
+ \global\advance\spoolno\@ne
+ \shipout
+ \fi
+ }
+
+% horizontal offset of column from left edge of page
+\newdimen\coloffset \coloffset\z@
+\def\incrcoloffset{%
+ \global\advance\coloffset\colwd
+ \global\advance\coloffset\intercolwd
+ }
+
+\def\output@{%
+ \@saveorship\midpage{\kern\coloffset\pagebody\hfil}
+ \incrcoloffset
+ \ifnum\xcol=\numcols % if at `real' last column, fill out page with
+ \loop % empty columns
+ \ifnum\xcol<\maxcols
+ \global\advance\xcol\@ne
+ \@saveorship\midpage{\vbox to \collgt{}\hfil}
+ \repeat
+ \fi
+ \ifnum\xcol=\maxcols % put page together if TeX is overlaying
+ \ifOverlaysinTeX
+ \global\advance\spoolno\@ne
+ \shipout\hbox{%
+ \xcol=1
+ \loop \rlap{\boxcs{column\number\xcol}}%
+ \ifnum\xcol<\maxcols
+ \global\advance\xcol\@ne
+ \repeat
+ \hbox to \pagewd{}%
+ }%
+ \fi
+ \D@EndPage % possible shortening of next page
+ \global\coloffset\ifodd\pageno\oddleftindent\else\evenleftindent\fi
+ \global\xcol=1
+ \else
+ \global\advance\xcol\@ne
+ \fi
+ \ExecuteNextDC % possible `Delayed Command'
+ }
+
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** page adjustment *****
+%
+
+
+% In the absence of automatic column-balancing, provide a mechanism
+% for manually shortening a specified page.
+
+\newif\ifSh@rtPage \Sh@rtPagefalse
+\newif\ifSh@rtPagePending \Sh@rtPagePendingfalse
+\newcount\Sh@rtPageNo
+\newdimen\Sh@rtPageLgt
+
+\def\@to{to} \def\@by{by}
+% #1 = to/by; #2 = \dimen; #3 = <dimen>; #4 = * of Shorten*Page
+\def\@toby#1#2#3#4{%
+ \def\@tb{#1}%
+ \ifx \@tb\@to \global #2=#3
+ \else \ifx \@tb\@by \T@stDimen=#3 % accommodate negative #3
+ #2=\normalcollgt \global\advance #2 by -\T@stDimen
+ \else \errmessage{#1 is invalid syntax; \string\Shorten#4Page
+ requires "to" or "by"}\fi
+ \fi }
+
+\def\@plusno#1#2;{%
+ \if +#1\T@stCount=\pageno \advance\T@stCount by #2
+ \else \T@stCount=#1#2 \fi }
+
+\def\ShortenPage #1 #2 #3. {%
+ \global\Sh@rtPagePendingtrue
+ \@plusno#1;\global\Sh@rtPageNo=\T@stCount
+ \@toby{#2}{\Sh@rtPageLgt}{#3}{}}
+\def\ShortenThisPage #1 #2. {%
+ \global\Sh@rtPagetrue
+ \@toby{#1}{\vsize}{#2}{This}}
+
+% Two cases: 0 = last page was nonstandard; reset \vsize
+% 1 = do not reset \vsize: okay or length already reset
+\def\D@EndPage{%
+ \global\advancepageno
+ \T@stCount=1
+ \ifThisIsFirstPage \T@stCount=0 \global\ThisIsFirstPagefalse
+ \resetfirsthead \resetfirstfoot
+ \global\collgt=\normalcollgt \fi
+ \ifSh@rtPage \T@stCount=0 \global\Sh@rtPagefalse \fi
+ \ifSh@rtPagePending
+ \ifnum\pageno = \Sh@rtPageNo \T@stCount=1
+ \global\vsize=\Sh@rtPageLgt
+ \global\Sh@rtPagePendingfalse
+ \global\Sh@rtPagetrue \fi
+ \fi
+ \ifcase \T@stCount \resetpagelgt \fi }
+
+% Add more powerful means of adjusting pages by keeping a list of
+% commands to be executed prior to making up the next page. This
+% technique will be expanded in the next version of the output
+% routine.
+
+% "\DelayedCommand <page number> <column number> <command>\endCommand"
+% places the token list <command> at the end of a list of "things to do".
+% At the end of every column, the output routine checks this list to
+% see whether the head of the list should be "executed" prior to
+% building the next column. If so, the execution is performed.
+% Right now, items must be placed in the execution list in order,
+% and all items for a given column must be combined into a single
+% token list.
+
+% Natural applications are double column figures and column size
+% adjustments. E.g.
+% \DelayedCommand +5 1 \global\advance\vsize by 2\baselineskip\endCommand
+% will increase the \vsize of the first column of the page 5 pages from
+% "now" by 2 baselines. To pull the \vsize back to normal would require
+% another use of \DelayedCommand. Double column figures can be achieved
+% with insertions called by \DelayedCommand.
+
+% Right now the technique is messy, but it can be used by those who know
+% how it's implemented and know its limitations.
+
+\newtoks\@DelayedCommandList
+
+\def\DelayedCommand #1 #2 #3\endCommand{%
+ \@plusno#1;%
+ \edef\@temp{\the\@DelayedCommandList<\number\T@stCount>}%
+ \global\@DelayedCommandList=\expandafter{\@temp<#2>#3\endCommand}%
+ }
+
+\def\@FindNextDCPoint <#1><#2>#3\endList{%
+ \def\DCpage{#1}\def\DCcolumn{#2}}
+
+\def\FindNextDCPoint{%
+ \edef\@temp{\the\@DelayedCommandList}%
+ \ifx\@temp\empty \def\DCpage{\@M}\def\DCcolumn{0}%
+ \else
+ \edef\@form{%
+ \noexpand\@FindNextDCPoint\the\@DelayedCommandList\noexpand\endList}%
+ \@form
+ \fi}
+
+\def\@ExecuteNextDC <#1><#2>#3\endCommand#4\endList{%
+ \global\@DelayedCommandList={#4}%
+ #3}
+
+\def\ExecuteNextDC{%
+ \FindNextDCPoint
+ \ifnum \pageno=\DCpage \ifnum\xcol=\DCcolumn
+ \edef\@form{%
+ \noexpand\@ExecuteNextDC\the\@DelayedCommandList\noexpand\endList}%
+ \@form
+ \fi \fi}
+
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** general mechanism for tags *****
+%
+
+% Upon sensing an opening tag (call it `\foo' here), the following process
+% is set in motion:
+% 1. \begingroup (so definitions and settings are localized);
+% 2. the default situation for \foo is set up;
+% 3. if appropriate, an \everyfoo list is read (this allows one
+% to override the TUGboat.sty factory defaults);
+% 4. optional commands are read. This involves looking ahead for
+% a `[' and `normalizing' the optional environment so that
+% backslashes and braces are interpreted as their standard selves.
+% After the options are read, the `\',`{', and `}' are restored
+% to their status appropriate to \foo;
+% 5. the \@beginfoo macro is executed. This
+% may involve branching dependent upon flags set by options. It may
+% also be a place where spaces and carriage-returns are activated.
+% 6. the `argument' to \foo is read and stored or processed on
+% the fly (the method employed is generally fixed for each tag).
+% The argument may be delimited by *...* (called the `short-form'
+% here), or up to ...\endfoo (called the `long-form').
+% 7. a cleanup macro is executed which also ends the current group.
+% This may do all the work if an argument has been read and stored.
+
+% Checking ahead.
+% Often we check ahead to determine the next course of action.
+% \@checknexttoken is used to check for optional commands, to check for the
+% short-form argument-delimiter, and to ignore characters in certain
+% situations. The macro is just a check; applications must do whatever
+% is appropriate with the ensuing token.
+
+% \@checknexttoken checks the next token against argument #1. If the
+% two are the same, #2 is executed, otherwise #3. The comparison is
+% done with \ifx. Since we check ahead with \futurelet, the first
+% argument is stored with \let as well. To include the case
+% where #1 may be a space, we have to go through a small contortion
+% to \let\@basetoken= that space.
+
+% At times, the \@nexttoken will be \outer and this will prevent its
+% being incorporated in the definition of \@next below. For this reason,
+% we store `\ifx\@basetoken\@nexttoken' away in a definition at a time
+% when \@nexttoken is undefined and won't cause a problem.
+
+\def\if@baseis@next{\ifx\@basetoken\@nexttoken}
+
+\long\def\@checknexttoken #1#2#3{%
+ \futurelet\@basetoken\iffalse#1\fi
+ \long\def\@next{%
+% \ifx \@basetoken\@nexttoken
+ \if@baseis@next
+ \long\def\@@next{#2}%
+ \else\long\def\@@next{#3}\fi
+ \@@next}%
+ \futurelet\@nexttoken\@next}
+
+% Eliminating characters from input.
+% The following macros check ahead to see whether the next token is a
+% token to be parsed from the input stream. \@ignoreall keeps
+% checking to eliminate all such characters, whereas \@ignoreone drops
+% at most one. Argument #2 is executed after characters are eliminated.
+
+% The token is removed by defining a control sequence whose
+% contextual form includes the token.
+
+ % execute #2 after ignoring (possibly) one occurrence of #1
+\long\def\@ignoreone#1#2{%
+ \def\@ignoreform#1{#2}%
+ \@checknexttoken{#1}{\@ignoreform}{#2}%
+ }
+
+ % execute #2 after ignoring all occurrences of #1
+\long\def\@ignoreall#1#2{%
+ \def\@ignoreform#1{\@ignoretest}%
+ \def\@ignoretest{\@checknexttoken{#1}{\@ignoreform}{#2}}%
+ \@ignoretest
+ }
+
+% Particularly useful ignorances.
+
+ % execute #1 after ignoring spaces
+\def\DeleteOptionalSpaces#1{%
+ \@ignoreall{ }{#1}%
+ }
+ % execute #1 after ignoring spaces and \pars
+\def\DeleteOptionalSpacesandPars#1{%
+ \@ignoreall{ }{\@ignoreall{\par}{#1}}%
+ }
+
+
+% Checking and reading options.
+% To check for the next optional argument, the macros must look
+% ahead to the next character. If the next character is a `[',
+% the option-reading mechanism is invoked. This check may be suppressed if
+% the user has executed the \lastoption option. If \@lastoption is
+% "true" or if the [ is NOT next, the macro goes on to reading any
+% arguments and executing appropriately.
+
+\def\@checkoptions{%
+ \if@lastoption
+ \def\@next{\@executetoend}%
+ \else
+ \def\@next{\@checknexttoken {[}{\@readoptions}{\@executetoend}}%
+ \fi
+ \@next
+ }
+
+% Default "options" on start-up. Unless over-ridden, the situation
+% will be:
+% 1. there may be another option to check (i.e. \@lastoptionfalse);
+% 2. it will be necessary to read the input file to determine the
+% method of marking arguments (i.e. \@longformfalse);
+% 3. arguments will be handled on the fly (i.e. \@savingargumentfalse);
+% 4. the long-form ending delimiter will be \end... (where ... is
+% the tag with which we're currently operating.
+
+\newif\if@lastoption \@lastoptionfalse
+\def\lastoption{\@lastoptiontrue}
+
+\newif\if@longform \@longformfalse
+\def\longform{\@longformtrue}
+
+\newif\if@savingargument \@savingargumentfalse
+
+\newtoks\enddelim
+
+\def\@defaultoptions{%
+ \@lastoptionfalse
+ \@longformfalse
+ \@savingargumentfalse
+ \enddelim=\expandafter{\csname end\CurrentTag\endcsname}%
+ \let\@long\empty
+ }
+
+% To read an optional command, \catcodes of \ { } are restored to their plain
+% values, and the [...] form is parsed out by \@@readoptions. The argument
+% to \@@readoptions is then executed, the 3 specials are restored and
+% the we check again for [ after deleting spaces. One might, alternatively,
+% parse out the initial `[' and activate the `]' to end options, but
+% this would make it awkward to place options within other macros (since
+% the `]' would have to be \catcoded properly for the definition).
+
+\def\@readoptions{%
+ \savecat\\\makeescape\\%
+ \savecat\{\makebgroup\{%
+ \savecat\}\makeegroup\}%
+ \@@readoptions}
+
+\def\@@readoptions[#1]{%
+ #1%
+ \restorecat\\\restorecat\{\restorecat\}%
+ \DeleteOptionalSpaces{\@checkoptions}%
+ }
+
+
+% Short Form Tagging.
+% We specify a character (*) to be used as a begin/end delimiter
+% for the argument to most tags. This code could be copied and
+% altered a bit to use another character.
+
+% The character will be encountered as either type `other' or as
+% an `active' character.
+
+\newtoks\@otherSFD
+\@otherSFD={*}
+\let\@SFD=* % used in \@checknexttoken
+
+\newtoks\@activeSFD
+{\makeactive\*
+ \global\@activeSFD={*}%
+}
+
+\let\@plainast=\ast
+\def\ast{\ifmmode\@plainast\else *\fi}
+
+
+% Reading to the end-tag.
+% Macros may just do their business after options have been
+% read. In this case, there is no end-tag to worry about.
+% Otherwise, the macros either read to the "long-form" of end-tag
+% (e.g. \endtitle or \endauthor) or to the short-form (assumed to
+% be * here). Unless an option has specified
+% that the long-form is to be used, the macros look ahead to
+% see whether the short-form delimiter occurs next. If so,
+% it is assumed that the short-form is being used. In any case,
+% the appropriate \@begin... macro is executed before the argument is
+% handled.
+
+\newcount\@numarguments \@numarguments=1
+
+\def\@executetoend{%
+ \ifnum\@numarguments>0
+ \if@longform \def\@afterbegintag{\@longparse}%
+ \else
+ \def\@afterbegintag{\@checknexttoken
+ {\@SFD}{\@shortparse}{\@longparse}}%
+ \fi
+ \else
+ \def\@afterbegintag{}%
+ \fi
+ \csname @begin\CurrentTag\endcsname
+ \@afterbegintag
+ }
+
+% If the short-form is being used and an argument is to be saved,
+% we must define a "form" which TeX may follow to pull out the
+% tag's argument. The argument is stored away in the token register
+% \@argument, and the appropriate end-operation is performed.
+% Otherwise (the `argument' is processed on-the-fly), we parse out
+% the initial short-form delimiter and activate the ending one.
+
+\newtoks\@argument
+
+\def\@shortparse{%
+ \if@savingargument
+ \edef\@form{%
+ \def\noexpand\@@shortparse\the\@otherSFD####1\the\@otherSFD}%
+ \@long\@form{\@argument{##1}\csname end\CurrentTag\endcsname}%
+ \else
+ \expandafter\makeactive\csname\the\@otherSFD\endcsname
+ \expandafter\def\the\@activeSFD
+ {\csname end\CurrentTag\endcsname
+ \expandafter\makeother\csname\the\@otherSFD\endcsname}%
+ \def\@@shortparse{%
+ \expandafter\@ignoreone\expandafter{\the\@otherSFD}%
+ {}%
+ }%
+ \fi
+ \@@shortparse}
+
+% On the other hand, if the long form is used, TeX must parse to
+% the long-form ending tag. Ordinarily we know the ending-tag
+% because it is just the \end... which corresponds to the tag
+% which initiated the process. We do allow for the possibility,
+% however, that we may want to switch this for some reason. E.g.
+% the different \verbatim styles allow for \verbatim...\endverbatim
+% and ||...||. The easiest way to implement the || style is
+% to have the first || call \verbatim and have \verbatim know
+% to look for || as the end-tag instead of \endverbatim. This may
+% be accomplished by allowing for the possibility of different
+% end-tags as below.
+
+\def\@longparse{%
+ \if@savingargument
+ \edef\@form{\def\noexpand\@@longparse####1\the\enddelim}%
+ \@long\@form{\@argument{##1}\csname end\CurrentTag\endcsname}%
+ \else \def\@@longparse{}\fi
+ \@@longparse
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros generally available to tags.
+
+\def\longargument{\def\@long{\long}}
+
+\def\@authorstyle{\@@@a}
+\def\@inlinestyle{\@@@i}
+\def\@displaystyle{\@@@d}
+\def\@altinlinestyle{}
+\def\@altdisplaystyle{}
+
+\newif\if@removeprewhite \@removeprewhitefalse
+\newif\if@removepostwhite \@removepostwhitefalse
+\def\removeprewhite{\@removeprewhitetrue}
+\def\removepostwhite{\@removepostwhitetrue}
+
+% Allow for line numbers on a listing as well as rules above and below.
+\newif\if@ruled \@ruledfalse
+\newif\if@numbered \@numberedfalse
+\newcount\linenumber
+\newcount\globallinenumber \globallinenumber = 0
+\newif\if@continuingnumbers \@continuingnumbersfalse
+\def\continuenumbers{\numbered\@continuingnumberstrue}
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** title, section title, authors, addresses *****
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% title
+
+\def\title{%
+ \begingroup
+ \def\CurrentTag{title}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \@checkoptions}
+
+\def\endtitle{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \edef\thetitle{\ignorespaces\the\toks@\unskip}%
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% section titles
+
+% Material mostly in tugboat.com now
+
+\setbox\T@stBox=\hbox{\sectitlefont O}
+\newdimen\stfontheight \stfontheight=\ht\T@stBox
+
+\def\sectitle{%
+ \begingroup
+ \def\CurrentTag{sectitle}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \global\SecTitletrue
+ \@checkoptions}
+
+\def\endsectitle{%
+ \@sectitle{\the\@argument}%
+ \endgroup
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% authors
+
+\newcount\authornumber
+
+\def\author{%
+ \begingroup
+ \def\CurrentTag{author}%
+ \global\advance\authornumber by 1
+ \@defaultoptions
+ \@savingargumenttrue
+ \@checkoptions}
+
+\def\endauthor{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \expandafter\edef\csname theauthor\number\authornumber\endcsname
+ {\ignorespaces\the\toks@\unskip}%
+ \expandafter\let\csname theaddress\number\authornumber\endcsname\relax
+ \expandafter\let\csname thenetaddress\number\authornumber\endcsname\relax
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% addresses
+
+\def\address{%
+ \begingroup
+ \def\CurrentTag{address}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \let\@addressstyle=\@authorstyle
+ \def\inline{\let\@addressstyle=\@inlinestyle}%
+ \def\display{\let\@addressstyle=\@displaystyle}%
+ \@checkoptions}
+
+\def\endaddress{%
+ \ifx\@addressstyle\@inlinestyle
+ \def\\{, }\the\@argument
+ \endgroup
+ \def\@next{}%
+ \else\ifx\@addressstyle\@displaystyle
+ \endgraf\raggedright
+ \everypar={\hangindent 1.5\parindent}%
+ \def\\{\endgraf}%
+ \def\|{\unskip\hfil\break}%
+ \vskip\abovedisplayskip
+ \the\@argument\endgraf
+ \vskip\belowdisplayskip
+ \@asifbelowdisplay
+ \endgroup
+ \def\@next{\ignorespaces}%
+ \else
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \expandafter\edef\csname theaddress\number\authornumber\endcsname
+ {\ignorespaces\the\toks@\unskip}%
+ \def\@next{}%
+ \fi \fi
+ \@next
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% network addresses
+
+\def\netaddress{%
+ \begingroup
+ \def\CurrentTag{netaddress}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \let\@network\relax
+ \def\network##1{\def\@network{##1: }}%
+ \@SpecialsGetOther
+ \makeescape\\%
+ \netaddrat
+ \netaddrpercent
+ \@checkoptions}
+
+{\makeactive\@
+ \gdef\netaddrat{\makeactive\@\def@{\char"40\discretionary{}{}{}}}
+ \makeactive\%
+ \gdef\netaddrpercent{\makeactive\%\def%{\char"25\discretionary{}{}{}}}
+}
+
+% We want the definition of \thenetaddress... to land at the right
+% nesting level, so we have to first pull it to the top, then
+% drop back to where we are.
+
+\def\endnetaddress{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \ifx\@network\relax
+ \gdef\@@network{}%
+ \else
+ \xdef\@@network{\@network}%
+ \fi
+ \endgroup
+ \expandafter\edef\csname thenetaddress\number\authornumber\endcsname
+ {{\noexpand\rm\@@network}%
+ {\noexpand\netaddrat\noexpand\netaddrpercent\noexpand\net
+ \ignorespaces\the\toks@\unskip}}%
+ }
+
+\def\net{\tt}
+
+% Overrides to default author and signature formats
+
+\def\authorlist#1{\def\@authorlist{#1}}
+
+% Except for the first article in a section, beginnings of articles
+% are announced by a horizontal rule the width of the column.
+% In the case that this rule happens to fall at the top of a column,
+% we have to make sure that it appears at the VERY top of the column
+% and not just on the first baseline. To accomplish this, we insert
+% an empty rule first and then jump back over it to place the rule that
+% readers will see.
+
+\def\article{%
+ \@allowspanningfigsfalse
+ \ifSecTitle \global\SecTitlefalse
+ \else \vskip\AboveTitleSkip
+ \kern\topskip
+ \nullhrule
+ \kern-\topskip
+ \kern-\strulethickness
+ \hrule height\strulethickness depth\z@
+ \nobreak
+ \kern\medskipamount
+ \fi
+ \ifx\thetitle\relax
+ \else
+ \nobreak
+ {\parskip\z@\interlinepenalty\@M
+ \noindent\def\\{\unskip\break}\raggedstretch=.3\colwd\raggedright\bf
+ \ignorespaces\thetitle\unskip\endgraf}%
+ \fi
+ \ifnum\authornumber>0
+ \nobreak
+ \vskip4pt
+ {\parskip\z@\interlinepenalty\@M
+ \def\\{\unskip\hfil\break}\hangindent\parindent\raggedright
+ \@authorlist\endgraf}
+ \fi
+ \nobreak
+ \vskip \BelowTitleSkip
+ \vskip -\parskip
+ \tenpoint
+ \DeleteOptionalSpacesandPars{\noindent\ignorespaces}%
+ }
+
+
+\def\endarticle{\vfil\end} % redefined in drivers
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** heads *****
+%
+
+% Heads are set by first saving the text of the head in \@argument
+% and then operating appropriately depending upon the \headlevel.
+% Selection among the different heads is made by an \ifcase.
+
+% To remove extra \par tokens between heads and ensuing text in the
+% input file, we call \DeleteOptionalSpacesandPars. To do this outside
+% the `head' group and just before TeX returns to the normal input stream
+% following a call to \head, we must define (globally) a control sequence
+% (\@next) and call it at the very end.
+
+\newcount\headlevel \headlevel=1
+
+\def\head{%
+ \begingroup
+ \def\CurrentTag{head}%
+ \@allowindentfalse
+ \@defaultoptions
+ \@savingargumenttrue
+ \def\\{\break}%
+ \@checkoptions}
+
+\def\endhead{%
+ \endgraf
+ \ifcase\headlevel\or\@domainhead\or\@dosubhead\or\@dosubsubhead\fi
+ \endgroup
+ \@next
+ }
+
+\def\@domainhead{%
+ \if@removeprewhite\else\vskip\baselineskip\fi
+ \noindent{\raggedright\bf\ignorespaces\the\@argument\unskip\endgraf}%
+ \if@removepostwhite % usually we want the white space
+ \else\kern0.5\baselineskip\fi
+ \nobreak
+ \gdef\@next{%
+ \if@allowindent\def\@next{}% usually we don't want to indent here
+ \else\def\@next{\DeleteOptionalSpacesandPars{\noindent\ignorespaces}}\fi
+ \@next
+ }%
+ }
+
+\def\@dosubhead{%
+ \if@removeprewhite\else\medskip\fi
+ \noindent{\frenchspacing\bf\ignorespaces\the\@argument
+ \unskip\if@headpunctuation.\fi}%
+ \hskip 0.5em plus \fontdimen3\the\font
+ \gdef\@next{\DeleteOptionalSpacesandPars{}}%
+ }
+
+\def\@dosubsubhead{%
+ {\frenchspacing\bf\ignorespaces\the\@argument\unskip}%
+ \hskip 0.5em plus \fontdimen3\the\font
+ \gdef\@next{\DeleteOptionalSpacesandPars{}}%
+ }
+
+\def\subhead{\head[\headlevel=2]}
+\def\subsubhead{\head[\headlevel=3]}
+
+\newif\if@headpunctuation \@headpunctuationtrue
+\def\nopunctuation{\@headpunctuationfalse}
+
+\newif\if@allowindent
+\def\allowindent{\global\@allowindenttrue}
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** text and subtext *****
+%
+
+% The code here exists primarily to implement \subtext. The treatment
+% is similar to that for \head in that an \ifcase statement is called
+% to choose between the various text levels. Here, however, we handle
+% the `text' on the fly instead of saving it as an argument.
+
+\newcount\textlevel \textlevel=1
+
+\def\text{%
+ \begingroup
+ \def\CurrentTag{text}%
+ \@defaultoptions
+ \@savingargumentfalse
+ \@checkoptions}
+
+\def\@begintext{%
+ \endgraf
+ \ifcase\textlevel\or\or\@setupsubtext\fi
+ }
+
+\def\@setupsubtext{%
+ \vskip\abovedisplayskip
+ \advance\leftskip by 0.5\parindent
+ \advance\rightskip by 0.5\parindent
+ \ninepoint\rm
+ }
+
+\def\endtext{%
+ \gdef\@next{}%
+ \ifcase\textlevel\or\or\@dosubtext\fi
+ \endgroup
+ \@next
+ }
+
+\def\@dosubtext{%
+ \endgraf
+ \vskip\belowdisplayskip
+ \gdef\@next{\@asifbelowdisplay}%
+ }
+
+\def\subtext{\text[\textlevel=2]}
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** lists *****
+%
+
+\newcount\listlevel \listlevel=1
+\newif\if@itemized
+\newcount\itemnumber
+\newtoks\@itemtag
+\newcount\@cols % number of columns in list
+\newdimen\colsepwidth
+\newdimen\@listindent
+\newdimen\@listhangindent
+\newif\if@firstitem % when first item is handled differently
+\newtoks\everylist
+
+\def\list{%
+ \begingroup
+ \def\CurrentTag{list}%
+ \let\@liststyle=\@displaystyle
+ \def\inline{\let\@liststyle=\@inlinestyle}%
+ \def\display{\let\@liststyle=\@displaystyle}%
+ \def\displaystyle##1{\def\@altdisplaystyle{##1}}%
+ \def\inlinestyle##1{\def\@altinlinestyle{##1}}%
+ \def\item{%
+ \begingroup
+ \def\CurrentTag{item}%
+ \@numarguments=0
+ \@checkoptions}%
+ \@itemtag={$\bullet$}%
+ \def\tag##1{\@itemtag{##1}}%
+ \def\tagform##1{\llap{##1\strutt\enspace}}%
+ \@itemizedtrue
+ \def\unitemized{\@itemizedfalse}%
+ \itemnumber=0
+ \def\numbered{\@itemtag={\number\itemnumber.}}%
+ \def\romannumeraled{\@itemtag={\romannumeral\itemnumber.}}%
+ \def\Romannumeraled{\@itemtag=
+ {\uppercase\expandafter{\romannumeral\itemnumber.}}}%
+ \def\lettered{\itemnumber="60 \@itemtag={\char\itemnumber.}}%
+ \def\Lettered{\itemnumber="40 \@itemtag={\char\itemnumber.}}%
+ \def\ruled{\@ruledtrue}%
+ \@ruledfalse
+ \@cols=1
+ \def\cols{\@cols}%
+ \@firstitemtrue
+ \def\@itemseparator{, }%
+ \def\itemseparator##1{\def\@itemseparator{##1}}%
+ \@defaultoptions
+ \@savingargumentfalse
+ \the\everylist
+ \@checkoptions}
+
+\def\@beginlist{%
+ \ifx\@liststyle\@displaystyle
+ \endgraf
+ \ifnum\listlevel=1
+ \if@ruled \if@removeprewhite\else\medskip\fi \hrule\kern5pt \nobreak
+ \else \if@removeprewhite\else\vskip\abovedisplayskip \fi\fi
+ \fi
+ \advance\leftskip\parindent
+ \@listindent=\parindent
+ \@listhangindent=\@listindent
+ \parindent\@listindent
+ \lineskip\z@
+ \if@itemized
+ \else
+ \parskip\z@skip
+ \parindent\z@
+ \raggedright
+ \everypar={\advance\itemnumber\@ne
+ \tagform{\the\@itemtag}}%
+ \makeCtrlMendgraf
+ \fi
+ \def\colsep{%
+ \global\count@\itemnumber
+ \egroup\kern\colsepwidth
+ \vtop\bgroup
+ \@altdisplaystyle
+ \itemnumber=\count@\ignoreendline}%
+ \ifnum\@cols>1
+ \dimen@\colsepwidth
+ \multiply\dimen@\@cols
+ \advance\dimen@-\colsepwidth
+ \advance\hsize-\dimen@
+ \divide\hsize by\@cols
+ \hbox\bgroup\vtop\bgroup
+ \fi
+ \@altdisplaystyle
+ \else
+ \def\tagform##1{##1\strutt\ }%
+ \if@itemized
+ \else
+ \makeCtrlMseparator
+ \advance\itemnumber by \@ne
+ \tagform{\the\@itemtag}%
+ \fi
+ \def\colsep{}%
+ \@altinlinestyle
+ \fi
+ }
+
+
+\def\endlist{%
+ \ifx\@liststyle\@displaystyle
+ \if@itemized\endgraf\fi
+ \ifnum\@cols>1
+ \egroup % vtop
+ \egroup % hbox
+ \fi
+ \ifnum\listlevel=1
+ \if@ruled \kern5pt\hrule\nobreak\vskip2\medskipamount
+ \else %\nobreak
+ \if@removepostwhite\else\vskip\belowdisplayskip\fi
+ \fi
+ \gdef\@next{\@asifbelowdisplay}%
+ \fi
+ \else \gdef\@next{}%
+ \fi
+ \endgroup % list
+ \@next
+ }
+
+\def\sublist{\list[\listlevel=2]}
+
+
+\newtoks\everyitem \everyitem{}
+
+
+\def\@beginitem{%
+ \ifx\@liststyle\@displaystyle
+ \endgraf
+ \if@firstitem\@firstitemfalse\else\vskip\smallskipamount\fi
+ \advance\itemnumber by \@ne
+ \noindent\leavevmode
+ \the\everyitem
+ \tagform{\the\@itemtag}%
+ \else
+ \def\item{\if@firstitem\@firstitemfalse\else\unskip\@itemseparator\fi
+ \advance\itemnumber by \@ne\the\@itemtag\enspace}%
+ \fi
+ \global\count@\itemnumber
+ \global\dimen@\hangindent
+ \endgroup
+ \itemnumber\count@
+ \hangindent\dimen@
+ }
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** verbatim *****
+%
+
+% Operation here is very similar to that for the other tags.
+% The opening tag sets up the situation and looks for optional
+% commands and the short-form delimiters. Since initial setup
+% involves changing the special characters to characters of
+% type other, some juggling must be done when optional commands
+% are read. In addition, to allow for implementation of the
+% |...| style using the more verbose \verbatim...\endverbatim,
+% we parameterize the ending-delimiter.
+
+ % sets default to display style
+\def\verbatim{\@verbatim[\display]}
+
+\def\@verbatim{%
+ \begingroup
+ \setupverbatim
+ \@checkoptions
+ }
+
+\def\setupverbatim{%
+ \def\CurrentTag{verbatim}%
+ \@defaultoptions
+ \def\inline{\let\@verbstyle\@inlinestyle}%
+ \def\display{\let\@verbstyle\@displaystyle}%
+ \def\displaystyle##1{\def\@altdisplaystyle{##1}}%
+ \def\inlinestyle##1{\def\@altinlinestyle{##1}}%
+ \def\numbered{\@numberedtrue}%
+ \def\ruled{\@ruledtrue}%
+ \def\smallcode{\ninepoint\tt\baselineskip=10pt}%
+ \let\@verbinputvar\relax
+ \let\@verbinputfile\relax
+ \@SpecialsGetOther
+ \enddelim=\expandafter{\endverbdelimiter}%
+ \normalspaces\frenchspacing
+ \obeylines
+ \@savingargumenttrue
+ \the\everyverbatim
+ }
+
+\def\@SpecialsGetOther{%
+ \catcode`\\=\other
+ \catcode`\{=\other \catcode`\}=\other \catcode`\$=\other
+ \catcode`\&=\other \catcode`\#=\other \catcode`\%=\other
+ \catcode`\~=\other \catcode`\_=\other \catcode`\^=\other
+ \the\@AdditionsToSpecialsGetOther}
+
+% The \@Additions... register above should be used whenever another
+% character is declared to be special for some purpose. E.g.,
+% we will use the | for the short-form |...| verbatim notation.
+% Since the | is generally active for this purpose, it's category
+% won't get changed to \other for use in \verbatim...\endverbatim
+% unless we add it via this mechanism.
+
+\newtoks\@AdditionsToSpecialsGetOther
+
+\def\AddToSpecialsGetOther#1{%
+ \@AdditionsToSpecialsGetOther=
+ \expandafter{\the\@AdditionsToSpecialsGetOther#1}}
+
+% Altering the verbatim setup.
+% Users can alter the setup to their purpose by
+% putting tokens in the register \everyverbatim.
+
+\newtoks\everyverbatim
+
+% Ordinarily the end-tag would be the single token `\endverbatim'.
+% The following allows us to `see' the tag when `\' is of type `other'.
+{\catcode`\|=0 \catcode`\\=\other
+|gdef|endverbdelimiter{\endverbatim}}
+
+% Input from an external variable or file
+
+\def\inputfromvar#1{\def\@verbinputvar{#1}}%
+\def\inputfromfile#1{\def\@verbinputfile{#1}}%
+\let\@verbinputvar\relax
+\let\@verbinputfile\relax
+
+% Outputs
+
+\newif\if@outputtotype \@outputtotypetrue
+\def\notype{\@outputtotypefalse}
+\def\outputtovar#1{\def\@verboutputvar{#1}}
+\def\outputtofile#1{\def\@verboutputfile{#1}}
+\let\@verboutputvar\relax
+\let\@verboutputfile\relax
+\newwrite\verboutfile
+
+\def\@beginverbatim{\obeyspaces}%\obeylines}
+
+\def\endverbatim{%
+ \ifx\@verboutputvar\relax\else % output to `variable'
+ \expandafter\xdef\csname\@verboutputvar\endcsname{\the\@argument}%
+ \fi
+ \ifx\@verboutputfile\relax\else % output to file
+ \immediate\openout\verboutfile=\@verboutputfile
+ \makeCtrlMnewlinechar
+ \iffalse{\fi\expandafter\@setupverbwrite\the\@argument}% use \@setupwrite to
+ \immediate\closeout\verboutfile % get rid of initial ^^M
+ \fi
+ \gdef\@next{}% % in case following clause is false
+ \if@outputtotype % output typeset on page
+ \tt
+ \ifx\@verbstyle\@inlinestyle
+ \@beforeverbinline
+ \@altinlinestyle
+ \else
+ \@beforeverbdisplay
+ \@altdisplaystyle
+ \fi
+ \ifx\@verbinputvar\relax\else % input from `variable'
+ \csname\@verbinputvar\endcsname
+ \fi
+ \ifx\@verbinputfile\relax\else % input from file
+ \fileinput{\@verbinputfile}%
+ \@endverbatim
+ \fi
+ \expandafter\@ignoreCtrlMverbendline\the\@argument\@endverbatim
+ \ifx\@verbstyle\@inlinestyle
+ \@afterverbinline
+ \else
+ \@afterverbdisplay\gdef\@next{\@asifbelowdisplay}%
+ \fi
+ \fi
+ \endgroup
+ \@next
+ }
+
+
+\def\@beforeverbinline{%
+ \makeCtrlMverbspace
+ \let\@endverbatim=\empty
+ }
+
+\def\@beforeverbdisplay{%
+ \def\@endverbatim{\verbendline}%
+ \if@ruled \medskip \hrule\kern5pt \nobreak
+ \else \vskip\abovedisplayskip
+ \fi
+ \makespaceverbspace
+ \makeCtrlMverbendline
+ \parskip=\z@skip
+ \if@numbered \parindent=\z@
+ \if@continuingnumbers
+ \else \global\globallinenumber = \z@ \fi
+ \linenumber=\z@ \fi
+ \everypar={\global\advance\globallinenumber by\@ne
+ \advance\linenumber by\@ne
+ \ifnum\linenumber<3 \vadjust{\nobreak}\fi
+ \if@numbered \leavevmode
+ \hbox to\normalparindent{\hss\sevenrm\the\globallinenumber.\ }%
+ \fi}%
+ \frenchspacing\rightskip=-\ttrightskip \hyphenpenalty\@M
+ }
+
+% \ttrightskip is the permissible overhang beyond right margin;
+% in MANMAC, this is 5pc, which is fine for the TeXbook, but too much here.
+
+\newdimen\ttrightskip \ttrightskip=1pc
+
+\def\@afterverbinline{}
+
+\def\@afterverbdisplay{%
+ \if@ruled \kern5pt\hrule\fi
+ \ifnum\linenumber<3 \penalty\z@ \fi
+ \if@removepostwhite\else
+ \if@ruled \vskip2\medskipamount \else \vskip\belowdisplayskip\fi
+ \fi
+ }
+
+\def\@asifbelowdisplay{%
+ \toks@=\expandafter{\the\everypar}%
+ \noindent
+ \everypar=\expandafter{\the\toks@}%
+ \ignorespaces}
+
+
+% Definitions of spaces and ^^M
+% \@ignoreCtrlMverbendline is used to lop off an initial ^^M in
+% verbatim text and to remove an \@endverbatim (the latter in case the
+% verbatim text is actually empty)
+
+\def\@ignoreendverbatim{\@ignoreone{\@endverbatim}{}}
+\def\verbendline{\leavevmode\null\endgraf}
+\def\makeCtrlMactive{\catcode`\^^M=\active}
+{\makeCtrlMactive
+\gdef\makeCtrlMverbendline{\makeCtrlMactive%
+ \def^^M{\@ignoreone{\@endverbatim}{\verbendline}}}%
+\makeCtrlMverbendline%
+\gdef\@ignoreCtrlMverbendline{\@ignoreone{
+}{\@ignoreendverbatim}}%
+\gdef\@setupverbwrite{\@ignoreone{
+}{\immediate\write\verboutfile\bgroup}}%
+\gdef\makeCtrlMverbspace{\makeCtrlMactive\def^^M{\verbatimspace}}%
+\gdef\makeCtrlMnewlinechar{\newlinechar=`\^^M}%
+\gdef\makeCtrlMendgraf{\makeCtrlMactive\def^^M{\strutt\endgraf}}%
+\gdef\makeCtrlMseparator{\makeCtrlMactive%
+ \def^^M{%
+ \@checknexttoken {\endlist}{}{%
+ \@itemseparator\advance\itemnumber by \@ne \tagform{\the\@itemtag}%
+ \ignorespaces}}}%
+}
+
+% to read a variable or file name properly, we must interpret
+% spaces and ^^M as nothing or as spaces
+
+{\makeCtrlMactive\obeyspaces%
+\gdef\makeCtrlMempty{\def^^M{}}%
+\gdef\makespaceempty{\def {}}%
+}
+{\makeCtrlMactive\obeyspaces%
+\gdef\makeCtrlMspace{\def^^M{\space}}%
+\gdef\makespacespace{\def {\space}}%
+}
+
+{\makeCtrlMactive%
+\gdef\@ignoreCtrlM#1{\@ignoreone{^^M}{#1}}%
+\gdef\ignoreendline{\@ignoreCtrlM{}}%
+}
+
+% From David Eppstein's ``Trees'' paper (6#1), preserve initial spaces.
+\def\verbatimspace{\ifvmode\indent\fi\space}
+{\obeyspaces\gdef\makespaceverbspace{\def {\verbatimspace}}}
+
+
+
+% Options and variants.
+
+\def\verbinline{\verbatim[\inline]}
+\def\verbdisplay{\verbatim[\display]}
+\def\verbfile#1{\verbatim[\inputfromfile{#1}]}
+
+
+% Verbatim with the other characters (e.g. |...|).
+% Procedures are parameterized so that it is easy to allow
+% different characters to perform this function. Any character
+% that's chosen could cause problems if it occurs unexpectedly
+% in the middle of what is supposed to be verbatim text. We call
+% the current special character for this purpose the "verbchar"
+% and store it in active form in the token register \@verbchar.
+
+\newtoks\@verbchar
+
+% On hitting a "verbchar" in the middle of text, TeX must look ahead
+% to see whether the verbchar occurs again. Since this
+% look-ahead fixes the category of the token examined, we must change
+% the categories of all characters appropriately before looking
+% (and we read \everyverbatim in case it contains a category change).
+% We must also "gobble" the second verbchar if we hit one.
+% Depending upon whether 1 or 2 verbchars are found, we call
+% \verbatim with the appropriate style command. We also use an
+% optional command to change the delimiter which ends this \verbatim
+% block. We naturally localize the changes to category codes made on
+% startup. It's easier to end this group here at the beginning and to
+% restart everything in a standard \verbatim than it is to add an extra
+% \endgroup after the verbatim text.
+
+\def\@firstverbchar{%
+ \begingroup
+ \setupverbatim
+% \@SpecialsGetOther
+ \makeverbcharactive
+ \expandafter\@checknexttoken\expandafter{\the\@verbchar}%
+ {\expandafter\@ignoreone\expandafter{\the\@verbchar}%
+ {\endgroup\verbatim[\longform\maketwoendverb]}}%
+ {\endgroup\verbatim[\inline\longform\makeoneendverb]}%
+ }
+
+\def\setupverbchar{%
+ \def\makeoneendverb{\catcode\expandafter`\csname\expandafter
+ \string\the\@verbchar\endcsname=
+ \active\edef\endverbdelimiter{\the\@verbchar}%
+ \enddelim=\expandafter{\endverbdelimiter}}%
+ \def\maketwoendverb{\catcode\expandafter`\csname\expandafter
+ \string\the\@verbchar\endcsname=
+ \active\edef\endverbdelimiter{\the\@verbchar\the\@verbchar}%
+ \enddelim=\expandafter{\endverbdelimiter}}%
+ \expandafter\let\the\@verbchar\@firstverbchar
+ \makeverbcharactive
+ \AddToSpecialsGetOther{%
+ \catcode\expandafter`\csname
+ \expandafter\string\the\@verbchar\endcsname=\other}%
+ }
+
+\def\makeverbcharactive{%
+ \catcode\expandafter`\csname
+ \expandafter\string\the\@verbchar\endcsname=\active}
+
+{\makeother\| \gdef\VertChar{|}}
+{\makeactive\|
+\gdef\makevertverbchar{%
+ \@verbchar={|}%
+ \setupverbchar
+ }
+}
+
+{\makeother\! \gdef\WowChar{!}}
+{\makeactive\!
+\gdef\makewowverbchar{%
+ \@verbchar={!}%
+ \setupverbchar
+ }
+}
+
+
+\def\MTH{$}
+\def\sb{_}
+\def\sp{^}
+\def\SP{{\tt\char"20 }} % "visible" space
+\chardef\bs=`\\
+\def\vrt{{\tt\char`\|}}
+\def\brokenvert{\hbox to 5.24998pt{\hfill
+ \lower 1.5pt\vbox to 8.5pt{\hrule width .9pt height 3.25pt
+ \vfill\hrule width .9pt height 3.25pt}\hfill}}
+
+
+
+\def\@lt{$<$}
+\def\@gt{$>$}
+{\makeactive\<
+\gdef\enablemetacode{%
+ \AddToSpecialsGetOther{\catcode`\<=\other}%
+ \makeactive\<%
+ \def<##1>{$\langle${\it\makeCtrlMspace\makespacespace##1\/}$\rangle$}%
+ }
+}
+
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** figures *****
+%
+
+
+\newif\if@@mid \@@midfalse
+\newif\if@@bot \@@botfalse
+\def\@caption{}
+\newif\if@fixed \@fixedfalse
+
+ % items for top and bottom ``banners'' on first page
+\def\resetfirsthead{\global\toplgt=\z@ \gdef\firsthead{}}
+\resetfirsthead
+\newbox\firsth@@d \newbox\firsth@ad
+
+\def\resetfirstfoot{\global\botlgt=\z@ \gdef\firstfoot{}}
+\resetfirstfoot
+\newbox\firstf@@t \newbox\firstf@ot
+
+\newif\if@allowspanningfigs
+
+\newcount\@figurepage
+\newcount\@figurescol
+\newcount\@figureecol
+
+
+\def\figure{%
+ \begingroup
+ \def\CurrentTag{figure}%
+ \@defaultoptions
+ \@savingargumentfalse
+ \def\top{}%
+ \def\bot{\@@bottrue}%
+ \def\mid{\@@midtrue}%
+ \def\caption##1{\def\@caption{\ulap{\bigskip##1\smallskip}}}%
+ \def\fixed{\@fixedtrue}%
+ \def\scol{\@figurescol}%
+ \def\ecol{\@figureecol}%
+ \@figurepage=\pageno
+ \@figurescol=1
+ \@figureecol=\numcols
+ \def\page{%
+ \@ignoreall{\space}%
+ {\@ignoreone{=}%
+ {\@ignoreall{\space}%
+ {\@checknexttoken{+}{\@ignoreone{+}{\advance\@figurepage by}}%
+ {\@figurepage=}%
+ }%
+ }%
+ }%
+ }%
+ \@checkoptions}
+
+\def\@beginfigure{%
+ \if@fixed
+ \global\ThisIsFirstPagetrue
+ \setbox\T@stBox=\vbox\bgroup \hsize\pagewd
+ \else
+ \if@@mid\midinsert\else\if@@bot\botinsert\else\topinsert\fi\fi
+ \fi
+ }
+
+\def\endfigure{%
+ \@caption
+ \if@fixed
+ \egroup
+ \if@allowspanningfigs
+ \ifnum\@figurepage>\pageno
+ \immediate\write\sixt@@n{^^J
+ Setting multiple column figures currently not allowed on pages^^J
+ other than the first of each article. Check your source file.^^J}%
+ \else
+ \if@@bot
+ \ifdim \botlgt=\z@ \global\botlgt=\ht\T@stBox \resetpagelgt \fi
+ \global\setbox\firstf@ot=\vbox to \botlgt{\box\T@stBox \vfil}%
+ \global\setbox\firstf@@t=\vbox to \botlgt{\vfil}%
+ \gdef\firstfoot{\ifnum \xcol=2 \copy\firstf@ot
+ \else \copy\firstf@@t \fi }%
+ \else
+ \ifdim \toplgt=\z@ \global\toplgt=\ht\T@stBox \resetpagelgt \fi
+% assume that \firsth@ad ends with glue, hence no \dp
+ \global\setbox\firsth@ad=\vbox to \toplgt{\box\T@stBox \vfil}%
+ \global\setbox\firsth@@d=\vbox to \toplgt{\vfil}%
+ \gdef\firsthead{\ifnum \xcol=2 \box\firsth@ad
+ \else \copy\firsth@@d \fi }%
+ \fi
+ \fi
+ \else
+ \immediate\write\sixt@@n{^^J
+ Setting multiple column figures currently not allowed after^^J
+ article has begun.^^J}%
+ \fi
+ \else \endinsert
+ \fi
+ \endgroup
+ }
+
+\def\twocolfigure{%
+ \figure[\fixed]}
+
+
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** utilities *****
+%
+
+
+
+\def\linebreak{\unskip\break} % conflicts with LaTeX definition
+
+% Define a structure that will permit a list (using \obeylines)
+% to be made into 2 columns, split by \vsplit, indented the
+% normal \parindent
+
+\def\NormalizeBlockHeight{%
+ \TestCount=1 % \@ne
+ \TestDimen=\dimen0 \advance\TestDimen by-\topskip
+ \CutOneLine }
+\def\CutOneLine{%
+ \advance\TestCount by 1 \advance\TestDimen by-\baselineskip
+ \ifdim\TestDimen < \baselineskip % \@ne
+ \def\result{%
+ \TestDimen=\baselineskip
+ \multiply\TestDimen by \TestCount
+ \advance\TestDimen by \topskip
+ \global\dimen0=\TestDimen }%
+ \else \def\result{\CutOneLine }\fi
+ \result }
+
+\def\twosplit{%
+ {\topskip=\baselineskip \splittopskip=\topskip
+ \setbox0=\copy\TestBox
+ \dimen0=\ht\TestBox
+ \NormalizeBlockHeight
+ \divide\dimen0 by 2
+ \setbox\LeftHalf=\vsplit\TestBox to \dimen0
+ \ifdim\ht\TestBox > \ht\LeftHalf
+ \advance\dimen0 by \baselineskip
+ \setbox\TestBox=\copy0
+ \setbox\LeftHalf=\vsplit\TestBox to \dimen0
+ \fi
+ \line{\kern\parindent\valign{##\vfil\cr
+ \unvbox\LeftHalf\cr\noalign{\hfil}\unvbox\TestBox\cr}}%
+ }%
+ \global\setbox0=\null}
+
+\newbox\LeftHalf
+\newdimen\HalfWd
+\HalfWd=\twocolcolwd
+\advance\HalfWd by-\normalparindent
+\divide\HalfWd by 2
+
+{\obeylines
+\gdef\twouplist #1{%
+ \topskip=\baselineskip \splittopskip=\topskip
+ \begingroup \parindent=\z@ \obeylines
+% next line ends with intentional <cr>
+ \def\endtwouplist{
+ \egroup % % end of \vbox
+ \endgroup % % end of \obeylines group
+ \twosplit }%
+ \global\setbox\TestBox=\vbox\bgroup\hsize=\HalfWd %
+ \indent\vrule height\topskip width \z@ #1}%
+}
+
+% Tags for special formatting of editor's notes (See also TUGBOAT.COM)
+
+\def\Editor{\noindent To the Editor:\par}
+\def\EdNote #1{%
+ \if #1[%
+ \ifvmode \smallskip\noindent \else \unskip\hskip1em \fi
+ [\thinspace\xEdNote\ignorespaces
+ \else \ifFirstPar \else \medskip\noindent \fi
+ \xEdNote #1\fi }
+
+
+
+% Draw a box around a whole page, e.g. announcements page;
+% format must be \onenarrow or \onemedium, and start on a new page.
+
+\def\bigbox{\hrule \hbox\bgroup \vrule\kern 1pc
+ \vbox\bgroup \vskip 1pc }
+\def\endbox{\endgraf \vskip 1pc \egroup \kern 1pc\vrule \egroup \hrule }
+
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** initialization *****
+%
+
+
+\def\initializearticle{%
+ \let\thetitle=\relax
+ \authornumber=0
+ \def\@signature{\@defaultsignature}%
+ \def\@authorlist{\@defaultauthorlist}%
+ \@allowspanningfigstrue
+ }
+
+
+\makeother\@
+
+% @ is prohibited in AMS-TeX, but should not be in TUGboat
+
+
+\twocol
+\maxcols=2
+\OverlaysinTeXtrue
+\Trimmarksfalse
+\PrelimDrafttrue
+\initializearticle
+\pageno=1001 % number of title page
+
+\StretchyTenPointSpacing
+\StretchyNinePointSpacing
+\StretchyEightPointSpacing
+
+\makevertverbchar
+
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% History of changes
+
+Version Date Changes
+------- --------- ---------------------------------------------------
+1.14c 14 Oct 96 lowered footnoterule by 3pt
+
+1.14b 14 Apr 94 added \interlinepenalty=10000 to avoid page breaks
+ in very long titles and author lists
+
+1.14a 8 Nov 93 removed extraneous " from header
+
+1.14 19 Feb 93 installed new TUG address and phone number in header
+
+1.13 13 Oct 92 Added \SMC in \ninepoint
+
+1.12 4 Jun 92 Added stretchability to \rightskip in ragged title
+
+1.11 8 Mar 92 Changed name of tugboat.com to tugboat.cmn to avoid
+ conflict with special meaning of .com with some
+ operating systems
+ Within verbatim, added \smallcode (from tugproc)
+ Added standard headers, prepared for archive installation
+
+1.10 21 Oct 91 Corrected font for \SMC in \tenpoint to \ninerm
+ (\ninesmc was used, but set to cmcsc10)
+ Changed \EdNote to detect \ifvmode when tag followed
+ by [ and to \smallskip and \noindent in that case
+ rather than performing \hskip1em
+
+1.09 11 Mar 91 Made \ an escape character in network addresses.
+ Added mechanism for saving \long arguments of
+ TUGboat macros (see uses of \@long).
+
+1.08 18 Oct 90 Incorporated redefinition of \sl within \bf
+ Changed an \input within \verbatim to \fileinput.
+ Added means of turning off punctuation after subheads.
+ Removed \nobreak after lists
+1.07 8 Jun 90 Corrected definition of \newpage
+
+1.06 13 May 90 Added \@setupverbwrite to eliminate initial ^^M
+ as \verbatim writes to a file.
+
+ Made strut on first line of footnote slightly taller
+ so as to separate footnotes.
+
+ Reset \@verbinputfile and \@verbinputvar to \relax
+ to allow nesting
+
+ Removed some \global assignments to \@argument and
+ 2 verbatim flags to allow nesting.
+
+1.05 23 Apr 90 Added "\setupverbatim" to \@firstverbchar so
+ that category switches are accomodated properly.
+
+1.04 7 Mar 90 Added \colsepwidth to allow for separation between
+ columns of lists
+
+1.03 1 Mar 90 Modified \@dosubhead and \@dosubsubhead to allow
+ stretchable space afterward
+
+1.02 25 Feb 90 Added \resetmaxcols to allow for automatic adjustment
+ of \maxcols; if overlays are done by the driver,
+ \maxcols needs to be set to an overall job maximum
+ at the start of the job.
+
+ Added setting of \SecTitletrue to definition
+ of \sectitle.
+
+ Added indicator of style file loaded (\tubstyle).
+
+1.01 17 Jan 90 Modified \@executetoend so that \@next would not
+ be clobbered by \csname @begin\CurrentTag\endcsname;
+ \@next changed to \@afterbegintag
+
+ Added `\the' before \@otherSFD within definition of
+ \@shortparse
+
+ added \@altdisplaystyle to definition of \colsep
diff --git a/Master/texmf-dist/tex/plain/tugboat/tugproc.sty b/Master/texmf-dist/tex/plain/tugboat/tugproc.sty
new file mode 100644
index 00000000000..56361b54664
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/tugboat/tugproc.sty
@@ -0,0 +1,366 @@
+%% @texfile{
+%% filename="tugproc.sty",
+%% version="1.11",
+%% date="26-Jan-1994",
+%% filetype="TeX macros for TUG Proceedings",
+%% copyright="Copyright (C) TeX Users Group.
+%% Copying of this file is authorized only if either:
+%% (1) you make absolutely no changes to your copy, OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="TeX Users Group",
+%% address="TeX Users Group",
+%% P. O. Box 869,
+%% Santa Barbara, CA 93102-0869,
+%% USA",
+%% telephone="805-963-8358",
+%% email="Internet: tug@tug.org or TUGboat@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksumtype="line count",
+%% checksum="366",
+%% keywords="tex users group, tugboat, proceedings, plain tex",
+%% abstract="This file contains the plain-based macros
+%% for Proceedings issues of TUGboat, the
+%% Communications of the TeX Users Group."
+%% }
+%% *********************************************************
+%%
+%% Use of this file also requires the following files:
+%% TUGBOAT.STY (version 1.09+)
+%% TUGBOAT.CMN (version 1.08+) (loaded by TUGBOAT.STY)
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fileversion{v1.11}
+\def\filedate{26 Jan 94}
+
+\message{File `TUGPROC.STY' \fileversion \space\space <\filedate>}
+
+% initialize year/issue-specific elements for standalone use
+\def\mtgyear{1994}
+\def\volyr{1994}
+\def\volno{15}
+\def\issno{3}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input tugboat.sty
+
+\savecat\@ \makeletter\@
+\ifx\tugprocloaded@\undefined \let\tugprocloaded@\end
+\else \restorecat\@ \xdef\startingpage{\number\pageno}\endinput \fi
+
+\newdimen\tubpagelgt
+\tubpagelgt=\pagelgt \advance\tubpagelgt 1pc % for running feet
+
+% fonts
+
+\font\twelverm=cmr10 scaled 1200
+\font\twelvebf=cmbx10 scaled 1200
+\font\fourteenrm=cmr10 scaled 1440
+\font\fourteenit=cmti10 scaled 1440
+\font\fourteensl=cmsl10 scaled 1440
+
+\def\twelvepoint{%
+ \normalbaselineskip=14pt
+ \def\rm{\fam\z@\twelverm}%
+ \textfont\z@=\twelverm
+ \def\bf{\fam\bffam\twelvebf}%
+ \textfont\bffam=\twelvebf
+ \normalbaselines \rm}
+
+\def\fourteenpoint{%
+ \normalbaselineskip=18pt
+ \def\rm{\fam\z@\fourteenrm}%
+ \textfont\z@=\fourteenrm
+ \def\it{\fam\itfam\fourteenit}%
+ \textfont\itfam=\fourteenit
+ \def\sl{\fam\slfam\fourteensl}%
+ \textfont\slfam=\fourteensl
+ \normalbaselines \rm}
+
+\def\AUTHORfont{\twelvepoint\rm}
+\def\HEADfont{\twelvepoint\bf}
+\def\TITLEfont{\fourteenpoint\rm}
+\def\addressfont{\ninepoint\rm}
+\def\netaddrfont{\ninepoint\tt}
+
+\def\br{\unskip\hfil\break} % version for titles
+\def\degrade{\def\br{\unskip\space\ignorespaces}%
+ \let\\\br} % in running heads.
+
+% running heads & feet
+%\newcount\startingpage % Number of first page of article
+\newif\ifpreprint \preprinttrue
+\def\preprint{\preprinttrue
+ \ifExtrAbs\breaklines\fi} % (*)
+\newif\ifproof \prooffalse \let\filename\relax
+\def\Proof{\prooftrue\immediate\write16{File name?}
+ \immediate\read16 to\filename}
+\def\stamp{\ifproof{\tt \filename}\quad\Now\else\space\fi}
+\let\midrtitle=\null
+\def\rtitlex{%
+ \ifodd\pageno\degrade\rhtitle\else\rhauthor\fi}
+\def\rtitle{%
+ \hbox to \pagewd{%
+ \tenpoint
+ \makestrut[10pt;\z@]%
+ \ifnum\the\pageno=\startingpage\hfill\stamp\else
+ \ifodd\pageno
+ \stamp\hfill\rtitlex
+ \else
+ \rtitlex\hfill\stamp
+ \fi\fi
+ }%
+ }
+
+\ifx\startingpage\undefined \def\startingpage{1001}\fi
+\pageno=\startingpage
+\def\rfoot{%
+ \hbox to \pagewd{%
+ \tenpoint
+ \makestrut[\z@;0.5pc]%
+ \ifpreprint
+ \ifodd\pageno
+ \pfoottext\hfil\Now\hfil$^.$\number\pageno
+ \else
+ \number\pageno$^.$\hfil\Now\hfil\pfoottext
+ \fi
+ \else
+ \ifodd\pageno
+ \rfoottext\hfil\number\pageno
+ \else
+ \number\pageno\hfil\rfoottext
+ \fi
+ \fi
+ }%
+ }
+
+\v@lx % normalize publication info for footer
+\def\pfoottext{{\smc Preprint}: \mtgyear{} \TUG{} Annual Meeting}
+\def\rfoottext{\tenrm\TUB, \volx\Dash
+ {Proceedings of the \volyr{} Annual Meeting}}
+
+% midpage redone to align running feet.
+\def\midpage#1{%
+ \vbox{
+ \basezero
+ \hrule height\z@ depth\z@ width\p@
+ \ifTrimmarks
+ \vskip-1in % default offset for laser printers
+ % this puts top trim at edge of paper
+ \vbox to \trimlgt \bgroup
+ \topregister
+ \vskip \headmargin
+ \else
+ \vskip-\rheadlgt % this puts runhead above default offset
+ \fi
+ \dlap{\vbox to\tubpagelgt{\vfil
+ \ifnum\xcol=\numcols \runfoot \else \vbox to \rfootlgt{}\fi}}
+ \vbox to \pagelgt{
+ \ifnum\xcol=\numcols \runhead \else \vbox to \rheadlgt{}\fi
+ \ifThisIsFirstPage \firsthead \fi
+ \hbox to \pagewd{#1} % \vsize applied in \pagebody
+ \ifThisIsFirstPage \firstfoot \fi
+ \vfil % if no depth, avoid underfull box
+% \ifnum\xcol=\numcols \runfoot \else \vbox to \rfootlgt{}\fi
+ }
+ \ifTrimmarks \vfill \botregister \egroup \fi
+ }}
+
+% ***************************************************
+% Bibliography
+\def\Hang{1em}
+\def\entry #1{\noindent\frenchspacing\hangindent\Hang #1}
+
+% Appendix
+\def\appendix #1\endappendix{\newpage\onecol\centerline{\HEADfont #1}}
+
+% Box for deadlines:
+\newbox\textbox % \twocolcolwd=18.75pc [cf. tugboat.sty]
+\long\def\boxit #1{\vbox{\hrule\hbox{\vrule\kern3pt
+ \vbox{\kern3pt\vskip 4pt#1\vskip 4pt\kern3pt}\kern3pt\vrule}\hrule}}
+\long\def\boxedlist #1{$$\boxit{\setbox\textbox=\vbox{\hsize 18pc
+ \strut{#1}\strut}\box\textbox}$$} % TeXbook, 94 & 223 (exer 21.3)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% top matter
+\def\endtitle{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \edef\thetitle{\ignorespaces\the\toks@\unskip}%
+ \let\rhtitle\thetitle
+ }
+ % If your title is too long for the running head,
+ % use this to construct a shorter version:
+\def\shorttitle{%
+ \begingroup
+ \def\CurrentTag{shorttitle}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \@checkoptions}
+
+\def\endshorttitle{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \edef\rhtitle{\ignorespaces\the\toks@\unskip}%
+ }
+
+\def\rhauthor{\@defaultauthorlist}
+ % Use the following for running heads if more than
+ % one author or author's name is too long to fit:
+\def\shortauthor{%
+ \begingroup
+ \def\CurrentTag{shortauthor}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \@checkoptions}
+
+\def\endshortauthor{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \edef\rhauthor{\ignorespaces\the\toks@\unskip}%
+ }
+
+%\long\def\Abstract #1\endAbstract{\long\def\@abstract{#1}}
+\def\abstract{\@abstract[\longargument]}
+\def\@abstract{%
+ \begingroup
+ \def\CurrentTag{abstract}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \@checkoptions}
+
+\def\endabstract{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \edef\theabstract{\ignorespaces\the\toks@\unskip}%
+ }
+
+\newif\ifExtrAbs \ExtrAbsfalse % Extract abstract from paper
+\def\breaklines{\begingroup\catcode`\^^M=\active\newlinechar=`\^^M}
+\def\endbreaklines{\endgroup}
+
+\def\prefnote{\@prefnote[\longargument]}
+\def\@prefnote{%
+ \begingroup
+ \def\CurrentTag{prefnote}%
+ \@defaultoptions
+ \@savingargumenttrue
+ \@checkoptions}
+
+\def\endprefnote{%
+ \global\toks@=\expandafter{\the\@argument}%
+ \endgroup
+ \edef\theprefnote{\ignorespaces\the\toks@\unskip}%
+ }
+
+\let\theprefnote\relax
+
+\def\@defaultsignature{%
+ \count@=0
+ \loop
+ \ifnum\count@<\authornumber
+ \vskip20pt
+ \advance\count@ by \@ne
+ \noindent{\AUTHORfont\theauthor{\number\count@}}\endgraf
+ \noindent{\addressfont\theaddress{\number\count@}}\endgraf
+ \noindent{\netaddrfont\thenetaddress{\number\count@}}\endgraf
+ \repeat
+ }
+
+\newbox\startbox % \newdimen\startheight
+\def\article{% \ifExtrAbs\endbreaklines\fi % (*)
+ \setbox\startbox=\hbox to\colwd
+ {\hbox to\pagewd{\vbox{
+ \hsize\pagewd\raggedright\advance\rightskip0pt plus 1fil\tenpoint\rm
+ \let\\\break
+ \noindent{\TITLEfont\thetitle\endgraf}%
+ \@defaultsignature
+ \ifx\theprefnote\relax\else
+ \vskip 20pt
+ \hbox to \pagewd{\hfil\vbox{\hsize 0.6\pagewd
+ \rightskip\z@skip \parfillskip0pt plus 1fil \spaceskip\z@skip
+ \noindent{\bf Author's Note: }\ignorespaces\theprefnote\par}\hfil}
+ \fi
+ \vskip 20pt
+ \hbox to \pagewd{\hfil\vbox{\hsize 0.75\pagewd
+ \rightskip\z@skip \parfillskip0pt plus 1fil \spaceskip\z@skip
+ \centerline{\bf Abstract}\vskip 5pt
+ \noindent\theabstract\par}\hfil}
+ \vskip 1pc}}\hss}
+ \twocolfigure\box\startbox\endfigure
+ \ifExtrAbs % (*)
+ \immediate\write\titleabs{\string\TITLE\string\bf\space
+ \rhauthor:\ \string\rm \rhtitle;;}
+ \immediate\write\titleabs{\space}
+ \immediate\write\titleabs{\string\ABS\string\bf\space
+ Abstract.\ \theabstract;;}
+ \immediate\write\titleabs{\space}
+ \immediate\write\titleabs{\string\endinput}
+ \immediate\closeout\titleabs \endbreaklines
+ \fi % (*)
+}
+
+% \head (This writes over a definition in tugboat.sty)
+\def\@domainhead{%
+ \if@removeprewhite\else\vskip\baselineskip\fi
+ \noindent{\HEADfont\baselineskip15pt % larger type than usual
+ \raggedright\bf\ignorespaces\the\@argument\unskip\endgraf}%
+ \if@removepostwhite % usually we want the white space
+ \else\kern0.5\baselineskip\fi
+ \nobreak
+ \gdef\@next{%
+ \if@allowindent\def\@next{}% usually we don't want to indent here
+ \else\def\@next{\DeleteOptionalSpacesandPars{\noindent\ignorespaces}}\fi
+ \@next
+ }%
+ }
+
+\restorecat\@
+
+% \Trimmarkstrue % for final copy
+% \overfullrule=0pt
+
+\endinput
+
+%% *********************************************************
+
+Change History
+--------------
+1.11 changed TUG address in header to Santa Barbara
+ parameterized dates, etc., in running footers
+ initialized them at top of file instead of in footer text
+
+1.10 changed \tenrm to \tenpoint in definitions of \rtitle and \rfoot
+ so that \sl will be properly defined if used in that context
+
+1.09 removed \smallcode definition; it is now in tugboat.sty
+ increased width of abstract from 60-75% of text width
+ added standard headers, prepared for archive installation
+
+1.08 changed \start to \startingpage
+ added definition of \startingpage at top of file so running heads
+ will be empty on first page of article
+
+1.07 removed \Pageno
+ added check for previous input
+ altered \\ in running heads
+
+Previous:
+
+%%% TUGPROC.sty 11-mar-90 (*) 15-mar-90 30-mar-90 10-apr-90
+%%% 26-jun-90 [changed running feet, page numbers, \start]
+%%% 28-jun-90 [added \stamp, \ifproof] 29-jun-90 [\Proof]
+%%% TUGPROC.sty 03-feb-90 (renamed 13-feb-90) 20-feb-90
+%%%
+%%% Supplementary header file for TUG Proceedings volume
+%%% for use with plain.tex (under revision still)
+%%%
+%%% (*) This version writes the title and abstract into
+%%% a file, for use in preparing the Title-Abstract-Bio
+%%% section in the program. Author-Title and Abstract are
+%%% written into a file as one-liners; if these lines are
+%%% too long, they should be reformatted manually before
+%%% the file is \input.
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp01.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp01.tex
new file mode 100644
index 00000000000..07b232cc6a6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp01.tex
@@ -0,0 +1,344 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+% Much of the math in this example is simple modular arithmetic,
+% and gets around the fact that \TeX can only do integer math.
+%
+% This sort of typesetting project is probably better suited to
+% TrueType or PostScript typefaces.
+
+\newtoks\dspfont
+%%% Fill in the \TeX name of the font here:
+\dspfont={ACaslonI}
+
+%%% Fill in the name of the typeface as you want it at the top of the page
+\def\fontname{Adobe Caslon Italic}
+
+%%% The following is for notes in the comments at the bottom
+%%% of the page following the type stats.
+%%% Just leave it empty if you have nothing to say...
+\def\comment{Carol Twombly}
+
+%\hsize7.5in \hoffset-.5in
+\parindent0pt
+\nopagenumbers
+\voffset-.5in
+\advance\vsize by 1in
+
+\font\text=\the\dspfont\space at 10pt
+\font\tiny=\the\dspfont\space at 8pt
+\font\name=\the\dspfont\space at 24pt
+
+\newtoks\ntext
+\newtoks\pantext
+\newtoks\loremtext
+%
+\newbox\testbox
+%
+\newdimen\bigger
+\newdimen\dspsize
+\newdimen\dspsizeincr
+\newdimen\habcwd
+\newdimen\ctextsz
+\newdimen\leading
+\newdimen\xheight
+\newdimen\ascheight
+\newdimen\kernone
+\newdimen\kerntwo
+\newdimen\adjust \adjust0pt
+\newdimen\dist
+\newdimen\scratchdim
+%
+\newcount\dsplineno
+\newcount\picawd
+\newcount\pointwd
+\newcount\spconv
+\newcount\measure
+\newcount\divisor
+\newcount\scratch
+\newcount\sscratch
+\newcount\xascrnum
+\newcount\intgp
+\newcount\fracp
+\newcount\scppt \scppt=65536
+
+\ntext={Typography may be defined as both
+an art and a craft. It is an art in that what it does, it does for its
+own sake, according to its own internal sense of what is beautiful and
+right. It is a craft in that what it does, it does for a purpose
+outside itself: it provides a means of storing, shaping and conveying
+information. Typography is, therefore, a selfless art -- a
+contradiction in terms, perhaps -- and is at its best when it is least
+perceived to be doing anything, indeed when there is no active
+awareness of perceiving it, directly, at all, but rather perceiving,
+through it, the knowledge which animates the type on the page. Quality
+in typography results from an effortless perfection of conception and
+execution in the creation of a balance between beauty \& utility:
+compromising neither, calling attention to neither, yet achieving
+both.\thinspace\nobreak\leaders\hrule\hfill\null\par}
+
+%%% The following pangrams were collected by David Lemon of Adobe Systems, Inc.
+%%% This is just a small sample from the entire collection.
+\pantext={Brick quiz whangs jumpy veldt fox.
+Nymphs vex, beg quick fjord waltz.
+Quick wafting zephyrs vex bold Jim.
+West quickly gave Bert handsome prizes for six juicy plums.
+Freight to me sixty dozen quart jars and twelve black pans.
+My help squeezed back in again and joined the weavers after six.
+Turgid saxophones blew over Mick's jazzy quiff.
+Five wine experts jokingly quizzed sample chablis.
+My grandfather picks up quartz and valuable onyx jewels.
+Mix Zapf with Veljovic and get quirky Beziers.
+All questions asked by five watch experts amazed the judge.
+Back in June we delivered oxygen equipment of the same size.
+We have just quoted on nine dozen boxes of grey lamp wicks.
+A large fawn jumped quickly over white zinc boxes.
+The exodus of jazzy pigeons is craved by squeamish walkers.\thinspace\nobreak\leaders\hrule\hfill\hbox{}\par}
+
+\loremtext={Lorem ipsum
+dolor sit amet, consectetuer adipiscing elit, sed diam
+nonummy nibh eusi\-mod tincidunt ut laor\-eet dolore magna
+ali\-quam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit la\-bortis nisl
+ut ali\-quip exea commodo consequat.
+Quousque tandem abutere, Catilina, patientia nostra? Quamdiu nos etiam furor iste tuus eludet?
+quem ad finem sese effrenata jactibit audicia? nihilne te nocturnum pr\ae sidium palatii, nihil
+urbis vigil\ae .
+Lorem ipsum
+dolor sit amet, consectetuer adipiscing elit, sed diam
+nonummy nibh eusi\-mod tincidunt ut laor\-eet dolore magna
+ali\-quam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit la\-bortis nisl
+ut ali\-quip exea commodo consequat.
+Quousque tandem abutere, Catilina, patientia nostra? Quamdiu nos etiam furor iste tuus eludet?
+quem ad finem sese effrenata jactibit audicia?
+\thinspace\nobreak\leaders\hrule\hfill\null\par}
+
+\def\abc{abcdefghijklmnopqrstuvwxyz}
+\def\habc{\abc\abc abcdefghijklm}
+\def\dabc{AGQMstaefgpy1234?!\&}
+\def\ucabc{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\def\freqabc{\text zjqx%
+ kkvv%
+ bbbbppppyyyywwwwgggg%
+ mmmmmmffffffccccccuuuuuu%
+ lllllllldddddddd%
+ hhhhhhhhhhhhrrrrrrrrrrrrssssssssssss%
+ ooooooooooooooiiiiiiiiiiiiiinnnnnnnnnnnnnn%
+ aaaaaaaaaaaaaaaatttttttttttttttttt%
+ eeeeeeeeeeeeeeeeeeeeeeee}% 204 chars
+
+\def\ast{*} \def\per{.}
+
+%%% Convert from TeX's bulky 4-decimal point measurements to 1
+\def\prettypt#1{\dist=#1
+\multiply\dist10
+\scratch=\number\dist
+\divide\scratch\scppt
+\intgp=\scratch \divide\intgp10
+\sscratch=\intgp
+\multiply\sscratch10 \advance\scratch-\sscratch
+\fracp=\scratch
+\hbox{\the\intgp.\the\fracp}pt\ }
+
+%%% Converts points to inches.
+\def\cvptin#1{\dist=#1
+\multiply\dist by 10
+\scratch=\number\dist
+\divide\scratch\scppt
+\multiply\scratch100
+\fracp=\scratch
+\divide\scratch72270
+\intgp=\scratch
+\multiply\scratch72270
+\advance\fracp-\scratch
+\multiply\fracp10
+\divide\fracp7227
+\hbox{\the\intgp.\ifnum\fracp<10 0\the\fracp \else\the\fracp\fi in}}
+
+%%% Type factor = ([Type size] * [# of characters in a sample])/(linear length of sample)
+%%% Based on {\it Brown's Index}, Bruce Brown, Greenwood Publishing, Great Britain 1983
+\def\typefact{%
+\dist=10pt
+\spconv=\number\dist
+\multiply\spconv by 12
+\multiply\spconv by 204
+\setbox1=\hbox{\text\freqabc}%
+\divisor=\number\wd1
+\divide\divisor by 100
+\divide\spconv by \divisor
+\scratch=\spconv
+ \divide\scratch100
+ \divisor=\scratch
+ \multiply \scratch100
+ \advance\spconv-\scratch
+ \hbox{\number\divisor.\ifnum\spconv<10 0\the\spconv \else \the\spconv\fi}}
+
+\setbox0=\hbox{\tiny 0}
+\kernone=.5\wd0 \kerntwo=\wd0
+\def\k{\kern-\kernone}
+\def\kk{\kern-\kerntwo}
+
+\def\endline{\hbox to 0pt{\vrule width1pt height\baselineskip%
+ depth.25\baselineskip\hss}}
+
+\def\iline{\hbox to 0pt{\vrule width.25pt height\baselineskip\hss}}
+\def\hline{\hbox to 0pt{\vrule width.25pt height.75\baselineskip\hss}}
+\def\qline{\hbox to 0pt{\vrule width.25pt height.55\baselineskip\hss}}
+\def\eline{\hbox to 0pt{\vrule width.25pt height.35\baselineskip\hss}}
+\def\sline{\hbox to 0pt{\vrule width.25pt height.15\baselineskip\hss}}
+
+\def\itick{\hbox to 1in{\iline\hfill}}
+\def\htick{\hbox to .5in{\hline\hfill}}
+\def\qtick{\hbox to .25in{\qline\hfill}}
+\def\etick{\hbox to .125in{\eline\hfill}}
+\def\stick{\hbox to .0625in{\sline\hfill}}
+
+\def\dhtick{\hbox to .5in{\hline\hfill}}
+\def\dttick{\hbox to .1in{\qline\hfill}}
+\def\dftick{\hbox to .05in{\eline\hfill}}
+
+\def\pctick{\hbox to 1pc{\iline\hss}}
+\def\hpctick{\hbox to .5pc{\qline\hss}}
+
+\def\druler#1 {\hbox to #1{\endline\hfill\endline}
+\kern-\baselineskip \bigger=#1 \advance\bigger by .5in
+\hbox to #1{\hrulefill}\kern-\baselineskip
+\hbox to \bigger{\leaders\itick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dhtick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dttick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dftick\hfill}}
+
+\def\pcruler#1 {\hbox to #1{\endline\hfill\endline}
+\kern-\baselineskip
+\hbox to #1{\hrulefill}\kern-\baselineskip
+\hbox to #1{\leaders\pctick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\hpctick\hfill}}
+
+%%% Calculates the largest display typesize to fit \hsize
+%%% First typeset it very small (.5pt) then calculate a
+%%% scale factor to get it to fit to \hsize
+\font\dsp=\the\dspfont\space at .1pt
+\setbox0=\hbox{\dsp \dabc}%
+\dspsize=\hsize
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\dspsize=\scratch pt \divide\dspsize by 100
+
+%%% Calculates the increment such that smallest display size is 12pt
+\dspsizeincr=\dspsize \advance\dspsizeincr by -12pt
+\divide\dspsizeincr by 5 \dsplineno6
+
+\kern-1\baselineskip
+
+{\name \fontname\par}
+\hbox to \hsize{\hrulefill}\kern-.5\baselineskip
+
+%%% Display Type
+\bgroup
+\loop\font\dsp=\the\dspfont\space at \dspsize \dsp \baselineskip1em
+ \hbox to\hsize{\dabc\hfill\hss\rlap{\tiny\enskip\prettypt{\the\dspsize}}}%
+ \vskip.075in\relax
+ \ifnum\dsplineno>1 \global\advance\dsplineno by-1\relax
+ \advance\dspsize by -\dspsizeincr \font\dsp=\the\dspfont\space at \dspsize\repeat
+\egroup
+
+\setbox0=\hbox{\text x}
+\xheight=\ht0
+
+%%% Leading calculations
+\setbox0=\hbox{\text Ilpgy}
+\ascheight=\ht0
+\leading=\ht0
+\adjust=\xheight \advance\adjust-.5\leading
+\advance\leading\dp0
+\leading=1.175\leading
+\ifdim\dp0<.05\ht0 \advance\adjust.5\xheight\fi
+\advance\leading by \adjust
+\baselineskip\leading
+
+%%% Calculates ratio of x-height to ascender height
+\dimen0=\the\fontdimen5\text
+\xascrnum=\dimen0%
+\divisor=\number\ascheight
+\multiply\xascrnum by 100\relax
+\divide\xascrnum by\ascheight
+
+%%% Calculates width of 2.5 lc alphabets in picas and points
+\setbox0=\hbox{\text\habc} \habcwd=\wd0
+\def\showhabcwd{%
+\scratchdim=\habcwd \scratchdim=\scratchdim
+\scratch=\number\scratchdim
+\divide\scratch\scppt \sscratch=\scratch
+\divide\scratch12
+\picawd=\scratch
+\multiply\scratch by 12
+\advance\sscratch-\scratch
+\pointwd=\sscratch
+\hbox{\the\picawd pc\the\pointwd}}
+
+%%% Calculates the largest typesize to fit 70 characters to 4.5in.
+%%% First typeset it very small (.5pt) then calculate a
+%%% scale factor to get it to fit to 4.5in.
+\font\calcfont=\the\dspfont\space at .5pt
+\setbox0=\hbox{\calcfont \habc}%
+\dspsize=4.5in
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\ctextsz=\scratch pt \divide\ctextsz by 20
+
+\vskip.2in
+
+\text
+
+\vbox{\baselineskip1.2\baselineskip%
+\druler{6.51in}
+%
+{\hsize6in \settabs 6\columns\tiny
+\+Decimal Inches&\k 1&\k 2&\k 3&\k 4&\k 5&\k 6\cr}
+%
+\text 1234567890\$\%\&?(``\thinspace'')\par
+\habc\par
+\uppercase\expandafter{\abc}\vskip.5em
+%
+\pcruler{38pc}
+%
+{\hsize35pc \settabs 7\columns\tiny
+\+Picas&\k 5&\kk 10&\kk 15&\kk 20&\kk 25&\kk 30&\kk 35\cr}\vfill}
+
+\vskip.25in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% Change the text sample here.
+%%% The choices are \ntext, \pantext and \loremtext
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vbox{%
+\hsize\habcwd \baselineskip\leading \the\ntext}
+\vfill
+
+\hbox to \hsize{\hrulefill}
+\smallskip
+\vbox{%
+\emergencystretch1em\tiny \hsize.8\habcwd \baselineskip.9\leading
+%
+\halign to \hsize{#\hfil\tabskip0pt plus 1fill&\hfil#\tabskip0pt\cr
+Type stats:\cr
+\noalign{\smallskip\hrule\smallskip}
+Text sample (10pt) leading&\prettypt{\the\leading}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Width of 2.5 lowercase 10pt alphabets&\showhabcwd\ or \cvptin{\the\habcwd}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Type size required for a 4.5in measure&\prettypt{\the\ctextsz}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Ratio of x-height to ascender height&\hbox{0.\the\xascrnum}\cr
+\noalign{\smallskip\hrule\smallskip}
+Typefactor&\typefact\cr
+\noalign{\smallskip\hrule}}
+\smallskip
+\comment}%
+
+\eject\end \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp02.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp02.tex
new file mode 100644
index 00000000000..ceb1cd1bbdb
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp02.tex
@@ -0,0 +1,345 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+% Much of the math in this example is simple modular arithmetic,
+% and gets around the fact that \TeX can only do integer math.
+%
+% This sort of typesetting project is probably better suited to
+% TrueType or PostScript typefaces.
+
+\newtoks\dspfont
+%%% Fill in the \TeX name of the font here:
+\dspfont={ACaslon}
+
+%%% Fill in the name of the typeface as you want it at the top of the page
+\def\fontname{Adobe Caslon}
+
+%%% The following is for notes in the comments at the bottom
+%%% of the page following the type stats.
+%%% Just leave it empty if you have nothing to say...
+\def\comment{Drawn by Carol Twombly.}
+
+%\hsize7.5in \hoffset-.5in
+\parindent0pt
+\nopagenumbers
+\voffset-.5in
+\advance\vsize by 1in
+
+\font\text=\the\dspfont\space at 10pt
+\font\tiny=\the\dspfont\space at 8pt
+\font\name=\the\dspfont\space at 24pt
+
+\newtoks\ntext
+\newtoks\pantext
+\newtoks\loremtext
+%
+\newbox\testbox
+%
+\newdimen\bigger
+\newdimen\dspsize
+\newdimen\dspsizeincr
+\newdimen\habcwd
+\newdimen\ctextsz
+\newdimen\leading
+\newdimen\xheight
+\newdimen\ascheight
+\newdimen\kernone
+\newdimen\kerntwo
+\newdimen\adjust \adjust0pt
+\newdimen\dist
+\newdimen\scratchdim
+%
+\newcount\dsplineno
+\newcount\picawd
+\newcount\pointwd
+\newcount\spconv
+\newcount\measure
+\newcount\divisor
+\newcount\scratch
+\newcount\sscratch
+\newcount\xascrnum
+\newcount\intgp
+\newcount\fracp
+\newcount\scppt \scppt=65536
+
+\ntext={Typography may be defined as both
+an art and a craft. It is an art in that what it does, it does for its
+own sake, according to its own internal sense of what is beautiful and
+right. It is a craft in that what it does, it does for a purpose
+outside itself: it provides a means of storing, shaping and conveying
+information. Typography is, therefore, a selfless art -- a
+contradiction in terms, perhaps -- and is at its best when it is least
+perceived to be doing anything, indeed when there is no active
+awareness of perceiving it, directly, at all, but rather perceiving,
+through it, the knowledge which animates the type on the page. Quality
+in typography results from an effortless perfection of conception and
+execution in the creation of a balance between beauty \& utility:
+compromising neither, calling attention to neither, yet achieving
+both.\thinspace\nobreak\leaders\hrule\hfill\null\par}
+
+%%% The following pangrams were collected by David Lemon of Adobe Systems, Inc.
+%%% This is just a small sample from the entire collection.
+\pantext={Brick quiz whangs jumpy veldt fox.
+Nymphs vex, beg quick fjord waltz.
+Quick wafting zephyrs vex bold Jim.
+West quickly gave Bert handsome prizes for six juicy plums.
+Freight to me sixty dozen quart jars and twelve black pans.
+My help squeezed back in again and joined the weavers after six.
+Turgid saxophones blew over Mick's jazzy quiff.
+Five wine experts jokingly quizzed sample chablis.
+My grandfather picks up quartz and valuable onyx jewels.
+Mix Zapf with Veljovic and get quirky Beziers.
+All questions asked by five watch experts amazed the judge.
+Back in June we delivered oxygen equipment of the same size.
+We have just quoted on nine dozen boxes of grey lamp wicks.
+A large fawn jumped quickly over white zinc boxes.
+The exodus of jazzy pigeons is craved by squeamish walkers.\thinspace\nobreak\leaders\hrule\hfill\hbox{}\par}
+
+\loremtext={Lorem ipsum
+dolor sit amet, consectetuer adipiscing elit, sed diam
+nonummy nibh eusi\-mod tincidunt ut laor\-eet dolore magna
+ali\-quam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit la\-bortis nisl
+ut ali\-quip exea commodo consequat.
+Quousque tandem abutere, Catilina, patientia nostra? Quamdiu nos etiam furor iste tuus eludet?
+quem ad finem sese effrenata jactibit audicia? nihilne te nocturnum pr\ae sidium palatii, nihil
+urbis vigil\ae .
+Lorem ipsum
+dolor sit amet, consectetuer adipiscing elit, sed diam
+nonummy nibh eusi\-mod tincidunt ut laor\-eet dolore magna
+ali\-quam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit la\-bortis nisl
+ut ali\-quip exea commodo consequat.
+Quousque tandem abutere, Catilina, patientia nostra? Quamdiu nos etiam furor iste tuus eludet?
+quem ad finem sese effrenata jactibit audicia? nihilne te nocturnum pr\ae sidium palatii, nihil
+urbis vigil\ae .\thinspace\nobreak\leaders\hrule\hfill\null\par}
+
+\def\abc{abcdefghijklmnopqrstuvwxyz}
+\def\habc{\abc\abc abcdefghijklm}
+\def\dabc{AGQMstaefgpy1234?!\&}
+\def\ucabc{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\def\buclcabc{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOo}
+\def\euclcabc{PpQqRrSsTtUuVvWwXxYyZz?\&}
+\def\freqabc{\text zjqx%
+ kkvv%
+ bbbbppppyyyywwwwgggg%
+ mmmmmmffffffccccccuuuuuu%
+ lllllllldddddddd%
+ hhhhhhhhhhhhrrrrrrrrrrrrssssssssssss%
+ ooooooooooooooiiiiiiiiiiiiiinnnnnnnnnnnnnn%
+ aaaaaaaaaaaaaaaatttttttttttttttttt%
+ eeeeeeeeeeeeeeeeeeeeeeee}% 204 chars
+\def\ast{*} \def\per{.}
+
+%%% Convert from TeX's bulky 4-decimal point measurements to 1
+\def\prettypt#1{\dist=#1
+\multiply\dist10
+\scratch=\number\dist
+\divide\scratch\scppt
+\intgp=\scratch \divide\intgp10
+\sscratch=\intgp
+\multiply\sscratch10 \advance\scratch-\sscratch
+\fracp=\scratch
+\hbox{\the\intgp.\the\fracp}pt\ }
+
+\def\cvptin#1{\dist=#1
+\multiply\dist by 10
+\scratch=\number\dist
+\divide\scratch\scppt
+\multiply\scratch100
+\fracp=\scratch
+\divide\scratch72270
+\intgp=\scratch
+\multiply\scratch72270
+\advance\fracp-\scratch
+\multiply\fracp10
+\divide\fracp7227
+\hbox{\the\intgp.\ifnum\fracp<10 0\the\fracp \else\the\fracp\fi in}}
+
+%%% Type factor = ([Type size] * [# of characters in a sample])/(linear length of sample)
+%%% Based on {\it Brown's Index}, Bruce Brown, Greenwood Publishing, Great Britain 1983
+\def\typefact{%
+\dist=10pt
+\spconv=\number\dist
+\multiply\spconv by 12
+\multiply\spconv by 204
+\setbox1=\hbox{\text\freqabc}%
+\divisor=\number\wd1
+\divide\divisor by 100
+\divide\spconv by \divisor
+\scratch=\spconv
+ \divide\scratch100
+ \divisor=\scratch
+ \multiply \scratch100
+ \advance\spconv-\scratch
+ \hbox{\number\divisor.\ifnum\spconv<10 0\the\spconv \else \the\spconv\fi}}
+
+\setbox0=\hbox{\tiny 0}
+\kernone=.5\wd0 \kerntwo=\wd0
+\def\k{\kern-\kernone}
+\def\kk{\kern-\kerntwo}
+
+\def\endline{\hbox to 0pt{\vrule width1pt height\baselineskip%
+ depth.25\baselineskip\hss}}
+
+\def\iline{\hbox to 0pt{\vrule width.25pt height\baselineskip\hss}}
+\def\hline{\hbox to 0pt{\vrule width.25pt height.75\baselineskip\hss}}
+\def\qline{\hbox to 0pt{\vrule width.25pt height.55\baselineskip\hss}}
+\def\eline{\hbox to 0pt{\vrule width.25pt height.35\baselineskip\hss}}
+\def\sline{\hbox to 0pt{\vrule width.25pt height.15\baselineskip\hss}}
+
+\def\itick{\hbox to 1in{\iline\hfill}}
+\def\htick{\hbox to .5in{\hline\hfill}}
+\def\qtick{\hbox to .25in{\qline\hfill}}
+\def\etick{\hbox to .125in{\eline\hfill}}
+\def\stick{\hbox to .0625in{\sline\hfill}}
+
+\def\dhtick{\hbox to .5in{\hline\hfill}}
+\def\dttick{\hbox to .1in{\qline\hfill}}
+\def\dftick{\hbox to .05in{\eline\hfill}}
+
+\def\pctick{\hbox to 1pc{\iline\hss}}
+\def\hpctick{\hbox to .5pc{\qline\hss}}
+
+\def\druler#1 {\hbox to #1{\endline\hfill\endline}
+\kern-\baselineskip \bigger=#1 \advance\bigger by .5in
+\hbox to #1{\hrulefill}\kern-\baselineskip
+\hbox to \bigger{\leaders\itick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dhtick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dttick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dftick\hfill}}
+
+\def\pcruler#1 {\hbox to #1{\endline\hfill\endline}
+\kern-\baselineskip
+\hbox to #1{\hrulefill}\kern-\baselineskip
+\hbox to #1{\leaders\pctick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\hpctick\hfill}}
+
+%%% Calculates the largest display typesize to fit \hsize
+%%% First typeset it very small (.5pt) then calculate a
+%%% scale factor to get it to fit to \hsize
+\font\dsp=\the\dspfont\space at .1pt
+\setbox0=\hbox{\dsp \buclcabc}%
+\dspsize=\hsize
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\dspsize=\scratch pt \divide\dspsize by 100
+
+%%% Calculates the increment such that smallest display size is 12pt
+\dspsizeincr=\dspsize \advance\dspsizeincr by -12pt
+\divide\dspsizeincr by 3 \dsplineno4
+
+\kern-1\baselineskip
+
+{\name \fontname\par}
+\hbox to \hsize{\hrulefill}\kern-.5\baselineskip
+
+%%% Display Type
+\bgroup
+\loop\font\dsp=\the\dspfont\space at \dspsize \dsp \baselineskip1.1em
+ \hbox to\hsize{\buclcabc\hfill\rlap{{\text\prettypt{\the\dspsize}}}}%
+ \hbox{\euclcabc}\vskip.075in
+ \ifnum\dsplineno>1 \global\advance\dsplineno by-1
+ \advance\dspsize by -\dspsizeincr \font\dsp=\the\dspfont\space at \dspsize\repeat
+\egroup
+
+\setbox0=\hbox{\text x}
+\xheight=\ht0
+
+%%% Leading calculations
+\setbox0=\hbox{\text Ilpgy}
+\ascheight=\ht0
+\leading=\ht0
+\adjust=\xheight \advance\adjust-.5\leading
+\advance\leading\dp0
+\leading=1.175\leading
+\ifdim\dp0<.05\ht0 \advance\adjust.5\xheight\fi
+\advance\leading by \adjust
+\baselineskip\leading
+
+%%% Calculates ratio of x-height to ascender height
+\dimen0=\the\fontdimen5\text
+\xascrnum=\dimen0%
+\divisor=\number\ascheight
+\multiply\xascrnum by 100\relax
+\divide\xascrnum by\ascheight
+
+%%% Calculates width of 2.5 lc alphabets in picas and points
+\setbox0=\hbox{\text\habc} \habcwd=\wd0
+\def\showhabcwd{%
+\scratchdim=\habcwd \scratchdim=\scratchdim
+\scratch=\number\scratchdim
+\divide\scratch\scppt \sscratch=\scratch
+\divide\scratch12
+\picawd=\scratch
+\multiply\scratch by 12
+\advance\sscratch-\scratch
+\pointwd=\sscratch
+\hbox{\the\picawd pc\the\pointwd}}
+
+%%% Calculates the largest typesize to fit 70 characters to 4.5in.
+%%% First typeset it very small (.5pt) then calculate a
+%%% scale factor to get it to fit to 4.5in.
+\font\calcfont=\the\dspfont\space at .5pt
+\setbox0=\hbox{\calcfont \habc}%
+\dspsize=4.5in
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\ctextsz=\scratch pt \divide\ctextsz by 20
+
+\vskip.2in
+
+\text
+
+\vbox{\baselineskip1.2\baselineskip%
+\druler{6.51in}
+%
+{\hsize6in \settabs 6\columns\tiny
+\+Decimal Inches&\k 1&\k 2&\k 3&\k 4&\k 5&\k 6\cr}
+%
+\text 1234567890\$\%\&?(``\thinspace'')\par
+\habc\par
+\uppercase\expandafter{\abc}\vskip.5em
+%
+\pcruler{38pc}
+%
+{\hsize35pc \settabs 7\columns\tiny
+\+Picas&\k 5&\kk 10&\kk 15&\kk 20&\kk 25&\kk 30&\kk 35\cr}\vfill}
+
+\vskip.25in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% Change the text sample here.
+%%% The choices are \ntext, \pantext and \loremtext
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vbox{%
+\hsize\habcwd \baselineskip\leading \the\pantext}
+
+\vfill
+
+\hbox to \hsize{\hrulefill}
+\smallskip
+\vbox{%
+\emergencystretch1em\tiny \hsize.8\habcwd \baselineskip.9\leading
+%
+\halign to \hsize{#\hfil\tabskip0pt plus 1fill&\hfil#\tabskip0pt\cr
+Type stats:\cr
+\noalign{\smallskip\hrule\smallskip}
+Text sample (10pt) leading&\prettypt{\the\leading}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Width of 2.5 lowercase 10pt alphabets&\showhabcwd\ or \cvptin{\the\habcwd}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Type size required for a 4.5in measure&\prettypt{\the\ctextsz}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Ratio of x-height to ascender height&\hbox{0.\the\xascrnum}\cr
+\noalign{\smallskip\hrule\smallskip}
+Typefactor&\typefact\cr
+\noalign{\smallskip\hrule}}
+\smallskip
+\comment}%
+
+\eject\end \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp03.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp03.tex
new file mode 100644
index 00000000000..3fd2eedbc7a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp03.tex
@@ -0,0 +1,344 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+% Much of the math in this example is simple modular arithmetic,
+% and gets around the fact that \TeX can only do integer math.
+%
+% This sort of typesetting project is probably better suited to
+% TrueType or PostScript typefaces.
+
+\newtoks\dspfont
+%%% Fill in the \TeX name of the font here:
+\dspfont={cmr12}
+
+%%% Fill in the name of the typeface as you want it at the top of the page
+\def\fontname{Computer Modern 12}
+
+%%% The following is for notes in the comments at the bottom
+%%% of the page following the type stats.
+%%% Just leave it empty if you have nothing to say...
+\def\comment{Drawn by Donald Knuth.}
+
+%\hsize7.5in \hoffset-.5in
+\parindent0pt
+\nopagenumbers
+\voffset-.5in
+\advance\vsize by 1in
+
+\font\text=\the\dspfont\space at 10pt
+\font\tiny=\the\dspfont\space at 8pt
+\font\name=\the\dspfont\space at 24pt
+
+\newtoks\ntext
+\newtoks\pantext
+\newtoks\loremtext
+%
+\newbox\testbox
+%
+\newdimen\bigger
+\newdimen\dspsize
+\newdimen\dspsizeincr
+\newdimen\habcwd
+\newdimen\ctextsz
+\newdimen\leading
+\newdimen\xheight
+\newdimen\ascheight
+\newdimen\kernone
+\newdimen\kerntwo
+\newdimen\adjust \adjust0pt
+\newdimen\dist
+\newdimen\scratchdim
+%
+\newcount\dsplineno
+\newcount\picawd
+\newcount\pointwd
+\newcount\spconv
+\newcount\measure
+\newcount\divisor
+\newcount\scratch
+\newcount\sscratch
+\newcount\xascrnum
+\newcount\intgp
+\newcount\fracp
+\newcount\scppt \scppt=65536
+
+\ntext={Typography may be defined as both
+an art and a craft. It is an art in that what it does, it does for its
+own sake, according to its own internal sense of what is beautiful and
+right. It is a craft in that what it does, it does for a purpose
+outside itself: it provides a means of storing, shaping and conveying
+information. Typography is, therefore, a selfless art -- a
+contradiction in terms, perhaps -- and is at its best when it is least
+perceived to be doing anything, indeed when there is no active
+awareness of perceiving it, directly, at all, but rather perceiving,
+through it, the knowledge which animates the type on the page. Quality
+in typography results from an effortless perfection of conception and
+execution in the creation of a balance between beauty \& utility:
+compromising neither, calling attention to neither, yet achieving
+both.\thinspace\nobreak\leaders\hrule\hfill\null\par}
+
+%%% The following pangrams were collected by David Lemon of Adobe Systems, Inc.
+%%% This is just a small sample from the entire collection.
+\pantext={Brick quiz whangs jumpy veldt fox.
+Nymphs vex, beg quick fjord waltz.
+Quick wafting zephyrs vex bold Jim.
+West quickly gave Bert handsome prizes for six juicy plums.
+Freight to me sixty dozen quart jars and twelve black pans.
+My help squeezed back in again and joined the weavers after six.
+Turgid saxophones blew over Mick's jazzy quiff.
+Five wine experts jokingly quizzed sample chablis.
+My grandfather picks up quartz and valuable onyx jewels.
+Mix Zapf with Veljovic and get quirky Beziers.
+All questions asked by five watch experts amazed the judge.
+Back in June we delivered oxygen equipment of the same size.
+We have just quoted on nine dozen boxes of grey lamp wicks.
+A large fawn jumped quickly over white zinc boxes.
+The exodus of jazzy pigeons is craved by squeamish walkers.\thinspace\nobreak\leaders\hrule\hfill\hbox{}\par}
+
+\loremtext={Lorem ipsum
+dolor sit amet, consectetuer adipiscing elit, sed diam
+nonummy nibh eusi\-mod tincidunt ut laor\-eet dolore magna
+ali\-quam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit la\-bortis nisl
+ut ali\-quip exea commodo consequat.
+Quousque tandem abutere, Catilina, patientia nostra? Quamdiu nos etiam furor iste tuus eludet?
+quem ad finem sese effrenata jactibit audicia? nihilne te nocturnum pr\ae sidium palatii, nihil
+urbis vigil\ae .
+Lorem ipsum
+dolor sit amet, consectetuer adipiscing elit, sed diam
+nonummy nibh eusi\-mod tincidunt ut laor\-eet dolore magna
+ali\-quam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit la\-bortis nisl
+ut ali\-quip exea commodo consequat.
+Quousque tandem abutere, Catilina, patientia nostra? Quamdiu nos etiam furor iste tuus eludet?
+quem ad finem sese effrenata jactibit audicia? nihilne te nocturnum pr\ae sidium palatii, nihil
+urbis vigil\ae .\thinspace\nobreak\leaders\hrule\hfill\null\par}
+
+\def\abc{abcdefghijklmnopqrstuvwxyz}
+\def\habc{\abc\abc abcdefghijklm}
+\def\dabc{AGQMstaefgpy1234?!\&}
+\def\ucabc{ABCDEFGHIJKLMNOPQRSTUVWXYZ\&}
+\def\freqabc{\text zjqx%
+ kkvv%
+ bbbbppppyyyywwwwgggg%
+ mmmmmmffffffccccccuuuuuu%
+ lllllllldddddddd%
+ hhhhhhhhhhhhrrrrrrrrrrrrssssssssssss%
+ ooooooooooooooiiiiiiiiiiiiiinnnnnnnnnnnnnn%
+ aaaaaaaaaaaaaaaatttttttttttttttttt%
+ eeeeeeeeeeeeeeeeeeeeeeee}% 204 chars
+
+\def\ast{*} \def\per{.}
+
+%%% Convert from TeX's bulky 4-decimal point measurements to 1
+\def\prettypt#1{\dist=#1
+\multiply\dist10
+\scratch=\number\dist
+\divide\scratch\scppt
+\intgp=\scratch \divide\intgp10
+\sscratch=\intgp
+\multiply\sscratch10 \advance\scratch-\sscratch
+\fracp=\scratch
+\hbox{\the\intgp.\the\fracp}pt\ }
+
+\def\cvptin#1{\dist=#1
+\multiply\dist by 10
+\scratch=\number\dist
+\divide\scratch\scppt
+\multiply\scratch100
+\fracp=\scratch
+\divide\scratch72270
+\intgp=\scratch
+\multiply\scratch72270
+\advance\fracp-\scratch
+\multiply\fracp10
+\divide\fracp7227
+\hbox{\the\intgp.\ifnum\fracp<10 0\the\fracp \else\the\fracp\fi in}}
+
+%%% Type factor = ([Type size] * [# of characters in a sample])/(linear length of sample)
+%%% Based on {\it Brown's Index}, Bruce Brown, Greenwood Publishing, Great Britain 1983
+\def\typefact{%
+\dist=10pt
+\spconv=\number\dist
+\multiply\spconv by 12
+\multiply\spconv by 204
+\setbox1=\hbox{\text\freqabc}%
+\divisor=\number\wd1
+\divide\divisor by 100
+\divide\spconv by \divisor
+\scratch=\spconv
+ \divide\scratch100
+ \divisor=\scratch
+ \multiply \scratch100
+ \advance\spconv-\scratch
+ \hbox{\number\divisor.\ifnum\spconv<10 0\the\spconv \else \the\spconv\fi}}
+
+\setbox0=\hbox{\tiny 0}
+\kernone=.5\wd0 \kerntwo=\wd0
+\def\k{\kern-\kernone}
+\def\kk{\kern-\kerntwo}
+
+\def\endline{\hbox to 0pt{\vrule width1pt height\baselineskip%
+ depth.25\baselineskip\hss}}
+
+\def\iline{\hbox to 0pt{\vrule width.25pt height\baselineskip\hss}}
+\def\hline{\hbox to 0pt{\vrule width.25pt height.75\baselineskip\hss}}
+\def\qline{\hbox to 0pt{\vrule width.25pt height.55\baselineskip\hss}}
+\def\eline{\hbox to 0pt{\vrule width.25pt height.35\baselineskip\hss}}
+\def\sline{\hbox to 0pt{\vrule width.25pt height.15\baselineskip\hss}}
+
+\def\itick{\hbox to 1in{\iline\hfill}}
+\def\htick{\hbox to .5in{\hline\hfill}}
+\def\qtick{\hbox to .25in{\qline\hfill}}
+\def\etick{\hbox to .125in{\eline\hfill}}
+\def\stick{\hbox to .0625in{\sline\hfill}}
+
+\def\dhtick{\hbox to .5in{\hline\hfill}}
+\def\dttick{\hbox to .1in{\qline\hfill}}
+\def\dftick{\hbox to .05in{\eline\hfill}}
+
+\def\pctick{\hbox to 1pc{\iline\hss}}
+\def\hpctick{\hbox to .5pc{\qline\hss}}
+
+\def\druler#1 {\hbox to #1{\endline\hfill\endline}
+\kern-\baselineskip \bigger=#1 \advance\bigger by .5in
+\hbox to #1{\hrulefill}\kern-\baselineskip
+\hbox to \bigger{\leaders\itick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dhtick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dttick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\dftick\hfill}}
+
+\def\pcruler#1 {\hbox to #1{\endline\hfill\endline}
+\kern-\baselineskip
+\hbox to #1{\hrulefill}\kern-\baselineskip
+\hbox to #1{\leaders\pctick\hfill}\kern-\baselineskip
+\hbox to #1{\leaders\hpctick\hfill}}
+
+%%% Calculates the largest display typesize to fit \hsize
+%%% First typeset it very small (.5pt) then calculate a
+%%% scale factor to get it to fit to \hsize
+\font\dsp=\the\dspfont\space at .1pt
+\setbox0=\hbox{\dsp \ucabc}%
+\dspsize=\hsize
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\dspsize=\scratch pt \divide\dspsize by 100
+
+%%% Calculates the increment such that smallest display size is 12pt
+\dspsizeincr=\dspsize \advance\dspsizeincr by -12pt
+\divide\dspsizeincr by 3 \dsplineno4
+
+\kern-1\baselineskip
+
+{\name \fontname\par}
+\hbox to \hsize{\hrulefill}\kern-.25\baselineskip
+
+%%% Display Type
+\bgroup
+\loop\font\dsp=\the\dspfont\space at \dspsize \dsp \baselineskip1em
+ \hbox to\hsize{\ucabc\hfill\rlap{\text\prettypt{\the\dspsize}}}
+ \hbox{\abc}\vskip.075in
+ \ifnum\dsplineno>1 \global\advance\dsplineno by-1
+ \advance\dspsize by -\dspsizeincr \font\dsp=\the\dspfont\space at \dspsize\repeat
+\egroup
+
+\setbox0=\hbox{\text x}
+\xheight=\ht0
+
+%%% Leading calculations
+\setbox0=\hbox{\text Ilpgy}
+\ascheight=\ht0
+\leading=\ht0
+\adjust=\xheight \advance\adjust-.5\leading
+\advance\leading\dp0
+\leading=1.175\leading
+\ifdim\dp0<.05\ht0 \advance\adjust.5\xheight\fi
+\advance\leading by \adjust
+\baselineskip\leading
+
+%%% Calculates ratio of x-height to ascender height
+\dimen0=\the\fontdimen5\text
+\xascrnum=\dimen0%
+\divisor=\number\ascheight
+\multiply\xascrnum by 100\relax
+\divide\xascrnum by\ascheight
+
+%%% Calculates width of 2.5 lc alphabets in picas and points
+\setbox0=\hbox{\text\habc} \habcwd=\wd0
+\def\showhabcwd{%
+\scratchdim=\habcwd \scratchdim=\scratchdim
+\scratch=\number\scratchdim
+\divide\scratch\scppt \sscratch=\scratch
+\divide\scratch12
+\picawd=\scratch
+\multiply\scratch by 12
+\advance\sscratch-\scratch
+\pointwd=\sscratch
+\hbox{\the\picawd pc\the\pointwd}}
+
+%%% Calculates the largest typesize to fit 70 characters to 4.5in.
+%%% First typeset it very small (.5pt) then calculate a
+%%% scale factor to get it to fit to 4.5in.
+\font\calcfont=\the\dspfont\space at .5pt
+\setbox0=\hbox{\calcfont \habc}%
+\dspsize=4.5in
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\ctextsz=\scratch pt \divide\ctextsz by 20
+
+\vskip.2in
+
+\text
+
+\vbox{\baselineskip1.2\baselineskip%
+\druler{6.51in}
+%
+{\hsize6in \settabs 6\columns\tiny
+\+Decimal Inches&\k 1&\k 2&\k 3&\k 4&\k 5&\k 6\cr}
+%
+\text 1234567890\$\%\&?(``\thinspace'')\par
+\habc\par
+\uppercase\expandafter{\abc}\vskip.5em
+%
+\pcruler{38pc}
+%
+{\hsize35pc \settabs 7\columns\tiny
+\+Picas&\k 5&\kk 10&\kk 15&\kk 20&\kk 25&\kk 30&\kk 35\cr}\vfill}
+
+\vskip.25in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% Change the text sample here.
+%%% The choices are \ntext, \pantext and \loremtext
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\vbox{%
+\hsize\habcwd \baselineskip\leading \the\loremtext}
+
+\vfill
+
+\hbox to \hsize{\hrulefill}
+\smallskip
+\vbox{%
+\emergencystretch1em\tiny \hsize.8\habcwd \baselineskip.9\leading
+%
+\halign to \hsize{#\hfil\tabskip0pt plus 1fill&\hfil#\tabskip0pt\cr
+Type stats:\cr
+\noalign{\smallskip\hrule\smallskip}
+Text sample (10pt) leading&\prettypt{\the\leading}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Width of 2.5 lowercase 10pt alphabets&\showhabcwd\ or \cvptin{\the\habcwd}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Type size required for a 4.5in measure&\prettypt{\the\ctextsz}\unskip\cr
+\noalign{\smallskip\hrule\smallskip}
+Ratio of x-height to ascender height&\hbox{0.\the\xascrnum}\cr
+\noalign{\smallskip\hrule\smallskip}
+Typefactor&\typefact\cr
+\noalign{\smallskip\hrule}}
+\smallskip
+\comment}%
+
+\eject\end \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp04.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp04.tex
new file mode 100644
index 00000000000..3bbe0bcf201
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp04.tex
@@ -0,0 +1,151 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+%%%%% Registers
+
+\newtoks\dspfont
+\newdimen\dspsize
+\newdimen\letterboxwd
+\newcount\scratch
+\newcount\divisor
+
+%%%%% Layout options
+
+\parindent0pt
+\nopagenumbers
+
+\vsize10in \voffset-.5in
+\hsize7.5in \hoffset-.5in
+
+%%%%% Macros
+
+%%% This is the macro that does all the work.
+%%% #1 -> TeX's name for the desired font
+%%% #2 -> The name font name as you want it to print
+%%% #3 -> The name of the type's designer, or other salient
+%%% piece of information that lends itself to display
+%%% #4 -> The size of the type inside the box
+%%% #5 -> The overall desired width of the box
+\def\makefontbox#1#2#3#4#5{%
+\dspfont={#1}%
+\def\fontname{#2}%
+\font\test=\the\dspfont\space at #4 \test \baselineskip1.25em
+\setbox0=\vbox{\halign to #5{%
+##\tabskip0pt plus 1fill&\hfil##\hfil&\hfil##\hfil&\hfil##\hfil&\hfil##\hfil&
+\hfil##\hfil&\hfil##\hfil&
+\hfil##\hfil&\hfil##\hfil&\hfil##\hfil&\hfil##\hfil&\hfil##\hfil\tabskip0pt\cr
+\noalign{\red\hrule\black\medskip}
+%%% Substitute any characters you like to suit your purposes
+A&B&C&D&E\enskip&1&2&\enskip a&b&c&d&e\cr
+F&G&H&I&J\enskip&3&4&\enskip f&g&h&i&j\cr
+K&L&M&N&O\enskip&5&6&\enskip k&l&m&n&o\cr
+P&Q&R&S&T\enskip&7&8&\enskip p&q&r&s&t\cr
+U&V&W&X&Y\enskip&9&0&\enskip u&v&w&x&y\cr
+(&&Z&&)&\&&\char166&[&&z&&]\cr
+\noalign{\medskip\red\hrule\black}}}%
+\letterboxwd=\wd0
+\vtop{\hsize\letterboxwd
+\if\empty#2 \else\makefit{#2}\fi%
+\smallskip
+\box0%
+\smallskip
+\if\empty#3 \else \makefit{#3}\fi}}
+
+%%% Fit text to a given size by first setting the text
+%%% very tiny and then determining a scaling factor.
+\def\makefit#1{\font\dsp=\the\dspfont\space at .1pt%
+\setbox1=\hbox{\dsp #1}%
+\dspsize=\letterboxwd
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd1
+\divide\scratch by \divisor
+\dspsize=\scratch pt \divide\dspsize by 100
+\hbox{\font\dsp=\the\dspfont\space at\dspsize \dsp #1}}
+
+%%% For Textures users, and anyone else who can use color
+%%% via the \special mechanism
+
+\def\red{%
+\special{color push}
+\special{color define red rgb 1.0 0 0}
+\special{color red}}
+
+\def\blue{%
+\special{color push}
+\special{color define blue rgb 0 0 1.0}
+\special{color blue}}
+
+\def\green{%
+\special{color push}
+\special{color define green rgb 0 1.0 0}
+\special{color green}}
+
+\def\black{\special{color pop}}
+
+%%%%% Example -- this is just a suggestion to get you started.
+
+%%% Make the `grid'. This is just for fun. For even more fun,
+%%% color the rules -- red, blue and green are very printerly.
+%%% The easy way, as here, is to make your pattern in a \vbox
+%%% set to \vsize, then all you have to do is \kern-\vsize
+%%% to start setting type over the grid.
+
+\vbox to \vsize{\blue
+\hrule
+\vss
+\noindent\llap{\vrule height\vsize\hskip0pt}%
+\hskip2in\kern2pt\vrule height\vsize\hskip1pt%
+\hskip3.5in\kern-6pt\vrule height\vsize\hskip1pt%
+\hfill\rlap{\hskip0pt\vrule height\vsize}
+\vss
+\hrule\black}
+
+\kern-\vsize
+
+%%% Now do the text bits
+
+\line{\hskip1pt\makefontbox{ACaslon}{Adobe Caslon Roman}{ }{11pt}{2in}\hfill
+\makefontbox{ACaslonI}{Adobe Caslon Italic}{ }{11pt}{2in}\hskip1pt}
+
+\vfill
+
+\red\hrule\black
+
+\bigskip
+
+%%% Notice that the narrow measure (3.5in) used for the quotation
+%%% required some \emergencystretch.
+\begingroup
+\font\rm=ACaslon at 10pt \rm \baselineskip1.35em \font\it=ACaslonI at 10pt
+\moveright 2.1in\vbox{\hsize3.3in \emergencystretch.5em%
+A lot of mathematics and technical knowledge are involved in our work today.
+I would not call us artists any more.
+I think `alphabet designer' is more accurate,
+and our comrade is no longer the punchcutter but the electronics engineer.
+If the technician learns that he doesn't have to work with a crazy artist,
+and the designer learns a little about electronics,
+they will make an ideal team.
+It is still teamwork as it was in the good old days of metal type.
+
+\bigskip
+
+\it Hermann Zapf\par}
+
+\bigskip
+
+\red\hrule\black
+
+
+\endgroup
+
+\vfill\vfill
+
+
+\line{\hskip1pt\makefontbox{ACaslonB}{Adobe Caslon Bold}{ }{11pt}{2in}\hfill
+\makefontbox{ACaslonBI}{Adobe Caslon BoldItalic}{Carol Twombly}{11pt}{2in}\hskip1pt}
+
+\line{\hss}
+
+
+\eject \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp05.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp05.tex
new file mode 100644
index 00000000000..f896bf65236
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp05.tex
@@ -0,0 +1,197 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+\newtoks\texfont
+\newtoks\symbolfont
+\newdimen\boxwd
+\newdimen\boxht
+\newdimen\thicklineht
+\newdimen\linewd
+\newdimen\nummove
+\newdimen\charmove
+\newdimen\kernchar
+\newdimen\dividerht
+\newcount\charcount \charcount=0
+\newcount\numcount \numcount=0
+\newcount\loopcount
+
+\def\setfont#1{\texfont={#1}
+\font\text=\the\texfont\space at 10pt
+\font\note=\the\texfont\space at 8pt
+\font\name=\the\texfont\space at 18pt
+\font\numfont=Helvetica at 8pt}
+
+\def\setsymbolfont#1#2{\texfont={#2}
+\symbolfont={#1}
+\font\text=\the\symbolfont\space at 10pt
+\font\note=\the\texfont\space at 8pt
+\font\name=\the\texfont\space at 18pt
+\font\numfont=Helvetica at 8pt}
+
+\def\startnum#1{\charcount=#1 \numcount=#1}
+
+\def\nextchar{\text\char\charcount \global\advance\charcount1}
+
+\def\nextnum{\numfont\number\numcount \global\advance\numcount1}
+
+\def\charbox{%
+\vbox to\boxht{%
+\hsize\boxwd\kern\charmove\centerline{\kern\kernchar\strut\nextchar}\vss}}
+
+\def\numline{\centerline{\white\nextnum\black}}
+
+\def\numlinenc{\centerline{\nextnum}}
+
+\def\boxit{\vbox{\hsize\boxwd\hrule height\linewd\hbox{\vrule width\linewd%
+ \charbox\vrule width\linewd}%
+ \hrule height\dividerht}%
+ \kern-\linewd}
+
+%%% For the numbers, uses color or gray
+\def\nboxit{\dimen0\boxwd \advance\dimen0\linewd
+\dimen1\thicklineht \advance\dimen1\linewd
+\vbox{\hsize\boxwd
+\gray\hrule width\dimen0 height\dimen1\black
+\kern-\thicklineht
+\kern-2\linewd
+\hrule height\linewd \hbox{\vrule width\linewd%
+\vbox to \thicklineht{\hsize\boxwd
+ \kern\nummove\numline\vss}%
+ \vrule width\linewd}\hrule height\linewd}\kern-\linewd}
+
+%%% For the numbers, no color
+\def\nboxitnc{%
+\dimen0\thicklineht
+\advance\dimen0 2\linewd
+\vbox to\dimen0{\hsize\boxwd
+\hrule height\linewd \hbox{\vrule height\thicklineht width\linewd%
+ \vbox to\thicklineht{\kern\nummove\numlinenc}%
+ \vrule width\linewd}\vss\hrule height\linewd}\kern-\linewd}
+
+\def\white{\special{color push}%
+ \special{color define white cmyk 0 0 0 0}%
+ \special{color white}}
+
+\def\gray{\special{color push}%
+ \special{color gray .4}}
+
+\def\black{\special{color pop}}
+
+\def\lineofchars#1{\loopcount=#1%
+\noindent\loop \boxit \ifnum\loopcount>1\advance\loopcount-1 \repeat\par
+\loopcount=#1%
+\nointerlineskip
+\kern-\linewd
+\nointerlineskip
+\noindent\loop\nboxit \ifnum\loopcount>1\advance\loopcount-1 \repeat\par
+\kern-\linewd}
+
+%%% For no color or gray, use this
+\def\lineofcharsnc#1{\loopcount=#1%
+\noindent\loop \boxit \ifnum\loopcount>1\advance\loopcount-1 \repeat\par
+\loopcount=#1%
+\nointerlineskip
+\kern-\linewd
+\noindent\loop\nboxitnc \ifnum\loopcount>1\advance\loopcount-1 \repeat\par
+\kern-\linewd}
+
+%%% Setup
+
+\boxwd=.25in
+\boxht=.3in
+\thicklineht=13pt
+\linewd=.25pt
+\dividerht=.75pt
+\parindent=0pt
+\nummove3pt
+\charmove5pt
+\kernchar-1pt
+
+\startnum{0}
+
+\setfont{ACaslon}
+
+%%% Draw the boxes
+
+\leftskip1in
+
+\name Adobe Caslon\par
+\smallskip
+\lineofchars{16}
+\smallskip
+\lineofchars{16}
+\smallskip
+\lineofchars{16}
+\smallskip
+\lineofchars{16}
+\smallskip
+\lineofchars{16}
+\smallskip
+\lineofchars{16}
+\smallskip
+\lineofchars{16}
+\smallskip
+\lineofchars{16}
+\note Carol Twombly
+
+\vfill\eject
+
+\startnum{0}
+
+\setfont{cmr12}
+
+%%% Draw the boxes
+
+\leftskip1in
+
+\name Computer Modern\par
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\note Donald E. Knuth
+
+\vfill\eject
+
+\startnum{32}
+
+\setsymbolfont{Dingbats}{Helvetica}
+
+%%% Draw the boxes
+
+\leftskip1in
+
+\name Zapf Dingbats\par
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\smallskip
+\lineofcharsnc{16}
+\note Hermann Zapf
+
+
+
+
+
+\bye \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp06.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp06.tex
new file mode 100644
index 00000000000..1487c542e2f
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp06.tex
@@ -0,0 +1,183 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+\newdimen\basesize
+\newdimen\dist
+\newdimen\baseblsk
+\newdimen\xheight
+\newdimen\ascheight
+\newdimen\leading
+\newdimen\adjust
+\newcount\scratch
+\newcount\scppt \scppt=65536
+\newcount\intgp
+\newcount\sscratch
+\newcount\fracp
+
+\hsize7.5in \hoffset-.5in
+\vsize10in \voffset-.5in
+
+\nopagenumbers
+\parindent0pt
+
+\def\setuptype#1#2#3#4{\font\bigtext=#3 at 18pt
+\basesize=#2
+\font\tinynote=#4 at 8pt
+\font\bigdisp=#1 at \basesize
+\font\meddisp=#1 at .75\basesize
+\font\smalldisp=#1 at .5\basesize
+\font\tinydisp=#1 at .41666\basesize
+\setbox0=\vbox{\bigdisp ILyg}
+\baseblsk=\ht0
+\advance\baseblsk\dp0
+\baseblsk=1.2\baseblsk}
+
+%%% Leading calculations
+\def\setleading{\setbox0=\hbox{x}
+\xheight=\ht0
+\setbox0=\hbox{Ilpgy}
+\ascheight=\ht0
+\leading=\ht0
+\adjust=\xheight \advance\adjust-.5\leading
+\advance\leading\dp0
+\leading=1.175\leading
+\ifdim\dp0<.05\ht0 \advance\adjust.5\xheight\fi
+\advance\leading by \adjust
+\baselineskip\leading}
+
+\def\prettypt#1{\dist=#1
+\multiply\dist10
+\scratch=\number\dist
+\divide\scratch\scppt
+\intgp=\scratch \divide\intgp10
+\sscratch=\intgp
+\multiply\sscratch10 \advance\scratch-\sscratch
+\fracp=\scratch
+\hbox{\the\intgp.\the\fracp}pt\ }
+
+%%%
+
+\setuptype{uaur}{24pt}{Helvetica}{HelveticaI}
+
+\leftline{\bigtext Audubon Script}
+
+\smallskip
+
+\hrule
+\smallskip
+\rightline{\tinynote Type used in James Audubon's ``Birds of America'', translated to PostScript by Richard
+Beatty}
+\bigskip
+
+\line{%
+\vtop to 9in{\bigdisp \baselineskip=.75\baseblsk plus 1fil
+\halign{&#\hfill\cr%
+Abound\cr
+Bridges\cr
+Canoe\cr
+Dismay\cr
+English\cr
+French\cr
+Genoa\cr
+Happy\cr
+Igloo\cr
+Jury\cr
+Kimono\cr
+Lyric\cr
+Musical\cr
+Narcissus\cr
+Opera\cr
+Precise\cr
+Quartz\cr
+Royal\cr
+Sable\cr
+Transience\cr
+Umbrage\cr
+Velvet\cr
+Waxen\cr
+Xanadu\cr
+Yucca\cr
+Zabaglione\cr}}\hfill
+\vtop to 9in{\bigdisp \baselineskip\baseblsk plus 1fil
+ \halign{
+ &\hfil\thinspace#&\thinspace#\hfil&
+ \enskip#\enskip&
+ \hfil\thinspace#&\thinspace#\hfil\cr
+ A&a&&B&b\cr
+ C&c&&D&d\cr
+ E&e&&F&f\cr
+ G&g&&H&h\cr
+ I&i&&J&j\cr
+ K&k&&L&l\cr
+ M&m&&N&n\cr
+ O&o&&P&p\cr
+ Q&q&&R&r\cr
+ S&s&&T&t\cr
+ U&u&&V&v\cr
+ W&w&&X&x\cr
+ Y&y&&Z&z\cr
+ \span0&\span1\cr
+ \span2&\span3\cr
+ \span4&\span5&\cr
+ \span6&\span7&\cr
+ \span8&\&&9&\cr}}\hfill
+\vtop{\hsize3in \emergencystretch2em
+\bigdisp \setleading
+Brick quiz whangs jumpy veldt fox.
+Nymphs vex, beg quick fjord waltz.
+Quick wafting zephyrs vex bold Jim.
+
+
+\rightline{\tinynote \prettypt{\basesize}/\prettypt{\the\baselineskip}}
+\smallskip
+\hrule
+
+\bigskip\bigskip
+
+\meddisp \setleading
+West quickly gave Bert handsome prizes for six juicy plums.
+Freight to me sixty dozen quart jars and twelve black pans.
+My help squeezed back in again and joined the weavers after six.
+Turgid saxophones blew over Mick's jazzy quiff.
+
+
+\rightline{\tinynote \prettypt{.75\basesize}/\prettypt{\the\baselineskip}}
+\smallskip
+\hrule
+
+\bigskip\bigskip
+
+\smalldisp \setleading
+Five wine experts jokingly quizzed sample chablis.
+My grandfather picks up quartz and valuable onyx jewels.
+Mix Zapf with Veljovic and get quirky Beziers.
+All questions asked by five watch experts amazed the judge.
+Back in June we delivered oxygen equipment of the same size.
+We have just quoted on nine dozen boxes of grey lamp wicks.
+A large fawn jumped quickly over white zinc boxes.
+The exodus of jazzy pigeons is craved by squeamish walkers.
+
+\rightline{\tinynote \prettypt{.5\basesize}/\prettypt{\the\baselineskip}}
+\smallskip
+\hrule
+
+\bigskip\bigskip
+
+\tinydisp \setleading
+Murky haze enveloped a city as jarring quakes broke fourty-six windows.
+The brazen jackal querulously attacked a ferral vixen, maiming her paw.
+Karate experts bring down victims with just a few amazingly quick chops.
+The fabled quetzal roosted on a mulberry twig, vexing the peevish jockey.
+King Alexander was just partly overcome after quizzing Diogenes in his tub.
+The exiled queen justly moved, celebrated with a dazzling fireworks display.
+
+\rightline{\tinynote \prettypt{.41666666\basesize}/\prettypt{\the\baselineskip}}
+\smallskip
+\hrule}}
+
+\bye
+
+
+
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp07.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp07.tex
new file mode 100644
index 00000000000..9fd564ee007
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp07.tex
@@ -0,0 +1,312 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+\newdimen\dspsize
+\newdimen\leading
+\newdimen\ascheight
+\newdimen\xheight
+\newdimen\adjust
+\newdimen\sampletextwd
+\newdimen\abcdwd
+\newdimen\twocolwd
+\newcount\scratch
+\newcount\divisor
+\newtoks\texttoks
+
+%%%
+
+%%%
+
+%%% Set it very small, then find a
+%%% scaling factor to get it to fit
+% #1 - font; #2 - width to fit; #3 - the text
+\def\fitit#1#2#3{\font\dsp=#1 at .1pt
+\setbox0=\hbox{\dsp #3}%
+\dspsize=#2
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\dspsize=\scratch pt \divide\dspsize by 100
+\message{\the\dspsize}%
+\font\dsp=#1 at \dspsize
+\hbox{\dsp#3}}
+
+%%% Leading derived from the characteristics of the type
+\def\setleading{%
+\setbox0=\hbox{Ilpgy}
+\setbox1=\hbox{x}
+\xheight=\ht1
+\ascheight=\ht0
+\leading=\ht0
+\adjust=\xheight \advance\adjust-.5\leading
+\advance\leading\dp0
+\leading=1.175\leading
+\ifdim\dp0<.05\ht0 \advance\adjust.5\xheight\fi
+\advance\leading by \adjust
+\baselineskip\leading
+\message{the leading=\the\leading}}
+
+\def\setuptype#1{%
+\font\Diamond=#1 at 4pt
+\font\Pearl=#1 at 4.5pt
+\font\Ruby=#1 at 5pt
+\font\Nonpareil=#1 at 6pt
+\font\Emerald=#1 at 6.5pt
+\font\Minion=#1 at 7pt
+\font\Brevier=#1 at 7.5pt
+\font\Bourgeois=#1 at 8pt
+\font\LongPrimer=#1 at 9pt
+\font\SmallPica=#1 at 10pt
+\font\Pica=#1 at 12pt
+\font\English=#1 at 14pt
+\font\GreatPrimer=#1 at 16pt
+\font\Paragon=#1 at 18pt
+\font\Twolinesmallpica=#1 at 21pt
+\font\Twolinepica=#1 at 24pt}
+
+\def\isetuptype#1{%
+\font\iDiamond=#1 at 4pt
+\font\iPearl=#1 at 4.5pt
+\font\iRuby=#1 at 5pt
+\font\iNonpareil=#1 at 6pt
+\font\iEmerald=#1 at 6.5pt
+\font\iMinion=#1 at 7pt
+\font\iBrevier=#1 at 7.5pt
+\font\iBourgeois=#1 at 8pt
+\font\iLongPrimer=#1 at 9pt
+\font\iSmallPica=#1 at 10pt
+\font\iPica=#1 at 12pt
+\font\iEnglish=#1 at 14pt
+\font\iGreatPrimer=#1 at 16pt
+\font\iParagon=#1 at 18pt
+\font\iTwolinesmallpica=#1 at 21pt
+\font\iTwolinepica=#1 at 24pt}
+
+\def\bsetuptype#1{%
+\font\bDiamond=#1 at 4pt
+\font\bPearl=#1 at 4.5pt
+\font\bRuby=#1 at 5pt
+\font\bNonpareil=#1 at 6pt
+\font\bEmerald=#1 at 6.5pt
+\font\bMinion=#1 at 7pt
+\font\bBrevier=#1 at 7.5pt
+\font\bBourgeois=#1 at 8pt
+\font\bLongPrimer=#1 at 9pt
+\font\bSmallPica=#1 at 10pt
+\font\bPica=#1 at 12pt
+\font\bEnglish=#1 at 14pt
+\font\bGreatPrimer=#1 at 16pt
+\font\bParagon=#1 at 18pt
+\font\bTwolinesmallpica=#1 at 21pt
+\font\bTwolinepica=#1 at 24pt}
+
+\def\bisetuptype#1{%
+\font\biDiamond=#1 at 4pt
+\font\biPearl=#1 at 4.5pt
+\font\biRuby=#1 at 5pt
+\font\biNonpareil=#1 at 6pt
+\font\biEmerald=#1 at 6.5pt
+\font\biMinion=#1 at 7pt
+\font\biBrevier=#1 at 7.5pt
+\font\biBourgeois=#1 at 8pt
+\font\biLongPrimer=#1 at 9pt
+\font\biSmallPica=#1 at 10pt
+\font\biPica=#1 at 12pt
+\font\biEnglish=#1 at 14pt
+\font\biGreatPrimer=#1 at 16pt
+\font\biParagon=#1 at 18pt
+\font\biTwolinesmallpica=#1 at 21pt
+\font\biTwolinepica=#1 at 24pt}
+
+\def\bigtosmall#1{%
+\begingroup\obeylines\offinterlineskip
+\fitit{#1}{\abcdwd}{ABCD}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDE}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFG}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHI}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJK}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMN}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQ}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQRST}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQRSTUVW}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\endgroup}
+
+\def\smalltobig#1{%
+\begingroup\obeylines\offinterlineskip
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQRSTUVW}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQRST}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMNOPQ}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJKLMN}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHIJK}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFGHI}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDEFG}
+\vfill
+\fitit{#1}{\abcdwd}{ABCDE}
+\vfill
+\fitit{#1}{\abcdwd}{ABCD}
+\endgroup}
+
+\texttoks={Quousque tandem a\-bu\-te\-re, Ca\-ti\-li\-na,
+patientia nostra? Qua\-m\-diu nos etiam furor iste tuus
+eludet? quem ad finem sese effrenata jactibit
+audicia? nihilne te nocturnum pr\ae si\-di\-um palatii,
+nihil urbis vigil\ae. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit, sed diam nonummy nibh
+eusi\-mod tincidunt ut laor\-eet dolore magna
+ali\-quam erat volutpat. Ut wisi enim ad minim
+veniam, quis nostrud exerci tation ullamcorper
+suscipit la\-bortis nisl ut ali\-quip exea commodo
+consequat. Quousque tandem abutere, Catilina,
+patientia nostra? Quamdiu nos etiam furor iste tuus
+eludet? quem ad finem sese effrenata jactibit
+audicia? nihilne te nocturnum pr\ae sidium palatii,
+nihil urbis vigil\ae.}
+
+%%% 1-Roman TeX name, 2-Italic TeX name, 3-name of size,
+%%% 4-number of lines in sample
+\def\textsamps#1#2#3#4{%
+\begingroup#1\setleading %% Uniform leading
+\setbox0=\vbox{%
+\hbadness10000\emergencystretch1em\hsize\sampletextwd\the\texttoks}%
+\setbox1=\vsplit0 to #4\baselineskip
+\setbox2=\vbox{#2%
+\hbadness10000\emergencystretch1em\hsize\sampletextwd\the\texttoks}%
+\setbox3=\vsplit2 to #4\baselineskip
+\line{%
+\vbox{\hsize\sampletextwd\centerline{\strut#1[#3]}\unvbox1}%
+\hfill
+\vbox{\hsize\sampletextwd\centerline{\strut#2[#3]}\unvbox3}\hskip.05in}%
+\endgroup}
+
+%%% #1 - Font TeX name; #2 - number of lines in sample
+%%% #3 - Printed name of font
+\def\textbox#1#2#3{%
+\begingroup#1%
+\setbox0=\vbox{%
+\hbadness10000\emergencystretch1em\hsize\sampletextwd\the\texttoks}%
+\setbox1=\vsplit0 to #2\baselineskip
+\vbox{\hsize\sampletextwd\centerline{\strut#1[#3]}\unvbox1}%
+\endgroup}
+
+%%%
+%%% Example
+%%%
+
+%%% Setup
+
+%%% We don't need indents, complaints about \vboxes and page numbers
+\parindent0pt
+\vbadness10000
+\nopagenumbers
+
+%%% Set up all the ype
+\isetuptype{ACaslonI}
+\setuptype{ACaslon}
+\bsetuptype{ACaslonB}
+\bisetuptype{ACaslonBI}
+
+%%% Shape the page
+\vsize10in
+\voffset-.5in
+\hsize7.5in
+\hoffset-.5in
+
+%%% The width of the text sample columns:
+\sampletextwd2.7in
+%%% The width of the ABCD example
+\abcdwd1.4in
+%%% Now the overall width of the text column examples
+\twocolwd=\hsize
+\advance\twocolwd-\abcdwd
+\advance\twocolwd2\sampletextwd
+\divide\twocolwd2
+
+%%%
+%%% Experiments
+%%%
+
+\centerline{\fitit{ACaslon}{4.1in}{A SAMPLE}}
+
+\smallskip
+
+\hrule
+
+\smallskip
+
+\line{\vbox to 8in{\hsize\twocolwd%
+\textsamps{\Ruby}{\iRuby}{Ruby}{6}%
+\vfill
+\textsamps{\Nonpareil}{\iNonpareil}{Nonpareil}{6}%
+\vfill
+\textsamps{\Minion}{\iMinion}{Minion}{5}%
+\vfill
+\textsamps{\Bourgeois}{\iBourgeois}{Bourgeois}{5}%
+\vfill
+\textsamps{\LongPrimer}{\iLongPrimer}{Long Primer}{4}%
+\vfill
+\textsamps{\SmallPica}{\iSmallPica}{Small Pica}{4}%
+\vfill
+\textsamps{\Pica}{\iPica}{Pica}{4}%
+\vfill
+\textsamps{\English}{\iEnglish}{English}{4}}%
+\hfill
+\vrule
+\hfill
+\vbox to 8in{\hsize1in
+\bigtosmall{ACaslon}
+\vfill
+\smalltobig{ACaslonI}
+\vfill
+\bigtosmall{ACaslonB}
+\vfill
+\smalltobig{ACaslonBI}}}
+
+\smallskip
+\hrule
+\smallskip
+\hrule
+\smallskip
+
+\Minion \setleading
+
+\sampletextwd=\hsize \divide\sampletextwd4 \advance\sampletextwd-1pc
+
+\line{%
+\textbox{\Minion}{4}{Roman}
+\hfill
+\textbox{\iMinion}{4}{Italick}
+\hfill
+\textbox{\bMinion}{4}{Bold}
+\hfill
+\textbox{\biMinion}{4}{Bold-Italick}}
+
+\smallskip
+\hrule
+\smallskip
+\hrule
+\smallskip
+\centerline{\iPica Adobe Caslon --- \Pica Carol Twombly}
+
+
+%%% The End
+
+\bye \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp08.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp08.tex
new file mode 100644
index 00000000000..6af21b141bb
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp08.tex
@@ -0,0 +1,215 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+\newdimen\leading
+\newdimen\ascheight
+\newdimen\xheight
+\newdimen\adjust
+\newdimen\sampletextwd
+\newdimen\gutter
+\newdimen\dist
+\newdimen\mainleading
+
+\newcount\scratch
+\newcount\divisor
+\newcount\spconv
+\newcount\divisor
+\newcount\scratch
+\newcount\sscratch
+\newcount\intgp
+\newcount\fracp
+
+\newtoks\texttoks
+
+%%%
+
+\vbadness10000
+
+%%%
+
+\def\setleading{%
+\setbox0=\hbox{Ilpgy}%
+\setbox1=\hbox{x}%
+\xheight=\ht1
+\ascheight=\ht0
+\leading=\ht0
+\adjust=\xheight \advance\adjust-.5\leading
+\advance\leading\dp0
+\leading=1.2\leading
+\ifdim\dp0<.05\ht0 \advance\adjust.5\xheight\fi
+\advance\leading by \adjust
+\baselineskip=\leading}
+
+%%% Type factor = ([Type size] * [# of characters in a sample])/(linear length of sample)
+%%% Based on {\it Brown's Index}, Bruce Brown, Greenwood Publishing, Great Britain 1983
+\def\typefact#1{%
+\dist=10pt
+\font\facttext=#1 at\dist
+\spconv=\number\dist
+\multiply\spconv by 12
+\multiply\spconv by 204
+\setbox1=\hbox{\facttext\freqabc}%
+\divisor=\number\wd1
+\divide\divisor by 100
+\divide\spconv by \divisor
+\scratch=\spconv
+ \divide\scratch100
+ \divisor=\scratch
+ \multiply \scratch100
+ \advance\spconv-\scratch
+ \hbox{\number\divisor.\ifnum\spconv<10 0\the\spconv \else \the\spconv\fi}}
+
+%%% Convert from TeX's bulky 4-decimal point measurements to 1
+\def\prettypt#1{\dist=#1%
+\multiply\dist10%
+\scratch=\number\dist
+\divide\scratch65536%
+\intgp=\scratch \divide\intgp10%
+\sscratch=\intgp
+\multiply\sscratch10 \advance\scratch-\sscratch
+\fracp=\scratch
+\hbox{\the\intgp.\the\fracp}pt}
+
+\def\displaytype#1{%
+\font\bigtype=#1 at 24pt
+\font\medtype=#1 at 18pt
+\font\normtype=#1 at 14pt
+\font\smalltype=#1 at 12pt
+\font\tinytype=#1 at 10pt
+\font\tinytinytype=#1 at 8pt}
+
+\texttoks={\emergencystretch1em Brick quiz whangs jumpy veldt fox.
+Nymphs vex, beg quick fjord waltz.
+Quick wafting zephyrs vex bold Jim.
+West quickly gave Bert handsome prizes for six juicy plums.
+Freight to me sixty dozen quart jars and twelve black pans.
+My help squeezed back in again and joined the weavers after six.
+Turgid saxophones blew over Mick's jazzy quiff.
+Five wine experts jokingly quizzed sample chablis.
+My grandfather picks up quartz and valuable onyx jewels.
+Mix Zapf with Veljovic and get quirky Beziers.
+All questions asked by five watch experts amazed the judge.
+Back in June we delivered oxygen equipment of the same size.
+We have just quoted on nine dozen boxes of grey lamp wicks.
+A large fawn jumped quickly over white zinc boxes.
+The exodus of jazzy pigeons is craved by squeamish walkers.}
+
+\def\freqabc{\text zjqx%
+ kkvv%
+ bbbbppppyyyywwwwgggg%
+ mmmmmmffffffccccccuuuuuu%
+ lllllllldddddddd%
+ hhhhhhhhhhhhrrrrrrrrrrrrssssssssssss%
+ ooooooooooooooiiiiiiiiiiiiiinnnnnnnnnnnnnn%
+ aaaaaaaaaaaaaaaatttttttttttttttttt%
+ eeeeeeeeeeeeeeeeeeeeeeee}% 204 chars
+
+%%% #1 - Font TeX name; #2 - number of lines in sample
+%%% #3 - Printed name of font
+\def\textbox#1#2#3{%%
+\setbox0=\vtop{#1%
+\hbadness10000\emergencystretch1em\hsize\sampletextwd\the\texttoks}%
+\setbox1=\vsplit0 to #2\baselineskip
+\vtop{\hsize\sampletextwd\centerline{\strut#1[#3]}\smallskip\unvbox1\relax%
+%%% Comment-out the following line if you don't want/need numbers in the sample text
+1\hfill2\hfill3\hfill4\hfill5\hfill6\hfill7\hfill8\hfill9\hfill0\hfill\&\null\par%
+}}
+
+\def\setupmargnote{%
+\tinytinytype \setleading \baselineskip=\leading \vskip\baselineskip}
+
+%%% 1-type size; 2-Number of lines;
+%%% 3-TeX type name 1; 4-Printed type name 1;
+%%% 5-TeX type name 2; 6-Printed type name 2
+\def\lineoftwo#1#2#3#4#5#6{%
+\begingroup
+\font\typeone=#3 at #1%
+%% Set up baselineskip for the two samples
+%% and the info for the margin notes for the
+%% sample on the left:
+\typeone\setleading \calcxaratio{\typeone}
+ \baselineskip=\leading
+ \mainleading=\leading
+\font\typetwo=#5 at #1%
+\line{%
+\llap{\vtop{\setupmargnote%
+ \halign{\hfill##\cr#1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#3}\cr
+ 0.\the\xascrnum\cr}}\enskip}\hss%
+\textbox{\typeone}{#2}{#4}%
+\hskip\gutter
+%% Setup the info for the margin note describing
+%% the sample on the right
+\typetwo \setleading \calcxaratio{\typetwo}
+\textbox{\typetwo}{#2}{#6}%
+\hss
+\rlap{\enskip\vtop{\setupmargnote%
+ \halign{##\hfil\cr#1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#5}\cr
+ 0.\the\xascrnum\cr}}}%
+}\endgroup}
+
+\def\lineofone#1#2#3#4{%
+\begingroup
+\font\typeone=#3 at #1 \typeone \setleading \calcxaratio{\typeone}
+\baselineskip=\leading
+\line{\hss%%
+\hbox{\textbox{\typeone}{#2}{#4}%
+\hss
+\rlap{\enskip\vtop{\setupmargnote%
+ \halign{##\hfil\cr
+ #1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#3}\cr
+ 0.\the\xascrnum\cr}}}}%
+\hss}\endgroup}
+
+\def\comment#1{%
+\bigskip
+\hrule
+\smallskip
+\line{\hfill\vbox{\hyphenpenalty10000 \emergencystretch1em%
+\leftskip0pt plus 4em \rightskip0pt \parfillskip0pt
+\tinytinytype\setleading\hsize.75\sampletextwd\noindent#1}}}
+
+%%%
+%%% Example
+%%%
+
+%%% Setup
+
+\parindent0pt
+\nopagenumbers
+\hsize6in
+\hoffset.25in
+\gutter1pc
+\sampletextwd2.85in
+\displaytype{Helvetica}
+
+
+%%%
+%%% The Page
+%%%
+
+\leftline{\medtype Centaur}
+\smallskip
+\hrule
+\bigskip
+
+\lineoftwo{12pt}{10}{Centaur}{Centaur}{CentaurI}{Centaur Italic}
+
+\bigskip
+
+\lineoftwo{12pt}{10}{CentaurB}{Centaur Bold}{CentaurBI}{Centaur Bold-Italic}
+
+\comment{Centaur, drawn by Bruce Rogers and Frederick Warde}
+
+%%%
+%%% The End
+%%%
+
+\bye \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp09.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp09.tex
new file mode 100644
index 00000000000..072845299cc
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp09.tex
@@ -0,0 +1,264 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+\newdimen\leading
+\newdimen\ascheight
+\newdimen\xheight
+\newdimen\adjust
+\newdimen\sampletextwd
+\newdimen\gutter
+\newdimen\dist
+\newdimen\dspsize
+\newdimen\dspsizeincr
+\newdimen\depth
+\newdimen\mainleading
+
+\newcount\scratch
+\newcount\divisor
+\newcount\spconv
+\newcount\divisor
+\newcount\scratch
+\newcount\sscratch
+\newcount\intgp
+\newcount\fracp
+\newcount\dsplineno
+\newcount\xascrnum
+
+\newtoks\texttoks
+\newtoks\dspfont
+
+%%%
+
+\vbadness10000
+
+%%%
+
+\def\setleading{%
+\setbox0=\hbox{Ilpgy}%
+\setbox1=\hbox{x}%
+\xheight=\ht1
+\ascheight=\ht0
+\depth=\dp0
+\leading=\ht0
+\advance\leading \depth
+\leading=1.25\leading
+\dimen0=\ascheight
+\divide\dimen0 by 2\relax
+\advance\dimen0-\xheight
+%%% Account for large x-height
+\ifdim\dimen0<0pt \else \advance\leading-\dimen0\fi
+%%% Account for missing descenders -- smallcaps for instance
+\ifdim\depth<.1\ascheight \advance \leading .4\ascheight\fi}
+
+%%% Calculates ratio of x-height to ascender height
+\def\calcxaratio#1{%
+\dimen0=\the\fontdimen5#1
+\xascrnum=\dimen0%
+\divisor=\number\ascheight
+\multiply\xascrnum by 100\relax
+\divide\xascrnum by\ascheight}
+
+%%% Type factor = ([Type size] * [# of characters in a sample])/(linear length of sample)
+%%% Based on {\it Brown's Index}, Bruce Brown, Greenwood Publishing, Great Britain 1983
+\def\typefact#1{%
+\dist=10pt
+\font\facttext=#1 at\dist
+\spconv=\number\dist
+\multiply\spconv by 12
+\multiply\spconv by 204
+\setbox1=\hbox{\facttext\freqabc}%
+\divisor=\number\wd1
+\divide\divisor by 100
+\divide\spconv by \divisor
+\scratch=\spconv
+ \divide\scratch100
+ \divisor=\scratch
+ \multiply \scratch100
+ \advance\spconv-\scratch
+ \hbox{\number\divisor.\ifnum\spconv<10 0\the\spconv \else \the\spconv\fi}}
+
+%%% Convert from TeX's bulky 4-decimal point measurements to 1
+\def\prettypt#1{\dist=#1%
+\multiply\dist10%
+\scratch=\number\dist
+\divide\scratch65536%
+\intgp=\scratch \divide\intgp10%
+\sscratch=\intgp
+\multiply\sscratch10 \advance\scratch-\sscratch
+\fracp=\scratch
+\hbox{\the\intgp.\the\fracp}pt}
+
+\def\displaytype#1{%
+\font\bigtype=#1 at 24pt
+\font\medtype=#1 at 18pt
+\font\normtype=#1 at 14pt
+\font\smalltype=#1 at 12pt
+\font\tinytype=#1 at 10pt
+\font\tinytinytype=#1 at 8pt}
+
+\texttoks={\emergencystretch2em Brick quiz whangs jumpy veldt fox.
+Nymphs vex, beg quick fjord waltz.
+Quick wafting zephyrs vex bold Jim.
+West quickly gave Bert handsome prizes for six juicy plums.
+Freight to me sixty dozen quart jars and twelve black pans.
+My help squeezed back in again and joined the weavers after six.
+Turgid saxophones blew over Mick's jazzy quiff.
+Five wine experts jokingly quizzed sample chablis.
+My grandfather picks up quartz and valuable onyx jewels.
+Mix Zapf with Veljovic and get quirky Beziers.
+All questions asked by five watch experts amazed the judge.
+Back in June we delivered oxygen equipment of the same size.
+We have just quoted on nine dozen boxes of grey lamp wicks.
+A large fawn jumped quickly over white zinc boxes.
+The exodus of jazzy pigeons is craved by squeamish walkers.}
+
+\def\freqabc{zjqx%
+ kkvv%
+ bbbbppppyyyywwwwgggg%
+ mmmmmmffffffccccccuuuuuu%
+ lllllllldddddddd%
+ hhhhhhhhhhhhrrrrrrrrrrrrssssssssssss%
+ ooooooooooooooiiiiiiiiiiiiiinnnnnnnnnnnnnn%
+ aaaaaaaaaaaaaaaatttttttttttttttttt%
+ eeeeeeeeeeeeeeeeeeeeeeee}% 204 chars
+
+%%% #1 - Font TeX name; #2 - number of lines in sample
+%%% #3 - Printed name of font
+\def\textbox#1#2#3{#1%\setleading%%
+\setbox0=\vtop{%
+\hbadness10000\hsize\sampletextwd\the\texttoks}%
+\setbox1=\vsplit0 to #2\baselineskip
+\vtop{\hsize\sampletextwd\centerline{\strut#1[#3]}\smallskip\unvbox1\relax%
+%%% Comment-out the following line if you don't want/need numbers in the sample text
+1\hfill2\hfill3\hfill4\hfill5\hfill6\hfill7\hfill8\hfill9\hfill0\hfill\&\null\par%
+}}
+
+\def\setupmargnote{%
+\tinytinytype \setleading \baselineskip=\leading \vskip\baselineskip}
+
+%%% 1-type size; 2-Number of lines;
+%%% 3-TeX type name 1; 4-Printed type name 1;
+%%% 5-TeX type name 2; 6-Printed type name 2
+\def\lineoftwo#1#2#3#4#5#6{%
+\begingroup
+\font\typeone=#3 at #1%
+%% Set up baselineskip for the two samples
+%% and the info for the margin notes for the
+%% sample on the left:
+\typeone\setleading \calcxaratio{\typeone}
+ \baselineskip=\leading
+ \mainleading=\leading
+\font\typetwo=#5 at #1%
+\line{%
+\llap{\vtop{\setupmargnote%
+ \halign{\hfill##\cr#1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#3}\cr
+ 0.\the\xascrnum\cr}}\enskip}\hss%
+\textbox{\typeone}{#2}{#4}%
+\hskip\gutter
+%% Setup the info for the margin note describing
+%% the sample on the right
+\typetwo \setleading \calcxaratio{\typetwo}
+\textbox{\typetwo}{#2}{#6}%
+\hss
+\rlap{\enskip\vtop{\setupmargnote%
+ \halign{##\hfil\cr#1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#5}\cr
+ 0.\the\xascrnum\cr}}}%
+}\endgroup}
+
+\def\lineofone#1#2#3#4{%
+\begingroup
+\font\typeone=#3 at #1 \typeone \setleading \calcxaratio{\typeone}
+\baselineskip=\leading
+\line{\hss%%
+\hbox{\textbox{\typeone}{#2}{#4}%
+\hss
+\rlap{\enskip\vtop{\setupmargnote%
+ \halign{##\hfil\cr
+ #1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#3}\cr
+ 0.\the\xascrnum\cr}}}}%
+\hss}\endgroup}
+
+\def\comment#1{%
+\bigskip
+\hrule
+\smallskip
+\line{\hfill\vbox{\hyphenpenalty10000 \emergencystretch1em%
+\leftskip0pt plus 4em \rightskip0pt \parfillskip0pt
+\tinytinytype\setleading\hsize.75\sampletextwd\noindent#1}}}
+
+%%% Calculates the largest display typesize to fit \hsize
+%%% First typeset it very small (.1pt) and measure its width
+%%% then scale it to get it to fit to \hsize
+\def\dabc{AGQMstaefgpy1234?!\&}
+\def\makedisplay#1{%
+\dspfont={#1}
+\font\dsp=\the\dspfont\space at .1pt
+\setbox0=\hbox{\dsp \dabc}%
+\dspsize=\hsize
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\dspsize=\scratch pt \divide\dspsize by 100
+%%% Calculates the increment such that smallest display size is 12pt
+\dspsizeincr=\dspsize \advance\dspsizeincr by -12pt
+\divide\dspsizeincr by 6 \dsplineno7
+%%% Make the display
+\bgroup
+\loop\font\dsp=\the\dspfont\space at \dspsize \dsp \baselineskip1em
+ \hbox to\hsize{\dabc\hfill\hss\rlap{\tinytinytype\enskip\prettypt{\the\dspsize}}}%
+ \vskip.075in\relax
+ \ifnum\dsplineno>1 \global\advance\dsplineno by-1\relax
+ \advance\dspsize by -\dspsizeincr \font\dsp=\the\dspfont\space at \dspsize\repeat
+\egroup}
+
+%%%
+%%% Example
+%%%
+
+%%% Setup
+
+\parindent0pt
+\nopagenumbers
+\hsize6in
+\hoffset.25in
+\gutter1pc
+\sampletextwd2.85in
+\displaytype{Helvetica}
+
+
+%%%
+%%% The Page
+%%%
+
+\leftline{\medtype BodoniClassic}
+\smallskip
+\hrule
+\bigskip
+
+%%% Display Type
+\makedisplay{BodoniClassic-Roman}
+
+\bigskip
+\hrule
+\bigskip
+
+\lineoftwo{10pt}{9}{BodoniClassic-Roman}{Bodoni Classic}{BodoniClassic-Italic}{Bodoni Classic Italic}
+
+\bigskip
+
+\lineoftwo{10pt}{9}{BodoniClassic-Bold}{BodoniClassic bold}{BodoniClassic-BoldItalic}{BodoniClassic BoldItalic}
+
+\comment{BodoniClassic, drawn by Bruce Rogers; italic by Frederick Warde}
+
+%%%
+%%% The End
+%%%
+
+\bye \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/typespec/TypeSp10.tex b/Master/texmf-dist/tex/plain/typespec/TypeSp10.tex
new file mode 100644
index 00000000000..a2030e90234
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/typespec/TypeSp10.tex
@@ -0,0 +1,266 @@
+%%% Stephen Moye
+%%% Stephen_Moye@brown.edu
+%%% Brown University
+%%% Graphic Services
+
+\newdimen\leading
+\newdimen\ascheight
+\newdimen\xheight
+\newdimen\adjust
+\newdimen\sampletextwd
+\newdimen\gutter
+\newdimen\dist
+\newdimen\dspsize
+\newdimen\dspsizeincr
+\newdimen\depth
+\newdimen\mainleading
+
+\newcount\scratch
+\newcount\divisor
+\newcount\spconv
+\newcount\divisor
+\newcount\scratch
+\newcount\sscratch
+\newcount\intgp
+\newcount\fracp
+\newcount\dsplineno
+\newcount\xascrnum
+
+\newtoks\texttoks
+\newtoks\dspfont
+
+%%%
+
+\vbadness10000
+
+%%%
+
+\def\setleading{%
+\setbox0=\hbox{Ilpgy}%
+\setbox1=\hbox{x}%
+\xheight=\ht1
+\ascheight=\ht0
+\depth=\dp0
+\leading=\ht0
+\advance\leading \depth
+\leading=1.25\leading
+\dimen0=\ascheight
+\divide\dimen0 by 2\relax
+\advance\dimen0-\xheight
+%%% Account for large x-height
+\ifdim\dimen0<0pt \else \advance\leading-\dimen0\fi
+%%% Account for missing descenders -- smallcaps for instance
+\ifdim\depth<.1\ascheight \advance \leading .4\ascheight\fi}
+
+%%% Calculates ratio of x-height to ascender height
+\def\calcxaratio#1{%
+\dimen0=\the\fontdimen5#1
+\xascrnum=\dimen0%
+\divisor=\number\ascheight
+\multiply\xascrnum by 100\relax
+\divide\xascrnum by\ascheight}
+
+%%% Type factor = ([Type size] * [# of characters in a sample])/(linear length of sample)
+%%% Based on {\it Brown's Index}, Bruce Brown, Greenwood Publishing, Great Britain 1983
+\def\typefact#1{%
+\dist=10pt
+\font\facttext=#1 at\dist
+\spconv=\number\dist
+\multiply\spconv by 12
+\multiply\spconv by 204
+\setbox1=\hbox{\facttext\freqabc}%
+\divisor=\number\wd1
+\divide\divisor by 100
+\divide\spconv by \divisor
+\scratch=\spconv
+ \divide\scratch100
+ \divisor=\scratch
+ \multiply \scratch100
+ \advance\spconv-\scratch
+ \hbox{\number\divisor.\ifnum\spconv<10 0\the\spconv \else \the\spconv\fi}}
+
+%%% Convert from TeX's bulky 4-decimal point measurements to 1
+\def\prettypt#1{\dist=#1%
+\multiply\dist10%
+\scratch=\number\dist
+\divide\scratch65536%
+\intgp=\scratch \divide\intgp10%
+\sscratch=\intgp
+\multiply\sscratch10 \advance\scratch-\sscratch
+\fracp=\scratch
+\hbox{\the\intgp.\the\fracp}pt}
+
+\def\displaytype#1{%
+\font\bigtype=#1 at 24pt
+\font\medtype=#1 at 18pt
+\font\normtype=#1 at 14pt
+\font\smalltype=#1 at 12pt
+\font\tinytype=#1 at 10pt
+\font\tinytinytype=#1 at 8pt}
+
+\texttoks={\emergencystretch2em Brick quiz whangs jumpy veldt fox.
+Nymphs vex, beg quick fjord waltz.
+Quick wafting zephyrs vex bold Jim.
+West quickly gave Bert handsome prizes for six juicy plums.
+Freight to me sixty dozen quart jars and twelve black pans.
+My help squeezed back in again and joined the weavers after six.
+Turgid saxophones blew over Mick's jazzy quiff.
+Five wine experts jokingly quizzed sample chablis.
+My grandfather picks up quartz and valuable onyx jewels and objects.
+Mix Zapf with Veljovic and get quirky Beziers.
+All questions asked by five watch experts amazed the judge.
+Back in June we delivered oxygen equipment of the same size.
+We have just quoted on nine dozen boxes of grey lamp wicks.
+A large fawn jumped quickly over white zinc boxes.
+The exodus of jazzy pigeons is craved by squeamish walkers.}
+
+\def\freqabc{zjqx%
+ kkvv%
+ bbbbppppyyyywwwwgggg%
+ mmmmmmffffffccccccuuuuuu%
+ lllllllldddddddd%
+ hhhhhhhhhhhhrrrrrrrrrrrrssssssssssss%
+ ooooooooooooooiiiiiiiiiiiiiinnnnnnnnnnnnnn%
+ aaaaaaaaaaaaaaaatttttttttttttttttt%
+ eeeeeeeeeeeeeeeeeeeeeeee}% 204 chars
+
+%%% #1 - Font TeX name; #2 - number of lines in sample
+%%% #3 - Printed name of font
+\def\textbox#1#2#3{#1%\setleading%%
+\setbox0=\vtop{%
+\hbadness10000\hsize\sampletextwd\the\texttoks}%
+\setbox1=\vsplit0 to #2\baselineskip
+\vtop{\hsize\sampletextwd\centerline{\strut#1[#3]}\smallskip\unvbox1\relax%
+%%% Comment-out the following line if you don't want/need numbers in the sample text
+1\hfill2\hfill3\hfill4\hfill5\hfill6\hfill7\hfill8\hfill9\hfill0\hfill\&\null\par%
+}}
+
+\def\setupmargnote{%
+\tinytinytype \setleading \baselineskip=\leading \vskip\baselineskip}
+
+%%% 1-type size; 2-Number of lines;
+%%% 3-TeX type name 1; 4-Printed type name 1;
+%%% 5-TeX type name 2; 6-Printed type name 2
+\def\lineoftwo#1#2#3#4#5#6{%
+\begingroup
+\font\typeone=#3 at #1%
+%% Set up baselineskip for the two samples
+%% and the info for the margin notes for the
+%% sample on the left:
+\typeone\setleading \calcxaratio{\typeone}
+ \baselineskip=\leading
+ \mainleading=\leading
+\font\typetwo=#5 at #1%
+\line{%
+\llap{\vtop{\setupmargnote%
+ \halign{\hfill##\cr#1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#3}\cr
+ 0.\the\xascrnum\cr}}\enskip}\hss%
+\textbox{\typeone}{#2}{#4}%
+\hskip\gutter
+%% Setup the info for the margin note describing
+%% the sample on the right
+\typetwo \setleading \calcxaratio{\typetwo}
+\textbox{\typetwo}{#2}{#6}%
+\hss
+\rlap{\enskip\vtop{\setupmargnote%
+ \halign{##\hfil\cr#1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#5}\cr
+ 0.\the\xascrnum\cr}}}%
+}\endgroup}
+
+%% #1 Type size; #2 number of lines
+%% #3 TeX name of type; #4 Printed type name
+\def\lineofone#1#2#3#4{%
+\begingroup
+\font\typeone=#3 at #1 \typeone \setleading \calcxaratio{\typeone}
+\baselineskip=\leading
+\mainleading=\leading
+\line{\hss%%
+\hbox{\textbox{\typeone}{#2}{#4}%
+\rlap{\enskip\vtop{\setupmargnote%
+ \halign{##\hfil\cr
+ #1\cr
+ \prettypt{\the\mainleading}\cr
+ \typefact{#3}\cr
+ 0.\the\xascrnum\cr}}}}%
+\hss}\endgroup}
+
+\def\comment#1{%
+\bigskip
+\hrule
+\smallskip
+\line{\hfill\vbox{\hyphenpenalty10000 \emergencystretch1em%
+\leftskip0pt plus 4em \rightskip0pt \parfillskip0pt
+\tinytinytype\setleading\hsize.75\sampletextwd\noindent#1}}}
+
+%%% Calculates the largest display typesize to fit \hsize
+%%% First typeset it very small (.1pt) and measure its width
+%%% then scale it to get it to fit to \hsize
+\def\dabc{AGQMstaefgpy1234?!\&}
+\def\makedisplay#1{%
+\dspfont={#1}
+\font\dsp=\the\dspfont\space at .1pt
+\setbox0=\hbox{\dsp \dabc}%
+\dspsize=\hsize
+\scratch=\dspsize \multiply\scratch10 \divisor=\wd0
+\divide\scratch by \divisor
+\dspsize=\scratch pt \divide\dspsize by 100
+%%% Calculates the increment such that smallest display size is 12pt
+\dspsizeincr=\dspsize \advance\dspsizeincr by -12pt
+\divide\dspsizeincr by 6 \dsplineno7
+%%% Make the display
+\bgroup
+\loop\font\dsp=\the\dspfont\space at \dspsize \dsp \baselineskip1em
+ \hbox to\hsize{\dabc\hfill\hss\rlap{\tinytinytype\enskip\prettypt{\the\dspsize}}}%
+ \vskip.075in\relax
+ \ifnum\dsplineno>1 \global\advance\dsplineno by-1\relax
+ \advance\dspsize by -\dspsizeincr \font\dsp=\the\dspfont\space at \dspsize\repeat
+\egroup}
+
+%%%
+%%% Example
+%%%
+
+%%% Setup
+
+\parindent0pt
+\nopagenumbers
+\hsize6in
+\hoffset.25in
+\gutter1pc
+\sampletextwd2.85in
+\displaytype{Helvetica}
+
+
+%%%
+%%% The Page
+%%%
+
+\leftline{\medtype Romus}
+\smallskip
+\hrule
+\bigskip
+
+%%% Display Type
+\makedisplay{Romus}
+
+\bigskip
+\hrule
+\bigskip
+
+\lineofone{10pt}{9}{Romus}{Romus}
+
+\bigskip
+
+\lineofone{10pt}{9}{RomusI}{Romus Italic}
+
+\comment{Romulus and Cancelleresca Bastarda drawn by Jan van Krimpen, digitized by Richard Beatty.}
+
+%%%
+%%% The End
+%%%
+
+\bye \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/aer.sty b/Master/texmf-dist/tex/plain/vertex/aer.sty
new file mode 100644
index 00000000000..6cabcd82e75
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/aer.sty
@@ -0,0 +1,155 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This is the AER.STY for ECON.TEX
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Special fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\fourteenHelv=cmss10 at 14pt
+\font\sctwelve=cmcsc10 scaled\magstep1
+\font\sctwelve=cmcsc10
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input twocol
+
+\newdimen\pageheight \pageheight=49pc
+\newdimen\pagewidth \pagewidth=34pc
+\newdimen\fullsize \fullsize=34pc
+\newdimen\ruleht \ruleht=.5pt
+
+\vsize=49pc
+\hsize=34pc
+\colwidth=16pc
+
+\hoffset=.5in
+\voffset=0in
+
+\parindent=20pt
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\nopagenumbers
+\def\rightheadline{\hbox to \fullsize{{VOL. 99 No. 9\hfil\scten\runname\hskip 3em\runtitle}\hfil{\folio}}}
+\def\leftheadline{\hbox to \fullsize{\folio \hfil {\tenpoint THE ARMENIAN ECONOMIC REVIEW}\hfil JUNE, 1986}}
+\headline={\ifodd\pageno\rightheadline \else\leftheadline\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\TitleFont{\fourteenHelv}
+\def\AuthorFont{\sctwelve}
+
+\def\DoCenteredTitle#1{
+ \titlepage\global
+ \CenterBox
+ \titlebox
+ \TitleFont
+ {17pt}
+ {#1}}
+
+\def\title#1{\DoCenteredTitle{#1}}
+
+\def\author#1{\DoCenteredAuthor{{\it By}\space{#1$^*$}}}
+\def\authortwo#1{\message{Use ``author'' for both authors in this style.}}
+
+\def\affil#1{\global\setbox\affilbox\hbox{\tenit\noindent #1}}
+\def\affiltwo#1{\message{In the aer.sty, affiliations go in the
+"thanks" footnote.}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{\eightpoint $^*$#1}}
+
+\def\date#1{\global\setbox\datebox\vbox{\tenrm #1 \hfil}}
+
+\def\abstract#1{\global\setbox\abstractbox\vbox{\sl\hsize=23pc #1}}
+
+\def\keywords#1{}
+\def\address#1{}
+
+\def\topmatter{\relax}
+\def\endtopmatter{\DoTop}
+\def\document{\DoPaper}
+
+\RomanSectiontrue
+\let\SectionFont=\bf
+
+\def\section#1\par{\bigskip\goodbreak
+ \SubsectionNumber=0\noindent
+ {\hfil\bf\uppercase\expandafter{\romannumeral\SectionNumber}.\enskip #1\hfil}
+ \nobreak\medskip
+ \global\advance\SectionNumber by 1
+ \noindent}
+
+% Something is screwed up with \romannumeral and centering
+%\def\section#1{\DoCenteredSection{#1}}
+
+\def\subsection#1\par{\bigskip\goodbreak\noindent
+ {\hfil\it \number\SectionNumber.\number\SubsectionNumber.\enspace #1\hfil}
+ \nobreak\medskip\noindent}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\tenpoint
+
+\def\Refs{\vskip1in{\hfil\tenpoint REFERENCES\hfil}\vskip 2pc\RefFont}
+
+\def\by#1{\setbox\bybox\hbox{\ninepoint\bf #1}}
+\def\vol#1{\setbox\volbox\hbox{\it #1}}
+
+\def\SetRef{
+ \ifjour\jourfalse\vbox{\HangRef
+ \unhbox\bybox (\unhbox\yrbox), ``\unhbox\paperbox,''
+ \unhbox\jourbox, {\unhbox\volbox},
+ \ifvoid\nobox\relax\else (\unhbox\nobox), \fi
+ \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space {\it \unhbox\bookbox}. \unhbox\publaddrbox :
+ \unhbox\publbox , \unhbox\yrbox.\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space (\unhbox\yrbox): ``\unhbox\paperbox,'' in
+ {\it \unhbox\bookbox}, ed. by {\rm \unhbox\editorbox}.
+ \unhbox\publaddrbox : \unhbox\publbox \ifvoid\pagesbox\relax
+ \else, \unhbox\pagesbox .\fi\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{\HangRef
+ \unhbox\bybox\space(\unhbox\yrbox):
+ ``\unhbox\paperbox,'' \unhbox\paperinfobox .\par}\fi
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\parindent=20pt
+
+\def\DoTop{\Reset
+\vbox{
+\line{\hfil\box\titlebox\hfil}
+\vskip 2pc
+\line{\hfil\box\authorbox\hfil}
+\vskip1pc
+\line{\hfil\box\abstractbox\hfil}
+\vfootnote{*}{\unhbox\thanksbox}
+\vskip2pc}}
+
+\def\DoPaper{\begindoublecolumns}
+
+\let\eqno=\leqno
+\tenpoint
+\hfuzz=8pt
+\def\bye{\enddoublecolumns\vfill\eject\end}
+\def\footnoterule{} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/ecnmet.sty b/Master/texmf-dist/tex/plain/vertex/ecnmet.sty
new file mode 100644
index 00000000000..1d941b0de7a
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/ecnmet.sty
@@ -0,0 +1,151 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ecnmet.sty -- Economagica style for VerTeX
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=29pc
+\vsize=46pc
+\hoffset=1in
+\voffset=1in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\runningname{Use $\$ runningname}
+\runningtitle{Use $\$ runningtitle}
+
+\nopagenumbers
+\def\rightheadline{\hbox to \hsize{{\hfil\scten\runtitle}\hfil{\folio}}}
+\def\leftheadline{\hbox to \hsize{\folio \hfil {\scten\runname}\hfil}}
+\headline={\ifodd\pageno\rightheadline \else\leftheadline\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Redefine figure macro
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\Figure#1#2#3{
+ \midinsert
+ \vbox to #2{\vfil}
+ \hbox to \hsize{\hss\vbox{\parindent=0pt
+ {\scten Figure \number#1}.---\rm #3}}
+ \endinsert}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\TitleFont=\sctwelve
+\let\AuthorFont=\scten
+
+\def\title#1{\DoCenteredTitle{\expandafter\uppercase{#1}}}
+
+\def\author#1{\DoCenteredAuthor{By #1}}
+\def\authortwo#1{\message{Use ``author'' for both authors in this style.}}
+
+\def\affil#1{\global\setbox\affilbox\vbox{\nineit\noindent #1}}
+\def\affiltwo#1{\message{Do not use "affiltwo" in this style.}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{{\eightpoint #1\par}}}
+
+\def\date#1{\global\setbox\datebox\vbox{\tenrm #1 \hfil}}
+\def\version#1{}
+
+\def\abstract#1{\global\setbox\abstractbox\vbox
+ {\eightpoint\hsize=23pc\parindent=8pt#1\par}}
+
+\def\keywords#1{}
+\def\address#1{}
+
+\def\topmatter{\relax}
+\def\endtopmatter{\DoTop}
+
+\let\SectionFont=\scten
+
+\RomanSectionfalse
+
+\def\section#1\par{\DoCenteredSection{\uppercase{#1}}}
+
+\def\subsection#1\par{\BigBreak\noindent
+ {\hfil \it \number\SectionNumber.\number\SubsectionNumber\enspace #1\hfil}
+ \nobreak\medskip\noindent}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Math conventions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\outer\def\proclaim #1. #2\par{\medbreak
+ {\scten#1:\enspace}{\sl#2}\par
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+\let\eqno=\leqno
+\let\eqalignno=\leqalignno
+
+\def\proof{\goodbreak{\scten Proof:\enspace}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\tenpoint
+\def\vol#1{\setbox\volbox\hbox{#1}}
+
+\def\Refs{\vskip1in
+\centerline{\scten REFERENCES}
+\vskip 2pc\RefFont}
+
+\def\by#1{\setbox\bybox\hbox{\scten{#1}}}
+
+\def\SetRef{
+ \vskip 3pt
+ \ifjour\jourfalse\vbox{\HangRef
+ \unhbox\bybox:\space ``\unhbox\paperbox,''
+ {\unhbox\jourbox} \unhbox\volbox\space
+ \ifvoid\nobox\relax\else\space no. \unhbox\nobox \fi
+ (\unhbox\yrbox), \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space {\it \unhbox\bookbox}. \unhbox\publaddrbox :
+ \unhbox\publbox , \unhbox\yrbox.\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space (\unhbox\yrbox): ``\unhbox\paperbox,'' in
+ {\it \unhbox\bookbox}, ed. by {\rm \unhbox\editorbox}.
+ \unhbox\publaddrbox : \unhbox\publbox \ifvoid\pagesbox\relax
+ \else, \unhbox\pagesbox .\fi\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{\HangRef
+ \unhbox\bybox:
+ ``\unhbox\paperbox, '' \unhbox\paperinfobox,\space\unhbox\yrbox.\par}\fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\titlehead{\line{\hfil\eightpoint{\it Economagica}, Vol. 99, No. 9 (March, 1999) pp. 9--99\hfil}}
+\def\titlefoot{\hfil}
+
+\def\DoTop{
+\vglue 1pc
+\line{\hfil\box\titlebox\hfil}
+\vskip 1pc
+\line{\hfil\box\authorbox\hfil}
+\ifvoid\thanksbox\relax\else
+ \vfootnote{$^1$}{\eightpoint \unhbox\thanksbox \par}\fi
+\vskip1pc
+\line{\hfil\box\abstractbox\hfil}
+\vskip 2.5pc}
+
+\def\document{\tenpoint\relax}
+
+\parindent=10pt
+\tenpoint
+\def\footnoterule{} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/fntest.tex b/Master/texmf-dist/tex/plain/vertex/fntest.tex
new file mode 100644
index 00000000000..ad762563521
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/fntest.tex
@@ -0,0 +1,92 @@
+\topmatter
+\runningtitle{TEST FILE}
+\runningname{HAL R. VARIAN}
+\thanks{Thanks to various \TeX\ wizards and beta testers for aid in this
+endeavor. I also want to thank mom and dad, little brother, my teachers,
+the National Science Foundation, Jim and Tammy Bakker, and anyone else I
+can think of that will make this a nice long footnote for testing purposes.}
+\title{A Test File for Ver\TeX}
+\author{Hal R. Varian}
+\affil{Perversity of Michigan}
+\date{September, 1985}
+\version{\today}
+\abstract{This paper provides a torture test for Ver\TeX in order
+to see if a few of its features work as advertised.}
+
+\keywords{Ver\TeX, typesetting, desktop publishing}
+
+\address{Prof. Hal R. Varian, Department of Economics,
+University of Michigan, Ann Arbor, MI 48109, U.S.A.}
+
+\endtopmatter
+%\doublespace
+\document
+
+\noindent This document is provides a test of the various features of the
+formatting\fnote{Here is the first footnote to see if the in-sentence
+spacing works correctly.} package Ver\TeX. It doesn't really do much else.
+Ver\TeX\ allows easy formatting of papers.\fnote{Here is a footnote, in order
+to see if the between-footnote spacing works correctly.}
+
+\section Features of Ver\TeX
+
+Among Ver\TeX's many features are subsections, proofs, etc.\fnote{Here is
+yet another footnote!} Here is another line to add to this sentence to
+check the spacing.
+
+\subsection This is a subsection
+
+Here is a theorem:\fnote{Here is a very, very, very, very, very, very, very,
+very, very, very, very, very, very, very, very, very, very, very, very,
+very, very, very, very, very, very, very, very, very, very, very, very,
+very, very, very, very, very, very, very, very, very, very, very, very,
+very, very long footnote.}
+
+\proclaim Theorem. Consider the following equation
+ $$F(x) = \int_0^x f(t) dt.$$
+It follows that $F'(x) = f(x)$.
+
+\proof The fundamental theorem of calculus. \qed
+
+That's about all there is to it.\fnote{Except for footnotes. Except for
+footnotes. Except for footnotes. Except for footnotes. Except for
+footnotes. Except for footnotes. Except for footnotes. Except for
+footnotes. Except for footnotes. Except for footnotes. Except for
+footnotes. Except for footnotes. Except for footnotes. Except for
+footnotes.}
+
+That's about all there is to it. That's about all there is to it. That's
+about all there is to it. That's about all there is to it. That's about
+all there is to it. That's about all there is to it. That's about all
+there is to it. That's about all there is to it. That's about all there
+is to it. That's about all there is to it. That's about all there is to
+it.
+
+You can put quotations in Ver\TeX\ quite easily, such as:
+
+\quote{Nothing ventured, nothing gained. Nothing ventured, nothing gained.
+Nothing ventured, nothing gained. Nothing ventured, nothing gained.
+Nothing ventured, nothing gained. Nothing ventured, nothing gained.
+Nothing ventured, nothing gained. Nothing ventured, nothing gained.
+Nothing ventured, nothing gained.}
+
+Now that's a nice quotation, even though it is somewhat repetitive.
+
+%Use in REStud.sty
+%\Notes
+
+\Refs
+
+\ref \by{Afriat, S.} \yr{1967a} \paper{The Construction of a Utility
+Function from Expenditure Data} \jour{International Economic Review}
+\vol{8} \pages{67--77} \endref
+
+\ref \by{Breeden, D. and R. Litzenberger} \yr{1978} \paper{Prices of
+State-Contingent Claims Implicit in Option Prices} \jour{Journal of
+Business} \vol{9} \pages{621--851} \endref
+
+\ref \by{Varian, Hal R.} \yr{1986} \book{Intermediate Microeconomics}
+\publ{W. W. Norton \& Co.} \publaddr{New York} \endref
+
+%\PrintEndNotes
+
diff --git a/Master/texmf-dist/tex/plain/vertex/jep.sty b/Master/texmf-dist/tex/plain/vertex/jep.sty
new file mode 100644
index 00000000000..66779c80070
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/jep.sty
@@ -0,0 +1,184 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is the Journal of Economic Perspectives style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Load special fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\twentyBaskB=cmbx12 at 20pt %chapter titles
+\font\sixteenBaskR=cmr12 at 16pt %authors names
+\font\tenBaskI=cmti10 at 10pt %running heads
+\font\twelveBaskB=cmbx12 at 12pt %article subheads
+\font\elevenBaskI=cmti10 at 11pt %article subsection
+\font\twentyfourBaskB=cmbx12 at 24pt %symposium title
+\font\twentyBaskR=cmr12 at 20pt %department subhead
+\font\bigR=cmr12 at 39pt %first letter of article
+
+
+% Use the following definitions if you have a LaserWriter.
+% The PostScript fonts look much better when scaled.
+%
+%\font\twentyBaskB=psmtimb at 20pt %chapter titles
+%\font\sixteenBaskR=psmtimr at 16pt %authors names
+%\font\tenBaskI=psmtimi at 10pt %running heads
+%\font\twelveBaskB=psmtimb at 12pt %article subheads
+%\font\elevenBaskI=psmtimi at 11pt %article subsection
+%\font\twentyfourBaskB=psmtimb at 24pt %symposium title
+%\font\twentyBaskR=psmtimr at 20pt %department subhead
+%\font\bigR=psmtimr at 39pt %first letter of article
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=30pc
+\vsize=53pc
+\hoffset=1in
+\voffset=0in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\emskip{\hskip 1em}
+
+\def\dropstrut{\vrule height 0pt width 0pt depth 6pc}
+
+\nopagenumbers
+\def\rightheadline{\hbox to \fullsize{\hfil{\tenpoint\it \runtitle}\emskip{\tenpoint\folio}}\dropstrut}
+\def\leftheadline{\hbox to \fullsize{\tenpoint\folio\emskip {\tenpoint\it Economic Perspectives}\hfil}\dropstrut}
+\headline={\ifodd\pageno\rightheadline \else\leftheadline\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\TitleFont{\twentyBaskB}
+\def\AuthorFont{\sixteenBaskR}
+
+\def\DoLeftTitle#1{
+ \titlepage\global
+ \LeftBox
+ \titlebox
+ \TitleFont
+ {24pt}
+ {#1}}
+
+\def\title#1{\DoLeftTitle{#1}}
+
+\def\author#1{\DoLeftAuthor{#1}}
+
+\def\affil#1{\global\setbox\affilbox\vbox{\nineit\hfil#1\hfil}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{\it \vrule height 4pt width 4pt depth 0pt\hskip3pt #1}}
+
+\def\date#1{\global\setbox\datebox\vbox{\tenrm #1 \hfil}}
+
+\def\abstract#1{\global\setbox\abstractbox\vbox{\ninepoint\hsize=23pc \noindent #1}}
+
+\def\keywords#1{}
+\def\address#1{}
+
+\def\topmatter{\relax}
+\def\endtopmatter{\DoTop}
+\def\document{\DoPaper\noindent}
+
+\def\SectionFont{\twelveBaskB}
+\RomanSectionfalse
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Big letter to start first paragraph
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\start#1{\hang\hangafter=-3\hangindent=30pt
+ \vbox to 0pt{
+ \vskip 9pt\hsize=.25in
+ \hbox{\hfil\bigR #1\hss}
+ \vss}\noindent}
+
+
+\bigskipamount=32pt plus 2pt minus 2pt
+\medskipamount=14pt plus 2pt minus 2pt
+
+%%Modified \DoLeftSection in VerTeX to eliminate numbers and \noindent
+
+\def\DoLeftSection#1{
+ \BigBreak
+ \SubsectionNumber=0
+ \LeftBox
+ \sectionbox
+ \SectionFont
+ \normalbaselineskip
+ {#1}
+ \line{\box\sectionbox\hfil}
+ \global\advance\SectionNumber by 1
+ \nobreak\medskip}
+
+\def\section#1\par{\DoLeftSection{#1}}
+
+\def\subsection#1\par{\BigBreak\noindent{\elevenBaskI #1}\nobreak\medskip}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\eightpoint
+
+\def\Refs{
+\medskip\noindent\unhbox\thanksbox\par
+\vskip 75pt plus 5pt minus 5pt\goodbreak
+\line{\tenpoint\bf References \hfil\par}
+\vskip 20pt
+\RefFont\baselineskip=10pt
+\parindent=1em}
+
+\def\by#1{\setbox\bybox\hbox{\eightpoint\bf #1}}
+
+\def\SetRef{\vskip 2pt
+ \ifjour\jourfalse\vbox{
+ \unhbox\bybox, ``\unhbox\paperbox,''
+ \unhbox\jourbox, \unhbox\yrbox, {\unhbox\volbox},
+ \ifvoid\nobox\relax\else (\unhbox\nobox), \fi
+ \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{
+ \unhbox\bybox\space {\it \unhbox\bookbox}. \unhbox\publaddrbox :
+ \unhbox\publbox , \unhbox\yrbox.\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{
+ \unhbox\bybox, ``\unhbox\paperbox,'' in
+ {\it \unhbox\bookbox}, ed. by {\rm \unhbox\editorbox}.
+ \unhbox\publaddrbox : \unhbox\publbox, \unhbox\yrbox:
+ \ifvoid\pagesbox\relax\else, \unhbox\pagesbox .\fi\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{
+ \unhbox\bybox, ``\unhbox\paperbox,''
+ \unhbox\yrbox, \unhbox\paperinfobox .\par}\fi
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\titlehead{\line{\it\hfil Economic Perspectives\emskip Volume 1, Number 1 \emskip July, 1987 \emskip Pages 63--70}}
+\def\titlefoot{\line{\hfil}}
+
+\def\DoTop{
+\vglue 7pc
+\line{\box\titlebox\hfil}
+\vskip 1pc
+\line{\box\authorbox\hfil}
+\vskip 4pc}
+
+\def\DoPaper{\relax}
+
+
+\tenpoint
+\parindent=20pt
+\newdimen\fullsize \fullsize=30pc
+\topskip=3.5pc
+\def\footnoterule{} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/jepcont.tex b/Master/texmf-dist/tex/plain/vertex/jepcont.tex
new file mode 100644
index 00000000000..d0988c0a265
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/jepcont.tex
@@ -0,0 +1,93 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Table of Contents for the Journal of Economic Perspectives
+% trial version of macros
+% (uses LaserWriter fonts)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Font definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\tenBaskI=psmtimi at 10pt %The Journal of
+\font\twentyfourBaskBI = psmtimbi at 24pt %Economic Perspectives
+\font\twentyBaskR=psmtimr at 20pt %Contents
+\font\twelveBaskI=psmtimi at 12pt %Vol 1 . No 1 . July 1987
+\font\twelveBaskB=psmtimb at 12pt %Symposiums
+\font\tenBaskBI=psmtimbi at 10pt %subheads for symposiums
+\font\tenBaskR=psmtimr at 10pt %contents
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Size and miscellaneous macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=30pc
+\vsize=53pc
+\hoffset=1in
+\footline{\hfill}
+\def\leaderfill{\leaders\hbox to 5pt{\hss .\hss}\hfill}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Make Header
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\MakeHeader#1#2#3{
+\centerline{\tenBaskI The Journal of}
+\vskip 4pt
+\centerline{\baselineskip=28pt \twentyfourBaskBI Economic Persepectives}
+\vskip 8pt
+\hrule width \hsize
+\vskip 10pt
+\line{{\twentyBaskR Contents}\hfil{\twelveBaskI Volume #1 $\bullet$ Number #2 $\bullet$ #3}}
+\vskip 10pt
+\hrule width \hsize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Symposiums and articles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\MajorHead#1{\vskip 20pt\line{\twelveBaskB #1 \hfil}}
+\def\SymposiumTitle#1{\medskip\baselineskip=15pt\line{\tenBaskBI #1: \hfil}}
+\def\Art#1#2#3{\line{\rm #1, ``#2'' \leaderfill #3 \par}}
+\def\Dept#1#2{\line{\rm #1 \leaderfill #2 \par}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Material for contents
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\MakeHeader{1}{1}{July 1987}
+
+\MajorHead{Symposiums}
+\SymposiumTitle{Tax Reform}
+\Art{Alan Auerback}{Tax Reform Act of 1986 and Capital Costs}{5}
+\Art{James M. Buchanan}{Tax Reform as Political Choice}{35}
+\Art{Hal R. Varian}{The Arbitrage Principle in Financial Economics}{50}
+\Art{Alan Auerback}{Tax Reform Act of 1986 and Capital Costs}{5}
+\Art{James M. Buchanan}{Tax Reform as Political Choice}{35}
+\Art{Hal R. Varian}{The Arbitrage Principle in Financial Economics}{50}
+
+\vskip 15pt
+\SymposiumTitle{Arbitrage}
+\Art{Alan Auerback}{Tax Reform Act of 1986 and Capital Costs}{5}
+\Art{James M. Buchanan}{Tax Reform as Political Choice}{35}
+\Art{Hal R. Varian}{The Arbitrage Principle in Financial Economics}{50}
+
+\vskip 10pt
+\MajorHead{Other Articles}
+\Art{Alan Auerback}{Tax Reform Act of 1986 and Capital Costs}{5}
+\Art{James M. Buchanan}{Tax Reform as Political Choice}{35}
+\Art{Hal R. Varian}{The Arbitrage Principle in Financial Economics}{50}
+\Art{Alan Auerback}{Tax Reform Act of 1986 and Capital Costs}{5}
+\Art{James M. Buchanan}{Tax Reform as Political Choice}{35}
+\Art{Hal R. Varian}{The Arbitrage Principle in Financial Economics}{50}
+
+\vskip 10pt
+\MajorHead{Departments}
+\Dept{Good Things to Read}{55}
+\Dept{Puzzles}{60}
+\Dept{Notes}{65}
+
+\bye
+
diff --git a/Master/texmf-dist/tex/plain/vertex/jet.sty b/Master/texmf-dist/tex/plain/vertex/jet.sty
new file mode 100644
index 00000000000..604a1b96f54
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/jet.sty
@@ -0,0 +1,174 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% jet.sty -- Journal of Economic Theorems
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Load special fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\twelveHelv=cmss10 at 12pt
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=26pc
+\vsize=45pc
+\hoffset=1in
+\voffset=1in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\runningname{Use $\$ runningname}
+\runningtitle{Use $\$ runningtitle}
+
+\nopagenumbers
+\def\rightheadline{\hbox to \hsize{{\hfil\scten\runtitle}\hfil{\folio}}}
+\def\leftheadline{\hbox to \hsize{\folio \hfil {\scten\runname}\hfil}}
+\headline={\ifodd\pageno\rightheadline \else\leftheadline\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Redefine figure macro
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\Figure#1#2#3{
+ \midinsert
+ \vbox to #2{\vfil}
+ \hbox to \hsize{\hss\vbox{\parindent=0pt
+ {\scten Figure \number#1}.---\rm #3}}
+ \endinsert}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\TitleFont=\twelveHelv
+\let\AuthorFont=\scten
+
+\def\DoCenteredTitle#1{
+ \titlepage\global
+ \CenterBox
+ \titlebox
+ \TitleFont
+ {15pt}
+ {#1}}
+
+\def\title#1{\DoCenteredTitle{#1}}
+
+\def\author#1{\DoCenteredAuthor{#1}}
+\def\authortwo#1{\message{Use ``author'' for both authors in this style.}}
+
+\def\affil#1{\global\setbox\affilbox\vbox{\nineit\noindent #1}}
+\def\affiltwo#1{\message{Do not use "affiltwo" in this style.}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{{\eightpoint#1\par}}}
+
+\def\date#1{\global\setbox\datebox\vbox{\tenrm #1 \hfil}}
+\def\version#1{}
+
+\def\abstract#1{\global\setbox\abstractbox\vbox
+ {\eightpoint\hsize=23pc\parindent=8pt#1\par}}
+
+\def\keywords#1{}
+\def\address#1{}
+
+\def\topmatter{\relax}
+\def\endtopmatter{\DoTop}
+
+\let\SectionFont=\scten
+\RomanSectionfalse
+
+\def\section#1\par{\DoCenteredSection{#1}}
+
+\def\subsection#1\par{\BigBreak\noindent
+ {\it \number\SectionNumber.\number\SubsectionNumber\enspace #1\hfil}
+ \nobreak\medskip\noindent}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Math conventions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\outer\def\proclaim #1. #2\par{\medbreak
+ {\scten#1.\enspace}{\sl#2}\par
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+
+\def\proof{\goodbreak{\it Proof.\enspace}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\ninepoint
+\def\vol#1{\setbox\volbox\hbox{#1}}
+
+\def\Refs{\vskip1in
+\centerline{\scten REFERENCES}
+\vskip 2pc\RefFont}
+
+\def\by#1{\setbox\bybox\hbox{\scten{#1}}}
+
+\newcount\RefNumber
+\RefNumber=1
+
+\def\DoNumber{\HangRef\number\RefNumber.\space\global\advance\RefNumber by 1}
+
+\def\SetRef{
+ \vskip 2pt
+ \ifjour\jourfalse\vbox{\DoNumber
+ \unhbox\bybox,\space\unhbox\paperbox,
+ {\unhbox\jourbox} \unhbox\volbox\space
+ \ifvoid\nobox\relax\else\space no. \unhbox\nobox \fi
+ (\unhbox\yrbox), \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{\DoNumber
+ \unhbox\bybox\space {``\unhbox\bookbox''}, \unhbox\publbox ,
+ \unhbox\publaddrbox, \unhbox\yrbox.\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{\DoNumber
+ \unhbox\bybox\space, \unhbox\paperbox, in
+ {``\unhbox\bookbox''}, ed. by {\rm \unhbox\editorbox},
+ \unhbox\publbox,\unhbox\publaddrbox,\space(\unhbox\yrbox),
+ \ifvoid\pagesbox\relax
+ \else, \unhbox\pagesbox .\fi\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{\DoNumber
+ \unhbox\bybox, \unhbox\paperbox,
+ \unhbox\paperinfobox,\space\unhbox\yrbox.\par}\fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\titlehead{\vbox{\eightpoint
+ \line{Reprinted from JOURNAL OF ECONOMIC THEORY, Vol. 9., No. 9, October 1999\hfil}
+ \line{Copyright $\copyright$ Ecodemic Press, Inc. {\it Printed in U.S.A.}\hfil}}}
+\def\titlefoot{\vbox{\sixpoint
+ \line{Copyright $\copyright$ 1974 by Ecodemic Press, Inc.\hfil}
+ \line{All rights of reproduction in any form reserved.\hfil}}}
+
+\def\DoTop{
+\vglue 4pc
+\line{\hfil\box\titlebox\hfil}
+\vskip 1pc
+\line{\hfil\box\authorbox\hfil}
+\ifvoid\thanksbox\relax\else
+ \vfootnote{$^*$}{\eightpoint \unhbox\thanksbox \par}\fi
+\vskip1pc
+\line{\hfil\box\addressbox\hfil}
+\hfil\box\abstractbox\hfil
+\vskip 2.5pc}
+
+\def\document{\tenpoint\relax}
+
+\parindent=10pt
+\tenpoint
+\def\footnoterule{} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/jpe.sty b/Master/texmf-dist/tex/plain/vertex/jpe.sty
new file mode 100644
index 00000000000..f2e49922604
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/jpe.sty
@@ -0,0 +1,128 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Journal of Polemical Economy style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Load special fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\fourteenhelvB=cmssbx10 at 14pt
+\font\twelvehelv=cmss10 at 12pt
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=26pc
+\vsize=45pc
+\hoffset=1in
+\voffset=1in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\nopagenumbers
+\def\rightheadline{\hbox to \hsize{{\scten\runtitle}\hfil{\folio}}}
+\def\leftheadline{\hbox to \hsize{\folio \hfil {\scten Journal of Polemical Economy}}}
+\headline={\ifodd\pageno\rightheadline \else\leftheadline\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\TitleFont=\fourteenhelvB
+\let\AuthorFont=\twelvehelv
+
+\def\title#1{\DoLeftTitle{#1}}
+
+\def\author#1{\DoLeftAuthor{#1}}
+
+\def\affil#1{\global\setbox\affilbox\hbox{\nineit\noindent #1 \hfil}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{\eightpoint #1}}
+
+\def\date#1{\global\setbox\datebox\vbox{\tenrm #1 \hfil}}
+
+\def\abstract#1{\global\setbox\abstractbox\vbox
+ {\eightpoint\hsize=23pc \noindent #1}}
+
+\def\keywords#1{}
+\def\address#1{}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Sections and subsections
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\SectionFont=\tenbf
+\RomanSectiontrue
+
+\def\section#1\par{\DoLeftSection{#1}}
+
+\def\subsection#1\par{\BigBreak\noindent
+ {\it #1}
+ \nobreak\medskip\noindent}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\tenpoint
+
+\def\Refs{\vskip.5in\noindent{\tenpoint\bf References}\vskip 2pc\RefFont}
+
+\def\SetRef{\vskip 1pt
+
+ \ifjour\jourfalse\vbox{\HangRef
+ \unhbox\bybox\space ``\unhbox\paperbox .''
+ {\unhbox\jourbox } \unhbox\volbox
+ \ifvoid\nobox\relax\else no. \unhbox\nobox \fi
+ \space (\unhbox\yrbox): \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space {\it \unhbox\bookbox}.
+ \unhbox\publaddrbox :
+ \unhbox\publbox , \unhbox\yrbox.\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space (\unhbox\yrbox) ``\unhbox\paperbox,'' in
+ {\it \unhbox\bookbox}, ed. {\rm \unhbox\editorbox}.
+ \unhbox\publaddrbox : \unhbox\publbox \ifvoid\pagesbox\relax
+ \else, \unhbox\pagesbox\fi .\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{\HangRef
+ \unhbox\bybox\space(\unhbox\yrbox)
+ ``\unhbox\paperbox,'' \unhbox\paperinfobox .\par}\fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\titlehead{\hfil}
+\def\titlefoot{\hfil}
+
+\def\DoTop{\Reset
+\line{\box\titlebox\hfil}
+\vskip 4.5pc
+\hrule
+\ifvoid\thanksbox\relax\else\vfootnote{}
+ {\eightpoint\unhbox\thanksbox\endfnote}\fi
+\vskip 1.1pc
+\line{\box\authorbox\hfil}
+\vskip .5pc
+\line{\box\affilbox\hfil}
+\vskip 3.5pc
+\line{\hfil\box\abstractbox\hfil}
+\vskip 3pc}
+
+\def\topmatter{\relax}
+\def\endtopmatter{\DoTop}
+\def\document{\DoPaper\noindent}
+\def\DoPaper{\relax}
+
+\tenpoint
+\parindent=12pt
+\def\footnoterule{} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/ppt.sty b/Master/texmf-dist/tex/plain/vertex/ppt.sty
new file mode 100644
index 00000000000..f19b8b0dc0f
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/ppt.sty
@@ -0,0 +1,181 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This is the ppt.sty (Preprint style) for VerTeX
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Special fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\twelveHelv=cmss10 at 12pt
+\font\fourteenHelvB=cmss10 at 14pt
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=6.5 true in
+\vsize=8.9 true in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%None in this style
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newbox\covertitlebox
+\newbox\coverauthorbox
+
+\def\DoCoverTitle#1{\titlepage\global
+ \CenterBox
+ \covertitlebox
+ \fourteenHelvB
+ {16pt}
+ {#1}}
+
+\def\DoCoverAuthor#1{
+ \CenterBox
+ \coverauthorbox
+ \twelveHelv
+ {14pt}
+ {#1}}
+
+\def\TitleFont{\tenpoint\bf}
+\def\AuthorFont{\tenpoint\rm}
+
+\def\title#1{\DoCoverTitle{#1}\DoCenteredTitle{#1}}
+
+\def\author#1{\DoCoverAuthor{#1}\DoCenteredAuthor{#1}}
+
+\def\affil#1{\global\setbox\affilbox
+ \vbox{\halign{\tenpoint\it\hfil##\hfil\cr#1\crcr}}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{\eightpoint #1}}
+
+\def\date#1{\global\setbox\datebox\vbox{\hfil\tenrm #1 \hfil}}
+
+\def\version#1{\global\setbox\versionbox\vbox{\hfil\tenrm Current version: #1 \hfil}}
+
+\long\def\abstract#1{\global\setbox\abstractbox\hbox{\noindent{\bf Abstract. }\tenpoint#1}}
+
+\def\keywords#1{\global\setbox\keywordsbox\hbox{\noindent{\bf Keywords. }#1}}
+
+\def\address#1{\global\setbox\addressbox\hbox{\noindent{\bf Address. }#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Sections and subsections
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\SectionFont{\tenpoint\bf}
+
+\def\section#1\par{\DoLeftSection{#1}}
+
+\def\subsection#1\par{\BigBreak\noindent
+ {\it #1}
+ \nobreak\medskip\noindent}
+
+\outer\def\proclaim #1. #2\par{\medbreak
+ \noindent{\bf#1.\enspace}{\sl#2}\par
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\tenpoint
+
+\def\endref{\SetRef\vskip.5pc}
+
+\def\Refs{\vskip1in plus .5in minus .5in\goodbreak
+ \noindent{\hfill\tenpoint\bf References\hfill}
+ \vskip 2pc\RefFont}
+
+\def\SetRef{
+
+ \ifjour\jourfalse\vbox{\HangRef
+ \unhbox\bybox\space(\unhbox\yrbox) ``\unhbox\paperbox,''
+ \unhbox\jourbox, \unhbox\volbox,
+ \ifvoid\nobox\relax\else\unhbox\nobox, \fi
+ \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space (\unhbox\yrbox)
+ {\it \unhbox\bookbox}.
+ \unhbox\publaddrbox :
+ \unhbox\publbox .\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space (\unhbox\yrbox) ``\unhbox\paperbox,'' in
+ {\it \unhbox\bookbox}, ed. {\rm \unhbox\editorbox}.
+ \unhbox\publaddrbox : \unhbox\publbox \ifvoid\pagesbox\relax
+ \else, \unhbox\pagesbox\fi .\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{\HangRef
+ \unhbox\bybox\space(\unhbox\yrbox)
+ ``\unhbox\paperbox,'' \unhbox\paperinfobox .\par}\fi
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define controls
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\topmatter{\relax}
+\def\endtopmatter{\nopagenumbers\DoCover}
+\def\document{\DoPaper\noindent}
+\def\prelim{\global\PreliminaryVersiontrue}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the cover
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\titlehead{\hfil}
+\def\titlefoot{\hfil}
+
+\def\DoCover{\nopagenumbers
+\ifPreliminaryVersion\line{\hfil Preliminary Draft}\fi
+\vglue 2in plus 1in minus 1in
+\line{\hfil\box\covertitlebox\hfil}
+\vskip 1pc
+\line{\hfil\vbox{\halign{\tenrm\hfil##\hfil\cr by\crcr}}\hfil}
+\vskip 1pc
+\line{\hfil\box\coverauthorbox\hfil}
+\ifvoid\affilbox\relax\else
+\line{\hfil\box\affilbox\hfil}\fi
+\vskip 1pc
+\box\datebox
+\box\versionbox
+\vskip .5in%
+\noindent\unhbox\abstractbox\vskip 2pc
+\ifvoid\keywordsbox\relax\else\noindent\unhbox\keywordsbox\fi
+\vskip 2pc
+\ifvoid\addressbox\relax\else\noindent\unhbox\addressbox\fi
+\vfil\eject}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\def\DoPaper{\Reset
+ \global\footline={\hfil\tenrm\number\pageno\hfil}
+ \vbox{\hfil\box\titlebox\hfil}
+ \vskip .5pc
+ \vbox{\hfil\box\authorbox\hfil}
+ \ifvoid\thanksbox\relax\else\vfootnote{}{
+ \eightpoint\ifdouble\vrule height 14pt width 0pt\fi\unhbox\thanksbox\endfnote}\fi
+ \vskip 2pc}
+
+\parindent=15pt
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Use a footnote rule in this style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\footnoterule{\kern-3pt\hrule width 2truein \kern 2.6pt}
diff --git a/Master/texmf-dist/tex/plain/vertex/qje.sty b/Master/texmf-dist/tex/plain/vertex/qje.sty
new file mode 100644
index 00000000000..095868378e9
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/qje.sty
@@ -0,0 +1,158 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Quartered Journal of Economics
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Special fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\sctwelve=cmcsc10 scaled\magstep1
+\font\scten=cmcsc10
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=25pc
+\vsize=43pc
+\hoffset=1in
+\voffset=1in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\nopagenumbers
+\def\rightheadline{\hbox to\hsize{\hfil\tenpoint\uppercase{\runname}\hfil{\folio}}}
+\def\leftheadline{\hbox to \hsize{\folio \hfil {\tenpoint\sl QUARTERED JOURNAL OF ECONOMICS}\hfil}}
+\headline={\ifodd\pageno\rightheadline\else\leftheadline\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\TitleFont{\sctwelve}
+\def\AuthorFont{\scten}
+
+\def\title#1{\DoCenteredTitle{#1{$^*$}}}
+
+\def\author#1{\DoCenteredAuthor{#1}}
+
+\def\affil#1{\global\setbox\affilbox\hbox{\tenit\noindent #1}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{{\eightpoint #1\par}}}
+
+\def\date#1{\global\setbox\datebox\vbox{\tenrm #1 \hfil}}
+\def\version#1{}
+
+\def\abstract#1{\global\setbox\abstractbox\vbox{\hsize=23pc\ninepoint #1}}
+
+\def\keywords#1{}
+\def\address#1{}
+
+\def\topmatter{\relax}
+\def\endtopmatter{\DoTop}
+\def\document{\DoPaper\noindent}
+
+\let\SectionFont=\scten
+\RomanSectiontrue
+
+\def\section#1\par{\DoCenteredSection{#1}}
+
+\def\subsection#1\par{\BigBreak\noindent
+ {\it #1\hfil}\nobreak\medskip\noindent}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Math conventions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\outer\def\proclaim #1. #2\par{\medbreak
+ \noindent{\scten#1.\enspace}{\rm#2}\par
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+\def\proof{\goodbreak\noindent{\scten Proof.\enspace}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Redefine figure macro
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\Figure#1#2#3{
+ \midinsert
+ \vbox to #2{\vfil}
+ \hbox to \hsize{\vbox{\parindent=0pt%
+ \centerline{{\scnine Figure \number#1}}}}
+ \endinsert}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\eightpoint
+
+\def\DoNotes{
+\ifvoid\endnoteins\relax\else
+\vskip2pc
+\noindent{\eightpoint\rm NOTES}
+\medskip
+\unvbox\endnoteins
+\fi}
+
+\def\DoRefs{\vskip 2pc
+\parindent=0pt
+\centerline{{\scten References}}
+\vskip 1pc
+\RefFont
+}
+
+\def\Refs{\vskip3pc
+\DoRefs}
+
+\def\by#1{\setbox\bybox\hbox{\ninepoint#1}}
+
+\def\SetRef{
+ \ifjour\jourfalse\vbox{\parshape=0\hangindent=3pc\hangafter=2
+ \unhbox\bybox, ``\unhbox\paperbox,''
+ \unhbox\jourbox, {\unhbox\volbox} (\unhbox\yrbox) \ifvoid\nobox\relax\else (\unhbox\nobox), \fi
+ \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{\parshape=0\hangindent=3pc\hangafter=2
+ \unhbox\bybox\space {\it \unhbox\bookbox} (\unhbox\publaddrbox :
+ \unhbox\publbox , \unhbox\yrbox).\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{
+ \unhbox\bybox, ``\unhbox\paperbox,''
+ {\it \unhbox\bookbox}, {\rm \unhbox\editorbox}, eds.
+ (\unhbox\publaddrbox : \unhbox\publbox, \unhbox\yrbox).\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{
+ \unhbox\bybox\space(\unhbox\yrbox)
+ ``\unhbox\paperbox, '' \unhbox\paperinfobox .\par}\fi
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\titlehead{\hfil}
+\def\titlefoot{\vbox{\sixpoint
+ \line{$\copyright$ 1986 by the President and Fellows of Havahd College. Published by John Wiley \& Sons, Inc.}
+ \line{{\it The\ Quartered\ Journal\ of\ Economics}, August 1986\hfil CCC 0033--5533/030455--16\$04.00}}}
+
+
+\def\DoTop{\Reset
+\vskip 2pc
+\line{\hfil\box\titlebox\hfil}
+\ifvoid\thanksbox\relax\else
+ \vfootnote{$^*$}{\eightpoint \unhbox\thanksbox \par}\fi
+\vskip 1pc
+\line{\hfil\box\authorbox\hfil}
+\vskip1pc
+\line{\hfil\box\abstractbox\hfil}
+\vskip2pc}
+
+\def\DoPaper{\relax}
+
+\tenpoint
+\parindent=15pt
+\def\footnoterule{} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/restud.sty b/Master/texmf-dist/tex/plain/vertex/restud.sty
new file mode 100644
index 00000000000..2c41e546694
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/restud.sty
@@ -0,0 +1,193 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Review of Economic Students --- style file
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%Since this style uses the notes-at-end by default, it is necessary to
+% put \Notes on a line by itself right before \Refs in order to
+% get the Acknowlegement and Notes printed.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Special fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\sixteenrmB=cmbx10 scaled \magstep4
+\font\sctwelve=cmcsc10 scaled\magstep1
+\font\scten=cmcsc10
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set pagesize
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\hsize=32pc
+\vsize=51pc
+\hoffset=1in
+\voffset=1in
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headline and footline
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\nopagenumbers
+\def\rightheadline{\hbox to\hsize{\tenrm\hfil\uppercase{\runname}\hskip 3em\uppercase{\runtitle}\hfil\folio}}
+\def\leftheadline{\hbox to \hsize{\tenrm\folio \hfil {\scten REVIEW OF ECONOMIC STUDENTS}\hfil}}
+\headline={\ifodd\pageno\rightheadline\else\leftheadline\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define topmatter style
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\TitleFont{\sixteenrmB}
+\def\AuthorFont{\sctwelve}
+
+\def\DoCenteredTitle#1{
+ \titlepage\global
+ \CenterBox
+ \titlebox
+ \TitleFont
+ {20pt}
+ {#1}}
+
+\def\title#1{\DoCenteredTitle{#1}}
+
+\def\author#1{\DoCenteredAuthor{#1}}
+
+\def\affil#1{\global\setbox\affilbox\hbox{\tenit\noindent #1}}
+
+\def\thanks#1{\global\setbox\thanksbox\hbox{\eightpoint
+ {\it Acknowledgement.}\space#1\par}}
+
+\def\date#1{\global\setbox\datebox\vbox{\tenrm #1 \hfil}}
+
+\def\abstract#1{\global\setbox\abstractbox
+ \vbox{\eightpoint\hsize=28pc #1}}
+
+\def\keywords#1{}
+\def\address#1{}
+
+\def\topmatter{\relax}
+\def\endtopmatter{\DoTop}
+\def\document{\DoPaper\noindent}
+
+\let\SectionFont=\scten
+\RomanSectionfalse
+
+\def\section#1\par{\DoCenteredSection{\uppercase{#1}}}
+
+\def\subsection#1\par{\BigBreak\noindent
+ {\it \number\SectionNumber.\number\SubsectionNumber.\enspace #1\hfil}
+ \nobreak\medskip\noindent}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Redefine \fnote since REStud has notes at end
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fnote#1{$^{\the\FootNumber}$
+\insert\endnoteins{\eightpoint\smallskip\number\FootNumber. #1\par}
+\global\advance\FootNumber by 1}
+
+%\def\fnote#1{$^{\the\FootNumber}$
+%\insert\endnoteins{\eightpoint
+% \begingroup\smallskip\number\FootNumber.\space#1\par\endgroup}
+% \global\advance\FootNumber by 1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Math conventions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\outer\def\proclaim #1. #2\par{\medbreak
+ {\tenpoint\bf#1.\enspace}{\sl#2}\par
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+\def\proof{\goodbreak{\it Proof.\enspace}}
+
+\def\qed{$\parallel$}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Redefine figure macro
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\Figure#1#2#3{
+ \midinsert
+ \vbox to #2{\vfil}
+ \hbox to \hsize{\vbox{\parindent=0pt
+ {\scten Figure \number#1}. \rm #3}}
+ \endinsert}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\let\RefFont=\eightpoint
+
+\def\Notes{\ifvoid\thanksbox\relax\else
+\vfill\supereject
+\vbox{\hsize=28pc\eightpoint\noindent\unhbox\thanksbox\par}\fi
+\ifvoid\endnoteins\relax\else
+ \bigskip
+ \line{\eightpoint\rm NOTES \hfil}
+ \medskip
+ \unvbox\endnoteins
+\fi}
+
+\def\DoRefs{\BigBreak
+{\noindent\eightpoint\rm REFERENCES}
+\vskip .5pc
+\RefFont}
+
+\def\Refs{\DoRefs}
+
+\def\by#1{\setbox\bybox\hbox{\eightpoint\sc\expandafter\uppercase{#1}}}
+
+\def\SetRef{\vskip 2pt
+
+ \ifjour\jourfalse\vbox{\HangRef
+ \unhbox\bybox\space (\unhbox\yrbox), ``\unhbox\paperbox'',
+ \unhbox\jourbox, {\bf \unhbox\volbox}
+ \ifvoid\nobox\relax\else (\unhbox\nobox), \fi
+ \unhbox\pagesbox. \par}\fi
+
+ \ifbook\bookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space {\it \unhbox\bookbox}. \unhbox\publaddrbox :
+ \unhbox\publbox , \unhbox\yrbox.\par}\fi
+
+ \ifinbook\inbookfalse\par\vbox{\HangRef
+ \unhbox\bybox\space (\unhbox\yrbox): ``\unhbox\paperbox,'' in
+ {\it \unhbox\bookbox}, ed. by {\rm \unhbox\editorbox}.
+ \unhbox\publaddrbox : \unhbox\publbox \ifvoid\pagesbox\relax
+ \else, \unhbox\pagesbox .\fi\par}\fi
+
+ \ifunpublished\unpublishedfalse\par\vbox{\HangRef
+ \unhbox\bybox\space(\unhbox\yrbox):
+ ``\unhbox\paperbox, '' \unhbox\paperinfobox .\par}\fi
+}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Set the paper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\titlehead{\vbox{\eightpoint
+\line{Review of Economic Students (1986) LIII, 001--002 \hfil 0034-6527/86/000100001\$2.00}
+\line{$\copyright$ 1986 The Society for Limited Economic Analysis \hfil}
+}}
+\def\titlefoot{\hfil}
+
+\def\DoTop{\Reset
+\vglue 2pc
+\line{\hfil\box\titlebox\hfil}
+\vskip 2pc
+\line{\hfil\box\authorbox\hfil}
+\vskip.25pc
+\line{\hfil\box\affilbox\hfil}
+\vskip 2pc
+\line{\hfil\box\abstractbox\hfil}
+\vskip2pc}
+
+\def\DoPaper{\relax}
+
+\tenpoint
+\parindent=20pt
+\def\footnoterule{} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/test.tex b/Master/texmf-dist/tex/plain/vertex/test.tex
new file mode 100644
index 00000000000..1c6b76048dd
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/test.tex
@@ -0,0 +1,121 @@
+\topmatter
+
+\title{Estimating Risk Aversion from \cr
+ Arrow-Debreu Portfolio Choice}
+
+\runningname{Hal R. Varian}
+\runningtitle{Estimating Risk Aversion}
+
+\thanks{This research was supported in part by the National Science
+Foundation. I would like to thank Richard Green for helpful remarks. I am
+especially grateful to an anonymous referee whose comments significantly
+improved the statements and proofs of the results.}
+
+\author{Hal R. Varian}
+
+\affil{University of Michigan}
+
+\date{October 27, 1984}
+
+\version{\today}
+
+\abstract{This paper derives necessary and sufficient conditions for
+Arrow-Debreu choices of contingent consumption to be compatible with the
+maximization of a state independent expected utility function that exhibits
+increasing or decreasing absolute risk aversion, or increasing or
+decreasing relative risk aversion. The conditions can be used to bound
+different measures of risk aversion based on a single observation of
+Arrow-Debreu portfolio choice.}
+
+\keywords{Revealed preference, expected utility, risk aversion, portfolio
+choice.}
+
+
+\address{Hal R. Varian, Department of Economics, University of Michigan,
+Ann Arbor, MI 48109}
+
+\endtopmatter
+
+\document
+
+\noindent {\scten The expected utility} hypothesis forms the basis for much
+of our understanding of investor behavior under uncertainty. It is
+commonly agreed that a well-behaved expected utility function should be an
+increasing and concave function of wealth, or, equivalently, that its first
+derivative should be positive and its second derivative should be negative.
+It is also widely accepted that the Arrow-Pratt measure of absolute risk
+aversion should be declining with wealth. There is much less agreement
+about the behavior of the Arrow-Pratt measure of {\it relative\/} risk
+aversion, although some investigators have argued that it should increase
+with wealth.
+
+In this note I derive necessary and sufficient conditions for choices of
+contingent consumption across states of nature to satisfy various
+hypotheses about the behavior of these measures of risk aversion. If the
+portfolio choice behavior of the consumer is consistent with the conditions
+I derive, then the conditions can be used to bound the Arrow--Pratt
+measures of absolute and relative risk aversion. The conditions are
+derived using methods of the ``nonparametric approach'' to optimizing
+behavior introduced by Afriat (1967) and extended by Diewert (1973),
+Diewert and Parkan (1978), and Varian (1982), (1983a). Applications of
+these methods to choice under uncertainty include Dybvig and Ross (1982),
+Green and Srivastava (1983), and Varian (1983b).
+
+\section The Maximization Problem
+
+Consider an investor who chooses a pattern of consumption across states of
+nature to solve the following problem:
+ $$\max \sum_{s=1}^S \pi_s u(c_s) $$
+
+\Refs
+
+\ref
+\by{Afriat, S.} \yr{1967a} \paper{The Construction of a Utility
+Function from Expenditure Data} \jour{International Economic Review}
+\vol{8} \pages{67--77}
+\endref
+
+\ref
+\by{Afriat, S.} \yr{1967b} \paper{The Construction of Separable
+Utility Functions from Expenditure Data} \paperinfo{mimeo, Purdue}
+\endref
+
+\ref \by{Breeden, D. and R. Litzenberger} \yr{1978} \paper{Prices of
+State-Contingent Claims Implicit in Option Prices} \jour{Journal of
+Business} \pages{621--651}
+\endref
+
+\ref
+\by{Diewert, E.} \yr{1973} \paper{Afriat and Revealed Preference Theory}
+\jour{Review of Economic Studies} \vol{40} \pages{419--426}
+\endref
+
+\ref \by{Diewert, E. and C. Parkan} \yr{1978} \paper{Tests for Consistency
+of Consumer Data and Nonparametric Index Numbers} \paperinfo{Working Paper
+78-27, University of British Columbia}
+\endref
+
+\ref \by{Dybvig, P. and S. Ross} \yr{1982} \paper{Portfolio Efficient Sets}
+\jour{Econometrica} \pages{1525--1546}
+\endref
+
+\ref \by{Green, R. and S. Srivastava} \yr{1983} \paper{Preference
+Restrictions, Asset Returns, and Consumption} \paperinfo{mimeo,
+Carnegie--Mellon University}
+\endref
+
+\ref \by{Varian, H.} \yr{1982} \paper{The Nonparametric Approach to Demand
+Analysis} \jour{Econometrica} \vol{50} \pages{945--973}
+\endref
+
+\ref
+\by{Varian, H.} \yr{1983a} \paper{Nonparametric Tests of Models of
+Consumer Behavior} \jour{Review of Economic Studies} \vol{50}
+\pages{99--110}
+\endref
+
+\ref
+\by{Varian, H.} \yr{1983b} \paper{Nonparametric Tests of Models of
+Investor Behavior} \jour{Journal of Financial and Quantitative Analysis}
+\vol{18} \pages{269--278}
+\endref
diff --git a/Master/texmf-dist/tex/plain/vertex/twocol.tex b/Master/texmf-dist/tex/plain/vertex/twocol.tex
new file mode 100644
index 00000000000..8c2a9525ca2
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/twocol.tex
@@ -0,0 +1,74 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% two colume output from TUGboat
+% vol. 6, No. 1 (1985) by Craig Platt
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\newif\iftitle %true if this is a titlepage
+ \global\titlefalse
+
+
+\def\titlepage{\global\titletrue}
+
+\def\onepageout#1{\shipout\vbox{%
+ \offinterlineskip%
+ \vbox to 3pc{%
+ \iftitle \global\titlefalse%
+ \else\ifodd\pageno\rightheadline\else\leftheadline\fi\fi \vfill}%
+ \vbox to \vsize{#1%
+ \ifvoid\footins\else%
+ \vskip\skip\footins \kern-3pt%
+% \hrule height\ruleht width\hsize \kern-\ruleht \kern3pt%
+ \unvbox\footins\fi%
+ \boxmaxdepth=\maxdepth}}%
+\advancepageno}
+
+\newdimen\colwidth \newdimen\bigcolheight %%%1
+\colwidth=13pc \bigcolheight=98pc %%%2
+
+\output{\onepageout{\unvbox225}}
+
+\newbox\partialpage
+\newdimen\savesize %%%3
+
+\def\begindoublecolumns{\begingroup
+ \savesize=\vsize %%%4
+ \output={\global\setbox\partialpage=\vbox{\unvbox255}}\eject
+ \output={\doublecolumnout} \hsize=\colwidth \vsize=\bigcolheight
+ \advance\vsize by -2\ht\partialpage} %%%5
+
+\def\enddoublecolumns{\output={\balancecolumns}\eject
+ \global\output={\onepageout{\unvbox255}} %%%6
+ \global\vsize=\savesize %%%7
+ \endgroup \pagegoal=\vsize}
+
+\def\doublecolumnout{\dimen0=\pageheight
+ \advance\dimen0 by-\ht\partialpage \splittopskip=\topskip
+ \setbox0=\vsplit255 to\dimen0
+ \setbox2=\vsplit255 to\dimen0
+ \onepageout\pagesofar
+ \global\vsize=\bigcolheight %%%8
+ \unvbox255 \penalty\outputpenalty}
+
+\def\pagesofar{\unvbox\partialpage
+ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}}
+
+\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen0=\ht0
+ \advance\dimen0 by\topskip \advance\dimen0 by-\baselineskip
+ \divide\dimen0 by2 \splittopskip=\topskip
+ {\vbadness=10000 \loop \global\setbox3=\copy0
+ \global\setbox1=\vsplit3 to\dimen0
+ \ifdim\ht3>\dimen0 \global\advance\dimen0 by1pt \repeat}
+ \setbox0=\vbox to\dimen0{\unvbox1}
+ \setbox2=\vbox to\dimen0{\unvbox3}
+ \global\output={\balancingerror} %%%9
+ \pagesofar}
+
+\newhelp\balerrhelp{Please change the page %%%10
+ into one that works.} %%%11
+
+\def\balancingerror{\errhelp=\balerrhelp %%%12
+ \errmessage{Page can't be balanced} %%%13
+ \onepageout{\unvbox255}} %%%14
+
+ \ No newline at end of file
diff --git a/Master/texmf-dist/tex/plain/vertex/vertest.tex b/Master/texmf-dist/tex/plain/vertex/vertest.tex
new file mode 100644
index 00000000000..d22e577f633
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/vertest.tex
@@ -0,0 +1,34 @@
+\input vertex
+\input ppt.sty
+\input test
+\vfill\eject
+
+\input jep.sty
+\input test
+\vfill\eject
+
+\input jpe.sty
+\input test
+\vfill\eject
+
+\input jet.sty
+\input test
+\vfill\eject
+
+\input ecnmet.sty
+\input test
+\vfill\eject
+
+\input qje.sty
+\input test
+\vfill\eject
+
+\input aer.sty
+\input test
+\vfill\eject
+
+\input restud.sty
+\input test
+\vfill\eject
+
+\bye
diff --git a/Master/texmf-dist/tex/plain/vertex/vertex.tex b/Master/texmf-dist/tex/plain/vertex/vertex.tex
new file mode 100644
index 00000000000..9564e40e3c5
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vertex/vertex.tex
@@ -0,0 +1,491 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% VerTeX
+% Hal Varian
+% August 1987
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% verbatim macros from TeXbook, page 380--382.
+% to invoke, type: \verbatim# TeX stuff ...#
+% Any character can be used in place of #.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\uncatcodespecials{\def\do##1{\catcode`##1=12}\dospecials}
+
+\def\setupverbatim{\tt%
+\def\par{\leavevmode\endgraf}\catcode`\`=\active%
+\obeylines\uncatcodespecials\obeyspaces}%
+{\obeyspaces\global\let =\ }%
+{\catcode`\`=\active \gdef`{\relax\lq}}
+
+\def\verbatim{\begingroup\setupverbatim\doverbatim}
+\def\doverbatim#1{\def\next##1#1{##1\endgroup}\next}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Load various fonts
+% there are both computer modern and almost modern fonts
+% available; comment out the ones you aren't using
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\sctwelve=cmcsc10 scaled\magstep1
+\font\scten=cmcsc10
+
+\font\tenrm=cmr10
+\font\teni=cmmi10
+\font\tensy=cmsy10
+\font\tenbf=cmbx10
+\font\tenit=cmti10
+
+\font\ninerm=cmr9 \font\eightrm=cmr8 \font\sixrm=cmr6
+\font\ninei=cmmi9 \font\eighti=cmmi8 \font\sixi=cmmi6
+\font\ninesy=cmsy9 \font\eightsy=cmsy8 \font\sixsy=cmsy6
+\font\ninebf=cmbx9 \font\eightbf=cmbx8 \font\sixbf=cmbx6
+\font\nineit=cmti9 \font\eightit=cmti8
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+% Almost Modern fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\font\sctwelve=amcsc10 scaled\magstep1
+%\font\scten=amcsc10
+%
+%\font\tenrm=amr10
+%\font\teni=ammi10
+%\font\tensy=amsy10
+%\font\tenbf=ambx10
+%\font\tenit=amti10
+%
+%\font\ninerm=amr9 \font\eightrm=amr8 \font\sixrm=amr6
+%\font\ninei=ammi9 \font\eighti=ammi8 \font\sixi=ammi6
+%\font\ninesy=amsy9 \font\eightsy=amsy8 \font\sixsy=amsy6
+%\font\ninebf=ambx9 \font\eightbf=ambx8 \font\sixbf=ambx6
+%\font\nineit=amti9 \font\eightit=amti8
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define font families
+% (see TeXbook, p. 414-5)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\catcode`@=11
+\newskip\ttglue
+
+\def\tenpoint{\def\rm{\fam0\tenrm}%
+\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm%
+\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei%
+\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy%
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex%
+\textfont\itfam=\tenit \def\it{\fam\itfam\tenit}%
+\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf%
+\scriptscriptfont\bffam=\fivebf \def\bf{\fam\bffam\tenbf}%
+\tt \ttglue=.5em plus.25em minus.15em%
+\ifdouble\normalbaselineskip=1.5pc plus .5pt minus .5pt \else\normalbaselineskip=12pt\fi
+\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width0pt}%
+\let\sc=\eightrm \normalbaselines\rm}
+
+\def\ninepoint{\def\rm{\fam0\ninerm}%
+\textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm%
+\textfont1=\ninei\scriptfont1=\sixi\scriptscriptfont1=\fivei%
+\textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy%
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex%
+\textfont\itfam=\nineit\def\it{\fam\itfam\nineit}%
+\textfont\bffam=\ninebf\scriptfont\bffam=\sixbf%
+\scriptscriptfont\bffam=\fivebf\def\bf{\fam\bffam\ninebf}%
+\tt \ttglue=.5em plus.25em minus.15em %
+\normalbaselineskip=11pt%
+\setbox\strutbox=\hbox{\vrule height8pt depth3pt width0pt}%
+\let\sc=\sevenrm\let\big=\ninebig\normalbaselines\rm}
+
+\def\eightpoint{\def\rm{\fam0\eightrm}%
+\textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm%
+\textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei%
+\textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy%
+\textfont3=\tenex\scriptfont3=\tenex \scriptscriptfont3=\tenex%
+\textfont\itfam=\eightit \def\it{\fam\itfam\eightit}%
+\textfont\bffam=\eightbf \scriptfont\bffam=\sixbf%
+\scriptscriptfont \bffam=\fivebf \def\bf{\fam\bffam\eightbf}%
+\tt \ttglue=.5em plus.25em minus.15em%
+\normalbaselineskip=9pt%
+\setbox\strutbox=\hbox{\vrule height7pt depth2pt width0pt}%
+\let\sc=\sixrm \let\big=\eightbig\normalbaselines\rm}
+
+\def\tenbig#1{{\hbox{$\left#1\vbox to 8.5pt{}\right.\n@space$}}}
+\def\ninebig#1{{\hbox{$\textfont0=\tenrm\textfont2=\tensy
+ \left#1\vbox to7.25pt{}\right.\n@space$}}}
+\def\eightbig#1{{\hbox{$\textfont0=\ninerm\textfont2=\ninesy
+ \left#1\vbox to6.5pt{}\right.\n@space$}}}
+
+%Only a partial setup for 6-point, since it is used so rarely
+\def\sixpoint{\def\rm{\fam0\sixrm}% switch to 6-point type
+ \textfont0=\sixrm \textfont2=\sixsy
+ \textfont\itfam=\sixi \def\it{\fam\itfam\sixi}%
+ \normalbaselineskip=7.5pt\normalbaselines\rm}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \fnote -- numbered footnotes in small type -- from TeXbook, p. 416
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%register for automatic footnote numbering
+\newcount\FootNumber
+\FootNumber=1
+
+%insert for holding footnotes to print as endnotes at end of paper
+
+\newinsert\endnoteins %define a new insert
+\skip\endnoteins=0pt %space added when endnote is present
+\count\endnoteins=0 %magnification factor
+\dimen\endnoteins=\maxdimen %maximum endnotes per page
+
+%print endnotes
+\def\PrintEndNotes{\vfill\eject\ifvoid\endnoteins
+ \else\centerline{\bf Footnotes}\parskip=\medskipamount
+ \bigskip\unvbox\endnoteins\fi}
+
+%footnote macro
+% Write notes in 8 point
+% Write to \endnotesins for end notes
+
+
+\def\fnote#1{\footnote{$^{\the\FootNumber}$}{\eightpoint #1\endfnote}
+\insert\endnoteins{\tenpoint\medskip\noindent\number\FootNumber. #1\par
+\ifdouble\bigskip\fi}%
+\global\advance\FootNumber by 1}
+
+% We must end paragraph to restore original baselines and
+% therefore have to skip up the amount of the baselineskip to keep
+% the space between footnotes right.
+
+\def\endfnote{\par\vskip-\normalbaselineskip}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \makeheadline -- redefine to omit headline on title pages (p. 364
+% of TeXBook)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\iftitle %true if this is a titlepage
+ \global\titlefalse
+
+\def\titlepage{\global\titletrue} %set flag if this is a Titlepage
+
+\def\titlehead{\hfil}
+\def\titlefoot{\hfil}
+
+\def\makeheadline{\vbox to 0pt{\vskip-22.5pt%
+ \line{\vbox to8.5pt{}%
+ \iftitle\titlehead
+ \else\the\headline\fi}\vss}\nointerlineskip}
+
+\def\makefootline{\baselineskip=24pt
+ \iftitle\line{\titlefoot}\global
+ \titlefalse\else\line{\the\footline}\fi}
+
+%no footnoterule by default; can reset in sty files.
+\def\footnoterule{}
+
+\def\pagecontents{\ifvoid\topins\else
+\unvbox\topins\fi
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \ifvoid\footins\else % Footnote info is present
+ \vskip\skip\footins \footnoterule \unvbox\footins\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Create various boxes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newbox\titlebox
+\newbox\authorbox
+\newbox\affilbox
+\newbox\addressbox
+\newbox\keywordsbox
+\newbox\datebox
+\newbox\versionbox
+\newbox\thanksbox
+\newbox\abstractbox
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Create various counters
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcount\SectionNumber\SectionNumber=1
+\newcount\SubsectionNumber\SubsectionNumber=1
+\newcount\EquationNumber\EquationNumber=0
+\newcount\FigureNumber\FigureNumber=0
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \Reset -- to reset all counters and \pageno
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\Reset{\global\SectionNumber=1\global\SubsectionNumber=1
+\global\EquationNumber=0\global\FigureNumber=0\global\pageno=1
+\global\FootNumber=1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \today -- gives today's date
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\today{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+
+%can reset this in sty files.
+\def\version#1{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Some math definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%can redefine in .sty files
+\def\proof{\medbreak\noindent{\it Proof. }}
+
+%can redefine in .sty files
+\def\qed{\vrule height8pt width4pt depth0pt\par\medskip}
+
+%display mode partial derivatives
+\def\D#1#2{{{\partial #1} \over {\partial #2}}}
+
+%math mode partial derivations
+\def\d#1#2{\partial #1/\partial #2}
+
+%for naming equations
+\def\Equation#1{\global\advance\EquationNumber by 1
+ \global\edef#1{\number\EquationNumber}(#1)}
+
+%for roman text in math or display mode
+\def\text#1{\hbox{\rm #1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Figures -- use \Fig\junk the first time you reference a figure, and
+% use \Figure\junk{2in}{This figure is junk.} when you want
+% it to appear.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% \Fig -- for invoking figure
+%%% #1 is reference name for figure
+
+\def\Fig#1{\global\advance\FigureNumber by 1
+ \global\edef#1{\number\FigureNumber}Figure #1}
+
+%%% \Figure --- to have space reserved for figure.
+%%% #1 is reference name for figure
+%%% #2 is height of figure
+%%% #3 is caption for figure
+
+\def\Figure#1#2#3{
+ \midinsert
+ \vbox to #2{\vfil}
+ \hbox to \hsize{\vbox{\parindent=0pt%
+ {\bf Figure \number#1}.\space \rm #3}}
+ \endinsert}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \boxit -- this will surround a box by rules
+% useful for debugging and design purposes
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\ifDoBoxes
+\DoBoxestrue
+
+\def\boxit#1{\ifDoBoxes\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}
+\else\vbox{\hbox{\vbox{#1}}}\fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% References
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%will set hanging indentation in amount specified by \parindent
+\def\HangRef{\hangindent\parindent\ignorespaces\noindent}
+
+\newif\ifbook
+\newif\ifjour
+\newif\ifinbook
+\newif\ifunpublished
+\newif\ifinbook
+
+\newbox\nobox
+\newbox\bybox
+\newbox\pagesbox
+\newbox\paperbox
+\newbox\yrbox
+\newbox\datebox
+\newbox\volbox
+\newbox\jourbox
+\newbox\bookbox
+\newbox\publbox
+\newbox\publaddrbox
+\newbox\editorbox
+\newbox\paperinfobox
+\newbox\bookinfobox
+
+\def\no#1{\setbox\nobox\hbox{#1}}
+\def\by#1{\setbox\bybox\hbox{#1}}
+\def\pages#1{\setbox\pagesbox\hbox{#1}}
+\def\paper#1{\setbox\paperbox\hbox{#1}}
+\def\yr#1{\setbox\yrbox\hbox{#1}}
+\def\date#1{\setbox\datebox\hbox{#1}}
+\def\vol#1{\setbox\volbox\hbox{\bf #1}}
+\def\jour#1{\setbox\jourbox\hbox{\it #1}\jourtrue}
+\def\book#1{\setbox\bookbox\hbox{\it #1}\booktrue}
+\def\inbook#1{\setbox\bookbox\hbox{\it #1}\inbooktrue}
+\def\editor#1{\setbox\editorbox\hbox{#1}}
+\def\publ#1{\setbox\publbox\hbox{#1}}
+\def\publaddr#1{\setbox\publaddrbox\hbox{#1}}
+\def\paperinfo#1{\setbox\paperinfobox\hbox{#1}\unpublishedtrue}
+
+\def\ref{\relax}
+\def\endref{\SetRef}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Headings
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\runningname#1{\edef\runname{#1}}
+\def\runningtitle#1{\edef\runtitle{#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \CenterBox and \LeftBox
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\CenterBox creates a vbox with several lines of centered text
+%modeled after TeXbook, p. 412
+% #1 name of box
+% #2 font used in box
+% #3 baselineskip in box
+% #4 text for box, lines separated by \cr
+%
+%\LeftBox does the same for left justified text
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\CenterBox#1#2#3#4{
+ \global\setbox#1=\vbox{\baselineskip=#3\halign{#2\hfil##\hfil\cr#4\crcr}}}
+
+\def\LeftBox#1#2#3#4{
+ \global\setbox#1=\vbox{\baselineskip=#3\halign{#2##\hfil\cr#4\crcr}}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \section and \subsection
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newbox\sectionbox
+
+\def\Romannumeral#1{\uppercase\expandafter{\romannumeral#1}}
+
+\newif\ifRomanSection\RomanSectionfalse
+
+% taken from TeXbook, p. 355, but changed the parameters so that
+% it won't fill out the page so readily. If you really want all
+% the pages to be the same size, use \let\BigBreak=\bigbreak
+
+\def\BigBreak{\vskip0pt plus .05\vsize\penalty-250
+ \vskip0pt plus-.05\vsize\bigskip\vskip\parskip}
+
+\def\DoCenteredSection#1{
+ \BigBreak
+ \SubsectionNumber=0
+ \CenterBox
+ \sectionbox
+ \SectionFont
+ \normalbaselineskip
+ {\ifRomanSection\Romannumeral\SectionNumber
+ \else\number\SectionNumber\fi.\enskip#1}
+ \line{\hfil\box\sectionbox\hfil}
+ \global\advance\SectionNumber by 1
+ \nobreak\medskip
+ \noindent}
+
+\def\DoLeftSection#1{
+ \BigBreak
+ \SubsectionNumber=0
+ \LeftBox
+ \sectionbox
+ \SectionFont
+ \normalbaselineskip
+ {\ifRomanSection{\Romannumeral\SectionNumber}
+ \else\number\SectionNumber\fi.\enskip#1}
+ \line{\box\sectionbox\hfil}
+ \global\advance\SectionNumber by 1
+ \nobreak\medskip
+ \noindent}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Titles and authors
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\DoCenteredTitle#1{
+ \titlepage\global
+ \CenterBox
+ \titlebox
+ \TitleFont
+ \normalbaselineskip
+ {#1}}
+
+\def\DoLeftTitle#1{
+ \titlepage\global
+ \LeftBox
+ \titlebox
+ \TitleFont
+ \normalbaselineskip
+ {#1}}
+
+\def\DoCenteredAuthor#1{
+ \CenterBox
+ \authorbox
+ \AuthorFont
+ \normalbaselineskip
+ {#1}}
+
+\def\DoLeftAuthor#1{
+ \LeftBox
+ \authorbox
+ \AuthorFont
+ \normalbaselineskip
+ {#1}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \prelim -- will write "preliminary verison" on cover
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\ifPreliminaryVersion
+ \global\PreliminaryVersionfalse
+
+\def\prelim{\PreliminaryVersiontrue}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% quote mode -- inserts and singlespaces
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\quote#1{\medskip{\normalbaselineskip=12pt\tenpoint
+ \narrower #1 \par}\smallskip}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \doublespace -- prints document in doublespace
+% \singlespace -- reverts to singlespace
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\ifdouble\doublefalse
+\def\doublespace{\global\doubletrue\tenpoint}
+\def\singlespace{\global\doublefalse\tenpoint}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% define dummys; will be redefined if needed in .sty files
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\runtitle#1{}
+\def\runname#1{}
+\def\titleheadline{\hfil}
+\def\titlefootline{\hfil}
+\overfullrule=0pt %so the black boxes don't print out in margins
+\def\enddocument{\relax}
diff --git a/Master/texmf-dist/tex/plain/vntex/dblaccnt.tex b/Master/texmf-dist/tex/plain/vntex/dblaccnt.tex
new file mode 100644
index 00000000000..295e899948b
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vntex/dblaccnt.tex
@@ -0,0 +1,51 @@
+% Copyright 2000-2005 Werner Lemberg <wl@gnu.org>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+%
+%
+% This is the file dblaccnt.tex to be used with plain TeX; it is a wrapper
+% file for dblaccnt.sty.
+%
+% Since it uses LaTeX's font encoding mechanism, it needs the `plnfss' and
+% `plainenc' packages:
+%
+% \input plnfss
+% \input plainenc
+% \input dblaccnt
+%
+% \fontencoding{...}
+%
+% ...
+%
+%
+% History
+%
+% 1.0 2000/01/27
+%
+% Initial release.
+%
+% 1.1 2005/04/21
+%
+% Add copyright message and history.
+% Minor documentation clean-up.
+
+%\ProvidesFile{dblaccnt.tex}[2005/04/21 v1.1 double accent support for plain TeX]
+
+\makeatletter
+
+\input dblaccnt.sty
+
+% We repeat the definitions in plain.def of the Babel package to use the
+% new macros from dblaccnt.sty
+\DeclareTextAccent{\'}{OT1}{19}
+\DeclareTextAccent{\`}{OT1}{18}
+
+\let\@acci\'
+\let\@accii\`
+\let\@acciii\=
+
+\makeatother
+
+\endinput
+
+% end of dblaccnt.tex
diff --git a/Master/texmf-dist/tex/plain/vntex/t5code.tex b/Master/texmf-dist/tex/plain/vntex/t5code.tex
new file mode 100644
index 00000000000..60a6fecedc9
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vntex/t5code.tex
@@ -0,0 +1,458 @@
+% based on il2code.tex from csplain & t5enc.def
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\def\vncodes{%
+ \catcode"A1=11 \lccode"A1="A1 \uccode"A1="81 % aacute
+ \catcode"81=11 \lccode"81="A1 \uccode"81="81 % Aacute
+ \catcode"AB=11 \lccode"AB="AB \uccode"AB="8B % abreve
+ \catcode"8B=11 \lccode"8B="AB \uccode"8B="8B % Abreve
+ \catcode"AD=11 \lccode"AD="AD \uccode"AD="8D % abreveacute
+ \catcode"8D=11 \lccode"8D="AD \uccode"8D="8D % Abreveacute
+ \catcode"B0=11 \lccode"B0="B0 \uccode"B0="90 % abrevedotbelow
+ \catcode"90=11 \lccode"90="B0 \uccode"90="90 % Abrevedotbelow
+ \catcode"AC=11 \lccode"AC="AC \uccode"AC="8C % abrevegrave
+ \catcode"8C=11 \lccode"8C="AC \uccode"8C="8C % Abrevegrave
+ \catcode"AF=11 \lccode"AF="AF \uccode"AF="8F % abrevehookabove
+ \catcode"8F=11 \lccode"8F="AF \uccode"8F="8F % Abrevehookabove
+ \catcode"AE=11 \lccode"AE="AE \uccode"AE="8E % abrevetilde
+ \catcode"8E=11 \lccode"8E="AE \uccode"8E="8E % Abrevetilde
+ \catcode"A5=11 \lccode"A5="A5 \uccode"A5="85 % acircumflex
+ \catcode"85=11 \lccode"85="A5 \uccode"85="85 % Acircumflex
+ \catcode"A7=11 \lccode"A7="A7 \uccode"A7="87 % acircumflexacute
+ \catcode"87=11 \lccode"87="A7 \uccode"87="87 % Acircumflexacute
+ \catcode"AA=11 \lccode"AA="AA \uccode"AA="8A % acircumflexdotbelow
+ \catcode"8A=11 \lccode"8A="AA \uccode"8A="8A % Acircumflexdotbelow
+ \catcode"A6=11 \lccode"A6="A6 \uccode"A6="86 % acircumflexgrave
+ \catcode"86=11 \lccode"86="A6 \uccode"86="86 % Acircumflexgrave
+ \catcode"A9=11 \lccode"A9="A9 \uccode"A9="89 % acircumflexhookabove
+ \catcode"89=11 \lccode"89="A9 \uccode"89="89 % Acircumflexhookabove
+ \catcode"A8=11 \lccode"A8="A8 \uccode"A8="88 % acircumflextilde
+ \catcode"88=11 \lccode"88="A8 \uccode"88="88 % Acircumflextilde
+ \catcode"A4=11 \lccode"A4="A4 \uccode"A4="84 % adotbelow
+ \catcode"84=11 \lccode"84="A4 \uccode"84="84 % Adotbelow
+ \catcode"A0=11 \lccode"A0="A0 \uccode"A0="80 % agrave
+ \catcode"80=11 \lccode"80="A0 \uccode"80="80 % Agrave
+ \catcode"A3=11 \lccode"A3="A3 \uccode"A3="83 % ahookabove
+ \catcode"83=11 \lccode"83="A3 \uccode"83="83 % Ahookabove
+ \catcode"A2=11 \lccode"A2="A2 \uccode"A2="82 % atilde
+ \catcode"82=11 \lccode"82="A2 \uccode"82="82 % Atilde
+ \catcode"1F=11 \lccode"1F="1F \uccode"1F="1E % dcroat
+ \catcode"1E=11 \lccode"1E="1F \uccode"1E="1E % Dcroat
+ \catcode"B2=11 \lccode"B2="B2 \uccode"B2="92 % eacute
+ \catcode"92=11 \lccode"92="B2 \uccode"92="92 % Eacute
+ \catcode"B6=11 \lccode"B6="B6 \uccode"B6="96 % ecircumflex
+ \catcode"96=11 \lccode"96="B6 \uccode"96="96 % Ecircumflex
+ \catcode"B8=11 \lccode"B8="B8 \uccode"B8="98 % ecircumflexacute
+ \catcode"98=11 \lccode"98="B8 \uccode"98="98 % Ecircumflexacute
+ \catcode"BB=11 \lccode"BB="BB \uccode"BB="9B % ecircumflexdotbelow
+ \catcode"9B=11 \lccode"9B="BB \uccode"9B="9B % Ecircumflexdotbelow
+ \catcode"B7=11 \lccode"B7="B7 \uccode"B7="97 % ecircumflexgrave
+ \catcode"97=11 \lccode"97="B7 \uccode"97="97 % Ecircumflexgrave
+ \catcode"BA=11 \lccode"BA="BA \uccode"BA="9A % ecircumflexhookabove
+ \catcode"9A=11 \lccode"9A="BA \uccode"9A="9A % Ecircumflexhookabove
+ \catcode"B9=11 \lccode"B9="B9 \uccode"B9="99 % ecircumflextilde
+ \catcode"99=11 \lccode"99="B9 \uccode"99="99 % Ecircumflextilde
+ \catcode"B5=11 \lccode"B5="B5 \uccode"B5="95 % edotbelow
+ \catcode"95=11 \lccode"95="B5 \uccode"95="95 % Edotbelow
+ \catcode"B1=11 \lccode"B1="B1 \uccode"B1="91 % egrave
+ \catcode"91=11 \lccode"91="B1 \uccode"91="91 % Egrave
+ \catcode"B4=11 \lccode"B4="B4 \uccode"B4="94 % ehookabove
+ \catcode"94=11 \lccode"94="B4 \uccode"94="94 % Ehookabove
+ \catcode"B3=11 \lccode"B3="B3 \uccode"B3="93 % etilde
+ \catcode"93=11 \lccode"93="B3 \uccode"93="93 % Etilde
+ \catcode"BD=11 \lccode"BD="BD \uccode"BD="9D % iacute
+ \catcode"9D=11 \lccode"9D="BD \uccode"9D="9D % Iacute
+ \catcode"E0=11 \lccode"E0="E0 \uccode"E0="C0 % idotbelow
+ \catcode"C0=11 \lccode"C0="E0 \uccode"C0="C0 % Idotbelow
+ \catcode"BC=11 \lccode"BC="BC \uccode"BC="9C % igrave
+ \catcode"9C=11 \lccode"9C="BC \uccode"9C="9C % Igrave
+ \catcode"BF=11 \lccode"BF="BF \uccode"BF="9F % ihookabove
+ \catcode"9F=11 \lccode"9F="BF \uccode"9F="9F % Ihookabove
+ \catcode"BE=11 \lccode"BE="BE \uccode"BE="9E % itilde
+ \catcode"9E=11 \lccode"9E="BE \uccode"9E="9E % Itilde
+ \catcode"E2=11 \lccode"E2="E2 \uccode"E2="C2 % oacute
+ \catcode"C2=11 \lccode"C2="E2 \uccode"C2="C2 % Oacute
+ \catcode"E6=11 \lccode"E6="E6 \uccode"E6="C6 % ocircumflex
+ \catcode"C6=11 \lccode"C6="E6 \uccode"C6="C6 % Ocircumflex
+ \catcode"E8=11 \lccode"E8="E8 \uccode"E8="C8 % ocircumflexacute
+ \catcode"C8=11 \lccode"C8="E8 \uccode"C8="C8 % Ocircumflexacute
+ \catcode"EB=11 \lccode"EB="EB \uccode"EB="CB % ocircumflexdotbelow
+ \catcode"CB=11 \lccode"CB="EB \uccode"CB="CB % Ocircumflexdotbelow
+ \catcode"E7=11 \lccode"E7="E7 \uccode"E7="C7 % ocircumflexgrave
+ \catcode"C7=11 \lccode"C7="E7 \uccode"C7="C7 % Ocircumflexgrave
+ \catcode"EA=11 \lccode"EA="EA \uccode"EA="CA % ocircumflexhookabove
+ \catcode"CA=11 \lccode"CA="EA \uccode"CA="CA % Ocircumflexhookabove
+ \catcode"E9=11 \lccode"E9="E9 \uccode"E9="C9 % ocircumflextilde
+ \catcode"C9=11 \lccode"C9="E9 \uccode"C9="C9 % Ocircumflextilde
+ \catcode"E5=11 \lccode"E5="E5 \uccode"E5="C5 % odotbelow
+ \catcode"C5=11 \lccode"C5="E5 \uccode"C5="C5 % Odotbelow
+ \catcode"E1=11 \lccode"E1="E1 \uccode"E1="C1 % ograve
+ \catcode"C1=11 \lccode"C1="E1 \uccode"C1="C1 % Ograve
+ \catcode"E4=11 \lccode"E4="E4 \uccode"E4="C4 % ohookabove
+ \catcode"C4=11 \lccode"C4="E4 \uccode"C4="C4 % Ohookabove
+ \catcode"EC=11 \lccode"EC="EC \uccode"EC="CC % ohorn
+ \catcode"CC=11 \lccode"CC="EC \uccode"CC="CC % Ohorn
+ \catcode"EE=11 \lccode"EE="EE \uccode"EE="CE % ohornacute
+ \catcode"CE=11 \lccode"CE="EE \uccode"CE="CE % Ohornacute
+ \catcode"F1=11 \lccode"F1="F1 \uccode"F1="D1 % ohorndotbelow
+ \catcode"D1=11 \lccode"D1="F1 \uccode"D1="D1 % Ohorndotbelow
+ \catcode"ED=11 \lccode"ED="ED \uccode"ED="CD % ohorngrave
+ \catcode"CD=11 \lccode"CD="ED \uccode"CD="CD % Ohorngrave
+ \catcode"F0=11 \lccode"F0="F0 \uccode"F0="D0 % ohornhookabove
+ \catcode"D0=11 \lccode"D0="F0 \uccode"D0="D0 % Ohornhookabove
+ \catcode"EF=11 \lccode"EF="EF \uccode"EF="CF % ohorntilde
+ \catcode"CF=11 \lccode"CF="EF \uccode"CF="CF % Ohorntilde
+ \catcode"E3=11 \lccode"E3="E3 \uccode"E3="C3 % otilde
+ \catcode"C3=11 \lccode"C3="E3 \uccode"C3="C3 % Otilde
+ \catcode"F3=11 \lccode"F3="F3 \uccode"F3="D3 % uacute
+ \catcode"D3=11 \lccode"D3="F3 \uccode"D3="D3 % Uacute
+ \catcode"F6=11 \lccode"F6="F6 \uccode"F6="D6 % udotbelow
+ \catcode"D6=11 \lccode"D6="F6 \uccode"D6="D6 % Udotbelow
+ \catcode"F2=11 \lccode"F2="F2 \uccode"F2="D2 % ugrave
+ \catcode"D2=11 \lccode"D2="F2 \uccode"D2="D2 % Ugrave
+ \catcode"F5=11 \lccode"F5="F5 \uccode"F5="D5 % uhookabove
+ \catcode"D5=11 \lccode"D5="F5 \uccode"D5="D5 % Uhookabove
+ \catcode"F7=11 \lccode"F7="F7 \uccode"F7="D7 % uhorn
+ \catcode"D7=11 \lccode"D7="F7 \uccode"D7="D7 % Uhorn
+ \catcode"F9=11 \lccode"F9="F9 \uccode"F9="D9 % uhornacute
+ \catcode"D9=11 \lccode"D9="F9 \uccode"D9="D9 % Uhornacute
+ \catcode"FC=11 \lccode"FC="FC \uccode"FC="DC % uhorndotbelow
+ \catcode"DC=11 \lccode"DC="FC \uccode"DC="DC % Uhorndotbelow
+ \catcode"F8=11 \lccode"F8="F8 \uccode"F8="D8 % uhorngrave
+ \catcode"D8=11 \lccode"D8="F8 \uccode"D8="D8 % Uhorngrave
+ \catcode"FB=11 \lccode"FB="FB \uccode"FB="DB % uhornhookabove
+ \catcode"DB=11 \lccode"DB="FB \uccode"DB="DB % Uhornhookabove
+ \catcode"FA=11 \lccode"FA="FA \uccode"FA="DA % uhorntilde
+ \catcode"DA=11 \lccode"DA="FA \uccode"DA="DA % Uhorntilde
+ \catcode"F4=11 \lccode"F4="F4 \uccode"F4="D4 % utilde
+ \catcode"D4=11 \lccode"D4="F4 \uccode"D4="D4 % Utilde
+ \catcode"FE=11 \lccode"FE="FE \uccode"FE="DE % yacute
+ \catcode"DE=11 \lccode"DE="FE \uccode"DE="DE % Yacute
+ \catcode"1D=11 \lccode"1D="1D \uccode"1D="1C % ydotbelow
+ \catcode"1C=11 \lccode"1C="1D \uccode"1C="1C % Ydotbelow
+ \catcode"FD=11 \lccode"FD="FD \uccode"FD="DD % ygrave
+ \catcode"DD=11 \lccode"DD="FD \uccode"DD="DD % Ygrave
+ \catcode"1B=11 \lccode"1B="1B \uccode"1B="1A % yhookabove
+ \catcode"1A=11 \lccode"1A="1B \uccode"1A="1A % Yhookabove
+ \catcode"FF=11 \lccode"FF="FF \uccode"FF="DF % ytilde
+ \catcode"DF=11 \lccode"DF="FF \uccode"DF="DF % Ytilde
+}
+
+\def\unvncodes{%
+ \catcode"A1=12 \lccode"A1=0 \uccode"A1=0 % aacute
+ \catcode"81=12 \lccode"81=0 \uccode"81=0 % Aacute
+ \catcode"AB=12 \lccode"AB=0 \uccode"AB=0 % abreve
+ \catcode"8B=12 \lccode"8B=0 \uccode"8B=0 % Abreve
+ \catcode"AD=12 \lccode"AD=0 \uccode"AD=0 % abreveacute
+ \catcode"8D=12 \lccode"8D=0 \uccode"8D=0 % Abreveacute
+ \catcode"B0=12 \lccode"B0=0 \uccode"B0=0 % abrevedotbelow
+ \catcode"90=12 \lccode"90=0 \uccode"90=0 % Abrevedotbelow
+ \catcode"AC=12 \lccode"AC=0 \uccode"AC=0 % abrevegrave
+ \catcode"8C=12 \lccode"8C=0 \uccode"8C=0 % Abrevegrave
+ \catcode"AF=12 \lccode"AF=0 \uccode"AF=0 % abrevehookabove
+ \catcode"8F=12 \lccode"8F=0 \uccode"8F=0 % Abrevehookabove
+ \catcode"AE=12 \lccode"AE=0 \uccode"AE=0 % abrevetilde
+ \catcode"8E=12 \lccode"8E=0 \uccode"8E=0 % Abrevetilde
+ \catcode"A5=12 \lccode"A5=0 \uccode"A5=0 % acircumflex
+ \catcode"85=12 \lccode"85=0 \uccode"85=0 % Acircumflex
+ \catcode"A7=12 \lccode"A7=0 \uccode"A7=0 % acircumflexacute
+ \catcode"87=12 \lccode"87=0 \uccode"87=0 % Acircumflexacute
+ \catcode"AA=12 \lccode"AA=0 \uccode"AA=0 % acircumflexdotbelow
+ \catcode"8A=12 \lccode"8A=0 \uccode"8A=0 % Acircumflexdotbelow
+ \catcode"A6=12 \lccode"A6=0 \uccode"A6=0 % acircumflexgrave
+ \catcode"86=12 \lccode"86=0 \uccode"86=0 % Acircumflexgrave
+ \catcode"A9=12 \lccode"A9=0 \uccode"A9=0 % acircumflexhookabove
+ \catcode"89=12 \lccode"89=0 \uccode"89=0 % Acircumflexhookabove
+ \catcode"A8=12 \lccode"A8=0 \uccode"A8=0 % acircumflextilde
+ \catcode"88=12 \lccode"88=0 \uccode"88=0 % Acircumflextilde
+ \catcode"A4=12 \lccode"A4=0 \uccode"A4=0 % adotbelow
+ \catcode"84=12 \lccode"84=0 \uccode"84=0 % Adotbelow
+ \catcode"A0=12 \lccode"A0=0 \uccode"A0=0 % agrave
+ \catcode"80=12 \lccode"80=0 \uccode"80=0 % Agrave
+ \catcode"A3=12 \lccode"A3=0 \uccode"A3=0 % ahookabove
+ \catcode"83=12 \lccode"83=0 \uccode"83=0 % Ahookabove
+ \catcode"A2=12 \lccode"A2=0 \uccode"A2=0 % atilde
+ \catcode"82=12 \lccode"82=0 \uccode"82=0 % Atilde
+ \catcode"1F=12 \lccode"1F=0 \uccode"1F=0 % dcroat
+ \catcode"1E=12 \lccode"1E=0 \uccode"1E=0 % Dcroat
+ \catcode"B2=12 \lccode"B2=0 \uccode"B2=0 % eacute
+ \catcode"92=12 \lccode"92=0 \uccode"92=0 % Eacute
+ \catcode"B6=12 \lccode"B6=0 \uccode"B6=0 % ecircumflex
+ \catcode"96=12 \lccode"96=0 \uccode"96=0 % Ecircumflex
+ \catcode"B8=12 \lccode"B8=0 \uccode"B8=0 % ecircumflexacute
+ \catcode"98=12 \lccode"98=0 \uccode"98=0 % Ecircumflexacute
+ \catcode"BB=12 \lccode"BB=0 \uccode"BB=0 % ecircumflexdotbelow
+ \catcode"9B=12 \lccode"9B=0 \uccode"9B=0 % Ecircumflexdotbelow
+ \catcode"B7=12 \lccode"B7=0 \uccode"B7=0 % ecircumflexgrave
+ \catcode"97=12 \lccode"97=0 \uccode"97=0 % Ecircumflexgrave
+ \catcode"BA=12 \lccode"BA=0 \uccode"BA=0 % ecircumflexhookabove
+ \catcode"9A=12 \lccode"9A=0 \uccode"9A=0 % Ecircumflexhookabove
+ \catcode"B9=12 \lccode"B9=0 \uccode"B9=0 % ecircumflextilde
+ \catcode"99=12 \lccode"99=0 \uccode"99=0 % Ecircumflextilde
+ \catcode"B5=12 \lccode"B5=0 \uccode"B5=0 % edotbelow
+ \catcode"95=12 \lccode"95=0 \uccode"95=0 % Edotbelow
+ \catcode"B1=12 \lccode"B1=0 \uccode"B1=0 % egrave
+ \catcode"91=12 \lccode"91=0 \uccode"91=0 % Egrave
+ \catcode"B4=12 \lccode"B4=0 \uccode"B4=0 % ehookabove
+ \catcode"94=12 \lccode"94=0 \uccode"94=0 % Ehookabove
+ \catcode"B3=12 \lccode"B3=0 \uccode"B3=0 % etilde
+ \catcode"93=12 \lccode"93=0 \uccode"93=0 % Etilde
+ \catcode"BD=12 \lccode"BD=0 \uccode"BD=0 % iacute
+ \catcode"9D=12 \lccode"9D=0 \uccode"9D=0 % Iacute
+ \catcode"E0=12 \lccode"E0=0 \uccode"E0=0 % idotbelow
+ \catcode"C0=12 \lccode"C0=0 \uccode"C0=0 % Idotbelow
+ \catcode"BC=12 \lccode"BC=0 \uccode"BC=0 % igrave
+ \catcode"9C=12 \lccode"9C=0 \uccode"9C=0 % Igrave
+ \catcode"BF=12 \lccode"BF=0 \uccode"BF=0 % ihookabove
+ \catcode"9F=12 \lccode"9F=0 \uccode"9F=0 % Ihookabove
+ \catcode"BE=12 \lccode"BE=0 \uccode"BE=0 % itilde
+ \catcode"9E=12 \lccode"9E=0 \uccode"9E=0 % Itilde
+ \catcode"E2=12 \lccode"E2=0 \uccode"E2=0 % oacute
+ \catcode"C2=12 \lccode"C2=0 \uccode"C2=0 % Oacute
+ \catcode"E6=12 \lccode"E6=0 \uccode"E6=0 % ocircumflex
+ \catcode"C6=12 \lccode"C6=0 \uccode"C6=0 % Ocircumflex
+ \catcode"E8=12 \lccode"E8=0 \uccode"E8=0 % ocircumflexacute
+ \catcode"C8=12 \lccode"C8=0 \uccode"C8=0 % Ocircumflexacute
+ \catcode"EB=12 \lccode"EB=0 \uccode"EB=0 % ocircumflexdotbelow
+ \catcode"CB=12 \lccode"CB=0 \uccode"CB=0 % Ocircumflexdotbelow
+ \catcode"E7=12 \lccode"E7=0 \uccode"E7=0 % ocircumflexgrave
+ \catcode"C7=12 \lccode"C7=0 \uccode"C7=0 % Ocircumflexgrave
+ \catcode"EA=12 \lccode"EA=0 \uccode"EA=0 % ocircumflexhookabove
+ \catcode"CA=12 \lccode"CA=0 \uccode"CA=0 % Ocircumflexhookabove
+ \catcode"E9=12 \lccode"E9=0 \uccode"E9=0 % ocircumflextilde
+ \catcode"C9=12 \lccode"C9=0 \uccode"C9=0 % Ocircumflextilde
+ \catcode"E5=12 \lccode"E5=0 \uccode"E5=0 % odotbelow
+ \catcode"C5=12 \lccode"C5=0 \uccode"C5=0 % Odotbelow
+ \catcode"E1=12 \lccode"E1=0 \uccode"E1=0 % ograve
+ \catcode"C1=12 \lccode"C1=0 \uccode"C1=0 % Ograve
+ \catcode"E4=12 \lccode"E4=0 \uccode"E4=0 % ohookabove
+ \catcode"C4=12 \lccode"C4=0 \uccode"C4=0 % Ohookabove
+ \catcode"EC=12 \lccode"EC=0 \uccode"EC=0 % ohorn
+ \catcode"CC=12 \lccode"CC=0 \uccode"CC=0 % Ohorn
+ \catcode"EE=12 \lccode"EE=0 \uccode"EE=0 % ohornacute
+ \catcode"CE=12 \lccode"CE=0 \uccode"CE=0 % Ohornacute
+ \catcode"F1=12 \lccode"F1=0 \uccode"F1=0 % ohorndotbelow
+ \catcode"D1=12 \lccode"D1=0 \uccode"D1=0 % Ohorndotbelow
+ \catcode"ED=12 \lccode"ED=0 \uccode"ED=0 % ohorngrave
+ \catcode"CD=12 \lccode"CD=0 \uccode"CD=0 % Ohorngrave
+ \catcode"F0=12 \lccode"F0=0 \uccode"F0=0 % ohornhookabove
+ \catcode"D0=12 \lccode"D0=0 \uccode"D0=0 % Ohornhookabove
+ \catcode"EF=12 \lccode"EF=0 \uccode"EF=0 % ohorntilde
+ \catcode"CF=12 \lccode"CF=0 \uccode"CF=0 % Ohorntilde
+ \catcode"E3=12 \lccode"E3=0 \uccode"E3=0 % otilde
+ \catcode"C3=12 \lccode"C3=0 \uccode"C3=0 % Otilde
+ \catcode"F3=12 \lccode"F3=0 \uccode"F3=0 % uacute
+ \catcode"D3=12 \lccode"D3=0 \uccode"D3=0 % Uacute
+ \catcode"F6=12 \lccode"F6=0 \uccode"F6=0 % udotbelow
+ \catcode"D6=12 \lccode"D6=0 \uccode"D6=0 % Udotbelow
+ \catcode"F2=12 \lccode"F2=0 \uccode"F2=0 % ugrave
+ \catcode"D2=12 \lccode"D2=0 \uccode"D2=0 % Ugrave
+ \catcode"F5=12 \lccode"F5=0 \uccode"F5=0 % uhookabove
+ \catcode"D5=12 \lccode"D5=0 \uccode"D5=0 % Uhookabove
+ \catcode"F7=12 \lccode"F7=0 \uccode"F7=0 % uhorn
+ \catcode"D7=12 \lccode"D7=0 \uccode"D7=0 % Uhorn
+ \catcode"F9=12 \lccode"F9=0 \uccode"F9=0 % uhornacute
+ \catcode"D9=12 \lccode"D9=0 \uccode"D9=0 % Uhornacute
+ \catcode"FC=12 \lccode"FC=0 \uccode"FC=0 % uhorndotbelow
+ \catcode"DC=12 \lccode"DC=0 \uccode"DC=0 % Uhorndotbelow
+ \catcode"F8=12 \lccode"F8=0 \uccode"F8=0 % uhorngrave
+ \catcode"D8=12 \lccode"D8=0 \uccode"D8=0 % Uhorngrave
+ \catcode"FB=12 \lccode"FB=0 \uccode"FB=0 % uhornhookabove
+ \catcode"DB=12 \lccode"DB=0 \uccode"DB=0 % Uhornhookabove
+ \catcode"FA=12 \lccode"FA=0 \uccode"FA=0 % uhorntilde
+ \catcode"DA=12 \lccode"DA=0 \uccode"DA=0 % Uhorntilde
+ \catcode"F4=12 \lccode"F4=0 \uccode"F4=0 % utilde
+ \catcode"D4=12 \lccode"D4=0 \uccode"D4=0 % Utilde
+ \catcode"FE=12 \lccode"FE=0 \uccode"FE=0 % yacute
+ \catcode"DE=12 \lccode"DE=0 \uccode"DE=0 % Yacute
+ \catcode"1D=12 \lccode"1D=0 \uccode"1D=0 % ydotbelow
+ \catcode"1C=12 \lccode"1C=0 \uccode"1C=0 % Ydotbelow
+ \catcode"FD=12 \lccode"FD=0 \uccode"FD=0 % ygrave
+ \catcode"DD=12 \lccode"DD=0 \uccode"DD=0 % Ygrave
+ \catcode"1B=12 \lccode"1B=0 \uccode"1B=0 % yhookabove
+ \catcode"1A=12 \lccode"1A=0 \uccode"1A=0 % Yhookabove
+ \catcode"FF=12 \lccode"FF=0 \uccode"FF=0 % ytilde
+ \catcode"DF=12 \lccode"DF=0 \uccode"DF=0 % Ytilde
+}
+
+\def\vnaccents{%
+ \def\Abreve{^^8b} % Abreve
+ \def\Acircumflex{^^85} % Acircumflex
+ \def\Ecircumflex{^^96} % Ecircumflex
+ \def\Ocircumflex{^^c6} % Ocircumflex
+ \def\Ohorn{^^cc} % Ohorn
+ \def\Uhorn{^^d7} % Uhorn
+ \def\abreve{^^ab} % abreve
+ \def\acircumflex{^^a5} % acircumflex
+ \def\dj{^^1f} % dcroat
+ \def\DJ{^^1e} % dcroat
+ \def\ecircumflex{^^b6} % ecircumflex
+ \def\i{^^19} % dotlessi
+ \def\ocircumflex{^^e6} % ocircumflex
+ \def\ohorn{^^ec} % ohorn
+ \def\uhorn{^^f7} % uhorn
+ \def\'##1{%
+ \ifx A##1^^81\else % Aacute
+ \ifx E##1^^92\else % Eacute
+ \ifx I##1^^9d\else % Iacute
+ \ifx O##1^^c2\else % Oacute
+ \ifx U##1^^d3\else % Uacute
+ \ifx Y##1^^de\else % Yacute
+ \ifx \Abreve##1^^8d\else % Abreveacute
+ \ifx \Acircumflex##1^^87\else % Acircumflexacute
+ \ifx \Ecircumflex##1^^98\else % Ecircumflexacute
+ \ifx \Ocircumflex##1^^c8\else % Ocircumflexacute
+ \ifx \Ohorn##1^^ce\else % Ohornacute
+ \ifx \Uhorn##1^^d9\else % Uhornacute
+ \ifx \abreve##1^^ad\else % abreveacute
+ \ifx \acircumflex##1^^a7\else % acircumflexacute
+ \ifx \ecircumflex##1^^b8\else % ecircumflexacute
+ \ifx \ocircumflex##1^^e8\else % ocircumflexacute
+ \ifx \ohorn##1^^ee\else % ohornacute
+ \ifx \uhorn##1^^f9\else % uhornacute
+ \ifx a##1^^a1\else % aacute
+ \ifx e##1^^b2\else % eacute
+ \ifx i##1^^bd\else % iacute
+ \ifx o##1^^e2\else % oacute
+ \ifx u##1^^f3\else % uacute
+ \ifx y##1^^fe\else % yacute
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ }%
+ \def\^##1{%
+ \ifx A##1^^85\else % Acircumflex
+ \ifx E##1^^96\else % Ecircumflex
+ \ifx O##1^^c6\else % Ocircumflex
+ \ifx a##1^^a5\else % acircumflex
+ \ifx e##1^^b6\else % ecircumflex
+ \ifx o##1^^e6\else % ocircumflex
+ \fi\fi\fi\fi\fi\fi
+ }%
+ \def\`##1{%
+ \ifx A##1^^80\else % Agrave
+ \ifx E##1^^91\else % Egrave
+ \ifx I##1^^9c\else % Igrave
+ \ifx O##1^^c1\else % Ograve
+ \ifx U##1^^d2\else % Ugrave
+ \ifx Y##1^^dd\else % Ygrave
+ \ifx \Abreve##1^^8c\else % Abrevegrave
+ \ifx \Acircumflex##1^^86\else % Acircumflexgrave
+ \ifx \Ecircumflex##1^^97\else % Ecircumflexgrave
+ \ifx \Ocircumflex##1^^c7\else % Ocircumflexgrave
+ \ifx \Ohorn##1^^cd\else % Ohorngrave
+ \ifx \Uhorn##1^^d8\else % Uhorngrave
+ \ifx \abreve##1^^ac\else % abrevegrave
+ \ifx \acircumflex##1^^a6\else % acircumflexgrave
+ \ifx \ecircumflex##1^^b7\else % ecircumflexgrave
+ \ifx \ocircumflex##1^^e7\else % ocircumflexgrave
+ \ifx \ohorn##1^^ed\else % ohorngrave
+ \ifx \uhorn##1^^f8\else % uhorngrave
+ \ifx a##1^^a0\else % agrave
+ \ifx e##1^^b1\else % egrave
+ \ifx i##1^^bc\else % igrave
+ \ifx o##1^^e1\else % ograve
+ \ifx u##1^^f2\else % ugrave
+ \ifx y##1^^fd\else % ygrave
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ }%
+ \def\d##1{%
+ \ifx A##1^^84\else % Adotbelow
+ \ifx E##1^^95\else % Edotbelow
+ \ifx I##1^^c0\else % Idotbelow
+ \ifx O##1^^c5\else % Odotbelow
+ \ifx U##1^^d6\else % Udotbelow
+ \ifx Y##1^^1c\else % Ydotbelow
+ \ifx \Abreve##1^^90\else % Abrevedotbelow
+ \ifx \Acircumflex##1^^8a\else % Acircumflexdotbelow
+ \ifx \Ecircumflex##1^^9b\else % Ecircumflexdotbelow
+ \ifx \Ocircumflex##1^^cb\else % Ocircumflexdotbelow
+ \ifx \Ohorn##1^^d1\else % Ohorndotbelow
+ \ifx \Uhorn##1^^dc\else % Uhorndotbelow
+ \ifx \abreve##1^^b0\else % abrevedotbelow
+ \ifx \acircumflex##1^^aa\else % acircumflexdotbelow
+ \ifx \ecircumflex##1^^bb\else % ecircumflexdotbelow
+ \ifx \ocircumflex##1^^eb\else % ocircumflexdotbelow
+ \ifx \ohorn##1^^f1\else % ohorndotbelow
+ \ifx \uhorn##1^^fc\else % uhorndotbelow
+ \ifx a##1^^a4\else % adotbelow
+ \ifx e##1^^b5\else % edotbelow
+ \ifx i##1^^e0\else % idotbelow
+ \ifx o##1^^e5\else % odotbelow
+ \ifx u##1^^f6\else % udotbelow
+ \ifx y##1^^1d\else % ydotbelow
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ }%
+ \def\h##1{%
+ \ifx A##1^^83\else % Ahookabove
+ \ifx E##1^^94\else % Ehookabove
+ \ifx I##1^^9f\else % Ihookabove
+ \ifx O##1^^c4\else % Ohookabove
+ \ifx U##1^^d5\else % Uhookabove
+ \ifx Y##1^^1a\else % Yhookabove
+ \ifx \Abreve##1^^8f\else % Abrevehookabove
+ \ifx \Acircumflex##1^^89\else % Acircumflexhookabove
+ \ifx \Ecircumflex##1^^9a\else % Ecircumflexhookabove
+ \ifx \Ocircumflex##1^^ca\else % Ocircumflexhookabove
+ \ifx \Ohorn##1^^d0\else % Ohornhookabove
+ \ifx \Uhorn##1^^db\else % Uhornhookabove
+ \ifx \abreve##1^^af\else % abrevehookabove
+ \ifx \acircumflex##1^^a9\else % acircumflexhookabove
+ \ifx \ecircumflex##1^^ba\else % ecircumflexhookabove
+ \ifx \ocircumflex##1^^ea\else % ocircumflexhookabove
+ \ifx \ohorn##1^^f0\else % ohornhookabove
+ \ifx \uhorn##1^^fb\else % uhornhookabove
+ \ifx a##1^^a3\else % ahookabove
+ \ifx e##1^^b4\else % ehookabove
+ \ifx i##1^^bf\else % ihookabove
+ \ifx o##1^^e4\else % ohookabove
+ \ifx u##1^^f5\else % uhookabove
+ \ifx y##1^^1b\else % yhookabove
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ }%
+ \def\~##1{%
+ \ifx A##1^^82\else % Atilde
+ \ifx E##1^^93\else % Etilde
+ \ifx I##1^^9e\else % Itilde
+ \ifx O##1^^c3\else % Otilde
+ \ifx U##1^^d4\else % Utilde
+ \ifx Y##1^^df\else % Ytilde
+ \ifx \Abreve##1^^8e\else % Abrevetilde
+ \ifx \Acircumflex##1^^88\else % Acircumflextilde
+ \ifx \Ecircumflex##1^^99\else % Ecircumflextilde
+ \ifx \Ocircumflex##1^^c9\else % Ocircumflextilde
+ \ifx \Ohorn##1^^cf\else % Ohorntilde
+ \ifx \Uhorn##1^^da\else % Uhorntilde
+ \ifx \abreve##1^^ae\else % abrevetilde
+ \ifx \acircumflex##1^^a8\else % acircumflextilde
+ \ifx \ecircumflex##1^^b9\else % ecircumflextilde
+ \ifx \ocircumflex##1^^e9\else % ocircumflextilde
+ \ifx \ohorn##1^^ef\else % ohorntilde
+ \ifx \uhorn##1^^fa\else % uhorntilde
+ \ifx a##1^^a2\else % atilde
+ \ifx e##1^^b3\else % etilde
+ \ifx i##1^^be\else % itilde
+ \ifx o##1^^e3\else % otilde
+ \ifx u##1^^f4\else % utilde
+ \ifx y##1^^ff\else % ytilde
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ }%
+}
+
+
+% copied from plain.tex
+\def\cmaccents{%
+ \def\`##1{{\accent18 ##1}}%
+ \def\'##1{{\accent19 ##1}}%
+ \def\v##1{{\accent20 ##1}}%
+ \def\u##1{{\accent21 ##1}}%
+ \def\=##1{{\accent22 ##1}}%
+ \def\^##1{{\accent94 ##1}}%
+ \def\.##1{{\accent95 ##1}}%
+ \def\~##1{{\accent"7E ##1}}%
+ \def\"##1{{\accent"7F ##1}}%
+}
+
+\vncodes
+\vnaccents
diff --git a/Master/texmf-dist/tex/plain/vntex/vntexinfo.tex b/Master/texmf-dist/tex/plain/vntex/vntexinfo.tex
new file mode 100644
index 00000000000..d4b92c82816
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/vntex/vntexinfo.tex
@@ -0,0 +1,61 @@
+% support for vietnamese with texinfo
+% must be used with TCX extension
+% Usage: replace `\input texinfo.tex' by `\input vntexinfo.tex' in your
+% *.texi files
+
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+\input t5code.tex
+\def\fontprefix{vn}
+\def\today{%
+ Ng\`ay \number\day\space
+ th\'ang \number\month\space
+ n\abreve m \number\year}
+
+% redefine those to get vietnamese captions; edit them in viscii/tcvn/utf8,
+% then use ie `vntovn viscii vntex' to convert to vntex
+%
+% \gdef\putwordAppendix{Appendix}
+% \gdef\putwordChapter{Chapter}
+% \gdef\putwordfile{file}
+% \gdef\putwordin{in}
+% \gdef\putwordIndexIsEmpty{(Index is empty)}
+% \gdef\putwordIndexNonexistent{(Index is nonexistent)}
+% \gdef\putwordInfo{Info}
+% \gdef\putwordInstanceVariableof{Instance Variable of}
+% \gdef\putwordMethodon{Method on}
+% \gdef\putwordNoTitle{No Title}
+% \gdef\putwordof{of}
+% \gdef\putwordon{on}
+% \gdef\putwordpage{page}
+% \gdef\putwordsection{section}
+% \gdef\putwordSection{Section}
+% \gdef\putwordsee{see}
+% \gdef\putwordSee{See}
+% \gdef\putwordShortTOC{Short Contents}
+% \gdef\putwordTOC{Table of Contents}
+% %
+% \gdef\putwordMJan{January}
+% \gdef\putwordMFeb{February}
+% \gdef\putwordMMar{March}
+% \gdef\putwordMApr{April}
+% \gdef\putwordMMay{May}
+% \gdef\putwordMJun{June}
+% \gdef\putwordMJul{July}
+% \gdef\putwordMAug{August}
+% \gdef\putwordMSep{September}
+% \gdef\putwordMOct{October}
+% \gdef\putwordMNov{November}
+% \gdef\putwordMDec{December}
+% %
+% \gdef\putwordDefmac{Macro}
+% \gdef\putwordDefspec{Special Form}
+% \gdef\putwordDefvar{Variable}
+% \gdef\putwordDefopt{User Option}
+% \gdef\putwordDeftypevar{Variable}
+% \gdef\putwordDeffunc{Function}
+% \gdef\putwordDeftypefun{Function}
+
+\input texinfo
diff --git a/Master/texmf-dist/tex/plain/wasy/wasyfont.tex b/Master/texmf-dist/tex/plain/wasy/wasyfont.tex
new file mode 100644
index 00000000000..7109ce06971
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/wasy/wasyfont.tex
@@ -0,0 +1,172 @@
+% this is wasyfont.tex version 2.01--92/10
+\font\tenwasy = wasy10
+\font\wasyb = wasyb10
+\font\ninewasy = wasy9
+\font\eightwasy = wasy8
+\font\sevenwasy = wasy7
+\font\fivewasy = wasy5
+\newfam\wasyfam
+\newcount\wasyfamcount
+\wasyfamcount=\wasyfam \multiply\wasyfamcount by 256
+\def\wasy{\fam\wasyfam\tenwasy}
+\textfont\wasyfam=\tenwasy
+\scriptfont\wasyfam=\sevenwasy
+\scriptscriptfont\wasyfam=\fivewasy
+%%%%%% special macro
+\def\overstrike#1#2{{\setbox0\hbox{$#2$}\hbox to \wd0{\hss
+ $#1$\hss}\kern-\wd0\box0}}
+%%%%%% special symbols
+\def\male{\hbox{\wasy\char"1A}}
+\def\female{\hbox{\wasy\char"19}}
+\def\currency{{\wasy\char"1B}}
+\def\phone{{\wasy\char"07}}
+\def\recorder{{\wasy\char"06}}
+\def\clock{{\wasy\char"1C}}
+\def\lightning{{\wasy\char"12}}
+\def\pointer{{\wasy\char"09}}
+\def\RIGHTarrow{{\wasy\char"11}}
+\def\LEFTarrow{{\wasy\char"10}}
+\def\UParrow{{\wasy\char"4B}}
+\def\DOWNarrow{{\wasy\char"4C}}
+\def\AC{\hbox{\kern0.5pt\wasy\char"3A\kern0.5pt}}
+\def\HF{\lower0.9pt\hbox to 0pt{\kern0.5pt\wasy\char"3A\hss}%
+ \raise0.9pt\hbox{\kern0.5pt\wasy\char"3A\kern0.5pt}}
+\def\VHF{\hbox{\wasy\char"40}}
+\def\Box{\hbox{\wasy\char"32}}\let\Square\Box
+\def\XBox{\hbox{\wasy\char"34}}
+\def\Diamond{\hbox{\wasy\char"33}}
+\def\hexagon{\hbox{\wasy\char"37}}
+\def\pentagon{\hbox{\wasy\char"44}}
+\def\octagon{\hbox{\wasy\char"38}}
+\def\varhexagon{\hbox{\wasy\char"39}}
+\def\hexstar{\hbox{\wasy\char"41}}
+\def\varhexstar{\hbox{\wasy\char"42}}
+\def\davidsstar{\hbox{\wasy\char"43}}
+\def\diameter{\hbox{\wasy\char"1F}}
+\def\invdiameter{\hbox{\wasy\char"15}}
+\def\varangle{\hbox{\wasy\char"1E}}
+\def\lozenge{\hbox{\wasy\char"35}}
+\def\kreuz{\hbox{\wasy\char"36}}
+\def\smiley{\hbox{\wasy\char"2C}}
+\def\frownie{\hbox{\wasy\char"2F}}
+\def\blacksmiley{\hbox{\wasy\char"2D}}
+\def\sun{\hbox{\wasy\char"2E}}
+\def\checked{\hbox{\wasy\char"08}}
+\def\bell{\hbox{\wasy\char"0A}}
+\def\eighthnote{\hbox{\wasy\char"0B}}
+\def\quarternote{\hbox{\wasy\char"0C}}
+\def\halfnote{\hbox{\wasy\char"0D}}
+\def\fullnote{\hbox{\wasy\char"0E}}
+\def\twonotes{\hbox{\wasy\char"0F}}
+\def\brokenvert{\hbox{\wasy\char"7C}}
+\def\therefore{\hbox{\wasy\char"05}}
+\def\ataribox{\hbox{\wasy\char"6D}}
+\def\Circle{\hbox{\wasy\char"23}}
+\def\CIRCLE{\hbox{\wasy\char"20}}
+\def\Leftcircle{\hbox{\wasy\char"49}}
+\def\LEFTCIRCLE{\hbox{\wasy\char"47}}
+\def\Rightcircle{\hbox{\wasy\char"4A}}
+\def\RIGHTCIRCLE{\hbox{\wasy\char"48}}
+\def\LEFTcircle{\hbox to 0pt{\wasy\char"47\hss}\hbox{\wasy\char"23}}
+\def\RIGHTcircle{\hbox to 0pt{\wasy\char"48\hss}\hbox{\wasy\char"23}}
+%%%%%% astronomy
+\def\vernal{\hbox{\wasy\char"17}}
+\def\ascnode{\hbox{\wasy\char"13}}
+\def\descnode{\hbox{\wasy\char"14}}
+\def\fullmoon{\hbox{\wasy\char"23}}
+\def\newmoon{\hbox{\wasy\char"20}}
+\def\leftmoon{\hbox{\wasy\char"24}}
+\def\rightmoon{\hbox{\wasy\char"25}}
+\def\astrosun{\hbox{\tensy\char"0C}}
+\def\mercury{\hbox{\wasy\char"27}}
+\def\venus{\raise0.2ex\hbox{\wasy\char"19}}
+\def\earth{\lower0.3ex\hbox{\wasy\char"26}}
+\def\mars{\lower0.2ex\hbox{\wasy\char"1A}}
+\def\jupiter{\hbox{\wasy\char"58}}
+\def\saturn{\hbox{\wasy\char"59}}
+\def\uranus{\hbox{\wasy\char"5A}}
+\def\neptune{\hbox{\wasy\char"5B}}
+\def\pluto{\hbox{\wasy\char"5C}}
+\def\conjunction{\hbox{\wasy\char"56}}
+\def\opposition{\hbox{\wasy\char"57}}
+%%%%%% the zodiac
+\def\aries{\hbox{\wasy\char"17}}
+\def\taurus{\hbox{\wasy\char"5D}}
+\def\gemini{\hbox{\wasy\char"5E}}
+\def\cancer{\hbox{\wasy\char"5F}}
+\def\leo{\hbox{\wasy\char"13}}
+\def\virgo{\hbox{\wasy\char"60}}
+\def\libra{\hbox{\wasy\char"61}}
+\def\scorpio{\hbox{\wasy\char"62}}
+\def\sagittarius{\hbox{\wasy\char"63}}
+\def\capricornus{\hbox{\wasy\char"64}}
+\def\aquarius{\hbox{\wasy\char"65}}
+\def\pisces{\hbox{\wasy\char"66}}
+%%%%%% APL characters
+\def\APLstar{{\hbox{\wasy\char"45}}}
+\def\APLlog{{\hbox{\wasy\char"16}}}
+\def\APLbox{{\hbox{\wasy\char"7E}}}
+\def\APLup{{\hbox{\wasy\char"00}}}
+\def\APLdown{{\hbox{\wasy\char"46}}}
+\def\APLinput{{\hbox{\wasy\char"7D}}}
+\def\APLcomment{{\hbox{\wasy\char"7F}}}
+\def\APLinv{{\hbox to 0pt{\tensy\char"04\hss}\APLbox}}
+\def\APLuparrowbox{{\hbox{\wasy\char"6E}}}
+\def\APLdownarrowbox{{\hbox{\wasy\char"6F}}}
+\def\APLleftarrowbox{{\hbox{\wasy\char"70}}}
+\def\APLrightarrowbox{{\hbox{\wasy\char"71}}}
+\def\notbackslash{\overstrike{\backslash}{-}}
+\def\notslash{\overstrike{/}{-}}
+\def\APLnot#1{\overstrike{\sim}{#1}}
+\def\APLcirc#1{\overstrike{\circ}{#1}}
+\def\APLvert#1{\overstrike{\vert}{#1}}
+\def\APLminus{\raise0.7ex\hbox{$-$}}
+%%%%%% diagrams
+\def\photon{\hbox{\wasy\char"3A\char"3A\char"3A\char"3A}}
+\def\gluon{\hbox{\wasy\char"51\char"50\char"50\char"50%
+ \char"50\char"50\char"50\char"52}}
+%%%%%% math characters
+\def\Bowtie{\hbox{\wasy\char"31}}
+\def\leftturn{\hbox{\wasy\char"22}}
+\def\rightturn{\hbox{\wasy\char"21}}
+%%%%%% special characters
+\def\cent{\hbox{\wasy\char"67}}
+\def\permil{\hbox{\wasy\char"68}}
+\def\agemO{{\wasy\char"30}}
+\def\thorn{{\wasy\char"69}}
+\def\Thorn{{\wasy\char"6A}}
+\def\dh{{\wasy\char"6B}}
+\def\Dh{\leavevmode{\rm\setbox0\hbox{D}%
+ \hbox to\wd0{\kern 0.04em\char32\hss D}}}
+\def\openo{{\wasy\char"6C}}
+\def\inve{{\wasy\char"55}}
+%%%%%% math operators as mathchars
+\def\wasymathchardef#1#2{%
+ \count255=\wasyfamcount
+ \advance\count255 by"#1
+ \mathchardef#2\count255}
+\wasymathchardef{3001}{\lhd}
+\wasymathchardef{3003}{\rhd}
+\wasymathchardef{3010}{\LHD}
+\wasymathchardef{3011}{\RHD}
+\wasymathchardef{3002}{\unlhd}
+\wasymathchardef{3004}{\unrhd}
+\wasymathchardef{303C}{\sqsubset}
+\wasymathchardef{303D}{\sqsupset}
+\wasymathchardef{303E}{\apprle}
+\wasymathchardef{303F}{\apprge}
+\wasymathchardef{301D}{\varpropto}
+\wasymathchardef{0018}{\invneg}
+\wasymathchardef{303B}{\leadsto}
+\wasymathchardef{2023}{\ocircle}
+\wasymathchardef{3016}{\logof}
+\wasymathchardef{1072}{\varint}
+\wasymathchardef{1073}{\iint}
+\wasymathchardef{1074}{\iiint}
+\wasymathchardef{1075}{\varoint}
+\wasymathchardef{1076}{\oiint}
+%
+%%%%%% new definitions
+%
+\def\newpropto{\let\propto\varpropto}
+\def\newint{\let\int\varint \let\oint\varoint} % default limits