summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/ltxmisc/chappg.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/ltxmisc/chappg.sty')
-rw-r--r--Master/texmf-dist/tex/latex/ltxmisc/chappg.sty191
1 files changed, 191 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ltxmisc/chappg.sty b/Master/texmf-dist/tex/latex/ltxmisc/chappg.sty
new file mode 100644
index 00000000000..943cf041424
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ltxmisc/chappg.sty
@@ -0,0 +1,191 @@
+% Define \thepage to output chapter-page (such as 1-3, 5-2, etc.)
+% and have each chapter's page number begin on 1.
+%
+% Largely reimplemented for use as a LaTeX2e package, taking account
+% of \mainmatter, etc., and providing various extra capabilities,
+% Robin Fairbairns <rf@cl.cam.ac.uk>, from an original by
+% Max Hailperin <max@nic.gac.edu>, who asserted that the original
+% source was TeXMaG Vol. 5, No. 3 (part 1)
+%
+% See documentation after \endinput
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.1
+% 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.1 or later is part of all distributions of LaTeX
+% version 1999/06/01 or later.
+%
+% This program consists of the file chappg.sty
+
+\NeedsTeXFormat{LaTeX2e}% Seems to work with any version
+\ProvidesPackage{chappg}[2000/05/24 v2.0d page numbering by chapter]
+
+%
+% reset page number when chapter number is stepped
+\@addtoreset{page}{chapter}
+
+\renewcommand\pagenumbering[2][\@chappg@thechapter]{%
+ \global\c@page\@ne
+ \protected@xdef\thepage{%
+ \expandafter\noexpand\csname @#2\endcsname
+ \noexpand\c@page
+ }%
+ \gdef\@chappg@prefix{#1}%
+}
+
+% This is the command used by \pagenumbering{bychapter} to actually
+% create the page number
+\newcommand\@bychapter[1]{%
+ \@chappg@prefix\chappgsep\@arabic#1%
+ \ifx\@chappg@prefix\@chappg@surprise
+ \if@chappgsurprised\else
+ \xdef\@chappg@surprise@line{\the\inputlineno}%
+ \global\@chappgsurprisedtrue
+ \fi
+ \fi
+}
+
+% output a chapter number if there have been any chapters; otherwise
+% gobble the following thing, which will be \chappgsep
+\def\@chappg@thechapter{%
+ \ifnum\c@chapter=0
+ \expandafter\@gobble
+ \else
+ \thechapter
+ \fi
+}
+
+% separator in the above
+\providecommand\chappgsep{-}
+
+%
+% select default: this will be hacked by \frontmatter if the author
+% uses it
+\pagenumbering{bychapter}
+
+%
+% Hack at \mainmatter so that it restores bychapter numbering if
+% there's been a \frontmatter command
+\let\@@mainmatter\mainmatter
+\def\mainmatter{\@@mainmatter
+ \pagenumbering{bychapter}%
+}
+
+%
+% Hack at \backmatter so that it warns the user of possibly surprising
+% results if \pagenumbering[whatever]{bychapter} hasn't been used
+\let\@@backmatter\backmatter
+\def\backmatter{\@@backmatter
+ \let\@chappg@prefix\@chappg@surprise
+}
+\def\@chappg@surprise{\textbf{??}}
+\newif\if@chappgsurprised \@chappgsurprisedfalse
+
+\AtEndDocument{\if@chappgsurprised
+ \PackageWarningNoLine{chappg}{Possibly surprising page numbering in
+ \string\backmatter
+ \MessageBreak
+ Use \string\pagenumbering[prefix]{bychapter}%
+ \MessageBreak
+ to select alternative before line \@chappg@surprise@line
+ }
+ \fi
+}
+
+%%
+%% command to hack at an environment to cause it to behave prettily
+%% #1->environment name, #2->prefix for page numbers
+%\newcommand\bychapterenv[2]{%
+% \@ifundefined{@@#1}{%
+% \expandafter\let\csname @@#1\expandafter\endcsname
+% \csname#1\endcsname
+% }{}%
+% \expandafter\edef\csname#1\endcsname{%
+% \expandafter\noexpand\csname @@#1\endcsname
+% \global\let\noexpand\@@bychapter\noexpand\@bychapter
+% \noexpand\pagenumbering[\noexpand#2]{bychapter}%
+% }%
+% \@ifundefined{@@end#1}{%
+% \expandafter\let\csname @@end#1\expandafter\endcsname
+% \csname end#1\endcsname
+% }{}%
+% \expandafter\edef\csname end#1\endcsname{%
+% \expandafter\noexpand\csname @@end#1\endcsname
+% \global\let\noexpand\@bychapter\noexpand\@@bychapter
+% }%
+%}
+%
+%%
+%% Specific cases: set up for dealing with bibliography, index, and (if
+%% it's defined) glossary
+%\bychapterenv{thebibliography}\bibname
+%\bychapterenv{theindex}\indexname
+%\@ifundefined{theglossary}{}{%
+% \bychapterenv{theglossary}{Glossary}%
+%}
+
+%
+% The next magic makes the page counter be reset to one rather than zero
+\renewcommand\@stpelt[1]{%
+ \global\csname c@#1\endcsname
+ \expandafter\ifx \csname c@#1\endcsname \c@page
+ \@ne
+ \else
+ \z@
+ \fi
+}
+\endinput
+
+chappg.sty: number pages by chapter
+
+Basic operation of the package is to redefine \thepage to be
+\thechapter-\arabic{page}, and to cause the page number to be reset
+(to 1) at the start of each chapter. So the pages of chapter 3 will
+be numbered 3-1, 3-2, ..., and the pages of appendix B will be
+numbered B-1, B-2, ...
+
+The package assumes the environment of the standard report or book
+classes (or classes derived from them by inclusion or copying).
+
+The package's effect is achieved by defining a new \pagenumbering
+style `bychapter', and using it. The package changes \pagenumbering
+to take an optional argument, which is the `prefix' to the page
+number. Ordinarily, this will be the chapter number, but a user may
+care to say (for example):
+
+ \chapter*{Preface}
+ \pagenumbering[Preface]{bychapter}
+
+in her document somewhere, and the pages of the preface will be
+numbered Preface-1, Preface-2, ...
+
+The separator between the chapter and page numbers (hyphen above, but
+I can imagine people wanting it to be an en-dash) is \chappgsep, which
+en-dash-lovers may redefine (after loading the package); for example:
+
+ \renewcommand{\chappgsep}{--}%
+
+Havoc is wreaked with this structure in the LaTeX \frontmatter and
+\mainmatter commands (which both explicitly use \pagenumbering and
+therefore destroy the changed definition of \thepage
+
+My design decision was to assume that \frontmatter is indeed to be in
+\pagenumbering{roman}, and to restore the chapter-numbering in
+\mainmatter. Chapters in the frontmatter can not be numbered `by'
+their chapters, since the chapters don't actually have numbers. If
+the author wishes to have some special treatment of part of the
+frontmatter, the analogue of the above is
+
+ \chapter{Preface}
+ \pagenumbering[Preface]{bychapter}
+
+The conception breaks down again in \backmatter; again, the \chapter
+commands don't number the chapters, so that the pages will all be
+numbered as if they were `within' the last real chapter. Therefore,
+if by-chapter page numbering is still enabled while in the backmatter,
+and the user hasn't issued a new \pagenumbering[prefix]{bychapter}
+since the \backmatter command, the package rewrites the prefix as
+{\bf??}, and produces a warning at the end of the document.
+