diff options
author | Karl Berry <karl@freefriends.org> | 2007-04-29 23:50:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-04-29 23:50:16 +0000 |
commit | 7a10d350a6025aa6d6e637a883018deee64520c5 (patch) | |
tree | 01cddbb1c122b4a353842357e29fae4ed00a2ce7 /Master/texmf-dist/source | |
parent | 3182aaa429e0e1e24f5824de116d90a154166b32 (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')
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 |