Initial setup
authorAlpar Juttner <alpar@cs.elte.hu>
Fri, 18 Nov 2016 16:18:02 +0100
changeset 0bc6edeef8717
child 1 76dc74f824ba
Initial setup
.hgignore
damecco.tex
elsarticle/README
elsarticle/doc/els-1p.pdf
elsarticle/doc/els-3pd.pdf
elsarticle/doc/els1.pdf
elsarticle/doc/els2.pdf
elsarticle/doc/elsdoc.pdf
elsarticle/doc/elsdoc.tex
elsarticle/doc/jfigs.pdf
elsarticle/doc/makefile
elsarticle/doc/pdfwidgets.sty
elsarticle/doc/rvdtx.sty
elsarticle/elsarticle-harv.bst
elsarticle/elsarticle-num-names.bst
elsarticle/elsarticle-num.bst
elsarticle/elsarticle-template-harv.tex
elsarticle/elsarticle-template-num.tex
elsarticle/elsarticle.dtx
elsarticle/elsarticle.ins
elsarticle/manifest.txt
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/.hgignore	Fri Nov 18 16:18:02 2016 +0100
     1.3 @@ -0,0 +1,28 @@
     1.4 +syntax: glob
     1.5 +*.obj
     1.6 +*.orig
     1.7 +*.rej
     1.8 +*~
     1.9 +*.o
    1.10 +*.log
    1.11 +*.lo
    1.12 +*.tar.*
    1.13 +*.bak
    1.14 +doc/Doxyfile
    1.15 +*.aux
    1.16 +*.bbl
    1.17 +*.blg
    1.18 +*.dvi
    1.19 +*.toc
    1.20 +*.nav
    1.21 +*.out
    1.22 +*.snm
    1.23 +*.spl
    1.24 +*.zip
    1.25 +damecco.pdf
    1.26 +
    1.27 +syntax: regexp
    1.28 +(.*/)?\#[^/]*\#$
    1.29 +(.*/)?\.\#[^/]*$
    1.30 +^.*objs.*/.*
    1.31 +^.*build.*/.*
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/damecco.tex	Fri Nov 18 16:18:02 2016 +0100
     2.3 @@ -0,0 +1,137 @@
     2.4 +%% 
     2.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
     2.6 +%% 
     2.7 +%% This file is part of the 'Elsarticle Bundle'.
     2.8 +%% ---------------------------------------------
     2.9 +%% 
    2.10 +%% It may be distributed under the conditions of the LaTeX Project Public
    2.11 +%% License, either version 1.2 of this license or (at your option) any
    2.12 +%% later version.  The latest version of this license is in
    2.13 +%%    http://www.latex-project.org/lppl.txt
    2.14 +%% and version 1.2 or later is part of all distributions of LaTeX
    2.15 +%% version 1999/12/01 or later.
    2.16 +%% 
    2.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
    2.18 +%% given in the file `manifest.txt'.
    2.19 +%% 
    2.20 +
    2.21 +%% Template article for Elsevier's document class `elsarticle'
    2.22 +%% with numbered style bibliographic references
    2.23 +%% SP 2008/03/01
    2.24 +
    2.25 +\documentclass[preprint,12pt]{elsarticle}
    2.26 +
    2.27 +%% Use the option review to obtain double line spacing
    2.28 +%% \documentclass[authoryear,preprint,review,12pt]{elsarticle}
    2.29 +
    2.30 +%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn
    2.31 +%% for a journal layout:
    2.32 +%% \documentclass[final,1p,times]{elsarticle}
    2.33 +%% \documentclass[final,1p,times,twocolumn]{elsarticle}
    2.34 +%% \documentclass[final,3p,times]{elsarticle}
    2.35 +%% \documentclass[final,3p,times,twocolumn]{elsarticle}
    2.36 +%% \documentclass[final,5p,times]{elsarticle}
    2.37 +%% \documentclass[final,5p,times,twocolumn]{elsarticle}
    2.38 +
    2.39 +%% For including figures, graphicx.sty has been loaded in
    2.40 +%% elsarticle.cls. If you prefer to use the old commands
    2.41 +%% please give \usepackage{epsfig}
    2.42 +
    2.43 +%% The amssymb package provides various useful mathematical symbols
    2.44 +\usepackage{amssymb}
    2.45 +%% The amsthm package provides extended theorem environments
    2.46 +%% \usepackage{amsthm}
    2.47 +
    2.48 +%% The lineno packages adds line numbers. Start line numbering with
    2.49 +%% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on
    2.50 +%% for the whole article with \linenumbers.
    2.51 +%% \usepackage{lineno}
    2.52 +
    2.53 +\journal{Nuclear Physics B}
    2.54 +
    2.55 +\begin{document}
    2.56 +
    2.57 +\begin{frontmatter}
    2.58 +
    2.59 +%% Title, authors and addresses
    2.60 +
    2.61 +%% use the tnoteref command within \title for footnotes;
    2.62 +%% use the tnotetext command for theassociated footnote;
    2.63 +%% use the fnref command within \author or \address for footnotes;
    2.64 +%% use the fntext command for theassociated footnote;
    2.65 +%% use the corref command within \author for corresponding author footnotes;
    2.66 +%% use the cortext command for theassociated footnote;
    2.67 +%% use the ead command for the email address,
    2.68 +%% and the form \ead[url] for the home page:
    2.69 +%% \title{Title\tnoteref{label1}}
    2.70 +%% \tnotetext[label1]{}
    2.71 +%% \author{Name\corref{cor1}\fnref{label2}}
    2.72 +%% \ead{email address}
    2.73 +%% \ead[url]{home page}
    2.74 +%% \fntext[label2]{}
    2.75 +%% \cortext[cor1]{}
    2.76 +%% \address{Address\fnref{label3}}
    2.77 +%% \fntext[label3]{}
    2.78 +
    2.79 +\title{}
    2.80 +
    2.81 +%% use optional labels to link authors explicitly to addresses:
    2.82 +%% \author[label1,label2]{}
    2.83 +%% \address[label1]{}
    2.84 +%% \address[label2]{}
    2.85 +
    2.86 +\author{}
    2.87 +
    2.88 +\address{}
    2.89 +
    2.90 +\begin{abstract}
    2.91 +%% Text of abstract
    2.92 +
    2.93 +\end{abstract}
    2.94 +
    2.95 +\begin{keyword}
    2.96 +%% keywords here, in the form: keyword \sep keyword
    2.97 +
    2.98 +%% PACS codes here, in the form: \PACS code \sep code
    2.99 +
   2.100 +%% MSC codes here, in the form: \MSC code \sep code
   2.101 +%% or \MSC[2008] code \sep code (2000 is the default)
   2.102 +
   2.103 +\end{keyword}
   2.104 +
   2.105 +\end{frontmatter}
   2.106 +
   2.107 +%% \linenumbers
   2.108 +
   2.109 +%% main text
   2.110 +\section{}
   2.111 +\label{}
   2.112 +
   2.113 +%% The Appendices part is started with the command \appendix;
   2.114 +%% appendix sections are then done as normal sections
   2.115 +%% \appendix
   2.116 +
   2.117 +%% \section{}
   2.118 +%% \label{}
   2.119 +
   2.120 +%% If you have bibdatabase file and want bibtex to generate the
   2.121 +%% bibitems, please use
   2.122 +%%
   2.123 +%%  \bibliographystyle{elsarticle-num} 
   2.124 +%%  \bibliography{<your bibdatabase>}
   2.125 +
   2.126 +%% else use the following coding to input the bibitems directly in the
   2.127 +%% TeX file.
   2.128 +
   2.129 +\begin{thebibliography}{00}
   2.130 +
   2.131 +%% \bibitem{label}
   2.132 +%% Text of bibliographic item
   2.133 +
   2.134 +\bibitem{}
   2.135 +
   2.136 +\end{thebibliography}
   2.137 +\end{document}
   2.138 +\endinput
   2.139 +%%
   2.140 +%% End of file `elsarticle-template-num.tex'.
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/elsarticle/README	Fri Nov 18 16:18:02 2016 +0100
     3.3 @@ -0,0 +1,46 @@
     3.4 +This is Elsevier's new document class for typeset journal articles,
     3.5 +elsarticle.cls.  It is now accepted for submitted articles, both in
     3.6 +Elsevier's electronic submission system and elsewhere.
     3.7 +
     3.8 +Elsevier's previous document class for typeset articles, elsart.cls,
     3.9 +is now over 10 years old. It has been replaced with this newly written
    3.10 +document class elsarticle.cls, which has been developed for Elsevier
    3.11 +by the leading TeX developer River Valley Technologies.
    3.12 +
    3.13 +elsarticle.cls is based upon the standard LaTeX document class
    3.14 +article.cls. It uses natbib.sty for bibliographical references.
    3.15 +
    3.16 +Bugs and problems with elsarticle.cls may be reported to the
    3.17 +developers of the class via elsarticle@river-valley.com.
    3.18 +
    3.19 +The file manifest.txt provides a list of the files in the elsarticle
    3.20 +bundle.  The following are the main files available:
    3.21 +- elsarticle.cls, the class file
    3.22 +- elsdoc.pdf, the user documentation
    3.23 +- elsarticle-template-num.tex, template file for numerical references
    3.24 +- elsarticle-template-harv.tex, template file for name-year references
    3.25 +- elsarticle-num.bst, bibliographic style for numerical references
    3.26 +- elsarticle-harv.bst, bibliographic style for name-year references
    3.27 +- elsarticle-num-names.bst, bibliographic style for numerical references 
    3.28 +  with author-year citation
    3.29 +
    3.30 +To extract all files from *.dtx: latex elsarticle.ins
    3.31 +
    3.32 +The documentation file is elsdoc.tex in the contrib directory.  To
    3.33 +compile it:
    3.34 +1. pdflatex elsdoc
    3.35 +2. pdflatex elsdoc
    3.36 +3. pdflatex elsdoc
    3.37 +
    3.38 +or
    3.39 +
    3.40 +use the makefile. Use the target `all' (eg: make all).
    3.41 +
    3.42 +The above procedure will create a print version, namely elsdoc.pdf.
    3.43 +
    3.44 +Copyright 2007-2009, Elsevier. Bugs, feature requests, suggestions and
    3.45 +comments may be mailed to elsarticle@river-valley.com. elsarticle.cls,
    3.46 +related documentation and supporting packages are released under the
    3.47 +LATEX Project Public Licence, either version 1.3 or any later
    3.48 +version. This work has the LPPL maintenance status
    3.49 +'author-maintained'.
     4.1 Binary file elsarticle/doc/els-1p.pdf has changed
     5.1 Binary file elsarticle/doc/els-3pd.pdf has changed
     6.1 Binary file elsarticle/doc/els1.pdf has changed
     7.1 Binary file elsarticle/doc/els2.pdf has changed
     8.1 Binary file elsarticle/doc/elsdoc.pdf has changed
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/elsarticle/doc/elsdoc.tex	Fri Nov 18 16:18:02 2016 +0100
     9.3 @@ -0,0 +1,729 @@
     9.4 +%% 
     9.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
     9.6 +%% 
     9.7 +%% This file is part of the 'Elsarticle Bundle'.
     9.8 +%% ---------------------------------------------
     9.9 +%% 
    9.10 +%% It may be distributed under the conditions of the LaTeX Project Public
    9.11 +%% License, either version 1.2 of this license or (at your option) any
    9.12 +%% later version.  The latest version of this license is in
    9.13 +%%    http://www.latex-project.org/lppl.txt
    9.14 +%% and version 1.2 or later is part of all distributions of LaTeX
    9.15 +%% version 1999/12/01 or later.
    9.16 +%% 
    9.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
    9.18 +%% given in the file `manifest.txt'.
    9.19 +%% 
    9.20 +\documentclass[a4paper,12pt]{article}
    9.21 +
    9.22 +\usepackage[xcolor,qtwo]{rvdtx}
    9.23 +\usepackage{multicol}
    9.24 +\usepackage{color}
    9.25 +\usepackage{xspace}
    9.26 +\usepackage{pdfwidgets}
    9.27 +\usepackage{enum}
    9.28 +
    9.29 +\def\ttdefault{cmtt}
    9.30 +
    9.31 +\headsep4pc
    9.32 +
    9.33 +\makeatletter
    9.34 +\def\bs{\expandafter\@gobble\string\\}
    9.35 +\def\lb{\expandafter\@gobble\string\{}
    9.36 +\def\rb{\expandafter\@gobble\string\}}
    9.37 +\def\@pdfauthor{C.V.Radhakrishnan}
    9.38 +\def\@pdftitle{elsarticle.cls -- A documentation}
    9.39 +\def\@pdfsubject{Document formatting with elsarticle.cls}
    9.40 +\def\@pdfkeywords{LaTeX, Elsevier Ltd, document class}
    9.41 +\def\file#1{\textsf{#1}\xspace}
    9.42 +
    9.43 +%\def\LastPage{19}
    9.44 +
    9.45 +\DeclareRobustCommand{\LaTeX}{L\kern-.26em%
    9.46 +        {\sbox\z@ T%
    9.47 +         \vbox to\ht\z@{\hbox{\check@mathfonts
    9.48 +           \fontsize\sf@size\z@
    9.49 +           \math@fontsfalse\selectfont
    9.50 +          A\,}%
    9.51 +         \vss}%
    9.52 +        }%
    9.53 +     \kern-.15em%
    9.54 +    \TeX}
    9.55 +\makeatother
    9.56 +
    9.57 +\def\figurename{Clip}
    9.58 +
    9.59 +\begin{document}
    9.60 +
    9.61 +\def\testa{This is a specimen document. }
    9.62 +\def\testc{\testa\testa\testa\testa}
    9.63 +\def\testb{\testc\testc\testc\testc\testc}
    9.64 +\long\def\test{\testb\par\testb\par\testb\par}
    9.65 +
    9.66 +\pinclude{\copy\contbox\printSq{\LastPage}}
    9.67 +
    9.68 +\title{elsarticle.cls -- A better way to format your document}
    9.69 +
    9.70 +\author{Elsevier Ltd}
    9.71 +\contact{elsarticle@river-valley.com}
    9.72 +
    9.73 +\version{1.20}
    9.74 +\date{\today}
    9.75 +\maketitle
    9.76 +
    9.77 +\section{Introduction}
    9.78 +%\hypertarget{introduction}{}
    9.79 +
    9.80 +\file{elsarticle.cls} is a thoroughly re-written document class
    9.81 +for formatting \LaTeX{} submissions to Elsevier journals.
    9.82 +The class uses the environments and commands defined in \LaTeX{} kernel
    9.83 +without any change in the signature so that clashes with other
    9.84 +contributed \LaTeX{} packages such as \file{hyperref.sty},
    9.85 +\file{preview-latex.sty}, etc., will be minimal.
    9.86 +\file{elsarticle.cls} is primarily built upon the default
    9.87 +\file{article.cls}.  This class depends on the following packages
    9.88 +for its proper functioning:
    9.89 +
    9.90 +\begin{enumerate}
    9.91 +\item \file{pifont.sty} for openstar in the title footnotes;
    9.92 +\item \file{natbib.sty} for citation processing;
    9.93 +\item \file{geometry.sty} for margin settings;
    9.94 +\item \file{fleqn.clo} for left aligned equations;
    9.95 +\item \file{graphicx.sty} for graphics inclusion;
    9.96 +\item \file{txfonts.sty} optional font package, if the document is to
    9.97 +  be formatted with Times and compatible math fonts;
    9.98 +\item \file{hyperref.sty} optional packages if hyperlinking is
    9.99 +  required in the document.
   9.100 +
   9.101 +\end{enumerate}
   9.102 +
   9.103 +All the above packages are part of any standard \LaTeX{} installation.
   9.104 +Therefore, the users need not be bothered about downloading any
   9.105 +extra packages.  Furthermore, users are free to make use of \textsc{ams}
   9.106 +math packages such as \file{amsmath.sty}, \file{amsthm.sty},
   9.107 +\file{amssymb.sty}, \file{amsfonts.sty}, etc., if they want to.  All
   9.108 +these packages work in tandem with \file{elsarticle.cls} without
   9.109 +any problems.
   9.110 +
   9.111 +\section{Major Differences}
   9.112 +%\hypertarget{majordifferences}{}
   9.113 +
   9.114 +Following are the major differences between \file{elsarticle.cls}
   9.115 +and its predecessor package, \file{elsart.cls}:
   9.116 +
   9.117 +\begin{enumerate}[\textbullet]
   9.118 +\item \file{elsarticle.cls} is built upon \file{article.cls}
   9.119 +while \file{elsart.cls} is not. \file{elsart.cls} redefines
   9.120 +many of the commands in the \LaTeX{} classes/kernel, which can
   9.121 +possibly cause surprising clashes with other contributed
   9.122 +\LaTeX{} packages;
   9.123 +
   9.124 +\item provides preprint document formatting by default, and
   9.125 +optionally formats the document as per the final
   9.126 +style of models $1+$, $3+$ and $5+$ of Elsevier journals;
   9.127 +
   9.128 +\item some easier ways for formatting \verb+list+ and
   9.129 +\verb+theorem+ environments are provided while people can still
   9.130 +use \file{amsthm.sty} package;
   9.131 +
   9.132 +\item \file{natbib.sty} is the main citation processing package
   9.133 +  which can comprehensively handle all kinds of citations and
   9.134 +works perfectly with \file{hyperref.sty} in combination with
   9.135 +\file{hypernat.sty};
   9.136 +
   9.137 +\item long title pages are processed correctly in preprint and
   9.138 +  final formats.
   9.139 +
   9.140 +\end{enumerate}
   9.141 +
   9.142 +\section{Installation}
   9.143 +%\hypertarget{installation}{}
   9.144 +
   9.145 +The package is available at author resources page at Elsevier
   9.146 +(\url{http://www.elsevier.com/locate/latex}).
   9.147 +It can also be found in any of the nodes of the Comprehensive
   9.148 +\TeX{} Archive Network (\textsc{ctan}), one of the primary nodes
   9.149 +being
   9.150 +\url{http://www.ctan.org/tex-archive/macros/latex/contrib/elsevier/}.
   9.151 +Please download the \file{elsarticle.dtx} which is a composite
   9.152 +class with documentation and \file{elsarticle.ins} which is the
   9.153 +\LaTeX{} installer file. When we compile the
   9.154 +\file{elsarticle.ins} with \LaTeX{} it provides the class file,
   9.155 +\file{elsarticle.cls} by
   9.156 +stripping off all the documentation from the \verb+*.dtx+ file.
   9.157 +The class may be moved or copied to a place, usually,
   9.158 +\verb+$TEXMF/tex/latex/elsevier/+, %$%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   9.159 +or a folder which will be read                   
   9.160 +by \LaTeX{} during document compilation.  The \TeX{} file
   9.161 +database needs updation after moving/copying class file.  Usually,
   9.162 +we use commands like \verb+mktexlsr+ or \verb+texhash+ depending
   9.163 +upon the distribution and operating system.
   9.164 +
   9.165 +
   9.166 +\section{Usage}\label{sec:usage}
   9.167 +%\hypertarget{usage}{}
   9.168 +The class should be loaded with the command:
   9.169 +
   9.170 +\begin{vquote}
   9.171 + \documentclass[<options>]{elsarticle}
   9.172 +\end{vquote}
   9.173 +
   9.174 +\noindent where the \verb+options+ can be the following:
   9.175 +
   9.176 +\begin{description}
   9.177 +
   9.178 +\item [{\tt\color{verbcolor} preprint}]  default option which format the
   9.179 +  document for submission to Elsevier journals.
   9.180 +
   9.181 +\item [{\tt\color{verbcolor} review}]  similar to the \verb+preprint+ option, but
   9.182 +  increases the baselineskip to facilitate easier review process.
   9.183 +
   9.184 +\item [{\tt\color{verbcolor} 1p}]  formats the article to the look and feel of the final
   9.185 +  format of model 1+ journals. This is always single column style.
   9.186 +
   9.187 +\item [{\tt\color{verbcolor} 3p}] formats the article to the look and feel of the final
   9.188 +  format of model 3+ journals. If the journal is a two column
   9.189 +model, use \verb+twocolumn+ option in combination.
   9.190 +
   9.191 +\item [{\tt\color{verbcolor} 5p}] formats for model 5+ journals. This is always
   9.192 +  of two column style.
   9.193 +
   9.194 +\item [{\tt\color{verbcolor} authoryear}] author-year citation style of
   9.195 +  \file{natbib.sty}. If you want to add extra options of
   9.196 +\file{natbib.sty}, you may use the options as comma delimited
   9.197 +strings as arguments to \verb+\biboptions+ command. An example
   9.198 +would be:
   9.199 +\end{description}
   9.200 +\begin{vquote}
   9.201 + \biboptions{longnamesfirst,angle,semicolon}
   9.202 +\end{vquote}
   9.203 +
   9.204 +\begin{description}
   9.205 +\item [{\tt\color{verbcolor} number}] numbered citation style. Extra options
   9.206 +  can be loaded with\linebreak \verb+\biboptions+ command.
   9.207 +
   9.208 +\item [{\tt\color{verbcolor} sort\&compress}] sorts and compresses the
   9.209 +numbered citations. For example, citation [1,2,3] will become [1--3].
   9.210 +
   9.211 +\item [{\tt\color{verbcolor} longtitle}] if front matter is unusually long, use
   9.212 +  this option to split the title page across pages with the correct
   9.213 +placement of title and author footnotes in the first page.
   9.214 +
   9.215 +\item [{\tt\color{verbcolor} times}] loads \file{txfonts.sty}, if available in
   9.216 +  the system to use Times and compatible math fonts.
   9.217 +
   9.218 +\item[] All options of \file{article.cls} can be used with this
   9.219 +  document class.
   9.220 +
   9.221 +\item[] The default options loaded are \verb+a4paper+, \verb+10pt+,
   9.222 +  \verb+oneside+, \verb+onecolumn+ and \verb+preprint+.
   9.223 +
   9.224 +\end{description}
   9.225 +
   9.226 +\section{Frontmatter}
   9.227 +%\hypertarget{preamble}{}
   9.228 +
   9.229 +There are two types of frontmatter coding:
   9.230 +\begin{enumerate}[(1)]
   9.231 +\item each author is
   9.232 +connected to an affiliation with a footnote marker; hence all
   9.233 +authors are grouped together and affiliations follow;
   9.234 +\item authors of same affiliations are grouped together and the
   9.235 +relevant affiliation follows this group. An example coding of the first
   9.236 +type is provided below.
   9.237 +\end{enumerate}
   9.238 +
   9.239 +\begin{vquote}
   9.240 + \title{This is a specimen title\tnoteref{t1,t2}}
   9.241 + \tnotetext[t1]{This document is a collaborative effort.}
   9.242 + \tnotetext[t2]{The second title footnote which is a longer
   9.243 +    longer than the first one and with an intention to fill
   9.244 +    in up more than one line while formatting.}
   9.245 +\end{vquote}
   9.246 +
   9.247 +\begin{vquote}
   9.248 + \author[rvt]{C.V.~Radhakrishnan\corref{cor1}\fnref{fn1}}
   9.249 + \ead{cvr@river-valley.com}
   9.250 +
   9.251 + \author[rvt,focal]{K.~Bazargan\fnref{fn2}}
   9.252 + \ead{kaveh@river-valley.com}
   9.253 +
   9.254 + \author[els]{S.~Pepping\corref{cor2}\fnref{fn1,fn3}}
   9.255 + \ead[url]{http://www.elsevier.com}
   9.256 +\end{vquote}
   9.257 +
   9.258 +\begin{vquote}
   9.259 + \cortext[cor1]{Corresponding author}
   9.260 + \cortext[cor2]{Principal corresponding author}
   9.261 + \fntext[fn1]{This is the specimen author footnote.}
   9.262 + \fntext[fn2]{Another author footnote, but a little more 
   9.263 +             longer.}
   9.264 + \fntext[fn3]{Yet another author footnote. Indeed, you can have
   9.265 +    any number of author footnotes.}
   9.266 +
   9.267 + \address[rvt]{River Valley Technologies, SJP Building,
   9.268 +    Cotton Hills, Trivandrum, Kerala, India 695014}
   9.269 + \address[focal]{River Valley Technologies, 9, Browns Court,
   9.270 +    Kennford, Exeter, United Kingdom}
   9.271 + \address[els]{Central Application Management,
   9.272 +    Elsevier, Radarweg 29, 1043 NX\\
   9.273 +    Amsterdam, Netherlands}
   9.274 +
   9.275 +\end{vquote}
   9.276 +
   9.277 +The output of the above TeX source is given in Clips~\ref{clip1} and
   9.278 +\ref{clip2}. The header portion or title area is given in Clip~\ref{clip1} and
   9.279 +the footer area is given in Clip~\ref{clip2}.
   9.280 +
   9.281 +\vspace*{6pt}
   9.282 +\def\rulecolor{blue!70}
   9.283 +\src{Header of the title page.}
   9.284 +\includeclip{1}{132 571 481 690}{els1.pdf}
   9.285 +\def\rulecolor{orange}
   9.286 +
   9.287 +%\vspace*{6pt}
   9.288 +\def\rulecolor{blue!70}
   9.289 +\src{Footer of the title page.}
   9.290 +\includeclip{1}{122 129 481 237}{els1.pdf}
   9.291 +\def\rulecolor{orange}
   9.292 +\pagebreak
   9.293 +
   9.294 +Most of the commands such as \verb+\title+, \verb+\author+,
   9.295 +\verb+\address+ are self explanatory.  Various components are
   9.296 +linked to each other by a label--reference mechanism; for
   9.297 +instance, title footnote is linked to the title with a footnote
   9.298 +mark generated by referring to the \verb+\label+ string of
   9.299 +the \verb=\tnotetext=.  We have used similar commands
   9.300 +such as \verb=\tnoteref= (to link title note to title);
   9.301 +\verb=\corref= (to link corresponding author text to
   9.302 +corresponding author); \verb=\fnref= (to link footnote text to
   9.303 +the relevant author names).  \TeX{} needs two compilations to
   9.304 +resolve the footnote marks in the preamble part.  
   9.305 +Given below are the syntax of various note marks and note texts.
   9.306 +
   9.307 +\begin{vquote}
   9.308 +  \tnoteref{<label(s)>}
   9.309 +  \corref{<label(s)>}
   9.310 +  \fnref{<label(s)>}
   9.311 +  \tnotetext[<label>]{<title note text>}
   9.312 +  \cortext[<label>]{<corresponding author note text>}
   9.313 +  \fntext[<label>]{<author footnote text>}
   9.314 +\end{vquote}
   9.315 +
   9.316 +\noindent where \verb=<label(s)>= can be either one or more comma
   9.317 +delimited label strings. The optional arguments to the
   9.318 +\verb=\author= command holds the ref label(s) of the address(es)
   9.319 +to which the author is affiliated while each \verb=\address=
   9.320 +command can have an optional argument of a label. In the same
   9.321 +manner, \verb=\tnotetext=, \verb=\fntext=, \verb=\cortext= will
   9.322 +have optional arguments as their respective labels and note text
   9.323 +as their mandatory argument.
   9.324 +
   9.325 +The following example code provides the markup of the second type
   9.326 +of author-affiliation.
   9.327 +%as seen in the output given in the
   9.328 +%box to the right.
   9.329 +%\pinclude{\def\rulecolor{blue!80}
   9.330 +%   \includeclip[width=3.25in]{1}{130 84 484 676}{els2.pdf}%
   9.331 +% \def\rulecolor{orange}}
   9.332 +
   9.333 +\begin{vquote}
   9.334 +\author{C.V.~Radhakrishnan\corref{cor1}\fnref{fn1}}
   9.335 + \ead{cvr@river-valley.com}
   9.336 + \address{River Valley Technologies, SJP Building,
   9.337 +   Cotton Hills, Trivandrum, Kerala, India 695014}
   9.338 +\end{vquote}
   9.339 +
   9.340 +\begin{vquote}
   9.341 +\author{K.~Bazargan\fnref{fn2}}
   9.342 + \ead{kaveh@river-valley.com}
   9.343 + \address{River Valley Technologies, 9, Browns Court, Kennford,
   9.344 +   Exeter, UK.}
   9.345 +\end{vquote}
   9.346 +
   9.347 +\begin{vquote}
   9.348 +\author{S.~Pepping\fnref{fn1,fn3}}
   9.349 + \ead[url]{http://www.elsevier.com}
   9.350 + \address{Central Application Management,
   9.351 +   Elsevier, Radarweg 43, 1043 NX Amsterdam, Netherlands}
   9.352 +\end{vquote}
   9.353 +
   9.354 +\begin{vquote}
   9.355 +\cortext[cor1]{Corresponding author}
   9.356 +\fntext[fn1]{This is the first author footnote.}
   9.357 +\fntext[fn2]{Another author footnote, this is a very long 
   9.358 +  footnote and it should be a really long footnote. But this 
   9.359 +  footnote is not yet sufficiently long enough to make two lines 
   9.360 +  of footnote text.}
   9.361 +\fntext[fn3]{Yet another author footnote.}
   9.362 +\end{vquote}
   9.363 +
   9.364 +The output of the above TeX source is given in Clip~\ref{clip3}.
   9.365 +
   9.366 +\vspace*{12pt}
   9.367 +\def\rulecolor{blue!70}
   9.368 +\src{Header of the title page..}
   9.369 +\includeclip{1}{132 491 481 690}{els2.pdf}
   9.370 +\def\rulecolor{orange}
   9.371 +
   9.372 +
   9.373 +The frontmatter part has further environments such as abstracts and
   9.374 +keywords.  These can be marked up in the following
   9.375 +manner:
   9.376 +
   9.377 +%\verb+\begin{abstract}+ \dots \verb+\end{abstract}+ and
   9.378 +%\verb+\begin{keyword}+ \verb+...+ \verb+\end{keyword}+ which
   9.379 +%contain the abstract and keywords respectively. 
   9.380 +
   9.381 +\begin{vquote}
   9.382 + \begin{abstract}
   9.383 +  In this work we demonstrate the formation of a new type of 
   9.384 +  polariton on the interface between a ....
   9.385 + \end{abstract}
   9.386 +\end{vquote} 
   9.387 +
   9.388 +\begin{vquote}
   9.389 + \begin{keyword}
   9.390 +  quadruple exiton \sep polariton \sep WGM
   9.391 +
   9.392 +  \PACS 71.35.-y \sep 71.35.Lk \sep 71.36.+c
   9.393 + \end{keyword}
   9.394 +\end{vquote}
   9.395 +
   9.396 +\noindent Each keyword shall be separated by a \verb+\sep+ command.
   9.397 +\textsc{pacs} and \textsc{msc} classifications shall be provided in 
   9.398 +the keyword environment with the commands \verb+\PACS+ and
   9.399 +\verb+\MSC+ respectively.  \verb+\MSC+ accepts an optional
   9.400 +argument to accommodate future revisions.
   9.401 +eg., \verb=\MSC[2008]=. The default is 2000.\looseness=-1
   9.402 +
   9.403 +
   9.404 +\section{Floats}
   9.405 +{Figures} may be included using the command, \verb+\includegraphics+ in
   9.406 +combination with or without its several options to further control
   9.407 +graphic. \verb+\includegraphics+ is provided by \file{graphic[s,x].sty}
   9.408 +which is part of any standard \LaTeX{} distribution.
   9.409 +\file{graphicx.sty} is loaded by default. \LaTeX{} accepts figures in
   9.410 +the postscript format while pdf\LaTeX{} accepts \file{*.pdf},
   9.411 +\file{*.mps} (metapost), \file{*.jpg} and \file{*.png} formats. 
   9.412 +pdf\LaTeX{} does not accept graphic files in the postscript format. 
   9.413 +
   9.414 +The \verb+table+ environment is handy for marking up tabular
   9.415 +material. If users want to use \file{multirow.sty},
   9.416 +\file{array.sty}, etc., to fine control/enhance the tables, they
   9.417 +are welcome to load any package of their choice and
   9.418 +\file{elsarticle.cls} will work in combination with all loaded
   9.419 +packages.
   9.420 +
   9.421 +\section[Theorem and ...]{Theorem and theorem like environments}
   9.422 +
   9.423 +\file{elsarticle.cls} provides a few shortcuts to format theorems and
   9.424 +theorem-like environments with ease. In all commands the options that
   9.425 +are used with the \verb+\newtheorem+ command will work exactly in the same
   9.426 +manner. \file{elsarticle.cls} provides three commands to format theorem or
   9.427 +theorem-like environments: 
   9.428 +
   9.429 +\begin{vquote}
   9.430 + \newtheorem{thm}{Theorem}
   9.431 + \newtheorem{lem}[thm]{Lemma}
   9.432 + \newdefinition{rmk}{Remark}
   9.433 + \newproof{pf}{Proof}
   9.434 + \newproof{pot}{Proof of Theorem \ref{thm2}}
   9.435 +\end{vquote}
   9.436 +
   9.437 +The \verb+\newtheorem+ command formats a
   9.438 +theorem in \LaTeX's default style with italicized font, bold font
   9.439 +for theorem heading and theorem number at the right hand side of the
   9.440 +theorem heading.  It also optionally accepts an argument which
   9.441 +will be printed as an extra heading in parentheses. 
   9.442 +
   9.443 +\begin{vquote}
   9.444 +  \begin{thm} 
   9.445 +   For system (8), consensus can be achieved with $\|T_{\omega z}$
   9.446 +   ...
   9.447 +     \begin{eqnarray}\label{10}
   9.448 +     ....
   9.449 +     \end{eqnarray}
   9.450 +  \end{thm}
   9.451 +\end{vquote}  
   9.452 +
   9.453 +Clip~\ref{clip4} will show you how some text enclosed between the
   9.454 +above code looks like:
   9.455 +
   9.456 +\vspace*{6pt}
   9.457 +\def\rulecolor{blue!70}
   9.458 +\src{{\ttfamily\color{verbcolor}\bs newtheorem}}
   9.459 +\includeclip{2}{1 1 453 120}{jfigs.pdf}
   9.460 +\def\rulecolor{orange}
   9.461 +
   9.462 +The \verb+\newdefinition+ command is the same in
   9.463 +all respects as its\linebreak \verb+\newtheorem+ counterpart except that
   9.464 +the font shape is roman instead of italic.  Both
   9.465 +\verb+\newdefinition+ and \verb+\newtheorem+ commands
   9.466 +automatically define counters for the environments defined.
   9.467 +
   9.468 +\vspace*{12pt}
   9.469 +\def\rulecolor{blue!70}
   9.470 +\src{{\ttfamily\color{verbcolor}\bs newdefinition}}
   9.471 +\includeclip{1}{1 1 453 105}{jfigs.pdf}
   9.472 +\def\rulecolor{orange}
   9.473 +
   9.474 +The \verb+\newproof+ command defines proof environments with
   9.475 +upright font shape.  No counters are defined. 
   9.476 +
   9.477 +\vspace*{6pt}
   9.478 +\def\rulecolor{blue!70}
   9.479 +\src{{\ttfamily\color{verbcolor}\bs newproof}}
   9.480 +\includeclip{3}{1 1 453 65}{jfigs.pdf}
   9.481 +\def\rulecolor{orange}
   9.482 +
   9.483 +Users can also make use of \verb+amsthm.sty+ which will override
   9.484 +all the default definitions described above.
   9.485 +
   9.486 +\section[Enumerated ...]{Enumerated and Itemized Lists}
   9.487 +\file{elsarticle.cls} provides an extended list processing macros
   9.488 +which makes the usage a bit more user friendly than the default
   9.489 +\LaTeX{} list macros.   With an optional argument to the
   9.490 +\verb+\begin{enumerate}+ command, you can change the list counter
   9.491 +type and its attributes.
   9.492 +
   9.493 +\begin{vquote}
   9.494 + \begin{enumerate}[1.]
   9.495 + \item The enumerate environment starts with an optional
   9.496 +   argument `1.', so that the item counter will be suffixed
   9.497 +   by a period.
   9.498 + \item You can use `a)' for alphabetical counter and '(i)' for
   9.499 +   roman counter.
   9.500 +  \begin{enumerate}[a)]
   9.501 +    \item Another level of list with alphabetical counter.
   9.502 +    \item One more item before we start another.
   9.503 +    \begin{enumerate}[(i)]
   9.504 +     \item This item has roman numeral counter.
   9.505 +     \item Another one before we close the third level.
   9.506 +    \end{enumerate}
   9.507 +    \item Third item in second level.
   9.508 +  \end{enumerate}
   9.509 + \item All list items conclude with this step.
   9.510 + \end{enumerate}
   9.511 +\end{vquote}
   9.512 +
   9.513 +\vspace*{12pt}
   9.514 +\def\rulecolor{blue!70}
   9.515 +\src{List -- Enumerate}
   9.516 +\includeclip{4}{1 1 453 185}{jfigs.pdf}
   9.517 +\def\rulecolor{orange}
   9.518 +
   9.519 +
   9.520 +Further, the enhanced list environment allows one to prefix a
   9.521 +string like `step' to all the item numbers.  Take a look at the
   9.522 +example below:
   9.523 +
   9.524 +\begin{vquote}
   9.525 + \begin{enumerate}[Step 1.]
   9.526 +  \item This is the first step of the example list.
   9.527 +  \item Obviously this is the second step.
   9.528 +  \item The final step to wind up this example.
   9.529 + \end{enumerate}
   9.530 +\end{vquote}
   9.531 +
   9.532 +\def\rulecolor{blue!70}
   9.533 +\src{List -- enhanced}
   9.534 +\includeclip{5}{1 1 313 83}{jfigs.pdf}
   9.535 +\def\rulecolor{orange}
   9.536 +
   9.537 +\vspace*{-18pt}
   9.538 +
   9.539 +\section{Cross-references}
   9.540 +In electronic publications, articles may be internally
   9.541 +hyperlinked. Hyperlinks are generated from proper
   9.542 +cross-references in the article.  For example, the words
   9.543 +\textcolor{black!80}{Fig.~1} will never be more than simple text,
   9.544 +whereas the proper cross-reference \verb+\ref{tiger}+ may be
   9.545 +turned into a hyperlink to the figure itself:
   9.546 +\textcolor{blue}{Fig.~1}.  In the same way,
   9.547 +the words \textcolor{blue}{Ref.~[1]} will fail to turn into a
   9.548 +hyperlink; the proper cross-reference is \verb+\cite{Knuth96}+.
   9.549 +Cross-referencing is possible in \LaTeX{} for sections,
   9.550 +subsections, formulae, figures, tables, and literature
   9.551 +references.
   9.552 +
   9.553 +\section[Mathematical ...]{Mathematical symbols and formulae}
   9.554 +
   9.555 +Many physical/mathematical sciences authors require more
   9.556 +mathematical symbols than the few that are provided in standard
   9.557 +\LaTeX. A useful package for additional symbols is the
   9.558 +\file{amssymb} package, developed by the American Mathematical
   9.559 +Society. This package includes such oft-used symbols as
   9.560 +$\lesssim$ (\verb+\lesssim+), $\gtrsim$ (\verb+\gtrsim+)  or 
   9.561 +$\hbar$ (\verb+\hbar+). Note that your \TeX{}
   9.562 +system should have the \file{msam} and \file{msbm} fonts installed. If
   9.563 +you need only a few symbols, such as $\Box$ (\verb+\Box+), you might try the
   9.564 +package \file{latexsym}.
   9.565 +
   9.566 +Another point which would require authors' attention is the
   9.567 +breaking up of long equations.  When you use
   9.568 +\file{elsarticle.cls} for formatting your submissions in the 
   9.569 +\verb+preprint+ mode, the document is formatted in single column
   9.570 +style with a text width of 384pt or 5.3in.  When this document is
   9.571 +formatted for final print and if the journal happens to be a double column
   9.572 +journal, the text width will be reduced to 224pt at for 3+
   9.573 +double column and 5+ journals respectively. All the nifty 
   9.574 +fine-tuning in equation breaking done by the author goes to waste in
   9.575 +such cases.  Therefore, authors are requested to check this
   9.576 +problem by typesetting their submissions in final format as well
   9.577 +just to see if their equations are broken at appropriate places,
   9.578 +by changing appropriate options in the document class loading
   9.579 +command, which is explained in section~\ref{sec:usage},
   9.580 +\nameref{sec:usage}. This allows authors to fix any equation breaking
   9.581 +problem before submission for publication.
   9.582 +\file{elsarticle.cls} supports formatting the author submission
   9.583 +in different types of final format.  This is further discussed in
   9.584 +section \ref{sec:final}, \nameref{sec:final}.
   9.585 +
   9.586 +\section{Bibliography}
   9.587 +
   9.588 +Three bibliographic style files (\verb+*.bst+) are provided ---
   9.589 +\file{elsarticle-num.bst}, \file{elsarticle-num-names.bst} and
   9.590 +\file{elsarticle-harv.bst} --- the first one for the numbered scheme, the
   9.591 +second for the numbered with new options of \file{natbib.sty} and the
   9.592 +last one for the author year scheme.
   9.593 +
   9.594 +In \LaTeX{} literature, references are listed in the
   9.595 +\verb+thebibliography+ environment.  Each reference is a
   9.596 +\verb+\bibitem+ and each \verb+\bibitem+ is identified by a label,
   9.597 +by which it can be cited in the text:
   9.598 +
   9.599 +\verb+\bibitem[Elson et al.(1996)]{ESG96}+ is cited as
   9.600 +\verb+\citet{ESG96}+. 
   9.601 +
   9.602 +\noindent In connection with cross-referencing and
   9.603 +possible future hyperlinking it is not a good idea to collect
   9.604 +more that one literature item in one \verb+\bibitem+.  The
   9.605 +so-called Harvard or author-year style of referencing is enabled
   9.606 +by the \LaTeX{} package \file{natbib}. With this package the
   9.607 +literature can be cited as follows:
   9.608 +
   9.609 +\begin{enumerate}[\textbullet]
   9.610 +\item Parenthetical: \verb+\citep{WB96}+ produces (Wettig \& Brown, 1996).
   9.611 +\item Textual: \verb+\citet{ESG96}+ produces Elson et al. (1996).
   9.612 +\item An affix and part of a reference:
   9.613 +\verb+\citep[e.g.][Ch. 2]{Gea97}+ produces (e.g. Governato et
   9.614 +al., 1997, Ch. 2).
   9.615 +\end{enumerate}
   9.616 +
   9.617 +In the numbered scheme of citation, \verb+\cite{<label>}+ is used,
   9.618 +since \verb+\citep+ or \verb+\citet+ has no relevance in the numbered
   9.619 +scheme.  \file{natbib} package is loaded by \file{elsarticle} with
   9.620 +\verb+numbers+ as default option.  You can change this to author-year
   9.621 +or harvard scheme by adding option \verb+authoryear+ in the class
   9.622 +loading command.  If you want to use more options of the \file{natbib}
   9.623 +package, you can do so with the \verb+\biboptions+ command, which is
   9.624 +described in the section \ref{sec:usage}, \nameref{sec:usage}.  For
   9.625 +details of various options of the \file{natbib} package, please take a
   9.626 +look at the \file{natbib} documentation, which is part of any standard
   9.627 +\LaTeX{} installation.
   9.628 +
   9.629 +\subsection*{Displayed equations and double column journals}
   9.630 +
   9.631 +Many Elsevier journals print their text in two columns. Since
   9.632 +the preprint layout uses a larger line width than such columns,
   9.633 +the formulae are too wide for the line width in print. Here is an
   9.634 +example of an equation  (see equation 6) which is perfect in a
   9.635 +single column preprint format:
   9.636 +
   9.637 +\bigskip
   9.638 +\setlength\Sep{6pt}
   9.639 +\src{See equation (6)}
   9.640 +\def\rulecolor{blue!70}
   9.641 +\includeclip{4}{134 391 483 584}{els1.pdf}
   9.642 +\def\rulecolor{orange}
   9.643 +                 	
   9.644 +\noindent When this document is typeset for publication in a
   9.645 +model 3+ journal with double columns, the equation will overlap
   9.646 +the second column text matter if the equation is not broken at
   9.647 +the appropriate location.
   9.648 +
   9.649 +\vspace*{6pt}
   9.650 +\def\rulecolor{blue!70}
   9.651 +\src{See equation (6) overprints into second column}
   9.652 +\includeclip{3}{61 531 532 734}{els-3pd.pdf}
   9.653 +\def\rulecolor{orange}
   9.654 +
   9.655 +\pagebreak
   9.656 +
   9.657 +\noindent The typesetter will try to break the equation which
   9.658 +need not necessarily be to the liking of the author or as it
   9.659 +happens, typesetter's break point may be semantically incorrect.
   9.660 +Therefore, authors may check their submissions for the incidence
   9.661 +of such long equations and break the equations at the correct
   9.662 +places so that the final typeset copy will be as they wish.
   9.663 +
   9.664 +\section{Final print}\label{sec:final}
   9.665 +
   9.666 +The authors can format their submission to the page size and margins
   9.667 +of their preferred journal.  \file{elsarticle} provides four
   9.668 +class options for the same. But it does not mean that using these
   9.669 +options you can emulate the exact page layout of the final print copy. 
   9.670 +\lmrgn=3em
   9.671 +\begin{description}
   9.672 +\item [\texttt{1p}:] $1+$ journals with a text area of
   9.673 +384pt $\times$ 562pt or 13.5cm $\times$ 19.75cm or 5.3in $\times$
   9.674 +7.78in, single column style only.
   9.675 +
   9.676 +\item [\texttt{3p}:] $3+$ journals with a text area of 468pt
   9.677 +$\times$ 622pt or 16.45cm $\times$ 21.9cm or 6.5in $\times$
   9.678 +8.6in, single column style.
   9.679 +
   9.680 +\item [\texttt{twocolumn}:] should be used along with 3p option if the
   9.681 +journal is $3+$ with the same text area as above, but double column
   9.682 +style. 
   9.683 +
   9.684 +\item [\texttt{5p}:] $5+$ with text area of 522pt $\times$
   9.685 +682pt or 18.35cm $\times$ 24cm or 7.22in $\times$ 9.45in,
   9.686 +double column style only.
   9.687 +\end{description}
   9.688 +
   9.689 +Following pages have the clippings of different parts of
   9.690 +the title page of different journal models typeset in final
   9.691 +format.
   9.692 +
   9.693 +Model $1+$ and $3+$  will have the same look and
   9.694 +feel in the typeset copy when presented in this document. That is
   9.695 +also the case with the double column $3+$ and $5+$ journal article
   9.696 +pages. The only difference will be wider text width of
   9.697 +higher models.  Therefore we will look at the
   9.698 +different portions of a typical single column journal page and
   9.699 +that of a double column article in the final format.
   9.700 +
   9.701 +\vspace*{2pc}
   9.702 +
   9.703 +\begin{center}
   9.704 +\hypertarget{bsc}{}
   9.705 +\hyperlink{sc}{
   9.706 +{\bf [Specimen single column article -- Click here]}
   9.707 +}
   9.708 +
   9.709 +\vspace*{2pc}
   9.710 +
   9.711 +\hypertarget{bsc}{}
   9.712 +\hyperlink{dc}{
   9.713 +{\bf [Specimen double column article -- Click here]}
   9.714 +}
   9.715 +\end{center}
   9.716 +
   9.717 +\newpage
   9.718 +\vspace*{-2pc}
   9.719 +\src{}\hypertarget{sc}{}
   9.720 +\def\rulecolor{blue!70}
   9.721 +\hyperlink{bsc}{\includeclip{1}{121 81 497 670}{els1.pdf}}
   9.722 +\def\rulecolor{orange}
   9.723 +
   9.724 +
   9.725 +\newpage
   9.726 +
   9.727 +\src{}\hypertarget{dc}{}
   9.728 +\def\rulecolor{blue!70}
   9.729 +\hyperlink{bsc}{\includeclip{1}{55 93 535 738}{els-3pd.pdf}}
   9.730 +\def\rulecolor{orange}
   9.731 +
   9.732 +\end{document}
    10.1 Binary file elsarticle/doc/jfigs.pdf has changed
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/elsarticle/doc/makefile	Fri Nov 18 16:18:02 2016 +0100
    11.3 @@ -0,0 +1,36 @@
    11.4 +file=elsdoc
    11.5 +
    11.6 +
    11.7 +all: pdf out 
    11.8 +	make pdf
    11.9 +	make pdf
   11.10 +
   11.11 +out:
   11.12 +	if  [ -f $(file).out ] ; then cp $(file).out tmp.out; fi ;
   11.13 +	sed 's/BOOKMARK/dtxmark/g;' tmp.out > x.out; mv x.out tmp.out ;
   11.14 +
   11.15 +pdf:
   11.16 +	pdflatex $(file).tex
   11.17 +
   11.18 +index:
   11.19 +	makeindex -s gind.ist -o $(file).ind $(file).idx 
   11.20 +
   11.21 +changes:
   11.22 +	makeindex -s gglo.ist -o $(file).gls $(file).glo
   11.23 +
   11.24 +xview:
   11.25 +#	xpdf -z 200 $(file).pdf &>/dev/null
   11.26 +	open -a 'Skim.app' $(file).pdf 
   11.27 +
   11.28 +view:
   11.29 +	open -a 'Adobe Reader.app' $(file).pdf
   11.30 +
   11.31 +ins:
   11.32 +	latex $(file).ins 
   11.33 +
   11.34 +diff:
   11.35 +	diff $(file).sty ../$(file).sty |less
   11.36 +
   11.37 +copy:
   11.38 +	cp $(file).sty ../
   11.39 +
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/elsarticle/doc/pdfwidgets.sty	Fri Nov 18 16:18:02 2016 +0100
    12.3 @@ -0,0 +1,382 @@
    12.4 +%%
    12.5 +%% pdfwidgets.sty
    12.6 +%%
    12.7 +%% $Id: pdfwidgets.sty,v 1.2 2007-10-22 09:45:17 cvr Exp $
    12.8 +%%    
    12.9 +%% (c) C. V. Radhakrishnan <cvr@river-valley.org>
   12.10 +%%
   12.11 +%% This package may be distributed under the terms of the LaTeX Project 
   12.12 +%% Public License, as described in lppl.txt in the base LaTeX distribution.
   12.13 +%% Either version 1.0 or, at your option, any later version.
   12.14 +%%
   12.15 +%\RequirePackage[oldstyle]{minion}
   12.16 +%\RequirePackage[scaled=.8]{prima}
   12.17 +%\RequirePackage[scaled=.9]{lfr}
   12.18 +\usepackage[dvipsnames,svgnames]{xcolor}
   12.19 +\RequirePackage{graphicx}
   12.20 +\RequirePackage{tikz}
   12.21 +\usetikzlibrary{backgrounds}
   12.22 +
   12.23 +%\def\thesection{\ifnum\c@section<10
   12.24 +%    \protect\phantom{0}\fi\arabic{section}}
   12.25 +
   12.26 +\newdimen\lmrgn
   12.27 +\def\rulecolor{orange}
   12.28 +\def\rulewidth{1pt}
   12.29 +\pgfdeclareshape{filledbox}{%
   12.30 +  \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
   12.31 +  \inheritanchorborder[from=rectangle]
   12.32 +  \inheritanchor[from=rectangle]{center}
   12.33 +  \inheritanchor[from=rectangle]{north}
   12.34 +  \inheritanchor[from=rectangle]{south}
   12.35 +  \inheritanchor[from=rectangle]{west}
   12.36 +  \inheritanchor[from=rectangle]{east}
   12.37 +  % ... and possibly more
   12.38 +  \backgroundpath{% this is new
   12.39 +    % store lower right in xa/ya and upper right in xb/yb
   12.40 +    \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
   12.41 +    \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
   12.42 +    % compute corner of ``flipped page''
   12.43 +    \pgf@xc=\pgf@xb \advance\pgf@xc by-5pt % this should be a parameter
   12.44 +    \pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
   12.45 +    % construct main path
   12.46 +    \pgfsetlinewidth{\rulewidth}
   12.47 +    \pgfsetstrokecolor{\rulecolor}
   12.48 +    \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
   12.49 +  \pgfsetcornersarced{\pgfpoint{9pt}{9pt}}
   12.50 +    \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
   12.51 +%  \pgfsetcornersarced{\pgforigin}
   12.52 +  \pgfsetcornersarced{\pgfpoint{9pt}{9pt}}
   12.53 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
   12.54 +  \pgfsetcornersarced{\pgfpoint{9pt}{9pt}}
   12.55 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
   12.56 +  \pgfsetcornersarced{\pgforigin}
   12.57 +    \pgfpathclose ;
   12.58 +%  \draw(\pgf@xa,\pgf@ya) -- (\pgf@xa,\pgf@yb) ;
   12.59 + }%
   12.60 +}
   12.61 +\pgfdeclareshape{roundedbox}{%
   12.62 +  \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
   12.63 +  \inheritanchorborder[from=rectangle]
   12.64 +  \inheritanchor[from=rectangle]{center}
   12.65 +  \inheritanchor[from=rectangle]{north}
   12.66 +  \inheritanchor[from=rectangle]{south}
   12.67 +  \inheritanchor[from=rectangle]{west}
   12.68 +  \inheritanchor[from=rectangle]{east}
   12.69 +  % ... and possibly more
   12.70 +  \backgroundpath{% this is new
   12.71 +    % store lower right in xa/ya and upper right in xb/yb
   12.72 +    \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
   12.73 +    \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
   12.74 +    % compute corner of ``flipped page''
   12.75 +    \pgf@xc=\pgf@xb \advance\pgf@xc by-5pt % this should be a parameter
   12.76 +    \pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
   12.77 +    % construct main path
   12.78 +    \pgfsetlinewidth{\rulewidth}
   12.79 +    \pgfsetstrokecolor{\rulecolor}
   12.80 +    \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
   12.81 +  \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}
   12.82 +    \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
   12.83 +%  \pgfsetcornersarced{\pgforigin}
   12.84 +  \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}
   12.85 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
   12.86 +  \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}
   12.87 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
   12.88 +%  \pgfsetcornersarced{\pgforigin}
   12.89 +  \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}
   12.90 +    \pgfpathclose ;
   12.91 +%  \draw(\pgf@xa,\pgf@ya) -- (\pgf@xa,\pgf@yb) ;
   12.92 + }%
   12.93 +}
   12.94 +
   12.95 +
   12.96 +
   12.97 +
   12.98 +\pgfdeclareshape{buttonbox}{%
   12.99 +  \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
  12.100 +  \inheritanchorborder[from=rectangle]
  12.101 +  \inheritanchor[from=rectangle]{center}
  12.102 +  \inheritanchor[from=rectangle]{north}
  12.103 +  \inheritanchor[from=rectangle]{south}
  12.104 +  \inheritanchor[from=rectangle]{west}
  12.105 +  \inheritanchor[from=rectangle]{east}
  12.106 +  % ... and possibly more
  12.107 +  \backgroundpath{% this is new
  12.108 +    % store lower right in xa/ya and upper right in xb/yb
  12.109 +    \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
  12.110 +    \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
  12.111 +    % compute corner of ``flipped page''
  12.112 +    \pgf@xc=\pgf@xb \advance\pgf@xc by-5pt % this should be a parameter
  12.113 +    \pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
  12.114 +    % construct main path
  12.115 +    \pgfsetlinewidth{1pt}
  12.116 +    \pgfsetstrokecolor{blue!10}
  12.117 +    \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
  12.118 +  \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}
  12.119 +    \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
  12.120 +%  \pgfsetcornersarced{\pgforigin}
  12.121 +  \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}
  12.122 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
  12.123 +  \pgfsetcornersarced{\pgforigin}
  12.124 +%  \pgfsetcornersarced{\pgfpoint{9pt}{9pt}}
  12.125 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
  12.126 +  \pgfsetcornersarced{\pgforigin}
  12.127 +    \pgfpathclose ;
  12.128 +%  \draw(\pgf@xa,\pgf@ya) -- (\pgf@xa,\pgf@yb) ;
  12.129 + }%
  12.130 +}
  12.131 +\pgfdeclareshape{quotedbox}{%
  12.132 +  \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
  12.133 +  \inheritanchorborder[from=rectangle]
  12.134 +  \inheritanchor[from=rectangle]{center}
  12.135 +  \inheritanchor[from=rectangle]{north}
  12.136 +  \inheritanchor[from=rectangle]{south}
  12.137 +  \inheritanchor[from=rectangle]{west}
  12.138 +  \inheritanchor[from=rectangle]{east}
  12.139 +  % ... and possibly more
  12.140 +  \backgroundpath{% this is new
  12.141 +    % store lower right in xa/ya and upper right in xb/yb
  12.142 +    \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
  12.143 +    \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
  12.144 +    % compute corner of ``flipped page''
  12.145 +    \pgf@xc=\pgf@xb \advance\pgf@xc by-5pt % this should be a parameter
  12.146 +    \pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
  12.147 +    % construct main path
  12.148 +    \pgfsetlinewidth{\rulewidth}
  12.149 +    \pgfsetstrokecolor{\rulecolor}
  12.150 +    \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
  12.151 +  \pgfsetcornersarced{\pgfpoint{9pt}{9pt}}
  12.152 +    \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
  12.153 +  \pgfsetcornersarced{\pgforigin}
  12.154 +%  \pgfsetcornersarced{\pgfpoint{4pt}{4pt}}
  12.155 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
  12.156 +  \pgfsetcornersarced{\pgforigin}
  12.157 +%  \pgfsetcornersarced{\pgfpoint{9pt}{9pt}}
  12.158 +    \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
  12.159 +  \pgfsetcornersarced{\pgforigin}
  12.160 +    \pgfpathclose ;
  12.161 +%  \draw(\pgf@xa,\pgf@ya) -- (\pgf@xa,\pgf@yb) ;
  12.162 + }%
  12.163 +}
  12.164 +
  12.165 +\newcounter{clip}
  12.166 +\newdimen\mywidth
  12.167 +\mywidth=\linewidth
  12.168 +
  12.169 +\def\src#1{\gdef\@src{#1}}\let\@src\@empty
  12.170 +\def\includeclip{\@ifnextchar[{\@includeclip}{\@includeclip[]}}
  12.171 +\def\@includeclip[#1]#2#3#4{\par
  12.172 +%    \vskip.75\baselineskip plus 3pt minus 1pt
  12.173 +    \computeLinewidth{\mywidth}%
  12.174 +    \begingroup\color{white}%
  12.175 +     \noindent%
  12.176 +     \begin{tikzpicture}
  12.177 +      %\node[fill=black!10,draw,shape=filledbox,
  12.178 +      \node[fill=black!10,%
  12.179 +			draw,
  12.180 +			shade,%
  12.181 +			top color=blue!10,
  12.182 +			bottom color=cyan!5,
  12.183 +			shape=filledbox,
  12.184 +      inner sep=\Sep,
  12.185 +      text width=\Linewidth] (x)
  12.186 +      {\parbox{\Linewidth}
  12.187 +      {\ifx\@src\@empty\else\refstepcounter{clip}\label{clip\theclip}%
  12.188 +			  {\par\vskip6pt\color{orange}\sffamily\small
  12.189 +				 ~Clip \theclip:\space\@src.}%
  12.190 +			 \par\vskip3pt\fi\normalcolor
  12.191 +			 \includegraphics[width=\Linewidth,page={#2},%
  12.192 +         viewport={#3},clip=true,#1]{#4}}
  12.193 +       \hspace*{-10pt}};
  12.194 +      \end{tikzpicture}
  12.195 +     \endgroup
  12.196 +%     \par\vskip.5\baselineskip
  12.197 +%         plus 3pt minus 1pt
  12.198 +				 }
  12.199 +%%                                         
  12.200 +%% include clippings from a pdf document:
  12.201 +%% #1 => Optional argument for \includegraphics
  12.202 +%% #2 => page number
  12.203 +%% #3 => co-ordinates
  12.204 +%% #4 => file name
  12.205 +
  12.206 +\newenvironment{quoted}{%\bigskip
  12.207 +    \computeLinewidth{.95\linewidth}%
  12.208 +    \global\setbox0=\hbox\bgroup
  12.209 +	   \begin{minipage}{.95\linewidth}\color{brown}%
  12.210 +		 \footnotesize\ttfamily\obeyspaces\obeylines}
  12.211 +	{\end{minipage}\egroup
  12.212 +   \vskip12pt plus 3pt minus 3pt\noindent\begin{tikzpicture}
  12.213 +	  \node[fill=blue!10,draw,shade,top color=orange!10,
  12.214 +		      bottom color=white,shape=filledbox,
  12.215 +		 inner sep=8pt,text width=\Linewidth] (x) {\box0} ;
  12.216 + 	  \end{tikzpicture}%
  12.217 +	 \vskip12pt plus 3pt minus 3pt}
  12.218 +
  12.219 +\newdimen\Linewidth
  12.220 +\newdimen\Sep
  12.221 +\def\computeLinewidth#1{\global\setlength\Linewidth{#1}%
  12.222 +   \global\addtolength{\Linewidth}{-2\Sep}}
  12.223 +
  12.224 +\newdimen\npskip
  12.225 +\npskip=0mm
  12.226 +
  12.227 +\long\def\NavigationPanel{%
  12.228 +   \global\setbox0=\hbox\bgroup
  12.229 +	   \begin{minipage}[t][.8125\panelheight][t]{.9\panelwidth}\color{brown}%
  12.230 +     %\centering
  12.231 +     \ifx\@pinclude\empty\relax\par\vfill\else
  12.232 +		 \@pinclude\fi
  12.233 +		 %River Valley Technologies
  12.234 +	   \end{minipage}\egroup
  12.235 +		 \Sep=.5cm
  12.236 +		 \@tempdima=\panelwidth
  12.237 +		 \advance\@tempdima-1cm
  12.238 +		 \computeLinewidth{\@tempdima}%
  12.239 +		 \def\rulewidth{.2pt}%
  12.240 +	 \noindent\begin{tikzpicture}
  12.241 +	  \node[fill=blue!10,draw,shade,bottom color=brown!30,
  12.242 +		      top color=white,shape=filledbox,
  12.243 +		 inner sep=\the\Sep,text width=\Linewidth] (x) 
  12.244 +		 {\hspace*{\npskip}\box0} ;
  12.245 + 	  \end{tikzpicture}%
  12.246 +		\vspace*{.0125\panelheight}
  12.247 +}
  12.248 +
  12.249 +\long\def\pinclude#1{\gdef\@pinclude{#1}}
  12.250 +\let\@pinclude\empty
  12.251 +
  12.252 +\def\Strut{\vrule depth 2pt height 10pt width 0pt}
  12.253 +\def\pdfButton#1#2{\begin{tikzpicture}
  12.254 +     \node[fill=blue!10,draw,shade,top color=blue!50,
  12.255 +		       bottom color=white,shape=buttonbox,
  12.256 +					 inner sep=2pt,text width=#1](x) 
  12.257 +					 {\parbox{#1}{\centering\Strut#2}}; \end{tikzpicture}}
  12.258 +
  12.259 +\def\vpanel{\def\@linkcolor{blue}%
  12.260 +            \def\@urlcolor{blue}%
  12.261 +						\def\@menucolor{blue}%
  12.262 +       \begin{minipage}[t][\vpanelheight][c]{\paperwidth}%
  12.263 +       \normalsfcodes%
  12.264 +   \hspace*{.25cm}
  12.265 +	  \begin{minipage}[c][\vpanelheight][c]{17cm}
  12.266 +		 \parbox[c][27mm][b]{15mm}%
  12.267 +%		  {\includegraphics[width=15mm]{logo4.pdf}}\hfill%\hspace{1cm}
  12.268 +     {\def\rulecolor{Goldenrod}%
  12.269 +		  \def\rulewidth{1pt}%
  12.270 +			\begin{tikzpicture}%
  12.271 +      %\node[fill=black!10,draw,shape=filledbox,
  12.272 +      \node[fill=white!10,%
  12.273 +			 draw,
  12.274 +%			 shade,%
  12.275 +%			 top color=blue!10,
  12.276 +%			 bottom color=white,
  12.277 +			 shape=roundedbox,
  12.278 +      inner sep=2mm,
  12.279 +      text width=13mm] (x)
  12.280 +      {\includegraphics[width=13mm]{els-logo.pdf}};
  12.281 +			\end{tikzpicture}}\hfill
  12.282 +%
  12.283 +     \parbox[c][24mm][b]{145mm}%	
  12.284 +	    {{\fontsize{30}{30}\selectfont\textsf{\color{white}elsarticle.cls}}
  12.285 +			\quad{\fontsize{14}{14}\selectfont\sffamily\color{blue!50}
  12.286 +			 A better way to format your submission}}
  12.287 +    \end{minipage} 
  12.288 +	 \hfill
  12.289 +	 \begin{minipage}[c][\vpanelheight][b]{7.9cm}
  12.290 +	  \sffamily\footnotesize
  12.291 +	  \pdfButton{2cm}{\href{mailto:elsarticle@river-valley.com}{BUGS}}
  12.292 +	  \pdfButton{2cm}{\href{http://support.river-valley.com}{SUPPORT}}
  12.293 +	  \pdfButton{2cm}%
  12.294 +		 {\href{http://www.elsevier.com/locate/latex}%
  12.295 +		  {RESOURCES}}
  12.296 +%		\pdfButton{2cm}{\Acrobatmenu{GoToPage}{GoTo}}
  12.297 +	 \end{minipage}\\
  12.298 +	 \rule{\paperwidth}{0.1pt}
  12.299 +	 \end{minipage}%
  12.300 +}
  12.301 +
  12.302 +\@ifundefined{backgroundcolor}%
  12.303 +  {\def\backgroundcolor#1{\gdef\@backgroundcolor{#1}}}{}
  12.304 +\colorlet{panelbackground}{orange!10}
  12.305 +\backgroundcolor{orange!10}
  12.306 +\def\@urlcolor{brown}
  12.307 +\def\@linkcolor{brown}
  12.308 +\def\@menucolor{brown}
  12.309 +
  12.310 +\RequirePackage{moreverb}
  12.311 +
  12.312 +\newenvironment{vquote}%
  12.313 +    {\medskip
  12.314 +		 \verbatimwrite{tmp.tex}}
  12.315 +    {\endverbatimwrite
  12.316 +		 \aftergroup\printBox}
  12.317 +
  12.318 +\def\printBox{\bgroup\def\rulecolor{orange}%
  12.319 +    \def\rulewidth{.2pt}%
  12.320 +		\noindent\begin{tikzpicture}
  12.321 +	  \node[fill=blue!10,draw,shade,top color=white!10,
  12.322 +		      bottom color=cyan!5,shape=quotedbox,
  12.323 +		 inner sep=8pt,text width=.95\linewidth] (x) 
  12.324 +		 {\color{orange}\verbatiminput{tmp.tex}%
  12.325 +		 \vspace*{-\baselineskip}%
  12.326 +		 } ;
  12.327 + 	  \end{tikzpicture}%
  12.328 +		\egroup
  12.329 +		\medskip
  12.330 +}
  12.331 +\def\red{\color{Sepia}}
  12.332 +\def\verbatim@font{\red\normalfont\ttfamily}
  12.333 +
  12.334 +\def\verbatimcontinuewrite{%
  12.335 +  \@bsphack
  12.336 +%  \verbatim@out=#1
  12.337 +  \let\do\@makeother\dospecials
  12.338 +  \obeyspaces\catcode`\^^M\active \catcode`\^^I=12
  12.339 +  \def\verbatim@processline{%
  12.340 +    \immediate\write\verbatim@out
  12.341 +      {\the\verbatim@line}}%
  12.342 +  \verbatim@start}
  12.343 +
  12.344 +\def\@@@lbr{\expandafter\@gobble\string\{}
  12.345 +\def\@@@rbr{\expandafter\@gobble\string\}}
  12.346 +\def\@@@pcr{\expandafter\@gobble\string\%}
  12.347 +
  12.348 +
  12.349 +%\immediate\write18{touch mytool.tex
  12.350 +%  ^^J rm mytool.tex ^^J touch mytool.tex}
  12.351 +
  12.352 +\newenvironment{toolwrite}[1]%
  12.353 +  {\@tempdima=#1
  12.354 +	 \verbatimwrite{xx}}
  12.355 +	{\endverbatimwrite
  12.356 +	 \immediate\write18{echo 
  12.357 +	 "\string\Clear\@@@lbr\the\@tempdima\@@@rbr\@@@lbr\@@@pcr">>mytool.tex^^J
  12.358 +	   cat xx.tex >> mytool.tex ^^J
  12.359 +		 echo "\@@@rbr" >> mytool.tex}}
  12.360 +
  12.361 +\tikzstyle{place}=[scale=.39,rectangle,draw=blue!90,fill=blue!30,thin,%
  12.362 +                   minimum height=1mm,minimum width=13mm]
  12.363 +\tikzstyle{trans}=[scale=.39,rectangle,draw=Olive,fill=Olive!20,thin,%
  12.364 +                   minimum height=1mm,minimum width=13mm]
  12.365 +\tikzstyle{past}=[scale=.39,rectangle,draw=Olive,fill=Olive!60,thin,%
  12.366 +                   minimum height=1mm,minimum width=13mm]
  12.367 +
  12.368 +\def\printSq#1{\parbox{107mm}{\@tempcnta=1
  12.369 +   \let\printfill\@empty
  12.370 +   \loop\ifnum\@tempcnta<#1
  12.371 +	  {\printfill\ifnum\c@page=\@tempcnta
  12.372 +    	 \tikz\node at(0,0) [place]{};\else
  12.373 +			\ifnum\c@page<\@tempcnta
  12.374 +		   \hyperlink{page.\the\@tempcnta}{\tikz\node at(0,0)
  12.375 +			 [trans]{};}%
  12.376 +			\else
  12.377 +		   \hyperlink{page.\the\@tempcnta}{\tikz\node at(0,0)
  12.378 +			 [past]{};}%
  12.379 +			\fi\fi}%
  12.380 +		\advance\@tempcnta 1 \let\printfill\,\repeat}}	
  12.381 +
  12.382 +
  12.383 +\endinput
  12.384 +
  12.385 +
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/elsarticle/doc/rvdtx.sty	Fri Nov 18 16:18:02 2016 +0100
    13.3 @@ -0,0 +1,479 @@
    13.4 +%
    13.5 +%
    13.6 +%  File: rvdtx.sty
    13.7 +%  
    13.8 +%  Auxiliary package to format *.dtx documents.
    13.9 +% 
   13.10 +%  Copyright (c) 2008, 2009 CV Radhakrishnan <cvr@river-valley.org>,
   13.11 +%                     
   13.12 +%  This file may be distributed and/or modified under the conditions
   13.13 +%  of the LaTeX Project Public License, either version 1.2 of this
   13.14 +%  license or (at your option) any later version.  The latest version
   13.15 +%  of this license is in:
   13.16 +%   
   13.17 +%    http://www.latex-project.org/lppl.txt
   13.18 +%   
   13.19 +%  and version 1.2 or later is part of all distributions of LaTeX
   13.20 +%  version 1999/12/01 or later.
   13.21 +%
   13.22 +%
   13.23 +\newcounter{colorscheme}
   13.24 +
   13.25 +\newif\if@xcolor \@xcolorfalse
   13.26 +\newif\if@mylogo \@mylogofalse
   13.27 +
   13.28 +\DeclareOption{mylogo}{\global\@mylogotrue}
   13.29 +\DeclareOption{green}{\setcounter{colorscheme}{1}}
   13.30 +\DeclareOption{orange}{\setcounter{colorscheme}{0}}
   13.31 +\DeclareOption{xcolor}{\global\@xcolortrue}
   13.32 +\DeclareOption{qone}{\AtEndOfPackage{\global\let\dtxmark\dtxmarkone}}
   13.33 +\DeclareOption{qtwo}{\AtEndOfPackage{\global\let\dtxmark\dtxmarktwo}}
   13.34 +
   13.35 +\ProcessOptions
   13.36 +\def\loadXcolor{\if@xcolor\RequirePackage[dvipsnames,svgnames]{xcolor}\fi}
   13.37 +
   13.38 +\loadXcolor
   13.39 +\ifcase\thecolorscheme
   13.40 +%
   13.41 +%  Orange color spec (default)
   13.42 +%
   13.43 + \colorlet{itemcolor}{brown}
   13.44 + \colorlet{verbcolor}{Sepia}
   13.45 + \colorlet{botrulecolor}{orange!25}
   13.46 + \colorlet{botbgcolor}{orange!15}
   13.47 + \colorlet{botcolor}{orange!80}
   13.48 + \colorlet{pgrulecolor}{orange}
   13.49 + \colorlet{pgbgcolor}{white}
   13.50 +
   13.51 + \colorlet{quicklinkrulecolor}{orange!40}
   13.52 + \colorlet{quicklinkcolor}{brown}
   13.53 + \colorlet{topverticalrule}{brown}
   13.54 + \colorlet{titlecolor}{brown}
   13.55 + \colorlet{hlinkcolor}{brown}
   13.56 + \colorlet{hlinktricolor}{orange!70}
   13.57 + \colorlet{linkcolor}{brown}
   13.58 + \colorlet{urlcolor}{brown}
   13.59 +
   13.60 +% \colorlet{arrayrulecolor}{olive!30}
   13.61 + \colorlet{seccolor}{brown}
   13.62 +
   13.63 + \colorlet{toprulecolor}{orange!30}
   13.64 + \colorlet{topbgcolor}{orange!10}
   13.65 + \colorlet{topcolor}{brown!80}
   13.66 +%
   13.67 +%
   13.68 +\or% Green color specs
   13.69 +%
   13.70 +%
   13.71 + \colorlet{itemcolor}{OliveGreen}
   13.72 + \colorlet{verbcolor}{OliveGreen}
   13.73 + \colorlet{botrulecolor}{GreenYellow!25}
   13.74 + \colorlet{botbgcolor}{GreenYellow!30}
   13.75 + \colorlet{botcolor}{Green!80}
   13.76 + \colorlet{pgrulecolor}{GreenYellow}
   13.77 + \colorlet{pgbgcolor}{white}
   13.78 +
   13.79 + \colorlet{quicklinkrulecolor}{Green!40}
   13.80 + \colorlet{quicklinkcolor}{Green}
   13.81 + \colorlet{topverticalrule}{Green}
   13.82 + \colorlet{titlecolor}{DarkOliveGreen}
   13.83 + \colorlet{hlinkcolor}{DarkOliveGreen}
   13.84 + \colorlet{hlinktricolor}{Green!70}
   13.85 + \colorlet{linkcolor}{OliveGreen}
   13.86 + \colorlet{urlcolor}{OliveGreen}
   13.87 +
   13.88 +% \colorlet{arrayrulecolor}{olive!30}
   13.89 + \colorlet{seccolor}{OliveGreen}
   13.90 +
   13.91 + \colorlet{toprulecolor}{GreenYellow!50}
   13.92 + \colorlet{topbgcolor}{GreenYellow!20}
   13.93 + \colorlet{topcolor}{GreenYellow!80}
   13.94 +\fi
   13.95 +
   13.96 +\def\floatpagefraction{.99}
   13.97 +\usepackage{geometry}
   13.98 +\geometry{top=2in,
   13.99 +  bottom=1in,
  13.100 +  left=2in,
  13.101 +  right=1in,
  13.102 +  a4paper}
  13.103 +
  13.104 +%\DeclareRobustCommand{\LaTeX}{L\kern-.25em%
  13.105 +%   {\sbox\z@ T%
  13.106 +%     \vbox to\ht\z@{%
  13.107 +%     {\check@mathfonts
  13.108 +%     \fontsize\sf@size\z@
  13.109 +%     \math@fontsfalse\selectfont
  13.110 +%     A}%
  13.111 +%    \vss}%
  13.112 +%   }%-.10em%
  13.113 +%  \TeX
  13.114 +%}
  13.115 +\DeclareRobustCommand{\LaTeX}{L\kern-.25em%
  13.116 +  {\sbox\z@ T%
  13.117 +         \vbox to\ht\z@{%
  13.118 +           \hbox{%
  13.119 +             \check@mathfonts
  13.120 +              \fontsize\sf@size\z@
  13.121 +              \math@fontsfalse\selectfont
  13.122 +              A}%
  13.123 +          \vss}%
  13.124 +        }%
  13.125 +   \kern-.10em%
  13.126 +   \TeX}
  13.127 +
  13.128 +\RequirePackage{pdfwidgets}
  13.129 +
  13.130 +\RequirePackage{comment,xspace}
  13.131 +\def\xml{\textsc{xml}\xspace}
  13.132 +\def\latex{\LaTeX\xspace}
  13.133 +\def\pdf{\textsc{pdf}\xspace}
  13.134 +\def\pdfa{\textsc{pdf/a-1}b\xspace}
  13.135 +\def\pdfx{\textsc{pdf/x-1}a\xspace}
  13.136 +\def\xmp{\textsc{xmp}\xspace}
  13.137 +\def\pdftex{\textsc{pdf\TeX}\xspace}
  13.138 +\def\defmacro#1{\texttt{\@bsl#1}}
  13.139 +\def\thanh{H\`an Th\^e Th\`anh\xspace}
  13.140 +\def\gnulinux{\textsc{gnu/linux}\xspace}
  13.141 +
  13.142 +\let\@DRAFTout@Hook\@empty
  13.143 +\newcommand{\DRAFTout}{\g@addto@macro\@DRAFTout@Hook}
  13.144 +\newcommand{\@DRAFTout@Out}{%
  13.145 +   \afterassignment\@DRAFTout@Test
  13.146 +   \global\setbox\@cclv=
  13.147 +   }
  13.148 +\newcommand{\@DRAFTout@Test}{%
  13.149 +   \ifvoid\@cclv\relax
  13.150 +      \aftergroup\@DRAFTout@Output
  13.151 +   \else
  13.152 +      \@DRAFTout@Output
  13.153 +   \fi%
  13.154 +   }
  13.155 +\newcommand{\@DRAFTout@Output}{%
  13.156 +   \@DRAFTout@Hook%
  13.157 +   \@DRAFTout@Org@Out\box\@cclv%
  13.158 +   }
  13.159 +\newcommand{\@DRAFTout@Org@Out}{}
  13.160 +\newcommand*{\@DRAFTout@Init}{%
  13.161 +   \let\@DRAFTout@Org@Out\shipout
  13.162 +   \let\shipout\@DRAFTout@Out
  13.163 +   }
  13.164 +\newdimen\OHeight
  13.165 +\setlength\OHeight{\textheight}
  13.166 +\addtolength\OHeight{\headheight}
  13.167 +\addtolength\OHeight{\headsep}
  13.168 +\addtolength\OHeight{\footskip}
  13.169 +
  13.170 +
  13.171 +\newif\ifoverlay\overlayfalse
  13.172 +
  13.173 +\AtBeginDocument{\@DRAFTout@Init}
  13.174 +\newcommand{\@DraftOverlay@Hook}{}
  13.175 +\newcommand{\AddToDraftOverlay}{\g@addto@macro\@DraftOverlay@Hook}
  13.176 +\newcommand{\ClearDraftOverlay}{\let\@DraftOverlay@Hook\@empty}
  13.177 +\newcommand{\@DraftOverlay}{%
  13.178 +  \ifx\@DraftOverlay@Hook\@empty
  13.179 +  \else
  13.180 +    \bgroup
  13.181 +      \@tempdima=1in
  13.182 +      \@tempcnta=\@tempdima
  13.183 +      \@tempcntb=-\@tempdima
  13.184 +      \advance\@tempcntb\paperheight
  13.185 +      \ifoverlay
  13.186 +       \global\setbox\@cclv\vbox{%
  13.187 +        \box\@cclv
  13.188 +        \vbox{\let\protect\relax%
  13.189 +         \unitlength=1pt%
  13.190 +         \pictur@(0,0)(\strip@pt\@tempdima,\strip@pt\@tempdimb)%
  13.191 +          \@DraftOverlay@Hook%
  13.192 +         \endpicture}}%
  13.193 +     \else
  13.194 +       \global\setbox\@cclv\vbox{%
  13.195 +        \vbox{\let\protect\relax%
  13.196 +         \unitlength=1sp%
  13.197 +         \pictur@(0,0)(\@tempcnta,\@tempcntb)%
  13.198 +          \@DraftOverlay@Hook%
  13.199 +         \endpicture}%
  13.200 +         \box\@cclv}%
  13.201 +     \fi 
  13.202 +    \egroup
  13.203 +  \fi
  13.204 +}
  13.205 +
  13.206 +\definecolor{gray30}{gray}{.7}
  13.207 +\definecolor{gray20}{gray}{.8}
  13.208 +\definecolor{gray10}{gray}{.9}
  13.209 +
  13.210 +\DRAFTout{\@DraftOverlay}
  13.211 +\long\def\puttext(#1)#2{\AddToDraftOverlay{%
  13.212 +  \setlength{\unitlength}{1pt}\thinlines%
  13.213 +  \put(#1){#2}}}
  13.214 +
  13.215 +\RequirePackage{shortvrb}
  13.216 +\MakeShortVerb{\|}
  13.217 +\RequirePackage{amsfonts,amssymb}
  13.218 +\IfFileExists{pxfonts.sty}{\RequirePackage{pxfonts}}{}
  13.219 +%\IfFileExists{charter.sty}{\RequirePackage{charter}}{}
  13.220 +\IfFileExists{lfr.sty}{\RequirePackage[scaled=.85]{lfr}}{}
  13.221 +%\IfFileExists{prima.sty}{\RequirePackage[scaled=.8]{prima}}{}
  13.222 +
  13.223 +\def\theCodelineNo{\reset@font\tiny\arabic{CodelineNo}}
  13.224 + 
  13.225 +\def\@seccntformat#1{\llap{\csname the#1\endcsname.\hspace*{6pt}}}
  13.226 +\def\section{\@startsection {section}{1}{\z@}%
  13.227 +      {-3.5ex \@plus -1ex \@minus -.2ex}%
  13.228 +      {2.3ex \@plus.2ex}%
  13.229 +      {\normalfont\large\bfseries\color{seccolor}}}
  13.230 +\def\subsection{\@startsection{subsection}{2}{\z@}%
  13.231 +      {-2.25ex\@plus -1ex \@minus -.2ex}%
  13.232 +      {1.5ex \@plus .2ex}%
  13.233 +      {\normalfont\normalsize\bfseries\color{seccolor}}}
  13.234 +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
  13.235 +      {-1.25ex\@plus -1ex \@minus -.2ex}%
  13.236 +      {1.5ex \@plus .2ex}%
  13.237 +      {\normalfont\normalsize\bfseries\color{seccolor}}}
  13.238 +
  13.239 +%\RequirePackage[draft]{pdfdraftcopy}
  13.240 +% \draftstring{}
  13.241 + \puttext(0,36){\botstring}%
  13.242 + \puttext(0,840){\copy\topbox}
  13.243 +\if@mylogo
  13.244 + \puttext(531,829){\cvrlogo}
  13.245 +\fi
  13.246 +
  13.247 +\RequirePackage{colortbl}
  13.248 +%\arrayrulecolor{arrayrulecolor}
  13.249 +\let\shline\hline
  13.250 +\def\hline{\noalign{\vskip3pt}\shline\noalign{\vskip4pt}}
  13.251 +
  13.252 +\RequirePackage[pdftex,colorlinks]{hyperref}
  13.253 +\def\Hlink#1#2{\hyperlink{#2}{\color{hlinktricolor}%
  13.254 +     $\blacktriangleright$~\color{hlinkcolor}#1}}
  13.255 + \def\@linkcolor{linkcolor}
  13.256 + \def\@urlcolor{urlcolor}
  13.257 +
  13.258 +\pagestyle{empty}
  13.259 +\def\version#1{\gdef\@version{#1}}
  13.260 +\def\@version{1.0}
  13.261 +\def\contact#1{\gdef\@contact{#1}}
  13.262 +\def\author#1{\gdef\@author{#1}}
  13.263 +\def\@author{River Valley Technologies}
  13.264 +\def\@contact{\texttt{support@river-valley.com}}
  13.265 +\def\keywords#1{\gdef\@keywords{#1}}
  13.266 +\def\@keywords{\LaTeX, \xml}
  13.267 +
  13.268 +\long\def\Hrule{\\[-4pt]\hspace*{-3em}%
  13.269 +     {\color{quicklinkrulecolor}\rule{\linewidth}{.1pt}}\\}
  13.270 +
  13.271 +\long\def\dtxmarkone[#1][#2]#3#4#5{\def\next{#1}%
  13.272 +     \ifcase\next\or\Hlink{#4}{#3}\Hrule \fi}
  13.273 +
  13.274 +\newcounter{dtx}
  13.275 +
  13.276 +\long\def\dtxmarktwo[#1][#2]#3#4#5{\def\next{#1}%
  13.277 +   \stepcounter{dtx}\parbox{.45\linewidth}%
  13.278 +    {\ifcase\next\or\Hlink{#4}{#3}\fi}%
  13.279 +   \ifodd\thedtx\relax\else\Hrule\fi}
  13.280 +
  13.281 +\let\dtxmark\dtxmarkone
  13.282 +
  13.283 +\newbox\topbox
  13.284 +\long\def\maketitle{\global\setbox\topbox=\vbox{\hsize=\paperwidth
  13.285 +    \parindent=0pt
  13.286 +    \fcolorbox{toprulecolor}{topbgcolor}%
  13.287 +    {\parbox[t][2in][c]{\paperwidth}%
  13.288 +      {\hspace*{15mm}%
  13.289 +       \parbox[c]{.35\paperwidth}{\fontsize{18pt}{20pt}%
  13.290 +          \raggedright\normalfont\sffamily \selectfont
  13.291 +          \color{titlecolor} \@title\\[6pt]
  13.292 +          {\normalsize\rmfamily\scshape\@author}}%
  13.293 +%          {\footnotesize\textsc{keywords:} \@keywords}}%
  13.294 +        \hfill
  13.295 +        \parbox[c][2in][c]{1mm}{\color{topverticalrule}%
  13.296 +          \rule{.1pt}{2in}}%
  13.297 +        \hfill
  13.298 +        \parbox[c][2in][c]{.35\paperwidth}%
  13.299 +        {\normalfont\footnotesize\sffamily\color{quicklinkcolor}%
  13.300 +           \vspace*{6pt} QUICK LINKS\Hrule
  13.301 +            \IfFileExists{tmp.out}{\input tmp.out}{}%
  13.302 +         }\hspace*{5mm}%
  13.303 +      }%
  13.304 +    }%
  13.305 +  }%
  13.306 +}
  13.307 +\gdef\botstring{\fcolorbox{botrulecolor}{botbgcolor}%
  13.308 +    {\parbox[t][.5in][t]{\paperwidth}%
  13.309 +      {\normalfont\sffamily\footnotesize%
  13.310 +        \color{botcolor}%
  13.311 +        \hspace*{5mm}\parbox[c][.5in][c]{.45\paperwidth}%
  13.312 +         {\raggedright \textcopyright\ 2009, Elsevier Ltd.
  13.313 +%           \href{http://www.river-valley.com}{%
  13.314 +%            http://www.river-valley.com}\\
  13.315 +%            \textsc{sjp} Building, Cotton Hills, Trivandrum
  13.316 +%           695014, India\\  9, Browns Court, Kennford,
  13.317 +%           Exeter, United Kingdom          
  13.318 +          Bugs, feature requests, suggestions and comments\\
  13.319 +          shall be mailed to \href{mailto:elsarticle@river-valley.com}
  13.320 +          {$<$elsarticle@river-valley.com$>$}. 
  13.321 +        }\hfill%
  13.322 +       \parbox[c][.5in][c]{1cm}
  13.323 +        {\centering\sffamily\mdseries
  13.324 +          \fcolorbox{pgrulecolor}{pgbgcolor}{\thepage}%
  13.325 +        }\hfill
  13.326 +       \parbox[c][.5in][c]{.45\paperwidth}
  13.327 +        {\raggedleft\begin{tabular}{rl}%
  13.328 +          Version:&\@version\\
  13.329 +          Date:&\@date\\
  13.330 +          Contact:&\@contact
  13.331 +         \end{tabular}\hspace*{5mm}%
  13.332 +        }%
  13.333 +      }%
  13.334 +    }%
  13.335 +  }
  13.336 +
  13.337 +\def\MacroFont{\fontencoding\encodingdefault
  13.338 +        \fontfamily\ttdefault
  13.339 +        \fontseries\mddefault
  13.340 +        \fontshape\updefault
  13.341 +        \color{verbcolor}\small}%
  13.342 +
  13.343 +\def\verbatim@font{\normalfont\color{verbcolor}\ttfamily}
  13.344 +
  13.345 +\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
  13.346 +  \bgroup
  13.347 +    \verb@eol@error \let\do\@makeother \dospecials
  13.348 +    \verbatim@font\@noligs
  13.349 +    \@ifstar\@sverb\@verb}
  13.350 +
  13.351 +
  13.352 +\def\@lbr{\expandafter\@gobble\string\{}
  13.353 +\def\@rbr{\expandafter\@gobble\string\}}
  13.354 +\def\@bsl{\expandafter\@gobble\string\\}
  13.355 +\def\@Bsl#1{\texttt{\@bsl#1}\xspace}
  13.356 +\def\trics#1{\protect\@Bsl{#1}}
  13.357 +\def\onecs#1{\protect\@Bsl{#1}}
  13.358 +%\let\trics\onecs
  13.359 +\@ifundefined{c@Glossary}{}{\c@GlossaryColumns=1
  13.360 +  \c@IndexColumns=2}
  13.361 +
  13.362 +\def\index@prologue{\section{Index}%
  13.363 +                 \markboth{Index}{Index}%
  13.364 +%                  Numbers written in italic refer to the page
  13.365 +%                  where the corresponding entry is described;
  13.366 +%                  numbers underlined refer to the
  13.367 +%                  \ifcodeline@index
  13.368 +%                    code line of the
  13.369 +%                  \fi
  13.370 +%                  definition; numbers in roman refer to the
  13.371 +%                  \ifcodeline@index
  13.372 +%                    code lines
  13.373 +%                  \else
  13.374 +%                    pages
  13.375 +%                  \fi
  13.376 +%                  where the entry is used.
  13.377 +                 }
  13.378 +
  13.379 +\@ifundefined{theglossary}{}{%
  13.380 +\renewenvironment{theglossary}{%
  13.381 +   \glossary@prologue%][\GlossaryMin]%
  13.382 +    \GlossaryParms \let\item\@idxitem \ignorespaces}%
  13.383 +   {}}
  13.384 +
  13.385 +\newenvironment{decl}[1][]%
  13.386 +    {\par\small\addvspace{1.5ex plus 1ex}%
  13.387 +     \vskip -\parskip
  13.388 +     \ifx\relax#1\relax
  13.389 +        \def\@decl@date{}%
  13.390 +     \else
  13.391 +        \def\@decl@date{\NEWfeature{#1}}%
  13.392 +     \fi
  13.393 +     \noindent%\hspace{-\leftmargini}%
  13.394 +     \begin{tabular}{l}\hline\ignorespaces}%
  13.395 +    {\\\hline\end{tabular}\nobreak\@decl@date\par\nobreak
  13.396 +     \vspace{0.75ex}\vskip -\parskip\ignorespacesafterend\noindent}
  13.397 +
  13.398 +\newif\ifhave@multicol
  13.399 +\newif\ifcodeline@index
  13.400 +
  13.401 +\IfFileExists{multicol.sty}{\have@multicoltrue
  13.402 +                            \RequirePackage{multicol}%
  13.403 +                           }{}
  13.404 +
  13.405 +\newdimen\IndexMin         \IndexMin       = 80pt
  13.406 +\newcount\c@IndexColumns   \c@IndexColumns = 2
  13.407 +\ifhave@multicol
  13.408 +  \renewenvironment{theindex}
  13.409 +    {\begin{multicols}\c@IndexColumns[\index@prologue][\IndexMin]%
  13.410 +      \IndexParms \let\item\@idxitem \ignorespaces}%
  13.411 +    {\end{multicols}}
  13.412 +\else
  13.413 +  \typeout{Can't find multicol.sty -- will use normal index layout if
  13.414 +     necessary.}
  13.415 +  \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
  13.416 +    \columnseprule \z@  \columnsep 35\p@
  13.417 +    \twocolumn[\index@prologue]%
  13.418 +    \IndexParms \let\item\@idxitem \ignorespaces}
  13.419 +  \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
  13.420 +\fi
  13.421 +\long\def\IndexPrologue#1{\@bsphack\def\index@prologue{#1}\@esphack}
  13.422 +\@ifundefined{index@prologue}
  13.423 +     {\def\index@prologue{\section{Index}%
  13.424 +                 \markboth{Index}{Index}%
  13.425 +%                  Numbers written in italic refer to the page
  13.426 +%                  where the corresponding entry is described;
  13.427 +%                  numbers underlined refer to the
  13.428 +%                  \ifcodeline@index
  13.429 +%                    code line of the
  13.430 +%                  \fi
  13.431 +%                  definition; numbers in roman refer to the
  13.432 +%                  \ifcodeline@index
  13.433 +%                    code lines
  13.434 +%                  \else
  13.435 +%                    pages
  13.436 +%                  \fi
  13.437 +%                  where the entry is used.
  13.438 +                 }}{}
  13.439 +\@ifundefined{IndexParms}
  13.440 +    {\def\IndexParms{%
  13.441 +       \parindent \z@
  13.442 +       \columnsep 15pt
  13.443 +       \parskip 0pt plus 1pt
  13.444 +       \rightskip 15pt
  13.445 +       \mathsurround \z@
  13.446 +       \parfillskip=-15pt
  13.447 +        \footnotesize
  13.448 +       \def\@idxitem{\par\hangindent 30pt}%
  13.449 +       \def\subitem{\@idxitem\hspace*{15pt}}%
  13.450 +       \def\subsubitem{\@idxitem\hspace*{25pt}}%
  13.451 +       \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
  13.452 +      }}{}
  13.453 +\def\efill{\hfill\nopagebreak}%
  13.454 +\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus  1fill}%
  13.455 +\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}%
  13.456 +\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
  13.457 +               \dotfil~\ignorespaces}%
  13.458 +
  13.459 +\let\scan@allowedfalse\relax
  13.460 +
  13.461 +\def\tlformat#1{\begingroup\Large
  13.462 +  \parbox[c][1.25em][c]{1.25em}{\centering\fontfamily{phv}
  13.463 +  \fontseries{m}%
  13.464 +  \selectfont\color{white}\huge#1}%
  13.465 +  \endgroup}
  13.466 +\def\tlFormat#1{\begingroup\Large
  13.467 +  \parbox[c][1.25em][c]{1.25em}{\centering\fontfamily{phv}
  13.468 +  \fontseries{m}%
  13.469 +  \selectfont\color{black}\huge#1}%
  13.470 +  \endgroup}
  13.471 +\def\cvrlogo{\begingroup\fboxsep=2pt
  13.472 +  \colorbox{olive}{\tlformat{c}}%
  13.473 +  \colorbox{blue}{\tlformat{v}}%
  13.474 +  \colorbox{red}{\tlformat{r}}
  13.475 +  \endgroup}
  13.476 +
  13.477 +
  13.478 +\endinput
  13.479 +
  13.480 +%%
  13.481 +%% End of file 'rvdtx.sty'
  13.482 +%% 
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/elsarticle/elsarticle-harv.bst	Fri Nov 18 16:18:02 2016 +0100
    14.3 @@ -0,0 +1,1537 @@
    14.4 +%% 
    14.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
    14.6 +%% 
    14.7 +%% This file is part of the 'Elsarticle Bundle'.
    14.8 +%% ---------------------------------------------
    14.9 +%% 
   14.10 +%% It may be distributed under the conditions of the LaTeX Project Public
   14.11 +%% License, either version 1.2 of this license or (at your option) any
   14.12 +%% later version.  The latest version of this license is in
   14.13 +%%    http://www.latex-project.org/lppl.txt
   14.14 +%% and version 1.2 or later is part of all distributions of LaTeX
   14.15 +%% version 1999/12/01 or later.
   14.16 +%% 
   14.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
   14.18 +%% given in the file `manifest.txt'.
   14.19 +%% 
   14.20 +
   14.21 + %%-------------------------------------------------------------------
   14.22 + %% This bibliography style file is intended for texts in ENGLISH
   14.23 + %% This is an author-year citation style bibliography. As such, it is
   14.24 + %% non-standard LaTeX, and requires a special package file
   14.25 + %% to function properly.
   14.26 + %% Such a package is    natbib.sty   by Patrick W. Daly
   14.27 + %% The form of the \bibitem entries is
   14.28 + %%   \bibitem[Jones et al.(1990)]{key}...
   14.29 + %%   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
   14.30 + %% The essential feature is that the label (the part in brackets) consists
   14.31 + %% of the author names, as they should appear in the citation, with the year
   14.32 + %% in parentheses following. There must be no space before the opening
   14.33 + %% parenthesis!
   14.34 + %% With natbib v5.3, a full list of authors may also follow the year.
   14.35 + %% In natbib.sty, it is possible to define the type of enclosures that is
   14.36 + %% really wanted (brackets or parentheses), but in either case, there must
   14.37 + %% be parentheses in the label.
   14.38 + %% The \cite command functions as follows:
   14.39 + %%   \citet{key} ==>>                Jones et al. (1990)
   14.40 + %%   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
   14.41 + %%   \citep{key} ==>>                (Jones et al., 1990)
   14.42 + %%   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
   14.43 + %%   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
   14.44 + %%   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
   14.45 + %%   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
   14.46 + %%   \citeauthor{key} ==>>           Jones et al.
   14.47 + %%   \citeauthor*{key} ==>>          Jones, Baker, and Smith
   14.48 + %%   \citeyear{key} ==>>             1990
   14.49 + %%---------------------------------------------------------------------
   14.50 +
   14.51 +ENTRY
   14.52 +  { address
   14.53 +    author
   14.54 +    booktitle
   14.55 +    chapter
   14.56 +    edition
   14.57 +    editor
   14.58 +    howpublished
   14.59 +    institution
   14.60 +    journal
   14.61 +    key
   14.62 +    month
   14.63 +    note
   14.64 +    number
   14.65 +    organization
   14.66 +    pages
   14.67 +    publisher
   14.68 +    school
   14.69 +    series
   14.70 +    title
   14.71 +    type
   14.72 +    url
   14.73 +    volume
   14.74 +    year
   14.75 +  }
   14.76 +  {}
   14.77 +  { label extra.label sort.label short.list }
   14.78 +
   14.79 +INTEGERS { output.state before.all mid.sentence after.sentence after.block }
   14.80 +
   14.81 +FUNCTION {init.state.consts}
   14.82 +{ #0 'before.all :=
   14.83 +  #1 'mid.sentence :=
   14.84 +  #2 'after.sentence :=
   14.85 +  #3 'after.block :=
   14.86 +}
   14.87 +
   14.88 +STRINGS { s t }
   14.89 +
   14.90 +FUNCTION {output.nonnull}
   14.91 +{ 's :=
   14.92 +  output.state mid.sentence =
   14.93 +    { ", " * write$ }
   14.94 +    { output.state after.block =
   14.95 +        { add.period$ write$
   14.96 +          newline$
   14.97 +          "\newblock " write$
   14.98 +        }
   14.99 +        { output.state before.all =
  14.100 +            'write$
  14.101 +            { add.period$ " " * write$ }
  14.102 +          if$
  14.103 +        }
  14.104 +      if$
  14.105 +      mid.sentence 'output.state :=
  14.106 +    }
  14.107 +  if$
  14.108 +  s
  14.109 +}
  14.110 +
  14.111 +FUNCTION {output}
  14.112 +{ duplicate$ empty$
  14.113 +    'pop$
  14.114 +    'output.nonnull
  14.115 +  if$
  14.116 +}
  14.117 +
  14.118 +FUNCTION {output.check}
  14.119 +{ 't :=
  14.120 +  duplicate$ empty$
  14.121 +    { pop$ "empty " t * " in " * cite$ * warning$ }
  14.122 +    'output.nonnull
  14.123 +  if$
  14.124 +}
  14.125 +
  14.126 +FUNCTION {fin.entry}
  14.127 +{ add.period$
  14.128 +  write$
  14.129 +  newline$
  14.130 +}
  14.131 +
  14.132 +FUNCTION {new.block}
  14.133 +{ output.state before.all =
  14.134 +    'skip$
  14.135 +    { after.block 'output.state := }
  14.136 +  if$
  14.137 +}
  14.138 +
  14.139 +FUNCTION {new.sentence}
  14.140 +{ output.state after.block =
  14.141 +    'skip$
  14.142 +    { output.state before.all =
  14.143 +        'skip$
  14.144 +        { after.sentence 'output.state := }
  14.145 +      if$
  14.146 +    }
  14.147 +  if$
  14.148 +}
  14.149 +
  14.150 +%%SP 2003/07/25
  14.151 +%% No longer used
  14.152 +FUNCTION {add.blank}
  14.153 +{  " " * before.all 'output.state :=
  14.154 +}
  14.155 +
  14.156 +FUNCTION {date.block}
  14.157 +{
  14.158 +  new.sentence
  14.159 +}
  14.160 +
  14.161 +FUNCTION {not}
  14.162 +{   { #0 }
  14.163 +    { #1 }
  14.164 +  if$
  14.165 +}
  14.166 +
  14.167 +FUNCTION {and}
  14.168 +{   'skip$
  14.169 +    { pop$ #0 }
  14.170 +  if$
  14.171 +}
  14.172 +
  14.173 +FUNCTION {or}
  14.174 +{   { pop$ #1 }
  14.175 +    'skip$
  14.176 +  if$
  14.177 +}
  14.178 +
  14.179 +FUNCTION {new.block.checkb}
  14.180 +{ empty$
  14.181 +  swap$ empty$
  14.182 +  and
  14.183 +    'skip$
  14.184 +    'new.block
  14.185 +  if$
  14.186 +}
  14.187 +
  14.188 +FUNCTION {field.or.null}
  14.189 +{ duplicate$ empty$
  14.190 +    { pop$ "" }
  14.191 +    'skip$
  14.192 +  if$
  14.193 +}
  14.194 +
  14.195 +FUNCTION {emphasize}
  14.196 +{ skip$ }
  14.197 +
  14.198 +FUNCTION {capitalize}
  14.199 +{ "u" change.case$ "t" change.case$ }
  14.200 +
  14.201 +FUNCTION {space.word}
  14.202 +{ " " swap$ * " " * }
  14.203 +
  14.204 + %% Here are the language-specific definitions for explicit words.
  14.205 + %% Each function has a name bbl.xxx where xxx is the English word.
  14.206 + %% The language selected here is ENGLISH
  14.207 +FUNCTION {bbl.and}
  14.208 +{ "and"}
  14.209 +
  14.210 +FUNCTION {bbl.etal}
  14.211 +{ "et~al." }
  14.212 +
  14.213 +FUNCTION {bbl.editors}
  14.214 +{ "Eds." }
  14.215 +
  14.216 +FUNCTION {bbl.editor}
  14.217 +{ "Ed." }
  14.218 +
  14.219 +FUNCTION {bbl.edby}
  14.220 +{ "edited by" }
  14.221 +
  14.222 +FUNCTION {bbl.edition}
  14.223 +{ "Edition" }
  14.224 +
  14.225 +FUNCTION {bbl.volume}
  14.226 +{ "Vol." }
  14.227 +
  14.228 +FUNCTION {bbl.of}
  14.229 +{ "of" }
  14.230 +
  14.231 +FUNCTION {bbl.number}
  14.232 +{ "no." }
  14.233 +
  14.234 +FUNCTION {bbl.nr}
  14.235 +{ "no." }
  14.236 +
  14.237 +FUNCTION {bbl.in}
  14.238 +{ "in" }
  14.239 +
  14.240 +FUNCTION {bbl.pages}
  14.241 +{ "pp." }
  14.242 +
  14.243 +FUNCTION {bbl.page}
  14.244 +{ "p." }
  14.245 +
  14.246 +FUNCTION {bbl.chapter}
  14.247 +{ "Ch." }
  14.248 +
  14.249 +FUNCTION {bbl.techrep}
  14.250 +{ "Tech. Rep." }
  14.251 +
  14.252 +FUNCTION {bbl.mthesis}
  14.253 +{ "Master's thesis" }
  14.254 +
  14.255 +FUNCTION {bbl.phdthesis}
  14.256 +{ "Ph.D. thesis" }
  14.257 +
  14.258 +FUNCTION {bbl.first}
  14.259 +{ "1st" }
  14.260 +
  14.261 +FUNCTION {bbl.second}
  14.262 +{ "2nd" }
  14.263 +
  14.264 +FUNCTION {bbl.third}
  14.265 +{ "3rd" }
  14.266 +
  14.267 +FUNCTION {bbl.fourth}
  14.268 +{ "4th" }
  14.269 +
  14.270 +FUNCTION {bbl.fifth}
  14.271 +{ "5th" }
  14.272 +
  14.273 +FUNCTION {bbl.st}
  14.274 +{ "st" }
  14.275 +
  14.276 +FUNCTION {bbl.nd}
  14.277 +{ "nd" }
  14.278 +
  14.279 +FUNCTION {bbl.rd}
  14.280 +{ "rd" }
  14.281 +
  14.282 +FUNCTION {bbl.th}
  14.283 +{ "th" }
  14.284 +
  14.285 +MACRO {jan} {"Jan."}
  14.286 +
  14.287 +MACRO {feb} {"Feb."}
  14.288 +
  14.289 +MACRO {mar} {"Mar."}
  14.290 +
  14.291 +MACRO {apr} {"Apr."}
  14.292 +
  14.293 +MACRO {may} {"May"}
  14.294 +
  14.295 +MACRO {jun} {"Jun."}
  14.296 +
  14.297 +MACRO {jul} {"Jul."}
  14.298 +
  14.299 +MACRO {aug} {"Aug."}
  14.300 +
  14.301 +MACRO {sep} {"Sep."}
  14.302 +
  14.303 +MACRO {oct} {"Oct."}
  14.304 +
  14.305 +MACRO {nov} {"Nov."}
  14.306 +
  14.307 +MACRO {dec} {"Dec."}
  14.308 +
  14.309 +FUNCTION {eng.ord}
  14.310 +{ duplicate$ "1" swap$ *
  14.311 +  #-2 #1 substring$ "1" =
  14.312 +     { bbl.th * }
  14.313 +     { duplicate$ #-1 #1 substring$
  14.314 +       duplicate$ "1" =
  14.315 +         { pop$ bbl.st * }
  14.316 +         { duplicate$ "2" =
  14.317 +             { pop$ bbl.nd * }
  14.318 +             { "3" =
  14.319 +                 { bbl.rd * }
  14.320 +                 { bbl.th * }
  14.321 +               if$
  14.322 +             }
  14.323 +           if$
  14.324 +          }
  14.325 +       if$
  14.326 +     }
  14.327 +   if$
  14.328 +}
  14.329 +
  14.330 +MACRO {acmcs} {"ACM Comput. Surv."}
  14.331 +
  14.332 +MACRO {acta} {"Acta Inf."}
  14.333 +
  14.334 +MACRO {cacm} {"Commun. ACM"}
  14.335 +
  14.336 +MACRO {ibmjrd} {"IBM J. Res. Dev."}
  14.337 +
  14.338 +MACRO {ibmsj} {"IBM Syst.~J."}
  14.339 +
  14.340 +MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  14.341 +
  14.342 +MACRO {ieeetc} {"IEEE Trans. Comput."}
  14.343 +
  14.344 +MACRO {ieeetcad}
  14.345 + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  14.346 +
  14.347 +MACRO {ipl} {"Inf. Process. Lett."}
  14.348 +
  14.349 +MACRO {jacm} {"J.~ACM"}
  14.350 +
  14.351 +MACRO {jcss} {"J.~Comput. Syst. Sci."}
  14.352 +
  14.353 +MACRO {scp} {"Sci. Comput. Programming"}
  14.354 +
  14.355 +MACRO {sicomp} {"SIAM J. Comput."}
  14.356 +
  14.357 +MACRO {tocs} {"ACM Trans. Comput. Syst."}
  14.358 +
  14.359 +MACRO {tods} {"ACM Trans. Database Syst."}
  14.360 +
  14.361 +MACRO {tog} {"ACM Trans. Gr."}
  14.362 +
  14.363 +MACRO {toms} {"ACM Trans. Math. Softw."}
  14.364 +
  14.365 +MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  14.366 +
  14.367 +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  14.368 +
  14.369 +MACRO {tcs} {"Theoretical Comput. Sci."}
  14.370 +
  14.371 +FUNCTION {write.url}
  14.372 +{ url empty$
  14.373 +    { skip$ }
  14.374 +    { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
  14.375 +  if$
  14.376 +}
  14.377 +
  14.378 +INTEGERS { nameptr namesleft numnames }
  14.379 +
  14.380 +FUNCTION {format.names}
  14.381 +{ 's :=
  14.382 +  #1 'nameptr :=
  14.383 +  s num.names$ 'numnames :=
  14.384 +  numnames 'namesleft :=
  14.385 +    { namesleft #0 > }
  14.386 +    { s nameptr
  14.387 +      "{vv~}{ll}{, jj}{, f.}" format.name$
  14.388 +    't :=
  14.389 +      nameptr #1 >
  14.390 +        {
  14.391 +          namesleft #1 >
  14.392 +            { ", " * t * }
  14.393 +            {
  14.394 +              "," *
  14.395 +              s nameptr "{ll}" format.name$ duplicate$ "others" =
  14.396 +                { 't := }
  14.397 +                { pop$ }
  14.398 +              if$
  14.399 +              t "others" =
  14.400 +                {
  14.401 +                  " " * bbl.etal *
  14.402 +                }
  14.403 +                { " " * t * }
  14.404 +              if$
  14.405 +            }
  14.406 +          if$
  14.407 +        }
  14.408 +        't
  14.409 +      if$
  14.410 +      nameptr #1 + 'nameptr :=
  14.411 +      namesleft #1 - 'namesleft :=
  14.412 +    }
  14.413 +  while$
  14.414 +}
  14.415 +FUNCTION {format.names.ed}
  14.416 +{ format.names }
  14.417 +FUNCTION {format.key}
  14.418 +{ empty$
  14.419 +    { key field.or.null }
  14.420 +    { "" }
  14.421 +  if$
  14.422 +}
  14.423 +
  14.424 +FUNCTION {format.authors}
  14.425 +{ author empty$
  14.426 +    { "" }
  14.427 +    { author format.names }
  14.428 +  if$
  14.429 +}
  14.430 +
  14.431 +FUNCTION {format.editors}
  14.432 +{ editor empty$
  14.433 +    { "" }
  14.434 +    { editor format.names
  14.435 +      editor num.names$ #1 >
  14.436 +        { " (" * bbl.editors * ")" * }
  14.437 +        { " (" * bbl.editor * ")" * }
  14.438 +      if$
  14.439 +    }
  14.440 +  if$
  14.441 +}
  14.442 +
  14.443 +FUNCTION {format.in.editors}
  14.444 +{ editor empty$
  14.445 +    { "" }
  14.446 +    { editor format.names.ed
  14.447 +      editor num.names$ #1 >
  14.448 +        { " (" * bbl.editors * ")" * }
  14.449 +        { " (" * bbl.editor * ")" * }
  14.450 +      if$
  14.451 +    }
  14.452 +  if$
  14.453 +}
  14.454 +
  14.455 +FUNCTION {format.note}
  14.456 +{
  14.457 + note empty$
  14.458 +    { "" }
  14.459 +    { note #1 #1 substring$
  14.460 +      duplicate$ "{" =
  14.461 +        'skip$
  14.462 +        { output.state mid.sentence =
  14.463 +          { "l" }
  14.464 +          { "u" }
  14.465 +        if$
  14.466 +        change.case$
  14.467 +        }
  14.468 +      if$
  14.469 +      note #2 global.max$ substring$ *
  14.470 +    }
  14.471 +  if$
  14.472 +}
  14.473 +
  14.474 +FUNCTION {format.title}
  14.475 +{ title empty$
  14.476 +    { "" }
  14.477 +    { title "t" change.case$
  14.478 +    }
  14.479 +  if$
  14.480 +}
  14.481 +
  14.482 +FUNCTION {format.full.names}
  14.483 +{'s :=
  14.484 +  #1 'nameptr :=
  14.485 +  s num.names$ 'numnames :=
  14.486 +  numnames 'namesleft :=
  14.487 +    { namesleft #0 > }
  14.488 +    { s nameptr
  14.489 +      "{vv~}{ll}" format.name$
  14.490 +      't :=
  14.491 +      nameptr #1 >
  14.492 +        {
  14.493 +          namesleft #1 >
  14.494 +            { ", " * t * }
  14.495 +            {
  14.496 +              numnames #2 >
  14.497 +                { "," * }
  14.498 +                'skip$
  14.499 +              if$
  14.500 +              s nameptr "{ll}" format.name$ duplicate$ "others" =
  14.501 +                { 't := }
  14.502 +                { pop$ }
  14.503 +              if$
  14.504 +              t "others" =
  14.505 +                {
  14.506 +                  " " * bbl.etal *
  14.507 +                }
  14.508 +                { bbl.and
  14.509 +                  space.word * t *
  14.510 +                }
  14.511 +              if$
  14.512 +            }
  14.513 +          if$
  14.514 +        }
  14.515 +        't
  14.516 +      if$
  14.517 +      nameptr #1 + 'nameptr :=
  14.518 +      namesleft #1 - 'namesleft :=
  14.519 +    }
  14.520 +  while$
  14.521 +}
  14.522 +
  14.523 +FUNCTION {author.editor.key.full}
  14.524 +{ author empty$
  14.525 +    { editor empty$
  14.526 +        { key empty$
  14.527 +            { cite$ #1 #3 substring$ }
  14.528 +            'key
  14.529 +          if$
  14.530 +        }
  14.531 +        { editor format.full.names }
  14.532 +      if$
  14.533 +    }
  14.534 +    { author format.full.names }
  14.535 +  if$
  14.536 +}
  14.537 +
  14.538 +FUNCTION {author.key.full}
  14.539 +{ author empty$
  14.540 +    { key empty$
  14.541 +         { cite$ #1 #3 substring$ }
  14.542 +          'key
  14.543 +      if$
  14.544 +    }
  14.545 +    { author format.full.names }
  14.546 +  if$
  14.547 +}
  14.548 +
  14.549 +FUNCTION {editor.key.full}
  14.550 +{ editor empty$
  14.551 +    { key empty$
  14.552 +         { cite$ #1 #3 substring$ }
  14.553 +          'key
  14.554 +      if$
  14.555 +    }
  14.556 +    { editor format.full.names }
  14.557 +  if$
  14.558 +}
  14.559 +
  14.560 +FUNCTION {make.full.names}
  14.561 +{ type$ "book" =
  14.562 +  type$ "inbook" =
  14.563 +  or
  14.564 +    'author.editor.key.full
  14.565 +    { type$ "proceedings" =
  14.566 +        'editor.key.full
  14.567 +        'author.key.full
  14.568 +      if$
  14.569 +    }
  14.570 +  if$
  14.571 +}
  14.572 +
  14.573 +FUNCTION {output.bibitem}
  14.574 +{ newline$
  14.575 +  "\bibitem[{" write$
  14.576 +  label write$
  14.577 +  ")" make.full.names duplicate$ short.list =
  14.578 +     { pop$ }
  14.579 +     { * }
  14.580 +   if$
  14.581 +  "}]{" * write$
  14.582 +  cite$ write$
  14.583 +  "}" write$
  14.584 +  newline$
  14.585 +  ""
  14.586 +  before.all 'output.state :=
  14.587 +}
  14.588 +
  14.589 +FUNCTION {n.dashify}
  14.590 +{
  14.591 +  't :=
  14.592 +  ""
  14.593 +    { t empty$ not }
  14.594 +    { t #1 #1 substring$ "-" =
  14.595 +        { t #1 #2 substring$ "--" = not
  14.596 +            { "--" *
  14.597 +              t #2 global.max$ substring$ 't :=
  14.598 +            }
  14.599 +            {   { t #1 #1 substring$ "-" = }
  14.600 +                { "-" *
  14.601 +                  t #2 global.max$ substring$ 't :=
  14.602 +                }
  14.603 +              while$
  14.604 +            }
  14.605 +          if$
  14.606 +        }
  14.607 +        { t #1 #1 substring$ *
  14.608 +          t #2 global.max$ substring$ 't :=
  14.609 +        }
  14.610 +      if$
  14.611 +    }
  14.612 +  while$
  14.613 +}
  14.614 +
  14.615 +FUNCTION {word.in}
  14.616 +{ bbl.in capitalize
  14.617 +  ":" *
  14.618 +  " " * }
  14.619 +
  14.620 +FUNCTION {format.date}
  14.621 +{ year duplicate$ empty$
  14.622 +    { "empty year in " cite$ * "; set to ????" * warning$
  14.623 +       pop$ "????" }
  14.624 +    'skip$
  14.625 +  if$
  14.626 +  month empty$
  14.627 +    'skip$
  14.628 +    { month
  14.629 +      " " * swap$ *
  14.630 +    }
  14.631 +  if$
  14.632 +  extra.label *
  14.633 +  before.all 'output.state :=
  14.634 +  ", " swap$ *
  14.635 +}
  14.636 +
  14.637 +FUNCTION {format.btitle}
  14.638 +{ title
  14.639 +}
  14.640 +
  14.641 +FUNCTION {tie.or.space.connect}
  14.642 +{ duplicate$ text.length$ #3 <
  14.643 +    { "~" }
  14.644 +    { " " }
  14.645 +  if$
  14.646 +  swap$ * *
  14.647 +}
  14.648 +
  14.649 +FUNCTION {either.or.check}
  14.650 +{ empty$
  14.651 +    'pop$
  14.652 +    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  14.653 +  if$
  14.654 +}
  14.655 +
  14.656 +FUNCTION {format.bvolume}
  14.657 +{ volume empty$
  14.658 +    { "" }
  14.659 +    { bbl.volume volume tie.or.space.connect
  14.660 +      series empty$
  14.661 +        'skip$
  14.662 +        { bbl.of space.word * series emphasize * }
  14.663 +      if$
  14.664 +      "volume and number" number either.or.check
  14.665 +    }
  14.666 +  if$
  14.667 +}
  14.668 +
  14.669 +FUNCTION {format.number.series}
  14.670 +{ volume empty$
  14.671 +    { number empty$
  14.672 +        { series field.or.null }
  14.673 +        { output.state mid.sentence =
  14.674 +            { bbl.number }
  14.675 +            { bbl.number capitalize }
  14.676 +          if$
  14.677 +          number tie.or.space.connect
  14.678 +          series empty$
  14.679 +            { "there's a number but no series in " cite$ * warning$ }
  14.680 +            { bbl.in space.word * series * }
  14.681 +          if$
  14.682 +        }
  14.683 +      if$
  14.684 +    }
  14.685 +    { "" }
  14.686 +  if$
  14.687 +}
  14.688 +
  14.689 +FUNCTION {is.num}
  14.690 +{ chr.to.int$
  14.691 +  duplicate$ "0" chr.to.int$ < not
  14.692 +  swap$ "9" chr.to.int$ > not and
  14.693 +}
  14.694 +
  14.695 +FUNCTION {extract.num}
  14.696 +{ duplicate$ 't :=
  14.697 +  "" 's :=
  14.698 +  { t empty$ not }
  14.699 +  { t #1 #1 substring$
  14.700 +    t #2 global.max$ substring$ 't :=
  14.701 +    duplicate$ is.num
  14.702 +      { s swap$ * 's := }
  14.703 +      { pop$ "" 't := }
  14.704 +    if$
  14.705 +  }
  14.706 +  while$
  14.707 +  s empty$
  14.708 +    'skip$
  14.709 +    { pop$ s }
  14.710 +  if$
  14.711 +}
  14.712 +
  14.713 +FUNCTION {convert.edition}
  14.714 +{ edition extract.num "l" change.case$ 's :=
  14.715 +  s "first" = s "1" = or
  14.716 +    { bbl.first 't := }
  14.717 +    { s "second" = s "2" = or
  14.718 +        { bbl.second 't := }
  14.719 +        { s "third" = s "3" = or
  14.720 +            { bbl.third 't := }
  14.721 +            { s "fourth" = s "4" = or
  14.722 +                { bbl.fourth 't := }
  14.723 +                { s "fifth" = s "5" = or
  14.724 +                    { bbl.fifth 't := }
  14.725 +                    { s #1 #1 substring$ is.num
  14.726 +                        { s eng.ord 't := }
  14.727 +                        { edition 't := }
  14.728 +                      if$
  14.729 +                    }
  14.730 +                  if$
  14.731 +                }
  14.732 +              if$
  14.733 +            }
  14.734 +          if$
  14.735 +        }
  14.736 +      if$
  14.737 +    }
  14.738 +  if$
  14.739 +  t
  14.740 +}
  14.741 +
  14.742 +FUNCTION {format.edition}
  14.743 +{ edition empty$
  14.744 +    { "" }
  14.745 +    { output.state mid.sentence =
  14.746 +        { convert.edition "l" change.case$ " " * bbl.edition * }
  14.747 +        { convert.edition "t" change.case$ " " * bbl.edition * }
  14.748 +      if$
  14.749 +    }
  14.750 +  if$
  14.751 +}
  14.752 +
  14.753 +INTEGERS { multiresult }
  14.754 +
  14.755 +FUNCTION {multi.page.check}
  14.756 +{ 't :=
  14.757 +  #0 'multiresult :=
  14.758 +    { multiresult not
  14.759 +      t empty$ not
  14.760 +      and
  14.761 +    }
  14.762 +    { t #1 #1 substring$
  14.763 +      duplicate$ "-" =
  14.764 +      swap$ duplicate$ "," =
  14.765 +      swap$ "+" =
  14.766 +      or or
  14.767 +        { #1 'multiresult := }
  14.768 +        { t #2 global.max$ substring$ 't := }
  14.769 +      if$
  14.770 +    }
  14.771 +  while$
  14.772 +  multiresult
  14.773 +}
  14.774 +
  14.775 +FUNCTION {format.pages}
  14.776 +{ pages empty$
  14.777 +    { "" }
  14.778 +    { pages multi.page.check
  14.779 +        { bbl.pages pages n.dashify tie.or.space.connect }
  14.780 +        { bbl.page pages tie.or.space.connect }
  14.781 +      if$
  14.782 +    }
  14.783 +  if$
  14.784 +}
  14.785 +
  14.786 +FUNCTION {format.journal.pages}
  14.787 +{ pages empty$
  14.788 +    'skip$
  14.789 +    { duplicate$ empty$
  14.790 +        { pop$ format.pages }
  14.791 +        {
  14.792 +          ", " *
  14.793 +          pages n.dashify *
  14.794 +        }
  14.795 +      if$
  14.796 +    }
  14.797 +  if$
  14.798 +}
  14.799 +
  14.800 +%%SP 2001/01/23
  14.801 +%% Only used in articles
  14.802 +FUNCTION {format.vol.num.pages}
  14.803 +{
  14.804 +%%SP 2001/01/23
  14.805 +%% Add the leading space only if there is a volume
  14.806 +  %% volume field.or.null
  14.807 +  " "
  14.808 +  volume empty$
  14.809 +    { pop$ "" }
  14.810 +    { volume * }
  14.811 +  if$
  14.812 +  number empty$
  14.813 +    'skip$
  14.814 +    {
  14.815 +      "~(" number * ")" * *
  14.816 +      volume empty$
  14.817 +        { "there's a number but no volume in " cite$ * warning$ }
  14.818 +        'skip$
  14.819 +      if$
  14.820 +    }
  14.821 +  if$
  14.822 +}
  14.823 +
  14.824 +FUNCTION {format.chapter.pages}
  14.825 +{ chapter empty$
  14.826 +    { "" }
  14.827 +    { type empty$
  14.828 +        { bbl.chapter }
  14.829 +        { type "l" change.case$ }
  14.830 +      if$
  14.831 +      chapter tie.or.space.connect
  14.832 +    }
  14.833 +  if$
  14.834 +}
  14.835 +
  14.836 +FUNCTION {format.in.ed.booktitle}
  14.837 +{ booktitle empty$
  14.838 +    { "" }
  14.839 +    { editor empty$
  14.840 +        { word.in booktitle * }
  14.841 +        { word.in format.in.editors * ", " *
  14.842 +          booktitle * }
  14.843 +      if$
  14.844 +    }
  14.845 +  if$
  14.846 +}
  14.847 +
  14.848 +FUNCTION {format.thesis.type}
  14.849 +{ type empty$
  14.850 +    'skip$
  14.851 +    { pop$
  14.852 +      type "t" change.case$
  14.853 +    }
  14.854 +  if$
  14.855 +}
  14.856 +
  14.857 +FUNCTION {format.tr.number}
  14.858 +{ type empty$
  14.859 +    { bbl.techrep }
  14.860 +    'type
  14.861 +  if$
  14.862 +  number empty$
  14.863 +    { "t" change.case$ }
  14.864 +    { number tie.or.space.connect }
  14.865 +  if$
  14.866 +}
  14.867 +
  14.868 +FUNCTION {format.article.crossref}
  14.869 +{
  14.870 +  word.in
  14.871 +  " \cite{" * crossref * "}" *
  14.872 +}
  14.873 +
  14.874 +FUNCTION {format.book.crossref}
  14.875 +{ volume empty$
  14.876 +    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  14.877 +      word.in
  14.878 +    }
  14.879 +    { bbl.volume capitalize
  14.880 +      volume tie.or.space.connect
  14.881 +      bbl.of space.word *
  14.882 +    }
  14.883 +  if$
  14.884 +  " \cite{" * crossref * "}" *
  14.885 +}
  14.886 +
  14.887 +FUNCTION {format.incoll.inproc.crossref}
  14.888 +{
  14.889 +  word.in
  14.890 +  " \cite{" * crossref * "}" *
  14.891 +}
  14.892 +
  14.893 +FUNCTION {format.org.or.pub}
  14.894 +{ 't :=
  14.895 +  ""
  14.896 +  address empty$ t empty$ and
  14.897 +    'skip$
  14.898 +    {
  14.899 +      t empty$
  14.900 +        { address empty$
  14.901 +          'skip$
  14.902 +          { address * }
  14.903 +          if$
  14.904 +        }
  14.905 +        { t *
  14.906 +          address empty$
  14.907 +            'skip$
  14.908 +            { ", " * address * }
  14.909 +          if$
  14.910 +        }
  14.911 +      if$
  14.912 +    }
  14.913 +  if$
  14.914 +}
  14.915 +
  14.916 +FUNCTION {format.publisher.address}
  14.917 +{ publisher empty$
  14.918 +    { "empty publisher in " cite$ * warning$
  14.919 +      ""
  14.920 +    }
  14.921 +    { publisher }
  14.922 +  if$
  14.923 +  format.org.or.pub
  14.924 +}
  14.925 +
  14.926 +FUNCTION {format.organization.address}
  14.927 +{ organization empty$
  14.928 +    { "" }
  14.929 +    { organization }
  14.930 +  if$
  14.931 +  format.org.or.pub
  14.932 +}
  14.933 +
  14.934 +FUNCTION {article}
  14.935 +{ output.bibitem
  14.936 +  format.authors "author" output.check
  14.937 +  author format.key output
  14.938 +  format.date "year" output.check
  14.939 +  date.block
  14.940 +  format.title "title" output.check
  14.941 +  new.sentence
  14.942 +  crossref missing$
  14.943 +    { journal
  14.944 +      "journal" output.check
  14.945 +%%SP 2001/01/23
  14.946 +%% Add the space in format.vol.num.pages
  14.947 +      %% add.blank
  14.948 +  before.all 'output.state :=
  14.949 +      format.vol.num.pages output
  14.950 +    }
  14.951 +    { format.article.crossref output.nonnull
  14.952 +      format.pages output
  14.953 +    }
  14.954 +  if$
  14.955 +  format.journal.pages
  14.956 +  format.note output
  14.957 +  fin.entry
  14.958 +  write.url
  14.959 +}
  14.960 +
  14.961 +FUNCTION {book}
  14.962 +{ output.bibitem
  14.963 +  author empty$
  14.964 +    { format.editors "author and editor" output.check
  14.965 +      editor format.key output
  14.966 +    }
  14.967 +    { format.authors output.nonnull
  14.968 +      crossref missing$
  14.969 +        { "author and editor" editor either.or.check }
  14.970 +        'skip$
  14.971 +      if$
  14.972 +    }
  14.973 +  if$
  14.974 +  format.date "year" output.check
  14.975 +  date.block
  14.976 +  format.btitle "title" output.check
  14.977 +  crossref missing$
  14.978 +    { format.edition output
  14.979 +      new.sentence
  14.980 +  format.bvolume output
  14.981 +      format.number.series output
  14.982 +      new.sentence
  14.983 +      format.publisher.address output
  14.984 +    }
  14.985 +    {
  14.986 +  new.sentence
  14.987 +      format.book.crossref output.nonnull
  14.988 +    }
  14.989 +  if$
  14.990 +  format.note output
  14.991 +  fin.entry
  14.992 +  write.url
  14.993 +}
  14.994 +
  14.995 +FUNCTION {booklet}
  14.996 +{ output.bibitem
  14.997 +  format.authors output
  14.998 +  author format.key output
  14.999 +  format.date "year" output.check
 14.1000 +  date.block
 14.1001 +  format.title "title" output.check
 14.1002 +  new.sentence
 14.1003 +  howpublished output
 14.1004 +  address output
 14.1005 +  format.note output
 14.1006 +  fin.entry
 14.1007 +  write.url
 14.1008 +}
 14.1009 +
 14.1010 +FUNCTION {inbook}
 14.1011 +{ output.bibitem
 14.1012 +  author empty$
 14.1013 +    { format.editors "author and editor" output.check
 14.1014 +      editor format.key output
 14.1015 +    }
 14.1016 +    { format.authors output.nonnull
 14.1017 +      crossref missing$
 14.1018 +        { "author and editor" editor either.or.check }
 14.1019 +        'skip$
 14.1020 +      if$
 14.1021 +    }
 14.1022 +  if$
 14.1023 +  format.date "year" output.check
 14.1024 +  date.block
 14.1025 +  format.btitle "title" output.check
 14.1026 +  crossref missing$
 14.1027 +    {
 14.1028 +      format.edition output
 14.1029 +      new.sentence
 14.1030 +      format.bvolume output
 14.1031 +      format.number.series output
 14.1032 +      new.sentence
 14.1033 +      format.publisher.address output
 14.1034 +      format.chapter.pages "chapter and pages" output.check
 14.1035 +    }
 14.1036 +    {
 14.1037 +      format.chapter.pages "chapter and pages" output.check
 14.1038 +  new.sentence
 14.1039 +      format.book.crossref output.nonnull
 14.1040 +    }
 14.1041 +  if$
 14.1042 +  format.pages "pages" output.check
 14.1043 +  format.note output
 14.1044 +  fin.entry
 14.1045 +  write.url
 14.1046 +}
 14.1047 +
 14.1048 +FUNCTION {incollection}
 14.1049 +{ output.bibitem
 14.1050 +  format.authors "author" output.check
 14.1051 +  author format.key output
 14.1052 +  format.date "year" output.check
 14.1053 +  date.block
 14.1054 +  format.title "title" output.check
 14.1055 +  new.sentence
 14.1056 +  crossref missing$
 14.1057 +    { format.in.ed.booktitle "booktitle" output.check
 14.1058 +      format.edition output
 14.1059 +      new.sentence
 14.1060 +      format.bvolume output
 14.1061 +      format.number.series output
 14.1062 +      new.sentence
 14.1063 +      format.publisher.address output
 14.1064 +      format.chapter.pages output
 14.1065 +    }
 14.1066 +    { format.incoll.inproc.crossref output.nonnull
 14.1067 +      format.chapter.pages output
 14.1068 +    }
 14.1069 +  if$
 14.1070 +  format.pages "pages" output.check
 14.1071 +  format.note output
 14.1072 +  fin.entry
 14.1073 +  write.url
 14.1074 +}
 14.1075 +
 14.1076 +FUNCTION {inproceedings}
 14.1077 +{ output.bibitem
 14.1078 +  format.authors "author" output.check
 14.1079 +  author format.key output
 14.1080 +  format.date "year" output.check
 14.1081 +  date.block
 14.1082 +  format.title "title" output.check
 14.1083 +  new.sentence
 14.1084 +  crossref missing$
 14.1085 +    { format.in.ed.booktitle "booktitle" output.check
 14.1086 +      format.edition output
 14.1087 +      new.sentence
 14.1088 +      format.bvolume output
 14.1089 +      format.number.series output
 14.1090 +      new.sentence
 14.1091 +      publisher empty$
 14.1092 +        { format.organization.address output }
 14.1093 +        { organization output
 14.1094 +          format.publisher.address output
 14.1095 +        }
 14.1096 +      if$
 14.1097 +%%SP 2001/01/23
 14.1098 +%%      format.pages output
 14.1099 +    }
 14.1100 +    { format.incoll.inproc.crossref output.nonnull
 14.1101 +%%SP 2001/01/23
 14.1102 +%%      format.pages output
 14.1103 +    }
 14.1104 +  if$
 14.1105 +%%SP 2001/01/23
 14.1106 +  format.pages "pages" output.check
 14.1107 +  format.note output
 14.1108 +  fin.entry
 14.1109 +  write.url
 14.1110 +}
 14.1111 +
 14.1112 +FUNCTION {conference} { inproceedings }
 14.1113 +
 14.1114 +FUNCTION {manual}
 14.1115 +{ output.bibitem
 14.1116 +  format.authors output
 14.1117 +  author format.key output
 14.1118 +  format.date "year" output.check
 14.1119 +  date.block
 14.1120 +  format.btitle "title" output.check
 14.1121 +  new.sentence
 14.1122 +  organization output
 14.1123 +  address output
 14.1124 +  format.edition output
 14.1125 +  format.note output
 14.1126 +  fin.entry
 14.1127 +  write.url
 14.1128 +}
 14.1129 +
 14.1130 +FUNCTION {mastersthesis}
 14.1131 +{ output.bibitem
 14.1132 +  format.authors "author" output.check
 14.1133 +  author format.key output
 14.1134 +  format.date "year" output.check
 14.1135 +  date.block
 14.1136 +  format.title "title" output.check
 14.1137 +  new.sentence
 14.1138 +  bbl.mthesis format.thesis.type output.nonnull
 14.1139 +  school "school" output.check
 14.1140 +  address output
 14.1141 +  format.note output
 14.1142 +  fin.entry
 14.1143 +  write.url
 14.1144 +}
 14.1145 +
 14.1146 +FUNCTION {misc}
 14.1147 +{ output.bibitem
 14.1148 +  format.authors output
 14.1149 +  author format.key output
 14.1150 +  format.date "year" output.check
 14.1151 +  date.block
 14.1152 +  format.title output
 14.1153 +  new.sentence
 14.1154 +  howpublished output
 14.1155 +  format.note output
 14.1156 +  fin.entry
 14.1157 +  write.url
 14.1158 +}
 14.1159 +
 14.1160 +FUNCTION {phdthesis}
 14.1161 +{ output.bibitem
 14.1162 +  format.authors "author" output.check
 14.1163 +  author format.key output
 14.1164 +  format.date "year" output.check
 14.1165 +  date.block
 14.1166 +  format.title "title" output.check
 14.1167 +  new.sentence
 14.1168 +  bbl.phdthesis format.thesis.type output.nonnull
 14.1169 +  school "school" output.check
 14.1170 +  address output
 14.1171 +  format.note output
 14.1172 +  fin.entry
 14.1173 +  write.url
 14.1174 +}
 14.1175 +
 14.1176 +FUNCTION {proceedings}
 14.1177 +{ output.bibitem
 14.1178 +  format.editors output
 14.1179 +  editor format.key output
 14.1180 +  format.date "year" output.check
 14.1181 +  date.block
 14.1182 +  format.btitle "title" output.check
 14.1183 +  new.sentence
 14.1184 +  format.bvolume output
 14.1185 +  format.number.series output
 14.1186 +  new.sentence
 14.1187 +  publisher empty$
 14.1188 +    { format.organization.address output }
 14.1189 +    { organization output
 14.1190 +      format.publisher.address output
 14.1191 +    }
 14.1192 +  if$
 14.1193 +  format.note output
 14.1194 +  fin.entry
 14.1195 +  write.url
 14.1196 +}
 14.1197 +
 14.1198 +FUNCTION {techreport}
 14.1199 +{ output.bibitem
 14.1200 +  format.authors "author" output.check
 14.1201 +  author format.key output
 14.1202 +  format.date "year" output.check
 14.1203 +  date.block
 14.1204 +  format.title "title" output.check
 14.1205 +  new.sentence
 14.1206 +  format.tr.number output.nonnull
 14.1207 +  institution "institution" output.check
 14.1208 +  address output
 14.1209 +  format.note output
 14.1210 +  fin.entry
 14.1211 +  write.url
 14.1212 +}
 14.1213 +
 14.1214 +FUNCTION {unpublished}
 14.1215 +{ output.bibitem
 14.1216 +  format.authors "author" output.check
 14.1217 +  author format.key output
 14.1218 +  format.date "year" output.check
 14.1219 +  date.block
 14.1220 +  format.title "title" output.check
 14.1221 +  format.note "note" output.check
 14.1222 +  fin.entry
 14.1223 +  write.url
 14.1224 +}
 14.1225 +
 14.1226 +FUNCTION {default.type} { misc }
 14.1227 +
 14.1228 +READ
 14.1229 +
 14.1230 +FUNCTION {sortify}
 14.1231 +{ purify$
 14.1232 +  "l" change.case$
 14.1233 +}
 14.1234 +
 14.1235 +INTEGERS { len }
 14.1236 +
 14.1237 +FUNCTION {chop.word}
 14.1238 +{ 's :=
 14.1239 +  'len :=
 14.1240 +  s #1 len substring$ =
 14.1241 +    { s len #1 + global.max$ substring$ }
 14.1242 +    's
 14.1243 +  if$
 14.1244 +}
 14.1245 +
 14.1246 +FUNCTION {format.lab.names}
 14.1247 +{ 's :=
 14.1248 +  s #1 "{vv~}{ll}" format.name$
 14.1249 +  s num.names$ duplicate$
 14.1250 +  #2 >
 14.1251 +    { pop$
 14.1252 +      " " * bbl.etal *
 14.1253 +    }
 14.1254 +    { #2 <
 14.1255 +        'skip$
 14.1256 +        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
 14.1257 +            {
 14.1258 +              " " * bbl.etal *
 14.1259 +            }
 14.1260 +            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
 14.1261 +              * }
 14.1262 +          if$
 14.1263 +        }
 14.1264 +      if$
 14.1265 +    }
 14.1266 +  if$
 14.1267 +}
 14.1268 +
 14.1269 +FUNCTION {author.key.label}
 14.1270 +{ author empty$
 14.1271 +    { key empty$
 14.1272 +        { cite$ #1 #3 substring$ }
 14.1273 +        'key
 14.1274 +      if$
 14.1275 +    }
 14.1276 +    { author format.lab.names }
 14.1277 +  if$
 14.1278 +}
 14.1279 +
 14.1280 +FUNCTION {author.editor.key.label}
 14.1281 +{ author empty$
 14.1282 +    { editor empty$
 14.1283 +        { key empty$
 14.1284 +            { cite$ #1 #3 substring$ }
 14.1285 +            'key
 14.1286 +          if$
 14.1287 +        }
 14.1288 +        { editor format.lab.names }
 14.1289 +      if$
 14.1290 +    }
 14.1291 +    { author format.lab.names }
 14.1292 +  if$
 14.1293 +}
 14.1294 +
 14.1295 +FUNCTION {editor.key.label}
 14.1296 +{ editor empty$
 14.1297 +    { key empty$
 14.1298 +        { cite$ #1 #3 substring$ }
 14.1299 +        'key
 14.1300 +      if$
 14.1301 +    }
 14.1302 +    { editor format.lab.names }
 14.1303 +  if$
 14.1304 +}
 14.1305 +
 14.1306 +FUNCTION {calc.short.authors}
 14.1307 +{ type$ "book" =
 14.1308 +  type$ "inbook" =
 14.1309 +  or
 14.1310 +    'author.editor.key.label
 14.1311 +    { type$ "proceedings" =
 14.1312 +        'editor.key.label
 14.1313 +        'author.key.label
 14.1314 +      if$
 14.1315 +    }
 14.1316 +  if$
 14.1317 +  'short.list :=
 14.1318 +}
 14.1319 +
 14.1320 +FUNCTION {calc.label}
 14.1321 +{ calc.short.authors
 14.1322 +  short.list
 14.1323 +  "("
 14.1324 +  *
 14.1325 +  year duplicate$ empty$
 14.1326 +     { pop$ "????" }
 14.1327 +     'skip$
 14.1328 +  if$
 14.1329 +  *
 14.1330 +  'label :=
 14.1331 +}
 14.1332 +
 14.1333 +FUNCTION {sort.format.names}
 14.1334 +{ 's :=
 14.1335 +  #1 'nameptr :=
 14.1336 +  ""
 14.1337 +  s num.names$ 'numnames :=
 14.1338 +  numnames 'namesleft :=
 14.1339 +    { namesleft #0 > }
 14.1340 +    { s nameptr
 14.1341 +      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
 14.1342 +      format.name$ 't :=
 14.1343 +      nameptr #1 >
 14.1344 +        {
 14.1345 +          "   "  *
 14.1346 +          namesleft #1 = t "others" = and
 14.1347 +            { "zzzzz" * }
 14.1348 +            { t sortify * }
 14.1349 +          if$
 14.1350 +        }
 14.1351 +        { t sortify * }
 14.1352 +      if$
 14.1353 +      nameptr #1 + 'nameptr :=
 14.1354 +      namesleft #1 - 'namesleft :=
 14.1355 +    }
 14.1356 +  while$
 14.1357 +}
 14.1358 +
 14.1359 +FUNCTION {sort.format.title}
 14.1360 +{ 't :=
 14.1361 +  "A " #2
 14.1362 +    "An " #3
 14.1363 +      "The " #4 t chop.word
 14.1364 +    chop.word
 14.1365 +  chop.word
 14.1366 +  sortify
 14.1367 +  #1 global.max$ substring$
 14.1368 +}
 14.1369 +
 14.1370 +FUNCTION {author.sort}
 14.1371 +{ author empty$
 14.1372 +    { key empty$
 14.1373 +        { "to sort, need author or key in " cite$ * warning$
 14.1374 +          ""
 14.1375 +        }
 14.1376 +        { key sortify }
 14.1377 +      if$
 14.1378 +    }
 14.1379 +    { author sort.format.names }
 14.1380 +  if$
 14.1381 +}
 14.1382 +
 14.1383 +FUNCTION {author.editor.sort}
 14.1384 +{ author empty$
 14.1385 +    { editor empty$
 14.1386 +        { key empty$
 14.1387 +            { "to sort, need author, editor, or key in " cite$ * warning$
 14.1388 +              ""
 14.1389 +            }
 14.1390 +            { key sortify }
 14.1391 +          if$
 14.1392 +        }
 14.1393 +        { editor sort.format.names }
 14.1394 +      if$
 14.1395 +    }
 14.1396 +    { author sort.format.names }
 14.1397 +  if$
 14.1398 +}
 14.1399 +
 14.1400 +FUNCTION {editor.sort}
 14.1401 +{ editor empty$
 14.1402 +    { key empty$
 14.1403 +        { "to sort, need editor or key in " cite$ * warning$
 14.1404 +          ""
 14.1405 +        }
 14.1406 +        { key sortify }
 14.1407 +      if$
 14.1408 +    }
 14.1409 +    { editor sort.format.names }
 14.1410 +  if$
 14.1411 +}
 14.1412 +
 14.1413 +FUNCTION {presort}
 14.1414 +{ calc.label
 14.1415 +  label sortify
 14.1416 +  "    "
 14.1417 +  *
 14.1418 +  type$ "book" =
 14.1419 +  type$ "inbook" =
 14.1420 +  or
 14.1421 +    'author.editor.sort
 14.1422 +    { type$ "proceedings" =
 14.1423 +        'editor.sort
 14.1424 +        'author.sort
 14.1425 +      if$
 14.1426 +    }
 14.1427 +  if$
 14.1428 +  #1 entry.max$ substring$
 14.1429 +  'sort.label :=
 14.1430 +  sort.label
 14.1431 +  *
 14.1432 +  "    "
 14.1433 +  *
 14.1434 +  title field.or.null
 14.1435 +  sort.format.title
 14.1436 +  *
 14.1437 +  #1 entry.max$ substring$
 14.1438 +  'sort.key$ :=
 14.1439 +}
 14.1440 +
 14.1441 +ITERATE {presort}
 14.1442 +
 14.1443 +SORT
 14.1444 +
 14.1445 +STRINGS { last.label next.extra }
 14.1446 +
 14.1447 +INTEGERS { last.extra.num number.label }
 14.1448 +
 14.1449 +FUNCTION {initialize.extra.label.stuff}
 14.1450 +{ #0 int.to.chr$ 'last.label :=
 14.1451 +  "" 'next.extra :=
 14.1452 +  #0 'last.extra.num :=
 14.1453 +  #0 'number.label :=
 14.1454 +}
 14.1455 +
 14.1456 +FUNCTION {forward.pass}
 14.1457 +{ last.label label =
 14.1458 +    { last.extra.num #1 + 'last.extra.num :=
 14.1459 +      last.extra.num int.to.chr$ 'extra.label :=
 14.1460 +    }
 14.1461 +    { "a" chr.to.int$ 'last.extra.num :=
 14.1462 +      "" 'extra.label :=
 14.1463 +      label 'last.label :=
 14.1464 +    }
 14.1465 +  if$
 14.1466 +  number.label #1 + 'number.label :=
 14.1467 +}
 14.1468 +
 14.1469 +FUNCTION {reverse.pass}
 14.1470 +{ next.extra "b" =
 14.1471 +    { "a" 'extra.label := }
 14.1472 +    'skip$
 14.1473 +  if$
 14.1474 +  extra.label 'next.extra :=
 14.1475 +  extra.label
 14.1476 +  duplicate$ empty$
 14.1477 +    'skip$
 14.1478 +    { "{\natexlab{" swap$ * "}}" * }
 14.1479 +  if$
 14.1480 +  'extra.label :=
 14.1481 +  label extra.label * 'label :=
 14.1482 +}
 14.1483 +
 14.1484 +EXECUTE {initialize.extra.label.stuff}
 14.1485 +
 14.1486 +ITERATE {forward.pass}
 14.1487 +
 14.1488 +REVERSE {reverse.pass}
 14.1489 +
 14.1490 +FUNCTION {bib.sort.order}
 14.1491 +{ sort.label
 14.1492 +  "    "
 14.1493 +  *
 14.1494 +  year field.or.null sortify
 14.1495 +  *
 14.1496 +  "    "
 14.1497 +  *
 14.1498 +  title field.or.null
 14.1499 +  sort.format.title
 14.1500 +  *
 14.1501 +  #1 entry.max$ substring$
 14.1502 +  'sort.key$ :=
 14.1503 +}
 14.1504 +
 14.1505 +ITERATE {bib.sort.order}
 14.1506 +
 14.1507 +SORT
 14.1508 +
 14.1509 +FUNCTION {begin.bib}
 14.1510 +{ preamble$ empty$
 14.1511 +    'skip$
 14.1512 +    { preamble$ write$ newline$ }
 14.1513 +  if$
 14.1514 +  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
 14.1515 +  write$ newline$
 14.1516 +  "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi"
 14.1517 +  write$ newline$
 14.1518 +  "\expandafter\ifx\csname url\endcsname\relax"
 14.1519 +  write$ newline$
 14.1520 +  "  \def\url#1{\texttt{#1}}\fi"
 14.1521 +  write$ newline$
 14.1522 +  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
 14.1523 +  write$ newline$
 14.1524 +}
 14.1525 +
 14.1526 +EXECUTE {begin.bib}
 14.1527 +
 14.1528 +EXECUTE {init.state.consts}
 14.1529 +
 14.1530 +ITERATE {call.type$}
 14.1531 +
 14.1532 +FUNCTION {end.bib}
 14.1533 +{ newline$
 14.1534 +  "\end{thebibliography}" write$ newline$
 14.1535 +}
 14.1536 +
 14.1537 +EXECUTE {end.bib}
 14.1538 +%% End of customized bst file
 14.1539 +%%
 14.1540 +%% End of file `elsarticle-harv.bst'.
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/elsarticle/elsarticle-num-names.bst	Fri Nov 18 16:18:02 2016 +0100
    15.3 @@ -0,0 +1,1461 @@
    15.4 +%% 
    15.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
    15.6 +%% 
    15.7 +%% This file is part of the 'Elsarticle Bundle'.
    15.8 +%% ---------------------------------------------
    15.9 +%% 
   15.10 +%% It may be distributed under the conditions of the LaTeX Project Public
   15.11 +%% License, either version 1.2 of this license or (at your option) any
   15.12 +%% later version.  The latest version of this license is in
   15.13 +%%    http://www.latex-project.org/lppl.txt
   15.14 +%% and version 1.2 or later is part of all distributions of LaTeX
   15.15 +%% version 1999/12/01 or later.
   15.16 +%% 
   15.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
   15.18 +%% given in the file `manifest.txt'.
   15.19 +%% 
   15.20 +%%
   15.21 +%% This is file `elsearticle-num-names.bst',
   15.22 +%% generated with the docstrip utility.
   15.23 +%%
   15.24 +%% The original source files were:
   15.25 +%%
   15.26 +%% merlin.mbs  (with options: `head,exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}')
   15.27 +%% english.mbs  (with options: `exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}')
   15.28 +%% merlin.mbs  (with options: `tail,exlang,ay,nat,seq-no,nm-init,ed-au,dt-jnl,dt-end,atit-u,jttl-rm,vnum-sp,volp-blk,jdt-p,pp-last,num-xser,jnm-x,btit-rm,bt-rm,bkpg-x,isbn,issn,doi,edpar,bkedcap,blk-com,in-col,english,ppx,ed,abr,xedn,varand,xand,url,url-blk,bibinfo,nfss,,{}')
   15.29 +%% ----------------------------------------
   15.30 +%% *** Journal of Sound and Vibration ***
   15.31 +%%
   15.32 +%% Copyright 1994-2004 Patrick W Daly
   15.33 + % ===============================================================
   15.34 + % IMPORTANT NOTICE:
   15.35 + % This bibliographic style (bst) file has been generated from one or
   15.36 + % more master bibliographic style (mbs) files, listed above.
   15.37 + %
   15.38 + % This generated file can be redistributed and/or modified under the terms
   15.39 + % of the LaTeX Project Public License Distributed from CTAN
   15.40 + % archives in directory macros/latex/base/lppl.txt; either
   15.41 + % version 1 of the License, or any later version.
   15.42 + % ===============================================================
   15.43 + % Name and version information of the main mbs file:
   15.44 + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)]
   15.45 + %   For use with BibTeX version 0.99a or later
   15.46 + %-------------------------------------------------------------------
   15.47 +
   15.48 +ENTRY
   15.49 + { address
   15.50 +   author
   15.51 +   booktitle
   15.52 +   chapter
   15.53 +   doi
   15.54 +   edition
   15.55 +   editor
   15.56 +   eid
   15.57 +   howpublished
   15.58 +   institution
   15.59 +   isbn
   15.60 +   issn
   15.61 +   journal
   15.62 +   key
   15.63 +   month
   15.64 +   note
   15.65 +   number
   15.66 +   organization
   15.67 +   pages
   15.68 +   publisher
   15.69 +   school
   15.70 +   series
   15.71 +   title
   15.72 +   type
   15.73 +   url
   15.74 +   volume
   15.75 +   year
   15.76 + }
   15.77 + {}
   15.78 + { label extra.label sort.label short.list }
   15.79 +INTEGERS { output.state before.all mid.sentence after.sentence after.block }
   15.80 +FUNCTION {init.state.consts}
   15.81 +{ #0 'before.all :=
   15.82 + #1 'mid.sentence :=
   15.83 + #2 'after.sentence :=
   15.84 + #3 'after.block :=
   15.85 +}
   15.86 +STRINGS { s t}
   15.87 +FUNCTION {output.nonnull}
   15.88 +{ 's :=
   15.89 + output.state mid.sentence =
   15.90 +   { ", " * write$ }
   15.91 +   { output.state after.block =
   15.92 +       { add.period$ write$
   15.93 +         newline$
   15.94 +         "\newblock " write$
   15.95 +       }
   15.96 +       { output.state before.all =
   15.97 +           'write$
   15.98 +           { add.period$ " " * write$ }
   15.99 +         if$
  15.100 +       }
  15.101 +     if$
  15.102 +     mid.sentence 'output.state :=
  15.103 +   }
  15.104 + if$
  15.105 + s
  15.106 +}
  15.107 +FUNCTION {output}
  15.108 +{ duplicate$ empty$
  15.109 +   'pop$
  15.110 +   'output.nonnull
  15.111 + if$
  15.112 +}
  15.113 +FUNCTION {output.check}
  15.114 +{ 't :=
  15.115 + duplicate$ empty$
  15.116 +   { pop$ "empty " t * " in " * cite$ * warning$ }
  15.117 +   'output.nonnull
  15.118 + if$
  15.119 +}
  15.120 +FUNCTION {fin.entry}
  15.121 +{ add.period$
  15.122 + write$
  15.123 + newline$
  15.124 +}
  15.125 +
  15.126 +FUNCTION {new.block}
  15.127 +{ output.state before.all =
  15.128 +   'skip$
  15.129 +   { after.block 'output.state := }
  15.130 + if$
  15.131 +}
  15.132 +FUNCTION {new.sentence}
  15.133 +{ output.state after.block =
  15.134 +   'skip$
  15.135 +   { output.state before.all =
  15.136 +       'skip$
  15.137 +       { after.sentence 'output.state := }
  15.138 +     if$
  15.139 +   }
  15.140 + if$
  15.141 +}
  15.142 +FUNCTION {add.blank}
  15.143 +{  " " * before.all 'output.state :=
  15.144 +}
  15.145 +
  15.146 +FUNCTION {date.block}
  15.147 +{
  15.148 + skip$
  15.149 +}
  15.150 +
  15.151 +FUNCTION {not}
  15.152 +{   { #0 }
  15.153 +   { #1 }
  15.154 + if$
  15.155 +}
  15.156 +FUNCTION {and}
  15.157 +{   'skip$
  15.158 +   { pop$ #0 }
  15.159 + if$
  15.160 +}
  15.161 +FUNCTION {or}
  15.162 +{   { pop$ #1 }
  15.163 +   'skip$
  15.164 + if$
  15.165 +}
  15.166 +FUNCTION {new.block.checkb}
  15.167 +{ empty$
  15.168 + swap$ empty$
  15.169 + and
  15.170 +   'skip$
  15.171 +   'new.block
  15.172 + if$
  15.173 +}
  15.174 +FUNCTION {field.or.null}
  15.175 +{ duplicate$ empty$
  15.176 +   { pop$ "" }
  15.177 +   'skip$
  15.178 + if$
  15.179 +}
  15.180 +FUNCTION {emphasize}
  15.181 +{ duplicate$ empty$
  15.182 +   { pop$ "" }
  15.183 +   { "\emph{" swap$ * "}" * }
  15.184 + if$
  15.185 +}
  15.186 +FUNCTION {tie.or.space.prefix}
  15.187 +{ duplicate$ text.length$ #3 <
  15.188 +   { "~" }
  15.189 +   { " " }
  15.190 + if$
  15.191 + swap$
  15.192 +}
  15.193 +
  15.194 +FUNCTION {capitalize}
  15.195 +{ "u" change.case$ "t" change.case$ }
  15.196 +
  15.197 +FUNCTION {space.word}
  15.198 +{ " " swap$ * " " * }
  15.199 + % Here are the language-specific definitions for explicit words.
  15.200 + % Each function has a name bbl.xxx where xxx is the English word.
  15.201 + %-------------------------------------------------------------------
  15.202 + % Begin module:
  15.203 + % \ProvidesFile{english.mbs}[2003/11/06 4.2 (PWD)]
  15.204 +
  15.205 + % The language selected here is ENGLISH
  15.206 +FUNCTION {bbl.and}
  15.207 +{ "and"}
  15.208 +
  15.209 +FUNCTION {bbl.etal}
  15.210 +{ "et~al." }
  15.211 +
  15.212 +FUNCTION {bbl.editors}
  15.213 +{ "eds." }
  15.214 +
  15.215 +FUNCTION {bbl.editor}
  15.216 +{ "ed." }
  15.217 +
  15.218 +FUNCTION {bbl.edby}
  15.219 +{ "edited by" }
  15.220 +
  15.221 +FUNCTION {bbl.edition}
  15.222 +{ "edn." }
  15.223 +
  15.224 +FUNCTION {bbl.volume}
  15.225 +{ "vol." }
  15.226 +
  15.227 +FUNCTION {bbl.of}
  15.228 +{ "of" }
  15.229 +
  15.230 +FUNCTION {bbl.number}
  15.231 +{ "no." }
  15.232 +
  15.233 +FUNCTION {bbl.nr}
  15.234 +{ "no." }
  15.235 +
  15.236 +FUNCTION {bbl.in}
  15.237 +{ "in" }
  15.238 +
  15.239 +FUNCTION {bbl.pages}
  15.240 +{ "" }
  15.241 +
  15.242 +FUNCTION {bbl.page}
  15.243 +{ "" }
  15.244 +
  15.245 +FUNCTION {bbl.chapter}
  15.246 +{ "chap." }
  15.247 +
  15.248 +FUNCTION {bbl.techrep}
  15.249 +{ "Tech. Rep." }
  15.250 +
  15.251 +FUNCTION {bbl.mthesis}
  15.252 +{ "Master's thesis" }
  15.253 +
  15.254 +FUNCTION {bbl.phdthesis}
  15.255 +{ "Ph.D. thesis" }
  15.256 +
  15.257 +MACRO {jan} {"Jan."}
  15.258 +
  15.259 +MACRO {feb} {"Feb."}
  15.260 +
  15.261 +MACRO {mar} {"Mar."}
  15.262 +
  15.263 +MACRO {apr} {"Apr."}
  15.264 +
  15.265 +MACRO {may} {"May"}
  15.266 +
  15.267 +MACRO {jun} {"Jun."}
  15.268 +
  15.269 +MACRO {jul} {"Jul."}
  15.270 +
  15.271 +MACRO {aug} {"Aug."}
  15.272 +
  15.273 +MACRO {sep} {"Sep."}
  15.274 +
  15.275 +MACRO {oct} {"Oct."}
  15.276 +
  15.277 +MACRO {nov} {"Nov."}
  15.278 +
  15.279 +MACRO {dec} {"Dec."}
  15.280 +
  15.281 + % End module: english.mbs
  15.282 +%% Copyright 1994-2004 Patrick W Daly
  15.283 +MACRO {acmcs} {"ACM Computing Surveys"}
  15.284 +
  15.285 +MACRO {acta} {"Acta Informatica"}
  15.286 +
  15.287 +MACRO {cacm} {"Communications of the ACM"}
  15.288 +
  15.289 +MACRO {ibmjrd} {"IBM Journal of Research and Development"}
  15.290 +
  15.291 +MACRO {ibmsj} {"IBM Systems Journal"}
  15.292 +
  15.293 +MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
  15.294 +
  15.295 +MACRO {ieeetc} {"IEEE Transactions on Computers"}
  15.296 +
  15.297 +MACRO {ieeetcad}
  15.298 + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
  15.299 +
  15.300 +MACRO {ipl} {"Information Processing Letters"}
  15.301 +
  15.302 +MACRO {jacm} {"Journal of the ACM"}
  15.303 +
  15.304 +MACRO {jcss} {"Journal of Computer and System Sciences"}
  15.305 +
  15.306 +MACRO {scp} {"Science of Computer Programming"}
  15.307 +
  15.308 +MACRO {sicomp} {"SIAM Journal on Computing"}
  15.309 +
  15.310 +MACRO {tocs} {"ACM Transactions on Computer Systems"}
  15.311 +
  15.312 +MACRO {tods} {"ACM Transactions on Database Systems"}
  15.313 +
  15.314 +MACRO {tog} {"ACM Transactions on Graphics"}
  15.315 +
  15.316 +MACRO {toms} {"ACM Transactions on Mathematical Software"}
  15.317 +
  15.318 +MACRO {toois} {"ACM Transactions on Office Information Systems"}
  15.319 +
  15.320 +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
  15.321 +
  15.322 +MACRO {tcs} {"Theoretical Computer Science"}
  15.323 +FUNCTION {bibinfo.check}
  15.324 +{ swap$
  15.325 + duplicate$ missing$
  15.326 +   {
  15.327 +     pop$ pop$
  15.328 +     ""
  15.329 +   }
  15.330 +   { duplicate$ empty$
  15.331 +       {
  15.332 +         swap$ pop$
  15.333 +       }
  15.334 +       { swap$
  15.335 +         "\bibinfo{" swap$ * "}{" * swap$ * "}" *
  15.336 +       }
  15.337 +     if$
  15.338 +   }
  15.339 + if$
  15.340 +}
  15.341 +FUNCTION {bibinfo.warn}
  15.342 +{ swap$
  15.343 + duplicate$ missing$
  15.344 +   {
  15.345 +     swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
  15.346 +     ""
  15.347 +   }
  15.348 +   { duplicate$ empty$
  15.349 +       {
  15.350 +         swap$ "empty " swap$ * " in " * cite$ * warning$
  15.351 +       }
  15.352 +       { swap$
  15.353 +         "\bibinfo{" swap$ * "}{" * swap$ * "}" *
  15.354 +       }
  15.355 +     if$
  15.356 +   }
  15.357 + if$
  15.358 +}
  15.359 +FUNCTION {format.url}
  15.360 +{ url empty$
  15.361 +   { "" }
  15.362 +   { "\urlprefix\url{" url * "}" * }
  15.363 + if$
  15.364 +}
  15.365 +
  15.366 +STRINGS  { bibinfo}
  15.367 +INTEGERS { nameptr namesleft numnames }
  15.368 +
  15.369 +FUNCTION {format.names}
  15.370 +{ 'bibinfo :=
  15.371 + duplicate$ empty$ 'skip$ {
  15.372 + 's :=
  15.373 + "" 't :=
  15.374 + #1 'nameptr :=
  15.375 + s num.names$ 'numnames :=
  15.376 + numnames 'namesleft :=
  15.377 +   { namesleft #0 > }
  15.378 +   { s nameptr
  15.379 +     "{f.~}{vv~}{ll}{, jj}"
  15.380 +     format.name$
  15.381 +     bibinfo bibinfo.check
  15.382 +     't :=
  15.383 +     nameptr #1 >
  15.384 +       {
  15.385 +         namesleft #1 >
  15.386 +           { ", " * t * }
  15.387 +           {
  15.388 +             "," *
  15.389 +             s nameptr "{ll}" format.name$ duplicate$ "others" =
  15.390 +               { 't := }
  15.391 +               { pop$ }
  15.392 +             if$
  15.393 +             t "others" =
  15.394 +               {
  15.395 +                 " " * bbl.etal *
  15.396 +               }
  15.397 +               { " " * t * }
  15.398 +             if$
  15.399 +           }
  15.400 +         if$
  15.401 +       }
  15.402 +       't
  15.403 +     if$
  15.404 +     nameptr #1 + 'nameptr :=
  15.405 +     namesleft #1 - 'namesleft :=
  15.406 +   }
  15.407 + while$
  15.408 + } if$
  15.409 +}
  15.410 +FUNCTION {format.names.ed}
  15.411 +{
  15.412 + format.names
  15.413 +}
  15.414 +FUNCTION {format.key}
  15.415 +{ empty$
  15.416 +   { key field.or.null }
  15.417 +   { "" }
  15.418 + if$
  15.419 +}
  15.420 +
  15.421 +FUNCTION {format.authors}
  15.422 +{ author "author" format.names
  15.423 +}
  15.424 +FUNCTION {get.bbl.editor}
  15.425 +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
  15.426 +
  15.427 +FUNCTION {format.editors}
  15.428 +{ editor "editor" format.names duplicate$ empty$ 'skip$
  15.429 +   {
  15.430 +     " " *
  15.431 +     get.bbl.editor
  15.432 +     capitalize
  15.433 +  "(" swap$ * ")" *
  15.434 +     *
  15.435 +   }
  15.436 + if$
  15.437 +}
  15.438 +FUNCTION {format.isbn}
  15.439 +{ isbn "isbn" bibinfo.check
  15.440 + duplicate$ empty$ 'skip$
  15.441 +   {
  15.442 +     "ISBN " swap$ *
  15.443 +   }
  15.444 + if$
  15.445 +}
  15.446 +
  15.447 +FUNCTION {format.issn}
  15.448 +{ issn "issn" bibinfo.check
  15.449 + duplicate$ empty$ 'skip$
  15.450 +   {
  15.451 +     "ISSN " swap$ *
  15.452 +   }
  15.453 + if$
  15.454 +}
  15.455 +
  15.456 + FUNCTION {format.doi}
  15.457 + { doi "doi" bibinfo.check
  15.458 +  duplicate$ empty$ 'skip$
  15.459 +    {
  15.460 +      "\doi{" swap$  * "}" *
  15.461 +    }
  15.462 +  if$
  15.463 + }
  15.464 +
  15.465 +FUNCTION {format.note}
  15.466 +{
  15.467 + note empty$
  15.468 +   { "" }
  15.469 +   { note #1 #1 substring$
  15.470 +     duplicate$ "{" =
  15.471 +       'skip$
  15.472 +       { output.state mid.sentence =
  15.473 +         { "l" }
  15.474 +         { "u" }
  15.475 +       if$
  15.476 +       change.case$
  15.477 +       }
  15.478 +     if$
  15.479 +     note #2 global.max$ substring$ * "note" bibinfo.check
  15.480 +   }
  15.481 + if$
  15.482 +}
  15.483 +
  15.484 +FUNCTION {format.title}
  15.485 +{ title
  15.486 + "title" bibinfo.check
  15.487 +}
  15.488 +FUNCTION {format.full.names}
  15.489 +{'s :=
  15.490 + "" 't :=
  15.491 + #1 'nameptr :=
  15.492 + s num.names$ 'numnames :=
  15.493 + numnames 'namesleft :=
  15.494 +   { namesleft #0 > }
  15.495 +   { s nameptr
  15.496 +     "{vv~}{ll}" format.name$
  15.497 +     't :=
  15.498 +     nameptr #1 >
  15.499 +       {
  15.500 +         namesleft #1 >
  15.501 +           { ", " * t * }
  15.502 +           {
  15.503 +             s nameptr "{ll}" format.name$ duplicate$ "others" =
  15.504 +               { 't := }
  15.505 +               { pop$ }
  15.506 +             if$
  15.507 +             t "others" =
  15.508 +               {
  15.509 +                 " " * bbl.etal *
  15.510 +               }
  15.511 +               {
  15.512 +                 numnames #2 >
  15.513 +                   { "," * }
  15.514 +                   'skip$
  15.515 +                 if$
  15.516 +                 bbl.and
  15.517 +                 space.word * t *
  15.518 +               }
  15.519 +             if$
  15.520 +           }
  15.521 +         if$
  15.522 +       }
  15.523 +       't
  15.524 +     if$
  15.525 +     nameptr #1 + 'nameptr :=
  15.526 +     namesleft #1 - 'namesleft :=
  15.527 +   }
  15.528 + while$
  15.529 +}
  15.530 +
  15.531 +FUNCTION {author.editor.key.full}
  15.532 +{ author empty$
  15.533 +   { editor empty$
  15.534 +       { key empty$
  15.535 +           { cite$ #1 #3 substring$ }
  15.536 +           'key
  15.537 +         if$
  15.538 +       }
  15.539 +       { editor format.full.names }
  15.540 +     if$
  15.541 +   }
  15.542 +   { author format.full.names }
  15.543 + if$
  15.544 +}
  15.545 +
  15.546 +FUNCTION {author.key.full}
  15.547 +{ author empty$
  15.548 +   { key empty$
  15.549 +        { cite$ #1 #3 substring$ }
  15.550 +         'key
  15.551 +     if$
  15.552 +   }
  15.553 +   { author format.full.names }
  15.554 + if$
  15.555 +}
  15.556 +
  15.557 +FUNCTION {editor.key.full}
  15.558 +{ editor empty$
  15.559 +   { key empty$
  15.560 +        { cite$ #1 #3 substring$ }
  15.561 +         'key
  15.562 +     if$
  15.563 +   }
  15.564 +   { editor format.full.names }
  15.565 + if$
  15.566 +}
  15.567 +
  15.568 +FUNCTION {make.full.names}
  15.569 +{ type$ "book" =
  15.570 + type$ "inbook" =
  15.571 + or
  15.572 +   'author.editor.key.full
  15.573 +   { type$ "proceedings" =
  15.574 +       'editor.key.full
  15.575 +       'author.key.full
  15.576 +     if$
  15.577 +   }
  15.578 + if$
  15.579 +}
  15.580 +
  15.581 +FUNCTION {output.bibitem}
  15.582 +{ newline$
  15.583 + "\bibitem[{" write$
  15.584 + label write$
  15.585 + ")" make.full.names duplicate$ short.list =
  15.586 +    { pop$ }
  15.587 +    { * }
  15.588 +  if$
  15.589 + "}]{" * write$
  15.590 + cite$ write$
  15.591 + "}" write$
  15.592 + newline$
  15.593 + ""
  15.594 + before.all 'output.state :=
  15.595 +}
  15.596 +
  15.597 +FUNCTION {n.dashify}
  15.598 +{
  15.599 + 't :=
  15.600 + ""
  15.601 +   { t empty$ not }
  15.602 +   { t #1 #1 substring$ "-" =
  15.603 +       { t #1 #2 substring$ "--" = not
  15.604 +           { "--" *
  15.605 +             t #2 global.max$ substring$ 't :=
  15.606 +           }
  15.607 +           {   { t #1 #1 substring$ "-" = }
  15.608 +               { "-" *
  15.609 +                 t #2 global.max$ substring$ 't :=
  15.610 +               }
  15.611 +             while$
  15.612 +           }
  15.613 +         if$
  15.614 +       }
  15.615 +       { t #1 #1 substring$ *
  15.616 +         t #2 global.max$ substring$ 't :=
  15.617 +       }
  15.618 +     if$
  15.619 +   }
  15.620 + while$
  15.621 +}
  15.622 +
  15.623 +FUNCTION {word.in}
  15.624 +{ bbl.in
  15.625 + ":" *
  15.626 + " " * }
  15.627 +
  15.628 +FUNCTION {format.date}
  15.629 +{ year "year" bibinfo.check duplicate$ empty$
  15.630 +   {
  15.631 +     "empty year in " cite$ * "; set to ????" * warning$
  15.632 +      pop$ "????"
  15.633 +   }
  15.634 +   'skip$
  15.635 + if$
  15.636 + extra.label *
  15.637 +}
  15.638 +FUNCTION{format.year}
  15.639 +{ year "year" bibinfo.check duplicate$ empty$
  15.640 +   {  "empty year in " cite$ *
  15.641 +      "; set to ????" *
  15.642 +      warning$
  15.643 +      pop$ "????"
  15.644 +   }
  15.645 +   {
  15.646 +   }
  15.647 + if$
  15.648 + extra.label *
  15.649 + "(" swap$ * ")" *
  15.650 +}
  15.651 +FUNCTION {format.btitle}
  15.652 +{ title "title" bibinfo.check
  15.653 + duplicate$ empty$ 'skip$
  15.654 +   {
  15.655 +   }
  15.656 + if$
  15.657 +}
  15.658 +FUNCTION {either.or.check}
  15.659 +{ empty$
  15.660 +   'pop$
  15.661 +   { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  15.662 + if$
  15.663 +}
  15.664 +FUNCTION {format.bvolume}
  15.665 +{ volume empty$
  15.666 +   { "" }
  15.667 +   { bbl.volume volume tie.or.space.prefix
  15.668 +     "volume" bibinfo.check * *
  15.669 +     series "series" bibinfo.check
  15.670 +     duplicate$ empty$ 'pop$
  15.671 +       { swap$ bbl.of space.word * swap$
  15.672 +         emphasize * }
  15.673 +     if$
  15.674 +     "volume and number" number either.or.check
  15.675 +   }
  15.676 + if$
  15.677 +}
  15.678 +FUNCTION {format.number.series}
  15.679 +{ volume empty$
  15.680 +   { number empty$
  15.681 +       { series field.or.null }
  15.682 +       { series empty$
  15.683 +           { number "number" bibinfo.check }
  15.684 +           { output.state mid.sentence =
  15.685 +               { bbl.number }
  15.686 +               { bbl.number capitalize }
  15.687 +             if$
  15.688 +             number tie.or.space.prefix "number" bibinfo.check * *
  15.689 +             bbl.in space.word *
  15.690 +             series "series" bibinfo.check *
  15.691 +           }
  15.692 +         if$
  15.693 +       }
  15.694 +     if$
  15.695 +   }
  15.696 +   { "" }
  15.697 + if$
  15.698 +}
  15.699 +
  15.700 +FUNCTION {format.edition}
  15.701 +{ edition duplicate$ empty$ 'skip$
  15.702 +   {
  15.703 +     output.state mid.sentence =
  15.704 +       { "l" }
  15.705 +       { "t" }
  15.706 +     if$ change.case$
  15.707 +     "edition" bibinfo.check
  15.708 +     " " * bbl.edition *
  15.709 +   }
  15.710 + if$
  15.711 +}
  15.712 +INTEGERS { multiresult }
  15.713 +FUNCTION {multi.page.check}
  15.714 +{ 't :=
  15.715 + #0 'multiresult :=
  15.716 +   { multiresult not
  15.717 +     t empty$ not
  15.718 +     and
  15.719 +   }
  15.720 +   { t #1 #1 substring$
  15.721 +     duplicate$ "-" =
  15.722 +     swap$ duplicate$ "," =
  15.723 +     swap$ "+" =
  15.724 +     or or
  15.725 +       { #1 'multiresult := }
  15.726 +       { t #2 global.max$ substring$ 't := }
  15.727 +     if$
  15.728 +   }
  15.729 + while$
  15.730 + multiresult
  15.731 +}
  15.732 +FUNCTION {format.pages}
  15.733 +{ pages duplicate$ empty$ 'skip$
  15.734 +   { duplicate$ multi.page.check
  15.735 +       {
  15.736 +         n.dashify
  15.737 +       }
  15.738 +       {
  15.739 +       }
  15.740 +     if$
  15.741 +     "pages" bibinfo.check
  15.742 +   }
  15.743 + if$
  15.744 +}
  15.745 +FUNCTION {format.journal.pages}
  15.746 +{ pages duplicate$ empty$ 'pop$
  15.747 +   { swap$ duplicate$ empty$
  15.748 +       { pop$ pop$ format.pages }
  15.749 +       {
  15.750 +         " " *
  15.751 +         format.year * " " *
  15.752 +         swap$
  15.753 +         n.dashify
  15.754 +         "pages" bibinfo.check
  15.755 +         *
  15.756 +       }
  15.757 +     if$
  15.758 +   }
  15.759 + if$
  15.760 +}
  15.761 +FUNCTION {format.journal.eid}
  15.762 +{ eid "eid" bibinfo.check
  15.763 + duplicate$ empty$ 'pop$
  15.764 +   { swap$ duplicate$ empty$ 'skip$
  15.765 +     {
  15.766 +         " " *
  15.767 +     }
  15.768 +     if$
  15.769 +     swap$ *
  15.770 +   }
  15.771 + if$
  15.772 +}
  15.773 +FUNCTION {format.vol.num.pages}
  15.774 +{ volume field.or.null
  15.775 + duplicate$ empty$ 'skip$
  15.776 +   {
  15.777 +     "volume" bibinfo.check
  15.778 +   }
  15.779 + if$
  15.780 + number "number" bibinfo.check duplicate$ empty$ 'skip$
  15.781 +   {
  15.782 +     swap$ duplicate$ empty$
  15.783 +       { "there's a number but no volume in " cite$ * warning$ }
  15.784 +       'skip$
  15.785 +     if$
  15.786 +     swap$
  15.787 +     "~(" swap$ * ")" *
  15.788 +   }
  15.789 + if$ *
  15.790 +}
  15.791 +
  15.792 +FUNCTION {format.chapter.pages}
  15.793 +{ chapter empty$
  15.794 +   { "" }
  15.795 +   { type empty$
  15.796 +       { bbl.chapter }
  15.797 +       { type "l" change.case$
  15.798 +         "type" bibinfo.check
  15.799 +       }
  15.800 +     if$
  15.801 +     chapter tie.or.space.prefix
  15.802 +     "chapter" bibinfo.check
  15.803 +     * *
  15.804 +   }
  15.805 + if$
  15.806 +}
  15.807 +
  15.808 +FUNCTION {format.booktitle}
  15.809 +{
  15.810 + booktitle "booktitle" bibinfo.check
  15.811 +}
  15.812 +FUNCTION {format.in.ed.booktitle}
  15.813 +{ format.booktitle duplicate$ empty$ 'skip$
  15.814 +   {
  15.815 +     editor "editor" format.names.ed duplicate$ empty$ 'pop$
  15.816 +       {
  15.817 +         " " *
  15.818 +         get.bbl.editor
  15.819 +         capitalize
  15.820 +         "(" swap$ * "), " *
  15.821 +         * swap$
  15.822 +         * }
  15.823 +     if$
  15.824 +     word.in swap$ *
  15.825 +   }
  15.826 + if$
  15.827 +}
  15.828 +FUNCTION {format.thesis.type}
  15.829 +{ type duplicate$ empty$
  15.830 +   'pop$
  15.831 +   { swap$ pop$
  15.832 +     "t" change.case$ "type" bibinfo.check
  15.833 +   }
  15.834 + if$
  15.835 +}
  15.836 +FUNCTION {format.tr.number}
  15.837 +{ number "number" bibinfo.check
  15.838 + type duplicate$ empty$
  15.839 +   { pop$ bbl.techrep }
  15.840 +   'skip$
  15.841 + if$
  15.842 + "type" bibinfo.check
  15.843 + swap$ duplicate$ empty$
  15.844 +   { pop$ "t" change.case$ }
  15.845 +   { tie.or.space.prefix * * }
  15.846 + if$
  15.847 +}
  15.848 +FUNCTION {format.article.crossref}
  15.849 +{
  15.850 + word.in
  15.851 + " \cite{" * crossref * "}" *
  15.852 +}
  15.853 +FUNCTION {format.book.crossref}
  15.854 +{ volume duplicate$ empty$
  15.855 +   { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  15.856 +     pop$ word.in
  15.857 +   }
  15.858 +   { bbl.volume
  15.859 +     swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
  15.860 +   }
  15.861 + if$
  15.862 + " \cite{" * crossref * "}" *
  15.863 +}
  15.864 +FUNCTION {format.incoll.inproc.crossref}
  15.865 +{
  15.866 + word.in
  15.867 + " \cite{" * crossref * "}" *
  15.868 +}
  15.869 +FUNCTION {format.org.or.pub}
  15.870 +{ 't :=
  15.871 + ""
  15.872 + address empty$ t empty$ and
  15.873 +   'skip$
  15.874 +   {
  15.875 +     t empty$
  15.876 +       { address "address" bibinfo.check *
  15.877 +       }
  15.878 +       { t *
  15.879 +         address empty$
  15.880 +           'skip$
  15.881 +           { ", " * address "address" bibinfo.check * }
  15.882 +         if$
  15.883 +       }
  15.884 +     if$
  15.885 +   }
  15.886 + if$
  15.887 +}
  15.888 +FUNCTION {format.publisher.address}
  15.889 +{ publisher "publisher" bibinfo.warn format.org.or.pub
  15.890 +}
  15.891 +
  15.892 +FUNCTION {format.organization.address}
  15.893 +{ organization "organization" bibinfo.check format.org.or.pub
  15.894 +}
  15.895 +
  15.896 +FUNCTION {article}
  15.897 +{ output.bibitem
  15.898 + format.authors "author" output.check
  15.899 + author format.key output
  15.900 + format.title "title" output.check
  15.901 + crossref missing$
  15.902 +   {
  15.903 +     journal
  15.904 +     "journal" bibinfo.check
  15.905 +     "journal" output.check
  15.906 +     add.blank
  15.907 +     format.vol.num.pages output
  15.908 +   }
  15.909 +   { format.article.crossref output.nonnull
  15.910 +   }
  15.911 + if$
  15.912 + eid empty$
  15.913 +   { format.journal.pages }
  15.914 +   { format.journal.eid }
  15.915 + if$
  15.916 + format.issn output
  15.917 + format.doi output
  15.918 + format.url output
  15.919 + format.note output
  15.920 + fin.entry
  15.921 +}
  15.922 +FUNCTION {book}
  15.923 +{ output.bibitem
  15.924 + author empty$
  15.925 +   { format.editors "author and editor" output.check
  15.926 +     editor format.key output
  15.927 +   }
  15.928 +   { format.authors output.nonnull
  15.929 +     crossref missing$
  15.930 +       { "author and editor" editor either.or.check }
  15.931 +       'skip$
  15.932 +     if$
  15.933 +   }
  15.934 + if$
  15.935 + format.btitle "title" output.check
  15.936 + crossref missing$
  15.937 +   { format.bvolume output
  15.938 +     format.number.series output
  15.939 +     format.publisher.address output
  15.940 +   }
  15.941 +   {
  15.942 +     format.book.crossref output.nonnull
  15.943 +   }
  15.944 + if$
  15.945 + format.edition output
  15.946 + format.isbn output
  15.947 + format.doi output
  15.948 + format.url output
  15.949 + format.note output
  15.950 + format.date "year" output.check
  15.951 + fin.entry
  15.952 +}
  15.953 +FUNCTION {booklet}
  15.954 +{ output.bibitem
  15.955 + format.authors output
  15.956 + author format.key output
  15.957 + format.title "title" output.check
  15.958 + howpublished "howpublished" bibinfo.check output
  15.959 + address "address" bibinfo.check output
  15.960 + format.isbn output
  15.961 + format.doi output
  15.962 + format.url output
  15.963 + format.note output
  15.964 + format.date "year" output.check
  15.965 + fin.entry
  15.966 +}
  15.967 +
  15.968 +FUNCTION {inbook}
  15.969 +{ output.bibitem
  15.970 + author empty$
  15.971 +   { format.editors "author and editor" output.check
  15.972 +     editor format.key output
  15.973 +   }
  15.974 +   { format.authors output.nonnull
  15.975 +     crossref missing$
  15.976 +       { "author and editor" editor either.or.check }
  15.977 +       'skip$
  15.978 +     if$
  15.979 +   }
  15.980 + if$
  15.981 + format.btitle "title" output.check
  15.982 + crossref missing$
  15.983 +   {
  15.984 +     format.bvolume output
  15.985 +     format.chapter.pages "chapter and pages" output.check
  15.986 +     format.number.series output
  15.987 +     format.publisher.address output
  15.988 +   }
  15.989 +   {
  15.990 +     format.chapter.pages "chapter and pages" output.check
  15.991 +     format.book.crossref output.nonnull
  15.992 +   }
  15.993 + if$
  15.994 + format.edition output
  15.995 + crossref missing$
  15.996 +   { format.isbn output }
  15.997 +   'skip$
  15.998 + if$
  15.999 + format.pages "pages" output.check
 15.1000 + format.doi output
 15.1001 + format.url output
 15.1002 + format.note output
 15.1003 + format.date "year" output.check
 15.1004 + fin.entry
 15.1005 +}
 15.1006 +
 15.1007 +FUNCTION {incollection}
 15.1008 +{ output.bibitem
 15.1009 + format.authors "author" output.check
 15.1010 + author format.key output
 15.1011 + format.title "title" output.check
 15.1012 + crossref missing$
 15.1013 +   { format.in.ed.booktitle "booktitle" output.check
 15.1014 +     format.bvolume output
 15.1015 +     format.number.series output
 15.1016 +     format.chapter.pages output
 15.1017 +     format.publisher.address output
 15.1018 +     format.edition output
 15.1019 +     format.isbn output
 15.1020 +   }
 15.1021 +   { format.incoll.inproc.crossref output.nonnull
 15.1022 +     format.chapter.pages output
 15.1023 +   }
 15.1024 + if$
 15.1025 + format.pages "pages" output.check
 15.1026 + format.doi output
 15.1027 + format.url output
 15.1028 + format.note output
 15.1029 + format.date "year" output.check
 15.1030 + fin.entry
 15.1031 +}
 15.1032 +FUNCTION {inproceedings}
 15.1033 +{ output.bibitem
 15.1034 + format.authors "author" output.check
 15.1035 + author format.key output
 15.1036 + format.title "title" output.check
 15.1037 + crossref missing$
 15.1038 +   { format.in.ed.booktitle "booktitle" output.check
 15.1039 +     format.bvolume output
 15.1040 +     format.number.series output
 15.1041 +     publisher empty$
 15.1042 +       { format.organization.address output }
 15.1043 +       { organization "organization" bibinfo.check output
 15.1044 +         format.publisher.address output
 15.1045 +       }
 15.1046 +     if$
 15.1047 +     format.isbn output
 15.1048 +     format.issn output
 15.1049 +   }
 15.1050 +   { format.incoll.inproc.crossref output.nonnull
 15.1051 +   }
 15.1052 + if$
 15.1053 + format.pages "pages" output.check
 15.1054 + format.doi output
 15.1055 + format.url output
 15.1056 + format.note output
 15.1057 + format.date "year" output.check
 15.1058 + fin.entry
 15.1059 +}
 15.1060 +FUNCTION {conference} { inproceedings }
 15.1061 +FUNCTION {manual}
 15.1062 +{ output.bibitem
 15.1063 + format.authors output
 15.1064 + author format.key output
 15.1065 + format.btitle "title" output.check
 15.1066 + organization "organization" bibinfo.check output
 15.1067 + address "address" bibinfo.check output
 15.1068 + format.edition output
 15.1069 + format.doi output
 15.1070 + format.url output
 15.1071 + format.note output
 15.1072 + format.date "year" output.check
 15.1073 + fin.entry
 15.1074 +}
 15.1075 +
 15.1076 +FUNCTION {mastersthesis}
 15.1077 +{ output.bibitem
 15.1078 + format.authors "author" output.check
 15.1079 + author format.key output
 15.1080 + format.btitle
 15.1081 + "title" output.check
 15.1082 + bbl.mthesis format.thesis.type output.nonnull
 15.1083 + school "school" bibinfo.warn output
 15.1084 + address "address" bibinfo.check output
 15.1085 + format.doi output
 15.1086 + format.url output
 15.1087 + format.note output
 15.1088 + format.date "year" output.check
 15.1089 + fin.entry
 15.1090 +}
 15.1091 +
 15.1092 +FUNCTION {misc}
 15.1093 +{ output.bibitem
 15.1094 + format.authors output
 15.1095 + author format.key output
 15.1096 + format.title output
 15.1097 + howpublished "howpublished" bibinfo.check output
 15.1098 + format.doi output
 15.1099 + format.url output
 15.1100 + format.note output
 15.1101 + format.date "year" output.check
 15.1102 + fin.entry
 15.1103 +}
 15.1104 +FUNCTION {phdthesis}
 15.1105 +{ output.bibitem
 15.1106 + format.authors "author" output.check
 15.1107 + author format.key output
 15.1108 + format.btitle
 15.1109 + "title" output.check
 15.1110 + bbl.phdthesis format.thesis.type output.nonnull
 15.1111 + school "school" bibinfo.warn output
 15.1112 + address "address" bibinfo.check output
 15.1113 + format.doi output
 15.1114 + format.url output
 15.1115 + format.note output
 15.1116 + format.date "year" output.check
 15.1117 + fin.entry
 15.1118 +}
 15.1119 +
 15.1120 +FUNCTION {proceedings}
 15.1121 +{ output.bibitem
 15.1122 + format.editors output
 15.1123 + editor format.key output
 15.1124 + format.btitle "title" output.check
 15.1125 + format.bvolume output
 15.1126 + format.number.series output
 15.1127 + publisher empty$
 15.1128 +   { format.organization.address output }
 15.1129 +   { organization "organization" bibinfo.check output
 15.1130 +     format.publisher.address output
 15.1131 +   }
 15.1132 + if$
 15.1133 + format.isbn output
 15.1134 + format.issn output
 15.1135 + format.doi output
 15.1136 + format.url output
 15.1137 + format.note output
 15.1138 + format.date "year" output.check
 15.1139 + fin.entry
 15.1140 +}
 15.1141 +
 15.1142 +FUNCTION {techreport}
 15.1143 +{ output.bibitem
 15.1144 + format.authors "author" output.check
 15.1145 + author format.key output
 15.1146 + format.title
 15.1147 + "title" output.check
 15.1148 + format.tr.number output.nonnull
 15.1149 + institution "institution" bibinfo.warn output
 15.1150 + address "address" bibinfo.check output
 15.1151 + format.doi output
 15.1152 + format.url output
 15.1153 + format.note output
 15.1154 + format.date "year" output.check
 15.1155 + fin.entry
 15.1156 +}
 15.1157 +
 15.1158 +FUNCTION {unpublished}
 15.1159 +{ output.bibitem
 15.1160 + format.authors "author" output.check
 15.1161 + author format.key output
 15.1162 + format.title "title" output.check
 15.1163 + format.doi output
 15.1164 + format.url output
 15.1165 + format.note "note" output.check
 15.1166 + format.date output
 15.1167 + fin.entry
 15.1168 +}
 15.1169 +
 15.1170 +FUNCTION {default.type} { misc }
 15.1171 +READ
 15.1172 +FUNCTION {sortify}
 15.1173 +{ purify$
 15.1174 + "l" change.case$
 15.1175 +}
 15.1176 +INTEGERS { len }
 15.1177 +FUNCTION {chop.word}
 15.1178 +{ 's :=
 15.1179 + 'len :=
 15.1180 + s #1 len substring$ =
 15.1181 +   { s len #1 + global.max$ substring$ }
 15.1182 +   's
 15.1183 + if$
 15.1184 +}
 15.1185 +FUNCTION {format.lab.names}
 15.1186 +{ 's :=
 15.1187 + "" 't :=
 15.1188 + s #1 "{vv~}{ll}" format.name$
 15.1189 + s num.names$ duplicate$
 15.1190 + #2 >
 15.1191 +   { pop$
 15.1192 +     " " * bbl.etal *
 15.1193 +   }
 15.1194 +   { #2 <
 15.1195 +       'skip$
 15.1196 +       { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
 15.1197 +           {
 15.1198 +             " " * bbl.etal *
 15.1199 +           }
 15.1200 +           { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
 15.1201 +             * }
 15.1202 +         if$
 15.1203 +       }
 15.1204 +     if$
 15.1205 +   }
 15.1206 + if$
 15.1207 +}
 15.1208 +
 15.1209 +FUNCTION {author.key.label}
 15.1210 +{ author empty$
 15.1211 +   { key empty$
 15.1212 +       { cite$ #1 #3 substring$ }
 15.1213 +       'key
 15.1214 +     if$
 15.1215 +   }
 15.1216 +   { author format.lab.names }
 15.1217 + if$
 15.1218 +}
 15.1219 +
 15.1220 +FUNCTION {author.editor.key.label}
 15.1221 +{ author empty$
 15.1222 +   { editor empty$
 15.1223 +       { key empty$
 15.1224 +           { cite$ #1 #3 substring$ }
 15.1225 +           'key
 15.1226 +         if$
 15.1227 +       }
 15.1228 +       { editor format.lab.names }
 15.1229 +     if$
 15.1230 +   }
 15.1231 +   { author format.lab.names }
 15.1232 + if$
 15.1233 +}
 15.1234 +
 15.1235 +FUNCTION {editor.key.label}
 15.1236 +{ editor empty$
 15.1237 +   { key empty$
 15.1238 +       { cite$ #1 #3 substring$ }
 15.1239 +       'key
 15.1240 +     if$
 15.1241 +   }
 15.1242 +   { editor format.lab.names }
 15.1243 + if$
 15.1244 +}
 15.1245 +
 15.1246 +FUNCTION {calc.short.authors}
 15.1247 +{ type$ "book" =
 15.1248 + type$ "inbook" =
 15.1249 + or
 15.1250 +   'author.editor.key.label
 15.1251 +   { type$ "proceedings" =
 15.1252 +       'editor.key.label
 15.1253 +       'author.key.label
 15.1254 +     if$
 15.1255 +   }
 15.1256 + if$
 15.1257 + 'short.list :=
 15.1258 +}
 15.1259 +
 15.1260 +FUNCTION {calc.label}
 15.1261 +{ calc.short.authors
 15.1262 + short.list
 15.1263 + "("
 15.1264 + *
 15.1265 + year duplicate$ empty$
 15.1266 +    { pop$ "????" }
 15.1267 +    { purify$ #-1 #4 substring$ }
 15.1268 + if$
 15.1269 + *
 15.1270 + 'label :=
 15.1271 +}
 15.1272 +
 15.1273 +FUNCTION {sort.format.names}
 15.1274 +{ 's :=
 15.1275 + #1 'nameptr :=
 15.1276 + ""
 15.1277 + s num.names$ 'numnames :=
 15.1278 + numnames 'namesleft :=
 15.1279 +   { namesleft #0 > }
 15.1280 +   { s nameptr
 15.1281 +     "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
 15.1282 +     format.name$ 't :=
 15.1283 +     nameptr #1 >
 15.1284 +       {
 15.1285 +         "   "  *
 15.1286 +         namesleft #1 = t "others" = and
 15.1287 +           { "zzzzz" * }
 15.1288 +           { t sortify * }
 15.1289 +         if$
 15.1290 +       }
 15.1291 +       { t sortify * }
 15.1292 +     if$
 15.1293 +     nameptr #1 + 'nameptr :=
 15.1294 +     namesleft #1 - 'namesleft :=
 15.1295 +   }
 15.1296 + while$
 15.1297 +}
 15.1298 +
 15.1299 +FUNCTION {sort.format.title}
 15.1300 +{ 't :=
 15.1301 + "A " #2
 15.1302 +   "An " #3
 15.1303 +     "The " #4 t chop.word
 15.1304 +   chop.word
 15.1305 + chop.word
 15.1306 + sortify
 15.1307 + #1 global.max$ substring$
 15.1308 +}
 15.1309 +FUNCTION {author.sort}
 15.1310 +{ author empty$
 15.1311 +   { key empty$
 15.1312 +       { "to sort, need author or key in " cite$ * warning$
 15.1313 +         ""
 15.1314 +       }
 15.1315 +       { key sortify }
 15.1316 +     if$
 15.1317 +   }
 15.1318 +   { author sort.format.names }
 15.1319 + if$
 15.1320 +}
 15.1321 +FUNCTION {author.editor.sort}
 15.1322 +{ author empty$
 15.1323 +   { editor empty$
 15.1324 +       { key empty$
 15.1325 +           { "to sort, need author, editor, or key in " cite$ * warning$
 15.1326 +             ""
 15.1327 +           }
 15.1328 +           { key sortify }
 15.1329 +         if$
 15.1330 +       }
 15.1331 +       { editor sort.format.names }
 15.1332 +     if$
 15.1333 +   }
 15.1334 +   { author sort.format.names }
 15.1335 + if$
 15.1336 +}
 15.1337 +FUNCTION {editor.sort}
 15.1338 +{ editor empty$
 15.1339 +   { key empty$
 15.1340 +       { "to sort, need editor or key in " cite$ * warning$
 15.1341 +         ""
 15.1342 +       }
 15.1343 +       { key sortify }
 15.1344 +     if$
 15.1345 +   }
 15.1346 +   { editor sort.format.names }
 15.1347 + if$
 15.1348 +}
 15.1349 +INTEGERS { seq.num }
 15.1350 +FUNCTION {init.seq}
 15.1351 +{ #0 'seq.num :=}
 15.1352 +EXECUTE {init.seq}
 15.1353 +FUNCTION {int.to.fix}
 15.1354 +{ "000000000" swap$ int.to.str$ *
 15.1355 + #-1 #10 substring$
 15.1356 +}
 15.1357 +FUNCTION {presort}
 15.1358 +{ calc.label
 15.1359 + label sortify
 15.1360 + "    "
 15.1361 + *
 15.1362 + seq.num #1 + 'seq.num :=
 15.1363 + seq.num  int.to.fix
 15.1364 + 'sort.label :=
 15.1365 + sort.label
 15.1366 + *
 15.1367 + "    "
 15.1368 + *
 15.1369 + title field.or.null
 15.1370 + sort.format.title
 15.1371 + *
 15.1372 + #1 entry.max$ substring$
 15.1373 + 'sort.key$ :=
 15.1374 +}
 15.1375 +
 15.1376 +ITERATE {presort}
 15.1377 +SORT
 15.1378 +STRINGS { last.label next.extra }
 15.1379 +INTEGERS { last.extra.num number.label }
 15.1380 +FUNCTION {initialize.extra.label.stuff}
 15.1381 +{ #0 int.to.chr$ 'last.label :=
 15.1382 + "" 'next.extra :=
 15.1383 + #0 'last.extra.num :=
 15.1384 + #0 'number.label :=
 15.1385 +}
 15.1386 +FUNCTION {forward.pass}
 15.1387 +{ last.label label =
 15.1388 +   { last.extra.num #1 + 'last.extra.num :=
 15.1389 +     last.extra.num int.to.chr$ 'extra.label :=
 15.1390 +   }
 15.1391 +   { "a" chr.to.int$ 'last.extra.num :=
 15.1392 +     "" 'extra.label :=
 15.1393 +     label 'last.label :=
 15.1394 +   }
 15.1395 + if$
 15.1396 + number.label #1 + 'number.label :=
 15.1397 +}
 15.1398 +FUNCTION {reverse.pass}
 15.1399 +{ next.extra "b" =
 15.1400 +   { "a" 'extra.label := }
 15.1401 +   'skip$
 15.1402 + if$
 15.1403 + extra.label 'next.extra :=
 15.1404 + extra.label
 15.1405 + duplicate$ empty$
 15.1406 +   'skip$
 15.1407 +   { "{\natexlab{" swap$ * "}}" * }
 15.1408 + if$
 15.1409 + 'extra.label :=
 15.1410 + label extra.label * 'label :=
 15.1411 +}
 15.1412 +EXECUTE {initialize.extra.label.stuff}
 15.1413 +ITERATE {forward.pass}
 15.1414 +REVERSE {reverse.pass}
 15.1415 +FUNCTION {bib.sort.order}
 15.1416 +{ sort.label
 15.1417 + "    "
 15.1418 + *
 15.1419 + year field.or.null sortify
 15.1420 + *
 15.1421 + "    "
 15.1422 + *
 15.1423 + title field.or.null
 15.1424 + sort.format.title
 15.1425 + *
 15.1426 + #1 entry.max$ substring$
 15.1427 + 'sort.key$ :=
 15.1428 +}
 15.1429 +ITERATE {bib.sort.order}
 15.1430 +SORT
 15.1431 +FUNCTION {begin.bib}
 15.1432 +{ preamble$ empty$
 15.1433 +   'skip$
 15.1434 +   { preamble$ write$ newline$ }
 15.1435 + if$
 15.1436 + "\begin{thebibliography}{" number.label int.to.str$ * "}" *
 15.1437 + write$ newline$
 15.1438 + "\providecommand{\natexlab}[1]{#1}"
 15.1439 + write$ newline$
 15.1440 + "\providecommand{\url}[1]{\texttt{#1}}"
 15.1441 + write$ newline$
 15.1442 + "\providecommand{\urlprefix}{URL }"
 15.1443 + write$ newline$
 15.1444 + "\expandafter\ifx\csname urlstyle\endcsname\relax"
 15.1445 + write$ newline$
 15.1446 + "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
 15.1447 + write$ newline$
 15.1448 + "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\url{#1}\endgroup}\fi"
 15.1449 + write$ newline$
 15.1450 + "\providecommand{\bibinfo}[2]{#2}"
 15.1451 + write$ newline$
 15.1452 +}
 15.1453 +EXECUTE {begin.bib}
 15.1454 +EXECUTE {init.state.consts}
 15.1455 +ITERATE {call.type$}
 15.1456 +FUNCTION {end.bib}
 15.1457 +{ newline$
 15.1458 + "\end{thebibliography}" write$ newline$
 15.1459 +}
 15.1460 +EXECUTE {end.bib}
 15.1461 +%% End of customized bst file
 15.1462 +%%
 15.1463 +%%
 15.1464 +%% End of file `elsarticle-num-names.bst'.
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/elsarticle/elsarticle-num.bst	Fri Nov 18 16:18:02 2016 +0100
    16.3 @@ -0,0 +1,1517 @@
    16.4 +%% 
    16.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
    16.6 +%% 
    16.7 +%% This file is part of the 'Elsarticle Bundle'.
    16.8 +%% ---------------------------------------------
    16.9 +%% 
   16.10 +%% It may be distributed under the conditions of the LaTeX Project Public
   16.11 +%% License, either version 1.2 of this license or (at your option) any
   16.12 +%% later version.  The latest version of this license is in
   16.13 +%%    http://www.latex-project.org/lppl.txt
   16.14 +%% and version 1.2 or later is part of all distributions of LaTeX
   16.15 +%% version 1999/12/01 or later.
   16.16 +%% 
   16.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
   16.18 +%% given in the file `manifest.txt'.
   16.19 +%% 
   16.20 +%%% Modification of BibTeX style file elsarticle-num.bst
   16.21 +%%% ... by urlbst, version 0.6 (marked with "% urlbst")
   16.22 +%%% See <http://purl.org/nxg/dist/urlbst>
   16.23 +%%% Added webpage entry type, and url and lastchecked fields.
   16.24 +%%% Added eprint support.
   16.25 +%%% Added DOI support.
   16.26 +%%% Added hyperref support.
   16.27 +%%% Original headers follow...
   16.28 +
   16.29 +%%
   16.30 +%% This is file `elsarticle-num.bst',
   16.31 +%% generated with the docstrip utility.
   16.32 +%%
   16.33 +%% The original source files were:
   16.34 +%%
   16.35 +%% merlin.mbs  (with options: `,seq-no,nm-init,ed-au,dt-end,yr-par,yrp-x,jttl-rm,thtit-a,vnum-sp,volp-blk,jdt-p,pp-last,jnm-x,btit-rm,bt-rm,pub-date,pub-xpar,pre-edn,url,url-nl,edpar,blk-com,in-col,pp,ed,abr,ednx,ord,jabr,and-xcom,xand,em-x,nfss')
   16.36 +%% After docstrip generation some manual changes were made (SP)
   16.37 +
   16.38 +%% ----------------------------------------
   16.39 +
   16.40 +ENTRY
   16.41 +  { address
   16.42 +    author
   16.43 +    booktitle
   16.44 +    chapter
   16.45 +    edition
   16.46 +    editor
   16.47 +    howpublished
   16.48 +    institution
   16.49 +    journal
   16.50 +    key
   16.51 +    month
   16.52 +    note
   16.53 +    number
   16.54 +    organization
   16.55 +    pages
   16.56 +    publisher
   16.57 +    school
   16.58 +    series
   16.59 +    title
   16.60 +    type
   16.61 +    volume
   16.62 +    year
   16.63 +    eprint % urlbst
   16.64 +    doi % urlbst
   16.65 +    url % urlbst
   16.66 +    lastchecked % urlbst
   16.67 +  }
   16.68 +  {}
   16.69 +  { label }
   16.70 +
   16.71 +INTEGERS { output.state before.all mid.sentence after.sentence after.block }
   16.72 +
   16.73 +STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl openinlinelink closeinlinelink } % urlbst...
   16.74 +INTEGERS { hrefform inlinelinks makeinlinelink addeprints adddoiresolver }
   16.75 +FUNCTION {init.urlbst.variables}
   16.76 +{
   16.77 +  "Available from: " 'urlintro := % prefix before URL
   16.78 +  "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
   16.79 +  "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
   16.80 +  "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
   16.81 +  "doi:" 'doiprefix :=      % text prefix printed before DOI ref
   16.82 +  #1 'addeprints :=         % 0=no eprints; 1=include eprints
   16.83 +  #1 'adddoiresolver :=     % 0=no DOI resolver; 1=include it
   16.84 +  #2 'hrefform :=           % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs
   16.85 +  #1 'inlinelinks :=        % 0=URLs explicit; 1=URLs attached to titles
   16.86 +  % the following are internal state variables, not config constants
   16.87 +  #0 'makeinlinelink :=     % state variable managed by setup.inlinelink
   16.88 +  "" 'openinlinelink :=     % ditto
   16.89 +  "" 'closeinlinelink :=    % ditto
   16.90 +}
   16.91 +INTEGERS {
   16.92 +  bracket.state
   16.93 +  outside.brackets
   16.94 +  open.brackets
   16.95 +  within.brackets
   16.96 +  close.brackets
   16.97 +}
   16.98 +FUNCTION {init.state.consts}
   16.99 +{ #0 'outside.brackets := % urlbst
  16.100 +  #1 'open.brackets :=
  16.101 +  #2 'within.brackets :=
  16.102 +  #3 'close.brackets :=
  16.103 +
  16.104 +  #0 'before.all :=
  16.105 +  #1 'mid.sentence :=
  16.106 +  #2 'after.sentence :=
  16.107 +  #3 'after.block :=
  16.108 +}
  16.109 +
  16.110 +STRINGS { s t }
  16.111 +
  16.112 +FUNCTION {output.nonnull.original}
  16.113 +{ 's :=
  16.114 +  output.state mid.sentence =
  16.115 +    { ", " * write$ }
  16.116 +    { output.state after.block =
  16.117 +        { add.period$ write$
  16.118 +          newline$
  16.119 +          "\newblock " write$
  16.120 +        }
  16.121 +        { output.state before.all =
  16.122 +            'write$
  16.123 +            { add.period$ " " * write$ }
  16.124 +          if$
  16.125 +        }
  16.126 +      if$
  16.127 +      mid.sentence 'output.state :=
  16.128 +    }
  16.129 +  if$
  16.130 +  s
  16.131 +}
  16.132 +
  16.133 +FUNCTION {setup.inlinelink}
  16.134 +{ makeinlinelink
  16.135 +    { hrefform #1 = % hypertex
  16.136 +        { "\special {html:<a href=" quote$ * url * quote$ * "> }{" * 'openinlinelink :=
  16.137 +          "\special {html:</a>}" 'closeinlinelink :=
  16.138 +          }
  16.139 +        { hrefform #2 = % hyperref
  16.140 +            { "\href{" url * "}{" * 'openinlinelink :=
  16.141 +              "}" 'closeinlinelink :=
  16.142 +              }
  16.143 +            'skip$
  16.144 +          if$ % hrefform #2 =
  16.145 +        }
  16.146 +      if$ % hrefform #1 =
  16.147 +      #0 'makeinlinelink :=
  16.148 +    }
  16.149 +    'skip$
  16.150 + if$ % makeinlinelink
  16.151 +}
  16.152 +FUNCTION {add.inlinelink}
  16.153 +{ openinlinelink empty$
  16.154 +    'skip$
  16.155 +    { openinlinelink swap$ * closeinlinelink *
  16.156 +      "" 'openinlinelink :=
  16.157 +      }
  16.158 +  if$
  16.159 +}
  16.160 +FUNCTION {output.nonnull}
  16.161 +{ % Save the thing we've been asked to output
  16.162 +  's :=
  16.163 +  % If the bracket-state is close.brackets, then add a close-bracket to
  16.164 +  % what is currently at the top of the stack, and set bracket.state
  16.165 +  % to outside.brackets
  16.166 +  bracket.state close.brackets =
  16.167 +    { "]" *
  16.168 +      outside.brackets 'bracket.state :=
  16.169 +    }
  16.170 +    'skip$
  16.171 +  if$
  16.172 +  bracket.state outside.brackets =
  16.173 +    { % We're outside all brackets -- this is the normal situation.
  16.174 +      % Write out what's currently at the top of the stack, using the
  16.175 +      % original output.nonnull function.
  16.176 +      s
  16.177 +      add.inlinelink
  16.178 +      output.nonnull.original % invoke the original output.nonnull
  16.179 +    }
  16.180 +    { % Still in brackets.  Add open-bracket or (continuation) comma, add the
  16.181 +      % new text (in s) to the top of the stack, and move to the close-brackets
  16.182 +      % state, ready for next time (unless inbrackets resets it).  If we come
  16.183 +      % into this branch, then output.state is carefully undisturbed.
  16.184 +      bracket.state open.brackets =
  16.185 +        { " [" * }
  16.186 +        { ", " * } % bracket.state will be within.brackets
  16.187 +      if$
  16.188 +      s *
  16.189 +      close.brackets 'bracket.state :=
  16.190 +    }
  16.191 +  if$
  16.192 +}
  16.193 +
  16.194 +FUNCTION {inbrackets}
  16.195 +{ bracket.state close.brackets =
  16.196 +    { within.brackets 'bracket.state := } % reset the state: not open nor closed
  16.197 +    { open.brackets 'bracket.state := }
  16.198 +  if$
  16.199 +}
  16.200 +
  16.201 +FUNCTION {format.lastchecked}
  16.202 +{ lastchecked empty$
  16.203 +    { "" }
  16.204 +    { inbrackets "cited " lastchecked * }
  16.205 +  if$
  16.206 +}
  16.207 +
  16.208 +FUNCTION {output}
  16.209 +{ duplicate$ empty$
  16.210 +    'pop$
  16.211 +    'output.nonnull
  16.212 +  if$
  16.213 +}
  16.214 +
  16.215 +FUNCTION {output.check}
  16.216 +{ 't :=
  16.217 +  duplicate$ empty$
  16.218 +    { pop$ "empty " t * " in " * cite$ * warning$ }
  16.219 +    'output.nonnull
  16.220 +  if$
  16.221 +}
  16.222 +
  16.223 +FUNCTION {fin.entry.original}
  16.224 +{ add.period$
  16.225 +  write$
  16.226 +  newline$
  16.227 +}
  16.228 +
  16.229 +FUNCTION {new.block}
  16.230 +{ output.state before.all =
  16.231 +    'skip$
  16.232 +    { after.block 'output.state := }
  16.233 +  if$
  16.234 +}
  16.235 +
  16.236 +FUNCTION {new.sentence}
  16.237 +{ output.state after.block =
  16.238 +    'skip$
  16.239 +    { output.state before.all =
  16.240 +        'skip$
  16.241 +        { after.sentence 'output.state := }
  16.242 +      if$
  16.243 +    }
  16.244 +  if$
  16.245 +}
  16.246 +
  16.247 +FUNCTION {add.blank}
  16.248 +{  " " * before.all 'output.state :=
  16.249 +}
  16.250 +
  16.251 +FUNCTION {date.block}
  16.252 +{
  16.253 +  add.blank
  16.254 +}
  16.255 +
  16.256 +FUNCTION {not}
  16.257 +{   { #0 }
  16.258 +    { #1 }
  16.259 +  if$
  16.260 +}
  16.261 +
  16.262 +FUNCTION {and}
  16.263 +{   'skip$
  16.264 +    { pop$ #0 }
  16.265 +  if$
  16.266 +}
  16.267 +
  16.268 +FUNCTION {or}
  16.269 +{   { pop$ #1 }
  16.270 +    'skip$
  16.271 +  if$
  16.272 +}
  16.273 +
  16.274 +FUNCTION {new.block.checka}
  16.275 +{ empty$
  16.276 +    'skip$
  16.277 +    'new.block
  16.278 +  if$
  16.279 +}
  16.280 +
  16.281 +FUNCTION {new.block.checkb}
  16.282 +{ empty$
  16.283 +  swap$ empty$
  16.284 +  and
  16.285 +    'skip$
  16.286 +    'new.block
  16.287 +  if$
  16.288 +}
  16.289 +
  16.290 +FUNCTION {new.sentence.checka}
  16.291 +{ empty$
  16.292 +    'skip$
  16.293 +    'new.sentence
  16.294 +  if$
  16.295 +}
  16.296 +
  16.297 +FUNCTION {new.sentence.checkb}
  16.298 +{ empty$
  16.299 +  swap$ empty$
  16.300 +  and
  16.301 +    'skip$
  16.302 +    'new.sentence
  16.303 +  if$
  16.304 +}
  16.305 +
  16.306 +FUNCTION {field.or.null}
  16.307 +{ duplicate$ empty$
  16.308 +    { pop$ "" }
  16.309 +    'skip$
  16.310 +  if$
  16.311 +}
  16.312 +
  16.313 +FUNCTION {emphasize}
  16.314 +{ skip$ }
  16.315 +
  16.316 +FUNCTION {capitalize}
  16.317 +{ "u" change.case$ "t" change.case$ }
  16.318 +
  16.319 +FUNCTION {space.word}
  16.320 +{ " " swap$ * " " * }
  16.321 +
  16.322 + % Here are the language-specific definitions for explicit words.
  16.323 + % Each function has a name bbl.xxx where xxx is the English word.
  16.324 + % The language selected here is ENGLISH
  16.325 +FUNCTION {bbl.and}
  16.326 +{ "and"}
  16.327 +
  16.328 +FUNCTION {bbl.etal}
  16.329 +{ "et~al." }
  16.330 +
  16.331 +FUNCTION {bbl.editors}
  16.332 +{ "Eds." }
  16.333 +
  16.334 +FUNCTION {bbl.editor}
  16.335 +{ "Ed." }
  16.336 +
  16.337 +FUNCTION {bbl.edby}
  16.338 +{ "edited by" }
  16.339 +
  16.340 +FUNCTION {bbl.edition}
  16.341 +{ "Edition" }
  16.342 +
  16.343 +FUNCTION {bbl.volume}
  16.344 +{ "Vol." }
  16.345 +
  16.346 +FUNCTION {bbl.of}
  16.347 +{ "of" }
  16.348 +
  16.349 +FUNCTION {bbl.number}
  16.350 +{ "no." }
  16.351 +
  16.352 +FUNCTION {bbl.nr}
  16.353 +{ "no." }
  16.354 +
  16.355 +FUNCTION {bbl.in}
  16.356 +{ "in" }
  16.357 +
  16.358 +FUNCTION {bbl.pages}
  16.359 +{ "pp." }
  16.360 +
  16.361 +FUNCTION {bbl.page}
  16.362 +{ "p." }
  16.363 +
  16.364 +FUNCTION {bbl.chapter}
  16.365 +{ "Ch." }
  16.366 +
  16.367 +FUNCTION {bbl.techrep}
  16.368 +{ "Tech. Rep." }
  16.369 +
  16.370 +FUNCTION {bbl.mthesis}
  16.371 +{ "Master's thesis" }
  16.372 +
  16.373 +FUNCTION {bbl.phdthesis}
  16.374 +{ "Ph.D. thesis" }
  16.375 +
  16.376 +FUNCTION {bbl.first}
  16.377 +{ "1st" }
  16.378 +
  16.379 +FUNCTION {bbl.second}
  16.380 +{ "2nd" }
  16.381 +
  16.382 +FUNCTION {bbl.third}
  16.383 +{ "3rd" }
  16.384 +
  16.385 +FUNCTION {bbl.fourth}
  16.386 +{ "4th" }
  16.387 +
  16.388 +FUNCTION {bbl.fifth}
  16.389 +{ "5th" }
  16.390 +
  16.391 +FUNCTION {bbl.st}
  16.392 +{ "st" }
  16.393 +
  16.394 +FUNCTION {bbl.nd}
  16.395 +{ "nd" }
  16.396 +
  16.397 +FUNCTION {bbl.rd}
  16.398 +{ "rd" }
  16.399 +
  16.400 +FUNCTION {bbl.th}
  16.401 +{ "th" }
  16.402 +
  16.403 +MACRO {jan} {"Jan."}
  16.404 +
  16.405 +MACRO {feb} {"Feb."}
  16.406 +
  16.407 +MACRO {mar} {"Mar."}
  16.408 +
  16.409 +MACRO {apr} {"Apr."}
  16.410 +
  16.411 +MACRO {may} {"May"}
  16.412 +
  16.413 +MACRO {jun} {"Jun."}
  16.414 +
  16.415 +MACRO {jul} {"Jul."}
  16.416 +
  16.417 +MACRO {aug} {"Aug."}
  16.418 +
  16.419 +MACRO {sep} {"Sep."}
  16.420 +
  16.421 +MACRO {oct} {"Oct."}
  16.422 +
  16.423 +MACRO {nov} {"Nov."}
  16.424 +
  16.425 +MACRO {dec} {"Dec."}
  16.426 +
  16.427 +FUNCTION {eng.ord}
  16.428 +{ duplicate$ "1" swap$ *
  16.429 +  #-2 #1 substring$ "1" =
  16.430 +     { bbl.th * }
  16.431 +     { duplicate$ #-1 #1 substring$
  16.432 +       duplicate$ "1" =
  16.433 +         { pop$ bbl.st * }
  16.434 +         { duplicate$ "2" =
  16.435 +             { pop$ bbl.nd * }
  16.436 +             { "3" =
  16.437 +                 { bbl.rd * }
  16.438 +                 { bbl.th * }
  16.439 +               if$
  16.440 +             }
  16.441 +           if$
  16.442 +          }
  16.443 +       if$
  16.444 +     }
  16.445 +   if$
  16.446 +}
  16.447 +
  16.448 +MACRO {acmcs} {"ACM Comput. Surv."}
  16.449 +
  16.450 +MACRO {acta} {"Acta Inf."}
  16.451 +
  16.452 +MACRO {cacm} {"Commun. ACM"}
  16.453 +
  16.454 +MACRO {ibmjrd} {"IBM J. Res. Dev."}
  16.455 +
  16.456 +MACRO {ibmsj} {"IBM Syst.~J."}
  16.457 +
  16.458 +MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  16.459 +
  16.460 +MACRO {ieeetc} {"IEEE Trans. Comput."}
  16.461 +
  16.462 +MACRO {ieeetcad}
  16.463 + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  16.464 +
  16.465 +MACRO {ipl} {"Inf. Process. Lett."}
  16.466 +
  16.467 +MACRO {jacm} {"J.~ACM"}
  16.468 +
  16.469 +MACRO {jcss} {"J.~Comput. Syst. Sci."}
  16.470 +
  16.471 +MACRO {scp} {"Sci. Comput. Programming"}
  16.472 +
  16.473 +MACRO {sicomp} {"SIAM J. Comput."}
  16.474 +
  16.475 +MACRO {tocs} {"ACM Trans. Comput. Syst."}
  16.476 +
  16.477 +MACRO {tods} {"ACM Trans. Database Syst."}
  16.478 +
  16.479 +MACRO {tog} {"ACM Trans. Gr."}
  16.480 +
  16.481 +MACRO {toms} {"ACM Trans. Math. Softw."}
  16.482 +
  16.483 +MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  16.484 +
  16.485 +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  16.486 +
  16.487 +MACRO {tcs} {"Theoretical Comput. Sci."}
  16.488 +
  16.489 +FUNCTION {write.url}
  16.490 +{ url empty$
  16.491 +    { skip$ }
  16.492 +    { "\newline\urlprefix\url{" url * "}" * write$ newline$ }
  16.493 +  if$
  16.494 +}
  16.495 +
  16.496 +INTEGERS { nameptr namesleft numnames }
  16.497 +
  16.498 +FUNCTION {format.names}
  16.499 +{ 's :=
  16.500 +  #1 'nameptr :=
  16.501 +  s num.names$ 'numnames :=
  16.502 +  numnames 'namesleft :=
  16.503 +    { namesleft #0 > }
  16.504 +    { s nameptr
  16.505 +      "{f.~}{vv~}{ll}{, jj}" format.name$
  16.506 +    't :=
  16.507 +      nameptr #1 >
  16.508 +        {
  16.509 +          namesleft #1 >
  16.510 +            { ", " * t * }
  16.511 +            {
  16.512 +              "," *
  16.513 +              s nameptr "{ll}" format.name$ duplicate$ "others" =
  16.514 +                { 't := }
  16.515 +                { pop$ }
  16.516 +              if$
  16.517 +              t "others" =
  16.518 +                {
  16.519 +                  " " * bbl.etal *
  16.520 +                }
  16.521 +                { " " * t * }
  16.522 +              if$
  16.523 +            }
  16.524 +          if$
  16.525 +        }
  16.526 +        't
  16.527 +      if$
  16.528 +      nameptr #1 + 'nameptr :=
  16.529 +      namesleft #1 - 'namesleft :=
  16.530 +    }
  16.531 +  while$
  16.532 +}
  16.533 +FUNCTION {format.names.ed}
  16.534 +{ format.names }
  16.535 +FUNCTION {format.authors}
  16.536 +{ author empty$
  16.537 +    { "" }
  16.538 +    { author format.names }
  16.539 +  if$
  16.540 +}
  16.541 +
  16.542 +FUNCTION {format.editors}
  16.543 +{ editor empty$
  16.544 +    { "" }
  16.545 +    { editor format.names
  16.546 +      editor num.names$ #1 >
  16.547 +        { " (" * bbl.editors * ")" * }
  16.548 +        { " (" * bbl.editor * ")" * }
  16.549 +      if$
  16.550 +    }
  16.551 +  if$
  16.552 +}
  16.553 +
  16.554 +FUNCTION {format.in.editors}
  16.555 +{ editor empty$
  16.556 +    { "" }
  16.557 +    { editor format.names.ed
  16.558 +      editor num.names$ #1 >
  16.559 +        { " (" * bbl.editors * ")" * }
  16.560 +        { " (" * bbl.editor * ")" * }
  16.561 +      if$
  16.562 +    }
  16.563 +  if$
  16.564 +}
  16.565 +
  16.566 +FUNCTION {format.note}
  16.567 +{
  16.568 + note empty$
  16.569 +    { "" }
  16.570 +    { note #1 #1 substring$
  16.571 +      duplicate$ "{" =
  16.572 +        'skip$
  16.573 +        { output.state mid.sentence =
  16.574 +          { "l" }
  16.575 +          { "u" }
  16.576 +        if$
  16.577 +        change.case$
  16.578 +        }
  16.579 +      if$
  16.580 +      note #2 global.max$ substring$ *
  16.581 +    }
  16.582 +  if$
  16.583 +}
  16.584 +
  16.585 +FUNCTION {format.title}
  16.586 +{ title empty$
  16.587 +    { "" }
  16.588 +    { title "t" change.case$
  16.589 +    }
  16.590 +  if$
  16.591 +}
  16.592 +
  16.593 +FUNCTION {output.bibitem.original}
  16.594 +{ newline$
  16.595 +  "\bibitem{" write$
  16.596 +  cite$ write$
  16.597 +  "}" write$
  16.598 +  newline$
  16.599 +  ""
  16.600 +  before.all 'output.state :=
  16.601 +}
  16.602 +
  16.603 +FUNCTION {n.dashify}
  16.604 +{
  16.605 +  't :=
  16.606 +  ""
  16.607 +    { t empty$ not }
  16.608 +    { t #1 #1 substring$ "-" =
  16.609 +        { t #1 #2 substring$ "--" = not
  16.610 +            { "--" *
  16.611 +              t #2 global.max$ substring$ 't :=
  16.612 +            }
  16.613 +            {   { t #1 #1 substring$ "-" = }
  16.614 +                { "-" *
  16.615 +                  t #2 global.max$ substring$ 't :=
  16.616 +                }
  16.617 +              while$
  16.618 +            }
  16.619 +          if$
  16.620 +        }
  16.621 +        { t #1 #1 substring$ *
  16.622 +          t #2 global.max$ substring$ 't :=
  16.623 +        }
  16.624 +      if$
  16.625 +    }
  16.626 +  while$
  16.627 +}
  16.628 +
  16.629 +FUNCTION {word.in}
  16.630 +{ bbl.in
  16.631 +  ":" *
  16.632 +  " " * }
  16.633 +
  16.634 +FUNCTION {format.date}
  16.635 +{ year empty$
  16.636 +    { month empty$
  16.637 +        { "" }
  16.638 +        { "there's a month but no year in " cite$ * warning$
  16.639 +          month
  16.640 +        }
  16.641 +      if$
  16.642 +    }
  16.643 +    { month empty$
  16.644 +        'year
  16.645 +        { month " " * year * }
  16.646 +      if$
  16.647 +    }
  16.648 +  if$
  16.649 +  duplicate$ empty$
  16.650 +    'skip$
  16.651 +    {
  16.652 +      before.all 'output.state :=
  16.653 +    " (" swap$ * ")" *
  16.654 +    }
  16.655 +  if$
  16.656 +}
  16.657 +
  16.658 +FUNCTION{format.year}
  16.659 +{ year duplicate$ empty$
  16.660 +    { "empty year in " cite$ * warning$ pop$ "" }
  16.661 +    { "(" swap$ * ")" * }
  16.662 +  if$
  16.663 +}
  16.664 +
  16.665 +FUNCTION {format.btitle}
  16.666 +{ title
  16.667 +}
  16.668 +
  16.669 +FUNCTION {tie.or.space.connect}
  16.670 +{ duplicate$ text.length$ #3 <
  16.671 +    { "~" }
  16.672 +    { " " }
  16.673 +  if$
  16.674 +  swap$ * *
  16.675 +}
  16.676 +
  16.677 +FUNCTION {either.or.check}
  16.678 +{ empty$
  16.679 +    'pop$
  16.680 +    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  16.681 +  if$
  16.682 +}
  16.683 +
  16.684 +FUNCTION {format.bvolume}
  16.685 +{ volume empty$
  16.686 +    { "" }
  16.687 +    { bbl.volume volume tie.or.space.connect
  16.688 +      series empty$
  16.689 +        'skip$
  16.690 +        { bbl.of space.word * series emphasize * }
  16.691 +      if$
  16.692 +      "volume and number" number either.or.check
  16.693 +    }
  16.694 +  if$
  16.695 +}
  16.696 +
  16.697 +FUNCTION {format.number.series}
  16.698 +{ volume empty$
  16.699 +    { number empty$
  16.700 +        { series field.or.null }
  16.701 +        { output.state mid.sentence =
  16.702 +            { bbl.number }
  16.703 +            { bbl.number capitalize }
  16.704 +          if$
  16.705 +          number tie.or.space.connect
  16.706 +          series empty$
  16.707 +            { "there's a number but no series in " cite$ * warning$ }
  16.708 +            { bbl.in space.word * series * }
  16.709 +          if$
  16.710 +        }
  16.711 +      if$
  16.712 +    }
  16.713 +    { "" }
  16.714 +  if$
  16.715 +}
  16.716 +
  16.717 +FUNCTION {is.num}
  16.718 +{ chr.to.int$
  16.719 +  duplicate$ "0" chr.to.int$ < not
  16.720 +  swap$ "9" chr.to.int$ > not and
  16.721 +}
  16.722 +
  16.723 +FUNCTION {extract.num}
  16.724 +{ duplicate$ 't :=
  16.725 +  "" 's :=
  16.726 +  { t empty$ not }
  16.727 +  { t #1 #1 substring$
  16.728 +    t #2 global.max$ substring$ 't :=
  16.729 +    duplicate$ is.num
  16.730 +      { s swap$ * 's := }
  16.731 +      { pop$ "" 't := }
  16.732 +    if$
  16.733 +  }
  16.734 +  while$
  16.735 +  s empty$
  16.736 +    'skip$
  16.737 +    { pop$ s }
  16.738 +  if$
  16.739 +}
  16.740 +
  16.741 +FUNCTION {convert.edition}
  16.742 +{ edition extract.num "l" change.case$ 's :=
  16.743 +  s "first" = s "1" = or
  16.744 +    { bbl.first 't := }
  16.745 +    { s "second" = s "2" = or
  16.746 +        { bbl.second 't := }
  16.747 +        { s "third" = s "3" = or
  16.748 +            { bbl.third 't := }
  16.749 +            { s "fourth" = s "4" = or
  16.750 +                { bbl.fourth 't := }
  16.751 +                { s "fifth" = s "5" = or
  16.752 +                    { bbl.fifth 't := }
  16.753 +                    { s #1 #1 substring$ is.num
  16.754 +                        { s eng.ord 't := }
  16.755 +                        { edition 't := }
  16.756 +                      if$
  16.757 +                    }
  16.758 +                  if$
  16.759 +                }
  16.760 +              if$
  16.761 +            }
  16.762 +          if$
  16.763 +        }
  16.764 +      if$
  16.765 +    }
  16.766 +  if$
  16.767 +  t
  16.768 +}
  16.769 +
  16.770 +FUNCTION {format.edition}
  16.771 +{ edition empty$
  16.772 +    { "" }
  16.773 +    { output.state mid.sentence =
  16.774 +        { convert.edition "l" change.case$ " " * bbl.edition * }
  16.775 +        { convert.edition "t" change.case$ " " * bbl.edition * }
  16.776 +      if$
  16.777 +    }
  16.778 +  if$
  16.779 +}
  16.780 +
  16.781 +INTEGERS { multiresult }
  16.782 +
  16.783 +FUNCTION {multi.page.check}
  16.784 +{ 't :=
  16.785 +  #0 'multiresult :=
  16.786 +    { multiresult not
  16.787 +      t empty$ not
  16.788 +      and
  16.789 +    }
  16.790 +    { t #1 #1 substring$
  16.791 +      duplicate$ "-" =
  16.792 +      swap$ duplicate$ "," =
  16.793 +      swap$ "+" =
  16.794 +      or or
  16.795 +        { #1 'multiresult := }
  16.796 +        { t #2 global.max$ substring$ 't := }
  16.797 +      if$
  16.798 +    }
  16.799 +  while$
  16.800 +  multiresult
  16.801 +}
  16.802 +
  16.803 +FUNCTION {format.pages}
  16.804 +{ pages empty$
  16.805 +    { "" }
  16.806 +    { pages multi.page.check
  16.807 +        { bbl.pages pages n.dashify tie.or.space.connect }
  16.808 +        { bbl.page pages tie.or.space.connect }
  16.809 +      if$
  16.810 +    }
  16.811 +  if$
  16.812 +}
  16.813 +
  16.814 +FUNCTION {format.journal.pages}
  16.815 +{ pages empty$
  16.816 +    'skip$
  16.817 +    { duplicate$ empty$
  16.818 +        { pop$ format.pages }
  16.819 +        {
  16.820 +          " " *
  16.821 +          format.year * " " *
  16.822 +          pages n.dashify *
  16.823 +        }
  16.824 +      if$
  16.825 +    }
  16.826 +  if$
  16.827 +}
  16.828 +
  16.829 +FUNCTION {format.vol.num.pages}
  16.830 +{
  16.831 +  % volume field.or.null
  16.832 +  " "
  16.833 +  volume empty$
  16.834 +    { pop$ "" }
  16.835 +    { volume * }
  16.836 +  if$
  16.837 +  number empty$
  16.838 +    'skip$
  16.839 +    {
  16.840 +      "~(" number * ")" * *
  16.841 +      volume empty$
  16.842 +        { "there's a number but no volume in " cite$ * warning$ }
  16.843 +        'skip$
  16.844 +      if$
  16.845 +    }
  16.846 +  if$
  16.847 +}
  16.848 +
  16.849 +FUNCTION {format.chapter.pages}
  16.850 +{ chapter empty$
  16.851 +    { "" }
  16.852 +    { type empty$
  16.853 +        { bbl.chapter }
  16.854 +        { type "l" change.case$ }
  16.855 +      if$
  16.856 +      chapter tie.or.space.connect
  16.857 +    }
  16.858 +  if$
  16.859 +}
  16.860 +
  16.861 +FUNCTION {format.in.ed.booktitle}
  16.862 +{ booktitle empty$
  16.863 +    { "" }
  16.864 +    { editor empty$
  16.865 +        { word.in booktitle * }
  16.866 +        { word.in format.in.editors * ", " *
  16.867 +          booktitle * }
  16.868 +      if$
  16.869 +    }
  16.870 +  if$
  16.871 +}
  16.872 +
  16.873 +FUNCTION {empty.misc.check}
  16.874 +{ author empty$ title empty$ howpublished empty$
  16.875 +  month empty$ year empty$ note empty$
  16.876 +  and and and and and
  16.877 +    { "all relevant fields are empty in " cite$ * warning$ }
  16.878 +    'skip$
  16.879 +  if$
  16.880 +}
  16.881 +
  16.882 +FUNCTION {format.thesis.type}
  16.883 +{ type empty$
  16.884 +    'skip$
  16.885 +    { pop$
  16.886 +      type "t" change.case$
  16.887 +    }
  16.888 +  if$
  16.889 +}
  16.890 +
  16.891 +FUNCTION {format.tr.number}
  16.892 +{ type empty$
  16.893 +    { bbl.techrep }
  16.894 +    'type
  16.895 +  if$
  16.896 +  number empty$
  16.897 +    { "t" change.case$ }
  16.898 +    { number tie.or.space.connect }
  16.899 +  if$
  16.900 +}
  16.901 +
  16.902 +FUNCTION {format.article.crossref}
  16.903 +{
  16.904 +  key empty$
  16.905 +    { journal empty$
  16.906 +        { "need key or journal for " cite$ * " to crossref " * crossref *
  16.907 +          warning$
  16.908 +          ""
  16.909 +        }
  16.910 +        { word.in journal emphasize * }
  16.911 +      if$
  16.912 +    }
  16.913 +    { word.in key * " " *}
  16.914 +  if$
  16.915 +  " \cite{" * crossref * "}" *
  16.916 +}
  16.917 +
  16.918 +FUNCTION {format.crossref.editor}
  16.919 +{ editor #1 "{vv~}{ll}" format.name$
  16.920 +  editor num.names$ duplicate$
  16.921 +  #2 >
  16.922 +    { pop$
  16.923 +      " " * bbl.etal *
  16.924 +    }
  16.925 +    { #2 <
  16.926 +        'skip$
  16.927 +        { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  16.928 +            {
  16.929 +              " " * bbl.etal *
  16.930 +            }
  16.931 +            { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$
  16.932 +              * }
  16.933 +          if$
  16.934 +        }
  16.935 +      if$
  16.936 +    }
  16.937 +  if$
  16.938 +}
  16.939 +
  16.940 +FUNCTION {format.book.crossref}
  16.941 +{ volume empty$
  16.942 +    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  16.943 +      word.in
  16.944 +    }
  16.945 +    { bbl.volume volume tie.or.space.connect
  16.946 +      bbl.of space.word *
  16.947 +    }
  16.948 +  if$
  16.949 +  editor empty$
  16.950 +  editor field.or.null author field.or.null =
  16.951 +  or
  16.952 +    { key empty$
  16.953 +        { series empty$
  16.954 +            { "need editor, key, or series for " cite$ * " to crossref " *
  16.955 +              crossref * warning$
  16.956 +              "" *
  16.957 +            }
  16.958 +            { series emphasize * }
  16.959 +          if$
  16.960 +        }
  16.961 +        { key * }
  16.962 +      if$
  16.963 +    }
  16.964 +    { format.crossref.editor * }
  16.965 +  if$
  16.966 +  " \cite{" * crossref * "}" *
  16.967 +}
  16.968 +
  16.969 +FUNCTION {format.incoll.inproc.crossref}
  16.970 +{
  16.971 +  editor empty$
  16.972 +  editor field.or.null author field.or.null =
  16.973 +  or
  16.974 +    { key empty$
  16.975 +        { booktitle empty$
  16.976 +            { "need editor, key, or booktitle for " cite$ * " to crossref " *
  16.977 +              crossref * warning$
  16.978 +              ""
  16.979 +            }
  16.980 +            { word.in booktitle * }
  16.981 +          if$
  16.982 +        }
  16.983 +        { word.in key * " " *}
  16.984 +      if$
  16.985 +    }
  16.986 +    { word.in format.crossref.editor * " " *}
  16.987 +  if$
  16.988 +  " \cite{" * crossref * "}" *
  16.989 +}
  16.990 +
  16.991 +FUNCTION {format.org.or.pub}
  16.992 +{ 't :=
  16.993 +  ""
  16.994 +  year empty$
  16.995 +    { "empty year in " cite$ * warning$ }
  16.996 +    'skip$
  16.997 +  if$
  16.998 +  address empty$ t empty$ and
  16.999 +  year empty$ and
 16.1000 +    'skip$
 16.1001 +    {
 16.1002 +      t empty$
 16.1003 +        { address empty$
 16.1004 +          'skip$
 16.1005 +          { address * }
 16.1006 +          if$
 16.1007 +        }
 16.1008 +        { t *
 16.1009 +          address empty$
 16.1010 +            'skip$
 16.1011 +            { ", " * address * }
 16.1012 +          if$
 16.1013 +        }
 16.1014 +      if$
 16.1015 +      year empty$
 16.1016 +        'skip$
 16.1017 +        { t empty$ address empty$ and
 16.1018 +            'skip$
 16.1019 +            { ", " * }
 16.1020 +          if$
 16.1021 +          year *
 16.1022 +        }
 16.1023 +      if$
 16.1024 +    }
 16.1025 +  if$
 16.1026 +}
 16.1027 +
 16.1028 +FUNCTION {format.publisher.address}
 16.1029 +{ publisher empty$
 16.1030 +    { "empty publisher in " cite$ * warning$
 16.1031 +      ""
 16.1032 +    }
 16.1033 +    { publisher }
 16.1034 +  if$
 16.1035 +  format.org.or.pub
 16.1036 +}
 16.1037 +
 16.1038 +FUNCTION {format.organization.address}
 16.1039 +{ organization empty$
 16.1040 +    { "" }
 16.1041 +    { organization }
 16.1042 +  if$
 16.1043 +  format.org.or.pub
 16.1044 +}
 16.1045 +
 16.1046 +FUNCTION {make.href.null}
 16.1047 +{
 16.1048 +  pop$
 16.1049 +}
 16.1050 +FUNCTION {make.href.hypertex}
 16.1051 +{
 16.1052 +  "\special {html:<a href=" quote$ *
 16.1053 +  swap$ * quote$ * "> }" * swap$ *
 16.1054 +  "\special {html:</a>}" *
 16.1055 +}
 16.1056 +FUNCTION {make.href.hyperref}
 16.1057 +{
 16.1058 +  "\href {" swap$ * "} {\path{" * swap$ * "}}" *
 16.1059 +}
 16.1060 +FUNCTION {make.href}
 16.1061 +{ hrefform #2 =
 16.1062 +    'make.href.hyperref      % hrefform = 2
 16.1063 +    { hrefform #1 =
 16.1064 +        'make.href.hypertex  % hrefform = 1
 16.1065 +        'make.href.null      % hrefform = 0 (or anything else)
 16.1066 +      if$
 16.1067 +    }
 16.1068 +  if$
 16.1069 +}
 16.1070 +
 16.1071 +FUNCTION {format.url}
 16.1072 +{ inlinelinks #1 = url empty$ or
 16.1073 +   { "" }
 16.1074 +   { hrefform #1 =
 16.1075 +       { % special case -- add HyperTeX specials
 16.1076 +         urlintro "\url{" url * "}" * url make.href.hypertex * }
 16.1077 +       { urlintro "\url{" * url * "}" * }
 16.1078 +     if$
 16.1079 +   }
 16.1080 +  if$
 16.1081 +}
 16.1082 +
 16.1083 +FUNCTION {format.eprint}
 16.1084 +{ eprint empty$
 16.1085 +    { "" }
 16.1086 +    { eprintprefix eprint * eprinturl eprint * make.href }
 16.1087 +  if$
 16.1088 +}
 16.1089 +
 16.1090 +FUNCTION {format.doi}
 16.1091 +{ doi empty$
 16.1092 +    { "" }
 16.1093 +    { doiprefix doi * doiurl doi * make.href }
 16.1094 +  if$
 16.1095 +}
 16.1096 +
 16.1097 +FUNCTION {output.url}
 16.1098 +{ url empty$
 16.1099 +    'skip$
 16.1100 +    { new.block
 16.1101 +      format.url output
 16.1102 +      format.lastchecked output
 16.1103 +    }
 16.1104 +  if$
 16.1105 +}
 16.1106 +
 16.1107 +FUNCTION {output.web.refs}
 16.1108 +{
 16.1109 +  new.block
 16.1110 +  output.url
 16.1111 +  addeprints eprint empty$ not and
 16.1112 +    { format.eprint output.nonnull }
 16.1113 +    'skip$
 16.1114 +  if$
 16.1115 +  adddoiresolver doi empty$ not and
 16.1116 +    { format.doi output.nonnull }
 16.1117 +    'skip$
 16.1118 +  if$
 16.1119 +}
 16.1120 +
 16.1121 +FUNCTION {output.bibitem}
 16.1122 +{ outside.brackets 'bracket.state :=
 16.1123 +  output.bibitem.original
 16.1124 +  inlinelinks url empty$ not and
 16.1125 +    { #1 'makeinlinelink := }
 16.1126 +    { #0 'makeinlinelink := }
 16.1127 +  if$
 16.1128 +}
 16.1129 +
 16.1130 +FUNCTION {fin.entry}
 16.1131 +{ output.web.refs  % urlbst
 16.1132 +  makeinlinelink       % ooops, it appears we didn't have a title for inlinelink
 16.1133 +    { setup.inlinelink % add some artificial link text here, as a fallback
 16.1134 +      "[link]" output.nonnull }
 16.1135 +    'skip$
 16.1136 +  if$
 16.1137 +  bracket.state close.brackets = % urlbst
 16.1138 +    { "]" * }
 16.1139 +    'skip$
 16.1140 +  if$
 16.1141 +  fin.entry.original
 16.1142 +}
 16.1143 +
 16.1144 +FUNCTION {webpage}
 16.1145 +{ output.bibitem
 16.1146 +  author empty$
 16.1147 +    { editor empty$
 16.1148 +        'skip$  % author and editor both optional
 16.1149 +        { format.editors output.nonnull }
 16.1150 +      if$
 16.1151 +    }
 16.1152 +    { editor empty$
 16.1153 +        { format.authors output.nonnull }
 16.1154 +        { "can't use both author and editor fields in " cite$ * warning$ }
 16.1155 +      if$
 16.1156 +    }
 16.1157 +  if$
 16.1158 +  new.block
 16.1159 +  title empty$ 'skip$ 'setup.inlinelink if$
 16.1160 +  format.title "title" output.check
 16.1161 +  inbrackets "online" output
 16.1162 +  new.block
 16.1163 +  year empty$
 16.1164 +    'skip$
 16.1165 +    { format.date "year" output.check }
 16.1166 +  if$
 16.1167 +  % We don't need to output the URL details ('lastchecked' and 'url'),
 16.1168 +  % because fin.entry does that for us, using output.web.refs.  The only
 16.1169 +  % reason we would want to put them here is if we were to decide that
 16.1170 +  % they should go in front of the rather miscellaneous information in 'note'.
 16.1171 +  new.block
 16.1172 +  note output
 16.1173 +  fin.entry
 16.1174 +}
 16.1175 +
 16.1176 +FUNCTION {article}
 16.1177 +{ output.bibitem
 16.1178 +  format.authors "author" output.check
 16.1179 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1180 +  format.title "title" output.check
 16.1181 +  crossref missing$
 16.1182 +    { journal
 16.1183 +      "journal" output.check
 16.1184 +      % add.blank
 16.1185 +  before.all 'output.state :=
 16.1186 +      format.vol.num.pages output
 16.1187 +    }
 16.1188 +    { format.article.crossref output.nonnull
 16.1189 +      format.pages output
 16.1190 +    }
 16.1191 +  if$
 16.1192 +  format.journal.pages
 16.1193 +  format.note output
 16.1194 +  fin.entry
 16.1195 +  write.url
 16.1196 +}
 16.1197 +
 16.1198 +FUNCTION {book}
 16.1199 +{ output.bibitem
 16.1200 +  author empty$
 16.1201 +    { format.editors "author and editor" output.check
 16.1202 +    }
 16.1203 +    { format.authors output.nonnull
 16.1204 +      crossref missing$
 16.1205 +        { "author and editor" editor either.or.check }
 16.1206 +        'skip$
 16.1207 +      if$
 16.1208 +    }
 16.1209 +  if$
 16.1210 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1211 +  format.btitle "title" output.check
 16.1212 +  crossref missing$
 16.1213 +    { format.edition output
 16.1214 +      format.bvolume output
 16.1215 +      format.number.series output
 16.1216 +      format.publisher.address output
 16.1217 +    }
 16.1218 +    {
 16.1219 +      format.book.crossref output.nonnull
 16.1220 +    }
 16.1221 +  if$
 16.1222 +  format.note output
 16.1223 +  fin.entry
 16.1224 +  write.url
 16.1225 +}
 16.1226 +
 16.1227 +FUNCTION {booklet}
 16.1228 +{ output.bibitem
 16.1229 +  format.authors output
 16.1230 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1231 +  format.title "title" output.check
 16.1232 +  howpublished output
 16.1233 +  address output
 16.1234 +  format.note output
 16.1235 +  format.date output
 16.1236 +  fin.entry
 16.1237 +  write.url
 16.1238 +}
 16.1239 +
 16.1240 +FUNCTION {inbook}
 16.1241 +{ output.bibitem
 16.1242 +  author empty$
 16.1243 +    { format.editors "author and editor" output.check
 16.1244 +    }
 16.1245 +    { format.authors output.nonnull
 16.1246 +      crossref missing$
 16.1247 +        { "author and editor" editor either.or.check }
 16.1248 +        'skip$
 16.1249 +      if$
 16.1250 +    }
 16.1251 +  if$
 16.1252 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1253 +  format.btitle "title" output.check
 16.1254 +  crossref missing$
 16.1255 +    {
 16.1256 +      format.edition output
 16.1257 +      format.bvolume output
 16.1258 +      format.number.series output
 16.1259 +      format.publisher.address output
 16.1260 +      format.chapter.pages "chapter and pages" output.check
 16.1261 +    }
 16.1262 +    {
 16.1263 +      format.chapter.pages "chapter and pages" output.check
 16.1264 +      format.book.crossref output.nonnull
 16.1265 +    }
 16.1266 +  if$
 16.1267 +  format.pages "pages" output.check
 16.1268 +  format.note output
 16.1269 +  fin.entry
 16.1270 +  write.url
 16.1271 +}
 16.1272 +
 16.1273 +FUNCTION {incollection}
 16.1274 +{ output.bibitem
 16.1275 +  format.authors "author" output.check
 16.1276 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1277 +  format.title "title" output.check
 16.1278 +  crossref missing$
 16.1279 +    { format.in.ed.booktitle "booktitle" output.check
 16.1280 +      format.edition output
 16.1281 +      format.bvolume output
 16.1282 +      format.number.series output
 16.1283 +      format.publisher.address output
 16.1284 +      format.chapter.pages output
 16.1285 +    }
 16.1286 +    { format.incoll.inproc.crossref output.nonnull
 16.1287 +      format.chapter.pages output
 16.1288 +    }
 16.1289 +  if$
 16.1290 +  format.pages "pages" output.check
 16.1291 +  format.note output
 16.1292 +  fin.entry
 16.1293 +  write.url
 16.1294 +}
 16.1295 +
 16.1296 +FUNCTION {inproceedings}
 16.1297 +{ output.bibitem
 16.1298 +  format.authors "author" output.check
 16.1299 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1300 +  format.title "title" output.check
 16.1301 +  crossref missing$
 16.1302 +    { format.in.ed.booktitle "booktitle" output.check
 16.1303 +      format.edition output
 16.1304 +      format.bvolume output
 16.1305 +      format.number.series output
 16.1306 +      publisher empty$
 16.1307 +        { format.organization.address output }
 16.1308 +        { organization output
 16.1309 +          format.publisher.address output
 16.1310 +        }
 16.1311 +      if$
 16.1312 +    }
 16.1313 +    { format.incoll.inproc.crossref output.nonnull
 16.1314 +    }
 16.1315 +  if$
 16.1316 +  format.pages "pages" output.check
 16.1317 +  format.note output
 16.1318 +  fin.entry
 16.1319 +  write.url
 16.1320 +}
 16.1321 +
 16.1322 +FUNCTION {conference} { inproceedings }
 16.1323 +
 16.1324 +FUNCTION {manual}
 16.1325 +{ output.bibitem
 16.1326 +  author empty$
 16.1327 +    { organization empty$
 16.1328 +        'skip$
 16.1329 +        { organization output.nonnull
 16.1330 +          address output
 16.1331 +        }
 16.1332 +      if$
 16.1333 +    }
 16.1334 +    { format.authors output.nonnull }
 16.1335 +  if$
 16.1336 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1337 +  format.btitle "title" output.check
 16.1338 +  author empty$
 16.1339 +    { organization empty$
 16.1340 +    {
 16.1341 +          address output
 16.1342 +        }
 16.1343 +        'skip$
 16.1344 +      if$
 16.1345 +    }
 16.1346 +    {
 16.1347 +      organization output
 16.1348 +      address output
 16.1349 +    }
 16.1350 +  if$
 16.1351 +  format.edition output
 16.1352 +  format.note output
 16.1353 +  format.date output
 16.1354 +  fin.entry
 16.1355 +  write.url
 16.1356 +}
 16.1357 +
 16.1358 +FUNCTION {mastersthesis}
 16.1359 +{ output.bibitem
 16.1360 +  format.authors "author" output.check
 16.1361 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1362 +  format.title "title" output.check
 16.1363 +  bbl.mthesis format.thesis.type output.nonnull
 16.1364 +  school "school" output.check
 16.1365 +  address output
 16.1366 +  format.note output
 16.1367 +  format.date "year" output.check
 16.1368 +  fin.entry
 16.1369 +  write.url
 16.1370 +}
 16.1371 +
 16.1372 +FUNCTION {misc}
 16.1373 +{ output.bibitem
 16.1374 +  format.authors output
 16.1375 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1376 +  format.title output
 16.1377 +  howpublished output
 16.1378 +  format.note output
 16.1379 +  format.date output
 16.1380 +  fin.entry
 16.1381 +  write.url
 16.1382 +  empty.misc.check
 16.1383 +}
 16.1384 +
 16.1385 +FUNCTION {phdthesis}
 16.1386 +{ output.bibitem
 16.1387 +  format.authors "author" output.check
 16.1388 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1389 +  format.title "title" output.check
 16.1390 +  bbl.phdthesis format.thesis.type output.nonnull
 16.1391 +  school "school" output.check
 16.1392 +  address output
 16.1393 +  format.note output
 16.1394 +  format.date "year" output.check
 16.1395 +  fin.entry
 16.1396 +  write.url
 16.1397 +}
 16.1398 +
 16.1399 +FUNCTION {proceedings}
 16.1400 +{ output.bibitem
 16.1401 +  editor empty$
 16.1402 +    { organization output }
 16.1403 +    { format.editors output.nonnull }
 16.1404 +  if$
 16.1405 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1406 +  format.btitle "title" output.check
 16.1407 +  format.bvolume output
 16.1408 +  format.number.series output
 16.1409 +  editor empty$
 16.1410 +    { publisher empty$
 16.1411 +        'skip$
 16.1412 +        {
 16.1413 +          format.publisher.address output
 16.1414 +        }
 16.1415 +      if$
 16.1416 +    }
 16.1417 +    { publisher empty$
 16.1418 +        {
 16.1419 +          format.organization.address output }
 16.1420 +        {
 16.1421 +          organization output
 16.1422 +          format.publisher.address output
 16.1423 +        }
 16.1424 +      if$
 16.1425 +     }
 16.1426 +  if$
 16.1427 +  format.note output
 16.1428 +  fin.entry
 16.1429 +  write.url
 16.1430 +}
 16.1431 +
 16.1432 +FUNCTION {techreport}
 16.1433 +{ output.bibitem
 16.1434 +  format.authors "author" output.check
 16.1435 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1436 +  format.title "title" output.check
 16.1437 +  format.tr.number output.nonnull
 16.1438 +  institution "institution" output.check
 16.1439 +  address output
 16.1440 +  format.note output
 16.1441 +  format.date "year" output.check
 16.1442 +  fin.entry
 16.1443 +  write.url
 16.1444 +}
 16.1445 +
 16.1446 +FUNCTION {unpublished}
 16.1447 +{ output.bibitem
 16.1448 +  format.authors "author" output.check
 16.1449 +  title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
 16.1450 +  format.title "title" output.check
 16.1451 +  format.note "note" output.check
 16.1452 +  format.date output
 16.1453 +  fin.entry
 16.1454 +  write.url
 16.1455 +}
 16.1456 +
 16.1457 +FUNCTION {default.type} { misc }
 16.1458 +
 16.1459 +READ
 16.1460 +
 16.1461 +STRINGS { longest.label }
 16.1462 +
 16.1463 +INTEGERS { number.label longest.label.width }
 16.1464 +
 16.1465 +FUNCTION {initialize.longest.label}
 16.1466 +{ "" 'longest.label :=
 16.1467 +  #1 'number.label :=
 16.1468 +  #0 'longest.label.width :=
 16.1469 +}
 16.1470 +
 16.1471 +FUNCTION {longest.label.pass}
 16.1472 +{ number.label int.to.str$ 'label :=
 16.1473 +  number.label #1 + 'number.label :=
 16.1474 +  label width$ longest.label.width >
 16.1475 +    { label 'longest.label :=
 16.1476 +      label width$ 'longest.label.width :=
 16.1477 +    }
 16.1478 +    'skip$
 16.1479 +  if$
 16.1480 +}
 16.1481 +
 16.1482 +EXECUTE {initialize.longest.label}
 16.1483 +
 16.1484 +ITERATE {longest.label.pass}
 16.1485 +
 16.1486 +FUNCTION {begin.bib}
 16.1487 +{ preamble$ empty$
 16.1488 +    'skip$
 16.1489 +    { preamble$ write$ newline$ }
 16.1490 +  if$
 16.1491 +  "\begin{thebibliography}{"  longest.label  * "}" *
 16.1492 +  write$ newline$
 16.1493 +  "\expandafter\ifx\csname url\endcsname\relax"
 16.1494 +  write$ newline$
 16.1495 +  "  \def\url#1{\texttt{#1}}\fi"
 16.1496 +  write$ newline$
 16.1497 +  "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
 16.1498 +  write$ newline$
 16.1499 +  "\expandafter\ifx\csname href\endcsname\relax"
 16.1500 +  write$ newline$
 16.1501 +  "  \def\href#1#2{#2} \def\path#1{#1}\fi"
 16.1502 +  write$ newline$
 16.1503 +}
 16.1504 +
 16.1505 +EXECUTE {begin.bib}
 16.1506 +
 16.1507 +EXECUTE {init.urlbst.variables}
 16.1508 +EXECUTE {init.state.consts}
 16.1509 +
 16.1510 +ITERATE {call.type$}
 16.1511 +
 16.1512 +FUNCTION {end.bib}
 16.1513 +{ newline$
 16.1514 +  "\end{thebibliography}" write$ newline$
 16.1515 +}
 16.1516 +
 16.1517 +EXECUTE {end.bib}
 16.1518 +%% End of customized bst file
 16.1519 +%%
 16.1520 +%% End of file `elsarticle-num.bst'.
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/elsarticle/elsarticle-template-harv.tex	Fri Nov 18 16:18:02 2016 +0100
    17.3 @@ -0,0 +1,137 @@
    17.4 +%% 
    17.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
    17.6 +%% 
    17.7 +%% This file is part of the 'Elsarticle Bundle'.
    17.8 +%% ---------------------------------------------
    17.9 +%% 
   17.10 +%% It may be distributed under the conditions of the LaTeX Project Public
   17.11 +%% License, either version 1.2 of this license or (at your option) any
   17.12 +%% later version.  The latest version of this license is in
   17.13 +%%    http://www.latex-project.org/lppl.txt
   17.14 +%% and version 1.2 or later is part of all distributions of LaTeX
   17.15 +%% version 1999/12/01 or later.
   17.16 +%% 
   17.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
   17.18 +%% given in the file `manifest.txt'.
   17.19 +%% 
   17.20 +%% Template article for Elsevier's document class `elsarticle'
   17.21 +%% with harvard style bibliographic references
   17.22 +%% SP 2008/03/01
   17.23 +
   17.24 +\documentclass[preprint,12pt,authoryear]{elsarticle}
   17.25 +
   17.26 +%% Use the option review to obtain double line spacing
   17.27 +%% \documentclass[authoryear,preprint,review,12pt]{elsarticle}
   17.28 +
   17.29 +%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn
   17.30 +%% for a journal layout:
   17.31 +%% \documentclass[final,1p,times,authoryear]{elsarticle}
   17.32 +%% \documentclass[final,1p,times,twocolumn,authoryear]{elsarticle}
   17.33 +%% \documentclass[final,3p,times,authoryear]{elsarticle}
   17.34 +%% \documentclass[final,3p,times,twocolumn,authoryear]{elsarticle}
   17.35 +%% \documentclass[final,5p,times,authoryear]{elsarticle}
   17.36 +%% \documentclass[final,5p,times,twocolumn,authoryear]{elsarticle}
   17.37 +
   17.38 +%% For including figures, graphicx.sty has been loaded in
   17.39 +%% elsarticle.cls. If you prefer to use the old commands
   17.40 +%% please give \usepackage{epsfig}
   17.41 +
   17.42 +%% The amssymb package provides various useful mathematical symbols
   17.43 +\usepackage{amssymb}
   17.44 +%% The amsthm package provides extended theorem environments
   17.45 +%% \usepackage{amsthm}
   17.46 +
   17.47 +%% The lineno packages adds line numbers. Start line numbering with
   17.48 +%% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on
   17.49 +%% for the whole article with \linenumbers.
   17.50 +%% \usepackage{lineno}
   17.51 +
   17.52 +\journal{Nuclear Physics B}
   17.53 +
   17.54 +\begin{document}
   17.55 +
   17.56 +\begin{frontmatter}
   17.57 +
   17.58 +%% Title, authors and addresses
   17.59 +
   17.60 +%% use the tnoteref command within \title for footnotes;
   17.61 +%% use the tnotetext command for theassociated footnote;
   17.62 +%% use the fnref command within \author or \address for footnotes;
   17.63 +%% use the fntext command for theassociated footnote;
   17.64 +%% use the corref command within \author for corresponding author footnotes;
   17.65 +%% use the cortext command for theassociated footnote;
   17.66 +%% use the ead command for the email address,
   17.67 +%% and the form \ead[url] for the home page:
   17.68 +%% \title{Title\tnoteref{label1}}
   17.69 +%% \tnotetext[label1]{}
   17.70 +%% \author{Name\corref{cor1}\fnref{label2}}
   17.71 +%% \ead{email address}
   17.72 +%% \ead[url]{home page}
   17.73 +%% \fntext[label2]{}
   17.74 +%% \cortext[cor1]{}
   17.75 +%% \address{Address\fnref{label3}}
   17.76 +%% \fntext[label3]{}
   17.77 +
   17.78 +\title{}
   17.79 +
   17.80 +%% use optional labels to link authors explicitly to addresses:
   17.81 +%% \author[label1,label2]{}
   17.82 +%% \address[label1]{}
   17.83 +%% \address[label2]{}
   17.84 +
   17.85 +\author{}
   17.86 +
   17.87 +\address{}
   17.88 +
   17.89 +\begin{abstract}
   17.90 +%% Text of abstract
   17.91 +
   17.92 +\end{abstract}
   17.93 +
   17.94 +\begin{keyword}
   17.95 +%% keywords here, in the form: keyword \sep keyword
   17.96 +
   17.97 +%% PACS codes here, in the form: \PACS code \sep code
   17.98 +
   17.99 +%% MSC codes here, in the form: \MSC code \sep code
  17.100 +%% or \MSC[2008] code \sep code (2000 is the default)
  17.101 +
  17.102 +\end{keyword}
  17.103 +
  17.104 +\end{frontmatter}
  17.105 +
  17.106 +%% \linenumbers
  17.107 +
  17.108 +%% main text
  17.109 +\section{}
  17.110 +\label{}
  17.111 +
  17.112 +%% The Appendices part is started with the command \appendix;
  17.113 +%% appendix sections are then done as normal sections
  17.114 +%% \appendix
  17.115 +
  17.116 +%% \section{}
  17.117 +%% \label{}
  17.118 +
  17.119 +%% If you have bibdatabase file and want bibtex to generate the
  17.120 +%% bibitems, please use
  17.121 +%%
  17.122 +%%  \bibliographystyle{elsarticle-harv} 
  17.123 +%%  \bibliography{<your bibdatabase>}
  17.124 +
  17.125 +%% else use the following coding to input the bibitems directly in the
  17.126 +%% TeX file.
  17.127 +
  17.128 +\begin{thebibliography}{00}
  17.129 +
  17.130 +%% \bibitem[Author(year)]{label}
  17.131 +%% Text of bibliographic item
  17.132 +
  17.133 +\bibitem[ ()]{}
  17.134 +
  17.135 +\end{thebibliography}
  17.136 +\end{document}
  17.137 +
  17.138 +\endinput
  17.139 +%%
  17.140 +%% End of file `elsarticle-template-harv.tex'.
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/elsarticle/elsarticle-template-num.tex	Fri Nov 18 16:18:02 2016 +0100
    18.3 @@ -0,0 +1,137 @@
    18.4 +%% 
    18.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
    18.6 +%% 
    18.7 +%% This file is part of the 'Elsarticle Bundle'.
    18.8 +%% ---------------------------------------------
    18.9 +%% 
   18.10 +%% It may be distributed under the conditions of the LaTeX Project Public
   18.11 +%% License, either version 1.2 of this license or (at your option) any
   18.12 +%% later version.  The latest version of this license is in
   18.13 +%%    http://www.latex-project.org/lppl.txt
   18.14 +%% and version 1.2 or later is part of all distributions of LaTeX
   18.15 +%% version 1999/12/01 or later.
   18.16 +%% 
   18.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
   18.18 +%% given in the file `manifest.txt'.
   18.19 +%% 
   18.20 +
   18.21 +%% Template article for Elsevier's document class `elsarticle'
   18.22 +%% with numbered style bibliographic references
   18.23 +%% SP 2008/03/01
   18.24 +
   18.25 +\documentclass[preprint,12pt]{elsarticle}
   18.26 +
   18.27 +%% Use the option review to obtain double line spacing
   18.28 +%% \documentclass[authoryear,preprint,review,12pt]{elsarticle}
   18.29 +
   18.30 +%% Use the options 1p,twocolumn; 3p; 3p,twocolumn; 5p; or 5p,twocolumn
   18.31 +%% for a journal layout:
   18.32 +%% \documentclass[final,1p,times]{elsarticle}
   18.33 +%% \documentclass[final,1p,times,twocolumn]{elsarticle}
   18.34 +%% \documentclass[final,3p,times]{elsarticle}
   18.35 +%% \documentclass[final,3p,times,twocolumn]{elsarticle}
   18.36 +%% \documentclass[final,5p,times]{elsarticle}
   18.37 +%% \documentclass[final,5p,times,twocolumn]{elsarticle}
   18.38 +
   18.39 +%% For including figures, graphicx.sty has been loaded in
   18.40 +%% elsarticle.cls. If you prefer to use the old commands
   18.41 +%% please give \usepackage{epsfig}
   18.42 +
   18.43 +%% The amssymb package provides various useful mathematical symbols
   18.44 +\usepackage{amssymb}
   18.45 +%% The amsthm package provides extended theorem environments
   18.46 +%% \usepackage{amsthm}
   18.47 +
   18.48 +%% The lineno packages adds line numbers. Start line numbering with
   18.49 +%% \begin{linenumbers}, end it with \end{linenumbers}. Or switch it on
   18.50 +%% for the whole article with \linenumbers.
   18.51 +%% \usepackage{lineno}
   18.52 +
   18.53 +\journal{Nuclear Physics B}
   18.54 +
   18.55 +\begin{document}
   18.56 +
   18.57 +\begin{frontmatter}
   18.58 +
   18.59 +%% Title, authors and addresses
   18.60 +
   18.61 +%% use the tnoteref command within \title for footnotes;
   18.62 +%% use the tnotetext command for theassociated footnote;
   18.63 +%% use the fnref command within \author or \address for footnotes;
   18.64 +%% use the fntext command for theassociated footnote;
   18.65 +%% use the corref command within \author for corresponding author footnotes;
   18.66 +%% use the cortext command for theassociated footnote;
   18.67 +%% use the ead command for the email address,
   18.68 +%% and the form \ead[url] for the home page:
   18.69 +%% \title{Title\tnoteref{label1}}
   18.70 +%% \tnotetext[label1]{}
   18.71 +%% \author{Name\corref{cor1}\fnref{label2}}
   18.72 +%% \ead{email address}
   18.73 +%% \ead[url]{home page}
   18.74 +%% \fntext[label2]{}
   18.75 +%% \cortext[cor1]{}
   18.76 +%% \address{Address\fnref{label3}}
   18.77 +%% \fntext[label3]{}
   18.78 +
   18.79 +\title{}
   18.80 +
   18.81 +%% use optional labels to link authors explicitly to addresses:
   18.82 +%% \author[label1,label2]{}
   18.83 +%% \address[label1]{}
   18.84 +%% \address[label2]{}
   18.85 +
   18.86 +\author{}
   18.87 +
   18.88 +\address{}
   18.89 +
   18.90 +\begin{abstract}
   18.91 +%% Text of abstract
   18.92 +
   18.93 +\end{abstract}
   18.94 +
   18.95 +\begin{keyword}
   18.96 +%% keywords here, in the form: keyword \sep keyword
   18.97 +
   18.98 +%% PACS codes here, in the form: \PACS code \sep code
   18.99 +
  18.100 +%% MSC codes here, in the form: \MSC code \sep code
  18.101 +%% or \MSC[2008] code \sep code (2000 is the default)
  18.102 +
  18.103 +\end{keyword}
  18.104 +
  18.105 +\end{frontmatter}
  18.106 +
  18.107 +%% \linenumbers
  18.108 +
  18.109 +%% main text
  18.110 +\section{}
  18.111 +\label{}
  18.112 +
  18.113 +%% The Appendices part is started with the command \appendix;
  18.114 +%% appendix sections are then done as normal sections
  18.115 +%% \appendix
  18.116 +
  18.117 +%% \section{}
  18.118 +%% \label{}
  18.119 +
  18.120 +%% If you have bibdatabase file and want bibtex to generate the
  18.121 +%% bibitems, please use
  18.122 +%%
  18.123 +%%  \bibliographystyle{elsarticle-num} 
  18.124 +%%  \bibliography{<your bibdatabase>}
  18.125 +
  18.126 +%% else use the following coding to input the bibitems directly in the
  18.127 +%% TeX file.
  18.128 +
  18.129 +\begin{thebibliography}{00}
  18.130 +
  18.131 +%% \bibitem{label}
  18.132 +%% Text of bibliographic item
  18.133 +
  18.134 +\bibitem{}
  18.135 +
  18.136 +\end{thebibliography}
  18.137 +\end{document}
  18.138 +\endinput
  18.139 +%%
  18.140 +%% End of file `elsarticle-template-num.tex'.
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/elsarticle/elsarticle.dtx	Fri Nov 18 16:18:02 2016 +0100
    19.3 @@ -0,0 +1,882 @@
    19.4 +% \iffalse meta-comment
    19.5 +%
    19.6 +% Copyright (C) 2007, 2008, 2009 by Elsevier Ltd
    19.7 +% -----------------------------------------------
    19.8 +% 
    19.9 +% This file may be distributed and/or modified under the
   19.10 +% conditions of the LaTeX Project Public License, either version 1.2
   19.11 +% of this license or (at your option) any later version.
   19.12 +% The latest version of this license is in:
   19.13 +%
   19.14 +%    http://www.latex-project.org/lppl.txt
   19.15 +%
   19.16 +% and version 1.2 or later is part of all distributions of LaTeX 
   19.17 +% version 1999/12/01 or later.
   19.18 +%
   19.19 +% \fi
   19.20 +% \CheckSum{2196}
   19.21 +%
   19.22 +% \iffalse
   19.23 +%<*driver>
   19.24 +\documentclass{ltxdoc}
   19.25 +\EnableCrossrefs         
   19.26 +\CodelineIndex
   19.27 +\RecordChanges
   19.28 +\usepackage{comment}
   19.29 +\begin{document}
   19.30 +  \DocInput{elsarticle.dtx}
   19.31 +  \PrintChanges
   19.32 +  \PrintIndex
   19.33 +\end{document}
   19.34 +%</driver>
   19.35 +% \fi
   19.36 +%
   19.37 +% \CharacterTable
   19.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
   19.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
   19.40 +%   Digits        \0\1\2\3\4\5\6\7\8\9
   19.41 +%   Exclamation   \!     Double quote  \"     Hash (number) \#
   19.42 +%   Dollar        \$     Percent       \%     Ampersand     \&
   19.43 +%   Acute accent  \'     Left paren    \(     Right paren   \)
   19.44 +%   Asterisk      \*     Plus          \+     Comma         \,
   19.45 +%   Minus         \-     Point         \.     Solidus       \/
   19.46 +%   Colon         \:     Semicolon     \;     Less than     \<
   19.47 +%   Equals        \=     Greater than  \>     Question mark \?
   19.48 +%   Commercial at \@     Left bracket  \[     Backslash     \\
   19.49 +%   Right bracket \]     Circumflex    \^     Underscore    \_
   19.50 +%   Grave accent  \`     Left brace    \{     Vertical bar  \|
   19.51 +%   Right brace   \}     Tilde         \~}
   19.52 +%
   19.53 +%
   19.54 +% \changes{v1.1}{2008/09/25}{Initial version}
   19.55 +%
   19.56 +%
   19.57 +% \changes{v1.2}{2009/09/17}{Documentation, templates, and *.bst
   19.58 +%    has been seperated from this .dtx. Incompatibility problems
   19.59 +%    with amsref.sty, fncylab.sty have been fixed. Some bugs related
   19.60 +%    to author/affiliation part have been fixed.}
   19.61 +%
   19.62 +% \GetFileInfo{elsarticle.dtx}
   19.63 +%
   19.64 +% \DoNotIndex{\newcommand,\newenvironment}
   19.65 +% 
   19.66 +%
   19.67 +% \title{The \textsf{elsarticle.cls} -- Implimentation}
   19.68 +% \author{Elsevier Ltd}
   19.69 +%
   19.70 +% \maketitle
   19.71 +%
   19.72 +% \StopEventually{}
   19.73 +%
   19.74 +% \section{Implementation}
   19.75 +%
   19.76 +%    \begin{macrocode}
   19.77 +%<*class>
   19.78 +%% 
   19.79 +%% $Id: elsarticle.cls,v 1.20 2008-10-13 04:24:12 cvr Exp $
   19.80 +%%
   19.81 + \def\RCSfile{elsarticle}%
   19.82 + \def\RCSversion{1.2.0}%
   19.83 + \def\RCSdate{2009/09/17}%
   19.84 + \def\@shortjnl{\relax}
   19.85 + \def\@journal{Elsevier Ltd} \def\@company{Elsevier Ltd}
   19.86 + \def\@issn{000-0000}
   19.87 + \def\@shortjid{elsarticle}
   19.88 +\NeedsTeXFormat{LaTeX2e}[1995/12/01]
   19.89 +\ProvidesClass{\@shortjid}[\RCSdate, \RCSversion: \@journal]
   19.90 +\def\ABD{\AtBeginDocument}
   19.91 +\newif\ifpreprint \preprintfalse
   19.92 +\newif\iflongmktitle \longmktitlefalse
   19.93 +
   19.94 +\def\@blstr{1}
   19.95 +\newdimen\@bls
   19.96 +\@bls=\baselineskip
   19.97 +
   19.98 +\def\@finalWarning{%
   19.99 +  *****************************************************\MessageBreak
  19.100 +   This document is typeset in the CRC style which\MessageBreak
  19.101 +   is not suitable for submission.\MessageBreak
  19.102 +   \MessageBreak
  19.103 +   Please typeset again using 'preprint' option\MessageBreak
  19.104 +   for creating PDF suitable for submission.\MessageBreak
  19.105 +  ******************************************************\MessageBreak
  19.106 +}
  19.107 +
  19.108 +\DeclareOption{preprint}{\global\preprinttrue
  19.109 +  \gdef\@blstr{1}\xdef\jtype{0}%
  19.110 +   \AtBeginDocument{\@twosidefalse\@mparswitchfalse}}
  19.111 +\DeclareOption{final}{\gdef\@blstr{1}\global\preprintfalse}
  19.112 +\DeclareOption{review}{\global\preprinttrue\gdef\@blstr{1.5}}
  19.113 +\DeclareOption{authoryear}{\xdef\@biboptions{round,authoryear}}
  19.114 +\DeclareOption{number}{\xdef\@biboptions{numbers}}
  19.115 +\DeclareOption{numbers}{\xdef\@biboptions{numbers}}
  19.116 +\DeclareOption{longtitle}{\global\longmktitletrue}
  19.117 +\DeclareOption{5p}{\xdef\jtype{5}\global\preprintfalse
  19.118 +  \ExecuteOptions{twocolumn}}
  19.119 +  \def\jtype{0}
  19.120 +\DeclareOption{3p}{\xdef\jtype{3}\global\preprintfalse}
  19.121 +\DeclareOption{1p}{\xdef\jtype{1}\global\preprintfalse
  19.122 +  \AtBeginDocument{\@twocolumnfalse}}
  19.123 +\DeclareOption{times}{\IfFileExists{txfonts.sty}%
  19.124 +  {\AtEndOfClass{\RequirePackage{txfonts}%
  19.125 +  \gdef\ttdefault{cmtt}%
  19.126 +   \let\iint\relax
  19.127 +  \let\iiint\relax
  19.128 +  \let\iiiint\relax
  19.129 +  \let\idotsint\relax
  19.130 +  \let\openbox\relax}}{\RequirePackage{times}}}
  19.131 +\ExecuteOptions{a4paper,10pt,oneside,onecolumn,number,preprint}
  19.132 +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
  19.133 +\ProcessOptions
  19.134 +\LoadClass{article}
  19.135 +\RequirePackage{graphicx}
  19.136 +%    \end{macrocode}
  19.137 +% 
  19.138 +% \section{Preamble}
  19.139 +%
  19.140 +%    \begin{macrocode}
  19.141 +\let\comma\@empty
  19.142 +\let\tnotesep\@empty
  19.143 +\def\title#1{\gdef\@title{#1}}
  19.144 +\let\@title\@empty
  19.145 +
  19.146 +\def\elsLabel#1{\@bsphack\protected@write\@auxout{}%
  19.147 +         {\string\Newlabel{#1}{\@currentlabel}}\@esphack}
  19.148 +\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}
  19.149 +
  19.150 +\def\elsRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}%
  19.151 +}
  19.152 +
  19.153 +\def\tnotemark[#1]{\textsuperscript{\@for\@@tmark:=#1\do{%
  19.154 +      \edef\tnotenum{\@ifundefined{X@\@@tmark}{1}{\elsRef{\@@tmark}}}%
  19.155 +      \ifcase\tnotenum\or\ding{73}\or,\ding{73}\ding{73}\fi}}%
  19.156 +}
  19.157 +\let\@tnotemark\@empty
  19.158 +
  19.159 +\let\@tnotes\@empty
  19.160 +\RequirePackage{pifont}
  19.161 +\newcounter{tnote}
  19.162 +\def\tnotetext[#1]#2{\g@addto@macro\@tnotes{%
  19.163 +  \refstepcounter{tnote}\elsLabel{#1}%
  19.164 +   \def\thefootnote{\ifcase\c@tnote\or\ding{73}\or\ding{73}\ding{73}\fi}%
  19.165 +    \footnotetext{#2}}}
  19.166 +
  19.167 +\let\@nonumnotes\@empty
  19.168 +\def\nonumnote#1{\g@addto@macro\@nonumnotes{%
  19.169 +     \let\thefootnote\relax\footnotetext{#1}}}
  19.170 +
  19.171 +\newcounter{fnote}
  19.172 +\def\fnmark[#1]{\let\comma\@empty
  19.173 +    \def\@fnmark{\@for\@@fnmark:=#1\do{%
  19.174 +    \edef\fnotenum{\@ifundefined{X@\@@fnmark}{1}{\elsRef{\@@fnmark}}}%
  19.175 +  \unskip\comma\fnotenum\let\comma,}}%
  19.176 +}
  19.177 +
  19.178 +\let\@fnotes\@empty\let\@fnmark\@empty
  19.179 +\def\fntext[#1]#2{\g@addto@macro\@fnotes{%
  19.180 +     \refstepcounter{fnote}\elsLabel{#1}%
  19.181 +   \def\thefootnote{\thefnote}%
  19.182 +   \global\setcounter{footnote}{\thefnote}%
  19.183 +   \footnotetext{#2}}}
  19.184 +
  19.185 +\def\cormark[#1]{\edef\cnotenum{\elsRef{#1}}%
  19.186 +    \unskip\textsuperscript{\sep\ifcase\cnotenum\or
  19.187 +       $\ast$\or$\ast\ast$\fi\hspace{-1pt}}\let\sep=,}
  19.188 +
  19.189 +\let\@cormark\@empty
  19.190 +\let\@cornotes\@empty
  19.191 +\newcounter{cnote}
  19.192 +\def\cortext[#1]#2{\g@addto@macro\@cornotes{%
  19.193 +    \refstepcounter{cnote}\elsLabel{#1}%
  19.194 +    \def\thefootnote{\ifcase\thecnote\or$\ast$\or
  19.195 +    $\ast\ast$\fi}%
  19.196 +    \footnotetext{#2}}}
  19.197 +
  19.198 +\let\@corref\@empty
  19.199 +%\def\corref#1{\cormark[#1]}
  19.200 +\def\corref#1{\edef\cnotenum{\elsRef{#1}}%
  19.201 +    \edef\@corref{\ifcase\cnotenum\or
  19.202 +         $\ast$\or$\ast\ast$\fi\hskip-1pt}}
  19.203 +
  19.204 +\def\fnref#1{\fnmark[#1]}
  19.205 +\def\tnoteref#1{\tnotemark[#1]}
  19.206 +
  19.207 +\def\resetTitleCounters{\c@cnote=0
  19.208 +   \c@fnote=0 \c@tnote=0 \c@footnote=0}
  19.209 +
  19.210 +\let\eadsep\@empty
  19.211 +\let\@elseads\@empty
  19.212 +\let\@elsuads\@empty
  19.213 +\let\@cormark\@empty
  19.214 +\def\hashchar{\expandafter\@gobble\string\~}
  19.215 +\def\underscorechar{\expandafter\@gobble\string\_}
  19.216 +\def\lbracechar{\expandafter\@gobble\string\{}
  19.217 +\def\rbracechar{\expandafter\@gobble\string\}}
  19.218 +
  19.219 +\def\ead{\@ifnextchar[{\@uad}{\@ead}}
  19.220 +\gdef\@ead#1{\bgroup\def\_{\string\underscorechar\space}%
  19.221 +  \def\{{\string\lbracechar\space}%
  19.222 +   \def~{\hashchar\space}%
  19.223 +   \def\}{\string\rbracechar\space}%
  19.224 +   \edef\tmp{\the\@eadauthor}
  19.225 +   \immediate\write\@auxout{\string\emailauthor
  19.226 +     {#1}{\expandafter\strip@prefix\meaning\tmp}}%
  19.227 +  \egroup
  19.228 +}
  19.229 +\newcounter{ead}
  19.230 +\gdef\emailauthor#1#2{\stepcounter{ead}%
  19.231 +     \g@addto@macro\@elseads{\raggedright%
  19.232 +      \let\corref\@gobble
  19.233 +      \eadsep\texttt{#1} (#2)\def\eadsep{\unskip,\space}}%
  19.234 +}
  19.235 +\gdef\@uad[#1]#2{\bgroup
  19.236 +  \def~{\string\hashchar\space}%
  19.237 +  \def\_{\string\underscorechar\space}%
  19.238 +   \edef\tmp{\the\@eadauthor}
  19.239 +   \immediate\write\@auxout{\string\urlauthor
  19.240 +     {#2}{\expandafter\strip@prefix\meaning\tmp}}%
  19.241 +  \egroup
  19.242 +}
  19.243 +\def\urlauthor#1#2{\g@addto@macro\@elsuads{\let\corref\@gobble%
  19.244 +     \raggedright\eadsep\texttt{#1}\space(#2)%
  19.245 +     \def\eadsep{\unskip,\space}}%
  19.246 +}
  19.247 +
  19.248 +\def\elsauthors{}
  19.249 +\def\pprinttitle{}
  19.250 +\let\authorsep\@empty
  19.251 +\let\sep\@empty
  19.252 +\newcounter{author}
  19.253 +\def\author{\@ifnextchar[{\@@author}{\@author}}
  19.254 +
  19.255 +\newtoks\@eadauthor
  19.256 +\def\@@author[#1]#2{\g@addto@macro\elsauthors{%
  19.257 +    \def\baselinestretch{1}%
  19.258 +    \authorsep#2\unskip\textsuperscript{%#1%
  19.259 +      \@for\@@affmark:=#1\do{%
  19.260 +       \edef\affnum{\@ifundefined{X@\@@affmark}{1}{\elsRef{\@@affmark}}}%
  19.261 +     \unskip\sep\affnum\let\sep=,}%
  19.262 +      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
  19.263 +      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
  19.264 +      }%
  19.265 +    \def\authorsep{\unskip,\space}%
  19.266 +    \global\let\sep\@empty\global\let\@corref\@empty
  19.267 +    \global\let\@fnmark\@empty}%
  19.268 +    \@eadauthor={#2}
  19.269 +}
  19.270 +
  19.271 +\def\@author#1{\g@addto@macro\elsauthors{\normalsize%
  19.272 +    \def\baselinestretch{1}%
  19.273 +    \upshape\authorsep#1\unskip\textsuperscript{%
  19.274 +      \ifx\@fnmark\@empty\else\unskip\sep\@fnmark\let\sep=,\fi
  19.275 +      \ifx\@corref\@empty\else\unskip\sep\@corref\let\sep=,\fi
  19.276 +      }%
  19.277 +    \def\authorsep{\unskip,\space}%
  19.278 +    \global\let\@fnmark\@empty
  19.279 +    \global\let\sep\@empty}%
  19.280 +    \@eadauthor={#1}
  19.281 +}
  19.282 +
  19.283 +\def\elsaddress{}
  19.284 +\def\addsep{\par\vskip6pt}
  19.285 +\def\address{\@ifnextchar[{\@@address}{\@address}}
  19.286 +
  19.287 +\def\@alph#1{%
  19.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
  19.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
  19.290 +  y\or z%
  19.291 +  \or aa\or ab\or ac\or ad\or ae\or af\or ag\or ah\or ai\or aj\or
  19.292 +  ak\or al\or am\or an\or ao\or ap\or aq\or ar\or as\or at\or au\or
  19.293 +  av\or aw\or ax\or ay\or az%
  19.294 +  \or ba\or bb\or bc\or bd\or be\or bf\or bg\or bh\or bi\or bj\or
  19.295 +  bk\or bl\or bm\or bn\or bo\or bp\or bq\or br\or bs\or bt\or bu\or
  19.296 +  bv\or bw\or bx\or by\or bz%
  19.297 +  \or ca\or cb\or cc\or cd\or ce\or cf\or cg\or ch\or ci\or cj\or
  19.298 +  ck\or cl\or cm\or cn\or co\or cp\or cq\or cr\or cs\or ct\or cu\or
  19.299 +  cv\or cw\or cx\or cy\or cz%
  19.300 +  \or da\or db\or dc\or dd\or de\or df\or dg\or dh\or di\or dj\or
  19.301 +  dk\or dl\or dm\or dn\or do\or dp\or dq\or dr\or ds\or dt\or du\or
  19.302 +  dv\or dw\or dx\or dy\or dz%
  19.303 +  \or ea\or eb\or ec\or ed\or ee\or ef\or eg\or eh\or ei\or ej\or
  19.304 +  ek\or el\or em\or en\or eo\or ep\or eq\or er\or es\or et\or eu\or
  19.305 +  ev\or ew\or ex\or ey\or ez%
  19.306 +  \or fa\or fb\or fc\or fd\or fe\or ff\or fg\or fh\or fi\or fj\or
  19.307 +  fk\or fl\or fm\or fn\or fo\or fp\or fq\or fr\or fs\or ft\or fu\or
  19.308 +  fv\or fw\or fx\or fy\or fz%
  19.309 +  \or ga\or gb\or gc\or gd\or ge\or gf\or gg\or gh\or gi\or gj\or
  19.310 +  gk\or gl\or gm\or gn\or go\or gp\or gq\or gr\or gs\or gt\or gu\or
  19.311 +  gv\or gw\or gx\or gy\or gz%
  19.312 +  \else\@ctrerr\fi}
  19.313 +
  19.314 +\newcounter{affn}
  19.315 +\renewcommand\theaffn{\alph{affn}}
  19.316 +
  19.317 +\long\def\@@address[#1]#2{\g@addto@macro\elsaddress{%
  19.318 +    \def\baselinestretch{1}%
  19.319 +     \refstepcounter{affn}
  19.320 +     \xdef\@currentlabel{\theaffn}
  19.321 +     \elsLabel{#1}%
  19.322 +    \textsuperscript{\theaffn}#2\par}}
  19.323 +
  19.324 +\long\def\@address#1{\g@addto@macro\elsauthors{%
  19.325 +    \def\baselinestretch{1}%
  19.326 +    \addsep\footnotesize\itshape#1\def\addsep{\par\vskip6pt}%
  19.327 +    \def\authorsep{\par\vskip8pt}}}
  19.328 +
  19.329 +\newbox\absbox
  19.330 +\renewenvironment{abstract}{\global\setbox\absbox=\vbox\bgroup
  19.331 +  \hsize=\textwidth\def\baselinestretch{1}%
  19.332 +  \noindent\unskip\textbf{Abstract}
  19.333 + \par\medskip\noindent\unskip\ignorespaces}
  19.334 + {\egroup}
  19.335 +
  19.336 +\newbox\keybox
  19.337 +\def\keyword{%
  19.338 +  \def\sep{\unskip, }%
  19.339 + \def\MSC{\@ifnextchar[{\@MSC}{\@MSC[2000]}}
  19.340 +  \def\@MSC[##1]{\par\leavevmode\hbox {\it ##1~MSC:\space}}%
  19.341 +  \def\PACS{\par\leavevmode\hbox {\it PACS:\space}}%
  19.342 +  \def\JEL{\par\leavevmode\hbox {\it JEL:\space}}%
  19.343 +  \global\setbox\keybox=\vbox\bgroup\hsize=\textwidth
  19.344 +  \normalsize\normalfont\def\baselinestretch{1}
  19.345 +  \parskip\z@
  19.346 +  \noindent\textit{Keywords: }
  19.347 +  \raggedright                         % Keywords are not justified.
  19.348 +  \ignorespaces}
  19.349 +\def\endkeyword{\par \egroup}
  19.350 +
  19.351 +\newdimen\Columnwidth
  19.352 +\Columnwidth=\columnwidth
  19.353 +
  19.354 +\def\printFirstPageNotes{%
  19.355 +  \iflongmktitle
  19.356 +   \let\columnwidth=\textwidth\fi
  19.357 +  \ifx\@tnotes\@empty\else\@tnotes\fi
  19.358 +  \ifx\@nonumnotes\@empty\else\@nonumnotes\fi
  19.359 +  \ifx\@cornotes\@empty\else\@cornotes\fi
  19.360 +  \ifx\@elseads\@empty\relax\else
  19.361 +   \let\thefootnote\relax
  19.362 +   \footnotetext{\ifnum\theead=1\relax
  19.363 +      \textit{Email address:\space}\else
  19.364 +      \textit{Email addresses:\space}\fi
  19.365 +     \@elseads}\fi
  19.366 +  \ifx\@elsuads\@empty\relax\else
  19.367 +   \let\thefootnote\relax
  19.368 +   \footnotetext{\textit{URL:\space}%
  19.369 +     \@elsuads}\fi
  19.370 +  \ifx\@fnotes\@empty\else\@fnotes\fi
  19.371 +  \iflongmktitle\if@twocolumn
  19.372 +   \let\columnwidth=\Columnwidth\fi\fi
  19.373 +}
  19.374 +
  19.375 +\long\def\pprintMaketitle{\clearpage
  19.376 +  \iflongmktitle\if@twocolumn\let\columnwidth=\textwidth\fi\fi
  19.377 +  \resetTitleCounters
  19.378 +  \def\baselinestretch{1}%
  19.379 +  \printFirstPageNotes
  19.380 +  \begin{center}%
  19.381 + \thispagestyle{pprintTitle}%
  19.382 +   \def\baselinestretch{1}%
  19.383 +    \Large\@title\par\vskip18pt
  19.384 +    \normalsize\elsauthors\par\vskip10pt
  19.385 +    \footnotesize\itshape\elsaddress\par\vskip36pt
  19.386 +    \hrule\vskip12pt
  19.387 +    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
  19.388 +    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
  19.389 +    \hrule\vskip12pt
  19.390 +    \end{center}%
  19.391 +  \gdef\thefootnote{\arabic{footnote}}%
  19.392 +  }
  19.393 +
  19.394 +\def\printWarning{%
  19.395 +     \mbox{}\par\vfill\par\bgroup
  19.396 +     \fboxsep12pt\fboxrule1pt
  19.397 +     \hspace*{.18\textwidth}
  19.398 +     \fcolorbox{gray50}{gray10}{\box\warnbox}
  19.399 +     \egroup\par\vfill\thispagestyle{empty}
  19.400 +     \setcounter{page}{0}
  19.401 +     \clearpage}
  19.402 +
  19.403 +\long\def\finalMaketitle{%
  19.404 +  \resetTitleCounters
  19.405 +  \def\baselinestretch{1}%
  19.406 +   \MaketitleBox
  19.407 +   \thispagestyle{pprintTitle}%
  19.408 +  \gdef\thefootnote{\arabic{footnote}}%
  19.409 +  }
  19.410 +
  19.411 +\long\def\MaketitleBox{%
  19.412 +  \resetTitleCounters
  19.413 +  \def\baselinestretch{1}%
  19.414 +  \begin{center}%
  19.415 +   \def\baselinestretch{1}%
  19.416 +    \Large\@title\par\vskip18pt
  19.417 +    \normalsize\elsauthors\par\vskip10pt
  19.418 +    \footnotesize\itshape\elsaddress\par\vskip36pt
  19.419 +    \hrule\vskip12pt
  19.420 +    \ifvoid\absbox\else\unvbox\absbox\par\vskip10pt\fi
  19.421 +    \ifvoid\keybox\else\unvbox\keybox\par\vskip10pt\fi
  19.422 +    \hrule\vskip12pt
  19.423 +    \end{center}%
  19.424 +  }
  19.425 +
  19.426 +\def\FNtext#1{\par\bgroup\footnotesize#1\egroup}
  19.427 +\newdimen\space@left
  19.428 +\def\alarm#1{\typeout{******************************}%
  19.429 +             \typeout{#1}%
  19.430 +             \typeout{******************************}%
  19.431 +}
  19.432 +\long\def\getSpaceLeft{%\global\@twocolumnfalse%
  19.433 +   \global\setbox0=\vbox{\hsize=\textwidth\MaketitleBox}%
  19.434 +   \global\setbox1=\vbox{\hsize=\textwidth
  19.435 +    \let\footnotetext\FNtext
  19.436 +    \printFirstPageNotes}%
  19.437 +    \xdef\noteheight{\the\ht1}%
  19.438 +    \xdef\titleheight{\the\ht0}%
  19.439 +    \@tempdima=\vsize
  19.440 +    \advance\@tempdima-\noteheight
  19.441 +    \advance\@tempdima-1\baselineskip
  19.442 +}
  19.443 +
  19.444 +  \skip\footins=24pt
  19.445 +
  19.446 +\newbox\els@boxa
  19.447 +\newbox\els@boxb
  19.448 +
  19.449 +\ifpreprint
  19.450 +  \def\maketitle{\pprintMaketitle}
  19.451 +  \else
  19.452 +   \ifnum\jtype=1
  19.453 +    \def\maketitle{%
  19.454 +      \iflongmktitle\getSpaceLeft
  19.455 +       \global\setbox\els@boxa=\vsplit0 to \@tempdima
  19.456 +       \box\els@boxa\par\resetTitleCounters
  19.457 +       \thispagestyle{pprintTitle}%
  19.458 +       \printFirstPageNotes
  19.459 +       \box0%
  19.460 +      \else
  19.461 +       \finalMaketitle\printFirstPageNotes
  19.462 +      \fi
  19.463 +    \gdef\thefootnote{\arabic{footnote}}}%
  19.464 +  \else
  19.465 + \ifnum\jtype=5
  19.466 +    \def\maketitle{%
  19.467 +      \iflongmktitle\getSpaceLeft
  19.468 +       \global\setbox\els@boxa=\vsplit0 to \@tempdima
  19.469 +       \box\els@boxa\par\resetTitleCounters
  19.470 +       \thispagestyle{pprintTitle}%
  19.471 +       \printFirstPageNotes
  19.472 +       \twocolumn[\box0]%\printFirstPageNotes
  19.473 +      \else
  19.474 +       \twocolumn[\finalMaketitle]\printFirstPageNotes
  19.475 +     \fi
  19.476 +     \gdef\thefootnote{\arabic{footnote}}}
  19.477 +  \else
  19.478 +  \if@twocolumn
  19.479 +    \def\maketitle{%
  19.480 +      \iflongmktitle\getSpaceLeft
  19.481 +       \global\setbox\els@boxa=\vsplit0 to \@tempdima
  19.482 +       \box\els@boxa\par\resetTitleCounters
  19.483 +       \thispagestyle{pprintTitle}%
  19.484 +       \printFirstPageNotes
  19.485 +       \twocolumn[\box0]%
  19.486 +      \else
  19.487 +       \twocolumn[\finalMaketitle]\printFirstPageNotes
  19.488 +      \fi
  19.489 +     \gdef\thefootnote{\arabic{footnote}}}%
  19.490 +   \else
  19.491 +    \def\maketitle{%
  19.492 +      \iflongmktitle\getSpaceLeft
  19.493 +       \global\setbox\els@boxa=\vsplit0 to \@tempdima
  19.494 +       \box\els@boxa\par\resetTitleCounters
  19.495 +       \thispagestyle{pprintTitle}%
  19.496 +       \printFirstPageNotes
  19.497 +       \box0%
  19.498 +     \else
  19.499 +       \finalMaketitle\printFirstPageNotes
  19.500 +      \fi
  19.501 +    \gdef\thefootnote{\arabic{footnote}}}%
  19.502 +   \fi
  19.503 +  \fi
  19.504 + \fi
  19.505 +\fi
  19.506 +%    \end{macrocode}
  19.507 +%    
  19.508 +%\section{Headers/footers}
  19.509 +%
  19.510 +%    \begin{macrocode}
  19.511 +\def\ps@pprintTitle{%
  19.512 +     \let\@oddhead\@empty
  19.513 +     \let\@evenhead\@empty
  19.514 +     \def\@oddfoot{\footnotesize\itshape
  19.515 +       Preprint submitted to \ifx\@journal\@empty Elsevier
  19.516 +       \else\@journal\fi\hfill\today}%
  19.517 +     \let\@evenfoot\@oddfoot}
  19.518 +%    \end{macrocode}
  19.519 +%
  19.520 +% \section{Section headings}
  19.521 +%
  19.522 +%    \begin{macrocode}
  19.523 +\def\@seccntDot{.}
  19.524 +\def\@seccntformat#1{\csname the#1\endcsname\@seccntDot\hskip 0.5em}
  19.525 +
  19.526 +\renewcommand\section{\@startsection {section}{1}{\z@}%
  19.527 +           {18\p@ \@plus 6\p@ \@minus 3\p@}%
  19.528 +           {9\p@ \@plus 6\p@ \@minus 3\p@}%
  19.529 +           {\normalsize\bfseries\boldmath}}
  19.530 +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
  19.531 +           {12\p@ \@plus 6\p@ \@minus 3\p@}%
  19.532 +           {3\p@ \@plus 6\p@ \@minus 3\p@}%
  19.533 +           {\normalfont\normalsize\itshape}}
  19.534 +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
  19.535 +           {12\p@ \@plus 6\p@ \@minus 3\p@}%
  19.536 +           {\p@}%
  19.537 +           {\normalfont\normalsize\itshape}}
  19.538 +
  19.539 +\def\paragraph{\secdef{\els@aparagraph}{\els@bparagraph}}
  19.540 +\def\els@aparagraph[#1]#2{\elsparagraph[#1]{#2.}}
  19.541 +\def\els@bparagraph#1{\elsparagraph*{#1.}}
  19.542 +
  19.543 +\newcommand\elsparagraph{\@startsection{paragraph}{4}{0\z@}%
  19.544 +           {10\p@ \@plus 6\p@ \@minus 3\p@}%
  19.545 +           {-6\p@}%
  19.546 +           {\normalfont\itshape}}
  19.547 +%    \end{macrocode}
  19.548 +%
  19.549 +%\section{List environment}
  19.550 +%
  19.551 +%    \begin{macrocode}
  19.552 +\newdimen\leftMargin
  19.553 +\leftMargin=2em
  19.554 +\newtoks\@enLab  %\newtoks\@enfont
  19.555 +\def\@enQmark{?}
  19.556 +\def\@enLabel#1#2{%
  19.557 +  \edef\@enThe{\noexpand#1{\@enumctr}}%
  19.558 +  \@enLab\expandafter{\the\@enLab\csname the\@enumctr\endcsname}%
  19.559 +  \@enloop}
  19.560 +\def\@enSpace{\afterassignment\@enSp@ce\let\@tempa= }
  19.561 +\def\@enSp@ce{\@enLab\expandafter{\the\@enLab\space}\@enloop}
  19.562 +\def\@enGroup#1{\@enLab\expandafter{\the\@enLab{#1}}\@enloop}
  19.563 +\def\@enOther#1{\@enLab\expandafter{\the\@enLab#1}\@enloop}
  19.564 +\def\@enloop{\futurelet\@entemp\@enloop@}
  19.565 +\def\@enloop@{%
  19.566 +  \ifx A\@entemp         \def\@tempa{\@enLabel\Alph  }\else
  19.567 +  \ifx a\@entemp         \def\@tempa{\@enLabel\alph  }\else
  19.568 +  \ifx i\@entemp         \def\@tempa{\@enLabel\roman }\else
  19.569 +  \ifx I\@entemp         \def\@tempa{\@enLabel\Roman }\else
  19.570 +  \ifx 1\@entemp         \def\@tempa{\@enLabel\arabic}\else
  19.571 +  \ifx \@sptoken\@entemp \let\@tempa\@enSpace         \else
  19.572 +  \ifx \bgroup\@entemp   \let\@tempa\@enGroup         \else
  19.573 +  \ifx \@enum@\@entemp   \let\@tempa\@gobble          \else
  19.574 +                         \let\@tempa\@enOther
  19.575 +             \fi\fi\fi\fi\fi\fi\fi\fi
  19.576 +  \@tempa}
  19.577 +\newlength{\@sep} \newlength{\@@sep}
  19.578 +\setlength{\@sep}{.5\baselineskip plus.2\baselineskip
  19.579 +            minus.2\baselineskip}
  19.580 +\setlength{\@@sep}{.1\baselineskip plus.01\baselineskip
  19.581 +            minus.05\baselineskip}
  19.582 +\providecommand{\sfbc}{\rmfamily\upshape}
  19.583 +\providecommand{\sfn}{\rmfamily\upshape}
  19.584 +\def\@enfont{\ifnum \@enumdepth >1\let\@nxt\sfn \else\let\@nxt\sfbc \fi\@nxt}
  19.585 +\def\enumerate{%
  19.586 +   \ifnum \@enumdepth >3 \@toodeep\else
  19.587 +      \advance\@enumdepth \@ne
  19.588 +      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\fi
  19.589 +   \@ifnextchar[{\@@enum@}{\@enum@}}
  19.590 +\def\@@enum@[#1]{%
  19.591 +  \@enLab{}\let\@enThe\@enQmark
  19.592 +  \@enloop#1\@enum@
  19.593 +  \ifx\@enThe\@enQmark\@warning{The counter will not be printed.%
  19.594 +   ^^J\space\@spaces\@spaces\@spaces The label is: \the\@enLab}\fi
  19.595 +  \expandafter\edef\csname label\@enumctr\endcsname{\the\@enLab}%
  19.596 +  \expandafter\let\csname the\@enumctr\endcsname\@enThe
  19.597 +  \csname c@\@enumctr\endcsname7
  19.598 +  \expandafter\settowidth
  19.599 +            \csname leftmargin\romannumeral\@enumdepth\endcsname
  19.600 +            {\the\@enLab\hskip\labelsep}%
  19.601 +  \@enum@}
  19.602 +\def\@enum@{\list{{\@enfont\csname label\@enumctr\endcsname}}%
  19.603 +           {\usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}%
  19.604 +     \ifnum \@enumdepth>1\setlength{\topsep}{\@@sep}\else
  19.605 +           \setlength{\topsep}{\@sep}\fi
  19.606 +     \ifnum \@enumdepth>1\setlength{\itemsep}{0pt plus1pt minus1pt}%
  19.607 +      \else \setlength{\itemsep}{\@@sep}\fi
  19.608 +     %\setlength\leftmargin{\leftMargin}%%%{1.8em}
  19.609 +     \setlength{\parsep}{0pt plus1pt minus1pt}%
  19.610 +     \setlength{\parskip}{0pt plus1pt minus1pt}
  19.611 +                   }}
  19.612 +
  19.613 +\def\endenumerate{\par\ifnum \@enumdepth >1\addvspace{\@@sep}\else
  19.614 +           \addvspace{\@sep}\fi \endlist}
  19.615 +
  19.616 +\def\sitem{\@noitemargtrue\@item[\@itemlabel *]}
  19.617 +
  19.618 +\def\itemize{\@ifnextchar[{\@Itemize}{\@Itemize[]}}
  19.619 +
  19.620 +\def\@Itemize[#1]{\def\next{#1}%
  19.621 +  \ifnum \@itemdepth >\thr@@\@toodeep\else
  19.622 +   \advance\@itemdepth\@ne
  19.623 +  \ifx\next\@empty\else\expandafter\def\csname
  19.624 +   labelitem\romannumeral\the\@itemdepth\endcsname{#1}\fi%
  19.625 +  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
  19.626 +  \expandafter\list\csname\@itemitem\endcsname
  19.627 +  {\def\makelabel##1{\hss\llap{##1}}}%
  19.628 + \fi}
  19.629 +%    \end{macrocode}
  19.630 +%
  19.631 +%\section{Theorem environment}
  19.632 +%
  19.633 +%    \begin{macrocode}
  19.634 +\def\newdefinition#1{%
  19.635 +  \@ifnextchar[{\@odfn{#1}}{\@ndfn{#1}}}%]
  19.636 +\def\@ndfn#1#2{%
  19.637 +  \@ifnextchar[{\@xndfn{#1}{#2}}{\@yndfn{#1}{#2}}}
  19.638 +\def\@xndfn#1#2[#3]{%
  19.639 +  \expandafter\@ifdefinable\csname #1\endcsname
  19.640 +    {\@definecounter{#1}\@newctr{#1}[#3]%
  19.641 +     \expandafter\xdef\csname the#1\endcsname{%
  19.642 +       \expandafter\noexpand\csname the#3\endcsname \@dfncountersep
  19.643 +          \@dfncounter{#1}}%
  19.644 +     \global\@namedef{#1}{\@dfn{#1}{#2}}%
  19.645 +     \global\@namedef{end#1}{\@enddefinition}}}
  19.646 +\def\@yndfn#1#2{%
  19.647 +  \expandafter\@ifdefinable\csname #1\endcsname
  19.648 +    {\@definecounter{#1}%
  19.649 +     \expandafter\xdef\csname the#1\endcsname{\@dfncounter{#1}}%
  19.650 +     \global\@namedef{#1}{\@dfn{#1}{#2}}%
  19.651 +     \global\@namedef{end#1}{\@enddefinition}}}
  19.652 +\def\@odfn#1[#2]#3{%
  19.653 +  \@ifundefined{c@#2}{\@nocounterr{#2}}%
  19.654 +    {\expandafter\@ifdefinable\csname #1\endcsname
  19.655 +    {\global\@namedef{the#1}{\@nameuse{the#2}}
  19.656 +  \global\@namedef{#1}{\@dfn{#2}{#3}}%
  19.657 +  \global\@namedef{end#1}{\@enddefinition}}}}
  19.658 +\def\@dfn#1#2{%
  19.659 +  \refstepcounter{#1}%
  19.660 +  \@ifnextchar[{\@ydfn{#1}{#2}}{\@xdfn{#1}{#2}}}
  19.661 +\def\@xdfn#1#2{%
  19.662 +  \@begindefinition{#2}{\csname the#1\endcsname}\ignorespaces}
  19.663 +\def\@ydfn#1#2[#3]{%
  19.664 +  \@opargbegindefinition{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
  19.665 +\def\@dfncounter#1{\noexpand\arabic{#1}}
  19.666 +\def\@dfncountersep{.}
  19.667 +\def\@begindefinition#1#2{\trivlist
  19.668 +   \item[\hskip\labelsep{\bfseries #1\ #2.}]\upshape}
  19.669 +\def\@opargbegindefinition#1#2#3{\trivlist
  19.670 +      \item[\hskip\labelsep{\bfseries #1\ #2\ (#3).}]\upshape}
  19.671 +\def\@enddefinition{\endtrivlist}
  19.672 +
  19.673 +\def\@begintheorem#1#2{\trivlist
  19.674 +  \let\baselinestretch\@blstr
  19.675 +   \item[\hskip \labelsep{\bfseries #1\ #2.}]\itshape}
  19.676 +\def\@opargbegintheorem#1#2#3{\trivlist
  19.677 +  \let\baselinestretch\@blstr
  19.678 +      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3).}]\itshape}
  19.679 +
  19.680 +\def\newproof#1{%
  19.681 +  \@ifnextchar[{\@oprf{#1}}{\@nprf{#1}}}
  19.682 +\def\@nprf#1#2{%
  19.683 +  \@ifnextchar[{\@xnprf{#1}{#2}}{\@ynprf{#1}{#2}}}
  19.684 +\def\@xnprf#1#2[#3]{%
  19.685 +  \expandafter\@ifdefinable\csname #1\endcsname
  19.686 +    {\@definecounter{#1}\@newctr{#1}[#3]%
  19.687 +     \expandafter\xdef\csname the#1\endcsname{%
  19.688 +       \expandafter\noexpand\csname the#3\endcsname \@prfcountersep
  19.689 +          \@prfcounter{#1}}%
  19.690 +     \global\@namedef{#1}{\@prf{#1}{#2}}%
  19.691 +     \global\@namedef{end#1}{\@endproof}}}
  19.692 +\def\@ynprf#1#2{%
  19.693 +  \expandafter\@ifdefinable\csname #1\endcsname
  19.694 +    {\@definecounter{#1}%
  19.695 +     \expandafter\xdef\csname the#1\endcsname{\@prfcounter{#1}}%
  19.696 +     \global\@namedef{#1}{\@prf{#1}{#2}}%
  19.697 +     \global\@namedef{end#1}{\@endproof}}}
  19.698 +\def\@oprf#1[#2]#3{%
  19.699 +  \@ifundefined{c@#2}{\@nocounterr{#2}}%
  19.700 +    {\expandafter\@ifdefinable\csname #1\endcsname
  19.701 +    {\global\@namedef{the#1}{\@nameuse{the#2}}%
  19.702 +  \global\@namedef{#1}{\@prf{#2}{#3}}%
  19.703 +  \global\@namedef{end#1}{\@endproof}}}}
  19.704 +\def\@prf#1#2{%
  19.705 +  \refstepcounter{#1}%
  19.706 +  \@ifnextchar[{\@yprf{#1}{#2}}{\@xprf{#1}{#2}}}
  19.707 +\def\@xprf#1#2{%
  19.708 +  \@beginproof{#2}{\csname the#1\endcsname}\ignorespaces}
  19.709 +\def\@yprf#1#2[#3]{%
  19.710 +  \@opargbeginproof{#2}{\csname the#1\endcsname}{#3}\ignorespaces}
  19.711 +\def\@prfcounter#1{\noexpand\arabic{#1}}
  19.712 +\def\@prfcountersep{.}
  19.713 +\def\@beginproof#1#2{\trivlist\let\baselinestretch\@blstr
  19.714 +   \item[\hskip \labelsep{\scshape #1.}]\rmfamily}
  19.715 +\def\@opargbeginproof#1#2#3{\trivlist\let\baselinestretch\@blstr
  19.716 +      \item[\hskip \labelsep{\scshape #1\ (#3).}]\rmfamily}
  19.717 +\def\@endproof{\endtrivlist}
  19.718 +\newcommand*{\qed}{\hbox{}\hfill$\Box$}
  19.719 +
  19.720 +\@ifundefined{@biboptions}{\xdef\@biboptions{numbers}}{}
  19.721 +\InputIfFileExists{\jobname.spl}{}{}
  19.722 +\RequirePackage[\@biboptions]{natbib}
  19.723 +
  19.724 +\newwrite\splwrite
  19.725 +\immediate\openout\splwrite=\jobname.spl
  19.726 +\def\biboptions#1{\def\next{#1}\immediate\write\splwrite{%
  19.727 +   \string\g@addto@macro\string\@biboptions{%
  19.728 +    ,\expandafter\strip@prefix\meaning\next}}}
  19.729 +
  19.730 +\let\baselinestretch=\@blstr
  19.731 +
  19.732 +%    \end{macrocode}
  19.733 +%
  19.734 +%\section{Page dimensions and margins for final form}
  19.735 +%
  19.736 +%\subsection{Option 1p}
  19.737 +%
  19.738 +%    \begin{macrocode}
  19.739 +\ifnum\jtype=1
  19.740 + \RequirePackage{geometry}
  19.741 + \geometry{twoside,
  19.742 +  paperwidth=210mm,
  19.743 +  paperheight=297mm,
  19.744 +  textheight=562pt,
  19.745 +  textwidth=384pt,
  19.746 +  centering,
  19.747 +  headheight=50pt,
  19.748 +  headsep=12pt,
  19.749 +  footskip=12pt,
  19.750 +  footnotesep=24pt plus 2pt minus 12pt,
  19.751 + }
  19.752 + \global\let\bibfont=\footnotesize
  19.753 + \global\bibsep=0pt
  19.754 + \if@twocolumn\global\@twocolumnfalse\fi
  19.755 +%
  19.756 +%    \end{macrocode}
  19.757 +%
  19.758 +%\subsection{Option '3p'}
  19.759 +%
  19.760 +%    \begin{macrocode}
  19.761 +\else\ifnum\jtype=3
  19.762 + \RequirePackage{geometry}
  19.763 + \geometry{twoside,
  19.764 +  paperwidth=210mm,
  19.765 +  paperheight=297mm,
  19.766 +  textheight=622pt,
  19.767 +  textwidth=468pt,
  19.768 +  centering,
  19.769 +  headheight=50pt,
  19.770 +  headsep=12pt,
  19.771 +  footskip=18pt,
  19.772 +  footnotesep=24pt plus 2pt minus 12pt,
  19.773 +  columnsep=2pc
  19.774 + }
  19.775 + \global\let\bibfont=\footnotesize
  19.776 + \global\bibsep=0pt
  19.777 + \if@twocolumn\input{fleqn.clo}\fi
  19.778 +%    \end{macrocode}
  19.779 +%
  19.780 +%\subsection{Option '5p'}
  19.781 +%
  19.782 +%    \begin{macrocode}
  19.783 +\else\ifnum\jtype=5
  19.784 + \RequirePackage{geometry}
  19.785 + \geometry{twoside,
  19.786 +  paperwidth=210mm,
  19.787 +  paperheight=297mm,
  19.788 +  textheight=682pt,
  19.789 +  textwidth=522pt,
  19.790 +  centering,
  19.791 + headheight=50pt,
  19.792 +  headsep=12pt,
  19.793 +  footskip=18pt,
  19.794 +  footnotesep=24pt plus 2pt minus 12pt,
  19.795 +  columnsep=18pt
  19.796 + }%
  19.797 + \global\let\bibfont=\footnotesize
  19.798 + \global\bibsep=0pt
  19.799 + \input{fleqn.clo}
  19.800 + \global\@twocolumntrue
  19.801 +%%
  19.802 +%% End of option '5p'
  19.803 +%%
  19.804 +\fi\fi\fi
  19.805 +%    \end{macrocode}
  19.806 +%
  19.807 +%\section{Other items}
  19.808 +%
  19.809 +%    \begin{macrocode}
  19.810 +\def\journal#1{\gdef\@journal{#1}}
  19.811 + \let\@journal\@empty
  19.812 +\newenvironment{frontmatter}{}{\maketitle}
  19.813 +
  19.814 +\long\def\@makecaption#1#2{%
  19.815 +  \vskip\abovecaptionskip\footnotesize
  19.816 +  \sbox\@tempboxa{#1: #2}%
  19.817 +  \ifdim \wd\@tempboxa >\hsize
  19.818 +    #1: #2\par
  19.819 +  \else
  19.820 +    \global \@minipagefalse
  19.821 +    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  19.822 +  \fi
  19.823 +  \vskip\belowcaptionskip}
  19.824 +
  19.825 +\AtBeginDocument{\@ifpackageloaded{hyperref}
  19.826 +  {\def\@linkcolor{blue}
  19.827 +   \def\@anchorcolor{blue}
  19.828 +   \def\@citecolor{blue}
  19.829 +   \def\@filecolor{blue}
  19.830 +   \def\@urlcolor{blue}
  19.831 +   \def\@menucolor{blue}
  19.832 +   \def\@pagecolor{blue}
  19.833 +\begingroup
  19.834 +  \@makeother\`%
  19.835 +  \@makeother\=%
  19.836 +  \edef\x{%
  19.837 +    \edef\noexpand\x{%
  19.838 +      \endgroup
  19.839 +      \noexpand\toks@{%
  19.840 +        \catcode 96=\noexpand\the\catcode`\noexpand\`\relax
  19.841 +        \catcode 61=\noexpand\the\catcode`\noexpand\=\relax
  19.842 +      }%
  19.843 +    }%
  19.844 +    \noexpand\x
  19.845 +  }%
  19.846 +\x
  19.847 +\@makeother\`
  19.848 +\@makeother\=
  19.849 +}{}}
  19.850 +%%
  19.851 +\renewcommand\appendix{\par
  19.852 +  \setcounter{section}{0}%
  19.853 +  \setcounter{subsection}{0}%
  19.854 +  \setcounter{equation}{0}
  19.855 +  \gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
  19.856 +  \gdef\thetable{\@Alph\c@section.\arabic{table}}%
  19.857 +  \gdef\thesection{\appendixname\@Alph\c@section}%
  19.858 +  \@addtoreset{equation}{section}%
  19.859 +  \gdef\theequation{\@Alph\c@section.\arabic{equation}}%
  19.860 +}
  19.861 +\def\appendixname{Appendix }
  19.862 +
  19.863 +%% Added for work with amsrefs.sty
  19.864 +
  19.865 +\@ifpackageloaded{amsrefs}%
  19.866 +  {}
  19.867 +  {\let\bibsection\relax%
  19.868 +  \AtBeginDocument{\def\cites@b#1#2,#3{%
  19.869 +    \begingroup[%
  19.870 +        \toks@{\InnerCite{#2}#1}%
  19.871 +        \ifx\@empty#3\@xp\@gobble\fi
  19.872 +        \cites@c#3%
  19.873 +}}}
  19.874 +%
  19.875 +%%
  19.876 +%</class>
  19.877 +%
  19.878 +%    \end{macrocode}
  19.879 +% \Finale
  19.880 +\endinput
  19.881 +
  19.882 +%%
  19.883 +%% End of file 'elsarticle.dtx'
  19.884 +%%
  19.885 +
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/elsarticle/elsarticle.ins	Fri Nov 18 16:18:02 2016 +0100
    20.3 @@ -0,0 +1,66 @@
    20.4 +%%
    20.5 +%% This file will generate fast loadable files and documentation
    20.6 +%% driver files from the doc files in this package when run through
    20.7 +%% LaTeX or TeX.
    20.8 +%%
    20.9 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
   20.10 +%%
   20.11 +%% This file is part of the 'Elsarticle Bundle'.
   20.12 +%% ---------------------------------------------
   20.13 +%%
   20.14 +%% It may be distributed under the conditions of the LaTeX Project Public
   20.15 +%% License, either version 1.2 of this license or (at your option) any
   20.16 +%% later version.  The latest version of this license is in
   20.17 +%%    http://www.latex-project.org/lppl.txt
   20.18 +%% and version 1.2 or later is part of all distributions of LaTeX
   20.19 +%% version 1999/12/01 or later.
   20.20 +%%
   20.21 +%% The list of all files belonging to the 'Elsarticle Bundle' is
   20.22 +%% given in the file 'manifest.txt'.
   20.23 +%%
   20.24 +%%
   20.25 +%%
   20.26 +\input docstrip.tex
   20.27 +%%\keepsilent
   20.28 +
   20.29 +\preamble
   20.30 +
   20.31 +Copyright 2007, 2008, 2009 Elsevier Ltd
   20.32 +
   20.33 +This file is part of the 'Elsarticle Bundle'.
   20.34 +-------------------------------------------
   20.35 +
   20.36 +It may be distributed under the conditions of the LaTeX Project Public
   20.37 +License, either version 1.2 of this license or (at your option) any
   20.38 +later version.  The latest version of this license is in
   20.39 +   http://www.latex-project.org/lppl.txt
   20.40 +and version 1.2 or later is part of all distributions of LaTeX
   20.41 +version 1999/12/01 or later.
   20.42 +
   20.43 +The list of all files belonging to the 'Elsarticle Bundle' is
   20.44 +given in the file `manifest.txt'.
   20.45 +
   20.46 +\endpreamble
   20.47 +
   20.48 +\askforoverwritefalse
   20.49 +
   20.50 +\generate{\file{elsarticle.cls}{\from{elsarticle.dtx}{class}}}
   20.51 +\obeyspaces
   20.52 +\Msg{*************************************************************}
   20.53 +\Msg{*                                                           *}
   20.54 +\Msg{* To finish the installation you have to move the following *}
   20.55 +\Msg{* file into a directory searched by TeX:                    *}
   20.56 +\Msg{*                                                           *}
   20.57 +\Msg{*     elsarticle.cls                                        *}
   20.58 +\Msg{*         and                                               *}
   20.59 +\Msg{*     elsarticle-*.bst                                      *}
   20.60 +\Msg{*                                                           *}
   20.61 +\Msg{* To produce the documentation go to the ../contrib folder  *}
   20.62 +\Msg{* and run the file elsdoc.tex through pdfLaTeX              *}
   20.63 +\Msg{* or use the Makefile which is far more easier.             *}
   20.64 +\Msg{*                                                           *}
   20.65 +\Msg{* Happy TeXing!                                             *}
   20.66 +\Msg{*                                                           *}
   20.67 +\Msg{*************************************************************}
   20.68 +
   20.69 +\endbatchfile
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/elsarticle/manifest.txt	Fri Nov 18 16:18:02 2016 +0100
    21.3 @@ -0,0 +1,82 @@
    21.4 +% \iffalse meta-comment
    21.5 +%
    21.6 +% 
    21.7 +%
    21.8 +% Copyright 2007, 2008, 2009 Elsevier Ltd
    21.9 +%
   21.10 +% This file is part of the 'Elsarticle Bundle'.
   21.11 +% ---------------------------------------------
   21.12 +%
   21.13 +% It may be distributed and/or modified under the
   21.14 +% conditions of the LaTeX Project Public License, either version 1.2
   21.15 +% of this license or (at your option) any later version.
   21.16 +% The latest version of this license is in
   21.17 +%    http://www.latex-project.org/lppl.txt
   21.18 +% and version 1.2 or later is part of all distributions of LaTeX
   21.19 +% version 1999/12/01 or later.
   21.20 +%
   21.21 +% The list of all files belonging to the LaTeX 'Elsarticle Bundle' is
   21.22 +% given in the file `manifest.txt'.
   21.23 +%
   21.24 +% \fi
   21.25 +%
   21.26 +% CONTENTS OF THE ELSARTICLE BUNDLE
   21.27 +% ===============================
   21.28 +
   21.29 +Directory elsarticle/
   21.30 +
   21.31 +elsarticle.dtx
   21.32 +        Main package with driver
   21.33 +
   21.34 +elsarticle.ins
   21.35 +  installer for elsarticle.dtx
   21.36 +
   21.37 +elsarticle-harv.bst
   21.38 +  bibliographic style for author-year citation
   21.39 +
   21.40 +elsarticle-num.bst
   21.41 +  bibliographic style for numbered citation
   21.42 +
   21.43 +elsarticle-num-names.bst
   21.44 +  bibliographic style for numbered citation + new natibi options
   21.45 +
   21.46 +elsarticle-template-harv.tex
   21.47 +  article template for a document with author-year citation
   21.48 + 
   21.49 +elsarticle-template-num.tex
   21.50 +  article template for a document with numbered citation
   21.51 +
   21.52 +manifest.txt
   21.53 +  this file
   21.54 +
   21.55 +README
   21.56 +  small readme documentation
   21.57 +
   21.58 +Directory elsarticle/doc/
   21.59 +
   21.60 +The following files are graphic files needed for creating pdf output
   21.61 +of the documentation from elsdoc.tex:
   21.62 +
   21.63 + els1.pdf
   21.64 + els-1p.pdf
   21.65 + els2.pdf
   21.66 + els-3pd.pdf
   21.67 + jfigs.pdf
   21.68 +
   21.69 +elsdoc.tex  -- LaTeX source file of documentation
   21.70 +elsdoc.pdf  -- documentation for elsarticle.cls
   21.71 +
   21.72 +The following files are files written out every time elsdoc.tex is
   21.73 +compiled:
   21.74 +
   21.75 + elsdoc.aux
   21.76 + elsdoc.log
   21.77 + elsdoc.out
   21.78 + tmp.tex
   21.79 +
   21.80 +Auxiliary packages needed to generate pdf output from elsdoc.tex:
   21.81 +
   21.82 + rvdtx.sty
   21.83 + enum.sty
   21.84 + pdfwidgets.sty
   21.85 +