summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/romanneg/romanneg.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/romanneg/romanneg.sty')
-rw-r--r--macros/latex/contrib/romanneg/romanneg.sty51
1 files changed, 51 insertions, 0 deletions
diff --git a/macros/latex/contrib/romanneg/romanneg.sty b/macros/latex/contrib/romanneg/romanneg.sty
new file mode 100644
index 0000000000..0232bfa438
--- /dev/null
+++ b/macros/latex/contrib/romanneg/romanneg.sty
@@ -0,0 +1,51 @@
+%%% ====================================================================
+%%% @LaTeX-style-file{
+%%% author = "Mario Wolczko",
+%%% version = "1.03",
+%%% date = "15 June 1992",
+%%% time = "18:11:59 BST",
+%%% filename = "romanneg.sty",
+%%% email = "mario@acm.org",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "LaTeX, output, pagenumbers",
+%%% supported = "no",
+%%% docstring = "Causes the page numbers in the DVI file (as
+%%% defined by \count0) to be negative when roman pagenumbering is
+%%% in effect.",
+%%% }
+%%% ====================================================================
+%
+% This file is in the public domain
+%
+% 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|
+
+\let\@oldstepcounter\stepcounter
+\def\stepcounter#1{{\def\@tmpa{#1}\def\@tmpb{page}%
+ \ifx\@tmpa\@tmpb\@steppagecounter\else\@oldstepcounter{#1}\fi}}
+
+% 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}}