summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/dialogl
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:54:10 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:54:10 +0000
commitfa6f976f4c70a9e26eaecc0d2f932c440f961646 (patch)
tree37a91467162d803ba9d52819da7006a609862257 /Master/texmf-dist/tex/latex/dialogl
parentc0329927c34c03827e08a56ae4c4f8cc9165f203 (diff)
dialogl
git-svn-id: svn://tug.org/texlive/trunk@823 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/dialogl')
-rw-r--r--Master/texmf-dist/tex/latex/dialogl/dialog.sty347
-rw-r--r--Master/texmf-dist/tex/latex/dialogl/dialogl.sty532
-rw-r--r--Master/texmf-dist/tex/latex/dialogl/grabhedr.sty153
-rw-r--r--Master/texmf-dist/tex/latex/dialogl/menus.sty247
4 files changed, 1279 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/dialogl/dialog.sty b/Master/texmf-dist/tex/latex/dialogl/dialog.sty
new file mode 100644
index 00000000000..f3eabee0c65
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/dialogl/dialog.sty
@@ -0,0 +1,347 @@
+%%
+%% This is file `dialog.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% dialog.dtx (with options: `2e')
+
+%%% ====================================================================
+%%% @LaTeX-style-file{
+%%% filename = "dialog.sty",
+%%% version = "0.9y",
+%%% date = "1994/11/08",
+%%% time = "13:31:30 EST",
+%%% checksum = "20801 1436 7278 54732",
+%%% author = "Michael Downes",
+%%% email = "mjd@math.ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "TeX, dialog",
+%%% supported = "yes",
+%%% abstract = "This file provides functions for writing
+%%% messages and menus on screen, and reading user responses. It
+%%% can be used with LaTeX as a documentstyle option, or in
+%%% other forms of TeX by a standard \input statement.",
+%%% 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.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{dialog}[1994/11/08 v0.9y]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{grabhedr}
+%% The line break is significant here:
+\localcatcodes{\@{11}\ {10}\
+{5}\~{13}\"{12}\#{6}\^{7}\`{12}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begingroup
+\def\do{12 \catcode`}
+\catcode`\~\do\!\do\@\do\#\do\$\do\^\do\&
+\do\*\do\(\do\)\do\-\do\_\do\=\do\[\do\]
+\do\;\do\:\do\'\do\"\do\<\do\>\do\,\do\.
+\do\/\do\?\do\|12\relax
+\escapechar -1
+\edef\\{\string\\}
+\edef\{{\string\{}\edef\}{\string\}}
+\catcode`\ =12\catcode`\%=12
+\xdef\otherchars
+{ !"#$%&'()*+,-./:;<=>?[\\]^_`\{|\}~}
+\endgroup % ^ ^ ^
+\begingroup
+\endlinechar = -1
+\def\do{12 \catcode`}
+\catcode`\^^@\do\^^A\do\^^B\do\^^C
+\do\^^D\do\^^E\do\^^F\do\^^G\do\^^H\do\^^I
+\do\^^J\do\^^K\do\^^L\do\^^M\do\^^N\do\^^O
+\do\^^P\do\^^Q\do\^^R\do\^^S\do\^^T\do\^^U
+\do\^^V\do\^^W\do\^^X\do\^^Y\do\^^Z\do\^^[
+\do\^^\\do\^^]\do\^^^\do\^^_\do\^^? 12\relax
+\gdef\controlchars{^^@^^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^^[^^\^^]^^^^^_^^?}
+\endgroup
+\begingroup
+\def\do{12 \catcode`}
+\catcode`\^^80\do\^^81\do\^^82\do\^^83\do\^^84
+\do\^^85\do\^^86\do\^^87\do\^^88\do\^^89\do\^^8a
+\do\^^8b\do\^^8c\do\^^8d\do\^^8e\do\^^8f
+\do\^^90\do\^^91\do\^^92\do\^^93\do\^^94\do\^^95
+\do\^^96\do\^^97\do\^^98\do\^^99\do\^^9a\do\^^9b
+\do\^^9c\do\^^9d\do\^^9e\do\^^9f
+\do\^^a0\do\^^a1\do\^^a2\do\^^a3\do\^^a4\do\^^a5
+\do\^^a6\do\^^a7\do\^^a8\do\^^a9\do\^^aa\do\^^ab
+\do\^^ac\do\^^ad\do\^^ae\do\^^af
+\do\^^b0\do\^^b1\do\^^b2\do\^^b3\do\^^b4\do\^^b5
+\do\^^b6\do\^^b7\do\^^b8\do\^^b9\do\^^ba\do\^^bb
+\do\^^bc\do\^^bd\do\^^be\do\^^bf
+\do\^^c0\do\^^c1\do\^^c2\do\^^c3\do\^^c4\do\^^c5
+\do\^^c6\do\^^c7\do\^^c8\do\^^c9\do\^^ca\do\^^cb
+\do\^^cc\do\^^cd\do\^^ce\do\^^cf
+\do\^^d0\do\^^d1\do\^^d2\do\^^d3\do\^^d4\do\^^d5
+\do\^^d6\do\^^d7\do\^^d8\do\^^d9\do\^^da\do\^^db
+\do\^^dc\do\^^dd\do\^^de\do\^^df
+\do\^^e0\do\^^e1\do\^^e2\do\^^e3\do\^^e4\do\^^e5
+\do\^^e6\do\^^e7\do\^^e8\do\^^e9\do\^^ea\do\^^eb
+\do\^^ec\do\^^ed\do\^^ee\do\^^ef
+\do\^^f0\do\^^f1\do\^^f2\do\^^f3\do\^^f4\do\^^f5
+\do\^^f6\do\^^f7\do\^^f8\do\^^f9\do\^^fa\do\^^fb
+\do\^^fc\do\^^fd\do\^^fe\do\^^ff 12\relax
+\gdef\highchars{%
+^^80^^81^^82^^83^^84^^85^^86^^87^^88%
+^^89^^8a^^8b^^8c^^8d^^8e^^8f%
+^^90^^91^^92^^93^^94^^95^^96^^97^^98%
+^^99^^9a^^9b^^9c^^9d^^9e^^9f%
+^^a0^^a1^^a2^^a3^^a4^^a5^^a6^^a7^^a8%
+^^a9^^aa^^ab^^ac^^ad^^ae^^af%
+^^b0^^b1^^b2^^b3^^b4^^b5^^b6^^b7^^b8%
+^^b9^^ba^^bb^^bc^^bd^^be^^bf%
+^^c0^^c1^^c2^^c3^^c4^^c5^^c6^^c7^^c8%
+^^c9^^ca^^cb^^cc^^cd^^ce^^cf%
+^^d0^^d1^^d2^^d3^^d4^^d5^^d6^^d7^^d8%
+^^d9^^da^^db^^dc^^dd^^de^^df%
+^^e0^^e1^^e2^^e3^^e4^^e5^^e6^^e7^^e8%
+^^e9^^ea^^eb^^ec^^ed^^ee^^ef%
+^^f0^^f1^^f2^^f3^^f4^^f5^^f6^^f7^^f8%
+^^f9^^fa^^fb^^fc^^fd^^fe^^ff}
+\endgroup
+\def\actively#1#2{\catcode`#2\active
+ \begingroup \lccode`\~=`#2\relax
+ \lowercase{\endgroup#1~}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\mesjsetup{\begingroup \count@=12
+ \def\do##1{\catcode`##1\count@ \do}%
+ \xp@\do\otherchars{a11 \@gobbletwo}%
+ \xp@\do\controlchars{a11 \@gobbletwo}%
+ \xp@\do\highchars{a11 \@gobbletwo}%
+ \actively\edef\^^I{ \space\space\space
+ \space\space\space\space}%
+ \endlinechar=`\^^M\actively\let\^^M=\relax
+ \catcode`\{=1 \catcode`\}=2 }
+\def\sendmesj{\newlinechar`\^^J%
+ \actively\def\^^M{^^J}%
+ \immediate\write\sixt@@n{\mesjtext}\endgroup}
+\def\mesj{\mesjsetup \afterassignment\sendmesj
+ \def\mesjtext}
+\def\sendprompt{%
+ \newlinechar`\!\relax \actively\def\^^M{!}%
+ \message{\mesjtext}\endgroup}
+\def\promptmesj{\mesjsetup
+ \afterassignment\sendprompt \def\mesjtext}
+\def\storemesj#1{\mesjsetup
+ \catcode`\#=6 % to allow arguments if needed
+ \afterassignment\endgroup
+ \long\gdef#1}
+\def\fmesj#1#2#{\mesjsetup
+ \catcode`\#=6 % restore to normal
+ \toks@{\long\gdef#1#2}%
+ \def\@tempa{%
+ \edef\@tempa{%
+ \the\toks@{%
+ \begingroup\def\nx@\mesjtext{\the\toks2 }%
+ \nx@\sendmesj}%
+ }%
+ \@tempa
+ \endgroup % Turn off the \mesjsetup catcodes
+ }%
+ \afterassignment\@tempa
+ \toks2=}
+\def\xmesjsetup{\mesjsetup
+ \iffalse{\fi
+ \catcode`\\=0 \catcode`\%=14
+ \begingroup \lccode`\0=`\\\lccode`\1=`\{%
+ \lccode`\2=`\}\lccode`\3=`\%%
+ \lowercase{\endgroup \def\\{0}\def\{{1}%
+ \def\}{2}\def\%{3}}%
+ \iffalse}\fi
+ \edef\&{\string &}%
+ \actively\let\&=\noexpand
+ \actively\let\^^M=\relax
+ \def\.{}%
+ \def\ { }\edef~{\string ~}%
+ \begingroup \lccode`\~=`\^^M%
+ \lowercase{\endgroup \def\^^M{~}}%
+ \let\^^J\^^M \def\par{\^^M\^^M}%
+}
+\def\xmesj{\xmesjsetup \afterassignment\sendmesj
+ \edef\mesjtext}
+\def\promptxmesj{\xmesjsetup
+ \afterassignment\sendprompt \edef\mesjtext}
+\def\storexmesj#1#2#{\xmesjsetup
+ \catcode`\#=6 % to allow arguments if needed
+ \edef\#{\string##}%
+ \afterassignment\endgroup
+ \long\xdef#1#2}
+\def\fxmesj#1#2#{\xmesjsetup
+ \catcode`\#=6 % restore to normal
+ \edef\#{\string##}%
+ \toks@{\long\xdef#1#2}%
+ \def\@tempa{%
+ \edef\@tempa{%
+ \the\toks@{\begingroup
+ \def\nx@\nx@\nx@\mesjtext{\the\toks\tw@}%
+ \nx@\nx@\nx@\sendmesj}}%
+ \@tempa % execute the constructed xdef
+ \endgroup % restore normal catcodes
+ }%
+ \afterassignment\@tempa
+ \toks\tw@=}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\readline#1#2{%
+ \begingroup \count@ 12 %
+ \def\do##1{\catcode`##1\count@ \do}%
+ \xp@\do\otherchars{a11 \@gobbletwo}%
+ \xp@\do\controlchars{a11 \@gobbletwo}%
+ \xp@\do\highchars{a11 \@gobbletwo}%
+ \catcode`\ =10 \catcode`\^^I=10 %
+ \catcode`\^^M=9 % ignore
+ \endlinechar`\^^M
+ \read\m@ne to#2%
+ \edef#2{\def\nx@#2{#2}}%
+ \xp@\endgroup #2%
+ \ifx\@empty#2\def#2{#1}\fi
+}
+\def\xreadline#1#2{%
+ \begingroup
+ \xp@\let\csname bye\endcsname\relax
+ \xp@\let\csname newif\endcsname\relax
+ \xp@\let\csname newcount\endcsname\relax
+ \xp@\let\csname newdimen\endcsname\relax
+ \xp@\let\csname newskip\endcsname\relax
+ \xp@\let\csname newmuskip\endcsname\relax
+ \xp@\let\csname newtoks\endcsname\relax
+ \xp@\let\csname newbox\endcsname\relax
+ \xp@\let\csname newinsert\endcsname\relax
+ \xp@\let\csname +\endcsname\relax
+ \actively\let\^^L\relax
+ \catcode`\^^M=9 % ignore
+ \endlinechar`\^^M% reset to normal
+ \read\m@ne to#2%
+ \toks@\xp@{#2}%
+ \edef\@tempa{\def\nx@#2{\the\toks@}}%
+ \xp@\endgroup \@tempa
+ \ifx\@empty#2\def#2{#1}\fi
+}
+\def\readchar#1#2{%
+ \readline{#1}#2%
+ \edef#2{\xp@\@car#2#1{}\@nil}%
+}
+\def\readChar#1#2{%
+ \readline{#1}#2%
+ \changecase\uppercase#2%
+ \edef#2{\xp@\@car #2#1{}\@nil}%
+}
+\def\changecase#1#2{\@casetoks\xp@{#2}%
+ \edef#2{#1{\def\nx@#2{\the\@casetoks}}}#2}
+\newtoks\@casetoks
+\def\checkinteger#1#2{\let\scansign@\@empty
+ \def\scanresult@{#2}%
+ \xp@\scanint#1x\endscan}
+\def\scanint#1{%
+ \ifodd 0#11 %
+ \def\@tempa{\afterassignment\endscan
+ \scanresult@=\scansign@#1}%
+ \else
+ \if -#1\relax
+ \edef\scansign@{%
+ \ifx\@empty\scansign@ -\fi}%
+ \def\@tempa{\scanint}%
+ \else
+ \if +#1\relax
+ \def\@tempa{\scanint}%
+ \else % not a valid number
+ \def\@tempa{%
+ \scanresult@=-\maxdimen\endscan}%
+ \fi\fi\fi
+ \@tempa
+}
+\def\endscan#1\endscan{}
+\newcount\dimenfirstpart
+\newtoks\dimentoks
+\def\scandimen#1{%
+ \ifodd 0#11
+ \def\@tempa{\def\@tempa{\scandimenb}%
+ \afterassignment\@tempa
+ \dimenfirstpart#1}%
+ \else
+ \if \if,#1.\else#1\fi.%
+ \def\@tempa{\scandimenc}%
+ \else
+ \if -#1% then flipflop the sign
+ \edef\scansign@{%
+ \ifx\@empty\scansign@ -\fi}%
+ \def\@tempa{\scandimen}%
+ \else
+ \if +#1% then ignore it
+ \def\@tempa{\scandimen}%
+ \else % not a valid dimen
+ \def\@tempa{%
+ \scanresult@=-\maxdimen\endscan}%
+ \fi\fi\fi\fi
+ \@tempa
+}
+\def\scandimenb#1{%
+ \if \if,#1.\else#1\fi.%
+ \def\@tempa{\scandimenc}%
+ \else
+ \def\@tempa{\scanunitsa#1}%
+ \fi
+ \@tempa
+}
+\def\scandimenc#1{%
+ \ifodd 0#11 \dimentoks\xp@{%
+ \the\dimentoks#1}%
+ \def\@tempa{\scandimenc}%
+ \else
+ \def\@tempa{\scanunitsa#1}%
+ \fi
+ \@tempa
+}
+\def\scanunitsa#1\endscan{%
+ \def\@tempa##1true##2##3\@tempa{##2}%
+ \lowercase{%
+ \xp@\ifx\xp@\end
+ \@tempa#1true\end\@tempa
+ }%
+ \let\dimentrue@\@empty
+ \def\@tempa{\scanunitsb#1\endscan}%
+ \else
+ \def\dimentrue@{true}%
+ \def\@tempa##1true##2\@tempa{%
+ \def\@tempa{##1}%
+ \ifx\@tempa\@empty
+ \def\@tempa{\scanunitsb##2\endscan}%
+ \else
+ \def\@tempa{\scanunitsb xx\endscan}%
+ \fi}%
+ \@tempa#1\@tempa
+ \fi
+ \@tempa
+}
+\def\scanunitsb#1#2{%
+ \def\@tempa##1#1#2##2##3\@nil{##2}%
+ \def\@tempb##1{T\@tempa
+ pcTptTcmTccTemTexTinTmmTddTspT##1F\@nil}%
+ \lowercase{%
+ \if\@tempb{#1#2}%
+ }%
+ \scanresult@=\scansign@
+ \number\dimenfirstpart.\the\dimentoks
+ \dimentrue@#1#2\relax
+ \else
+ \scanresult@=-\maxdimen
+ \fi
+ \endscan
+}
+\def\checkdimen#1#2{%
+ \let\scansign@\@empty \def\scanresult@{#2}%
+ \let\dimentrue@\@empty
+ \dimenfirstpart\z@ \dimentoks{}%
+ \xp@\scandimen#1xx\endscan
+}
+\restorecatcodes
+\endinput
+%%
+%% End of file `dialog.sty'.
diff --git a/Master/texmf-dist/tex/latex/dialogl/dialogl.sty b/Master/texmf-dist/tex/latex/dialogl/dialogl.sty
new file mode 100644
index 00000000000..edb58bccd8d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/dialogl/dialogl.sty
@@ -0,0 +1,532 @@
+% dialogl.sty 2-Nov-1994
+% Customizations for the articles codialog.tex, dia-driv.tex,
+% lis-driv.tex.
+%
+% Here is the main problem. I want to allow users to print out this
+% document on US letter-size paper (8.5x11 inches) or on A4 paper
+% (210x297 mm). And in order to fit maximum text on minimum paper
+% (save the trees) I want to print with small margins and
+% two-column layout (or even three-column, in the case of landscape
+% printing, if that were feasible; but I don't want to assume that
+% the user has Frank's multicol package). But the verbatim examples
+% in the document consist in many cases of lines from TeX screen
+% output, which can be up to 79 characters in length. It is
+% difficult to give two columns wide enough to accommodate
+% 80-character lines printed in cmtt unless the size is cut down
+% very small. Then we encounter the difficulty that the
+% lowest-common-denominator set of TeX fonts includes cmtt10,
+% cmtt9, cmtt8, but not cmtt7 or any smaller sizes of cmtt. Well,
+% perhaps that's just as well since things start to get a little
+% hard to read anyway once you get down that small.
+%
+% But anyway there it is: How to fit two columns of text, each of
+% minimum width approximately 80 cmtt characters, into the
+% rectangles provided by US letter paper and A4 paper, while trying
+% to keep a decent line length for readability in the neighborhood
+% of two or three alphabets.
+%
+% It seems that one part of the answer is to print the 80-character
+% verbatim lines in a smaller point size than the main text.
+
+% 8.5in = 614.295pt.
+% 11in = 794.96999pt.
+% 210mm = 597.50787pt.
+% 297mm = 845.04684pt.
+
+% 80 characters, cmtt10: 419.99634pt.
+% 80 characters, cmtt8: 340.00488pt.
+% 76 characters, cmtt8: 323.00464pt.
+% 70 characters, cmtt8: 297.50427pt.
+
+% Assume that minimum margins all around are 22pt, approx 8mm /
+% 0.3in. And that desired gutter margin between columns is 6pt.
+% Then subtract 50pt from paper width and divide by 2 to get
+% available column width: 210mm 274pt, 8.5in 282pt, 11in 372pt,
+% 297mm 397pt.
+%
+% Standard \headheight, \headsep are 12pt, 25pt. So next we look for
+% minimum bounding rectangle for landscape, two-column printing:
+% textheight limited by A4 short dimension = 210mm = 598pt.
+% Subtract 44pt for margins, then another 37pt for running head,
+% that leaves textheight of 517pt.
+%
+% Similarly for textwidth: Limited by the 11in long dimension of US
+% letter size paper; subtract 50pt for margins and gutter, that
+% leaves 745pt, or 372pt per column.
+
+\newcommand{\notthatsloppy}{\tolerance9999 \pretolerance3333
+ \hbadness\tolerance
+% The tolerance settings will eliminate most hyphenation unless we
+% ameliorate the hyphen penalties.
+ \hyphenpenalty-100 \exhyphenpenalty-150
+ \emergencystretch 3pc }
+
+% But then we'd better patch \raggedright up a litt.e
+\toks@\expandafter{\raggedright \hyphenpenalty100 \exhyphenpenalty150 }
+\edef\raggedright{\the\toks@}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pagestyle{headings}
+\let\sectionmark\@gobble
+\def\@oddhead{\hfil{\small\rhtitle}\hfil\thepage}
+\let\@evenhead\@oddhead
+\def\title#1{\gdef\@title{#1}\uppercase{\gdef\rhtitle{#1}}}
+
+% Default layout is twocolumn, landscape, squeeze inside A4/US
+% constraints
+\def\defaultlayout{%
+% \hoffset and \voffset are assumed to be -1in (see below)
+% 210mm is A4 width, 11in is US-letter paper height
+ \textwidth11in \textheight210mm
+ \oddsidemargin30pt \evensidemargin\oddsidemargin
+ \advance\textwidth -2\oddsidemargin
+ \topmargin25pt
+ \advance\textheight-2\topmargin
+ \advance\textheight-\headheight \advance\textheight -\headsep
+ \let\Huge\large \let\huge\large \let\LARGE\large \let\Large\large
+% \scaleup \normalsize
+ \@twocolumntrue
+}
+
+% Twocolumn, portrait, squeeze inside A4/US
+% constraints
+\def\portraitlayout{%
+% \hoffset and \voffset are assumed to be -1in (see below)
+% 210mm is A4 width, 11in is US-letter paper height
+ \textheight11in \textwidth210mm
+ \oddsidemargin30pt \evensidemargin\oddsidemargin
+ \advance\textwidth -2\oddsidemargin
+ \topmargin25pt
+ \advance\textheight-2\topmargin
+ \advance\textheight-\headheight \advance\textheight -\headsep
+ \let\Huge\large \let\huge\large \let\LARGE\large \let\Large\large
+% \scaleup \normalsize
+ \@twocolumntrue
+ \def\vffont{\footnotesize\tt}%
+ \def\verbatimfont{\small\tt}%
+}
+
+% If the multicol package is loaded (via the doc package) we want to
+% use that instead of the standard twocolumn option.
+\def\multicoldefaultlayout{\defaultlayout\@twocolumnfalse}
+\def\multicolportraitlayout{\portraitlayout\@twocolumnfalse}
+
+% Cancel the margins normally supplied by DVI drivers:
+\hoffset-1in \voffset-1in
+
+% Set \hfuzz higher than normal in preference to dealing with
+% insoluble hyphenation/line-breaking problems.
+\hfuzz20pt
+
+% Set sloppiness of paragraphs very high because of the narrow
+% column width and the frequency of difficult to break terms, but
+% not so carelessly high as LaTeX's \sloppy command would give.
+\notthatsloppy
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\scaleup{%
+ \let\tiny\scriptsize \let\scriptsize\footnotesize
+ \let\footnotesize\small \let\small\normalsize
+ \let\normalsize\large \let\large\Large
+}
+
+\def\scaledown{%
+ \let\Huge\large \let\huge\large
+ \let\LARGE\large \let\Large\normalsize
+ \let\large\normalsize \let\normalsize\small
+ \let\small\footnotesize \let\footnotesize\scriptsize
+ \let\scriptsize\tiny
+}
+%
+% Add protection built-in for \TeX and others
+\newcommand{\ams}{{\the\textfont2 A\kern-.1667em%
+ \lower.5ex\hbox{M}\kern-.125emS\kern.05em}}
+\def\tex/{\protect\TeX\@}
+\def\amstex/{\protect\ams-\tex/}
+\def\latex/{\protect\LaTeX\@}
+\def\plaintex/{{\sc plain}\thinspace\tex/}
+\def\eplain/{{\sc Eplain}}
+\def\texbook/{{\it The \tex/book}}
+\def\tugboat/{{\it TUGboat}}
+\def\return/{{\sc return}}
+\def\mf/{{\sf METAFONT\@}}
+\def\mfbook/{{\it The \mf/book}}
+\def\ascii/{{\sc ascii}}
+
+\newcommand{\ndash}{--}
+\newcommand{\mdash}{---}
+\newcommand{\btext}{\mbox}
+
+\newcommand{\5}{\penalty500 }
+\newcommand{\underscore}{{\ntt\string _}}
+
+% Define some ltugboat.sty commands
+\let\Dash\mdash
+\let\dash\ndash
+\def\TB{\texbook/}
+\def\TUB{{\sl TUGboat\/}}
+\def\TeXhax{{\ntt TeXhax}}
+
+\@ifundefined{selectfont}{%
+ \def\normalfont{}%
+}{%
+ \@ifundefined{default@family}{%
+ \@ifundefined{normalfont}{%
+ \def\normalfont{}% ?? don't think this case can ever happen.
+ }{}%
+ }{%
+ \def\normalfont{\fontfamily\default@family
+ \fontseries\default@series \fontshape\default@shape \selectfont}%
+ }%
+}
+
+% Maybe I should now change instances of \normalshape to \upshape.
+% But this is what was used before.
+\@ifundefined{normalshape}{%
+ \@ifundefined{upshape}{%
+ \newcommand{\normalshape}{\rm}%
+ }{%
+ \newcommand{\normalshape}{\upshape}%
+ }%
+}{}
+
+\def\ntt{\protect\normalfont\protect\tt}
+
+% Function called at the beginning of \cw etc. to allow line
+% breaks if several such objects occur contiguously.
+\newcommand{\prebreak}{\leavevmode\ifmmode\hbox\else
+ \ifdim\lastskip=\z@\penalty9999 \fi\fi}
+
+% The \ifhmode test here is primarily to guard against math mode,
+% where an attempt to set \spacefactor would cause a TeX error.
+\newcommand{\postx}{\ifhmode\@\fi}
+
+% Control word
+\newcommand{\cw}[1]{\protect\prebreak{\ntt\bslash#1\protect\postx}}
+% Control symbol
+\newcommand{\cs}[1]{\protect\prebreak{\ntt\string#1}\protect\postx}
+\chardef\bslash=`\\
+
+% Quoted character
+\newcommand{\qc}[1]{%
+ \protect\prebreak{\ntt\escapechar-1 \string#1}\protect\postx}
+% Control character
+\newcommand{\ctrl}[1]{%
+ \protect\prebreak{\ntt\string ^\string ^#1}\protect\postx}
+% Argument marker. Apply \string to #1 just in case it might be #
+% instead of a number 1--9.
+\renewcommand{\arg}[1]{%
+ \protect\prebreak{\ntt\string ##\string#1}\protect\postx}
+\let\qarg\arg
+% File name.
+\newcommand{\fn}[1]{\leavevmode{\ntt#1}\protect\postx}
+\let\pkg\fn
+% Verbatim version of \ldots.
+\newcommand\verbdots{\leavevmode{\ntt...}\protect\postx}
+
+\newcommand{\units}[1]{\thinspace#1}
+
+% For `meta' angle bracket notation.
+\newcommand\m[1]{{\protect\the\textfont2 h{\it#1}i}}
+% For definitions of terminology.
+\newcommand{\term}[1]{\leavevmode{\it#1}}
+
+\def\eg.{e.g.\@}
+\def\ie.{i.e.\@}
+
+%\def\mjd#1{\errhelp{#1}\errmessage{\the\errhelp}}
+\def\mjd#1{}
+
+% ^^V at the beginning of a line serves as a substitute for
+% \begin{verbatim} ... \end{verbatim} in this documentation. Partly
+% done as an exercise to see if it was feasible; originally
+% motivated by the way I had converted comments in non-doc form to
+% doc form.
+\catcode`\^^V\active % for verbatim
+\def ^^V{\Vbtm}
+
+\def\activedef#1{\catcode`#1\active
+ \begingroup\lccode`\~=`#1\lowercase{\endgroup \def ~}}
+
+\def\Vbtmsetup{\let\do\@makeother
+% Abandon \dospecials since it's too hard to make sure that it
+% includes things like @, |, +.
+ \do\`\do\~\do\!\do\@\do\#\do\$\do\%\do\^\do\&\do\*\do\(\do\)\do\-%
+ \do\_\do\=\do +\do\\\do\|\do\[\do\{\do\]\do\}\do\;\do\:\do\'\do\"%
+ \do\,\do\<\do\.\do\>\do\/\do\?\do\ \do\^^M\do\^^I\do\^^J\do\^^L%
+ \activedef\ {\kern.5em}%
+ \activedef\'{\char`\'\kern\z@}%
+ \Vbtmfont \frenchspacing
+}
+%
+\def\Vbtm{\par
+ \begingroup \Vbtmsetup
+ \activedef\^^M{\catcode`\%9 \catcode`\^7
+ \futurelet\next\moreVbtm}%
+ \def\VbtmVbtm{\Vbtm}% for comparison with active ^^V.
+ \def\moreVbtm{%
+ \ifx\next \VbtmVbtm
+ \def\next{\egroup\penalty9999 }%
+ \else
+ \def\next{\egroup\endgroup \futurelet\next\endVbtm}%
+ \fi \next}%
+% Locally change \Vbtm to omit the above setup and just process a
+% single line.
+ \def\Vbtm{\hbox\bgroup}%
+ \Vbtmspace \Vbtmextra \Vbtm}
+%
+\def\endVbtm{%
+ \begingroup
+% If the next token is a \par token, gobble it with \let.
+ \ifx\next\par \aftergroup\let \aftergroup\next \fi
+ \Vbtmspace \everypar{}\parskip0pt \noindent\endgroup
+}%
+
+\def\Vbtmfont{\verbatimfont}
+%
+\def\Vbtmspace{\medskip}
+\def\Vbtmextra{}
+%
+% Define a `usage' environment to draw a box around its contents,
+% for examples illustrating the usage of salient functions.
+\def\usage{\par \begingroup \Vbtmsetup \normalsize\tt
+% Requires definition of \meta from doc.sty:
+ \activedef\<##1>{\meta{##1}}%
+ \activedef\^^M{\catcode`\%9\catcode`\\\z@ \catcode`\{11 \catcode`\}11
+ \futurelet\next\moreusage}%
+ \if@inlabel\leavevmode\fi \ifhmode\unskip \par\fi
+ \addvspace\medskipamount
+ \global\setbox\@ne\vbox\bgroup \everypar{}%
+ \bgroup}
+%
+\expandafter\def\expandafter\moreusage\expandafter{%
+ \expandafter\ifx\csname end{usage}\endcsname\next
+ \egroup\egroup
+ \fboxsep1.7pt \noindent\fbox{\box\@ne}%
+ \endgroup
+ \else
+ \egroup
+ \hbox\bgroup\expandafter\string
+ \fi}%
+%
+\expandafter\def\csname end{usage}\endcsname{\end{usage}}
+\def\endusage{\par\nobreak\vskip\medskipamount
+% Since \endusage is called via \end, which adds an \endgroup, we
+% need to throw these two items beyond the \endgroup in order for
+% their local assignments not to be lost (\if@afterindent,
+% \everypar):
+ \aftergroup\@afterindentfalse
+ \aftergroup\@afterheading}
+
+\def\verbatimfont{\tt}
+\def\vffont{\small\tt}
+
+% Change verbatim environment to use \verbatimfont.
+
+\def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi
+ \leftskip\@totalleftmargin\rightskip\z@
+ \parindent\z@\parfillskip\z@ plus\columnwidth minus\columnwidth
+ \parskip\z@skip
+ \@@par
+ \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par
+ \penalty\interlinepenalty}%
+ \obeylines
+ \linepenalty\@M
+ \verbatimfont \normalbaselineskip1.1em\relax \normalbaselines
+ \catcode``=13 \@noligs \let\do\@makeother \dospecials}
+
+% Define a verbatim input command for printing example files.
+\def\verbatiminput#1{\begingroup
+ \@verbatim \frenchspacing\@vobeyspaces
+ \exhyphenpenalty\@M \hyphenpenalty\@M
+% Turn \hfuzz up high; if some lines in the file are a little long,
+% we don't want to hear about it.
+ \hfuzz 5em\relax \vffont
+ \input{#1}%
+ \endverbatim
+ \endgroup}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Misc.
+\setcounter{secnumdepth}{2}
+\newcommand{\secref}[1]{\S\ref{#1}}
+\renewcommand{\thetable}{\Alph{table}}
+
+% Change \l@section so we can allow wider room for `Appendix A' in
+% the appendix section of the table of contents.
+\renewcommand{\l@section}[2]{%
+ \ifnum\c@tocdepth>\z@
+ \addpenalty{\@secpenalty}\addvspace{1.0emplus\p@}%
+ \setlength\@tempdima{\tocsecwd}\begingroup \parindent\z@
+ \rightskip\@pnumwidth \parfillskip-\@pnumwidth \leavevmode \bf
+ \advance\leftskip\@tempdima \hskip-\leftskip #1\nobreak \hfil\nobreak
+ \hbox to\@pnumwidth{\hss#2}\par \endgroup
+ \fi}
+\def\tocsecwd{1.5em}
+
+\toks@\expandafter{\appendix
+ \addtocontents{toc}{\protect\changesecwd{6.5em}}}
+\edef\appendix{\the\toks@}
+\def\changesecwd{\gdef\tocsecwd}
+
+\def\resetleftmargin#1{\dimen@\@totalleftmargin
+ \linewidth\columnwidth \advance\linewidth-\@totalleftmargin
+ \edef\@tempa{\parshape2 \the\dimen@\space \the\linewidth\space}%
+ \@totalleftmargin#1\relax
+ \linewidth\columnwidth \advance\linewidth-\@totalleftmargin
+ \@tempa \@totalleftmargin\linewidth \relax}
+
+% For raggedright parbox in tabular.
+\newcommand{\rp}{\let\PBS\\\raggedright\let\\\PBS}
+
+% \readnumber reads a number into #1, default #2.
+\def\readnumber#1#2{\begingroup
+ \def\do##1##2{\catcode\fam=##2 \ifnum\fam<##1 \advance\fam 1
+ \expandafter\do \else\expandafter\@gobbletwo\fi{##1}{##2}}%
+ \fam=0 \do{255}{9}\fam=`\0\relax \do{`\9}{12}%
+ \global\read-1 to#1\endgroup
+ \ifx#1\@empty\gdef#1{#2}\fi
+}
+
+\def\thebibliography#1{%
+ \section*{References}%
+ \small
+ \list{\@biblabel{\arabic{enumiv}}}{%
+ \settowidth\labelwidth{\@biblabel{#1}}
+ \leftmargin2em
+ \usecounter{enumiv}\let\p@enumiv\@empty
+ \renewcommand\theenumiv{\arabic{enumiv}}}%
+ \sloppy
+ \clubpenalty4000\widowpenalty4000\sfcode`\.=\@m}
+
+% \writepage{Example} or \writepage{Table}
+\newcommand{\writepage}[1]{%
+ \edef\temp{\write16{#1 \@currentlabel: Page \noexpand\thepage}}%
+ \temp
+}
+
+% \reqspace{2in} means start a new page if the current page does not
+% have at least 2in of space available
+\newcommand{\reqspace}[1]{\vskip#1plus.2\textheight
+ \penalty0\vskip-#1plus-.2\textheight\penalty0 }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Use {example}'s instead of {figure}'s.
+\let\example\figure
+\let\endexample\endfigure
+\expandafter\let\csname example*\expandafter\endcsname
+ \csname figure*\endcsname
+\expandafter\let\csname endexample*\expandafter\endcsname
+ \csname endfigure*\endcsname
+\@namedef{fnum@figure}{Example \thefigure}
+
+\def\theexample{\thefigure}
+
+\newenvironment{examplebox}%
+{% Can't use LaTeX \framebox because of embedded verbatim; can't
+%% embed this inside definition of \example without too much work.
+ \vbox\bgroup\hrule
+ \hbox to\hsize\bgroup\vrule \hfil
+ \vbox\bgroup\advance\hsize-2em
+}{%
+ \endgraf
+ \kern3pt\egroup\hfil\vrule\egroup\hrule\egroup % finish off the frame
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Ordinary \DocInput doesn't handle standardized file headers
+% unless you enclose them in \iffalse ... \fi which I don't care to
+% do. So instead here's an alternate version of \DocInput, called
+% \hDocInput.
+
+\def\hDocInput#1{\MakePercentIgnore
+ \begingroup \begingroup \lccode`\~=`\@
+ \lowercase{\endgroup\long\def ~}##1##{%
+ \catcode`\==12 \skipfileheader{##1}}%
+ \catcode`\@=\active \catcode`\==14 % comment
+ \@@input#1 \MakePercentComment}
+
+\def\skipfileheader#1#2 {\endgroup
+ \begingroup\catcode`\==9 \catcode`\ =9 \futurelet\0\endgroup
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Loosen up the float placement restrictions.
+\def\textfraction{0.02}
+\def\bottomfraction{0.98}
+\def\topfraction{0.98}
+\let\dbltopfraction=\topfraction
+\def\floatpagefraction{0.8}
+\let\dblfloatpagefraction=\floatpagefraction
+\setcounter{bottomnumber}{3}
+\setcounter{topnumber}{3}
+\setcounter{dbltopnumber}{3}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\allowtthyphens{%
+ {\small\tt\hyphenchar\font=45 \normalsize\tt\hyphenchar\font=45
+ \footnotesize\tt\hyphenchar\font=45 }}
+
+%%\renewcommand{\cw}[1]{\protect\prebreak{\ntt\bslash#1}\protect\postx
+%% \sh{#1}}
+%%% Control symbol
+%%\renewcommand{\cs}[1]{\protect\prebreak{\ntt\string#1}\protect\postx
+%% \sh{#1}}
+%%\renewcommand{\fn}[1]{\leavevmode{\ntt#1}\protect\postx\sh{#1}}
+%%\def\sh{\protect\showhyphens}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Fix up catcodes of the upper 128 characters just in case someone
+% has an early release of LaTeX2e. (pre June 1994 patch-level 2)
+\def\do{\catcode\count@\@tempa \advance\count@\@ne
+ \ifnum\count@>\@cclv \expandafter\@gobble\fi \do}
+
+\count@=128 \chardef\@tempa=12 \do
+
+\def\mstrip#1->{}
+\def\jobswitch{%
+ \def\@tempa{dia-driv}%
+ \edef\@tempa{\expandafter\mstrip\meaning\@tempa}%
+ \edef\@tempb{\jobname}%
+ \ifx\@tempa\@tempb
+ \dialogtrue \menustrue \grabhedrtrue
+ \alltrue
+ \else
+ \csname\jobname true\endcsname
+ \title{The {\tt\jobname} package}%
+ \fi
+}
+
+\newif\ifdialog \newif\ifall \newif\ifmenus \newif\ifgrabhedr
+
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Some old stuff from codialog.tex
+\typeout{%
+This document offers three printing options:^^J%
+(1) A4 (297 x 210 mm), two columns, landscape orientation,^^J%
+(2) US letter (11 x 8.5 inches), two columns, landscape orientation.^^J%
+(3) US letter (8.5 x 11 inches), one column, portrait orientation.^^J%
+}
+
+% \readnumber is defined in dialogm.sty
+\message{Enter the number for your choice (default 2): }
+\readnumber{\answer}{2}
+
+% \adjustlayout is defined in dialogm.sty
+\ifcase \answer\relax
+ \typeout{Defaulting to US letter, landscape ...}% 0
+ \adjustlayout{11in}{8.5in}%
+ \or \typeout{OK, using A4 layout ...}% 1
+ \adjustlayout{297mm}{210mm}%
+ \or \typeout{OK, using 11x8.5 layout ...}% 2
+ \adjustlayout{11in}{8.5in}%
+ \or \typeout{OK, using 8.5x11 layout ...}% 3
+ \adjustlayout{8.5in}{11in}%
+ \else % 4,5,...
+ \typeout{Defaulting to US letter, landscape ...}%
+ \adjustlayout{11in}{8.5in}%
+\fi
+
+% Maybe better to offer the choices USL, USP, A4L, A4P?
diff --git a/Master/texmf-dist/tex/latex/dialogl/grabhedr.sty b/Master/texmf-dist/tex/latex/dialogl/grabhedr.sty
new file mode 100644
index 00000000000..a0af96b9774
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/dialogl/grabhedr.sty
@@ -0,0 +1,153 @@
+%%
+%% This is file `grabhedr.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% grabhedr.dtx (with options: `2e')
+
+%%% ====================================================================
+%%% @LaTeX-style-file{
+%%% filename = "grabhedr.sty",
+%%% version = "0.9j",
+%%% date = "1994/11/08",
+%%% time = "16:15:00 EST",
+%%% author = "Michael Downes",
+%%% email = "mjd@math.ams.org (Internet)",
+%%% keywords = "TeX, file header,
+%%% supported = "yes",
+%%% abstract = "This file defines a function \inputfwh
+%%% to be used instead of \input, to allow TeX to grab
+%%% information from standardized file headers in the form
+%%% proposed by Nelson Beebe during his term as president of the
+%%% TeX Users Group. Of which all this here is an example.",
+%%% checksum = "60397 519 2589 19482",
+%%% 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.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{grabhedr}[1994/11/08 v0.9j]
+\begingroup
+\catcode96 12 % left quote
+\catcode`\= 12
+\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
+\catcode`\$=3 \catcode`\~=13 \catcode`\^=7
+\catcode`\_=8 \catcode`\^^M=5 \catcode`\"=12
+\catcode`\@=11
+\gdef\@empty{}
+\long\gdef\@gobble#1{}
+\long\gdef\@gobbletwo#1#2{}
+\long\gdef\@gobblethree#1#2#3{}
+\long\gdef\@car#1#2\@nil{#1}
+\ifx\UndEFiNed\@@input % LaTeX not loaded.
+ \edef\0{\meaning\input}\edef\1{\string\input}%
+ \ifx\0\1%
+ \global\let\@@input\input
+ \else
+ \errhelp{%
+Grabhedr.sty needs to know the name of the
+\input primitive in order to define \inputfwh
+properly. Consult a TeXnician for help.}
+ \errmessage{%
+ Non-primitive \noexpand\input detected}%
+ \fi
+\fi
+\global\toksdef\toks@=0
+\long\gdef\afterfi#1\fi{\fi#1}
+\global\let\nx@\noexpand
+\global\let\xp@\expandafter
+\begingroup \lccode`\.=`\%%
+\lowercase{\gdef\@percentchar{.}}%
+\endgroup
+\gdef\fileversiondate#1#2#3{%
+ \xp@\xdef\csname#1\endcsname{#2 (#3)}%
+ \def\filename{#1}\def\fileversion{#2}%
+ \def\filedate{#3}%
+ \message{#1 \csname#1\endcsname}%
+}
+\xdef\@filehdrstart{%
+ \@percentchar\@percentchar\@percentchar\space
+ ==================================%
+ ==================================}
+\gdef\@scanfileheader#1@#2#{\@xscanfileheader}
+\long\gdef\@xscanfileheader#1{%
+ \@yscanfileheader#1{} version = "??",
+ date = "??",\@yscanfileheader}
+\long\gdef\@yscanfileheader
+ #1 filename = "#2",#3 version = "#4",%
+ #5 date = "#6",#7\@yscanfileheader{%
+ \endgroup
+ \csname fileversiondate\endcsname{#2}{#4}{#6}%
+}
+\begingroup
+\lccode`\$=`\^^M
+\lowercase{\gdef\@readfirstheaderline#1$}{%
+ \toks@{#1}%
+ \edef\@tempa{\@percentchar\the\toks@}%
+ \ifx\@tempa\@filehdrstart
+ \endgroup \begingroup
+ \catcode`\%=9 \catcode`\^^M=5 \catcode`\@=11
+ \catcode`\ =10 \catcode`\==12 \catcode`\"=12
+ \xp@\@scanfileheader
+ \else
+ \message{(* Missing file header? *)}%
+ \afterfi\endgroup
+ \fi}
+\endgroup
+\gdef\@xinputfwh{%
+ \ifx\next\@readfirstheaderline
+ \catcode`\%=12 \catcode`\{=12 \catcode`\}=12
+ \catcode`\\=12 \catcode`\^^L=12
+ \catcode`\^=12
+ \catcode`\^^M=3\relax
+ \else \endgroup\fi
+}
+\gdef\@inputfwh{\futurelet\next\@xinputfwh}
+\gdef\inputfwh#1{%
+ \begingroup\catcode`\%=\active
+ \endlinechar`\^^M\relax
+ \lccode`\~=`\%\relax
+ \lowercase{\let~}\@readfirstheaderline
+ \xp@\@inputfwh\@@input #1\relax
+}
+\gdef\localcatcodes#1{%
+ \ifx\@empty\@catcodestack
+ \gdef\@catcodestack{{}}%
+ \fi
+ \def\do##1##2{%
+ \ifnum##2>\z@
+ \catcode\number`##1 \space
+ \number\catcode`##1\relax
+ \expandafter\do\fi}%
+ \xdef\@catcodestack{{\do#1\relax\m@ne}%
+ \@catcodestack}%
+ \def\do##1##2{\catcode`##1 ##2\relax\do}%
+ \do#1\ {\catcode32\let\do}%
+}
+\gdef\@catcodestack{{}}
+\gdef\restorecatcodes{%
+ \begingroup
+ \ifx\@empty\@catcodestack
+ \errmessage{Can't pop catcodes;
+ \nx@\@catcodestack = empty}%
+ \endgroup
+ \else
+ \def\do##1##2\do{%
+ \gdef\@catcodestack{##2}%
+ \endgroup##1}%
+ \xp@\do\@catcodestack\do
+ \fi
+}
+\expandafter\gdef\csname trap.input\endcsname
+ \input#1 \relax{%
+ \expandafter\ifx\csname#1\endcsname\relax
+ \afterfi\inputfwh{#1}\relax
+ \fi}
+\endgroup
+\endinput
+%%
+%% End of file `grabhedr.sty'.
diff --git a/Master/texmf-dist/tex/latex/dialogl/menus.sty b/Master/texmf-dist/tex/latex/dialogl/menus.sty
new file mode 100644
index 00000000000..8732ae25be2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/dialogl/menus.sty
@@ -0,0 +1,247 @@
+%%
+%% This is file `menus.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% menus.dtx (with options: `2e')
+
+%%% ====================================================================
+%%% @LaTeX-style-file{
+%%% filename = "menus.sty",
+%%% version = "0.9x",
+%%% date = "1994/11/08",
+%%% time = "13:32:59 EST",
+%%% checksum = "38585 989 4295 33156",
+%%% keywords = "TeX, menus",
+%%% author = "Michael Downes",
+%%% email = "mjd@math.ams.org (Internet)",
+%%% supported = "yes",
+%%% abstract = "This file provides functions for writing
+%%% messages and menus on screen, and reading user responses. It
+%%% can be used with LaTeX as a documentstyle option, or in
+%%% other forms of TeX by a standard \input statement.",
+%%% 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.",
+%%% }
+%%% ====================================================================
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{menus}[1994/11/08 v0.9x]
+\RequirePackage{dialog}
+\localcatcodes{\@{11}%
+ \~{13}\"{12}\#{6}\^{7}\`{12}\${3}\:{12}}
+\storexmesj\menuprefix{
+======================================================================
+}
+\let\menusuffix=\menuprefix
+\storemesj\inmenuA{
+}
+\storemesj\inmenuB{
+}
+\storemesj\menuline{ }
+\def\menutopline{}
+\def\menubotline{}
+\storemesj\endmenuline{
+}%
+\def\menunumber#1{[#1] }
+\def\menuprompt{\promptmesj{Your choice? }}
+\newtoks\menufirstpart
+\newtoks\menuchoices
+\newtoks\menulastpart
+\def\fmenu#1#2#{\mesjsetup
+ \catcode`\#=6 % for parameters
+ \toks@{\fxmenub{\gdef}{\begingroup}{}#1{#2}}%
+ \def\@tempa##1##{%
+ \def\@tempa####1####{%
+ \def\@tempa{\the\toks@}%
+ \afterassignment\@tempa \menulastpart}%
+ \afterassignment\@tempa \menuchoices}%
+ \afterassignment\@tempa \menufirstpart
+}
+\begingroup % localize \lccode change
+\lccode`\~=`\^^M
+\lowercase{%
+\long\gdef\stripM#1$~#2#3\stripM#4{%
+ \ifx$#2%
+ \stripMa#1\stripMa#4%
+ \else
+ \stripMb#2#3\stripMb#4%
+ \fi
+}
+}% end lowercase
+\lowercase{%
+\long\gdef\stripMa $#1\stripMa#2{%
+ \stripMb#1$~$$\stripMb#2}
+}% end lowercase
+\lowercase{%
+\long\gdef\stripMb#1~$#2#3\stripMb#4{%
+ \ifx$#2%
+ \stripMc#1\stripMc#4%
+ \else
+ \stripMd#1\stripMd#4%
+ \fi
+}
+}% end lowercase
+\long\gdef\stripMc#1$#2\stripMc#3{%
+ \stripMd#1\stripMd#3}
+\long\gdef\stripMd#1\stripMd#2{#2{#1}}
+\endgroup
+\begingroup \lccode`\~=`\^^M
+\lowercase{%
+\gdef\stripcontrolMs#1{\xp@\stripM
+ \xp@$\the#1$~$$\stripM#1}
+}% end lowercase
+\lowercase{%
+\gdef\addmenulines#1#2#3{%
+ \def ~##1~##2{%
+ #1\xp@{\the#1#2##1#3}%
+ \ifx\end##2\xp@\@gobbletwo\fi~##2}%
+ \edef\@tempa{\nx@~\the#1\nx@~}#1{}%
+ \@tempa\end}
+}% end lowercase
+\endgroup % restore lccode of ~
+\def\fxmenub#1#2#3#4#5{%
+ \stripcontrolMs\menufirstpart
+ \stripcontrolMs\menulastpart
+ \stripcontrolMs\menuchoices
+ \addmenulines\menuchoices\menuline\endmenuline
+ \actively\let\^^M\relax % needed for \xdef
+ \toks@{\long#1#4#5}% e.g. \xdef\foo##1##2
+ \edef\@tempa{\the\menufirstpart}%
+ \ifx\@tempa\@empty
+ \let\nxa@\@gobble
+ \else
+ \addmenulines\menufirstpart
+ \menutopline\endmenuline
+ \let\nxa@\nx@
+ \fi
+ \edef\@tempa{\the\menulastpart}%
+ \ifx\@tempa\@empty
+ \let\nxb@\@gobble
+ \else
+ \addmenulines\menulastpart
+ \menubotline\endmenuline
+ \let\nxb@\nx@
+ \fi
+\edef\@tempa{{#3\nx@#3#2%
+ \def#3\nx@#3\mesjtext{%
+ #3\nx@#3\menuprefix
+ \the\menufirstpart #3\nxa@#3\inmenuA
+ \the\menuchoices #3\nxb@#3\inmenuB
+ \the\menulastpart #3\nx@#3\menusuffix}%
+ #3\nx@#3\sendmesj
+ #3\nx@#3\menuprompt}}%
+ \toks2 \xp@{\@tempa}%
+ \edef\@tempa{\the\toks@\the\toks2 }%
+ \let\menutopline\relax \let\menuline\relax
+ \let\menubotline\relax \let\endmenuline\relax
+ \let\menunumber\relax
+ \@tempa % finally, execute the \gdef or \xdef
+ \endgroup % matches \mesjsetup done by \fxmenu
+}% end \fxmenub
+\def\fxmenu#1#2#{\xmesjsetup
+ \toks@{\fxmenub{\xdef}{\xmesjsetup}\nx@#1{#2}}%
+ \def\@tempa##1##{%
+ \def\@tempa####1####{%
+ \def\@tempa{\the\toks@}%
+ \afterassignment\@tempa \menulastpart}%
+ \afterassignment\@tempa \menuchoices}%
+ \afterassignment\@tempa \menufirstpart
+}
+\def\notyet#1{%
+ \errmessage{Not yet implemented: \string#1}}
+\long\def\nmenu#1#2#3#4#5{\notyet\nmenu}
+\long\def\nxmenu#1#2#3#4#5{\notyet\nxmenu}
+\newtoks\optionstack
+\let\curmenu\@empty
+\let\estart\relax
+\let\eend\relax
+\def\pushoptions#1{%
+ \edef\pushtemp{\estart
+ \def\nx@\curmenu{\curmenu}%
+ \eend
+ \the\optionstack}%
+ \global\optionstack\xp@{\pushtemp}%
+ \edef\curmenu{\curmenu#1}%
+}
+\def\popoptions{%
+ \edef\@tempa{\the\optionstack}%
+ \ifx\@empty\@tempa
+ \errmessage{Can't pop empty stack
+ (\string\optionstack)}%
+ \else
+ \def\estart##1\eend##2\@nil{%
+ \global\optionstack{##2}%
+ \let\estart\relax##1}%
+ \the\optionstack\@nil
+ \fi
+}
+\fmesj\moptionX{Exiting . . .}
+\def\repeatoption{%
+ \csname moption\curmenu\endcsname}
+\def\moptionQ{\popoptions \repeatoption}
+\fxmesj\badoptionmesj#1{%
+?---I don't understand "#1".}
+\def\optionexec#1{%
+ \if ?#1\relax \let\@tempa\moptionhelp
+ \else \if Q#1\relax
+ \ifx\curmenu\@empty \let\@tempa\moptionX
+ \else \let\@tempa\moptionQ \fi
+ \else \if X#1\relax \let\@tempa\moptionX
+ \else
+ \xp@\let\xp@\@tempa
+ \csname moption\curmenu#1\endcsname
+ \ifx\@tempa\relax
+ \badoptionmesj{#1}\let\@tempa\repeatoption
+ \else
+ \pushoptions{#1}%
+ \fi
+ \fi\fi\fi
+ \@tempa
+}
+\def\optionfileexec#1{\notyet\optionfileexec}
+\def\xoptiontest#1{TT\fi
+ \begingroup \def\0{?}\def\1{Q}%
+ \def\2{q}\def\3{x}\def\4{X}%
+ \aftergroup\if\aftergroup T%
+ \ifx\0#1\aftergroup T%
+ \else\ifx\1#1\aftergroup T%
+ \else\ifx\2#1\aftergroup T%
+ \else\ifx\3#1\aftergroup T%
+ \else\ifx\4#1\aftergroup T%
+ \else \aftergroup F%
+ \fi\fi\fi\fi\fi
+ \endgroup
+}
+\fxmesj\menuhelpmesj{&\menuprefix%
+A response of Q will usually send you back to %
+the previous menu.
+A response of X will get you entirely out of %
+the menu system.
+&\menusuffix%
+Press the <Return> key ( Enter ) to continue:
+}
+\def\moptionhelp{%
+ \menuhelpmesj \readline{}\reply \repeatoption}
+\def\moptionhelp{%
+ \menuhelpmesj \readline{}\reply \repeatoption}
+\xp@\def\csname moption?\endcsname{%
+ \moptionhelp}
+\def\specialhelp#1#2{%
+ \let\specialhelpreply=#1\def#1{?}\begingroup
+ \def\menuhelpmesj{\let#1\specialhelpreply
+ \promptxmesj{#2\
+Press <return> to continue:}\endgroup}%
+}
+\def\specialhelpreply{}
+\def\lettermenu#1{%
+ \csname menu#1\endcsname
+ \readChar{Q}\reply \optionexec\reply
+}
+\restorecatcodes
+\endinput
+%%
+%% End of file `menus.sty'.