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