source: altifloat/doc/ocean_modelling/elsarticle.dtx @ 192

Last change on this file since 192 was 161, checked in by jbrlod, 9 years ago

add paper latex template

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