summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/ms
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-04-29 23:50:16 +0000
committerKarl Berry <karl@freefriends.org>2007-04-29 23:50:16 +0000
commit7a10d350a6025aa6d6e637a883018deee64520c5 (patch)
tree01cddbb1c122b4a353842357e29fae4ed00a2ce7 /Master/texmf-dist/source/latex/ms
parent3182aaa429e0e1e24f5824de116d90a154166b32 (diff)
handle ms a la oberdiek (15apr07)
git-svn-id: svn://tug.org/texlive/trunk@4216 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/ms')
-rw-r--r--Master/texmf-dist/source/latex/ms/count1to.drv79
-rw-r--r--Master/texmf-dist/source/latex/ms/count1to.dtx500
-rw-r--r--Master/texmf-dist/source/latex/ms/count1to.ins120
-rw-r--r--Master/texmf-dist/source/latex/ms/everysel.drv74
-rw-r--r--Master/texmf-dist/source/latex/ms/everysel.dtx395
-rw-r--r--Master/texmf-dist/source/latex/ms/everysel.ins121
-rw-r--r--Master/texmf-dist/source/latex/ms/everyshi.drv74
-rw-r--r--Master/texmf-dist/source/latex/ms/everyshi.dtx406
-rw-r--r--Master/texmf-dist/source/latex/ms/everyshi.ins113
-rw-r--r--Master/texmf-dist/source/latex/ms/multitoc.drv78
-rw-r--r--Master/texmf-dist/source/latex/ms/multitoc.dtx537
-rw-r--r--Master/texmf-dist/source/latex/ms/multitoc.ins116
-rw-r--r--Master/texmf-dist/source/latex/ms/prelim2e.drv75
-rw-r--r--Master/texmf-dist/source/latex/ms/prelim2e.dtx610
-rw-r--r--Master/texmf-dist/source/latex/ms/prelim2e.ins119
-rw-r--r--Master/texmf-dist/source/latex/ms/ragged2e.drv100
-rw-r--r--Master/texmf-dist/source/latex/ms/ragged2e.dtx1332
-rw-r--r--Master/texmf-dist/source/latex/ms/ragged2e.ins101
18 files changed, 4950 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/ms/count1to.drv b/Master/texmf-dist/source/latex/ms/count1to.drv
new file mode 100644
index 00000000000..c03f6bd366c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/count1to.drv
@@ -0,0 +1,79 @@
+%%
+%% This is file `count1to.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% count1to.dtx (with options: `driver')
+%%
+%% This file is part of the Count1to package
+%% -----------------------------------------
+%%
+%% Copyright (c) [1994..1999] by Martin Schr"oder. All rights reserved.
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{count1to.drv}
+ [1999/06/08 v1.22 Driver for Count1to9 Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{booktabs}
+\usepackage{url}
+\usepackage{count1to}
+\usepackage[toc]{multitoc}
+\GetFileInfo{count1to.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{30ex}
+\setlength{\premulticols}{\IndexMin}
+\begin{document}
+ \DocInput{count1to.dtx}
+\end{document}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "1.22",
+%% date = "8 June 1999",
+%% filename = "count1to.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% D-28213 Bremen
+%% telephone = "+49-421-2239425",
+%% email = "Martin.Schroeder@ACM.org",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+%% docstring = "LaTeX package which sets count1 to count9,
+%% which can be used to select certain pages
+%% with a driver.
+%% Also provides access to the number of pages
+%% of the document.
+%% Uses the everyshi package.
+%% }
+%% ===================================================================
+%% \fi
+\endinput
+%%
+%% End of file `count1to.drv'.
diff --git a/Master/texmf-dist/source/latex/ms/count1to.dtx b/Master/texmf-dist/source/latex/ms/count1to.dtx
new file mode 100644
index 00000000000..077d92f13bd
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/count1to.dtx
@@ -0,0 +1,500 @@
+% \iffalse
+\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{count1to}
+%<package> [1999/06/08 v1.22 Count1to9 Package (MS)]
+%
+%<*driver>
+\ProvidesFile{count1to.drv}
+ [1999/06/08 v1.22 Driver for Count1to9 Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{booktabs}
+\usepackage{url}
+\usepackage{count1to}
+\usepackage[toc]{multitoc}
+\GetFileInfo{count1to.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{30ex}
+\setlength{\premulticols}{\IndexMin}
+\begin{document}
+ \DocInput{count1to.dtx}
+\end{document}
+%</driver>
+%
+% Copyright (c) [1994..1999] by Martin Schr\"oder. All rights reserved.
+%
+% This program may be redistributed and/or modified under the terms
+% of the LaTeX Project Public License, either version 1.0 of this
+% license, or (at your option) any later version.
+% The latest version of this license is in
+% CTAN:macros/latex/base/lppl.txt.
+%
+% Happy users are requested to send me a postcard. :-)
+%
+% For error reports in case of UNCHANGED versions see count1to.ins
+%
+% \fi
+%
+% \CheckSum{121}
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "1.22",
+%% date = "8 June 1999",
+%% filename = "count1to.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% D-28213 Bremen
+%% telephone = "+49-421-2239425",
+%% email = "Martin.Schroeder@ACM.org",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+% checksum = "17059 511 2330 19695",
+% codetable = "ISO/ASCII",
+% keywords = "LaTeX, pages",
+% supported = "yes",
+%% docstring = "LaTeX package which sets count1 to count9,
+%% which can be used to select certain pages
+%% with a driver.
+%% Also provides access to the number of pages
+%% of the document.
+%% Uses the everyshi package.
+%
+% The checksum field above contains a CRC-16
+% checksum as the first value, followed by
+% the equivalent of the standard UNIX wc
+% (word count) utility output of lines,
+% words, and characters. This is produced
+% by Robert Solovay's checksum utility."
+%% }
+%% ===================================================================
+%% \fi
+%
+% \changes{v1.00}{1994/12/07}{New}
+% \changes{v1.01}{1994/12/09}{Documentation improved}
+% \changes{v1.02}{1996/12/29}{Documentation improved}
+% \changes{v1.20}{1998/08/09}{Documentation improved}
+% \changes{v1.22}{1999/06/08}{Moved to LPPL}
+%
+% \newcommand*{\Count}[1]{\texttt{\symbol{92}count#1}}
+% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
+% \newcommand*{\NEWfeature}[1]{%
+% \hskip 1sp \marginpar{\small\sffamily\raggedright
+% New feature\\#1}}
+%
+% ^^A We need to document a label -- we do this by using the macros for
+% ^^A environments and changing the macros for the index entries.
+% \makeatletter
+% \renewcommand*{\SpecialEnvIndex}[1]{^^A
+% \@bsphack\index{\string#1^^A
+% \actualchar\string\verb\quotechar*\verbatimchar
+% \string#1\verbatimchar
+% \encapchar usage}\@esphack}
+% \renewcommand*{\SpecialMainEnvIndex}[1]{^^A
+% \@bsphack\special@index{\string#1\actualchar
+% \string\verb\quotechar*\verbatimchar
+% \string#1\verbatimchar\encapchar main}%
+% \@esphack}
+% \makeatother
+%
+% ^^A -----------------------------
+%
+% \changes{v1.03}{1997-03-09}{Fixed use of \cs{newline} in title.}
+% \title{\unskip
+% The \package{count1to} package^^A
+% \thanks{^^A
+% The version umber of this file is \fileversion,
+% last revised \filedate.\protect\newline
+% The name \textsf{count1to} is a tribute to the $8+3$
+% file-naming convention of certain ``operating
+% systems''; strictly speaking it should be
+% \textsf{count1to9}.}
+% \thanks{^^A
+% This document has \ref{TotalPages} pages.}^^A
+% }
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Cr\"usemannallee 3\\
+% \normalsize D-28213 Bremen\\
+% \normalsize Martin.Schroeder@ACM.org\\
+% \scriptsize \texttt{PGP-Key: 2048 bit / KeyID 292814E5}\\[-0.5em]
+% \scriptsize \texttt{7E86 6EC8 97FA 2995~~82C3 FEA5 2719 090E}}
+% \date{\filedate}
+% \maketitle
+%
+% ^^A -----------------------------
+%
+%
+% \begin{abstract}
+% This package sets \Count{1} to \Count{8} with the values
+% of \texttt{page} to \texttt{subparagraph}.
+% \Count{9} is used to flag odd pages.
+% The values of these counters are displayed and written in the
+% \textsf{.dvi} file by \TeX{} and can later be used to select
+% the pages of certain parts of the document for printing if the
+% device driver supports this.
+%
+% It also gives access to the total number of pages of the
+% document via the label \texttt{TotalPages}.
+% \end{abstract}
+%
+% \pagestyle{headings}
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+% ^^A
+% Most of the time users want to print only certain parts of a
+% document; but these can only be selected by using the page numbers
+% of these parts with most device drivers.
+% This can be dif\/ficult or impossible if pages in dif\/ferent
+% parts of the document have the same number---e.\,g. in the
+% frontmatter and the first text pages (iii vs. 3).
+%
+% \TeX{} provides an easy solution to this problem: whenever a page
+% is completed by the output routine and shipped out via
+% \cs{shipout}, it displayes the values of \Count{0} to \Count{9}
+% on the display (e.\,g. \texttt{[1]}) \emph{and writes them to the
+% \textsf{.dvi} file}.
+%
+% \changes{v1.02}{1996/12/29}{fixed typos}
+% \begin{quote}
+% ``The first ten \Count{} registers, \Count{0} to \Count{9},
+% are reserved for a special purpose: \TeX{} displays these ten
+% counts on your terminal whenever ouputting a page, and it
+% transmits them to the output file as an identification of that
+% page.
+% The counts are separated by decimal points on your terminal,
+% with trailing `\texttt{.0}' patterns suppressed.
+% Thus, for example, if \Count{0=5} and \Count{2=7} when a
+% page is shipped out to the \texttt{dvi} file, and if the other
+% counters are zero, \TeX{} will type `\texttt{[5.0.7]}'.
+% Plain \TeX{} uses \Count{0} for the page number, and it keeps
+% \Count{1} through~\Count{9} equal to zero; that is why you
+% see `\texttt{[1]}' when page~1 is being output.
+% In more complex applications the page numbers can have further
+% structure; ten counts are shipped out so that there will be
+% plenty of identification.''\cite[p\@. 119]{KnuthTeXa}
+% \end{quote}
+%
+% \noindent
+% Surprinsingly, until recently there existed no package for
+% \LaTeX{} that used these \Count{}ers although some drivers allow
+% the selection of pages based on other \Count{}s then \Count{0}
+% (e.\,g. em\TeX).
+%
+% This package is the solution: It uses the \package{everyshi}
+% package\cite{package:everyshi} to set \Count{1} to \Count{9} before
+% each \cs{shipout} with these values:
+%
+% \begin{center}
+% \begin{tabular}{cl}\toprule
+% \Count{} & value \\ \midrule
+% 0 & relative page number (set by \LaTeX)\\
+% 1 & absolute page number\\
+% 2 & number of current \cs{part} \\
+% 3 & number of current \cs{chapter} (0 with article class)\\
+% 4 & number of current \cs{section} \\
+% 5 & number of current \cs{subsection} \\
+% 6 & number of current \cs{subsubsection} \\
+% 7 & number of current \cs{paragraph} \\
+% 8 & number of current \cs{subparagraph} \\
+% 9 & 1 on odd pages, 0 on even pages\footnotemark\\
+% \bottomrule
+% \end{tabular}
+% \end{center}
+% \footnotetext{^^A
+% If you have a better application for \Count{9}, let me know.}
+%
+% \noindent
+% \textsf{count1to} also works with classes that do not define some
+% or all of the sectioning commands and their counters, like
+% \textsf{letter}.
+% Although it is of somewhat little use then \texttt{:-)}.
+%
+% A note for users of this package: When you select the pages of
+% some part of your document with a lower structure than
+% \cs{chapter}, remember that only \cs{part}s and \cs{chapter}s
+% start on a new page; if you want to print a complete
+% \cs{section}, you should also select the first page of the next
+% \cs{section}.
+% Also note that \TeX{} ships out the values of the counters instead
+% of their visual representation (produced with
+% \cs{the}\emph{counter}), so appendix A sets \Count{4} to 1 in the
+% article class.
+%
+% A note for developers of device drivers: Please add support for
+% \Count{1} to~\texttt{9} to your programs.
+% It would also be nice if users could easily select the next
+% page(s) after a certain count (something like
+% ``\texttt{*.*.*.*.2+1.*}'' should be possible for selecting all
+% pages with $\Count{4}\mapsto\mathrm{section}=2$ plus the first
+% page of section~3).
+%
+% \DescribeEnv{TotalPages}
+% \NEWfeature{1997/11/01}
+% The setting of \Count{1} with the absolute page number makes it
+% possible to provide the \emph{total} number of pages of the
+% document (as opposed to the ``number'' on the last page provided
+% by the \textsf{lastpage} package\cite{package:lastpage}).
+% By referencing the label |TotalPages| (e.\,g. by |\ref{TotalPages}|)
+% you get the total number of pages the document had at the last run
+% of \LaTeX.
+% If you want to use this feature, you should load \textsf{count1to}
+% as the \emph{last} package in your document because \textsf{count1to}
+% executes some code at |\end{document}| and has to be sure that its
+% code is the \emph{last} code executed there.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Options}
+% ^^A
+% The package has no options.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Required packages}
+% ^^A
+% The package requires the \package{everyshi}
+% package\cite{package:everyshi}.
+%
+%
+% ^^A -----------------------------
+%
+% \StopEventually{^^A
+%
+% ^^A -----------------------------
+%
+% \section{Acknowledgements}
+% ^^A
+% As usual Rebecca Stiels improved the quality of this documentation.
+% Rolf Niepraschk (\texttt{niepraschk@ptb.de}) provided the idea and
+% the first implementation of the \texttt{TotalPages} label.
+%
+%
+% ^^A -----------------------------
+%
+% \begin{thebibliography}{1}
+% \raggedright
+% \bibitem{package:lastpage}
+% Jeff Goldberg.
+% \newblock The \package{lastpage}-package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/other/lastpage}.
+% \newblock \LaTeXe{} package.
+% \bibitem{KnuthTeXa}
+% Donald~E.\ Knuth.
+% \newblock \emph{The {\TeX}Book}, volume~A of \emph{Computers
+% and Typesetting}.
+% \newblock Addison-Wes\-ley, 1986.
+% \newblock Eleventh printing, revised, May 1991.
+% \bibitem{package:everyshi}
+% Martin Schr\"oder.
+% \newblock The \package{everyshi} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/everyshi.dtx}.
+% \newblock \LaTeXe{} package.
+% \end{thebibliography}
+%
+% }
+%
+%
+% ^^A -----------------------------
+%
+% \section{The implementation}
+% ^^A
+% \setlength{\parindent}{0pt}
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% We need the \package{everyshi} package.
+% \changes{v1.20}{1998/04/10}{don't require \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{require \textsf{ifthen}}
+% \begin{macrocode}
+\RequirePackage{everyshi}[1994/12/09]
+% \end{macrocode}
+%
+% We need various \cs{if}s to check if the used counters
+% are defined.
+% \changes{v1.20}{1998/04/10}{\cs{newif} again}
+% \changes{v1.10}{1997/11/01}{\cs{newboolean}}
+% \begin{macrocode}
+\newif\if@have@part
+\newif\if@have@chapter
+\newif\if@have@section
+\newif\if@have@subsection
+\newif\if@have@subsubsection
+\newif\if@have@paragraph
+\newif\if@have@subparagraph
+% \end{macrocode}
+%
+% \begin{macro}{\@countItoIX@ifs}
+% \cs{@countItoIX@ifs} is used to set all these \cs{if}s at
+% |\begin{document}|.
+% It is undefined after use to save some space.
+% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{\cs{setboolean}}
+% \changes{v1.02}{1996/12/29}{destruct after usage}
+% \begin{macrocode}
+\newcommand*{\@countItoIX@ifs}{
+ \@ifundefined{c@part} {}{\@have@parttrue}
+ \@ifundefined{c@chapter} {}{\@have@chaptertrue}
+ \@ifundefined{c@section} {}{\@have@sectiontrue}
+ \@ifundefined{c@subsection} {}{\@have@subsectiontrue}
+ \@ifundefined{c@subsubsection} {}{\@have@subsubsectiontrue}
+ \@ifundefined{c@paragraph} {}{\@have@paragraphtrue}
+ \@ifundefined{c@subparagraph} {}{\@have@subparagraphtrue}
+ }
+\AtBeginDocument{\@countItoIX@ifs\let\@countItoIX@ifs\undefined}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@countItoIX@bugfix}
+% The current version of \LaTeX{} has the ``feature'' that only the
+% first level of counters associated with a counter via the optional
+% argument of \cs{newcounter} is reset when the counter is stepped;
+% so when you start a new chapter, the number for the subsection is
+% not reset.
+% This is normally no problem, but with this package, it is: If this
+% bug is not fixed or worked-around, then whenever you use
+% \cs{subparagraph} or some other lower sectioning command, and
+% after that a sectioning command that is at least two levels higher
+% (e.\,g. \cs{subsubsection}), the value of \texttt{subparagraph}
+% would not be reset and would still be displayed and shipped out.
+% So we have to associate \emph{all} lower-level sectioning commands
+% with the higher levels.
+% This is done via \cs{@addtoreset} at \cs{begin\{document\}}.
+% \cs{@countItoIX@bugfix} is undefined after use to save some space.
+% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{\cs{ifthenelse}}
+% \changes{v1.02}{1996/12/29}{destruct after usage}
+% \begin{macrocode}
+\newcommand*{\@countItoIX@bugfix}{
+ \if@have@part
+ \@addtoreset{section} {part}
+ \@addtoreset{subsection} {part}
+ \@addtoreset{subsubsection}{part}
+ \@addtoreset{paragraph} {part}
+ \@addtoreset{subparagraph} {part}
+ \fi
+ \if@have@chapter
+ \@addtoreset{subsection} {chapter}
+ \@addtoreset{subsubsection}{chapter}
+ \@addtoreset{paragraph} {chapter}
+ \@addtoreset{subparagraph} {chapter}
+ \fi
+ \if@have@section
+ \@addtoreset{subsubsection}{section}
+ \@addtoreset{paragraph} {section}
+ \@addtoreset{subparagraph} {section}
+ \fi
+ \if@have@subsection
+ \@addtoreset{paragraph} {subsection}
+ \@addtoreset{subparagraph} {subsection}
+ \fi
+ \if@have@subsubsection
+ \@addtoreset{subparagraph} {subsubsection}
+ \fi
+ }
+\AtBeginDocument{\@countItoIX@bugfix\let\@countItoIX@bugfix\undefined}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@countItoIX@shipout}
+% \cs{@countItoIX@shipout} is used for setting \Count{1} to
+% \Count{9} at each \cs{shipout}.
+% \begin{macrocode}
+\newcommand*{\@countItoIX@shipout}{
+% \end{macrocode}
+% \Count{1} is the absolute page number, which we have to maintain
+% by ourselves.
+% \begin{macrocode}
+ \global\advance \count1 by 1
+% \end{macrocode}
+% \Count{2} to \Count{8} are set with the values of
+% \cs{part} to \cs{subparagraph}, if these commands are defined.^^A
+% \footnote{We should probably also check the value of
+% \texttt{secnumdepth}, but I don't think this is necessary.}
+% \changes{v1.20}{1998/04/10}{don't use \textsf{ifthen}}
+% \changes{v1.10}{1997/11/01}{\cs{ifthenelse}}
+% \begin{macrocode}
+ \if@have@part \count2\value{part} \fi
+ \if@have@chapter \count3\value{chapter} \fi
+ \if@have@section \count4\value{section} \fi
+ \if@have@subsection \count5\value{subsection} \fi
+ \if@have@subsubsection \count6\value{subsubsection} \fi
+ \if@have@paragraph \count7\value{paragraph} \fi
+ \if@have@subparagraph \count8\value{subparagraph} \fi
+% \end{macrocode}
+% \Count{9} is set to~1 on odd pages and to~0 on even pages.
+% \begin{macrocode}
+ \ifodd\count1\count9=1 \else\count9=0 \fi
+ }
+\EveryShipout{\@countItoIX@shipout}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{TotalPages}
+% The label \texttt{TotalPages} is set on the \emph{absolut} last page
+% of the document and holds the \emph{total} number of pages of the
+% document, i.\,e. the value of \Count{1}.
+% But before we write the value to the auxfile we call a \cs{clearpage}
+% to force all pending floats to be output.
+% To do this we have to be sure to be the \emph{last} macro called by
+% \cs{AtEndDocument}---but this is nearly impossible to assure (see
+% the troubles the \package{lastpage} package\cite{package:lastpage} goes
+% through to achieve this), so we try to do our very best and set our
+% entry for \cs{AtEndDocument} at |\begin{document}| by using
+% \cs{AtBeginDocument}.
+% \changes{v1.10}{1997/11/01}{new}
+% \changes{v1.21}{1998/10/24}{write to \cs{@mainaux} instead of \cs{@auxout}}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \AtEndDocument{%
+ \clearpage
+ \immediate\write\@mainaux{\string\newlabel{TotalPages}{{\the\count1}{\the\count1}}}
+ }%
+ }
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% ^^A -----------------------------
+%
+% \Finale
+%
+% \PrintIndex\PrintChanges
+% ^^A Make sure that the index is not printed twice
+% ^^A (ltxdoc.cfg might have a second \PrintIndex command)
+% \let\PrintChanges\relax
+% \let\PrintIndex\relax
diff --git a/Master/texmf-dist/source/latex/ms/count1to.ins b/Master/texmf-dist/source/latex/ms/count1to.ins
new file mode 100644
index 00000000000..9436535861c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/count1to.ins
@@ -0,0 +1,120 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{count1to.ins}
+ [1999/06/08 v1.22 Installation script for Count1to9 Package (MS)]
+%%
+%% Copyright (c) [1994..1999] by Martin Schr\"oder. All rights reserved.
+%%
+%% This program may be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License, either version 1.0 of this
+%% license, or (at your option) any later version.
+%% The latest version of this license is in
+%% CTAN:macros/latex/base/lppl.txt.
+%%
+%% Happy users are requested to send me a postcard. :-)
+%%
+%% This file will be used by the docstrip.tex program to generate
+%% fast loadable files from the doc files.
+%%
+%% checksum = "48315 124 440 3844"
+%%
+%% The checksum field above contains a CRC-16 checksum as the first
+%% value, followed by the equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and characters.
+%% This is produced by Robert Solovay's checksum utility.
+%%
+%% --------------- start of docstrip commands ------------------
+\input docstrip.tex
+{\ifx\endbatchfile\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.4d or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* The count1to distribution contains these files:}
+\Msg{*}
+\Msg{* \space\space count1to.asc}
+\Msg{* \space\space count1to.dtx}
+\Msg{* \space\space count1to.dvi}
+\Msg{* \space\space count1to.ins}
+\Msg{* \space\space count1to.bug}
+\Msg{*}
+\Msg{* If you receive only some of these files from someone, complain!}
+\Msg{*}
+\Msg{***********************************************************}
+
+\preamble
+
+Copyright (c) [1994..1999] by Martin Schr"oder. All rights reserved.
+
+This file is part of the Count1to package
+
+This program may be redistributed and/or modified under the terms
+of the LaTeX Project Public License, either version 1.0 of this
+license, or (at your option) any later version.
+The latest version of this license is in
+ CTAN:macros/latex/base/lppl.txt.
+
+Happy users are requested to send me a postcard. :-)
+
+The Count1to package contains these files:
+
+ count1to.asc
+ count1to.dtx
+ count1to.dvi
+ count1to.ins
+ count1to.bug
+
+Error Reports in case of UNCHANGED versions to
+
+ Martin Schr"oder
+ Cr"usemannallee 3
+ D-28213 Bremen
+ Martin.Schroeder@ACM.org
+
+\endpreamble
+\declarepreamble\driverpreamble
+
+This file is part of the Count1to package
+-----------------------------------------
+
+Copyright (c) [1994..1999] by Martin Schr"oder. All rights reserved.
+
+To produce the documentation in the way you like you are allowed
+to change this driver file.
+
+\endpreamble
+
+\keepsilent
+\askforoverwritefalse
+\generate{%
+ \file{count1to.sty}{\from{count1to.dtx}{package}}
+ \usepreamble\driverpreamble
+ \file{count1to.drv}{\from{count1to.dtx}{driver}}
+ }
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* style files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space count1to.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file count1to.drv}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `count1to.ins'.
diff --git a/Master/texmf-dist/source/latex/ms/everysel.drv b/Master/texmf-dist/source/latex/ms/everysel.drv
new file mode 100644
index 00000000000..6ac7b8eb8b7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/everysel.drv
@@ -0,0 +1,74 @@
+%%
+%% This is file `everysel.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% everysel.dtx (with options: `driver')
+%% This file is part of the EverySel package
+%% -----------------------------------------
+%%
+%% Copyright (C) [1996..1999] Martin Schr"oder. All rights reserved.
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesFile{everysel.drv}
+ [1999/06/08 v1.03 Driver for EverySelectfont Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage[toc]{multitoc}
+\usepackage{everysel}
+\GetFileInfo{everysel.sty}
+\RecordChanges % Gather update information
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\addtolength{\oddsidemargin}{1cm}
+\addtolength{\textwidth}{-1cm}
+\raggedright % otherwise we get over/underfull hboxes
+\begin{document}
+ \DocInput{everysel.dtx}
+\end{document}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% ====================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "1.03",
+%% date = "8 June 1999",
+%% filename = "everysel.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% D-28213 Bremen},
+%% telephone = "+49-421-2239425",
+%% email = "Martin.Schroeder@ACM.org",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+%% docstring = "LaTeX package which provides hooks into
+%% \cs{selectfont}.
+%% }
+%% ====================================================================
+\endinput
+%%
+%% End of file `everysel.drv'.
diff --git a/Master/texmf-dist/source/latex/ms/everysel.dtx b/Master/texmf-dist/source/latex/ms/everysel.dtx
new file mode 100644
index 00000000000..cb6e315c81c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/everysel.dtx
@@ -0,0 +1,395 @@
+% \iffalse
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<package>\ProvidesPackage{everysel}
+%<package> [1999/06/08 v1.03 EverySelectfont Package (MS)]
+%
+%<*driver>
+\ProvidesFile{everysel.drv}
+ [1999/06/08 v1.03 Driver for EverySelectfont Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage[toc]{multitoc}
+\usepackage{everysel}
+\GetFileInfo{everysel.sty}
+\RecordChanges % Gather update information
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\addtolength{\oddsidemargin}{1cm}
+\addtolength{\textwidth}{-1cm}
+\raggedright % otherwise we get over/underfull hboxes
+\begin{document}
+ \DocInput{everysel.dtx}
+\end{document}
+%</driver>
+%
+% Copyright (C) [1996..1999] by Martin Schr\"oder. All rights reserved.
+%
+% This program may be redistributed and/or modified under the terms
+% of the LaTeX Project Public License, either version 1.0 of this
+% license, or (at your option) any later version.
+% The latest version of this license is in
+% CTAN:macros/latex/base/lppl.txt.
+%
+% Happy users are requested to send me a postcard. :-)
+%
+% For error reports in case of UNCHANGED versions see everysel.ins
+%
+% \fi
+%
+% \CheckSum{105}
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+% \iffalse meta-comment
+%% ====================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "1.03",
+%% date = "8 June 1999",
+%% filename = "everysel.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% D-28213 Bremen},
+%% telephone = "+49-421-2239425",
+%% email = "Martin.Schroeder@ACM.org",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+% checksum = "06457 414 1509 13717",
+% codetable = "ISO/ASCII",
+% keywords = "LaTeX, NFSS",
+% supported = "yes",
+%% docstring = "LaTeX package which provides hooks into
+%% \cs{selectfont}.
+%
+% The checksum field above contains a CRC-16
+% checksum as the first value, followed by
+% the equivalent of the standard UNIX wc
+% (word count) utility output of lines,
+% words, and characters. This is produced
+% by Robert Solovay's checksum utility."
+%% }
+%% ====================================================================
+%\fi
+%
+% \changes{v1.00}{1996-05-24}{New}
+% \changes{v1.02}{1998-04-11}{Minor documentation enhancements}
+% \changes{v1.02}{1998-08-09}{Minor documentation enhancements}
+% \changes{v1.03}{1999/06/08}{Moved to LPPL}
+%
+%
+% ^^A -----------------------------
+%
+% \pagestyle{headings}
+%
+% \newcommand*{\file}[1]{\texttt{#1}}
+% \newcommand*{\package}[1]{\textsf{#1}}
+% \hyphenation{every-select-font}
+%
+%
+% ^^A -----------------------------
+%
+% \changes{v1.01}{1997-03-09}{Fixed use of \cs{newline} in title.}
+% \title{\unskip
+% The \package{EverySel} package^^A
+% \thanks{^^A
+% The version number of this file is \fileversion,
+% last revised \filedate.\protect\newline
+% The name \textsf{EverySel} is a tribute to the $8+3$
+% file-naming convention of certain ``operating
+% systems'' and their ``file systems''; strictly
+% speaking it should be \textsf{EverySelectfont}.}^^A
+% }
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Cr\"usemannallee 3\\
+% \normalsize D-28213 Bremen\\
+% \normalsize Martin.Schroeder@ACM.org\\
+% \scriptsize \texttt{PGP-Key: 2048 bit / KeyID 292814E5}\\[-0.5em]
+% \scriptsize \texttt{7E86 6EC8 97FA 2995~~82C3 FEA5 2719 090E}}
+% \date{\filedate}
+% \maketitle
+%
+%
+% ^^A -----------------------------
+%
+%
+% \begin{abstract}
+% This packages provides hooks into the NFSS-command
+% \cs{selectfont} called \cs{EverySelectfont} and
+% \cs{AtNextSelectfont} analogous to \cs{AtBeginDocument}.
+% \end{abstract}
+%
+% \pagestyle{headings}
+%
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+% ^^A
+% This package provides the hooks \cs{EverySelectfont} and
+% \cs{AtNextSelectfont} whose arguments are executed just after
+% \LaTeX{} has loaded a new font using \cs{selectfont} (which means
+% that it will be executed after \emph{every} font loaded via NFSS).
+%
+% An example application would be a package for setting ragged text
+% which needs to distiguinsh between monospaced and proportional
+% fonts.
+% Such a package exists: \package{ragged2e}\cite{package:ragged2e}.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Usage}
+% ^^A
+% \DescribeMacro{\EverySelectfont}
+% \cs{EverySelectfont}\marg{code} declares
+% \mbox{$\langle$\emph{code}$\rangle$} that is saved internally
+% and executed just after \emph{each} \cs{selectfont}.
+%
+% \emph{Warning:} The \mbox{$\langle$\emph{code}$\rangle$} is saved
+% globally; there is currently no way to remove it.
+%
+% \DescribeMacro{\AtNextSelectfont}
+% \cs{AtNextSelectfont}\marg{code} declares
+% \mbox{$\langle$\emph{code}$\rangle$} that is saved internally
+% and executed just after \emph{and only the next} \cs{selectfont}.
+%
+% Repeated use of the commands is permitted: the code in their
+% argument is stored (and executed) in the order of their
+% declarations.
+%
+% The argument of \cs{AtNextSelectfont} is executed \emph{after}
+% the argument of \cs{EverySelectfont}.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Options}
+% ^^A
+% The package has no options.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Required packages}
+% ^^A
+% The package requires no further packages.
+%
+%
+% ^^A -----------------------------
+%
+% \StopEventually{^^A
+%
+%
+% ^^A -----------------------------
+%
+% \section{Acknowledgements}
+% ^^A
+% David Carlisle provided the solution for my problems with \cs{CheckCommand}.
+%
+%
+% ^^A -----------------------------
+%
+% \begin{thebibliography}{1}
+% \raggedright
+% \bibitem{package:tracefnt}
+% Frank Mittelbach and Rainer Sch\"opf.
+% \newblock The \package{tracefnt} package for use with the new
+% font selection scheme.
+% \newblock \url{CTAN: tex-archive/macros/latex/base/ltfsstrc.dtx}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:ragged2e}
+% Martin Schr\"oder.
+% \newblock The \package{ragged2e} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/ragged2e.dtx}.
+% \newblock \LaTeXe{} package.
+% \end{thebibliography}
+%
+% }
+%
+%
+% ^^A -----------------------------
+%
+% \section{The implementation}
+% ^^A
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Allocations}
+% ^^A
+% First we allocate the hooks
+% \begin{macro}{\@EverySelectfont@EveryHook}
+% The code to be executed just after the normal \cs{selectfont}.
+% \begin{macrocode}
+\newcommand{\@EverySelectfont@EveryHook}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@EverySelectfont@AtNextHook}
+% The code to be executed just after the normal \cs{selectfont}
+% and \cs{@EverySelectfont@EveryHook}.
+% \begin{macrocode}
+\newcommand{\@EverySelectfont@AtNextHook}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{The user-visible commands}
+% ^^A
+% \begin{macro}{\EverySelectfont}
+% \begin{macro}{\AtNextSelectfont}
+% These commands are modeled after \cs{AtBeginDocument}.
+% \begin{macrocode}
+\newcommand*{\EverySelectfont}[1]
+ {\g@addto@macro\@EverySelectfont@EveryHook{#1}}
+\newcommand*{\AtNextSelectfont}[1]
+ {\g@addto@macro\@EverySelectfont@AtNextHook{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Inserting the hooks}
+% ^^A
+% The hooks are placed \emph{inside} \cs{selectfont}.
+% Unfortunately for us there are \emph{two} versions of
+% \cs{selectfont} in normal \LaTeX: One is defined in the kernel and
+% the other by the package \package{tracefnt}\cite{package:tracefnt}.
+% So we have to check for two versions.
+% \begin{macro}{\@EverySelectfont@Init}
+% We do this in the macro \cs{@EverySelectfont@Init}, which is
+% executed just after \cs{begin\{document\}} (with the aid of
+% \cs{AtBeginDocument}), when we know for sure which version of
+% \cs{selectfont} we have to overload.
+% \begin{macrocode}
+\newcommand*{\@EverySelectfont@Init}{%
+% \end{macrocode}
+% We have to distinguish two cases: \package{tracefnt} and
+% no \package{tracefnt}.
+% \begin{macrocode}
+ \@ifpackageloaded{tracefnt}{%
+% \end{macrocode}
+% And we have a problem: \cs{selectfont} is defined using
+% \cs{DeclareRobustCommand}, which really defines
+% \cs{selectfont\textvisiblespace}.
+% So instead of simply using \cs{CheckCommand} we also have to use
+% \cs{expandafter} and \cs{csname}\ldots\cs{endcsname}.
+% \begin{macrocode}
+ \expandafter\CheckCommand\csname selectfont \endcsname{%
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip \fi
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \ifnum \tracingfonts>\tw@
+ \@font@info{Switching to \font@name}\fi
+ \size@update
+ \enc@update
+ }%
+ }{%
+% \end{macrocode}
+% Now the case without \package{tracefnt}.
+% \begin{macrocode}
+ \expandafter\CheckCommand\csname selectfont \endcsname{%
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip \fi
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \size@update
+ \enc@update
+ }%
+ }%
+% \end{macrocode}
+% After the checks we can be sure we have the correct version of
+% \cs{selectfont}, so we redefine it with our hooks.
+% \begin{macrocode}
+ \DeclareRobustCommand{\selectfont}%
+ {%
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip \fi
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \@EverySelectfont@EveryHook
+ \@EverySelectfont@AtNextHook
+% \end{macrocode}
+% We have to reset \cs{@EverySelectfont@AtNextHook} after each use.
+% \begin{macrocode}
+ \gdef\@EverySelectfont@AtNextHook{}%
+ \size@update
+ \enc@update
+ }%
+% \end{macrocode}
+% The additions of \package{tracefnt} to \cs{selectfont} can be
+% implemented using \cs{EverySelectfont}.
+% \begin{macrocode}
+ \@ifpackageloaded{tracefnt}{%
+ \EverySelectfont{%
+ \ifnum \tracingfonts>\tw@
+ \@font@info{Switching to \font@name}\fi}%
+ }{}%
+% \end{macrocode}
+% Since \cs{@EverySelectfont@Init} should only be used once it is
+% self-destructing.
+% \begin{macrocode}
+ \let\@EverySelectfont@Init\undefined
+ }
+% \end{macrocode}
+% Finally we insert \cs{EverySelectfont@Init} into \cs{begin\{document\}}.
+% \begin{macrocode}
+\AtBeginDocument{\@EverySelectfont@Init}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \Finale
+%
+% ^^A Print the indices but make sure that they are not printed twice
+% ^^A (ltxdoc.cfg might have a second \PrintIndex command)
+% \PrintIndex\PrintChanges\let\PrintChanges\relax\let\PrintIndex\relax
+%
diff --git a/Master/texmf-dist/source/latex/ms/everysel.ins b/Master/texmf-dist/source/latex/ms/everysel.ins
new file mode 100644
index 00000000000..18eb206a5d1
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/everysel.ins
@@ -0,0 +1,121 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{everysel.ins}
+ [1998/06/08 v1.03 Installation script for EverySelectfont Package (MS)]
+%%
+%% Copyright (C) [1996..1999] by Martin Schr"oder. All rights reserved.
+%%
+%% This program may be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License, either version 1.0 of this
+%% license, or (at your option) any later version.
+%% The latest version of this license is in
+%% CTAN:macros/latex/base/lppl.txt.
+%%
+%% Happy users are requested to send me a postcard. :-)
+%%
+%% This file will be used by the docstrip.tex program to generate
+%% fast loadable files from the doc files.
+%%
+%% Remember: DON'T CHANGE THIS FILE
+%%
+%% checksum = "40644 130 459 3845"
+%%
+%% The checksum field above contains a CRC-16 checksum as the first
+%% value, followed by the equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and characters.
+%% This is produced by Robert Solovay's checksum utility.
+%%
+%% --------------- start of docstrip commands ------------------
+\input docstrip.tex
+{\ifx\endbatchfile\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.4d or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* The everysel distribution contains these files:}
+\Msg{*}
+\Msg{* \space\space everysel.asc}
+\Msg{* \space\space everysel.dtx}
+\Msg{* \space\space everysel.dvi}
+\Msg{* \space\space everysel.ins}
+\Msg{* \space\space everysel.bug}
+\Msg{*}
+\Msg{* If you receive only some of these files from someone, complain!}
+\Msg{*}
+\Msg{***********************************************************}
+
+\preamble
+
+Copyright (C) [1996..1999] by Martin Schr"oder. All rights reserved.
+
+This file is part of the EverySel package
+
+This program may be redistributed and/or modified under the terms
+of the LaTeX Project Public License, either version 1.0 of this
+license, or (at your option) any later version.
+The latest version of this license is in
+ CTAN:macros/latex/base/lppl.txt.
+
+Happy users are requested to send me a postcard. :-)
+
+The EverySel package contains these files:
+
+ everysel.asc
+ everysel.dtx
+ everysel.dvi
+ everysel.ins
+ everysel.bug
+
+Error Reports in case of UNCHANGED versions to
+
+ Martin Schr"oder
+ Cr"usemannallee 3
+ D-28213 Bremen
+ Martin.Schroeder@ACM.org
+
+\endpreamble
+\declarepreamble\driverpreamble
+This file is part of the EverySel package
+-----------------------------------------
+
+Copyright (C) [1996..1999] Martin Schr"oder. All rights reserved.
+
+To produce the documentation in the way you like you are allowed
+to change this driver file.
+
+\endpreamble
+
+% Don't display progress
+\keepsilent
+\askforoverwritefalse
+\generate{\file{everysel.sty}{\from{everysel.dtx}{package}}
+ \usepreamble\driverpreamble
+ \file{everysel.drv}{\from{everysel.dtx}{driver}}
+ }
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* style files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space everysel.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file everysel.drv}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `everysel.ins'.
diff --git a/Master/texmf-dist/source/latex/ms/everyshi.drv b/Master/texmf-dist/source/latex/ms/everyshi.drv
new file mode 100644
index 00000000000..66922029456
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/everyshi.drv
@@ -0,0 +1,74 @@
+%%
+%% This is file `everyshi.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% everyshi.dtx (with options: `driver')
+%% This file is part of the EveryShi package
+%% -----------------------------------------
+%%
+%% Copyright (C) [1994..1999] Martin Schroder. All rights reserved.
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%% File: everyshi.dtx Copyright (C) 2001 Martin Schr\"oder
+\ProvidesFile{everyshi.drv}
+ [1999/06/08 v2.03 Driver for EveryShipout Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage[toc]{multitoc}
+\usepackage{everyshi}
+\GetFileInfo{everyshi.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{30ex}
+\setlength{\columnseprule}{.4pt}
+\begin{document}
+ \DocInput{everyshi.dtx}
+\end{document}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-package-file{
+%% author = {Martin Schr\"oder},
+%% version = "3.00",
+%% date = "15 May 2001",
+%% filename = "everyshi.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% 28213 Bremen
+%% Germany},
+%% telephone = "+49-421-2239425",
+%% email = "martin@oneiros.de",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+%% docstring = "LaTeX package which provides hooks into
+%% \cs{shipout}.
+%% }
+%% ===================================================================
+%% \fi
+
+\endinput
+%%
+%% End of file `everyshi.drv'.
diff --git a/Master/texmf-dist/source/latex/ms/everyshi.dtx b/Master/texmf-dist/source/latex/ms/everyshi.dtx
new file mode 100644
index 00000000000..b630b34946f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/everyshi.dtx
@@ -0,0 +1,406 @@
+% \iffalse
+%% File: everyshi.dtx Copyright (C) 2001 Martin Schr\"oder
+%
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{everyshi}
+%<package> [2001/05/15 v3.00 EveryShipout Package (MS)]
+%
+%<*driver>
+\ProvidesFile{everyshi.drv}
+ [1999/06/08 v2.03 Driver for EveryShipout Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage[toc]{multitoc}
+\usepackage{everyshi}
+\GetFileInfo{everyshi.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{30ex}
+\setlength{\columnseprule}{.4pt}
+\begin{document}
+ \DocInput{everyshi.dtx}
+\end{document}
+%</driver>
+%
+% Copyright (C) 2001 by Martin Schr\"oder. All rights reserved.
+%
+% This program may be redistributed and/or modified under the terms
+% of the LaTeX Project Public License, either version 1.0 of this
+% license, or (at your option) any later version.
+% The latest version of this license is in
+% CTAN:macros/latex/base/lppl.txt.
+%
+% Happy users are requested to send me a postcard. :-)
+%
+% For error reports in case of UNCHANGED versions see everyshi.ins
+%
+% \fi
+%
+% \CheckSum{51}
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-package-file{
+%% author = {Martin Schr\"oder},
+%% version = "3.00",
+%% date = "15 May 2001",
+%% filename = "everyshi.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% 28213 Bremen
+%% Germany},
+%% telephone = "+49-421-2239425",
+%% email = "martin@oneiros.de",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+% checksum = "51832 357 1434 12417",
+% codetable = "ISO/ASCII",
+% keywords = "LaTeX2e, \shipout",
+% supported = "yes",
+%% docstring = "LaTeX package which provides hooks into
+%% \cs{shipout}.
+%
+% The checksum field above contains a CRC-16
+% checksum as the first value, followed by
+% the equivalent of the standard UNIX wc
+% (word count) utility output of lines,
+% words, and characters. This is produced
+% by Robert Solovay's checksum utility."
+%% }
+%% ===================================================================
+%% \fi
+%
+% \changes{v1.00}{1994/12/04}{New}
+% \changes{v1.02}{1994/12/07}{Name changed from \textsf{atshipou} to
+% \textsf{everyshi}}
+% \changes{v1.03}{1994/12/09}{Documentation improved}
+% \changes{v2.00}{1995/01/25}{Redesign}
+% \changes{v2.02}{1998/08/09}{Documentation improved}
+% \changes{v2.03}{1999/06/08}{Moved to LPPL}
+% \changes{v3.00}{2001/05/15}{\cs{AtNextShipout} added}
+%
+% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
+% \newcommand*{\NEWfeature}[1]{%
+% \hskip 1sp \marginpar{\small\sffamily\raggedright
+% New feature\\#1}}
+%
+% ^^A -----------------------------
+%
+% \changes{v2.01}{1997-03-09}{Fixed use of \cs{newline} in title.}
+% \title{\unskip
+% The \package{everyshi} package^^A
+% \thanks{^^A
+% The version umber of this file is \fileversion,
+% last revised \filedate.\protect\newline
+% The name \textsf{everyshi} is a tribute to the $8+3$
+% file-naming convention of certain ``operating
+% systems''; strictly speaking it should be
+% \textsf{everyshipout}.}^^A
+% }
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Cr\"usemannallee 3\\
+% \normalsize 28213 Bremen\\
+% \normalsize Germany\\
+% \normalsize martin@oneiros.de\\
+% \scriptsize \texttt{PGP-Key: 2048 bit / KeyID 292814E5}\\[-0.5em]
+% \scriptsize \texttt{7E86 6EC8 97FA 2995~~82C3 FEA5 2719 090E}}
+% \date{\filedate}
+% \maketitle
+%
+% ^^A -----------------------------
+%
+%
+% \begin{abstract}
+% This packages provides hooks into \cs{sshipout}
+% called \cs{EveryShipout} and \cs{AtNextShipout} analogous to
+% \cs{AtBeginDocument}.
+% \end{abstract}
+%
+% \pagestyle{headings}
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+%
+% This package provides the hooks \cs{EveryShipout} and
+% \cs{AtNextShipout} whose arguments are executed after the output
+% routine has constructed \cs{box255}, and before \cs{shipout} is
+% called.
+%
+% An example application for this package would be a package for
+% adding text to the bottom of each page.
+% Such a package does exist: \package{prelim2e}\cite{package:prelim2e}.
+%
+% \changes{v3.00}{2001/05/15}{Reference to \package{eso-pic} added}
+% Another application is a package for adding pictures to every page:
+% \package{eso-pic}\cite{package:eso-pic}.
+%
+% ^^A -----------------------------
+%
+% \section{Usage}
+%
+% \cs{EveryShipout}\marg{code} declares
+% \mbox{$\langle$\emph{code}$\rangle$} that is saved internally
+% and executed before each \cs{shipout}.
+%
+% \emph{Warning:} The \mbox{$\langle$\emph{code}$\rangle$} is saved
+% globally; there is currently no way to remove it.
+%
+% \DescribeMacro{\AtNextShipout}
+% \NEWfeature{2001/05/15}
+% \cs{AtNextShipout}\marg{code} declares
+% \mbox{$\langle$\emph{code}$\rangle$} that is saved internally
+% and executed just before \emph{only the next} \cs{shipout}.
+%
+% The \meta{code} is executed after \cs{box255} has been constructed
+% by the output routine and can change \cs{box255}.
+% \cs{shipout} is called \emph{after} \meta{code}.
+%
+% Repeated use of the commands is permitted: the code in the
+% argument is stored (and executed) in the order of their
+% declarations.
+%
+% The argument of \cs{AtNextShipout} is executed \emph{after}
+% the argument of \cs{EveryShipout}.
+%
+% ^^A -----------------------------
+%
+% \section{Options}
+%
+% The package has no options.
+%
+% ^^A -----------------------------
+%
+% \section{Required packages}
+%
+% The package does not require any further packages.
+%
+% ^^A -----------------------------
+%
+% \StopEventually{^^A
+
+% ^^A -----------------------------
+%
+% \section{Acknowledgements}
+% ^^A
+% Version 2.0 of \package{everyshi} borrows heavily from
+% \textsf{quire.tex} of the \textsf{Midnight Macros} by Marcel R.~van
+% der Goot (\texttt{marcel@cs.caltech.edu}).
+% The pointer to \textsf{quire} was provided by Lothar Meyer-Lerbs
+% (\texttt{\TeX{}Satz@zfn.uni-bremen.de}).
+% As usual Rebecca Stiels improved the quality of this documentation.
+%
+%
+% ^^A -----------------------------
+%
+% \begin{thebibliography}{1}
+% \raggedright
+% \bibitem{package:eso-pic}
+% Rolf Niepraschk.
+% \newblock The \package{eso-pic} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/contrib/eso-pic.dtx}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:prelim2e}
+% Martin Schr\"oder.
+% \newblock The \package{prelim2e} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/prelim2e.dtx}.
+% \newblock \LaTeXe{} package.
+% \end{thebibliography}
+%
+% }
+%
+% ^^A -----------------------------
+%
+% \section{The implementation}
+% \raggedright
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Allocations}
+% ^^A
+% First we allocate the hooks
+% \begin{macro}{\@EveryShipout@Hook}
+% \changes{v2.00}{1995/01/25}{Name changed from \cs{@shipouthook} to
+% \cs{@EveryShipout@Hook}}
+% \changes{v3.00}{2001/05/15}{\cs{newcommand}}
+% The code to be executed before \cs{shipout} is stored in
+% \cs{@EveryShipout@Hook}.
+% \begin{macrocode}
+\newcommand{\@EveryShipout@Hook}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@EveryShipout@AtNextHook}
+% \changes{v3.00}{2001/05/15}{new}
+% The code to be executed just before the normal \cs{shipout}
+% and \cs{@EveryShipout@EveryHook}.
+% \begin{macrocode}
+\newcommand{\@EveryShipout@AtNextHook}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{The user-visible commands}
+% ^^A
+% \begin{macro}{\EveryShipout}
+% \begin{macro}{\AtNextShipout}
+% \changes{v1.01}{1994/12/06}{\cs{newcommand} instead of \cs{def}}
+% \changes{v1.02}{1994/12/07}{Name changed from \cs{AtShipout} to
+% \cs{EveryShipOut}}
+% \changes{v3.00}{2001/05/15}{\cs{AtNextShipout} added}
+% The commands are modeled after \cs{AtBeginDocument}.
+% \begin{macrocode}
+\newcommand*{\EveryShipout}[1]
+ {\g@addto@macro\@EveryShipout@Hook{#1}}
+\newcommand*{\AtNextShipout}[1]
+ {\g@addto@macro\@EveryShipout@AtNextHook{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Inserting the hooks}
+% ^^A
+% We want to redefine \cs{shipout} so that first \cs{box255} is
+% constructed and after that we can do something and at last shipout
+% the (possible modified) \cs{box255}.
+% Alas, this does not work in the usual way, since \cs{shipout} is
+% a \TeX{} primitive whose argument is a \meta{box}.
+% This means that simply redefining \cs{shipout} via \cs{newcommand[1]}
+% is impossible since \meta{box} can be something like \cs{box255} or
+% something like \cs{vbox\{\ldots\}}.
+% In the first case \texttt{\#1} would be \meta{\cs{box}} (without
+% \meta{255}); in the second case it would be \meta{\cs{vbox}} (without
+% \meta{\{\ldots\}}).
+%
+% The solution we use here is borrowed from \textsf{quire.tex} by
+% Marcel R.~van der Goot.
+% It is based upon \cs{afterassignment} and \cs{aftergroup}.
+%
+% \begin{macro}{\@EveryShipout@Shipout}
+% \changes{v2.00}{1995/01/25}{new}
+% \cs{@EveryShipout@Shipout} is our replacement for \cs{shipout}.
+% \begin{macrocode}
+\newcommand{\@EveryShipout@Shipout}{%
+ \afterassignment\@EveryShipout@Test
+ \global\setbox\@cclv= %
+ }
+% \end{macrocode}
+% \cs{box255} is set to whatever comes after \cs{shipout}; but after
+% that assignment \cs{@EveryShipout@Test} is called.
+% \end{macro}
+%
+% \begin{macro}{\@EveryShipout@Test}
+% \changes{v2.00}{1995/01/25}{new}
+% \cs{@EveryShipout@Test} determines if \cs{shipout} is called with
+% an argument like \cs{box255} or something like \cs{vbox\{\ldots\}}.
+% In the later case we delay the call of \cs{@EveryShipout@Output}
+% (where the original \cs{shipout} is called) via \cs{aftergroup}.
+% \begin{macrocode}
+\newcommand{\@EveryShipout@Test}{%
+ \ifvoid\@cclv\relax
+ \aftergroup\@EveryShipout@Output
+ \else
+ \@EveryShipout@Output
+ \fi%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@EveryShipout@Output}
+% \changes{v2.00}{1995/01/25}{new}
+% \changes{v3.00}{2001/05/15}{added call to \cs{@EveryShipout@AtNextHook}}
+% \cs{@EveryShipout@Output} does the actual work.
+% First the \meta{code} accumulated via \cs{EveryShipout} and
+% \cs{AtNextShipout} is called and then the original \cs{shipout} stored
+% in \cs{@EveryShipout@Org@Shipout} is called to finally ship out
+% \cs{box255}.
+% \begin{macrocode}
+\newcommand{\@EveryShipout@Output}{%
+ \@EveryShipout@Hook%
+ \@EveryShipout@AtNextHook%
+% \end{macrocode}
+% We have to reset \cs{@EveryShipout@AtNextHook} after each use.
+% \begin{macrocode}
+ \gdef\@EveryShipout@AtNextHook{}%
+ \@EveryShipout@Org@Shipout\box\@cclv%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@EveryShipout@Org@Shipout}
+% \changes{v2.00}{1995/01/25}{new}
+% The original \cs{shipout} is stored in \cs{@EveryShipout@Org@Shipout}
+% by \cs{@EveryShipout@Init}.
+% Here we allocate it.
+% \begin{macrocode}
+\newcommand{\@EveryShipout@Org@Shipout}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@EveryShipout@Init}
+% \changes{v2.00}{1995/01/25}{new}
+% \changes{v3.00}{2001/05/15}{output message}
+% \cs{@EveryShipout@Init} stores the original \cs{shipout} in
+% \cs{@EveryShipout@Org@Shipout} and sets \cs{shipout} to
+% \cs{@EveryShipout@Shipout}.
+% This is done at \cs{begin\{document\}} via \cs{AtBeginDocument}.
+% \begin{macrocode}
+\newcommand*{\@EveryShipout@Init}{%
+ \message{ABD: EveryShipout initializing macros}%
+ \let\@EveryShipout@Org@Shipout\shipout
+ \let\shipout\@EveryShipout@Shipout
+ }
+\AtBeginDocument{\@EveryShipout@Init}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \Finale
+%
+% \PrintIndex\PrintChanges
+% ^^A Make sure that the index is not printed twice
+% ^^A (ltxdoc.cfg might have a second \PrintIndex command)
+% \let\PrintChanges\relax
+% \let\PrintIndex\relax
diff --git a/Master/texmf-dist/source/latex/ms/everyshi.ins b/Master/texmf-dist/source/latex/ms/everyshi.ins
new file mode 100644
index 00000000000..be7a2398805
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/everyshi.ins
@@ -0,0 +1,113 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{everysel.ins}
+ [1998/06/08 v2.03 Installation script for EveryShipout Package (MS)]
+%%
+%% Copyright (C) [1994..1999] by Martin Schr"oder. All rights reserved.
+%%
+%% This program may be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License, either version 1.0 of this
+%% license, or (at your option) any later version.
+%% The latest version of this license is in
+%% CTAN:macros/latex/base/lppl.txt.
+%%
+%% Happy users are requested to send me a postcard. :-)
+%%
+%% checksum = "36957 126 454 3799"
+%%
+%% The checksum field above contains a CRC-16 checksum as the first
+%% value, followed by the equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and characters.
+%% This is produced by Robert Solovay's checksum utility.
+%%
+%% --------------- start of docstrip commands ------------------
+\input docstrip.tex
+{\ifx\endbatchfile\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.4d or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* The everyshi distribution contains these files:}
+\Msg{*}
+\Msg{* \space\space everyshi.asc}
+\Msg{* \space\space everyshi.dtx}
+\Msg{* \space\space everyshi.dvi}
+\Msg{* \space\space everyshi.ins}
+\Msg{* \space\space everyshi.bug}
+\Msg{*}
+\Msg{* If you receive only some of these files from someone, complain!}
+\Msg{*}
+\Msg{***********************************************************}
+\preamble
+
+Copyright (C) [1994..1999] by Martin Schroeder. All rights reserved.
+
+This file is part of the EveryShi package
+
+This program may be redistributed and/or modified under the terms
+of the LaTeX Project Public License, either version 1.0 of this
+license, or (at your option) any later version.
+The latest version of this license is in
+ CTAN:macros/latex/base/lppl.txt.
+
+Happy users are requested to send me a postcard. :-)
+
+The EveryShi package contains these files:
+
+ everyshi.asc
+ everyshi.dtx
+ everyshi.dvi
+ everyshi.ins
+ everyshi.bug
+
+Error Reports in case of UNCHANGED versions to
+
+ Martin Schr"oder
+ Cr"usemannallee 3
+ D-28213 Bremen
+ Martin.Schroeder@ACM.org
+
+\endpreamble
+\declarepreamble\driverpreamble
+This file is part of the EveryShi package
+-----------------------------------------
+
+Copyright (C) [1994..1999] Martin Schroder. All rights reserved.
+
+To produce the documentation in the way you like you are allowed
+to change this driver file.
+\endpreamble
+
+\keepsilent
+\askforoverwritefalse
+\generate{\file{everyshi.sty}{\from{everyshi.dtx}{package}}
+ \usepreamble\driverpreamble
+ \file{everyshi.drv}{\from{everyshi.dtx}{driver}}
+ }
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* style files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space everyshi.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file everysel.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `everyshi.ins'.
diff --git a/Master/texmf-dist/source/latex/ms/multitoc.drv b/Master/texmf-dist/source/latex/ms/multitoc.drv
new file mode 100644
index 00000000000..db3d2802146
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/multitoc.drv
@@ -0,0 +1,78 @@
+%%
+%% This is file `multitoc.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% multitoc.dtx (with options: `driver')
+%%
+%% This file is part of the MultiToc package
+%% -----------------------------------------
+%%
+%% Copyright (c) [1998..1999] by Martin Schr"oder. All rights reserved.
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{multitoc.drv}
+ [1999/06/08 v2.01 Driver for MultiToc Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage{ragged2e}
+\usepackage[toc]{multitoc}
+\GetFileInfo{multitoc.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{30ex}
+\setlength{\premulticols}{\IndexMin}
+\RaggedRight
+\begin{document}
+ \DocInput{multitoc.dtx}
+\end{document}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "2.01",
+%% date = "8 June 1999",
+%% filename = "multitoc.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% D-28213 Bremen
+%% telephone = "+49-421-2239425",
+%% email = "Martin.Schroeder@ACM.org",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+%% docstring = "LaTeX package which automatically sets only
+%% the table of contents, list of figures and list
+%% of tables in two or more columns.
+%% The number of columns can be configured.
+%% Uses the multicol package.
+%% }
+%% ===================================================================
+%% \fi
+\endinput
+%%
+%% End of file `multitoc.drv'.
diff --git a/Master/texmf-dist/source/latex/ms/multitoc.dtx b/Master/texmf-dist/source/latex/ms/multitoc.dtx
new file mode 100644
index 00000000000..a88e69fbe65
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/multitoc.dtx
@@ -0,0 +1,537 @@
+% \iffalse
+\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{multitoc}
+%<package> [1999/06/08 v2.01 MultiToc Package (MS)]
+%
+%<*driver>
+\ProvidesFile{multitoc.drv}
+ [1999/06/08 v2.01 Driver for MultiToc Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage{ragged2e}
+\usepackage[toc]{multitoc}
+\GetFileInfo{multitoc.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{30ex}
+\setlength{\premulticols}{\IndexMin}
+\RaggedRight
+\begin{document}
+ \DocInput{multitoc.dtx}
+\end{document}
+%</driver>
+%
+% Copyright (c) [1998..1999] by Martin Schr\"oder. All rights reserved.
+%
+% This program may be redistributed and/or modified under the terms
+% of the LaTeX Project Public License, either version 1.0 of this
+% license, or (at your option) any later version.
+% The latest version of this license is in
+% CTAN:macros/latex/base/lppl.txt.
+%
+% Happy users are requested to send me a postcard. :-)
+%
+% For error reports in case of UNCHANGED versions see multitoc.ins
+%
+% \fi
+%
+% \CheckSum{83}
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "2.01",
+%% date = "8 June 1999",
+%% filename = "multitoc.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% D-28213 Bremen
+%% telephone = "+49-421-2239425",
+%% email = "Martin.Schroeder@ACM.org",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+% checksum = "62732 556 2216 19056",
+% codetable = "ISO/ASCII",
+% keywords = "LaTeX, multicol, toc, lof, lot",
+% dependences = "multicol",
+% supported = "yes",
+%% docstring = "LaTeX package which automatically sets only
+%% the table of contents, list of figures and list
+%% of tables in two or more columns.
+%% The number of columns can be configured.
+%% Uses the multicol package.
+%
+% The checksum field above contains a CRC-16
+% checksum as the first value, followed by
+% the equivalent of the standard UNIX wc
+% (word count) utility output of lines,
+% words, and characters. This is produced
+% by Robert Solovay's checksum utility."
+%% }
+%% ===================================================================
+%% \fi
+%
+% \changes{v0.90}{1998/05/23}{New}
+% \changes{v1.00}{1998/08/09}{Documentation improved}
+% \changes{v2.00}{1998/08/23}{Redesign}
+% \changes{v2.01}{1999/06/08}{Moved to LPPL}
+%
+% \newcommand*{\option}[1]{\textnormal{\sffamily#1}}
+% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
+% \newcommand*{\file}[1]{\textnormal{\texttt{.#1}}}
+% \newcommand*{\env}[1]{\textnormal{\texttt{#1}}}
+%
+%
+% ^^A -----------------------------
+%
+% \title{\unskip
+% The \textsf{multitoc} package^^A
+% \thanks{^^A
+% The version number of this file is \fileversion,
+% last revised \filedate.\protect\newline
+% The name \textsf{multitoc} is a tribute to the $8+3$
+% file-naming convention of certain ``operating
+% systems''; strictly speaking it should be
+% \textsf{MulticolumnToc}.}
+% }
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Cr\"usemannallee 3\\
+% \normalsize D-28213 Bremen\\
+% \normalsize Martin.Schroeder@ACM.org\\
+% \scriptsize \texttt{PGP-Key: 2048 bit / KeyID 292814E5}\\[-0.5em]
+% \scriptsize \texttt{7E86 6EC8 97FA 2995~~82C3 FEA5 2719 090E}}
+% \date{\filedate}
+% \maketitle
+%
+% ^^A -----------------------------
+%
+%
+% \begin{abstract}
+% This package allows setting only the table of contents, list of
+% figures and/or list of tables in two or more columns.
+% The number of columns can be configured via commands; the
+% multicolumn toc(s) can be selected via package options.
+% \end{abstract}
+%
+% \pagestyle{headings}
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{The problem\label{sec:sec:problem}}
+% ^^A
+% When you want to set only the table of contents of a document in two
+% (or more columns), there is one known way^^A
+% \footnote{^^A
+% This was first used in the \package{doc}
+% package\protect\cite{package:doc}.
+% }^^A
+% : Add an
+% \begin{quote}
+% |\addtocontents{toc}{\protect\begin{multicols}{2}}|
+% \end{quote}
+% before the \cs{tableofcontents} and an
+% \begin{quote}
+% |\addtocontents{toc}{\protect\end{multicols}}|
+% \end{quote}
+% at the end of the document.
+% This way your \file{toc} will start with |\begin{multicols}{2}|
+% and end with |\end{multicols}|.
+%
+% This can be automised by using \cs{AtBeginDocument} and
+% \cs{AtEndDocument} but this has the drawback that it may
+% collide with other commands inserted using \cs{AtEndDocument} that
+% try to write information to the auxilary file (like the
+% \package{count1to} package\cite{package:count1to}).
+% This is because \TeX{} has two ways to write information to files
+% \cite[p.\ 226--228]{KnuthTeXa}: immediately (when the \cs{write} is
+% prefixed by \cs{immediate}) or deferred till the current page is
+% finished and written out by \TeX{} (at the next \cs{shipout}).
+% \cs{addtocontents} does a deferred \cs{write}, \package{count1to}
+% does an immediate.
+%
+% \begin{quote}
+% \small
+% Sidenote: \cs{addtocontents} writes a command to the \file{aux} file
+% to write its information to the \file{toc} file.
+% The \file{aux} is read in and executed by |\end{document}| and at
+% the next run by |\begin{document}|.
+% So the \file{toc} is written by |\end{document}| and at the
+% next run by |\begin{document}|.
+% \end{quote}
+%
+% When you use the automised solution with \package{count1to} this may
+% happen:
+% \begin{enumerate}
+% \item The |\addtocontents{toc}{\protect\end{multicols}}| is inserted
+% using \cs{AtEndDocument} somewhere in the preamble.
+% \item \package{count1to} inserts this code
+% \begin{quote}
+% \hfuzz135pt
+% \small
+% |\clearpage|\\
+% |\immediate\write\@auxout{\string\newlabel{TotalPages}{{\the\count1}{\the\count1}}}|
+% \end{quote}
+% via an |\AtBeginDocument{\AtEndDocument{| so it can be sure that
+% this code is the \emph{last} code executed by \cs{AtEndDocument}.
+% \item At the |\end{document}| first the code from step~1 is executed
+% which adds the information to the current page to write the
+% |\@writefile{toc}{\end{multicols}}| to the auxilary file
+% \emph{when the current page is finished}.
+%
+% Then the code from step~2 is executed, which lets \LaTeX{} clear
+% the page (to force all pending writes to be written) and
+% \emph{immediately} after that write the information for the
+% |TotalPages| to the auxilary file.
+%
+% Now suppose that the |\end{document}| is called \emph{just after}
+% \LaTeX{} has finished the last page.
+% The code from step~1 is never written to the file (since at the
+% \cs{clearpage} \LaTeX{} has no page to finish and so the code
+% waits for the \cs{shipout} which won't come), but the code from
+% step~2 is.
+% So you now have an \file{aux} which won't write the
+% |\end{multicols}| to the \file{toc}.
+% This of course produces an error at the next run.
+% \end{enumerate}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{A solution}
+% ^^A
+% \DescribeMacro{\@starttoc}
+% An easy way around this is to simply redefine \cs{@starttoc} from
+% \cite{package:ltsect} which reads in the \file{toc} to wrap a
+% \env{multicol} around it.\footnote{^^A
+% Thanks to Frank Mittelbach for reminding me of this.}^^A
+% $^{,}$^^A
+% \footnote{^^A
+% \raggedright
+% Version~1.00 of this package provided a more elaborate solution
+% to this using \cs{immediateaddtocontents}; this is no longer needed.
+% But the commands from version~1.00 are still provided (see
+% section~\ref{sec:sec:version100}).}
+%
+%
+% ^^A -----------------------------
+%
+% \section{Parameters}
+% ^^A
+% \DescribeMacro{\multicolumntoc}
+% \DescribeMacro{\multicolumnlot}
+% \DescribeMacro{\multicolumnlof}
+% The number of columns for the table of contens, list of figures and
+% list of tables can be set by redefining the commands
+% \cs{multicolumntoc}, \cs{multicolumnlot} and \cs{multicolumnlof}.
+% The default is two columns.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Options}
+% ^^A
+% The package has the following options:
+% \nopagebreak
+% \begin{description}
+% \item[\normalfont\option{toc}]
+% The table of contents is set in \cs{multicolumntoc} columns.
+% \item[\normalfont\option{lof}]
+% The list of figures is set in \cs{multicolumnlof} columns.
+% \item[\normalfont\option{lot}]
+% The list of tables is set in \cs{multicolumnlot} columns.
+% \end{description}
+%
+%
+% ^^A -----------------------------
+%
+% \section{Required packages}
+% ^^A
+% The package requires the \package{multicol} and the
+% \package{ifthen} packages.
+%
+%
+% ^^A -----------------------------
+%
+% \StopEventually{^^A
+%
+%
+% ^^A -----------------------------
+%
+% \begin{thebibliography}{1}
+% \raggedright
+% \bibitem{package:ltfiles}
+% Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport,
+% Frank Mittelbach, Chris Rowley and Rainer Sch\"opf.
+% \newblock \package{ltfiles.dtx}.
+% \newblock \texttt{CTAN: tex-archive/macros/latex/base/ltfiles.dtx}.
+% \newblock \LaTeXe{} kernel.
+% \bibitem{package:ltsect}
+% Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport,
+% Frank Mittelbach, Chris Rowley, Tobias Oetiker and Rainer Sch\"opf.
+% \newblock \package{ltsect.dtx}.
+% \newblock \url{CTAN: tex-archive/macros/latex/base/ltsect.dtx}.
+% \newblock \LaTeXe{} kernel.
+% \bibitem{KnuthTeXa}
+% Donald~E.\ Knuth.
+% \newblock \emph{The {\TeX}Book}, volume~A of \emph{Computers
+% and Typesetting}.
+% \newblock Addison-Wes\-ley, 1986.
+% \newblock Eleventh printing, revised, May 1991.
+% \bibitem{package:doc}
+% Frank Mittelbach.
+% \newblock The \package{doc} and \package{shortvrb} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/base/doc.dtx}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:count1to}
+% Martin Schr\"oder.
+% \newblock The \package{count1to} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/count1to.dtx}.
+% \newblock \LaTeXe{} package.
+% \end{thebibliography}
+%
+% }
+%
+%
+% ^^A -----------------------------
+%
+% \section{The Implementation}
+% ^^A
+% \setlength{\parindent}{0pt}
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% We need the \package{multicol} and the \package{ifthen} packages.
+% \begin{macrocode}
+\RequirePackage{multicol}
+\RequirePackage{ifthen}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{The parameters}
+% ^^A
+% \begin{macro}{\multicolumntoc}
+% \begin{macro}{\multicolumnlot}
+% \begin{macro}{\multicolumnlof}
+% \mbox{}
+% \begin{macrocode}
+\newcommand{\multicolumntoc}{2}
+\newcommand{\multicolumnlot}{2}
+\newcommand{\multicolumnlof}{2}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Initial Code}
+% ^^A
+% \begin{macro}{@multitoc@toc}
+% \changes{v2.00}{1998/08/23}{new}
+% \cs{if@multitoc@toc} is used to flag the use of the \option{toc}
+% otion.
+% \begin{macrocode}
+\newboolean{@multitoc@toc}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{@multitoc@lot}
+% \changes{v2.00}{1998/08/23}{new}
+% \cs{if@multitoc@lot} is used to flag the use of the \option{lot}
+% otion.
+% \begin{macrocode}
+\newboolean{@multitoc@lot}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{@multitoc@lof}
+% \changes{v2.00}{1998/08/23}{new}
+% \cs{if@multitoc@lof} is used to flag the use of the \option{lof}
+% otion.
+% \begin{macrocode}
+\newboolean{@multitoc@lof}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{The options}
+% ^^A
+% The options simply set the corresponding flags.
+% \changes{v2.00}{1998/08/23}{Redesign}
+% \changes{v1.00}{1998/08/09}{\cs{clearpage}}
+% \begin{macrocode}
+\DeclareOption{toc}{\setboolean{@multitoc@toc}{true}}
+\DeclareOption{lot}{\setboolean{@multitoc@lot}{true}}
+\DeclareOption{lof}{\setboolean{@multitoc@lof}{true}}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Executing options}
+% ^^A
+% There are no default options.
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Redefining \cs{@starttoc}}
+% ^^A
+% \begin{macro}{\@starttoc}
+% From \cite{package:ltsect}:
+% \begin{quote}
+% The |\@starttoc|\marg{ext} command is used to define the commands:\\
+% |\tableofcontents|, |\listoffigures|, etc.
+%
+% For example:
+% |\@starttoc{lof}| is used in |\listoffigures|. This command
+% reads the |.|\meta{ext} file and sets up to write the new
+% |.|\meta{ext} file.
+%
+% \begin{oldcomments}
+% \@starttoc{EXT} ==
+% BEGIN
+% \begingroup
+% \makeatletter
+% read file \jobname.EXT
+% IF @filesw = true
+% THEN open \jobname.EXT as file \tf@EXT
+% FI
+% @nobreak :=G FALSE %% added 24 May 89
+% \endgroup
+% END
+% \end{oldcomments}
+% \end{quote}
+% We store the current definition in \cs{@multitoc@starttoc}
+% and wrap it in a \env{multicol} environment if the right
+% option has been selected.
+% We also have to determine the number of columns to use.\footnote{^^A
+% This could probably be coded more effeciently, but this code
+% works\ldots}
+% \begin{macrocode}
+\let\@multitoc@starttoc\@starttoc
+\renewcommand*{\@starttoc}[1]{%
+ \ifthenelse{\boolean{@multitoc@toc}\and\equal{#1}{toc}}{%
+ \begin{multicols}{\multicolumntoc}%
+ \@multitoc@starttoc{#1}%
+ \end{multicols}%
+ }{}%
+ \ifthenelse{\boolean{@multitoc@lot}\and\equal{#1}{lot}}{%
+ \begin{multicols}{\multicolumnlot}%
+ \@multitoc@starttoc{#1}%
+ \end{multicols}%
+ }{}%
+ \ifthenelse{\boolean{@multitoc@lof}\and\equal{#1}{lof}}{%
+ \begin{multicols}{\multicolumnlof}%
+ \@multitoc@starttoc{#1}%
+ \end{multicols}%
+ }{}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Code from Version~1.00\label{sec:sec:version100}}
+% ^^A
+% The first version of this package took a different approach to
+% solving the problem mentioned in section~\ref{sec:sec:problem} and
+% provided the commands \cs{protected@write@immediate} and
+% \cs{immediateaddtocontents}.
+% Their code has been retained here for compatibilty reasons.
+%
+% \DescribeMacro{\immediateaddtocontents}
+% \cs{immediateaddtocontents} is a version of \cs{addtocontents} which
+% does just what the name implies: Write the information \cs{immediate}.
+%
+% \begin{macro}{\protected@write@immediate}
+% This is a changed version of \cs{protected@write}
+% from~\cite{package:ltfiles}.
+% It takes three arguments: an output stream, some initialization
+% code, and some text to write.
+% It then writes this \emph{immediately}, with
+% appropriate handling of |\protect| and |\thepage|.
+% \changes{v2.00}{1998/09/06}{retained}
+% \begin{macrocode}
+\newcommand*{\protected@write@immediate}[3]{%
+ \begingroup
+ \let\thepage\relax
+ #2%
+ \let\protect\string
+ \edef\reserved@a{\immediate\write#1{#3}}%
+ \reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\immediateaddtocontents}
+% This is a changed version of \cs{addtocontents}
+% from~\cite{package:ltsect}.
+% The |\immediateaddtocontents{|\meta{table}|}{|\meta{text}|}| command
+% \emph{immediately} adds \meta{text} to the |.|\meta{table} file,
+% with no page number.
+% \changes{v2.00}{1998/09/06}{retained}
+% \begin{macrocode}
+\newcommand*{\immediateaddtocontents}[2]{%
+ \protected@write@immediate\@auxout
+ {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}%
+ {\string\@writefile{#1}{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% ^^A -----------------------------
+%
+% \Finale
+%
+% \PrintIndex\PrintChanges
+% ^^A Make sure that the index is not printed twice
+% ^^A (ltxdoc.cfg might have a second \PrintIndex command)
+% \let\PrintChanges\relax
+% \let\PrintIndex\relax
diff --git a/Master/texmf-dist/source/latex/ms/multitoc.ins b/Master/texmf-dist/source/latex/ms/multitoc.ins
new file mode 100644
index 00000000000..154b6ec1d5d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/multitoc.ins
@@ -0,0 +1,116 @@
+%% \ProvidesFile{multitoc.ins}
+%% [1999/06/08 v2.01 Installation script for MultiToc Package (MS)]
+%%
+%% Copyright (c) [1998..1999] by Martin Schr\"oder. All rights reserved.
+%%
+%% This program may be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License, either version 1.0 of this
+%% license, or (at your option) any later version.
+%% The latest version of this license is in
+%% CTAN:macros/latex/base/lppl.txt.
+%%
+%% Happy users are requested to send me a postcard. :-)
+%%
+%% checksum = "55078 128 458 3787"
+%%
+%% The checksum field above contains a CRC-16 checksum as the first
+%% value, followed by the equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and characters.
+%% This is produced by Robert Solovay's checksum utility.
+%%
+%% --------------- start of docstrip commands ------------------
+\input docstrip
+{\ifx\endbatchfile\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.4d or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* The multitoc distribution contains these files:}
+\Msg{*}
+\Msg{* \space\space multitoc.asc}
+\Msg{* \space\space multitoc.dtx}
+\Msg{* \space\space multitoc.dvi}
+\Msg{* \space\space multitoc.ins}
+\Msg{* \space\space multitoc.bug}
+\Msg{*}
+\Msg{* If you receive only some of these files from someone, complain!}
+\Msg{*}
+\Msg{***********************************************************}
+
+\preamble
+
+Copyright (c) [1998..1999] by Martin Schr"oder. All rights reserved.
+
+This file is part of the MultiToc package
+
+This program may be redistributed and/or modified under the terms
+of the LaTeX Project Public License, either version 1.0 of this
+license, or (at your option) any later version.
+The latest version of this license is in
+ CTAN:macros/latex/base/lppl.txt.
+
+Happy users are requested to send me a postcard. :-)
+
+The MultiToc package contains these files:
+
+ multitoc.asc
+ multitoc.dtx
+ multitoc.dvi
+ multitoc.ins
+ multitoc.bug
+
+Error Reports in case of UNCHANGED versions to
+
+ Martin Schr"oder
+ Cr"usemannallee 3
+ D-28213 Bremen
+ Martin.Schroeder@ACM.org
+
+\endpreamble
+\declarepreamble\driverpreamble
+
+This file is part of the MultiToc package
+-----------------------------------------
+
+Copyright (c) [1998..1999] by Martin Schr"oder. All rights reserved.
+
+To produce the documentation in the way you like you are allowed
+to change this driver file.
+
+\endpreamble
+
+\keepsilent
+\askforoverwritefalse
+\generate{%
+ \file{multitoc.sty}{\from{multitoc.dtx}{package}}
+ \usepreamble\driverpreamble
+ \file{multitoc.drv}{\from{multitoc.dtx}{driver}}
+ }
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* style files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space multitoc.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file multitoc.drv}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `multitoc.ins'.
diff --git a/Master/texmf-dist/source/latex/ms/prelim2e.drv b/Master/texmf-dist/source/latex/ms/prelim2e.drv
new file mode 100644
index 00000000000..983f77d0b1c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/prelim2e.drv
@@ -0,0 +1,75 @@
+%%
+%% This is file `prelim2e.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% prelim2e.dtx (with options: `driver')
+%%
+%% This file is part of the Prelim2e package
+%% -----------------------------------------
+%%
+%% Copyright (C) [1995..1999] Martin Schroder. All rights reserved.
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesFile{prelim2e.drv}
+ [1999/06/08 v1.22 Driver for prelim2e Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage[toc]{multitoc}
+\usepackage[scrtime]{prelim2e}
+\GetFileInfo{prelim2e.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\begin{document}
+ \DocInput{prelim2e.dtx}
+\end{document}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-package-file{
+%% author = {Martin Schr\"oder},
+%% version = "1.23",
+%% date = "17 February 2001",
+%% filename = "prelim2e.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% 28213 Bremen
+%% Germany},
+%% telephone = "+49-421-2239425",
+%% email = "martin@oneiros.de",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+%% docstring = "LaTeX package which allows the marking of
+%% preliminary versions of a document.
+%% }
+%% ===================================================================
+%% \fi
+\endinput
+%%
+%% End of file `prelim2e.drv'.
diff --git a/Master/texmf-dist/source/latex/ms/prelim2e.dtx b/Master/texmf-dist/source/latex/ms/prelim2e.dtx
new file mode 100644
index 00000000000..d595659bdba
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/prelim2e.dtx
@@ -0,0 +1,610 @@
+% \changes{v1.01}{1995/05/02}{Date added to \cs{NeedsTeXFormat}}
+% \iffalse
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+%<package>\ProvidesPackage{prelim2e}
+%<package> [2001/02/17 v1.23 prelim2e Package (MS)]
+%
+%<*driver>
+\ProvidesFile{prelim2e.drv}
+ [1999/06/08 v1.22 Driver for prelim2e Package (MS)]
+\documentclass{ltxdoc}
+\usepackage{url}
+\usepackage[toc]{multitoc}
+\usepackage[scrtime]{prelim2e}
+\GetFileInfo{prelim2e.sty}
+\setcounter{IndexColumns}{2}
+\EnableCrossrefs
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\begin{document}
+ \DocInput{prelim2e.dtx}
+\end{document}
+%</driver>
+%
+% Copyright (C) [1995..2001] by Martin Schr\"oder. All rights reserved.
+%
+% This program may be redistributed and/or modified under the terms
+% of the LaTeX Project Public License, either version 1.0 of this
+% license, or (at your option) any later version.
+% The latest version of this license is in
+% CTAN:macros/latex/base/lppl.txt.
+%
+% Happy users are requested to send me a postcard. :-)
+%
+% For error reports in case of UNCHANGED versions see prelim2e.ins
+%
+% \fi
+%
+% \CheckSum{125}
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-package-file{
+%% author = {Martin Schr\"oder},
+%% version = "1.23",
+%% date = "17 February 2001",
+%% filename = "prelim2e.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% 28213 Bremen
+%% Germany},
+%% telephone = "+49-421-2239425",
+%% email = "martin@oneiros.de",
+%% pgp-Key = "2048 bit / KeyID 292814E5",
+%% pgp-fingerprint = "7E86 6EC8 97FA 2995 82C3 FEA5 2719 090E",
+% checksum = "63323 610 2225 20370",
+% codetable = "ISO/ASCII",
+% keywords = "LaTeX2e, preliminary versions, versions",
+% dependences = "everyshi, scrtime",
+% supported = "yes",
+%% docstring = "LaTeX package which allows the marking of
+%% preliminary versions of a document.
+%
+% The checksum field above contains a CRC-16
+% checksum as the first value, followed by
+% the equivalent of the standard UNIX wc
+% (word count) utility output of lines,
+% words, and characters. This is produced
+% by Robert Solovay's checksum utility."
+%% }
+%% ===================================================================
+%% \fi
+%
+% \renewcommand{\PrelimWords}{^^A
+% \package{prelim2e} package --
+% Version \fileversion{} --
+% Documentation \LaTeX{}ed^^A
+% }
+%
+% \changes{v1.00}{1995/01/26}{New}
+% \changes{v1.21}{1998/08/09}{Documentation improved}
+% \changes{v1.22}{1999/06/08}{Moved to LPPL}
+%
+% \newcommand*{\option}[1]{\textnormal{\sffamily#1}}
+% \newcommand*{\package}[1]{\textnormal{\sffamily#1}}
+% \newcommand*{\NEWfeature}[1]{%
+% \hskip 1sp \marginpar{\small\sffamily\raggedright
+% New feature\\#1}}
+% \newcommand*{\NEWdescription}[1]{%
+% \hskip 1sp \marginpar{\small\sffamily\raggedright
+% New description\\#1}}
+%
+% \pagestyle{headings}
+%
+%
+% ^^A -----------------------------
+%
+% \title{\unskip
+% The \package{prelim2e} package^^A
+% \thanks{^^A
+% The version number of this file is \fileversion,
+% last revised \filedate.}^^A
+% }
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Cr\"usemannallee 3\\
+% \normalsize 28213 Bremen\\
+% \normalsize Germany\\
+% \normalsize martin@oneiros.de\\
+% \scriptsize \texttt{PGP-Key: 2048 bit / KeyID 292814E5}\\[-0.5em]
+% \scriptsize \texttt{7E86 6EC8 97FA 2995~~82C3 FEA5 2719 090E}}
+% \date{\filedate}
+% \maketitle
+%
+% ^^A -----------------------------
+%
+%
+% \begin{abstract}
+% This package allows the marking of (preliminary) versions of a
+% document on the output.
+% \end{abstract}
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+% ^^A -----------------------------
+%
+% \section{Introduction}
+% ^^A
+% This package allows the marking of (preliminary) versions of a
+% document.
+% This is done using the command \cs{PrelimText}, whose expansion
+% is added \emph{below the footer} of every page of a document (look
+% at the bottom of this page for an example).
+%
+% ^^A -----------------------------
+%
+% \section{Usage}
+% ^^A
+% Simply using this package via
+% \mbox{\cs{usepackage\{}\package{prelim2e}\texttt{\}}} produces a
+% text in the form of ``Preliminary version -- \today''.
+%
+% \DescribeMacro{\PrelimText}
+% \DescribeMacro{\PrelimWords}
+% The text is produced by the commands \cs{PrelimText} and
+% \cs{PrelimWords}, which can be changed via \cs{renewcommand} or by
+% using options at the \cs{usepackage} command (see
+% section~\ref{sec:options}).
+%
+% The footer for this documentation was produced by changing
+% \cs{PrelimWords} to
+% \begin{quote}
+%\begin{verbatim}
+%\renewcommand{\PrelimWords}{%
+% \textsf{prelim2e} package --
+% Version \fileversion{} --
+% Documentation \LaTeX{}ed%
+% }
+%\end{verbatim}
+% \end{quote}
+%
+%
+% ^^A -----------------------------
+%
+% \section{Options}
+% \label{sec:options}
+% ^^A
+% The package has the following options:
+% \nopagebreak
+% \begin{description}
+% \item[\normalfont\option{danish}]
+% \changes{v1.23}{2001/02/17}{\option{danish} option added}
+% \NEWfeature{2001/02/17}
+% This sets the text to ``Forel\o{}big version''.
+% It does not use the \package{babel} package.
+% \item[\normalfont\option{draft}]
+% If this option is used a text appears below the normal
+% pagebody.
+% It is the default.
+% \item[\normalfont\option{final}]
+% If this option is used \package{prelim2e} produces no text.
+% \item[\normalfont\option{english}]
+% This sets the text to ``Preliminary version''.
+% It is the default.
+% \item[\normalfont\option{french}]
+% \changes{v1.20}{1997/05/12}{\option{french} option added}
+% \NEWfeature{1997/05/12}
+% This sets the text to ``Version pr\'eliminaire''.
+% It does not use the \package{french} or \package{babel} package.
+% \item[\normalfont\option{german}]
+% This sets the text to ``Vorl\"aufige Version''.
+% It does not use the \package{german} or \package{babel} package.
+% \item[\normalfont\option{italian}]
+% \changes{v1.23}{2001/02/17}{\option{italian} option added}
+% \NEWfeature{2001/02/17}
+% This sets the text to ``Versione preliminare''.
+% It does not use the \package{babel} package.
+% \item[\normalfont\option{time}]
+% \changes{v1.10}{1996/01/01}{\option{time} option added}
+% \NEWdescription{1997/05/12}
+% This adds the time at the beginning of the current \LaTeX{}
+% to the text.
+% The time is produced using the \cs{thistime} command, which may
+% be provided by the \package{scrtime} package\cite{package:scrtime}.
+% If you don't use the \package{scrtime} package (e.\,g. by
+% specifying the \option{scrtime} option), you must
+% provide it yourself or by some other package.
+% \item[\normalfont\option{scrtime}]
+% \changes{v1.20}{1997/05/12}{\option{scrtime} option added}
+% \NEWfeature{1997/05/12}
+% This loads the \package{scrtime} package\cite{package:scrtime}
+% (part of the KOMA-Script bundle), which provides the
+% \cs{thistime} command used by the \option{time} option.
+% The \option{scrtime} option implies the \option{time} option.
+% \end{description}
+% All other options are passed to the \package{scrtime} package if the
+% \option{scrtime} option is selected.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Required packages}
+% ^^A
+% The package requires the following packages:
+% \begin{description}
+% \item[\normalfont\package{everyshi}\cite{package:everyshi}]
+% It is used to implement the setting of the text below the normal
+% pagebody.
+% \item[\normalfont\package{scrtime}\cite{package:scrtime}]
+% \changes{v1.10}{1996/01/01}{\package{scrtime} instead of
+% \package{printtim}}
+% \NEWdescription{1997/05/12}
+% It is used to typeset the current time and is needed if the
+% \option{scrtime} option is selected.
+% \end{description}
+%
+%
+% ^^A -----------------------------
+%
+% \section{Putting more things at the bottom}
+% ^^A
+% Another package you might like to use with \package{prelim2e} is
+% \package{vrsion}\cite{package:vrsion}.
+% This allows the definition and maintenance of a version number like
+% 3.14159 \emph{within \LaTeX}, which can be put at the bottom of every
+% page using \package{prelime2e}.
+%
+%
+% ^^A -----------------------------
+%
+% \StopEventually{^^A
+%
+%
+% ^^A -----------------------------
+%
+% \section{Acknowledgements}
+% ^^A
+% The idea of this package is based on
+% \texttt{prelim.sty}\cite{package:prelim} for \LaTeX2.09 by Robert
+% Tolksdorf (\texttt{tolk@cs.tu-berlin.de}).
+% It provides nearly the same functionality as \package{prelim2e}, but
+% in a very dirty way: it uses a modified output routine and does not
+% work with \LaTeXe.
+%
+% The time functionality now uses the \package{scrtime} package by
+% Markus Kohm (\texttt{markus.kohm@gmx.de}).
+%
+% Rowland Bartlett (\texttt{R.BARTLETT@liverpool-john-moores.ac.uk})
+% brought forth the idea of separating the \option{time} option and the
+% \package{scrtime} package;
+% Daniel Courjon (\texttt{dcourjon@utinam.univ-fcomte.fr}) provided
+% the text for the \option{french} option,
+% Arne J\o{}rgensen (\texttt{arne.jorgensen@tug.dk})
+% provided the text for the \option{danish} option,
+% and Davide Giovanni Maria Salvetti (\texttt{salve@debian.org})
+% and Riccardo Murri (\texttt{murri@phc.unipi.it})
+% both provided the text for the \option{italian} option,
+%
+% As usual Rebecca Stiels improved the quality of this documentation.
+%
+%
+% ^^A -----------------------------
+%
+% \begin{thebibliography}{1}
+% \raggedright
+% \bibitem{package:prelim}
+% Mats Dahlgren.
+% \newblock \package{vrsion} -- a \LaTeX{} Macro for version
+% Numbering of Files.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/vrsion/vrsion.dtx}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:scrtime}
+% Markus Kohm.
+% \newblock The \package{KOMA}-timedate-bundle.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/koma-script/scrtime.dtx}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:everyshi}
+% Martin Schr\"oder.
+% \newblock The \package{everyshi} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/everyshi.dtx}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:vrsion}
+% Robert Tolksdorf.
+% \newblock Kennzeichnung von Vorversionen eines Dokuments.
+% \newblock \url{CTAN: tex-archive/macros/latex209/contrib/prelim/}.
+% \newblock \LaTeX2.09 package.
+% \end{thebibliography}
+%
+% }
+%
+%
+% ^^A -----------------------------
+%
+% \section{The implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Initial Code}
+% ^^A
+% \begin{macro}{\if@prelim@draft}
+% \cs{if@prelim@draft} is used to flag the use of the \option{draft}
+% or \option{final} option.
+% \begin{macrocode}
+\newif\if@prelim@draft
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@prelim@time}
+% \changes{v1.10}{1996/01/01}{new}
+% \cs{if@prelim@time} is used to flag the use of the \option{time}
+% option.
+% \begin{macrocode}
+\newif\if@prelim@time
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@prelim@scrtime}
+% \changes{v1.20}{1997/05/12}{new}
+% \cs{if@prelim@scrtime} is used to flag the use of the \option{scrtime}
+% option.
+% \begin{macrocode}
+\newif\if@prelim@scrtime
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PrelimWords}
+% \cs{PrelimWords} holds the language-dependend text used in
+% \cs{PrelimText}
+% \begin{macrocode}
+\newcommand{\PrelimWords}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Declaration of options}
+%
+% ^^A -----------------------------
+%
+%
+% \subsubsection{\option{draft} option}
+% ^^A
+% The \option{draft} and \option{final} option control the behavior
+% of \package{prelim2e}: Only if \option{final} is used in
+% \cs{documentclass} or
+% \mbox{\cs{usepackage\{}\package{prelim2e}\texttt{\}}} text is
+% produced.
+% \begin{macrocode}
+\DeclareOption{draft}{\@prelim@drafttrue}
+\DeclareOption{final}{\@prelim@draftfalse}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{Language options}
+% ^^A
+% \option{danish}, \option{english}, \option{french}, \option{german} and
+% \option{italian} control the content of \cs{PrelimWords}.
+% \changes{v1.20}{1997/05/12}{\option{french} option added}
+% \changes{v1.23}{2001/02/17}{\option{danish} option added}
+% \changes{v1.23}{2001/02/17}{\option{italian} option added}
+% \begin{macrocode}
+\DeclareOption{danish}{%
+ \renewcommand{\PrelimWords}{Forel\o{}big version}}
+\DeclareOption{english}{%
+ \renewcommand{\PrelimWords}{Preliminary version}}
+\DeclareOption{french}{%
+ \renewcommand{\PrelimWords}{Version pr\'eliminaire}}
+\DeclareOption{german}{%
+ \renewcommand{\PrelimWords}{Vorl\"aufige Version}}
+\DeclareOption{italian}{%
+ \renewcommand{\PrelimWords}{Versione preliminare}}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{Time options}
+% ^^A
+% \changes{v1.10}{1996/01/01}{\option{time} option added}
+% \option{time} controls the output of the current time at
+% \cs{PrelimWords}.
+% \begin{macrocode}
+\DeclareOption{time}{\@prelim@timetrue}
+% \end{macrocode}
+%
+% \changes{v1.20}{1997/05/12}{\option{scrtime} option added}
+% \option{scrtime} controls the loading of the \package{scrtime}
+% package.
+% It implies \option{time}.
+% \begin{macrocode}
+\DeclareOption{scrtime}{\@prelim@scrtimetrue\@prelim@timetrue}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{Other options}
+% ^^A
+% \changes{v1.20}{1997/05/12}{check \cs{if@prelim@scrtime}}
+% \changes{v1.10}{1996/01/01}{\cs{DeclareOption*} added}
+% All unused options are passed to the \package{scrtime} package if
+% the \option{scrtime} option is selected.
+% \begin{macrocode}
+\DeclareOption*{%
+ \if@prelim@scrtime
+ \PassOptionsToPackage{\CurrentOption}{scrtime}%
+ \fi
+ }
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Executing options}
+% ^^A
+% The default options are \option{draft} and \option{english}.
+% \begin{macrocode}
+\ExecuteOptions{draft,english}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Loading packages}
+% ^^A
+% \changes{v1.20}{1997/05/12}{check \cs{if@prelim@scrtime}}
+% We need the \package{everyshi} package---and \package{scrtime}, if the
+% \option{scrtime} option is specified.
+% \begin{macrocode}
+\RequirePackage{everyshi}[1995/01/25]
+\if@prelim@scrtime
+ \RequirePackage{scrtime}
+\fi
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Producing the text}
+% ^^A
+% \begin{macro}{\PrelimText}
+% \changes{v1.10}{1996/01/01}{\cs{thistime} instead of \cs{PrintTime}}
+% \cs{PrelimText} produces the text which is put below the page.
+% It can be changed via \cs{renewcommand}.
+% The style of the text is controlled by \cs{PrelimTextStyle}.
+% We first have to reset the style and size, otherwise the settings in
+% effect at the point of text where \cs{ouput} is called would be used.
+% \begin{macrocode}
+\newcommand{\PrelimText}{%
+ \textnormal{%
+ \footnotesize%
+ \PrelimTextStyle%
+ \PrelimWords{} -- \today
+ \if@prelim@time
+ \ -- \thistime
+ \fi
+ }%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PrelimTextStyle}
+% \cs{PrelimTextStyle} controls the style of the text produced by
+% \cs{PrelimText}.
+% It's default is empty.
+% \begin{macrocode}
+\newcommand{\PrelimTextStyle}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Putting the text below the page}
+% ^^A
+% We put the text below the page via \cs{EveryShipout} provided by
+% the \package{everyshi} package.
+% This is done by \cs{@Prelim@EveryShipout}.
+%
+% \begin{macro}{\@Prelim@EveryShipout}
+% \changes{v1.10}{1996/01/01}{\cs{hbox to}$\rightarrow$\cs{hb@xt@}}
+% \cs{@Prelim@EveryShipout} puts the text produced by \cs{PrelimText}
+% below the page.
+% To do this we modify \cs{box255}: We append a \cs{vbox} with height
+% and depth of 0pt and the width of \cs{box255} which contains a
+% \cs{hbox} with the width of \cs{box255} in which \cs{PrelimText}
+% is centered.
+% \begin{macrocode}
+\newcommand{\@Prelim@EveryShipout}{
+ \bgroup
+% \end{macrocode}
+% First we save the dimensions of \cs{box255}: height, width and depth;
+% and calculate the total height of \cs{box255}.
+% \begin{macrocode}
+ \dimen\z@=\wd\@cclv
+ \dimen\@ne=\ht\@cclv
+ \dimen\tw@=\dp\@cclv
+ \dimen\thr@@=\dimen1
+ \advance\dimen\thr@@ by \dimen\tw@
+% \end{macrocode}
+% Then we set \cs{box255}:
+% A \cs{vbox} to the total height of \cs{box255}.
+% In this a \cs{hbox} to the width of \cs{box255} is included, in which
+% \cs{box255} is set.
+% \begin{macrocode}
+ \global\setbox\@cclv\vbox to \dimen\thr@@{%
+ \hb@xt@\dimen\z@{%
+ \box\@cclv%
+ \hss%
+ }%
+% \end{macrocode}
+% To this we append the text produced by \cs{PrelimText}.
+% It is put in a \cs{vbox} to 0pt in which a \cs{hbox} to the width of
+% \cs{box255} is included, in which \cs{PrelimText} is set.
+% We have to reset \cs{protect} because it is set to \cs{noexpand} by
+% the output routine.
+% \begin{macrocode}
+ \vbox to \z@{%
+ \hb@xt@\dimen\z@{%
+ \let\protect\relax
+ \hfill\PrelimText\hfill%
+ }%
+ \vss%
+ }%
+ \vss%
+ }%
+% \end{macrocode}
+% Finally we set the dimensions of \cs{box255} to the values they had
+% before \cs{@Prelim@EveryShipout}.
+% \begin{macrocode}
+ \wd\@cclv=\dimen\z@
+ \ht\@cclv=\dimen\@ne
+ \dp\@cclv=\dimen\tw@
+ \egroup
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Tieing \package{prelim2e} into the system}
+% ^^A
+% \cs{@Prelim@EveryShipout} is tied into the system via
+% \cs{EveryShipout}.
+% But only if the \option{draft} option is used.
+% \begin{macrocode}
+\if@prelim@draft
+ \EveryShipout{\@Prelim@EveryShipout}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \Finale
diff --git a/Master/texmf-dist/source/latex/ms/prelim2e.ins b/Master/texmf-dist/source/latex/ms/prelim2e.ins
new file mode 100644
index 00000000000..eb6e8b9223c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/prelim2e.ins
@@ -0,0 +1,119 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{prelim2e.ins}
+ [1998/06/08 v1.23 Installation script for prelim2e Package (MS)]
+%%
+%% Copyright (C) [1995..2001] by Martin Schroeder. All rights reserved.
+%%
+%% This program may be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License, either version 1.0 of this
+%% license, or (at your option) any later version.
+%% The latest version of this license is in
+%% CTAN:macros/latex/base/lppl.txt.
+%%
+%% Happy users are requested to send me a postcard. :-)
+%%
+%% checksum = "32456 119 407 3613"
+%%
+%% The checksum field above contains a CRC-16 checksum as the first
+%% value, followed by the equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and characters.
+%% This is produced by Robert Solovay's checksum utility.
+%%
+%% --------------- start of docstrip commands ------------------
+\input docstrip.tex
+{\ifx\endbatchfile\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.4d or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* The prelim2e distribution contains these files:}
+\Msg{*}
+\Msg{* \space\space prelim2e.asc}
+\Msg{* \space\space prelim2e.dtx}
+\Msg{* \space\space prelim2e.dvi}
+\Msg{* \space\space prelim2e.ins}
+\Msg{* \space\space prelim2e.bug}
+\Msg{*}
+\Msg{* If you receive only some of these files from someone, complain!}
+\Msg{*}
+\Msg{***********************************************************}
+
+\preamble
+
+Copyright (C) [1995..2001] by Martin Schroeder. All rights reserved.
+
+This file is part of the Prelim2e package
+
+This program may be redistributed and/or modified under the terms
+of the LaTeX Project Public License, either version 1.0 of this
+license, or (at your option) any later version.
+The latest version of this license is in
+ CTAN:macros/latex/base/lppl.txt.
+
+Happy users are requested to send me a postcard. :-)
+
+The Prelim2e package contains these files:
+
+ prelim2e.asc
+ prelim2e.dtx
+ prelim2e.dvi
+ prelim2e.ins
+ prelim2e.bug
+
+Error Reports in case of UNCHANGED versions to
+
+ Martin Schr"oder
+ Cr"usemannallee 3
+ 28213 Bremen
+ Germany
+ martin@oneiros.de
+
+\endpreamble
+\declarepreamble\driverpreamble
+
+This file is part of the Prelim2e package
+-----------------------------------------
+
+Copyright (C) [1995..1999] Martin Schroder. All rights reserved.
+
+To produce the documentation in the way you like you are allowed
+to change this driver file.
+
+\endpreamble
+
+
+% Don't display progress
+\keepsilent
+\askforoverwritefalse
+\generate{\file{prelim2e.sty}{\from{prelim2e.dtx}{package}}
+ \usepreamble\driverpreamble
+ \file{prelim2e.drv}{\from{prelim2e.dtx}{driver}}
+ }
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space prelim2e.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file prelim2e.drv}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `prelim2e.ins'.
diff --git a/Master/texmf-dist/source/latex/ms/ragged2e.drv b/Master/texmf-dist/source/latex/ms/ragged2e.drv
new file mode 100644
index 00000000000..efea813b431
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/ragged2e.drv
@@ -0,0 +1,100 @@
+%%
+%% This is file `ragged2e.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ragged2e.dtx (with options: `driver')
+%%
+%% Copyright (C) [1996..2003] Martin Schroeder. All rights reserved.
+%%
+%% This file is part of the Ragged2e package
+%% -----------------------------------------
+%%
+%% To produce the documentation in the way you like you are allowed
+%% to change this driver file.
+%%
+\NeedsTeXFormat{LaTeX2e}[1996/10/24]
+\ProvidesFile{ragged2e.drv}
+ [2003/03/25 v1.06 Driver for ragged2e Package (MS)]
+\documentclass{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage{url} % in latex/contrib/other/misc
+\usepackage{array}
+\usepackage{tabularx}
+\IfFileExists{booktabs.sty}{%
+ \usepackage{booktabs}%
+ }{%
+ \PackageWarning{ragged2e}%
+ {booktabs.sty is missing.\MessageBreak
+ I'm emulating the needed commands, but you should\MessageBreak
+ install it for better results}%
+ \let\toprule\hline
+ \let\midrule\hline
+ \let\bottomrule\hline
+ }
+\usepackage[document]{ragged2e}[2003/01/26]
+\setlength{\RaggedRightRightskip}{0pt plus 4em}%
+\GetFileInfo{ragged2e.sty}
+\EnableCrossrefs
+\RecordChanges % Gather update information
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\addtolength{\oddsidemargin}{1cm}
+\addtolength{\textwidth}{-1cm}
+\begin{document}
+ \DocInput{ragged2e.dtx}
+ \PrintIndex\PrintChanges
+ % Make sure that the index is not printed twice
+ % (ltxdoc.cfg might have a second \PrintIndex command)
+ \let\PrintChanges\relax
+ \let\PrintIndex\relax
+\end{document}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "2.04",
+%% date = "25 March 2003",
+%% filename = "ragged2e.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% 28213 Bremen
+%% Germany}
+%% telephone = "+49-421-2239425",
+%% email = "martin@oneiros.de",
+%% docstring = "LaTeX package which defines new commands
+%% \Centering, \RaggedLeft, \RaggedRight and
+%% \justifying and new environments Center,
+%% FlushLeft, FlushRight and justify, which
+%% set ragged text and are easily configurable
+%% to allow hyphenation.
+%% Uses the everysel package.
+%% "
+%% }
+%% ===================================================================
+%% \fi
+\endinput
+%%
+%% End of file `ragged2e.drv'.
diff --git a/Master/texmf-dist/source/latex/ms/ragged2e.dtx b/Master/texmf-dist/source/latex/ms/ragged2e.dtx
new file mode 100644
index 00000000000..48dab7821c0
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/ragged2e.dtx
@@ -0,0 +1,1332 @@
+% \iffalse
+\NeedsTeXFormat{LaTeX2e}[1996/10/24]
+%<package>\ProvidesPackage{ragged2e}
+%<package> [2003/03/25 v2.04 ragged2e Package (MS)]
+%
+%<*driver>
+\ProvidesFile{ragged2e.drv}
+ [2003/03/25 v1.06 Driver for ragged2e Package (MS)]
+\documentclass{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage{url} % in latex/contrib/other/misc
+\usepackage{array}
+\usepackage{tabularx}
+% booktabs.sty is in latex/contrib/supported/booktab
+\IfFileExists{booktabs.sty}{%
+ \usepackage{booktabs}%
+ }{%
+ \PackageWarning{ragged2e}%
+ {booktabs.sty is missing.\MessageBreak
+ I'm emulating the needed commands, but you should\MessageBreak
+ install it for better results}%
+ \let\toprule\hline
+ \let\midrule\hline
+ \let\bottomrule\hline
+ }
+\usepackage[document]{ragged2e}[2003/01/26]
+\setlength{\RaggedRightRightskip}{0pt plus 4em}%
+\GetFileInfo{ragged2e.sty}
+\EnableCrossrefs
+\RecordChanges % Gather update information
+%%\DisableCrossrefs% Say \DisableCrossrefs if index is ready
+\CodelineIndex % Index code by line number
+\OnlyDescription % comment out for implementation details
+%%\OldMakeIndex % use if your MakeIndex is pre-v2.9
+\setcounter{IndexColumns}{2}
+\setlength{\IndexMin}{40ex}
+\setlength{\columnseprule}{.4pt}
+\addtolength{\oddsidemargin}{1cm}
+\addtolength{\textwidth}{-1cm}
+\begin{document}
+ \DocInput{ragged2e.dtx}
+ \PrintIndex\PrintChanges
+ % Make sure that the index is not printed twice
+ % (ltxdoc.cfg might have a second \PrintIndex command)
+ \let\PrintChanges\relax
+ \let\PrintIndex\relax
+\end{document}
+%</driver>
+%
+% Copyright 1996, 1998, 1999, 2003 by Martin Schr"oder. All rights reserved.
+%
+% This program may be redistributed and/or modified under the terms
+% of the LaTeX Project Public License, either version 1.2 of this
+% license, or (at your option) any later version.
+% The latest version of this license is in
+% CTAN:macros/latex/base/lppl.txt.
+%
+% For error reports in case of UNCHANGED versions see ragged2e.ins
+%
+% \fi
+%
+% \CheckSum{466}
+% ^^A$Id: ragged2e.dtx,v 1.22 2003/03/25 20:10:06 ms Exp $
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% \iffalse meta-comment
+%% ===================================================================
+%% @LaTeX-style-file{
+%% author = {Martin Schr\"oder},
+%% version = "2.04",
+%% date = "25 March 2003",
+%% filename = "ragged2e.sty",
+%% address = {Martin Schr\"oder
+%% Cr\"usemannallee 3
+%% 28213 Bremen
+%% Germany}
+%% telephone = "+49-421-2239425",
+%% email = "martin@oneiros.de",
+% codetable = "ISO/ASCII",
+% keywords = "raggedright",
+% dependences = "everysel",
+% supported = "yes",
+%% docstring = "LaTeX package which defines new commands
+%% \Centering, \RaggedLeft, \RaggedRight and
+%% \justifying and new environments Center,
+%% FlushLeft, FlushRight and justify, which
+%% set ragged text and are easily configurable
+%% to allow hyphenation.
+%% Uses the everysel package.
+%% "
+%% }
+%% ===================================================================
+%% \fi
+%
+% \pagestyle{headings}
+%
+% \newcommand*{\file}[1] {\texttt{#1}}
+% \newcommand{\plain} {\texttt{plain}}
+% \newcommand{\bs} {\texttt{\symbol{'134}}}
+% \newcommand*{\env}[1] {\textsf{#1}}
+% \newcommand*{\option}[1] {\textsf{#1}}
+% \newcommand*{\package}[1] {\textsf{#1}}
+% \newcommand*{\NEWfeature}[1]{%
+% \hskip 1sp \marginpar{\small\sffamily\raggedright
+% New feature\\#1}}
+% \newcommand*{\NEWdescription}[1]{%
+% \hskip 1sp \marginpar{\small\sffamily\raggedright
+% New description\\#1}}
+%
+% \changes{v1.00}{1996/05/30}{New from \package{raggedright} V 1.21}
+% \changes{v1.01}{1998/08/09}{Documentation improved}
+% \changes{v1.02}{1999/06/08}{Moved to LPPL}
+% \changes{v2.00}{2003/01/04}{Incorporated \package{raggedr}}
+%
+% \hyphenation{flush-left rag-ged rag-ged-right}
+%
+% \newenvironment{Quote}{^^A
+% \begin{quote}^^A
+% \small^^A
+% \fussy^^A
+% }{^^A
+% \end{quote}^^A
+% }
+%
+% \renewcommand{\thefootnote}{\ensuremath{\fnsymbol{footnote}}}
+%
+% ^^A -----------------------------
+%
+% \title{\unskip
+% The \textsf{ragged2e}-package^^A
+% \thanks{^^A
+% The version number of this file is \fileversion,
+% last revised \filedate.}^^A
+% }
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Cr\"usemannallee 3\\
+% \normalsize 28213 Bremen\\
+% \normalsize Germany\\
+% \normalsize martin@oneiros.de}
+% \date{\filedate}
+% \maketitle
+%
+% ^^A -----------------------------
+%
+% \begin{abstract}
+% This package provides new commands and environments for setting
+% ragged text which are easy to configure to allow hyphenation.
+% An earlier attempt to do this was the style
+% \package{raggedright}\cite{raggedri} by the same author.
+% \end{abstract}
+%
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+% ^^A -----------------------------
+%
+% \begin{multicols}{2}
+% \fussy
+%
+% \setlength{\parskip}{^^A
+% .3\baselineskip plus.05\baselineskip minus.05\baselineskip}
+%
+% \section{The problem}
+% ^^A
+% \LaTeX{} has three commands (\cs{centering}, \cs{raggedleft}, and
+% \cs{raggedright}) and three environments (\env{center},
+% \env{flushleft}, and \env{flushright}) to typeset ragged text.
+% The environments are based upon the commands (\env{center} uses
+% \cs{centering}, \env{flushleft} \cs{raggedright}, and
+% \env{flushright} \cs{raggedleft}).
+%
+% These commands have, however, one serious flaw: they render
+% hyphenation almost impossible, and thus the text looks \emph{too}
+% ragged, as the following example shows:
+% \setcounter{unbalance}{2}
+% \begin{multicols}{2}
+% \small\fussy
+% \raggedright
+% \cs{raggedright}:\\
+% ``The \LaTeX{} document preparation system is a special version
+% of Donald Knuth's \TeX{} program.
+% \TeX{} is a sophisticated program designed to produce
+% high-quality typesetting, especially for mathematical text.''
+% \cite[p\@. xiii]{lamport86}
+%
+% \newpage
+% \RaggedRight
+% \cs{RaggedRight}:\\
+% ``The \LaTeX{} document preparation system is a special version
+% of Donald Knuth's \TeX{} program.
+% \TeX{} is a sophisticated program designed to produce
+% high-quality typesetting, especially for mathematical text.''
+% \cite[p\@. xiii]{lamport86}
+% \end{multicols}
+%
+% \setcounter{unbalance}{0}
+%
+% ^^A -----------------------------
+%
+% \section{Old ``solutions''}
+%
+% ^^A -----------------------------
+%
+% \subsection{\LaTeX}
+% ^^A
+% \LaTeX{} defines e.\,g.\ \cs{raggedright} as follows:
+% \begin{macrocode}
+%<*latex>
+\def\raggedright{%
+ \let\\=\@centercr
+ \@rightskip\@flushglue
+ \rightskip\@rightskip
+ \leftskip\z@
+ \parindent\z@}
+% \end{macrocode}
+% Initially, \cs{@flushglue} is defined as
+% \begin{macrocode}
+\@flushglue = 0pt plus 1fil
+%</latex>
+% \end{macrocode}
+%
+% Thus the \cs{rightskip} is set to |0pt plus 1fil|.
+% Knuth, however warns \cite[p\@. 101]{KnuthTeXa}:
+% \begin{Quote}
+% ``For example, a person can set \cs{rightskip=0pt plus 1fil},
+% and every line will be filled with space to the right.
+% But this isn't a particularly good way to make ragged-right
+% margins, because the infinte stretchability will assign zero
+% badness to lines that are very short.
+% To do a decent job of ragged-right setting, the trick is to set
+% \cs{rightskip} so that it will stretch enough to make line breaks
+% possible, yet not too much, because short lines should be
+% considered bad.
+% Furthermore the spaces between words should be fixed so that
+% they do not stretch or shrink.''
+% \end{Quote}
+%
+% ^^A -----------------------------
+%
+% \subsection{\plain{}}
+% ^^A
+% \plain{} \TeX{} defines an special version of
+% \cs{raggedright}, which operates the way Knuth describes it;
+% but which can not be used whith \LaTeX, because \LaTeX{} redefines
+% \cs{raggedright}.
+% \begin{macrocode}
+%<*plain>
+\def\raggedright{%
+ \rightskip\z@ plus2em
+ \spaceskip.3333em
+ \xspaceskip.5em\relax}
+% \end{macrocode}
+%
+% \plain{} provides also a version of \cs{raggedright} for typewriter
+% fonts
+% \begin{macrocode}
+\def\ttraggedright{%
+ \tt
+ \rightskip\z@ plus2em\relax}
+%</plain>
+% \end{macrocode}
+%
+% \end{multicols}
+% \setlength{\parskip}{^^A
+% .3\baselineskip plus.05\baselineskip minus.05\baselineskip}
+%
+% ^^A -----------------------------
+%
+% \section{Our solution}
+%
+% Since the \plain{} solution can not be used with \LaTeX, we have to
+% redefine it and make it possible to configure it for personal
+% preferences.
+%
+% ^^A -----------------------------
+%
+% \subsection{The macros}
+% ^^A
+% \DescribeMacro{\Centering}
+% \DescribeMacro{\RaggedLeft}
+% \DescribeMacro{\RaggedRight}
+% \cs{Centering}, \cs{RaggedLeft}, and \cs{RaggedRight} can be used in
+% the same way as \cs{centering}, \cs{raggedleft}, and
+% \cs{raggedright}:
+% Just type the command, and after that the whole text will be set
+% centered, ragged-left or ragged-right.
+%
+% For example, we switched on \cs{RaggedRight} on the top of this
+% text, and consequently this text was set
+% ragged-right.\footnote{^^A
+% Actually we also set \cs{RaggedRightRightskip} higher than usual
+% (|0pt plus 4em|) because of all the long command names which
+% make linebreaking difficult.}
+%
+% \DescribeMacro{\justifying}
+% \NEWfeature{2003/01/04}%
+% \cs{justifying} switches back to justified text after ragged text
+% has been switched on.
+% \changes{v2.00}{2003/01/04}{New command \cs{justifying}}
+%
+% The new commands \cs{Centering}, \cs{RaggedLeft}, and
+% \cs{RaggedRight} are fully compatible with their counterparts in
+% \LaTeX, but implement the \plain{} solution and can be easily
+% configured using the following parameters:
+%
+% ^^A -----------------------------
+%
+% \subsection{The parameters}
+% ^^A
+% \changes{v2.00}{2003/01/25}{Removed \cs{RaggedSpaceskip} and
+% \cs{RaggedXSpaceskip}}%
+% \begin{tabularx}{\linewidth}{lX}\toprule
+% Command & Uses\tabularnewline \midrule
+% \cs{Centering} & \cs{CenteringLeftskip},
+% \cs{CenteringRightskip},
+% \cs{CenteringParfillskip},
+% \cs{CenteringParindent}
+% \tabularnewline
+% \cs{RaggedLeft} & \cs{RaggedLeftLeftskip},
+% \cs{RaggedLeftRightskip},
+% \cs{RaggedLeftParfillskip},
+% \cs{RaggedLeftParindent}
+% \tabularnewline
+% \cs{RaggedRight} & \cs{RaggedRightLeftskip},
+% \cs{RaggedRightRightskip},
+% \cs{RaggedRightParfillskip},
+% \cs{RaggedRightParindent}
+% \tabularnewline
+% \cs{justifying} & \cs{JustifyingParfillskip},
+% \cs{JustifyingParindent}
+% \tabularnewline
+% \bottomrule
+% \end{tabularx}
+%
+% All Parameters can be set with \cs{setlength}, e.\,g.\
+% \begin{Quote}
+% |\setlength{RaggedRightRightskip}{0pt plus 1em}|
+% \end{Quote}
+% sets \cs{RaggedRightRightskip} to |0pt plus 1em|.
+%
+% \DescribeMacro{\CenteringLeftskip}
+% \DescribeMacro{\RaggedLeftLeftskip}
+% \DescribeMacro{\RaggedRightLeftskip}
+% These are the \cs{leftskip}s inserted by \cs{Centering},
+% \cs{RaggedLeft}, and \cs{RaggedRight}.
+% \begin{Quote}
+% \setlength{\tabcolsep}{.25em}
+% \begin{tabularx}{\linewidth}{lX}
+% ``\cs{leftskip} & (glue at left of justified lines)''
+% \cite[p.~274]{KnuthTeXa}
+% \end{tabularx}
+% \end{Quote}
+% \cs{leftskip} must be set to a finite value, to make hyphenation
+% possible.
+% Setting it to infinite values like |0pt plus 1fil| makes
+% hyphenation almost impossible.
+%
+% \DescribeMacro{\CenteringRightskip}
+% \DescribeMacro{\RaggedLeftRightskip}
+% \DescribeMacro{\RaggedRightRightskip}
+% These are the \cs{rightskip}s inserted by \cs{Centering},
+% \cs{RaggedLeft}, and \cs{RaggedRight}.
+% \begin{Quote}
+% \setlength{\tabcolsep}{.25em}
+% \begin{tabularx}{\linewidth}{lX}
+% ``\cs{rightskip} & (glue at right of justified lines)''
+% \cite[p.~274]{KnuthTeXa}
+% \end{tabularx}
+% \end{Quote}
+% \cs{rightskip} must be set to a finite value, to make hyphenation
+% possible.
+% Setting it to infinite values like |0pt plus 1fil| makes
+% hyphenation almost impossible.
+%
+% \DescribeMacro{\CenteringParfillskip}
+% \DescribeMacro{\RaggedLeftParfillskip}
+% \DescribeMacro{\RaggedRightParfillskip}
+% \DescribeMacro{\JustifyingParfillskip}
+% These are the \cs{parfillskip}s inserted by \cs{Centering},
+% \cs{RaggedLeft}, \cs{RaggedRight}, and \cs{justifying}.
+% \begin{Quote}
+% \setlength{\tabcolsep}{.25em}
+% \begin{tabularx}{\linewidth}{lX}
+% ``\cs{parfillskip} & (additional \cs{rightskip} at end of paragraphs)''
+% \cite[p.~274]{KnuthTeXa}
+% \end{tabularx}
+% \end{Quote}
+% The normal setting for \cs{parfillskip} is |0pt plus 1fil|; the
+% parameters are provided for testing combinations of
+% \cs{}\{|left|$\mid$|right|\}|skip| and \cs{parfillskip}.
+%
+% \DescribeMacro{\CenteringParindent}
+% \DescribeMacro{\RaggedLeftParindent}
+% \DescribeMacro{\RaggedRightParindent}
+% \DescribeMacro{\JustifyingParindent}
+% These are the \cs{parindent}s used by \cs{Centering},
+% \cs{RaggedLeft}, \cs{RaggedRight}, and \cs{justifying}.
+% \begin{Quote}
+% \setlength{\tabcolsep}{.25em}
+% \begin{tabularx}{\linewidth}{lX}
+% ``\cs{parindent} & (width of \cs{indent})''
+% \cite[p.~274]{KnuthTeXa}
+% \end{tabularx}
+% \end{Quote}
+% \cs{parindent} is the indent of the first line of a paragraph and
+% should be set to |0pt|, since indented lines in ragged text
+% do not look good.
+%
+% The parameters have the following initial setting:
+% \begin{center}
+% \begin{tabularx}{\linewidth}{l>{\ttfamily}X>{\ttfamily}X}\toprule
+% Parameter & \normalfont\LaTeX{} setting
+% & \normalfont\package{ragged2e} setting\\
+% \midrule
+% \cs{CenteringLeftskip} & 0pt plus 1fil
+% & 0pt plus 2em\\
+% \cs{RaggedLeftLeftskip} & 0pt plus 1fil
+% & 0pt plus 2em\\
+% \cs{RaggedRightLeftskip} & 0pt plus 0pt minus 0pt
+% & 0pt plus 0pt minus 0pt\\
+% \cs{CenteringRightskip} & 0pt plus 1fil
+% & 0pt plus 2em\\
+% \cs{RaggedLeftRightskip} & 0pt plus 0pt minus 0pt
+% & 0pt plus 0pt minus 0pt \\
+% \cs{RaggedRightRightskip} & 0pt plus 1fil
+% & 0pt plus 2em\\
+% \cs{CenteringParfillskip} & 0pt plus 0pt minus 0pt
+% & 0pt plus 0pt minus 0pt \\
+% \cs{RaggedLeftParfillskip} & 0pt plus 0pt minus 0pt
+% & 0pt plus 0pt minus 0pt \\
+% \cs{RaggedRightParfillskip}& 0pt plus 1fil
+% & 0pt plus 1fil\\
+% \cs{CenteringParindent} & 0pt
+% & 0pt \\
+% \cs{RaggedLeftParindent} & 0pt
+% & 0pt \\
+% \cs{RaggedRightParindent} & 0pt
+% & 0pt \\
+% \cs{JustifyingParfillskip} &
+% & 0pt plus 1fil \tabularnewline
+% \cs{JustifyingParindent} &
+% & \cs{parindent} \tabularnewline
+% \bottomrule
+% \end{tabularx}
+% \end{center}
+% \footnotetext{^^A
+% For proportional and monospaced fonts.}
+%
+% ^^A -----------------------------
+%
+% \subsection{The environments}
+% ^^A
+% \DescribeEnv{Center}
+% \env{Center} is fully compatible with \env{center}, but uses
+% \cs{Centering} instead of \cs{centering}.
+%
+% \DescribeEnv{FlushLeft}
+% \env{FlushLeft} is fully compatible with \env{flushleft}, but uses
+% \cs{RaggedRight} instead of \cs{raggedright}.
+%
+% \DescribeEnv{FlushRight}
+% \env{FlushRight} is fully compatible with \env{flushright}, but uses
+% \cs{RaggedLeft} instead of \cs{raggedleft}.
+%
+% \DescribeEnv{justify}
+% \NEWfeature{2003/01/04}%
+% \env{justify} is like the other environments but uses \cs{justifying}.
+% \changes{v2.00}{2003/01/04}{New environment \env{justify}}
+%
+% E.\,g.\ \env{FlushLeft} can be used in the same way as
+% \env{flushleft}:
+% \begin{verse}
+% \small
+% |\begin{FlushLeft}|\\
+% \meta{text, which is set ragged-right}\\
+% |\end{FlushLeft}|
+% \end{verse}
+%
+% ^^A -----------------------------
+%
+% \section{Options}
+% ^^A
+% This package has the following options:
+% \changes{v2.00}{2003/01/04}{Allow all-lowercase versions of
+% options and removed documentation of
+% mixed-case versions.}
+% \nopagebreak
+% \begin{description}
+% \item[\normalfont\option{originalcommands}]
+% The \LaTeX-commands \cs{centering}, \cs{raggedleft}, and
+% \cs{raggedright} and the \LaTeX-environments \env{center},
+% \env{flushleft}, and \env{flushright} remain unchanged.\newline
+% It is the default.
+% \item[\normalfont\option{newcommands}]
+% The \LaTeX-commands \cs{centering}, \cs{raggedleft}, and
+% \cs{raggedright} and the \LaTeX-environments \env{center},
+% \env{flushleft}, and \env{flushright} are set equal to their
+% counterparts defined by \package{ragged2e}.
+% Thus \cs{raggedright} invokes \cs{RaggedRight}.
+% The original commands can be accessed unter the Names
+% \cs{LaTeX}\meta{original name}, e.\,g.\ \cs{LaTeXraggedright}.
+% \item[\normalfont\option{originalparameters}]
+% The parameters used by the commands implemented by
+% \package{ragged2e} are initialized with the default settings
+% used by \LaTeX.
+% \item[\normalfont\option{newparameters}]
+% The parameters used by the commands implemented by
+% \package{ragged2e} are initialized with the default settings
+% defined by \package{ragged2e}.\newline
+% It is the default.
+% \item[\normalfont\option{raggedrightboxes}]
+% \changes{v2.00}{2003/01/04}{New option \option{raggedrightboxes}}
+% \NEWfeature{2003/01/18}
+% All \cs{parbox}es, \env{minipage}s, \cs{marginpar}s and
+% |p|-columns of \env{tabular}s and \env{array}s are
+% automatically set using \cs{RaggedRight}.
+% \item[\normalfont\option{footnotes}]
+% \changes{v2.00}{2003/01/18}{New option \option{footnotes}}
+% \NEWfeature{2003/01/18}
+% This options sets all footnotes ragged-right by loading the
+% \package{footmisc}\cite{footmisc} package with the
+% \option{ragged} option.
+% \item[\normalfont\option{document}]
+% \changes{v2.00}{2003/01/18}{New option \option{document}}
+% \NEWfeature{2003/01/18}
+% This options sets the complete document ragged-right by
+% executing a \cs{RaggedRight} at \cs{begin\{document\}} and
+% the \option{raggedrightboxes} and the \option{footnotes}
+% options.
+% \end{description}
+% All other options are passed to the \package{footmisc} package if
+% the \option{footnotes} option is selected.
+%
+%
+% ^^A -----------------------------
+%
+% \section{Required packages}
+% ^^A
+% This package requires the following package:
+% \begin{description}
+% \item[\normalfont\package{everysel}\cite{everysel}]
+% It is used to distinguish between monospaced and proportional
+% fonts.
+% \item[\normalfont\package{footmisc}\cite{footmisc}]
+% It is used by the \option{footnotes} option; at least
+% version~5.00 (2002/08/28) is needed.
+% \end{description}
+%
+%
+% ^^A -----------------------------
+%
+% \StopEventually{^^A
+%
+%
+% ^^A -----------------------------
+%
+% \section{Acknowledgements}
+% ^^A
+% A first version of this package for \LaTeX2.09 was named
+% \package{raggedri}\cite{raggedri}.
+% Laurent Siebenmann (\url{lcs@topo.math.u-psud.fr}) with his
+% style \package{ragged.sty}\cite{ragged} provided the final impulse
+% for this new implementation.\newline
+% The code for \cs{justifying}, \env{justify} and the overloading of
+% \cs{@arrayparboxrestore} is incorporated from the
+% \package{raggedr}\cite{raggedr} package by James Kilfinger
+% (\url{mapdn@csv.warwick.ac.uk}).\newline
+% Without the constant nagging of Rainer Sieger
+% (\url{rsieger@awi-bremerhaven.de}) this package might not
+% be.\newline
+% Markus Kohm (\url{markus.kohm@gmx.de}) provided the code for
+% \cs{@gnewline}.\newline
+% Frank Mittelbach (\url{frank.mittelbach@latex-project.org})
+% provided the impetus for version~2.00.\newline
+% Rolf Niepraschk (\url{Rolf.Niepraschk@ptb.de}) and Hubert G\"a\ss{}lein
+% found many bugs and provided fixes for them and code for new
+% features.
+%
+% ^^A -----------------------------
+%
+% \newcommand{\noopsort}[1]{} \newcommand{\printfirst}[2]{##1}
+% \newcommand{\singleletter}[1]{##1} \newcommand{\switchargs}[2]{##2##1}
+% \begin{thebibliography}{1}
+%
+% \bibitem{ltmiscen}
+% Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport, Frank
+% Mittelbach, Chris Rowley, and Rainer Sch{\"o}pf.
+% \newblock ltmiscen.dtx.
+% \newblock Part of the {\LaTeX}-distribution.
+%
+% \bibitem{footmisc}
+% Robin Fairbairns.
+% \newblock \texttt{footmisc} --- a portmanteau package for
+% customising footnotes in \LaTeXe.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/footmisc/footmisc.dtx}.
+%
+% \bibitem{raggedr}
+% James Kilfiger.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/other/misc/raggedr.sty}.
+% \newblock \LaTeXe{} package.
+%
+% \bibitem{KnuthTeXa}
+% Donald~E. Knuth.
+% \newblock \emph{The {\TeX}Book}, volume~A of \emph{Computers \& Typesetting}.
+% \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, {\noopsort{1986a}}1986.
+%
+% \bibitem{lamport86}
+% Leslie Lamport.
+% \newblock \emph{\LaTeX: A Document Preparation System}.
+% \newblock Ad{\-d}i{\-s}on-Wes{\-l}ey, Reading, MA, USA, first edition, 1986.
+%
+% \bibitem{cmfonts}
+% Frank Mittelbach and Rainer Sch{\"o}pf.
+% \newblock The file {\texttt{cmfonts.fdd}} for use with {\LaTeXe}.
+% \newblock Part of the {\LaTeX}-distribution.
+%
+% \bibitem{everysel}
+% Martin Schr{\"o}der.
+% \newblock The \package{everysel}-package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/ms/everysel.dtx}.
+% \newblock \LaTeXe{} package.
+%
+% \bibitem{raggedri}
+% Martin Schr{\"o}der.
+% \newblock The \package{raggedri} document option.
+% \newblock Was in \url{CTAN: tex-archive/macros/latex209/contrib/raggedright}.
+% \newblock \LaTeX2.09 style, outdated.
+%
+% \bibitem{ragged}
+% Laurent Siebenmann.
+% \newblock \texttt{ragged.sty}.
+% \newblock \url{CTAN: tex-archive/macros/generic/ragged.sty}.
+% \newblock generic macro file for \texttt{plain} and \LaTeX.
+%
+% \end{thebibliography}
+% }
+%
+% ^^A -----------------------------
+%
+% \section{The implementation}
+% \changes{v2.00}{2003/01/10}{Removed spaces and unneeded braces
+% from \cs{setlength}; replaced
+% \texttt{plus} with \cs{@plus}}
+% \changes{v2.02}{2003/02/24}{Removed \cs{setlength}}
+% \changes{v2.02}{2003/02/24}{Use \cs{@flushglue}}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Initial Code}
+% ^^A
+% \begin{macro}{\if@raggedtwoe@originalcommands}
+% \cs{if@raggedtwoe@originalcommands} is used to flag the use of the
+% \option{originalcommands} or \option{newcommands} option.
+% \begin{macrocode}
+\newif\if@raggedtwoe@originalcommands
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@raggedtwoe@originalparameters}
+% \cs{if@raggedtwoe@originalparameters} is used to flag the use of the
+% \option{originalparameters} or \option{newparameters} option.
+% \begin{macrocode}
+\newif\if@raggedtwoe@originalparameters
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@raggedtwoe@footmisc}
+% \cs{if@raggedtwoe@footmisc} is used to flag the use of the
+% \option{footnotes} option.
+% \changes{v2.00}{2003/01/18}{New macro}%
+% \begin{macrocode}
+\newif\if@raggedtwoe@footmisc
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Declaration of options}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{\option{originalcommands} option}
+% ^^A
+% The \option{originalcommands} and \option{newcommands} options
+% control the meaning of the \LaTeX-commands for ragged text:
+% If \option{newcommands} is used the \LaTeX-commands are set equal
+% to the commands defined by \package{ragged2e}.
+% \changes{v2.00}{2003/01/04}{Allow all-lowercase versions of options}
+% \begin{macrocode}
+\DeclareOption{OriginalCommands}{\@raggedtwoe@originalcommandstrue}
+\DeclareOption{originalcommands}{\@raggedtwoe@originalcommandstrue}
+\DeclareOption{NewCommands}{\@raggedtwoe@originalcommandsfalse}
+\DeclareOption{newcommands}{\@raggedtwoe@originalcommandsfalse}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{\option{originalparameters} option}
+% ^^A
+% The \option{originalparameters} and \option{newparameters} options
+% control the defaults for the parameters used by the commands
+% implemented by \package{ragged2e}:
+% If \option{newparameters} is used the parameters are set to the
+% values defined by \package{ragged2e}.
+% \changes{v2.00}{2003/01/04}{Allow all-lowercase versions of options}
+% \begin{macrocode}
+\DeclareOption{OriginalParameters}{\@raggedtwoe@originalparameterstrue}
+\DeclareOption{originalparameters}{\@raggedtwoe@originalparameterstrue}
+\DeclareOption{NewParameters}{\@raggedtwoe@originalparametersfalse}
+\DeclareOption{newparameters}{\@raggedtwoe@originalparametersfalse}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{\option{raggedrightboxes} option}
+% ^^A
+% \changes{v2.00}{2003/01/04}{New option \option{raggedrightboxes}}%
+% The option \option{raggedrightboxes} sets all
+% \cs{parbox}es, \env{minipage}s, \cs{marginpar}s and |p|-columns of
+% \env{tabular}s and \env{array}s using \cs{RaggedRight}.
+% This is done by redefining \cs{@arrayparboxrestore}.
+% \begin{macro}{\@raggedtwoe@raggedrightboxes@opt}
+% \cs{@raggedtwoe@raggedrightboxes@opt} is the code executed via
+% \cs{DeclareOption}.
+% \changes{v2.00}{2003/01/18}{New macro}%
+% \begin{macrocode}
+\newcommand*{\@raggedtwoe@raggedrightboxes@opt}{
+% \end{macrocode}
+% First we check if \cs{@arrayparboxrestore} is unchanged.
+% \begin{macrocode}
+ \CheckCommand*{\@arrayparboxrestore}{%
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+ \let\-\@dischyph
+ \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parindent\z@ \parskip\z@skip
+ \everypar{}%
+ \linewidth\hsize
+ \@totalleftmargin\z@
+ \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+ \parfillskip\@flushglue \lineskip\normallineskip
+ \baselineskip\normalbaselineskip
+ \sloppy}%
+% \end{macrocode}
+% Then we redefine it by removing the setting of \cs{leftskip},
+% \cs{rightskip}, \cs{@rightskip} and \cs{parfillskip} and instead
+% calling \cs{RaggedRight}.
+% \changes{v2.04}{2003/03/02}{The setting of \cs{parindent} is
+% superfluous}%
+% \begin{macrocode}
+ \renewcommand{\@arrayparboxrestore}{%
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+ \let\-\@dischyph
+ \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parskip\z@skip
+ \everypar{}%
+ \linewidth\hsize
+ \@totalleftmargin\z@
+ \RaggedRight
+ \lineskip\normallineskip
+ \baselineskip\normalbaselineskip
+ \sloppy}%
+% \end{macrocode}
+% Now we self-destroy so the command can be called more than once
+% without causing harm (and it also frees up some space).
+% \begin{macrocode}
+ \let\@raggedtwoe@raggedrightboxes@opt\relax
+ }
+% \end{macrocode}
+% \end{macro}
+% Finally the declaration of the option.
+% \begin{macrocode}
+\DeclareOption{raggedrightboxes}{\@raggedtwoe@raggedrightboxes@opt}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{\option{footnotes} option}
+% ^^A
+% \changes{v2.00}{2003/01/18}{New option \option{footnotes}}%
+% \changes{v2.02}{2003/02/24}{Bugfix: \cs{if@raggedtwoe@footmisctrue}
+% \ensuremath{\rightarrow} \cs{@raggedtwoe@footmisctrue}}%
+% \changes{v2.03}{2003/02/26}{Bugfix: \option{footnotes} was actually
+% \option{raggedrightboxes}}
+% The option \option{footnotes} just sets a flag
+% (\cs{if@raggedtwoe@footmisc}) to load the \option{footmisc}
+% package and passes the option \option{ragged} to it.
+% \begin{macrocode}
+\DeclareOption{footnotes}{%
+ \@raggedtwoe@footmisctrue
+ \PassOptionsToPackage{ragged}{footmisc}%
+ }
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{\option{document} option}
+% ^^A
+% \changes{v2.00}{2003/01/18}{New option \option{document}}%
+% The option \option{document} sets the complete document
+% ragged-right by executing \cs{RaggedRight} via \cs{AtBeginDocument}
+% and also executing the \option{raggedrightboxes} option.
+% \begin{macro}{\@raggedtwoe@abdhook}
+% \cs{@raggedtwoe@abdhook} is the code executed via
+% \cs{AtBeginDocument}: Give a message on the terminal, execute
+% \cs{RaggedRight} and self-destroy.
+% We also make \cs{@tocrmarg} flexible; otherwise long lines in the
+% table of contents (and similar tables) would not be broken because
+% the spaceskip is rigid.
+% \changes{v2.00}{2003/01/18}{New macro}%
+% \changes{v2.04}{2003/03/02}{Set \cs{@tocrmarg} and use
+% \cs{PackageInfo}}%
+% \begin{macrocode}
+\newcommand{\@raggedtwoe@abdhook}{%
+ \PackageInfo{ragged2e}{ABD: executing \string\RaggedRight}%
+ \RaggedRight
+ \edef\@tocrmarg{\@tocrmarg plus 2em}%
+ \let\@raggedtwoe@abdhook\relax
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@raggedtwoe@document@opt}
+% \cs{@raggedtwoe@document@opt} is the code executed via
+% \cs{DeclareOption}: Insert the code into \cs{AtBeginDocument},
+% execute the \option{raggedrightboxes} and \option{footnotes} options
+% and self-destroy.
+% \changes{v2.00}{2003/01/18}{New macro}%
+% \begin{macrocode}
+\newcommand{\@raggedtwoe@document@opt}{%
+ \AtBeginDocument{\@raggedtwoe@abdhook}%
+ \@raggedtwoe@raggedrightboxes@opt
+ \@raggedtwoe@footmisctrue
+ \let\@raggedtwoe@document@opt\relax
+ }
+% \end{macrocode}
+% \end{macro}
+% Finally the declaration of the option.
+% \begin{macrocode}
+\DeclareOption{document}{\@raggedtwoe@document@opt}
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsubsection{Other options}
+% ^^A
+% \changes{v2.00}{2003/01/18}{Pass all other options to
+% \package{footmisc} if it's loaded}%
+% All unused options are passed to the \package{footmisc} package if
+% the \option{footnotes} option is selected; otherwise the usual error
+% is raised.
+% \begin{macrocode}
+\DeclareOption*{%
+ \if@raggedtwoe@footmisc
+ \PassOptionsToPackage{\CurrentOption}{footmisc}%
+ \else
+ \OptionNotUsed
+ \fi
+ }
+% \end{macrocode}
+%
+%
+%% ^^A -----------------------------
+%
+% \subsection{Executing options}
+% ^^A
+% The default options are \option{originalcommands} and
+% \option{newparameters}.
+% \begin{macrocode}
+\ExecuteOptions{originalcommands,newparameters}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Loading packages}
+% ^^A
+% We need the \package{everysel} package.
+% \changes{v2.00}{2003/01/18}{Load the \package{footmisc} package}%
+% \begin{macrocode}
+\RequirePackage{everysel}
+% \end{macrocode}
+% If the option \option{footnotes} is selected, we load the
+% \package{footmisc} package after we are finished (\package{footmisc}
+% detects our presence by looking for the definition of
+% \cs{RaggedRight}, so we can not load it just now).
+% \begin{macrocode}
+\if@raggedtwoe@footmisc
+ \AtEndOfPackage{\RequirePackage{footmisc}[2002/08/28]}
+\fi
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Allocations}
+% ^^A
+% \changes{v2.00}{2003/01/25}{Removed \cs{RaggedSpaceskip} and
+% \cs{RaggedXSpaceskip}}%
+% \begin{macro}{\CenteringLeftskip}
+% \begin{macro}{\RaggedLeftLeftskip}
+% \begin{macro}{\RaggedRightLeftskip}
+% \begin{macro}{\CenteringRightskip}
+% \begin{macro}{\RaggedLeftRightskip}
+% \begin{macro}{\RaggedRightRightskip}
+% \begin{macro}{\CenteringParfillskip}
+% \begin{macro}{\RaggedLeftParfillskip}
+% \begin{macro}{\RaggedRightParfillskip}
+% \begin{macro}{\JustifyingParfillskip}
+% \changes{v2.00}{2003/01/18}{New macro}
+% \begin{macro}{\CenteringParindent}
+% \begin{macro}{\RaggedLeftParindent}
+% \begin{macro}{\RaggedRightParindent}
+% \begin{macro}{\JustifyingParindent}
+% \changes{v2.00}{2003/01/18}{New macro}
+% First we allocate the parameters
+% \begin{macrocode}
+\newlength{\CenteringLeftskip}
+\newlength{\RaggedLeftLeftskip}
+\newlength{\RaggedRightLeftskip}
+\newlength{\CenteringRightskip}
+\newlength{\RaggedLeftRightskip}
+\newlength{\RaggedRightRightskip}
+\newlength{\CenteringParfillskip}
+\newlength{\RaggedLeftParfillskip}
+\newlength{\RaggedRightParfillskip}
+\newlength{\JustifyingParfillskip}
+\newlength{\CenteringParindent}
+\newlength{\RaggedLeftParindent}
+\newlength{\RaggedRightParindent}
+\newlength{\JustifyingParindent}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Initializations}
+% ^^A
+% Depending on \cs{if@raggedtwoe@originalparameters} we initialize the
+% parameters with the values \LaTeX{} uses for its own commands or with
+% our new parameters.
+% \changes{v2.04}{2003/03/02}{Initialize \cs{JustifyingParindent}
+% with \cs{parindent}}
+% \changes{v2.04}{2003/03/02}{Insert missing \textbackslash}
+% \begin{macrocode}
+\if@raggedtwoe@originalparameters
+ \CenteringLeftskip\@flushglue
+ \RaggedLeftLeftskip\@flushglue
+ \RaggedRightLeftskip\z@skip
+ \CenteringRightskip\@flushglue
+ \RaggedLeftRightskip\z@skip
+ \RaggedRightRightskip\@flushglue
+ \CenteringParfillskip\z@skip
+ \RaggedLeftParfillskip\z@skip
+ \RaggedRightParfillskip\@flushglue
+ \CenteringParindent\z@
+ \RaggedLeftParindent\z@
+ \RaggedRightParindent\z@
+\else
+ \CenteringLeftskip\z@\@plus\tw@ em
+ \RaggedLeftLeftskip\z@\@plus\tw@ em
+ \RaggedRightLeftskip\z@skip
+ \CenteringRightskip\z@\@plus\tw@ em
+ \RaggedLeftRightskip\z@skip
+ \RaggedRightRightskip\z@\@plus\tw@ em
+ \CenteringParfillskip\z@skip
+ \RaggedLeftParfillskip\z@skip
+ \RaggedRightParfillskip\@flushglue
+ \CenteringParindent\z@
+ \RaggedLeftParindent\z@
+ \RaggedRightParindent\z@
+\fi
+\JustifyingParfillskip\@flushglue
+\JustifyingParindent\parindent
+% \end{macrocode}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Distinguishing between monospaced and proportional fonts}
+% ^^A
+% To set ragged text with proportional fonts \emph{and} monospaced
+% fonts correctly, we must distinguish between these two kinds of
+% fonts \emph{everytime} a font is loaded.
+% Otherwise the settings for e.\,g.\ a proportional fonts would be
+% in effect if you start \cs{RaggedRight} in \cs{rmfamily} and
+% then switch to \cs{ttfamily}.
+%
+% The goal is to have a rigid interword space in all fonts.
+% \TeX's interword space is |\fontdimen2 plus \fontdimen3 minus \fontdimen4|.
+% This can be overwritten by setting \cs{spaceskip} (space between
+% words, if nonzero) and \cs{xspaceskip} (space at the end of
+% sentences, if nonzero).
+%
+% We do the setting with the help of \package{everysel}\cite{everysel},
+% which allows us to define code which is (hopefully) executed after
+% every fontchange in a \LaTeX{} document.\footnote{^^A
+% It \emph{is} executed after every \cs{selectfont}, so if you stay
+% within NFSS and don't declare your fonts with commands like
+% \cs{newfont} and then switch to them, it will work.}
+%
+% \begin{macro}{\if@raggedtwoe@spaceskip}
+% \cs{if@raggedtwoe@spaceskip} signals the use of commands defined by
+% \package{ragged2e} to the command inserted into \cs{selectfont}.
+% It is set to true by these commands and restored to false by \TeX{}
+% when the scope of them ends.
+% \begin{macrocode}
+\newif\if@raggedtwoe@spaceskip
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@raggedtwoe@everyselectfont}
+% \cs{@raggedtwoe@everyselectfont} is our code inserted into
+% \cs{selectfont}.
+% \changes{v2.00}{2003/01/26}{Completely redesigned and removed
+% \cs{RaggedSpaceskip} and
+% \cs{RaggedXSpaceskip}}
+% \changes{v2.01}{2003/02/20}{Removed the setting of \cs{xspaceskip}}
+% \begin{macrocode}
+\newcommand{\@raggedtwoe@everyselectfont}{%
+ \if@raggedtwoe@spaceskip
+% \end{macrocode}
+% If no command defined by \package{ragged2e} is in use, we do
+% nothing.
+% But if it is, we look at \cs{fontdimen3} to see if the current
+% font is monospaced or not.
+% \begin{macrocode}
+ \ifdim\fontdimen\thr@@\font=\z@\relax
+% \end{macrocode}
+% If it is, we set \cs{spaceskip} to |0pt| so the interword space
+% will be the one specified by the font designer -- which is rigid
+% anyway for monospaced fonts.
+% \begin{macrocode}
+ \spaceskip\z@
+ \else
+% \end{macrocode}
+% For proportional fonts we make the interword space rigid by setting
+% \cs{spaceskip} to \cs{fontdimen2}.
+% \begin{macrocode}
+ \spaceskip\fontdimen\tw@\font
+ \fi
+% \end{macrocode}
+% We have to reset the interword space if we are not active.
+% \changes{v2.04}{2003/03/16}{Reset \cs{spaceskip} when we are not
+% active}
+% \begin{macrocode}
+ \else
+ \spaceskip\z@
+ \fi
+ }
+\EverySelectfont{\@raggedtwoe@everyselectfont}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{The commands}
+% ^^A
+% \begin{macro}{\@raggedtwoe@savedcr}
+% We save the definition of \cs{\textbackslash} in
+% \cs{@raggedtwoe@savedcr}.
+% \begin{macrocode}
+\let\@raggedtwoe@savedcr\\
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@raggedtwoe@saved@gnewline}
+% \changes{v2.00}{2003/01/04}{New macro}
+% We save the definition of \cs{@gnewline} in
+% \cs{@raggedtwoe@saved@gnewline}.
+% \begin{macrocode}
+\let\@raggedtwoe@saved@gnewline\@gnewline
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@raggedtwoe@gnewline}
+% The following definition of a \cs{@gnewline} used by the ragged
+% commands was suggested by Markus Kohm:
+% \changes{v2.00}{2003/01/04}{New macro}
+% \changes{v2.02}{2003/02/24}{Bugfix: \cs{@nolerr}
+% \ensuremath{\rightarrow} \cs{@nolnerr}}%
+% \begin{macrocode}
+\newcommand*{\@raggedtwoe@gnewline}[1]{%
+ \ifvmode
+ \@nolnerr
+ \else
+ \unskip
+ \reserved@e {\reserved@f #1}{\parskip\z@\par}%
+ \fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Centering}
+% \cs{Centering} first lets \cs{\textbackslash} = \cs{@centercr},
+% but only if |\\| has its original meaning, otherwise \cs{Center}
+% would not work inside environments like \env{tabular} etc., in
+% which \cs{\textbackslash} has a different meaning.
+% It also sets \cs{@gnewline} to \cs{@raggedtwoe@gnewline}.
+% Then, the \LaTeX{} and \TeX-parameters are set.\newline
+% \cs{@rightskip} is \LaTeX's version of \cs{rightskip}.
+% \begin{Quote}
+% ``Every environment, like the list environments, that set
+% \cs{rightskip} to its 'normal' value set it to \cs{@rightskip}''
+% \cite{ltmiscen}
+% \end{Quote}
+% Finally we signal the code inserted into \cs{selectfont} that
+% we are active and call that code directly.
+% \changes{v2.00}{2003/01/04}{Call \cs{@raggedtwoe@everyselectfont}
+% and switch \cs{@gnewline}}
+% \begin{macrocode}
+\newcommand{\Centering}{%
+ \ifx\\\@raggedtwoe@savedcr
+ \let\\\@centercr
+ \fi
+ \let\@gnewline\@raggedtwoe@gnewline
+ \leftskip\CenteringLeftskip
+ \@rightskip\CenteringRightskip
+ \rightskip\@rightskip
+ \parfillskip\CenteringParfillskip
+ \parindent\CenteringParindent
+ \@raggedtwoe@spaceskiptrue
+ \@raggedtwoe@everyselectfont
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RaggedLeft}
+% \cs{RaggedLeft} is like \cs{Centering}; it only uses other
+% parameters.
+% \changes{v2.00}{2003/01/04}{Call \cs{@raggedtwoe@everyselectfont}
+% and switch \cs{@gnewline}}
+% \begin{macrocode}
+\newcommand{\RaggedLeft}{%
+ \ifx\\\@raggedtwoe@savedcr
+ \let\\\@centercr
+ \fi
+ \let\@gnewline\@raggedtwoe@gnewline
+ \leftskip\RaggedLeftLeftskip
+ \@rightskip\RaggedLeftRightskip
+ \rightskip\@rightskip
+ \parfillskip\RaggedLeftParfillskip
+ \parindent\RaggedLeftParindent
+ \@raggedtwoe@spaceskiptrue
+ \@raggedtwoe@everyselectfont
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RaggedRight}
+% \cs{RaggedRight} is like \cs{Centering}; it only uses other
+% parameters.
+% \changes{v2.00}{2003/01/04}{Call \cs{@raggedtwoe@everyselectfont}
+% and switch \cs{@gnewline}}
+% \begin{macrocode}
+\newcommand{\RaggedRight}{%
+ \ifx\\\@raggedtwoe@savedcr
+ \let\\\@centercr
+ \fi
+ \let\@gnewline\@raggedtwoe@gnewline
+ \leftskip\RaggedRightLeftskip
+ \@rightskip\RaggedRightRightskip
+ \rightskip\@rightskip
+ \parfillskip\RaggedRightParfillskip
+ \parindent\RaggedRightParindent
+ \@raggedtwoe@spaceskiptrue
+ \@raggedtwoe@everyselectfont
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\justifying}
+% \cs{justifying} switches back to the defaults used by \LaTeX{} for
+% typesetting justyfied text.
+% \changes{v2.00}{2003/01/04}{New macro}
+% \begin{macrocode}
+\newcommand{\justifying}{%
+ \let\\\@raggedtwoe@savedcr
+ \let\@gnewline\@raggedtwoe@saved@gnewline
+ \leftskip\z@
+ \@rightskip\z@
+ \rightskip\@rightskip
+ \parfillskip\JustifyingParfillskip
+ \parindent\JustifyingParindent
+ \@raggedtwoe@spaceskipfalse
+ \@raggedtwoe@everyselectfont
+ }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{The environments}
+% ^^A
+% \begin{environment}{Center}
+% \begin{environment}{FlushLeft}
+% \begin{environment}{FlushRight}
+% The environments \env{Center}, \env{FlushLeft}, and \cs{FlushRight}
+% are implemented like their counterparts in \LaTeX: Start a
+% \env{trivlist} and switch on the right command.
+% \changes{v2.02}{2003/02/24}{Use \cs{trivlist} \ldots{}
+% \cs{endtrivlist} instead of
+% \cs{begin\{trivlist\}} \ldots{}
+% \cs{end\{trivlist\}}}
+% \begin{macrocode}
+\newenvironment{Center}{%
+ \trivlist
+ \Centering\item\relax
+ }{%
+ \endtrivlist
+ }
+\newenvironment{FlushLeft}{%
+ \trivlist
+ \RaggedRight\item\relax
+ }{%
+ \endtrivlist
+ }
+\newenvironment{FlushRight}{%
+ \trivlist
+ \RaggedLeft\item\relax
+ }{%
+ \endtrivlist
+ }
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \begin{environment}{justify}
+% \env{justify} is similar to the other environments: Start a
+% \env{trivlist} and use \cs{justifying}.
+% \changes{v2.00}{2003/01/04}{New environment}
+% \changes{v2.02}{2003/02/24}{Use \cs{trivlist} \ldots{}
+% \cs{endtrivlist} instead of
+% \cs{begin\{trivlist\}} \ldots{}
+% \cs{end\{trivlist\}}}
+% \begin{macrocode}
+\newenvironment{justify}{%
+ \trivlist
+ \justifying\item\relax
+ }{%
+ \endtrivlist
+ }
+% \end{macrocode}
+% \end{environment}
+%
+%
+% ^^A -----------------------------
+%
+% \subsection{Overloading the \LaTeX-commands}
+% ^^A
+% If the option \option{newcommands} is used, we save the original
+% \LaTeX-commands and environments for ragged text and overload them.
+% \changes{v2.04}{2003/03/02}{Save more commands}
+% \begin{macrocode}
+\if@raggedtwoe@originalcommands
+\else
+ \let\LaTeXcentering\centering
+ \let\LaTeXraggedleft\raggedleft
+ \let\LaTeXraggedright\raggedright
+ \let\centering\Centering
+ \let\raggedleft\RaggedLeft
+ \let\raggedright\RaggedRight
+ \let\LaTeXcenter\center
+ \let\endLaTeXcenter\endcenter
+ \let\LaTeXflushleft\flushleft
+ \let\endLaTeXflushleft\endflushleft
+ \let\LaTeXflushright\flushright
+ \let\endLaTeXflushright\endflushright
+ \let\center\Center
+ \let\endcenter\endCenter
+ \let\flushleft\Flushleft
+ \let\endflushleft\endFlushleft
+ \let\flushright\FlushRight
+ \let\endflushright\endFlushRight
+\fi
+% \end{macrocode}
+%
+% ^^A -----------------------------
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \Finale
+% ^^A vim:tw=70:ts=2
diff --git a/Master/texmf-dist/source/latex/ms/ragged2e.ins b/Master/texmf-dist/source/latex/ms/ragged2e.ins
new file mode 100644
index 00000000000..69e9183103c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/ms/ragged2e.ins
@@ -0,0 +1,101 @@
+%\NeedsTeXFormat{LaTeX2e}
+%\ProvidesFile{ragged2e.ins}
+% [2003/02/20 v1.20 Installation script for Ragged2e Package (MS)]
+%%
+%% Copyright 1996, 1998, 1999, 2003 by Martin Schr"oder. All rights reserved.
+%%
+%% This program may be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License, either version 1.0 of this
+%% license, or (at your option) any later version.
+%% The latest version of this license is in
+%% CTAN:macros/latex/base/lppl.txt.
+%%
+%% $Id: ragged2e.ins,v 1.7 2003/02/20 22:12:18 ms Exp $
+%%
+%% --------------- start of docstrip commands ------------------
+\input docstrip.tex
+{\ifx\endbatchfile\undefined
+\Msg{**********************************************}
+\Msg{*}
+\Msg{* This installation requires docstrip}
+\Msg{* version 2.4d or later.}
+\Msg{*}
+\Msg{* An older version of docstrip has been input}
+\Msg{*}
+\Msg{**********************************************}
+\errhelp{Move or rename old docstrip.tex.}
+\errmessage{Old docstrip in input path}
+\batchmode
+\csname @@end\endcsname
+\fi}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* The ragged2e distribution contains these files:}
+\Msg{*}
+\Msg{* \space\space ragged2e.dtx}
+\Msg{* \space\space ragged2e.ins}
+\Msg{*}
+\Msg{* If you receive only some of these files from someone, complain!}
+\Msg{*}
+\Msg{***********************************************************}
+
+\preamble
+
+Copyright (C) [1996..2003] by Martin Schroeder. All rights reserved.
+
+This file is part of the Ragged2e package
+-----------------------------------------
+
+This program may be redistributed and/or modified under the terms
+of the LaTeX Project Public License, either version 1.0 of this
+license, or (at your option) any later version.
+The latest version of this license is in
+ CTAN:macros/latex/base/lppl.txt.
+
+The Ragged2e package contains these files:
+ ragged2e.dtx
+ ragged2e.ins
+
+ Martin Schroeder
+ Cruesemannallee 3
+ 28213 Bremen
+ Germany
+ martin@oneiros.de
+
+\endpreamble
+\declarepreamble\driverpreamble
+
+Copyright (C) [1996..2003] Martin Schroeder. All rights reserved.
+
+This file is part of the Ragged2e package
+-----------------------------------------
+
+To produce the documentation in the way you like you are allowed
+to change this driver file.
+
+\endpreamble
+
+\keepsilent
+\askforoverwritefalse
+\generate{\file{ragged2e.sty}{\from{ragged2e.dtx}{package}}
+ \usepreamble\driverpreamble
+ \file{ragged2e.drv}{\from{ragged2e.dtx}{driver}}
+ }
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* style files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space ragged2e.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file ragged2e.drv}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+\endbatchfile
+%%
+%% End of file `ragged2e.ins'.
+%% vim:syntax=tex:tw=70:ts=2