0801.4877/rae.cls
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}