]> AND Private Git Repository - loba-papers.git/blob - loba-besteffort/elsarticle.cls
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Fix warnings with bibtex.
[loba-papers.git] / loba-besteffort / elsarticle.cls
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, 2009 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 %%
25 %% $Id: elsarticle.dtx 19 2009-12-17 07:07:52Z rishi $
26 %%
27  \def\RCSfile{elsarticle}%
28  \def\RCSversion{1.20b}%
29  \def\RCSdate{2009/09/17}%
30  \def\@shortjnl{\relax}
31  \def\@journal{Elsevier Ltd} \def\@company{Elsevier Ltd}
32  \def\@issn{000-0000}
33  \def\@shortjid{elsarticle}
34 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
35 \ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]
36 \def\ABD{\AtBeginDocument}
37 \newif\ifpreprint \preprintfalse
38 \newif\iflongmktitle \longmktitlefalse
39
40 \def\@blstr{1}
41 \newdimen\@bls
42 \@bls=\baselineskip
43
44 \def\@finalWarning{%
45   *****************************************************\MessageBreak
46    This document is typeset in the CRC style which\MessageBreak
47    is not suitable for submission.\MessageBreak
48    \MessageBreak
49    Please typeset again using 'preprint' option\MessageBreak
50    for creating PDF suitable for submission.\MessageBreak
51   ******************************************************\MessageBreak
52 }
53
54 \DeclareOption{preprint}{\global\preprinttrue
55   \gdef\@blstr{1}\xdef\jtype{0}%
56    \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}
57 \DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}
58 \DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}
59 \DeclareOption{authoryear}{\xdef\@biboptions{round,authoryear}}
60 \DeclareOption{number}{\xdef\@biboptions{numbers}}
61 \DeclareOption{numbers}{\xdef\@biboptions{numbers}}
62 \DeclareOption{longtitle}{\global\longmktitletrue}
63 \DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse
64   \ExecuteOptions{twocolumn}}
65   \def\jtype{0}
66 \DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}
67 \DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse
68   \AtBeginDocument{\@twocolumnfalse}}
69 \DeclareOption{times}{\IfFileExists{txfonts.sty}%
70   {\AtEndOfClass{\RequirePackage{txfonts}%
71   \gdef\ttdefault{cmtt}%
72    \let\iint\relax
73   \let\iiint\relax
74   \let\iiiint\relax
75   \let\idotsint\relax
76   \let\openbox\relax}}{\RequirePackage{times}}}
77 \ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}
78 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
79 \ProcessOptions
80 \LoadClass{article}
81 \RequirePackage{graphicx}
82 \let\comma\@empty
83 \let\tnotesep\@empty
84 \def\title#1{\gdef\@title{#1}}
85 \let\@title\@empty
86
87 \def\elsLabel#1{\@bsphack\protected@write\@auxout{}%
88          {\string\Newlabel{#1}{\@currentlabel}}\@esphack}
89 \def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}
90
91 \def\elsRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%
92 }
93
94 \def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%
95       \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\elsRef{\@@tmark}}}%
96       \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%
97 }
98 \let\@tnotemark\@empty
99
100 \let\@tnotes\@empty
101 \RequirePackage{pifont}
102 \newcounter{tnote}
103 \def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%
104   \refstepcounter{tnote}\elsLabel{#1}%
105    \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%
106     \footnotetext{#2}}}
107
108 \let\@nonumnotes\@empty
109 \def\nonumnote#1{\g@addto@macro\@nonumnotes{%
110      \let\thefootnote\relax\footnotetext{#1}}}
111
112 \newcounter{fnote}
113 \def\fnmark[#1]{\let\comma\@empty
114     \def\@fnmark{\@for\@@fnmark:=#1\do{%
115     \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\elsRef{\@@fnmark}}}%
116   \unskip\comma\fnotenum\let\comma,}}%
117 }
118
119 \let\@fnotes\@empty\let\@fnmark\@empty
120 \def\fntext[#1]#2{\g@addto@macro\@fnotes{%
121      \refstepcounter{fnote}\elsLabel{#1}%
122    \def\thefootnote{\thefnote}%
123    \global\setcounter{footnote}{\thefnote}%
124    \footnotetext{#2}}}
125
126 \def\cormark[#1]{\edef\cnotenum{\elsRef{#1}}%
127     \unskip\textsuperscript{\sep\ifcase\cnotenum\or
128        $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,}
129
130 \let\@cormark\@empty
131 \let\@cornotes\@empty
132 \newcounter{cnote}
133 \def\cortext[#1]#2{\g@addto@macro\@cornotes{%
134     \refstepcounter{cnote}\elsLabel{#1}%
135     \def\thefootnote{\ifcase\thecnote\or$\ast$\or
136     $\ast\ast$\fi}%
137     \footnotetext{#2}}}
138
139 \let\@corref\@empty
140 \def\corref#1{\edef\cnotenum{\elsRef{#1}}%
141     \edef\@corref{\ifcase\cnotenum\or
142          $\ast$\or$\ast\ast$\fi\hskip-1pt}}
143
144 \def\fnref#1{\fnmark[#1]}
145 \def\tnoteref#1{\tnotemark[#1]}
146
147 \def\resetTitleCounters{\c@cnote=0
148    \c@fnote=0 \c@tnote=0 \c@footnote=0}
149
150 \let\eadsep\@empty
151 \let\@elseads\@empty
152 \let\@elsuads\@empty
153 \let\@cormark\@empty
154 \def\hashchar{\expandafter\@gobble\string\~}
155 \def\underscorechar{\expandafter\@gobble\string\_}
156 \def\lbracechar{\expandafter\@gobble\string\{}
157 \def\rbracechar{\expandafter\@gobble\string\}}
158
159 \def\ead{\@ifnextchar[{\@uad}{\@ead}}
160 \gdef\@ead#1{\bgroup\def\_{\string\underscorechar\space}%
161   \def\{{\string\lbracechar\space}%
162    \def~{\hashchar\space}%
163    \def\}{\string\rbracechar\space}%
164    \edef\tmp{\the\@eadauthor}
165    \immediate\write\@auxout{\string\emailauthor
166      {#1}{\expandafter\strip@prefix\meaning\tmp}}%
167   \egroup
168 }
169 \newcounter{ead}
170 \gdef\emailauthor#1#2{\stepcounter{ead}%
171      \g@addto@macro\@elseads{\raggedright%
172       \let\corref\@gobble
173       \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%
174 }
175 \gdef\@uad[#1]#2{\bgroup
176   \def~{\string\hashchar\space}%
177   \def\_{\string\underscorechar\space}%
178    \edef\tmp{\the\@eadauthor}
179    \immediate\write\@auxout{\string\urlauthor
180      {#2}{\expandafter\strip@prefix\meaning\tmp}}%
181   \egroup
182 }
183 \def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble%
184      \raggedright\eadsep\texttt{#1}\space(#2)%
185      \def\eadsep{\unskip,\space}}%
186 }
187
188 \def\elsauthors{}
189 \def\pprinttitle{}
190 \let\authorsep\@empty
191 \let\sep\@empty
192 \newcounter{author}
193 \def\author{\@ifnextchar[{\@@author}{\@author}}
194
195 \newtoks\@eadauthor
196 \def\@@author[#1]#2{\g@addto@macro\elsauthors{%
197     \def\baselinestretch{1}%
198     \authorsep#2\unskip\textsuperscript{%#1%
199       \@for\@@affmark:=#1\do{%
200        \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}%
201      \unskip\sep\affnum\let\sep=,}%
202       \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
203       \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
204       }%
205     \def\authorsep{\unskip,\space}%
206     \global\let\sep\@empty\global\let\@corref\@empty
207     \global\let\@fnmark\@empty}%
208     \@eadauthor={#2}
209 }
210
211 \def\@author#1{\g@addto@macro\elsauthors{\normalsize%
212     \def\baselinestretch{1}%
213     \upshape\authorsep#1\unskip\textsuperscript{%
214       \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
215       \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
216       }%
217     \def\authorsep{\unskip,\space}%
218     \global\let\@fnmark\@empty
219     \global\let\@corref\@empty
220     \global\let\sep\@empty}%
221     \@eadauthor={#1}
222 }
223
224 \def\elsaddress{}
225 \def\addsep{\par\vskip6pt}
226 \def\address{\@ifnextchar[{\@@address}{\@address}}
227
228 \def\@alph#1{%
229   \ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or
230   l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or
231   y\or z%
232   \or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or
233   ak\or al\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or
234   av\or aw\or ax\or ay\or az%
235   \or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or bj\or
236   bk\or bl\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or bu\or
237   bv\or bw\or bx\or by\or bz%
238   \or ca\or cb\or cc\or cd\or ce\or cf\or cg\or ch\or ci\or cj\or
239   ck\or cl\or cm\or cn\or co\or cp\or cq\or cr\or cs\or ct\or cu\or
240   cv\or cw\or cx\or cy\or cz%
241   \or da\or db\or dc\or dd\or de\or df\or dg\or dh\or di\or dj\or
242   dk\or dl\or dm\or dn\or do\or dp\or dq\or dr\or ds\or dt\or du\or
243   dv\or dw\or dx\or dy\or dz%
244   \or ea\or eb\or ec\or ed\or ee\or ef\or eg\or eh\or ei\or ej\or
245   ek\or el\or em\or en\or eo\or ep\or eq\or er\or es\or et\or eu\or
246   ev\or ew\or ex\or ey\or ez%
247   \or fa\or fb\or fc\or fd\or fe\or ff\or fg\or fh\or fi\or fj\or
248   fk\or fl\or fm\or fn\or fo\or fp\or fq\or fr\or fs\or ft\or fu\or
249   fv\or fw\or fx\or fy\or fz%
250   \or ga\or gb\or gc\or gd\or ge\or gf\or gg\or gh\or gi\or gj\or
251   gk\or gl\or gm\or gn\or go\or gp\or gq\or gr\or gs\or gt\or gu\or
252   gv\or gw\or gx\or gy\or gz%
253   \else\@ctrerr\fi}
254
255 \newcounter{affn}
256 \renewcommand\theaffn{\alph{affn}}
257
258 \long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%
259     \def\baselinestretch{1}%
260      \refstepcounter{affn}
261      \xdef\@currentlabel{\theaffn}
262      \elsLabel{#1}%
263     \textsuperscript{\theaffn}#2\par}}
264
265 \long\def\@address#1{\g@addto@macro\elsauthors{%
266     \def\baselinestretch{1}%
267     \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}%
268     \def\authorsep{\par\vskip8pt}}}
269
270 \newbox\absbox
271 \renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup
272   \hsize=\textwidth\def\baselinestretch{1}%
273   \noindent\unskip\textbf{Abstract}
274  \par\medskip\noindent\unskip\ignorespaces}
275  {\egroup}
276
277 \newbox\keybox
278 \def\keyword{%
279   \def\sep{\unskip, }%
280  \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}
281   \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%
282   \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%
283   \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}%
284   \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth
285   \normalsize\normalfont\def\baselinestretch{1}
286   \parskip\z@
287   \noindent\textit{Keywords: }
288   \raggedright                         % Keywords are not justified.
289   \ignorespaces}
290 \def\endkeyword{\par \egroup}
291
292 \newdimen\Columnwidth
293 \Columnwidth=\columnwidth
294
295 \def\printFirstPageNotes{%
296   \iflongmktitle
297    \let\columnwidth=\textwidth\fi
298   \ifx\@tnotes\@empty\else\@tnotes\fi
299   \ifx\@nonumnotes\@empty\else\@nonumnotes\fi
300   \ifx\@cornotes\@empty\else\@cornotes\fi
301   \ifx\@elseads\@empty\relax\else
302    \let\thefootnote\relax
303    \footnotetext{\ifnum\theead=1\relax
304       \textit{Email address:\space}\else
305       \textit{Email addresses:\space}\fi
306      \@elseads}\fi
307   \ifx\@elsuads\@empty\relax\else
308    \let\thefootnote\relax
309    \footnotetext{\textit{URL:\space}%
310      \@elsuads}\fi
311   \ifx\@fnotes\@empty\else\@fnotes\fi
312   \iflongmktitle\if@twocolumn
313    \let\columnwidth=\Columnwidth\fi\fi
314 }
315
316 \long\def\pprintMaketitle{\clearpage
317   \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi
318   \resetTitleCounters
319   \def\baselinestretch{1}%
320   \printFirstPageNotes
321   \begin{center}%
322  \thispagestyle{pprintTitle}%
323    \def\baselinestretch{1}%
324     \Large\@title\par\vskip18pt
325     \normalsize\elsauthors\par\vskip10pt
326     \footnotesize\itshape\elsaddress\par\vskip36pt
327     \hrule\vskip12pt
328     \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
329     \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
330     \hrule\vskip12pt
331     \end{center}%
332   \gdef\thefootnote{\arabic{footnote}}%
333   }
334
335 \def\printWarning{%
336      \mbox{}\par\vfill\par\bgroup
337      \fboxsep12pt\fboxrule1pt
338      \hspace*{.18\textwidth}
339      \fcolorbox{gray50}{gray10}{\box\warnbox}
340      \egroup\par\vfill\thispagestyle{empty}
341      \setcounter{page}{0}
342      \clearpage}
343
344 \long\def\finalMaketitle{%
345   \resetTitleCounters
346   \def\baselinestretch{1}%
347    \MaketitleBox
348    \thispagestyle{pprintTitle}%
349   \gdef\thefootnote{\arabic{footnote}}%
350   }
351
352 \long\def\MaketitleBox{%
353   \resetTitleCounters
354   \def\baselinestretch{1}%
355   \begin{center}%
356    \def\baselinestretch{1}%
357     \Large\@title\par\vskip18pt
358     \normalsize\elsauthors\par\vskip10pt
359     \footnotesize\itshape\elsaddress\par\vskip36pt
360     \hrule\vskip12pt
361     \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
362     \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
363     \hrule\vskip12pt
364     \end{center}%
365   }
366
367 \def\FNtext#1{\par\bgroup\footnotesize#1\egroup}
368 \newdimen\space@left
369 \def\alarm#1{\typeout{******************************}%
370              \typeout{#1}%
371              \typeout{******************************}%
372 }
373 \long\def\getSpaceLeft{%\global\@twocolumnfalse%
374    \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%
375    \global\setbox1=\vbox{\hsize=\textwidth
376     \let\footnotetext\FNtext
377     \printFirstPageNotes}%
378     \xdef\noteheight{\the\ht1}%
379     \xdef\titleheight{\the\ht0}%
380     \@tempdima=\vsize
381     \advance\@tempdima-\noteheight
382     \advance\@tempdima-1\baselineskip
383 }
384
385   \skip\footins=24pt
386
387 \newbox\els@boxa
388 \newbox\els@boxb
389
390 \ifpreprint
391   \def\maketitle{\pprintMaketitle}
392   \else
393    \ifnum\jtype=1
394     \def\maketitle{%
395       \iflongmktitle\getSpaceLeft
396        \global\setbox\els@boxa=\vsplit0 to \@tempdima
397        \box\els@boxa\par\resetTitleCounters
398        \thispagestyle{pprintTitle}%
399        \printFirstPageNotes
400        \box0%
401       \else
402        \finalMaketitle\printFirstPageNotes
403       \fi
404     \gdef\thefootnote{\arabic{footnote}}}%
405   \else
406  \ifnum\jtype=5
407     \def\maketitle{%
408       \iflongmktitle\getSpaceLeft
409        \global\setbox\els@boxa=\vsplit0 to \@tempdima
410        \box\els@boxa\par\resetTitleCounters
411        \thispagestyle{pprintTitle}%
412        \printFirstPageNotes
413        \twocolumn[\box0]%\printFirstPageNotes
414       \else
415        \twocolumn[\finalMaketitle]\printFirstPageNotes
416      \fi
417      \gdef\thefootnote{\arabic{footnote}}}
418   \else
419   \if@twocolumn
420     \def\maketitle{%
421       \iflongmktitle\getSpaceLeft
422        \global\setbox\els@boxa=\vsplit0 to \@tempdima
423        \box\els@boxa\par\resetTitleCounters
424        \thispagestyle{pprintTitle}%
425        \printFirstPageNotes
426        \twocolumn[\box0]%
427       \else
428        \twocolumn[\finalMaketitle]\printFirstPageNotes
429       \fi
430      \gdef\thefootnote{\arabic{footnote}}}%
431    \else
432     \def\maketitle{%
433       \iflongmktitle\getSpaceLeft
434        \global\setbox\els@boxa=\vsplit0 to \@tempdima
435        \box\els@boxa\par\resetTitleCounters
436        \thispagestyle{pprintTitle}%
437        \printFirstPageNotes
438        \box0%
439      \else
440        \finalMaketitle\printFirstPageNotes
441       \fi
442     \gdef\thefootnote{\arabic{footnote}}}%
443    \fi
444   \fi
445  \fi
446 \fi
447 \def\ps@pprintTitle{%
448      \let\@oddhead\@empty
449      \let\@evenhead\@empty
450      \def\@oddfoot{\footnotesize\itshape
451        Preprint submitted to \ifx\@journal\@empty Elsevier
452        \else\@journal\fi\hfill\today}%
453      \let\@evenfoot\@oddfoot}
454 \def\@seccntDot{.}
455 \def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}
456
457 \renewcommand\section{\@startsection {section}{1}{\z@}%
458            {18\p@ \@plus 6\p@ \@minus 3\p@}%
459            {9\p@ \@plus 6\p@ \@minus 3\p@}%
460            {\normalsize\bfseries\boldmath}}
461 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
462            {12\p@ \@plus 6\p@ \@minus 3\p@}%
463            {3\p@ \@plus 6\p@ \@minus 3\p@}%
464            {\normalfont\normalsize\itshape}}
465 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
466            {12\p@ \@plus 6\p@ \@minus 3\p@}%
467            {\p@}%
468            {\normalfont\normalsize\itshape}}
469
470 \def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}}
471 \def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}
472 \def\els@bparagraph#1{\elsparagraph*{#1.}}
473
474 \newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%
475            {10\p@ \@plus 6\p@ \@minus 3\p@}%
476            {-6\p@}%
477            {\normalfont\itshape}}
478 \newdimen\leftMargin
479 \leftMargin=2em
480 \newtoks\@enLab  %\newtoks\@enfont
481 \def\@enQmark{?}
482 \def\@enLabel#1#2{%
483   \edef\@enThe{\noexpand#1{\@enumctr}}%
484   \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%
485   \@enloop}
486 \def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= }
487 \def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}
488 \def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}
489 \def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}
490 \def\@enloop{\futurelet\@entemp\@enloop@}
491 \def\@enloop@{%
492   \ifx A\@entemp         \def\@tempa{\@enLabel\Alph  }\else
493   \ifx a\@entemp         \def\@tempa{\@enLabel\alph  }\else
494   \ifx i\@entemp         \def\@tempa{\@enLabel\roman }\else
495   \ifx I\@entemp         \def\@tempa{\@enLabel\Roman }\else
496   \ifx 1\@entemp         \def\@tempa{\@enLabel\arabic}\else
497   \ifx \@sptoken\@entemp \let\@tempa\@enSpace         \else
498   \ifx \bgroup\@entemp   \let\@tempa\@enGroup         \else
499   \ifx \@enum@\@entemp   \let\@tempa\@gobble          \else
500                          \let\@tempa\@enOther
501              \fi\fi\fi\fi\fi\fi\fi\fi
502   \@tempa}
503 \newlength{\@sep} \newlength{\@@sep}
504 \setlength{\@sep}{.5\baselineskip plus.2\baselineskip
505             minus.2\baselineskip}
506 \setlength{\@@sep}{.1\baselineskip plus.01\baselineskip
507             minus.05\baselineskip}
508 \providecommand{\sfbc}{\rmfamily\upshape}
509 \providecommand{\sfn}{\rmfamily\upshape}
510 \def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}
511 \def\enumerate{%
512    \ifnum \@enumdepth >3 \@toodeep\else
513       \advance\@enumdepth \@ne
514       \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi
515    \@ifnextchar[{\@@enum@}{\@enum@}}
516 \def\@@enum@[#1]{%
517   \@enLab{}\let\@enThe\@enQmark
518   \@enloop#1\@enum@
519   \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
520    ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
521   \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%
522   \expandafter\let\csname the\@enumctr\endcsname\@enThe
523   \csname c@\@enumctr\endcsname7
524   \expandafter\settowidth
525             \csname leftmargin\romannumeral\@enumdepth\endcsname
526             {\the\@enLab\hskip\labelsep}%
527   \@enum@}
528 \def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%
529            {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%
530      \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else
531            \setlength{\topsep}{\@sep}\fi
532      \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%
533       \else \setlength{\itemsep}{\@@sep}\fi
534      %\setlength\leftmargin{\leftMargin}%%%{1.8em}
535      \setlength{\parsep}{0pt plus1pt minus1pt}%
536      \setlength{\parskip}{0pt plus1pt minus1pt}
537                    }}
538
539 \def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else
540            \addvspace{\@sep}\fi \endlist}
541
542 \def\sitem{\@noitemargtrue\@item[\@itemlabel *]}
543
544 \def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}
545
546 \def\@Itemize[#1]{\def\next{#1}%
547   \ifnum \@itemdepth >\thr@@\@toodeep\else
548    \advance\@itemdepth\@ne
549   \ifx\next\@empty\else\expandafter\def\csname
550    labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%
551   \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
552   \expandafter\list\csname\@itemitem\endcsname
553   {\def\makelabel##1{\hss\llap{##1}}}%
554  \fi}
555 \def\newdefinition#1{%
556   \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%]
557 \def\@ndfn#1#2{%
558   \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}
559 \def\@xndfn#1#2[#3]{%
560   \expandafter\@ifdefinable\csname #1\endcsname
561     {\@definecounter{#1}\@newctr{#1}[#3]%
562      \expandafter\xdef\csname the#1\endcsname{%
563        \expandafter\noexpand\csname the#3\endcsname \@dfncountersep
564           \@dfncounter{#1}}%
565      \global\@namedef{#1}{\@dfn{#1}{#2}}%
566      \global\@namedef{end#1}{\@enddefinition}}}
567 \def\@yndfn#1#2{%
568   \expandafter\@ifdefinable\csname #1\endcsname
569     {\@definecounter{#1}%
570      \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}%
571      \global\@namedef{#1}{\@dfn{#1}{#2}}%
572      \global\@namedef{end#1}{\@enddefinition}}}
573 \def\@odfn#1[#2]#3{%
574   \@ifundefined{c@#2}{\@nocounterr{#2}}%
575     {\expandafter\@ifdefinable\csname #1\endcsname
576     {\global\@namedef{the#1}{\@nameuse{the#2}}
577   \global\@namedef{#1}{\@dfn{#2}{#3}}%
578   \global\@namedef{end#1}{\@enddefinition}}}}
579 \def\@dfn#1#2{%
580   \refstepcounter{#1}%
581   \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}
582 \def\@xdfn#1#2{%
583   \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}
584 \def\@ydfn#1#2[#3]{%
585   \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
586 \def\@dfncounter#1{\noexpand\arabic{#1}}
587 \def\@dfncountersep{.}
588 \def\@begindefinition#1#2{\trivlist
589    \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape}
590 \def\@opargbegindefinition#1#2#3{\trivlist
591       \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape}
592 \def\@enddefinition{\endtrivlist}
593
594 \def\@begintheorem#1#2{\trivlist
595   \let\baselinestretch\@blstr
596    \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}
597 \def\@opargbegintheorem#1#2#3{\trivlist
598   \let\baselinestretch\@blstr
599       \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}
600
601 \def\newproof#1{%
602   \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}
603 \def\@nprf#1#2{%
604   \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}
605 \def\@xnprf#1#2[#3]{%
606   \expandafter\@ifdefinable\csname #1\endcsname
607     {\@definecounter{#1}\@newctr{#1}[#3]%
608      \expandafter\xdef\csname the#1\endcsname{%
609        \expandafter\noexpand\csname the#3\endcsname \@prfcountersep
610           \@prfcounter{#1}}%
611      \global\@namedef{#1}{\@prf{#1}{#2}}%
612      \global\@namedef{end#1}{\@endproof}}}
613 \def\@ynprf#1#2{%
614   \expandafter\@ifdefinable\csname #1\endcsname
615     {\@definecounter{#1}%
616      \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%
617      \global\@namedef{#1}{\@prf{#1}{#2}}%
618      \global\@namedef{end#1}{\@endproof}}}
619 \def\@oprf#1[#2]#3{%
620   \@ifundefined{c@#2}{\@nocounterr{#2}}%
621     {\expandafter\@ifdefinable\csname #1\endcsname
622     {\global\@namedef{the#1}{\@nameuse{the#2}}%
623   \global\@namedef{#1}{\@prf{#2}{#3}}%
624   \global\@namedef{end#1}{\@endproof}}}}
625 \def\@prf#1#2{%
626   \refstepcounter{#1}%
627   \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}
628 \def\@xprf#1#2{%
629   \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}
630 \def\@yprf#1#2[#3]{%
631   \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
632 \def\@prfcounter#1{\noexpand\arabic{#1}}
633 \def\@prfcountersep{.}
634 \def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr
635    \item[\hskip \labelsep{\scshape #1.}]\rmfamily}
636 \def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr
637       \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}
638 \def\@endproof{\endtrivlist}
639 \newcommand*{\qed}{\hbox{}\hfill$\Box$}
640
641 \@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{}
642 \InputIfFileExists{\jobname.spl}{}{}
643 \RequirePackage[\@biboptions]{natbib}
644
645 \newwrite\splwrite
646 \immediate\openout\splwrite=\jobname.spl
647 \def\biboptions#1{\def\next{#1}\immediate\write\splwrite{%
648    \string\g@addto@macro\string\@biboptions{%
649     ,\expandafter\strip@prefix\meaning\next}}}
650
651 \let\baselinestretch=\@blstr
652
653 \ifnum\jtype=1
654  \RequirePackage{geometry}
655  \geometry{twoside,
656   paperwidth=210mm,
657   paperheight=297mm,
658   textheight=562pt,
659   textwidth=384pt,
660   centering,
661   headheight=50pt,
662   headsep=12pt,
663   footskip=12pt,
664   footnotesep=24pt plus 2pt minus 12pt,
665  }
666  \global\let\bibfont=\footnotesize
667  \global\bibsep=0pt
668  \if@twocolumn\global\@twocolumnfalse\fi
669 \else\ifnum\jtype=3
670  \RequirePackage{geometry}
671  \geometry{twoside,
672   paperwidth=210mm,
673   paperheight=297mm,
674   textheight=622pt,
675   textwidth=468pt,
676   centering,
677   headheight=50pt,
678   headsep=12pt,
679   footskip=18pt,
680   footnotesep=24pt plus 2pt minus 12pt,
681   columnsep=2pc
682  }
683  \global\let\bibfont=\footnotesize
684  \global\bibsep=0pt
685  \if@twocolumn\input{fleqn.clo}\fi
686 \else\ifnum\jtype=5
687  \RequirePackage{geometry}
688  \geometry{twoside,
689   paperwidth=210mm,
690   paperheight=297mm,
691   textheight=682pt,
692   textwidth=522pt,
693   centering,
694  headheight=50pt,
695   headsep=12pt,
696   footskip=18pt,
697   footnotesep=24pt plus 2pt minus 12pt,
698   columnsep=18pt
699  }%
700  \global\let\bibfont=\footnotesize
701  \global\bibsep=0pt
702  \input{fleqn.clo}
703  \global\@twocolumntrue
704 %%
705 %% End of option '5p'
706 %%
707 \fi\fi\fi
708 \def\journal#1{\gdef\@journal{#1}}
709  \let\@journal\@empty
710 \newenvironment{frontmatter}{}{\maketitle}
711
712 \long\def\@makecaption#1#2{%
713   \vskip\abovecaptionskip\footnotesize
714   \sbox\@tempboxa{#1: #2}%
715   \ifdim \wd\@tempboxa >\hsize
716     #1: #2\par
717   \else
718     \global \@minipagefalse
719     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
720   \fi
721   \vskip\belowcaptionskip}
722
723 \AtBeginDocument{\@ifpackageloaded{hyperref}
724   {\def\@linkcolor{blue}
725    \def\@anchorcolor{blue}
726    \def\@citecolor{blue}
727    \def\@filecolor{blue}
728    \def\@urlcolor{blue}
729    \def\@menucolor{blue}
730    \def\@pagecolor{blue}
731 \begingroup
732   \@makeother\`%
733   \@makeother\=%
734   \edef\x{%
735     \edef\noexpand\x{%
736       \endgroup
737       \noexpand\toks@{%
738         \catcode 96=\noexpand\the\catcode`\noexpand\`\relax
739         \catcode 61=\noexpand\the\catcode`\noexpand\=\relax
740       }%
741     }%
742     \noexpand\x
743   }%
744 \x
745 \@makeother\`
746 \@makeother\=
747 }{}}
748 %%
749 \def\appendixname{Appendix }
750 \renewcommand\appendix{\par
751   \setcounter{section}{0}%
752   \setcounter{subsection}{0}%
753   \setcounter{equation}{0}
754   \gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
755   \gdef\thetable{\@Alph\c@section.\arabic{table}}%
756   \gdef\thesection{\appendixname~\@Alph\c@section}%
757   \@addtoreset{equation}{section}%
758   \gdef\theequation{\@Alph\c@section.\arabic{equation}}%
759   \addtocontents{toc}{\string\let\string\numberline\string\tmptocnumberline}{}{}
760 }
761
762 %%%% \numberline width calculation for appendix.
763 \newdimen\appnamewidth
764 \def\tmptocnumberline#1{%
765    \setbox0=\hbox{\appendixname}
766    \appnamewidth=\wd0
767    \addtolength\appnamewidth{2.5pc}
768    \hb@xt@\appnamewidth{#1\hfill}
769 }
770
771 %% Added for work with amsrefs.sty
772
773 \@ifpackageloaded{amsrefs}%
774   {}
775   {%\let\bibsection\relax%
776   \AtBeginDocument{\def\cites@b#1#2,#3{%
777     \begingroup[%
778         \toks@{\InnerCite{#2}#1}%
779         \ifx\@empty#3\@xp\@gobble\fi
780         \cites@c#3%
781 }}}
782 %%
783 %% Added for avoiding clash with cleveref.sty
784
785 \@ifpackageloaded{cleveref}%
786  {}
787  {\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%
788     \refstepcounter{tnote}%
789     \immediate\write\@auxout{\string\Newlabel{#1}{\thetnote}}
790     \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%
791     \footnotetext{#2}}}
792 %%%
793   \def\fntext[#1]#2{\g@addto@macro\@fnotes{%
794     \refstepcounter{fnote}%
795     \immediate\write\@auxout{\string\Newlabel{#1}{\thefnote}}
796     \def\thefootnote{\thefnote}%
797     \global\setcounter{footnote}{\thefnote}%
798     \footnotetext{#2}}}
799 %%%
800   \def\cortext[#1]#2{\g@addto@macro\@cornotes{%
801     \refstepcounter{cnote}%
802     \immediate\write\@auxout{\string\Newlabel{#1}{\thecnote}}
803     \def\thefootnote{\ifcase\thecnote\or$\ast$\or
804     $\ast\ast$\fi}%
805     \footnotetext{#2}}}
806 }
807 \endinput
808 %%
809 %% End of file `elsarticle.cls'.