Amy Hendrickson
[rbeclass.git] / staff / rbe.cls
blob1b43700144a74e8fbefd781db17087ca380c1d3f
1 %% rbe.cls, version Mar 5, 2009
3 \NeedsTeXFormat{LaTeX2e}
4 \ProvidesClass{rbe}[2009/03/05 Standard LaTeX rbe class]
6 \newdimen\bottomlineheight
7 \bottomlineheight=18pt
9 \ProcessOptions\relax
10 %%% .sty files added here ==>> %%%%%%%%%%%%
11 \LoadClass[10pt,article,final,twoside,showtrims]{memoir}
13 %%% Patches para o pacote memoir: ocasionalmente atualizada pelo autor
14 \usepackage{mempatch}
16 %% bophook includes definition for \AtBeginPage, used below
17 \usepackage{bophook}
18 \usepackage{multicol}
19 \usepackage{amsmath,amssymb, amsthm}
20 \usepackage[pdftex]{color,graphicx}
21 \usepackage[comma,authoryear]{natbib}
22 \usepackage{ctable,supertabular}
24 %% Bring in Babel with these two options, use \currlanguage{portuges,english}
25 %% at the start of every article
26 \usepackage[portuges,english]{babel}
28 %%% Faz com que o primeiro parágrafo de uma seção tenha identação
29 \usepackage{indentfirst}
31 %%% Para marcar emails, urls, etc.
32 \usepackage{url}
33 \usepackage[latin1]{inputenc}
34 \usepackage[T1]{fontenc}
36 %% for fonts, in case author uses \scalefont{.85} (or other percent
37 %% of full size font) in body of article. Used for tables occassionally
38 \usepackage{scalefnt}
40 %% apparently for Brazilian (?)
41 \usepackage{icomma}
43 %%%%%%% <<<=== end of .sty files added in %%%%%%%%%%%%%%
45 %% [STOCK SIZE]: isto só é válido para um stock size > que o trimmed size
46 \setstocksize{297mm}{210mm}
47 \settrimmedsize{260mm}{200mm}{*}
48 \settrims{0.5cm}{0.5cm}
50 \setulmarginsandblock{3cm}{2cm}{*}
51 \setlrmarginsandblock{2.5cm}{3cm}{*}
53 \setheadfoot{2cm}{1.0cm}
54 \setheaderspaces{*}{1cm}{*}
56 %% NUMERAÇÃO DE PÁGINAS
58 \newcounter{volume}
59 \newcounter{number}
61 \usethanksrule
63 %%% FORMATAÇÃO DE PÁGINA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
64 %% (commands found in memoir.cls)
65 \newif\iftemp
66 \def\printcurrfilename{\global\temptrue}
67 %% Changed to use \currfilename-firstpage and \currfilename-lastpage
68 %% Those numbers are set with \begin{article} \end{article}
69 \newcommand{\inforodape}{\iftemp(Article source: \currfilename.tex)\hfill\fi RBE \quad Rio de Janeiro \quad v.~\the\c@volume\ n.~\the\c@number\ /\ p.~\expandafter\csname \currfilename-firstpage\endcsname--%
70 \expandafter\csname \currfilename-lastpage\endcsname\quad \data}
72 \makepagestyle{rbe}
73 \makerunningwidth{rbe}{\textwidth}
74 \makeheadrule{rbe}{\textwidth}{\normalrulethickness}
75 \newcommand{\headerauthor}[1]{\gdef\@headerauthor{#1}}
76 \newcommand{\headertitle}[1]{\gdef\@headertitle{#1}}
77 \makeheadposition{rbe}{center}{center}{flushleft}{flushleft}
79 \makeevenhead{rbe}{\@headerauthor}{}{
80 \openin1 images/logo-fgv-simbolo.pdf \ifeof1
81 (FGV Symbol)\else
82 \includegraphics[height=0.6cm]{images/logo-fgv-simbolo.pdf}
83 \fi}
85 \makeoddhead{rbe}{
86 \openin1 images/logo-rbe.pdf \ifeof1
87 (RBE Logo)\else
88 \includegraphics[height=0.6cm]{images/logo-rbe.pdf}\fi}{}{\@headertitle}
90 %% infordape, text with \the\c@volume etc
91 \makeevenfoot{rbe}{\ffooter \inforodape}{}{}
92 \makeoddfoot{rbe}{}{}{\ffooter \inforodape}
93 \pagestyle{rbe}
95 %% Running heads for title page:
96 \copypagestyle{title}{rbe}
97 \makeevenhead{title}{}{}{}
98 \makeoddhead{title}{
99 \openin1 images/logo-rbe.pdf \ifeof1 (RBE Logo)\else
100 \includegraphics[height=0.6cm]{images/logo-rbe.pdf}\fi}{}{}
101 \makeevenfoot{title}{}{}{}
102 \makeoddfoot{title}{}{}{\ffooter \inforodape}
104 %% Notes on page and trim size
105 %%% [SOCK SIZE]: estes valores são para um stock size > trimmed size + trims de 0.5 cm
106 %%% Altura
107 %%% 260 - 8 = 252
108 %%% 252 + 5 (trims) = 257
110 %%% Largura
111 %%% 25 + 5 (trims) = 30
112 %%% 5 = 5
114 %%% Estes sãos os valores para um stock size == trimmed size
115 %%% Altura
116 %%% 260 - 8 = 252
118 %%% Largura
119 %%% 25 = 30
121 %%%%%%%%%%%%%%%%%%
122 %% Puts pagenumber and line at bottom of page
123 %% Height of line determined by dimension \bottomlineheight
124 %% which is set at the top of this .cls file
126 \def\xempty{empty}
128 \AtBeginPage{%
129 %% to make sure this definition is used, since user may bring
130 %% in other packages
131 \renewcommand{\qedsymbol}{$\blacksquare$}
132 \setlength{\unitlength}{1mm}
133 \checkoddpage
134 \ifoddpage
135 %% No page number on empty pages:
136 \ifx\@specialstyle\xempty\else
137 \put(30, -257){\makebox(0,0)[tl]{\vrule width 18cm
138 height \bottomlineheight
140 \put(188, -252){\makebox(0,0)[tl]{\fpagina\thepage}}
141 \fi%% end test to see if this page is supposed to be empty
142 \else
143 %% No page number on empty pages:
144 \ifx\@specialstyle\xempty\else
145 \put(0, -257){\makebox(0,0)[tl]{\vrule width 18cm
146 height \bottomlineheight
148 \put(18, -252){\makebox(0,0)[tl]{\fpagina\thepage}}
149 \fi\fi
152 %%%%% Font Information %%%%%%%%%%%%%%%%%%
153 %%% bo1 == oranda
154 %%% pr3 == rotis
155 %%% bun == zurich (aka univers)
159 %%% FONTES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
161 \newcommand{\ftitulo}{\fontfamily{bun}\fontseries{b}\fontsize{24pt}{28pt}\selectfont}
162 \newcommand{\fnota}{\fontfamily{bun}\fontseries{b}\fontsize{24pt}{25pt}\selectfont}
163 \newcommand{\fautores}{\fontfamily{bo1}\fontseries{m}\fontsize{15pt}{16pt}\selectfont}
164 \newcommand{\fresumo}{\fontfamily{bo1}\fontseries{m}\fontsize{10pt}{14pt}\selectfont}
165 \newcommand{\fitem}{\fontfamily{bo1}\fontseries{b}\fontsize{12pt}{14pt}\selectfont}
166 \newcommand{\fsubitem}{\fontfamily{bo1}\fontseries{b}\fontsize{12pt}{14pt}\selectfont}
167 \newcommand{\foutrassubd}{\fontfamily{bo1}\fontseries{m}\fontshape{it}\fontsize{10pt}{11pt}\selectfont}
168 \newcommand{\fcorpo}{\fontfamily{bo1}\fontseries{m}\selectfont}
169 \newcommand{\frodape}{\fontfamily{bo1}\fontseries{m}\fontsize{8pt}{10pt}\selectfont}
170 \newcommand{\fpagina}{\fontfamily{bun}\fontseries{b}\fontsize{12pt}{13pt}\selectfont}
171 \newcommand{\ffooter}{\fontfamily{bun}\fontseries{m}\fontsize{8pt}{10pt}\selectfont}
173 %%% TÍTULO DO ARTIGO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
175 \setlength{\droptitle}{-4em} % o memoir força um determinado espaçamento
176 % antes do título
177 % então temos que dar -4em para compensar
178 % e fazer com o que o título fique no topo
179 % da página
180 \pretitle{\begin{flushleft}\ftitulo}
181 \posttitle{\vskip 1em\end{flushleft}}
183 %%% AUTORES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
185 \preauthor{\begin{flushleft}\fautores}
186 \postauthor{\vskip 1em\end{flushleft}}
188 %%% AGRADECIMENTOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
190 \setlength{\thanksmarkwidth}{0.25cm}
191 \setlength{\thanksmarksep}{0pt}
193 %%% RESUMO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
195 \renewcommand{\abstractnamefont}{\fresumo}
196 \renewcommand{\abstracttextfont}{\fresumo}
198 \newcommand{\resumo}[2]{%
199 \renewcommand{\abstractname}{}
200 \abstractrunin
201 \setlength{\absleftindent}{20mm}
202 \setlength{\absrightindent}{25mm}
203 %\setlength{\absparindent}{0mm}
204 \setlength{\absparsep}{1em}
205 \begin{abstract}
206 \selectlanguage{portuges}
209 \emph{\selectlanguage{english}
211 \end{abstract}}
213 %%% NOTAS DE RODAPÉ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
215 \setlength{\footmarkwidth}{0.25cm}
216 \setlength{\footmarksep}{0pt}
217 \setlength{\footparindent}{0pt}
218 \setlength{\footnotesep}{1em}
220 \newcommand{\footnoterule}{\hrule height 0.3mm width 0.33\columnwidth}
221 \renewcommand{\foottextfont}{\frodape}
223 %%% CORPO DO TEXTO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
225 \renewcommand{\sfdefault}{bo1}
226 \renewcommand{\rmdefault}{bo1}
227 \renewcommand{\normalfont}{\fcorpo}
228 \setlength{\parindent}{0.5cm}
230 %%% TABELAS E FIGURAS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
232 \captiondelim{~--~}
233 \captionnamefont{\bfseries}
235 %%% FONTES MATEMÁTICAS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
237 %% {bo1}{m}{n}
238 %% {bo1}{m}{it}
239 %% {bo1}{m}{sl}
241 %% Desta maneira, números e operadores matemáticos
242 %% saem na Oranda e variáveis e símbolos gregos (que
243 %% não existem na Oranda) saem normalmente. Usar a oranda
244 %% para letras não funciona muito bem porque de alguma
245 %% maneira o TeX erra o espaçamento
247 % \SetSymbolFont{operators} {normal}{OT1}{bo1}{m}{n}
249 %%% SEÇÕES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
251 \renewcommand{\secheadstyle}{\fitem\MakeUppercase}
252 \renewcommand{\subsecheadstyle}{\fsubitem}
253 \renewcommand{\subsubsecheadstyle}{\foutrassubd}
254 \setsecnumdepth{subsubsection}
255 \setsubsecindent{\parindent}
256 \setsubsubsecindent{\parindent}
257 \setsecnumformat{\csname the#1\endcsname.~}
258 \renewcommand{\thesection}{\arabic{section}}
260 \renewcommand{\appendix}{\par
261 \setcounter{figure}{0}
262 \setcounter{table}{0}
263 \setcounter{equation}{0}
264 \def\thefigure{\@Alph\c@section-\arabic{figure}}
265 \def\thetable{\@Alph\c@section-\arabic{table}}
266 \def\theequation{\@Alph\c@section-\arabic{equation}}
267 \setcounter{section}{0}
268 \gdef\thesection{\@Alph\c@section}}
271 %%% SUMÁRIO, PALAVRAS-CHAVE E CLASSIFICAÇÃO %%%%%%%%%%%%
273 \newcounter{currentsection}
275 \renewcommand{\tableofcontents}{\vskip-12pt\begingroup
276 \c@currentsection=0
277 \fresumo \footnotesize\noindent
278 \hbox to 21mm{\hfill\bfseries \contentsname:}\hskip10pt\vtop{\fresumo\footnotesize\bfseries
279 \raggedright\advance\hsize-2in
280 \noindent
281 \openin1 \currfilename.toc \ifeof1
282 \else
283 \input \currfilename.toc
285 \vskip2pt
287 \endgroup
288 \expandafter\newwrite\csname\currfilename toc\endcsname
289 \immediate\openout\csname\currfilename toc\endcsname
290 =\currfilename.toc}
292 \renewcommand\l@section[1]{\addtocounter{currentsection}{1}#1%
293 \expandafter\ifx\csname\currfilename-themaxsection\endcsname\relax\else
294 \ifnum\thecurrentsection=\expandafter\csname\currfilename-themaxsection\endcsname.\else;\fi\fi }
296 \renewcommand\l@chapter[2]{}
297 \renewcommand\l@subsection[2]{}
298 \renewcommand\l@subsubsection[2]{}
299 \renewcommand{\numberline}[1]{#1.~}
301 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
302 %% Using commands from Memoir.cls
304 \trimLmarks
305 \typeoutlayout
306 \checkandfixthelayout
307 \fixpdflayout
309 %%%%%%%%%%%%% Utils
311 \newcommand{\email}[1]{E-mail: \protect\url{#1}}
313 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
314 %% Additions by Amy
315 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
316 %% Date, Volume, and number of issue written in currinfo.tex
317 %% (so that we can access this info for articles, summary, and cover)
319 %% Bring in currinfo.tex, if it exists; else give
320 %% error message:
321 \openin1 currinfo.tex \ifeof1
322 \typeout{^^J^^JWarning:
323 currinfo.tex not found^^J^^J
324 Please include the following text in a file named currinfo.tex:^^J
325 \string\setcounter{volume}{ ( number of current volume ) }^^J
326 \string\setcounter{number}{ ( number of this issue ) }^^J
327 \string\newcommand{\string\data}{ (months and year of this issue) }
330 }\def\data{}%% to avoid error message
331 \else
332 \input currinfo
336 %% Only section heads will be sent to toc:
337 \setcounter{tocdepth}{1}
339 \newif\ifingles
340 \def\xportuges{portuges}
342 \def\currlanguage#1{\def\one{#1}
343 \ifx\one\xportuges\global\inglesfalse\selectlanguage{portuges}\else
344 \global\inglestrue\selectlanguage{english}\fi}
346 %%%%%%%
347 %% switch language according to \currlanguage{} set at beginning of article:
348 \def\palavraschave{\vskip2pt\setbox0=\vbox\bgroup\raggedright
349 \fresumo\footnotesize\bfseries
350 \advance\hsize by -2in}
352 \def\endpalavraschave{\vrule depth4pt width0pt\vskip1sp\egroup
353 \noindent\hbox to 21mm{\hfill\fresumo\footnotesize\bfseries
354 \ifingles Keywords:\else Palavras-chave:\fi}\hskip10pt
355 \vtop{\advance\hsize -2in\unvbox0}}
357 \gdef\classificacao{\vskip2pt\setbox0=\vbox\bgroup\raggedright
358 \fresumo\footnotesize\bfseries
359 \advance\hsize by -2in}
361 \gdef\endclassificacao{\egroup\bgroup\fresumo\footnotesize\bfseries
362 \noindent\hbox to 21mm{\hfill\ifingles JEL Code:\else
363 Códigos~JEL:\fi}\hskip10pt\vtop{\advance\hsize-2in \unvbox0}\egroup}
366 %%% DEFINIÇÕES, TEOREMAS, ETC.%%%%%%%%%
368 %% These theorem type environments change language according to
369 %% the \currlanguage{} command at the beginning of each article.
371 \newtheorem{theorem}{\ifingles Theorem\else Teorema\fi}[section]
372 \newtheorem{lemma}[theorem]{\ifingles Lemma\else Lema\fi}
373 \newtheorem{definition}[theorem]{\ifingles Definition\else Definição\fi}
374 \newtheorem{proposition}[theorem]{\ifingles Proposition\else Proposição\fi}
375 \newtheorem{assumption}[theorem]{\ifingles Assumption\else Conjectura\fi}
376 \newtheorem{corollary}[theorem]{\ifingles Corollary\else Corolário\fi}
377 \newtheorem{example}{\ifingles Example \else Exemplo\fi}[section]
378 \newtheorem{remark}{\ifingles Remark\else Nota\fi}[section]
380 %% Used for resetting counters, and for starting on odd numbered page;
381 %% sends first page number and last page number to .aux file
382 \def\article{\ifodd\c@page\else\null\thispagestyle{empty}\newpage\fi
383 \reset
384 \write\@auxout{\string\expandafter\string\gdef\string\csname\space \currfilename-firstpage\string\endcsname{\the\c@page}}}
386 \newcount\lastpagefix
387 \let\endarticle\relax
389 %% We can add more counters to reset here if necessary
390 \def\reset{\refstepcounter{chapter}%% in case this resets any counters
391 \global\c@theorem=0
392 \global\c@example=0
393 \global\c@remark=0
394 \global\c@figure=0
395 \global\c@table=0
396 \global\c@equation=0
397 \gdef\thesection{\arabic{section}}
398 %\def\thefigure{\arabic{figure}}
399 %\def\thetable{\arabic{table}}
400 %\def\theequation{\arabic{equation}}
401 \global\c@currentsection=0
402 \global\newmaxsection=0
403 \emptythanks\global\c@footnote=0\title{}\author{}
404 \headerauthor{}\headertitle{}}
406 %% automates finding \maxsection for each article:
408 %% default, so we don't get error message first time
409 %% LaTeX is run on file.
410 \def\themaxsection{0}
412 %% modification of existing \section command to add newmaxsection
413 %% counter which is expanded when definition for \maxcaption is
414 %% sent to the aux file for the particular article.
416 %% Every section will send a new definition for \themaxsection
417 %% to the .aux file; only the final one will used when the article table
418 %% of contents is made up.
419 \newcount\newmaxsection
420 \long\def\section{\global\advance\newmaxsection by1
421 \immediate\write\@auxout{\string\expandafter\gdef\string\csname\space
422 \currfilename-themaxsection\string\endcsname{%
423 \the\newmaxsection}}
424 \sechook
425 \@startsection {section}{1}{\secindent }{\beforesecskip }{\aftersecskip }
426 {\normalfont \secheadstyle }}
429 %%%%%%%%%%%%%%
430 %% Make summary.sum to receive title/author/page number
431 %% information from each article. title/author/page number is used
432 %% to produce summary when pdflatex is run on summary.tex;
433 %% title/author is used to produce Cover when pdflatex is run on rbecover.tex
435 \newwrite\summaryfile
436 \immediate\openout\summaryfile=summary.sum
438 %% Definition of \@maketitle
439 %% taken from memoir.cls; added \write to send thetitle
440 %% and theauthor and page number to summary.sum
442 \newcount\articlenumber
444 \renewcommand{\@maketitle}{%
445 \global\advance\articlenumber by1 %% <== added
446 \let\footnote\@mem@titlefootkill
447 \ifdim\pagetotal>\z@
448 \newpage
450 \null
451 \vskip 2em%
452 \vspace*{\droptitle}
453 \maketitlehooka
454 {\@bspretitle \@title
455 %% added ==>
456 %% \string keeps command following from expanding so that the
457 %% result in summary.sum will be
458 %% \expandafter\gdef\csname article(current article number)-title\endcsname
459 %% {current title} -- Making a unique definition for every article title
461 \write\summaryfile{\string\expandafter\string\gdef\string\csname\space
462 article\the\articlenumber-title\string\endcsname{\thetitle}}
464 %% Here we are sending a definition of the \maxarticlenum to the summary file.
465 %% Each article will contribute a new definition; but the final one is the
466 %% one that will be used, since TeX uses only the most recent definition.
467 %% The \articlenumber expand immediately, the \gdef and \maxarticlenum
468 %% appear in the summary.sum file without expanding. Results:
469 %% \gdef\maxarticlenum{(current article number)}
470 \write\summaryfile{\string\gdef\string\maxarticlenum{\the\articlenumber}}%
472 %% Here we send the page number of the first page of the article to summary.sum
473 %% \expandafter\gdef\csname article (curr article number)-page\endcsname
474 %% {(currentpage number)} is what will appear in summary.sum
476 \write\summaryfile{\string\expandafter\string\gdef\string\csname\space
477 article\the\articlenumber-page\string\endcsname{\the\c@page}}%
478 %% <== end addition
479 \@bsposttitle}
480 \maketitlehookb
481 {\@bspreauthor \@author
482 %% added ==>
483 %% This sends the author name to the summary.sum file in a form that
484 %% looks like this: \expandafter\gdef\csname article(currarticle number)-author
485 %% {(the author name(s))}
487 \write\summaryfile{\string\expandafter\string\gdef\string\csname\space article\the\articlenumber-author\string\endcsname{\theauthor}}%
488 %% <== end addition
489 \@bspostauthor}
490 \maketitlehookc
491 {\@bspredate %\@date
492 \@bspostdate}
493 \maketitlehookd
494 \par
495 \vskip 1.5em}
497 %%% BIBLIOGRAFIA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
499 %% Natbib uses bibsection
500 \long\def\@memb@bchap{\chapter*{\ifingles BIBLIOGRAPHY\else BIBLIOGRAFIA\fi}\bibmark
501 \prebibhook}
503 \renewcommand{\bibsection}{\section*{\ifingles BIBLIOGRAPHY\else BIBLIOGRAPHIA\fi}\prebibhook}
506 \def\bibliografia#1{\ifingles \bibliographystyle{rbe-en}\else
507 \bibliographystyle{rbe-pt}\fi\bibliography{#1}}
509 %% Make bibliography look for .bbl file with same name as article,
510 %% not root file:
512 %% Change definition of LaTeX \include command:
513 \def\include#1{\relax
514 %% added, so that we can look for \currfilename when looking for the .bbl
515 %% file, instead of the name of the root file.
516 \def\currfilename{#1}
517 \typeout{^^J
518 =====================================================
520 Comments on \currfilename.tex\space follows:
521 ^^J^^J }
523 \ifnum\@auxout=\@partaux
524 \@latex@error{\string\include\space cannot be nested}\@eha
525 \else \@include#1 \fi}
527 \def\bibliography#1{\if@filesw\immediate\write\@auxout{\string\bibdata{#1}}\fi
528 %% Here is where \currfilename is used:
529 \@input@{\currfilename.bbl}}
531 %%% To make sure labels are unique in each issue,
532 %%% since authors may use the same terms, like fig-1.
533 %%% Now \label{tab-1} in file 1029 will yield label: 1029tab-1 and
534 %%% \ref[tab-1} in file 1029.tex will look for 1029tab-1
536 \def\label#1{\@bsphack
537 \protected@write\@auxout{}%
538 {\string\newlabel{\currfilename:#1}{{\@currentlabel}{\thepage}}}%
539 \@esphack}
541 \def\ref#1{\expandafter\@setref\csname r@\currfilename:#1\endcsname\@firstoftwo{#1}}
543 \def\pageref#1{\expandafter\@setref\csname r@\currfilename:#1\endcsname
544 \@secondoftwo{#1}}
546 \let\ltx@label\label
548 \let\currfilename\relax
549 %%%%%%%%
551 \def\M@sect#1#2#3#4#5#6[#7][#8]#9{%
552 \ifheadnameref\M@gettitle{#8}\else\M@gettitle{#7}\fi
553 \ifnum #2>\c@secnumdepth
554 \let\@svsec\@empty
555 \memsecinfo{#1}{}{#7}{#8}{#9}%
556 \else
557 \refstepcounter{#1}%
558 \protected@edef\@svsec{\@seccntformat{#1}\relax}%
559 \memsecinfo{#1}{\@nameuse{the#1}}{#7}{#8}{#9}%
561 \@tempskipa #5\relax
562 \ifdim \@tempskipa>\z@
563 \begingroup
564 #6{%
565 \@hangfrom{\hskip #3\relax\@svsec}%
566 \interlinepenalty \@M #9\@@par}%
567 \endgroup
568 \csname #1mark\endcsname{#8}%
569 \ifnum #2=1
570 \expandafter\write\csname\currfilename toc\endcsname{%
571 \string\contentsline {#1}{%
572 \ifnum #2>\c@secnumdepth \else
573 \protect\numberline{\csname the#1\endcsname}%
575 #7}}\fi%
576 \else
577 \def\@svsechd{%
578 #6{\hskip #3\relax
579 \@svsec #9}%
580 \csname #1mark\endcsname{#8}%
581 %% send section info to \currfilename instead of to root.aux
582 \ifnum #2=1
583 \expandafter\write\csname\currfilename toc\endcsname{%
584 \string\contentsline {#1}{%
585 \ifnum #2>\c@secnumdepth \else
586 \protect\numberline{\csname the#1\endcsname}%
588 #7}}\fi}%
590 \@xsect{#5}}
592 \def\firstpage#1{\setcounter{page}{#1}}
594 \def\@include#1 {%
595 \clearpage
596 \if@filesw
597 \immediate\write\@mainaux{\string\@input{#1.aux}}%
599 \@tempswatrue
600 \if@partsw
601 \@tempswafalse
602 \edef\reserved@b{#1}%
603 \@for\reserved@a:=\@partlist\do
604 {\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
606 \if@tempswa
607 \let\@auxout\@partaux
608 \if@filesw
609 \immediate\openout\@partaux #1.aux
610 \immediate\write\@partaux{\relax}%
612 \@input@{#1.tex}%
613 \clearpage
614 \thispagestyle{empty}
615 \lastpagefix=\c@page
616 \advance\lastpagefix -1
617 \immediate\write\@auxout{\string\expandafter%
618 \string\gdef\string\csname\space
619 \currfilename-lastpage\string\endcsname{\the\lastpagefix}}
620 \@writeckpt{#1}%
621 \if@filesw
622 \immediate\closeout\@partaux
624 \else
625 \deadcycles\z@
626 \@nameuse{cp@#1}%
628 \let\@auxout\@mainaux}
630 %% to avoid error message, and to get TOC etc to work correctly
631 %% when author is making article without \include{} command:
633 \let\currfilename\jobname
635 %% will keep single from previous paragraph from appearing on
636 %% top of the page, or single line from a new paragraph from appearing
637 %% at the bottom of a page:
638 \clubpenalty=10000
639 \widowpenalty=10000
641 %% This will make a little extra space above and below content in
642 %% table lines-- will make tables look less crowded and more readable.
643 \def\arraystretch{1.2}
645 \endinput