1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/elsarticle/elsarticle.dtx Fri Nov 18 16:18:02 2016 +0100
1.3 @@ -0,0 +1,882 @@
1.4 +% \iffalse meta-comment
1.5 +%
1.6 +% Copyright (C) 2007, 2008, 2009 by Elsevier Ltd
1.7 +% -----------------------------------------------
1.8 +%
1.9 +% This file may be distributed and/or modified under the
1.10 +% conditions of the LaTeX Project Public License, either version 1.2
1.11 +% of this license or (at your option) any later version.
1.12 +% The latest version of this license is in:
1.13 +%
1.14 +% http://www.latex-project.org/lppl.txt
1.15 +%
1.16 +% and version 1.2 or later is part of all distributions of LaTeX
1.17 +% version 1999/12/01 or later.
1.18 +%
1.19 +% \fi
1.20 +% \CheckSum{2196}
1.21 +%
1.22 +% \iffalse
1.23 +%<*driver>
1.24 +\documentclass{ltxdoc}
1.25 +\EnableCrossrefs
1.26 +\CodelineIndex
1.27 +\RecordChanges
1.28 +\usepackage{comment}
1.29 +\begin{document}
1.30 + \DocInput{elsarticle.dtx}
1.31 + \PrintChanges
1.32 + \PrintIndex
1.33 +\end{document}
1.34 +%</driver>
1.35 +% \fi
1.36 +%
1.37 +% \CharacterTable
1.38 +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
1.39 +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
1.40 +% Digits \0\1\2\3\4\5\6\7\8\9
1.41 +% Exclamation \! Double quote \" Hash (number) \#
1.42 +% Dollar \$ Percent \% Ampersand \&
1.43 +% Acute accent \' Left paren \( Right paren \)
1.44 +% Asterisk \* Plus \+ Comma \,
1.45 +% Minus \- Point \. Solidus \/
1.46 +% Colon \: Semicolon \; Less than \<
1.47 +% Equals \= Greater than \> Question mark \?
1.48 +% Commercial at \@ Left bracket \[ Backslash \\
1.49 +% Right bracket \] Circumflex \^ Underscore \_
1.50 +% Grave accent \` Left brace \{ Vertical bar \|
1.51 +% Right brace \} Tilde \~}
1.52 +%
1.53 +%
1.54 +% \changes{v1.1}{2008/09/25}{Initial version}
1.55 +%
1.56 +%
1.57 +% \changes{v1.2}{2009/09/17}{Documentation, templates, and *.bst
1.58 +% has been seperated from this .dtx. Incompatibility problems
1.59 +% with amsref.sty, fncylab.sty have been fixed. Some bugs related
1.60 +% to author/affiliation part have been fixed.}
1.61 +%
1.62 +% \GetFileInfo{elsarticle.dtx}
1.63 +%
1.64 +% \DoNotIndex{\newcommand,\newenvironment}
1.65 +%
1.66 +%
1.67 +% \title{The \textsf{elsarticle.cls} -- Implimentation}
1.68 +% \author{Elsevier Ltd}
1.69 +%
1.70 +% \maketitle
1.71 +%
1.72 +% \StopEventually{}
1.73 +%
1.74 +% \section{Implementation}
1.75 +%
1.76 +% \begin{macrocode}
1.77 +%<*class>
1.78 +%%
1.79 +%% $Id: elsarticle.cls,v 1.20 2008-10-13 04:24:12 cvr Exp $
1.80 +%%
1.81 + \def\RCSfile{elsarticle}%
1.82 + \def\RCSversion{1.2.0}%
1.83 + \def\RCSdate{2009/09/17}%
1.84 + \def\@shortjnl{\relax}
1.85 + \def\@journal{Elsevier Ltd} \def\@company{Elsevier Ltd}
1.86 + \def\@issn{000-0000}
1.87 + \def\@shortjid{elsarticle}
1.88 +\NeedsTeXFormat{LaTeX2e}[1995/12/01]
1.89 +\ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]
1.90 +\def\ABD{\AtBeginDocument}
1.91 +\newif\ifpreprint \preprintfalse
1.92 +\newif\iflongmktitle \longmktitlefalse
1.93 +
1.94 +\def\@blstr{1}
1.95 +\newdimen\@bls
1.96 +\@bls=\baselineskip
1.97 +
1.98 +\def\@finalWarning{%
1.99 + *****************************************************\MessageBreak
1.100 + This document is typeset in the CRC style which\MessageBreak
1.101 + is not suitable for submission.\MessageBreak
1.102 + \MessageBreak
1.103 + Please typeset again using 'preprint' option\MessageBreak
1.104 + for creating PDF suitable for submission.\MessageBreak
1.105 + ******************************************************\MessageBreak
1.106 +}
1.107 +
1.108 +\DeclareOption{preprint}{\global\preprinttrue
1.109 + \gdef\@blstr{1}\xdef\jtype{0}%
1.110 + \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}
1.111 +\DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}
1.112 +\DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}
1.113 +\DeclareOption{authoryear}{\xdef\@biboptions{round,authoryear}}
1.114 +\DeclareOption{number}{\xdef\@biboptions{numbers}}
1.115 +\DeclareOption{numbers}{\xdef\@biboptions{numbers}}
1.116 +\DeclareOption{longtitle}{\global\longmktitletrue}
1.117 +\DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse
1.118 + \ExecuteOptions{twocolumn}}
1.119 + \def\jtype{0}
1.120 +\DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}
1.121 +\DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse
1.122 + \AtBeginDocument{\@twocolumnfalse}}
1.123 +\DeclareOption{times}{\IfFileExists{txfonts.sty}%
1.124 + {\AtEndOfClass{\RequirePackage{txfonts}%
1.125 + \gdef\ttdefault{cmtt}%
1.126 + \let\iint\relax
1.127 + \let\iiint\relax
1.128 + \let\iiiint\relax
1.129 + \let\idotsint\relax
1.130 + \let\openbox\relax}}{\RequirePackage{times}}}
1.131 +\ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}
1.132 +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
1.133 +\ProcessOptions
1.134 +\LoadClass{article}
1.135 +\RequirePackage{graphicx}
1.136 +% \end{macrocode}
1.137 +%
1.138 +% \section{Preamble}
1.139 +%
1.140 +% \begin{macrocode}
1.141 +\let\comma\@empty
1.142 +\let\tnotesep\@empty
1.143 +\def\title#1{\gdef\@title{#1}}
1.144 +\let\@title\@empty
1.145 +
1.146 +\def\elsLabel#1{\@bsphack\protected@write\@auxout{}%
1.147 + {\string\Newlabel{#1}{\@currentlabel}}\@esphack}
1.148 +\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}
1.149 +
1.150 +\def\elsRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%
1.151 +}
1.152 +
1.153 +\def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%
1.154 + \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\elsRef{\@@tmark}}}%
1.155 + \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%
1.156 +}
1.157 +\let\@tnotemark\@empty
1.158 +
1.159 +\let\@tnotes\@empty
1.160 +\RequirePackage{pifont}
1.161 +\newcounter{tnote}
1.162 +\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%
1.163 + \refstepcounter{tnote}\elsLabel{#1}%
1.164 + \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%
1.165 + \footnotetext{#2}}}
1.166 +
1.167 +\let\@nonumnotes\@empty
1.168 +\def\nonumnote#1{\g@addto@macro\@nonumnotes{%
1.169 + \let\thefootnote\relax\footnotetext{#1}}}
1.170 +
1.171 +\newcounter{fnote}
1.172 +\def\fnmark[#1]{\let\comma\@empty
1.173 + \def\@fnmark{\@for\@@fnmark:=#1\do{%
1.174 + \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\elsRef{\@@fnmark}}}%
1.175 + \unskip\comma\fnotenum\let\comma,}}%
1.176 +}
1.177 +
1.178 +\let\@fnotes\@empty\let\@fnmark\@empty
1.179 +\def\fntext[#1]#2{\g@addto@macro\@fnotes{%
1.180 + \refstepcounter{fnote}\elsLabel{#1}%
1.181 + \def\thefootnote{\thefnote}%
1.182 + \global\setcounter{footnote}{\thefnote}%
1.183 + \footnotetext{#2}}}
1.184 +
1.185 +\def\cormark[#1]{\edef\cnotenum{\elsRef{#1}}%
1.186 + \unskip\textsuperscript{\sep\ifcase\cnotenum\or
1.187 + $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,}
1.188 +
1.189 +\let\@cormark\@empty
1.190 +\let\@cornotes\@empty
1.191 +\newcounter{cnote}
1.192 +\def\cortext[#1]#2{\g@addto@macro\@cornotes{%
1.193 + \refstepcounter{cnote}\elsLabel{#1}%
1.194 + \def\thefootnote{\ifcase\thecnote\or$\ast$\or
1.195 + $\ast\ast$\fi}%
1.196 + \footnotetext{#2}}}
1.197 +
1.198 +\let\@corref\@empty
1.199 +%\def\corref#1{\cormark[#1]}
1.200 +\def\corref#1{\edef\cnotenum{\elsRef{#1}}%
1.201 + \edef\@corref{\ifcase\cnotenum\or
1.202 + $\ast$\or$\ast\ast$\fi\hskip-1pt}}
1.203 +
1.204 +\def\fnref#1{\fnmark[#1]}
1.205 +\def\tnoteref#1{\tnotemark[#1]}
1.206 +
1.207 +\def\resetTitleCounters{\c@cnote=0
1.208 + \c@fnote=0 \c@tnote=0 \c@footnote=0}
1.209 +
1.210 +\let\eadsep\@empty
1.211 +\let\@elseads\@empty
1.212 +\let\@elsuads\@empty
1.213 +\let\@cormark\@empty
1.214 +\def\hashchar{\expandafter\@gobble\string\~}
1.215 +\def\underscorechar{\expandafter\@gobble\string\_}
1.216 +\def\lbracechar{\expandafter\@gobble\string\{}
1.217 +\def\rbracechar{\expandafter\@gobble\string\}}
1.218 +
1.219 +\def\ead{\@ifnextchar[{\@uad}{\@ead}}
1.220 +\gdef\@ead#1{\bgroup\def\_{\string\underscorechar\space}%
1.221 + \def\{{\string\lbracechar\space}%
1.222 + \def~{\hashchar\space}%
1.223 + \def\}{\string\rbracechar\space}%
1.224 + \edef\tmp{\the\@eadauthor}
1.225 + \immediate\write\@auxout{\string\emailauthor
1.226 + {#1}{\expandafter\strip@prefix\meaning\tmp}}%
1.227 + \egroup
1.228 +}
1.229 +\newcounter{ead}
1.230 +\gdef\emailauthor#1#2{\stepcounter{ead}%
1.231 + \g@addto@macro\@elseads{\raggedright%
1.232 + \let\corref\@gobble
1.233 + \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%
1.234 +}
1.235 +\gdef\@uad[#1]#2{\bgroup
1.236 + \def~{\string\hashchar\space}%
1.237 + \def\_{\string\underscorechar\space}%
1.238 + \edef\tmp{\the\@eadauthor}
1.239 + \immediate\write\@auxout{\string\urlauthor
1.240 + {#2}{\expandafter\strip@prefix\meaning\tmp}}%
1.241 + \egroup
1.242 +}
1.243 +\def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble%
1.244 + \raggedright\eadsep\texttt{#1}\space(#2)%
1.245 + \def\eadsep{\unskip,\space}}%
1.246 +}
1.247 +
1.248 +\def\elsauthors{}
1.249 +\def\pprinttitle{}
1.250 +\let\authorsep\@empty
1.251 +\let\sep\@empty
1.252 +\newcounter{author}
1.253 +\def\author{\@ifnextchar[{\@@author}{\@author}}
1.254 +
1.255 +\newtoks\@eadauthor
1.256 +\def\@@author[#1]#2{\g@addto@macro\elsauthors{%
1.257 + \def\baselinestretch{1}%
1.258 + \authorsep#2\unskip\textsuperscript{%#1%
1.259 + \@for\@@affmark:=#1\do{%
1.260 + \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}%
1.261 + \unskip\sep\affnum\let\sep=,}%
1.262 + \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
1.263 + \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
1.264 + }%
1.265 + \def\authorsep{\unskip,\space}%
1.266 + \global\let\sep\@empty\global\let\@corref\@empty
1.267 + \global\let\@fnmark\@empty}%
1.268 + \@eadauthor={#2}
1.269 +}
1.270 +
1.271 +\def\@author#1{\g@addto@macro\elsauthors{\normalsize%
1.272 + \def\baselinestretch{1}%
1.273 + \upshape\authorsep#1\unskip\textsuperscript{%
1.274 + \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
1.275 + \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
1.276 + }%
1.277 + \def\authorsep{\unskip,\space}%
1.278 + \global\let\@fnmark\@empty
1.279 + \global\let\sep\@empty}%
1.280 + \@eadauthor={#1}
1.281 +}
1.282 +
1.283 +\def\elsaddress{}
1.284 +\def\addsep{\par\vskip6pt}
1.285 +\def\address{\@ifnextchar[{\@@address}{\@address}}
1.286 +
1.287 +\def\@alph#1{%
1.288 + \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
1.289 + 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
1.290 + y\or z%
1.291 + \or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or
1.292 + ak\or al\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or
1.293 + av\or aw\or ax\or ay\or az%
1.294 + \or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or bj\or
1.295 + bk\or bl\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or bu\or
1.296 + bv\or bw\or bx\or by\or bz%
1.297 + \or ca\or cb\or cc\or cd\or ce\or cf\or cg\or ch\or ci\or cj\or
1.298 + ck\or cl\or cm\or cn\or co\or cp\or cq\or cr\or cs\or ct\or cu\or
1.299 + cv\or cw\or cx\or cy\or cz%
1.300 + \or da\or db\or dc\or dd\or de\or df\or dg\or dh\or di\or dj\or
1.301 + dk\or dl\or dm\or dn\or do\or dp\or dq\or dr\or ds\or dt\or du\or
1.302 + dv\or dw\or dx\or dy\or dz%
1.303 + \or ea\or eb\or ec\or ed\or ee\or ef\or eg\or eh\or ei\or ej\or
1.304 + ek\or el\or em\or en\or eo\or ep\or eq\or er\or es\or et\or eu\or
1.305 + ev\or ew\or ex\or ey\or ez%
1.306 + \or fa\or fb\or fc\or fd\or fe\or ff\or fg\or fh\or fi\or fj\or
1.307 + fk\or fl\or fm\or fn\or fo\or fp\or fq\or fr\or fs\or ft\or fu\or
1.308 + fv\or fw\or fx\or fy\or fz%
1.309 + \or ga\or gb\or gc\or gd\or ge\or gf\or gg\or gh\or gi\or gj\or
1.310 + gk\or gl\or gm\or gn\or go\or gp\or gq\or gr\or gs\or gt\or gu\or
1.311 + gv\or gw\or gx\or gy\or gz%
1.312 + \else\@ctrerr\fi}
1.313 +
1.314 +\newcounter{affn}
1.315 +\renewcommand\theaffn{\alph{affn}}
1.316 +
1.317 +\long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%
1.318 + \def\baselinestretch{1}%
1.319 + \refstepcounter{affn}
1.320 + \xdef\@currentlabel{\theaffn}
1.321 + \elsLabel{#1}%
1.322 + \textsuperscript{\theaffn}#2\par}}
1.323 +
1.324 +\long\def\@address#1{\g@addto@macro\elsauthors{%
1.325 + \def\baselinestretch{1}%
1.326 + \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}%
1.327 + \def\authorsep{\par\vskip8pt}}}
1.328 +
1.329 +\newbox\absbox
1.330 +\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup
1.331 + \hsize=\textwidth\def\baselinestretch{1}%
1.332 + \noindent\unskip\textbf{Abstract}
1.333 + \par\medskip\noindent\unskip\ignorespaces}
1.334 + {\egroup}
1.335 +
1.336 +\newbox\keybox
1.337 +\def\keyword{%
1.338 + \def\sep{\unskip, }%
1.339 + \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}
1.340 + \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%
1.341 + \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%
1.342 + \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}%
1.343 + \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth
1.344 + \normalsize\normalfont\def\baselinestretch{1}
1.345 + \parskip\z@
1.346 + \noindent\textit{Keywords: }
1.347 + \raggedright % Keywords are not justified.
1.348 + \ignorespaces}
1.349 +\def\endkeyword{\par \egroup}
1.350 +
1.351 +\newdimen\Columnwidth
1.352 +\Columnwidth=\columnwidth
1.353 +
1.354 +\def\printFirstPageNotes{%
1.355 + \iflongmktitle
1.356 + \let\columnwidth=\textwidth\fi
1.357 + \ifx\@tnotes\@empty\else\@tnotes\fi
1.358 + \ifx\@nonumnotes\@empty\else\@nonumnotes\fi
1.359 + \ifx\@cornotes\@empty\else\@cornotes\fi
1.360 + \ifx\@elseads\@empty\relax\else
1.361 + \let\thefootnote\relax
1.362 + \footnotetext{\ifnum\theead=1\relax
1.363 + \textit{Email address:\space}\else
1.364 + \textit{Email addresses:\space}\fi
1.365 + \@elseads}\fi
1.366 + \ifx\@elsuads\@empty\relax\else
1.367 + \let\thefootnote\relax
1.368 + \footnotetext{\textit{URL:\space}%
1.369 + \@elsuads}\fi
1.370 + \ifx\@fnotes\@empty\else\@fnotes\fi
1.371 + \iflongmktitle\if@twocolumn
1.372 + \let\columnwidth=\Columnwidth\fi\fi
1.373 +}
1.374 +
1.375 +\long\def\pprintMaketitle{\clearpage
1.376 + \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi
1.377 + \resetTitleCounters
1.378 + \def\baselinestretch{1}%
1.379 + \printFirstPageNotes
1.380 + \begin{center}%
1.381 + \thispagestyle{pprintTitle}%
1.382 + \def\baselinestretch{1}%
1.383 + \Large\@title\par\vskip18pt
1.384 + \normalsize\elsauthors\par\vskip10pt
1.385 + \footnotesize\itshape\elsaddress\par\vskip36pt
1.386 + \hrule\vskip12pt
1.387 + \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
1.388 + \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
1.389 + \hrule\vskip12pt
1.390 + \end{center}%
1.391 + \gdef\thefootnote{\arabic{footnote}}%
1.392 + }
1.393 +
1.394 +\def\printWarning{%
1.395 + \mbox{}\par\vfill\par\bgroup
1.396 + \fboxsep12pt\fboxrule1pt
1.397 + \hspace*{.18\textwidth}
1.398 + \fcolorbox{gray50}{gray10}{\box\warnbox}
1.399 + \egroup\par\vfill\thispagestyle{empty}
1.400 + \setcounter{page}{0}
1.401 + \clearpage}
1.402 +
1.403 +\long\def\finalMaketitle{%
1.404 + \resetTitleCounters
1.405 + \def\baselinestretch{1}%
1.406 + \MaketitleBox
1.407 + \thispagestyle{pprintTitle}%
1.408 + \gdef\thefootnote{\arabic{footnote}}%
1.409 + }
1.410 +
1.411 +\long\def\MaketitleBox{%
1.412 + \resetTitleCounters
1.413 + \def\baselinestretch{1}%
1.414 + \begin{center}%
1.415 + \def\baselinestretch{1}%
1.416 + \Large\@title\par\vskip18pt
1.417 + \normalsize\elsauthors\par\vskip10pt
1.418 + \footnotesize\itshape\elsaddress\par\vskip36pt
1.419 + \hrule\vskip12pt
1.420 + \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
1.421 + \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
1.422 + \hrule\vskip12pt
1.423 + \end{center}%
1.424 + }
1.425 +
1.426 +\def\FNtext#1{\par\bgroup\footnotesize#1\egroup}
1.427 +\newdimen\space@left
1.428 +\def\alarm#1{\typeout{******************************}%
1.429 + \typeout{#1}%
1.430 + \typeout{******************************}%
1.431 +}
1.432 +\long\def\getSpaceLeft{%\global\@twocolumnfalse%
1.433 + \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%
1.434 + \global\setbox1=\vbox{\hsize=\textwidth
1.435 + \let\footnotetext\FNtext
1.436 + \printFirstPageNotes}%
1.437 + \xdef\noteheight{\the\ht1}%
1.438 + \xdef\titleheight{\the\ht0}%
1.439 + \@tempdima=\vsize
1.440 + \advance\@tempdima-\noteheight
1.441 + \advance\@tempdima-1\baselineskip
1.442 +}
1.443 +
1.444 + \skip\footins=24pt
1.445 +
1.446 +\newbox\els@boxa
1.447 +\newbox\els@boxb
1.448 +
1.449 +\ifpreprint
1.450 + \def\maketitle{\pprintMaketitle}
1.451 + \else
1.452 + \ifnum\jtype=1
1.453 + \def\maketitle{%
1.454 + \iflongmktitle\getSpaceLeft
1.455 + \global\setbox\els@boxa=\vsplit0 to \@tempdima
1.456 + \box\els@boxa\par\resetTitleCounters
1.457 + \thispagestyle{pprintTitle}%
1.458 + \printFirstPageNotes
1.459 + \box0%
1.460 + \else
1.461 + \finalMaketitle\printFirstPageNotes
1.462 + \fi
1.463 + \gdef\thefootnote{\arabic{footnote}}}%
1.464 + \else
1.465 + \ifnum\jtype=5
1.466 + \def\maketitle{%
1.467 + \iflongmktitle\getSpaceLeft
1.468 + \global\setbox\els@boxa=\vsplit0 to \@tempdima
1.469 + \box\els@boxa\par\resetTitleCounters
1.470 + \thispagestyle{pprintTitle}%
1.471 + \printFirstPageNotes
1.472 + \twocolumn[\box0]%\printFirstPageNotes
1.473 + \else
1.474 + \twocolumn[\finalMaketitle]\printFirstPageNotes
1.475 + \fi
1.476 + \gdef\thefootnote{\arabic{footnote}}}
1.477 + \else
1.478 + \if@twocolumn
1.479 + \def\maketitle{%
1.480 + \iflongmktitle\getSpaceLeft
1.481 + \global\setbox\els@boxa=\vsplit0 to \@tempdima
1.482 + \box\els@boxa\par\resetTitleCounters
1.483 + \thispagestyle{pprintTitle}%
1.484 + \printFirstPageNotes
1.485 + \twocolumn[\box0]%
1.486 + \else
1.487 + \twocolumn[\finalMaketitle]\printFirstPageNotes
1.488 + \fi
1.489 + \gdef\thefootnote{\arabic{footnote}}}%
1.490 + \else
1.491 + \def\maketitle{%
1.492 + \iflongmktitle\getSpaceLeft
1.493 + \global\setbox\els@boxa=\vsplit0 to \@tempdima
1.494 + \box\els@boxa\par\resetTitleCounters
1.495 + \thispagestyle{pprintTitle}%
1.496 + \printFirstPageNotes
1.497 + \box0%
1.498 + \else
1.499 + \finalMaketitle\printFirstPageNotes
1.500 + \fi
1.501 + \gdef\thefootnote{\arabic{footnote}}}%
1.502 + \fi
1.503 + \fi
1.504 + \fi
1.505 +\fi
1.506 +% \end{macrocode}
1.507 +%
1.508 +%\section{Headers/footers}
1.509 +%
1.510 +% \begin{macrocode}
1.511 +\def\ps@pprintTitle{%
1.512 + \let\@oddhead\@empty
1.513 + \let\@evenhead\@empty
1.514 + \def\@oddfoot{\footnotesize\itshape
1.515 + Preprint submitted to \ifx\@journal\@empty Elsevier
1.516 + \else\@journal\fi\hfill\today}%
1.517 + \let\@evenfoot\@oddfoot}
1.518 +% \end{macrocode}
1.519 +%
1.520 +% \section{Section headings}
1.521 +%
1.522 +% \begin{macrocode}
1.523 +\def\@seccntDot{.}
1.524 +\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}
1.525 +
1.526 +\renewcommand\section{\@startsection {section}{1}{\z@}%
1.527 + {18\p@ \@plus 6\p@ \@minus 3\p@}%
1.528 + {9\p@ \@plus 6\p@ \@minus 3\p@}%
1.529 + {\normalsize\bfseries\boldmath}}
1.530 +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
1.531 + {12\p@ \@plus 6\p@ \@minus 3\p@}%
1.532 + {3\p@ \@plus 6\p@ \@minus 3\p@}%
1.533 + {\normalfont\normalsize\itshape}}
1.534 +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
1.535 + {12\p@ \@plus 6\p@ \@minus 3\p@}%
1.536 + {\p@}%
1.537 + {\normalfont\normalsize\itshape}}
1.538 +
1.539 +\def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}}
1.540 +\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}
1.541 +\def\els@bparagraph#1{\elsparagraph*{#1.}}
1.542 +
1.543 +\newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%
1.544 + {10\p@ \@plus 6\p@ \@minus 3\p@}%
1.545 + {-6\p@}%
1.546 + {\normalfont\itshape}}
1.547 +% \end{macrocode}
1.548 +%
1.549 +%\section{List environment}
1.550 +%
1.551 +% \begin{macrocode}
1.552 +\newdimen\leftMargin
1.553 +\leftMargin=2em
1.554 +\newtoks\@enLab %\newtoks\@enfont
1.555 +\def\@enQmark{?}
1.556 +\def\@enLabel#1#2{%
1.557 + \edef\@enThe{\noexpand#1{\@enumctr}}%
1.558 + \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%
1.559 + \@enloop}
1.560 +\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= }
1.561 +\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}
1.562 +\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}
1.563 +\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}
1.564 +\def\@enloop{\futurelet\@entemp\@enloop@}
1.565 +\def\@enloop@{%
1.566 + \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else
1.567 + \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else
1.568 + \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else
1.569 + \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else
1.570 + \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else
1.571 + \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else
1.572 + \ifx \bgroup\@entemp \let\@tempa\@enGroup \else
1.573 + \ifx \@enum@\@entemp \let\@tempa\@gobble \else
1.574 + \let\@tempa\@enOther
1.575 + \fi\fi\fi\fi\fi\fi\fi\fi
1.576 + \@tempa}
1.577 +\newlength{\@sep} \newlength{\@@sep}
1.578 +\setlength{\@sep}{.5\baselineskip plus.2\baselineskip
1.579 + minus.2\baselineskip}
1.580 +\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip
1.581 + minus.05\baselineskip}
1.582 +\providecommand{\sfbc}{\rmfamily\upshape}
1.583 +\providecommand{\sfn}{\rmfamily\upshape}
1.584 +\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}
1.585 +\def\enumerate{%
1.586 + \ifnum \@enumdepth >3 \@toodeep\else
1.587 + \advance\@enumdepth \@ne
1.588 + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi
1.589 + \@ifnextchar[{\@@enum@}{\@enum@}}
1.590 +\def\@@enum@[#1]{%
1.591 + \@enLab{}\let\@enThe\@enQmark
1.592 + \@enloop#1\@enum@
1.593 + \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
1.594 + ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
1.595 + \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%
1.596 + \expandafter\let\csname the\@enumctr\endcsname\@enThe
1.597 + \csname c@\@enumctr\endcsname7
1.598 + \expandafter\settowidth
1.599 + \csname leftmargin\romannumeral\@enumdepth\endcsname
1.600 + {\the\@enLab\hskip\labelsep}%
1.601 + \@enum@}
1.602 +\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%
1.603 + {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%
1.604 + \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else
1.605 + \setlength{\topsep}{\@sep}\fi
1.606 + \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%
1.607 + \else \setlength{\itemsep}{\@@sep}\fi
1.608 + %\setlength\leftmargin{\leftMargin}%%%{1.8em}
1.609 + \setlength{\parsep}{0pt plus1pt minus1pt}%
1.610 + \setlength{\parskip}{0pt plus1pt minus1pt}
1.611 + }}
1.612 +
1.613 +\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else
1.614 + \addvspace{\@sep}\fi \endlist}
1.615 +
1.616 +\def\sitem{\@noitemargtrue\@item[\@itemlabel *]}
1.617 +
1.618 +\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}
1.619 +
1.620 +\def\@Itemize[#1]{\def\next{#1}%
1.621 + \ifnum \@itemdepth >\thr@@\@toodeep\else
1.622 + \advance\@itemdepth\@ne
1.623 + \ifx\next\@empty\else\expandafter\def\csname
1.624 + labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%
1.625 + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
1.626 + \expandafter\list\csname\@itemitem\endcsname
1.627 + {\def\makelabel##1{\hss\llap{##1}}}%
1.628 + \fi}
1.629 +% \end{macrocode}
1.630 +%
1.631 +%\section{Theorem environment}
1.632 +%
1.633 +% \begin{macrocode}
1.634 +\def\newdefinition#1{%
1.635 + \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%]
1.636 +\def\@ndfn#1#2{%
1.637 + \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}
1.638 +\def\@xndfn#1#2[#3]{%
1.639 + \expandafter\@ifdefinable\csname #1\endcsname
1.640 + {\@definecounter{#1}\@newctr{#1}[#3]%
1.641 + \expandafter\xdef\csname the#1\endcsname{%
1.642 + \expandafter\noexpand\csname the#3\endcsname \@dfncountersep
1.643 + \@dfncounter{#1}}%
1.644 + \global\@namedef{#1}{\@dfn{#1}{#2}}%
1.645 + \global\@namedef{end#1}{\@enddefinition}}}
1.646 +\def\@yndfn#1#2{%
1.647 + \expandafter\@ifdefinable\csname #1\endcsname
1.648 + {\@definecounter{#1}%
1.649 + \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}%
1.650 + \global\@namedef{#1}{\@dfn{#1}{#2}}%
1.651 + \global\@namedef{end#1}{\@enddefinition}}}
1.652 +\def\@odfn#1[#2]#3{%
1.653 + \@ifundefined{c@#2}{\@nocounterr{#2}}%
1.654 + {\expandafter\@ifdefinable\csname #1\endcsname
1.655 + {\global\@namedef{the#1}{\@nameuse{the#2}}
1.656 + \global\@namedef{#1}{\@dfn{#2}{#3}}%
1.657 + \global\@namedef{end#1}{\@enddefinition}}}}
1.658 +\def\@dfn#1#2{%
1.659 + \refstepcounter{#1}%
1.660 + \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}
1.661 +\def\@xdfn#1#2{%
1.662 + \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}
1.663 +\def\@ydfn#1#2[#3]{%
1.664 + \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
1.665 +\def\@dfncounter#1{\noexpand\arabic{#1}}
1.666 +\def\@dfncountersep{.}
1.667 +\def\@begindefinition#1#2{\trivlist
1.668 + \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape}
1.669 +\def\@opargbegindefinition#1#2#3{\trivlist
1.670 + \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape}
1.671 +\def\@enddefinition{\endtrivlist}
1.672 +
1.673 +\def\@begintheorem#1#2{\trivlist
1.674 + \let\baselinestretch\@blstr
1.675 + \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}
1.676 +\def\@opargbegintheorem#1#2#3{\trivlist
1.677 + \let\baselinestretch\@blstr
1.678 + \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}
1.679 +
1.680 +\def\newproof#1{%
1.681 + \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}
1.682 +\def\@nprf#1#2{%
1.683 + \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}
1.684 +\def\@xnprf#1#2[#3]{%
1.685 + \expandafter\@ifdefinable\csname #1\endcsname
1.686 + {\@definecounter{#1}\@newctr{#1}[#3]%
1.687 + \expandafter\xdef\csname the#1\endcsname{%
1.688 + \expandafter\noexpand\csname the#3\endcsname \@prfcountersep
1.689 + \@prfcounter{#1}}%
1.690 + \global\@namedef{#1}{\@prf{#1}{#2}}%
1.691 + \global\@namedef{end#1}{\@endproof}}}
1.692 +\def\@ynprf#1#2{%
1.693 + \expandafter\@ifdefinable\csname #1\endcsname
1.694 + {\@definecounter{#1}%
1.695 + \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%
1.696 + \global\@namedef{#1}{\@prf{#1}{#2}}%
1.697 + \global\@namedef{end#1}{\@endproof}}}
1.698 +\def\@oprf#1[#2]#3{%
1.699 + \@ifundefined{c@#2}{\@nocounterr{#2}}%
1.700 + {\expandafter\@ifdefinable\csname #1\endcsname
1.701 + {\global\@namedef{the#1}{\@nameuse{the#2}}%
1.702 + \global\@namedef{#1}{\@prf{#2}{#3}}%
1.703 + \global\@namedef{end#1}{\@endproof}}}}
1.704 +\def\@prf#1#2{%
1.705 + \refstepcounter{#1}%
1.706 + \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}
1.707 +\def\@xprf#1#2{%
1.708 + \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}
1.709 +\def\@yprf#1#2[#3]{%
1.710 + \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
1.711 +\def\@prfcounter#1{\noexpand\arabic{#1}}
1.712 +\def\@prfcountersep{.}
1.713 +\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr
1.714 + \item[\hskip \labelsep{\scshape #1.}]\rmfamily}
1.715 +\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr
1.716 + \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}
1.717 +\def\@endproof{\endtrivlist}
1.718 +\newcommand*{\qed}{\hbox{}\hfill$\Box$}
1.719 +
1.720 +\@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{}
1.721 +\InputIfFileExists{\jobname.spl}{}{}
1.722 +\RequirePackage[\@biboptions]{natbib}
1.723 +
1.724 +\newwrite\splwrite
1.725 +\immediate\openout\splwrite=\jobname.spl
1.726 +\def\biboptions#1{\def\next{#1}\immediate\write\splwrite{%
1.727 + \string\g@addto@macro\string\@biboptions{%
1.728 + ,\expandafter\strip@prefix\meaning\next}}}
1.729 +
1.730 +\let\baselinestretch=\@blstr
1.731 +
1.732 +% \end{macrocode}
1.733 +%
1.734 +%\section{Page dimensions and margins for final form}
1.735 +%
1.736 +%\subsection{Option 1p}
1.737 +%
1.738 +% \begin{macrocode}
1.739 +\ifnum\jtype=1
1.740 + \RequirePackage{geometry}
1.741 + \geometry{twoside,
1.742 + paperwidth=210mm,
1.743 + paperheight=297mm,
1.744 + textheight=562pt,
1.745 + textwidth=384pt,
1.746 + centering,
1.747 + headheight=50pt,
1.748 + headsep=12pt,
1.749 + footskip=12pt,
1.750 + footnotesep=24pt plus 2pt minus 12pt,
1.751 + }
1.752 + \global\let\bibfont=\footnotesize
1.753 + \global\bibsep=0pt
1.754 + \if@twocolumn\global\@twocolumnfalse\fi
1.755 +%
1.756 +% \end{macrocode}
1.757 +%
1.758 +%\subsection{Option '3p'}
1.759 +%
1.760 +% \begin{macrocode}
1.761 +\else\ifnum\jtype=3
1.762 + \RequirePackage{geometry}
1.763 + \geometry{twoside,
1.764 + paperwidth=210mm,
1.765 + paperheight=297mm,
1.766 + textheight=622pt,
1.767 + textwidth=468pt,
1.768 + centering,
1.769 + headheight=50pt,
1.770 + headsep=12pt,
1.771 + footskip=18pt,
1.772 + footnotesep=24pt plus 2pt minus 12pt,
1.773 + columnsep=2pc
1.774 + }
1.775 + \global\let\bibfont=\footnotesize
1.776 + \global\bibsep=0pt
1.777 + \if@twocolumn\input{fleqn.clo}\fi
1.778 +% \end{macrocode}
1.779 +%
1.780 +%\subsection{Option '5p'}
1.781 +%
1.782 +% \begin{macrocode}
1.783 +\else\ifnum\jtype=5
1.784 + \RequirePackage{geometry}
1.785 + \geometry{twoside,
1.786 + paperwidth=210mm,
1.787 + paperheight=297mm,
1.788 + textheight=682pt,
1.789 + textwidth=522pt,
1.790 + centering,
1.791 + headheight=50pt,
1.792 + headsep=12pt,
1.793 + footskip=18pt,
1.794 + footnotesep=24pt plus 2pt minus 12pt,
1.795 + columnsep=18pt
1.796 + }%
1.797 + \global\let\bibfont=\footnotesize
1.798 + \global\bibsep=0pt
1.799 + \input{fleqn.clo}
1.800 + \global\@twocolumntrue
1.801 +%%
1.802 +%% End of option '5p'
1.803 +%%
1.804 +\fi\fi\fi
1.805 +% \end{macrocode}
1.806 +%
1.807 +%\section{Other items}
1.808 +%
1.809 +% \begin{macrocode}
1.810 +\def\journal#1{\gdef\@journal{#1}}
1.811 + \let\@journal\@empty
1.812 +\newenvironment{frontmatter}{}{\maketitle}
1.813 +
1.814 +\long\def\@makecaption#1#2{%
1.815 + \vskip\abovecaptionskip\footnotesize
1.816 + \sbox\@tempboxa{#1: #2}%
1.817 + \ifdim \wd\@tempboxa >\hsize
1.818 + #1: #2\par
1.819 + \else
1.820 + \global \@minipagefalse
1.821 + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
1.822 + \fi
1.823 + \vskip\belowcaptionskip}
1.824 +
1.825 +\AtBeginDocument{\@ifpackageloaded{hyperref}
1.826 + {\def\@linkcolor{blue}
1.827 + \def\@anchorcolor{blue}
1.828 + \def\@citecolor{blue}
1.829 + \def\@filecolor{blue}
1.830 + \def\@urlcolor{blue}
1.831 + \def\@menucolor{blue}
1.832 + \def\@pagecolor{blue}
1.833 +\begingroup
1.834 + \@makeother\`%
1.835 + \@makeother\=%
1.836 + \edef\x{%
1.837 + \edef\noexpand\x{%
1.838 + \endgroup
1.839 + \noexpand\toks@{%
1.840 + \catcode 96=\noexpand\the\catcode`\noexpand\`\relax
1.841 + \catcode 61=\noexpand\the\catcode`\noexpand\=\relax
1.842 + }%
1.843 + }%
1.844 + \noexpand\x
1.845 + }%
1.846 +\x
1.847 +\@makeother\`
1.848 +\@makeother\=
1.849 +}{}}
1.850 +%%
1.851 +\renewcommand\appendix{\par
1.852 + \setcounter{section}{0}%
1.853 + \setcounter{subsection}{0}%
1.854 + \setcounter{equation}{0}
1.855 + \gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
1.856 + \gdef\thetable{\@Alph\c@section.\arabic{table}}%
1.857 + \gdef\thesection{\appendixname\@Alph\c@section}%
1.858 + \@addtoreset{equation}{section}%
1.859 + \gdef\theequation{\@Alph\c@section.\arabic{equation}}%
1.860 +}
1.861 +\def\appendixname{Appendix }
1.862 +
1.863 +%% Added for work with amsrefs.sty
1.864 +
1.865 +\@ifpackageloaded{amsrefs}%
1.866 + {}
1.867 + {\let\bibsection\relax%
1.868 + \AtBeginDocument{\def\cites@b#1#2,#3{%
1.869 + \begingroup[%
1.870 + \toks@{\InnerCite{#2}#1}%
1.871 + \ifx\@empty#3\@xp\@gobble\fi
1.872 + \cites@c#3%
1.873 +}}}
1.874 +%
1.875 +%%
1.876 +%</class>
1.877 +%
1.878 +% \end{macrocode}
1.879 +% \Finale
1.880 +\endinput
1.881 +
1.882 +%%
1.883 +%% End of file 'elsarticle.dtx'
1.884 +%%
1.885 +