summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ms/count1to.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/ms/count1to.dtx')
-rw-r--r--macros/latex/contrib/ms/count1to.dtx1000
1 files changed, 500 insertions, 500 deletions
diff --git a/macros/latex/contrib/ms/count1to.dtx b/macros/latex/contrib/ms/count1to.dtx
index 53b7f148d0..35918bce60 100644
--- a/macros/latex/contrib/ms/count1to.dtx
+++ b/macros/latex/contrib/ms/count1to.dtx
@@ -1,500 +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
+% \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