Fork me on GitHub

source: svn/trunk/paper/CommPhysComp/elsarticle.cls@ 657

Last change on this file since 657 was 426, checked in by Xavier Rouby, 15 years ago

first commit, paper version for Comm Phys Comp

File size: 21.6 KB
RevLine 
[426]1%%
2%% This is file `elsarticle.cls',
3%% generated with the docstrip utility.
4%%
5%% The original source files were:
6%%
7%% elsarticle.dtx (with options: `class')
8%%
9%% Copyright 2007, 2008 Elsevier Ltd.
10%%
11%% This file is part of the 'Elsarticle Bundle'.
12%% -------------------------------------------
13%%
14%% It may be distributed under the conditions of the LaTeX Project Public
15%% License, either version 1.2 of this license or (at your option) any
16%% later version. The latest version of this license is in
17%% http://www.latex-project.org/lppl.txt
18%% and version 1.2 or later is part of all distributions of LaTeX
19%% version 1999/12/01 or later.
20%%
21%% The list of all files belonging to the 'Elsarticle Bundle' is
22%% given in the file `manifest.txt'.
23%%
24%% $Id: elsarticle.cls,v 1.1 2009-06-15 14:46:46 rouby Exp $
25%%
26 \def\RCSfile{elsarticle}%
27 \def\RCSversion{1.0.1}%
28 \def\RCSdate{2008/05/22}%
29 \def\@shortjnl{\relax}
30 \def\@journal{Elsevier Science} \def\@company{Elsevier Science}
31 \def\@issn{000-0000}
32 \def\@shortjid{elsarticle}
33\NeedsTeXFormat{LaTeX2e}[1995/12/01]
34\ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]
35\def\ABD{\AtBeginDocument}
36\newif\ifpreprint \preprintfalse
37\newif\iflongmktitle \longmktitlefalse
38
39\def\@blstr{1}
40\newdimen\@bls
41\@bls=\baselineskip
42
43\def\@finalWarning{%
44 *****************************************************\MessageBreak
45 This document is typeset in the CRC style which\MessageBreak
46 is not suitable for submission.\MessageBreak
47 \MessageBreak
48 Please typeset again using 'preprint' option\MessageBreak
49 for creating PDF suitable for submission.\MessageBreak
50 ******************************************************\MessageBreak
51}
52
53\DeclareOption{preprint}{\global\preprinttrue
54 \gdef\@blstr{1}\xdef\jtype{0}%
55 \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}
56\DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}
57\DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}
58\DeclareOption{authoryear}{\xdef\@biboptions{authoryear}}
59\DeclareOption{number}{\xdef\@biboptions{square,numbers}}
60\DeclareOption{numbers}{\xdef\@biboptions{square,numbers}}
61\DeclareOption{longtitle}{\global\longmktitletrue}
62\DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse
63 \ExecuteOptions{twocolumn}}
64 \def\jtype{0}
65\DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}
66\DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse
67 \AtBeginDocument{\@twocolumnfalse}}
68\DeclareOption{times}{\IfFileExists{txfonts.sty}%
69 {\AtEndOfClass{\RequirePackage{txfonts}%
70 \gdef\ttdefault{cmtt}%
71 \let\iint\relax
72 \let\iiint\relax
73 \let\iiiint\relax
74 \let\idotsint\relax
75 \let\openbox\relax}}{\RequirePackage{times}}}
76\ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}
77\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
78\ProcessOptions
79\LoadClass{article}
80\RequirePackage{graphicx}
81\let\comma\@empty
82\let\tnotesep\@empty
83\def\title#1{\gdef\@title{#1}}
84\let\@title\@empty
85
86\def\elsLabel#1{\@bsphack\protected@write\@auxout{}%
87 {\string\Newlabel{#1}{\@currentlabel}}\@esphack}
88\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}
89
90\def\Ref#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%
91}
92
93\def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%
94 \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\Ref{\@@tmark}}}%
95 \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%
96}
97\let\@tnotemark\@empty
98
99\let\@tnotes\@empty
100\RequirePackage{pifont}
101\newcounter{tnote}
102\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%
103 \refstepcounter{tnote}\elsLabel{#1}%
104 \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%
105 \footnotetext{#2}}}
106
107\newcounter{fnote}
108\def\fnmark[#1]{\let\comma\@empty
109 \def\@fnmark{\@for\@@fnmark:=#1\do{%
110 \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\Ref{\@@fnmark}}}%
111 \unskip\comma\fnotenum\let\comma,}}%
112}
113
114\let\@fnotes\@empty\let\@fnmark\@empty
115\def\fntext[#1]#2{\g@addto@macro\@fnotes{%
116 \refstepcounter{fnote}\elsLabel{#1}%
117 \def\thefootnote{\thefnote}%
118 \global\setcounter{footnote}{\thefnote}%
119 \footnotetext{#2}}}
120
121\def\cormark[#1]{\edef\cnotenum{\Ref{#1}}\unskip%
122 \textsuperscript{\sep\ifcase\cnotenum\or
123 $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,}
124
125\let\@cormark\@empty
126\let\@cornotes\@empty
127\newcounter{cnote}
128\def\cortext[#1]#2{\g@addto@macro\@cornotes{%
129 \refstepcounter{cnote}\elsLabel{#1}%
130 \def\thefootnote{\ifcase\thecnote\or$\ast$\or
131 $\ast\ast$\fi}%
132 \footnotetext{#2}}}
133
134\def\corref#1{\cormark[#1]}
135\def\fnref#1{\fnmark[#1]}
136\def\tnoteref#1{\tnotemark[#1]}
137
138\def\resetTitleCounters{\c@cnote=0
139 \c@fnote=0 \c@tnote=0 \c@footnote=0}
140
141\let\eadsep\@empty
142\let\@elseads\@empty
143\let\@elsuads\@empty
144\let\@cormark\@empty
145\def\ead{\@ifnextchar[{\@uad}{\@ead}}
146\gdef\@ead#1{\bgroup\def\_{\string\_}\def\{{\string\{}%
147 \def\}{\string\}}%
148 \edef\tmp{\the\@eadauthor}
149 \immediate\write\@auxout{\string\emailauthor
150 {#1}{\expandafter\strip@prefix\meaning\tmp}}%
151 \egroup
152}
153\newcounter{ead}
154\gdef\emailauthor#1#2{\stepcounter{ead}%
155 \g@addto@macro\@elseads{\raggedright%
156 \let\corref\@gobble
157 \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%
158}
159\gdef\@uad[#1]#2{\bgroup
160 \edef\tmp{\the\@eadauthor}
161 \immediate\write\@auxout{\string\urlauthor
162 {#2}{\expandafter\strip@prefix\meaning\tmp}}%
163 \egroup
164}
165\def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble%
166 \raggedright\eadsep\texttt{#1}\space(#2)%
167 \def\eadsep{\unskip,\space}}%
168}
169
170\def\elsauthors{}
171\def\pprinttitle{}
172\let\authorsep\@empty
173\let\sep\@empty
174\newcounter{author}
175\def\author{\@ifnextchar[{\@@author}{\@author}}
176
177\newtoks\@eadauthor
178\def\@@author[#1]#2{\g@addto@macro\elsauthors{%
179 \def\baselinestretch{1}%
180 \authorsep#2\unskip\textsuperscript{%#1%
181 \@for\@@affmark:=#1\do{%
182 \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\Ref{\@@affmark}}}%
183 \unskip\sep\affnum\let\sep=,}%
184 \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi}%
185 \def\authorsep{\unskip,\space}%
186 \global\let\sep\@empty
187 \global\let\@fnmark\@empty}%
188 \@eadauthor={#2}
189}
190
191\def\@author#1{\g@addto@macro\elsauthors{\normalsize%
192 \def\baselinestretch{1}%
193 \upshape\authorsep#1\unskip\textsuperscript{%
194 \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi}%
195 \def\authorsep{\unskip,\space}%
196 \global\let\@fnmark\@empty
197 \global\let\sep\@empty}%
198 \@eadauthor={#1}
199}
200
201\def\elsaddress{}
202\def\addsep{\par\vskip6pt}
203\def\address{\@ifnextchar[{\@@address}{\@address}}
204
205\newcounter{affn}
206\renewcommand\theaffn{\alph{affn}}
207
208\long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%
209 \def\baselinestretch{1}%
210 \refstepcounter{affn}\elsLabel{#1}%
211 \textsuperscript{\theaffn}#2\par}}
212
213\long\def\@address#1{\g@addto@macro\elsauthors{%
214 \def\baselinestretch{1}%
215 \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}%
216 \def\authorsep{\par\vskip8pt}}}
217
218\newbox\absbox
219\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup
220 \hsize=\textwidth\def\baselinestretch{1}%
221 \noindent\unskip\textbf{Abstract}
222 \par\medskip\noindent\unskip\ignorespaces}
223 {\egroup}
224
225\newbox\keybox
226\def\keyword{%
227 \def\sep{\unskip, }%
228 \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}
229 \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%
230 \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%
231 \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}%
232 \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth
233 \normalsize\normalfont\def\baselinestretch{1}
234 \parskip\z@
235 \noindent\textit{Key words: }
236 \raggedright % Keywords are not justified.
237 \ignorespaces}
238\def\endkeyword{\par \egroup}
239
240\newdimen\Columnwidth
241\Columnwidth=\columnwidth
242
243\def\printFirstPageNotes{%
244 \iflongmktitle
245 \let\columnwidth=\textwidth\fi
246 \ifx\@tnotes\@empty\else\@tnotes\fi
247 \ifx\@cornotes\@empty\else\@cornotes\fi
248 \ifx\@elseads\@empty\relax\else
249 \let\thefootnote\relax
250 \footnotetext{\ifnum\theead=1\relax
251 \textit{Email address:\space}\else
252 \textit{Email addresses:\space}\fi
253 \@elseads}\fi
254 \ifx\@elsuads\@empty\relax\else
255 \let\thefootnote\relax
256 \footnotetext{\textit{URL:\space}%
257 \@elsuads}\fi
258 \ifx\@fnotes\@empty\else\@fnotes\fi
259 \iflongmktitle\if@twocolumn
260 \let\columnwidth=\Columnwidth\fi\fi
261}
262
263\long\def\pprintMaketitle{\clearpage
264 \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi
265 \resetTitleCounters
266 \def\baselinestretch{1}%
267 \printFirstPageNotes
268 \begin{center}%
269 \thispagestyle{pprintTitle}%
270 \def\baselinestretch{1}%
271 \Large\@title\par\vskip18pt
272 \normalsize\elsauthors\par\vskip10pt
273 \footnotesize\itshape\elsaddress\par\vskip36pt
274 \hrule\vskip12pt
275 \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
276 \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
277 \hrule\vskip12pt
278 \end{center}%
279 \gdef\thefootnote{\arabic{footnote}}%
280 }
281
282\def\printWarning{%
283 \mbox{}\par\vfill\par\bgroup
284 \fboxsep12pt\fboxrule1pt
285 \hspace*{.18\textwidth}
286 \fcolorbox{gray50}{gray10}{\box\warnbox}
287 \egroup\par\vfill\thispagestyle{empty}
288 \setcounter{page}{0}
289 \clearpage}
290
291\long\def\finalMaketitle{%
292 \resetTitleCounters
293 \def\baselinestretch{1}%
294 \MaketitleBox
295 \thispagestyle{pprintTitle}%
296 \gdef\thefootnote{\arabic{footnote}}%
297 }
298
299\long\def\MaketitleBox{%
300 \resetTitleCounters
301 \def\baselinestretch{1}%
302 \begin{center}%
303 \def\baselinestretch{1}%
304 \Large\@title\par\vskip18pt
305 \normalsize\elsauthors\par\vskip10pt
306 \footnotesize\itshape\elsaddress\par\vskip36pt
307 \hrule\vskip12pt
308 \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
309 \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
310 \hrule\vskip12pt
311 \end{center}%
312 }
313
314\def\FNtext#1{\par\bgroup\footnotesize#1\egroup}
315\newdimen\space@left
316\def\alarm#1{\typeout{******************************}%
317 \typeout{#1}%
318 \typeout{******************************}%
319}
320\long\def\getSpaceLeft{%\global\@twocolumnfalse%
321 \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%
322 \global\setbox1=\vbox{\hsize=\textwidth
323 \let\footnotetext\FNtext
324 \printFirstPageNotes}%
325 \xdef\noteheight{\the\ht1}%
326 \xdef\titleheight{\the\ht0}%
327 \@tempdima=\vsize
328 \advance\@tempdima-\noteheight
329 \advance\@tempdima-1\baselineskip
330}
331
332 \skip\footins=24pt
333
334\newbox\els@boxa
335\newbox\els@boxb
336
337\ifpreprint
338 \def\maketitle{\pprintMaketitle}
339 \else
340 \ifnum\jtype=1
341 \def\maketitle{%
342 \iflongmktitle\getSpaceLeft
343 \global\setbox\els@boxa=\vsplit0 to \@tempdima
344 \box\els@boxa\par\resetTitleCounters
345 \thispagestyle{pprintTitle}%
346 \printFirstPageNotes
347 \box0%
348 \else
349 \finalMaketitle\printFirstPageNotes
350 \fi
351 \gdef\thefootnote{\arabic{footnote}}}%
352 \else
353 \ifnum\jtype=5
354 \def\maketitle{%
355 \iflongmktitle\getSpaceLeft
356 \global\setbox\els@boxa=\vsplit0 to \@tempdima
357 \box\els@boxa\par\resetTitleCounters
358 \thispagestyle{pprintTitle}%
359 \printFirstPageNotes
360 \twocolumn[\box0]%\printFirstPageNotes
361 \else
362 \twocolumn[\finalMaketitle]\printFirstPageNotes
363 \fi
364 \gdef\thefootnote{\arabic{footnote}}}
365 \else
366 \if@twocolumn
367 \def\maketitle{%
368 \iflongmktitle\getSpaceLeft
369 \global\setbox\els@boxa=\vsplit0 to \@tempdima
370 \box\els@boxa\par\resetTitleCounters
371 \thispagestyle{pprintTitle}%
372 \printFirstPageNotes
373 \twocolumn[\box0]%
374 \else
375 \twocolumn[\finalMaketitle]\printFirstPageNotes
376 \fi
377 \gdef\thefootnote{\arabic{footnote}}}%
378 \else
379 \def\maketitle{%
380 \iflongmktitle\getSpaceLeft
381 \global\setbox\els@boxa=\vsplit0 to \@tempdima
382 \box\els@boxa\par\resetTitleCounters
383 \thispagestyle{pprintTitle}%
384 \printFirstPageNotes
385 \box0%
386 \else
387 \finalMaketitle\printFirstPageNotes
388 \fi
389 \gdef\thefootnote{\arabic{footnote}}}%
390 \fi
391 \fi
392 \fi
393\fi
394\def\ps@pprintTitle{%
395 \let\@oddhead\@empty
396 \let\@evenhead\@empty
397 \def\@oddfoot{\footnotesize\itshape
398 Preprint submitted to \ifx\@journal\@empty Elsevier
399 \else\@journal\fi\hfill\today}%
400 \let\@evenfoot\@oddfoot}
401
402\def\@seccntDot{.}
403\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}
404
405\renewcommand\section{\@startsection {section}{1}{\z@}%
406 {18\p@ \@plus 6\p@ \@minus 3\p@}%
407 {9\p@ \@plus 6\p@ \@minus 3\p@}%
408 {\normalsize\bfseries\boldmath}}
409\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
410 {12\p@ \@plus 6\p@ \@minus 3\p@}%
411 {3\p@ \@plus 6\p@ \@minus 3\p@}%
412 {\normalfont\normalsize\itshape}}
413\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
414 {12\p@ \@plus 6\p@ \@minus 3\p@}%
415 {\p@}%
416 {\normalfont\normalsize\itshape}}
417
418\def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}}
419\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}
420\def\els@bparagraph#1{\elsparagraph*{#1.}}
421
422\newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%
423 {10\p@ \@plus 6\p@ \@minus 3\p@}%
424 {-6\p@}%
425 {\normalfont\itshape}}
426\newdimen\leftMargin
427\leftMargin=2em
428\newtoks\@enLab %\newtoks\@enfont
429\def\@enQmark{?}
430\def\@enLabel#1#2{%
431 \edef\@enThe{\noexpand#1{\@enumctr}}%
432 \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%
433 \@enloop}
434\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= }
435\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}
436\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}
437\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}
438\def\@enloop{\futurelet\@entemp\@enloop@}
439\def\@enloop@{%
440 \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else
441 \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else
442 \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else
443 \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else
444 \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else
445 \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else
446 \ifx \bgroup\@entemp \let\@tempa\@enGroup \else
447 \ifx \@enum@\@entemp \let\@tempa\@gobble \else
448 \let\@tempa\@enOther
449 \fi\fi\fi\fi\fi\fi\fi\fi
450 \@tempa}
451\newlength{\@sep} \newlength{\@@sep}
452\setlength{\@sep}{.5\baselineskip plus.2\baselineskip
453 minus.2\baselineskip}
454\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip
455 minus.05\baselineskip}
456\providecommand{\sfbc}{\rmfamily\upshape}
457\providecommand{\sfn}{\rmfamily\upshape}
458\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}
459\def\enumerate{%
460 \ifnum \@enumdepth >3 \@toodeep\else
461 \advance\@enumdepth \@ne
462 \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi
463 \@ifnextchar[{\@@enum@}{\@enum@}}
464\def\@@enum@[#1]{%
465 \@enLab{}\let\@enThe\@enQmark
466 \@enloop#1\@enum@
467 \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
468 ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
469 \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%
470 \expandafter\let\csname the\@enumctr\endcsname\@enThe
471 \csname c@\@enumctr\endcsname7
472 \expandafter\settowidth
473 \csname leftmargin\romannumeral\@enumdepth\endcsname
474 {\the\@enLab\hskip\labelsep}%
475 \@enum@}
476\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%
477 {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%
478 \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else
479 \setlength{\topsep}{\@sep}\fi
480 \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%
481 \else \setlength{\itemsep}{\@@sep}\fi
482 %\setlength\leftmargin{\leftMargin}%%%{1.8em}
483 \setlength{\parsep}{0pt plus1pt minus1pt}%
484 \setlength{\parskip}{0pt plus1pt minus1pt}
485 }}
486
487\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else
488 \addvspace{\@sep}\fi \endlist}
489
490\def\sitem{\@noitemargtrue\@item[\@itemlabel *]}
491
492\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}
493
494\def\@Itemize[#1]{\def\next{#1}%
495 \ifnum \@itemdepth >\thr@@\@toodeep\else
496 \advance\@itemdepth\@ne
497 \ifx\next\@empty\else\expandafter\def\csname
498 labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%
499 \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
500 \expandafter\list\csname\@itemitem\endcsname
501 {\def\makelabel##1{\hss\llap{##1}}}%
502 \fi}
503\def\newdefinition#1{%
504 \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%]
505\def\@ndfn#1#2{%
506 \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}
507\def\@xndfn#1#2[#3]{%
508 \expandafter\@ifdefinable\csname #1\endcsname
509 {\@definecounter{#1}\@newctr{#1}[#3]%
510 \expandafter\xdef\csname the#1\endcsname{%
511 \expandafter\noexpand\csname the#3\endcsname \@dfncountersep
512 \@dfncounter{#1}}%
513 \global\@namedef{#1}{\@dfn{#1}{#2}}%
514 \global\@namedef{end#1}{\@enddefinition}}}
515\def\@yndfn#1#2{%
516 \expandafter\@ifdefinable\csname #1\endcsname
517 {\@definecounter{#1}%
518 \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}%
519 \global\@namedef{#1}{\@dfn{#1}{#2}}%
520 \global\@namedef{end#1}{\@enddefinition}}}
521\def\@odfn#1[#2]#3{%
522 \@ifundefined{c@#2}{\@nocounterr{#2}}%
523 {\expandafter\@ifdefinable\csname #1\endcsname
524 {\global\@namedef{the#1}{\@nameuse{the#2}}
525 \global\@namedef{#1}{\@dfn{#2}{#3}}%
526 \global\@namedef{end#1}{\@enddefinition}}}}
527\def\@dfn#1#2{%
528 \refstepcounter{#1}%
529 \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}
530\def\@xdfn#1#2{%
531 \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}
532\def\@ydfn#1#2[#3]{%
533 \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
534\def\@dfncounter#1{\noexpand\arabic{#1}}
535\def\@dfncountersep{.}
536\def\@begindefinition#1#2{\trivlist
537 \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape}
538\def\@opargbegindefinition#1#2#3{\trivlist
539 \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape}
540\def\@enddefinition{\endtrivlist}
541
542\def\@begintheorem#1#2{\trivlist
543 \let\baselinestretch\@blstr
544 \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}
545\def\@opargbegintheorem#1#2#3{\trivlist
546 \let\baselinestretch\@blstr
547 \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}
548
549\def\newproof#1{%
550 \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}
551\def\@nprf#1#2{%
552 \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}
553\def\@xnprf#1#2[#3]{%
554 \expandafter\@ifdefinable\csname #1\endcsname
555 {\@definecounter{#1}\@newctr{#1}[#3]%
556 \expandafter\xdef\csname the#1\endcsname{%
557 \expandafter\noexpand\csname the#3\endcsname \@prfcountersep
558 \@prfcounter{#1}}%
559 \global\@namedef{#1}{\@prf{#1}{#2}}%
560 \global\@namedef{end#1}{\@endproof}}}
561\def\@ynprf#1#2{%
562 \expandafter\@ifdefinable\csname #1\endcsname
563 {\@definecounter{#1}%
564 \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%
565 \global\@namedef{#1}{\@prf{#1}{#2}}%
566 \global\@namedef{end#1}{\@endproof}}}
567\def\@oprf#1[#2]#3{%
568 \@ifundefined{c@#2}{\@nocounterr{#2}}%
569 {\expandafter\@ifdefinable\csname #1\endcsname
570 {\global\@namedef{the#1}{\@nameuse{the#2}}%
571 \global\@namedef{#1}{\@prf{#2}{#3}}%
572 \global\@namedef{end#1}{\@endproof}}}}
573\def\@prf#1#2{%
574 \refstepcounter{#1}%
575 \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}
576\def\@xprf#1#2{%
577 \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}
578\def\@yprf#1#2[#3]{%
579 \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
580\def\@prfcounter#1{\noexpand\arabic{#1}}
581\def\@prfcountersep{.}
582\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr
583 \item[\hskip \labelsep{\scshape #1.}]\rmfamily}
584\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr
585 \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}
586\def\@endproof{\endtrivlist}
587\newcommand*{\qed}{\hbox{}\hfill$\Box$}
588
589\@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{}
590\InputIfFileExists{\jobname.spl}{}{}
591\RequirePackage[\@biboptions]{natbib}
592
593\newwrite\splwrite
594\immediate\openout\splwrite=\jobname.spl
595\def\biboptions#1{\def\next{#1}\immediate\write\splwrite{%
596 \string\g@addto@macro\string\@biboptions{%
597 ,\expandafter\strip@prefix\meaning\next}}}
598
599\let\baselinestretch=\@blstr
600
601\ifnum\jtype=1
602 \RequirePackage{geometry}
603 \geometry{twoside,
604 paperwidth=210mm,
605 paperheight=297mm,
606 textheight=562pt,
607 textwidth=384pt,
608 centering,
609 headheight=50pt,
610 headsep=12pt,
611 footskip=12pt,
612 footnotesep=24pt plus 2pt minus 12pt,
613 }
614 \global\let\bibfont=\footnotesize
615 \global\bibsep=0pt
616 \if@twocolumn\global\@twocolumnfalse\fi
617\else\ifnum\jtype=3
618 \RequirePackage{geometry}
619 \geometry{twoside,
620 paperwidth=210mm,
621 paperheight=297mm,
622 textheight=622pt,
623 textwidth=468pt,
624 centering,
625 headheight=50pt,
626 headsep=12pt,
627 footskip=12pt,
628 footnotesep=24pt plus 2pt minus 12pt,
629 columnsep=2pc
630 }
631 \global\let\bibfont=\footnotesize
632 \global\bibsep=0pt
633 \if@twocolumn\input{fleqn.clo}\fi
634\else\ifnum\jtype=5
635 \RequirePackage{geometry}
636 \geometry{twoside,
637 paperwidth=210mm,
638 paperheight=297mm,
639 textheight=682pt,
640 textwidth=522pt,
641 centering,
642 headheight=50pt,
643 headsep=12pt,
644 footskip=18pt,
645 footnotesep=24pt plus 2pt minus 12pt,
646 columnsep=18pt
647 }%
648 \global\let\bibfont=\footnotesize
649 \global\bibsep=0pt
650 \input{fleqn.clo}
651 \global\@twocolumntrue
652%%
653%% End of option '5p'
654%%
655\fi\fi\fi
656
657\def\journal#1{\gdef\@journal{#1}}
658 \let\@journal\@empty
659\newenvironment{frontmatter}{}{\maketitle}
660
661\long\def\@makecaption#1#2{%
662 \vskip\abovecaptionskip\footnotesize
663 \sbox\@tempboxa{#1: #2}%
664 \ifdim \wd\@tempboxa >\hsize
665 #1: #2\par
666 \else
667 \global \@minipagefalse
668 \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
669 \fi
670 \vskip\belowcaptionskip}
671
672\AtBeginDocument{\@ifpackageloaded{hyperref}
673 {\def\@linkcolor{blue}
674 \def\@anchorcolor{blue}
675 \def\@citecolor{blue}
676 \def\@filecolor{blue}
677 \def\@urlcolor{blue}
678 \def\@menucolor{blue}
679 \def\@pagecolor{blue}
680\begingroup
681 \@makeother\`%
682 \@makeother\=%
683 \edef\x{%
684 \edef\noexpand\x{%
685 \endgroup
686 \noexpand\toks@{%
687 \catcode 96=\noexpand\the\catcode`\noexpand\`\relax
688 \catcode 61=\noexpand\the\catcode`\noexpand\=\relax
689 }%
690 }%
691 \noexpand\x
692 }%
693\x
694\@makeother\`
695\@makeother\=
696}{}}
697%%
698
699\endinput
700%%
701%% End of file `elsarticle.cls'.
Note: See TracBrowser for help on using the repository browser.