alpar@0: % \iffalse meta-comment alpar@0: % alpar@0: % Copyright (C) 2007, 2008, 2009 by Elsevier Ltd alpar@0: % ----------------------------------------------- alpar@0: % alpar@0: % This file may be distributed and/or modified under the alpar@0: % conditions of the LaTeX Project Public License, either version 1.2 alpar@0: % of this license or (at your option) any later version. alpar@0: % The latest version of this license is in: alpar@0: % alpar@0: % http://www.latex-project.org/lppl.txt alpar@0: % alpar@0: % and version 1.2 or later is part of all distributions of LaTeX alpar@0: % version 1999/12/01 or later. alpar@0: % alpar@0: % \fi alpar@0: % \CheckSum{2196} alpar@0: % alpar@0: % \iffalse alpar@0: %<*driver> alpar@0: \documentclass{ltxdoc} alpar@0: \EnableCrossrefs alpar@0: \CodelineIndex alpar@0: \RecordChanges alpar@0: \usepackage{comment} alpar@0: \begin{document} alpar@0: \DocInput{elsarticle.dtx} alpar@0: \PrintChanges alpar@0: \PrintIndex alpar@0: \end{document} alpar@0: % alpar@0: % \fi alpar@0: % alpar@0: % \CharacterTable alpar@0: % {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 alpar@0: % 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 alpar@0: % Digits \0\1\2\3\4\5\6\7\8\9 alpar@0: % Exclamation \! Double quote \" Hash (number) \# alpar@0: % Dollar \$ Percent \% Ampersand \& alpar@0: % Acute accent \' Left paren \( Right paren \) alpar@0: % Asterisk \* Plus \+ Comma \, alpar@0: % Minus \- Point \. Solidus \/ alpar@0: % Colon \: Semicolon \; Less than \< alpar@0: % Equals \= Greater than \> Question mark \? alpar@0: % Commercial at \@ Left bracket \[ Backslash \\ alpar@0: % Right bracket \] Circumflex \^ Underscore \_ alpar@0: % Grave accent \` Left brace \{ Vertical bar \| alpar@0: % Right brace \} Tilde \~} alpar@0: % alpar@0: % alpar@0: % \changes{v1.1}{2008/09/25}{Initial version} alpar@0: % alpar@0: % alpar@0: % \changes{v1.2}{2009/09/17}{Documentation, templates, and *.bst alpar@0: % has been seperated from this .dtx. Incompatibility problems alpar@0: % with amsref.sty, fncylab.sty have been fixed. Some bugs related alpar@0: % to author/affiliation part have been fixed.} alpar@0: % alpar@0: % \GetFileInfo{elsarticle.dtx} alpar@0: % alpar@0: % \DoNotIndex{\newcommand,\newenvironment} alpar@0: % alpar@0: % alpar@0: % \title{The \textsf{elsarticle.cls} -- Implimentation} alpar@0: % \author{Elsevier Ltd} alpar@0: % alpar@0: % \maketitle alpar@0: % alpar@0: % \StopEventually{} alpar@0: % alpar@0: % \section{Implementation} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: %<*class> alpar@0: %% alpar@0: %% $Id: elsarticle.cls,v 1.20 2008-10-13 04:24:12 cvr Exp $ alpar@0: %% alpar@0: \def\RCSfile{elsarticle}% alpar@0: \def\RCSversion{1.2.0}% alpar@0: \def\RCSdate{2009/09/17}% alpar@0: \def\@shortjnl{\relax} alpar@0: \def\@journal{Elsevier Ltd} \def\@company{Elsevier Ltd} alpar@0: \def\@issn{000-0000} alpar@0: \def\@shortjid{elsarticle} alpar@0: \NeedsTeXFormat{LaTeX2e}[1995/12/01] alpar@0: \ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal] alpar@0: \def\ABD{\AtBeginDocument} alpar@0: \newif\ifpreprint \preprintfalse alpar@0: \newif\iflongmktitle \longmktitlefalse alpar@0: alpar@0: \def\@blstr{1} alpar@0: \newdimen\@bls alpar@0: \@bls=\baselineskip alpar@0: alpar@0: \def\@finalWarning{% alpar@0: *****************************************************\MessageBreak alpar@0: This document is typeset in the CRC style which\MessageBreak alpar@0: is not suitable for submission.\MessageBreak alpar@0: \MessageBreak alpar@0: Please typeset again using 'preprint' option\MessageBreak alpar@0: for creating PDF suitable for submission.\MessageBreak alpar@0: ******************************************************\MessageBreak alpar@0: } alpar@0: alpar@0: \DeclareOption{preprint}{\global\preprinttrue alpar@0: \gdef\@blstr{1}\xdef\jtype{0}% alpar@0: \AtBeginDocument{\@twosidefalse\@mparswitchfalse}} alpar@0: \DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse} alpar@0: \DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}} alpar@0: \DeclareOption{authoryear}{\xdef\@biboptions{round,authoryear}} alpar@0: \DeclareOption{number}{\xdef\@biboptions{numbers}} alpar@0: \DeclareOption{numbers}{\xdef\@biboptions{numbers}} alpar@0: \DeclareOption{longtitle}{\global\longmktitletrue} alpar@0: \DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse alpar@0: \ExecuteOptions{twocolumn}} alpar@0: \def\jtype{0} alpar@0: \DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse} alpar@0: \DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse alpar@0: \AtBeginDocument{\@twocolumnfalse}} alpar@0: \DeclareOption{times}{\IfFileExists{txfonts.sty}% alpar@0: {\AtEndOfClass{\RequirePackage{txfonts}% alpar@0: \gdef\ttdefault{cmtt}% alpar@0: \let\iint\relax alpar@0: \let\iiint\relax alpar@0: \let\iiiint\relax alpar@0: \let\idotsint\relax alpar@0: \let\openbox\relax}}{\RequirePackage{times}}} alpar@0: \ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint} alpar@0: \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} alpar@0: \ProcessOptions alpar@0: \LoadClass{article} alpar@0: \RequirePackage{graphicx} alpar@0: % \end{macrocode} alpar@0: % alpar@0: % \section{Preamble} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \let\comma\@empty alpar@0: \let\tnotesep\@empty alpar@0: \def\title#1{\gdef\@title{#1}} alpar@0: \let\@title\@empty alpar@0: alpar@0: \def\elsLabel#1{\@bsphack\protected@write\@auxout{}% alpar@0: {\string\Newlabel{#1}{\@currentlabel}}\@esphack} alpar@0: \def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}} alpar@0: alpar@0: \def\elsRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}% alpar@0: } alpar@0: alpar@0: \def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{% alpar@0: \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\elsRef{\@@tmark}}}% alpar@0: \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}% alpar@0: } alpar@0: \let\@tnotemark\@empty alpar@0: alpar@0: \let\@tnotes\@empty alpar@0: \RequirePackage{pifont} alpar@0: \newcounter{tnote} alpar@0: \def\tnotetext[#1]#2{\g@addto@macro\@tnotes{% alpar@0: \refstepcounter{tnote}\elsLabel{#1}% alpar@0: \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}% alpar@0: \footnotetext{#2}}} alpar@0: alpar@0: \let\@nonumnotes\@empty alpar@0: \def\nonumnote#1{\g@addto@macro\@nonumnotes{% alpar@0: \let\thefootnote\relax\footnotetext{#1}}} alpar@0: alpar@0: \newcounter{fnote} alpar@0: \def\fnmark[#1]{\let\comma\@empty alpar@0: \def\@fnmark{\@for\@@fnmark:=#1\do{% alpar@0: \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\elsRef{\@@fnmark}}}% alpar@0: \unskip\comma\fnotenum\let\comma,}}% alpar@0: } alpar@0: alpar@0: \let\@fnotes\@empty\let\@fnmark\@empty alpar@0: \def\fntext[#1]#2{\g@addto@macro\@fnotes{% alpar@0: \refstepcounter{fnote}\elsLabel{#1}% alpar@0: \def\thefootnote{\thefnote}% alpar@0: \global\setcounter{footnote}{\thefnote}% alpar@0: \footnotetext{#2}}} alpar@0: alpar@0: \def\cormark[#1]{\edef\cnotenum{\elsRef{#1}}% alpar@0: \unskip\textsuperscript{\sep\ifcase\cnotenum\or alpar@0: $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,} alpar@0: alpar@0: \let\@cormark\@empty alpar@0: \let\@cornotes\@empty alpar@0: \newcounter{cnote} alpar@0: \def\cortext[#1]#2{\g@addto@macro\@cornotes{% alpar@0: \refstepcounter{cnote}\elsLabel{#1}% alpar@0: \def\thefootnote{\ifcase\thecnote\or$\ast$\or alpar@0: $\ast\ast$\fi}% alpar@0: \footnotetext{#2}}} alpar@0: alpar@0: \let\@corref\@empty alpar@0: %\def\corref#1{\cormark[#1]} alpar@0: \def\corref#1{\edef\cnotenum{\elsRef{#1}}% alpar@0: \edef\@corref{\ifcase\cnotenum\or alpar@0: $\ast$\or$\ast\ast$\fi\hskip-1pt}} alpar@0: alpar@0: \def\fnref#1{\fnmark[#1]} alpar@0: \def\tnoteref#1{\tnotemark[#1]} alpar@0: alpar@0: \def\resetTitleCounters{\c@cnote=0 alpar@0: \c@fnote=0 \c@tnote=0 \c@footnote=0} alpar@0: alpar@0: \let\eadsep\@empty alpar@0: \let\@elseads\@empty alpar@0: \let\@elsuads\@empty alpar@0: \let\@cormark\@empty alpar@0: \def\hashchar{\expandafter\@gobble\string\~} alpar@0: \def\underscorechar{\expandafter\@gobble\string\_} alpar@0: \def\lbracechar{\expandafter\@gobble\string\{} alpar@0: \def\rbracechar{\expandafter\@gobble\string\}} alpar@0: alpar@0: \def\ead{\@ifnextchar[{\@uad}{\@ead}} alpar@0: \gdef\@ead#1{\bgroup\def\_{\string\underscorechar\space}% alpar@0: \def\{{\string\lbracechar\space}% alpar@0: \def~{\hashchar\space}% alpar@0: \def\}{\string\rbracechar\space}% alpar@0: \edef\tmp{\the\@eadauthor} alpar@0: \immediate\write\@auxout{\string\emailauthor alpar@0: {#1}{\expandafter\strip@prefix\meaning\tmp}}% alpar@0: \egroup alpar@0: } alpar@0: \newcounter{ead} alpar@0: \gdef\emailauthor#1#2{\stepcounter{ead}% alpar@0: \g@addto@macro\@elseads{\raggedright% alpar@0: \let\corref\@gobble alpar@0: \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}% alpar@0: } alpar@0: \gdef\@uad[#1]#2{\bgroup alpar@0: \def~{\string\hashchar\space}% alpar@0: \def\_{\string\underscorechar\space}% alpar@0: \edef\tmp{\the\@eadauthor} alpar@0: \immediate\write\@auxout{\string\urlauthor alpar@0: {#2}{\expandafter\strip@prefix\meaning\tmp}}% alpar@0: \egroup alpar@0: } alpar@0: \def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble% alpar@0: \raggedright\eadsep\texttt{#1}\space(#2)% alpar@0: \def\eadsep{\unskip,\space}}% alpar@0: } alpar@0: alpar@0: \def\elsauthors{} alpar@0: \def\pprinttitle{} alpar@0: \let\authorsep\@empty alpar@0: \let\sep\@empty alpar@0: \newcounter{author} alpar@0: \def\author{\@ifnextchar[{\@@author}{\@author}} alpar@0: alpar@0: \newtoks\@eadauthor alpar@0: \def\@@author[#1]#2{\g@addto@macro\elsauthors{% alpar@0: \def\baselinestretch{1}% alpar@0: \authorsep#2\unskip\textsuperscript{%#1% alpar@0: \@for\@@affmark:=#1\do{% alpar@0: \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}% alpar@0: \unskip\sep\affnum\let\sep=,}% alpar@0: \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi alpar@0: \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi alpar@0: }% alpar@0: \def\authorsep{\unskip,\space}% alpar@0: \global\let\sep\@empty\global\let\@corref\@empty alpar@0: \global\let\@fnmark\@empty}% alpar@0: \@eadauthor={#2} alpar@0: } alpar@0: alpar@0: \def\@author#1{\g@addto@macro\elsauthors{\normalsize% alpar@0: \def\baselinestretch{1}% alpar@0: \upshape\authorsep#1\unskip\textsuperscript{% alpar@0: \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi alpar@0: \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi alpar@0: }% alpar@0: \def\authorsep{\unskip,\space}% alpar@0: \global\let\@fnmark\@empty alpar@0: \global\let\sep\@empty}% alpar@0: \@eadauthor={#1} alpar@0: } alpar@0: alpar@0: \def\elsaddress{} alpar@0: \def\addsep{\par\vskip6pt} alpar@0: \def\address{\@ifnextchar[{\@@address}{\@address}} alpar@0: alpar@0: \def\@alph#1{% alpar@0: \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 alpar@0: 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 alpar@0: y\or z% alpar@0: \or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or alpar@0: ak\or al\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or alpar@0: av\or aw\or ax\or ay\or az% alpar@0: \or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or bj\or alpar@0: bk\or bl\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or bu\or alpar@0: bv\or bw\or bx\or by\or bz% alpar@0: \or ca\or cb\or cc\or cd\or ce\or cf\or cg\or ch\or ci\or cj\or alpar@0: ck\or cl\or cm\or cn\or co\or cp\or cq\or cr\or cs\or ct\or cu\or alpar@0: cv\or cw\or cx\or cy\or cz% alpar@0: \or da\or db\or dc\or dd\or de\or df\or dg\or dh\or di\or dj\or alpar@0: dk\or dl\or dm\or dn\or do\or dp\or dq\or dr\or ds\or dt\or du\or alpar@0: dv\or dw\or dx\or dy\or dz% alpar@0: \or ea\or eb\or ec\or ed\or ee\or ef\or eg\or eh\or ei\or ej\or alpar@0: ek\or el\or em\or en\or eo\or ep\or eq\or er\or es\or et\or eu\or alpar@0: ev\or ew\or ex\or ey\or ez% alpar@0: \or fa\or fb\or fc\or fd\or fe\or ff\or fg\or fh\or fi\or fj\or alpar@0: fk\or fl\or fm\or fn\or fo\or fp\or fq\or fr\or fs\or ft\or fu\or alpar@0: fv\or fw\or fx\or fy\or fz% alpar@0: \or ga\or gb\or gc\or gd\or ge\or gf\or gg\or gh\or gi\or gj\or alpar@0: gk\or gl\or gm\or gn\or go\or gp\or gq\or gr\or gs\or gt\or gu\or alpar@0: gv\or gw\or gx\or gy\or gz% alpar@0: \else\@ctrerr\fi} alpar@0: alpar@0: \newcounter{affn} alpar@0: \renewcommand\theaffn{\alph{affn}} alpar@0: alpar@0: \long\def\@@address[#1]#2{\g@addto@macro\elsaddress{% alpar@0: \def\baselinestretch{1}% alpar@0: \refstepcounter{affn} alpar@0: \xdef\@currentlabel{\theaffn} alpar@0: \elsLabel{#1}% alpar@0: \textsuperscript{\theaffn}#2\par}} alpar@0: alpar@0: \long\def\@address#1{\g@addto@macro\elsauthors{% alpar@0: \def\baselinestretch{1}% alpar@0: \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}% alpar@0: \def\authorsep{\par\vskip8pt}}} alpar@0: alpar@0: \newbox\absbox alpar@0: \renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup alpar@0: \hsize=\textwidth\def\baselinestretch{1}% alpar@0: \noindent\unskip\textbf{Abstract} alpar@0: \par\medskip\noindent\unskip\ignorespaces} alpar@0: {\egroup} alpar@0: alpar@0: \newbox\keybox alpar@0: \def\keyword{% alpar@0: \def\sep{\unskip, }% alpar@0: \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}} alpar@0: \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}% alpar@0: \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}% alpar@0: \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}% alpar@0: \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth alpar@0: \normalsize\normalfont\def\baselinestretch{1} alpar@0: \parskip\z@ alpar@0: \noindent\textit{Keywords: } alpar@0: \raggedright % Keywords are not justified. alpar@0: \ignorespaces} alpar@0: \def\endkeyword{\par \egroup} alpar@0: alpar@0: \newdimen\Columnwidth alpar@0: \Columnwidth=\columnwidth alpar@0: alpar@0: \def\printFirstPageNotes{% alpar@0: \iflongmktitle alpar@0: \let\columnwidth=\textwidth\fi alpar@0: \ifx\@tnotes\@empty\else\@tnotes\fi alpar@0: \ifx\@nonumnotes\@empty\else\@nonumnotes\fi alpar@0: \ifx\@cornotes\@empty\else\@cornotes\fi alpar@0: \ifx\@elseads\@empty\relax\else alpar@0: \let\thefootnote\relax alpar@0: \footnotetext{\ifnum\theead=1\relax alpar@0: \textit{Email address:\space}\else alpar@0: \textit{Email addresses:\space}\fi alpar@0: \@elseads}\fi alpar@0: \ifx\@elsuads\@empty\relax\else alpar@0: \let\thefootnote\relax alpar@0: \footnotetext{\textit{URL:\space}% alpar@0: \@elsuads}\fi alpar@0: \ifx\@fnotes\@empty\else\@fnotes\fi alpar@0: \iflongmktitle\if@twocolumn alpar@0: \let\columnwidth=\Columnwidth\fi\fi alpar@0: } alpar@0: alpar@0: \long\def\pprintMaketitle{\clearpage alpar@0: \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi alpar@0: \resetTitleCounters alpar@0: \def\baselinestretch{1}% alpar@0: \printFirstPageNotes alpar@0: \begin{center}% alpar@0: \thispagestyle{pprintTitle}% alpar@0: \def\baselinestretch{1}% alpar@0: \Large\@title\par\vskip18pt alpar@0: \normalsize\elsauthors\par\vskip10pt alpar@0: \footnotesize\itshape\elsaddress\par\vskip36pt alpar@0: \hrule\vskip12pt alpar@0: \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi alpar@0: \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi alpar@0: \hrule\vskip12pt alpar@0: \end{center}% alpar@0: \gdef\thefootnote{\arabic{footnote}}% alpar@0: } alpar@0: alpar@0: \def\printWarning{% alpar@0: \mbox{}\par\vfill\par\bgroup alpar@0: \fboxsep12pt\fboxrule1pt alpar@0: \hspace*{.18\textwidth} alpar@0: \fcolorbox{gray50}{gray10}{\box\warnbox} alpar@0: \egroup\par\vfill\thispagestyle{empty} alpar@0: \setcounter{page}{0} alpar@0: \clearpage} alpar@0: alpar@0: \long\def\finalMaketitle{% alpar@0: \resetTitleCounters alpar@0: \def\baselinestretch{1}% alpar@0: \MaketitleBox alpar@0: \thispagestyle{pprintTitle}% alpar@0: \gdef\thefootnote{\arabic{footnote}}% alpar@0: } alpar@0: alpar@0: \long\def\MaketitleBox{% alpar@0: \resetTitleCounters alpar@0: \def\baselinestretch{1}% alpar@0: \begin{center}% alpar@0: \def\baselinestretch{1}% alpar@0: \Large\@title\par\vskip18pt alpar@0: \normalsize\elsauthors\par\vskip10pt alpar@0: \footnotesize\itshape\elsaddress\par\vskip36pt alpar@0: \hrule\vskip12pt alpar@0: \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi alpar@0: \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi alpar@0: \hrule\vskip12pt alpar@0: \end{center}% alpar@0: } alpar@0: alpar@0: \def\FNtext#1{\par\bgroup\footnotesize#1\egroup} alpar@0: \newdimen\space@left alpar@0: \def\alarm#1{\typeout{******************************}% alpar@0: \typeout{#1}% alpar@0: \typeout{******************************}% alpar@0: } alpar@0: \long\def\getSpaceLeft{%\global\@twocolumnfalse% alpar@0: \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}% alpar@0: \global\setbox1=\vbox{\hsize=\textwidth alpar@0: \let\footnotetext\FNtext alpar@0: \printFirstPageNotes}% alpar@0: \xdef\noteheight{\the\ht1}% alpar@0: \xdef\titleheight{\the\ht0}% alpar@0: \@tempdima=\vsize alpar@0: \advance\@tempdima-\noteheight alpar@0: \advance\@tempdima-1\baselineskip alpar@0: } alpar@0: alpar@0: \skip\footins=24pt alpar@0: alpar@0: \newbox\els@boxa alpar@0: \newbox\els@boxb alpar@0: alpar@0: \ifpreprint alpar@0: \def\maketitle{\pprintMaketitle} alpar@0: \else alpar@0: \ifnum\jtype=1 alpar@0: \def\maketitle{% alpar@0: \iflongmktitle\getSpaceLeft alpar@0: \global\setbox\els@boxa=\vsplit0 to \@tempdima alpar@0: \box\els@boxa\par\resetTitleCounters alpar@0: \thispagestyle{pprintTitle}% alpar@0: \printFirstPageNotes alpar@0: \box0% alpar@0: \else alpar@0: \finalMaketitle\printFirstPageNotes alpar@0: \fi alpar@0: \gdef\thefootnote{\arabic{footnote}}}% alpar@0: \else alpar@0: \ifnum\jtype=5 alpar@0: \def\maketitle{% alpar@0: \iflongmktitle\getSpaceLeft alpar@0: \global\setbox\els@boxa=\vsplit0 to \@tempdima alpar@0: \box\els@boxa\par\resetTitleCounters alpar@0: \thispagestyle{pprintTitle}% alpar@0: \printFirstPageNotes alpar@0: \twocolumn[\box0]%\printFirstPageNotes alpar@0: \else alpar@0: \twocolumn[\finalMaketitle]\printFirstPageNotes alpar@0: \fi alpar@0: \gdef\thefootnote{\arabic{footnote}}} alpar@0: \else alpar@0: \if@twocolumn alpar@0: \def\maketitle{% alpar@0: \iflongmktitle\getSpaceLeft alpar@0: \global\setbox\els@boxa=\vsplit0 to \@tempdima alpar@0: \box\els@boxa\par\resetTitleCounters alpar@0: \thispagestyle{pprintTitle}% alpar@0: \printFirstPageNotes alpar@0: \twocolumn[\box0]% alpar@0: \else alpar@0: \twocolumn[\finalMaketitle]\printFirstPageNotes alpar@0: \fi alpar@0: \gdef\thefootnote{\arabic{footnote}}}% alpar@0: \else alpar@0: \def\maketitle{% alpar@0: \iflongmktitle\getSpaceLeft alpar@0: \global\setbox\els@boxa=\vsplit0 to \@tempdima alpar@0: \box\els@boxa\par\resetTitleCounters alpar@0: \thispagestyle{pprintTitle}% alpar@0: \printFirstPageNotes alpar@0: \box0% alpar@0: \else alpar@0: \finalMaketitle\printFirstPageNotes alpar@0: \fi alpar@0: \gdef\thefootnote{\arabic{footnote}}}% alpar@0: \fi alpar@0: \fi alpar@0: \fi alpar@0: \fi alpar@0: % \end{macrocode} alpar@0: % alpar@0: %\section{Headers/footers} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \def\ps@pprintTitle{% alpar@0: \let\@oddhead\@empty alpar@0: \let\@evenhead\@empty alpar@0: \def\@oddfoot{\footnotesize\itshape alpar@0: Preprint submitted to \ifx\@journal\@empty Elsevier alpar@0: \else\@journal\fi\hfill\today}% alpar@0: \let\@evenfoot\@oddfoot} alpar@0: % \end{macrocode} alpar@0: % alpar@0: % \section{Section headings} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \def\@seccntDot{.} alpar@0: \def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em} alpar@0: alpar@0: \renewcommand\section{\@startsection {section}{1}{\z@}% alpar@0: {18\p@ \@plus 6\p@ \@minus 3\p@}% alpar@0: {9\p@ \@plus 6\p@ \@minus 3\p@}% alpar@0: {\normalsize\bfseries\boldmath}} alpar@0: \renewcommand\subsection{\@startsection{subsection}{2}{\z@}% alpar@0: {12\p@ \@plus 6\p@ \@minus 3\p@}% alpar@0: {3\p@ \@plus 6\p@ \@minus 3\p@}% alpar@0: {\normalfont\normalsize\itshape}} alpar@0: \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% alpar@0: {12\p@ \@plus 6\p@ \@minus 3\p@}% alpar@0: {\p@}% alpar@0: {\normalfont\normalsize\itshape}} alpar@0: alpar@0: \def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}} alpar@0: \def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}} alpar@0: \def\els@bparagraph#1{\elsparagraph*{#1.}} alpar@0: alpar@0: \newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}% alpar@0: {10\p@ \@plus 6\p@ \@minus 3\p@}% alpar@0: {-6\p@}% alpar@0: {\normalfont\itshape}} alpar@0: % \end{macrocode} alpar@0: % alpar@0: %\section{List environment} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \newdimen\leftMargin alpar@0: \leftMargin=2em alpar@0: \newtoks\@enLab %\newtoks\@enfont alpar@0: \def\@enQmark{?} alpar@0: \def\@enLabel#1#2{% alpar@0: \edef\@enThe{\noexpand#1{\@enumctr}}% alpar@0: \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}% alpar@0: \@enloop} alpar@0: \def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= } alpar@0: \def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop} alpar@0: \def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop} alpar@0: \def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop} alpar@0: \def\@enloop{\futurelet\@entemp\@enloop@} alpar@0: \def\@enloop@{% alpar@0: \ifx A\@entemp \def\@tempa{\@enLabel\Alph }\else alpar@0: \ifx a\@entemp \def\@tempa{\@enLabel\alph }\else alpar@0: \ifx i\@entemp \def\@tempa{\@enLabel\roman }\else alpar@0: \ifx I\@entemp \def\@tempa{\@enLabel\Roman }\else alpar@0: \ifx 1\@entemp \def\@tempa{\@enLabel\arabic}\else alpar@0: \ifx \@sptoken\@entemp \let\@tempa\@enSpace \else alpar@0: \ifx \bgroup\@entemp \let\@tempa\@enGroup \else alpar@0: \ifx \@enum@\@entemp \let\@tempa\@gobble \else alpar@0: \let\@tempa\@enOther alpar@0: \fi\fi\fi\fi\fi\fi\fi\fi alpar@0: \@tempa} alpar@0: \newlength{\@sep} \newlength{\@@sep} alpar@0: \setlength{\@sep}{.5\baselineskip plus.2\baselineskip alpar@0: minus.2\baselineskip} alpar@0: \setlength{\@@sep}{.1\baselineskip plus.01\baselineskip alpar@0: minus.05\baselineskip} alpar@0: \providecommand{\sfbc}{\rmfamily\upshape} alpar@0: \providecommand{\sfn}{\rmfamily\upshape} alpar@0: \def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt} alpar@0: \def\enumerate{% alpar@0: \ifnum \@enumdepth >3 \@toodeep\else alpar@0: \advance\@enumdepth \@ne alpar@0: \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi alpar@0: \@ifnextchar[{\@@enum@}{\@enum@}} alpar@0: \def\@@enum@[#1]{% alpar@0: \@enLab{}\let\@enThe\@enQmark alpar@0: \@enloop#1\@enum@ alpar@0: \ifx\@enThe\@enQmark\@warning{The counter will not be printed.% alpar@0: ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi alpar@0: \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}% alpar@0: \expandafter\let\csname the\@enumctr\endcsname\@enThe alpar@0: \csname c@\@enumctr\endcsname7 alpar@0: \expandafter\settowidth alpar@0: \csname leftmargin\romannumeral\@enumdepth\endcsname alpar@0: {\the\@enLab\hskip\labelsep}% alpar@0: \@enum@} alpar@0: \def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}% alpar@0: {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}% alpar@0: \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else alpar@0: \setlength{\topsep}{\@sep}\fi alpar@0: \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}% alpar@0: \else \setlength{\itemsep}{\@@sep}\fi alpar@0: %\setlength\leftmargin{\leftMargin}%%%{1.8em} alpar@0: \setlength{\parsep}{0pt plus1pt minus1pt}% alpar@0: \setlength{\parskip}{0pt plus1pt minus1pt} alpar@0: }} alpar@0: alpar@0: \def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else alpar@0: \addvspace{\@sep}\fi \endlist} alpar@0: alpar@0: \def\sitem{\@noitemargtrue\@item[\@itemlabel *]} alpar@0: alpar@0: \def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}} alpar@0: alpar@0: \def\@Itemize[#1]{\def\next{#1}% alpar@0: \ifnum \@itemdepth >\thr@@\@toodeep\else alpar@0: \advance\@itemdepth\@ne alpar@0: \ifx\next\@empty\else\expandafter\def\csname alpar@0: labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi% alpar@0: \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% alpar@0: \expandafter\list\csname\@itemitem\endcsname alpar@0: {\def\makelabel##1{\hss\llap{##1}}}% alpar@0: \fi} alpar@0: % \end{macrocode} alpar@0: % alpar@0: %\section{Theorem environment} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \def\newdefinition#1{% alpar@0: \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%] alpar@0: \def\@ndfn#1#2{% alpar@0: \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}} alpar@0: \def\@xndfn#1#2[#3]{% alpar@0: \expandafter\@ifdefinable\csname #1\endcsname alpar@0: {\@definecounter{#1}\@newctr{#1}[#3]% alpar@0: \expandafter\xdef\csname the#1\endcsname{% alpar@0: \expandafter\noexpand\csname the#3\endcsname \@dfncountersep alpar@0: \@dfncounter{#1}}% alpar@0: \global\@namedef{#1}{\@dfn{#1}{#2}}% alpar@0: \global\@namedef{end#1}{\@enddefinition}}} alpar@0: \def\@yndfn#1#2{% alpar@0: \expandafter\@ifdefinable\csname #1\endcsname alpar@0: {\@definecounter{#1}% alpar@0: \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}% alpar@0: \global\@namedef{#1}{\@dfn{#1}{#2}}% alpar@0: \global\@namedef{end#1}{\@enddefinition}}} alpar@0: \def\@odfn#1[#2]#3{% alpar@0: \@ifundefined{c@#2}{\@nocounterr{#2}}% alpar@0: {\expandafter\@ifdefinable\csname #1\endcsname alpar@0: {\global\@namedef{the#1}{\@nameuse{the#2}} alpar@0: \global\@namedef{#1}{\@dfn{#2}{#3}}% alpar@0: \global\@namedef{end#1}{\@enddefinition}}}} alpar@0: \def\@dfn#1#2{% alpar@0: \refstepcounter{#1}% alpar@0: \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}} alpar@0: \def\@xdfn#1#2{% alpar@0: \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces} alpar@0: \def\@ydfn#1#2[#3]{% alpar@0: \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces} alpar@0: \def\@dfncounter#1{\noexpand\arabic{#1}} alpar@0: \def\@dfncountersep{.} alpar@0: \def\@begindefinition#1#2{\trivlist alpar@0: \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape} alpar@0: \def\@opargbegindefinition#1#2#3{\trivlist alpar@0: \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape} alpar@0: \def\@enddefinition{\endtrivlist} alpar@0: alpar@0: \def\@begintheorem#1#2{\trivlist alpar@0: \let\baselinestretch\@blstr alpar@0: \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape} alpar@0: \def\@opargbegintheorem#1#2#3{\trivlist alpar@0: \let\baselinestretch\@blstr alpar@0: \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape} alpar@0: alpar@0: \def\newproof#1{% alpar@0: \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}} alpar@0: \def\@nprf#1#2{% alpar@0: \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}} alpar@0: \def\@xnprf#1#2[#3]{% alpar@0: \expandafter\@ifdefinable\csname #1\endcsname alpar@0: {\@definecounter{#1}\@newctr{#1}[#3]% alpar@0: \expandafter\xdef\csname the#1\endcsname{% alpar@0: \expandafter\noexpand\csname the#3\endcsname \@prfcountersep alpar@0: \@prfcounter{#1}}% alpar@0: \global\@namedef{#1}{\@prf{#1}{#2}}% alpar@0: \global\@namedef{end#1}{\@endproof}}} alpar@0: \def\@ynprf#1#2{% alpar@0: \expandafter\@ifdefinable\csname #1\endcsname alpar@0: {\@definecounter{#1}% alpar@0: \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}% alpar@0: \global\@namedef{#1}{\@prf{#1}{#2}}% alpar@0: \global\@namedef{end#1}{\@endproof}}} alpar@0: \def\@oprf#1[#2]#3{% alpar@0: \@ifundefined{c@#2}{\@nocounterr{#2}}% alpar@0: {\expandafter\@ifdefinable\csname #1\endcsname alpar@0: {\global\@namedef{the#1}{\@nameuse{the#2}}% alpar@0: \global\@namedef{#1}{\@prf{#2}{#3}}% alpar@0: \global\@namedef{end#1}{\@endproof}}}} alpar@0: \def\@prf#1#2{% alpar@0: \refstepcounter{#1}% alpar@0: \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}} alpar@0: \def\@xprf#1#2{% alpar@0: \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} alpar@0: \def\@yprf#1#2[#3]{% alpar@0: \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces} alpar@0: \def\@prfcounter#1{\noexpand\arabic{#1}} alpar@0: \def\@prfcountersep{.} alpar@0: \def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr alpar@0: \item[\hskip \labelsep{\scshape #1.}]\rmfamily} alpar@0: \def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr alpar@0: \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily} alpar@0: \def\@endproof{\endtrivlist} alpar@0: \newcommand*{\qed}{\hbox{}\hfill$\Box$} alpar@0: alpar@0: \@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{} alpar@0: \InputIfFileExists{\jobname.spl}{}{} alpar@0: \RequirePackage[\@biboptions]{natbib} alpar@0: alpar@0: \newwrite\splwrite alpar@0: \immediate\openout\splwrite=\jobname.spl alpar@0: \def\biboptions#1{\def\next{#1}\immediate\write\splwrite{% alpar@0: \string\g@addto@macro\string\@biboptions{% alpar@0: ,\expandafter\strip@prefix\meaning\next}}} alpar@0: alpar@0: \let\baselinestretch=\@blstr alpar@0: alpar@0: % \end{macrocode} alpar@0: % alpar@0: %\section{Page dimensions and margins for final form} alpar@0: % alpar@0: %\subsection{Option 1p} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \ifnum\jtype=1 alpar@0: \RequirePackage{geometry} alpar@0: \geometry{twoside, alpar@0: paperwidth=210mm, alpar@0: paperheight=297mm, alpar@0: textheight=562pt, alpar@0: textwidth=384pt, alpar@0: centering, alpar@0: headheight=50pt, alpar@0: headsep=12pt, alpar@0: footskip=12pt, alpar@0: footnotesep=24pt plus 2pt minus 12pt, alpar@0: } alpar@0: \global\let\bibfont=\footnotesize alpar@0: \global\bibsep=0pt alpar@0: \if@twocolumn\global\@twocolumnfalse\fi alpar@0: % alpar@0: % \end{macrocode} alpar@0: % alpar@0: %\subsection{Option '3p'} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \else\ifnum\jtype=3 alpar@0: \RequirePackage{geometry} alpar@0: \geometry{twoside, alpar@0: paperwidth=210mm, alpar@0: paperheight=297mm, alpar@0: textheight=622pt, alpar@0: textwidth=468pt, alpar@0: centering, alpar@0: headheight=50pt, alpar@0: headsep=12pt, alpar@0: footskip=18pt, alpar@0: footnotesep=24pt plus 2pt minus 12pt, alpar@0: columnsep=2pc alpar@0: } alpar@0: \global\let\bibfont=\footnotesize alpar@0: \global\bibsep=0pt alpar@0: \if@twocolumn\input{fleqn.clo}\fi alpar@0: % \end{macrocode} alpar@0: % alpar@0: %\subsection{Option '5p'} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \else\ifnum\jtype=5 alpar@0: \RequirePackage{geometry} alpar@0: \geometry{twoside, alpar@0: paperwidth=210mm, alpar@0: paperheight=297mm, alpar@0: textheight=682pt, alpar@0: textwidth=522pt, alpar@0: centering, alpar@0: headheight=50pt, alpar@0: headsep=12pt, alpar@0: footskip=18pt, alpar@0: footnotesep=24pt plus 2pt minus 12pt, alpar@0: columnsep=18pt alpar@0: }% alpar@0: \global\let\bibfont=\footnotesize alpar@0: \global\bibsep=0pt alpar@0: \input{fleqn.clo} alpar@0: \global\@twocolumntrue alpar@0: %% alpar@0: %% End of option '5p' alpar@0: %% alpar@0: \fi\fi\fi alpar@0: % \end{macrocode} alpar@0: % alpar@0: %\section{Other items} alpar@0: % alpar@0: % \begin{macrocode} alpar@0: \def\journal#1{\gdef\@journal{#1}} alpar@0: \let\@journal\@empty alpar@0: \newenvironment{frontmatter}{}{\maketitle} alpar@0: alpar@0: \long\def\@makecaption#1#2{% alpar@0: \vskip\abovecaptionskip\footnotesize alpar@0: \sbox\@tempboxa{#1: #2}% alpar@0: \ifdim \wd\@tempboxa >\hsize alpar@0: #1: #2\par alpar@0: \else alpar@0: \global \@minipagefalse alpar@0: \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% alpar@0: \fi alpar@0: \vskip\belowcaptionskip} alpar@0: alpar@0: \AtBeginDocument{\@ifpackageloaded{hyperref} alpar@0: {\def\@linkcolor{blue} alpar@0: \def\@anchorcolor{blue} alpar@0: \def\@citecolor{blue} alpar@0: \def\@filecolor{blue} alpar@0: \def\@urlcolor{blue} alpar@0: \def\@menucolor{blue} alpar@0: \def\@pagecolor{blue} alpar@0: \begingroup alpar@0: \@makeother\`% alpar@0: \@makeother\=% alpar@0: \edef\x{% alpar@0: \edef\noexpand\x{% alpar@0: \endgroup alpar@0: \noexpand\toks@{% alpar@0: \catcode 96=\noexpand\the\catcode`\noexpand\`\relax alpar@0: \catcode 61=\noexpand\the\catcode`\noexpand\=\relax alpar@0: }% alpar@0: }% alpar@0: \noexpand\x alpar@0: }% alpar@0: \x alpar@0: \@makeother\` alpar@0: \@makeother\= alpar@0: }{}} alpar@0: %% alpar@0: \renewcommand\appendix{\par alpar@0: \setcounter{section}{0}% alpar@0: \setcounter{subsection}{0}% alpar@0: \setcounter{equation}{0} alpar@0: \gdef\thefigure{\@Alph\c@section.\arabic{figure}}% alpar@0: \gdef\thetable{\@Alph\c@section.\arabic{table}}% alpar@0: \gdef\thesection{\appendixname\@Alph\c@section}% alpar@0: \@addtoreset{equation}{section}% alpar@0: \gdef\theequation{\@Alph\c@section.\arabic{equation}}% alpar@0: } alpar@0: \def\appendixname{Appendix } alpar@0: alpar@0: %% Added for work with amsrefs.sty alpar@0: alpar@0: \@ifpackageloaded{amsrefs}% alpar@0: {} alpar@0: {\let\bibsection\relax% alpar@0: \AtBeginDocument{\def\cites@b#1#2,#3{% alpar@0: \begingroup[% alpar@0: \toks@{\InnerCite{#2}#1}% alpar@0: \ifx\@empty#3\@xp\@gobble\fi alpar@0: \cites@c#3% alpar@0: }}} alpar@0: % alpar@0: %% alpar@0: % alpar@0: % alpar@0: % \end{macrocode} alpar@0: % \Finale alpar@0: \endinput alpar@0: alpar@0: %% alpar@0: %% End of file 'elsarticle.dtx' alpar@0: %% alpar@0: