elsarticle.cls 22 KB

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