% romanneg.sty --- LaTeX style option for negative page numbers % when in roman % % This style option should not change the appearance of a document, % but merely change the page numbers (as defined by \count0) in the % DVI file to be negative when roman pagenumbering is in use. % To do this, the \@steppagecounter macro increments the absolute % value of \count0 \def\@steppagecounter{% based on \advancepageno, TeXbook, p.362 \ifnum\c@page<\z@ \global\advance\c@page\m@ne \else\global\advance\c@page\@ne \fi} % increase |c@page| % The output routine is slightly modified so that \@steppagecounter is % used. We assume a) that the page counter is only modified in the % output routine, and by \pagenumbering, and % b) the output routine below is otherwise identical to that defined % by LaTeX. This should be checked before installation. \def\@outputpage{\begingroup\catcode`\ =10 \if@specialpage \global\@specialpagefalse\@nameuse{ps@\@specialstyle}\fi \if@twoside \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot \let\@themargin\oddsidemargin \else \let\@thehead\@evenhead \let\@thefoot\@evenfoot \let\@themargin\evensidemargin \fi\fi \shipout \vbox{\normalsize \baselineskip\z@ \lineskip\z@ \vskip \topmargin \moveright\@themargin \vbox{\setbox\@tempboxa \vbox to\headheight{\vfil \hbox to\textwidth{\@thehead}} \dp\@tempboxa\z@ \box\@tempboxa \vskip \headsep \box\@outputbox \baselineskip\footskip \hbox to\textwidth{\@thefoot}}}\global\@colht\textheight \endgroup\@steppagecounter\let\firstmark\botmark} % <-- only % this line changed % Modified version of the pagenumbering command that sets \count0 (aka % \c@page) to -1 rather than 1 if roman numbering is specified. \def\pagenumbering#1{{% \def\@tmpa{#1} \def\@tmpb{roman} \def\@tmpc{Roman} \ifx\@tmpa\@tmpb % roman option; set -ve page number. \global\c@page \m@ne \else\ifx\@tmpa\@tmpc \global\c@page \m@ne \else \global\c@page \@ne \fi\fi \gdef\thepage{\csname @#1\endcsname \c@page}}} % the modified versions of \@roman and \@Roman deal with negatives \def\@romannumeral#1{\ifnum#1<0 \romannumeral-#1 \else\romannumeral#1 \fi} \def\@roman#1{\@romannumeral #1} \def\@Roman#1{\expandafter\uppercase\expandafter{\@romannumeral #1}}