summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:47:08 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:47:08 +0000
commit3b927eb81270ca256a85224fda0e0812120168a3 (patch)
treefc763fee20a22d51cc18825d462a1554e86fcdce /Master
parent4b07bbd62fe0b4abde93a927773133aac4a9a2ac (diff)
trunk/Master/texmf-dist/tex/texsis/
git-svn-id: svn://tug.org/texlive/trunk@626 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/tex/texsis/base/AIP.txs50
-rw-r--r--Master/texmf-dist/tex/texsis/base/CVformat.txs105
-rw-r--r--Master/texmf-dist/tex/texsis/base/Elsevier.txs250
-rw-r--r--Master/texmf-dist/tex/texsis/base/Exam.txs196
-rw-r--r--Master/texmf-dist/tex/texsis/base/Formletr.txs247
-rw-r--r--Master/texmf-dist/tex/texsis/base/IEEE.txs102
-rw-r--r--Master/texmf-dist/tex/texsis/base/PhysRev.txs427
-rw-r--r--Master/texmf-dist/tex/texsis/base/Spanish.txs111
-rw-r--r--Master/texmf-dist/tex/texsis/base/Swedish.txs83
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSconts.tex180
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSdcol.tex707
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSenvmt.tex687
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSeqns.tex259
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSfigs.tex520
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSfmts.tex317
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSfonts.tex548
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXShead.tex151
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSinit.tex281
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSletr.tex357
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSmacs.tex669
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSmemo.tex330
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSprns.tex230
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSrefs.tex772
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSruled.tex402
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSsects.tex507
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSsite.tex164
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXSsymb.tex194
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXStags.tex288
-rw-r--r--Master/texmf-dist/tex/texsis/base/TXStitle.tex284
-rw-r--r--Master/texmf-dist/tex/texsis/base/Tablebod.txs91
-rw-r--r--Master/texmf-dist/tex/texsis/base/WorldSci.txs104
-rw-r--r--Master/texmf-dist/tex/texsis/base/color.txs219
-rw-r--r--Master/texmf-dist/tex/texsis/base/nuclproc.txs115
-rw-r--r--Master/texmf-dist/tex/texsis/base/printfont.txs116
-rw-r--r--Master/texmf-dist/tex/texsis/base/spine.txs58
-rw-r--r--Master/texmf-dist/tex/texsis/base/texsis.tex110
-rw-r--r--Master/texmf-dist/tex/texsis/base/thesis.txs168
-rw-r--r--Master/texmf-dist/tex/texsis/base/twin.txs124
-rw-r--r--Master/texmf-dist/tex/texsis/config/texsis.ini2
39 files changed, 10525 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/texsis/base/AIP.txs b/Master/texmf-dist/tex/texsis/base/AIP.txs
new file mode 100644
index 00000000000..26bb5682add
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/AIP.txs
@@ -0,0 +1,50 @@
+%% file: AIP.txs - TeXsis version 2.18
+%% @(#) $Id: texsis.tex,v 18.0 1999/07/08 19:39:51 myers Exp $
+%======================================================================*
+% AIP -- TeXsis style file for American Institute of Physics proceedings
+%
+%--------------------------------------------------*
+\ATunlock
+\emsg{\@comment\ AIP: American Institute of Physics Proceedings Layout}
+
+\def\AIPproceedings{% AIP proceedings format
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \hsize=146mm % width of text
+ \vsize=222mm % length of text
+ \texsis % Initialize TeXsis
+ \def\Tbf{\fourteenpoint\bf}% % 14pt bold title
+ \def\tbf{\twelvepoint\bf}% % 12pt bold section head
+ \def\titlepage{% % title page for \AIPproceedings
+ \bgroup% % begin \titlepage group
+ \let\endmode=\relax % \endmode will end a field
+ \pageno=1}% %
+ \def\endtitlepage{% % end title page for \AIPproceedings
+ \endmode % end any open field
+ \egroup% % end \titlepage group
+ \medskip}% %
+ \def\abstract{% % abstract for \AIPproceedings
+ \endmode % end previous field
+ \bgroup %
+ \vskip\baselineskip % one blank line
+ \centerline{ABSTRACT}% % "ABSTRACT", centered
+ \vskip\baselineskip % another blank line
+ \let\endmode=\endabstract % to end \abstract
+ \noindent}% %
+ \def\endabstract{% % end abstract for \AIPproceedings
+ \medskip\egroup}% %
+ \def\disclaimer##1{\relax}% % disable \disclaimer
+ \def\toappear##1{\relax}% % disable \toappear
+ \def\submitted##1{\relax}% % disable \submitted
+ \twelvepoint % roughly Elite type
+ \parindent=5em % roughly 5 spaces
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+ \nopagenumbers % don't print page numbers
+ \singlespaced\whitespaced % 1.25 percent spacing
+ }
+
+\ATlock
+
+%>>> EOF AIP.txs <<<
+
diff --git a/Master/texmf-dist/tex/texsis/base/CVformat.txs b/Master/texmf-dist/tex/texsis/base/CVformat.txs
new file mode 100644
index 00000000000..0eecc80f740
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/CVformat.txs
@@ -0,0 +1,105 @@
+%% file: CVformat.txs - TeXsis version 2.18
+%% @(#) $Id: CVformat.txs,v 17.2 2001/04/06 22:27:24 myers Exp $
+%======================================================================*
+% CVformat.txs -- macros for producing a Curriculum Vitae and
+% publication list. Modify these as you like or add to it.
+% Since a CV is a personal thing, you may find this doesn't quite
+% do what you want it to do, but at least it's a start.
+%
+% Eric Myers, Brookhaven National Laboratory, 7 November, 1985
+%======================================================================*
+\ATunlock
+\emsg{\@comment CVformat: Curriculum Vitae macros}%
+
+\def\CVformat{% CVformat: Curriculum Vitae macros
+ \hsize=6.0 true in
+ \nopagenumbers
+ \auxswitchfalse
+ \quoteon % turn on easyquotes
+ \twelvepoint
+ \parindent=2.5cm
+ \raggedright\tolerance=800 % ragged right with looser tolerance
+ \def\NAME{}%
+ \def\endmode{\relax}%
+%
+% headline placement and spacing:
+%
+ \ifx\empty\NAME\else
+ \headline={\ifnum\pageno>1
+ {\twelvepoint\sl Curriculum Vitae of \NAME\hfil Page \folio}%
+ \else \hfil\fi}\fi
+ \headlineoffset=0.5cm
+ }
+
+% MACRO DEFINITIONS:
+% \item, \EXitem, \pubitem
+
+\def\ITEM#1{\endmode
+ \pagecheck{5\baselineskip}%
+ \begingroup
+ \def\endmode{\endgroup}%
+ \tolerance=2000
+ \bigskip\goodbreak
+ \item{\undertext{\bf #1}}\smallskip
+ \let\itm=\EXitem
+ }
+
+\def\Education{\ITEM{Education}}
+\def\Experience{\ITEM{Experience}}
+
+
+\def\hang{\hangindent=\parindent}
+\def\item{\medskip\par\hang\textindent}
+\def\textindent#1{\indent\llap{\hbox to \parindent{#1\hss}}\ignorespaces}
+
+% \EXitem{note} puts the note in the left margin in \tenpoint,
+% and you can break the line with \n
+
+\def\EXitem#1{%
+ \item{\def\n{\hss\egroup\hbox to \hangindent\bgroup}%
+ \hbox to 0pt{%
+ \vtop to 0pt{\tenpoint\rm
+ \hbox to \hangindent\bgroup#1\hss\egroup\vss}%
+ }}}
+
+
+% \Publications begins list of publications
+
+\def\Publications{\endmode
+ \pageno=1
+ \ifx\empty\NAME\else
+ \headline={{\twelvepoint\sl Publications of \NAME\hfil Page \folio}}\fi
+ \headlineoffset=0.5cm
+ \parindent=1.0cm
+ \raggedright \tolerance=2200
+ \item{\bf PUBLICATIONS:}
+ \smallskip
+ \let\itm=\pubitem
+ }
+
+% \pubitem is \itm for publications list
+% \pubitem is like \item, but it automatically gives the item a number
+
+\newcount\pubnum \pubnum=0
+
+\def\pubitem{\medskip
+ \advance\pubnum by 1
+ \item{\the\pubnum.}}
+
+%%\def\vol#1{\undertext{#1}}
+
+% \booktitle is used in the reference text to cause the title of a book
+% to be printed in italics.
+\def\booktitle#1{{\sl #1}}
+
+\def\references{\parindent=1.0cm
+ \pageno=1
+ \ifx\empty\NAME\else
+ \headline={{\twelvepoint\sl References for \NAME\hfil}}\fi
+ \headlineoffset=0.5cm
+ \item{\bf REFERENCES:}
+ \smallskip}
+
+\ATlock
+
+%>>> EOF CVformat.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/Elsevier.txs b/Master/texmf-dist/tex/texsis/base/Elsevier.txs
new file mode 100644
index 00000000000..80f0dab19b5
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/Elsevier.txs
@@ -0,0 +1,250 @@
+% file: Elsevier.txs TeXsis version 2.14
+% $Revision: 15.0 $ : $Date: 91/07/09 19:24:09 $ : $Author: myers $
+%======================================================================*
+% Elsevier -- TeXsis style file for North-Holland Physics Publishers
+%
+% \NorthHolland North Holland proceedings format,
+% single column, left justified titles
+% \NorthHollandTwo North Holland double column proceedings
+% format, left justified titles
+%======================================================================*
+\ATunlock
+\emsg{\@comment\ Elsevier: North-Holland/Elsevier style}%
+
+%--------------------------------------------------*
+% \NorthHolland -- North-Holland/Elsevier Proceedings Layout.
+% Single column with left justified title, author, and abstract, small
+% \parindent, intented subsections.
+% Note that \author treats the first line as the author's name and
+% the following lines as addresses. You can can extend the author line
+% to more than one line by ending the lines with \
+
+\def\NorthHolland{% North-Holland/Elsevier Proceedings
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \texsis % initialize
+ \def\Tbf{\twelvepoint\rm}% % Title typestyle
+ \def\tbf{\twelvepoint\rm}% % section head typestyle
+ \twelvepoint% % 12 pt type
+ \parindent=0.65cm% % small indent
+ \hsize=16.8cm% % width
+ \vsize=25.0cm% % height
+ \nopagenumbers% % don't print page numbers
+ \showsectIDtrue% % show section numbers
+ \parskip=0pt plus0pt minus0pt\relax% % no stretch!
+ \advance\voffset by-0.5in\relax% % fit page
+ \raggedbottom% % since no stretch
+ \let\@@@disclaimer=\disclaimer% % save it
+ \def\disclaimer{% % in 12 pt
+ \let\tenrm=\twelverm% %
+ \@@@disclaimer}% %
+%
+ \def\titlepage{% % for \NorthHolland
+ \bgroup % begin title page
+ \let\endmode=\relax % define end
+ \pageno=1% % start on 1
+ \vbox{\vskip1.2cm}}% % whitespace at top
+ \def\endtitlepage{% % for \NorthHolland
+ \endmode % end titlepage
+ \egroup% % end group
+ \doublespaced}% % double space below
+%
+ \def\title{% % for \NorthHolland
+ \endmode % end previous field
+ \bgroup\narrower% % margins
+ \let\endmode=\endtitle % set up ending
+ \mark{Title Page\NX\else Title Page}% mark page so no \HeadLine
+ \flushleft% % left justified with line breaks
+ \hyphenpenalty=10000% % no hyphens
+ \exhyphenpenalty=10000% % no hyphens
+ \singlespaced}% % single spaced
+ \def\endtitle{% % for \NorthHolland
+ \endflushleft% % end flush left and group
+ \vskip\normalbaselineskip% % skip a line
+ \egroup}% % end title group
+%
+ \def\author{% % for \NorthHolland
+ \endmode % end previous field
+ \bgroup\narrower% % margins
+ \let\endmode=\endauthor % set up ending
+ \flushleft% % flush left
+ \@NHgetauthor}% % get author
+ \def\endauthor{% % for \NorthHolland
+ \vskip\normalbaselineskip% % skip line - another in \abstract
+ \endflushleft% % end flush left
+ \egroup}% % end author group
+%
+ \def\abstract{% % for \NorthHolland
+ \endmode % end previous field
+ \vskip\normalbaselineskip % skip second line
+ \bgroup\narrower% % margins
+ \let\endmode=\endabstract % set up ending
+ \noindent}% % no indent
+ \def\endabstract{% % for \NorthHolland
+ \vskip0pt% % force vertical mode
+ \egroup}% % end abstract group
+ \let\section=\@NHsection% % for \NorthHolland
+ \let\subsection\@NHsubsection% % for \NorthHolland
+}% % end \NorthHolland
+
+% \@NHgetauthor is like \getauthor but left justifies and skips
+% 1 line after author's name.
+{\obeylines
+ \gdef\@NHgetauthor#1
+ #2
+ {#1\vskip0pt\noindent{#2}% % author line
+ \vskip1\normalbaselineskip}% % blank line
+}
+
+% \section for \NorthHolland
+
+\def\@NHsection#1{% % N.Holland section
+ \everysection% % user customization
+ \vskip 2\normalbaselineskip\goodbreak% % make some space
+ \global\advance\sectionnum by \@ne % increment section counter
+ \global\subsectionnum=\z@% % reset subsection counter
+ \edef\ttt{\@chaptID\the\sectionnum}% % For use by \label
+ \s@ction% % checkenv, etc..
+ \vbox{% % heading in \vbox
+ \begingroup\raggedright % group for \tbf
+ \ifshowsectID % show section number?
+ \global\edef\@sectID{\the\sectionnum.}% yes: define section ID
+ \r@set% % and reset counters
+ \setbox0=\hbox{\noindent\@chaptID\@sectID\space}% find width
+ \hangindent=\wd0\hangafter=1% % hanging indent after 1st line
+ \noindent{\tbf{\@chaptID\@sectID\space}}% and print sect ID
+ \else\gdef\@sectID{}% % no: section ID is null
+ \noindent % just print section title
+ \fi % end \ifshowsectID
+ {\tbf{#1}}\relax % Print title ragged in \tbf
+ \endgroup % end \tbf
+ \nobreak\medskip}% % skip down some
+ \begingroup % group for \contents, etc.
+ \def\label##1{}\def\goodbreak{}% % disable \label & \goodbreak
+ \def\n{\ }\def\nl{\ }% % turn off \n
+ \def\mib{}% % turn off \mib
+ \emsg{Section \ttt.\space #1}% % announce in .LIS and
+ \ifnum\chapternum=0% % no chapter number, so
+ \global\edef\HeadText{{\tenit #1}}\fi % make running head the title
+ \addTOC{\ttt.}{\ #1}{1}% % add to table of contents
+ \def\sectiontitle{#1}% % for \aftersection
+ \endgroup% % end \contents group
+ \nobreak% % no break
+ \aftersection\nobreak}% % user can customize
+
+% \subsection for \NorthHolland, with indented nonbold titles and
+% fixes for standard version.
+
+\def\@NHsubsection#1{% % N.Holland sub-section
+ \everysubsection% % user customization
+ \vskip\baselineskip\goodbreak% % break
+ \checkquote% % make sure no open quotes
+ \global\advance\subsectionnum by\@ne% % increment counter
+ \edef\ttt{\@chaptID\@sectID\the\subsectionnum.}% for \label
+ \vbox{% % heading in \vbox
+ \begingroup\raggedright% % Print title ragged, indent
+ \ifshowsectID% % showing section numbers?
+ \setbox0=\hbox{\noindent\ttt\space}% % find width
+ \hangindent=\wd0\hangafter=1\relax% % hanging indent after 1st line
+ \ttt\space% % show subsection number
+ \fi #1\relax% % print the title
+ \endgroup% % end \bf
+ \nobreak\medskip% % skip down some
+ \nobreak\vskip-\parskip}% % cancel first \parskip
+ \begingroup% % group for \contents, etc.
+ \def\label##1{}\def\goodbreak{}% % disable \label & \goodbreak
+ \def\n{\ }\def\nl{\ }% % turn off \n
+ \def\mib{}% % turn off \mib
+ \emsg{\ttt\space #1}% % announce in .LIS and
+ \addTOC{\ttt}{\ #1}{2}% % add to table of contents
+ \def\subsectiontitle{#1}% % for \aftersection to use
+ \endgroup% % end \contents group
+ \nobreak% % no page break
+ \aftersubsection}% % room to customize
+
+
+%--------------------------------------------------*
+% \NorthHollandTwo - North-Holland/Elsevier proceedings layout in
+% double column format with titles left justified, eleven point type, etc.,
+% for camera-ready copy. Constructed following directions in ``Instructions
+% for the Preparation and Typing of Camera Ready Contributions'' by Mary
+% Carpenter, Elsevier Publishers.
+
+\def\NorthHollandTwo{% North-Holland/Elsevier proceedings 2-column layout
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \texsis % initialize
+ \def\Tbf{\elevenpoint\bf}% % Title typestyle
+ \def\tbf{\elevenpoint\it}% % section head typestyle
+ \setdoublecolumns{21.3cm}{27.1cm}{10.0cm}%
+ \parindent=0.6cm %
+ \advance\voffset by -2.2cm \relax % as close to the top as possible
+ \advance\hoffset by -2.3cm \relax % as close to the left as possible
+%
+ \emsg{ }
+ \emsg{The \NX\NorthHollandTwo document layout you have selected is}%
+ \emsg{too large to fit on one 8.5 x 11.0 page. You should either}%
+ \emsg{print the output on an oversized printer or offset the output}%
+ \emsg{horizontally to get one column at a time. }%
+ \emsg{Please enter the horizontal OFFSET TO THE LEFT (with units!):}%
+ \read-1 to \tmp % read from terminal (use UNITS!)
+ \if\tmp\par \relax\else % if blank line, ignore
+ \advance \hoffset by -\tmp\relax % else move \hoffset left
+ \fi
+%
+ \def\titlepage{% % for \NorthHollandTwo
+ \pageno=1 %
+ \hbox{\ }% % anchor to top of page
+ \bgroup %
+ \let\endmode=\relax % \endmode will end a field
+ \vskip 0.3cm % whitespace on title page
+ \narrower\parindent=0pt}% %
+ \def\endtitlepage{% % for \NorthHollandTwo
+ \endmode % end any open field
+ \smallskip %
+ \egroup}% %
+%
+ \def\title{% % for \NorthHollandTwo
+ \endmode % end previous field, if any
+ \mark{Title Page\NX\else Title Page}% % so \HeadLine doesn't print
+ \bgroup % begin title group
+ \flushleft % left justified
+ \let\endmode=\endtitle %
+ \Tbf\widenspacing}% % \Tbf is Title boldface
+ \def\endtitle{% % for \NorthHollandTwo
+ \endflushleft %
+ \egroup% % end title group
+ \bigskip}% %
+%
+ \let\getauthor=\LATauthor % see definition below
+ \def\endauthor{\par\egroup\medskip}% %
+ \def\and{\smallskip{and}\smallskip}% %
+%
+ \def\abstract{% % for \NorthHollandTwo
+ \endmode % end any open field
+ \bigskip %
+ \bgroup %
+ \let\endmode=\endabstract %
+ \singlespaced\noindent}% %
+ \def\endabstract{% % for \NorthHollandTwo
+ \medskip\egroup\bigskip}% %
+%
+ \elevenpoint % eleven point type size
+ \parindent=0.6cm % paragraph indent
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+ \nopagenumbers % don't print page numbers
+ \singlespaced\whitespaced % 1.25 percent spacing
+} % end of \NorthHollandTwo
+
+% \NorthHollandTwo replacement for \getauthor left justifies
+
+{\obeylines
+ \gdef\LATauthor#1
+ #2
+ {#1\bigskip\noindent{\bf #2}\medskip}%
+}
+
+\ATlock
+
+%>>> EOF Elsevier.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/Exam.txs b/Master/texmf-dist/tex/texsis/base/Exam.txs
new file mode 100644
index 00000000000..adff12275b0
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/Exam.txs
@@ -0,0 +1,196 @@
+%% file: Exam.txs (TeXsis version 2.18)
+% @(#) $Revision: 16.0+X1 $ : $Date: 1992/08/08 22:20:36 $ : $Author: myers$
+%======================================================================*
+% These are a few simple macros to make it easier to type up
+% homework problems and examinations.
+%
+% Example:
+%
+% \texsis
+% \def\CourseName{Physics 231 -- Mathematical Methods}
+% \def\Semester{Fall 1993}\def\ExamTitle{Test 2}
+% \input Exam.txs
+% \noindent
+% There are \Qcount\ problems on this exam. Work all or as many as you
+% can do, and record all answers below. \n
+% To insure that you get proper partial credit for incomplete answers show
+% all your work either here or on another piece of paper.
+% \medskip\noindent
+% 100 Points.
+%
+% \Questions
+%
+% \Q
+% Determine whether each infinite series below is convergent or divergent
+% using the \hbox{Malcom~X} method (i.e., by any means necessary!).
+% Be sure to give your reasons.
+% \Choices
+% \itm $S = \sum_{n=1}^\infty {2^n \over (n-1)!}$
+% \itm $S = \sum_{n=1}^\infty \left( 1 - {1\over n^2} \right)$
+% \itm $S = \sum_{n=3}^\infty {2n-3\over (n-1)(n-2)} $
+% \endChoices
+%
+% ...
+%
+% \endQuestions
+% \bye
+%
+% Note: these are just supposed to help you make up an exam, but not
+% define the format used. Change these as you like or make up your own,
+% but I hope they help give you a starting point.
+%
+% Eric Myers <myers@vassar.edu> - 20 September 1994
+% Department of Physics and Astronomy, Vassar College, Poughkeepsie, NY
+% Department of Physics, University of Michigan, Ann Arbor, MI
+%======================================================================*
+
+\singlespaced
+\parindent=0pt
+\sectionminspace=0pt
+
+%% Get the question count from the last run
+
+\newskip\Qskip \Qskip=\medskipamount
+
+\newwrite\cntfile % to save question count
+
+\newread\cntfile\openin\cntfile=\jobname.cnt
+\ifeof\cntfile\def\Qcount{99 }\else\read\cntfile to\Qcount\fi
+
+
+%% \Questions environment is like a ``List'' environment
+
+\def\Questions{\bigskip\bigskip
+ \enumNumOutline
+ \enumerate
+ \advance\leftskip by -\EnvLeftskip
+ \advance\rightskip by -\EnvRightskip
+ \everymath={\displaystyle}
+ \def\endmode{\relax}
+ \def\Q{\endmode\def\endmode{\relax}%
+ \vskip\Qskip
+ \itm}}
+
+\def\endQuestions{%
+ \filbreak
+ \immediate\openout\cntfile=\jobname.cnt
+ \immediate\write\cntfile{\the\enumcnt }%
+ \immediate\closeout\cntfile
+ \xdef\Qcount{\the\enumcnt}%
+ \endenumerate}
+
+\def\Choices{\medskip\enumerate\def\enummark{\rparen}\parskip=0pt
+ \singlespaced\widenspacing
+ \def~{\phantom{0}}%
+ \def\endChoices{\endenumerate\medskip}}
+\def\endChoices{\relax}
+
+
+%% Exam title, if there is one:
+
+\ifx\ExamTitle\undefined\else
+ \line{\hss\ExamTitle\hss}
+ \bigskip\bigskip
+ \line{%
+ \vbox{\hbox{\CourseName}%
+ \hbox{\ }%
+ \hbox{\Semester}%
+ }%
+ \hss
+ \vbox{\hbox{Name:\quad\theBlank{5cm}}%
+ \hbox{\ }%
+ \hbox{Date:\quad\theBlank{4cm}}%
+ }%
+ }%
+\fi
+\vskip 1cm
+
+
+%% Header for a set of 1 or more questions:
+
+\def\endmode{\relax}
+
+\def\Unskip{\vskip-\Qskip\vskip-\parskip}% \emsg{Unskip!}}
+
+
+\long\def\Qset#1#2{% begin a set of questions (#2 is lookahead)
+ \endmode
+ \begingroup\def\endmode{\endgroup}%
+ \ifnum#1>1 %% Several QuestionS (like \QS)
+ \filbreak
+ \noindent{\bf \undertext{Questions \Qplus1--\Qplus#1}}
+ \else
+ \filbreak
+ \noindent{\bf \undertext{Question \Qplus1}}
+ \fi
+ \vskip 0pt
+%% \def\foo{#2}\emsg{Lookahead gives \string#2}%
+%% \ifx\foo\Unskip \emsg{Found \string\Unskip!}\fi
+%% \ifx\foo\Q \emsg{Found \string\Q!}\fi
+%% \ifx\foo\par\emsg{Found \string\par!}\fi
+%% \ifx\foo\empty\emsg{Empty lookahead}\fi
+ \noindent#2}
+
+
+% Increment the question counter and ``return'' the new number
+
+\def\Qplus#1{\count255=\the\enumcnt
+ \advance\count255 by #1 \the\count255}
+
+%% Old macros to do what \Qset does:
+
+\long\def\QH#1#2{\filbreak % NOW IGNORES #1 -EAM 1997/6/22
+ \noindent{\bf \undertext{Question \Qplus1}}\vskip 0pt\noindent#2}
+
+\long\def\QS#1#2{\filbreak
+ \noindent{\bf \undertext{Questions #1}}\vskip 0pt\noindent#2}
+
+
+\def\Continued{\smallskip
+ \line{\bf Questions continue on the next page...\hfill}
+ \eject}
+
+\def\Answer{\vskip 0pt
+ \line{\hfill{\twelvess ANSWER:\ }\hfill}%
+ \vskip 0pt}
+
+
+%% Put "DRAFT" watermark over each page using PostScript \special
+
+\def\DraftMark{\draft
+ \special{!userdict begin /bop-hook{gsave 200 30 translate
+ 65 rotate /Times-Roman findfont 216 scalefont setfont
+ 0 0 moveto 0.825 setgray (DRAFT) show grestore}def end}}
+
+
+% This displays a figure of vertical height #1, from the file #2,
+% side by side with the text #4 of width #3 times \hsize. The text is
+% actually on the left, the figure on the right, and there is a small
+% gutter between.
+
+\long\def\RightFig#1#2#3{%
+ \line{\def\endmode{\relax}%
+ \vbox to #1{\hsize=0.60\hsize\noindent #3\relax\vss}%
+ \hfill
+ \vbox to #1{\hbox{\epsfysize=#1\epsfbox{figs/#2}}\vss}
+ \hfill}%
+}
+
+
+%% Version control for large classes
+
+\newcount\version \version=0 % version A(0) or B(1)?
+
+\def\AB#1#2{\ifcase\version #1\or #2\else\?\fi}
+\def\ABC#1#2#3{\ifcase\version #1\or #2\or #3\else\?\fi}
+
+% Misc:
+
+
+\def\?{\theBlank{1.2cm}}
+
+\def\DS{\displaystyle}
+
+
+
+%>>> EOF Exam.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/Formletr.txs b/Master/texmf-dist/tex/texsis/base/Formletr.txs
new file mode 100644
index 00000000000..a33b2b73aed
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/Formletr.txs
@@ -0,0 +1,247 @@
+%% file: Formletr.txs - TeXsis version 2.18
+% @(#) $Id: Formletr.txs,v 18.0 2000/05/17 01:50:44 myers Exp $
+%======================================================================*
+% FORM LETTERS E. Myers and F.E. Paige
+%
+% Macros to type form letters with a common text to a list of
+% people. The syntax is:
+%
+% \formLetters{<letterhead-stuff>}{<text-file-name>}
+% \BL Prof. John Doe
+% Physics Dept
+% U. of Nowhere
+% Nowhere, Somewhere 12345679
+% \V\Whoever{Prof.~Doe}
+% \EL
+% \BL Dr.\ William Barcode
+% Department of Physics
+% Ferbilab
+% Batcave, IL 60510 USA
+% \V\Whoever{Dr.\ Barcode}
+% \EL
+% \BL ...
+% ... \EL
+% ...
+% \bye
+%
+% where <letterhead-stuff> is stuff to be executed before the address is
+% printed and <text-file-name> is the name of a file containing the
+% generic text of the letter following the standard TeXsis letter format,
+% beginning with \body:
+%
+% \body
+% Dear \Whoever,
+% ...
+% \closing
+% Sincerely yours,
+% Joe User
+% \endletter
+%
+% The text file can use any other control sequences defined by
+% \V\name{...} between \BL and \EL.
+%
+% Replace \formLetters with \formLabels (no arguments) to print out
+% your mailing list in a tabular form suitable for printing on mailing
+% labels. Or use \formEnvelopes to print directly on envelopes, if
+% your printer can do so. Set \theSignature and \ReturnAddress if you
+% also want a return name and address on the envelope.
+%======================================================================*
+% (C) Copyright 1990,1992,1994,1997,2000 by Eric Myers and Frank E. Paige
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+%======================================================================*
+\message{Form Letters.}
+
+% \formLetters{<letterhead>}{<file>} sets things up to make a series of
+% form letters. The commands in <letterhead> are executed before the
+% address, to make a letterhead or print the sender's phone number.
+% The file named by <file> contains the text of the letter, which is
+% printed below the address. This text can use any ``variable'' control
+% sequences defined by \V in the address list.
+
+
+\def\formLetters#1#2{%
+ \def\formLabels{\relax}% % disable the others
+ \def\formEnvelopes{\relax}%
+ \def\formLetterhead{#1}% % save \letterhead definitions
+ \def\TXTfile{#2}% % save file name for letter text
+ \auxswitchfalse % no .AUX file
+ \refswitchfalse % no references either
+ \texsis % initialize TeXsis
+ \def\BL{\BLletter}\def\FL{\BLletter}%
+ \def\EL{\ELletter}\def\IL{\ILletter}%
+ \def\endmode{\relax}% % initially does nothing
+ \let\V=\gdef % \V\name defines variable \name
+ \def\endletter{\endmode}% % \endletter does not end job
+ \def\endmode{\relax}% % start with null \endmode
+ \def\endform{\bye}% % ending is just \bye
+ \LetterFormat % and set up for letters
+}
+
+\def\formletters{\formLetters} % synonym from 2.16 and before
+
+
+% \BLletter is \BL for letters. It begins a new formletter.
+
+\long\def\BLletter{% do an individual form letter
+ \endmode % end any previous mode
+ \def\endmode{\relax}% % but ending this mode is nothing
+ \pageno=1 % start each letter on page 1
+ \formLetterhead % do the letterhead stuff first
+ \begingroup\obeylines % to look for line endings in addresses
+ \GetFormAddress} % and go get address
+
+% \GetFormAddress gets the address for form letters
+
+{\obeylines\gdef\GetFormAddress#1
+ {\ifx\EL#1\relax\endgroup\else %% if just \EL then end \obeylines
+ \gdef\addressee{#1}% %% addressee is first line of address
+ \global\advance \FLcount by 1 %% advance count of letters printed
+ \emsg{\the\FLcount.\space \addressee\space}% show letters printed
+ \def\BL{\emsg{> . Warning! \NX\BL found before \NX\EL}\ELBL}%
+ \def\IL{\emsg{> . Warning! \NX\IL found before \NX\EL}\ELIL}%
+ \global\setbox\theaddress=\vbox\bgroup %% start a vbox
+ \parindent=0pt %% no indent, since we are \obeylines
+ #1\relax
+ \fi}%
+}% end of \obeylines for definition
+
+% \ELletter is \EL for letters. It boxes up the address and prints
+% it, then reads in the generic text of the letter from \TXTfile
+
+\def\ELletter{% end of address, print the form letter
+ \vss\egroup % end the \vbox
+ \endgroup % end the \obeylines
+ \copy\theaddress % dump the address to the page
+ \message{\space\space}% % some whitespace in log file
+ \input\TXTfile \relax % read in text of letter from file
+ \vfill\eject} % end the page
+
+% \IL ignores a letter (use in place of \BL to keep from sending to a
+% particular name on the list). You MUST end the entry in the list with \EL !
+
+\long\def\ILletter#1\EL{\relax}
+\long\def\ILlabel#1\EL{\relax}
+
+%----------------------------------------------------------------------
+\message{FormLabels.}
+
+% \formLabels uses the same input file as \formLetters but prints
+% mailing labels. It is assumed that there are three columns of labels
+% on a page. Dimensions are for 8 labels per column and Barbara's printer.
+% These dimensions are defined in TXSletr.tex.
+%
+% \newdimen\fullHsize \fullHsize=8.5in % hsize for label page
+% \newdimen\fullVsize \fullVsize=11.50in % vsize for label page
+% \newdimen\lblHsize \lblHsize=2.833in % width of standard label
+% \newdimen\lblVsize \lblVsize=1.365in % ht. of std. label - a bit
+% \newdimen\lblVoffset \lblVoffset=-.900in % vertical starting position
+% \newdimen\lblHoffset \lblHoffset=-0.750in % horizontal starting position
+
+\newcount\FLcount % count the number of letters
+
+\newbox\lblLcol % box for left column
+\newbox\lblMcol % box for middle column
+
+\def\formLabels{% % form labels instead of letters
+ \texsis % initialize TeXsis
+ \def\formLetters##1##2{\relax}% % disable \formLetters
+ \def\formEnvelopes{\relax}% %
+ \hoffset=\lblHoffset % use full page, no left margin
+ \voffset=\lblVoffset % adjust for printer vertical offset
+ \hsize=\fullHsize % use full page width
+ \vsize=\fullVsize % and full length
+ \auxswitchfalse % no .AUX file
+ \refswitchfalse % no references either
+ \tenpoint\singlespaced % 10pt to fit long addresses
+ \nopagenumbers % suppress page numbering
+ \raggedbottom % ragged page bottom
+ \def\lblflag{L}% % set flag to start in left column
+ \def\BL{\BLlabel}\def\FL{\BLlabel}%
+ \def\EL{\ELlabel}\def\IL{\ILlabel}%
+ \def\endmode{\relax}% % initially does nothing
+ \def\endform{\endFormLabels}% % end form labels
+ \let\V=\gdef % \V\name defines variable \name
+}
+\def\formlabels{\formLabels} % synonym for 2.16 and before
+
+\def\BLlabel{\begingroup\obeylines % pay attention to line endings
+ \hsize=\lblHsize % with width of label
+ \GetLabelAddress}% % get address in a box
+
+% \GetLabelAddress gets the address for form labels
+
+{\obeylines\gdef\GetLabelAddress#1
+ {\ifx\EL#1\relax\endgroup\else %% if just \EL end \obeylines
+ \gdef\addressee{#1}% %% addressee is first line of address
+ \global\advance \FLcount by 1 %% advance count of letters
+ \emsg{\the\FLcount.\space \addressee\space}% show letters printed
+ \def\BL{\emsg{> . . . . . . . Warning! \NX\BL found before \NX\EL}\ELBL}%
+ \def\IL{\emsg{> . . . . . . . Warning! \NX\IL found before \NX\EL}\ELIL}%
+ \global\setbox\theaddress=\vbox to \lblVsize\bgroup% start a vbox
+ \hsize=\lblHsize %% with width of label
+ \parindent=0pt %% no indent, since we are \obeylines
+ #1\relax
+ \fi}%
+}% end of \obeylines for definition
+
+% \ELlabel ends the address label, with the address stored in box
+% \theaddress. If we are in the left or centre column we then
+% store the address in other boxes. If we are in the right column
+% then we print all three boxes across the line.
+
+\def\ELlabel{\vss\egroup % end the \vbox
+ \endgroup % done with \obeylines
+ \if L\lblflag % if in left column
+ \global\setbox\lblLcol=\box\theaddress % store in \lblLcol
+ \gdef\lblflag{M}% % next column is middle column
+ \else \if M\lblflag % else if middle column
+ \global\setbox\lblMcol=\box\theaddress % store in \lblMcol
+ \gdef\lblflag{R}% % next column is right column
+ \else % else right column, so
+ \line{\box\lblLcol % print all 3 boxes
+ \box\lblMcol % across the
+ \box\theaddress\hss}% % page...
+ \gdef\lblflag{L}% % reset to left column
+ \fi\fi % end of if's
+}%
+
+% \endform=\endFormLabels ends the form labels gracefully. \lblflag is
+% set to the next column, so...
+
+\def\endFormLabels{% end \formLabels by balancing columns
+ \if M\lblflag% % last address in left
+ \line{\box\lblLcol\hss}% % only left box
+ \else \if R\lblflag% % last address in middle
+ \line{\box\lblLcol\box\lblMcol\hss}% left and middle boxes
+ \fi\fi %
+ \bye}% % else printed by \EL
+
+%----------------------------------------------------------------------
+\message{FormEnvelopes.}
+
+\def\formEnvelopes{% % print envelopes instead of letters
+ \def\formLetters##1##2{\relax}% disable \formLetters
+ \def\formLabels{\relax}% % and disable \formLabels
+ \def\formLetterhead{\relax}%
+ \auxswitchfalse % no .AUX file
+ \refswitchfalse % no references either
+ \texsis % initialize TeXsis
+ \nopagenumbers % suppress page numbering
+ \singlespaced\parskip=0pt
+ \def\BL{\BLenvelope}\def\FL{\BLenvelope}%
+ \def\EL{\ELenvelope}\def\IL{\ILlabel}%
+ \let\V=\gdef % \V\name defines variable \name
+ \def\endmode{\relax}% % initially does nothing
+ \def\endform{\bye}% % end of envelopes
+}
+
+\def\formenvelopes{\formEnvelopes}% synonym
+
+
+\def\BLenvelope{\obeylines\@BLenv}
+\def\@BLenv#1\EL{\MakeEnvelope{#1}{\theSignature\n\ReturnAddress}%
+ \newpage}
+
+%>>> EOF TXSform.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/IEEE.txs b/Master/texmf-dist/tex/texsis/base/IEEE.txs
new file mode 100644
index 00000000000..957e082a49c
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/IEEE.txs
@@ -0,0 +1,102 @@
+%% file: IEEE.txs (TeXsis version 2.17)
+% $Revision: 17.2 $ : $Date: 1996/12/16 04:47:47 $ : $Author: myers $
+%======================================================================*
+% IEEE -- TeXsis style file for IEEE conference proceedings
+%
+% Special thanks to T.C. Pierce <es051@eng.warwick.ac.uk> of the
+% Engineering Department, University of Warwick, for improvements.
+%
+\ATunlock
+\emsg{\@comment\ IEEE conference proceedings layouts}
+
+
+% Parameters and macros common to all IEEE documents:
+
+\def\Eq#1{(\use{Eq.#1})}% % equation are just (number)
+
+\bigskipamount=0.3cm plus 4pt minus 4pt
+\showsectIDfalse
+\quoteon
+\superrefsfalse
+
+\def\@refitem#1#2#3{\message{[#1]} % #3 looks past ^^M for next arg
+ \refskip\noindent\hskip-\refindent % indent, but write number
+ \hbox to \refindent {\hss \linkname{Ref.#1}{[#1]}\quad} % unindented
+ #3}
+
+%--------------------------------------------------*
+% IEEE Proceedings Layout:
+%
+\def\IEEEproceedings{% IEEE proceedings format
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \texsis % Initialize TeXsis
+ \hsize=9.5in \vsize=12.875in % IEEE page size
+ \SetDoubleColumns{4.625in}% % IEEE column size
+ \def\Tbf{\fourteenpoint\bf}% % 14pt bold title
+ \def\tbf{\twelvepoint\bf}% % 12pt bold section head
+ \let\titlepage=\@IEEEtp % new \titlepage macro
+ \let\endtitlepage=\@IEEEetp % new \endtitlepage macro
+ \let\abstract=\@IEEEabs % new \abstract macro
+ \twelvepoint % roughly Elite type
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+ \nopagenumbers % don't print page numbers
+ \singlespaced\whitespaced % 1.25 percent spacing
+}
+
+\def\@IEEEtp{% \titlepage for IEEE layouts
+ \bgroup % begin titlepage group
+ \let\endmode=\relax % \endmode will end a field
+ \pageno=1} % start on page 1
+
+\def\@IEEEetp{% \endtitlepage for IEEE layouts
+ \endmode % end any open field
+ \egroup % end titlepage group
+ \doublecolumns % go to double column mode for paper
+ \bigskip\bigskip} % don't skip page
+
+\def\@IEEEabs{% \abstract for IEEE layouts
+ \endmode % end previous field
+ \bgroup %
+ \vskip\baselineskip % one blank line
+ \centerline{ABSTRACT}% % "ABSTRACT", centered
+ \vskip\baselineskip % another blank line
+ \leftskip=1in\rightskip=1in % narrower abstract
+ \let\endmode=\endabstract % to end \abstract
+ \noindent} % do not indent abstract
+ %
+
+% \IEEEreduced makes an IEEE document 75% full size in 9pt type
+% for 8.5in x 11in paper:
+
+\def\IEEEreduced{% IEEE document reduced 75% of full size
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \def\Tbf{\fourteenpoint\bf}% % 14pt bold title
+ \def\tbf{\ninepoint\bf}% % 9pt bold section head
+ \RomanTablestrue % roman numeral table numbers
+ \texsis % Initialize TeXsis
+ \sectionskip=0.4cm plus 1pt minus 1pt % Adjust section skips
+ \subsectionskip=0.3cm plus 1pt minus 1pt
+ \sectionminspace=0.1\vsize %
+ \parindent=0.2cm
+ \def\refskip{\vskip 0pt}% % no skip between references
+ \hsize=7.125in \vsize=22.9cm % 75% size
+ \SetDoubleColumns{3.46875in}% % 75% size
+ \advance\hoffset by -.3325in % for above size
+ \advance\voffset by -.318125in % for above size
+ \let\titlepage=\@IEEEtp % new \titlepage macro
+ \let\endtitlepage=\@IEEEetp % new \endtitlepage macro
+ \let\abstract=\@IEEEabs % new \abstract macro
+ \tenpoint %
+ \nopagenumbers %
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+% \singlespaced % normal spacing
+ }
+
+
+\ATlock
+
+%>>> EOF IEEE.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/PhysRev.txs b/Master/texmf-dist/tex/texsis/base/PhysRev.txs
new file mode 100644
index 00000000000..d8a42ae96fb
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/PhysRev.txs
@@ -0,0 +1,427 @@
+%% file: PhysRev.txs (TeXsis version 2.18)
+%% @(#) $Id: PhysRev.txs,v 18.1 2001/04/06 22:31:57 myers Exp $
+%========================================================================*
+% PhysRev.txs - Physical Review Style for TeXsis
+%
+% The following document formats are defined in this style file.
+%
+% \PhysRev - Formats papers as they would appear in
+% Physical Review A, B, C, D, or E
+% \PhysRevLett - Formats papers as they would appear in
+% Physical Review Letters
+% \PhysRevManuscript - Formats papers for _Submission_ to Physical
+% Review or Physical Reveiw Letters
+%
+% The Volume/Series/Issue and page number can be set by seting the
+% following AFTER you have invoked \PhysRev or \PhysRevLett:
+%
+% \def\Series{D} % or A, B, C, E
+% \let\Volno=32
+% \let\Issueno=10
+% \let\Pageno=2736
+%
+% This is a good attempt to replicate the style of the Physical Review,
+% but there may still be some subltle differences. We would appreciate
+% suggestions or comments via e-mail to texsis@texsis.org
+%========================================================================*
+\ATunlock % use @ as a letter
+\emsg{\@comment\ PhysRev: Physical Review journal style}%
+
+
+\tenpoint % roughly Elite type
+\parindent=1.5em % indent about 2 characters
+\parskip=0.5\smallskipamount % not much skip betwen paragraphs
+\baselineskip=12pt plus 0.5pt % a little extra stretch for 2 columns
+\hsize=42.5pc \vsize=55\baselineskip %
+\skip\footins=0.5cm % space above wide footnotes
+\sectionskip=0.80cm plus 0.1cm minus 0.1cm %
+\subsectionskip=0.65cm plus 0.1cm minus 0.1cm %
+
+
+%--------------------------------------------------*
+% HEADLINES and FOOTLINES for all Physical Review layouts
+
+\def\Series{}
+\newcount\Volno \Volno=0
+\newcount\Issueno\Issueno=0
+\newcount\Pageno \Pageno=1 % page number to start on
+
+% some extra fonts for headline and footline
+
+\font\smallheadfont=cmcsc10
+\font\largeheadfont=cmcsc10
+
+\headlineoffset=0pt
+
+\def\VolumeBanner#1#2#3#4{% define the title page header
+ \ifx\relax#1\relax\else\def\Series{#1}\fi % #1 = A... or L
+ \ifx\relax#2\relax\else\Volno=#2\fi % #2 = volume
+ \ifx\relax#3\relax\else\Issueno=#3\fi % #3 = issue
+ \ifx\relax#4\relax\else\Pageno=#4\fi % #4 = page
+%
+ \ifx\Series{L}% % Letters
+ \def\@VolumeBanner{\largeheadfont %
+ \rlap{Volume \the\Volno, Number \the\Issueno}% %
+ \hss PHYSICAL REVIEW LETTERS %
+ \hss \today}% %
+ \else % Phys Rev
+ \def\@VolumeBanner{\rlap{PHYSICAL REVIEW #1}% %
+ \hss VOLUME \the\Volno, NUMBER \the\Issueno %
+ \hss \llap{\the\Pageno}}% %
+ \fi}
+
+
+\def\@Volume{$\underline{\hbox{{\the\Volno}%
+ \vrule height12pt depth2ptwidth\z@}}$}
+
+\def\TitleBanner#1{\def\@TitleBanner{#1}}% for right hand (odd) pages
+
+\def\AuthorBanner#1{\def\@AuthorBanner{#1}}% for left hand (even) pages
+
+\VolumeBanner{}{}{}{}\TitleBanner{}\AuthorBanner{}% defaults are empty
+
+
+%==================================================*
+% REFERENCES: some differences from Plain TeXsis
+
+\superrefsfalse % Physical Review's new style now
+
+% How to list the references at the end
+
+\ifx\undefined\@stdListRefs
+ \let\@stdListRefs=\ListReferences % save standard TeXsis definition
+\fi
+
+% How to display reference numbers in the list at the end
+
+\def\@refitem#1#2#3{% reference item (#3 eats the ^^M, #2 is label)
+ \vskip 0pt\vfil\penalty-1\vfilneg % favour breaks here, weakly
+ \refskip % some space between citations
+ % print citation number, based on type of citation
+ \ifcase\CiteType\relax % 0: no citation mark
+ \or \message{#1.}% % 1: superscript numbers
+ \hangindent 1em\hangafter 1 ${}^{#1}$%
+ \or \message{[#1]}% % 2: [<number>] style in-line
+ \noindent\hskip-\refindent % indent, but write number
+ \hbox to \refindent{\hss \linkname{Ref.#1}{[#1]}\quad} % unindented
+ \else\relax\fi % else: nothing
+ #3}
+
+\def\refskip{\vskip0pt plus 2pt}% only a little stretch between refs
+
+\def\Ref#1{% citations in text are ``Ref. [xx]''
+ \testtag{Ref.#1}\ifundefined % is it undefined? (tag -> \tok)
+ Ref.~[\use{Ref.#1}] % force a tagging error
+ \else
+ \linkto{Ref.\csname\tok\endcsname}{Ref.~[\csname\tok\endcsname]}%
+ \fi}
+
+
+%======================================================================*
+% TITLE material -- modified for Physical Review layout
+
+\def\titlepage{\pageno=\Pageno % start on page \Pageno
+ \begingroup %
+ \singlespaced} %
+
+\def\endtitlepage{\bigskip\endgroup % some skip and glue
+ \vskip 0pt %
+ \doublecolumns} % start doing double columns
+
+\def\author{% first line after as author's name, following lines are address
+ \endmode\begingroup % end any previous mode
+ \let\endmode=\endauthor % \endmode will end \author
+ \begingroup\obeylines % to see author's name
+ \PRgetauthor} % next line = author's name
+
+{\obeylines\gdef\PRgetauthor#1
+ #2
+ {#1\bigskip
+ \centerline{\elevenpoint #2}% first line is author's name
+ \endgroup % end \obeylines for lookahead
+ \raggedcenter\relax % fill as you can
+ \def\\{\discretionary{}{}{,}}% % , unless line breaks
+ \def\n{\penalty10000}% % \n would like to break
+ \ninepoint\it % rest is affiliation
+}} %
+
+\def\endauthor{\vskip 0pt\endraggedcenter\endgroup\smallskip}
+
+\def\abstract{%
+ \centerline{(Received \@PUBdate)}% % the date from \pubdate
+ \vskip\baselineskip % another blank line
+ \begingroup %
+ \leftskip=1in \rightskip=1in % narrower abstract margins
+ \ninepoint} % 9 pt type for the text
+
+\def\endabstract{\medskip\endgroup}
+
+
+%==================================================*
+% SECTION LEVELS: Modified from \section in TXSsects.tex:
+
+
+\def\section#1{% create a new section of a document
+ \vskip\sectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \global\advance\sectionnum by \@ne % increment section counter
+ \global\subsectionnum=\z@ % reset subsections
+ \global\subsubsectionnum=\z@ % reset subsubsections
+%
+% Section ID:
+%
+ \edef\lab@l{\@chaptID\SectionStyle{\the\sectionnum}}% For \label
+ \ifshowsectID % show section number?
+ \global\edef\@sectID{\SectionStyle{\the\sectionnum}.}% save for later
+ \global\edef\@fullID{\lab@l.\space\space}% % what we will use here
+ \r@set % and reset counters
+ \else\gdef\@fullID{}\fi % otherwise section ID is empty
+ \everysection % user customization here
+%
+% Print the Section title, in uppercase bold
+%
+ \vbox{% % keep heading in \vbox
+ \center % centered for Phys Rev
+ \uppercase{\tbf \lab@l.\ \ #1}% % Section headings in uppercase
+ \endcenter %
+ \vskip-\baselineskip % undo it
+ \vskip0.85\sectionskip\relax}% % skip below title
+ \nobreak % no break after title
+%
+% Table of Contents and Running Headlines:
+%
+ \begingroup % group for \contents, etc.
+ \def\label##1{}% % disable \label
+ \global\edef\SectionTitle{#1}% % or nothing
+ \def\n{}\def\nl{}\def\mib{}% % turn off \n, etc
+ \ifnum\chapternum=0\setHeadline{#1}\fi % no chapt. number -> set headine
+ \emsg{Section \@fullID #1}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{1}{\NX\TOCsID{\lab@l.}#1}{\folio}% % Table of Contents entry
+ \endgroup % end group
+ \s@ction % checkenv, etc..
+ \aftersection} % user can customize
+
+%--------------------------------------------------*
+% Modified from \subsection in TXSsects.tex
+
+\def\subsection#1{% % create a subsection of a document
+ \vskip\subsectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \global\advance\subsectionnum by \@ne % increment counter
+ \global\subsubsectionnum=\z@ % reset subsubsection
+%
+% Subsection ID:
+%
+ \edef\lab@l{\@chaptID\@sectID\SubsectionStyle{\the\subsectionnum}}%
+ \ifshowsectID % show section number?
+ \global\edef\@fullID{\lab@l.\space}% % yes: define it
+ \else\gdef\@fullID{}\fi % otherwise it's empty
+ \everysubsection % user can customize
+%
+% Print the subsection title
+%
+ \vbox{% % heading in \vbox
+ \center % centered for Phys Rev
+ {\tbf \lab@l.\ \ #1}% %
+ \endcenter %
+ \vskip-\baselineskip % undo it
+ \vskip0.85\subsectionskip\relax}% % same skip above and below
+ \nobreak %
+%
+ \begingroup % group for \contents, etc.
+ \def\label##1{}% % disable \label
+ \global\edef\SubsectionTitle{#1}% % or nothing
+ \def\n{}\def\nl{}\def\mib{}% % disable \n, etc
+ \emsg{\@fullID #1}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{2}{\NX\TOCsID{\lab@l.}#1}{\folio}% % Table of Contents entry
+ \endgroup % end \contents group
+ \s@ction % end of section
+ \aftersubsection} % room to customize
+
+%--------------------------------------------------*
+% Modified from \subsubsection in TXSsects.tex
+
+\def\subsubsection#1{% % create a subsubsection of a document
+ \vskip\subsectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \global\advance\subsubsectionnum by \@ne % increment counter
+%
+% Sub-subsection ID:
+%
+ \edef\lab@l{\SubsubsectionStyle{\the\subsubsectionnum}}% just the number
+ \ifshowsectID % show section number?
+ \global\edef\@fullID{\lab@l.\space\space}% % yes: define it
+ \else\gdef\@fullID{}\fi % else it's empty
+ \everysubsubsection % user can customize here
+%
+% Print the sub-subsection title
+%
+ \vbox{% % heading in \vbox
+ \center % centered for Phys Rev
+ {\bf \lab@l.\ \ #1}% %
+ \endcenter %
+ \vskip-\baselineskip % undo it
+ \vskip\subsectionskip\relax}% % same skip above and below
+ \nobreak %
+%
+ \begingroup % group for \contents, etc.
+ \def\label##1{}% % disable \label
+ \global\edef\SubsectionTitle{#1}% % or nothing
+ \def\n{}\def\nl{}\def\mib{}% % turn off \n, etc
+ \emsg{\@fullID #1}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{3}{\NX\TOCsID{\lab@l.}#1}{\folio}% % Table of Contents entry
+ \endgroup % end group
+ \s@ction % end of section
+ \aftersubsection} % room to customize
+
+
+%======================================================================*
+% \PhysRev and \PhysRevLett layouts
+
+\def\PhysRev{% Physical Review two column layout
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \tenpoint % roughly Elite type
+%% \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}%
+ \SetDoubleColumns{20.5pc}% %
+ \ifx\LFins\undefined\else % These may not be defined in mTeXsis
+ \skip\LFins=1cm \skip\RFins=1cm\fi % space above column footnotes
+%% \advance\hoffset by -.3in \advance\voffset by -.3in % for this size
+ \footlineoffset=12pt
+%
+ \showchaptIDfalse % no chapter number in equation numbers
+ \showsectIDfalse % no section number in equation numbers
+ \def\SectionStyle##1{\uppercase % section numbers in upper case
+ \expandafter{\romannumeral ##1}}% roman numerals
+ \def\SubsectionStyle##1{\LetterN{##1}}% subsections are UC letters
+ \def\SubsubsectionStyle##1{##1}% % subsubsections are numbered
+ \RomanTablestrue % roman numerals for table numbers
+ \def\Tbf{\twelvepoint\bf}% % 12pt bold title
+ \def\tbf{\tenpoint\bf}% % 10pt bold for section head
+%
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+ \pageno=\Pageno % start page numbering on \Pageno
+%
+ \headline={% headline for Physical Review A, B, C, D, E...
+ \ifnum\pageno=\Pageno % First page header
+ {\largeheadfont \@VolumeBanner}% %
+ \else\ifodd\pageno % right (odd) page header
+ {\rlap{\@Volume}% %
+ \hss \largeheadfont \@TitleBanner %
+ \hss \llap{\folio}}% %
+ \else % left (even) page header
+ {\rlap{\folio}% %
+ \hss \largeheadfont \@AuthorBanner %
+ \hss \llap{\@Volume}}\fi\fi}% %
+%
+ \footline={% copyright claim at bottom of first page
+ \ifnum\pageno=\Pageno %
+ {\tenrm \hbox to\colwidth{\hfill{\@Volume}}\hss %
+ \hbox to\colwidth{\folio \hfill %
+ \copyright\ \the\year\ The American Physical Society}}%
+ \fi}
+%
+ \def\ListReferences{% PhysRev version of \ListReferences
+ \enddoublecolumns % balance columns so far
+ \dimen@=\pagegoal % get total page size
+ \advance\dimen@ by -\pagetotal % get page space remaining
+ \ifdim\dimen@>0pt \ifdim\dimen@< 1cm % not enough to look good?
+ \vfil\eject %
+ \else %
+ \bigskip %
+ \line{\hfill \hbox to 20.5pc{\hrulefill}\hfill}%
+ \bigskip %
+ \fi\fi %
+ \doublecolumns % back to double columns for list
+ \@stdListRefs %
+ \vfill %
+ \enddoublecolumns}%
+%
+ \def\refFormat{\ninepoint}% reference text is in slightly smaller type
+}% end \PhysRev
+
+%---
+% The layout of Physical Review Letters is slightly different,
+% mostly in how the headlines and footlines are treated, and the references
+
+\def\PhysRevLett{%
+ \PhysRev % same as Physical Review, with following changes
+ \def\Series{L}% % Assume Phys. Rev. Lett.
+ \null\vskip 0.1cm % some skip at top
+%
+ \headline={\hbox{\vbox{\hbox to \pagewidth{\largeheadfont %
+ Volume \the\Volno, Number \the\Issueno \hss %
+ PHYSICAL REVIEW LETTERS \hss \today}%
+ \vskip 0.32cm\hrule}}}%
+ \footlineoffset=24pt %
+ \footline={% copyright claim at bottom of first page
+ \ifnum\pageno=\Pageno %
+ {\tenrm \ifodd\pageno\else\rlap{\folio}\fi %
+ \hss{\copyright\ \the\year\ The American Physical Society}\hss
+ \ifodd\pageno\llap{\folio}\fi}%
+ \else
+ \ifodd\pageno % right (odd) page header
+ {\hss \folio}%
+ \else % left (even) page header
+ {\folio \hss}%
+ \fi\fi}
+%
+ \def\section##1{\relax}% % no sections in PRL
+ \def\subsection##1{\relax}% % no subsections in PRL
+ \def\subsubsection##1{\relax}% % no subsubsections in PRL
+%
+ \def\ListReferences{% PhysRevLett version of \ListReferences
+ \dimen@=\pagetotal % how far so far
+ \ifdim\dimen@>\pageheight\advance\dimen@ by -\pageheight\fi
+ \advance\dimen@ by 1cm %
+ \ifdim\dimen@>\pagetotal % not enough to look good?
+ \bigskip\goodbreak %
+ \else %
+ \vskip\subsectionskip %
+ \line{\hfill \hbox to 6pc{\hrulefill}\hfill}%
+ \vskip\subsectionskip %
+ \fi %
+ \@stdListRefs}% %
+}% end \PhysRevLett
+
+
+%======================================================================*
+% \PhysRevManuscript is a layout similar to \preprint, but printed
+% in \TrueDoubleSpacing and with other things set the way Physical
+% Review wants them for submitted manuscripts.
+
+
+\def\PhysRevManuscript{% layout for manuscripts to be submitted to journals
+ \preprint % start with preprint form
+ \TrueDoubleSpacing % manuscripts have real double spacing
+ \showchaptIDfalse % no chapter number in equations
+ \showsectIDfalse % no section number in equations
+ \def\SectionStyle##1{\uppercase % section numbers in upper case
+ \expandafter{\romannumeral ##1}}% roman numerals
+ \def\SubsectionStyle##1{\LetterN{##1}}% subsections are UC letters
+ \def\SubsubsectionStyle##1{##1}% % subsubsections are numbered
+ \RomanTablestrue % roman numerals for table numbers
+ \FiguresLast\TablesLast % figures and tables at the end
+ \ListCaptions % collect a list of captions
+ \offparens % no automatic paren sizing
+ \superrefsfalse % PR has abandoned superscripts
+ \def\Tbf{\twelvepoint\bf}% % 12pt bold title
+ \def\tbf{\twelvepoint\bf}% % 12pt bold section head
+ \parindent=1em % indent about 2 characters
+ \parskip=\smallskipamount % not much space between paragraphs
+ \def\everysection{\vfill\eject}% % start new section on new page
+ \gdef\captionspacing{\TrueDoubleSpacing}%
+ \def\abstract{\begingroup\narrower\narrower\vskip 1\baselineskip plus 1fil}%
+ \def\ListReferences{\vskip 2\baselineskip\@stdListRefs}%
+ }
+
+% Once the Phys. Rev. style file is loaded \Manuscript is specific to
+% Physical Review:
+
+\let\Manuscript=\PhysRevManuscript
+
+%>>> EOF PhysRev.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/Spanish.txs b/Master/texmf-dist/tex/texsis/base/Spanish.txs
new file mode 100644
index 00000000000..a4100359265
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/Spanish.txs
@@ -0,0 +1,111 @@
+%% file: Spanish.txs (TeXsis version 2.17)
+% $Revision: 1.3 $ : $Date: 1997/07/07 21:10:44 $ : $Author: myers $
+%======================================================================*
+% Native language support for TeXsis in Spanish
+%
+% These macros make small changes to TeXsis so that names for things
+% like tables, figures and references are in Spanish rather than
+% English.
+%
+% Many thanks to Romano Giannetti <romano@iet.unipi.it> for the original.
+% Updated on 1997/07/07 by David Su\'arez de Lis <fafefito@uscmail.usc.es>
+%======================================================================*
+\message{TeXsis en Espa\~nol.}
+
+% If this file has already been loaded, just invoke \Spanish and quit
+
+\ifx\undefined\Spanish
+\else
+ \Spanish
+ \expandafter\endinput
+\fi
+
+% Look for spanish.sty, the Babel-TeX style for Spanish, if needed
+
+\ifx\undefined\captionsspanish % has spanish.sty been loaded?
+ \immediate\openin\patchfile=spanish.sty % try to open it
+ \ifeof\patchfile % EOF? Then it's not there
+ \emsg{> You need the Babel-TeX file spanish.sty in your input path...}%
+ \fi %
+ \immediate\closein\patchfile % close it
+ \input spanish.sty \relax % try to read it anyway
+\fi
+
+
+\def\Spanish{% re-define TeXsis macros for Spanish
+%
+% Referencing macros are re-defined.
+%
+%
+ \def\Corollary##1{corolario~\use{Cor.##1}}
+ \def\Definition##1{definici\'on~\use{Def.##1}}
+%
+%
+% Better without abbreviation, even if it's only one.
+%
+ \def\Fig##1{figura~\use{Fg.##1}}
+%
+% or, if abbreviation is used, then it goes with first letter in capital
+% \def\Fig##1{Fig.~\use{Fg.##1}}
+
+ \def\Fg##1{\use{Fg.##1}}
+ \def\Figs##1{figuras~\use{Fg.##1}}
+ \def\Lemma##1{lema~\use{Lem.##1}}
+ \def\Ref##1{ref.~\use{Ref.##1}}
+%
+%
+%
+ \def\Tab##1{tabla~\use{Tb.##1}}
+ \def\Tbl##1{tabla~\use{Tb.##1}}
+ \def\Theorem##1{teorema~\use{Thm.##1}}
+%
+% Names used in longer macros are re-defined.
+%
+ \def\AbstractName{Resumen}%
+ \def\FigureName{Figura}%
+ \def\TableName{Tabla}%
+
+% -----
+% If we ever give these things names:
+%
+% \def\TheoremName{Teorema}
+% \def\LemmaName{Lema}
+% \def\ProofName{Demostraci\'non}
+% -----
+
+% Referring to equations can be done in a wide variety of contexts. So,
+% I think it better to have equation references with only the number in
+% parenthesis (that is, by the way, the way _I_ prefere do references
+% to equations: " ...come si vede nella (2.3) la corrente ..." (Romano)
+%
+% However it is often used in a similar way as in English but with the
+% name of the item explicitly stated: "...como se ve en la
+% ecuaci\'on (2.5)..." , or even "...como se ve en la Ec. (2.5)..."
+% so I guess it is better to put it both ways, one of them commented out.
+% I will put the second one as the default, as it seems to be most widely
+% used in Spain... (David)
+
+% Also, the manual shows you how to do it the first way, and the second
+% is more specialized to Spanish, so let's use that. (Eric)
+
+
+%% \def\Eq##1{($\use{Eq.##1}$)} \def\Eqs##1{($\use{Eq.##1}$)}
+
+\def\Eq##1{ecuaci\'on~($\use{Eq.##1}$)}
+\def\Eqs##1{ecuaciones~($\use{Eq.##1}$)}
+
+% Select the language
+
+ \selectlanguage{spanish}
+
+% Default reference style should be for the European style
+
+ \Eurostyletrue
+}
+
+
+% Make it so:
+
+\Spanish
+
+%>>EOF Spanish.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/Swedish.txs b/Master/texmf-dist/tex/texsis/base/Swedish.txs
new file mode 100644
index 00000000000..0d5a3f60153
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/Swedish.txs
@@ -0,0 +1,83 @@
+%% file: Swedish.txs (TeXsis version 2.17)
+% $Revision: 1.4 $ : $Date: 1995/05/23 17:59:05 $ : $Author: myers $
+%======================================================================*
+% Native language support for TeXsis in Swedish, with the Babel-TeX package
+%
+% These macros make small changes to TeXsis so that names for things
+% like tables, figures and references are in Swedish rather than
+% English. This file also loads the babel-tex package, if needed.
+%
+% Using TeXsis with babel and Swedish (or some other language) is very
+% simple:
+%
+% o Retrieve the Babel package from CTAN
+% o Install a plain TeX with Babel for the idioms you want
+% (instruction in the babel package). Dump it to btex.fmt (for example)
+% o Dump the TeXsis package exactly as in the instruction, only
+% at the initex step do initex '&btex texsis \dump'
+% i.e. use the babel-plain base format where you used plain for an
+% english-only version
+% o Call the dumped format btexsis.fmt (or whatever you prefer).
+% o Now btexsis work like texsis normally, but you can load
+% multi-language support simply doing \input Swedish.txs.
+%
+% Many thanks to Anders Ynnerman <andersy@galilei.tfr.se> for checking this.
+%======================================================================*
+\message{TeXsis in Svensk.}%
+
+% If Swedish.txs has already been loaded, then simply exit
+
+\ifx\undefined\Swedish\else % if \Swedish is already defined then this has
+ \Swedish % already been defined. Select \Swedish
+ \expandafter\endinput % and exit this file
+\fi
+
+% Look for swedish.sty, the Babel-TeX style for Swedish, if needed
+
+\ifx\undefined\captionsswedish % has swedish.sty been loaded?
+ \immediate\openin\patchfile=swedish.sty % try to open it
+ \ifeof\patchfile % EOF? Then it's not there
+ \emsg{> You need the Babel-TeX file italaian.sty in your input path...}%
+ \fi %
+ \immediate\closein\patchfile % close it
+ \input swedish.sty \relax % try to read it anyway
+\fi
+
+%======================================================================*
+% \Swedish selects Swedish support for Babel, and re-defines names
+% of things for TeXsis
+
+\def\Swedish{% re-define TeXsis macros for Swedish
+ \selectlanguage{swedish}% Babel uses Swedish...
+%
+% Referencing macros are re-defined.
+%
+ \def\Corollary##1{corollario~\use{Cor.##1}}%
+ \def\Definition##1{definizione~\use{Def.##1}}%
+%
+ \def\Eq##1{Eq.~($\use{Eq.##1}$)}%
+ \def\Eqs##1{Eqs.~($\use{Eq.##1}$)}%
+%
+ \def\Fig##1{Fig.~fig.~\use{Fg.##1}}%
+ \def\Fg##1{\use{Fg.##1}}%
+ \def\Figs##1{Figurs~\use{Fg.##1}}%
+ \def\Lemma##1{lemma~\use{Lem.##1}}%
+ \def\Ref##1{Ref.~\use{Ref.##1}}%
+%
+ \def\Tab##1{Tabell~\use{Tb.##1}}%
+ \def\Tbl##1{Tableller~\use{Tb.##1}}%
+ \def\Theorem##1{teorema~\use{Thm.##1}}%
+%
+% Names used in longer macros are re-defined.
+%
+ \def\AbstractName{Sammanfattning}%
+ \def\FigureName{Figur}%
+ \def\TableName{Tabell}%
+ \def\DraftName{Preliminary Draft}%
+}
+
+% Make it so.
+
+\Swedish
+
+%>>EOF Swedish.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSconts.tex b/Master/texmf-dist/tex/texsis/base/TXSconts.tex
new file mode 100644
index 00000000000..eb03f7606f1
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSconts.tex
@@ -0,0 +1,180 @@
+%% file: TXSconts.tex - Table of Contents - TeXsis version 2.18
+%% $Id: TXSconts.tex,v 18.0 1999/07/09 17:26:11 myers Exp $
+%======================================================================*
+%
+% These macros are an easy way to make a table of contents.
+% An entry in the table of contents is created with \addTOC like so:
+%
+% \addTOC{level}{title-text}{page}
+%
+% The level is a number 0, 1, 2, etc for chapters, sections or
+% subsections and is used to control the indentation of the entry.
+% The page number should probably be {\folio}, so that it comes out
+% correctly, but you can use anything else you like.
+%
+% \addTOC writes the table of contents information to a file called
+% \jobname.toc. At the end of the job you simply say \Contents to read
+% in this information and actually create the table of contents.
+% \Contents does not print any heading or change the page numbering --
+% you must take care of that yourself.
+%
+% If you include \TOCcID{chapter-id} in the title-text then the
+% chapter-id will or will not be printed in the title depending on
+% whether you have set \showchaptIDtrue or \showchaptIDfalse at the
+% time you say \Contents. Similarly, \TOCsID{section-id} displays the
+% section-id if \showsectIDtrue. For example, if you say
+%
+% \addTOC{1}{\TOCsID{3.14}Section of $\pi$}{\folio}
+%
+% then the section number 3.14 will or will not be displayed when
+% \Contents is invoked, depending on \ifshowsectID.
+%
+% You can write anything you want to the table of contents file by
+% saying \TOCwrite{stuff}. Use this to insert formatting information
+% or headings.
+%
+% Note that no table of contents information is written if \Contentsfalse
+% is set. This is the default in TeXsis for most document formats
+% except \book and \thesis, so you should explicitly say \Contentstrue
+% to get a table of contents. If this file is \input separately then
+% \Contentstrue is already set.
+%
+% This file is a part of TeXsis, but may be used by itself with Plain TeX.
+% (In that case \TOCcID and \TOCsID always show their arguments.)
+%
+% This file is a part of TeXsis.
+% (C) copyright 1991, 1994, 1997 by Eric Myers and Frank Paige.
+%----------------------------------------------------------------------*
+\message{Table of Contents.}
+\catcode`@=11
+
+% I/O and switches, etc:
+
+\newwrite\TOCout % table of contents temp file
+\newskip\TOCmargin \TOCmargin=3cm % right margin indent for TOC
+
+\newif\ifContents % do we write out to table of contents?
+\Contentstrue % default is true if loaded by itself
+
+\def\ContentsSwitchtrue{\Contentstrue} % \@obsolete in 2.18
+\def\ContentsSwitchfalse{\Contentsfalse}% \@obsolete in 2.18
+
+%---------------------------*
+% Initialization: open the output file
+
+\def\TOCinit{% open and initialize Table of Contents file
+ \ifContents % is switch on?
+ \immediate\openout\TOCout=\jobname.toc % yes: then open file
+ \immediate\write\TOCout{\@comment Table of Contents for job `\jobname'
+ -- Created at \runtime}%
+ \immediate\write\TOCout{\@comment ====================================}%
+ \gdef\TOCinit{\relax}% % initialize only once!
+ \fi}
+
+% \TOCwrite lets you write to the Table of Contents file
+
+\def\TOCwrite#1{\TOCinit\ifContents\write\TOCout{#1}\fi}
+
+%---------------------------*
+% \addTOC#1#2#3 adds a chapter, section, etc. to the table of contents,
+% by writing the arguments to the .toc file in just the way \TOCitem
+% wants to read them. The arguments are:
+% #1 = 0 for chapter, 1 for section, 2 for subsection
+% #2 = title text
+% #3 = page number
+
+\def\addTOC#1#2#3{% add entry to Table of Contents
+ \ifContents % only if enabled
+ \TOCinit % make sure file is open
+ \write\TOCout{\string\TOCitem{#1}}% % type of entry
+ \edef\@line@{{{#2}}}% % expand title text
+ \write\TOCout\@line@ % write title text to file
+ \write\TOCout{{#3}\@comment}% % write page number to file
+ \fi}
+
+% \TOCcID and \TOCsID just give their names as a \string, so they
+% can be written to the file. They are re-defined to their active
+% forms later by \Contents.
+
+\def\TOCcID{\string\TOCcID}\def\TOCsID{\string\TOCsID}%
+
+%---------------------------*
+% \TOCitem processes a Table of Contents entry. The arguments are the
+% same as for \addTOC.
+
+\def\TOCitem#1#2#3{% process a Table of Contents item
+ \ifcase#1\bigskip % \bigskip for chapters,
+ \or\medskip % \medskip for sections
+ \or\smallskip\fi % \smallskip for subsections
+ \begingroup %
+ \advance\leftskip by #1\parindent % indent sub-items
+ \raggedright\tolerance=1700 % don't justify
+ \advance\rightskip by \TOCmargin % right margin comes in, but
+ \parfillskip=-\TOCmargin % page number at edge of page
+ \hangindent=1.41\parindent\hangafter=1 % hanging indentation
+ \noindent #2\hskip 0pt plus 10pt % the text
+ \leaddots % leaders to edge
+ \hbox to 2em{\hss\linkto{page.#3}{#3}}% % the page number
+ \vskip 0pt % end paragraph
+ \endgroup %
+ }
+
+% Leaders for dots:
+
+\def\leaddots{\leaders\hbox to 10pt{\hss.\hss}\hfill}
+
+%---------------------------*
+% \Contents just reads and prints the table of contents file.
+% \label is disabled since it is not really part of the title.
+
+\def\Contents{% print out table of contents
+ \immediate\closeout\TOCout % close the .toc file!
+ \immediate\openin\TOCout=\jobname.toc % now open it to read
+ \ifeof\TOCout\closein\TOCout % if EOF just close it
+ \emsg{> \string\Contents: no Table of Contents file \jobname.toc.}%
+ \else\immediate\closein\TOCout % else close it and read in
+ \begingroup % make this local
+ \def\label##1{}\relax % disable \label in .toc file
+ \catcode`@=11\catcode`"=12 % no fancy active characters
+ \catcode`(=12\catcode`)=12 % no active ( or )
+ \catcode`[=12\catcode`]=12 % no active [ or ]
+ \def\TOCcID##1{\ifshowchaptID{##1} \fi}% % activate \TOCcID
+ \def\TOCsID##1{\ifshowsectID{##1} \fi}% % activate \TOCsID
+ \ContentsFormat % customize layout
+ \noindent % supress any \par indent
+ \input \jobname.toc \relax % read in the contents file
+ \endgroup %
+ \fi}
+
+\let\contents=\Contents % synonym (since 2.14)
+
+% \ContentsFormat is done before the table of contents and lets
+% you customize the way the table is displayed. For example
+% you could say \def\mib{}\def\n{} to turn off \mib and line breaks.
+
+\def\ContentsFormat{\relax} % default does nothing
+
+%---------------------------*
+% Plain TeX compatability: you can use these macros with Plain TeX
+% simply by saying '\input TXSconts.tex ', but to do so we need to
+% make sure that the following macros from other parts of TeXsis are
+% defined or faked:
+
+\ifx\emsg\undefined % if \emsg is undefined this is not TeXsis
+ \def\emsg#1{\immediate\write16{#1}}% simple version of \emsg
+ {\catcode`\%=11 \gdef\@comment{% }}% \@comment for writing '% ' to file
+ \def\ifshowchaptID#1\fi{#1}\def\ifshowsectID#1\fi{#1}%
+ \def\runtime{\the\year/\the\month/\the\day\space\the\time}%
+ \def\linkto#1#2{\relax}%
+\fi
+
+%======================================================================*
+% (OLD TEXSIS 2.13 -- to be removed!)
+% \addsectioncont#1#2#3 adds section number #1, with title #2, and
+% level #3 (0 for chapter, 1 for section, 2 for subsection) to the
+% table of contents page. This is obsolete and replaced by \addTOC
+
+\def\addsectioncont#1#2#3{\@obsolete\addsectioncont\addTOC
+ \addTOC{#1}{#2}{#3}}
+
+%>>> EOF TXSconts.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSdcol.tex b/Master/texmf-dist/tex/texsis/base/TXSdcol.tex
new file mode 100644
index 00000000000..4b2ddea0094
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSdcol.tex
@@ -0,0 +1,707 @@
+%% file: TXSdcol.tex - Double Column Output - TeXsis version 2.18
+%% @(#) $Id: TXSdcol.tex,v 18.0 1999/07/07 21:20:41 myers Exp $
+%======================================================================*
+% Double Column Output Routines:
+%
+% These macros let you create double column output, with balancing
+% of partially filled columns, and with top, bottom, and footnote
+% insertions in the columns or across the width of the page.
+%
+% To set up for double column output on a page of a given <width> and
+% <height> and with columns of width <c-width> put the following at the
+% beginning of your document:
+%
+% \hsize=<width> \vsize=<height>
+% \SetDoubleColumns{<c-width>}
+%
+% Note that this re-defines TeX's \output routine. It does not actually
+% put you in double column mode. To do that, say \doublecolumns. To
+% switch back to single column output say \enddoublecolumns (or the
+% synonym \singlecolumn). Partially filled columns will be balanced
+% to the best of TeX's abilities.
+%
+% The usual insertions of TeX and TeXsis (\topinsert, \midinsert,
+% \pageinsert, \heavyinsert and \bottominsert) put insertions into the
+% current column. To force an insertion into a particular column, say
+% \forceleft or \forceright INSIDE the insertion material.
+%
+% Wide insertions across the width of both columns can be made with
+% \widetopinsert, \widepageinsert, or \widebottominsert.
+%
+% Long equations which need to span both columns should be enclosed
+% between \longequation (before the first "$$") and \endlongequation
+% (after trailing "$$"). Rules to guide the eye are put at the bottom
+% of the left column above the equation and above the right column below
+% the equation (as is done in Physical Review). You can change this.
+%
+% Footnotes created with \footnote or \vfootnote will be placed at the
+% bottom of the current column. You can place a footnote across the
+% bottom of both columns with \widefootnote or \widevfootnote.
+%
+% You can always force a skip to the next column with \newcolumn.
+% To skip to a completely new page use \vfill\eject, as usual.
+%
+% In single column mode all of these macros either behave as their
+% single-column counterparts or do nothing, as appropriate, so that
+% your document comes out looking right in single column mode.
+%
+% WARNING! Formatting double column documents is inherently more
+% difficult than regular typesetting. Here are some helpful hints:
+% (1) Since double columns are narrow, the normal TeX spacing produces
+% many overfull \hbox's. To avoid this, the interword skip \spaceskip is
+% changed to \doublecolskip=.3333em plus .3333em minus .1em
+% More uniform spacing can be obtained by changing \doublecolskip.
+% (2) The value of \vbadness and \hbadness are doubled in double
+% column mode, but you may want to increase them further to avoid
+% complaints of overfull boxes. But don't increase these too much.
+% (3) To balance columns it is essential to have some stretch in the
+% column. Using \parskip=\smallskipamount helps, or try adding a little
+% stretch to the \baselineskip with: \advance\baselineskip by 0pt plus 0.5pt
+%
+% This version of these macros is a complete re-write of the TeXsis
+% double column macros previous to version 2.16. Some of the methods
+% used here are adapted from The TeXBook, pg 417, and TUGboat, Vol 6, pg 29.
+% See the file TXSdcol.doc for further documentation.
+%
+% @(#) Dependencies: none -- this file can be used as is with plain.tex,
+%
+%======================================================================*
+% (C) copyright 1994, 1999 by Eric Myers and Frank Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the GNU General Public License (GPL).
+% This software is made available WITHOUT ANY WARRANTY of any kind.
+%======================================================================*
+\message{- Double column format.}
+
+\catcode`@=11 % make @ a letter for this file
+
+\newdimen\colwidth % width of column
+\newdimen\pagewidth % total width of page
+\newdimen\pageheight % total height of page
+\newdimen\rulewd \rulewd=.5pt % col. rule height
+\newdimen\colmaxdepth \colmaxdepth=4pt % max. split depth
+
+\newdimen\@bigColHeight % height of both columns together
+\newdimen\@saveSplitmax % to save \splitmaxdepth
+\newdimen\@saveVsize % to save \vsize
+\newskip\s@veskip % to save \spaceskip
+\newskip\doublecolskip % new \spaceskip
+\doublecolskip=.3333em plus .3333em minus .1em % with more stretch
+
+\newdimen\@leftpluscenter % how far to move over for rule
+
+\newbox\partialpage % save single column partial page here
+
+\newif\ifleftc@lumn % insert in left column?
+\newif\if@wid % flag: this is a wide insert
+\newif\if@bot % flag: this is a bottom insert
+
+\def\@LET{\global\let} % we'll use this a lot
+
+%--------------------------------------------------*
+% Until you say \SetDoubleColumns, the instructions \doublecolumns,
+% \enddoublecolumns, \leftcolrule and \rightcolrule and so on are
+% simply \relax. This is so you can put these in a document which
+% uses double columns, but then print it with one of the single
+% column formats without them getting in the way, or vice versa.
+%
+
+\colwidth=\hsize % default column width is \hsize
+
+\def\doublecolumns{\relax} \def\enddoublecolumns{\relax}
+\def\leftcolrule{\relax} \def\rightcolrule{\relax}
+\def\longequation{\relax} \def\endlongequation{\relax}
+\def\wideequation{\relax} \def\endwideequation{\relax}
+\def\newcolumn{\relax} \def\widetopinsert{\topinsert}
+\def\widepageinsert{\pageinsert}\def\widebottominsert{\bottominsert}
+\let\widefootnote=\footnote \let\widevfootnote=\vfootnote
+
+% Save Plain definitions of inserts so we can restore them later
+
+\let\@plaintopinsert=\topinsert \let\@plainmidinsert=\midinsert
+\let\@plainbottominsert=\bottominsert\let\@plainheavyinsert=\heavyinsert
+\let\@plainpageinsert=\pageinsert\let\@plainendinsert=\endinsert
+\let\@plainvfootnote=\vfootnote \let\@plainfootnote=\footnote
+
+
+% \SetDoubleColumns<column-width> sets things up for double column mode
+% with columns of the given width, using the current settings for \vsize
+% and \hsize.
+
+\def\SetDoubleColumns#1{% set up double column mode
+ \global\colwidth=#1\relax % column width
+ \pagewidth=\hsize \pageheight=\vsize % page sizes
+ \@bigColHeight=\vsize % total height = \vsize
+ \multiply \@bigColHeight by 2 % times 2
+ \@leftpluscenter=\pagewidth % \@leftpluscenter = size
+ \advance \@leftpluscenter by -\colwidth % to right column
+ \dimen\NWins=\pageheight \dimen\NEins=\pageheight % maximum top insert size
+ \dimen\SWins=\pageheight \dimen\SEins=\pageheight % max bottom insert
+ \output={\@nepageout{\pagecontents}}% % new \output, single columns
+ \let\doublecolumns=\@doublecolumns % enable \doublecolumns
+ \let\rightcolrule=\@rightcolrule % enable rule
+ \let\leftcolrule=\@leftcolrule %
+ \let\longequation=\@longequation % enable wide eqns.
+ \let\wideEquation=\@longequation %
+}
+
+% \setdoublecolumns<page-width><page-height><column-width> is included
+% for backward compatability with TeXsis 2.15 and earlier.
+
+\def\setdoublecolumns#1#2#3{%
+ \emsg{> Please use \string\SetDoubleColumns\ instead}%
+ \global\hsize=#1\global\vsize=#2\relax
+ \SetDoubleColumns{#3}}
+
+
+% \@doublecolumns starts double column output. It redefines \endinsert
+% to handle double column insertions and \widetopinsert and \widepageinsert
+% to do them. The inserts are made global so that they get to \output
+% from inside groups.
+
+\def\@doublecolumns{% begin double column formatting
+ \begingroup % keep changes local
+ \def\enddoublecolumns{\@enddoublecolumns}% % enable \enddoublecolumns
+ \def\doublecolumns{\relax}% % in case twice
+ \def\endmode{\@enddoublecolumns}% % implicit end, if needed
+ \let\newcolumn=\@newcolumn %
+%
+ \output={\global\setbox\partialpage=\vbox{% % save page so far,
+ \ifvoid\topins\else\unvbox\topins % including top inserts
+ \bigskip\fi % with some space between
+ \unvbox255 % main page
+ }}\eject % in \partialpage
+ \output={\@doublecolumnout}% % set to 2 column output
+%
+ \@saveVsize=\vsize % save old \vsize
+ \hsize=\colwidth \vsize=\@bigColHeight % set width to column width,
+ \advance\vsize by -2\ht\partialpage % height to 2*page minus
+ \advance\vsize by -2\dp\partialpage % what's already there
+ \global\s@veskip=\spaceskip % save old interword glue
+ \global\spaceskip=\doublecolskip % stretch for small cols.
+ \global\displaywidth=\colwidth % equations have \colwidth
+ \global\hyphenpenalty=0 % hyphens are OK
+ \multiply\vbadness by 2 \multiply\hbadness by 2 % be more tolerant
+ \clubpenalty=150 % club line penalty
+ \widowpenalty=150 % widow line penalty
+% Set macros to their double column dopplegangers
+ \@LET\topinsert=\@doubletopinsert
+ \@LET\bottominsert=\@doublebottominsert
+ \@LET\pageinsert=\@doublefullinsert
+ \@LET\midinsert=\@doublemidinsert
+ \@LET\heavyinsert=\@doubleheavyinsert
+ \@LET\endinsert=\@enddoubleinsert
+ \@LET\widetopinsert=\@widetopinsert
+ \@LET\widepageinsert=\@widepageinsert
+ \@LET\widebottominsert=\@widebottominsert
+ \@LET\vfootnote=\@doubleVfootnote % \footnote uses this one
+ \@LET\widefootnote=\@widefootnote
+ \@LET\widevfootnote=\@wideVfootnote
+}
+
+
+% \@enddoublecolumns ends double column output and balances the columns.
+% This also allows for double width equations. The grouping insures that
+% \endinsert is reset to the Plain version.
+
+\def\@enddoublecolumns{% end double column mode, go back to single column
+ \global\output={\@balancecolumns}\eject % balance & output so far
+ \global\output={\@nepageout{\pagecontents}}% % back to single column output
+ \global\vsize=\@saveVsize % reset vsize
+ \endgroup % end 2 col. group
+ \pagegoal=\vsize % reset overall goal size
+ \spaceskip=\s@veskip % reset interword glue...
+ \hyphenpenalty=50 \displaywidth=\hsize
+ \def\endmode{\relax}% % reset \endmode
+% Reset macros to single column version:
+ \@LET\topinsert=\@plaintopinsert
+ \@LET\midinsert=\@plainmidinsert
+ \@LET\pageinsert=\@plainpageinsert
+ \@LET\endinsert=\@plainendinsert
+ \@LET\bottominsert=\@bottominsert
+ \@LET\heavyinsert=\@heavyinsert
+ \@LET\vfootnote=\@plainvfootnote
+ \@LET\widetopinsert=\@plaintopinsert
+ \@LET\widepageinsert=\@plainpageinsert
+ \@LET\widefootnote=\@plainfootnote
+ \@LET\widebottominsert=\@plainbottominsert
+ \@LET\widevfootnote=\@plainvfootnote
+}% end of \@enddoublecolumns
+
+\def\begindoublecolumns{\doublecolumns} % synonym
+\def\singlecolumn{\enddoublecolumns} % synonym
+
+
+% How to skip to a new column. If we are in the left column, fill it
+% up to force a skip to the right. If in the right column, skip to the
+% next page.
+
+\def\@newcolumn{% skip to next column, left or right
+ \vskip\z@ % force vertical mode
+ \ifdim\pagetotal<\pageheight % left column?
+ \dimen@=\pageheight \advance\dimen@ by -\pagetotal % room left in left
+ \vskip\dimen@\goodbreak % fill up to end of left col
+ \else \vfill\eject \fi} % else skip to next page
+
+
+
+
+
+%--------------------------------------------------*
+% BOTTOM INSERTIONS:
+%
+% Modifications to \output routines to add \bottominsert, which inserts
+% the material at the bottom of the page, and \heavyinsert, which
+% inserts the material at current position or at bottom of next page.
+% Based on Plain TeX \output but with these modifications and additions:
+%
+% These are for single columns or wide insertions in double columns
+% mode (for which see the other modifications to the output routines
+% futher down).
+
+
+\newinsert\botins
+\skip\botins=\bigskipamount % space to skip before bottom insert
+\count\botins=1000 % magnification factor (1 to 1)
+\dimen\botins=\maxdimen % no limit per page
+
+\newif\if@bot % flags whether this is a bottom (not top) insert
+
+
+% Define/redefine insertions to include \@botfalse or true
+
+\def\topinsert{\@midfalse\p@gefalse\@botfalse\@ins}
+\def\pageinsert{\@midfalse\p@getrue\@botfalse\@ins}
+\def\midinsert{\@midtrue\p@gefalse\@botfalse\@ins\topspace\bigskipamount}
+\def\heavyinsert{\@midtrue\p@gefalse\@bottrue\@ins\topspace\bigskipamount}
+\def\bottominsert{\@midfalse\p@gefalse\@bottrue\@ins\topspace\bigskipamount}
+
+
+\def\endinsert{% end any insert (\topinsert, \midinsert, \bottominsert...)
+ \egroup % finish the \vbox
+ \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@
+ \advance\dimen@12\p@ \advance\dimen@\pagetotal
+ \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi
+ \if@mid \bigskip\box\z@\bigbreak % if mid dump it right here
+ \else\if@bot\@insert\botins \else\@insert\topins \fi
+ \fi
+ \endgroup}
+
+\def\@insert#1{% \insert a floating top/bottom/page (not mid) insert
+ \insert#1{\penalty100 % floating insertion
+ \splittopskip\z@skip % no skip if split
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@=\dp\z@ % full page insert?
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% % box to page height
+ \else \box\z@ \nobreak % top/bottom? Unbox 0
+ \ifx #1\topins \ifp@ge\else\bigbreak\fi\fi % bigskip below every topinsert
+ \fi}}
+
+
+% Modfied version of \pagecontents to include bottom inserts
+
+\def\pagecontents{% constructs page contents, including bottom inserts
+ \ifvoid\topins\else\unvbox\topins % top inserts, if any
+ \vskip\skip\topins\fi % and some space below
+ \dimen@=\dp\@cclv \unvbox\@cclv % main page contents from \box255
+ \ifvoid\footins\else % footnote inserts, if present
+ \vskip\skip\footins % skip above
+ \footnoterule % put the rule above footnotes
+ \unvbox\footins\fi % then the footnotes
+ \ifvoid\botins\else\vskip\skip\botins % bottom inserts? space above
+ \unvbox\botins\fi % and then insert the text
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+
+
+%--------------------------------------------------*
+% FLOATING INSERTIONS for double columns:
+
+% Since there can now be insertions at the top and bottom of both
+% the left and right columns, they will be labeled by compass points.
+
+\newinsert\NWins \skip\NWins=0pt \newinsert\SWins \skip\SWins=0pt
+\newinsert\NEins \skip\NEins=0pt \newinsert\SEins \skip\SEins=0pt
+
+
+% There are also insertions for footnotes at the bottom of either column
+
+\newinsert\LFins \count\LFins=1000 \dimen\LFins=5cm \skip\LFins=\bigskipamount
+\newinsert\RFins \count\RFins=1000 \dimen\RFins=5cm \skip\RFins=\bigskipamount
+
+
+% \@enddoubleinsert is a modified version of \endinsert which
+% decides whether to put an insertion in the left or the right column.
+% \endinsert is let equal this in \doublecolumns mode.
+
+\def\@enddoubleinsert{% end an \insert in double column mode
+ \egroup % finish the \vbox\z@
+%
+% Decide whether in left or right column:
+%
+ \ifdim\pagetotal<\pageheight\leftc@lumntrue % left if page total < 1 col
+ \else \leftc@lumnfalse\fi % right otherwise
+ \ifx L\LRf@rce \leftc@lumntrue \fi % or forced left
+ \ifx R\LRf@rce \leftc@lumnfalse \fi % or forced right
+%
+% If midinsert requested, decide whether there is room...
+%
+ \if@mid % midinsert selected
+ \dimen@=\ht\z@ \advance\dimen@ by \dp\z@ % dimen0 = height + depth
+ \advance\dimen@ by \baselineskip % + baselineskip
+ \advance\dimen@ by \pagetotal % + page total
+ \ifleftc@lumn % if in left column
+ \ifdim\dimen@>\pageheight % \pageheight = 1 col height
+ \@midfalse\p@gefalse\fi % top insert
+ \else % in right column
+ \ifdim\dimen@>\@bigColHeight % \@bigColHeight = 2 col height
+ \@midfalse\p@gefalse\fi\fi % top insert
+ \fi % end if@mid
+%
+% If room for midinsert, do it; otherwise make insert in same column.
+%
+ \if@mid \bigskip\box\z@\bigbreak % fits: just do it
+ \else % otherwise: where to put it?
+ \if@wid % wide insert
+ \if@bot\let\@whichins=\botins % bottom?
+ \else\let\@whichins=\topins\fi % or top?
+ \else % not wide, so...
+ \if@bot % bottom?
+ \ifleftc@lumn\let\@whichins=\SWins % bottom left is SW
+ \else \let\@whichins=\SEins\fi % bottom right is SE
+ \else % top?
+ \ifleftc@lumn\let\@whichins=\NWins % top left is NW
+ \else \let\@whichins=\NEins\fi % top right is NE
+ \fi %
+ \fi % end of \if@wid
+ \C@lumnInsert\@whichins % do the insertion
+ \fi % end \if@mid
+ \endgroup % end the insertion group
+ \global\let\LRf@rce=X % reset forcing flag
+}
+
+
+% \C@lumnInsert{<insert#>} makes an appropriate insertion of the
+% material into the named insert. It also inserts a \bigskip after or
+% before the inserted box, just like the Plain \endinsert. Note that
+% all the skips for these inserts are 0pt.
+
+\def\C@lumnInsert#1{% make an insertion into insertion #1
+ \if@wid\count#1=2000\relax % wide inserts count x 2
+ \else\count#1=1000\fi % otherwise x 1
+ \insert#1{% % make the insertion
+ \penalty100 \splitmaxdepth=\maxdimen %
+%% \topskip=\z@skip \splittopskip=\z@skip %
+ \floatingpenalty=\z@ % no penalty for floating
+ \if@wid\hsize=\pagewidth\fi % full width
+ \ifp@ge \dimen@=\dp\z@ % dimen0 = depth
+ \vbox to\pageheight{\unvbox\z@ \kern-\dimen@}% full page = \pageheight
+ \else % not full page
+ \ifx#1\botins\bigskip\fi % skip before bottom insert
+ \ifx#1\SWins\bigskip\fi % skip before bottom insert
+ \ifx#1\SEins\bigskip\fi % skip before bottom insert
+ \box\z@\nobreak % now add box0
+ \ifx#1\topins\bigskip\fi % space below top insert
+ \ifx#1\NWins\bigskip\fi % space below top insert
+ \ifx#1\NEins\bigskip\fi % space below top insert
+ \fi % end of \ifp@ge
+ }% % end of insert
+}
+
+
+% \wideXXXinsert make floating insertions across both columns. They
+% use the same insert as the normal (single column) insert of the same
+% name because it goes in the same place.
+
+\def\@widetopinsert{% make a full width (wide) insertion at top of page
+ \@midfalse\p@gefalse\@widtrue\@botfalse
+ \@ins \hsize=\pagewidth}
+
+\def\@widepageinsert{% full width, full length (i.e. full page) insertion
+ \@midfalse\p@getrue\@widtrue\@botfalse % wide page insert
+ \@ins \hsize=\pagewidth}
+
+\def\@widebottominsert{% full width insertion at bottom of page
+ \@midfalse\p@gefalse\@widtrue\@bottrue % wide page insert
+ \@ins \hsize=\pagewidth}
+
+
+% \@doubleXXXinsert is like \XXXinsert in Plain but also sets
+% \@widfalse to prevent wide inserts.
+
+\def\@doubletopinsert{\@midfalse\p@gefalse\@botfalse\@widfalse\@ins}
+\def\@doublemidinsert{\@midtrue\@botfalse\@widfalse\@ins}
+\def\@doublefullinsert{\@midfalse\p@getrue\@botfalse\@widfalse\@ins}
+\def\@doublebottominsert{\@midfalse\p@gefalse\@bottrue\@widfalse\@ins}
+\def\@doubleheavyinsert{\@midtrue\p@gefalse\@bottrue\@widfalse\@ins}
+
+
+
+% \forceleft and \forceright force left and right insertions independent
+% of the current column position.
+
+\def\forceleft{\global\let\LRf@rce=L} % force left insert
+\def\forceright{\global\let\LRf@rce=R} % force right insert
+
+\let\LRf@rce=X % default is no force
+
+%--------------------------------------------------*
+% FOOTNOTES: wide footnotes go across the bottom of both columns,
+% while the others just go in the left or right column. The names
+% begin with @ because these are only enabled in double column mode.
+
+\def\@widefootnote#1{% footnote across a double column page
+ \let\@sf=\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ #1\@sf\@wideVfootnote{#1}}
+
+\def\@wideVfootnote#1{\insert\footins\bgroup
+ \hsize=\pagewidth % as wide as a page
+ \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\@doubleVfootnote#1{% double column footnote in left or right column
+ \ifdim\pagetotal<\pageheight\relax %
+ \def\next{\@dblVfootnote\LFins{#1}}%
+ \else\def\next{\@dblVfootnote\RFins{#1}}%
+ \fi\next}
+
+\def\@dblVfootnote#1#2{% footnote insert in whichever column named by #1
+ \insert#1\bgroup % begin insert
+ \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{#2}\footstrut\futurelet\next\fo@t}
+
+%
+%--------------------------------------------------*
+% OUTPUT ROUTINES for double columns:
+
+
+% \@nepageout ships out a single page with running headlines
+% and footlines added. Can be used with single or double columns,
+% depending on what you put as the argument.
+
+\def\@nepageout#1{% % output one page
+ \shipout\vbox{% % output a box
+ \offinterlineskip % no interline spacing!
+ \wideheadline % make wide headline
+ \vbox to \pageheight{\boxmaxdepth=\maxdepth %
+ #1\relax}% % box containing #1
+ \widefootline}% % make wide footline
+ \advancepageno}% % increment page number
+
+
+% The following are like \makeheadline and \makefootline in Plain
+% except that they use \hbox to\pagewidth instead of \line.
+
+\def\wideheadline{% \makeheadline for double column mode
+ \vbox to\z@{\vskip-22.5\p@ % skip up some
+ \ifx\undefined\headlineoffset\else\vskip-\headlineoffset\fi
+ \hbox to \pagewidth{\vbox to 8.5\p@{}\the\headline}% content in \headline
+ \vss}%
+ \nointerlineskip}%
+
+\def\widefootline{% \makefootline for double column mode
+ \baselineskip=24\p@ % space down
+ \ifx\undefined\footlineoffset\else\vskip\footlineoffset\fi
+ \hbox to \pagewidth{\the\footline}}% % content in \footline
+
+
+% \@doublecolumnout splits the page into two columns, including any
+% insertions which have accumulated.
+
+\def\@doublecolumnout{% output routine for double column mode
+%
+% get height of columns in \dimen@
+%
+ \dimen@=\pageheight % start with total space
+ \advance\dimen@ by -\ht\partialpage % subtract used height
+ \advance\dimen@ by -\dp\partialpage % ... and deptn
+ \ifvoid\topins\else % subtract top inserts
+ \advance\dimen@ by -\ht\topins %
+ \advance\dimen@ by -\dp\topins %
+ \advance\dimen@ by -\bigskipamount % including skip
+ \advance\dimen@ by -\splittopskip\fi % and extra at top of cols.
+ \ifvoid\botins\else % subtract any bottom inserts
+ \advance\dimen@ by -\ht\botins %
+ \advance\dimen@ by -\dp\botins %
+ \advance\dimen@ by -\bigskipamount\fi % including skip
+ \ifvoid\footins\else % subtract full width footnotes
+ \advance\dimen@ by -\ht\footins %
+ \advance\dimen@ by -\dp\footins %
+ \advance\dimen@ by -\skip\footins\fi % including skip
+ \@saveSplitmax=\splitmaxdepth \splitmaxdepth=\colmaxdepth
+ \splittopskip=\topskip
+%
+% construct left and right columns, with inserts inserted, and force
+% them to the desired size \dimen@
+%
+ \ifdim\dimen@>\baselineskip % if room for at least 1 line
+ \MakeColumn{1}{255}{\dimen@}{\NWins}{\LFins}{\SWins}%
+ \MakeColumn{2}{255}{\dimen@}{\NEins}{\RFins}{\SEins}%
+ \setbox1=\vbox to \dimen@{\unvbox1}% % reset to same size
+ \setbox2=\vbox to \dimen@{\unvbox2}% % reset to same size
+ \else % ... else no room
+ \setbox1=\vbox{}\setbox2=\vbox{}% % so just empty columns
+ \fi % end if room for columns
+%
+ \@nepageout{\@pagesofar\@pagebottom}% % ship out double column page
+ \global\vsize=\@bigColHeight %
+ \unvbox255 \penalty\outputpenalty % put remaining text back
+ \splitmaxdepth=\@saveSplitmax} % reset \splitmaxdepth
+
+
+% \MakeColumn{outbox}{inbox}{size}{topinsert}{footinsert}{bottominsert}
+% creates a column of text of the given length, with the topinsert added
+% at the top, and the footnote and bottominsert added at the bottom
+% of the column (in that order). The result is put in outbox, while
+% what is left over remains in inbox.
+
+\def\MakeColumn#1#2#3#4#5#6{% make a column with top and bottom inserts
+%
+% start the column with the topinsert (#4) and the main text (#2)
+%
+ \setbox3=\vbox{\ifvoid#4\else\unvbox#4\vskip\skip#4\fi \unvbox#2}%
+%
+% also collect column footnotes (#5) and bottom inserts (#6)
+%
+
+ \setbox4=\vbox{\ifvoid#5\else\vskip\skip#5\footnoterule\unvbox#5\fi%
+ \ifvoid#6\else\vskip\skip#6\unvbox#6\fi}%
+%
+% split off just right amount from top stuff to make output column
+%
+ \dimen@ii=#3\relax
+ \advance\dimen@ii by -\ht4 \advance\dimen@ii by -\dp4\relax
+ \setbox#1=\vsplit3 to \dimen@ii
+%
+% put the top and bottom together; put remainder from split back in input
+%
+ \setbox#1=\vbox{\unvbox#1\unvbox4}%
+ \setbox#2=\vbox{\unvbox3}%
+}
+
+
+% \@pagesofar adds double column material to the page. The left column
+% is in box 1, and the right column is in box 2
+
+\def\@pagesofar{% add stuff to top of page collected so far
+ \ifvoid\topins\else\unvbox\topins % wide top inserts, if any?
+ \vskip\skip\topins\fi % some space below them
+ \unvbox\partialpage % partial page from past?
+ \wd1=\hsize \wd2=\hsize % set column sizes
+ \hbox to \pagewidth{\box1\hfill\box2}}% % combine 2 column boxes
+
+
+% \@pagebottom puts the (wide) bottom and footnote inserts in place,
+% if there are any.
+
+\def\@pagebottom{% add inserts to bottom of a page
+ \ifvoid\botins\else\bigskip\unvbox\botins\fi % wide bottom inserts, if any
+ \ifvoid\footins\else % wide footnotes, if any
+ \vskip\skip\footins\footnoterule % skip and rule above them
+ \unvbox\footins\fi} % then the footnotes
+
+
+% \@balancecolumns is the output routine for balancing 2 columns.
+% (Based loosely on \balancecolumns from The TeXbook, pg 417)
+
+\def\@balancecolumns{% balance partial double columns page
+%
+% get target column height from sum of text and all inserts
+%
+ \setbox255=\vbox{\unvbox255}% reset glue
+ \dimen@=\ht255 \advance\dimen@ by \dp255 % main text
+ \@addsize\dimen@\NWins \@addsize\dimen@\NEins % top inserts
+ \@addsize\dimen@\LFins \@addsize\dimen@\RFins % column footnotes
+ \@addsize\dimen@\SWins \@addsize\dimen@\SEins % bottom inserts
+ \divide \dimen@ by 2 % and divide by 2
+ \@saveSplitmax=\splitmaxdepth %
+ \splitmaxdepth=\colmaxdepth %
+ \splittopskip=\topskip % top skip for splits
+%
+% Loop over possible splits of text into left and right columns.
+% Always use copies of boxes to avoid destroying contents.
+%
+ \advance\dimen@ by -.5\baselineskip % and a smidgeon LESS
+ {\vbadness=20000 \loop % suppress errors
+ \setbox0=\copy255 %
+ \setbox5=\copy\NWins \setbox6=\copy\LFins\setbox7=\copy\SWins
+ \setbox8=\copy\NEins \setbox9=\copy\RFins \setbox10=\copy\SEins
+ \MakeColumn{1}{0}{\dimen@}{5}{6}{7}% % first column fixed height
+ \MakeColumn{2}{0}{\pageheight}{8}{9}{10}% % second big enuf for all
+ \ifdim\ht2>\ht1
+ \global\advance\dimen@ by 1pt
+ \repeat}% % increment and try again
+%
+% End loop over possible splits.
+%
+ \MakeColumn{1}{255}{\dimen@}{\NWins}{\LFins}{\SWins}%
+ \MakeColumn{2}{255}{\pageheight}{\NEins}{\RFins}{\SEins}%
+ \dimen@=\ht1 \ifdim\ht2>\ht1 \dimen@=\ht2 \fi % larger of two
+ \setbox1=\vbox to \dimen@{\unvbox1}% % reset to same size
+ \setbox2=\vbox to \dimen@{\unvbox2}% % reset to same size
+ \splitmaxdepth=\@saveSplitmax % restore \splitmaxdepth
+ \output={\@balancingerror}% % prepare for error
+ \@pagesofar} % put columns on page
+
+
+\def\@addsize#1#2{% add size of box/insert #2 to counter #1
+ \ifvoid#2\else\advance#1 by \skip#2\relax % unless void, add skip,
+ \advance#1 by \ht#2 \advance#1 by \dp#2\relax % and height and depth
+ \fi}
+
+
+% If the balanced columns fill the page then \output will be called
+% again, and this error message will be displayed.
+
+\newhelp\@balncErrormsg{%
+@balancecolumns: I couldn't figure out how to balance the^^M
+two columns. Maybe you can re-arange some text to make ^^M
+the job easier. Try typing i\string\vfill to see the page anyway.}
+
+\def\@balancingerror{% error, columns not balanced before page finished
+ \newlinechar=`\^^M % ^^M is line break
+ \errhelp=\@balncErrormsg % longer help message
+ \errmessage{Page cannot be balanced}% % error message
+ \@nepageout{\unvbox255}}% % do something anyway
+
+
+%--------------------------------------------------*
+% \@leftcolrule and \@rightcolrule put rules across left and right
+% columns for spanned equations
+
+\def\@leftcolrule{% Rule across bottom of left column
+ \vskip 2pt\nointerlineskip % some whitespace first
+ \hbox to \pagewidth{% % left column
+ \vbox to 6pt{\vfil \hrule width\colwidth height\rulewd}%
+ \hbox{\vrule height 6pt width\rulewd}\hfill}%
+ \smallskip\nobreak}
+
+\def\@rightcolrule{% rule across top of a right column after balancing
+ \vskip\baselineskip\nointerlineskip
+ \hbox to \pagewidth{\hfill % stretch across to right column
+ \hbox{\vrule height 6pt width\rulewd}%
+ \vbox to 6pt{\hrule width\colwidth height\rulewd \vfil}}%
+ \vskip 2pt}
+
+\def\@longequation{%
+ \enddoublecolumns % balance what we have
+ \@leftcolrule % rule below to separage
+ \def\endlongequation{\@endlongequation}} % enable
+
+\def\@endlongequation{%
+ \@rightcolrule % with the rule at top of right column
+ \doublecolumns} % then back to double column mode
+
+
+\def\longequation{\relax} % default for single column
+\def\endlongequation{\relax} % does nothing
+
+
+%>>> EOF TXSdcol.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSenvmt.tex b/Master/texmf-dist/tex/texsis/base/TXSenvmt.tex
new file mode 100644
index 00000000000..ad728154000
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSenvmt.tex
@@ -0,0 +1,687 @@
+%% file: TXSenvmt.tex - Special Text Environments - TeXsis version 2.18
+%% @(#) $Id: TXSenvmt.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%=======================================================================*
+%
+% These macros provide a variety of simple enviroments for arranging
+% text in special ways. They are listed here and described in more
+% detail below. Generally the syntax is \NAME... \endNAME.
+%
+% The following "flush environments" arrange text in special ways:
+%
+% \center Center each line.
+% \flushleft Make each line flush left.
+% \flushright Make each line flush right.
+% \raggedcenter Make each line as long as possible and then
+% center it.
+%
+% Use these in vertical mode. For the horizontal mode equivalants
+% are: \hcenter, \hflushleft, \hflushright
+%
+% The following are for making various sorts of lists:
+%
+% \itemize List of items, with a bullet in front of each.
+% Use \itm to begin each item.
+% \enumerate Makes a list of items, each of them numbered.
+% Use \itm to begin each item.
+% \description List of items and descriptions, with the form:
+% item1 text for item1, which may take
+% more than one line
+% item2 text for item2
+% ...
+% Use \itm{item1}, etc... (see below).
+%
+% The following display theorems and proofs in quasi-SIAM format
+% with automatic numbering:
+%
+% \theorem
+% \lemma
+% \definition
+% \proof
+%
+% The following are designed for typing computer code, TeX examples ,
+% and similar material:
+%
+% \Listing Prints text in \tt type, with \obeylines,
+% \obeyspaces, as appropriate for computer code
+% listings.
+% \ListCodeFile{filename} to list source code from a file.
+% \TeXquoteon Makes | a TeX quote: everything in | ... | is
+% printed verbatim in \tt type.
+% \TeXexample Prints a TeX example verbatim in \tt type, with |
+% being the escape character and |endTeXexample
+% ending the enviroment. Can be used for examples
+% continuing over more than one page.
+% \ttverbatim Makes all characters ordinary and begins a group
+% using \tt type.
+% \begintt Example macro taken from The TeXbook.
+% \beginlines Example macro taken from The TeXbook.
+%
+%
+% Source: adapted from TechRpt's TechEnv and the TeXbook
+%
+% This file is a part of TeXsis.
+% (C) copyright 1991, 1997 by Eric Myers and Frank Paige.
+%========================================================================*
+\message{Environments.}
+\catcode`@=11 % make @ a letter for now
+\chardef\other=12
+
+%==================================================*
+% CENTERING ENVIRONMENTS:
+% \center, \flushleft, \flushright, \raggedcenter
+% Note: these are all \obeylines environments
+
+\def\center{% begin centering environment
+ \flushenv % general setup
+ \advance\leftskip \z@ plus 1fil % add hfil glue on each
+ \advance\rightskip \z@ plus 1fil % side
+ \obeylines\@eatpar} % obey line ends
+
+\def\flushright{% begin flush right environment
+ \flushenv % general setup
+ \advance\leftskip \z@ plus 1fil % hfil on left
+ \obeylines\@eatpar} % obey line ends
+
+\def\flushleft{% begin flush left environment
+ \flushenv % general setup
+ \advance\rightskip \z@ plus 1fil % hfil on right
+ \obeylines\@eatpar} % obey line ends
+
+
+\def\flushenv{% common startup for all flush/center environments
+ \vskip \z@ % force vertical mode
+ \bgroup % begin grouping
+ \def\flushhmode{F}% % flag: not hmode
+ \parindent=\z@ \parfillskip=\z@} %
+
+\def\endcenter{\endflushenv}
+\def\endflushleft{\endflushenv}
+\def\endflushright{\endflushenv}
+
+% \@eatpar gets rid of any \par that follows. We have to use \futurelet
+% to avoid problems when what follows is a \def or somesuch.
+
+\def\@eatpar{\futurelet\next\@testpar}
+\def\@testpar{\ifx\next\par\let\@next=\@@eatpar\else\let\@next=\relax\fi\@next}
+\long\def\@@eatpar#1{\relax}
+
+%---------------------------------*
+% \raggedcenter centers ragged lines, e.g. for titles. Each line will
+% be as long as possible, centered. Line breaks in the manuscript file are
+% ignored.
+
+
+\def\raggedcenter{% center lines as long as they can be
+ \flushenv % do common stuff
+ \advance\leftskip\z@ plus4em % add stretch to sides
+ \advance\rightskip\z@ plus 4em % add stretch to sides
+ \spaceskip=.3333em \xspaceskip=.5em %
+ \pretolerance=9999 \tolerance=9999 %
+ \hyphenpenalty=9999 \exhyphenpenalty=9999 % no hyphens!
+ \@eatpar} %
+
+\def\endraggedcenter{\endflushenv} % ends like all flushenv's
+
+%---------------------------------*
+% \hcenter, \hflushleft, \hflushright are like the things above,
+% but are for use in horizontal mode. They put the results in a box of
+% size zero. This is no longer automatic in \center and its variations,
+% to avoid confusion.
+% Notes: \vtop makes the TOPS of the items line up; \vbox would make the
+% bottoms (actually, the baselines) line up.
+
+
+\def\hcenter{\hflushenv %
+ \advance\leftskip \z@ plus 1fil %
+ \advance\rightskip \z@ plus 1fil %
+ \obeylines\@eatpar} %
+
+\def\hflushright{\hflushenv %
+ \advance\leftskip \z@ plus 1fil %
+ \obeylines\@eatpar} %
+
+\def\hflushleft{\hflushenv %
+ \advance\rightskip \z@ plus 1fil %
+ \obeylines\@eatpar} %
+
+\def\hflushenv{% common startup for all hflush/hcenter environments:
+ \def\par{\endgraf\indent}% % for use in hmode
+ \hbox to \z@ \bgroup\hss\vtop % start a box of size zero
+ \flushenv\def\flushhmode{T}} %
+
+\def\endflushenv{% common end to all flush/center environments
+ \ifhmode\endgraf\fi % if hmode, end \par
+ \if T\flushhmode \egroup\hss\fi % close group and box, or
+ \egroup} % end the grouping
+
+\def\flushhmode{U}
+\def\endhcenter{\endflushenv}
+\def\endhflushleft{\endflushenv}
+\def\endhflushright{\endflushenv}
+
+%==================================================*
+% LIST ENVIRONMENTS:
+%
+% All 'list' environments are surrounded by a certain amount of skip.
+% These skips are: \EnvTopskip, \EnvBottomskip, \EnvLeftskip, \EnvRightskip
+% These are set here, but you may change them if you like.
+
+\newskip\EnvTopskip \EnvTopskip=\medskipamount % skip before
+\newskip\EnvBottomskip \EnvBottomskip=\medskipamount % skip after
+\newskip\EnvLeftskip \EnvLeftskip=2\parindent % left indent
+\newskip\EnvRightskip \EnvRightskip=\parindent % right margin in too
+\newskip\EnvDelt@skip \EnvDelt@skip=0pt % nested skip amount
+\newcount\@envDepth \@envDepth=\z@ % depth of environments
+
+
+% \beginEnv{<name>} does common processing for starting a
+% list environment. \endEnv{<name>} does common end procesing,
+% and checks the name to make sure that the environments balance.
+
+\def\beginEnv#1{% begin a ``list'' environment
+ \begingroup % environment is inside a group
+ \def\@envname{#1}% % save envmt name, to check at end
+ \ifvmode\def\@isVmode{T}% % remember existing V/H mode
+ \else\def\@isVmode{F}\vskip 0pt\fi % hmode: force vertical mode
+%
+ \ifnum\@envDepth=\@ne\parindent=\z@\fi % 1st envmt? no parindent
+ \advance\@envDepth by \@ne % increment level by one
+ \EnvDelt@skip=\baselineskip % \EnvDelt@skip is \baselineskip
+ \advance\EnvDelt@skip by-\normalbaselineskip % minus \normalbaselineskip
+ \@setenvmargins\EnvLeftskip\EnvRightskip % now adjust margins.
+ \setenvskip{\EnvTopskip}% % get appropriate topskip
+ \vskip\skip@\penalty-500 % and do it (good place to break)
+ }
+
+
+\def\endEnv#1{% end a ``list'' environment
+ \ifnum\@envDepth<1 % is there nothing open?
+ \emsg{> Tried to close ``#1'' environment, but no environment open!}%
+ \begingroup % \endgroup below would produce error
+ \else % No: there was an environment open
+ \def\test{#1}% % was right thing closed?
+ \ifx\test\@envname\else % check that the names match
+ \emsg{> Miss-matched environments!}%
+ \emsg{> Should be closing ``\@envname'' instead of ``\test''}%
+ \fi
+ \fi
+%
+ \vskip 0pt % force vmode, finish any paragraph
+ \setenvskip\EnvBottomskip % and skip a bottomskip which is
+ \vskip\skip@\penalty-500 % appropriate here (good breakpoint)
+ \xdef\@envtemp{\@isVmode}% % save \@isVmode for outside group
+ \endgroup % end grouping of environment
+ \if F\@envtemp\vskip-\parskip\par\noindent\fi % no indent if didn't start in vmode
+ }
+
+
+% \setenvskip chooses a skip amount based on the current \@envDepth,
+% and puts it into \skip@, which is a temporary skip register.
+
+\def\setenvskip#1{\skip@=#1 \divide\skip@ by \@envDepth}
+
+
+% \@setenvmargins{<left amount>}{<right amount>} adjusts the area of
+% the page to be used by changing \rightskip, \leftskip, and the display
+% sizes. Values given should be skips.
+
+\def\@setenvmargins#1#2{% set left and right margins
+ \advance \leftskip by #1 \advance \displaywidth by -#1 %
+ \advance \rightskip by #2 \advance \displaywidth by -#2 %
+ \advance \displayindent by #1} %
+
+
+%------------------------------*
+% \itemize
+%
+% \itemize puts a bullet (or whatever you define as \itemmark)
+% in front of each item. Use \itm to begin a new item.
+
+\def\itemize{\beginEnv{itemize}% itemized list of things
+ \let\itm=\itemizeitem % define \itm
+%% \if F\@isVmode
+ \vskip-\parskip
+%% \fi % if h-mode kill skip from first \itm
+ }
+
+\def\itemizeitem{% \itm for \itemize
+ \par\noindent % start new paragraph
+ \hbox to 0pt{\hss\itemmark\space}}% % put marker to left
+
+\def\enditemize{\endEnv{itemize}}% % terminate
+
+\def\itemmark{$\bullet$} % default marker for \itemize
+
+%------------------------------*
+% \enumerate
+%
+% \enumerate makes a list of items, each of them numbered. You can
+% nest \enumerate within \enumerate. Begin each item with \itm.
+% Note the extensive use of local registers (only one \enumcnt is allocated;
+% TeX takes care of which one is currently needed. \enumlead stores the
+% rest of the values only to print out item labels.) Note that \label
+% can be used to get the current value of an item label.
+% Usage:
+% \enumerate % to start a list
+% \itm <text> % for each numbered paragraph
+% ...
+% \endenumerate % at end the list
+%
+
+\newcount\enumDepth \enumDepth=\z@
+\newcount\enumcnt
+
+\def\enumerate{\beginEnv{enumerate}%
+ \global\advance\enumDepth by \@ne % start another level of nesting
+ \setenumlead % set the leader
+ \enumcnt=\z@ % reset counter to zero
+ \let\itm=\enumerateitem % define \itm
+ \if F\@isVmode\vskip-\parskip\fi % if h-mode kill skip from first \itm
+ }
+
+\def\enumerateitem{% \itm for \enumerate
+ \par\noindent
+ \advance\enumcnt by \@ne %
+ \edef\lab@l{\enumlead \enumcur}% % for using \label
+ \hbox to \z@{\hss \lab@l \enummark % number and punctuation
+ \hskip .5em\relax}% % and a skip
+ \ignorespaces} %
+
+\def\endenumerate{% %
+ \global\advance\enumDepth by -\@ne % pop out one level
+ \endEnv{enumerate}}% % end the environment
+
+%----------*
+% DIFFERENT STYLES OF EUMARATION: \enumpoints, \enumoutline,
+% \enumNumOutline, etc... Design your own!
+%
+% The basic idea: When \itm is invoked the item label is constructed
+% as ``\enumlead\enumcur\enummark'' where \enumlead is the leading
+% part of the label (which will be the same for all item in this level
+% of the list), \enumcur is the appropriately formated value of \enumcnt,
+% the item counter, and \enummark is the trailing punctuation (usually
+% a period, but could be a parenthesis).
+%
+% To define an enumeration style you must define \setnumlead, which
+% will in turn define \enumlead when a list is begun by \enumerate.
+% You must also define \enumcur to put out the appropriate item label.
+% Since lists can be contained within lists we use \enumDepth to keep track of
+% how deep we are in a sub-list.
+%
+% The styles \enumpoints, \enumoutline and \enumNumOutline should be
+% considered as useful examples. Be sure to call them BEFORE you say
+% \enumerate.
+
+
+% \enumpoints just numbers the items like so: "ii.jj.kk...."
+% Note the use of \edef in \setnumlead to get the CURRENT value
+% of \enumcur, whereas the value in the definition of \enumcur
+% is the value used later, when \itm is used.
+
+\def\enumPoints{% enumerate by numerical points
+ \def\setenumlead{\ifnum\enumDepth>1 % a list inside a list?
+ \edef\enumlead{\enumlead\enumcur.}% % yes: lead is previous label
+ \else\def\enumlead{}\fi}% % no: just number at first
+ \def\enumcur{\number\enumcnt}% %
+ }
+\def\enumpoints{\enumPoints} % backward compatability (2.13)
+
+
+% \enumOutline lists the items in an outline form, using
+% upper case roman numerals, upper case letters, lower case roman
+% numerals, lower case letters, arabic numbers, and finally bullets.
+% Note the use of \ifcase\enumDepth, and the macros \letterN and
+% \LetterN defined below.
+
+\def\enumOutline{% enumerate a list in outline form, Roman Caps. first
+ \def\setenumlead{\def\enumlead{}}% % no leading part of label
+ \def\enumcur{\ifcase\enumDepth % For given level choose...
+ \or\uppercase{\XA\romannumeral\number\enumcnt}% 1) UC Roman numeral
+ \or\LetterN{\the\enumcnt}% % 2) UC letter
+ \or\XA\romannumeral\number\enumcnt % 3) LC Roman numeral
+ \or\letterN{\the\enumcnt}% % 4) LC letter
+ \or{\the\enumcnt}% % 5) arabic number
+ \else $\bullet$\space\fi}% % or a bullet
+ }
+\def\enumoutline{\enumOutline} % backward compatability (2.13)
+
+
+% \enumNumOutline sets up an outline starting from arabic
+% numbers numbers rather than Roman caps.
+
+\def\enumNumOutline{% enumerate a list in outline form, numbers first
+ \def\setenumlead{\def\enumlead{}}% % no leading part of a label.
+ \def\enumcur{\ifcase\enumDepth % for a given level choose...
+ \or{\XA\number\enumcnt}% % 1) arabic number
+ \or\letterN{\the\enumcnt}% % 2) LC letter
+ \or{\XA\romannumeral\number\enumcnt}% % 3) LC roman numeral
+ \else $\bullet$\space\fi}% % or a bullet
+ }
+\def\enumnumoutline{\enumNumOutline} % backward compatability (2.13)
+
+
+% \LetterN{n} gives the nth letter in the uppercase alphabet
+% \letterN{n} gives the nth letter in the lowercase alphabet
+
+\def\LetterN#1{\count@=#1 \advance\count@ 64 \XA\char\count@}
+\def\letterN#1{\count@=#1 \advance\count@ 96 \XA\char\count@}
+
+
+% TeXsis Defaults:
+
+\def\enummark{.} % default punctuation
+\def\enumlead{} % start with nothing in label
+\enumpoints % default style
+
+%------------------------------*
+% \description gives a list of items labeled by text, not numbers.
+%
+% foo1 text, which may take
+% more than one line
+% foo2 more text
+%
+% Usage:
+%
+% \description{amount to indent as \hbox contents}
+% \itm{<name1>} text1
+% \itm{<name2>} text2
+% ...
+% \enddescription
+% where <name...> is the text to label the item. <name> may take more than
+% one line.
+% Typically, the argument to \description is the longest single line
+% <name>. You can also use \hskip if you want a particular distance.
+% NOTE that \parindent may be 0 inside an environment, so \hskip\parindent
+% probably won't do what you want.
+%
+% If the label text comes out wider than the indent space allowed
+% the text will be broken into several lines. Saying \singlelinetrue
+% will instead put the label text on a line by itself above the
+% item. \singlelinefalse is the default.
+
+\newbox\@desbox % used to determine how far to shift text
+\newbox\@desline % box for description line(s)
+\newdimen\@glodeswd % used to get \wd\@desbox inside a group
+\newcount\@deslines % used to count number of lines in description
+\newif\ifsingleline \singlelinefalse % default is to break long labels
+
+
+\def\description#1{\beginEnv{description}% ``description'' list environment
+ \setbox\@desbox=\hbox{#1}% % get template in a box
+ \@glodeswd=\wd\@desbox % get width of that box
+ \@setenvmargins{\@glodeswd}{0pt}% % indent left margin
+ \let\itm=\descriptionitem % define \itm
+ \if F\@isVmode\vskip-\parskip\fi % if h-mode kill \parskip from \itm
+ }% % end of \description
+
+
+\def\descriptionitem#1{% definition of \itm for \description
+ \goodbreak\noindent % end old item, start next
+ \setbox\@desline=\vtop\bgroup % get label text in a box
+ \hfuzz=100cm\hsize=\@glodeswd % suppress overfull box msg
+ \rightskip=\z@ \leftskip=\z@ % no margins in this box
+ \raggedright % ragged right margin in box
+ \noindent{#1}\par % text of the label
+ \global\@deslines=\prevgraf % get line count
+ \egroup % end of \setbox
+%
+ \ifsingleline % long labels on their own line?
+ \ifnum\@deslines>1 % Yes: are there several lines?
+ \@deslineitm{#1}% % Yes: put them on one line
+ \else % one line might ll be too long
+ \setbox\@desline=\hbox{#1}% % re-set in a box to get width
+ \ifdim \wd\@desline>\wd\@desbox % is it too wide?
+ \@deslineitm{#1}% % Yes: set it on lone line
+ \else\@desitm\fi % else dump the label
+ \fi %
+ \else % else \singlelinefalse
+ \@desitm % ...so just dump the label
+ \fi % end \ifsingleline
+ \ignorespaces}
+
+\def\@desitm{% print \description item
+ \noindent
+ \hbox to \z@{\hskip-\@glodeswd % go back for indent
+ \hbox to \@glodeswd{\vtop to \z@{\box\@desline\vss}% unbox it
+ \hss}\hss}} % some glue for a fit
+
+\def\@deslineitm#1{% \description item on a separate line
+ \hbox{\hskip-\@glodeswd {#1}\hss}% % Yes: label all on one line
+ \vskip-\parskip\nobreak\noindent % then begin entry on next line
+ }
+
+\def\enddescription{\ifhmode\par\fi % finish any existing \itm
+ \@setenvmargins{-\wd\@desbox}{0pt}% % doing \@setenvmargins
+ \endEnv{description}}
+
+%------------------------------*
+% \example is a simple way to just indent some text. It's like
+% the ``list'' environments but all it does is indent on the left
+% and the right and go to singlespacing. Since this is often useful for
+% block quotes, \blockquote is a synonym.
+
+
+\def\example{\beginEnv{example}%
+ \parskip=\z@ \parindent=\z@ % set \par indentation to zero
+ \baselineskip=\normalbaselineskip % singlespaced
+ } %
+
+\def\endexample{\endEnv{example}% % end environment
+ \noindent}% % undo par
+
+\let\blockquote=\example % synonym
+\let\endblockquote=\endexample % synonym
+
+%------------------------------*
+% \Listing is an environment for computer code listings. It's
+% set in \tt type, with \obeylines and \obeyspaces and no justification.
+% { and } are just characters, so to get grouping use \bgroup ... \egroup
+% Indentation is controled as in the ``list'' environments.
+
+\def\Listing{% environment for listing computer code verbatim in \tt
+ \beginEnv{Listing}% %
+ \vskip\EnvDelt@skip % do extra skip
+ \baselineskip=\normalbaselineskip % singlespaced
+ \parskip=\z@ \parindent=\z@ % set \par indentation to zero
+ \def\\##1{\char92##1}% % \ for macro names
+ \catcode`\{=\other \catcode`\}=\other % { and } just characters
+ \catcode`\(=\other \catcode`\)=\other % ( and ) just characters
+ \catcode`\"=\other \catcode`\|=\other % " and | just characters
+ \catcode`\%=\other \catcode`\&=\other % so % and & are characters
+ \catcode`\-=\other \catcode`\==\other % so - and = are characters
+ \catcode`\$=\other \catcode`\#=\other % so $ and # are characters
+ \catcode`\_=\other \catcode`\^=\other % so _ and ^ are characters
+ \catcode`\~=\other % ~ is not active tie!
+ \obeylines % obey line endings,
+ \tt\Listingtabs % spaces and tabs
+ \everyListing} % user customization
+
+\def\endListing{\endEnv{Listing}} % end \Listing
+
+% Use \everyListing to customize your \Listing.
+
+\def\everyListing{\relax}
+
+% Use \ListCodeFile{<filename>} to directly include a source file
+% in the document. Use this INSTEAD of \Listing, not after it.
+% Nothing in this file is ``active,'' so you cannot have TeX commands
+% in the file. Example: \ListCodeFile{hello.c}
+
+\def\ListCodeFile#1{% print the named file verbatim using \Listing
+ \Listing % invoke \Listing and read in file
+ \rightskip=\z@ plus 5cm % room to stretch off the side
+ \catcode`\\=\other % \ is not active!
+ \input #1\relax % read in source file
+ \endListing}
+
+{\catcode`\^^I=\active\catcode`\ =\active% no spaces in any of this!
+\gdef\Listingtabs{\catcode`\^^I=\active\let^^I\@listingtab%
+\catcode`\ =\active\let \@listingspace}%
+}%\global\let^^I\@listingtab}%
+
+\def\@listingspace{\hskip 0.5em\relax} % \tt space is 0.5em
+\def\@listingtab{\hskip 4em\relax} % eight spaces per tab
+
+%------------------------------*
+% \TeXexample is an environment for TeX examples. The only special
+% characters are <space>, which does the usual thing, and "|", which is the
+% escape character. To use a macro in this environment, begin the name with
+% "|" instead of "\". In particular, |char`|| gives a |. The enviroment is
+% ended with |endTeXexample, NOT \endTeXexample:
+%
+% \TeXexample
+% <TeX stuff>
+% |endTeXexample
+%
+% <TeX stuff> is printed in \tt type indented by \EnvLeftskip using
+% \obeylines and \obeyspaces and single spaced. If necessary, it will
+% be split across pages.
+
+\def\TeXexample{\beginEnv{TeXexample}% % TeX examples
+ \vskip\EnvDelt@skip % add some extra skip above
+ \parskip=\z@ \parindent=\z@ % set \par indentation to zero
+ \baselineskip=\normalbaselineskip % singlespaced
+ \def\par{\leavevmode\endgraf}% % \par also gives \leavevmode
+ \obeylines % respect line endings
+ \catcode`|=\z@ % make | the escape character
+ \ttverbatim % begin \tt type in a group
+ \@eatpar}% % eat initial \par
+
+\def\endTeXexample{% % end \TeXexample
+ \vskip 0pt %
+ \endgroup % end \ttverbatim
+ \endEnv{TeXexample}} % end the environment
+
+%------------------------------*
+% \ttverbatim makes everything except "|" into \other, then switches
+% into \tt type. "|" is made active by \TeXquoteon and is made the escape
+% character by \TeXexample and \begintt.
+
+\def\ttverbatim{\begingroup % keep this in a group
+ \catcode`\(=\other \catcode`\)=\other % make everything "\other"
+ \catcode`\"=\other \catcode`\[=\other
+ \catcode`\]=\other \catcode`\~=\other
+ \let\do=\uncatcode \dospecials
+ \obeyspaces\obeylines % obey line ends and spaces
+ \def\n{\vskip\baselineskip}% % |n gives a new line
+ \tt} % switch to typewriter type
+
+\def\uncatcode#1{\catcode`#1=\other} % make a character "\other"
+
+{\obeyspaces\gdef {\ }} % space gives "\ ", not \space
+
+%-----------------------------------*
+% \TeXquoteon makes "|" active and a TeX quote. Anything enclosed
+% in | ... | is printed verbatim in \tt type; ^^M's are ignored.
+% \TeXquoteoff restores the normal |.
+
+\def\TeXquoteon{\catcode`\|=\active} % turn on "TeX quotes"
+\let\TeXquoteson=\TeXquoteon % synonym
+\def\TeXquoteoff{\catcode`\|=\other} % turn off "TeX quotes"
+\let\TeXquotesoff=\TeXquoteoff % synonym
+
+% Note: to preserve comments when mtexsis is built use %% in \obeylines envmt.
+
+{\TeXquoteon\obeylines %% active "|" calls \ttverbatim
+ \gdef|{\ifmmode\vert\else %% | is \vert in math mode, but
+ \ttverbatim\spaceskip=\ttglue %% to use \tt type
+ \let^^M=\ \relax %% and to ignore ^^M
+ \let|=\endgroup\fi}% %% next | turns it off
+}
+
+% \ttvert gives a vertical bar in \tt type. Use anywhere.
+\def\ttvert{\hbox{\tt\char`\|}}
+
+%-----------------------------------*
+% \begintt is taken without modification from The TeXbook, p. 421.
+% Like \TeXexample, it prints a TeX example in \tt type, but it puts the
+% example in a \vbox so that it cannot be split; it is ended by \endtt,
+% not |endtt:
+%
+% \begintt
+% <TeX stuff>
+% \endtt
+
+\outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=0pt
+ \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$$}%
+}
+
+% \beginlines is also taken without modification from The TeXbook,
+% p. 421 and is also used for TeX examples. Each line of the example
+% must be enclosed in TeX quotes, | ... |. Spacing can be inserted using
+% \smallbreak and similar commands. The syntax is
+% \TeXquoteon
+% \beginlines
+% | <TeX stuff> |
+% ...
+% \endlines
+
+\def\beginlines{\par\begingroup\nobreak\medskip\parindent=0pt
+ \hrule\kern1pt\nobreak \obeylines \everypar{\strut}}
+
+\def\endlines{\kern1pt\hrule\endgroup\medbreak\noindent}
+
+%==================================================*
+% \theorem, \lemma, \definition, \proof, etc..
+%
+% Quasi-SIAM format. Theorem and Lemma have slanted typeface statements;
+% Definition does not. Since Theorem and Lemma (and Corollary...) have
+% a similar structure, we define a general \beginproclaim and \endproclaim
+% (a'la PLAIN).
+%
+% \beginproclaim{title}{countername}{font for text}{prefix}{tag}
+% does the general formatting, where the countername (excludes the \@
+% beginning the name) will be advanced.
+
+\def\beginproclaim#1#2#3#4#5{\medbreak\vskip-\parskip % space down
+ \global\XA\advance\csname #2\endcsname by \@ne % advance counter
+ \edef\lab@l{\@chaptID\@sectID % get header plus
+ \number\csname #2\endcsname}% % counter number
+ \tag{#4#5}{\lab@l}% % tag it
+ \noindent{\bf #1 \lab@l.\space}% % print number
+ \begingroup #3} % begin group
+
+\def\endproclaim{%
+ \par\endgroup\ifdim\lastskip<\medskipamount % end group and
+ \removelastskip\penalty55\medskip\fi} % fix spacing
+
+% \theorem{tag} defines a theorem. \Theorem{tag} refers to it in the
+% text as Theorem~number.
+\newcount\theoremnum \theoremnum=\z@
+\def\theorem#1{\beginproclaim{Theorem}{theoremnum}{\sl}{Thm.}{#1}}
+\let\endtheorem=\endproclaim
+\def\Theorem#1{Theorem~\use{Thm.#1}}
+
+% The same for lemma:
+\newcount\lemmanum \lemmanum=\z@
+\def\lemma#1{\beginproclaim{Lemma}{lemmanum}{\sl}{Lem.}{#1}}
+\let\endlemma=\endproclaim
+\def\Lemma#1{Lemma~\use{Lem.#1}}
+
+% The same for corollary:
+\newcount\corollarynum \corollarynum=\z@
+\def\corollary#1{\beginproclaim{Corollary}{corollarynum}{\sl}{Cor.}{#1}}
+\let\endcorollary=\endproclaim
+\def\Corollary#1{Corollary~\use{Cor.#1}}
+
+% Definitions are little special; their text is not slanted.
+\newcount\definitionnum \definitionnum=\z@ % Definition
+\def\definition#1{\beginproclaim{Definition}{definitionnum}{\rm}{Def.}{#1}}
+\let\enddefinition=\endproclaim
+\def\Definition#1{Definition~\use{Def.#1}}
+
+% Proofs are even more special.
+\def\proof{\medbreak\vskip-\parskip\noindent{\it Proof. }}
+
+\def\blackslug{% % QED "black box"
+ \setbox0\hbox{(}% % ( gives size
+ \vrule width.5em height\ht0 depth\dp0}% % use ) for size
+\def\QED{\blackslug} % to end proof
+
+\def\endproof{\quad\blackslug\par\medskip}
+
+%>>> EOF TXSenvmt.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSeqns.tex b/Master/texmf-dist/tex/texsis/base/TXSeqns.tex
new file mode 100644
index 00000000000..9319b534655
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSeqns.tex
@@ -0,0 +1,259 @@
+%% file: TXSeqns.tex - Equation Numbering - TeXsis version 2.18
+%% @(#) $Id: TXSeqns.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+%
+% These macros use \tag from TXStags to number equations automatically,
+% including chapter and section numbers if \showchapIDtrue and
+% \showsectIDtrue are used. To obtain automatic equation numbers in
+% ordinary displayed equations, use \EQN in place of \eqno:
+% $$
+% <math mode material> \EQN <tag>
+% $$
+% The <tag> can include almost anything, including a number. A ; is used
+% for multi-part equations, with the equation number only being
+% incremented for <tag>;a. For example,
+% $$ <first part> \EQN <tag>;a $$
+% ...
+% $$ <second part> \EQN <tag>;b $$
+% This usage requires that <tag>;<letter> NOT be surrounded by {}; \EQN
+% takes as its argument everything up to the $$.
+%
+% To construct multi-part equations with \EQN, use \EQNalign and
+% \EQNdisplaylines in place of the \eqalign and \displaylines of plain
+% TeX. For equations aligned at the & sign, use
+% $$
+% \EQNalign{
+% <eqn 1 left> & <eqn 1 right> \EQN <tag1> \cr
+% <eqn 2 left> & <eqn 2 right> \EQN <tag2> \cr
+% ...}
+% $$
+% For centered equations with less space than between separate equations,
+% use instead
+% $$
+% \EQNdisplaylines{
+% <eqn 1 > \EQN <tag1> \cr
+% <eqn 2 > \EQN <tag2> \cr
+% ...}
+% $$
+% The \EQN can be omitted on any of the lines, or the ; construction can be
+% used for multi-part numbers. (Note that these macros actually redefine
+% \EQN to be & inside of the \halign and typeset the equation number in the
+% same way as does \eqalignno in plain TeX.)
+%
+% Several macros are provided to use a tag to refer to a previous
+% equation:
+% \Eq{<tag>} ==> Eq.~(<number>)
+% \Eqs{<tag>} ==> Eqs.~(<number>)
+% \Ep{<tag>} ==> (<number>)
+% Compound constructions are possible, e.g.
+% \Eqs{<tag1>}-\Ep{<tag2>} ==> Eqs.~(<number1>)-(<number2>)
+%
+% Note: there may be difficulties with using parentheses in labels
+% if \onparens is set.
+%
+% This file is a part of TeXsis.
+% (C) Copyright 1986, 1997 by Eric Myers and Frank E. Paige
+%======================================================================*
+\message{Equation numbering.}
+
+% Counters and such:
+
+\newcount\eqnum \eqnum=\z@ % equation number in section
+\def\@chaptID{} \def\@sectID{} % start with these null
+
+% Equation Label Tracing: \eqnotracetrue allows you to trace equation
+% numbers by internal label when you print a rough draft of the document.
+% Both the external sequential equation number and the internal label are
+% printed, one over the other.
+
+\newif\ifeqnotrace \eqnotracefalse % start with it off
+
+%----------------------------------------------------------------------*
+% \EQN <label> $$ gets everything up to the "$$" as the equation
+% label and passes it to \EQNOparse for processing. Then it does the
+% final "$$". \@EQN does the work.
+
+\def\EQN{% turns off special characters and calls \@EQN
+ \begingroup % what follows is local
+ \quoteoff\offparens % make sure ",(, ) not active
+ \@EQN} % go get label
+
+\def\@EQN#1$${% gets everything up to $$ and parses as the label
+ \endgroup % end group from \EQN
+ \if ?#1? \EQNOparse *;;\endlist % if no label, tag with "*"
+ \else \EQNOparse#1;;\endlist\fi % parse the label
+ $$} % then end equation with $$
+
+% \EQNOparse <label>;;\endlist parses <text> as an equation number
+% label. It separates out letters, if present. (eg. label;a for equation a,
+% but ";" does not appear in output.) It tags the label and puts the equation
+% number in the display by calling \@EQNOdisplay.
+
+\def\EQNOparse#1;#2;#3\endlist{% parse equation label, look for ``;''
+ \if ?#3?\relax % if #3 is null, no ";" present
+ \global\advance\eqnum by\@ne % so advance count
+ \edef\tnum{\@chaptID\@sectID\the\eqnum}% % construct eqn number
+ \Eqtag{#1}{\tnum}% % tag the eqn number
+ \@EQNOdisplay{#1}% % display equation number
+ \else\stripblanks #2\endlist % remove any blanks
+ \edef\p@rt{\tok}% % and save in \p@rt
+ \if a\p@rt\relax % if ";" present is it ";a"?
+ \global\advance\eqnum by\@ne\fi % yes: advance counter anyway
+ \edef\tnum{\@chaptID\@sectID\the\eqnum}% % construct eqn number
+ \Eqtag{#1}{\tnum}% % and tag equation #nn
+ \edef\tnum{\@chaptID\@sectID\the\eqnum\p@rt}% also make eqn # w/ letter
+ \Eqtag{#1;\p@rt}{\tnum}% % and tag #nn;x
+ \@EQNOdisplay{#1;#2}% % display equation number
+ \fi %
+ \global\let\?=\tnum % \? is last eqn # (ala PHYZZX)
+ \relax}% % end of definition
+
+% \Eqtag#1#2 is like \tag for the equation number, (in future, have it
+% not write to the .aux file if the label begins with "*").
+
+\def\Eqtag#1#2{\tag{Eq.#1}{#2}}
+
+
+% \@EQNOdisplay{<label>} writes the equation number, which is in \tnum.
+% If \eqnotracetrue then we also put the label in the margin, in \tt.
+
+\def\@EQNOdisplay#1{% display equation number besides equation
+ \@eqno % begin eqn number
+ \ifeqnotrace % tracing labels? then...
+ \rlap{\phantom{(\tnum)}% % skip over number to margin
+ \quad{\tenpoint\tt["#1"]}}\fi % put ["label"] in margin
+ \linkname{Eq.#1}{(\tnum)}% % and the equation number
+ }
+
+
+\let\@eqno=\eqno % usual interpretation
+
+\def\endlist{\endlist} % just so it has a def
+
+%----------------------------------------------------------------------*
+% Reference equations in the text. The \linkto makes these HyperTeXt
+% links if \htmltrue is set.
+
+\def\Eq#1{\linkto{Eq.#1}{Eq.~($\use{Eq.#1}$)}} % \Eq prints "Eq. (nn)"
+\def\Eqs#1{\linkto{Eq.#1}{Eqs.~($\use{Eq.#1}$)}}% \Eqs prints "Eqs. (nn)"
+\def\Ep#1{\linkto{Eq.#1}{($\use{Eq.#1}$)}} % \Ep prints just "(nn)"
+
+%----------------------------------------------------------------------*
+% \EQNdisplaylines is just like \displaylines, as described in
+% The TeXbook, except that you can also use \EQN for equation numbers.
+% syntax: "\EQNdisplaylines{... <equation> \EQN <label> \cr ...ditto...\cr}"
+
+\def\EQNdisplaylines#1{% % make \EQN re-\def local
+ \@EQNcr % change \def of \EQN to get label
+ \displ@y % reduce interline spacing (from Plain)
+ \halign{% % alignment
+ \hbox to\displaywidth{% % full width
+ $\@lign\hfil\displaystyle##\hfil$}% centered displaystyle
+ &\llap{$\@lign\@@EQN{##}$}\crcr % then eqn number template
+ #1\crcr}% % now apply template to argument
+ \@EQNuncr} % put \EQN back to normal
+
+
+% \EQNalign is just like \eqalign except that you can use \EQN to get
+% equation numbers. Just put ...\EQN <label> \cr on a line you want to get
+% a label.
+
+\long\def\EQNalign#1{% replacement for \eqalign using \EQN
+ \@EQNcr % re-def \EQN to see label before \cr
+ \displ@y % reduce interline spacing
+ \tabskip=\centering % leftskip for LHS
+ \halign to\displaywidth{% % alignment
+ \hfil$\relax\displaystyle{##}$% % template for LHS
+ \tabskip=0pt % no skip between LHS and RHS
+ &$\relax\displaystyle{{}##}$\hfil % template for RHS
+ \tabskip=\centering % rightskip for RHS
+ &\llap{$\relax\@@EQN{##}$}% % template for eqn number, parses label
+ \tabskip=0pt\crcr % no skip at end of eqn number
+ #1\crcr}% % now apply template to argument
+ }
+
+
+% \@@EQN parses and displays the equation number using \EQNOparse.
+% Here \@eqno is disabled in \@EQNOdisplay by \@EQNcr.
+
+\def\@@EQN#1{\if ?#1? \EQNOparse *;;\endlist % if empty, label *
+ \else \EQNOparse#1;;\endlist\fi} % otherwise label with #1
+
+
+% \@EQNcr changes definition of \EQN so it is an alignment tab.
+% Everything up to the \cr is then passed to \EQNOparse by the \@@EQN in
+% the template. Also changes \@eqno to \relax for \@EQNOdisplay.
+% \@EQNuncr changes everything back to normal.
+
+\def\@EQNcr{% changes definition of \EQN to & for aligned equations
+ \let\EQN=& % \EQN is alignment tab
+ \let\@eqno=\relax} % don't do \eqno in \EQNalign
+
+\def\@EQNuncr{% changes definition of \EQN back to normal
+ \let\EQN=\@EQN % \EQN is as usual
+ \let\@eqno=\eqno} % make \@eqno be \eqno
+
+
+% \EQNdoublealign makes a double equation alignment, i.e. three
+% columns. \EQN works as usual.
+
+\def\EQNdoublealign#1{% % make re-def of \EQN local
+ \@EQNcr % re-def \EQN to see label before \cr
+ \displ@y % reduce interline spacing
+ \tabskip=\centering % leftskip for LHS
+ \halign to\displaywidth{% %
+ \hfil$\relax\displaystyle{##}$% % template for LHS
+ \tabskip=0pt % no skip between LHS and middle
+ &$\relax\displaystyle{{}##}$\hfil% % template for middle
+ \tabskip=0pt % no skip between middle and RHS
+ &$\relax\displaystyle{{}##}$\hfil% % template for RHS
+ \tabskip=\centering % rightskip for RHS
+ &\llap{$\relax\@@EQN{##}$}% % eqn number template parses label
+ \tabskip=0pt\crcr % no skip at end of eqn number
+ #1\crcr}% % now apply template to argument
+ \@EQNuncr}% % put \EQN back to normal
+
+%----------------------------------------------------------------------*
+% Alternate def of \displaylines lets you put in equation numbers
+% just like \eqalignno (or use \EQNdisplaylines in eqns.tex).
+%
+%%\def\displaylines#1{%
+%% \displ@y % reduce interline spacing
+%% \halign{\hbox to \displaywidth{$\hfil\displaystyle##\hfil$}%
+%% &\llap{$##$}\crcr % then eqn number
+%% #1\crcr}} % now apply template
+
+
+%----------------------------------------------------------------------*
+% \eqn<label> $$ is like \EQN except that it uses the PHYZZX
+% protocols. It defines the control sequence \"label" to be the equation
+% number.
+
+\def\eqn#1$${\edef\tok\string#1 % expand cs name to letters
+ \xdef#1{\NX\use{Eq.\tok}}% % make cs refer to this eqn number
+ \EQNOparse \tok;;\endlist $$} % now process eqn number as usual
+
+
+%----------------------------------------------------------------------*
+% \eqnmark puts a marker at the left edge of a displayed equation to
+% show that it's important. This is better than putting a box around
+% the equation. Change \eqnmarker to be whatever symbol you want.
+% Note that this works with \eqno and \EQN and \eqalign{ }\eqno or
+% \EQN, but not \eqalignno oe \EQNalign.
+
+
+\def\eqnmarker{\triangleright} % change to whatever mark you want
+
+\def\eqnmark{\quoteoff\offparens\@eqnmark}
+\def\@eqnmark#1$${\@@eqnmark#1\eqno\eqno\endlist}
+\def\@@eqnmark#1\eqno#2\eqno#3\endlist{\def\EQN{\relax}%
+ \if ?#3? \@EQNmark#1\EQN\EQN\endlist %
+ \else\displaylines{\hbox to 0pt{$\eqnmarker$\hss}\hfill{#1}\hfill %
+ \hbox to 0pt{\hss$#2$}}\fi$$}
+\def\@EQNmark#1\EQN#2\EQN#3\endlist{%
+ \if ?#3?\displaylines{\hbox to 0pt{$\eqnmarker$\hss}\hfill{#1}\hfill}%
+ \else \let\@eqno=\relax %
+ \EQNdisplaylines{\hbox to 0pt{$\eqnmarker$\hss}\hfill{#1}\hfill %
+ \hbox to 0pt{\hss$\EQNOparse#2;;\endlist$}}\fi}
+
+%>>> EOF TXSeqns.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSfigs.tex b/Master/texmf-dist/tex/texsis/base/TXSfigs.tex
new file mode 100644
index 00000000000..30b42f37db7
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSfigs.tex
@@ -0,0 +1,520 @@
+%% file: TXSfigs.tex - Figures and Tables - TeXsis version 2.18
+%% @(#) $Id: TXSfigs.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+%
+% These macros handles figures and tables with automatic
+% numbering and tag referencing. Figures and tables can printed where
+% they are defined, or saved until the end of the document. For long
+% documents you can make a list of figures or list of tables, much like
+% a table of contents. For journal submissions you can print a separate
+% list of figure or table captions.
+%
+% For the macros for ruled tables see the file TXSruled.tex
+%
+% Dependencies:
+% TXSmacs.tex for \unexpandedwrite, \offparens, \runtime, \seeCR
+% TXSinit.tex for \bottominsert, \heavyinsert, \@FileInit
+% TXStags.tex for \LabelParse
+%
+% This file is a part of TeXsis.
+% (C) copyright 1991, 1995 by Eric Myers and Frank Paige.
+%======================================================================*
+\message{Figures and Tables.}
+\catcode`\@=11 % let's use @ as a letter here
+\let\NX=\noexpand\let\XA=\expandafter % handy abbreviations
+\offparens % make sure [ ] not active!
+
+% Counters, flags and I/O for table number, figure number, etc...
+
+\newcount\tabnum \tabnum=\z@ % table number
+\newcount\fignum \fignum=\z@ % figure number
+
+\newif\ifRomanTables \RomanTablesfalse % Roman table numbers?
+\newif\ifCaptionList \CaptionListfalse % save list of captions?
+\newif\ifFigsLast \FigsLastfalse % save figures until end?
+\newif\ifTabsLast \TabsLastfalse % save tables until end?
+\def\FiguresLast{\FigsLasttrue}\def\FiguresNow{\FigsLastfalse}
+\def\TablesLast{\TabsLasttrue}\def\TablesNow{\TabsLastfalse}
+
+% Output streams for saving figures, tables, figure lists, table lists,
+% or caption lists
+
+\newwrite\fgout \newwrite\tbout
+\newwrite\figlist \newwrite\tablelist \newwrite\caplist
+
+%======================================================================*
+% FIGURES.
+% The following macros insert figures and define tags for them for
+% future references:
+% \figure{<label>} Insert figure at top of page, labeled by <label>.
+% \midfigure{<label>} Figure at current position, or top of next page
+% \topfigure{<label>} Figure at top of page, same as \figure.
+% \fullfigure{<label>} Figure on a separate page.
+% \bottomfigure{<label>} Figure at bottom of the page
+% \heavyfigure{<label>} Figure at current position, or bottom of next page
+% \endfigure Ends any figure
+% \figuresize <dimen> Reserves vertical space of size <dimen> for figure.
+
+\long\def\figure{\@figure\topinsert}
+\long\def\topfigure{\@figure\topinsert}% just synonym for \figure
+\long\def\midfigure{\@figure\midinsert}
+\long\def\fullfigure{\@figure\pageinsert}
+\long\def\bottomfigure{\@figure\bottominsert}
+\long\def\heavyfigure{\@figure\heavyinsert}
+\long\def\widefigure{\@figure\widetopinsert}
+\long\def\widetopfigure{\@figure\widetopinsert}
+\long\def\widefullfigure{\@figure\widepageinsert}
+
+\def\FigureName{Figure}%
+\def\TableName{Table}%
+
+
+% \@figure is the generic figure making macro. If \FigsLast is
+% set it writes the figure material out to a file to be read
+% in later. Otherwise it puts the figure material into an \insert
+% given by #1. #2 is the label which follows \figure
+
+\def\@figure#1#2{% generic routine to make and label a figure
+ \vskip 0pt % force vertial mode
+ \begingroup % hide our calculations
+ \def\CaptionName{\FigureName}% % type of insert is ``Figure''
+ \def\@prefix{Fg.}% % prefix for tagging labels
+ \let\@count=\fignum % counter is \fignum
+ \let\@FigInsert=#1\relax % what kind of insert?
+ \def\@arg{#2}\ifx\@arg\empty\def\@ID{}% % if no label \@ID is null
+ \else\LabelParse #2;;\endlist\fi % else parse label into \@ID
+ \ifFigsLast % Save Figures til end?
+ \emsg{\CaptionName\space\@ID. {#2} [storing in \jobname.fg]}% .log it
+ \@fgwrite{\@comment> \CaptionName\space\@ID.\space{#2}}% write fig number
+ \@fgwrite{\string\@FigureItem{\CaptionName}{\@ID}{\NX#1}}% to figure file
+ \seeCR\let\@next=\@copyfig % go copy figure text to file
+ \else % save figure in .fg file
+ \emsg{\CaptionName\ \@ID.\ {#2}}% % announce in .log
+ \let\endfigure=\@endfigure % how to quit
+ \setbox\@capbox\vbox to 0pt{}% % clears caption in \@capbox
+ \def\@whereCap{N}% % no caption (yet)
+ \let\@next=\@findcap % look for \caption or \Caption
+ \ifx\@FigInsert\midinsert\goodbreak\fi % help \midinsert
+ \@FigInsert % start figure insert
+ \fi \@next}
+
+% \@endfigure ends a figure insertion made by \figure, \table, etc
+
+\def\@endfigure{\relax
+ \if B\@whereCap\relax % if bottom caption then...
+ \vskip\normalbaselineskip % skip down one line
+ \centerline{\box\@capbox}% % for caption
+ \fi
+ \endinsert \endgroup} % end the insert & group
+
+\def\endfigure{\emsg{> \string\endfigure before \string\figure!}}
+
+\def\figuresize#1{\vglue #1}% reserve space for a figure
+
+
+% FIGURES AT THE END OF THE DOCUMENT: saying \FiguresLast saves all
+% figures up until the end of the document, where you say \PrintFigures
+% to print them out. If you say \FiguresNow (the default) the the
+% figures are inserted as they are defined, and \PrintFigures has no
+% effect.
+
+\def\@copyfig#1#2\endfigure{\endgroup % copy figure definition to file
+ \ifx#1\par\@fgNXwrite{#2\@endfigure}\else\@fgNXwrite{#1#2\@endfigure}\fi}
+
+% \@fgwrite writes to the .fg file. The argument IS expanded.
+% \@fgNXwrite writes to the .fg file without expanding.
+
+\def\@FGinit{\@FileInit\fgout=\jobname.fg[Figures]\gdef\@FGinit{\relax}}
+\def\@fgwrite#1{\@FGinit\immediate\write\fgout{#1}}
+\long\def\@fgNXwrite#1{\@FGinit\unexpandedwrite\fgout{#1}}
+
+% \PrintFigures closes the figure file and reads it in, to put all of the
+% figures at the end of the document. If \FigsLastfalse then nothing happens.
+
+\def\PrintFigures{\ifFigsLast\@PrintFigures\fi}
+
+\def\@PrintFigures{% Prints the figures at the end of the document
+ \@fgwrite{\@comment>>> EOF \jobname.fg <<<}% % and EOF marker comment
+ \immediate\closeout\fgout % then close the .ref file
+ \begingroup % now read the .fg file
+ \FigsLastfalse % avoid infinte recursion
+ \vbox to 0pt{\hbox to 0pt{\ \hss}\vss}% % anchor top if needed
+ \offparens % make sure ( and ) not active
+ \catcode`@=11 % make @ a letter
+ \emsg{[Getting figures from file \jobname.fg]}%
+ \Input\jobname.fg \relax % read text from .ref file
+ \endgroup} % close group
+
+
+% \@FigureItem creates a figure which has been stored already
+% in the figure or table file. #1 is the \CaptionName, #2 is the
+% figure or table number, and #3 is the type of \insert
+
+\def\@FigureItem#1#2#3{% creates a figure already stored in \jobname.fg
+ \begingroup % same as in \@figure
+ #3\relax % do the insert
+ \def\@ID{#2}% % get figure number
+ \def\CaptionName{#1}% % type of insert is ``Figure''
+ \setbox\@capbox\vbox to 0pt{}\def\@whereCap{N}% clear caption
+ \@findcap} % check for \caption
+
+%======================================================================*
+% TABLES.
+% These are similar to the figure macros above, with small
+% additions, such as allowing tables to be numbered by roman numerals.
+
+\long\def\table{\@table\topinsert}
+\long\def\toptable{\@table\topinsert} % synonym, just in case
+\long\def\midtable{\@table\midinsert}
+\long\def\fulltable{\@table\pageinsert}
+\long\def\bottomtable{\@table\bottominsert}
+\long\def\heavytable{\@table\heavyinsert}
+\long\def\widetable{\@table\widetopinsert}
+\long\def\widetoptable{\@table\widetopinsert}
+\long\def\widefulltable{\@table\widepageinsert}
+
+% \@table is the generic table making macro. It also calls \@findcap,
+% which looks to see if a \Caption comes first and acts accordingly.
+
+\def\@table#1#2{% generic processing of table
+ \vskip 0pt % force vertial mode and anchor
+ \begingroup %
+ \def\CaptionName{\TableName}% % type of insert is ``Table''
+ \def\@prefix{Tb.}% % prefix for tagging labels
+ \let\@count=\tabnum % counter is \fignum
+ \let\@FigInsert=#1\relax % what kind of insert?
+ \def\@arg{#2}\ifx\@arg\empty\def\@ID{}% % if no label \@ID is null
+ \else\ifRomanTables % if Roman numeral tables
+ \global\advance\@count by\@ne % advance count
+ \edef\@ID{\uppercase\expandafter % define \@ID as uppercase
+ {\romannumeral\the\@count}}% % Roman numerals
+ \tag{\@prefix#2}{\@ID}% % and tag it
+ \else
+ \LabelParse #2;;\endlist\fi % else parse label --> \@ID
+ \fi
+ \ifTabsLast % Save Tables til end?
+ \emsg{\CaptionName\space\@ID. {#2} [storing in \jobname.tb]}% .log it
+ \@tbwrite{\@comment> \CaptionName\space\@ID.\space{#2}}% write table number
+ \@tbwrite{\string\@FigureItem{\CaptionName}{\@ID}{\NX#1}}% to table file
+ \seeCR\let\@next=\@copytab % go copy figure text to file
+ \else % save figure in .fg file
+ \emsg{\CaptionName\ \@ID.\ {#2}}% % announce in .log
+ \let\endtable=\@endfigure % how to quit
+ \setbox\@capbox\vbox to 0pt{}% % clears caption in \@capbox
+ \def\@whereCap{N}% % no caption (yet)
+ \let\@next=\@findcap % look for \caption or \Caption
+ \ifx\@FigInsert\midinsert\goodbreak\fi % help \midinsert
+ \@FigInsert % start table insertion
+ \fi \@next}
+
+\def\endtable{\emsg{> \string\endtable before \string\table!}}
+
+\def\@copytab#1#2\endtable{\endgroup % copy table definition to file
+ \ifx#1\par\@tbNXwrite{#2\@endfigure}\else\@tbNXwrite{#1#2\@endfigure}\fi}
+
+% \@tbwrite writes to the .tb file. The argument IS expanded
+% \@tbNXwrite writes to the .tb file without expanding
+
+\def\@TBinit{\@FileInit\tbout=\jobname.tb[Tables]\gdef\@TBinit{\relax}}
+\def\@tbwrite#1{\@TBinit\immediate\write\tbout{#1}}
+\long\def\@tbNXwrite#1{\@TBinit\unexpandedwrite\tbout{#1}}
+
+
+% \PrintTables closes the table file and reads it in, to put all of the
+% tables at the end of the document. If \TabsLastfalse then nothing happens.
+
+\def\PrintTables{\ifTabsLast\@PrintTables\fi}
+
+\def\@PrintTables{% Prints the tables at the end of the document
+ \@tbwrite{\@comment>>> EOF \jobname.tb <<<}% % and EOF marker comment
+ \immediate\closeout\tbout % then close the .ref file
+ \begingroup % now read the .tb file
+ \TabsLastfalse % avoid possible recursion
+ \catcode`@=11 % make @ a letter, in case
+ \offparens % make sure ( and ) not active
+ \emsg{[Getting tables from file \jobname.tb]}%
+ \Input\jobname.tb \relax % read text from .ref file
+ \endgroup} % close group
+
+%======================================================================*
+% CAPTIONS.
+% A caption is specified by \Caption ...\endCaption, or by
+% \caption{<text>}. If \caption or \Caption is the first token after
+% \figure or \table then the caption appears at the top; otherwise it
+% appears at the bottom. Additional spacing can be added with any legal
+% \vskip.
+
+\newbox\@capbox % box to hold caption text
+\newcount\@caplines % number of lines in caption
+\def\CaptionName{} % default Caption Name
+\def\@ID{} % default \@ID is null
+\def\captionspacing{\normalbaselines} % singlespacing by default
+\def\@inCaption{F} % flag whether in caption or not
+
+
+\long\def\caption#1{% create a caption for a figure or table
+ \def\lab@l{\@ID}% % save \@ID for \label
+ \global\setbox\@capbox=\vbox\bgroup % start box for caption
+ \def\@inCaption{T}% % flag we are in caption
+ \captionspacing\seeCR % adjust baseline skip, disable ^^M
+ \dimen@=20\parindent % if column is wide then
+ \ifdim\colwidth>\dimen@\narrower\narrower\fi% use \narrower caption
+ \noindent{\bf \linkname{\@TagName}{\CaptionName~\@ID}:\space}%
+ #1\relax % caption text
+ \vskip 0pt % end paragraph
+ \global\@caplines=\prevgraf % get number of lines
+ \egroup % now caption is in \vbox
+ \ifnum\@caplines=\@ne % if only one line then
+ \global\setbox\@capbox=\vbox{\noindent\seeCR % reset caption box
+ \hfil{\bf \linkname{\@TagName}{\CaptionName~\@ID}:\space}%
+ #1\hfil}\fi % with centering glue
+ \if N\@whereCap\def\@whereCap{B}\fi % not top, so bottom
+ \if T\@whereCap % if top caption then
+ \centerline{\box\@capbox}% % it needs some space
+ \vskip\baselineskip\medskip % under the caption
+ \fi} %
+
+
+% \Caption creates a caption which can be saved in the list of
+% captions (if \CaptionListtrue is selected).
+
+\def\Caption{\begingroup\seeCR\@Caption}% line-ends visible, then...
+
+\long\def\@Caption#1\endCaption{\endgroup % create the caption
+ \ifCaptionList % save to caption list, if asked
+%% \def\@arg{Figure}\ifx\CaptionName\@arg\let\caplist=\figlist\fi
+%% \def\@arg{Table}\ifx\CaptionName\@arg\let\caplist=\tablelist\fi
+ \incaplist{#1}\fi
+ \caption{#1}} % in any case make the caption
+
+\def\endCaption{\emsg{> \string\endCaption\ called before \string\Caption.}}
+
+
+% \@findcap looks at the first token in the table body to see if
+% it is a \Caption, and sets the flag accordingly
+
+\long\def\@findcap#1{% % look ahead for \caption first
+ \ifx #1\Caption \def\@whereCap{T}\fi % caption at T(op)
+ \ifx #1\caption \def\@whereCap{T}\fi % caption at T(op)
+ #1}% % put lookahead token back in list
+
+\def\@whereCap{N} % no caption yet
+
+
+% \ListFigureCaptions and \ListTableCaptions use \@ListCaps (below)
+% to create a list of figure and table captions, from \infiglist
+% or \intablelist, without a page number.
+% \ListCaptions lists all the captions from \Caption.
+
+\def\ListCaptions{\@ListCaps\caplist=\jobname.cap[List of Captions]
+ {\let\FIGLitem=\CAPLitem}}
+
+\def\ListFigureCaptions{%
+ \@ListCaps\figlist=\jobname.fgl[List of Figure Captions]
+ {\let\FIGLitem=\CAPLitem}}
+
+\def\ListTableCaptions{%
+ \@ListCaps\tablelist=\jobname.tbl[List of Table Captions]
+ {\let\FIGLitem=\CAPLitem}}
+
+% \CAPLitem is like \FIGLitem, but it just ignores #4 (the page number)
+
+\def\CAPLitem#1#2#3\@endFIGLitem#4{% Figure or Table caption
+ \bigskip % some space between items
+ \begingroup %
+ \raggedright\tolerance=1700 % don't justify
+ \hangindent=1.41\parindent\hangafter=1 % hanging indentation
+ \noindent #1\ #2 % Figure/Table number
+ #3 \hskip 0pt plus 10pt % text of ``caption''
+ \vskip 0pt % end paragraph
+ \endgroup} %
+
+%======================================================================*
+% LISTS OF FIGURES AND TABLES (like a table of contents):
+%
+% These macros write out to the figure list file and read it
+% in later, and similarly for the list of tables.
+
+% To make an entry in the list of figures or tables include in the
+% figure or table a call to \infiglist{<text>} or \intablelist{<text>}
+% or \incaplist{<text>}.
+
+\def\infiglist{\begingroup\seeCR % <CR> breaks lines in file output
+ \@infiglist\figlist}
+
+\def\intablelist{\begingroup\seeCR % <CR> breaks lines in file output
+ \@infiglist\tablelist}
+
+\def\incaplist{\begingroup\seeCR % <CR> breaks lines in file output
+ \@infiglist\caplist}
+
+
+% \FigListWrite outputs text (#2) to the figure or table lists (#1).
+% Note that we DO NOT use \immediate so that info in floating
+% insertions isn't written until it becomes part of a page. This
+% is so that we get the page numbers correct.
+
+\def\FigListWrite#1#2{% write to figure list file
+ \ifx#1\figlist\relax \FigListInit\fi % initialize figure list
+ \ifx#1\tablelist\relax \TabListInit\fi % initialize table list
+ \ifx#1\caplist\relax \CapListInit\fi % initialize caption list
+ \edef\@line@{{#2}}% % expand tokens to write
+ \write#1\@line@} % write to fig/table list file
+
+\def\FigListInit{\@FileInit\figlist=\jobname.fgl[List of Figures]%%
+ \gdef\FigListInit{\relax}}
+\def\TabListInit{\@FileInit\tablelist=\jobname.tbl[List of Tables]%%
+ \gdef\TabListInit{\relax}}
+\def\CapListInit{\@FileInit\caplist=\jobname.cap[List of Captions]%%
+ \gdef\CapListInit{\relax}}
+
+% \FigListWriteNX is the same as \FigListWrite but it does not expand
+% it's argument, it is not \immediate, and it assumes file is initialized.
+
+\def\FigListWriteNX#1#2{\writeNX#1{#2}}
+
+
+% \@infiglist does the work for \infiglist or \intablelist or \incaplist
+% The first argument is the output stream, the second is the text.
+
+\def\@infiglist#1#2{% write to list of figures or tables or captions
+ \FigListWrite#1{\@comment > \CaptionName\space\@ID:}% comment '% '
+ \FigListWrite#1{\string\FIGLitem{\CaptionName} {\@ID.\space}}%
+ \@copycap#1#2\endlist % copy unexpanded
+ \FigListWrite#1{{\NX\folio}}% don't expand page number until written!
+ \endgroup} % end \seeCR
+
+\def\@copycap#1#2#3\endlist{% copy caption text to caption file
+ \ifx#2\space\writeNX#1{#3\@endFIGLitem}%
+ \else\writeNX#1{#2#3\@endFIGLitem}\fi}
+
+% \ListFigures and \ListTables create the table-of-contents style
+% list of figures and tables
+
+\def\ListFigures{\@ListCaps\figlist=\jobname.fgl[List of Figures]{}}
+\def\ListTables{\@ListCaps\tablelist=\jobname.tbl[List of Tables]{}}
+
+% \@ListCaps\writename=filename[Description]{extra instructions}
+% is a generic macro for listing figures and tables, or for listing
+% just the captions for figures and tables. It closes the file in which
+% the list has been collected and then reads it in. If you set
+% \showsectIDfalse before \ListFigures the caption name (``Figure'' or
+% ``Table'') will not appear, only the number will be shown.
+% NOTE! Since figures are floating insertions it is important that they
+% all be written to the output list before the figure list is to be
+% written. If there is any doubt about this use \supereject.
+
+\def\@ListCaps#1=#2[#3]#4{% list figures, tables or captions
+ \immediate\closeout#1 % close caption list file
+ \openin#1=#2 \relax % reopen to read it
+ \ifeof#1\closein#1 % if missing or empty, ignore
+ \else\closein#1\emsg{[Getting #3]}% % else close it and
+ \begingroup % read it in...
+ \showsectIDtrue % FORCE THIS NOW
+ \ATunlock\quoteoff\offparens % \specials not active
+ #4 % any modifications?
+ \input #2 \relax % read in captions
+ \endgroup %
+ \fi}
+
+
+% \FIGLitem processes a figure or table list item. The arguments are:
+% \FIGLitem{caption-name}{figure-id}title-text\@endFIGLitem{page-number}
+% The \TOCmargin is taken from the Table of Contents macros to match the
+% look of the table of contents.
+
+\long\def\FIGLitem#1#2#3\@endFIGLitem#4{% process a Figure or Table list item
+ \medskip % some space between items
+ \begingroup %
+ \raggedright\tolerance=1700 % don't justify
+ \ifx\TOCmargin\undefined\skip0=\parindent % sans \TOCmargin use \parindent
+ \else\skip0=\TOCmargin\fi % but use \TOCmargin if it's there
+ \advance\rightskip by \skip0 % right margin comes in, but
+ \parfillskip=-\skip0 % page number at edge of page
+ \hangindent=1.41\parindent\hangafter=1 % hanging indentation
+ \noindent \ifshowsectID #1\ \fi #2 % show section numbers
+ #3 \hskip 0pt plus 10pt % text of ``caption''
+ \leaddots % leaders to edge
+ \hbox to 2em{\hss\linkto{page.#4}{#4}}% page number (could be a link)
+ \vskip 0pt % end paragraph
+ \endgroup}
+
+
+%======================================================================*
+% REFERENCING FIGURES AND TABLES.
+%
+% The following use tags to reference figures and tables in text.
+% Forward references are satisfied using the .aux file. The \linkto
+% makes these HyperTeXt links if \htmltrue is set.
+
+\def\Fig#1{\linkto{Fg.#1}{Fig.~\use{Fg.#1}}}
+\def\Fg#1{\linkto{Fg.#1}{\use{Fg.#1}}}
+
+\def\Tab#1{\linkto{Tb.#1}{Table~\use{Tb.#1}}}
+\def\Tbl#1{\linkto{Tb.#1}{Table~\use{Tb.#1}}}
+\def\Tb#1{\linkto{Tb.#1}{\use{Tb.#1}}}
+
+
+
+%======================================================================*
+% RULED TABLES.
+%
+% The macros in TXSruled.tex can be used to typeset tables with vertical
+% and horizontal rules. The syntax is the same as for Ray Cowan's macros
+% TABLES.TEX, as described in TABELDOC.TEX, and I have used some of Cowan's
+% tricks, but most of the macros are complete re-writes. -EAM
+%
+% TXSruled.tex is now loaded directly by texsis.tex
+
+%======================================================================*
+% SIMPLE(r) RULED TABLES: \Tablebody (Old stuff)
+%
+% \Tablebody has been phased out of TeXsis in favour of TXSruled.tex,
+% which are much better for making ruled tables. However, if someone
+% wants to see an older document that used \Tablebody we don't want
+% to disappoint them. Hence we autoload \Tablebody from a style file
+% if needed.
+
+\autoload\Tablebody{Tablebod.txs}\autoload\Tablebodyleft{Tablebod.txs}
+\autoload\tablebody{Tablebod.txs}
+
+%======================================================================*
+% ENCAPULATED POSTSCRIPT FIGURES (using epsf.tex)
+%
+% Tom Rokicki's macros in epsf.tex are a good way to include
+% Encapulated PostScript figures in a document. There is only
+% one caveat: You must translate from dvi to ps with his dvips filter,
+% not dvi2ps or something else.
+%
+% We just load definitions from epsf.tex if they are needed...
+
+\autoload\epsffile{epsf.tex} \autoload\epsfbox{epsf.tex}
+\autoload\epsfxsize{epsf.tex} \autoload\epsfysize{epsf.tex}
+\autoload\epsfverbosetrue{epsf.tex}\autoload\epsfverbosefalse{epsf.tex}
+
+% The problem with the above \autoload's is that they are usually
+% done in a group so they have to be repeated later. If you intend to
+% use epsf and want to avoid this problem just say \input epsf.tex
+% somewhere early on in your document, outside of any group.
+
+%======================================================================*
+% OBSOLETE STUFF (to be removed soon)
+
+% These old synonyms from 2.11 are now \obsolete in 2.16 -EAM
+
+\obsolete\topFigure\figure \obsolete\midFigure\midfigure
+\obsolete\fullFigure\fullfigure \obsolete\TOPFIGURE\figure
+\obsolete\MIDFIGURE\midfigure \obsolete\FULLFIGURE\fullfigure
+\obsolete\endFigure\endfigure \obsolete\ENDFIGURE\endfigure
+
+% These are obsolete as of 2.17 -EAM
+
+\obsolete\topTable\toptable \obsolete\midTable\midtable
+\obsolete\fullTable\fulltable \obsolete\TOPTABLE\toptable
+\obsolete\MIDTABLE\midtable \obsolete\FULLTABLE\fulltable
+\obsolete\endTable\endtable \obsolete\ENDTABLE\endtable
+
+\def\FIG{\@obsolete\FIG\Fig\Fig}% synonym (2.11, to be removed)
+\def\TBL{\@obsolete\TBL\Tbl\Tbl}% synonym (2.11, to be removed)
+
+%>>> EOF TXSfigs.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSfmts.tex b/Master/texmf-dist/tex/texsis/base/TXSfmts.tex
new file mode 100644
index 00000000000..e383f23db5a
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSfmts.tex
@@ -0,0 +1,317 @@
+%% file: TXSfmts.tex - Special Document Formats - TeXsis version 2.18
+%% @(#) $Id: TXSfmts.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+%
+% Several standard document formats are defined in TeXsis. All of
+% these set up the appropriate dimensions, title page macros, etc., and
+% call \texsis:
+%
+% \preprint Preprint format. Makes a standard title
+% page from \title, \author, etc. and puts the
+% manuscript on the following pages.
+%
+% \Manuscript Like \preprint, but printed with
+% \TrueDoubleSpacing for submission to
+% journals like Physical Review
+%
+% \paper Like \preprint but puts \title, \author,
+% etc. material at top of first page
+% instead of on a separate title page.
+%
+% \book For books, with chapters and sections,
+% and odd/even page numbering
+%
+% \slides Slides/transparencies format, in 24 pt type,
+% special formatting.
+%
+% \letter Standard business letter; see TXSletr.tex
+%
+% \memo Standard memo; see TXSmemo.tex.
+%
+% \referee Referee reports; similar to \memo
+%
+% \twinprint Preprint in twin page format, with
+% title page in full size landscape.
+%
+% \twinformat Twin page formatting for other styles.
+%
+% More specialized document layouts are available in ``style''
+% files, which are only loaded when they are called for. This is
+% accomplished with the \autoload macro described below. It's possible
+% (and easy) to add new style files for any desired document layout.
+%
+% The specialized document layouts which are currently loaded
+% from style files [named in brackets] are:
+%
+% \nuclproc The ``NUCLPROC'' style for Nuclear
+% Physics Proceedings. [nuclproc.txs]
+%
+% \NorthHolland North Holland proceedings format,
+% single column, left justified titles.
+% [Elsevier.txs]
+%
+% \NorthHollandTwo North Holland double column proceedings
+% format, left justified titles. [Elsevier.txs]
+%
+% \WorldScientific World Scientific proceedings format.
+% [WorldSci.txs]
+%
+% \IEEEproceedings Conference paper in double column IEEE
+% format. [IEEE.txs]
+%
+% \IEEEreduced Same as \IEEEproceedings but reduced
+% by 75% to fit on 8.5 x 11 paper. [IEEE.txs]
+%
+% \AIPproceedings Conference paper in the American Institute
+% of Physics (AIP) format. [AIP.txs]
+%
+%======================================================================*
+\message{Layout macros.}
+\catcode`@=11
+
+%--------------------------------------------------*
+% Paper Layout: This prints the \titlepage material at the top of
+% the first page, not on a separate page.
+
+\def\paper{% % Paper:
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \texsis % Initialize
+ \def\titlepage{% % \paper title page
+ \bgroup % so changes don't leak out
+ \let\title=\Title % \title inside \titlepage
+ \let\endmode=\relax % \endmode will end a field
+ \pageno=1}% % title page is page 1 by default
+ \def\endtitlepage{% % \paper end title page
+ \endmode % end any open field
+ \goodbreak\bigskip % no new page, but maybe break here
+ \egroup}% % everything back the way it was
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+ }
+
+\def\Tbf{\fourteenpoint\bf}% % 14pt bold title
+\def\tbf{\twelvepoint\bf}% % 12pt bold section head
+
+%--------------------------------------------------*
+% Preprint Layout: This prints the \titlepage material on a separate
+% page with a \banner at the top.
+
+\def\preprint{% Document layout for Preprints
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \texsis % Initialize TeXsis
+ \def\titlepage{% % \preprint title page
+ \bgroup % so changes don't leak out
+ \pageno=1 % title page is page 1 by default
+ \let\title=\Title % \title inside \titlepage
+ \let\endmode=\relax % \endmode will end a field
+ \banner}% % prints the banner at top of page 1
+ \def\endtitlepage{% % \preprint end title page
+ \endmode % end any open field
+ \vfil\eject % new page
+ \egroup}% % everything back the way it was
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+ }
+
+%--------------------------------------------------*
+% \Manuscript is a layout similar to \preprint, but printed
+% in \TrueDoubleSpacing and with other things set the way Physical
+% Review wants them for submitted manuscripts. For an even better
+% version use \PhysRevManuscript or \PhysRev\Manuscript.
+
+\def\Manuscript{% layout for manuscripts to be submitted to journals
+ \preprint % start with preprint form
+ \showsectIDfalse % no section number in equation numbers
+ \showchaptIDfalse % no chapter number in equation numbers
+ \def\SectionStyle##1{\uppercase % section numbers in upper case
+ \expandafter{\romannumeral ##1}}% roman numerals
+ \RomanTablestrue % roman numerals for table numbers
+ \TablesLast % tables at the end
+ \FiguresLast % figures at the end
+ \TrueDoubleSpacing % wider interline spacing for manu
+ \def\everyabstract{\TrueDoubleSpacing}
+ \def\Tbf{\fourteenpoint\bf\TrueDoubleSpacing}% % 14pt bold title
+ \def\refFormat{\TrueDoubleSpacing}%
+ }
+
+\autoload\PhysRevManuscript{PhysRev.txs}% More better version in style file
+
+%--------------------------------------------------*
+% \book format is similar to \thesis but without the special
+% formatting. Use for books, long review articles, etc.
+
+\def\book{% document layout for a book or similar document
+ \ContentsSwitchtrue % contents page ON
+ \refswitchtrue % save references
+ \auxswitchtrue % .AUX file for forward references
+ \texsis % initialize TeXsis
+ \RunningHeadstrue % running headlines
+ \bookpagenumbers % page numbers for book binding
+ \def\titlepage{% % \book title page
+ \bgroup % any changes local
+ \pageno=-1 % start on page i
+ \let\title=\Title % \title inside \titlepage
+ \let\endmode=\relax % \endmode will end a field
+ \def\FootText{\relax}}% % no number on title page
+ \def\endtitlepage{% % end title page for \book
+ \endmode % end any open field
+ \vfil\eject % end title page
+ \egroup% % close group from \titlepage
+ \pageno=1}% %
+ \def\abstract{% % abstract for \book
+ \endmode % end previous field
+ \bigskip\bigskip\medskip % skip down some
+ \bgroup\singlespaced % abstract has same spacing
+ \let\endmode=\endabstract % to end \abstract
+ \narrower\narrower %
+ \everyabstract}% %
+ \def\endabstract{% % end abstract for \book
+ \medskip\egroup\bigskip}% %
+ \def\FootText{--\ \tenrm\folio\ --}% % for 1st page of chapter
+ \def\Tbf{\sixteenpoint\bf}% % Chapter Titles in 16pt bold
+ \def\tbf{\fourteenpoint\bf}% % Section titles in 12pt bold
+ \twelvepoint % 12pt type for most of doc
+ \doublespaced % double spacing
+ \autoparens % auto-sizing of parens
+ \quoteon % auto quote matching
+ } %
+
+%--------------------------------------------------*
+% \thesis is loaded from a style file now because it will be
+% different at different installations.
+
+\autoload\thesis{thesis.txs}
+\autoload\UTthesis{thesis.txs}
+\autoload\YaleThesis{thesis.txs}
+
+%--------------------------------------------------*
+% \letter is a letter format for typing letters, following the syntax
+% in Appendix F of the TeXbook. See TXSletr.tex for details.
+
+\def\Letter{% document format for letters
+ \ContentsSwitchfalse % no table of contents
+ \refswitchfalse % no reference list
+ \auxswitchfalse % no forward references
+ \texsis % initialize
+ \singlespaced % single space default
+ \LetterFormat} % Setup using \LetterFormat
+
+\def\letter{\Letter} % synonym
+
+%--------------------------------------------------*
+% \memo Format for memoranda, as defined in TXSmemo.tex
+
+\def\Memo{% document format for memos
+ \ContentsSwitchfalse % no table of contents
+ \refswitchfalse % no reference list
+ \auxswitchfalse % no forward references
+ \texsis % initialize
+ \singlespaced % single space default
+ \MemoFormat} % Setup using \MemoFormat
+
+\def\memo{\Memo} % synonym
+
+%--------------------------------------------------*
+% \Referee format for Referee Reports, as defined in TXSmemo.tex
+
+\def\Referee{% document format for referee reports
+ \ContentsSwitchfalse % no table of contents
+ \auxswitchfalse % no need for an .aux file
+ \refswitchfalse % no reference list
+ \texsis % initialize
+ \RefReptFormat} % Setup using \MemoFormat
+
+\def\referee{\Referee} % synonym
+
+%--------------------------------------------------*
+% Landscape Layout: for printing ``sideways'' on the laser printer
+%
+% \Landscape sets up the page size for sideways (``landscape mode'')
+% printing, and calls \LandscapeSpecial to signal this to the printer.
+% What signal is given to the printer driver (with \special) depends
+% on which filter or driver you are using. You may have to change
+% the definition of \LandscapeSpecial to suit your installation, but
+% please do this in TXSsite.tex, not this file.
+
+\def\Landscape{% set page size for printing ``sideways''
+ \texsis % 12pt, double spaced, etc
+ \hsize=9in % wide in the side
+ \vsize=6.5in % short and stocky
+ \voffset=.5in % and a little space from the ``margin''
+ \nopagenumbers % default is no page numbering
+ \LandscapeSpecial % actually turns on landscape mode
+}
+
+\def\landscape{\Landscape} % synonym
+
+% \LandscapeSpecial turns on landscape mode on the laser printer.
+% How this is done is very site dependent, but the default is for
+% Rokicki's dvips. Change this _in_TXSsite.tex_ if you need to.
+
+\def\LandscapeSpecial{\special{papersize=11in,8.5in}}
+
+
+%--------------------------------------------------*
+% \slides makes slides or transparencies in default 24pt type with
+% sensible defaults. It also defines \bl for a blank line and
+% \np for new page.
+%
+\def\slides{% % standard stuff except 12pt:
+ \quoteon % automatic quote balancing on
+ \autoparens % automatic paren balancing on
+ \ATlock % now @ is no longer a letter
+ \pageno=1 % start on page one
+ \twentyfourpoint % 24 point type
+ \doublespaced % double spaced
+ \raggedright\tolerance=2000 % very ragged right
+ \hyphenpenalty=500 % hyphens are bad
+ \raggedbottom % ragged bottom
+ \nopagenumbers % no numbers
+ \hoffset=-.25in \hsize=7.0in % to fit 8.5in x 10.5in
+ \voffset=-.25in \vsize=9.0in % to fit 8.5in x 10.5in
+ \parindent=30pt % for big type
+ \def\bl{\vskip\normalbaselineskip}% % blank line
+ \def\np{\vfill\eject}% % new page
+ \def\nospace{\nulldelimiterspace=0pt% % autoscale...
+ \mathsurround=0pt}% %
+ \def\big##1{{\hbox{$\left##1% % ...\big
+ \vbox to2ex{}\right.\nospace$}}}% %
+ \def\Big##1{{\hbox{$\left##1% % ...\Big
+ \vbox to2.5ex{}\right.\nospace$}}}% %
+ \def\bigg##1{{\hbox{$\left##1% % ...\bigg
+ \vbox to3ex{}\right.\nospace$}}}% %
+ \def\Bigg##1{{\hbox{$\left##1% % ...\Bigg
+ \vbox to4ex{}\right.\nospace$}}}%
+ }
+
+%-----------------------------------------------------------------------
+% TWIN PAGE OUTPUT - using macros in twin.txs
+
+\autoload\twinout{twin.txs} % two pages on one piece of paper
+
+
+% \twinprint sets up a twin column preprint, with the first page
+% full with in \twelvepoint and the rest in \tenpoint \twinout format.
+
+\def\twinprint{% preprint with two pages on one
+ \preprint % start with \prepriwt
+ \let\t@tl@=\title % based on \title
+ \def\title{\vskip-1.5in\t@tl@}% % reduce space
+ \let\endt@tlep@ge=\endtitlepage % save it
+ \def\endtitlepage{\endt@tlep@ge % usual \endtitlepage
+ \twinformat}% % twin column default
+}
+
+
+% \twinformat sets up the standard defaults for \twinout, with
+% 10pt fonts and no headline offset.
+
+\def\twinformat{% % 2 pages/page format
+ \tenpoint\doublespaced % ten point size
+ \def\Tbf{\twelvebf}\def\tbf{\tenbf}% % title fonts
+ \headlineoffset=0pt % no extra offset
+ \twinout} % \twinout format
+
+% >>> EOF TXSfmts.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSfonts.tex b/Master/texmf-dist/tex/texsis/base/TXSfonts.tex
new file mode 100644
index 00000000000..06a03b957d0
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSfonts.tex
@@ -0,0 +1,548 @@
+%% file: TXSfonts.tex - TeXsis Font Definitions - TeXsis version 2.18
+%% @(#) $Id: TXSfonts.tex,v 18.2 2001/04/06 21:40:14 myers Exp $
+%======================================================================*
+%
+% Plain TeX defines only 10pt type (plus smaller sizes for superscripts
+% and subscripts). TeXsis uses 9, 10, 11, 12, 14, 16, 20, and 24 point type,
+% with 12pt being the default and the larger sizes being used for headings and
+% other purposes. The following macros switch sizes:
+% \ninepoint 9pt type
+% \tenpoint 10pt type
+% \elevenpoint 11pt type
+% \twelvepoint 12pt type
+% \fourteenpoint 14pt type
+% \sixteenpoint 16pt type
+% \twentypoint 20pt type
+% \twentyfourpoint 24pt type
+% Within each size the following commands select fonts:
+% Command Name Sizes
+% \rm Roman 9 10 11 12 14 16 20 24
+% \it Roman italic 9 10 11 12 14 16 20 24
+% \sl Slanted 9 10 11 12 14 16 20 24
+% \bf Roman bold 9 10 11 12 14 16 20 24
+% $ $ Math italic 9 10 11 12 14 16 20 24
+% $ $ Math symbol 9 10 11 12 14 16 20 24
+% $ $ Math extended 9 10 11 12 14 16 20 24
+% \mib Math italic bold 10 11 12 14 16 20 24
+% \tt Typewriter 9 10 11 12
+% --- Sans serif 10 12 14
+% where $ $ indicates fonts used in math mode.
+%
+% Availability: The available fonts are installation dependent, so this
+% file may have to be modified. There are two common problems:
+% (1) Some versions of TeX use Almost Modern fonts names starting with
+% starting with amxx, while others use Computer Modern fonts with names cmxx.
+% Look at Plain.tex to see which you have, and if necessary change =cm to =am
+% or conversely.
+% (2) Some fonts may be missing. In particular, cmex10 (or amex10) may
+% not be available in all sizes. This is used to construct large delimiters,
+% etc. Use whatever you have; if \magstep3 is the largest, define
+% \font\twentyex=cmex10 scaled \magstep3
+% \font\twentyfourex=cmex10 scaled \magstep3
+%
+% Font Loading: In most versions of TeX there is not enough space to
+% load all the fonts defined in TeXsis. Hence fonts are loaded only as they
+% are used (see \ninefonts ... \twentyfourfonts below). For this to work with
+% PCTeX you must reserve font memory. Make a TEXSIS.BAT containing
+% c:\pctex\tex &c:\texsis\texsis %1 /f 25000
+% This will allow you to use, e.g., 9pt to 16pt simultaneously.
+%
+% Support has also been added for Ralph Smith's Formal Script font,
+% which is refered to in TeXsis as \scr. Use \scr as you would use \cal.
+%======================================================================*
+% (C) Copyright 1986, 1992, 1995, 1997, 1999 by Eric Myers and Frank Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+%======================================================================*
+\message{TeXsis fonts:}
+
+\catcode`@=11 % @ is a letter here
+\newskip\ttglue
+
+%========================================================================
+% FONT DEFINITIONS
+% Macros to define fonts as they are used. Each redefines itself to be
+% \relax after it is first called so that it is disabled.
+
+%%++ 9 pt fonts:
+\def\ninefonts{%
+ \global\font\ninerm=cmr9
+ \global\font\ninei=cmmi9
+ \global\font\ninesy=cmsy9
+ \global\font\nineex=cmex10
+ \global\font\ninebf=cmbx9
+ \global\font\ninesl=cmsl9
+ \global\font\ninett=cmtt9
+ \global\font\nineit=cmti9
+ \skewchar\ninei='177
+ \skewchar\ninesy='60
+ \hyphenchar\ninett=-1
+ \moreninefonts % any custom fonts
+ \gdef\ninefonts{\relax}}
+
+\def\moreninefonts{\relax} % User customization hook
+
+%%++ 10 pt fonts: % most alread loaded by Plain
+\font\tenss=cmss10 % 10 pt sans serif
+
+\def\moretenfonts{\relax} % customization hook (unused)
+
+%%++ 11 pt fonts:
+\def\elevenfonts{%
+ \global\font\elevenrm=cmr10 scaled \magstephalf
+ \global\font\eleveni=cmmi10 scaled \magstephalf
+ \global\font\elevensy=cmsy10 scaled \magstephalf
+ \global\font\elevenex=cmex10
+ \global\font\elevenbf=cmbx10 scaled \magstephalf
+ \global\font\elevensl=cmsl10 scaled \magstephalf
+ \global\font\eleventt=cmtt10 scaled \magstephalf
+ \global\font\elevenit=cmti10 scaled \magstephalf
+ \global\font\elevenss=cmss10 scaled \magstephalf
+ \skewchar\eleveni='177%%
+ \skewchar\elevensy='60%%
+ \hyphenchar\eleventt=-1%%
+ \moreelevenfonts % any other custom fonts
+ \gdef\elevenfonts{\relax}}%
+
+\def\moreelevenfonts{\relax} % User customization hook
+
+%%++ 12 pt fonts:
+\def\twelvefonts{% initialize 12pt fonts
+ \global\font\twelverm=cmr10 scaled \magstep1%%
+ \global\font\twelvei=cmmi10 scaled \magstep1%%
+ \global\font\twelvesy=cmsy10 scaled \magstep1%%
+ \global\font\twelveex=cmex10 scaled \magstep1%%
+ \global\font\twelvebf=cmbx10 scaled \magstep1%%
+ \global\font\twelvesl=cmsl10 scaled \magstep1%%
+ \global\font\twelvett=cmtt10 scaled \magstep1%%
+ \global\font\twelveit=cmti10 scaled \magstep1%%
+ \global\font\twelvess=cmss10 scaled \magstep1%%
+ \skewchar\twelvei='177%%
+ \skewchar\twelvesy='60%%
+ \hyphenchar\twelvett=-1%%
+ \moretwelvefonts % any other custom fonts
+ \gdef\twelvefonts{\relax}}
+
+\def\moretwelvefonts{\relax} % User customization hook
+
+%%++ 14 pt fonts:
+\def\fourteenfonts{%
+ \global\font\fourteenrm=cmr10 scaled \magstep2%%
+ \global\font\fourteeni=cmmi10 scaled \magstep2%%
+ \global\font\fourteensy=cmsy10 scaled \magstep2%%
+ \global\font\fourteenex=cmex10 scaled \magstep2%%
+ \global\font\fourteenbf=cmbx10 scaled \magstep2%%
+ \global\font\fourteensl=cmsl10 scaled \magstep2%%
+ \global\font\fourteenit=cmti10 scaled \magstep2%%
+ \global\font\fourteenss=cmss10 scaled \magstep2%%
+ \skewchar\fourteeni='177%%
+ \skewchar\fourteensy='60%%
+ \morefourteenfonts % any custom fonts
+ \gdef\fourteenfonts{\relax}}
+
+\def\morefourteenfonts{\relax} % customization hook
+
+%%++ 16 pt fonts:
+\def\sixteenfonts{%
+ \global\font\sixteenrm=cmr10 scaled \magstep3%%
+ \global\font\sixteeni=cmmi10 scaled \magstep3%%
+ \global\font\sixteensy=cmsy10 scaled \magstep3%%
+ \global\font\sixteenex=cmex10 scaled \magstep3%%
+ \global\font\sixteenbf=cmbx10 scaled \magstep3%%
+ \global\font\sixteensl=cmsl10 scaled \magstep3%%
+ \global\font\sixteenit=cmti10 scaled \magstep3%%
+ \skewchar\sixteeni='177%%
+ \skewchar\sixteensy='60%%
+ \moresixteenfonts % any custom fonts
+ \gdef\sixteenfonts{\relax}}
+
+\def\moresixteenfonts{\relax} % User customization hook
+
+%%++ 20 pt fonts:
+\def\twentyfonts{%
+ \global\font\twentyrm=cmr10 scaled \magstep4%%
+ \global\font\twentyi=cmmi10 scaled \magstep4%%
+ \global\font\twentysy=cmsy10 scaled \magstep4%%
+ \global\font\twentyex=cmex10 scaled \magstep4%%
+ \global\font\twentybf=cmbx10 scaled \magstep4%%
+ \global\font\twentysl=cmsl10 scaled \magstep4%%
+ \global\font\twentyit=cmti10 scaled \magstep4%%
+ \skewchar\twentyi='177%%
+ \skewchar\twentysy='60%%
+ \moretwentyfonts % any custom fonts
+ \gdef\twentyfonts{\relax}}
+
+\def\moretwentyfonts{\relax} % User customization hook
+
+%%++ 24 pt fonts:
+\def\twentyfourfonts{%
+ \global\font\twentyfourrm=cmr10 scaled \magstep5%%
+ \global\font\twentyfouri=cmmi10 scaled \magstep5%%
+ \global\font\twentyfoursy=cmsy10 scaled \magstep5%%
+ \global\font\twentyfourex=cmex10 scaled \magstep5%%
+ \global\font\twentyfourbf=cmbx10 scaled \magstep5%%
+ \global\font\twentyfoursl=cmsl10 scaled \magstep5%%
+ \global\font\twentyfourit=cmti10 scaled \magstep5%%
+ \skewchar\twentyfouri='177%%
+ \skewchar\twentyfoursy='60%%
+ \moretwentyfourfonts % any custom fonts
+ \gdef\twentyfourfonts{\relax}}
+
+\def\moretwentyfourfonts{\relax} % User customization hook
+
+%========================================================================
+% MATH ITALIC BOLD.
+% This makes boldfaced Greek characters for titles. Available only
+% with cm fonts, generally only in 10pt and larger. Hence we use standard
+% math fonts for the smaller sizes.
+
+% Macros to load math italic bold fonts:
+
+\def\tenmibfonts{% % ten pt math italic bold
+ \global\font\tenmib=cmmib10
+ \global\font\tenbsy=cmbsy10
+ \skewchar\tenmib='177%%
+ \skewchar\tenbsy='60%%
+ \gdef\tenmibfonts{\relax}}
+
+\def\elevenmibfonts{% % eleven pt math italic bold
+ \global\font\elevenmib=cmmib10 scaled \magstephalf
+ \global\font\elevenbsy=cmbsy10 scaled \magstephalf
+ \skewchar\elevenmib='177%%
+ \skewchar\elevenbsy='60%%
+ \gdef\elevenmibfonts{\relax}}
+
+\def\twelvemibfonts{% % twelve pt math italic bold
+ \global\font\twelvemib=cmmib10 scaled \magstep1%%
+ \global\font\twelvebsy=cmbsy10 scaled \magstep1%%
+ \skewchar\twelvemib='177%%
+ \skewchar\twelvebsy='60%%
+ \gdef\twelvemibfonts{\relax}}
+
+\def\fourteenmibfonts{% % fourteen pt math italic bold
+ \global\font\fourteenmib=cmmib10 scaled \magstep2%%
+ \global\font\fourteenbsy=cmbsy10 scaled \magstep2%%
+ \skewchar\fourteenmib='177%%
+ \skewchar\fourteenbsy='60%%
+ \gdef\fourteenmibfonts{\relax}}
+
+\def\sixteenmibfonts{% % sixteen pt math italic bold
+ \global\font\sixteenmib=cmmib10 scaled \magstep3%%
+ \global\font\sixteenbsy=cmbsy10 scaled \magstep3%%
+ \skewchar\sixteenmib='177%%
+ \skewchar\sixteenbsy='60%%
+ \gdef\sixteenmibfonts{\relax}}
+
+\def\twentymibfonts{% % twenty pt math italic bold
+ \global\font\twentymib=cmmib10 scaled \magstep4%%
+ \global\font\twentybsy=cmbsy10 scaled \magstep4%%
+ \skewchar\twentymib='177%%
+ \skewchar\twentybsy='60%%
+ \gdef\twentymibfonts{\relax}}
+
+\def\twentyfourmibfonts{% % twentyfour pt math italic bold
+ \global\font\twentyfourmib=cmmib10 scaled \magstep5%%
+ \global\font\twentyfourbsy=cmbsy10 scaled \magstep5%%
+ \skewchar\twentyfourmib='177%%
+ \skewchar\twentyfourbsy='60%%
+ \gdef\twentyfourmibfonts{\relax}}
+
+% \mib changes to math italic bold by setting \textfont1 and \textfont2
+% to cmmib10 and cmbsy10 respectively. This gets redefined by all the size
+% changing macros.
+\message{\string\mib,}
+
+\def\mib{% set math italic bold for use in $...$
+ \tenmibfonts
+ \textfont0=\tenbf\scriptfont0=\sevenbf
+ \scriptscriptfont0=\fivebf
+ \textfont1=\tenmib\scriptfont1=\seveni
+ \scriptscriptfont1=\fivei
+ \textfont2=\tenbsy\scriptfont2=\sevensy
+ \scriptscriptfont2=\fivesy}
+
+%======================================================================*
+% FORMAL SCRIPT FONT: rsfs (if you have it. If not, get it!)
+%
+% The following allows the use of Ralph Smith's Formal Script symbols
+% in Plain TeX documents. Just use \scr in place of \cal.
+\message{\string\scr,}
+
+% Initialize \scr fonts; these may not exist on your system, and if
+% they do, some maginfications may be missing, but today's kpathsea
+% and MakeTeXPK make it more likely that you can use it.
+% You can get the MetaFont sources from ftp.texsis.org
+
+\newfam\scrfam % Define the new font family
+
+% Use \scr to change fonts. If you don't have these fonts then
+% replace this with \let\scr=\cal in TXSsite.tex
+
+\def\scr{\scrfonts\fam\scrfam\tenscr % switch to rsfs fonts as \scr
+ \global\textfont\scrfam=\tenscr\global\scriptfont\scrfam=\sevenscr
+ \global\scriptscriptfont\scrfam=\fivescr}
+
+
+% \scrfonts does a once-only initialization of the files, normally
+% the first time \scr is invoked. Then the \scr for a given font size
+% sets the textfont, scriptfont and scriptscriptfont
+
+\def\scrfonts{% initialize rsfs fonts for \scr
+ \global\font\twentyfourscr=rsfs10 scaled \magstep5 % 24 pt
+ \global\font\twentyscr=rsfs10 scaled \magstep4 % 20 pt
+ \global\font\sixteenscr=rsfs10 scaled \magstep3 % 16 pt
+ \global\font\fourteenscr=rsfs10 scaled \magstep2 % 14 pt
+ \global\font\twelvescr=rsfs10 scaled \magstep1 % 12 pt
+ \global\font\elevenscr=rsfs10 scaled \magstephalf % 11 pt
+ \global\font\tenscr=rsfs10 % 10 pt
+ \global\font\ninescr=rsfs7 scaled \magstep1 % 9 pt
+ \global\font\sevenscr=rsfs7 % 7 pt
+ \global\font\fivescr=rsfs5 % 5 pt
+ \global\skewchar\tenscr='177 \global\skewchar\sevenscr='177%%
+ \global\skewchar\fivescr='177%%
+ \global\textfont\scrfam=\tenscr\global\scriptfont\scrfam=\sevenscr
+ \global\scriptscriptfont\scrfam=\fivescr
+ \gdef\scrfonts{\relax}} % disable when done once
+
+%========================================================================
+% FONT SIZES
+% Macros to change font sizes. Each of these load the relevant
+% fonts the first time it is called, so we don't load fonts until needed.
+
+% Switch to 9 point type
+\message{9pt,}
+\def\ninepoint{\ninefonts % load 9pt fonts if needed
+ \def\rm{\fam0\ninerm}%
+ \textfont0=\ninerm\scriptfont0=\sevenrm\scriptscriptfont0=\fiverm
+ \textfont1=\ninei\scriptfont1=\seveni\scriptscriptfont1=\fivei
+ \textfont2=\ninesy\scriptfont2=\sevensy\scriptscriptfont2=\fivesy
+ \textfont3=\nineex\scriptfont3=\nineex\scriptscriptfont3=\nineex
+ \textfont\itfam=\nineit\def\it{\fam\itfam\nineit}%
+ \textfont\slfam=\ninesl\def\sl{\fam\slfam\ninesl}%
+ \textfont\ttfam=\ninett\def\tt{\fam\ttfam\ninett}%
+ \textfont\bffam=\ninebf
+ \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf\def\bf{\fam\bffam\ninebf}%
+ \def\mib{\relax}%
+ \def\scr{\relax}%
+ \tt\ttglue=.5emplus.25emminus.15em
+ \normalbaselineskip=11pt
+ \setbox\strutbox=\hbox{\vrule height 8pt depth 3pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+
+% Switch to 10 point type
+\message{10pt,}
+\def\tenpoint{% % 10pt already loaded by default
+ \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\slfam=\tensl\def\sl{\fam\slfam\tensl}%
+ \textfont\ttfam=\tentt\def\tt{\fam\ttfam\tentt}%
+ \textfont\bffam=\tenbf
+ \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf\def\bf{\fam\bffam\tenbf}%
+ \def\mib{%
+ \tenmibfonts
+ \textfont0=\tenbf\scriptfont0=\sevenbf
+ \scriptscriptfont0=\fivebf
+ \textfont1=\tenmib\scriptfont1=\seveni
+ \scriptscriptfont1=\fivei
+ \textfont2=\tenbsy\scriptfont2=\sevensy
+ \scriptscriptfont2=\fivesy}%
+ \def\scr{\scrfonts\fam\scrfam\tenscr
+ \global\textfont\scrfam=\tenscr\global\scriptfont\scrfam=\sevenscr
+ \global\scriptscriptfont\scrfam=\fivescr}%
+ \tt\ttglue=.5emplus.25emminus.15em
+ \normalbaselineskip=12pt
+ \setbox\strutbox=\hbox{\vrule height 8.5pt depth 3.5pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+% Switch to 11 point type
+\message{11pt,}
+\def\elevenpoint{\elevenfonts % load 11pt fonts if needed
+ \def\rm{\fam0\elevenrm}%
+ \textfont0=\elevenrm\scriptfont0=\sevenrm\scriptscriptfont0=\fiverm
+ \textfont1=\eleveni\scriptfont1=\seveni\scriptscriptfont1=\fivei
+ \textfont2=\elevensy\scriptfont2=\sevensy\scriptscriptfont2=\fivesy
+ \textfont3=\elevenex\scriptfont3=\elevenex\scriptscriptfont3=\elevenex
+ \textfont\itfam=\elevenit\def\it{\fam\itfam\elevenit}%
+ \textfont\slfam=\elevensl\def\sl{\fam\slfam\elevensl}%
+ \textfont\ttfam=\eleventt\def\tt{\fam\ttfam\eleventt}%
+ \textfont\bffam=\elevenbf
+ \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf\def\bf{\fam\bffam\elevenbf}%
+ \def\mib{%
+ \elevenmibfonts
+ \textfont0=\elevenbf\scriptfont0=\sevenbf
+ \scriptscriptfont0=\fivebf
+ \textfont1=\elevenmib\scriptfont1=\seveni
+ \scriptscriptfont1=\fivei
+ \textfont2=\elevenbsy\scriptfont2=\sevensy
+ \scriptscriptfont2=\fivesy}%
+ \def\scr{\scrfonts\fam\scrfam\elevenscr
+ \global\textfont\scrfam=\elevenscr\global\scriptfont\scrfam=\sevenscr
+ \global\scriptscriptfont\scrfam=\fivescr}%
+ \tt\ttglue=.5emplus.25emminus.15em
+ \normalbaselineskip=13pt
+ \setbox\strutbox=\hbox{\vrule height 9pt depth 4pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+% Switch to 12 point type
+\message{12pt,}
+\def\twelvepoint{\twelvefonts\ninefonts % load 12pt and 9pt fonts if needed
+ \def\rm{\fam0\twelverm}%
+ \textfont0=\twelverm\scriptfont0=\ninerm\scriptscriptfont0=\sevenrm
+ \textfont1=\twelvei\scriptfont1=\ninei\scriptscriptfont1=\seveni
+ \textfont2=\twelvesy\scriptfont2=\ninesy\scriptscriptfont2=\sevensy
+ \textfont3=\twelveex\scriptfont3=\twelveex\scriptscriptfont3=\twelveex
+ \textfont\itfam=\twelveit\def\it{\fam\itfam\twelveit}%
+ \textfont\slfam=\twelvesl\def\sl{\fam\slfam\twelvesl}%
+ \textfont\ttfam=\twelvett\def\tt{\fam\ttfam\twelvett}%
+ \textfont\bffam=\twelvebf
+ \scriptfont\bffam=\ninebf
+ \scriptscriptfont\bffam=\sevenbf\def\bf{\fam\bffam\twelvebf}%
+ \def\mib{%
+ \twelvemibfonts\tenmibfonts
+ \textfont0=\twelvebf\scriptfont0=\ninebf
+ \scriptscriptfont0=\sevenbf
+ \textfont1=\twelvemib\scriptfont1=\ninei
+ \scriptscriptfont1=\seveni
+ \textfont2=\twelvebsy\scriptfont2=\ninesy
+ \scriptscriptfont2=\sevensy}%
+ \def\scr{\scrfonts\fam\scrfam\twelvescr
+ \global\textfont\scrfam=\twelvescr\global\scriptfont\scrfam=\ninescr
+ \global\scriptscriptfont\scrfam=\sevenscr}%
+ \tt\ttglue=.5emplus.25emminus.15em
+ \normalbaselineskip=14pt
+ \setbox\strutbox=\hbox{\vrule height 10pt depth 4pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+% Switch to 14 point type
+\message{14pt,}
+\def\fourteenpoint{\fourteenfonts\twelvefonts % load fonts as needed
+ \def\rm{\fam0\fourteenrm}%
+ \textfont0=\fourteenrm\scriptfont0=\twelverm\scriptscriptfont0=\tenrm
+ \textfont1=\fourteeni\scriptfont1=\twelvei\scriptscriptfont1=\teni
+ \textfont2=\fourteensy\scriptfont2=\twelvesy\scriptscriptfont2=\tensy
+ \textfont3=\fourteenex\scriptfont3=\fourteenex
+ \scriptscriptfont3=\fourteenex
+ \textfont\itfam=\fourteenit\def\it{\fam\itfam\fourteenit}%
+ \textfont\slfam=\fourteensl\def\sl{\fam\slfam\fourteensl}%
+ \textfont\bffam=\fourteenbf
+ \scriptfont\bffam=\twelvebf
+ \scriptscriptfont\bffam=\tenbf\def\bf{\fam\bffam\fourteenbf}%
+ \def\mib{%
+ \fourteenmibfonts\twelvemibfonts\tenmibfonts
+ \textfont0=\fourteenbf\scriptfont0=\twelvebf
+ \scriptscriptfont0=\tenbf
+ \textfont1=\fourteenmib\scriptfont1=\twelvemib
+ \scriptscriptfont1=\tenmib
+ \textfont2=\fourteenbsy\scriptfont2=\twelvebsy
+ \scriptscriptfont2=\tenbsy}%
+ \def\scr{\scrfonts\fam\scrfam\fourteenscr
+ \global\textfont\scrfam=\fourteenscr\global\scriptfont\scrfam=\twelvescr
+ \global\scriptscriptfont\scrfam=\tenscr}%
+ \normalbaselineskip=17pt
+ \setbox\strutbox=\hbox{\vrule height 12pt depth 5pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+% Switch to 16 point type
+\message{16pt,}
+\def\sixteenpoint{\sixteenfonts\fourteenfonts\twelvefonts % load fonts as needed
+ \def\rm{\fam0\sixteenrm}%
+ \textfont0=\sixteenrm\scriptfont0=\fourteenrm\scriptscriptfont0=\twelverm
+ \textfont1=\sixteeni\scriptfont1=\fourteeni\scriptscriptfont1=\twelvei
+ \textfont2=\sixteensy\scriptfont2=\fourteensy\scriptscriptfont2=\twelvesy
+ \textfont3=\sixteenex\scriptfont3=\sixteenex\scriptscriptfont3=\sixteenex
+ \textfont\itfam=\sixteenit\def\it{\fam\itfam\sixteenit}%
+ \textfont\slfam=\sixteensl\def\sl{\fam\slfam\sixteensl}%
+ \textfont\bffam=\sixteenbf%
+ \scriptfont\bffam=\fourteenbf%
+ \scriptscriptfont\bffam=\twelvebf\def\bf{\fam\bffam\sixteenbf}%
+ \def\mib{%
+ \sixteenmibfonts\fourteenmibfonts\twelvemibfonts
+ \textfont0=\sixteenbf\scriptfont0=\fourteenbf
+ \scriptscriptfont0=\twelvebf
+ \textfont1=\sixteenmib\scriptfont1=\fourteenmib
+ \scriptscriptfont1=\twelvemib
+ \textfont2=\sixteenbsy\scriptfont2=\fourteenbsy
+ \scriptscriptfont2=\twelvebsy}%
+ \def\scr{\scrfonts\fam\scrfam\sixteenscr
+ \global\textfont\scrfam=\sixteenscr\global\scriptfont\scrfam=\fourteenscr
+ \global\scriptscriptfont\scrfam=\twelvescr}%
+ \normalbaselineskip=20pt%
+ \setbox\strutbox=\hbox{\vrule height 14pt depth 6pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+% Switch to 20 point type
+\message{20pt,}
+\def\twentypoint{\twentyfonts\sixteenfonts\fourteenfonts % load fonts
+ \def\rm{\fam0\twentyrm}%
+ \textfont0=\twentyrm\scriptfont0=\sixteenrm\scriptscriptfont0=\fourteenrm
+ \textfont1=\twentyi\scriptfont1=\sixteeni\scriptscriptfont1=\fourteeni
+ \textfont2=\twentysy\scriptfont2=\sixteensy\scriptscriptfont2=\fourteensy
+ \textfont3=\twentyex\scriptfont3=\twentyex\scriptscriptfont3=\twentyex
+ \textfont\itfam=\twentyit\def\it{\fam\itfam\twentyit}%
+ \textfont\slfam=\twentysl\def\sl{\fam\slfam\twentysl}%
+ \textfont\bffam=\twentybf
+ \scriptfont\bffam=\sixteenbf
+ \scriptscriptfont\bffam=\fourteenbf\def\bf{\fam\bffam\twentybf}%
+ \def\mib{%
+ \twentymibfonts\sixteenmibfonts\fourteenmibfonts%
+ \textfont0=\twentybf\scriptfont0=\sixteenbf%
+ \scriptscriptfont0=\fourteenbf%
+ \textfont1=\twentymib\scriptfont1=\sixteenmib%
+ \scriptscriptfont1=\fourteenmib%
+ \textfont2=\twentybsy\scriptfont2=\sixteenbsy%
+ \scriptscriptfont2=\fourteenbsy}%
+ \def\scr{\scrfonts
+ \global\textfont\scrfam=\twentyscr\fam\scrfam\twentyscr}%
+ \normalbaselineskip=24pt
+ \setbox\strutbox=\hbox{\vrule height 17pt depth 7pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+% Switch to 24 point type
+\message{24pt.}
+\def\twentyfourpoint{\twentyfourfonts\twentyfonts\sixteenfonts % load fonts
+ \def\rm{\fam0\twentyfourrm}%
+ \textfont0=\twentyfourrm\scriptfont0=\twentyrm\scriptscriptfont0=\sixteenrm
+ \textfont1=\twentyfouri\scriptfont1=\twentyi\scriptscriptfont1=\sixteeni
+ \textfont2=\twentyfoursy\scriptfont2=\twentysy\scriptscriptfont2=\sixteensy
+ \textfont3=\twentyfourex\scriptfont3=\twentyfourex
+ \scriptscriptfont3=\twentyfourex
+ \textfont\itfam=\twentyfourit\def\it{\fam\itfam\twentyfourit}%
+ \textfont\slfam=\twentyfoursl\def\sl{\fam\slfam\twentyfoursl}%
+ \textfont\bffam=\twentyfourbf
+ \scriptfont\bffam=\twentybf
+ \scriptscriptfont\bffam=\sixteenbf\def\bf{\fam\bffam\twentyfourbf}%
+ \def\mib{%
+ \twentyfourmibfonts\twentymibfonts\sixteenmibfonts%
+ \textfont0=\twentyfourbf\scriptfont0=\twentybf
+ \scriptscriptfont0=\sixteenbf
+ \textfont1=\twentyfourmib\scriptfont1=\twentymib
+ \scriptscriptfont1=\sixteenmib
+ \textfont2=\twentyfourbsy\scriptfont2=\twentybsy
+ \scriptscriptfont2=\sixteenbsy}%
+ \def\scr{\scrfonts
+ \global\textfont\scrfam=\twentyfourscr\fam\scrfam\twentyfourscr}%
+ \normalbaselineskip=28pt
+ \setbox\strutbox=\hbox{\vrule height 19pt depth 9pt width 0pt}%
+ \normalbaselines\rm\singlespaced}%
+
+%------------------------------------------------------------------------
+% Starting defaults:
+
+\def\Tbf{\fourteenpoint\bf}
+\def\tbf{\twelvepoint\bf}
+
+% \autoload isn't defined yet, so we have to do this to defer, but
+% this is the same as just \autoload'ing it.
+
+\def\printfont{\autoload\printfont{printfont.txs}\printfont}
+
+%>>> EOF TXSfonts.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXShead.tex b/Master/texmf-dist/tex/texsis/base/TXShead.tex
new file mode 100644
index 00000000000..02633b97d19
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXShead.tex
@@ -0,0 +1,151 @@
+%% file: TXShead.tex - Running Headlines - TeXsis version 2.18
+%% @(#) $Id: TXShead.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+% RUNNING HEADLINES (and footlines) with page numbers
+%
+% This is an alternative definition of \makeheadline, which can be
+% used to put the running headlines in the right position. A new dimension
+% called \headlineoffset specifies how much the headline is to be RAISED.
+% The default, which is zero, puts the headline in the "usual" place.
+% Similarly, \footlineoffset LOWERS the footline an extra bit. To meet
+% the Yale Graduate School guidelines I used \headlineoffset=0.2in.
+%
+% This file is a part of TeXsis.
+% (C) copyright 1991, 1997 by Eric Myers and Frank Paige
+%======================================================================*
+\message{Running Headlines.}
+
+\newdimen\headlineoffset \headlineoffset=0.0cm % how much to raise
+\newdimen\footlineoffset \footlineoffset=0.0cm % how much to lower
+
+\newif\ifRunningHeads \RunningHeadsfalse % default: off
+\newif\ifbookpagenumbers \bookpagenumbersfalse % default: off
+\newif\ifrightn@m \rightn@mtrue % default: right
+
+
+% re-define \makeheadline and \makefootline from Plain TeX to
+% allow for moving the headlines up and footlines down
+
+\def\makeheadline{\vbox to 0pt{\vskip-22.5pt
+ \vskip-\headlineoffset % raises the headline an extra bit
+ \line{\vbox to 8.5pt{}\the\headline}\vss}\nointerlineskip}
+
+\def\makefootline{\baselineskip=24pt % normal skip to footline
+ \vskip\footlineoffset % lower the footline an extra bit
+ \line{\the\footline}}
+
+
+% \Headline and \Footline actually create the running head and foot
+% lines. We make \the\headline=\HeadLine and \the\footline=\FootLine. For
+% the first page of a chapter there is no headline, and no page number. For
+% subsequent pages there is a running head line with page number, and nothing
+% at the bottom of the page. The text of the running head and foot lines is
+% kept in \HeadText and \FootText. \chapter and \section make their arguments
+% the running head text, but you can change this by re-defining \HeadText
+% immediately after calling these macros. By default the headline is written
+% in italics; you can change this yourself in \HeadText.
+
+%-%\headline={\HeadLine} % headline executes \HeadLine
+
+
+% \HeadLine uses marks to turn off headline on first pages. \HeadText
+% contains the text; \He@dText is set to it or \relax depending on
+% \ifRunningHeads.
+
+\def\HeadLine{%
+ \edef\firstm{{\XA\iffalse\firstmark\fi}}% chapternumber of \firstmark
+ \edef\topm{{\XA\iffalse\topmark\fi}}% chapternumber of \topmark
+ \ifRunningHeads % print running heads?
+ \def\He@dText{{\HeadFont \HeadText}}% head text in \HeadFont
+ \else\def\He@dText{\relax}\fi % or nothing
+ \ifbookpagenumbers % book-like numbering
+ \ifodd\pageno\rightn@mtrue % odd numbers right
+ \else\rightn@mfalse\fi % even numbers left
+ \else\rightn@mtrue\fi % or always right
+ \tenrm % page number in Roman
+ \ifx\topm\firstm % Marks the same?
+ \ifrightn@m % number on right?
+ {\hss\He@dText\hss\llap{\HeadFont\rm\PageNumber}}%
+ \else % or on left
+ {\rlap{\HeadFont\rm\PageNumber}\hss\He@dText\hss}%
+ \fi
+ \else \hfill \fi}% % NOTHING ON FIRST PAGE of chapter
+
+\def\HeadText{\hfill}
+
+%-%\footline={\FootLine}
+
+\def\FootLine{%
+ \edef\firstm{%
+ {\expandafter\iffalse\firstmark\fi}}% get first mark
+ \edef\topm{%
+ {\expandafter\iffalse\topmark\fi}}% and top mark
+ \ifx\topm\firstm \hss % if not page 1, nothing
+ \else {\hss\HeadFont \FootText \hss} \fi} % print \FootText if page 1
+
+\def\FootText{\hfill} % nothing by default
+
+\def\HeadFont{\tenit} % default is 10pt Roman italic
+
+
+% Page numbers are links to the table of contents, but they also
+% have names so you can link to them. You should be able to have both
+% href= and name= in the same anchor, but that fails in HyperTeXview
+% for now.
+
+\begingroup
+ \catcode`<=12 \catcode`>=12 \catcode`\"=12
+ \gdef\PageLinkto#1{%
+ \html{<a href="\hash sect.TOC">}%
+ \html{<a NAME="page.\the\pageno">}%
+ {#1}\html{</a>}%
+ \html{</a>}%
+ }%
+\endgroup
+
+\def\PageNumber{\PageLinkto{\folio}}% default is just \folio
+
+
+%-------------------------*
+% In Plain TeX \nopagenumbers turns off the page numbering by making
+% the footline \hfil. In TeXsis, pagenumbers can appear on the
+% headline instead, so we turn that off too.
+
+\def\nopagenumbers{\headline={\hfil}\footline={\hfil}}%
+
+% We'd like to turn it back on, or put them at the bottom.
+
+\def\pagenumbers{\headline={\HeadLine}\footline={\FootLine}}
+\def\bottompagenumbers{\footline={\hfill{\rm\PageNumber}\hfill}%
+ \headline={\hfill}}
+
+% -- This just sets the flag for odd/even page numbers
+
+\def\bookpagenumbers{\bookpagenumberstrue}
+
+%======================================================================*
+% BINDING MARGIN
+% Add extra binding margin on left side for even pages and on
+% right side for odd ones. Assumes (for now) \hoffset=0pt.
+
+% Just like standard \plainoutput except for \makeBindingMargin.
+\def\plainoutput{% \plainoutput with binding margin
+ \makeBindingMargin
+ \shipout\vbox{\makeheadline\pagebody\makefootline}%
+ \advancepageno
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
+
+% Extra margin for binding
+\newdimen\BindingMargin \BindingMargin=0pt
+
+% Insert extra \BindingMargin on left side of odd numbered pages and right
+% side of even numbered ones. But do nothing if \BindingMargin=0pt so as not
+% to clobber user's \hoffset. The user must adjust other page dimensions by
+% hand.
+
+\def\makeBindingMargin{% add \BindingMargin in \output
+ \ifdim\BindingMargin>0pt
+ \ifodd\pageno\hoffset=\BindingMargin\else
+ \hoffset=-\BindingMargin\fi\fi}
+
+%>>> EOF TXShead.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSinit.tex b/Master/texmf-dist/tex/texsis/base/TXSinit.tex
new file mode 100644
index 00000000000..89f038b6208
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSinit.tex
@@ -0,0 +1,281 @@
+%% file: TXSinit.tex - Initialization - TeXsis version 2.18
+%% @(#) $Id: TXSinit.tex,v 18.2 2000/05/16 22:44:04 myers Exp $
+%======================================================================*
+% Initialization for TeXsis:
+%
+% Initial settings, run-time initialization, date macros, counters,
+% read site file and/or patch file, autoloading style files.
+%
+%======================================================================*
+% (C) copyright 1991, 1993, 1999 by Eric Myers and Frank E. Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+%======================================================================*
+\message{Initialization.}
+
+% Make @ signs act like letters, temporarily, to avoid conflict
+% between user names and internal control sequences of plain format.
+% \texsis changes this back at run time
+
+\catcode`@=11
+
+%==================================================*
+% RUN TIME INITIALIZATION for opening files and such is now
+% performed by the macros that use those files. \texsis just
+% sets up the TeXsis defaults, instead of the Plain TeX defaults.
+
+\long\def\texsis{% initialization to TeXsis defaults
+ \quoteon % automatic quote balancing is ON
+ \Contentsfalse % table of contents is OFF by default
+ \autoparens % automatic paren balancing is ON
+ \ATlock % now @ is no longer a letter
+ \resetcounters % reset all \global counters
+ \pageno=1 % be sure to start on page one
+ \colwidth=\hsize % column width assumed \hsize
+ \headline={\HeadLine}\headlineoffset=0.5cm % TeXsis running headlines
+ \footline={\FootLine}\footlineoffset=0.5cm % and footlines
+ \twelvepoint % start in 12 pt type
+ \doublespaced % and doublespaced
+ \newlinechar=`\^^M % <CR> breaks lines in file output
+% set some integer parameters:
+ \uchyph=\@ne % allow capitalized words to be split
+ \brokenpenalty=\@M % don't break hyphens across pages
+ \widowpenalty=\@M % ``widow'' line penalty at end of par
+ \clubpenalty=\@M % ``club'' line penalty at start of par
+ \dimen\footins=0.5\vsize % footnotes up at most half the page
+}
+
+% Older synonyms for \texsis, now obsolete (with variations)
+
+\obsolete\inittexsis\texsis \obsolete\texsisinit\texsis
+\obsolete\initexsis\texsis \obsolete\initTeXsis\texsis
+
+% Detect and warn about LaTeX
+
+\def\LaTeXwarning{\emsg{> }%
+ \emsg{> Whoops! This seems to be a LaTeX file.}%
+ \emsg{> Try saying `latex \jobname` instead.}%
+ \emsg{> }\end}
+\def\documentstyle{\LaTeXwarning}
+\def\@writefile{\LaTeXwarning}
+
+%-----------------------------------------------------------------------
+% \today gives today's date (unless \dated is called to override)
+
+\def\today{\number\day\ \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
+ \ \number\year}
+
+\let\@today=\today % save a version of \today in any case
+
+% \dated{date} redefines \today to be whatever date you want.
+
+\def\dated#1{\xdef\today{#1}}
+
+
+% \SetDate sets \adate (American) and \edate (European) to today's date.
+% Also, \hour is the current hour, \minutes is the current minutes,
+% and \runtime is the current date and time as yyyy/mm/dd hh:mm
+
+\def\SetDate{% define current date and time stamps
+ \xdef\adate{\monthname{\the\month}~\number\day, \number\year}%
+ \xdef\edate{\number\day~\monthname{\the\month}~\number\year}%
+ \count255=\time\divide\count255 by 60 %
+ \edef\hour{\the\count255}% % current \hour
+ \multiply\count255 by -60 \advance\count255 by\time % get minutes
+ \edef\minutes{\ifnum 10>\count255 {0}\fi\the\count255}% minutes, w/ leading 0
+ \edef\runtime{\the\year/\the\month/\the\day\space\hour:\minutes}}
+
+
+% Counters are defined in the files where they are used, but we can
+% reset them here. We will be careful about not assuming that something
+% has already been defined. The general rule is that the counter should
+% hold the value for the most recent usage, so we can refer to it later
+% without having to subtract one from it. This also allows us a way to
+% determine if a given counter has been used; for example, if any
+% \subsections have appeared in the current section then the count will
+% be non-zero.
+
+\def\gzero#1{\ifx#1\undefined\relax\else\global#1=\z@\fi}
+
+\def\resetcounters{% reset all \global TeXsis counters
+ \gzero\chapternum \gzero\sectionnum \gzero\subsectionnum
+ \gzero\theoremnum \gzero\lemmanum \gzero\subsubsectionnum
+ \gzero\tabnum \gzero\fignum \gzero\definitionnum
+ \gzero\@BadRefs \gzero\@BadTags \gzero\@quoteflag
+ \gzero\@envDepth \gzero\enumDepth \gzero\enumcnt
+ \gzero\refnum \gzero\eqnum \gzero\corollarynum
+ \global\@firstrefnum=1\global\@lastrefnum=1
+}
+
+
+% Generic working file/aux file initialization:
+% \@FileInit\writename=filename[Description] opens a file w/ a header
+
+\def\@FileInit#1=#2[#3]{% generic auxiliary file initialization
+ \immediate\openout#1=#2 \relax %
+ \immediate\write#1{\@comment #3 for job \jobname\space - created: \runtime}%
+ \immediate\write#1{\@comment ====================================}}
+
+
+%==================================================*
+% \LoadSiteFile looks for the file TXSsite.tex and reads it in.
+% This is only done once when INITEX is run to create the format
+% file, not everytime texsis is invoked. We first try to see if the
+% file exists, and if so just load it silently. If we can't see it we
+% say something before the \input to help out in case it's not found.
+% See Note 3 below in ``Autoloaded Styles'' for further explaination.
+
+\newread\txsfile % input for style files and run-time patches
+\let\patchfile=\txsfile
+
+\def\LoadSiteFile{% load the site info file TXSsite.tex
+ \immediate\openin\patchfile=TXSsite.tex % try to open patch file
+ \ifeof\patchfile % if EOF then it is not there
+ \emsg{> No TXSsite.tex file found.}%
+ \immediate\closein\patchfile % close it to be sure
+ \else
+ \emsg{> Trying to read in TXSsite.tex...}%
+ \immediate\closein\patchfile % close it to read with \input
+ \input TXSsite.tex \relax % \input the site info
+ \fi}
+
+
+%==================================================*
+% \ReadPatches looks to see if there is a patch file out there called
+% \TXSpatches. If so, it is read in. These should be run-time updates
+% and small patches and such. You can change the name (or put a path
+% in the name!) by re-defining \TXSpatches in TXSsite.tex when building
+% the format file. \ReadPatches is inclued in \everyjob so it's done
+% whenever you run texsis. This will not work on OZTeX or others
+% which do not treat \openin and \ifeof properly. Tough luck.
+% See Note 3 below in ``Autoloaded Styles'' for further explaination.
+
+\def\ReadPatches{% read in a patch/mod files, if they exist
+ \immediate\openin\patchfile=\TXSpatches.tex % try to open patch file
+ \ifeof\patchfile % if EOF then it isn't there
+ \closein\patchfile % so just close it.
+ \else\immediate\closein\patchfile % close so to \input
+ \input\TXSpatches.tex \relax % \input the patches
+ \fi
+%
+% ALso look to see if there is a modifications file out there called
+% TXSmods.tex (or change the name in \TXSmods). If so, read this
+% in too. This should contain personal modifications to macros and
+% such, not system patches.
+%
+ \immediate\openin\patchfile=\TXSmods.tex \relax% try to open mod file
+ \ifeof\patchfile % if EOF then it isn't there
+ \closein\patchfile % so just close it.
+ \else\immediate\closein\patchfile % close it to \input
+ \input\TXSmods.tex \relax % \input the mod file
+ \fi}
+
+%======================================================================*
+% LOADED and AUTOLOADED styles:
+%
+% Special document layouts can be loaded from a ``style'' file as needed.
+% To load a particluar layout called \foo from the file foobar.txs use:
+%
+% \loadstyle\foo{foobar.txs}
+%
+% (This is similar to \documentstyle in LaTeX, but we consider that
+% to be a reserved word for LaTeX.) By convention TeXsis style files
+% end with ``.txs'' to distinguish them from LaTeX style files.
+%
+% Note 1: The style file foobar.txs must be readable at run time,
+% either from the current directory, in one of the directories
+% where your particular version of TeX looks for the \input command.
+%
+% Note 2: The control sequence \foo must be redefined in the style
+% file, since the new version of \foo is invoked after the file is
+% loaded. If it is not redefined we avoid the potential infinite loop
+% and instead print an error message.
+%
+% Note 3: We have used \openin to try to determine if the file to load
+% exists, but some implementations of TeX do not look through the whole
+% TEXINPUTS path for \openin (as they do for \input), and some do not
+% treat \ifeof correctly in any case, so this is not a reliable test.
+% We consider this a bug, but we have to live with it until those guys
+% get their TeX fixed! So meanwhile if we think that the \input might
+% fail we print a message to say what we are trying to do before doing it.
+
+\def\loadstyle#1#2{% % load a definition for #1 from file #2
+ \def#1{\@loaderr{#1}}% % disable #1 (just in case...)
+ \ATunlock % make @ a letter, in case it's in the file
+ \immediate\openin\txsfile=#2 % try to open the file to see if it exists
+ \ifeof\txsfile % if end of file, then print a message
+ \emsg{> Trying to load the style file #2...}% before trying to \input
+ \fi %
+ \closein\txsfile % just close the file in any case
+ \input #2 \relax % load (or try to) the file with the new \def
+ \ATlock % @ now no longer a letter
+ #1} % now use the new definition
+
+
+% It's an error if the macro #1 above was not redefined in the style
+% file: [And if we didn't change the definition of #1 to something else
+% we would just keep reading the (non-existent) file over and over!]
+
+\newhelp\@utohelp{%
+loadstyle: The macro named above was supposed to be defined^^M%
+In the style file that was just read, but I couldn't find^^M%
+the definition in that file. Maybe you can learn something^^M%
+from the comments in that style file, or find someone who knows^^M%
+something about it.}
+
+\def\@loaderr#1{% error message for \loadstyle
+ \newlinechar=`\^^M % ^^M is line break
+ \errhelp=\@utohelp % longer help message
+ \errmessage{No definition of \string#1 in the style file.}}
+
+
+% AUTOLOAD:
+% Many of the most basic special document layouts are kept in
+% style files, but we don't want the user to have to know which
+% file is which. Hence we use \autoload to tell it to automatically
+% load the true definition from the style file if the layout
+% (or something from inside it) is called for.
+% \autoload\foo{file} defines \foo so that it's full definition
+% is read from the named file when \foo is invoked.
+%
+% [Note one problem: if called inside a group then the definitions
+% will go away when the group ends!]
+
+\def\autoload#1#2{% automatically load a definition from a file
+ \def#1{\loadstyle#1{#2}}}
+
+
+% List of autoloaded document styles:
+
+\autoload\PhysRev{PhysRev.txs} % Physical Review 2-column
+\autoload\PhysRevLett{PhysRev.txs} % Physical Review Letters
+\autoload\PhysRevManuscript{PhysRev.txs}% Physical Review manuscript
+\autoload\nuclproc{nuclproc.txs} % Nuclear Physics proceedings
+\autoload\NorthHolland{Elsevier.txs} % North-Holland single column
+\autoload\NorthHollandTwo{Elsevier.txs} % North-Holland double column
+\autoload\WorldScientific{WorldSci.txs} % World-Scientific proceedings
+\autoload\IEEEproceedings{IEEE.txs} % IEEE conference proceedings
+\autoload\IEEEreduced{IEEE.txs} % 75% reduced IEEE proceedings
+\autoload\AIPproceedings{AIP.txs} % American Institute of Physics
+\autoload\CVformat{CVformat.txs} % sample macros for Curriculum Vitae
+
+% Indexing macros using MakeIndex:
+
+\autoload\idx{index.tex}\autoload\index{index.tex}\autoload\theindex{index.tex}
+\autoload\markindexfalse{index.tex}\autoload\markindextrue{index.tex}
+\autoload\makeindexfalse{index.tex}\autoload\makeindextrue{index.tex}
+
+% Assorted tools
+
+\autoload\spine{spine.txs}
+
+% Other styles which you want to be automatically loaded can
+% defined in the local customization file TXSsite.tex.
+
+% For the other basic document styles which are not loaded from style
+% files see TXSfmts.tex.
+
+%>>> EOF TXSinit.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSletr.tex b/Master/texmf-dist/tex/texsis/base/TXSletr.tex
new file mode 100644
index 00000000000..1d1540710be
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSletr.tex
@@ -0,0 +1,357 @@
+%% file: TXSletr.tex - Letter Format - TeXsis version 2.18
+%% @(#) $Id: TXSletr.tex,v 18.1 2000/06/01 21:49:58 myers Exp $
+%======================================================================*
+%
+% A format for typing simple business letters. These macros
+% follow closely the letter format given in The TeXbook. The macros
+% here are tuned for BNL stationary, but can easily be adapted for
+% other stationary. A typical letter would look like:
+%
+% \letter % set up letter document format
+% \withEnvelope % to create an envelope too
+% \letterhead{xxxx} % xxxx is phone extension
+% \address % get address in box
+% <name and address> % line endings are respected!
+% \body % text of letter follows
+% Dear whoever,
+%
+% <text of your letter>
+%
+% \closing % begin closing
+% Sincerely yours, % closing salutation, indented
+% Your Name % indented, followed by a space
+% Your Title % optional additional line(s)
+% \annotations % initials, enclosures, etc.
+% <text> % can also use \ps
+% \cc <name> % carbon copies
+% <name> % to more than one person
+% \bye % end of letter
+%
+% -----------------------------------------------------------------------
+\message{Letter Format,}
+\catcode`@=11 % @ is a letter here
+
+% dimensions, counters, and boxes: \hdimphone and \vdimphone are the
+% positions relative to the page edge -- not the print boundaries -- of the
+% telephone number in \phoneletterhead. They are correct here for BNL
+% stationary. Similarly, \hdimdate and \vdimdate are the positions for the
+% date. These can be changed in TXSsite.tex to fit other stationary with
+% a generally similar format.
+
+\newdimen\headlineoffset \headlineoffset = 0.25 truein
+\newdimen\longindent \longindent = 3.5 truein
+
+\newdimen\hdimphone \hdimphone = 6.2truein
+\newdimen\vdimphone \vdimphone = 1.9truein
+\newdimen\hdimdate \hdimdate = 5.5truein
+\newdimen\vdimdate \vdimdate = 2.15truein
+
+\newskip\bigletterskip % skip down before address
+\bigletterskip=0.5 true in plus 0.5 true in minus .375 true in
+
+% -----------------------------------------------------------------------
+% Initialization. \LetterFormat is called by \letter but can also be
+% called separately.
+
+\def\LetterFormat{% %
+ \nopagenumbers % kill page numbers
+ \singlespaced % letters always begin \singlespaced
+ \quoteon % automatic open/close quotes
+ \headline={\LetterHeadline}% % running headline has addressee
+ \let\endmode=\par % start with this for \endmode
+ \def\addressee{}\def\theAddress{}% % start with no addressee or address
+ \let\date=\letterdate % \date puts date on top of letter
+ \let\body=\letterbody % \body begins text of letter
+ \obsolete\text\body % \text is obsolete as of 2.17
+ \let\cc=\ccletr % carbon copy for letters
+}
+
+\def\Letter{% document format for letters
+ \ContentsSwitchfalse % no table of contents
+ \refswitchfalse % no reference list
+ \auxswitchfalse % no forward references
+ \texsis % initialize
+ \LetterFormat} % Setup using \LetterFormat
+
+\def\letter{\Letter} % synonym
+
+
+% \LetterHeadline does the running heads for pages after the first
+
+\def\LetterHeadline{% % headline for extra pages
+ \ifnum\pageno>1 % headline placement and spacing
+ \ifx\addressee\empty\relax % no addressee, so
+ {\hfil Page \folio}% % just page number
+ \else % otherwise addressee, date, page
+ {\tenrm To \addressee\hfil\today\hfil Page \folio}%
+ \fi %
+ \else\hfil\fi} % but nothing on page 1
+
+
+% \LetterWidth adjusts the width of the letter to allow long or
+% short letters to be fit nicely on the page.
+
+\def\LetterWidth#1{% % set width for letter
+ \hsize=#1 % set \hsize
+ \dimen0=#1 % calculate horizontal shift ...
+ \advance \dimen0 by -6.5truein % subtract default
+ \divide \dimen0 by 2 %
+ \advance \hoffset by -\dimen0 % center letter
+ \advance \longindent by \dimen0 % adjust closing
+}
+\def\letterwidth{\LetterWidth} % synonym
+
+\def\endletter{\endmode % how to end a letter
+ \par\vfill\supereject % as usual, from Plain TeX
+ \checktags % any undefined tags?
+ \end} % exit
+
+%-----------------------------------------------------------------------
+% \beginlinemode ends the previous mode and starts a mode where
+% \obeylines is in effect. \beginparmode ends the previous mode and
+% starts a mode where lines are concatenated.
+
+\def\beginlinemode{\endmode\begingroup\parindent=0pt\parskip=0pt
+ \obeylines\def\endmode{\par\endgroup}}
+
+\def\beginparmode{\endmode\begingroup\parskip=\medskipamount
+ \def\endmode{\par\endgroup}}
+
+%-----------------------------------------------------------------------
+% \address gets the address in a vbox, as well as printing it at
+% the top of the letter. Line endings are respected here. The first
+% line after \address is the \addressee, which is used in the heading on
+% all pages after the first.
+
+\def\address{%
+ \vskip\bigletterskip % skip down for address
+ \beginlinemode % look for line ends in address
+ \getaddress} % and get address
+
+\newbox\theaddress % to collect the address in
+
+{\obeylines\gdef\getAddress#1
+ #2
+ {#1\gdef\addressee{#2}\global\setbox\theaddress=\vbox\bgroup%%
+ #2
+ \def\endmode{\egroup\endgroup \copy\theaddress}%
+}}% end \gdef and \obeylines
+
+\let\getaddress=\getAddress % default address collection
+
+
+% Use \body before typing the body of the letter. This is defined
+% to be \letterbody. \text is no longer a synonym (as of 2.17)!
+
+\def\letterbody{%
+ \vskip\bigletterskip % skip down for address
+ \bigskip % skip some more
+ \beginparmode % paragraph mode
+ \raggedright\pretolerance=2500 % Letters are not justified
+ \noindent} % don't indent salutation
+
+
+% Use \closing at the end of the letter. It automatically puts a
+% space for a signature between the 1st and 2nd lines after \closing.
+% It also defines \theSignature for a possible \Envelope.
+
+\def\closing{\beginlinemode\getclosing}
+{\obeylines\gdef\getclosing#1
+ #2
+ #3
+ {#1\nobreak\bigskip\nobreak\bigskip \leftskip=\longindent #2
+ \nobreak\vskip .5 true in \gdef\theSignature{#3}%
+ #3
+}}
+
+
+% \annotations and \ps are used at the end of the letter. \annotations
+% respects lines while \ps gives paragraph mode. \ps has no
+% indentation, but you have to provide the ``P.S.'' yourself.
+% \ccletr is \cc for letters, and \Encl can be used to note enclosures
+
+\def\annotations{\beginlinemode\nobreak\bigskip
+ \def\par{\endgraf\nobreak}\obeylines\par}
+
+\def\ps{\beginparmode\nobreak\bigskip
+ \interlinepenalty 5000\def\par{\endgraf\penalty 5000}
+ \noindent}
+
+\def\ccletr{\beginlinemode
+ \nobreak \bigskip % skip down
+ \def\par{\endgraf\nobreak}% % as for \annotations
+ \obeylines\par % obey lines
+ \ccitem{cc:\ }}% % print cc:
+\def\cc{\ccletr} % synonyms
+\def\CC{\cc} % synonyms
+
+\def\Encl{\beginlinemode
+ \nobreak \bigskip % skip down
+ \def\par{\endgraf\nobreak}% % as for \annotations
+ \obeylines\par % obey lines
+ \ccitem{Encl:\ }} % print cc:
+\def\encl{\Encl} % synonym
+
+% \ccitem does the work for \cc and \Encl
+\def\ccitem#1{\setbox0\hbox{#1\quad}% % box0 = argument
+ \parindent=\wd0 % get its width
+ \hang % hanging indentation
+ \rlap{\copy0}% % and write it
+ \nobreak % forbid break
+ \vskip-\baselineskip\relax} % kill the skip
+
+\def\newpage{\vfill\eject}
+
+%======================================================================*
+% LETTERHEADS (simple):
+%
+% \letterhead just spaces down and puts the date at the top of the
+% page. \phoneletterhead puts in a phone number and the date at positions
+% given by \hdimphone, \vdimphone and \hdimdate, \vdimdate relative to
+% the true page boundaries. Customized versions of these can be put
+% in the TXSsite.tex file (see the Installation Appendix in the Manual).
+
+\def\letterhead#1{% %
+ \vbox{\vskip 0.5 truein}% % skip down for the date
+ \line{\hfil\today}% % right justify date
+ \vskip\bigletterskip}% % space down to the address
+
+\def\phoneletterhead#1{% % #1 is phone number
+ \vbox{\vskip-\voffset\vskip-\headlineoffset % skip down to position
+ \vskip\vdimphone} % of phone number
+ \hbox{\hskip-\hoffset\hskip\hdimphone #1}% % skip over to number
+ \vskip-\vdimphone\vskip\vdimdate % skip down to date
+ \hbox{\hskip-\hoffset\hskip\hdimdate \today} % date
+ } %
+
+\def\letterdate{% % \letterdate just puts date on letters
+ \vbox{\vskip 0.5 truein}% % skip down for the date
+ \line{\hfil\today}% % right justify date
+ \bigskip} % space down to the address
+
+
+%======================================================================*
+% Printing Envelopes:
+%
+% \MakeEnvelope prints an envelope, using #1 as the address and #2
+% as the return address. If you print this (in landscape mode!) and
+% feed a blank envelope through your printer you'll get a printed envelope.
+%
+% \withEnvelope changes the definition of \address in the letter macros
+% so that the address is saved in a macro, not a box. It then arranges
+% for an appropriate \MakeEnvelope command to be written to the file
+% \jobname.env at the end of the job (when you say \endletter or \bye).
+% Run that file through TeXsis and print the output (in landscape) and
+% you'll get your envelope.
+%
+% Note that the modified \address requires that you begin the body of
+% the letter with \body, not \text.
+%
+\message{with envelopes.}
+
+% Envelope Dimensions: (change these in TXSsite.tex if yours are different)
+
+\newdimen\EnvlWidth \EnvlWidth=24cm % Envelope width
+\newdimen\EnvlHeight \EnvlHeight=10.5cm % Envelope height
+\newdimen\EnvlVoffset \EnvlVoffset=1.25in % vertical start position
+
+% \withEnvelope changes \address to use the alternate version below,
+% and arranges to have the envelope file \jobname.env created at the
+% end of the job, using \Envelope. The way this is done is a real hack,
+% but it works: In TeXsis \bye calls \checktags to check for undefined
+% tags (labels for equations and such). But since tags aren't used all
+% that much in letters we simply change \checktags to call \Envelope instead.
+
+\def\withEnvelope{%
+ \let\getaddress=\getEnvAddressee %
+ \def\checktags{\emsg{\@comment Writing the envelope to \jobname.env...}%
+ \Envelope %
+ \immediate\write\Envout{\NX\bye}% make sure it ends with \bye!
+ \gdef\checktags{}% % prevent recursion (really?)
+ }
+}
+
+
+% Alternate version of \getaddress for \Envelope changes the
+% behaviour of \address. Everything up to the following \body is the
+% address, and the first line is the \addressee.
+
+{\obeylines\gdef\getEnvAddressee#1
+ #2
+ {#1\gdef\addressee{#2}\getEnvAddress}%
+\gdef\getEnvAddress#1\body{\xdef\theAddress{\addressee
+ #1}\endaddress}%
+}% end \obeylines
+
+
+\def\endaddress{\endgroup % end \linemode
+ \vbox{\parskip=0pt\parindent=0pt\theAddress\vskip 0pt}% print it
+ \letterbody} % do the \body
+
+
+% \Envelope writes commands to the file \jobname.env for producing
+% an envelope addressed to the addressee, with the return address
+% of the signer of the letter constructed from \theSignature (from \closing)
+% and \ReturnAddress (from TXSsite.tex, or you set it yourself).
+
+\newwrite\Envout % output Envelope file
+
+\def\EnvInit{\@FileInit\Envout=\jobname.env[Envelope]\gdef\EnvInit{}}
+
+\def\Envelope{\endmode\def\endmode{\relax}%
+ \EnvInit
+ \immediate\write\Envout{\NX\texsis\NX\ATunlock}%
+ \immediate\write\Envout{\NX\MakeEnvelope{\theAddress}\@comment}%
+ \immediate\write\Envout{{\theSignature\NX\n\ReturnAddress}}%
+}
+
+
+% \MakeEnvelope{address}{return address} actually prints the envelope.
+% \MakeEnvelope sets things up and turns on \obeylines to see line
+% endings, then calls \@MakeEnvelope to actually make the envelope.
+
+\def\MakeEnvelope{\vfill\eject % start on a new page
+ \hsize=\EnvlWidth\vsize=\EnvlHeight % size page to match envelope
+ \hoffset= -0.90in % left offset is edge of envelope
+ \voffset=\EnvlVoffset % down to the top of the envelope
+ \emsg{Envelope offset is \the\EnvlVoffset\ from the top (hope that's okay).}
+ \nopagenumbers %
+ \begingroup\singlespaced\obeylines % single spaced
+ \@MakeEnvelope}%
+
+\def\@MakeEnvelope#1#2{% print address & return address on envelope
+%% \tightbox{\loosebox{%---% ONLY FOR TESTING
+ \vbox to \EnvlHeight{\hsize=\EnvlWidth % Envelope Size
+ \vskip 0.2cm\line{\hskip 0.8cm % space return address down and over
+ \vbox to 2.5cm{\hsize=8cm\parskip=0pt\parindent=0pt %
+ #2\vss}\hfill}% % Return Address:
+ \vskip 1cm plus 1fil\line{\hskip 9cm% space address down and over
+ \vbox{\hsize=14cm\parskip=0pt\parindent=0pt %
+ #1\vss}\hfill}% % Mailing Address
+ \vskip 1cm plus 1fil}% % space below address
+%% }}%---% ONLY FOR TESTING
+ \endgroup\vfill} % end \obeylines, skip rest of page
+
+\def\ReturnAddress{\hbox{\ }\hfill\relax}% change this in TXSsite.tex
+\def\theSignature{}%
+
+%======================================================================*
+% FORM LETTERS.
+%
+% The form letter macros formerly in TXSform.tex have been moved to a
+% style file, Formletr.txs, so that they are only loaded when needed
+% (since that is infrequent). But to be able to specify the label
+% dimensions in the site file we need to define the dimensions anyway.
+
+\newdimen\fullHsize \fullHsize=8.5in % hsize for label page
+\newdimen\fullVsize \fullVsize=11.50in % vsize for label page
+\newdimen\lblHsize \lblHsize=2.833in % width of standard label
+\newdimen\lblVsize \lblVsize=1.365in % ht. of std. label - a bit
+\newdimen\lblVoffset \lblVoffset=-.900in % vertical starting position
+\newdimen\lblHoffset \lblHoffset=-0.750in % horizontal starting position
+
+\autoload\formLetters{Formletr.txs}\autoload\formletters{Formletr.txs}
+\autoload\formLabels{Formletr.txs}\autoload\formlabels{Formletr.txs}
+\autoload\formEnvelopes{Formletr.txs}\autoload\formenvelopes{Formletr.txs}
+
+%>>> EOF TXSletr.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSmacs.tex b/Master/texmf-dist/tex/texsis/base/TXSmacs.tex
new file mode 100644
index 00000000000..82e90ccf27c
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSmacs.tex
@@ -0,0 +1,669 @@
+%% file: TXSmacs.tex - Main Macros - TeXsis version 2.18
+%% @(#) $Id: TXSmacs.tex,v 18.0 1999/07/07 21:30:29 myers Exp $
+%========================================================================*
+% TeXsis -- Main Macros
+%
+% This file contains various macros used throughout TeXsis,
+% either by themselves or by other macros. Some of the more useful
+% ones to know about are:
+%
+% \draft prints "draft" with the date and time at the
+% bottom of the page
+% \singlespaced sets single spacing.
+% \doublespaced sets double (actually 1.5 times) spacing.
+% \triplespaced sets triple spacing for drafts.
+% \widenspacing increases spacing by 1.25.
+% \quoteon Automatic opening and closing " by making " an
+% active character. Turn off with \quoteoff.
+% \Footnote Singlespaced analog of \footnote
+% \Vfootnote Singlespaced analog of \vfootnote
+% \NFootnote numbered footnotes (using \Footnote)
+%
+%======================================================================*
+% (C) Copyright 1989, 1992, 1997 by Eric Myers and Frank E. Paige
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the GNU General Public License (GPL).
+% This software is made available WITHOUT ANY WARRANTY of any kind.
+% Give the command \LicenseInfo for further details.
+%======================================================================*
+\message{TeXsis main macros.}
+\catcode`@=11 % @ is a letter here
+\let\XA=\expandafter % shorthand for \expandafter is \XA
+\let\NX=\noexpand % shorthand for \noexpand is \NX
+
+% We've added a few more active characters, so we have to modify \dospecials
+
+\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&\do\"\do\(\do\)\do\[\do\]%%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
+
+
+%--------------------------------------------------*
+% ERROR REPORTING and DRAFT marks:
+
+% \emsg writes the message "#1", ON A NEW LINE, on the terminal
+% and in the log. Various \things are turned off.
+
+\def\emsg#1{\relax% write an error/information message to the screen
+ \begingroup % disable special characters
+ \def\@quote{"}% % to output "
+ \def\TeX{TeX}\def\label##1{}\def\use{\string\use}%
+ \def\ { }\def~{ }% spaces are spaces
+ \def\tt{}\def\bf{}\def\Tbf{}\def\tbf{}%
+ \def\break{}\def\n{}\def\singlespaced{}\def\doublespaced{}%
+ \immediate\write16{#1}%
+ \endgroup}
+
+% \cmsg writes a ``comment'' \emsg message with leading ``%''
+
+\def\cmsg#1{\emsg{\@comment #1}}
+
+% \@comment is for writing % to a file such as the table of contents
+% or list of figures. It expands to '% '
+
+{\catcode`\%=11 \gdef\@comment{% }}
+
+% \@errmark writes a short error message in the right margin
+
+\newif\ifmarkerrors \markerrorsfalse % default is off
+
+\def\@errmark#1{\ifmarkerrors % only if \markerrorstrue
+ \vadjust{\vbox to 0pt{% % vbox with no height
+ \kern-\baselineskip % insert text next to line
+ \line{\hfil\rlap{{\tt\ <-#1}}}% % in right margin
+ \vss}}\fi} % end \vbox and \vadjust
+
+
+% \draft marks the bottom of the page with "Preliminary Draft",
+% date and time, and turns on error marking and equation tracing.
+
+\def\draft{% puts DRAFT marks on footer lines of document
+ \def\draftline{{\tentt\DraftName\hfill % DRAFT stamp at
+ -~\folio~- \hfill \runtime}}\footline={\draftline}% bottom of page
+ \eqnotracetrue % equation tracing enabled
+ \markerrorstrue % DO mark errors in right margin
+ \overfullrule=1em} % marks overfull \hbox!
+
+\def\DraftName{Preliminary Draft}% Can be changed (Native Language Support)
+
+
+%--------------------------------------------------*
+% Interline Spacing and Footnotes.
+
+\def\setTableskip{\relax} % was used, but not now
+
+\def\singlespaced{% sets interline spacing to \normalbaselineskip
+ \baselineskip=\normalbaselineskip % reset interline
+ \setRuledStrut % set ruled table spacing
+ \setTableskip} % set table spacing
+\def\singlespace{\singlespaced} % synonym for \singlespaced
+
+\def\doublespaced{% sets interline spacing to 1.5 the \normalbaselineskip
+ \baselineskip=\normalbaselineskip % increase interline
+ \multiply\baselineskip by 150 % spacing by 1.50
+ \divide\baselineskip by 100 % of normal
+ \setRuledStrut % set ruled table spacing
+ \setTableskip} % set table spacing
+\def\doublespace{\doublespaced} % synonym for \doublespaced
+
+\def\TrueDoubleSpacing{% sets interline spacing to twice \normalbaselineskip
+ \baselineskip=\normalbaselineskip % increase interline
+ \multiply\baselineskip by 2 % spacing by 2.0
+ \setRuledStrut % set ruled table spacing
+ \setTableskip} % set table spacing
+\def\truedoublespacing{\TrueDoubleSpacing} % synonym for \TrueDoubleSpacing
+
+\def\triplespaced{% sets interline spacing to 3.0 the \normalbaselineskip
+ \baselineskip=\normalbaselineskip % increases interline
+ \multiply\baselineskip by 3 % spacing by 3.0
+ \setRuledStrut % set ruled table spacing
+ \setTableskip} % set table spacing
+
+\def\widenspacing{% increases the interline spacing by 1.25
+ \multiply\baselineskip by 125 % increase the interline
+ \divide\baselineskip by 100 % spacing by a factor of 1.25
+ \setRuledStrut % set ruled table spacing
+ \setTableskip} % set ``nice'' table spacing
+\def\whitespaced{\widenspacing} % synonym for \widenspacing
+\def\whitespace{\widenspacing} % synonym for \widenspacing
+
+
+% \Footnote is like \footnote, but the text is \singlespaced in \FootFont
+% and the reference mark is automatically put in a superscript. The
+% superscript is \smash'ed so it does not change the interline spacing.
+% \Vfootnote is like \vfootnote, but singlespaced in \Footfont also.
+% How this works: to use the same tricks with \vfootnote as used by
+% \footnote (see \vfootnote in Appendix B of the TeXbook) we begin a
+% group in which \FootFont and single spacing are invoked, then change
+% the definition of \@foot (which ends the \vfootnote) so that it also
+% closes the extra group we've opened.
+
+\def\Footnote#1{% singlespaced \footnote
+ \let\@sf\empty % assume no scale factor
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi % unless h-mode
+ ${}^{\scriptstyle\smash{#1}}$\@sf % smashed superscript mark
+ \Vfootnote{#1}} % do it with \Vfootnote
+
+\def\Vfootnote#1{% singlespaced \vfootnote
+ \begingroup % Following changes temporary
+ \def\@foot{\strut\egroup\endgroup}% % change how to end \vfootnote
+ \tenpoint % default to 10pt type
+ \baselineskip=\normalbaselineskip % default single spaced
+ \parskip=0pt % no space between paragraphs
+ \FootFont % change to ``footnote'' font
+ \vfootnote{${}^{\hbox{#1}}$}} % superscript mark in footnote
+
+\def\FootFont{\rm} % default footnote typestyle
+
+
+% Numbered Footnotes: \NFootnote{text} creates a footnote and gives it
+% a number, which is used as the reference mark (superscript). To reset
+% the numbering (as at the begining of a chapter) just say \footnum=0.
+
+\newcount\footnum \footnum=0
+\let\footnotemark=\empty % for # marks and such
+
+\def\NFootnote{% consecutively numbered footnotes
+ \advance\footnum by 1
+ \xdef\lab@l{\the\footnum}%
+ \Footnote{\footnotemark\the\footnum}}
+
+
+%--------------------------------------------------*
+% SPACING, skips and breaks:
+
+% Alternate definition of ~ makes it the same as \0 in math mode.
+% You can use it as a space which is the width of a digit, and it
+% is a single character in the manuscript file. It behaves as usual
+% (a tie, or required space) in non-math mode.
+
+\def~{\ifmmode\phantom{0}\else\penalty10000\ \fi} % tie in math mode too
+\def\0{\phantom{0}} % \0 is phantom 0 in any font
+
+% thinskip (hmode). This def allows \, to be used in both math
+% and nonmath mode
+
+\def\,{\relax\ifmmode\mskip\the\thinmuskip\else\thinspace\fi}
+
+% Use \topspace in place of \vskip to add space at top of a page
+% (a \vskip by itself is discarded at the top of an empty page).
+
+\def\topspace{\hrule width \z@ height \z@ \vskip}
+
+\def\n{\hfil\break} % \n is newline
+\def\nl{\hfil\break} % \nl is newline (alternate)
+\def\newpage{\vfill\eject} % skip to next page
+
+\def\Afour{\hsize=16.5cm \vsize=24.5cm\relax} % A4 paper size
+
+
+%--------------------------------------------------*
+% \bye -- end of job processing
+%
+% A slightly modified version of \bye will \checktags at end of job
+% \checktags comes from TXStags.tex. Also, \endmode can be used
+% to close any outstanding mode, as in a \letter or \memo.
+% This version is not \outer, so we can use \TwoPass if desired.
+
+\def\bye{% slightly revised version of \bye for TeXsis
+ \endmode % ends any special modes
+ \par\vfill\supereject % as usual, from Plain TeX
+ \checktags % any undefined tags?
+ \end}
+
+\def\endmode{\relax} % default does nothing
+
+%-%\ifx\checktags\undefined
+%-% \def\checktags{\relax}\fi % TXStags will define this...
+
+%--------------------------------------------------*
+% Un-TeX: how to turn off things that only get turned on in plain TeX
+
+\def\unobeylines{\catcode`\^^M=5} % make ^^M just <return>
+{\obeyspaces\gdef\unobeyspaces{\catcode`\ =10}}
+\def\unraggedright{\rightskip=\z@\spaceskip=0pt\xspaceskip=0pt}
+
+% Also, \seeCR let's ^^M be turned into space after detection
+% in an \obeylines environment
+
+{\catcode`\^^M=\active\gdef\seeCR{\catcode`\^^M\active \let^^M\space}}
+
+
+%--------------------------------------------------*
+% EASY QUOTES. Makes " an active character, which knows when to
+% be an open quote or a close quote
+
+\catcode`\"=\active
+\newcount\@quoteflag \@quoteflag=\z@ % keep track of quotes
+
+\def"{\@quote} % generic name for "
+
+\def\@quote{% gives `` for first quote, '' for second quote
+ \ifnum\@quoteflag=\z@ %
+ \@quoteflag=\@ne {``}% %
+ \else %
+ \@quoteflag=\z@ {''}% %
+ \fi}
+
+\def\quoteon{\catcode`\"=\active\def"{\@quote}} % turns on ``easy quotes''
+\def\quoteoff{\catcode`\"=12} % turns off ``easy quotes''
+\def\@checkquote#1{\ifnum\@quoteflag=\@ne\message{#1}\fi}
+
+
+% Default is \quoteoff. Turn quotes on only in \texsis
+% (so it won't interfer with any internal uses for ")
+
+\quoteoff % Must turn quotes off while scanning the next def
+
+\def\checkquote{{\quoteoff\@checkquote{> Unbalanced "}}} % checks balanced "'s
+
+
+%--------------------------------------------------*
+% BOXES and RULES:
+
+% \tightbox draws a rule box around the box #1 without any added space
+
+\def\tightbox#1{\vbox{\hrule\hbox{\vrule\vbox{#1}\vrule}\hrule}}
+\let\tightboxit=\tightbox % synonym
+
+
+% \loosebox put a loose box around a box (but no rules!).
+
+\def\loosebox#1{%
+ \vbox{\vskip\jot
+ \hbox{\hskip\jot #1\hskip\jot}%
+ \vskip\jot}}
+
+
+% \eqnbox{<equation>} puts a ruled box around an equation. With the
+% \lower\jot it can be used in horizontal mode too, not just displayed
+% equations. Thanks to Bob Love <rlove@raptor.rmnug.org> for the suggestion.
+
+\def\eqnbox#1{\lower\jot\tightbox{\loosebox{\quad $#1$ \quad}}}
+
+
+% \undertext underscores any text, uniformly
+
+\def\undertext#1{\setbox0=\hbox{#1}\dimen0=\dp0 %
+ \vtop{\box0 \vskip-\dimen0 \vskip 0.25ex \hrule}}
+
+% \theBlank creates a blank line to fill in ``the blank''
+
+\def\theBlank#1{\nobreak\hbox{\lower\jot\vbox{\hrule width #1\relax}}}
+
+
+% \setRuledStrut creates a vertical strut to hold the interline
+% spacing in ruled tables. It is defined in ruled.tex, so we just
+% make an empty definition here until then.
+
+\ifx\setRuledStrut\undefined\def\setRuledStrut{\relax}\fi
+
+
+%--------------------------------------------------*
+% MISC. useful stuff:
+
+% \Romannumeral gives uppercase roman numerals, of course
+
+\def\Romannumeral#1{\uppercase\expandafter{\romannumeral #1}}
+
+% \monthname{n} gives the English name for month number n
+
+\def\monthname#1{\ifcase#1 \errmessage{0 is not a 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\else \errmessage{#1 is not a month}\fi}
+
+% \jtem is a generalized \item from Don Groom with an arbitrary
+% indentation. Usage: \jtem{dimen}{label}
+
+\def\jtem#1#2{\par\hangafter0\hangindent#1
+ \noindent\llap{#2\enspace}\ignorespaces}
+
+% \leftpar makes an argument into a raggedleft paragraph
+% uses the same technique as figure captions
+
+\def\leftpar#1{%
+ \setbox\@capbox=\vbox{\normalbaselines
+ \noindent #1\par
+ \global\@caplines=\prevgraf}%
+ \ifnum \@ne=\@caplines
+ \leftline{#1}\else
+ \hbox to\hsize{\hss\box\@capbox\hss}\fi}
+
+
+%--------------------------------------------------*
+% \obsolete marks old versions of macros as obsolete by printing
+% a warning message. But it should still work.
+
+\def\obsolete#1#2{\def#1{\@obsolete#1#2}}
+
+\def\@obsolete#1#2{%
+ \emsg{>=========================================================}%
+ \emsg{> \string#1 is now obsolete! It may soon disappear!}%
+ \emsg{> Please use \string#2 instead. But I'll try to do it anyway...}%
+ \emsg{>=========================================================}%
+ \let#1=#2\relax % but let them use it anyway
+ #2} % and do as asked
+
+
+%--------------------------------------------------*
+% \ATlock makes "@" a non-letter to protect internal control sequences
+% \ATunluck makes "@" a letter so you can get at them
+
+\def\ATlock{\catcode`@=12\relax} % makes @ not a letter
+\def\ATunlock{\catcode`@=11\relax} % makes @ a letter
+
+% If someone tries to read a source or style file without having
+% said \ATunlock they will get all sorts of errors, most notably
+% that \@ is undefined. So we make \@ produce an error message:
+
+\newhelp\AThelp{@:
+You've apparantly tried to use a macro which begins with ``@''.^^M%
+These macros are usually for internal TeXsis functions and should^^M%
+not be used casually. If you really want to use the macro try first^^M%
+saying \string\ATunlock. If you got this message by pure accident^^M%
+then something else is wrong.}
+
+\def\@{\begingroup
+ \errhelp=\AThelp % longer help message
+ \newlinechar=`\^^M % ^^M is line break
+ \errmessage{Are you tring to use an internal @-macro?}\relax
+ \endgroup}
+
+
+%--------------------------------------------------*
+% COMMENTS: How to ignore large pieces of text.
+%
+% Use \comment to turn most anything into nothing (must have balanced {}!).
+% Usage:
+% \comment/* <text to be ignored> */ % the /* and */ are required!
+
+\long\def\comment#1/*#2*/{\relax} % just read args and do nothing
+
+
+% \Ignore and \endIgnore are almost the same, but an \endIgnore without
+% an \Ignore first is just ignored. Got that?
+
+\long\def\Ignore#1\endIgnore{\relax} % read arg to \endIgnore and do nothing
+\def\endIgnore{\relax} % if actually executed, just do nothing
+
+% \REV is used for keeping track of revisions. Usually it is just a
+% speciallized comment, but by changing the definition we print out
+% the revision record in the Appendix.
+
+\def\REV{\begingroup % Revisions
+ \def\endcomment{\endgroup}% % to close the \begingroup
+ \catcode`\|=12 % turn off "TeX quotes"
+ \catcode`(=12 \catcode`)=12 % make ( and )
+ \catcode`[=12 \catcode`]=12 % and [ and ] "other"
+ \comment} % treat text like a comment
+
+%-------------------------*
+% Simple \begin .. \end support (as in LaTeX, yuk):
+%
+% There is a conspiracy to preserve job security for typists by making
+% sure one has to type \begin{thing} and \end{thing} everywhere. In
+% TeXsis it's just \thing and \endthing, but to make these people happy
+% we just make \begin{thing} become \thing and similarly for \end{thing}.
+% The \begin starts a group, so that after the \end{thing} the command
+% \end goes back to it's normal plain TeX definition.
+% Note: we don't check that you begin and end the same thing. After all,
+% you might want to say \begin{midfigure} followed by \end{figure}.
+
+\def\begin#1{% \begin{foo} just becomes \foo
+ \begingroup % changes to \end are temporary!
+ \let\end=\endbegin % in this group \end will end the \begin
+ \expandafter\ifx\csname #1\endcsname\relax\relax % is \thing defined?
+ \def\next{\beginerror{#1}}% NO: flag an error
+ \else %
+ \def\next{\csname #1\endcsname}% YES: just invoke it
+ \fi\next}
+
+\def\endbegin#1{% \end{foo} just becomes \endfoo
+ \endgroup % now \end goes back to normal
+ \expandafter\ifx\csname end#1\endcsname\relax\relax % is \endthing defined?
+ \def\next{\begingroup\beginerror{end#1}}% % NO: flag an error
+ \else %
+ \def\next{\csname end#1\endcsname}% YES: just invoke it
+ \fi\next}
+
+\newhelp\beginhelp{begin:
+ The \string\begin\space or \string\end\space marked above is for a %
+ non-existant^^M%
+ environment. Check for spelling errors and such.}
+
+\def\beginerror#1{% \begin{foo} or \end{foo} fail if no \foo or \endfoo
+ \endgroup % make sure \end is back to normal
+ \errhelp=\beginhelp % longer help message
+ \newlinechar=`\^^M % ^^M is line break
+ \errmessage{Undefined environment for \string\begin\space or \string\end}}
+
+
+%--------------------------------------------------*
+% \unexpandedwrite<fileID>{<token-list>} will write the tokens
+% in the list #3 to the given output stream #1, but without expanding
+% them. As of TeXsis 2.17 a completely new method is used for doing
+% this, because the old method from the TeXbook using \aftergroup
+% could only handle short lists of tokens. (C) Copyright Eric Myers 1995
+% BE VERY CAREFUL IF YOU MODIFY THIS IN ANY WAY, IT IS RATHER SENSITIVE. -EAM
+
+% Lines below must have %% or not, as they are now, or this will not work
+
+\begingroup\seeCR %%
+\long\gdef\unexpandedwrite#1#2{\@CopyLine#1#2
+\endlist}%
+\long\gdef\@CopyLine#1#2
+#3\endlist{\@unexpandedwrite#1{#2}% write one line, unexpanded
+\def\@arg{#3}\ifx\@arg\par\let\@arg=\empty\fi %% ignore trailing ^^M
+\ifx\@arg\empty\relax\let\@@next=\relax %%
+\else\def\@@next{\@CopyLine#1#3\endlist}%
+\fi\@@next}%
+\long\gdef\writeNX#1#2{\@CopyLineNX#1#2
+\endlist}%
+\long\gdef\@CopyLineNX#1#2
+#3\endlist{\@writeNX#1{#2}% write one line, unexpanded
+\def\@arg{#3}\ifx\@arg\par\let\@arg=\empty\fi %% ignore trailing ^^M
+\ifx\@arg\empty\relax\let\@@next=\relax %%
+\else\def\@@next{\@CopyLineNX#1#3\endlist}%
+\fi\@@next}%
+\endgroup % end definitions inside \seeCR
+
+\long\def\@unexpandedwrite#1#2{% write tokens #2 to #1 but do not expand them
+ \def\@finwrite{\immediate\write#1}% % to write to the file
+ \begingroup % begin collecting tokens on stack
+ \aftergroup\@finwrite %
+ \aftergroup{\relax % put \write{ on the stack
+ \@NXstack#2\endNXstack % now process the argument list
+ \aftergroup}\relax % put closing } on the stack
+ \endgroup % now dump token list on stack!
+ }
+
+
+% \writeNX is the same as \unexpandedwrite but without the \immediate
+
+\long\def\@writeNX#1#2{% write tokens #2 to #1 but do not expand them
+ \def\@finwrite{\write#1}% % to write to the file
+ \begingroup % begin collecting tokens on stack
+ \aftergroup\@finwrite %
+ \aftergroup{\relax % put \write{ on the stack
+ \@NXstack#2\endNXstack % puts \NX\token on stack from #2
+ \aftergroup}\relax % put closing } on the stack
+ \endgroup} % now dump token list from stack!
+
+
+% Saying \@NXstack <stuff> \endNXstack will take all the tokens
+% in <stuff> and put them on the stack, with control sequences
+% prefaced by \noexpand
+
+\def\@NXstack{\futurelet\next\@NXswitch}
+
+\def\\{\global\let\@stoken= }\\
+
+\def\@NXswitch{% decides what to do with various types of tokens
+ \ifx\next\endNXstack\relax % if \endNXstack then we'll quit
+ \else\ifcat\noexpand\next\@stoken % if token is a space,
+ \aftergroup\space\let\next=\@eat% write \space and eat token
+ \else\ifcat\noexpand\next\bgroup % if token is \bgroup
+ \aftergroup{\let\next=\@eat % write { and eat it
+ \else\ifcat\noexpand\next\egroup % if token is \egroup
+ \aftergroup}\let\next=\@eat % write a } and eat it
+ \else % otherwize
+ \let\next=\@copytoken % just copy to the stack with \NX
+ \fi\fi\fi\fi
+ \next} % do it to the token
+
+
+% \@eat ignores the \next token and goes on to the
+% next one in the argument list
+
+\def\@eat{\afterassignment\@NXstack\let\next= }
+
+
+% \@copytoken copies one token to the stack with \aftergroup,
+% then calls \@NXstack to get the next one following.
+
+\long\def\@copytoken#1{% write token to stack, unexpanded
+ \ifcat\noexpand#1\relax % if token is a control sequence
+ \aftergroup\noexpand % preface with \noexpand
+ \else\ifcat\noexpand#1\noexpand~\relax % if token is an active character
+ \aftergroup\noexpand % preface with \noexpand
+ \fi\fi %
+ \aftergroup#1\relax % put the next token on the list
+ \@NXstack} % do next token from argument...
+
+\def\endNXstack\endNXstack{} % just marks the end of token list
+
+
+%======================================================================*
+% CHECKPOINT / RESTART - (C) copyright 1986 by Eric Myers
+%
+% The \checkpoint and \restart macros allow you to save important information
+% like the page number, chapter number, equation number, etc... and then
+% begin with those values on a new run.
+% Dependencies: TXSmacs.tex
+% ----------------------------
+\message{Checkpoint/Restart.}
+
+% I/O initialization:
+\newwrite\checkpointout % output for checkpoint/restart
+
+% ----------------------------
+% \checkpoint writes all restart info to the file #1.chk
+
+\def\checkpoint#1{\emsg{\@comment\NX\checkpoint --> #1.chk}%
+ \immediate\openout\checkpointout= #1.chk
+ \@checkwrite{\pageno} \@checkwrite{\chapternum}%
+ \@checkwrite{\eqnum} \@checkwrite{\corollarynum}%
+ \@checkwrite{\fignum} \@checkwrite{\definitionnum}%
+ \@checkwrite{\lemmanum} \@checkwrite{\sectionnum}%
+ \@checkwrite{\refnum} \@checkwrite{\subsectionnum}%
+ \@checkwrite{\tabnum} \@checkwrite{\theoremnum}%
+ \@checkwrite{\footnum}%
+ \immediate\closeout\checkpointout}%
+
+% \@checkwrite writes the value of #1 to the file, such that the value
+% is restored when the file is read with \Input
+
+\def\@checkwrite#1{\edef\tnum{\the #1}%
+ \immediate\write\checkpointout{\NX #1 = \tnum}}%
+
+
+% \restart{filename} reloads the checkpoint from the file #1.chk
+
+\def\restart#1{\relax
+ \immediate\closeout\checkpointout % close file, just in case
+ \ATunlock % make sure @ sign is a letter
+ \Input #1.chk \relax % read .CHK file in
+ \@firstrefnum=\refnum % get reference number and
+ \advance\@firstrefnum by \@ne % set first ref counter
+ \ATlock} % @ is protected again
+
+\let\restore=\restart % alternate name for \restart
+
+
+% \endstat prints out pertinent restart info on the terminal and
+% in the .log file. Useful at the end of a run.
+
+\def\endstat{%
+ \emsg{\@comment Last PAGE number is \the\pageno.}%
+ \emsg{\@comment Last CHAPTER number is \the\chapternum.}%
+ \emsg{\@comment Last EQUATION number is \the\eqnum.}%
+ \emsg{\@comment Last FIGURE number is \the\fignum.}%
+ \emsg{\@comment Last REFERENCE number is \the\refnum.}%
+ \emsg{\@comment Last SECTION number is \the\sectionnum.}%
+ \emsg{\@comment Last TABLE number is \the\tabnum.}%
+ \tracingstats=1}%
+
+
+%======================================================================*
+% RANDOM USEFUL MACROS. Most of these are useful only to hackers and are
+% used by macros in this package. Some of them are just general little
+% goodies that don't seem to fit anywhere else.
+
+\def\gloop#1\repeat{\gdef\body{#1}\iterate} % GLOBAL LOOP:
+
+
+% \apply a macro to a list of arguments
+% Usage:
+% \apply\macro{list of arguments, separated by commas}
+% It is possible to determine whether your at the last argument with
+% \iflastarg true text \else false text \fi
+% Since \apply uses global definitions, \apply's can't be nested
+% \empty is defined as {} in PLAIN
+
+\newif\iflastarg\lastargfalse
+\def\car#1,#2;{\gdef\@arg{#1}\gdef\@args{#2}}
+\def\@apply{%
+ \iflastarg
+ \else
+ \XA\car\@args;% get first argument
+ \islastarg
+ \XA\@fcn\XA{\@arg}%
+ \@apply
+ \fi}
+\def\apply#1#2{%
+ \gdef\@args{#2,}\let\@fcn#1%
+ \islastarg
+ \@apply
+ }
+\def\islastarg{\ifx \@args\empty\lastargtrue\else\lastargfalse\fi}%
+
+
+% \setcnt\counter{value} sets the counter \counter
+% to the given value, but only temporarily in this group.
+% After you leave the group the counter is set back to it's
+% value before you call \setcnt. Useful for figure captions
+% in the ``wrong'' group and other such wierd things.
+
+\def\setcnt#1#2{% set a counter to a value in a group
+ \edef\th@value{\the#1}% % evaluate counter
+ \aftergroup\global\aftergroup#1 % \global\counter=<old>
+ \aftergroup=\relax %
+ \XA\@ftergroup\th@value\endafter % all tokens the in counter
+ \global#1=#2\relax} % set the value in this group
+
+% \@ftergroup assigns \next the next token and
+% then calls \@ftertoken to put that token on the \aftergroup list
+
+\def\@ftergroup{\futurelet\next\@ftertoken}
+
+\long\def\@ftertoken#1{
+ \ifx\next\endafter\relax % \endafter ends
+ \let\next=\relax % so just do nothing
+ \else\aftergroup#1\relax % put the token on the list
+ \let\next=\@ftergroup % and get next token
+ \fi\next} % do what's \next
+
+
+% \DUMP - \dump for VMS
+% VMS translates command line arguments to uppercase, so
+% ``initex texsis \dump'' won't work unless \DUMP is defined.
+
+\let\DUMP=\dump
+
+
+% The following is mainly kept for historical reasons. Don't ask.
+
+\def\@seppuku{\errmessage{Interwoven alignment preambles are not allowed.}\end}
+
+
+%>>> EOF TXSmacs.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSmemo.tex b/Master/texmf-dist/tex/texsis/base/TXSmemo.tex
new file mode 100644
index 00000000000..0fcdabc4858
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSmemo.tex
@@ -0,0 +1,330 @@
+%% file: TXSmemo.tex - Memoranda - TeXsis version 2.18
+%% @(#) $Id: TXSmemo.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+% This is a set of TeX macros for producing simple memos.
+% The sytnax is:
+%
+% \MemoFormat (or simply \memo in TeXsis)
+% \to <name>
+% \from <name>
+% \subj <whatever the memo is about> or \re is same as \subj
+% \date <date of memo>
+% \text
+% <text of memo>
+% \bye
+%
+%----------------------------------------------------------------------*
+\message{Memo Format.}
+
+% ---------- Counters and such:
+
+\newdimen\memoindent \memoindent=2.54cm % indent for \to, \from, etc.
+\newdimen\firstheadoffset % \headlineoffset for first page only
+\firstheadoffset=0pt % start with headline down for \ORGANIZATION
+
+% ---------- Initialization: Memo document format for memoranda
+
+\def\Memo{\ContentsSwitchfalse% % no table of contents
+ \texsis % initialize TeXsis
+ \refswitchfalse % no reference list
+ \MemoFormat % Setup using \MemoFormat
+ \memoheader}% % do header at top
+\def\memo{\Memo} % synonym
+
+\def\MemoFormat{% set up \Memo environment
+ \voffset=0.125truein % top margin
+ \hsize=6.5truein % width of text
+ \raggedbottom %
+ \advance \vsize by -\voffset % subtract \voffset from vertical size
+ \nopagenumbers % no footlines
+ \let\makeheadline=\makememhed % alternate way of making
+ \headline={\MemoHeadline}% % headlines for memos
+ \RunningHeadstrue % default
+ \headlineoffset=0.8cm % raise all following headlines
+ \firstheadoffset=0pt % start with headline down for
+ \def\subjectline{}% % start with this null
+ \def\nopagenumbers{\RunningHeadsfalse}% redefine \nopagenumbers
+ \def\pagenumbers{\RunningHeadstrue}%% and \pagenumbers for this document
+ \twelvepoint % default is 12pt
+ \quoteon % enable easy quotes
+ \def\annotations{\annotatememo}% % annotations for memo
+ \def\cc{\ccmemo}% % carbon copy for memo
+ \def\Encl{\enclmemo}% % enclosure for memo
+ \def\ps{\psmemo}% % post script for memo
+ \def\endmode{\relax}% % for first item
+ \def\to{\ifmmode\rightarrow\else\To\fi}%
+ \let\text=\memotext % enable \text
+ \let\Text=\memotext % \Text is a synonym
+ \let\body=\memotext % \body is synonym for \text
+}
+
+
+% \ORGANIZATION names your institution. Replace it with whatever you
+% want for your own institution.
+
+\def\ORGANIZATION{} % change this in TXSsite.tex!
+
+% \memoheader prints the word MEMORANDUM at the top of the page and
+% sets up for \to, \from, etc...
+
+\def\memoheader{% % banner for top of first page
+ \pageno=1 % begin on page 1
+ \centerline{\fourteenpoint % 14 pt type centered
+ M E M O R A N D U M}% %
+ \bigskip\bigskip % space
+ \relax}% %
+
+%---------------------------------------
+% new def of \makeheadline for MEMOFORMAT, uses \firstheadoffset
+
+\def\makememhed{\vbox to 0pt{\vskip-22.5pt
+ \ifnum\pageno>1\vskip-\headlineoffset
+ \else\vskip-\firstheadoffset\fi
+ \line{\vbox to 8.5pt{}\the\headline}\vss}\nointerlineskip}
+
+% \MemoHeadline prints the subject and page number at the top of each page
+
+\def\MemoHeadline{% headline for Memoranda
+ \ifnum\pageno>1 % if not first page...
+ \ifRunningHeads % running headlines on top of page?
+ {\tenrm\subjectline\hfil Page~\folio}% % print subject line and page #
+ \else % no running headlines?
+ {\hfil}% % then nothing
+ \fi
+ \else % On the first page do header
+ {\hfil\twelvess\ORGANIZATION\hfil}% print name of organization
+ \fi}%
+
+%-----------------------------------------------------------------------
+% \memoitem is the basic template for each field
+
+\def\memoitem#1{\endmode % end previous field
+ \begingroup % begin a new field
+ \def\endmode{\par\endgroup}% % set up to end this field
+ \parskip=0pt % no \parskip
+ \singlespaced % no big space if several lines
+ \medskip\noindent % skip down a bit
+ \hangindent=\memoindent % hanging indentation
+ \hangafter=1 % after first line
+ \hbox to \memoindent{{\tenss #1}\hfil}% label the field
+ \nobreak}% % don't break after label
+
+\def\endmode{\relax} % for first item
+
+%---------------------------------------
+% TO: and FROM: and FAX:
+
+\def\To{\memoitem{TO:}}
+\def\TO:{\To}
+\def\From{\memoitem{FROM:}}
+\def\FROM:{\From}
+\def\from{\From}
+
+\def\FAX{\memoitem{FAX \#:}}
+
+%---------------------------------------
+% CC: (Carbon Copies)
+
+\def\ccmemo{\endmode
+ \def\endmode{\vskip0pt\endgroup}%
+ \bigskip % skip down a bit
+ \begingroup\obeylines % obey line ends
+ \parskip=0pt % no skip between items
+ \ccitem{cc:\ }%
+ }
+\def\CC{\cc}
+
+% ---------- \ccitem does the work for \cc and other end of memo fields
+
+\def\ccitem#1{\setbox0\hbox{#1\quad}% % box0 = argument
+ \parindent=\wd0 % get its width
+ \hang % hanging indentation
+ \rlap{\copy0}% % and write it
+ \vskip-\baselineskip\relax}% % kill the skip
+
+% ---------- \Distribution is like CC (\obeyines format)
+
+\def\distribution{\endmode
+ \def\endmode{\vskip0pt\endgroup}%
+ \bigskip %
+ \begingroup\obeylines % obey line ends
+ \def\n{\par}% % break lines at \n
+ \parskip=0pt %
+ \ccitem{Distribution:}%
+ }
+\def\Distribution{\distribution}% % synonym
+
+% ---------- \enclmemo is also like \cc (obeylines format)
+
+\def\enclmemo{\endmode %
+ \def\endmode{\vskip0pt\endgroup}% %
+ \bigskip % skip down a bit
+ \begingroup\obeylines % obey line ends
+ \parskip=0pt % no skip between items
+ \ccitem{Encl:\ }%
+ }
+
+% ---------- \annotatememo is \annotations for memo format
+
+\def\annotatememo{\endmode % end previous item
+ \def\endmode{\vskip0pt\endgroup}% % set up new ending
+ \begingroup % changes local
+ \nobreak\bigskip\nobreak % skip some
+ \parindent=0pt\parskip=0pt % no indent or skip
+ \obeylines}% % obey line endings
+
+% ---------- \psmemo does \ps for a memo
+
+\def\psmemo{\endmode % end previous item
+ \def\endmode{\vskip0pt\endgroup}% % set up ending
+ \begingroup % start a group
+ \nobreak\bigskip\nobreak % skip some
+ \interlinepenalty 5000 % avoid breaks
+ \def\par{\endgraf\penalty 5000}}% % avoid breaks
+
+%---------------------------------------
+% SUBJECT: and RE: (saves first line in \subjectline for tops of pages)
+
+\def\subjectitem#1{\endmode % close previous field
+ \def\endmode{\relax}% % turn off \endmode before going to \memoitem
+ \gdef\@subjtype{#1}% % label the field
+ \begingroup\obeylines % obeylines is on to get first subject line
+ \getsubject}% % get first line
+\def\Subj{\subjectitem{SUBJECT:}}%
+\def\SUBJ{\subjectitem{SUBJECT:}}%
+\def\subj{\subjectitem{SUBJECT:}}%
+\def\subject{\subjectitem{SUBJECT:}}%
+\def\Subject{\subjectitem{SUBJECT:}}%
+
+\def\re{\subjectitem{RE:}}%
+\def\RE{\subjectitem{RE:}}%
+
+% \getsubject gets the first line in the field in \subjectline
+% for use in the headline at the top of pages following
+
+{\obeylines\gdef\getsubject#1
+ {\endgroup\gdef\subjectline{#1}% \subjectline is first line of \subject
+ \memoitem{\@subjtype}\subjectline\space}% print SUBJECT: <text>
+}% close obeylines
+
+%---------------------------------------
+% \date takes what follows on the same line and uses it as the
+% date of the memo. If nothing follows then today's date is used.
+% It is important for the date, if given, to be on the same line as \date.
+
+\def\Date{\endmode % close previous field
+ \def\endmode{\relax}% % turn off \endmode before going to \memoitem
+ \begingroup\obeylines %
+ \getdate} % get the date, or use today's
+
+\def\DATE{\Date} % synonym
+\def\date{\Date}
+
+% \getdate looks for a date up until the end of the line
+
+{\obeylines\gdef\getdate#1
+ {\endgroup %% close \obeylines
+ \ifx?#1?\relax\gdef\memodate{\today}% if no date given, use today's
+ \else\gdef\memodate{#1}\fi %% if date is given, use it
+ \memoitem{DATE:}\memodate}% %% print DATE: <date>
+}% close \obeylines for definitions
+
+\def\monthname#1{\ifcase #1 \errmessage{0 is not a 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%
+ \else \errmessage{#1 is not a month.}\fi}
+
+%---------------------------------------
+% TEXT: \text sets up for text of memo
+
+\def\memotext{\endmode % close last item
+ \def\endmode{\bigskip\vfil}% % \endmode is now blank space
+ \let\to\rightarrow % put \to back to normal
+ \bigskip\bigskip % skip down for text
+ \parskip=\normalbaselineskip % \parskip is one blank line
+ \noindent % like a letter
+ }
+\def\text{\memotext} % start with \text = \memotext
+\def\Text{\memotext} % \Text is a synonym
+
+% use \endmemo to end a memo, especially if you use \CC or similar.
+
+\def\endmemo{\endmode\vfill\eject\end} % ends CC: etc, then quits
+
+%=======================================================================
+% FAX Memos:
+
+\def\faxmemo{\let\memoheader=\faxmemoheader
+ \memo\faxline
+ \vskip 2\baselineskip}
+
+\def\FaxNumber{} % Define your own return fax number
+
+% You can also use \faxline with \memo in other ways, so it's separate
+
+\def\faxline{\line{\tenrm Total pages: \hbox to 2cm{\hrulefill}\space
+ (including this page) \hfil Fax number:
+ \ifx\FaxNumber\empty\theBlank{4cm}%
+ \else \tenrm \FaxNumber\fi}}
+
+\def\faxmemoheader{% % banner for top of first page
+ \pageno=1 % begin on page 1
+ \centerline{\fourteenpoint\bf % 14 pt type centered
+ FAX MEMORANDUM}% %
+ \bigskip\bigskip % space
+ \relax}% %
+
+%=======================================================================
+% Referee format for Referee Reports
+%
+\def\Referee{\ContentsSwitchfalse % no table of contents
+ \texsis % initialize
+ \auxswitchfalse % no need for an .AUX file
+ \refswitchfalse % no reference list
+ \RefReptFormat} % Setup using \MemoFormat
+\def\referee{\Referee}% % synonym
+
+\def\RefReptFormat{%
+ \voffset = 0.125 true in % top margin
+ \hsize = 6.5 true in % width of text
+ \raggedbottom %
+ \advance \vsize by -\voffset % subtract \voffset from vertical size
+ \nopagenumbers % no footlines
+ \headlineoffset=0.8cm % raise all following headlines
+ \firstheadoffset=0pt % start with headline down for
+ \let\makeheadline=\makememhed %
+ \def\ORGANIZATION{{\fourteenpoint\bf Referee Report}}% change \ORGANIZATION
+ \def\subjectline{Referee Report}% % running head is ``Referee Report''
+ \headline={\MemoHeadline}% % just like a memo
+ \def\nopagenumbers{\RunningHeadsfalse}% redefine \nopagenumbers
+ \def\pagenumbers{\RunningHeadstrue}%% and \pagenumbers for this document
+ \twelvepoint % default is 12pt
+ \singlespaced\whitespaced % widely spaced, but not double
+ \parskip=\baselineskip % extra space between paragraphs
+ \def\endmode{\relax}% % for first item
+ \quoteon % enable easy quotes
+ \def\to{\ifmmode\rightarrow\else\To\fi}%
+ \def\From{\RefFrom}% % say something about \From
+ \let\text=\memotext %
+ \let\body=\memotext %
+ \def\authors{\memoitem{AUTHORS:}}%
+ \def\author{\memoitem{AUTHOR:}}%
+ \def\title{\subjectitem{TITLE:}}%
+ \def\MSref{\memoitem{MANUSCRIPT:}}%
+ \def\manuscript{\@obsolete\manuscript\MSref\memoitem{MANUSCRIPT:}}%
+ \def\Number{\memoitem{NUMBER:}}%
+ \hbox{\space}\bigskip} % space down from top a bit.
+
+\def\RefFrom{\begingroup\obeylines % obeylines to get first subject line
+ \getFrom}% % get first line
+
+{\obeylines %% look for line endings
+ \gdef\getFrom#1
+{\endgroup %%
+ \emsg{> Reminder: Referee Reports are usually anonymous. This one says...}%
+ \emsg{FROM: #1}% % say something about FROM
+ \memoitem{From:}#1\space}% % but do it anyway
+} % close obeylines
+
+%>>> EOF TXSmemo.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSprns.tex b/Master/texmf-dist/tex/texsis/base/TXSprns.tex
new file mode 100644
index 00000000000..ea6c988caa7
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSprns.tex
@@ -0,0 +1,230 @@
+%% file: TXSprns.tex - Automatic Parnthesis Sizing - TeXsis version 2.18
+%% @(#) $Id: TXSprns.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+%
+% \autoparens provides automatic sizing of () and [] in displayed
+% equations by making these active characters and inserting \left and
+% \right as needed. Automatic sizing is NOT provided for other delimiters
+% such as \{ \} -- these must be handled as in Plain TeX. This feature is
+% turned on and off by:
+% \autoparens ==> automatic sizing on
+% \offparens ==> automatic sizing off
+% The default is \autoparens once you say \texsis.
+%
+% While \onparens generally simplifies the typing of equations,
+% it can cause problems which might not be expected. Since \autoparens uses
+% \left ... \right internally, parentheses must be properly balanced.
+% In particular, splitting parentheses by breaking a long equation with
+% an \EQNalign will produce an error. Most problems can be solved by using
+% control sequences for the plain characters:
+% \lparen ==> (
+% \rparen ==> )
+% \lbrack ==> [
+% \rbrack ==> ]
+%
+% You can still use \left and \right in equations with \autoparens,
+% but they are implicitly inserted if you fortet them.
+%
+% In older versions of TeXsis we used \onparens to provide automatic
+% parenthesis sizing everywhere. This caused some unexpected problems,
+% so we have restricted \autoparens to displayed equations, where it
+% is most usefful. \onparens is still around, but we don't encourage
+% its use anymore. Still, we did fix this a little bit so that parens
+% and brackets are only active in math mode.
+%
+% Dependencies: \emsg and \@errmark come from TXSmacs.TeX
+%======================================================================*
+\message{Auto-sizing of Parentheses.}
+\catcode`@=11 % make sure @ is a letter here
+
+% ---------- first save usual definitions of () and [] and \left and \right
+
+\ifx\@left\undefined % if \@left undefined then do it
+ \let\@left=\left \let\@right=\right
+ \let\lparen=( \let\rparen=)
+ \let\lbrack=[ \let\rbrack=]
+ \let\@vert=\vert
+\fi % else its already done
+
+% ---------- Now make definition of () and [] for use when they are active
+
+\begingroup %=== make these active catcodes local ===
+\catcode`\(=\active \catcode`\)=\active
+\catcode`\[=\active \catcode`\]=\active
+
+\gdef({\relax % \relax just in case in an alignment
+ \ifmmode \push@delim{P}% % if math mode record opening delim
+ \@left\lparen % and do \left (
+ \else\lparen % else, just a left paren
+ \fi}
+
+\global\let\@lparen=( % another name for it
+
+\gdef){\relax % \relax in case in an alignment
+ \ifmmode\@right\rparen % if math mode then \right )
+ \pop@delim\@delim % get last opening delimiter
+ \if P\@delim \relax \else % check for miss-matched delimiters
+ \if B\@delim\emsg{> Expecting \string] but got \string).}%
+ \@errmark{PAREN}%
+ \else\emsg{> Unmatched \string).}\@errmark{PAREN}%
+ \fi\fi
+ \else\rparen % else just a ")"
+ \fi}
+
+\gdef[{\relax % just in case in alignment
+ \ifmmode \push@delim{B}% % if math mode record opening delim
+ \@left\lbrack % and do \left [
+ \else\lbrack % else, just a left bracket
+ \fi}
+\global\let\@lbrack=[ % another name for it
+
+\gdef]{\relax % \relax in case in an alignment
+ \ifmmode\@right\rbrack % if math mode then \right ]
+ \pop@delim\@delim % get last opening delimeter
+ \if B\@delim \relax \else % check for mis-matched delimeters
+ \if P\@delim\emsg{> Expecting \string) but got \string].}%
+ \@errmark{BRACK}%
+ \else\emsg{> Unmatched \string].}\@errmark{BRACK}%
+ \fi\fi
+ \else\rbrack % else just a "]"
+ \fi}
+
+% Make \left(, \right), \left[ and \right] work properly even if easyparens
+% is on. To use these \let\left=\EZYleft and \let\right=\EZYright
+
+\gdef\EZYleft{\futurelet\nexttok\@EZYleft} % \nexttok is next tok on list
+\gdef\@EZYleft#1{% % look for ( or [
+ \ifx\nexttok( \let\nexttok=\lparen % replace ( with \lparen
+ \else
+ \ifx\nexttok[ \let\nexttok=\lbrack % replace [ with \lbrack
+ \fi\fi
+ \@left\nexttok} % do usual \left to \nexttok
+
+\gdef\EZYright{\futurelet\nexttok\@EZYright} % \nexttok is next tok on list
+\gdef\@EZYright#1{% % look for ) or ]
+ \ifx\nexttok) \let\nexttok=\rparen % replace ) with \rparen
+ \else
+ \ifx\nexttok] \let\nexttok=\rbrack % replace ] with \rbrack
+ \fi\fi
+ \@right\nexttok} % do usual \right to \nexttok
+
+\endgroup %=== close () and [] as active characters ===
+
+%--------------------------------*
+% macros to push and pop delimeter marker on the stack called \@delimlist
+
+\toksdef\@CAR=0 \toksdef\@CDR=2 % for push and pop delimeters
+
+\def\push@delim#1{\@CAR={{#1}}% % add #1
+ \@CDR=\XA{\@delimlist}% % to front
+ \edef\@delimlist{\the\@CAR\the\@CDR}}% % of \@delimlist
+
+\def\pop@delim#1{\XA\pop@delimlist\@delimlist\endlist#1}% pop from list to #1
+
+\def\pop@delimlist#1#2\endlist#3{\def\@delimlist{#2}\def#3{#1}}
+
+\def\@delimlist{} % start with null list
+
+%==================================================*
+% Turning EZparens on and off:
+
+\newif\ifEZparens \EZparensfalse
+
+\def\autoparens{\EZparenstrue % turn on the switch
+ \everydisplay={\@onParens}% % in displayed equations
+ }
+
+\def\@onParens{% turn on paren-matching definitions and active characters
+ \ifEZparens % only if switched on
+ \def\@delimlist{}% % reset delim list to null
+ \let\left=\EZYleft % get \left([ correct
+ \let\right=\EZYright % similarly for \right's
+ \catcode`\(=\active \catcode`\)=\active % make ( and )
+ \catcode`\[=\active \catcode`\]=\active % and [ and ] active
+ \fi}
+
+\def\offparens{% turn off automatic paren sizing
+ \EZparensfalse\@offParens % switch and active chars off
+ \everymath={}\everydisplay={}} % clear \every...
+
+\def\@offParens{%
+ \let\left=\@left % restore \left and \right
+ \let\right=\@right % to original definitions
+ \catcode`(=12 \catcode`)=12 % make ( and )
+ \catcode`[=12 \catcode`]=12 % and [ and ] "other"
+ }
+\offparens % default until \texsis
+
+%======================================================================*
+% \onparens (backward compatability, but to be removed soon)
+%
+% \onparens does automatic parenthesis sizing in both in-line
+% and displayed equations. In-line equations are a bit difficult.
+% When TeX gets a $ it has to look ahead at the next character to
+% see if it is another $. If it was not then it puts it back in
+% the input stream, but the character code is already set -- if it
+% was ( or [ then you can't make these \catcode=\active. Thus in
+% math mode (but not displayed equations) we have to look ahead
+% at the token and take corrective action.
+%
+% Unfortunately if the first token is complex (i.e. enclosed in { }'s)
+% then the lookahead ends up removing the { }'s, which can cause
+% errors. Put \relax at the begining of such equations until I find
+% a fix. Or use \autoparens instead.
+
+\def\onparens{% OLD version of \autoparens for both math and displayed eqns
+ \EZparenstrue % turn on the switch
+ \everymath={\@onMathParens}% % in math mode
+ \everydisplay={\@onParens}% % in displayed equations
+ }
+\def\easyparenson{\onparens} % OLD synonym
+
+\def\@onMathParens#1{% check lookahead for a missed ( or [
+ \@SetRemainder#1\endlist % to put back lookahead
+ \ifx#1\lparen\let\@remainder=\@lparen\fi % lookahead for missed (
+ \ifx#1\lbrack\let\@remainder=\@lbrack\fi % and get rid of [ found
+ \@onParens % make ), (, ], [ active
+ \@remainder} % now do what followed
+
+% \@SetRemainder looks at lookahead from \@onMathParens. If there
+% is more than one token (#2 not empty) then the lookahead was a complex
+% token so it should be enclosed in { }'s
+
+\def\@SetRemainder#1#2\endlist{%
+ \ifx @#2@ \def\@remainder{#1}%
+ \else \def\@remainder{{#1#2}}%
+ \fi}
+
+\def\easyparensoff{\offparens} % synonym for \offparens
+
+% -- Redefine some PLAIN macros so that they will work with \easyparenson
+
+\def\pmatrix#1{\@left\lparen\matrix{#1}\@right\rparen}
+
+\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\lparen\kern-\wd\@ne
+ \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
+ \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right\rparen$}%
+ \;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
+
+% Partitioned matrix
+% usage:
+% \partitionmatrix{a&&b&&c\cr\tabelrule d&e&f\cr}
+% (leave off the last \cr or you'll get an extre line at the bottom)
+% (The \mathstrut tries to make two n-row partition matrices have the
+% same height and depth unless some row is unusually large.)
+
+\def\partitionmatrix#1{\,\vcenter{\offinterlineskip\m@th
+ \def\tablerule{\noalign{\hrule}}
+ \halign{\hfil\loosebox{$\mathstrut ##$}\hfil&&\quad\vrule##\quad&%
+ \hfil\loosebox{$##$}\hfil\crcr
+ #1\crcr}}\,}
+
+%>>> EOF TXSprns.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSrefs.tex b/Master/texmf-dist/tex/texsis/base/TXSrefs.tex
new file mode 100644
index 00000000000..77b5bd743ce
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSrefs.tex
@@ -0,0 +1,772 @@
+%% TXSrefs.tex - Citations and References - TeXsis version 2.18
+%% @(#) $Id: TXSrefs.tex,v 18.8 2000/05/16 22:46:08 myers Exp $
+%======================================================================*
+% TeXsis - TeX Macros for Physicists -- Citations and References
+%
+% These macros take care of citations and references with automatic
+% numbering. The references can either be typed in the body of the document
+% or collected at the beginning. In either case a new reference is defined
+% by saying
+% \reference{<tag>} <text> \endreference
+%
+% The <tag> can be almost anything, including a number. If it begins
+% with "*" then the reference number is not incremented; this allows
+% multiple references with the same number. Otherwise, \reference causes
+% the next available reference number to be assigned to the <tag>. It also
+% saves the tag definition in \jobname.aux, and saves the reference
+% <text> in the file \jobname.ref. The final punctuation should NOT be
+% typed in <text>; a period is added unless the next tag begins with "*",
+% in which case a semicolon is added.
+%
+% If \reference ... \endreference is typed in the body of the document,
+% the reference number is printed. The default format is a superscript, but
+% this can be changed:
+% \superrefstrue ==> superscript reference numbers
+% \superrefsfalse ==> reference numbers in []
+% \endreference actually looks ahead at the next token; if it is another
+% \reference, then a range is printed instead of separate numbers.
+%
+% \referencelist ... \endreferencelist can be used to type all of the
+% references at the beginning of the document, with the format
+% \referencelist
+% \reference{<tag1>} <text1> \endreference
+% \reference{<tag2>} <text2> \endreference
+% ...
+% \endreferencelist
+% While it is natural with this format to make the tag equal to the actual
+% reference number, this is not required.
+%
+% Subsequent references to a previously defined reference are obtained
+% with \cite{<tag>}. Again this has a look-ahead feature so that several
+% consecutive \cite's give the reference numbers separated by commas. If the
+% references are typed at the beginning with \referencelist, then all
+% references in the text are made with \cite. If the <tag> is not defined,
+% then \cite produces an error, which is flagged both in the printed document
+% and on the log file. A \Ref{<tag>} macro (note the case) is also provided
+% to print Ref.~<number> in the text. Other forms can be constructed if
+% desired with \use{Ref.<tag>}; see the definition of \Ref.
+%
+% The list of references is printed by saying \ListReferences (or
+% \References for backwards compatibility). To allow for multiple
+% references with the same number, \ListReferences adds a semicolon to
+% the end of a reference if the next tag begins with "*" and a period
+% otherwise. Hence the final punctuation should not be typed in the
+% reference text. Note that \ListReferencese does not print a heading,
+% which should be inserted using \chapter, \section, or the appropriate
+% plain TeX commands.
+%
+% If \texsis has not been called, then the reference text will be
+% written to the screen, and \ListReferences will fail to print the
+% appropriate text. If \auxswitchfalse is used, then the AUX file will
+% not be written, and the tag definitions will appear on the screen
+% (surrounded by \csname ... \endcsname). This causes no harm unless the
+% checkpoint/restart feature is used, in which case the earlier tag
+% definitions will not be remembered.
+%======================================================================*
+% (C) Copyright 1986, 1992, 1995, 1997, 1999 by Eric Myers and Frank Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+%======================================================================*
+\message{References and Citations.}
+\catcode`@=11 % @ is a letter here for hidden names
+\catcode`\"=12 \catcode`\(=12 \catcode`\)=12
+
+% Counters, switches and I/O:
+
+\newcount\refnum \refnum=\z@ % counter for reference numbers
+\newcount\@firstrefnum \@firstrefnum=1 % first of a series of refs
+\newcount\@lastrefnum \@lastrefnum=1 % last of a series of refs
+\newcount\@BadRefs \@BadRefs=0 % count undefined references
+
+\newif\ifrefswitch \refswitchtrue % output references by default
+\newif\ifbreakrefs \breakrefstrue % line break between refs?
+\newif\ifrefpunct \refpuncttrue % automatic punctuation at end?
+\newif\ifmarkit \markittrue % flag for "hidden" references
+\newif\ifnullname % flag for null or "*" labels
+\newif\iftagit % flag for tagging references
+\newif\ifreffollows % flag for many \ref's
+
+\def\refterminator{} % could be ) after a superscript
+\def\RefLabel{} % used in hyperlink tags
+
+% Indentation of references in the list is controled by \refindent
+% If it is negative then it's automatically reset to the right values
+
+\newdimen\refindent \refindent= -100pt
+
+% \@comment is for writing % to a file like the .ref file. It expands
+% to the letter '%' and a space
+
+{\catcode`\%=11 \gdef\@comment{% }}
+
+\newcount\CiteType \CiteType=1 % type of citation style
+%%\newif\ifsuperrefs \superrefstrue % OBSOLETE! Use these:
+\def\superrefstrue{\CiteType=1} % Superscript citation marks
+\def\superrefsfalse{\CiteType=2} % In-line citation marks
+
+
+%==================================================*
+% INITIALIZATION. \refinit performs first time reference initialization
+
+\newwrite\reflistout % output file for ref text
+\newread\reflistin % input file for .ref file
+
+\def\@refinit{% Initialize reference file
+ \immediate\closeout\reflistout % and make sure output closed
+ \ifrefswitch % is .ref ouput enabled?
+ \@FileInit\reflistout=\jobname.ref[List of References]%% yes: initialize
+ \else % no: disable output
+ \let\@refwrite=\@refwrong \let\@refNXwrite=\@refwrong
+ \fi
+ \gdef\refinit{\relax}} % and disable \refinit
+
+% \refReset resets the counters so that more references can be
+% created after \ListReferences has been called; For example, if
+% you listed the references for one chapter and want to begin collecting
+% references for the next chapter.
+
+\def\refReset{% reset reference/citation counters
+ \global\refnum=\z@ % counter for reference numbers
+ \global\@firstrefnum=1 % first of a series of refs
+ \global\@lastrefnum=1 % last of a series of refs
+ \global\@BadRefs=0 % count undefined references
+ \gdef\refinit{\@refinit}} % re-enable \refinit
+
+\refReset % Make it so
+
+% \@refwrite{text} writes text to .ref file, while
+% \@refNXwrite{text} writes the text to the file without expanding it.
+
+\def\@refwrite#1{\refinit\immediate\write\reflistout{#1}}
+\def\@refNXwrite#1{\refinit\unexpandedwrite\reflistout{#1}}
+
+\def\@refwrong#1{}% do nothing (sorry for the pun)
+
+
+%==================================================*
+% REFERENCE TEXT.
+% \reference{lable} <text> \endreference defines a new reference entry
+
+\long\def\reference#1{% cite a new reference, with reference text
+ \markittrue % enable citation in output
+ \@tagref{#1}% % get next number and tag it
+ \@GetRefText{#1}} % write ref text to .ref file
+
+\long\def\addreference#1{% \reference without citation
+ \markitfalse % don't cite in output
+ \@tagref{#1}% % get a number and tag it
+ \@GetRefText{#1}} % write ref text to .ref file
+
+\def\hiddenreference{\addreference}% backward compatability (v.2.02)
+
+
+% \@tagref{label} assigns the next reference number to the label,
+% unless the name begins with * or is null
+
+\def\@tagref#1{% assign a reference number to a tag
+ \stripblanks #1\endlist % remove blanks. Result --> \tok
+ \XA\ifstar\tok*\relax % sets \nullnametrue if null or *'d
+ \ifnullname\relax\else % unless name is null
+ \def\RefLabel{#1}% % save label name
+ %%
+ \ifnum\CiteType=4 % Footnotes references: coordinate
+ \ifnum\footnum>\refnum % ... \footnum and \refnum
+ \global\refnum=\footnum \global\@firstrefnum=\refnum
+ \global\advance\@firstrefnum by \@ne
+ \fi
+ \fi
+ %%
+ \global\advance\refnum by \@ne % increment the \refnum
+ \global\@lastrefnum=\refnum % and the \@lastrefnum
+ \edef\rnum{\the\refnum}% % \rnum is the ref number
+ \tag{Ref.#1}{\rnum}% % tag the reference number
+ \ifnum\CiteType>0 % announce unless silent \reference
+ \immediate\write16{(\the\refnum) %% write comment to .LIS and terminal
+ First reference to "#1" on page \the\pageno.}\fi
+ \fi} % end \ifnullname
+
+% \ifstar determines whether a tag begins with "*", and sets a flag
+
+\def\ifstar#1#2\relax{\ifx*#1\relax\nullnametrue\else\nullnamefalse\fi}
+
+
+% \@GetRefText gets the reference text as everything up to the next
+% \endreference and writes it to the .ref file, at least for citation
+% styles which save the list to the end. #1 is the label.
+% #2 is lookahead past possible line end before \seeCR
+
+\def\@GetRefText#1#2{% % get and write reference text
+ \ifnum\CiteType=4\else % footnotes rather than ref list?
+ \ifnullname % Is name null (set by \@tagref)?
+ \p@nctwrite{; }% % punctuation for continuation
+ \@refwrite{\@comment ... Reference text for %%
+ "#1" defined on page \number\pageno.}%
+ \@refwrite{\@refbreak}% % and a possible line break
+ \else % No: just begin another...
+ \ifnum\refnum>1\p@nctwrite{. }\fi %!% trailing period, unless first one
+ \@refwrite{\@comment }% %
+ \@refwrite{\@comment (\the\refnum) Reference text for %%
+ "#1" defined on page \number\pageno.}%
+ \@refwrite{\string\@refitem{\the\refnum}{#1}}% write label info
+ \fi
+ \fi
+ %%
+ \begingroup % start group to write text
+ \def\endreference{\NX\endreference}% disable these in references
+ \def\reference{\NX\reference}\def\ref{\NX\ref}%
+ \seeCR\newlinechar=`\^^M % so ^^M seen by \@copyref
+ \@copyref#2} % copy text line to .ref file
+
+
+% \@copyref copies the text up to the \endreference to the .ref
+% file and then performs the \endreference
+
+\def\@copyref#1\endreference{% copy reference text to .ref file
+ \endgroup % end \seeCR
+ \ifnum\CiteType=4 % footnotes rather than ref list?
+ \ifnum\footnum<\refnum\global\footnum=\refnum\fi % sync w/ \footnum
+ \Vfootnote{\ifnullname\relax\else
+ {\CiteStyle{\the\refnum}}\fi} %% That space is needed! Why?
+ {\hangindent=\parindent\hangafter=1\seeCR #1\@refpunct.}%
+ \else % write text to .ref file
+ \@refNXwrite{#1\@endrefitem}%
+ \fi %
+ \@endreference} % do \endreference stuff...
+
+\def\@endrefitem#1{#1} % for future expansion...
+
+
+% \@endreference is post processing (what user thinks is \endreference).
+% \@endreference checks to see if another \reference follows. If not, it puts
+% the citation mark in the output
+
+\long\def\@endreference#1{% end a \reference and look ahead at next token
+ \reffollowsfalse % assume no cit'ns follow
+ \ifx#1\cite\reffollowstrue\fi % is next token another \cite?
+ \ifx#1\citerange\reffollowstrue\fi % or \citerange
+ \ifx#1\refrange\reffollowstrue\fi % or \refrange
+ \ifx#1\ref\reffollowstrue\fi % (or \ref, OLD TeXsis)
+ \ifx#1\reference\reffollowstrue % \reference follows?
+ \ifnum\CiteType=3 % citation for [named] references
+ \xdef\@refmark{\linkto{Ref.\RefLabel}{\RefLabel}}\add@refmark\fi
+ \ifnum\CiteType=6 % citation for (named) references
+ \xdef\@refmark{\linkto{Ref.\RefLabel}{\RefLabel}}\add@refmark\fi
+ \else % not a \reference, so dump citations
+ \ifnum\@firstrefnum>\@lastrefnum\relax % If *'d \reference be quiet
+ \else %
+%
+% Construct the reference mark for this reference or range in \@refmark
+%
+ \ifnum\CiteType=3 % [named] reference
+ \xdef\@refmark{\linkto{Ref.\RefLabel}{\RefLabel}}%
+ \else\ifnum\CiteType=6 % (named) reference
+ \xdef\@refmark{\linkto{Ref.\RefLabel}{\RefLabel}}%
+ \else %
+ \ifnum\@firstrefnum=\@lastrefnum % is there only one reference?
+ \xdef\@refmark{\linkto{Ref.\the\@lastrefnum}{\the\@lastrefnum}}%
+ \else % no: write a range of numbers
+ \xdef\@refmark{\linkto{Ref.\the\@firstrefnum}{\the\@firstrefnum}-%
+ \linkto{Ref.\the\@lastrefnum}{\the\@lastrefnum}}%
+ \fi % end \ifnum\@firstrefnum=
+ \fi\fi % endif 3 or 5
+ %%
+ \global\@firstrefnum=\refnum % reset \@firstrefnum to be ...
+ \global\advance\@firstrefnum by \@ne% \refnum + 1
+ \add@refmark % add \@refmark to \@refmarklist
+ \fi % end \ifnum\@firstrefnum
+ \fi % end \ifx#1\reference
+ \flush@reflist{#1}}% % output ref mark list
+
+
+\def\endreference{% end the \reference text
+ \emsg{> Whoops! \string\endreference was called without
+ first calling \string\reference.}\@errmark{REF?}%
+ \emsg{> I'll just ignore it.}%
+ }%
+
+\def\@refspace{\ }
+
+% \citemark{#1} creates the citation mark, in a format determined
+% by \CiteType. The possible choices are:
+% 0 = no mark (silently adds the reference to list)
+% 1 = superscript reference numbers
+% 2 = reference numbers in the text in [brackets]
+% 3 = citation in the text by name-date (using the label) in [brackets]
+% 4 = supercript reference numbers for references as FOOTNOTES
+% 5 = reference numbers in the text in (parens)
+% 6 = citation in the text by name-date (using the label) in (parens)
+
+\def\citemark#1{% output the citation marks in the text
+ \relax\let\@sf\empty %
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi % save spacefactor
+ \ifcase\CiteType\relax % 0: no citation mark
+ \or % 1: superscript numbers
+ $\relax{}^{\hbox{$\scriptstyle\CiteStyle{#1\refterminator}$}}$\relax
+ \or {}~[{\CiteStyle{#1}}]\relax % 2: [<number>] style in-line
+ \or {}~[{\CiteStyle{#1}}]\relax % 3: [<text>] style in-line
+ \or % 4: superscript numbers,
+ $\relax{}^{\hbox{$\scriptstyle\CiteStyle{#1\refterminator}$}}$\relax %
+ \or {}~({\CiteStyle{#1}})\relax % 5: (<number>) style in-line
+ \or {}~({\CiteStyle{#1}})\relax % 6: (<text>) style in-line
+ \else\relax\fi % else: nothing
+ \@sf}% % restore spacefactor
+
+\def\CiteStyle{\relax} % default citation type size/style
+
+
+% Turn off \citemark output. For typing a list of references all
+% together at the begining of a document.
+
+\def\referencelist{% begin a list of references at front of document
+ \ifnum\CiteType=4 % footnotes rather than ref list?
+ \emsg{> Warning: \string\referencelist is not compatible with %%
+ footnoted reference citations.}\fi
+ \begingroup
+ \pageno=0\CiteType=0} % disable citations
+
+\def\endreferencelist{% end \referencelist
+ \endgroup} % all as it was
+
+%==================================================*
+% CITATIONS.
+%
+% New way of controlling citation style is by \CiteType.
+% The possible choices are:
+% 0 = no mark (silently adds the reference to list)
+% 1 = superscript reference numbers
+% 2 = reference numbers in the text in [brackets]
+% 3 = citation in the text by label as key, in [brackets]
+% 4 = supercript reference numbers for references as FOOTNOTES
+% 5 = reference numbers in the text in (parens)
+% 6 = citation in the text by label as key, in (parens)
+
+\def\CiteBySuperscript{\CiteType=1} % superscript number
+\def\CiteByNumber{\CiteType=2} % reference number in [brackets]
+\def\CiteByTag{\CiteType=3} % tag in [brackets]
+\def\CiteByLabel{\CiteType=3} % synonym
+\def\CiteByFootnote{\CiteType=4} % superscript number, text as footnote
+\def\CiteByWhatever{\CiteType=5} % reference number in (parens)
+\def\CiteByAuthor{\CiteType=6} % tag in (parens)
+
+
+% \cite{<label>} cites a previously defined reference given by
+% <label>. (There is only one user argument, #2 is for lookahead.)
+
+\long\def\cite#1#2{% cite a previous reference in the text
+ \def\RefLabel{#1}% %
+ \markittrue % make sure output is on
+ \reffollowsfalse % assume no ref. follows
+ \ifx#2\cite\reffollowstrue\fi % is next token another \cite?
+ \ifx#2\citerange\reffollowstrue\fi % or \citerange
+ \ifx#2\refrange\reffollowstrue\fi % or \refrange (OLD)
+ \ifx#2\ref\reffollowstrue\fi % (or \ref, OLD TeXsis)
+ \ifx#2\reference\reffollowstrue\fi % or is it \reference? then set flag.
+ \auxwritenow{\string\citation\string{#1\string}}%
+ \make@refmark{#1}% % make reference mark in \@refmark
+ \add@refmark % add \@refmark to \@refmarklist
+ \flush@reflist{#2}}% % flush \@refmarklist to output
+
+\let\ref=\cite % \ref is synonym (old TeXsis)
+
+\def\@refmarklist{} % start with nothing in list
+
+
+% \nocite is for BIBTeX use. It bumps the number and makes a BIBTeX
+% entry in the .aux file, but produces no output
+
+\def\nocite#1{% just make .aux entry for citation
+ \auxwritenow{\string\citation\string{#1\string}}}%
+
+
+% \make@refmark takes the reference label and puts the reference number
+% (if there is one) in \@refmark
+
+\def\make@refmark#1{% make a reference mark
+ \testtag{Ref.#1}\ifundefined % is it undefined? (tag -> \tok)
+ \emsg{> UNDEFINED REFERENCE #1 ON PAGE \number\pageno.}% error message
+ \global\advance\@BadRefs by 1 % count undefined references
+ \xdef\@refmark{{\tenbf #1}}% % cite with label in boldface
+ \@errmark{REF?}% % and mark error in output
+ \else % no:
+ \ifnum\CiteType=3 % label or number citation?
+ \xdef\@refmark{\linkto{Ref.#1}{#1}}% cite with text of label
+ \else
+ \xdef\@refmark{\linkto{Ref.\csname\tok\endcsname}{\csname\tok\endcsname}}% cite with number
+ \fi\fi} % end of \ifundefined
+
+
+% \add@refmark adds \@refmark to the \@refmarklist
+
+\def\add@refmark{% add reference mark to accumulating list
+ \ifmarkit %
+ \ifx\@refmarklist\empty\relax % any previous citations?
+ \xdef\@refmarklist{\@refmark}% % no: just add this one
+ \else % yes: add to list,
+ \ifnum\CiteType=3 % name or number citation?
+ \xdef\@refmarklist{\@refmarklist; \@refmark}% named citations
+ \else %
+ \xdef\@refmarklist{\@refmarklist,\@refmark}% numbered citations
+ \fi\fi\fi} %
+
+
+% \flush@reflist flushes the \@refmarklist to the output.
+% #1 is the lookahead token, used to see if we need to add space afterwards.
+
+\long\def\flush@reflist#1{% flush list of references to output
+ \ifmarkit % is \markit set? Then write citation
+ \ifreffollows\else % Is there a following citation?
+ \citemark{\@refmarklist}% % no: print citation
+ \gdef\@refmarklist{}% % empty \@refmarklist
+ \ifx#1\par\else\space@head{#1}\fi % insert possible space before #1
+ \fi\fi % end \ifreffollows\ifmarkit
+ \def\@next{#1}\ifcat.\NX#1\def\@next{#1 }\fi % space after if punctuation
+ \@next} % put back lookahead #1
+
+
+% \space@head#1 takes the lookahead token from \@endreference or
+% \cite and does nothing if it is punctuation. Otherwise it puts
+% in a \space. It does not put the token back on the list! (the
+% calling macro does that.) Note that in TeXsis ), ], and " can
+% be active characters that have macro definitions, so they must
+% be handled separately.
+
+{\quoteon
+\gdef\space@head#1{\def\next{\space}% % normally a space
+ \ifcat.\NX#1\relax\def\next{\relax}\fi % no space if punctuation
+ \ifx)#1\def\next{\relax}\fi % no space if active )
+ \ifx]#1\def\next{\relax}\fi % no space if active ]
+ \ifx"#1\def\next{\relax}\fi % no space if active quote
+ \next}}% % space or nothing
+
+
+% \Ref{label} (note the case!) returns the reference number of a
+% previously entered reference for use in text. If you don't like
+% the way this looks you can change it to suit yourself.
+
+\def\Ref#1{%
+ \ifnum\CiteType=3 \citemark{\linkto{Ref.#1}{\use{Ref.#1}}}%
+ \else
+ \testtag{Ref.#1}\ifundefined % is it undefined? (tag -> \tok)
+ Ref.~\use{Ref.#1} % tagging error
+ \else
+ \linkto{Ref.\csname\tok\endcsname}{Ref.~\csname\tok\endcsname}%
+ \fi\fi}
+
+% \refrange#1#2 cites a range of previously defined references like
+% \cite. #3 is a lookahead for another \cite or \ref
+
+\long\def\refrange#1#2#3{% cites a range of references
+ \ifnum\CiteType=3\emsg{> WARNING: \string\refrange\space %%
+ doesn't work with named citations.}\@errmark{REF?}\fi
+ \reffollowsfalse % assume no ref. follows
+ \ifx#3\cite\reffollowstrue\fi % is next token another \cite?
+ \ifx#3\ref\reffollowstrue\fi % (or \ref, OLD TeXsis)
+ \ifx#3\reference\reffollowstrue\fi % or is it \reference? then set flag.
+ \ifx#3\refrange\reffollowstrue\fi % or \refrange
+%
+% Construct reference mark in \@refmark
+%
+ \make@refmark{#2}% % ref mark for 2nd ref
+ \xdef\@refmarktwo{\@refmark}% % save for later
+ \make@refmark{#1}% % ref mark for 1st ref
+ \xdef\@refmark{\@refmark\hbox{--}\@refmarktwo}% create range of references
+ \add@refmark % add to \@refmarklist
+ \flush@reflist{#3}} % flush citation mark list
+
+\let\citerange=\refrange % will be the new name some day
+
+
+%========================================================================*
+% REFERENCE FORMAT. These are used in the reference text to print
+% properly volume numbers for journals, titles of books, etc.
+
+% \vol{volume of journal} is used for the volume number of a journal
+% article. The number is underlined when printed. (Underscoring looks
+% better than boldface on the laser printer, but you can change this.)
+
+\def\vol#1{\undertext{#1}}
+
+% \booktitle{title of book} prints book title in slanted type
+% \ArticleTitle does the same for the title of a journal article,
+% but only if \ShowArticleTitletrue is set, and that is not the default.
+
+\def\booktitle#1{{\sl #1}}
+
+\newif\ifShowArticleTitle \ShowArticleTitlefalse
+\def\ArticleTitle#1{\ifShowArticleTitle{\sl #1},\fi}
+
+% Some other useful shorthand for references
+
+\def\etal{{\it et al.}} \def\ie{{\it i.e.}}
+\def\cf{{\it cf.}} \def\ibid{{\it ibid.}}
+
+%==================================================*
+% LIST OF REFERENCES. \ListReferences gets the list of references
+% from the .ref file and adds it to the document. \References is a
+% synonym (from v.2.04). No heading is printed; the user should add
+% one with \chapter, \section, or whatever is appropriate.
+
+\def\ListReferences{%
+ \ifnum\CiteType>0
+ \ifnum\CiteType=4\relax\else
+ \@ListReferences
+ \fi\fi}
+
+
+\def\@ListReferences{\emsg{Reference List}% announce in .LIS file
+ \ifnum\refnum>\z@ \p@nctwrite{.}% % write last "." for last ref
+ \@refwrite{\@comment>>> EOF \jobname.ref <<<}%% and EOF marker comment
+ \immediate\closeout\reflistout % then close the .ref file
+ \fi
+ \ifnum\@BadRefs>\z@ % any undefine references?
+ \emsg{>}\emsg{> There were \the\@BadRefs\ undefined references.}%
+ \emsg{> See the file \jobname.log for the citations, or try running}%
+ \emsg{> TeXsis again to resolve forward references.}\emsg{>}%
+ \fi
+ %%
+ \begingroup
+ \offparens % make sure )&( not active
+ \immediate\openin\reflistin=\jobname.ref % try to open .ref file
+ \ifeof\reflistin % if EOF then it isn't there
+ \closein\reflistin % so just close it and quit
+ \emsg{> \string\ListReferences: no references in \jobname.ref}%
+ \else % It's there? let's read it in
+ \catcode`@=11 % Make @ a letter
+ \catcode`\^^M=10 % Treat ^^M like whitespace
+ \def\reference{\@noendref}% % In case of errors
+ \parindent=\z@ % No indent for each item
+ \singlespaced % References single spaced!
+ \ifdim\refindent<0pt % Is \refindent unset? Then
+ \setbox9\hbox{\the\refnum.\quad}% get size of largest \refnum
+ \refindent=\wd9 % and use it for \refindent
+ \fi
+ \refFormat % User definable format info
+ \input\jobname.ref \relax % Read in text from .ref file
+ \vskip 0pt % Needed to force \leftskip!
+ \fi % \ifeof
+ \endgroup % end all character re-def's
+ \refReset % start over on references
+}
+
+\def\References{\ListReferences} % synonym
+
+
+% \refFormat is called just before the reference file is read in.
+% It can contain instructions for formatting the reference list. For example,
+% in two-column output it might be good to have it include a \raggedright.
+
+\def\refFormat{\relax}%
+
+\def\@noendref#1{%
+ \emsg{> Whoops! \string\reference{#1} was given before the}%
+ \emsg{> \string\endreference for the previous \string\reference.}%
+ \emsg{> I'll just ignore it and run the two together.}%
+ }%
+
+
+% \@refitem starts a new reference, with the number in the left margin.
+% For use by \ListReferences when printing reference list.
+% #1 is the reference number, while #2 is the tag name
+% \refskip is the skip between references (default is \smallskip).
+% \refindent is the indentation of each entry after the first line
+
+\def\@refitem#1#2#3{\message{#1.}% #3 looks past ^^M for next arg
+ \auxwritenow{\string\bibcite\string{#2\string}\string{#1\string}}% .AUX
+ \parskip=\z@\parindent=\z@ %
+ \leftskip=\refindent % left margin indented
+ \refskip % skip down for next entry
+ \par\noindent\hskip-\refindent % first line of entry not indented
+ \ifnum\CiteType=3 % Label entries with tag (#2)?
+ \hbox{\linkname{Ref.#1}{\RefNumStyle{#2}{.\quad}}}%
+ \else % Label tag with number (#1)
+ \ifnum\CiteType=6\else % (but no label for case =6)
+ \hbox to \refindent{\hfil\linkname{Ref.#1}{\RefNumStyle{#1}{.\quad}}}%
+ \fi\fi
+ #3}
+
+\def\refskip{\smallskip} % default skip between entries
+
+% \RefNumStyle can manipulate the style of the reference number or
+% label in many ways. You could just say \let\RefNumStyle=\bf
+% You could define it to be a macro which takes one argument, the number
+% eg. \def\RefNumStyle#1{\romannumeral#1}, or you could define it to
+% be a macro which takes two argments, eg. \def\RefNumStyle#1#2{#1}
+
+\def\RefNumStyle{\relax}
+
+% \@refpunct gets the punctuation for the reference text and kills
+% the space and carriage return before it.
+
+\def\@refpunct#1{\unskip#1} % remove space and print . or ;
+
+% \p@nctwrite#1 writes punctuation #1 to .ref file only if \ifrefpunct
+% is true. Use this to turn off automatic punctuation of references.
+
+\def\p@nctwrite#1{%
+ \ifrefpunct\@refwrite{\NX\@refpunct#1}\fi}
+
+% \@refbreak causes a line break if \ifbreakrefs is true.
+
+\def\@refbreak{\ifbreakrefs\hfill\break\fi}
+
+
+%======================================================================*
+% \journal simplifies typing journal references in technical papers
+% by providing automatic formatting and automatic correct treatment of
+% abbreviations. By default typing
+% \journal Phys. Rev. Lett.;vol;page(year)
+% produces
+% Phys. Rev. Lett. vol, page (year)
+% All periods in name are followed by a single space as if you had typed
+% Phys.\ Rev.\ Lett.\ and the volume number is underlined (not boldface),
+% using \vol{number}.
+%
+% If you first type \Eurostyletrue then \journal produces
+% Phys. Rev. Lett. vol (year) page
+% appropriate to European journals. Note that the arguments to \journal
+% are ALWAYS in the American order.
+%
+% \journal can be used to define macros for specific journals, but
+% in this case all . MUST be typed as .\ because of the way that TeX
+% uses \catcodes for characters.
+
+
+\newif\ifEurostyle \Eurostylefalse % European style journals
+\offparens % make sure ( and ) not active!
+
+% When . is active instead of punctuation it gives no space
+
+{\catcode`\.=\active \gdef.{\hbox{\p@riod\null}}}% . is .\null for abbrev
+\def\p@riod{.} % normal period
+
+% Define main macro \journal. This turns on definition of . and
+% turns off easy parens, then does work with \j@ounal.
+
+\def\journal{% cite an article in a journal by volume, page and year
+ \bgroup % keep \catcode's local
+ \catcode`\.=\active % make . active
+ \offparens % turn off easy parens
+ \j@urnal}% % and do work
+
+ \def\j@urnal#1;#2,#3(#4){% gets the \journal material
+ \ifEurostyle % choose style...
+ {#1} {\vol{#2}} (\@fullyear{#4}) #3\relax % European style
+ \else %
+ {#1} {\vol{#2}}, #3 (\@fullyear{#4})\relax% American style
+ \fi %
+ \egroup} % end group for . and ()
+
+% \@fullyear takes one argument, which is considered to be a year.
+% If it is less than 100 then it is an abreviation (Y2K problem!).
+% We add the current century to it if it is less than or equal to
+% THIS year, otherwise we add the LAST century. This should survive
+% into the next millenium, but users should use 4-digit years.
+% Thanks to Scott Hannahs for this macro.
+
+\def\@fullyear#1{%
+ \begingroup % make calculations local
+ \count255=\year % get current century
+ \divide \count255 by 100 \multiply \count255 by 100
+ \count254=\year % next year in this century
+ \advance \count254 by -\count255 \advance \count254 by 1
+ \count253=#1\relax % citation year
+ %%
+ \ifnum\count253<100 % year < 100 needs century
+ \ifnum \count253>\count254 % high year
+ \advance \count253 by -100\fi % means last century
+ \advance \count253 by \count255 % add centuries
+ \emsg{> WARNING: \string\@fullyear: possible Y2K problem. %%
+ Year #1 interpreted as \the\count253.}%
+ \emsg{> Please use 4 digits for years.}%
+ \fi %
+ \number\count253 % display year
+ \endgroup} % end local calculations
+
+%-----------------------------
+% Shorthand names of Journals:
+
+\def\NP{Nucl.\ Phys.} \def\PL{Phys.\ Lett.}
+\def\PR{Phys.\ Rev.} \def\PRL{Phys.\ Rev.\ Lett.}
+
+% These are the APS journal names used by REVTEX, and we can use them too
+
+\def\ao{Appl.\ Opt.\ } \def\ap{Appl.\ Phys.\ }
+\def\apl{Appl.\ Phys.\ Lett.\ } \def\apj{Astrophys.\ J.\ }
+\def\jcp{J.\ Chem.\ Phys.\ } \def\jmo{J.\ Mod.\ Opt.\ }
+\def\josa{J.\ Opt.\ Soc.\ Am.\ }\def\josaa{J.\ Opt.\ Soc.\ Am.\ A }
+\def\jpp{J.\ Phys.\ (Paris) } \def\nat{Nature (London) }
+\def\oc{Opt.\ Commun.\ } \def\ol{Opt.\ Lett.\ }
+\def\pl{Phys.\ Lett.\ } \def\pra{Phys.\ Rev.\ A }
+\def\prb{Phys.\ Rev.\ B } \def\prc{Phys.\ Rev.\ C }
+\def\prd{Phys.\ Rev.\ D } \def\pre{Phys.\ Rev.\ E }
+\def\prl{Phys.\ Rev.\ Lett.\ } \def\rmp{Rev.\ Mod.\ Phys.\ }
+\def\bell{Bell Syst.\ Tech.\ J.\ }
+\def\jqe{IEEE J.\ Quantum Electron.\ }
+\def\assp{IEEE Trans.\ Acoust.\ Speech Signal Process.\ }
+\def\aprop{IEEE Trans.\ Antennas Propag.\ }
+\def\mtt{IEEE Trans.\ Microwave Theory Tech.\ }
+\def\iovs{Invest.\ Ophthalmol.\ Vis.\ Sci.\ }
+\def\josab{J.\ Opt.\ Soc.\ Am.\ B }
+\def\pspie{Proc.\ Soc.\ Photo-Opt.\ Instrum.\ Eng.\ }
+\def\sjqe{Sov.\ J.\ Quantum Electron.\ }
+
+
+%======================================================================*
+% BIBTeX support for TeXsis (C) Copyright by Bernd Dammann 1995, 1996
+% Used here by his permission.
+%
+% Adapted from TXSbib.tex, by Bernd Dammann <bernd@fki.dtu.dk>
+
+\message{BIBTeX support for TeXsis (macros and patches) v 0.92}
+
+% These are needed (BIBTeX looks for them), but we just define them
+% as \relax, to avoid TeXsis complaining about undefined things while
+% it scans the .aux file.
+%
+\def\citation#1{\relax} \def\bibdata#1{\relax}
+\def\bibstyle#1{\relax} \def\bibcite#1#2{\relax}
+
+% \emdash was in some of the .bib files that came with BIBTeX. I
+% don't know what it is good for, so we define it as a dash
+\def\emdash{--}
+
+% REFERENCE STYLE. \ReferenceStyle{<style>} has the same
+% function as the corresponding \bibliographystyle LaTeX macro. It
+% tells BIBTeX which .bst style file to use for producing the reference
+% list. The <style> parameter is without the default extension .bst.
+% Usually you will want \ReferencStyle{texsis}, but we don't do that
+% automatically to allow user customization.
+
+\def\ReferenceStyle#1{\auxwritenow{\string\bibstyle\string{#1\string}}}
+\let\bibliographystyle=\ReferenceStyle % LaTeX synonym
+
+
+% REFERENCE FILES. \ReferenceFiles{<file1>,...<fileN>} has the same
+% function as the corresponding \bibliography{} LaTeX macro (almost).
+% We write the \bibdata{<file1>,...<fileN>} information to the .aux
+% file (BIBTeX needs it there), and we load the referencelist (if it
+% exists). Furthermore, we could use the TeXsis \ListReferences
+% macro to produce the list of references, to make this almost
+% behave as the LaTeX macro (we should then write a headline too).
+% However, we leave it to the user to print the references by using
+% \ListReferences. This has the advantage that one can use the
+% \ReferenceFiles{} in the very beginning of the TeX source, so we
+% don't need to run TeXsis twice after running BIBTeX (as in LaTeX).
+% This can be a big time saver, especially for long documents, and I
+% think it fits better with the TeXsis philosophy. -BD
+%
+\def\ReferenceFiles#1{% first write names of .bib files to .aux file
+ \auxwritenow{\string\bibdata\string{#1\string}}%
+%
+% Now try to open an existing .bbl file and read it in
+%
+ \immediate\openin\reflistin=\jobname.bbl % try to open .bbl file
+ \ifeof\reflistin % if EOF then it isn't there
+ \closein\reflistin % so just close it.
+ \else\immediate\closein\reflistin % close so to \input
+ \input\jobname.bbl \relax % \input the references
+ \fi}
+\let\bibliography=\ReferenceFiles % LaTeX synonym
+
+%>>> EOF TXSrefs.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSruled.tex b/Master/texmf-dist/tex/texsis/base/TXSruled.tex
new file mode 100644
index 00000000000..d7c1c21d5b9
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSruled.tex
@@ -0,0 +1,402 @@
+%% file: TXSruled.tex - Ruled Tables - TeXsis version 2.18
+%% @(#) $Id: TXSruled.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+%
+% These macros will typeset tables with vertical and
+% horizontal rules. The syntax is similar to Ray Cowan's TABLES.TEX,
+% but the macros have been completely rewritten. Vertical and horizontal
+% rules are drawn by macros using vertical spacing controlled by struts.
+% Usage:
+% \ruledtable
+% <item> <tab> ... <item> <cr>
+% ...
+% <item> <tab> ... <item> \endruledtable
+% where <item> is an element of the table (every row must have exactly
+% the same number of items, although some may be blank), <tab> is any
+% one of
+% & for no vertical rule
+% | [or \vb] for vertical rule
+% \| [or \Vb] for thick vertical rule
+% \dbl for double vertical rule
+% and <cr> is any one of
+% \nr for no horizontal rule
+% \cr for horizontal rule
+% \CR [or \crthick] for thick horizontal rule
+% The last <cr> must be omitted in favour of the \endruledtable
+%
+% For horizontal rules across only some columns use
+% ... \nr
+% \crule | \cskip & \Crule ... \crpart
+% where \crpart is a special \cr for the partial rule line and
+% \cskip no rule for column
+% \crule horizontal rule for column
+% \Crule thick horizontal rule for column
+% The number of columns must be identical to the other rows.
+%
+% To change the appearance of the table, modify \TableItem.
+% Several modifications are built in:
+% \LeftJustifyTables left justify each column
+% \RightJustifyTables right justify each item
+% \NoJustifyTables center each item (default)
+% \tablespace horizontal spacing around each item
+% (default is \quad)
+% \TightTables use \ horizontal spacing
+% \LooseTables use \quad horizontal spacing (default)
+%
+% Use \bigitem to expand the vertical strut for high or deep items.
+%
+% These macros have been reorganized and substantially revised from
+% version 2.13. The following functional changes have been made:
+% (1) The @ signs have been removed from the names of the macros
+% used to save the Plain \cr, \span, and & so that they can be used to
+% modify the preamble. See above.
+% (2) Macros for partial horizontal rules have been added.
+% (3) \tabskip glue has been added so that \tablewidth works
+% correctly -- the table stretches uniformly over all columns.
+% (4) \linecount has been moved to the \cr macros. It produces a
+% warning if the number of columns is different from that in the
+% previous row.
+% (5) Trailing spaces in the table items are added to the output.
+% A macro \NoTrailingSpaces inserts an \unskip after each item to remove
+% them. But this also removes trailing skips unless they are followed by
+% an empty \hbox or something similar. This is done automatically for
+% an \hfill (frequently used to left justify an item).
+% The default is \TrailingSpaces, but you may wish to insert
+% \NoTrailingSpaces in your TXSsite.tex file.
+% (6) \para uses \normalbaselines rather than specific pt values
+% for the interline spacing and the final strut.
+%
+% (C) copyright 1990, 1991 by Eric Myers and Frank E. Paige
+%======================================================================*
+% Counters and such:
+\catcode`@=11 % @ is a letter here
+\catcode`\|=12 % make sure | is not active
+\catcode`\&=4 % and that & is alignment tab
+
+\newcount\ncols \ncols=\z@ % number of columns in table
+\newcount\nrows \nrows=\z@ % number of rows in table
+\newcount\curcol \curcol=\z@ % current column counter
+\let\currow=\nrows % current row counter
+
+\newdimen\thinsize \thinsize=0.6pt % thin rule width
+\newdimen\thicksize \thicksize=1.5pt % thick rule width
+\newdimen\tablewidth \tablewidth=-\maxdimen % start ``turned off''
+\newdimen\parasize \parasize=4in % paragraph size in tables
+
+\newif\iftableinfo \tableinfotrue % report rows and columns? Yes
+\newif\ifcentertables \centertablestrue % center tables? Yes
+\def\centeredtables{\centertablestrue}%
+\def\noncenteredtables{\centertablesfalse}%
+\def\nocenteredtables{\centertablesfalse}% % synonym !
+
+\let\plaincr=\cr % save real \cr
+\let\plainspan=\span % save real \span
+\let\plaintab=& % save real alignment tab &
+\def\ampersand{\char`\&}% % to print `&' in text
+\let\lparen=( % save left paren
+\let\NX=\noexpand % shorthand for \noexpand is \NX
+
+%---------------------------------------*
+% Main macros:
+% \ruledtable <table stuff> \endruledtable turns on the ruled
+% table definitions and makes the table with \halign. It handles all
+% the control stuff; the real work is done by \@RuledTable.
+
+\def\ruledtable{\relax % make ruled table
+ \@BeginRuledTable % initialize table
+ \@RuledTable}% % now process table body
+
+% \@BeginRuledTable does all the work of setting things up before
+% we read in the body of the table
+
+\def\@BeginRuledTable{% % initialize table
+ \ncols=0\nrows=0 % reset row and column count
+ \begingroup % keep the following local
+ \offinterlineskip % so vrules touch
+ \def~{\phantom{0}}% % ~ is phantom digit
+ \def\span{\plainspan\omit\relax\colcount\plainspan}% \span USER columns
+ \let\cr=\crrule % \cr gives a \tablerule
+ \let\CR=\crthick % \CR gives a \thickrule
+ \let\nr=\crnorule % \nr give no rule
+ \let\|=\Vb % thick vrule between columns
+ \def\hfill{\hskip0pt plus1fill\hbox{}}% % so it is not removed
+%
+% support old \tablestrut in place of \tstrut if it exists
+%
+ \ifx\tablestrut\undefined\relax % if not defined, no problem
+ \else\let\tstrut=\tablestrut\fi % use \tablestrut
+%
+ \catcode`\|=13 \catcode`\&=13\relax % make | and & active
+ \TableActive % | and & get active \def`s
+ \curcol=1 % reset column count
+%
+% define \Halign to do an \halign with or without a width
+%
+ \ifdim\tablewidth>-\maxdimen\relax %
+ \edef\@Halign{\NX\halign to \NX\tablewidth\NX\bgroup\TablePreamble}%
+ \tabskip=0pt plus 1fil % let things stretch
+ \else %
+ \edef\@Halign{\NX\halign\NX\bgroup\TablePreamble}%
+ \tabskip=0pt % no stretch between columns
+ \fi %
+%
+% center text if needed
+%
+ \ifcentertables % should table be centered?
+ \ifhmode\vskip 0pt\fi % yes: force vertical mode
+ \line\bgroup\hss % center across page
+ \else\hbox\bgroup % else: just put in \hbox
+ \fi}% % end of \@BeginRuledTable
+
+
+% \@RuledTable builds the table with \@Halign and getting the
+% table body text as its argument.
+
+\long\def\@RuledTable#1\endruledtable{% % ruled table alignment
+ \vrule width\thicksize % thick rule on side
+ \vbox{\@Halign % then do \halign
+ \thickrule % thick rule on top
+ #1\killspace % body of table
+ \tstrut % vertical strut for last line
+ \linecount % count this line
+ \plaincr\thickrule % \cr, thick rule on bottom
+ \egroup}% % end of \halign and \vbox
+ \vrule width\thicksize % thick rule on side, end \hbox
+ \ifcentertables\hss\fi\egroup % finish table centering
+ \endgroup % end group from \ruledtable
+ \global\tablewidth=-\maxdimen % and reset width
+ \iftableinfo % report rows and columns
+ \immediate\write16{[Nrows=\the\nrows, Ncols=\the\ncols]}%
+ \fi}% % end of \@RuledTable
+
+%---------------------------------------*
+% Preamble and item macros:
+% \TablePreamble is the preamble for the \halign in \ruledtable.
+% To change how each item is processed change \TableItem.
+% To make a more complicated table you can change \TablePreamble,
+% but if you do so use the following substitutions in a standard \halign
+% preamble:
+% for & use \plaintab
+% for \cr use \plaincr
+% for # use ##
+% for ## use ####
+
+\def\TablePreamble{% % \ruledtable preamble
+ \TableItem{####}% % the first item
+ \plaintab\plaintab % && means repeat this
+ \TableItem{####}% % the subsequent items
+ \plaincr}% % end of preamble
+
+
+% \TableItem contains glue or spacing around the item
+
+\def\@TableItem#1{% % centers item in ruled table
+ \hfil\tablespace % left glue
+ #1\killspace% % item
+ \tablespace\hfil % right glue
+ }%
+
+\def\@tableright#1{% % right justifies item in ruled table
+ \hfil\tablespace\relax % left glue
+ #1\killspace% % item
+ \tablespace\relax}% % right glue
+
+\def\@tableleft#1{% % left justifies item in ruled table
+ \tablespace\relax % left glue
+ #1\killspace% % item
+ \tablespace\hfil}% % right glue
+
+\let\TableItem=\@TableItem % default is centered
+
+\def\RightJustifyTables{\let\TableItem=\@tableright}% % to right justify
+\def\LeftJustifyTables{\let\TableItem=\@tableleft}% % to left justify
+\def\NoJustifyTables{\let\TableItem=\@TableItem}% % to center
+
+
+% \TightTables makes the spacing of a table as tight as possible.
+% \LooseTables, the default, gives more pleasing spacing.
+
+\def\LooseTables{\let\tablespace=\quad}% % table spacing is \quad
+\def\TightTables{\let\tablespace=\space}% % table spacing is space
+\LooseTables % default is \quad
+
+
+% \TrailingSpaces, the default, allows trailing spaces and glue
+% to change the appearance of a table. \NoTrailingSpaces removes all
+% trailing spaces and glue before inserting the table glue.
+
+\def\TrailingSpaces{\let\killspace=\relax} % do not kill trailing space
+\def\NoTrailingSpaces{\let\killspace=\unskip} % kill trailing space
+\TrailingSpaces % default
+
+%---------------------------------------*
+% Table Height and Width:
+%
+% Normally tables are set to their natural width. If \tablewidth
+% has been set then we set the table to that width instead,
+% but only for the next table. Then \tablewidth is turned off
+
+% \setRuledStrut sets up the vertical strut \tstrut with
+% the appropriate dimensions to hold up one line of a ruled table.
+
+\def\setRuledStrut{% sets interlines spacing for ruled tables
+ \dimen@=\baselineskip % \dimen@ = extra space
+ \advance\dimen@ by-\normalbaselineskip % between lines
+ \ifdim\dimen@<.5ex \dimen@=.5ex\fi % minimum space
+ \setbox0=\hbox{\lparen}% % get character size
+ \dimen1=\dimen@ \advance\dimen1 by \ht0 %% space above line
+ \dimen2=\dimen@ \advance\dimen2 by \dp0 %% space below line
+ \def\tstrut{\vrule height\dimen1 depth\dimen2 width\z@}%
+ }%
+
+\def\tstrut{\vrule height 3.1ex depth 1.2ex width 0pt}% default
+
+
+% \tstrut does not produce the correct spacing if the entry in
+% the table is too high. The following constructs a strut higher than its
+% argument and then prints the argument. The minimum space value should
+% be the same as in \setRuledStrut.
+
+\def\bigitem#1{% % larger table entry
+ \dimen@=\baselineskip % \dimen@ = extra space
+ \advance\dimen@ by-\normalbaselineskip % between lines
+ \ifdim\dimen@<.5ex \dimen@=.5ex\fi % minimum space
+ \setbox0=\hbox{#1}% % get argument size
+ \dimen1=\dimen@ \advance\dimen1 by \ht0 % space above line
+ \dimen2=\dimen@ \advance\dimen2 by \dp0 % space below line
+ \vrule height\dimen1 depth\dimen2 width\z@ % make strut to size
+ \copy0}% % print argument
+
+
+% \vctr{stuff} centers the stuff vertically, so that it can
+% appear between two ROWS.
+
+\def\vctr#1{\hfil\vbox to 0pt{\vss\hbox{#1}\vss}\hfil}%
+
+%---------------------------------------*
+% Vertical rules:
+% \tab, \vb and \Vb are used in a table to separate columns with no
+% rule, a thin rule, or a thick rule, respectively. \nextcolumn{<rule>} skips
+% to the next column and puts the <rule> between columns. Use this to build
+% your own separators.
+
+\def\nextcolumn#1{% % move to next col.
+ \plaintab\omit#1\relax\colcount % tab, insert #1, count
+ \plaintab}% % tab to next user col.
+
+\def\tab{% % no rule between columns
+ \nextcolumn{\relax}}% % count column
+
+\let\novb=\tab % synonym for \tab
+
+\def\vb{% % thin rule between columns
+ \nextcolumn{\vrule width\thinsize}}% % count and rule
+
+\def\Vb{% % THICK rule between columns
+ \nextcolumn{\vrule width\thicksize}}% % count and thick rule
+
+\def\dbl{% % double rule between columns
+ \nextcolumn{\vrule width\thinsize % count and rule
+ \hskip 2\thinsize \vrule width\thinsize}}% % and skip and rule
+
+% \TableActive makes | the same as \vb and & the same as \tab so
+% these single characters can be used between columns. Here we have to
+% make & and | active so we get the active version of the characters,
+% hence the temporary change of \catcode.
+
+{\catcode`\|=13 \let|0
+ \catcode`\&=13 \let&0
+ \gdef\TableActive{\let|=\vb \let&=\tab}%
+}% end \catcode`s
+
+%---------------------------------------*
+% Horizontal rules:
+% These replacements for \cr put a wide \vrule at the end of the
+% line and maybe put a rule under the line, then begin the next line
+% with the wide \vrule from the preamble.
+
+
+\def\crrule{\killspace % \cr plus rule
+ \tstrut % strut for spacing
+ \linecount % count this line
+ \plaincr\tablerule % \cr, regular rule below line
+ }%
+
+\def\crthick{\killspace % \cr plus thick rule
+ \tstrut % strut for vertical spacing
+ \linecount % count this line
+ \plaincr\thickrule % \cr, rule, begin next line
+ }%
+
+\def\crnorule{\killspace % \cr plus no rule
+ \tstrut % strut for spacing
+ \linecount % count this line
+ \plaincr % \cr, norule, begin next line
+ }%
+
+\def\crpart{\killspace % end partial rule line
+ \linecount % count this line
+ \plaincr} % and end it
+
+
+% These rules go across the table.
+
+\def\tablerule{\noalign{\hrule height\thinsize depth 0pt}}%
+\def\thickrule{\noalign{\hrule height\thicksize depth 0pt}}%
+
+
+% Rules for individual columns. You must use \cskip in columns
+% with no rules to \omit the \TablePreamble.
+
+\def\cskip{\omit\relax}%
+\def\crule{\omit\leaders\hrule height\thinsize depth0pt\hfill}%
+\def\Crule{\omit\leaders\hrule height\thicksize depth0pt\hfill}%
+
+%---------------------------------------*
+% Counting macros:
+% These macros count rows and columns of the table. After the
+% first line has been processed \the\ncols is the total number of
+% columns in the table, which may be useful. During processing,
+% \the\curcol is the number of the current column, while \the\currow is
+% the number of the current row.
+
+
+\def\linecount{% % count and check row
+ \global\advance\nrows by1% % advance row counter
+ \ifnum\ncols>0% % if \ncols set
+ \ifnum\curcol=\ncols\relax\else % if new \ncols different
+ \immediate\write16% % then write message
+ {\NX\ruledtable warning: Ncols=\the\curcol\space for Nrow=\the\nrows}%
+ \fi\fi % end of tests
+ \global\ncols=\curcol % save columns in \ncols
+ \global\curcol=1} % reset counter
+
+\def\colcount{\relax %
+ \global\advance\curcol by 1\relax}% % advance column counter
+
+%---------------------------------------*
+% TEXT TABLES.
+% To put text in a table use \para{<text>}, with \parasize set
+% to the desired width of the text.
+
+\long\def\para#1{% % make a paragraph for tables
+ \vtop{\hsize=\parasize % width - set before \para called
+ \normalbaselines % set normal baseline skips
+ \noindent #1\relax % insert text
+ \vrule width 0pt depth 1.1ex}% % hold depth of box
+}%
+
+%---------------------------------------*
+% TABLES.TEX
+% For compatability with Cowan's TABLES.TEX we also allow the
+% syntax \begintable ... \endtable, which do the same thing.
+%
+
+\def\begintable{\relax % make ruled table
+ \@BeginRuledTable % initialize table
+ \@begintable}% % now process table body
+
+\long\def\@begintable#1\endtable{% % ruled table alignment
+ \@RuledTable#1\endruledtable}% % same as \ruledtable
+
+%>>> EOF TXSruled.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSsects.tex b/Master/texmf-dist/tex/texsis/base/TXSsects.tex
new file mode 100644
index 00000000000..24c8153a86b
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSsects.tex
@@ -0,0 +1,507 @@
+%% file: TXSsects.tex - Chapters and Sections - TeXsis version 2.18
+%% @(#) $Id: TXSsects.tex,v 18.1 2000/05/16 22:47:23 myers Exp $
+%======================================================================*
+%
+% These macros define chapters, sections, subsections, and
+% appendices with appropriate formats and numbering. Note that tags
+% are not automatically defined, but you can use \label.
+%
+% \chapter{<title>} causes a page break, prints the <title> in
+% "Title bold face" (\Tbf) (which defaults to \bf if it is undefined), and
+% adds an entry in the table of contents (q.v.).
+% \showchaptIDtrue (the default) causes the chapter number to be
+% printed and also to be appended it to equation numbers, giving in general
+% chapnum.sectnum.eqnum. \showchaptIDfalse turns off the display
+% of chapter numbers.
+%
+% \section{<title>} causes a skip but not a page break. It prints
+% the section heading in small title bold face (\tbf) (which defaults to \bf).
+% \showsectIDtrue (the default) causes the section number to be
+% printed and to be appended to any equation numbers. \showsectIDfalse
+% turns off the display of section numbers.
+%
+% \subsection{<title>} is like \section but does not use title
+% bold face. Subsection numbers are displayed if \showsectIDtrue, but
+% subsection numbers do not appear in equation numbers.
+%
+% \subsubsection{<title>} is a lower level than \subsection.
+% Use it sparingly and only when appropritate.
+%
+% \Appendix{<ID>}{<title>} creates an appendix, with the <ID>
+% playing the role of the chapter number. The <ID> appears in the title
+% and in equation numbers if \showchaptIDtrue.
+%
+% \appendix{<ID>}{<title>} creates a section-like appendix.
+%
+% \nosechead{<title>} produces a heading without begining a new section,
+% and without an entry in the table of contents. This can be used for
+% acknowledgements, etc.
+%
+% For books, theses, and other long documents \chapter should be
+% used for the first level of subdivision. For preprints and other
+% shorter documents, \section is generally more appropriate for the
+% first level, and it may be desirable to use \showsectIDfalse.
+%
+% Note: The typestyles \Tbf and \tbf should be defined elsewhere,
+% and will be used to print chapter and section titles.
+% Source: Much modified from TechRpt by Eric Myers
+%
+% Dependencies: TXSmacs.tex -- general things
+% TXStags.tex -- labeling and tagging
+% TXSconts.tex -- Table of contents macros \addTOC
+%======================================================================*
+% (C) copyright 1991-1999 by Eric Myers and Frank E. Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+%======================================================================*
+\message{Section and Chapter divisions.}
+\catcode`@=11
+
+% Counters, flags, and labels:
+
+\newcount\chapternum \chapternum=\z@ % chapter number
+\newcount\sectionnum \sectionnum=\z@ % section number
+\newcount\subsectionnum \subsectionnum=\z@ % sub-section number
+\newcount\subsubsectionnum \subsubsectionnum=\z@ % subsubsection number
+
+\newif\ifshowsectID \showsectIDtrue % show sections?
+\def\@sectID{} % section ID for eqns
+\newif\ifshowchaptID \showchaptIDtrue % show chapters?
+\def\@chaptID{} % chapt ID for eqns
+
+
+% \sectionskip and \subsectionskip are the skips used in \section (and
+% \appendix) and in \subsection (and \subsubsection):
+
+\newskip\sectionskip \sectionskip=2\baselineskip
+\newskip\subsectionskip \subsectionskip=1.5\baselineskip
+
+% \sectionminspace is how much must be left on the page to prevent
+% skipping to a new page at the begining of a section.
+
+\newdimen\sectionminspace \sectionminspace = 0.20\vsize
+
+%-------------------------------------*
+% CHAPTER LEVEL: \chapter{<title>} causes a page break, prints a
+% chapter title, and resets important counters. The macro \label may be
+% used to assign the chapter number to a name if it occurs in the title.
+% #2 is lookahead for a \par (blank line), which is discarded, so that
+% there is no indentation at the begining of a chapter.
+
+\long\def\chapter#1#2 {% begin a new chapter in a document
+ \def\@aftersect{#2}%
+ \ifx\@aftersect\empty\let\@aftersect=\@eatpar
+ \else\def\@aftersect{\@eatpar #2 }\fi
+ \vfill\supereject % begin on a new page
+ \global\advance\chapternum by \@ne % increment chapt. #
+ \global\sectionnum=\z@ % reset section # to zero
+ \global\def\@sectID{}% % section ID is null
+%
+% Chapter ID:
+%
+ \edef\lab@l{\ChapterStyle{\the\chapternum}}% % chapter ID for \label
+ \ifshowchaptID % show chapter id?
+ \global\edef\@chaptID{\lab@l.}% % yes: define chapter ID
+ \r@set % and reset most counters
+ \else\edef\@chaptID{}\fi % else chapt ID is null
+ \everychapter % user can customize here
+%
+% Print Title:
+%
+ \ifx\Tbf\undefined\def\Tbf{\bf}\fi % If \Tbf undefined make it \bf
+ \ifshowchaptID % if chapter ID used
+ \leftline{\Tbf{Chapter\ \@chaptID}} % CHAPTER ##. on a line
+ \nobreak\smallskip\fi % with little space below
+ \begingroup %
+ \raggedright\pretolerance=2000\hyphenpenalty=2000 % no hyphenation
+ \parindent=\z@ {\Tbf{#1}\bigskip}% % title, in \Tbf
+ \endgroup % format
+ \nobreak\bigskip % skip down some more
+%
+% Running Headline and Table of Contents:
+%
+ \begingroup % add to Table of Contents
+ \def\label##1{}% % disable \label
+ \xdef\ChapterTitle{#1}% % save title for user
+ \def\n{}\def\nl{}\def\mib{}% % now turn off \n, etc
+ \setHeadline{#1}% % make title the running head
+ \emsg{\@chaptID\space #1}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{0}{\TOCcID{\lab@l.}#1}{\folio}% % add to Table of Contents
+ \endgroup %
+%
+ \@Mark{#1}% % page mark chapter heading
+ \s@ction % end of section processing
+ \afterchapter\@aftersect} % user can customize (\@aftersect is lookahead)
+
+
+
+\def\everychapter{\relax}% user ``hook'' performed before every \chapter
+\def\afterchapter{\relax}% user ``hook'' performed after every \chapter
+
+
+
+% \ChapterStyle lets you change the style in which the chapter number
+% is displayed (i.e. \romannumerals, \Romannumerals, or \arabic
+
+\def\ChapterStyle#1{#1} % default is nothing
+
+\def\setChapterID#1{\edef\@chaptID{#1.}} % so you can change \@chaptID
+
+
+% \r@set restest all the counters for a new chapter or section
+
+\def\r@set{% % resets counters for \theorem, \EQN, etc...
+ \global\subsectionnum=\z@ % subsection number = 0
+ \global\subsubsectionnum=\z@ % subsubsection number = 0
+ \ifx\eqnum\undefined\relax % is TXSeqns.tex loaded?
+ \else\global\eqnum=\z@\fi % yes: reset equation number
+ \ifx\theoremnum\undefined\relax % is TXSfigs.tex loaded?
+ \else % yes: reset counters
+ \global\theoremnum=\z@ \global\lemmanum=\z@
+ \global\corollarynum=\z@ \global\definitionnum=\z@
+ \global\fignum=\z@
+ \ifRomanTables\relax
+ \else\global\tabnum=\z@\fi % do not reset tables if Roman numeral counting
+ \fi}
+
+\long\def\s@ction{% generic end processing common to chapters and sections
+ \checkquote % check for balanced quotes
+ \checkenv % check for balanced envmnt
+ \vskip -\parskip % eat skip to first paragraph
+ \nobreak\noindent}
+
+\def\@aftersect{}
+
+% TeXsperts note: the \@Mark \@noMark construction above is required because
+% we are using a \mark which contains an \else, and the marking operation
+% appears in conditional text (the \ifnum\chapternum ... \fi). -EAM
+
+\def\@Mark#1{% put a \mark with conditional text on the page
+ \begingroup
+ \def\label##1{}% % disable \label
+ \def\goodbreak{}% % disable \goodbreak
+ \def\mib{}\def\n{}% % disable \mib and \n
+ \mark{#1\NX\else\lab@l}% % put mark on page
+ \endgroup}%
+
+\def\@noMark#1{\relax}% % do nothing
+
+%-------------------------*
+% \setHeadline{text} sets the running headline to the text, but
+% if the text is so long that the user breaks it with \n then
+% only the first part up to the \n is used, followed by ...
+% (Move this to TXShead.tex at some point...)
+
+\def\setHeadline#1{\@setHeadline#1\n\endlist} % set the \HeadText
+
+\def\@setHeadline#1\n#2\endlist{% #1 is everything up to first \n
+ \def\@arg{#2}\ifx\@arg\empty % Is there \n in text?
+ \global\edef\HeadText{#1}% % No: just use #1
+ \else % there was, so...
+ \global\edef\HeadText{#1\dots}% % use first part up to \n
+ \fi
+}
+
+%--------------------------------------------------*
+% SECTION LEVELS: \section{<title>} makes a section level break in
+% text. It does *not* skip to a new page, but it will reset everything
+% and display the title in the \tbf typestyle (which defaults to \bf if
+% undefined). #2 is lookahead for a \par (blank line), which is
+% discarded, so that there is no indentation at the begining of a \section.
+
+\long\def\section#1#2 {% create a new section of a document
+ \def\@aftersect{#2}%
+ \ifx\@aftersect\empty\let\@aftersect=\@eatpar
+ \else\def\@aftersect{\@eatpar #2 }\fi
+ \vskip\parskip\vskip\sectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \global\advance\sectionnum by \@ne % increment section counter
+%
+% Section ID:
+%
+ \edef\lab@l{\@chaptID\SectionStyle{\the\sectionnum}}% For \label
+ \ifshowsectID % show section number?
+ \global\edef\@sectID{\SectionStyle{\the\sectionnum}.}% save for later
+ \global\edef\@fullID{\lab@l.\space\space}% % what we will use here
+ \r@set % and reset counters
+ \else\gdef\@fullID{}\def\@sectID{}\fi % otherwise section ID is empty
+ \everysection % user customization here
+%
+% Print the Section title:
+%
+ \ifx\tbf\undefined\def\tbf{\bf}\fi % default \tbf is \bf
+ \vbox{% % keep heading in \vbox
+ \raggedright\pretolerance=2000\hyphenpenalty=2000 % no hyphenation
+ \setbox0=\hbox{\noindent\tbf\@fullID}% % find width of ID
+ \hangindent=\wd0 \hangafter=1 % ... for hanging indent
+ \noindent\unhbox0{\tbf{#1}\medskip}}% % number and title
+ \nobreak %
+%
+% Table of Contents and Running Headlines:
+%
+ \begingroup % group for \contents, etc.
+ \def\label##1{}% % disable \label
+ \global\edef\SectionTitle{#1}% % or nothing
+ \def\n{}\def\nl{}\def\mib{}% % turn off \n, etc
+ \ifnum\chapternum=0\setHeadline{#1}\fi % no chapt. number -> set headine
+ \emsg{\@fullID #1}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{1}{\TOCsID{\lab@l.}#1}{\folio}% % Table of Contents entry
+ \endgroup % end group
+ \s@ction % checkenv, etc..
+ \aftersection\@aftersect} % user can customize (\@aftersect is lookahead)
+
+\def\everysection{\relax}% user ``hook'' performed before every \section
+\def\aftersection{\relax}% user ``hook'' performed after every \section
+
+\def\setSectionID#1{\edef\@sectID{#1.}} % so you can set it
+
+% \SectionStyle is style to display section number
+
+\def\SectionStyle#1{#1} % default is nothing
+
+%--------------------------------------------------*
+% \subsection makes a subsection. #2 is lookahead for a \par (blank
+% line), which is discarded, so that there is no indentation at the
+% begining of a \subsection.
+
+\long\def\subsection#1#2 {% create a subsection of a document
+ \def\@aftersect{#2}%
+ \ifx\@aftersect\empty\let\@aftersect=\@eatpar
+ \else\def\@aftersect{\@eatpar #2 }\relax\fi
+ \vskip\parskip\vskip\subsectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \global\advance\subsectionnum by \@ne % increment subsection counter
+ \subsubsectionnum=\z@ % reset subsubsection number
+%
+% Subsection ID:
+%
+ \edef\lab@l{\@chaptID\@sectID\SubsectionStyle{\the\subsectionnum}}%
+ \ifshowsectID % show section number?
+ \global\edef\@fullID{\lab@l.\space}% yes: define it
+ \else\gdef\@fullID{}\fi % otherwise it's empty
+ \everysubsection % user can customize
+%
+% Print the subsection title
+%
+ \vbox{% % heading in \vbox
+ {\raggedright\pretolerance=2000\hyphenpenalty=2000 % no hyphenation
+ \setbox0=\hbox{\noindent\bf\@fullID}% find width...
+ \hangindent=\wd0 \hangafter=1 % ... for hanging indent
+ \noindent\unhbox0{\bf{#1}\nobreak\medskip}}}% number, title, and space
+%
+ \begingroup % group for \contents, etc.
+ \def\label##1{}% % disable \label
+ \global\edef\SubsectionTitle{#1}% % or nothing
+ \def\n{}\def\nl{}\def\mib{}% % disable \n, etc
+ \emsg{\@fullID #1}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{2}{\TOCsID{\lab@l.}#1}{\folio}% Table of Contents entry
+ \endgroup % end \contents group
+ \s@ction % end of section
+ \aftersubsection\@aftersect}% room to customize (\@aftersect was lookahead)
+
+\def\everysubsection{\relax}% user ``hook'' performed before every \subsection
+\def\aftersubsection{\relax}% user ``hook'' performed after every \subsection
+\def\SubsectionStyle#1{#1} % how to display number
+
+
+%--------------------------------------------------*
+% \subsubsection makes a subsubsection, mainly for use if there
+% are no chapters in the document.
+
+\long\def\subsubsection#1#2 {% create a sub-subsection of a document
+ \def\@aftersect{#2}%
+ \ifx\@aftersect\empty\let\@aftersect=\@eatpar
+ \else\def\@aftersect{\@eatpar #2 }\fi
+ \vskip\parskip\vskip\subsectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \global\advance\subsubsectionnum by \@ne % increment counter
+%
+% Sub-subsection ID:
+%
+ \edef\lab@l{\@chaptID\@sectID\SubsectionStyle{\the\subsectionnum}.%%
+ \SubsubsectionStyle{\the\subsubsectionnum}}% for \label
+ \ifshowsectID % show section number?
+ \global\edef\@fullID{\lab@l.\space\space}% % yes: define it
+ \else\gdef\@fullID{}\fi % else it's empty
+ \everysubsubsection % user can customize here
+%
+% Print the sub-subsection title
+%
+ \vbox{% % heading in \vbox
+ {\raggedright\bf % Ragged \bf title
+ \setbox0=\hbox{\noindent\@fullID}% % find width
+ \hangindent=\wd0 \hangafter=1 % hanging indent after 1st line
+ \noindent\@fullID\relax % show subsection number
+ #1\nobreak\medskip}}% % print the title
+%
+ \begingroup % group for \contents, etc.
+ \def\label##1{}% % disable \label
+ \global\edef\SubsectionTitle{#1}% % or nothing
+ \def\n{}\def\nl{}\def\mib{}% % turn off \n, etc
+ \emsg{\@fullID #1}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{3}{\TOCsID{\lab@l.}#1}{\folio}% % Table of Contents entry
+ \endgroup % end group
+ \s@ction % end of section
+ \aftersubsubsection\@aftersect} % room to customize
+
+
+\def\everysubsubsection{\relax}% % user hook before every \subsubsection
+\def\aftersubsubsection{\relax}% % user hook after every \subsubsection
+\def\SubsubsectionStyle#1{#1} % how to display subsubsection number
+
+%--------------------------------------------------*
+% Appendecies:
+% \Appendix{<ID>}{<title>} creates an Appendix. The <ID>
+% plays the role of the chapter number in equation numbers and the table
+% of contents. Example: \Appendix{A}{How to create an Appendix}
+% #3 is lookahead for a \par (blank line), which is discarded, so that
+% there is no indentation at the begining of a chapter appendix.
+
+\long\def\Appendix#1#2#3 {% begin a chapter level appendix
+ \def\@aftersect{#3}%
+ \ifx\@aftersect\empty\let\@aftersect=\@eatpar
+ \else\def\@aftersect{\@eatpar #3 }\fi
+ \def\@arg{#1}% % get the ID argument #1
+ \vfill\supereject % begin on a new page
+ \global\sectionnum=\z@ % reset section # to zero
+%
+% Chapter-like ID:
+%
+ \edef\lab@l{#1}% % chapter ID for \label
+ \gdef\@sectID{}% % clear section ID
+ \ifshowchaptID % want to show chapter number?
+ \ifx\@arg\empty\else % if argument #1 not null
+ \global\edef\@chaptID{\lab@l.}\fi % set chapter ID to it
+ \r@set % reset counters to zero
+ \else\def\@chaptID{}\fi % else, no chapter ID
+ \everychapter % user customization
+%
+% Print Appendix Title:
+%
+ \ifx\Tbf\undefined\def\Tbf{\bf}\fi % If \Tbf undefined make it \bf
+ \leftline{\Tbf{Appendix\ \@chaptID}}% % APPENDIX ##.
+ \begingroup %
+ \nobreak\smallskip % print title of chapter
+ \parindent=\z@\raggedright % with a ragged
+ {\Tbf{#2}\bigskip}% % in \Tbf
+ \endgroup %
+ \nobreak\bigskip % skip down some more
+%
+% Table of Contents/ Headlines:
+%
+ \begingroup % add to Table of Contents
+ \def\label##1{}% % disable \label
+ \global\edef\ChapterTitle{#2}% % save title for user
+ \def\n{}\def\nl{}\def\mib{}% % now turn off \n, etc
+ \setHeadline{#2}% % make title the running head
+ \emsg{Appendix \@chaptID\space #2}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{0}{\TOCcID{\lab@l.}#2}{\folio}% % Table of Contents entry
+ \endgroup %
+%
+ \@Mark{#2}% % mark chapter heading
+ \s@ction % end of section
+ \afterchapter\@aftersect}% more user customization
+
+
+%--------------------------------------------------*
+% \appendix makes a section-type appendix. #3 is lookahead for a \par
+% (blank line), which is discarded, so that there is no indentation at
+% the begining of an \appendix.
+
+\long\def\appendix#1#2#3 {% begin a section level appendix
+ \def\@aftersect{#3}%
+ \ifx\@aftersect\empty\let\@aftersect=\@eatpar
+ \else\def\@aftersect{\@eatpar #3 }\fi
+
+ \vskip\parskip\vskip\sectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \global\advance\sectionnum by \@ne % increment section counter
+ \def\@arg{#1}% % save ID argument #1
+%
+% Section-like ID:
+%
+ \gdef\@sectID{}\gdef\@fullID{}% % assume null section ID
+ \edef\lab@l{#1}% % For use by \label
+ \ifshowsectID % want to show section number?
+ \r@set % yes: reset counters
+ \ifx\@arg\empty\else % was section ID given?
+ \global\edef\@sectID{\lab@l.}% % save it for later
+ \global\edef\@fullID{\lab@l.\space\space}\fi% this is what to show
+ \fi % else no section ID
+ \everysection % user customization
+%
+% Print appendix title:
+%
+ \ifx\tbf\undefined\def\tbf{\bf}\fi % default \tbf is \bf
+ \vbox{% % keep heading in \vbox
+ {\raggedright\tbf % ragged \tbf title
+ \setbox0=\hbox{\tbf\@fullID}% % find width for indent
+ \hangindent=\wd0 \hangafter=1 % hanging indent after 1st line
+ \noindent\@fullID % which has section ID
+ {#2}\nobreak\medskip}}% % Print title
+%
+% Running Headlines, Table of Contents
+%
+ \begingroup % group for \contents, etc.
+ \def\label##1{}% % disable \label
+ \global\edef\SectionTitle{#2}% % or nothing
+ \def\n{}\def\nl{}\def\mib{}% % turn off \n, etc
+ \ifnum\chapternum=0\setHeadline{#2}\fi % no chapter number -> headline
+ \emsg{appendix \@fullID #2}% % announce in log file
+ \def\@quote{\string\@quote\relax}% % in case of \quoteon
+ \addTOC{1}{\TOCsID{\lab@l.}#2}{\folio}% % Table of Contents entry
+ \endgroup % end \contents group
+ \s@ction % end of section
+ \aftersection\@aftersect}% user can customize
+
+
+%--------------------------------------------------*
+% \pagecheck<dimen> will skip to a new page if there is less than
+% the <dimen> of space on the remainder of the page. For example,
+% \pagecheck{0.333333\vsize} skips to a new page if there is less than
+% 1/3 of the page left
+
+\def\pagecheck#1{% skip to new page if less than #1 left on this one
+ \dimen@=\pagegoal % get total page size
+ \advance\dimen@ by -\pagetotal % get page space remaining
+ \ifdim\dimen@>0pt % is there some left, but
+ \ifdim\dimen@< #1\relax % not enough to look good?
+ \vfil\break \fi\fi % then skip to new page
+ }
+
+%--------------------------------------------------*
+% \nosechead produces a heading without a number, and without adding
+% to the table of contents. Suitable for Acknowledgements, Remarks, etc...
+% Use: \nosechead{heading text} See also \beginsection in The TeXbook
+
+\def\nosechead#1{% section-like heading without a number
+ \vskip\subsectionskip % make some space
+ \goodbreak\pagecheck\sectionminspace % new page if needed
+ \checkquote\checkenv % check open quotes
+ \dosupereject % floating figures need to get out
+%
+% Print title:
+%
+ \vbox{% % keep heading in \vbox
+ {\raggedright\bf\noindent % Ragged \bf title
+ {#1}%
+ \nobreak\medskip}}% % skip down some below title
+ }
+
+%--------------------------------------------------*
+% \checkenv checks for any unclosed environments (the kind defined
+% in TXSenvmt.tex) and prints a warning message.
+
+\def\checkenv{% check for balanced environments
+ \ifx\@envdepth\undefined\relax % is TXSenvmt.tex loaded?
+ \else\ifnum\@envdepth=\z@\relax % YES: check environment
+ \else\emsg{> Unclosed environment \@envname in the last section!}\fi
+ \fi} %
+
+%>>> EOF TXSsects.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXSsite.tex b/Master/texmf-dist/tex/texsis/base/TXSsite.tex
new file mode 100644
index 00000000000..a9825ef9621
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSsite.tex
@@ -0,0 +1,164 @@
+%% file: TXSsite.tex (TeXsis version 2.17)
+% $Revision: 18.0 $ : $Date: 2000/05/17 00:45:04 $ : $Author: myers $
+%======================================================================*
+% This is the site dependent info file for TeXsis. Edit the things
+% below to match your installation. Take out what you don't need or
+% want and add any local macros or other stuff you want. Anything
+% between \Ignore and \endIgnore is ignored, but will become active if
+% you remove the \Ignore. Remember, this file is only read in once when
+% texsis.fmt is made!
+
+% Change name to your own institution or site here:
+
+\message{Site dependent info.... Generic version.}
+
+\ATunlock % make @ a letter
+
+%===================================*
+% \ORGANIZATION is the name of the issuing organization, which
+% appears at the top of the title page, or on a \Memo.
+% You can also change it before you call \titlepage.
+
+\Ignore % an example using mixed caps
+ \def\ORGANIZATION{{\eightrm {\tenrm B}ANSAI {\tenrm I}NSTITUTE}}
+\endIgnore
+
+\def\ORGANIZATION{}
+
+%===================================*
+% \LandscapeSpecial turns on landscape mode on the laser printer.
+% How this is done is very site dependent. Uncomment the version
+% that works for you, or insert your own if these don't work.
+
+% 1) This is how dv2ips does it, and you need to have landscape.ps
+% accesable to the filter program
+
+\Ignore
+ \def\LandscapeSpecial{\special{psfile=landscape.ps}}
+\endIgnore
+
+% 2) This is how dvips (Rokicki's version 5.484 and later) does it:
+
+\def\LandscapeSpecial{\special{papersize=11in,8.5in}}
+
+
+%===================================*
+% \manualfeed tries to put the printer in Manual Feed mode, for
+% printing on letterhead stationary or envelopes.
+% How you do this is really installation specific.
+
+% If you use 'dvi2ps' then use \special to read the file manfeed.ps.
+% You can get it from ftp://feynman.physics.lsa.umich.edu/texsis/etc/manfeed.ps
+
+\Ignore
+ \def\manualfeed{\emsg{\@comment MANUAL FEED MODE SELECTED!}%
+ \special{psfile=manfeed.ps}}
+\endIgnore
+
+% Rokicki's dvips will do manual feed if you use 'dvips -m'
+% but this tries to do the same thing (and doesn't work! -EAM 98/03/06)
+
+\Ignore
+ \def\manualfeed{\emsg{\@comment MANUAL FEED MODE SELECTED!}%
+ \special{! @manualfeed}}
+\endIgnore
+
+
+%===================================*
+% \@DOCcode is the document code that appears in the upper right
+% part of the title page of a \preprint. It starts out at its default
+% value, and is changed by calling \pubcode{<code>} before you call
+% \titlepage. If you don't use anything you'll get \TeXsis.
+
+\Ignore
+ \def\@DOCcode{UTREL\hbox to 1.5cm{\hss}}
+\endIgnore
+
+%===================================*
+% \banner produces a banner across the top of the title page for
+% a \preprint. Customize this however you like.
+
+\def\banner{\vskip 0pt
+ \line{{\ninepoint\@PUBdate \hfil
+ \hbox{\vbox{\hrule\vskip 4pt \hbox{\ORGANIZATION}\vskip 4pt\hrule}}% %
+ \hfil \@DOCcode}}%
+ \vskip 1.0cm
+}
+
+\def\@PUBdate{\uppercase{\today}} % default is today
+
+
+%===================================*
+% \letterhead{phone} is for copying onto letterhead stationary.
+% It just puts on the date and a phone number (if given).
+
+% THIS IS JUST AN EXAMPLE - MODIFY FOR YOUR OWN INSTITUTION.
+
+\Ignore
+\def\letterhead#1{% letterhead for copying onto Univ. Michigan stationary
+ \def\PhoneNumber{#1}%
+ \emsg{Positioning date/phone for University of Michigan letterhead.}%
+ \begingroup % this header stuff is local
+ \parskip=0pt \parindent=0pt %
+ \null\vskip 0.6in % skip down to date line
+ \line{\hfill \hbox to 5in{\tensl \today\hfill}}% Today's Date
+ \line{\tenss \hfill (734)
+ \ifx\PhoneNumber\empty 764-4437\else \PhoneNumber\fi}%
+ \ifx\Email\undefined\else\line{\hfill \tt \Email}\fi
+ \vskip 10pt plus 1fil
+ \endgroup}
+\endIgnore
+
+%===================================*
+% \UMletterhead{phone} is a facsimile of the University of Michigan
+% stationary. If \Email is defined it is included under the phone number.
+
+% THIS IS JUST AN EXAMPLE - MODIFY FOR YOUR OWN INSTITUTION.
+% It uses a PostScript image of the Univ. Michigan seal, umseal.ps
+
+\Ignore
+\def\UMletterhead#1{% Facsimile of UM letterhead
+ \def\PhoneNumber{#1}%
+ \begingroup % make these these things local
+ \null\vskip -27pt % masthead up a bit to match real thing
+ \UMmasthead % UM seal and name
+ \line{\hfill \hbox to 5in{\tensl \today\hfill}}% Today's Date
+ \line{\tenss \hfill (734)
+ \ifx\PhoneNumber\empty 764-4437\else \PhoneNumber\fi}%
+ \ifx\Email\undefined\else\line{\hfill \tt \Email}\fi
+ \vskip 10pt plus 1fil
+ \endgroup}
+
+\def\UMseal{{\hbox{\epsfbox{umseal.eps}}}}%
+
+\def\UMmasthead{\line{\llap{\UMseal\hskip -35pt}\hfill
+ \hbox{\vbox{\hsize=13.99cm \def\LC##1{{\twentyfourpoint\bf ##1}}%
+ \line{\hfill \twentypoint\bf \LC{T}HE \LC{U}NIVERSITY OF \LC{M}ICHIGAN}%
+ \vskip 0.85cm
+ \line{\tenss DEPARTMENT OF PHYSICS \hfill 2071 Randall Laboratory}%
+ \line{\tenss \hfill Ann Arbor, MI 48109-1120}%
+ }}}}%
+\endIgnore
+
+%===================================*
+% Mailing Labels: you may have to change these depending on your
+% printer and the kind of labels you use.
+
+\Ignore
+
+% This is for the "standard" inch high, 3 across the page labels
+
+\lblHsize=7.32cm % width of standard label
+\lblVsize=2.54cm % height of standard label
+\fullHsize=8.5in % hsize for page
+\fullVsize=11.0in % vsize for page
+
+\lblVoffset=0pt % shift down this much
+\lblHoffset=-1.8cm % shift over this much
+
+\endIgnore
+
+%>>> EOF TXSsite.tex <<<
+
+
+
diff --git a/Master/texmf-dist/tex/texsis/base/TXSsymb.tex b/Master/texmf-dist/tex/texsis/base/TXSsymb.tex
new file mode 100644
index 00000000000..5eca6ed2e02
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXSsymb.tex
@@ -0,0 +1,194 @@
+%% file: TXSsymb.tex - Special Symbols - TeXsis version 2.18
+%% @(#) $Id: TXSsymb.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+% EXTENDED MATH SYMBOLS FOR PHYSICS
+%
+% This file defines extensions to the symbols in Plain TeX which
+% are generally useful for physics papers, especially (but not only) for
+% high energy physics. See the comments for each definition.
+%-----------------------------------------------------------------------*
+\message{Extended math/physics symbols,}
+
+% Assorted special symbols:
+
+% Use \E{exponent} for scientific notation, in text or math mode
+
+\def\E#1{\hbox{$\times 10^{#1}$}}
+
+% ---------- Gradient, partial, laplacian, etc...
+
+\def\square{\hbox{{$\sqcup$}\llap{$\sqcap$}}} % box laplacian
+\def\grad{\nabla} % synonym for the gradient
+\def\del{\partial} % synonym for \partial
+
+% ---------- Fractions.
+
+\def\frac#1#2{{#1\over#2}}
+\def\smallfrac#1#2{{\scriptstyle {#1 \over #2}}}
+\def\half{\ifinner {\scriptstyle {1 \over 2}}%
+ \else {\textstyle {1 \over 2}}\fi}
+
+% ---------- Bras, kets and vev's
+
+\def\bra#1{\langle#1\vert} % \bra{stuff} gives <stuff|
+\def\ket#1{\vert#1\/\rangle} % \ket{stuff} gives |stuff>
+\def\vev#1{\langle{#1}\rangle} % \vev{stuff} gives <stuff>
+
+
+% \simge and \simle make the "greater than about" and the "less
+% than about" symbols with spacing as relations. \therefore is the
+% three-dots-in-a-triangle symble for ``therefore''
+
+\def\simge{% ``greater than about'' symbol
+ \mathrel{\rlap{\raise 0.511ex
+ \hbox{$>$}}{\lower 0.511ex \hbox{$\sim$}}}}
+
+\def\simle{% ``less than about'' symbol
+ \mathrel{\rlap{\raise 0.511ex
+ \hbox{$<$}}{\lower 0.511ex \hbox{$\sim$}}}}
+
+\def\gtsim{\simge} % synonym for \simge
+\def\ltsim{\simle} % synonym for \simle
+
+
+\def\therefore{% three-dot symbol for ``therefore''
+ \setbox0=\hbox{$.\kern.2em.$}\dimen0=\wd0 %
+ \mathrel{\rlap{\raise.25ex\hbox to\dimen0{\hfil$\cdotp$\hfil}}%
+ \copy0}}
+
+
+% \| gives a vertical bar appropriate to the context
+
+\def\|{\ifmmode\Vert\else \char`\|\fi}
+
+% the pound Sterling symbol, from the \it italic font
+
+\def\sterling{{\hbox{\it\char'44}}}
+
+% \degrees works in math or text mode. Eg. 90\degrees or 45\degree
+
+\def\degrees{\hbox{$^\circ$}} % the degrees symbol, $^\circ$
+\def\degree{\degrees} % synonym
+
+% ---------- Functions -- all defined like \sin, etc. in Plain TeX:
+
+\def\real{\mathop{\rm Re}\nolimits} % Re for real part
+\def\imag{\mathop{\rm Im}\nolimits} % Im for imaginary part
+
+\def\tr{\mathop{\rm tr}\nolimits} % tr for trace
+\def\Tr{\mathop{\rm Tr}\nolimits} % Tr for functional trace
+\def\Det{\mathop{\rm Det}\nolimits} % Det for functional determinant
+
+\def\mod{\mathop{\rm mod}\nolimits} % mod for modulo
+\def\wrt{\mathop{\rm wrt}\nolimits} % wrt for with respect to
+\def\diag{\mathop{\rm diag}\nolimits} % diag for diagonal matrix
+
+% ---------- Abbreviations for units
+
+\def\TeV{{\rm TeV}} % 10^12 electron volts
+\def\GeV{{\rm GeV}} % 10^9 electron volts
+\def\MeV{{\rm MeV}} % 10^6 electron volts
+\def\keV{{\rm keV}} % 10^3 electron volts
+\def\eV{{\rm eV}} % 1 electron volt
+
+\def\Ry{{\rm Ry}} % Rydbergs
+
+\def\mb{{\rm mb}} % 10^-27 cm^2
+\def\mub{\hbox{\rm $\mu$b}} % 10^-30 cm^2
+\def\nb{{\rm nb}} % 10^-33 cm^2
+\def\pb{{\rm pb}} % 10^-36 cm^2
+\def\fb{{\rm fb}} % 10^-39 cm^2
+
+\def\cmsec{{\rm cm^{-2}s^{-1}}} % cm^-2s^-1 for luminosity
+
+% Build your own unit with \units. Eg. \units{klik}
+
+\def\units#1{\hbox{\rm #1}}
+\let\unit=\units % synonym
+
+% Use \dimensions{what}{power} to create the square bracket/power
+% notation for dimensional analysis. Eg. \dimensions{mass}{2}
+
+\def\dimensions#1#2{\hbox{$[\hbox{\rm #1}]^{#2}$}}
+
+%========================================*
+% \parenbar puts a bar in small parentheses over a character to
+% indicate an optional antiparticle. \nunubar and \ppbar are special
+% cases.
+
+\def\parenbar#1{{\null\! % left-hand spacing
+ \mathop{\smash#1}\limits% % superscript above
+ ^{\hbox{\fiverm(--)}}% % 5pt type
+ \!\null}} % right-hand spacing
+
+\def\nunubar{\parenbar{\nu}}
+\def\ppbar{\parenbar{p}}
+
+%========================================*
+% \buildchar makes a compound symbol, placing #2 above #1 and #3
+% below it with \limits. \overcirc is a special case.
+
+\def\buildchar#1#2#3{{\null\! % \null, cancel space
+ \mathop{\vphantom{#1}\smash#1}\limits% % #1 with spacing and
+ ^{#2}_{#3}% % #2 above, #3 below
+ \!\null}} % cancel space, \null
+
+\def\overcirc#1{\buildchar{#1}{\circ}{}}
+
+% Sun and earth symbols
+
+\def\sun{{\hbox{$\odot$}}}\def\earth{{\hbox{$\oplus$}}}
+
+%========================================*
+% \slashchar puts a slash through a character to represent contraction
+% with Dirac matrices.
+
+\def\slashchar#1{\setbox0=\hbox{$#1$} % set a box for #1
+ \dimen0=\wd0 % and get its size
+ \setbox1=\hbox{/} \dimen1=\wd1 % get size of /
+ \ifdim\dimen0>\dimen1 % #1 is bigger
+ \rlap{\hbox to \dimen0{\hfil/\hfil}} % so center / in box
+ #1 % and print #1
+ \else % / is bigger
+ \rlap{\hbox to \dimen1{\hfil$#1$\hfil}} % so center #1
+ / % and print /
+ \fi} %
+
+%========================================*
+% \subrightarrow#1 puts the text #1 under an arrow of the
+% appropriate length.
+
+\def\subrightarrow#1{% % #1 under arrow
+ \setbox0=\hbox{% % set a box
+ $\displaystyle\mathop{}% % no mathop
+ \limits_{#1}$}% % just limits
+ \dimen0=\wd0% % get width
+ \advance \dimen0 by .5em% % add a bit
+ \mathrel{% % space like =
+ \mathop{\hbox to \dimen0{\rightarrowfill}}% % arrow to width
+ \limits_{#1}}} % text below
+
+%========================================*
+% \vbig produces very (or variably) big delimiters. The syntax is
+% \vbigl<delim><size> or \vbigr<delim><size>, where <delim> is any
+% delimiter and <size> is any valid dimension in pt, cm, in,....
+% There is also a \vbigm for (middle) relations.
+
+\newdimen\vbigd@men % for \vbig
+
+\def\vbigl{\mathopen\vbig}
+\def\vbigm{\mathrel\vbig}
+\def\vbigr{\mathclose\vbig}
+
+\def\vbig#1#2{{\vbigd@men=#2\divide\vbigd@men by 2%
+ \hbox{$\left#1\vbox to \vbigd@men{}\right.\n@space$}}}
+
+% \Leftcases and \Rightcases are just \vbig \{ or \} with \smash. These
+% can be used to make constructions like \cases with a number on each
+% line, but the spacing is NOT automatic.
+
+\def\Leftcases#1{\smash{\vbigl\{{#1}}}
+\def\Rightcases#1{\smash{\vbigr\}{#1}}}
+
+% >>> EOF TXSsymb.tex <<<
+
diff --git a/Master/texmf-dist/tex/texsis/base/TXStags.tex b/Master/texmf-dist/tex/texsis/base/TXStags.tex
new file mode 100644
index 00000000000..2ad3e8ce6b2
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXStags.tex
@@ -0,0 +1,288 @@
+%% file: TXStags.tex - Labels and Tags - TeXsis version 2.18
+%% @(#) $Id: TXStags.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+% TAGS - create lables and links for things
+%
+%
+% This file is a part of TeXsis.
+% (C) copyright 1991, 1997 by Eric Myers and Frank Paige.
+%======================================================================*
+\message{Labels and tags.}
+
+% I/O and switches:
+
+\newread\auxfilein % input for jobname.aux file
+\newwrite\auxfileout % output for jobname.aux file
+\newif\ifauxswitch \auxswitchtrue % enable writing to .aux file?
+
+\let\XA=\expandafter \let\NX=\noexpand % shorthand
+\catcode`"=12 % make sure " is not active
+\catcode`@=11 % @ is a letter here
+
+\newcount\@BadTags \@BadTags= 0 % count undefined tags
+
+%==================================================*
+% INITIALIZATION. \auxinit is used to open jobname.aux for output to
+% save these definitions for the next run. It opens the file and then
+% disables itself so it doesn't try to open the file again.
+
+\def\auxinit{% once only initialization of auxilliary file
+ \ifauxswitch %
+ \@FileInit\auxfileout=\jobname.aux[Auxiliary File]%%
+ \else \gdef\auxwritenow##1{}\gdef\auxwrite##1{} \fi % turn off .aux output
+ \gdef\auxinit{\relax}} % only do \auxinit once!
+
+% How to write to the .aux file in general
+
+\def\auxwritenow#1{\auxinit % write immediately to .aux file
+ \immediate\write\auxfileout{#1}}
+
+\def\auxwrite#1{\auxinit\write\auxfileout{#1}} % write (delayed) to .aux file
+
+
+% \auxoutnow{csname}{value} writes the definition to the \jobname.aux
+% file immediately. \auxout writes when the page is output
+
+\def\auxoutnow#1#2{\auxwritenow{\string\newlabel{#1}{{#2}{\folio}}}}
+\def\auxout#1#2{\auxwrite{\string\newlabel{#1}{{#2}{\folio}}}}
+
+%- \ReadAUX looks for a file called jobname.aux and if it exists reads
+% it in. This file should have tag and label definitions from a
+% previous run (and now containing \newlabel's and such)
+
+\def\ReadAUX{% reads in the auxilliary file from a previous run
+ \openin\auxfilein=\jobname.aux % open old .aux file for input
+ \ifeof\auxfilein\closein\auxfilein % if EOF it's empty.
+ \else\closein\auxfilein % else close it and...
+ \begingroup % fix up special characters...
+ \def\@tag##1##2{\endgroup % simpler way to \tag here
+ \edef\@@temp{##2}% % put ``value'' in \@@temp
+ \testtag{##1}\XA\xdef\csname\tok\endcsname{\@@temp}}%
+ \unSpecial\ATunlock % special characters not so special
+ \input\jobname.aux \relax % ...and read in the file
+ \endgroup % back to special characters
+ \fi} % else ignore it
+
+%==================================================*
+% TAGGING. Save information by labeling it.
+%
+% \tag{name}{<value>} defines the control sequence \@name@ to be
+% <value>, and writes the definition to the file jobname.aux so
+% jobs that follow can resolve forward references. (The @'s
+% in \@name@ are a part of the name, and are included so that
+% the user does not define a tag with the same name as a control
+% sequence. The backslash is actually not a part of the name.)
+% We use \csname ... \endcsname so that label names can include
+% digits, numbers and other characters. It is not a good idea to
+% use &,~,\,| or other special characters. Spaces may be included
+% in a name, but they are ignored.
+
+\def\tag{% \tag{name}{value} defines \@name@ to be "value"
+ \begingroup\unSpecial % to turn off special chars
+ \@tag} % do the tagging
+
+\def\@tag#1#2{% does the work for \tag
+ \endgroup % end group from \tag
+ \ifx\folio#2 % is the value a \folio
+ \auxout{#1}{#2}% % write to .aux when page is printed
+ \else % else define and write it now
+ \edef\@@temp{#2}% % put ``value'' in \@@temp
+ \stripblanks @#1@\endlist % \testtag{#1} --> \tok
+ \XA\xdef\csname\tok\endcsname{\@@temp}% define \@name@ as ``value''
+ \auxoutnow{#1}{\@@temp}% % write def to .aux file
+ \fi}
+
+%-------------------------*
+% \label{name} tags \@name@ with the current value of \lab@l,
+% which is set to the proper value by various macros, such as
+% \chapter, \section, etc...
+
+\def\label{\begingroup\unSpecial\@label}
+\def\@label#1{\endgroup\tag{#1}{\lab@l}}
+
+\def\lab@l{\relax} % start with empty label
+
+% \newlabel{name}{{<value>}{page}} does about the same thing, but
+% can be written to the .aux file (and has the same syntax as in LaTeX)
+
+\def\newlabel{\begingroup\unSpecial\@newlabel}
+\def\@newlabel#1#2{\endgroup\do@label#2\label{#1}}
+\def\do@label#1#2{\def\lab@l{#1}\def\lab@lpage{#2}}
+
+%-------------------------*
+% \use{name} uses the value of \@name@ if it is defined; otherwise it
+% puts {\bf "name"} into the text and writes an error message to the
+% log file
+
+\def\use{% \use{name} evaluates to \@name@, which is set by \tag
+ \begingroup\unSpecial\@use}
+
+\def\@use#1{\endgroup % end unspecial characters
+ \stripblanks @#1@\endlist % @name@ -> \tok w/o blanks
+ \XA\ifx\csname\tok\endcsname\relax\relax % is \@name@ undefined?
+ \emsg{> UNDEFINED TAG #1 ON PAGE \folio.}% % yes: error message
+ \global\advance\@BadTags by 1 % count how many
+ \@errmark{UNDEF}% % and mark in output
+ \edef\tok{{\bf\tok}}% % and return \bf ``name''
+ \else % else:
+ \edef\tok{\csname\tok\endcsname}% % get the definition
+ \fi %
+ \tok} % evaluate it
+
+
+% -- \unSpecial makes certain special characters have ``normal''
+% catcodes so they can be used in tag labels.
+
+\def\unSpecial{% gives special characters ``normal'' catcodes
+ \catcode`@=12 \catcode`"=12 \catcode``=12 \catcode`'=12
+ \catcode`[=12 \catcode`]=12 \catcode`(=12 \catcode`)=12
+ \catcode`<=12 \catcode`>=12 \catcode`\&=12 \catcode`\#=12
+ \catcode`/=12}
+
+
+% \stripblanks <text> \endlist removes extraneous blanks from
+% the token list in <text> and puts the result in \tok.
+% \tok is \empty if text is ALL blank.
+
+\def\stripblanks{% everything up to \endlist --> \tok, with blanks removed
+ \let\tok=\empty\@stripblanks}
+
+\def\@stripblanks#1{\def\next{#1}\@striplist}
+
+\def\@striplist{%
+ \ifx\next\stripblanks\message{>\NX\@striplist: Oops!}\next=\endlist\fi %
+ \ifx\next\endlist\let\next=\relax %
+ \else\@stripspace\let\next=\@stripblanks\fi %
+ \next}
+
+\def\@stripspace{\XA\if\space\next\else\edef\tok{\tok\next}\fi}
+
+\def\endlist{\endlist} % \endlist is undefined on purpose
+
+
+% \testtag{name} determines whether the label given by "name"
+% is undefined (using the fact that \csname makes a default assignment
+% of undefined control sequences to \relax) and sets \undefinedtrue
+% or \undefinedfalse as appropriate. The full name is in \tok (with
+% blanks removed) so you can use it with \csname\tok\endcsname.
+% Use: \testtag{foo}\ifundefined <stuff> \else <other stuff> \fi
+
+\newif\ifundefined \undefinedfalse
+
+\def\testtag#1{\stripblanks @#1@\endlist
+ \XA\ifx\csname\tok\endcsname\relax\undefinedtrue
+ \else\undefinedfalse\fi}
+
+
+% \checktags tells you if there were any undefined tags or references...
+% Use this at the end of a run to warn about possible errors.
+
+\def\checktags{% check for any undefined tags
+ \ifnum\@BadTags>\z@ % any undefine tags?
+ \emsg{>}\emsg{> There were \the\@BadTags\ references to undefined tags.}%
+ \emsg{> See the file \jobname.log for the citations, or try running}%
+ \emsg{> TeXsis again to resolve forward references.}\emsg{>}%
+ \fi}
+
+%==================================================*
+% PARSE LABELS.
+%
+% \LabelParse <text>;;\endlist parses <text> as an equation,
+% figure or table label. It separates out letters, if present (eg.
+% label;a for Figure 2a, but the ";" does not appear in output.)
+% It increments the counter \@count, if appropriate, and builds an ID in
+% \@ID. It also \tag's the label with the value of the ID,
+% preceeding the label with the prefix \@prefix to distinguish its type.
+
+\def\LabelParse#1;#2;#3\endlist{%
+ \def\@TagName{\@prefix#1}% % NAME= for html link target
+ \if ?#3?\relax % if #3 is null, no ";" present
+ \global\advance\@count by\@ne % so advance the count
+ \else % if ; , look for letter
+ \stripblanks #2\endlist % remove any blanks from letter
+ \edef\@arg{\tok}\if a\@arg\relax % if ";" present is it ";a"?
+ \global\advance\@count by\@ne\fi % yes: advance counter anyway
+ \xdef\@ID{\@chaptID\@sectID\the\@count\@arg}% construct label;part
+ \tag{\@prefix#1;\@arg}{\@ID}% % and tag it #nn;x
+ \fi % end \if ?#3?
+ \xdef\@ID{\@chaptID\@sectID\the\@count}% % construct value for label
+ \tag{\@prefix#1}{\@ID}% % tag #nn
+} % end of \LabelParse
+
+\def\@ID{} % default \@ID is null
+
+%======================================================================*
+% HyperTeXt support via \special HTML:
+%
+% \html{<stuff>} simply stuffs the ``stuff'' into an HTML \special
+% \linkto{<NAME>}{<text>} makes a link to a target created with \linkname
+% \linkname{<NAME>}{<text>} makes a NAME= target for the given text
+% \href{URL}{text} links the given text to the URL (as per LANL example)
+% \URL{URL} links to the given URL and puts it in the text
+
+
+\newif\ifhtml \htmlfalse % default is HTML OFF!
+
+% These just turn off special characters that might be in link names
+% or URL's, and then invoke @hidden macros to do the real work (below).
+
+\def\html{\begingroup\htmlChar\@html}
+
+\def\linkto{\begingroup\htmlChar\@linkto}
+\def\linkname{\begingroup\htmlChar\@linkname}
+
+\def\href{\begingroup\htmlChar\@href}
+\def\URL{\begingroup\htmlChar\@URL}
+\def\xxxcite{\begingroup\htmlChar\@xxxcite}
+
+% Hyperlink NAMES or URL's may contain characters which are special to
+% TeX, so \htmlChar turns off their special meaning while we read
+% in the link or URL. Then we end the group so that special characters
+% CAN be used in the text portion of the link.
+
+\def\notie{\def~{\Tilde}}
+\def\urlChar{\def\/{\discretionary{}{/}{/}}\def\.{\discretionary{.}{}{.}}}
+\def\@htmlChar{\def\/{/}}
+
+
+\begingroup
+ \catcode`\~=12 \catcode`"=12 \catcode`\/=12
+ \catcode`<=12 \catcode`>=12
+ \begingroup
+ \catcode`\%=12 \catcode`\#=12
+ \gdef\htmlChar{\notie
+ \catcode`@=12 \catcode`"=12 \catcode``=12 \catcode`'=12
+ \catcode`[=12 \catcode`]=12 \catcode`(=12 \catcode`)=12
+ \catcode`<=12 \catcode`>=12 \catcode`_=12 \catcode`^=12
+ \catcode`$=12 \catcode`\&=12 \catcode`\#=12 \catcode`%=12
+ \catcode`~=12 \catcode`/=12 \catcode`/=12 \@htmlChar}
+ \gdef\hash{#}\gdef\Tilde{~}
+ \endgroup
+
+% General HTML:
+
+ \gdef\@html#1{\ifhtml\special{html:#1}\fi\endgroup}%
+
+% Local Links:
+
+ \gdef\@linkto#1{\endgroup\@@linkto{#1}}% Arg #2 is whatever follows
+ \gdef\@@linkto#1#2{\html{<a href="\hash#1">}{#2}\html{</a>}}
+ \gdef\@linkname#1{\endgroup\@@linkname{#1}}
+ \gdef\@@linkname#1#2{\html{<a name="#1">}{#2}\html{</a>}}
+
+% General Links (any URL):
+
+ \gdef\@href#1{\endgroup\@@href{#1}}% Arg #2 is whatever follows
+ \gdef\@@href#1#2{\html{<a href="#1">}\urlChar{#2}\html{</a>}}%
+ \gdef\@URL#1{\html{<a href="#1">}\urlChar{\tt #1}\html{</a>}\endgroup}%
+
+ \gdef\@xxxcite#1{\href{http://xxx.lanl.gov/abs/#1}%
+ \urlChar{#1}\relax}
+
+\endgroup
+
+% synonyms for macros in hyperbasics.tex
+
+\let\hypertarget=\linkname \let\hname=\linkname
+
+%>>> EOF TXStags.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/TXStitle.tex b/Master/texmf-dist/tex/texsis/base/TXStitle.tex
new file mode 100644
index 00000000000..ebfe0a7900a
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/TXStitle.tex
@@ -0,0 +1,284 @@
+%% file: TXStitle.tex - Title Page Macros - TeXsis version 2.18
+%% @(#) $Id: TXStitle.tex,v 18.0 1999/07/09 17:24:29 myers Exp $
+%======================================================================*
+% Title Page Macros: (C) copyright 1986 by Eric Myers.
+%
+% These macros are used for creating for a document a title page which
+% includes a document code and date, title, name and address of author(s),
+% abstract, and other information. An outline of how to make a typical
+% title page is:
+%
+% \pubdate{May, 1986}
+% \pubcode{11973}
+% \titlepage
+% \title
+% TITLE OF PAPER, (which will be in \Tbf type)
+% on several lines, if you want.
+% \endtitle
+% \author
+% Name of Author
+% Address of author
+% on several lines, if you want.
+% \endauthor
+% \abstract
+% text of abstract.
+% \endabstract
+% \endtitlepage
+%
+% For papers with many authors it is more appropriate to use
+%
+% \authors
+% A.~Able,\note{a} B.~Baker,\note{b}, C.~Charlie,\note{a}
+% ...
+% \institution{a}{University A}
+% \institution{b}{University B}
+% ...
+% \endauthors
+%
+% Special document layouts in TXSfmts.tex may change the behaviour
+% of some of these control words, but the general idea should always
+% be the same, so that you can change document layout with one command.
+%
+% \title, \author, \abstract, etc. automatically set up an \endmode
+% command which when used by a following command closes the appropriate
+% group. These definitions are kept local with \bgroup ... \egroup.
+%
+% Dependencies: TXSmacs.TeX and TXSenvmnt.TeX (for \center)
+%======================================================================*
+\message{Title Page macros.}
+\catcode`@=11 % @ is a letter here
+
+% \pubdate and \pubcode provide information used by \banner when
+% it creates the header for the title page
+
+\def\pubcode#1{\gdef\@DOCcode{#1}}
+\def\PUBcode#1{\gdef\@DOCcode{#1}} % synonym
+\def\DOCcode#1{\PUBcode{#1}} % synonym
+\def\BNLcode#1{\PUBcode{#1}\banner} % backward compatibility
+
+
+% \@DOCcode starts out at the default value, and is changed by \pubcode
+
+\def\@DOCcode{\TeXsis~\fmtversion} % default
+
+% macros to set these things
+
+\def\pubdate#1{\gdef\@PUBdate{#1}}
+\def\PUBdate#1{\gdef\@PUBdate{#1}} %synonum
+
+\def\@PUBdate{\monthname{\month},~\number\year}% default is today
+
+
+% \ORGANIZATION is the name of the issuing organization, and you
+% can change it before you call \banner, or change the default in
+% the site dependent info file TXSsite.TEX.
+
+\def\ORGANIZATION{} % default is nothing
+
+
+% \banner prints a header using \ORGANIZATION, \pubdate, and \pubcode
+% at the top of the document. Change this for your institution in
+% the TXSsite file if you don't like this one.
+
+\def\banner{%
+ \line{\hfil %
+ \vbox to 0pt{\vss \hbox{\twelvess \ORGANIZATION}}%
+ \hfil}% % name of org, centered
+ \vskip 12pt % skip down to rule
+ \hrule height 0.6pt \vskip 1pt \hrule height 0.6pt % double rule
+ \vskip 4pt \relax % white space
+ \line{\twelvepoint\rm\@PUBdate \hfil \@DOCcode}% date and doc code
+ \vskip 3pt % white space
+ \hrule height 0.6pt \vskip 1pt \hrule height 0.6pt % double rule
+ \vskip 0pt plus 1fil % stretch below
+ \vskip 1.0cm minus 1.0cm % skip down a bit
+ \relax}
+
+
+% Use \titlepage to begin the ``title'' material, which is the
+% title, authors, abstract, etc.. This is a block of text which
+% may appear on a separate page or may just appear at the top
+% of the first page. End with \endtitlepage
+
+\def\titlepage{% begin title page material
+ \bgroup % open \titlepage group
+ \pageno=1 % force start at page 1.
+ \hbox{\space}% % anchor to the top of the page
+ \let\title=\Title % \title inside \titlepage
+ \let\endmode=\relax % \endmode will end a field
+ }
+
+\def\endtitlepage{% end the title page material
+ \endmode % end any open field
+ \vfil\eject % eject the page (default)
+ \egroup} % close \titlepage group
+
+%--------------------------------------------------*
+% \title ... <text of title> ... \endtitle prints the title of the
+% paper in 14pt bold, centered. Line endings are observed, and you
+% should begin the title on the line after \title.
+
+\def\title{% begin the Title of a paper or book
+ \endmode % end any previous field
+ \vskip 0pt % vertial mode before \mark
+ \mark{Title Page\NX\else Title Page}%% mark page so no \HeadLine
+ \bgroup % open \title group
+ \let\endmode=\endTitle % will end \title
+ \center\Tbf} % centered, title boldface
+
+\let\Title=\title % in case this is forgotten!
+
+\def\endtitle{% end the Title for a paper or book
+ \endcenter % end centering
+ \bigskip % some space below
+ \gdef\title{% re-define \title for references use
+ \emsg{> Please use \NX\booktitle instead of \NX\title.}%
+ \@errmark{OLD!}%
+ \booktitle}% % make \title = \booktitle
+ \egroup}% % close \title group
+
+\def\endTitle{\endtitle} % synonym
+
+\def\Tbf{\sixteenpoint\bf} % default title typestyle
+
+
+%----------------------------------------*
+% \author gets the author's name and affiliation. The first line after
+% \author is the name, and following lines up to \endauthor are the address.
+
+\def\author{% first line after as author's name, following lines are address
+ \endmode % end any previous mode
+ \bgroup %
+ \let\endmode=\endauthor % will end \author
+ \singlespaced\parskip=0pt % default single spaced
+ \obeylines\def\\{\par}% % break at line breaks, or at \\
+ \@getauthor} % next line = author's name
+
+{\obeylines\gdef\@getauthor#1
+ #2
+ {#1\bigskip\def\n{\egroup\centerline\bgroup\bf}% % how to break names
+ \centerline{\bf #2}% % first line is author's name,
+ \medskip\center}% % next lines are affiliation/address
+}
+
+\def\endauthor{\endcenter\egroup\bigskip}
+
+%-----------------------------------------*
+% \authors ... \endauthors is for multi-author papers. The authors are
+% listed in Roman type in \raggedcenter format with a \bigskip above and
+% below. Footnotes to author names can be added with \note.
+
+\def\authors{% list of authors for multi-author papers.
+ \endmode % end any previous field
+ \bigskip % some space above
+ \bgroup % begin \authors group
+ \let\endmode=\endauthors % \endmode ends the field
+ \let\@uthorskip=\medskip % set up skip
+ \raggedcenter\singlespaced} % ragged centering
+
+\def\endauthors{% ends multi-author list
+ \endraggedcenter % end ragged centering
+ \egroup % end \authors group
+ \bigskip} % some space below
+
+
+% \note#1#2 prints a superscript on an author name in \authors.
+% (#2 is a lookahead, used with \space@head for spacing)
+
+\def\note#1#2{% prints superscript for author's name
+ ${}^{\hbox{#1}}\ $ % write superscript w/ space
+ \space@head#2 % insert possible more space
+ #2}% % put #2 back
+
+
+% \institution prints the label #1 and the institution #2 centered on
+% a line.
+
+\def\institution#1#2{% labels institution for multi-author list
+ \@uthorskip\let\@uthorskip=\relax % space and disable it
+ \raggedcenter % center
+ ${}^{\rm #1}$\space #2%% % the institution
+ \endraggedcenter % possibly >1 line
+ }
+
+\let\@uthorskip=\medskip % outside default
+
+%-----------------------------------*
+% \titlenote#1#2 makes a footnote for \title or \author. #1 is the mark,
+% and #2 is the text, just like \footnote. Use \note to print #1 in the title,
+% and place \titlenote after \endtitle.
+
+\long\def\titlenote#1#2{% footnotes for \title and \author
+ \footnote{}{% % basically footnote
+ \llap{\hbox to \parindent{\hfil % lap label to left
+ ${}^{\rm #1}$\space}}#2}}% % print label and text.
+
+%-----------------------------------
+% \and is "and" with a skip after. Use between authors or addresses.
+
+\def\and{\centerline{and}\medskip}
+
+%-----------------------------------*
+% everyting between \abstract and \endabstract is indented,
+% with "ABSTRACT" written above it. Different document layouts may
+% change the definition of \abstract, but should follow the same basic
+% structure.
+
+\def\AbstractName{ABSTRACT} % `name' of abstract
+
+\def\abstract{% begin abstract of a paper or treatise
+ \endmode % end any previous field
+ \bigskip\bigskip % some space above
+ \centerline{\AbstractName}% % ``ABSTRACT''
+ \medskip % space below that
+ \bgroup % begin \abstract group
+ \let\endmode=\endabstract % \endmode ends \abstract
+ \narrower\narrower % bring in margins
+ \singlespaced % default single spaced
+ \everyabstract} % customizable
+
+\def\everyabstract{} % user or format can customize
+
+\def\endabstract{\smallskip\egroup}
+
+
+% -- \pacs{codes} prints the PACS codes on the title page
+
+\def\pacs#1{\medskip\centerline{PACS numbers: #1}\smallskip}
+
+
+% -- \submit{<journal name>} prints the message "Submitted to <journal name>"
+
+\def\submit#1{\bigskip\centerline{Submitted to {\sl #1}}}
+\def\submitted#1{\submit{#1}} % synonym
+
+
+% -- \toappear prints the message "To appear in \sl <journal name>"
+
+\def\toappear#1{\bigskip\raggedcenter
+ To appear in {\sl #1}
+ \endraggedcenter}
+
+
+% -- \disclaimer{<contract number>} prints the usual DOE disclaimer
+% as a footnote at the bottom of the page, using the given contract number.
+
+\def\disclaimer#1{\footnote{}\bgroup\tenrm\singlespaced
+ This manuscript has been authored under contract number #1
+ \@disclaimer\par}
+
+% -- \disclaimers{<list of contract numbers>} is the same as \disclaimer,
+% but for more than one contract number.
+
+\def\disclaimers#1{\footnote{}\bgroup\tenrm\singlespaced
+ This manuscript has been authored under contract numbers #1
+ \@disclaimer\par}
+
+\def\@disclaimer{% % generic part of disclaimer
+with the U.S. Department of Energy. Accordingly, the U.S.
+Government retains a non-exclusive, royalty-free license to publish
+or reproduce the published form of this contribution,
+or allow others to do so, for U.S. Government purposes.
+\egroup}
+
+%>>> EOF TXStitles.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/Tablebod.txs b/Master/texmf-dist/tex/texsis/base/Tablebod.txs
new file mode 100644
index 00000000000..6bebf965cbf
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/Tablebod.txs
@@ -0,0 +1,91 @@
+%% Tablebod.txs (TeXsis version 2.16)
+% $Revision: 16.0 $ : $Date: 1994/11/11 19:37:06 $ : $Author: myers $
+%======================================================================*
+% Old-style Figure macros - This file is a part of TeXsis
+% (C) copyright 1991 by Eric Myers and Frank Paige.
+%
+% SIMPLE(R) RULED TABLES: \Tablebody
+%
+% The following macros make simple ruled tables with automatic spacing,
+% i.e. no vertical struts are needed. Taken from TechRpt with modifications as
+% in TeXsis 2.11. These are included for backward compatability
+% and will eventually be phased out.
+
+% \Tablebody actually begins the table body, with the \halign template.
+% #1 is number of columns. \Tableskipsize is set by \singlespaced,
+% \doublespaced, etc. in TXSmacs.
+%======================================================================*
+\catcode`@=11 % make @ a letter for this file
+
+\def\Tablebody#1{% % #1 = no. columns
+ \hbox to \hsize\bgroup % start hbox for table
+ \hss $$ \vbox\bgroup % centered displaymath
+ \offinterlineskip % No interline glue
+ \def\tablerule{\noalign{\hrule}} % simple rule
+ \def\T@bleskip{\Tableskip{#1}{\Tableskipsize}} % nice skip
+ \def\T@blerule{\T@bleskip\tablerule\T@bleskip} % nice rule
+ \def\Cr{\cr\T@bleskip} % \cr and nice skip
+ \def\CR{\cr\T@blerule} % \cr and nice rule
+ \def\CRCR{\cr\T@bleskip\tablerule % \cr and nice double
+ \Tableskip{#1}{1pt}\tablerule\T@bleskip} % rule
+ \def~{\phantom{0}} % ~ is digit-width space
+ \halign\bgroup % start \halign
+ \vrule## % do leftmost vrule
+ &&\quad\hfil##\hfil\quad\strut % repeat for each column
+ &\vrule##\crcr % vrule on the right
+ \tablerule % hrule at top of table
+ \T@bleskip} % add some space
+
+\def\tablebody{\Tablebody} % synonym
+
+% \endTablebody closes \Tablebody.
+
+\def\endTablebody{ %
+ \bottomrule % put rule at bottom
+ \crcr\egroup % close the \halign
+ \egroup $$ % close vbox, math
+ \hss\egroup} % close the hbox
+
+\def\endtablebody{\endTablebody} % synonym
+
+% \Tablebodyleft is just like \Tablebody except that the columns are
+% set flush left.
+
+\def\Tablebodyleft#1{% % #1 = no. columns
+ \hbox to \hsize\bgroup % start hbox for table
+ \hss $$ \vbox\bgroup % centered displaymath
+ \offinterlineskip % No interline glue
+ \def\tablerule{\noalign{\hrule}} % simple rule
+ \def\T@bleskip{\Tableskip{#1}{\Tableskipsize}} % nice skip
+ \def\T@blerule{\T@bleskip\tablerule\T@bleskip} % nice rule
+ \def\Cr{\cr\T@bleskip} % \cr and nice skip
+ \def\CR{\cr\T@blerule} % \cr and nice rule
+ \def\CRCR{\cr\T@bleskip\tablerule % \cr and nice double
+ \Tableskip{#1}{1pt}\tablerule\T@bleskip} % rule
+ \def~{\phantom{0}} % ~ is digit-width space
+ \halign\bgroup % start \halign
+ \vrule## % do leftmost vrule
+ &&\quad##\hfil\quad\strut % repeat for each column
+ &\vrule##\crcr % vrule on the right
+ \tablerule % hrule at top of table
+ \T@bleskip} % add some space
+
+% \Tableskip#1#2 produces a vertical skip with rules of height #2 for
+% a table with #1 columns.
+% \tablerule produces just a rule.
+% \Tablerule#1#2 produces a rule with a skip of dimen #2 on each side
+% for a table with #1 columns.
+
+\def\Tableskip#1#2{height #2 \global\mscount#1%
+ \gloop\ifnum\mscount>\z@ \Tsk@p\repeat\cr}
+\def\Tsk@p{&\omit&\global\advance\mscount\m@ne}
+
+\def\Tablerule#1#2{\Tableskip#1#2\tablerule\Tableskip#1#2}
+
+% \bottomrule is a horizontal rule across the table. It is turned off
+% by \nobottomrule (locally to the \halign)
+
+\def\bottomrule{\tablerule}
+\def\nobottomrule{\let\bottomrule=\relax}
+
+%>>> EOF Tablebod.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/WorldSci.txs b/Master/texmf-dist/tex/texsis/base/WorldSci.txs
new file mode 100644
index 00000000000..615127ab399
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/WorldSci.txs
@@ -0,0 +1,104 @@
+%% file: WorldSci.txs (TeXsis version 2.16)
+% $Revision: 16.0 $ : $Date: 1994/05/12 19:47:25 $ : $Author: myers $
+%======================================================================*
+% WorldSci -- TeXsis style file for World-Scientific Publishers
+%
+% Thanks to Vladimir Alexiev <vladimir@cs.ualberta.ca> at the University
+% of Alberta for suggesting many improvements. This fixes WorldSci.txs
+% to conform more closely to current publisher's guidelines. (3 May 1994)
+\ATunlock
+\emsg{\@comment\ WorldSci: World-Scientific proceedings layouts}
+
+%--------------------------------------------------*
+% \WorldScientific conforms to the layout instructions given by
+% World Scientific Publishing Co., but see their instructions for futher
+% details. One thing to keep in mind, they prefer headings of major
+% sections in CAPITAL LETTERS.
+
+\def\WorldScientific{% Document layout for World Scientific Proceedings
+ \hsize=150mm % horizontal page size
+ \vsize=220mm % vertical page size
+ \paper % everything is like \paper, except...
+ \showchaptIDfalse\showsectIDfalse % consecutively number equations
+ \nopagenumbers % turn off page numbering
+% Title is 14 pt bold centered
+ \def\Tbf{\fourteenpoint\bf}% % title is 14pt bold
+ \def\Title{% % World Sci title
+ \endmode % end any previous field
+ \vbox{\vskip1cm}% % skip down 1cm
+ \bgroup % open \title group
+ \let\endmode=\endTitle % will end \title
+ \center\Tbf}% % centered, title boldface
+ \let\title=\Title % synonym
+ \let\@@endTitle=\endTitle % save it
+ \def\endTitle{\@@endTitle % old stuff
+ \vskip-\bigskipamount % but with less skip
+ \vskip\medskipamount}% %
+% Author is 12 pt bold centered, but address is 10 pt italic
+ \let\@getauthor=\@getauthWS %
+% Abstract is indented, 10 pt
+ \def\abstract{% % for \WorldScientific
+ \endmode % end previous field
+ \bgroup % begin abstract group
+ \let\endmode=\endabstract %
+ \singlespaced\whitespaced% %
+ \leftskip=1.5cm\rightskip=1.5cm%
+ \vskip\baselineskip %
+ \centerline{ABSTRACT}% %
+ \smallskip% %
+ \tenpoint}% %
+% Captions should be 10 pt
+ \let\@ldcaption=\caption % save it
+ \def\caption##1{% % and redefine
+ \tenpoint\@ldcaption{##1}}% % using 10 pt default
+% Sections...
+ \let\chapter=\section % no chapters
+ \sectionminspace=3\baselineskip % fit more on a page
+ \sectionskip=0.7cm % ditto
+ \subsectionskip=0.5cm % ditto
+ \def\tbf{\fourteenpoint\bf} % section heading is 14 pt bold
+% Although figures and tables do not bear the section number,
+% sections themselves should be numbered
+ \def\everysection{% % for every section: small reset
+ \global\edef\@fullID{\the\sectionnum.\space\space}%
+ \global\subsectionnum=\z@ % reset section counters...
+ \global\subsubsectionnum=\z@}% % ...but not equations, etc
+ \def\everysubsection{% % executed for every subsection
+ \global\edef\@fullID{\the\sectionnum.\the\subsectionnum.\space\space}%
+ \global\subsubsectionnum=\z@ % reset
+ \let\@bf=\bf \let\bf=\it}% % subsections are italic not bold
+ \def\everysubsubsection{ % executed for every subsubsection
+ \global\edef\@fullID{\the\sectionnum.%
+ \the\subsectionnum.\the\subsubsectionnum.\space\space}%
+ \let\@bf=\bf \let\bf=\it}% % subsections are italic not bold
+ \def\aftersection{% % after \section
+ \vskip-4pt\nobreak}% % reduce skip
+ \def\aftersubsection{% % after \sub(sub)section
+ \vskip-4pt% % reduce skip
+ \nobreak % don't allow break
+ \let\bf=\@bf} % unalias \bf
+% make figure, table, equation numbers not include the section number
+ \let\@LabelParse=\LabelParse
+ \def\LabelParse{\def\@sectID{}\@LabelParse}
+% Footnotes should be 9 pt. Use \Footnote
+ \def\FootFont{\ninepoint}% % like it says
+% References
+ \def\refFormat{% % reference format
+ \def\refskip{\vskip0pt plus 2pt}% % no skip but some stretch
+ \tenpoint}% % and 10pt
+}
+
+
+% \@getauthor for World Scientific
+{\obeylines\gdef\@getauthWS#1
+ #2
+ {#1\bigskip\def\n{\egroup\centerline\bgroup\bf}% %
+ \centerline{\bf #2}% % first line is author's name,
+ \medskip\center% % next lines are affiliation/address
+ \tenpoint\it}% % 10 pt italic
+}
+
+\ATlock
+
+
+%>>> EOF WorldSci.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/color.txs b/Master/texmf-dist/tex/texsis/base/color.txs
new file mode 100644
index 00000000000..29d36bcec59
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/color.txs
@@ -0,0 +1,219 @@
+%% file: color.txs (TeXsis version 2.18)
+% @(#) $Revision: 1.4 $ + $Date: 1998/09/30 04:48:06 $ + $Author: myers $
+%======================================================================*
+% This file is a part of TeXsis, but it will also work with Plain TeX.
+%
+% This is color.txs, a collection of simple macros for changing the
+% colors of TeX output when it is directed to a PostScript output
+% device. They use \special commands to insert PostScript instructions
+% in the output to change the colors.
+%
+% These macros were designed specifically for Tomas Rokicki's dvips
+% program (version 5.478 or greater) with the color.pro header file,
+% but they should also work with any driver which understands the
+% appropriate keywords in the \special commands, such as TeXview on a
+% NeXT with a color monitor.
+%
+%-------------------------------
+% EXAMPLES of the syntax:
+%
+% \colorit{Red}{The text inside these brackets is colored Red}
+%
+% \SetColor{Green} % all text following is colored Green
+%
+% \background{Yellow} % makes the background color Yellow
+%
+% The basic colors are:
+%
+% Black White Gray
+% Red Green Blue
+% Cyan Magenta Yellow
+% Purple Orange Brown
+%
+% Note that color names all begin with an Initial Capital Letter.
+% Additional colors are available, or can be defined. See below.
+%
+% You can change the color temporarily by pushing and popping the
+% PostScript color stack, as in
+%
+% \PushColor{Purple} % text after this is now in Purple
+%
+% \PopColor % return to the previous color
+%
+% Note that color changes have nothing to do with TeX's grouping
+% mechanism {i.e. curly brackets}, but are based on the PostScript
+% color stack. {If you really want the color to change back at the
+% end of a group, see \aftergroup in the TeXbook.}
+%
+% For the basic colors above the following shortcuts are defined:
+%
+% \Red{This text is colored Red}
+%
+% \textGreen % all text following is colored Green.
+%
+% You can add similar shortcuts for colors other than those above
+% with \addColor, like so:
+%
+% \addColor{Salmon} % defines \Salmon and \textSalmon macros
+%
+% \Salmon{This text will be in Salmon}
+%
+% \textSalmon % changes the text color to Salmon
+%
+% The allowed names for colors are listed below. However, you don't
+% have to define the shortcuts to be able to use one of those colors.
+% You could say
+%
+% \colorit{BurntOrange}{Hook 'em Horns!}
+%
+% to color just that text in that color, or use \SetColor{Emerald},
+% or \PushColor{Cerulean} and \PopColor, even if you have never
+% used \addColor to define shortcuts for those colors.
+%
+% A TeXnical note: You may need to include a "\ " or "{}" after
+% \colorit or \Red, or leave a space *inside* the brackets, as in
+%
+% ``\colorit{Orange}{Julius, } \Red{Seize}\ her!'' he cried.
+%
+% or else there will not be a space after the colored word. It's the
+% same as saying \TeX\ to get the TeX logo with some space after it.
+% But of course sometimes you will want different colors to abut.
+%
+% You can define shortcuts for all of the colors in color.pro, most
+% of which are based mainly on the colors in a box of 64 Crayola
+% Crayons, by saying \Crayolas. See the end of this file for a
+% complete list of the colors. To print the available colors, in
+% their own colors, say \ListColors
+%
+% You can define your own colors by specifying the CMYK color as a
+% quadruple of intensity values between 0 and 1. (CMYK means Cyan,
+% Magenta, Yellow, and blacK.) For example:
+%
+% \SetCmykColor{.2 .3 .4 .1} will give you a nice tan, man.
+%
+% \PushCmykColor{.5 .5 .1 .2} Old Blue Eyes \PopColor
+%
+%-------------------------------
+% These macros are based on Jim Hafner's COLORDVI.TEX, revised by him
+% and Tomas Rokicki as of Aug. 1992. My thanks to him for blazing the
+% trail. I have added the explicit color push/pop macros, and what I
+% think is a better syntax, but these macros should also be mostly
+% backward compatible with the COLORDVI.TEX syntax.
+%
+% Eric Myers <myers@umich.edu> 16 May 1997
+% Department of Physics, University of Michigan, Ann Arbor, MI, USA
+%======================================================================*
+% Manipulate the color stack (and try to keep track of it):
+
+\newcount\colordepth \colordepth=0
+
+\def\PushColor#1{\special{color push #1}\global\advance\colordepth by 1}
+\def\PopColor{\special{color pop}\global\advance\colordepth by -1}
+
+% Set the colors:
+
+\def\colorit#1#2{\PushColor{#1}#2\PopColor}
+\def\background#1{\special{background #1}}
+\def\SetColor#1{\glbclr{#1}\special{color #1}}
+
+% \glbclr is used to remember the global color in use, by saving
+% it in the definition of \globalColor. Pushing and popping the
+% color stack is preferable, but this works too.
+
+\def\glbclr#1{\gdef\globalColor##1{\colorit{#1}{##1}}}
+
+% Define your own CMYK colors:
+
+\def\SetCmykColor#1{\glbclr{cmyk #1}\special{color cmyk #1}}
+\def\PushCmykColor#1{\special{color push cmyk #1}}
+
+% OLD CMYK color functions from colordvi.sty (the names are rather
+% unspecific as to their function, but this makes everything backwards
+% compatible).
+
+\def\textColor#1{\setCmykColor{#1}}
+\def\Color#1#2{\PushCmykColor{#1}#2\PopColor}
+
+
+% Make your own \Color and \textColor shortcuts with \addColor
+
+\def\addColor#1{%
+ \expandafter\gdef\csname #1\endcsname##1{\colorit{#1}{##1}}%
+ \expandafter\gdef\csname text#1\endcsname{\SetColor{#1}}%
+}
+
+\def\newColor #1 {\addColor{#1}} % more backward compatibility
+
+% The Basic colors:
+
+\addColor{Black} \addColor{White} \addColor{Gray}
+\addColor{Red} \addColor{Green} \addColor{Blue}
+\addColor{Cyan} \addColor{Magenta} \addColor{Yellow}
+\addColor{Orange} \addColor{Purple} \addColor{Brown}
+
+
+% Say \Crayolas to get shortcuts for all of the colors in color.pro
+% which are mostly based on the colors in a box of 64 Crayola Crayons.
+% (See colordvi.sty for *approximate* Pantone color matches.)
+
+\def\Crayolas{% Define all colors from Crayola Crayon box
+ \doColors{\addColor}}
+
+% Say \ListColors to list all the colors
+
+\def\ListColors{% List all the colors, by name
+ \def\ShowAcolor##1{\SetColor{##1}{##1}\ }%
+ \doColors{\ShowAcolor}
+}
+
+
+\def\doColors#1{% apply a macro to all the colors
+ #1{Black} #1{White} #1{Gray}
+ #1{Red} #1{Green} #1{Blue}
+ #1{Yellow} #1{Cyan} #1{Magenta}
+ #1{GreenYellow} #1{RoyalPurple} #1{RedViolet}
+ #1{BlueViolet} #1{Fuchsia} #1{Orange}
+ #1{Goldenrod} #1{Periwinkle} #1{Lavender}
+ #1{Dandelion} #1{CadetBlue} #1{Thistle}
+ #1{Apricot} #1{CornflowerBlue} #1{Orchid}
+ #1{Peach} #1{MidnightBlue} #1{DarkOrchid}
+ #1{Melon} #1{NavyBlue} #1{Purple}
+ #1{YellowOrange} #1{RoyalBlue} #1{Plum}
+ #1{BurntOrange} #1{Cerulean} #1{SpringGreen}
+ #1{Bittersweet} #1{OliveGreen} #1{Violet}
+ #1{RedOrange} #1{ProcessBlue} #1{RawSienna}
+ #1{Mahogany} #1{SkyBlue} #1{Sepia}
+ #1{Maroon} #1{Turquoise} #1{CarnationPink}
+ #1{BrickRed} #1{TealBlue} #1{Tan}
+ #1{OrangeRed} #1{BlueGreen} #1{Aquamarine}
+ #1{RubineRed} #1{Emerald} #1{Mulberry}
+ #1{WildStrawberry} #1{JungleGreen} #1{Rhodamine}
+ #1{Salmon} #1{SeaGreen} #1{LimeGreen}
+ #1{ForestGreen} #1{YellowGreen} #1{Brown}
+ #1{VioletRed} #1{PineGreen}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%>>> EOF color.txs <<< \ No newline at end of file
diff --git a/Master/texmf-dist/tex/texsis/base/nuclproc.txs b/Master/texmf-dist/tex/texsis/base/nuclproc.txs
new file mode 100644
index 00000000000..6451c8e00de
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/nuclproc.txs
@@ -0,0 +1,115 @@
+% file: nuclproc.txs TeXsis version 2.15
+% $Revision: 15.1 $ : $Date: 92/06/30 14:31:53 $ : $Author: myers $
+%======================================================================*
+% TeXsis - Nuclear Physics Proceedings : This file is a part ot TeXsis
+% (C) Copyright 1992 by Eric Myers and Frank E. Paige
+%======================================================================*
+% \nuclproc is a double column format with titles in upper case and left
+% justified, twelve point type, etc., for camera-ready copy.
+% Constructed following directions in ``Instructions for the Preparation
+% and Typing of Camera Ready Contributions'' by Mary Carpenter, Elsevier
+% Publishers.
+
+\ATunlock
+
+\def\nuclproc{% Nuclear Physics Proceedings style
+ \texsis % initialize
+ \emsg{\@comment\ nuclproc: Nuclear Physics Proceedings style}%
+ \setdoublecolumns{19.3cm}{26cm}{9cm}%
+ \advance\voffset by -1.2cm \relax % as close to the top as possible
+ \advance\hoffset by -1.4cm \relax % as close to the left as possible
+ \auxswitchtrue % save tags and labels in .aux file
+ \refswitchtrue % save references in .ref file
+ \def\Tbf{\fourteenpoint\fourteenss\uppercase}% Title typestyle (takes args!)
+ \def\tbf{\twelvepoint\it\uppercase}% % section head typestyle
+%
+ \twelvepoint % twelve point type size
+ \twelvess % but SANS SERIF font
+ \parindent=0.6cm % paragraph indent
+ \autoparens % auto-sizing of parens
+ \quoteon % automatic begin/end quotes
+ \nopagenumbers % don't print page numbers
+ \singlespaced\whitespaced % 1.25 percent spacing
+%
+ \def\titlepage{% % for \nuclproc
+ \hbox{\ }% % anchor to top of page
+ \vskip 0.50cm % whitespace above title
+ \begingroup % title material in group
+ \let\endmode=\relax % \endmode will end a field
+ \narrower\parindent=0pt}% %
+%
+ \def\endtitlepage{% % for \nuclproc
+ \endmode % end any open field
+ \smallskip %
+ \endgroup % end title material
+ \doublecolumns % text is in double columns
+ \singlespaced\whitespaced} % 1.25 percent spacing
+%
+ \def\title{% begin title for \nuclproc
+ \endmode % end previous field, if any
+ \mark{Title Page\NX\else Title Page}% % so \HeadLine doesn't print
+ \bgroup % begin title group
+ \def\endmode{\endtitle}% % how to end this mode
+ \widenspacing % a little wider spacing
+ \flushleft % left justified
+ \Tbf{}% %
+ }
+%
+ \def\endtitle{% end the title for \nuclproc
+ \endflushleft %
+ \egroup % end title group
+ \bigskip}% %
+%
+ \def\author{% name of author for \nuclproc
+ \endmode % end any previous field
+ \bgroup\narrower % margins
+ \let\endmode=\endauthor % set up ending
+ \flushleft % flush left
+ \NHgetauthor}% % get author's name from next line
+%
+ \def\endauthor{% end \author for \nuclproc
+ \endflushleft % end flush left
+ \vskip\normalbaselineskip % skip one line
+ \egroup}% % end author group
+%
+ \def\and{\smallskip{and}\smallskip}% %
+%
+ \def\abstract{% % for \nuclproc
+ \endmode % end any open field
+ \bigskip % skip down some
+ \bgroup % mode is local
+ \let\endmode=\endabstract % how to end this mode
+ \singlespaced\noindent}% %
+%
+ \def\endabstract{% end \abstract for \nuclproc
+ \medskip\egroup\bigskip}% %
+}
+
+
+% \NHgetauthor is like \getauthor but left justifies and skips
+% one line after author's name.
+
+{\obeylines
+ \gdef\NHgetauthor#1
+ #2
+ {#1\vskip0pt\noindent{ #2}% % author line
+ \def\\{\discretionary{}{}{,}}% % , unless line breaks
+ \def\n{\break}%
+ \vskip\normalbaselineskip % blank line
+ \singlespaced}%
+}
+
+
+\def\@longequation{
+ \enddoublecolumns
+ \leftcolrule
+ \def\endlongequation{\@endlongequation}}
+
+\def\@endlongequation{
+ \rightcolrule % with the rule at top of right column
+ \doublecolumns} % then back to double column mode
+
+
+\ATlock
+
+%>>> EOF nuclproc.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/printfont.txs b/Master/texmf-dist/tex/texsis/base/printfont.txs
new file mode 100644
index 00000000000..cef598668c8
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/printfont.txs
@@ -0,0 +1,116 @@
+%% file: printfont.txs TeXsis version 2.16
+% $Revision: 16.0 $ : $Date: 1992/08/08 22:20:36 $ : $Author: myers$
+%======================================================================*
+% \printfont{<name><description>} prints a table showing font
+% <name>. <description> should be something like "Roman"
+
+\catcode`\@=11
+\newdimen\sidedimen
+\setbox0\hbox{\tenrm\char'175 \tt0} \sidedimen=\ht0 \divide\sidedimen2
+
+\def\oddrule#1{\multispan{18}\leaders\hrule\hfill&\omit\hbox to 40pt{\hfill
+ \smash{\lower\sidedimen\hbox{\tenrm\char'175 \tt#1x}}%
+ \hfill}\cr}
+
+\def\extra{&height4pt&\omit&&\omit&&\omit&&\omit&&\omit&&\omit&&\omit
+ &&\omit&\cr}
+\def\hvi{\hskip6pt plus 1fill\relax}
+
+%-----------------
+% \printfont#1 prints a table of font #1.
+% (this should get moved to a style file or something)
+
+\newcount\charcount\charcount\z@
+%\def\gloop#1\repeat{\gdef\body{#1}\iterate}
+
+\def\printfont#1{%
+ \begingroup
+ \offinterlineskip
+ \charcount\z@
+ \def\f@nt{#1} % font name
+ \font\F@nt=\f@nt % use this font in table
+ \halign to\hsize{\hbox to40pt{\hfill##\hfill}&
+ \vrule##\tabskip\centering
+ &\hvi\F@nt##\hvi
+ &\vrule##&\hvi\F@nt##\hvi&\vrule##&\hvi\F@nt##\hvi&\vrule##&\hvi\F@nt##\hvi
+ &\vrule##&\hvi\F@nt##\hvi&\vrule##&\hvi\F@nt##\hvi&\vrule##&\hvi\F@nt##\hvi
+ &\vrule##&\hvi\F@nt##\hvi&\vrule##\tabskip0pt&##\cr
+ \omit&height12pt&\gloop\it'\number\charcount&height12pt&\ifnum\charcount<7
+ \global\advance\charcount1 \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\charcount\z@}
+ \it'00x&&
+ \gloop\char\charcount&&\ifnum\charcount<7 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule0\extra\noalign{\global\advance\charcount1 }
+ \it'01x&&
+ \gloop\char\charcount&&\ifnum\charcount<15 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \it'02x&&
+ \gloop\char\charcount&&\ifnum\charcount<23 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule1\extra\noalign{\global\advance\charcount1 }
+ \it'03x&&
+ \gloop\char\charcount&&\ifnum\charcount<31 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \it'04x&&
+ \gloop\char\charcount&&\ifnum\charcount<39 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule2\extra\noalign{\global\advance\charcount1 }
+ \it'05x&&
+ \gloop\char\charcount&&\ifnum\charcount<47 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \it'06x&&
+ \gloop\char\charcount&&\ifnum\charcount<55 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule3\extra\noalign{\global\advance\charcount1 }
+ \it'07x&&
+ \gloop\char\charcount&&\ifnum\charcount<63 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \it'10x&&
+ \gloop\char\charcount&&\ifnum\charcount<71 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule4\extra\noalign{\global\advance\charcount1 }
+ \it'11x&&
+ \gloop\char\charcount&&\ifnum\charcount<79 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \it'12x&&
+ \gloop\char\charcount&&\ifnum\charcount<87 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule5\extra\noalign{\global\advance\charcount1 }
+ \it'13x&&
+ \gloop\char\charcount&&\ifnum\charcount<95 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \it'14x&&
+ \gloop\char\charcount&&\ifnum\charcount<103 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule6\extra\noalign{\global\advance\charcount1 }
+ \it'15x&&
+ \gloop\char\charcount&&\ifnum\charcount<111 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \it'16x&&
+ \gloop\char\charcount&&\ifnum\charcount<119 \global\advance\charcount1
+ \repeat\cr
+ \extra\oddrule7\extra\noalign{\global\advance\charcount1 }
+ \it'17x&&
+ \gloop\char\charcount&&\ifnum\charcount<127 \global\advance\charcount1
+ \repeat\cr
+ \extra\noalign{\hrule}\extra\noalign{\global\advance\charcount1 }
+ \omit&height12pt depth 4pt&
+ \rm\char'175 \tt8&&\rm\char'175 \tt9&&\rm\char'175 \tt A&&
+ \rm\char'175 \tt B&&\rm\char'175 \tt C&&\rm\char'175 \tt D&&
+ \rm\char'175 \tt E&&\rm\char'175 \tt F&\cr}
+ \endgroup}
+
+\def\Printfont#1#2{\printfont{#1}%
+ \nobreak\bigskip\nobreak
+ \centerline{\TeX\ Font #1: #2}%
+ \vfill\eject}
+
+%>>> EOF printfont.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/spine.txs b/Master/texmf-dist/tex/texsis/base/spine.txs
new file mode 100644
index 00000000000..c2a4e6a421f
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/spine.txs
@@ -0,0 +1,58 @@
+%% file: spine.txs - 3-Ring Binder labels - TeXsis version 2.18
+%% @(#) $Id: spine.txs,v 18.1 2001/04/06 22:47:06 myers Exp $
+%======================================================================*
+% spine.txs - labels for the spine of a 3-Ring binder
+%
+% (C) copyright 1994, 1999 by Eric Myers and Frank E. Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+%======================================================================*
+% \spine{text} makes a boxed label for the spine of a 3 ring binder
+% This is printed in \Landscape mode, 24pt type, and with a ruled box
+% around it. The box will be at least 15cm long, but will extend
+% if the text requires more space. Instructions for installing the
+% label in the spine of a binder are printed, but if more than one
+% label is created the instructions are only printed once.
+
+\def\spine#1{\spineSetup
+%% \headline={\LandscapeSpecial}% % and force it every page
+ \setbox0=\hbox{\twentyfourpoint\bf\quad #1\quad}%
+ \dimen0=\wd0 %
+ \ifdim\wd0<15cm \dimen0=15cm\fi % Minimum size 15cm
+ \vskip 1cm plus 2cm %
+ \tightboxit{\vbox to 1in{\vfill %
+ \hbox to \dimen0{\hfil\box0\hfil}% %
+ \vfill}}% %
+ \vskip 1cm plus 2cm} %
+
+\def\spineSetup{% once-only setup for \spine
+ \LandscapeSpecial % Landscape mode
+ \vbox{\hsize=15cm %
+ \bigskip\bigskip %
+ \tenpoint\parskip=\smallskipamount %
+ \noindent %
+ How to install the spine label on a binder:
+
+ \item{1.}
+ Cut out the label around the outside of the
+ bounding ruled box. Leave extra paper
+ (about 1.5cm or so) on the RIGHT side.
+
+ \item{2.}
+ Obtain a long thin plastic ruler or similar object which can
+ slide down the pocket on the binder spine.
+
+ \item{3.}
+ Put the label along the ruler, face up, and fold the extra tab
+ of paper on the right of the label over the end of the ruler.
+
+ \item{4.}
+ Slide the ruler, with the label on it, down the spine of the
+ binder. When the label is in place remove the ruler. The label
+ will remain.
+ \bigskip\bigskip
+ \gdef\spineSetup{\relax} % only show once!
+ }}
+
+%>>> EOF spine.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/texsis.tex b/Master/texmf-dist/tex/texsis/base/texsis.tex
new file mode 100644
index 00000000000..71096473606
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/texsis.tex
@@ -0,0 +1,110 @@
+%% file: texsis.tex - TeX macros for Physicists - TeXsis version 2.18
+%% @(#) $Id: texsis.tex,v 18.1 2001/04/06 22:52:02 myers Exp $
+%======================================================================*
+% TeXsis - TeX Macros for Physicists -- by Eric Myers and Frank E. Paige
+%
+% This is version 2.18 of TeXsis, a collection of TeX macros
+% for physicists (and anyone else who finds them useful).
+%
+% The source code for this format is contained in this file and
+% in the files TXS*.tex read by it. The documentation is contained
+% in the files TXS*.doc. To produce a printed version of the
+% documentation, run TeXsis on TXSdoc.doc (or run Manual.tex through
+% plain tex).
+%
+% You can always get the latest version of TeXsis from
+% ftp://ftp.texsis.org/texsis
+%
+% Eric Myers, Department of Physics, University of Michigan, Ann Arbor
+% Frank Paige, Physics Department, Brookhaven National Laboratory
+% ----------
+% (C) Copyright 1988-2001 by Eric Myers and Frank E. Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+% THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+% IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+% WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+%======================================================================*
+% This is the master file, which brings together all of the components
+% of TeXsis. They should all be in the same directory. This master file
+% can be used to generate TeXsis as a pre-loaded format using initex:
+% initex texsis (or initex &plain texsis)
+% followed by "\dump". See The TeXbook for more on INITEX and \dump.
+%
+% First check to see if the PLAIN format is pre-loaded.
+% If \plainoutput is undefined then it is not, so read in plain.tex.
+%
+\ifx\plainoutput\undefined\input plain.tex\fi
+
+%---------------------------------*
+\def\Input #1 {\def\filename{#1}\input #1} % \Input someday...?
+\def\TeXsis{\TeX sis}% % the TeXsis logo
+
+%---------------------------------*
+% Fonts: TXSfonts contains the fonts which (almost) all TeX
+% installations should have, but there may be some changes necessary
+% for your own instalation. It's not a good idea to just replace these
+% though, because there is other info there too. Read the comments in
+% the file TXSfonts for further info.
+%
+\input TXSfonts % 12, 10, 7, 5, 14, 16 pt fonts, etc...
+
+%---------------------------------*
+% Macros: different "packages" are kept in separate files
+%
+\input TXSmacs % main macros common to all components
+\input TXSinit % initialization stuff and some basic macros
+\input TXShead % running headlines and footlines
+\input TXSeqns % equation numbering
+\input TXSprns % automatic parentheses sizing and balancing
+\input TXSrefs % references and citations
+\input TXSsects % chapter and section divisions
+\input TXStags % tags for ref and eqn numbers, \label-ing
+\input TXStitle % title page macros for physics papers
+\input TXSenvmt % center and flush environments, etc..
+\input TXSfmts % document layouts, \paper, \preprint, etc
+\input TXSfigs % figure, tables, lists of figures
+\input TXSruled % ruled tables
+\input TXSdcol % double column format
+\input TXSletr % letter format
+\input TXSmemo % memos and referee reports
+\input TXSconts % table of contents macros
+\input TXSsymb % extended math symbols for physics
+
+%---------------------------------*
+% Patches and Changes: The two files named below will be read
+% AT RUN TIME by \texsis, if they exist. See the file TXSinit.tex
+% for more info.
+%
+\def\TeXsisLib{}% use this to specify an alternate path to where code is kept
+\def\TXSpatches{\TeXsisLib TXSpatch}% % global run-time patches
+\def\TXSmods{TXSmods}% % local or personal modifications
+
+%---------------------------------*
+% Site dependent info: See if there is a site info file out
+% there called TXSsite.tex. If so, read it in. This happens only once
+% when running INITEX to create the format file texsis.fmt.
+
+\LoadSiteFile
+
+%---------------------------------*
+\pageno = 1 % start on page 1
+\tenpoint % as in Plain TeX
+\singlespaced % default until \texsis
+
+\def\fmtname{TeXsis}\def\fmtversion{2.18}%
+\def\revdate{21 April 2001}%
+
+\everyjob={% This stuff is done every job...
+ \emsg{\fmtname\space version \fmtversion\space (\revdate) format preloaded.}%
+ \SetDate % set \adate and \edate
+ \ReadPatches % read patch file, if it exists
+ \ReadAUX % read .aux file, if it exists
+ \let\filename=\jobname % for \Input, for starters
+ \colwidth=\hsize % default column width
+ }
+\ATlock % lock @ macros
+\emsg{\fmtname\space version \fmtversion\space (\revdate) loaded.}%
+
+%%>>> EOF texsis.tex <<<
diff --git a/Master/texmf-dist/tex/texsis/base/thesis.txs b/Master/texmf-dist/tex/texsis/base/thesis.txs
new file mode 100644
index 00000000000..374c084baba
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/thesis.txs
@@ -0,0 +1,168 @@
+%% file: thesis.txs - TeXsis version 2.18
+%% @(#) $Id: thesis.txs,v 18.1 2001/04/06 22:23:29 myers Exp $
+%======================================================================*
+% \thesis Thesis format, including title page, table
+% of contents, binding margins, etc.
+%
+% The original version of \thesis was based on the Yale Graduate
+% school standards, but of course every place is different.
+% Therefore we have here \YaleThesis and \UTthesis as two variations.
+% You can start with either one and modify it to suit your needs, or
+% start from scratch and create your own.
+%
+% If you write a \thesis macro for your institution and want to share
+% it with others, please e-mail it to texsis@texsis.org and we will
+% put it on the ftp server.
+%
+
+\ATunlock % make sure @ is a letter here
+
+%======================================================================*
+% \UTthesis complies with the UT Graduate School requirements for
+% a thesis, including putting the page number up in the text on the
+% first page of a chapter. To do this we create a new insert, called
+% \folioins, and redefine part of Plain TeX's \output routines
+% to include this insert. Then we also put a \mark on the page
+% to suppress the page numbering in the headline. I know it's
+% complicated, but it does what UT wants. -EAM
+
+\newinsert\folioins % insert for page numbers
+\skip\folioins=1cm % size of page number insert
+\count\folioins=1000 % magnification factor (1 to 1)
+\dimen\folioins=8in % maximum insert per page
+
+
+\def\UTthesis{%
+ \emsg{[Thesis format for University of Texas at Austin, 1989]}%
+ \texsis % initialize TeXsis basics
+ \hoffset=0.55in % for binding margin 1.5in
+ \hsize=5.65in % gives 1.25in right margin
+ \voffset=0.55in % makes 1.5in top margin
+ \vsize=8.2in % makes 1.25in bottom margin
+ \headlineoffset=-1.5pt % move page numbers DOWN from normal
+ \RunningHeadsfalse % UT does not want running heads
+%
+ \ContentsSwitchtrue % be sure to make a Table of Contents
+ \def\Tbf{\sixteenpoint\bf}% % Chapter Titles in 16pt bold
+ \def\tbf{\twelvepoint\bf}% % Section titles in 12pt bold
+ \twelvepoint % 12pt type for the text
+ \doublespaced % double spacing
+ \autoparens % auto-sizing of parens ON
+ \quoteon % auto quote matching ON
+%
+ \def\titlepage{% % \book title page
+ \begingroup % any changes local
+ \pageno=-1 % start on page i
+ \let\endmode=\relax % \endmode will end a field
+ \def\FootText{\relax}}% % no number on title page
+ \def\endtitlepage{% % end title page for \book
+ \endmode % end any open field
+ \vfil\eject % end title page
+ \endgroup % close group from \titlepage
+ \pageno=1}% % reset page number to 1
+%
+ \def\abstract{% % no "ABSTRACT" title
+ \bigskip\bigskip\medskip % skip down some
+ \bgroup\doublespaced\narrower\narrower
+ }
+
+% -- \chapter puts the page number in a \folioins insert
+
+\def\afterchapter{\SpecialPage}
+
+\def\SpecialPage{\ifnum\pageno>0
+ \@Mark{\ChapterTitle}% mark on the page inhibits page # headline
+ \insert\folioins{\insertfolio}\fi} % insert below text
+
+% to get the page number up in the text area on the first page
+% of refereces do \SpecialPage\ListReferences
+
+
+\def\@insertfolio{\line{\hfill-- \folio\ --\hfill}%
+ \gdef\insertfolio{\relax}} % THERE CAN BE ONLY ONE!
+
+\def\insertfolio{\@insertfolio} % turn it ON for starters
+
+% -- only display page number in headline if positive, footline if negative
+
+\def\PageNumber{\ifnum\pageno<0\else \folio \fi}
+
+\def\FootLine{\ifnum\pageno<0 \line{\hss -- \folio\ -- \hss}\fi}
+\footline={\FootLine} %
+
+% -- re-define \pagecontents from plain to get \folioins if not void
+
+\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
+ \ifvoid\folioins\else % page number insert is present
+ \vskip\skip\folioins
+ \unvbox\folioins\fi
+ \gdef\insertfolio{\@insertfolio} % re-enable for next page
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+
+% -- Note: to get the page number raised into the text area for the
+% front pages (roman numeral / negative numbers) you
+% will have to say \FrontPages to change the page layout.
+% Remember, front pages are actually printed AFTER the document.
+
+\def\FrontPages{\headline={}% % no headlines
+ \advance\vsize by -\skip\folioins
+ \advance\vsize by -10pt
+ \footline={\line{\hss -- \folio\ -- \hss}}} % page number at bottom
+
+}% end of \UTthesis
+
+
+%--------------------------------------------------*
+% \YaleThesis defines a format acceptable for the Yale Graduate School
+% (at the time I wrote my thesis, in 1984, so be careful! -EAM).
+
+\def\YaleThesis{% document layout for a Thesis or Dissertation
+ \emsg{[Thesis format for Yale Graduate School, 1984]}%
+ \texsis % initialize TeXsis basics
+ \ContentsSwitchtrue % contents page ON
+ \refswitchtrue % save references
+ \auxswitchtrue % .AUX file for forward references
+ \hsize=6.0in % gives 1in right margin
+ \hoffset=0.5in % for binding margin 1.5in
+ \voffset=0.25in % move text down a bit
+ \headlineoffset=0.20in % move headline up (Yale Grad school)
+ \RunningHeadstrue % running headlines
+ \def\titlepage{% % \thesis title page
+ \bgroup % open \titlepage group
+ \pageno=-1 % start on page i
+ \let\endmode=\relax % \endmode will end a field
+ \def\FootText{\relax}}% % no number on title page
+ \def\endtitlepage{% % \thesis end title page
+ \endmode % end any open field
+ \vfil\eject % end title page
+ \egroup% % close \titlepage group
+ \pageno=1}% % reset page number
+ \def\abstract{% % \thesis abstract
+ \endmode % end previous field
+ \bigskip\bigskip\medskip % skip down some
+ \bgroup % abstract has same spacing
+ \let\endmode=\endabstract % to end \abstract
+ \narrower\narrower}% %
+ \def\endabstract{% % \thesis end abstract
+ \medskip\egroup\bigskip}% %
+ \def\FootText{--\ \tenrm\folio\ --}% % for 1st page of chapter
+ \def\Tbf{\sixteenpoint\bf}% % Chapter Titles in 16pt bold
+ \def\tbf{\twelvepoint\bf}% % Section titles in 12pt bold
+ \elevenpoint % 11pt type for most of doc
+ \doublespaced % double spacing
+ \autoparens % auto-sizing of parens
+ \quoteon % auto quote matching
+ \def\FrontPages{\relax}% % no such thing at Yale
+ } %
+
+\ATlock % @ goes back to \other
+
+\let\thesis=\YaleThesis
+
+%>>> EOF thesis.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/base/twin.txs b/Master/texmf-dist/tex/texsis/base/twin.txs
new file mode 100644
index 00000000000..c78e02d2c8b
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/base/twin.txs
@@ -0,0 +1,124 @@
+%% file: twin.txs - TeXsis version 2.18
+% @(#) $Id: twin.txs,v 18.1 2001/04/06 22:05:11 myers Exp $
+%======================================================================*
+% TWINOUT -- two pages side by side on one piece of paper
+%
+% \twinout redefines TeX's \output routine to put two pages side-by-side
+% on one piece of paper, in landscape format. By default the height/width
+% ratio of \vsize to \hsize is preserved, unless this would make the
+% two pages overlap. In that case the new \hsize is adjusted to give
+% a "reasonable" gutter between the two pages. (For example, the first
+% method works for A4 paper, but fails for U.S. letter size, so then the
+% second method is used.)
+%
+% In some cases the defaults will not give you what you want.
+% If you don't like the way that \twinout sets the sizes of the pages
+% you can adjust them to your liking AFTER you have invoked \twinout.
+% \hsize is the width of an individual page, \vsize is the height of
+% either page, and \twinhsize is the width of both pages across the
+% length of the paper (the default is the \vsize in effect before you
+% invoked \twinout). The \hoffset and \voffset can also be adjusted.
+% The default is to set \hoffset=-0.10in, which is a reasonable place to
+% start; \voffset is unchanged.
+%
+% Typestyles are NOT changed, you have to do that yourself.
+%
+% An example showing both page size and typestyle selection is:
+%
+% \twinout
+% \twinhsize=9in \vsize=6.95in \hsize=4.36in \hoffset=-0.5in
+% \tenpoint
+%
+% These macros are patterned after similar macros in Harvmac by
+% Paul Ginsparg, as well as the plain.tex \output routines, but this
+% is a total rewrite by Eric Myers <myers@umich.edu>.
+%
+% Dependencies: \LandscapeSpecial should be defined in TXSsite.tex, but
+% you can make your own definition before twin.txs is read in, or you
+% can do without it and give dvips the "-t landscape" flag. Other than
+% worrying about that, this can be used by itself with plain.tex.
+%
+%======================================================================*
+% (C) Copyright 1993, 2000 by Eric Myers and Frank Paige.
+% This file is a part of TeXsis. Distribution and/or modifications
+% are allowed under the terms of the LaTeX Project Public License (LPPL).
+% See the file COPYING or ftp://ftp.texsis.org/texsis/LPPL
+%======================================================================*
+\message{- two pages on one}
+\catcode`@=11 % @ is a letter here to hide the inner workings
+
+\newbox\@leftpage % box to hold left page while building right page
+\newdimen\twinhsize % width of both pages together across the page
+
+
+% \LandscapeSpecial is the \special command that puts your laser printer
+% in "landscape" mode, i.e. printing sideways. If it is not already
+% defined (in TeXsis this is done in TXSsite.tex) then the default
+% is for Tom Rokicki's dvips.
+
+\ifx\undefined\LandscapeSpecial % is there no definition? then use
+ \def\LandscapeSpecial{\special{papersize=11in,8.5in}}% dvips version
+\fi
+
+
+% \twinout just sets up the column flag (to start in Left column),
+% sets the new \hsize and \vsize and changes \output.
+
+\def\twinout{% change \output to get two pages on one
+ \global\let\@LR=L % begin in left column
+ \twinsize % set paper size to default
+ \output={\twinoutput}} % redefine \output
+
+
+% \twinsize sets the page size for twin page output from the
+% current settings of \vsize and \hsize, preserving their ratio.
+% If h and v are the original horizontal and vertical sizes then the
+% width of a new page is w = h*(h/v). [Since TeX stores dimensions
+% in scaled points (65536sp=1pt) we have to be careful to rescale
+% from sp to pt to avoid arithmetic overflow.] If the columns would
+% overlap then a smaller \hsize is chosen such that there is a
+% reasonable gutter between the two pages.
+
+\def\twinsize{% set page sizes for twin page output
+ \twinhsize=\vsize % two pages across one rotated page
+ \vsize=\hsize % height of page is width of paper
+ \hoffset=-0.1in % also adjust offset a bit
+% now compute default \hsize from \hsize/\vsize ratio
+ \divide\hsize by 65536 % convert sp to pt for calculations
+ \multiply\hsize by \hsize % h^2 in points
+ \dimen@=\twinhsize \divide \dimen@ by 65536 % v in pt from sp
+ \divide\hsize by \dimen@ % w = h * (h/v)
+ \multiply\hsize by 65536 % convert pt back to sp
+% also compute candidate \hsize based on \twinhsize with a reasonable gutter
+ \dimen@=-\vsize \divide\dimen@ by 13 % gutter width computed from height
+ \advance\dimen@ by \twinhsize % width of page minus gutter
+ \divide\dimen@ by 2 % divide by 2 to get column width
+ \ifdim\dimen@<\hsize \hsize=\dimen@\fi} % choose smaller \hsize
+
+
+% \twinoutput builds the page as plain.tex does, but with a modified
+% \shipout to collect the left page first, then put both pages out together
+
+\def\twinoutput{% modified version of \plainoutput for two-on-one printing
+ \twinshipout{\vbox{\makeheadline\pagebody\makefootline}}%
+ \advancepageno
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
+
+
+% \twinshipout takes a \vbox, as \shipout does, but for the left page
+% it saves it temporarily. When the right page is given it puts the two
+% side by side and ships them out together.
+
+\def\twinshipout#1{% modified version of \shipout for two-on-one printing
+ \if L\@LR % left page?
+ \global\setbox\@leftpage=#1 % save the box for left page
+ \message{[\the\pageno]}% % fake [page number] in log
+ \global\let\@LR=R % set flag for next (right) page
+ \else % right page?
+ \shipout\vbox{\LandscapeSpecial % force landscape on every page
+ \hbox to \twinhsize{\box\@leftpage\hfil{#1}}}% 2 pages side by side
+ \global\let\@LR=L % set flag back to left page
+ \fi}
+
+\catcode`@=12 % @ is no longer a letter
+% >>> EOF twinout.txs <<<
diff --git a/Master/texmf-dist/tex/texsis/config/texsis.ini b/Master/texmf-dist/tex/texsis/config/texsis.ini
new file mode 100644
index 00000000000..5bd8379abf1
--- /dev/null
+++ b/Master/texmf-dist/tex/texsis/config/texsis.ini
@@ -0,0 +1,2 @@
+\input texsis
+\dump