summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-06-01 22:55:28 +0000
committerKarl Berry <karl@freefriends.org>2006-06-01 22:55:28 +0000
commite39a33ec4d6321f43329645a687af33893234ff5 (patch)
treec0d0b451e31a63049413e1a1bd84a41561402303
parent28be218625f3e3978617db02d1d16b56316f779a (diff)
new package chappg
git-svn-id: svn://tug.org/texlive/trunk@1646 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xBuild/tools/tpm-ctan-check7
-rw-r--r--Master/texmf-dist/doc/latex/chappg/chappg.pdfbin0 -> 205179 bytes
-rw-r--r--Master/texmf-dist/source/latex/chappg/chappg.dtx518
-rw-r--r--Master/texmf-dist/source/latex/chappg/chappg.ins25
-rw-r--r--Master/texmf-dist/tex/latex/chappg/chappg.sty140
-rw-r--r--Master/texmf-dist/tpm/chappg.tpm26
-rw-r--r--Master/texmf/lists/chappg7
-rw-r--r--Master/texmf/tpm/collection-latexextra.tpm1
8 files changed, 721 insertions, 3 deletions
diff --git a/Build/tools/tpm-ctan-check b/Build/tools/tpm-ctan-check
index 5b8ac9878b0..78371d8f0ab 100755
--- a/Build/tools/tpm-ctan-check
+++ b/Build/tools/tpm-ctan-check
@@ -29,9 +29,10 @@ sub main
"archaic", "arev", "ascii",
"babel", "babelbib", "beebe", "betababel", "bghyphen", "bibhtml",
"bibleref", "blacklettert1", "booklet", "breakurl", "bytefield" ,
- "caption", "carlisle", "cbcoptic", "changebar", "chemcompounds",
- "circ", "cjhebrew", "colortbl", "commath", "complexity",
- "comprehensive", "computational-complexity", "csquotes", "curve",
+ "caption", "carlisle", "cbcoptic", "changebar", "chappg",
+ "chemcompounds", "circ", "cjhebrew", "colortbl", "commath",
+ "complexity", "comprehensive", "computational-complexity",
+ "csquotes", "curve",
"datetime", "devanagr", "dk-bib", "doipubmed", "dottex", "dtxtut",
"ednotes", "elpres", "endheads", "enumitem", "etaremune", "esint",
"esint-type1", "ethiop", "europecv", "exteps",
diff --git a/Master/texmf-dist/doc/latex/chappg/chappg.pdf b/Master/texmf-dist/doc/latex/chappg/chappg.pdf
new file mode 100644
index 00000000000..b0a72a6162b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/chappg/chappg.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/chappg/chappg.dtx b/Master/texmf-dist/source/latex/chappg/chappg.dtx
new file mode 100644
index 00000000000..32457b5e055
--- /dev/null
+++ b/Master/texmf-dist/source/latex/chappg/chappg.dtx
@@ -0,0 +1,518 @@
+%\iffalse meta-comment, etc.
+%% This is chappg.dtx, and it's -*-LaTeX-*- text
+%
+% We use the same body for the \cs{ProvidesFile} as for the
+% \cs{ProvidesPackage} command.
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+%<*dtx>
+\ProvidesFile{chappg.dtx}%
+%</dtx>
+%<package>\ProvidesPackage{chappg}%
+ [2006/05/09 v2.1b page numbering by chapter
+%<package> number pages by chapter (or other unit)%
+%<*dtx>
+ chappg package source file%
+%</dtx>
+ ]% $Id: chappg.dtx,v 1.4 2006/05/09 07:12:20 rf10 Exp rf10 $
+% \end{macrocode}
+%
+% Code to enable LaTeX processing of the file without the intervention
+% of a driver file.
+% \begin{macrocode}
+%<*driver>
+\setcounter{errorcontextlines}{999}
+\documentclass{ltxdoc}
+% \end{macrocode}
+%
+% we limit the things that we will index
+% \begin{macrocode}
+\DoNotIndex{\#,\@MM,\@cclv,\@gobble,\@ifnextchar,\@ifundefined}
+\DoNotIndex{\|,\advance,\begingroup,\bgroup,\box,\csname}
+\DoNotIndex{\dagger,\ddagger,\def,\divide,\dp}
+\DoNotIndex{\edef,\egroup,\ifx,\else,\fi,\endcsname,\endgroup,\end}
+\DoNotIndex{\endinput,\ensuremath,\expandafter}
+\DoNotIndex{\gdef,\global,\hbox,\hskip,\hss,\ht}
+\DoNotIndex{\ifcase,\or,\ifdim,\ifhbox,\ifhmode,\ifnum,\ifvbox,
+ \fi ,\fi ,\fi ,\fi ,\fi ,\fi }
+\DoNotIndex{\ifvoid,\fi,\kern,\let,\long,\loop}
+\DoNotIndex{\MessageBreak,\newbox,\newcommand,\newcounter}
+\DoNotIndex{\newdimen,\newif,\newskip,\newtoks,\noexpand}
+\DoNotIndex{\P,\p@,\par,\penalty,\protect,\providecommand}
+\DoNotIndex{\relax,\renewcommand,\S,\setbox,\setcounter}
+\DoNotIndex{\skip,\space,\the,\typeout,\vbox,\vskip}
+\DoNotIndex{\wd,\xdef,\@}
+\GetFileInfo{chappg.dtx}
+\EnableCrossrefs
+% to get documented source of the package, comment out the next line,
+% and uncomment the following one; otherwise, create yourself
+% (somewhere on your LaTeX input path) a file ltxdoc.cfg that contains
+% simply \AtBeginDocument{\AlsoImplementation}
+\OnlyDescription
+%\AlsoImplementation
+\setcounter{StandardModuleDepth}{1}
+\begin{document}
+\DocInput{chappg.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \CheckSum{201}
+%
+% \title{\texttt{chappg} --- a \LaTeX{} package for\\
+% numbering pages ``by chapter''\thanks{This file has
+% version number \fileversion, last revised \filedate}}
+% \author{Robin Fairbairns\thanks{University of Cambridge Computer
+% Laboratory, William Gates Building, J.\,J. Thompson Avenue,
+% Cambridge, CB2 0FD, UK
+% (\texttt{robin.fairbairns<commercial-rate-sign>cl.cam.ac.uk})}}
+% \maketitle
+%
+% \section*{Support}
+%
+% Some support of this package is available \emph{for unchanged copies
+% of the package} via email to me at the address given in the
+% footnote. Support will remain available at least as long as the
+% address remains valid. I don't guarantee anything, but I will
+% probably look at any bug reports you may submit, and may correct
+% problems reported (either in my code or in yours\dots).
+%
+% \section*{Copyright statement}
+%
+% \noindent Program: \texttt{chappg.dtx}\par
+% \noindent Copyright 2000, 2003 Robin Fairbairns
+%
+% This program may redistributed and/or modified under the terms
+% of the LaTeX Project Public License in file \texttt{lppl.txt}
+% (available from CTAN directory \texttt{macros/latex/base}; either
+% version 1.3 of the License, or (at your option) any later version.
+% The latest version of this license is in
+% \texttt{http://www.latex-project.org/lppl.txt}
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% \section{User interface~--- package options}
+%
+% The package provides two options.
+%
+% \noindent|\usepackage[auto]{chappg}| causes the package to set
+% pagenumbering according to its scheme, using the command
+% |\pagenumbering{bychapter}|
+%
+% \smallskip\noindent|\usepackage[noauto]{chappg}| tells the package
+% not to set pagenumbering; the user is then free to set up
+% pagenumbering according to her own scheme of things.
+%
+% \smallskip\noindent In the absence of any package option, the
+% package acts as if the user had given the \texttt{auto} option; this
+% action is compatible with earlier versions of this package.
+%
+% \section{User interface~--- commands}
+%
+% The purpose of the package is to provide a page-numbering style
+% ``\texttt{bychapter}'', for use with the \cs{pagenumbering} command.
+% In simple use, the command
+% \begin{verbatim}
+% \pagenumbering{bychapter}
+% \end{verbatim}
+% will
+% \begin{itemize}
+% \item reset the \texttt{page} counter to \texttt{1},
+% \item cause page numbers to display as
+% ``\meta{chapter}-\meta{page}'',
+% \item cause page numbers to be reset to 1 at the start of each chapter.
+% \end{itemize}
+% Of course, none of this is useful (indeed, an error is provoked) if
+% the document is not using the standard \textsf{report} or
+% \textsf{book} class, or some other class that provides
+% \cs{chapter}-level divisions.
+%
+% More complicated use of the package is possible, using the commands
+% described below.
+%
+% The package modifies the \LaTeX{} kernel command \cs{pagenumbering}
+% so that it has an optional argument; all the kernel-defined
+% numbering styles ignore the optional argument, but if the numbering
+% style is \texttt{bychapter}, the argument may be used to specify a
+% means of numbering pages. Thus, while
+% \begin{verbatim}
+% \pagenumbering{bychapter}
+% \end{verbatim}
+% gives page numbers in the form ``\meta{chapter}-\meta{page}'', so
+% pages of chapter 3 will be numbered 3-1, 3-2, etc., and pages of
+% appendix B will be numbered B-1, B-2, etc.
+%
+% With the optional argument form:
+% \begin{verbatim}
+% \pagenumbering[Index]{bychapter}
+% \end{verbatim}
+% page numbers will appear in the form ``Index-\meta{page}''. One of
+% the anticipated uses of this facility is just as indicated~---
+% providing by-chapter numbering of the pages of chapters that don't
+% have numbers (as index chapters don't in the standard classes).
+%
+% The separator between the chapter and page numbers (hyphen above,
+% but I can imagine people wanting it to be an en-dash) is
+% \cs{chappgsep}, which en-dash-lovers may redefine (after loading the
+% package); for example:
+%\begin{verbatim}
+% \renewcommand{\chappgsep}{--}%
+%\end{verbatim}
+% Havoc is wreaked with this structure in the LaTeX \cs{frontmatter}
+% and \cs{mainmatter} commands (which both explicitly use
+% \cs{pagenumbering} and therefore destroy the changed definition of
+% \cs{thepage}).
+%
+% My design decision, when converting this package for use under
+% LaTeX~2e was to assume that \cs{frontmatter} is indeed to
+% be in \cs{pagenumbering}|{roman}|, and to restore the
+% chapter-numbering in \cs{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
+%\begin{verbatim}
+% \chapter{Preface}
+% \pagenumbering[Preface]{bychapter}
+%\end{verbatim}
+%
+% The conception breaks down again in \cs{backmatter}; again, the
+% \cs{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
+% \cs{pagenumbering}|[prefix]{bychapter}| since the \cs{backmatter} command,
+% the package rewrites the prefix as |{\bf??}|, and produces a warning
+% at the end of the document.
+%
+% \section{User interface --- a caution}
+%
+% The \cs{appendix} command can confuse \texttt{bychapter} page
+% numbering~--- unless you take some precautions, the last page or two
+% of your last ``real'' chapter will not be be numbered ``by
+% chapter''. The solution is to issue a \cs{clearpage} (if
+% \texttt{openany} class option is in effect), or \cs{cleardoublepage}
+% (if \texttt{openright} class option is in effect). By default,
+% \textsf{report} class uses the \texttt{openany} option, so you would
+% write:
+% \begin{quote}
+% \begin{verbatim}
+% ... text at end of chapter.
+% \clearpage
+% \appendix
+% \chapter{Title of first appendix}
+% \end{verbatim}
+% \end{quote}
+% \noindent whereas the \textsf{book} class uses the
+% \texttt{openright} option by default, so you would write:
+% \begin{quote}
+% \begin{verbatim}
+% ... text at end of chapter.
+% \cleardoublepage
+% \appendix
+% \chapter{Title of first appendix}
+% \end{verbatim}
+% \end{quote}
+%
+% \StopEventually{}
+%
+% \section{Code: Preliminaries}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% This package was
+% largely reimplemented for use as a \LaTeXe{} package, taking account
+% of \cs{mainmatter}, etc., and providing various extra capabilities,
+% by Robin Fairbairns, from a \LaTeX\,2.09 style file by
+% Max Hailperin, who first published the style in \texttt{TeXMaG}
+% Vol. 5, No. 3 (part 1).
+%
+% This release provides typeset documentation of the first \LaTeXe{}
+% version, for \TeX{} catalogue users' convenience.
+%
+% \begin{macro}{\if@chappg@auto}
+% \begin{macro}{\if@chappg@resetting}
+% Conditionals for control of page number resetting
+% \begin{macrocode}
+\newif\if@chappg@auto \@chappg@autofalse
+\newif\if@chappg@resetting \@chappg@resettingfalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Deal with package options; we set option \texttt{auto} by default,
+% for compatibility with the earlier versions of this package
+% \begin{macrocode}
+\DeclareOption{auto}{\@chappg@autotrue}
+\DeclareOption{noauto}{\@chappg@autofalse}
+\ExecuteOptions{auto}
+\ProcessOptions
+% \end{macrocode}
+%
+% \begin{macro}{\pagenumbering}
+% \begin{macro}{\@chappg@prefix}
+% Replace \cs{pagenumbering} so as to have the optional argument.
+% \begin{macrocode}
+\renewcommand\pagenumbering[2][\@chappg@thechapter]{%
+ \global\c@page\@ne
+ \protected@xdef\thepage{%
+ \expandafter\noexpand\csname @#2\endcsname
+ \noexpand\c@page
+ }%
+ \gdef\@chappg@prefix{#1}%
+% \end{macrocode}
+%
+% And now make sure that page numbering resetting is in its right
+% state
+% \begin{macrocode}
+ \def\@tempa{#2}%
+ \def\@tempb{bychapter}%
+ \ifx\@tempa\@tempb
+ \@chappg@checkloc
+ \if@chappg@resetting
+ \else
+ \@addtoreset{page}{chapter}%
+ \@chappg@resettingtrue
+ \fi
+ \else
+ \if@chappg@resetting
+ \@removefromreset{page}{chapter}%
+ \@chappg@resettingfalse
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@bychapter}
+% This is the command used by \cs{pagenumbering}\marg{bychapter} to
+% actually create the page number
+% \begin{macrocode}
+\newcommand\@bychapter[1]{%
+ \@chappg@prefix\chappgsep\@arabic#1%
+ \ifx\@chappg@prefix\@chappg@surprise
+ \if@chappg@surprised\else
+ \xdef\@chappg@surprise@line{\the\inputlineno}%
+ \global\@chappg@surprisedtrue
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chappg@thechapter}
+% Output a chapter number if there have been any chapters; otherwise
+% gobble the following thing, which will be \cs{chappgsep}
+% \begin{macrocode}
+\def\@chappg@thechapter{%
+ \ifnum\c@chapter=0
+ \expandafter\@gobble
+ \else
+ \thechapter
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\chappgsep}
+% Separator in the above
+% \begin{macrocode}
+\providecommand\chappgsep{-}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mainmatter}
+% \begin{macro}{\@@mainmatter}
+% Hack at \cs{mainmatter} so that it restores bychapter numbering if
+% there's been a \cs{frontmatter} command and it was there in the first place
+% \begin{macrocode}
+\let\@@mainmatter\mainmatter
+\def\mainmatter{\@@mainmatter
+ \if@chappg@auto\pagenumbering{bychapter}\fi
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\backmatter}
+% \begin{macro}{\@@backmatter}
+% \begin{macro}{\@chappg@surprise}
+% \begin{macro}{\if@chappg@surprised}
+% Hack at \cs{backmatter} so that it warns the user of possibly surprising
+% results if \cs{pagenumbering}\oarg{whatever}\marg{bychapter} hasn't
+% been used
+% \begin{macrocode}
+\let\@@backmatter\backmatter
+\def\backmatter{\@@backmatter
+ \let\@chappg@prefix\@chappg@surprise
+}
+\def\@chappg@surprise{\textbf{??}}
+\newif\if@chappg@surprised \@chappg@surprisedfalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Generate a warning at end document if one of those ``surprised''
+% things has been executed, or if a \cs{pagenumbering} command was
+% given in a bad place.
+% \begin{macrocode}
+\AtEndDocument{%
+ \if@chappg@badloc
+ \PackageWarningNoLine{chappg}{Bad location for
+ \string\pagestyle{bychapter} command
+ \MessageBreak
+ \string\clearpage\space or \string\cleardoublepage\space
+ \MessageBreak
+ recommended before \string\pagestyle\space on line
+ \@chappg@badloc@line
+ }
+ \fi
+ \if@chappg@surprised
+ \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
+}
+% \end{macrocode}
+%
+% \begin{macro}{\@chappg@checkloc}
+% \begin{macro}{\if@chappg@badloc}
+% Check that the current location is appropriate for a
+% \texttt{bychapter} change.
+% \begin{macrocode}
+\newif\if@chappg@badloc
+\def\@chappg@checkloc{%
+ \ifx\@onlypreamble\@notprerr
+ \ifhmode
+ \@chappg@badloctrue
+ \xdef\@chappg@badloc@line{\the\inputlineno}%
+ \else
+ \ifdim\pagetotal>1sp
+ \@chappg@badloctrue
+ \xdef\@chappg@badloc@line{\the\inputlineno}%
+ \fi
+ \fi
+ \fi % not in preamble
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \iffalse
+% Experimental: work not yet completed
+%
+% command to hack at an environment to cause it to behave prettily
+% \#1$\mapsto$environment name, \#2$\mapsto$prefix for page numbers
+% \begin{macrocode}
+%\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
+% }%
+%}
+% \end{macrocode}
+%
+% Specific cases: set up for dealing with bibliography, index, and (if
+% it's defined) glossary
+% \begin{macrocode}
+%\bychapterenv{thebibliography}\bibname
+%\bychapterenv{theindex}\indexname
+%\@ifundefined{theglossary}{}{%
+% \bychapterenv{theglossary}{Glossary}%
+%}
+% \end{macrocode}
+% \fi
+%
+%
+% The next magic makes the page counter be reset to one rather than zero
+% \begin{macrocode}
+\renewcommand\@stpelt[1]{%
+ \global\csname c@#1\endcsname
+ \expandafter\ifx \csname c@#1\endcsname \c@page
+ \@ne
+ \else
+ \z@
+ \fi
+}
+% \end{macrocode}
+%
+% Finally, we select the bychapter as the default page style if the
+% user so requires. If the \texttt{noauto}
+% option was given, the user has opted to execute the command hirself,
+% but otherwise we behave backwards-compatibly. The selection will be
+% hacked by \cs{frontmatter}, if the author uses it.
+% \begin{macrocode}
+\if@chappg@auto\pagenumbering{bychapter}\fi
+% \end{macrocode}
+%
+% \begin{macro}{\@removefromreset}
+%% fragment included from\\
+%% CTAN macros/latex/contrib/fragments/removefr.tex
+%%
+%Date: Sat, 30 Jul 1994 17:58:55 PST\\
+%From: Donald Arseneau
+%
+% A utility macro:\\
+% \cs{@removefromreset}\marg{FOO}\marg{BAR} : Removes counter FOO
+% from the list of counters \cs{cl@BAR} to be reset when counter BAR is
+% stepped. The opposite of \cs{@addtoreset}.
+% \begin{macrocode}
+\def\@removefromreset#1#2{\let\@tempb\@elt
+ \expandafter\let\expandafter\@tempa\csname c@#1\endcsname
+ \def\@elt##1{\expandafter\ifx\csname c@##1\endcsname\@tempa\else
+ \noexpand\@elt{##1}\fi}%
+ \expandafter\edef\csname cl@#2\endcsname{\csname cl@#2\endcsname}%
+ \let\@elt\@tempb}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \Finale
+%
+%
+%% \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 \~}
diff --git a/Master/texmf-dist/source/latex/chappg/chappg.ins b/Master/texmf-dist/source/latex/chappg/chappg.ins
new file mode 100644
index 00000000000..3b69fd23246
--- /dev/null
+++ b/Master/texmf-dist/source/latex/chappg/chappg.ins
@@ -0,0 +1,25 @@
+\def\batchfile{chappg.ins}
+\input docstrip.tex
+\keepsilent
+\Msg{*** Generating the chappg package ***}
+\askforoverwritefalse
+\generate{%
+ \file{chappg.sty}{\from{chappg.dtx}{package}}%
+}
+
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the file}
+\Msg{* footmisc.sty into a directory searched by TeX}
+\Msg{*}
+\Msg{* Usual TDS location:}
+\Msg{* \space\space tex/latex/misc}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{*}
+\Msg{***********************************************************}
+}
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/chappg/chappg.sty b/Master/texmf-dist/tex/latex/chappg/chappg.sty
new file mode 100644
index 00000000000..cd4526335d7
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/chappg/chappg.sty
@@ -0,0 +1,140 @@
+%%
+%% This is file `chappg.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% chappg.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from chappg.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file chappg.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%% This is chappg.dtx, and it's -*-LaTeX-*- text
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{chappg}%
+ [2006/05/09 v2.1b page numbering by chapter
+ number pages by chapter (or other unit)%
+ ]% $Id: chappg.dtx,v 1.4 2006/05/09 07:12:20 rf10 Exp rf10 $
+\newif\if@chappg@auto \@chappg@autofalse
+\newif\if@chappg@resetting \@chappg@resettingfalse
+\DeclareOption{auto}{\@chappg@autotrue}
+\DeclareOption{noauto}{\@chappg@autofalse}
+\ExecuteOptions{auto}
+\ProcessOptions
+\renewcommand\pagenumbering[2][\@chappg@thechapter]{%
+ \global\c@page\@ne
+ \protected@xdef\thepage{%
+ \expandafter\noexpand\csname @#2\endcsname
+ \noexpand\c@page
+ }%
+ \gdef\@chappg@prefix{#1}%
+ \def\@tempa{#2}%
+ \def\@tempb{bychapter}%
+ \ifx\@tempa\@tempb
+ \@chappg@checkloc
+ \if@chappg@resetting
+ \else
+ \@addtoreset{page}{chapter}%
+ \@chappg@resettingtrue
+ \fi
+ \else
+ \if@chappg@resetting
+ \@removefromreset{page}{chapter}%
+ \@chappg@resettingfalse
+ \fi
+ \fi
+}
+\newcommand\@bychapter[1]{%
+ \@chappg@prefix\chappgsep\@arabic#1%
+ \ifx\@chappg@prefix\@chappg@surprise
+ \if@chappg@surprised\else
+ \xdef\@chappg@surprise@line{\the\inputlineno}%
+ \global\@chappg@surprisedtrue
+ \fi
+ \fi
+}
+\def\@chappg@thechapter{%
+ \ifnum\c@chapter=0
+ \expandafter\@gobble
+ \else
+ \thechapter
+ \fi
+}
+\providecommand\chappgsep{-}
+\let\@@mainmatter\mainmatter
+\def\mainmatter{\@@mainmatter
+ \if@chappg@auto\pagenumbering{bychapter}\fi
+}
+\let\@@backmatter\backmatter
+\def\backmatter{\@@backmatter
+ \let\@chappg@prefix\@chappg@surprise
+}
+\def\@chappg@surprise{\textbf{??}}
+\newif\if@chappg@surprised \@chappg@surprisedfalse
+\AtEndDocument{%
+ \if@chappg@badloc
+ \PackageWarningNoLine{chappg}{Bad location for
+ \string\pagestyle{bychapter} command
+ \MessageBreak
+ \string\clearpage\space or \string\cleardoublepage\space
+ \MessageBreak
+ recommended before \string\pagestyle\space on line
+ \@chappg@badloc@line
+ }
+ \fi
+ \if@chappg@surprised
+ \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
+}
+\newif\if@chappg@badloc
+\def\@chappg@checkloc{%
+ \ifx\@onlypreamble\@notprerr
+ \ifhmode
+ \@chappg@badloctrue
+ \xdef\@chappg@badloc@line{\the\inputlineno}%
+ \else
+ \ifdim\pagetotal>1sp
+ \@chappg@badloctrue
+ \xdef\@chappg@badloc@line{\the\inputlineno}%
+ \fi
+ \fi
+ \fi % not in preamble
+}
+\renewcommand\@stpelt[1]{%
+ \global\csname c@#1\endcsname
+ \expandafter\ifx \csname c@#1\endcsname \c@page
+ \@ne
+ \else
+ \z@
+ \fi
+}
+\if@chappg@auto\pagenumbering{bychapter}\fi
+%% fragment included from\\
+%% CTAN macros/latex/contrib/fragments/removefr.tex
+%%
+\def\@removefromreset#1#2{\let\@tempb\@elt
+ \expandafter\let\expandafter\@tempa\csname c@#1\endcsname
+ \def\@elt##1{\expandafter\ifx\csname c@##1\endcsname\@tempa\else
+ \noexpand\@elt{##1}\fi}%
+ \expandafter\edef\csname cl@#2\endcsname{\csname cl@#2\endcsname}%
+ \let\@elt\@tempb}
+\endinput
+%%
+%% End of file `chappg.sty'.
diff --git a/Master/texmf-dist/tpm/chappg.tpm b/Master/texmf-dist/tpm/chappg.tpm
new file mode 100644
index 00000000000..f0f551e008f
--- /dev/null
+++ b/Master/texmf-dist/tpm/chappg.tpm
@@ -0,0 +1,26 @@
+<!DOCTYPE rdf:RDF SYSTEM "../../support/tpm.dtd">
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:TPM="http://texlive.dante.de/">
+ <rdf:Description about="http://texlive.dante.de/texlive/Package/chappg.zip">
+ <TPM:Name>chappg</TPM:Name>
+ <TPM:Type>Package</TPM:Type>
+ <TPM:Date>2006/05/09 07:14:53</TPM:Date>
+ <TPM:Version></TPM:Version>
+ <TPM:Creator>karl</TPM:Creator>
+ <TPM:Title>The chappg package.</TPM:Title>
+ <TPM:Description></TPM:Description>
+ <TPM:Author></TPM:Author>
+ <TPM:Size>227032</TPM:Size>
+ <TPM:Build/>
+ <TPM:RunFiles size="4884">
+texmf-dist/tex/latex/chappg/chappg.sty
+texmf-dist/tpm/chappg.tpm
+ </TPM:RunFiles>
+ <TPM:DocFiles size="205179">texmf-dist/doc/latex/chappg/chappg.pdf</TPM:DocFiles>
+ <TPM:SourceFiles size="17935">
+texmf-dist/source/latex/chappg/chappg.dtx
+texmf-dist/source/latex/chappg/chappg.ins
+ </TPM:SourceFiles>
+ <TPM:Provides>Package/chappg</TPM:Provides>
+ </rdf:Description>
+</rdf:RDF>
+
diff --git a/Master/texmf/lists/chappg b/Master/texmf/lists/chappg
new file mode 100644
index 00000000000..01d08215044
--- /dev/null
+++ b/Master/texmf/lists/chappg
@@ -0,0 +1,7 @@
+texmf-dist/doc/latex/chappg/chappg.pdf
+texmf-dist/source/latex/chappg/chappg.dtx
+texmf-dist/source/latex/chappg/chappg.ins
+texmf-dist/tex/latex/chappg/chappg.sty
+texmf-dist/tpm/chappg.tpm
+
+texmf/lists/chappg
diff --git a/Master/texmf/tpm/collection-latexextra.tpm b/Master/texmf/tpm/collection-latexextra.tpm
index 92c9fc3a636..5c3c573344a 100644
--- a/Master/texmf/tpm/collection-latexextra.tpm
+++ b/Master/texmf/tpm/collection-latexextra.tpm
@@ -77,6 +77,7 @@ A large collection of add-on packages for LaTeX.
<TPM:Package name="cd-cover"/>
<TPM:Package name="cdpbundl"/>
<TPM:Package name="changebar"/>
+ <TPM:Package name="chappg"/>
<TPM:Package name="chapterfolder"/>
<TPM:Package name="china2e"/>
<TPM:Package name="circ"/>