1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/elsarticle/elsarticle-num-names.bst Fri Nov 18 16:18:02 2016 +0100
1.3 @@ -0,0 +1,1461 @@
1.4 +%%
1.5 +%% Copyright 2007, 2008, 2009 Elsevier Ltd
1.6 +%%
1.7 +%% This file is part of the 'Elsarticle Bundle'.
1.8 +%% ---------------------------------------------
1.9 +%%
1.10 +%% It may be distributed under the conditions of the LaTeX Project Public
1.11 +%% License, either version 1.2 of this license or (at your option) any
1.12 +%% later version. The latest version of this license is in
1.13 +%% http://www.latex-project.org/lppl.txt
1.14 +%% and version 1.2 or later is part of all distributions of LaTeX
1.15 +%% version 1999/12/01 or later.
1.16 +%%
1.17 +%% The list of all files belonging to the 'Elsarticle Bundle' is
1.18 +%% given in the file `manifest.txt'.
1.19 +%%
1.20 +%%
1.21 +%% This is file `elsearticle-num-names.bst',
1.22 +%% generated with the docstrip utility.
1.23 +%%
1.24 +%% The original source files were:
1.25 +%%
1.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,,{}')
1.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,,{}')
1.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,,{}')
1.29 +%% ----------------------------------------
1.30 +%% *** Journal of Sound and Vibration ***
1.31 +%%
1.32 +%% Copyright 1994-2004 Patrick W Daly
1.33 + % ===============================================================
1.34 + % IMPORTANT NOTICE:
1.35 + % This bibliographic style (bst) file has been generated from one or
1.36 + % more master bibliographic style (mbs) files, listed above.
1.37 + %
1.38 + % This generated file can be redistributed and/or modified under the terms
1.39 + % of the LaTeX Project Public License Distributed from CTAN
1.40 + % archives in directory macros/latex/base/lppl.txt; either
1.41 + % version 1 of the License, or any later version.
1.42 + % ===============================================================
1.43 + % Name and version information of the main mbs file:
1.44 + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)]
1.45 + % For use with BibTeX version 0.99a or later
1.46 + %-------------------------------------------------------------------
1.47 +
1.48 +ENTRY
1.49 + { address
1.50 + author
1.51 + booktitle
1.52 + chapter
1.53 + doi
1.54 + edition
1.55 + editor
1.56 + eid
1.57 + howpublished
1.58 + institution
1.59 + isbn
1.60 + issn
1.61 + journal
1.62 + key
1.63 + month
1.64 + note
1.65 + number
1.66 + organization
1.67 + pages
1.68 + publisher
1.69 + school
1.70 + series
1.71 + title
1.72 + type
1.73 + url
1.74 + volume
1.75 + year
1.76 + }
1.77 + {}
1.78 + { label extra.label sort.label short.list }
1.79 +INTEGERS { output.state before.all mid.sentence after.sentence after.block }
1.80 +FUNCTION {init.state.consts}
1.81 +{ #0 'before.all :=
1.82 + #1 'mid.sentence :=
1.83 + #2 'after.sentence :=
1.84 + #3 'after.block :=
1.85 +}
1.86 +STRINGS { s t}
1.87 +FUNCTION {output.nonnull}
1.88 +{ 's :=
1.89 + output.state mid.sentence =
1.90 + { ", " * write$ }
1.91 + { output.state after.block =
1.92 + { add.period$ write$
1.93 + newline$
1.94 + "\newblock " write$
1.95 + }
1.96 + { output.state before.all =
1.97 + 'write$
1.98 + { add.period$ " " * write$ }
1.99 + if$
1.100 + }
1.101 + if$
1.102 + mid.sentence 'output.state :=
1.103 + }
1.104 + if$
1.105 + s
1.106 +}
1.107 +FUNCTION {output}
1.108 +{ duplicate$ empty$
1.109 + 'pop$
1.110 + 'output.nonnull
1.111 + if$
1.112 +}
1.113 +FUNCTION {output.check}
1.114 +{ 't :=
1.115 + duplicate$ empty$
1.116 + { pop$ "empty " t * " in " * cite$ * warning$ }
1.117 + 'output.nonnull
1.118 + if$
1.119 +}
1.120 +FUNCTION {fin.entry}
1.121 +{ add.period$
1.122 + write$
1.123 + newline$
1.124 +}
1.125 +
1.126 +FUNCTION {new.block}
1.127 +{ output.state before.all =
1.128 + 'skip$
1.129 + { after.block 'output.state := }
1.130 + if$
1.131 +}
1.132 +FUNCTION {new.sentence}
1.133 +{ output.state after.block =
1.134 + 'skip$
1.135 + { output.state before.all =
1.136 + 'skip$
1.137 + { after.sentence 'output.state := }
1.138 + if$
1.139 + }
1.140 + if$
1.141 +}
1.142 +FUNCTION {add.blank}
1.143 +{ " " * before.all 'output.state :=
1.144 +}
1.145 +
1.146 +FUNCTION {date.block}
1.147 +{
1.148 + skip$
1.149 +}
1.150 +
1.151 +FUNCTION {not}
1.152 +{ { #0 }
1.153 + { #1 }
1.154 + if$
1.155 +}
1.156 +FUNCTION {and}
1.157 +{ 'skip$
1.158 + { pop$ #0 }
1.159 + if$
1.160 +}
1.161 +FUNCTION {or}
1.162 +{ { pop$ #1 }
1.163 + 'skip$
1.164 + if$
1.165 +}
1.166 +FUNCTION {new.block.checkb}
1.167 +{ empty$
1.168 + swap$ empty$
1.169 + and
1.170 + 'skip$
1.171 + 'new.block
1.172 + if$
1.173 +}
1.174 +FUNCTION {field.or.null}
1.175 +{ duplicate$ empty$
1.176 + { pop$ "" }
1.177 + 'skip$
1.178 + if$
1.179 +}
1.180 +FUNCTION {emphasize}
1.181 +{ duplicate$ empty$
1.182 + { pop$ "" }
1.183 + { "\emph{" swap$ * "}" * }
1.184 + if$
1.185 +}
1.186 +FUNCTION {tie.or.space.prefix}
1.187 +{ duplicate$ text.length$ #3 <
1.188 + { "~" }
1.189 + { " " }
1.190 + if$
1.191 + swap$
1.192 +}
1.193 +
1.194 +FUNCTION {capitalize}
1.195 +{ "u" change.case$ "t" change.case$ }
1.196 +
1.197 +FUNCTION {space.word}
1.198 +{ " " swap$ * " " * }
1.199 + % Here are the language-specific definitions for explicit words.
1.200 + % Each function has a name bbl.xxx where xxx is the English word.
1.201 + %-------------------------------------------------------------------
1.202 + % Begin module:
1.203 + % \ProvidesFile{english.mbs}[2003/11/06 4.2 (PWD)]
1.204 +
1.205 + % The language selected here is ENGLISH
1.206 +FUNCTION {bbl.and}
1.207 +{ "and"}
1.208 +
1.209 +FUNCTION {bbl.etal}
1.210 +{ "et~al." }
1.211 +
1.212 +FUNCTION {bbl.editors}
1.213 +{ "eds." }
1.214 +
1.215 +FUNCTION {bbl.editor}
1.216 +{ "ed." }
1.217 +
1.218 +FUNCTION {bbl.edby}
1.219 +{ "edited by" }
1.220 +
1.221 +FUNCTION {bbl.edition}
1.222 +{ "edn." }
1.223 +
1.224 +FUNCTION {bbl.volume}
1.225 +{ "vol." }
1.226 +
1.227 +FUNCTION {bbl.of}
1.228 +{ "of" }
1.229 +
1.230 +FUNCTION {bbl.number}
1.231 +{ "no." }
1.232 +
1.233 +FUNCTION {bbl.nr}
1.234 +{ "no." }
1.235 +
1.236 +FUNCTION {bbl.in}
1.237 +{ "in" }
1.238 +
1.239 +FUNCTION {bbl.pages}
1.240 +{ "" }
1.241 +
1.242 +FUNCTION {bbl.page}
1.243 +{ "" }
1.244 +
1.245 +FUNCTION {bbl.chapter}
1.246 +{ "chap." }
1.247 +
1.248 +FUNCTION {bbl.techrep}
1.249 +{ "Tech. Rep." }
1.250 +
1.251 +FUNCTION {bbl.mthesis}
1.252 +{ "Master's thesis" }
1.253 +
1.254 +FUNCTION {bbl.phdthesis}
1.255 +{ "Ph.D. thesis" }
1.256 +
1.257 +MACRO {jan} {"Jan."}
1.258 +
1.259 +MACRO {feb} {"Feb."}
1.260 +
1.261 +MACRO {mar} {"Mar."}
1.262 +
1.263 +MACRO {apr} {"Apr."}
1.264 +
1.265 +MACRO {may} {"May"}
1.266 +
1.267 +MACRO {jun} {"Jun."}
1.268 +
1.269 +MACRO {jul} {"Jul."}
1.270 +
1.271 +MACRO {aug} {"Aug."}
1.272 +
1.273 +MACRO {sep} {"Sep."}
1.274 +
1.275 +MACRO {oct} {"Oct."}
1.276 +
1.277 +MACRO {nov} {"Nov."}
1.278 +
1.279 +MACRO {dec} {"Dec."}
1.280 +
1.281 + % End module: english.mbs
1.282 +%% Copyright 1994-2004 Patrick W Daly
1.283 +MACRO {acmcs} {"ACM Computing Surveys"}
1.284 +
1.285 +MACRO {acta} {"Acta Informatica"}
1.286 +
1.287 +MACRO {cacm} {"Communications of the ACM"}
1.288 +
1.289 +MACRO {ibmjrd} {"IBM Journal of Research and Development"}
1.290 +
1.291 +MACRO {ibmsj} {"IBM Systems Journal"}
1.292 +
1.293 +MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
1.294 +
1.295 +MACRO {ieeetc} {"IEEE Transactions on Computers"}
1.296 +
1.297 +MACRO {ieeetcad}
1.298 + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
1.299 +
1.300 +MACRO {ipl} {"Information Processing Letters"}
1.301 +
1.302 +MACRO {jacm} {"Journal of the ACM"}
1.303 +
1.304 +MACRO {jcss} {"Journal of Computer and System Sciences"}
1.305 +
1.306 +MACRO {scp} {"Science of Computer Programming"}
1.307 +
1.308 +MACRO {sicomp} {"SIAM Journal on Computing"}
1.309 +
1.310 +MACRO {tocs} {"ACM Transactions on Computer Systems"}
1.311 +
1.312 +MACRO {tods} {"ACM Transactions on Database Systems"}
1.313 +
1.314 +MACRO {tog} {"ACM Transactions on Graphics"}
1.315 +
1.316 +MACRO {toms} {"ACM Transactions on Mathematical Software"}
1.317 +
1.318 +MACRO {toois} {"ACM Transactions on Office Information Systems"}
1.319 +
1.320 +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
1.321 +
1.322 +MACRO {tcs} {"Theoretical Computer Science"}
1.323 +FUNCTION {bibinfo.check}
1.324 +{ swap$
1.325 + duplicate$ missing$
1.326 + {
1.327 + pop$ pop$
1.328 + ""
1.329 + }
1.330 + { duplicate$ empty$
1.331 + {
1.332 + swap$ pop$
1.333 + }
1.334 + { swap$
1.335 + "\bibinfo{" swap$ * "}{" * swap$ * "}" *
1.336 + }
1.337 + if$
1.338 + }
1.339 + if$
1.340 +}
1.341 +FUNCTION {bibinfo.warn}
1.342 +{ swap$
1.343 + duplicate$ missing$
1.344 + {
1.345 + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
1.346 + ""
1.347 + }
1.348 + { duplicate$ empty$
1.349 + {
1.350 + swap$ "empty " swap$ * " in " * cite$ * warning$
1.351 + }
1.352 + { swap$
1.353 + "\bibinfo{" swap$ * "}{" * swap$ * "}" *
1.354 + }
1.355 + if$
1.356 + }
1.357 + if$
1.358 +}
1.359 +FUNCTION {format.url}
1.360 +{ url empty$
1.361 + { "" }
1.362 + { "\urlprefix\url{" url * "}" * }
1.363 + if$
1.364 +}
1.365 +
1.366 +STRINGS { bibinfo}
1.367 +INTEGERS { nameptr namesleft numnames }
1.368 +
1.369 +FUNCTION {format.names}
1.370 +{ 'bibinfo :=
1.371 + duplicate$ empty$ 'skip$ {
1.372 + 's :=
1.373 + "" 't :=
1.374 + #1 'nameptr :=
1.375 + s num.names$ 'numnames :=
1.376 + numnames 'namesleft :=
1.377 + { namesleft #0 > }
1.378 + { s nameptr
1.379 + "{f.~}{vv~}{ll}{, jj}"
1.380 + format.name$
1.381 + bibinfo bibinfo.check
1.382 + 't :=
1.383 + nameptr #1 >
1.384 + {
1.385 + namesleft #1 >
1.386 + { ", " * t * }
1.387 + {
1.388 + "," *
1.389 + s nameptr "{ll}" format.name$ duplicate$ "others" =
1.390 + { 't := }
1.391 + { pop$ }
1.392 + if$
1.393 + t "others" =
1.394 + {
1.395 + " " * bbl.etal *
1.396 + }
1.397 + { " " * t * }
1.398 + if$
1.399 + }
1.400 + if$
1.401 + }
1.402 + 't
1.403 + if$
1.404 + nameptr #1 + 'nameptr :=
1.405 + namesleft #1 - 'namesleft :=
1.406 + }
1.407 + while$
1.408 + } if$
1.409 +}
1.410 +FUNCTION {format.names.ed}
1.411 +{
1.412 + format.names
1.413 +}
1.414 +FUNCTION {format.key}
1.415 +{ empty$
1.416 + { key field.or.null }
1.417 + { "" }
1.418 + if$
1.419 +}
1.420 +
1.421 +FUNCTION {format.authors}
1.422 +{ author "author" format.names
1.423 +}
1.424 +FUNCTION {get.bbl.editor}
1.425 +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
1.426 +
1.427 +FUNCTION {format.editors}
1.428 +{ editor "editor" format.names duplicate$ empty$ 'skip$
1.429 + {
1.430 + " " *
1.431 + get.bbl.editor
1.432 + capitalize
1.433 + "(" swap$ * ")" *
1.434 + *
1.435 + }
1.436 + if$
1.437 +}
1.438 +FUNCTION {format.isbn}
1.439 +{ isbn "isbn" bibinfo.check
1.440 + duplicate$ empty$ 'skip$
1.441 + {
1.442 + "ISBN " swap$ *
1.443 + }
1.444 + if$
1.445 +}
1.446 +
1.447 +FUNCTION {format.issn}
1.448 +{ issn "issn" bibinfo.check
1.449 + duplicate$ empty$ 'skip$
1.450 + {
1.451 + "ISSN " swap$ *
1.452 + }
1.453 + if$
1.454 +}
1.455 +
1.456 + FUNCTION {format.doi}
1.457 + { doi "doi" bibinfo.check
1.458 + duplicate$ empty$ 'skip$
1.459 + {
1.460 + "\doi{" swap$ * "}" *
1.461 + }
1.462 + if$
1.463 + }
1.464 +
1.465 +FUNCTION {format.note}
1.466 +{
1.467 + note empty$
1.468 + { "" }
1.469 + { note #1 #1 substring$
1.470 + duplicate$ "{" =
1.471 + 'skip$
1.472 + { output.state mid.sentence =
1.473 + { "l" }
1.474 + { "u" }
1.475 + if$
1.476 + change.case$
1.477 + }
1.478 + if$
1.479 + note #2 global.max$ substring$ * "note" bibinfo.check
1.480 + }
1.481 + if$
1.482 +}
1.483 +
1.484 +FUNCTION {format.title}
1.485 +{ title
1.486 + "title" bibinfo.check
1.487 +}
1.488 +FUNCTION {format.full.names}
1.489 +{'s :=
1.490 + "" 't :=
1.491 + #1 'nameptr :=
1.492 + s num.names$ 'numnames :=
1.493 + numnames 'namesleft :=
1.494 + { namesleft #0 > }
1.495 + { s nameptr
1.496 + "{vv~}{ll}" format.name$
1.497 + 't :=
1.498 + nameptr #1 >
1.499 + {
1.500 + namesleft #1 >
1.501 + { ", " * t * }
1.502 + {
1.503 + s nameptr "{ll}" format.name$ duplicate$ "others" =
1.504 + { 't := }
1.505 + { pop$ }
1.506 + if$
1.507 + t "others" =
1.508 + {
1.509 + " " * bbl.etal *
1.510 + }
1.511 + {
1.512 + numnames #2 >
1.513 + { "," * }
1.514 + 'skip$
1.515 + if$
1.516 + bbl.and
1.517 + space.word * t *
1.518 + }
1.519 + if$
1.520 + }
1.521 + if$
1.522 + }
1.523 + 't
1.524 + if$
1.525 + nameptr #1 + 'nameptr :=
1.526 + namesleft #1 - 'namesleft :=
1.527 + }
1.528 + while$
1.529 +}
1.530 +
1.531 +FUNCTION {author.editor.key.full}
1.532 +{ author empty$
1.533 + { editor empty$
1.534 + { key empty$
1.535 + { cite$ #1 #3 substring$ }
1.536 + 'key
1.537 + if$
1.538 + }
1.539 + { editor format.full.names }
1.540 + if$
1.541 + }
1.542 + { author format.full.names }
1.543 + if$
1.544 +}
1.545 +
1.546 +FUNCTION {author.key.full}
1.547 +{ author empty$
1.548 + { key empty$
1.549 + { cite$ #1 #3 substring$ }
1.550 + 'key
1.551 + if$
1.552 + }
1.553 + { author format.full.names }
1.554 + if$
1.555 +}
1.556 +
1.557 +FUNCTION {editor.key.full}
1.558 +{ editor empty$
1.559 + { key empty$
1.560 + { cite$ #1 #3 substring$ }
1.561 + 'key
1.562 + if$
1.563 + }
1.564 + { editor format.full.names }
1.565 + if$
1.566 +}
1.567 +
1.568 +FUNCTION {make.full.names}
1.569 +{ type$ "book" =
1.570 + type$ "inbook" =
1.571 + or
1.572 + 'author.editor.key.full
1.573 + { type$ "proceedings" =
1.574 + 'editor.key.full
1.575 + 'author.key.full
1.576 + if$
1.577 + }
1.578 + if$
1.579 +}
1.580 +
1.581 +FUNCTION {output.bibitem}
1.582 +{ newline$
1.583 + "\bibitem[{" write$
1.584 + label write$
1.585 + ")" make.full.names duplicate$ short.list =
1.586 + { pop$ }
1.587 + { * }
1.588 + if$
1.589 + "}]{" * write$
1.590 + cite$ write$
1.591 + "}" write$
1.592 + newline$
1.593 + ""
1.594 + before.all 'output.state :=
1.595 +}
1.596 +
1.597 +FUNCTION {n.dashify}
1.598 +{
1.599 + 't :=
1.600 + ""
1.601 + { t empty$ not }
1.602 + { t #1 #1 substring$ "-" =
1.603 + { t #1 #2 substring$ "--" = not
1.604 + { "--" *
1.605 + t #2 global.max$ substring$ 't :=
1.606 + }
1.607 + { { t #1 #1 substring$ "-" = }
1.608 + { "-" *
1.609 + t #2 global.max$ substring$ 't :=
1.610 + }
1.611 + while$
1.612 + }
1.613 + if$
1.614 + }
1.615 + { t #1 #1 substring$ *
1.616 + t #2 global.max$ substring$ 't :=
1.617 + }
1.618 + if$
1.619 + }
1.620 + while$
1.621 +}
1.622 +
1.623 +FUNCTION {word.in}
1.624 +{ bbl.in
1.625 + ":" *
1.626 + " " * }
1.627 +
1.628 +FUNCTION {format.date}
1.629 +{ year "year" bibinfo.check duplicate$ empty$
1.630 + {
1.631 + "empty year in " cite$ * "; set to ????" * warning$
1.632 + pop$ "????"
1.633 + }
1.634 + 'skip$
1.635 + if$
1.636 + extra.label *
1.637 +}
1.638 +FUNCTION{format.year}
1.639 +{ year "year" bibinfo.check duplicate$ empty$
1.640 + { "empty year in " cite$ *
1.641 + "; set to ????" *
1.642 + warning$
1.643 + pop$ "????"
1.644 + }
1.645 + {
1.646 + }
1.647 + if$
1.648 + extra.label *
1.649 + "(" swap$ * ")" *
1.650 +}
1.651 +FUNCTION {format.btitle}
1.652 +{ title "title" bibinfo.check
1.653 + duplicate$ empty$ 'skip$
1.654 + {
1.655 + }
1.656 + if$
1.657 +}
1.658 +FUNCTION {either.or.check}
1.659 +{ empty$
1.660 + 'pop$
1.661 + { "can't use both " swap$ * " fields in " * cite$ * warning$ }
1.662 + if$
1.663 +}
1.664 +FUNCTION {format.bvolume}
1.665 +{ volume empty$
1.666 + { "" }
1.667 + { bbl.volume volume tie.or.space.prefix
1.668 + "volume" bibinfo.check * *
1.669 + series "series" bibinfo.check
1.670 + duplicate$ empty$ 'pop$
1.671 + { swap$ bbl.of space.word * swap$
1.672 + emphasize * }
1.673 + if$
1.674 + "volume and number" number either.or.check
1.675 + }
1.676 + if$
1.677 +}
1.678 +FUNCTION {format.number.series}
1.679 +{ volume empty$
1.680 + { number empty$
1.681 + { series field.or.null }
1.682 + { series empty$
1.683 + { number "number" bibinfo.check }
1.684 + { output.state mid.sentence =
1.685 + { bbl.number }
1.686 + { bbl.number capitalize }
1.687 + if$
1.688 + number tie.or.space.prefix "number" bibinfo.check * *
1.689 + bbl.in space.word *
1.690 + series "series" bibinfo.check *
1.691 + }
1.692 + if$
1.693 + }
1.694 + if$
1.695 + }
1.696 + { "" }
1.697 + if$
1.698 +}
1.699 +
1.700 +FUNCTION {format.edition}
1.701 +{ edition duplicate$ empty$ 'skip$
1.702 + {
1.703 + output.state mid.sentence =
1.704 + { "l" }
1.705 + { "t" }
1.706 + if$ change.case$
1.707 + "edition" bibinfo.check
1.708 + " " * bbl.edition *
1.709 + }
1.710 + if$
1.711 +}
1.712 +INTEGERS { multiresult }
1.713 +FUNCTION {multi.page.check}
1.714 +{ 't :=
1.715 + #0 'multiresult :=
1.716 + { multiresult not
1.717 + t empty$ not
1.718 + and
1.719 + }
1.720 + { t #1 #1 substring$
1.721 + duplicate$ "-" =
1.722 + swap$ duplicate$ "," =
1.723 + swap$ "+" =
1.724 + or or
1.725 + { #1 'multiresult := }
1.726 + { t #2 global.max$ substring$ 't := }
1.727 + if$
1.728 + }
1.729 + while$
1.730 + multiresult
1.731 +}
1.732 +FUNCTION {format.pages}
1.733 +{ pages duplicate$ empty$ 'skip$
1.734 + { duplicate$ multi.page.check
1.735 + {
1.736 + n.dashify
1.737 + }
1.738 + {
1.739 + }
1.740 + if$
1.741 + "pages" bibinfo.check
1.742 + }
1.743 + if$
1.744 +}
1.745 +FUNCTION {format.journal.pages}
1.746 +{ pages duplicate$ empty$ 'pop$
1.747 + { swap$ duplicate$ empty$
1.748 + { pop$ pop$ format.pages }
1.749 + {
1.750 + " " *
1.751 + format.year * " " *
1.752 + swap$
1.753 + n.dashify
1.754 + "pages" bibinfo.check
1.755 + *
1.756 + }
1.757 + if$
1.758 + }
1.759 + if$
1.760 +}
1.761 +FUNCTION {format.journal.eid}
1.762 +{ eid "eid" bibinfo.check
1.763 + duplicate$ empty$ 'pop$
1.764 + { swap$ duplicate$ empty$ 'skip$
1.765 + {
1.766 + " " *
1.767 + }
1.768 + if$
1.769 + swap$ *
1.770 + }
1.771 + if$
1.772 +}
1.773 +FUNCTION {format.vol.num.pages}
1.774 +{ volume field.or.null
1.775 + duplicate$ empty$ 'skip$
1.776 + {
1.777 + "volume" bibinfo.check
1.778 + }
1.779 + if$
1.780 + number "number" bibinfo.check duplicate$ empty$ 'skip$
1.781 + {
1.782 + swap$ duplicate$ empty$
1.783 + { "there's a number but no volume in " cite$ * warning$ }
1.784 + 'skip$
1.785 + if$
1.786 + swap$
1.787 + "~(" swap$ * ")" *
1.788 + }
1.789 + if$ *
1.790 +}
1.791 +
1.792 +FUNCTION {format.chapter.pages}
1.793 +{ chapter empty$
1.794 + { "" }
1.795 + { type empty$
1.796 + { bbl.chapter }
1.797 + { type "l" change.case$
1.798 + "type" bibinfo.check
1.799 + }
1.800 + if$
1.801 + chapter tie.or.space.prefix
1.802 + "chapter" bibinfo.check
1.803 + * *
1.804 + }
1.805 + if$
1.806 +}
1.807 +
1.808 +FUNCTION {format.booktitle}
1.809 +{
1.810 + booktitle "booktitle" bibinfo.check
1.811 +}
1.812 +FUNCTION {format.in.ed.booktitle}
1.813 +{ format.booktitle duplicate$ empty$ 'skip$
1.814 + {
1.815 + editor "editor" format.names.ed duplicate$ empty$ 'pop$
1.816 + {
1.817 + " " *
1.818 + get.bbl.editor
1.819 + capitalize
1.820 + "(" swap$ * "), " *
1.821 + * swap$
1.822 + * }
1.823 + if$
1.824 + word.in swap$ *
1.825 + }
1.826 + if$
1.827 +}
1.828 +FUNCTION {format.thesis.type}
1.829 +{ type duplicate$ empty$
1.830 + 'pop$
1.831 + { swap$ pop$
1.832 + "t" change.case$ "type" bibinfo.check
1.833 + }
1.834 + if$
1.835 +}
1.836 +FUNCTION {format.tr.number}
1.837 +{ number "number" bibinfo.check
1.838 + type duplicate$ empty$
1.839 + { pop$ bbl.techrep }
1.840 + 'skip$
1.841 + if$
1.842 + "type" bibinfo.check
1.843 + swap$ duplicate$ empty$
1.844 + { pop$ "t" change.case$ }
1.845 + { tie.or.space.prefix * * }
1.846 + if$
1.847 +}
1.848 +FUNCTION {format.article.crossref}
1.849 +{
1.850 + word.in
1.851 + " \cite{" * crossref * "}" *
1.852 +}
1.853 +FUNCTION {format.book.crossref}
1.854 +{ volume duplicate$ empty$
1.855 + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
1.856 + pop$ word.in
1.857 + }
1.858 + { bbl.volume
1.859 + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
1.860 + }
1.861 + if$
1.862 + " \cite{" * crossref * "}" *
1.863 +}
1.864 +FUNCTION {format.incoll.inproc.crossref}
1.865 +{
1.866 + word.in
1.867 + " \cite{" * crossref * "}" *
1.868 +}
1.869 +FUNCTION {format.org.or.pub}
1.870 +{ 't :=
1.871 + ""
1.872 + address empty$ t empty$ and
1.873 + 'skip$
1.874 + {
1.875 + t empty$
1.876 + { address "address" bibinfo.check *
1.877 + }
1.878 + { t *
1.879 + address empty$
1.880 + 'skip$
1.881 + { ", " * address "address" bibinfo.check * }
1.882 + if$
1.883 + }
1.884 + if$
1.885 + }
1.886 + if$
1.887 +}
1.888 +FUNCTION {format.publisher.address}
1.889 +{ publisher "publisher" bibinfo.warn format.org.or.pub
1.890 +}
1.891 +
1.892 +FUNCTION {format.organization.address}
1.893 +{ organization "organization" bibinfo.check format.org.or.pub
1.894 +}
1.895 +
1.896 +FUNCTION {article}
1.897 +{ output.bibitem
1.898 + format.authors "author" output.check
1.899 + author format.key output
1.900 + format.title "title" output.check
1.901 + crossref missing$
1.902 + {
1.903 + journal
1.904 + "journal" bibinfo.check
1.905 + "journal" output.check
1.906 + add.blank
1.907 + format.vol.num.pages output
1.908 + }
1.909 + { format.article.crossref output.nonnull
1.910 + }
1.911 + if$
1.912 + eid empty$
1.913 + { format.journal.pages }
1.914 + { format.journal.eid }
1.915 + if$
1.916 + format.issn output
1.917 + format.doi output
1.918 + format.url output
1.919 + format.note output
1.920 + fin.entry
1.921 +}
1.922 +FUNCTION {book}
1.923 +{ output.bibitem
1.924 + author empty$
1.925 + { format.editors "author and editor" output.check
1.926 + editor format.key output
1.927 + }
1.928 + { format.authors output.nonnull
1.929 + crossref missing$
1.930 + { "author and editor" editor either.or.check }
1.931 + 'skip$
1.932 + if$
1.933 + }
1.934 + if$
1.935 + format.btitle "title" output.check
1.936 + crossref missing$
1.937 + { format.bvolume output
1.938 + format.number.series output
1.939 + format.publisher.address output
1.940 + }
1.941 + {
1.942 + format.book.crossref output.nonnull
1.943 + }
1.944 + if$
1.945 + format.edition output
1.946 + format.isbn output
1.947 + format.doi output
1.948 + format.url output
1.949 + format.note output
1.950 + format.date "year" output.check
1.951 + fin.entry
1.952 +}
1.953 +FUNCTION {booklet}
1.954 +{ output.bibitem
1.955 + format.authors output
1.956 + author format.key output
1.957 + format.title "title" output.check
1.958 + howpublished "howpublished" bibinfo.check output
1.959 + address "address" bibinfo.check output
1.960 + format.isbn output
1.961 + format.doi output
1.962 + format.url output
1.963 + format.note output
1.964 + format.date "year" output.check
1.965 + fin.entry
1.966 +}
1.967 +
1.968 +FUNCTION {inbook}
1.969 +{ output.bibitem
1.970 + author empty$
1.971 + { format.editors "author and editor" output.check
1.972 + editor format.key output
1.973 + }
1.974 + { format.authors output.nonnull
1.975 + crossref missing$
1.976 + { "author and editor" editor either.or.check }
1.977 + 'skip$
1.978 + if$
1.979 + }
1.980 + if$
1.981 + format.btitle "title" output.check
1.982 + crossref missing$
1.983 + {
1.984 + format.bvolume output
1.985 + format.chapter.pages "chapter and pages" output.check
1.986 + format.number.series output
1.987 + format.publisher.address output
1.988 + }
1.989 + {
1.990 + format.chapter.pages "chapter and pages" output.check
1.991 + format.book.crossref output.nonnull
1.992 + }
1.993 + if$
1.994 + format.edition output
1.995 + crossref missing$
1.996 + { format.isbn output }
1.997 + 'skip$
1.998 + if$
1.999 + format.pages "pages" output.check
1.1000 + format.doi output
1.1001 + format.url output
1.1002 + format.note output
1.1003 + format.date "year" output.check
1.1004 + fin.entry
1.1005 +}
1.1006 +
1.1007 +FUNCTION {incollection}
1.1008 +{ output.bibitem
1.1009 + format.authors "author" output.check
1.1010 + author format.key output
1.1011 + format.title "title" output.check
1.1012 + crossref missing$
1.1013 + { format.in.ed.booktitle "booktitle" output.check
1.1014 + format.bvolume output
1.1015 + format.number.series output
1.1016 + format.chapter.pages output
1.1017 + format.publisher.address output
1.1018 + format.edition output
1.1019 + format.isbn output
1.1020 + }
1.1021 + { format.incoll.inproc.crossref output.nonnull
1.1022 + format.chapter.pages output
1.1023 + }
1.1024 + if$
1.1025 + format.pages "pages" output.check
1.1026 + format.doi output
1.1027 + format.url output
1.1028 + format.note output
1.1029 + format.date "year" output.check
1.1030 + fin.entry
1.1031 +}
1.1032 +FUNCTION {inproceedings}
1.1033 +{ output.bibitem
1.1034 + format.authors "author" output.check
1.1035 + author format.key output
1.1036 + format.title "title" output.check
1.1037 + crossref missing$
1.1038 + { format.in.ed.booktitle "booktitle" output.check
1.1039 + format.bvolume output
1.1040 + format.number.series output
1.1041 + publisher empty$
1.1042 + { format.organization.address output }
1.1043 + { organization "organization" bibinfo.check output
1.1044 + format.publisher.address output
1.1045 + }
1.1046 + if$
1.1047 + format.isbn output
1.1048 + format.issn output
1.1049 + }
1.1050 + { format.incoll.inproc.crossref output.nonnull
1.1051 + }
1.1052 + if$
1.1053 + format.pages "pages" output.check
1.1054 + format.doi output
1.1055 + format.url output
1.1056 + format.note output
1.1057 + format.date "year" output.check
1.1058 + fin.entry
1.1059 +}
1.1060 +FUNCTION {conference} { inproceedings }
1.1061 +FUNCTION {manual}
1.1062 +{ output.bibitem
1.1063 + format.authors output
1.1064 + author format.key output
1.1065 + format.btitle "title" output.check
1.1066 + organization "organization" bibinfo.check output
1.1067 + address "address" bibinfo.check output
1.1068 + format.edition output
1.1069 + format.doi output
1.1070 + format.url output
1.1071 + format.note output
1.1072 + format.date "year" output.check
1.1073 + fin.entry
1.1074 +}
1.1075 +
1.1076 +FUNCTION {mastersthesis}
1.1077 +{ output.bibitem
1.1078 + format.authors "author" output.check
1.1079 + author format.key output
1.1080 + format.btitle
1.1081 + "title" output.check
1.1082 + bbl.mthesis format.thesis.type output.nonnull
1.1083 + school "school" bibinfo.warn output
1.1084 + address "address" bibinfo.check output
1.1085 + format.doi output
1.1086 + format.url output
1.1087 + format.note output
1.1088 + format.date "year" output.check
1.1089 + fin.entry
1.1090 +}
1.1091 +
1.1092 +FUNCTION {misc}
1.1093 +{ output.bibitem
1.1094 + format.authors output
1.1095 + author format.key output
1.1096 + format.title output
1.1097 + howpublished "howpublished" bibinfo.check output
1.1098 + format.doi output
1.1099 + format.url output
1.1100 + format.note output
1.1101 + format.date "year" output.check
1.1102 + fin.entry
1.1103 +}
1.1104 +FUNCTION {phdthesis}
1.1105 +{ output.bibitem
1.1106 + format.authors "author" output.check
1.1107 + author format.key output
1.1108 + format.btitle
1.1109 + "title" output.check
1.1110 + bbl.phdthesis format.thesis.type output.nonnull
1.1111 + school "school" bibinfo.warn output
1.1112 + address "address" bibinfo.check output
1.1113 + format.doi output
1.1114 + format.url output
1.1115 + format.note output
1.1116 + format.date "year" output.check
1.1117 + fin.entry
1.1118 +}
1.1119 +
1.1120 +FUNCTION {proceedings}
1.1121 +{ output.bibitem
1.1122 + format.editors output
1.1123 + editor format.key output
1.1124 + format.btitle "title" output.check
1.1125 + format.bvolume output
1.1126 + format.number.series output
1.1127 + publisher empty$
1.1128 + { format.organization.address output }
1.1129 + { organization "organization" bibinfo.check output
1.1130 + format.publisher.address output
1.1131 + }
1.1132 + if$
1.1133 + format.isbn output
1.1134 + format.issn output
1.1135 + format.doi output
1.1136 + format.url output
1.1137 + format.note output
1.1138 + format.date "year" output.check
1.1139 + fin.entry
1.1140 +}
1.1141 +
1.1142 +FUNCTION {techreport}
1.1143 +{ output.bibitem
1.1144 + format.authors "author" output.check
1.1145 + author format.key output
1.1146 + format.title
1.1147 + "title" output.check
1.1148 + format.tr.number output.nonnull
1.1149 + institution "institution" bibinfo.warn output
1.1150 + address "address" bibinfo.check output
1.1151 + format.doi output
1.1152 + format.url output
1.1153 + format.note output
1.1154 + format.date "year" output.check
1.1155 + fin.entry
1.1156 +}
1.1157 +
1.1158 +FUNCTION {unpublished}
1.1159 +{ output.bibitem
1.1160 + format.authors "author" output.check
1.1161 + author format.key output
1.1162 + format.title "title" output.check
1.1163 + format.doi output
1.1164 + format.url output
1.1165 + format.note "note" output.check
1.1166 + format.date output
1.1167 + fin.entry
1.1168 +}
1.1169 +
1.1170 +FUNCTION {default.type} { misc }
1.1171 +READ
1.1172 +FUNCTION {sortify}
1.1173 +{ purify$
1.1174 + "l" change.case$
1.1175 +}
1.1176 +INTEGERS { len }
1.1177 +FUNCTION {chop.word}
1.1178 +{ 's :=
1.1179 + 'len :=
1.1180 + s #1 len substring$ =
1.1181 + { s len #1 + global.max$ substring$ }
1.1182 + 's
1.1183 + if$
1.1184 +}
1.1185 +FUNCTION {format.lab.names}
1.1186 +{ 's :=
1.1187 + "" 't :=
1.1188 + s #1 "{vv~}{ll}" format.name$
1.1189 + s num.names$ duplicate$
1.1190 + #2 >
1.1191 + { pop$
1.1192 + " " * bbl.etal *
1.1193 + }
1.1194 + { #2 <
1.1195 + 'skip$
1.1196 + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1.1197 + {
1.1198 + " " * bbl.etal *
1.1199 + }
1.1200 + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
1.1201 + * }
1.1202 + if$
1.1203 + }
1.1204 + if$
1.1205 + }
1.1206 + if$
1.1207 +}
1.1208 +
1.1209 +FUNCTION {author.key.label}
1.1210 +{ author empty$
1.1211 + { key empty$
1.1212 + { cite$ #1 #3 substring$ }
1.1213 + 'key
1.1214 + if$
1.1215 + }
1.1216 + { author format.lab.names }
1.1217 + if$
1.1218 +}
1.1219 +
1.1220 +FUNCTION {author.editor.key.label}
1.1221 +{ author empty$
1.1222 + { editor empty$
1.1223 + { key empty$
1.1224 + { cite$ #1 #3 substring$ }
1.1225 + 'key
1.1226 + if$
1.1227 + }
1.1228 + { editor format.lab.names }
1.1229 + if$
1.1230 + }
1.1231 + { author format.lab.names }
1.1232 + if$
1.1233 +}
1.1234 +
1.1235 +FUNCTION {editor.key.label}
1.1236 +{ editor empty$
1.1237 + { key empty$
1.1238 + { cite$ #1 #3 substring$ }
1.1239 + 'key
1.1240 + if$
1.1241 + }
1.1242 + { editor format.lab.names }
1.1243 + if$
1.1244 +}
1.1245 +
1.1246 +FUNCTION {calc.short.authors}
1.1247 +{ type$ "book" =
1.1248 + type$ "inbook" =
1.1249 + or
1.1250 + 'author.editor.key.label
1.1251 + { type$ "proceedings" =
1.1252 + 'editor.key.label
1.1253 + 'author.key.label
1.1254 + if$
1.1255 + }
1.1256 + if$
1.1257 + 'short.list :=
1.1258 +}
1.1259 +
1.1260 +FUNCTION {calc.label}
1.1261 +{ calc.short.authors
1.1262 + short.list
1.1263 + "("
1.1264 + *
1.1265 + year duplicate$ empty$
1.1266 + { pop$ "????" }
1.1267 + { purify$ #-1 #4 substring$ }
1.1268 + if$
1.1269 + *
1.1270 + 'label :=
1.1271 +}
1.1272 +
1.1273 +FUNCTION {sort.format.names}
1.1274 +{ 's :=
1.1275 + #1 'nameptr :=
1.1276 + ""
1.1277 + s num.names$ 'numnames :=
1.1278 + numnames 'namesleft :=
1.1279 + { namesleft #0 > }
1.1280 + { s nameptr
1.1281 + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
1.1282 + format.name$ 't :=
1.1283 + nameptr #1 >
1.1284 + {
1.1285 + " " *
1.1286 + namesleft #1 = t "others" = and
1.1287 + { "zzzzz" * }
1.1288 + { t sortify * }
1.1289 + if$
1.1290 + }
1.1291 + { t sortify * }
1.1292 + if$
1.1293 + nameptr #1 + 'nameptr :=
1.1294 + namesleft #1 - 'namesleft :=
1.1295 + }
1.1296 + while$
1.1297 +}
1.1298 +
1.1299 +FUNCTION {sort.format.title}
1.1300 +{ 't :=
1.1301 + "A " #2
1.1302 + "An " #3
1.1303 + "The " #4 t chop.word
1.1304 + chop.word
1.1305 + chop.word
1.1306 + sortify
1.1307 + #1 global.max$ substring$
1.1308 +}
1.1309 +FUNCTION {author.sort}
1.1310 +{ author empty$
1.1311 + { key empty$
1.1312 + { "to sort, need author or key in " cite$ * warning$
1.1313 + ""
1.1314 + }
1.1315 + { key sortify }
1.1316 + if$
1.1317 + }
1.1318 + { author sort.format.names }
1.1319 + if$
1.1320 +}
1.1321 +FUNCTION {author.editor.sort}
1.1322 +{ author empty$
1.1323 + { editor empty$
1.1324 + { key empty$
1.1325 + { "to sort, need author, editor, or key in " cite$ * warning$
1.1326 + ""
1.1327 + }
1.1328 + { key sortify }
1.1329 + if$
1.1330 + }
1.1331 + { editor sort.format.names }
1.1332 + if$
1.1333 + }
1.1334 + { author sort.format.names }
1.1335 + if$
1.1336 +}
1.1337 +FUNCTION {editor.sort}
1.1338 +{ editor empty$
1.1339 + { key empty$
1.1340 + { "to sort, need editor or key in " cite$ * warning$
1.1341 + ""
1.1342 + }
1.1343 + { key sortify }
1.1344 + if$
1.1345 + }
1.1346 + { editor sort.format.names }
1.1347 + if$
1.1348 +}
1.1349 +INTEGERS { seq.num }
1.1350 +FUNCTION {init.seq}
1.1351 +{ #0 'seq.num :=}
1.1352 +EXECUTE {init.seq}
1.1353 +FUNCTION {int.to.fix}
1.1354 +{ "000000000" swap$ int.to.str$ *
1.1355 + #-1 #10 substring$
1.1356 +}
1.1357 +FUNCTION {presort}
1.1358 +{ calc.label
1.1359 + label sortify
1.1360 + " "
1.1361 + *
1.1362 + seq.num #1 + 'seq.num :=
1.1363 + seq.num int.to.fix
1.1364 + 'sort.label :=
1.1365 + sort.label
1.1366 + *
1.1367 + " "
1.1368 + *
1.1369 + title field.or.null
1.1370 + sort.format.title
1.1371 + *
1.1372 + #1 entry.max$ substring$
1.1373 + 'sort.key$ :=
1.1374 +}
1.1375 +
1.1376 +ITERATE {presort}
1.1377 +SORT
1.1378 +STRINGS { last.label next.extra }
1.1379 +INTEGERS { last.extra.num number.label }
1.1380 +FUNCTION {initialize.extra.label.stuff}
1.1381 +{ #0 int.to.chr$ 'last.label :=
1.1382 + "" 'next.extra :=
1.1383 + #0 'last.extra.num :=
1.1384 + #0 'number.label :=
1.1385 +}
1.1386 +FUNCTION {forward.pass}
1.1387 +{ last.label label =
1.1388 + { last.extra.num #1 + 'last.extra.num :=
1.1389 + last.extra.num int.to.chr$ 'extra.label :=
1.1390 + }
1.1391 + { "a" chr.to.int$ 'last.extra.num :=
1.1392 + "" 'extra.label :=
1.1393 + label 'last.label :=
1.1394 + }
1.1395 + if$
1.1396 + number.label #1 + 'number.label :=
1.1397 +}
1.1398 +FUNCTION {reverse.pass}
1.1399 +{ next.extra "b" =
1.1400 + { "a" 'extra.label := }
1.1401 + 'skip$
1.1402 + if$
1.1403 + extra.label 'next.extra :=
1.1404 + extra.label
1.1405 + duplicate$ empty$
1.1406 + 'skip$
1.1407 + { "{\natexlab{" swap$ * "}}" * }
1.1408 + if$
1.1409 + 'extra.label :=
1.1410 + label extra.label * 'label :=
1.1411 +}
1.1412 +EXECUTE {initialize.extra.label.stuff}
1.1413 +ITERATE {forward.pass}
1.1414 +REVERSE {reverse.pass}
1.1415 +FUNCTION {bib.sort.order}
1.1416 +{ sort.label
1.1417 + " "
1.1418 + *
1.1419 + year field.or.null sortify
1.1420 + *
1.1421 + " "
1.1422 + *
1.1423 + title field.or.null
1.1424 + sort.format.title
1.1425 + *
1.1426 + #1 entry.max$ substring$
1.1427 + 'sort.key$ :=
1.1428 +}
1.1429 +ITERATE {bib.sort.order}
1.1430 +SORT
1.1431 +FUNCTION {begin.bib}
1.1432 +{ preamble$ empty$
1.1433 + 'skip$
1.1434 + { preamble$ write$ newline$ }
1.1435 + if$
1.1436 + "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1.1437 + write$ newline$
1.1438 + "\providecommand{\natexlab}[1]{#1}"
1.1439 + write$ newline$
1.1440 + "\providecommand{\url}[1]{\texttt{#1}}"
1.1441 + write$ newline$
1.1442 + "\providecommand{\urlprefix}{URL }"
1.1443 + write$ newline$
1.1444 + "\expandafter\ifx\csname urlstyle\endcsname\relax"
1.1445 + write$ newline$
1.1446 + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
1.1447 + write$ newline$
1.1448 + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\url{#1}\endgroup}\fi"
1.1449 + write$ newline$
1.1450 + "\providecommand{\bibinfo}[2]{#2}"
1.1451 + write$ newline$
1.1452 +}
1.1453 +EXECUTE {begin.bib}
1.1454 +EXECUTE {init.state.consts}
1.1455 +ITERATE {call.type$}
1.1456 +FUNCTION {end.bib}
1.1457 +{ newline$
1.1458 + "\end{thebibliography}" write$ newline$
1.1459 +}
1.1460 +EXECUTE {end.bib}
1.1461 +%% End of customized bst file
1.1462 +%%
1.1463 +%%
1.1464 +%% End of file `elsarticle-num-names.bst'.