1: % rae.sty for LaTeX2e
2: % Version 4-OCT-94.
3: % Contact Lee Larson (lmlars01@homer.louisville.edu) about bugs.
4:
5: % Identification
6: \NeedsTeXFormat{LaTeX2e}
7: \ProvidesClass{rae}[1994/10/04]
8:
9: % Bring in the article class
10: \LoadClass[twoside]{article}
11:
12: % Set the page dimensions for the Exchange
13: \setlength{\textheight}{6.75in}
14: \advance\textheight by \topskip
15: \setlength{\textwidth}{4.675in}
16:
17: % These define the parameters from the issueinfo.tex file, if
18: % it exists.
19: \newcommand{\Volume}[1]%
20: {\newsavebox{\volumebox}\sbox{\volumebox}{\scriptsize#1}
21: \let\Volume\relax}
22: \newcommand{\IssueNumber}[1]%
23: {\newsavebox{\issuebox}\sbox{\issuebox}{\scriptsize#1}
24: \let\IssueNumber\relax}
25: \newcommand{\Year}[1]%
26: {\newsavebox{\yearbox}\sbox{\yearbox}{\scriptsize#1}
27: \let\Year\relax}
28:
29: % Stuff to do at the beginning of text insertion.
30: \AtBeginDocument{%
31: % Catch first page number for the header information.
32: \label{firstpage}%
33: % If issueinfo.tex exists, then we're in production mode. So, we
34: % get the issue information from the disk and the starting page
35: % number. The format for issueinfo.tex has three lines
36: % \Volume{20}
37: % \IssueNumber{2}
38: % \Year{1994/5}
39: % with an optional fourth line to set the first page number to nn
40: % \firstpagenumber{nn}
41: \IfFileExists{issueinfo}{\input{issueinfo}\getfirstpage}{\null}
42: % Fill in the information at the bottom of the page for key words,
43: % Math Reviews classification and the date received by the
44: % editors. If any of the information macros is not there, then
45: %that one is left out.
46: \ifx\nnull\key@words%
47: \else
48: \insert\footins{\footnotesize
49: \fnstrut Key Words: \key@words\fnstrut}
50: \fi
51: \ifx\nnull\math@reviews%
52: \else
53: \insert\footins{\footnotesize
54: \fnstrut
55: Mathematical Reviews subject classification: \math@reviews
56: \fnstrut}
57: \fi
58: \ifx\date@received\nnull
59: \else
60: \insert\footins{\footnotesize
61: \fnstrut Received by the editors \date@received\fnstrut}
62: \fi
63: % Blow out macros which are no longer needed.
64: \let\getfirstpage\relax
65: \let\firstpagenumber\relax
66: \let\nnull\relax
67: }
68:
69: % Catch the last page number in the aux file for use in the
70: % journal header.
71: \AtEndDocument{\label{lastpage}}
72:
73: % Here is the information supplied in the header which is not
74: % part of the normal LaTeX topmatter.
75: \newcommand{\nnull}{\null} %For use with \ifx.
76: \newcommand{\fnstrut}{\rule{0pt}{\footnotesep}} % Separate notes
77: %
78: \newcommand{\keywords}[1]{\renewcommand{\key@words}{#1}}
79: \newcommand{\key@words}{\null}
80: %
81: \newcommand{\MathReviews}[1]{\renewcommand{\math@reviews}{#1}}
82: \newcommand{\math@reviews}{\null}
83: %
84: \def\received#1{\renewcommand{\date@received}{#1}}
85: \newcommand{\date@received}{\null}
86:
87: % Code to patch the myheadings option to sc instead of it.
88:
89: \def\ps@myheadings{%
90: \let\@oddfoot\@empty\let\@evenfoot\@empty
91: \def\@evenhead{\thepage\hfil\scshape\leftmark}%
92: \def\@oddhead{{\scshape\rightmark}\hfil\thepage}%
93: \let\@mkboth\@gobbletwo
94: \let\sectionmark\@gobble
95: \let\subsectionmark\@gobble
96: }
97:
98:
99: % Code to patch \maketitle from article.cls.
100:
101: \renewcommand\maketitle{\par
102: \begingroup
103: \renewcommand\thefootnote{\fnsymbol{footnote}}%
104: \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}%
105: \long\def\@makefntext##1{\parindent 1em\noindent
106: \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}%
107: \if@twocolumn
108: \ifnum \col@number=\@ne
109: \@maketitle
110: \else
111: \twocolumn[\@maketitle]%
112: \fi
113: \else
114: \global\@topnum\z@ % Prevents figures from going at top of page.
115: \@maketitle
116: \fi
117: \thispagestyle{plain}\@thanks
118: \endgroup
119: \setcounter{footnote}{0}%
120: \let\thanks\relax
121: \let\maketitle\relax\let\@maketitle\relax
122: \gdef\@thanks{}\gdef\@author{}\gdef\@title{}}
123: \def\@maketitle{%
124: % First, do the stuff for the production option. Use the existence of
125: % the issueinfo.tex file as the flag for production rather than
126: % civilian mode.
127: \IfFileExists{issueinfo}{%
128: \hfill\parbox{3in}{\scriptsize\raggedleft
129: \textbf{Real Analysis Exchange}
130: \linebreak
131: Vol.~\usebox{\volumebox}(\usebox{\issuebox}), \usebox{\yearbox},
132: pp.~\pageref{firstpage}--\pageref{lastpage}}}{\null}
133: % Add a bit of space between the coordinate information and the
134: % author information.
135: \par\vskip 1em
136: % Put in the author information.
137: \begingroup
138: \def\and{\par\vskip .2em}
139: % Use left justification to inhibit breaking names.
140: \begin{flushleft}%
141: {\@author}\par
142: \end{flushleft}
143: \endgroup
144: \vskip 2em%
145: \begin{center}%
146: {\Large\textbf{\@title}\par}
147: \end{center}%
148: \par
149: \vskip .5em}
150:
151: % Make the section titling a bit smaller.
152: \renewcommand\section{\@startsection {section}{1}{\z@}%
153: {-3.5ex \@plus -1ex \@minus -.2ex}%
154: {2.3ex \@plus.2ex}%
155: {\reset@font\large\bfseries}}
156: \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
157: {-3.25ex\@plus -1ex \@minus -.2ex}%
158: {1.5ex \@plus .2ex}%
159: {\reset@font\normalsize\bfseries}}
160:
161: %
162: % Procedure to set beginning page number. If the macro
163: % \firstpagenumber{nn} appears in the topmatter, that will
164: % set the first page number. Otherwise, it can be called
165: % interactively from \getfirstpage. This is for the production
166: % of the papers in the journal.
167: %
168: \def\getfirstpage{
169: \newcount\FirstPage
170: \typein[\FirstPage]{First page number: }
171: \ifnum\FirstPage>0
172: \firstpagenumber{\FirstPage}
173: \else\setcounter{page}{1}
174: \fi}
175: \def\firstpagenumber#1{\global\setcounter{page}{#1}
176: \let\getfirstpage\relax
177: \message{First page set to \the\c@page.}}
178:
179: % Always want author on left and title on right.
180: \pagestyle{myheadings}