summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/refman/pagepc.sty
blob: e0f2c208958335acaab376456b435450d6596990 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
%% 
%% This is page-per-chapter-package
%% version 2.0
%%
% Copyright  1998 - 99 by Axel Kielhorn
% 
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
%% version 1 of the License, or any later version.
%% 
%% Don't use it with repref!
%% Refrep has these commands already implemented
%%
%% This version forces openright!!
%%
%% Index-commands should work in chapters and appedices,
%% they will not work as expected in the preface when the
%% pagenumbering is not arabic. (MakeIndex can't sort roman-
%% numbers)
%%
%% Bugs:
%%       The index is sortet according to the pagenumber
%%       without looking at the chapternumber.
%%       I don't think MakeIndex could handle that.
%%

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pagepc}[1995/05/13]

\@ifundefined{chapter}
{\PackageError{pagepc}{%
  You can't number your pages per chapter\MessageBreak when you 
  have no chapters
  }{%
  Use ``report'' or ``book'' instead.
  }
}%
{}

%% Reset the pagecounter to 1 at the start of a new chapter
%%
\let\ppchapter=\@chapter
\def\@chapter{\if@pageperchapter\setcounter{page}{1}\fi
                    \ppchapter}

%% Force a pagebreak at the start of the appendix, otherwise
%% the number of the page right befor the appendix comes
%% out wrong
%%
\let\ppappendix=\appendix
\def\appendix{\if@pageperchapter\newpage\fi\ppappendix}

\newif\if@pageperchapter \@pageperchapterfalse

%% This command enables Page-per-Chapter, it is not on by
%% default to allow roman pagenumbers in the preface
%% (see sample-document)
%%
\newcommand{\pageperchapter}
    {\@pageperchaptertrue
     \@openrighttrue
     % Remember old setting for chapter 0 = preface
     \let\ppthepage=\thepage
     % The new number needs more space
     \renewcommand\@pnumwidth{2.55em}
     % Here it comes :-)
     \renewcommand\thepage{%
       \ifnum \c@chapter = \z@
          \ppthepage
       \else
          \thechapter\ -- \arabic{page}
       \fi
       }
     }

%% This is a hack to make MakeIndex happy :-(
%% You can't use the |-form of an indexentry because
%% it is used to store the chapternumber.
%%
\def\@wrindex#1{%
   \ifnum \c@chapter = \z@
      \protected@write\@indexfile{}%
      {\string\indexentry{#1}{\arabic{page}}}%
      % The above is wrong if pagenumbering!=arabic,
      % but I think this is better than nothing.
   \else
       \protected@write\@indexfile{}%
      {\string\indexentry{#1|ppc{\thechapter}}{\arabic{page}}}%
   \fi
 \endgroup
 \@esphack
}

%% This prints the pagenumber in the index
%%
\def\ppc#1#2{#1 -- #2}

\endinput