diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ms |
Initial commit
Diffstat (limited to 'macros/latex/contrib/ms')
19 files changed, 3103 insertions, 0 deletions
diff --git a/macros/latex/contrib/ms/count1to.dtx b/macros/latex/contrib/ms/count1to.dtx new file mode 100644 index 0000000000..53b7f148d0 --- /dev/null +++ b/macros/latex/contrib/ms/count1to.dtx @@ -0,0 +1,500 @@ +% \iffalse
+\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{count1to}
+%<package> [2009/05/24 v2.1 Count1to9 Package (MS)]
+%
+%<*driver>
+\ProvidesFile{count1to.drv}
+ [2009/05/24 v2.1 Driver for Count1to9 Package (MS)]
+\documentclass[a4paper]{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{microtype}
+\usepackage{booktabs}
+\usepackage{url}
+\usepackage{count1to}
+\usepackage[toc]{multitoc}
+\usepackage{svn}
+\usepackage{hypdoc}
+\usepackage{geometry}
+\GetFileInfo{count1to.sty}
+\setcounter{IndexColumns}{2}
+% onecolumn glossary
+\makeatletter
+ \renewenvironment{theglossary}{%
+ \glossary@prologue
+ \setlength\emergencystretch{5em}
+ \GlossaryParms \let\item\@idxitem \ignorespaces}{}
+\makeatother
+\EnableCrossrefs
+\RecordChanges
+%%\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}
+\addtolength{\oddsidemargin}{1cm}
+\addtolength{\textwidth}{-1cm}
+\begin{document}
+ \DocInput{count1to.dtx}
+\end{document}
+%</driver>
+%^^A $Id: count1to.dtx 1368 2009-05-24 16:02:57Z oneiros $
+%
+% Copyright (c) 1994..2009 by Martin Schr\"oder. All rights reserved.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Martin Schr\"oder.
+%
+% This work consists of the files count1to.dtx and count1to.ins
+% and the derived file count1to.sty.
+%
+% \fi
+%
+% \CheckSum{112}
+%
+%% \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.1",
+%% date = "24 May 2009",
+%% filename = "count1to.sty",
+%% address = {Martin Schr\"oder
+%% Barmer Stra\"se 14
+%% 44137 Dortmund
+%% Germany}
+%% telephone = "+49-231-1206574",
+%% email = "martin@oneiros.de",
+% 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."
+%% }
+%% ===================================================================
+%% \fi
+%
+% \SVN $Rev: 1368 $
+% \SVN $Date: 2009-05-24 18:02:57 +0200 (So, 24. Mai 2009) $
+%
+% \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}
+% \changes{v2.00}{2002/08/31}{Removed \texttt{TotalPages}}
+% \changes{v2.1}{2009/05/24}{New address}
+%
+% \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 -----------------------------
+%
+% \changes{v1.03}{1997-03-09}{Fixed use of \cs{newline} in title.}
+% \title{\unskip
+% The \package{count1to} package^^A
+% \thanks{^^A
+% The version number of this file is \fileversion, subversion
+% revision~\#\SVNRev, last revised
+% \protect\SVNDate.\protect\newline
+% The name \textsf{count1to} is a tribute to the $8+3$ file-naming
+% convention of certain ancient ``operating systems''; strictly
+% speaking it should be \textsf{count1to9}.}
+% }
+% \changes{v2.00}{2002/08/31}{Changed e-mail}
+% \author{Martin Schr\"oder\\[0.5ex]
+% \normalsize Barmer Stra\ss{}e 14\\
+% \normalsize 44137 Dortmund\\
+% \normalsize Germany\\
+% \normalsize martin@oneiros.de}
+% \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.
+% \end{abstract}
+%
+% \pagestyle{headings}
+%
+% ^^A -----------------------------
+%
+% \tableofcontents
+%
+% ^^A -----------------------------
+%
+% \section{Introduction to version 2}
+% ^^A
+% The main change of this new version is the removal of the code for
+% the \texttt{TotalPages} label.
+% This code didn't work with the \package{hyperref}
+% package\cite{package:hyperref} and better code to achieve the
+% effect of it is contained in the \package{totpages}
+% package\cite{package:totpages}.
+% So old documents using this package will not work when they try to
+% use the \texttt{TotalPages} label; these documents must be changed
+% by inserting a \cs{usepackage\{totpages\}} in the preamble and
+% replacing all occurences of \texttt{TotalPages} by
+% \texttt{TotPages}.
+%
+% ^^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).
+%
+% ^^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.
+%
+%
+% ^^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:totpages}
+% Wilhelm M\"uller.
+% \newblock The \package{totpages} package.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/totpages/}.
+% \newblock \LaTeXe{} package.
+% \bibitem{package:hyperref}
+% Sebastian Rahtz.
+% \newblock Hypertext marks in \LaTeX.
+% \newblock \url{CTAN: tex-archive/macros/latex/contrib/supported/hyperref/}.
+% \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{v2.00}{2002/08/31}{moved code for \cs{AtBeginDocument} to
+% \cs{@countItoIX@init}}
+% \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}
+ }
+% \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{v2.00}{2002/08/31}{moved code for \cs{AtBeginDocument} to
+% \cs{@countItoIX@init}}
+% \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
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@countItoIX@init}
+% \changes{v2.00}{2002/08/31}{new}
+% \cs{@countItoIX@init} calls \cs{\@countItoIX@ifs} and
+% \cs{@countItoIX@bugfix} and then frees their memory.
+% This is done at \cs{begin\{document\}} via \cs{AtBeginDocument}.
+% \begin{macrocode}
+\newcommand*{\@countItoIX@init}{%
+ \message{ABD: Count1to9 initializing macros}%
+ \@countItoIX@ifs\let\@countItoIX@ifs\undefined
+ \@countItoIX@bugfix\let\@countItoIX@bugfix\undefined
+ }
+\AtBeginDocument{\@countItoIX@init}
+% \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{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/macros/latex/contrib/ms/count1to.ins b/macros/latex/contrib/ms/count1to.ins new file mode 100644 index 0000000000..1bd534ef1d --- /dev/null +++ b/macros/latex/contrib/ms/count1to.ins @@ -0,0 +1,112 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{count1to.ins} + [2009/05/24 v2.1 Installation script for Count1to9 Package (MS)] +%% +%% Copyright (c) 1994..2009 by Martin Schr\"oder. All rights reserved. +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Schr\"oder. +%% +%% This work consists of the files count1to.dtx and count1to.ins +%% and the derived file count1to.sty. +%% +%% This file will be used by the docstrip.tex program to generate +%% fast loadable files from the doc files. +%% +%% $Id: count1to.ins 1368 2009-05-24 16:02:57Z oneiros $ +%% +%% --------------- 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.dtx} +\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..2009 by Martin Schroeder. All rights reserved. + +This file is part of the Count1to package + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Martin Schroeder. + +This work consists of the files count1to.dtx and count1to.ins +and the derived file count1to.sty. + +\endpreamble +\declarepreamble\driverpreamble + +This file is part of the Count1to package +----------------------------------------- + +Copyright (c) 1994..2009 by Martin Schroeder. 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/macros/latex/contrib/ms/count1to.pdf b/macros/latex/contrib/ms/count1to.pdf Binary files differnew file mode 100644 index 0000000000..9e339af9c9 --- /dev/null +++ b/macros/latex/contrib/ms/count1to.pdf diff --git a/macros/latex/contrib/ms/everysel.dtx b/macros/latex/contrib/ms/everysel.dtx new file mode 100644 index 0000000000..7e415dfa40 --- /dev/null +++ b/macros/latex/contrib/ms/everysel.dtx @@ -0,0 +1,418 @@ +% \iffalse +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%<package>\ProvidesPackage{everysel} +%<package> [2011/10/28 v1.2 EverySelectfont Package (MS)] +% +%<*driver> +\ProvidesFile{everysel.drv} + [2009/05/30 v1.1 Driver for EverySelectfont Package (MS)] +\documentclass[a4paper]{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage{url} +\usepackage[toc]{multitoc} +\usepackage{lmodern,microtype,svn} +\usepackage{hypdoc} +\usepackage{geometry} +\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} +% onecolumn glossary +\makeatletter + \renewenvironment{theglossary}{% + \glossary@prologue + \setlength\emergencystretch{5em} + \GlossaryParms \let\item\@idxitem \ignorespaces}{} +\makeatother +\setlength{\IndexMin}{40ex} +\setlength{\columnseprule}{.4pt} +\addtolength{\oddsidemargin}{2cm} +\addtolength{\textwidth}{-2cm} +\raggedright % otherwise we get over/underfull hboxes +\begin{document} + \DocInput{everysel.dtx} + \PrintIndex\PrintChanges + % Make sure that the index is not printed twice + % (ltxdoc.cfg might have a second \PrintIndex command) + \let\PrintChanges\relax +\end{document} +%</driver> +% +% Copyright (C) [1996..2011] by Martin Schr\"oder. +% +% This work may be distributed and/or modified under the conditions of the +% LaTeX Project Public License, either version 1.3 of this license or (at your +% option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX version +% 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Martin Schröder +% +% This work consists of the files everysel.dtx and everysel.ins +% and the derived files everysel.sty +% +% \fi +% +% \CheckSum{156} +% +%% \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 \~} +% +% \SVN $Rev: 1712 $ +% \SVNdate $Date: 2011-10-28 23:10:13 +0200 (Fr, 28. Okt 2011) $ +% +% \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} +% \changes{v1.1}{2009/05/30}{New address, LPPL 1.3} +% +% +% ^^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, subversion +% revision~\#\SVNRev, last revised \protect\SVNDate.\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 Unterstra\ss{}e 31\\ +% \normalsize 47051 Duisburg\\ +% \normalsize Germany\\ +% \normalsize \href{mailto:martin@oneiros.de}{\texttt{martin@oneiros.de}}} +% \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}. +% The \package{CJK} also redefines \cs{selectfont}. +% +% So we have to check for three 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}{% + \message{ABD: EverySelectfont initializing macros}% +% \end{macrocode} +% We have to distinguish three cases: \package{tracefnt}, +% \package{CJK} and everything else. +% \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} +% The case with \package{CJK} +% \changes{v1.2}{2011-10-27}{Check for \package{CJK}.} +% \begin{macrocode} + \@ifpackageloaded{CJK}{% + \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 + \expandafter\ifx\csname CJK@\curr@fontshape\endcsname \relax + \else + \CJK@bold@false + \csname CJK@\curr@fontshape\endcsname + \fi + \size@update + \enc@update}% + }{% +% \end{macrocode} +% Now the default (no \package{tracefnt} and no \package{CJK}). +% \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} +% The additions of \package{CJK} to \cs{selectfont} can be +% implemented using \cs{EverySelectfont}. +% \changes{v1.2}{2011-10-27}{Check for \package{CJK}.} +% \begin{macrocode} + \@ifpackageloaded{CJK}{% + \EverySelectfont{% + \expandafter\ifx\csname CJK@\curr@fontshape\endcsname \relax + \else + \CJK@bold@false + \csname CJK@\curr@fontshape\endcsname + \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 vim:tw=70:ts=2 diff --git a/macros/latex/contrib/ms/everysel.ins b/macros/latex/contrib/ms/everysel.ins new file mode 100644 index 0000000000..dab9e781a2 --- /dev/null +++ b/macros/latex/contrib/ms/everysel.ins @@ -0,0 +1,108 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{everysel.ins} + [2009/05/30 v1.1 Installation script for EverySelectfont Package (MS)] +%% +%% Copyright (C) 1996..2009 by Martin Schroeder. +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Schr\"oder. +%% +%% This work consists of the files everysel.dtx and everysel.ins +%% and the derived file everysel.sty. +%% +%% $Id: everysel.ins 1373 2009-05-30 20:22:19Z oneiros $ +%% --------------- 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.dtx} +\Msg{* \space\space everysel.ins} +\Msg{*} +\Msg{* If you receive only some of these files from someone, complain!} +\Msg{*} +\Msg{***********************************************************} + +\preamble + +Copyright (C) 1996..2009 by Martin Schroeder. + +This file is part of the EverySel package +----------------------------------------- + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Martin Schroeder. + +This work consists of the files everysel.dtx and everysel.ins +and the derived file everysel.sty. + +\endpreamble +\declarepreamble\driverpreamble +Copyright (C) 1996..2009 Martin Schroeoder. + +This file is part of the EverySel package +----------------------------------------- + +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'. +%% vim:tw=70:ts=2:syntax=tex diff --git a/macros/latex/contrib/ms/everysel.pdf b/macros/latex/contrib/ms/everysel.pdf Binary files differnew file mode 100644 index 0000000000..e4322787fc --- /dev/null +++ b/macros/latex/contrib/ms/everysel.pdf diff --git a/macros/latex/contrib/ms/everyshi.asc b/macros/latex/contrib/ms/everyshi.asc new file mode 100644 index 0000000000..bb1eed36d3 --- /dev/null +++ b/macros/latex/contrib/ms/everyshi.asc @@ -0,0 +1,12 @@ +-----BEGIN PGP MESSAGE----- +Version: 2.6.3ia +Comment: PGP sig of everyshi.dvi + +iQEVAwUAOwFX9+HJal4pKBTlAQFgzQgAm46axsBGuE+YzpINenw8Ns+BIsadiiPx +X8IepfL9rDPX6m2CnDPYO8f1v2njKAQawxdWbi+KQkQ6ApdN7tUySzUDHK+Bu2yW +I/0q3wnMWDC83f0Ebfrg9rVfmzhOw6D64Vp4tM3eufpu+KNvohQP0lCutFAFUaGt +iHbsg+NRxJwSobRSyXyEt8uIgwp6wdHvxKXEpfwbNSJD3hv88rVbwq1cZeEggNPP +CPjEJo09dOt6OgG+/znS9gvNkENATuIvFt+ZpBxthI5v0q/OLjaD7SllwHpza1vv +RREXdlBQLNwQu6jBaAQozTJBNMUyo5E+TiV9WKI5XwfblSMO3pIIBw== +=luvY +-----END PGP MESSAGE----- diff --git a/macros/latex/contrib/ms/everyshi.bug b/macros/latex/contrib/ms/everyshi.bug new file mode 100644 index 0000000000..29f4f1078c --- /dev/null +++ b/macros/latex/contrib/ms/everyshi.bug @@ -0,0 +1,11 @@ +This file is part of the everyshi package. +------------------------------------------ + +\ProvidesFile{everyshi.bug}[1999/06/08 v2.03 EveryShipout Package Bugs (MS)] + +This file contains problem-records and bug-reports. Unsolved problems +and uncorrected but known bugs (so called features) start out with two +exclamation marks before the number. Fixed problems will start with two +asterisks. + +No bugs so far. diff --git a/macros/latex/contrib/ms/everyshi.dtx b/macros/latex/contrib/ms/everyshi.dtx new file mode 100644 index 0000000000..b630b34946 --- /dev/null +++ b/macros/latex/contrib/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/macros/latex/contrib/ms/everyshi.ins b/macros/latex/contrib/ms/everyshi.ins new file mode 100644 index 0000000000..be7a239880 --- /dev/null +++ b/macros/latex/contrib/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/macros/latex/contrib/ms/everyshi.pdf b/macros/latex/contrib/ms/everyshi.pdf Binary files differnew file mode 100644 index 0000000000..c2696042bd --- /dev/null +++ b/macros/latex/contrib/ms/everyshi.pdf diff --git a/macros/latex/contrib/ms/multitoc.asc b/macros/latex/contrib/ms/multitoc.asc new file mode 100644 index 0000000000..3fcaa10673 --- /dev/null +++ b/macros/latex/contrib/ms/multitoc.asc @@ -0,0 +1,12 @@ +-----BEGIN PGP MESSAGE----- +Version: 2.6.3ia +Comment: PGP sig of multitoc.dvi + +iQEVAwUAN11/jOHJal4pKBTlAQEoKAf8CqoIr8kQR2fuygRaYeeOKwV0sn2hZ8nE +0jRurHZvMG+oeqNWQmmhUWf5QbmhoeySV4k0oZptAJH7trA4VUOyQPekqW/lRlUs +yoqxArqL9qhSK9+L6NDPKjZ9K3xejC8ivPkzoWSdHM7T4pOPwjmYNqrIo11I4DsQ +eP/v4MlI83QPfDwWWQPq6AVPNa2yPoztsCKe5A6t4nkesgBPwBEorg/8LDwbGAzB +psrpO/a/0V6FBKQ9MkeZ3pXSzZm6o91M4wZXf864pw67lj7BWnOsecbidJAuzd// ++4VD1/BYIuGV7Mt8K5r2DNx9IRWCEQWiIXXO31lD4MBP6Jz382PTIw== +=8lva +-----END PGP MESSAGE----- diff --git a/macros/latex/contrib/ms/multitoc.bug b/macros/latex/contrib/ms/multitoc.bug new file mode 100644 index 0000000000..400db9b6b5 --- /dev/null +++ b/macros/latex/contrib/ms/multitoc.bug @@ -0,0 +1,11 @@ +This file is part of the multitoc package. +----------------------------------------- + +\ProvidesFile{multitoc.bug}[1999/06/08 v2.01 MultiToc Package Bugs (MS)] + +This file contains problem-records and bug-reports. Unsolved problems +and uncorrected but known bugs (so called features) start out with two +exclamation marks before the number. Fixed problems will start with two +asterisks. + +No bugs so far.
\ No newline at end of file diff --git a/macros/latex/contrib/ms/multitoc.dtx b/macros/latex/contrib/ms/multitoc.dtx new file mode 100644 index 0000000000..a88e69fbe6 --- /dev/null +++ b/macros/latex/contrib/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/macros/latex/contrib/ms/multitoc.ins b/macros/latex/contrib/ms/multitoc.ins new file mode 100644 index 0000000000..154b6ec1d5 --- /dev/null +++ b/macros/latex/contrib/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/macros/latex/contrib/ms/multitoc.pdf b/macros/latex/contrib/ms/multitoc.pdf Binary files differnew file mode 100644 index 0000000000..b72c2a0c4c --- /dev/null +++ b/macros/latex/contrib/ms/multitoc.pdf diff --git a/macros/latex/contrib/ms/prelim2e.dtx b/macros/latex/contrib/ms/prelim2e.dtx new file mode 100644 index 0000000000..e0a4b812b9 --- /dev/null +++ b/macros/latex/contrib/ms/prelim2e.dtx @@ -0,0 +1,637 @@ +% \changes{v1.01}{1995/05/02}{Date added to \cs{NeedsTeXFormat}} +% \iffalse +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%<package>\ProvidesPackage{prelim2e} +%<package> [2009/05/29 v1.3 prelim2e Package (MS)] +% +%<*driver> +\ProvidesFile{prelim2e.drv} + [2009/05/29 v1.3 Driver for prelim2e Package (MS)] +\documentclass[a4paper]{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage{url} +\usepackage[toc]{multitoc} +\usepackage{lmodern,microtype,svn} +\usepackage{hypdoc} +\usepackage{geometry} +\usepackage[scrtime]{prelim2e} +\GetFileInfo{prelim2e.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} +% onecolumn glossary +\makeatletter + \renewenvironment{theglossary}{% + \glossary@prologue + \setlength\emergencystretch{5em} + \GlossaryParms \let\item\@idxitem \ignorespaces}{} +\makeatother +\setlength{\IndexMin}{40ex} +\setlength{\columnseprule}{.4pt} +\addtolength{\oddsidemargin}{2cm} +\addtolength{\textwidth}{-2cm} +\begin{document} + \DocInput{prelim2e.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 (C) 1995..2009 by Martin Schr\"oder. +% +% This work may be distributed and/or modified under the conditions of the +% LaTeX Project Public License, either version 1.3 of this license or (at your +% option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX version +% 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Martin Schröder +% +% This work consists of the files prelim2e.dtx and prelim2e.ins +% and the derived files prelim2e.sty +% +% \fi +% +% \CheckSum{129} +% +%% \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.3", +%% date = "29 May 2009", +%% filename = "prelim2e.sty", +%% address = {Martin Schr\"oder +%% Barmer Stra\"se 14 +%% 44137 Dortmund +%% Germany}, +%% telephone = "+49-231-1206574", +%% email = "martin@oneiros.de", +% 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." +%% } +%% =================================================================== +%% \fi +% +% \SVN $Rev: 1374 $ +% \SVNdate $Date: 2009-05-30 22:23:36 +0200 (Sa, 30. Mai 2009) $ +% +% \renewcommand{\PrelimWords}{^^A +% \package{prelim2e} package -- +% Version \fileversion (\SVNRev) -- +% 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} +% \changes{v1.3}{2009/05/29}{LPPL 1.3} +% +% \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, subversion +% revision~\#\SVNRev, last revised \protect\SVNDate.}^^A +% } +% \author{Martin Schr\"oder\\[0.5ex] +% \normalsize Barmer Stra\ss{}e 14\\ +% \normalsize 44137 Dortmund\\ +% \normalsize Germany\\ +% \normalsize \href{mailto:martin@oneiros.de}{\texttt{martin@oneiros.de}}} +% \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 (\svnInfoRevision) -- +% 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{norsk}] +% \changes{v1.3}{2009/05/29}{\option{norsk} option added} +% \NEWfeature{2009/05/29} +% This sets the text to ``Forel\o{}pig versjon''. +% 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, +% 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, +% and Sveinung Heggen (\texttt{sveinung.heggen@orkla.no}) provided the +% text for the \option{norsk} 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}, +% \option{italian} and \option{norsk} 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} +% \changes{v1.3}{2009/05/29}{\option{norsk} 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}} +\DeclareOption{norsk}{% + \renewcommand{\PrelimWords}{Forel\o{}pig versjon}} +% \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@}} +% \changes{v1.24}{2004/03/28}{Bugfix: Add missing \%. +% Bug reported by Carsten Heinz (\texttt{cheinz@gmx.de}).} +% \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 +% ^^A vim:tw=70:ts=2 diff --git a/macros/latex/contrib/ms/prelim2e.ins b/macros/latex/contrib/ms/prelim2e.ins new file mode 100644 index 0000000000..00a57b5469 --- /dev/null +++ b/macros/latex/contrib/ms/prelim2e.ins @@ -0,0 +1,110 @@ +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesFile{prelim2e.ins} +% [2009/05/29 v1.3 Installation script for prelim2e Package (MS)] +%% +%% Copyright (C) 1995..2009 by Martin Schroeder. +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Martin Schr\"oder. +%% +%% This work consists of the files prelim2e.dtx and prelim2e.ins +%% and the derived file prelim2e.sty. +%% +%% $Id: prelim2e.ins 1374 2009-05-30 20:23:36Z oneiros $ +%% --------------- 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.dtx} +\Msg{* \space\space prelim2e.ins} +\Msg{*} +\Msg{* If you receive only some of these files from someone, complain!} +\Msg{*} +\Msg{***********************************************************} + +\preamble + +Copyright (C) 1995..2009 by Martin Schroeder. + +This file is part of the Prelim2e package +----------------------------------------- + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Martin Schroeder. + +This work consists of the files prelim2e.dtx and prelim2e.ins +and the derived file prelim2e.sty. + +\endpreamble +\declarepreamble\driverpreamble + +Copyright (C) 1995..2009 Martin Schroeder. + +This file is part of the Prelim2e package +----------------------------------------- + +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'. +%% vim:syntax=tex:tw=70:ts=2 diff --git a/macros/latex/contrib/ms/prelim2e.pdf b/macros/latex/contrib/ms/prelim2e.pdf Binary files differnew file mode 100644 index 0000000000..5f1c8787f7 --- /dev/null +++ b/macros/latex/contrib/ms/prelim2e.pdf |