2 %% Copyright 2007, 2008, 2009 Elsevier Ltd
4 %% This file is part of the 'Elsarticle Bundle'.
5 %% ---------------------------------------------
7 %% It may be distributed under the conditions of the LaTeX Project Public
8 %% License, either version 1.2 of this license or (at your option) any
9 %% later version. The latest version of this license is in
10 %% http://www.latex-project.org/lppl.txt
11 %% and version 1.2 or later is part of all distributions of LaTeX
12 %% version 1999/12/01 or later.
14 %% The list of all files belonging to the 'Elsarticle Bundle' is
15 %% given in the file `manifest.txt'.
18 %% This is file `elsearticle-num-names.bst',
19 %% generated with the docstrip utility.
21 %% The original source files were:
23 %% 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,,{}')
24 %% 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,,{}')
25 %% 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,,{}')
26 %% ----------------------------------------
27 %% *** Journal of Sound and Vibration ***
29 %% Copyright 1994-2004 Patrick W Daly
30 % ===============================================================
32 % This bibliographic style (bst) file has been generated from one or
33 % more master bibliographic style (mbs) files, listed above.
35 % This generated file can be redistributed and/or modified under the terms
36 % of the LaTeX Project Public License Distributed from CTAN
37 % archives in directory macros/latex/base/lppl.txt; either
38 % version 1 of the License, or any later version.
39 % ===============================================================
40 % Name and version information of the main mbs file:
41 % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)]
42 % For use with BibTeX version 0.99a or later
43 %-------------------------------------------------------------------
75 { label extra.label sort.label short.list }
76 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
77 FUNCTION {init.state.consts}
84 FUNCTION {output.nonnull}
86 output.state mid.sentence =
88 { output.state after.block =
93 { output.state before.all =
95 { add.period$ " " * write$ }
99 mid.sentence 'output.state :=
110 FUNCTION {output.check}
113 { pop$ "empty " t * " in " * cite$ * warning$ }
124 { output.state before.all =
126 { after.block 'output.state := }
129 FUNCTION {new.sentence}
130 { output.state after.block =
132 { output.state before.all =
134 { after.sentence 'output.state := }
140 { " " * before.all 'output.state :=
143 FUNCTION {date.block}
163 FUNCTION {new.block.checkb}
171 FUNCTION {field.or.null}
180 { "\emph{" swap$ * "}" * }
183 FUNCTION {tie.or.space.prefix}
184 { duplicate$ text.length$ #3 <
191 FUNCTION {capitalize}
192 { "u" change.case$ "t" change.case$ }
194 FUNCTION {space.word}
195 { " " swap$ * " " * }
196 % Here are the language-specific definitions for explicit words.
197 % Each function has a name bbl.xxx where xxx is the English word.
198 %-------------------------------------------------------------------
200 % \ProvidesFile{english.mbs}[2003/11/06 4.2 (PWD)]
202 % The language selected here is ENGLISH
209 FUNCTION {bbl.editors}
212 FUNCTION {bbl.editor}
218 FUNCTION {bbl.edition}
221 FUNCTION {bbl.volume}
227 FUNCTION {bbl.number}
242 FUNCTION {bbl.chapter}
245 FUNCTION {bbl.techrep}
248 FUNCTION {bbl.mthesis}
249 { "Master's thesis" }
251 FUNCTION {bbl.phdthesis}
278 % End module: english.mbs
279 %% Copyright 1994-2004 Patrick W Daly
280 MACRO {acmcs} {"ACM Computing Surveys"}
282 MACRO {acta} {"Acta Informatica"}
284 MACRO {cacm} {"Communications of the ACM"}
286 MACRO {ibmjrd} {"IBM Journal of Research and Development"}
288 MACRO {ibmsj} {"IBM Systems Journal"}
290 MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
292 MACRO {ieeetc} {"IEEE Transactions on Computers"}
295 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
297 MACRO {ipl} {"Information Processing Letters"}
299 MACRO {jacm} {"Journal of the ACM"}
301 MACRO {jcss} {"Journal of Computer and System Sciences"}
303 MACRO {scp} {"Science of Computer Programming"}
305 MACRO {sicomp} {"SIAM Journal on Computing"}
307 MACRO {tocs} {"ACM Transactions on Computer Systems"}
309 MACRO {tods} {"ACM Transactions on Database Systems"}
311 MACRO {tog} {"ACM Transactions on Graphics"}
313 MACRO {toms} {"ACM Transactions on Mathematical Software"}
315 MACRO {toois} {"ACM Transactions on Office Information Systems"}
317 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
319 MACRO {tcs} {"Theoretical Computer Science"}
320 FUNCTION {bibinfo.check}
332 "\bibinfo{" swap$ * "}{" * swap$ * "}" *
338 FUNCTION {bibinfo.warn}
342 swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
347 swap$ "empty " swap$ * " in " * cite$ * warning$
350 "\bibinfo{" swap$ * "}{" * swap$ * "}" *
356 FUNCTION {format.url}
359 { "\urlprefix\url{" url * "}" * }
364 INTEGERS { nameptr namesleft numnames }
366 FUNCTION {format.names}
368 duplicate$ empty$ 'skip$ {
372 s num.names$ 'numnames :=
373 numnames 'namesleft :=
376 "{f.~}{vv~}{ll}{, jj}"
378 bibinfo bibinfo.check
386 s nameptr "{ll}" format.name$ duplicate$ "others" =
401 nameptr #1 + 'nameptr :=
402 namesleft #1 - 'namesleft :=
407 FUNCTION {format.names.ed}
411 FUNCTION {format.key}
413 { key field.or.null }
418 FUNCTION {format.authors}
419 { author "author" format.names
421 FUNCTION {get.bbl.editor}
422 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
424 FUNCTION {format.editors}
425 { editor "editor" format.names duplicate$ empty$ 'skip$
435 FUNCTION {format.isbn}
436 { isbn "isbn" bibinfo.check
437 duplicate$ empty$ 'skip$
444 FUNCTION {format.issn}
445 { issn "issn" bibinfo.check
446 duplicate$ empty$ 'skip$
453 FUNCTION {format.doi}
454 { doi "doi" bibinfo.check
455 duplicate$ empty$ 'skip$
457 "\doi{" swap$ * "}" *
462 FUNCTION {format.note}
466 { note #1 #1 substring$
469 { output.state mid.sentence =
476 note #2 global.max$ substring$ * "note" bibinfo.check
481 FUNCTION {format.title}
483 "title" bibinfo.check
485 FUNCTION {format.full.names}
489 s num.names$ 'numnames :=
490 numnames 'namesleft :=
493 "{vv~}{ll}" format.name$
500 s nameptr "{ll}" format.name$ duplicate$ "others" =
522 nameptr #1 + 'nameptr :=
523 namesleft #1 - 'namesleft :=
528 FUNCTION {author.editor.key.full}
532 { cite$ #1 #3 substring$ }
536 { editor format.full.names }
539 { author format.full.names }
543 FUNCTION {author.key.full}
546 { cite$ #1 #3 substring$ }
550 { author format.full.names }
554 FUNCTION {editor.key.full}
557 { cite$ #1 #3 substring$ }
561 { editor format.full.names }
565 FUNCTION {make.full.names}
569 'author.editor.key.full
570 { type$ "proceedings" =
578 FUNCTION {output.bibitem}
582 ")" make.full.names duplicate$ short.list =
591 before.all 'output.state :=
599 { t #1 #1 substring$ "-" =
600 { t #1 #2 substring$ "--" = not
602 t #2 global.max$ substring$ 't :=
604 { { t #1 #1 substring$ "-" = }
606 t #2 global.max$ substring$ 't :=
612 { t #1 #1 substring$ *
613 t #2 global.max$ substring$ 't :=
625 FUNCTION {format.date}
626 { year "year" bibinfo.check duplicate$ empty$
628 "empty year in " cite$ * "; set to ????" * warning$
635 FUNCTION{format.year}
636 { year "year" bibinfo.check duplicate$ empty$
637 { "empty year in " cite$ *
648 FUNCTION {format.btitle}
649 { title "title" bibinfo.check
650 duplicate$ empty$ 'skip$
655 FUNCTION {either.or.check}
658 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
661 FUNCTION {format.bvolume}
664 { bbl.volume volume tie.or.space.prefix
665 "volume" bibinfo.check * *
666 series "series" bibinfo.check
667 duplicate$ empty$ 'pop$
668 { swap$ bbl.of space.word * swap$
671 "volume and number" number either.or.check
675 FUNCTION {format.number.series}
678 { series field.or.null }
680 { number "number" bibinfo.check }
681 { output.state mid.sentence =
683 { bbl.number capitalize }
685 number tie.or.space.prefix "number" bibinfo.check * *
687 series "series" bibinfo.check *
697 FUNCTION {format.edition}
698 { edition duplicate$ empty$ 'skip$
700 output.state mid.sentence =
704 "edition" bibinfo.check
709 INTEGERS { multiresult }
710 FUNCTION {multi.page.check}
719 swap$ duplicate$ "," =
722 { #1 'multiresult := }
723 { t #2 global.max$ substring$ 't := }
729 FUNCTION {format.pages}
730 { pages duplicate$ empty$ 'skip$
731 { duplicate$ multi.page.check
738 "pages" bibinfo.check
742 FUNCTION {format.journal.pages}
743 { pages duplicate$ empty$ 'pop$
744 { swap$ duplicate$ empty$
745 { pop$ pop$ format.pages }
751 "pages" bibinfo.check
758 FUNCTION {format.journal.eid}
759 { eid "eid" bibinfo.check
760 duplicate$ empty$ 'pop$
761 { swap$ duplicate$ empty$ 'skip$
770 FUNCTION {format.vol.num.pages}
771 { volume field.or.null
772 duplicate$ empty$ 'skip$
774 "volume" bibinfo.check
777 number "number" bibinfo.check duplicate$ empty$ 'skip$
779 swap$ duplicate$ empty$
780 { "there's a number but no volume in " cite$ * warning$ }
789 FUNCTION {format.chapter.pages}
794 { type "l" change.case$
798 chapter tie.or.space.prefix
799 "chapter" bibinfo.check
805 FUNCTION {format.booktitle}
807 booktitle "booktitle" bibinfo.check
809 FUNCTION {format.in.ed.booktitle}
810 { format.booktitle duplicate$ empty$ 'skip$
812 editor "editor" format.names.ed duplicate$ empty$ 'pop$
825 FUNCTION {format.thesis.type}
826 { type duplicate$ empty$
829 "t" change.case$ "type" bibinfo.check
833 FUNCTION {format.tr.number}
834 { number "number" bibinfo.check
835 type duplicate$ empty$
840 swap$ duplicate$ empty$
841 { pop$ "t" change.case$ }
842 { tie.or.space.prefix * * }
845 FUNCTION {format.article.crossref}
848 " \cite{" * crossref * "}" *
850 FUNCTION {format.book.crossref}
851 { volume duplicate$ empty$
852 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
856 swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
859 " \cite{" * crossref * "}" *
861 FUNCTION {format.incoll.inproc.crossref}
864 " \cite{" * crossref * "}" *
866 FUNCTION {format.org.or.pub}
869 address empty$ t empty$ and
873 { address "address" bibinfo.check *
878 { ", " * address "address" bibinfo.check * }
885 FUNCTION {format.publisher.address}
886 { publisher "publisher" bibinfo.warn format.org.or.pub
889 FUNCTION {format.organization.address}
890 { organization "organization" bibinfo.check format.org.or.pub
895 format.authors "author" output.check
896 author format.key output
897 format.title "title" output.check
901 "journal" bibinfo.check
902 "journal" output.check
904 format.vol.num.pages output
906 { format.article.crossref output.nonnull
910 { format.journal.pages }
911 { format.journal.eid }
922 { format.editors "author and editor" output.check
923 editor format.key output
925 { format.authors output.nonnull
927 { "author and editor" editor either.or.check }
932 format.btitle "title" output.check
934 { format.bvolume output
935 format.number.series output
936 format.publisher.address output
939 format.book.crossref output.nonnull
942 format.edition output
947 format.date "year" output.check
952 format.authors output
953 author format.key output
954 format.title "title" output.check
955 howpublished "howpublished" bibinfo.check output
956 address "address" bibinfo.check output
961 format.date "year" output.check
968 { format.editors "author and editor" output.check
969 editor format.key output
971 { format.authors output.nonnull
973 { "author and editor" editor either.or.check }
978 format.btitle "title" output.check
981 format.bvolume output
982 format.chapter.pages "chapter and pages" output.check
983 format.number.series output
984 format.publisher.address output
987 format.chapter.pages "chapter and pages" output.check
988 format.book.crossref output.nonnull
991 format.edition output
993 { format.isbn output }
996 format.pages "pages" output.check
1000 format.date "year" output.check
1004 FUNCTION {incollection}
1006 format.authors "author" output.check
1007 author format.key output
1008 format.title "title" output.check
1010 { format.in.ed.booktitle "booktitle" output.check
1011 format.bvolume output
1012 format.number.series output
1013 format.chapter.pages output
1014 format.publisher.address output
1015 format.edition output
1018 { format.incoll.inproc.crossref output.nonnull
1019 format.chapter.pages output
1022 format.pages "pages" output.check
1026 format.date "year" output.check
1029 FUNCTION {inproceedings}
1031 format.authors "author" output.check
1032 author format.key output
1033 format.title "title" output.check
1035 { format.in.ed.booktitle "booktitle" output.check
1036 format.bvolume output
1037 format.number.series output
1039 { format.organization.address output }
1040 { organization "organization" bibinfo.check output
1041 format.publisher.address output
1047 { format.incoll.inproc.crossref output.nonnull
1050 format.pages "pages" output.check
1054 format.date "year" output.check
1057 FUNCTION {conference} { inproceedings }
1060 format.authors output
1061 author format.key output
1062 format.btitle "title" output.check
1063 organization "organization" bibinfo.check output
1064 address "address" bibinfo.check output
1065 format.edition output
1069 format.date "year" output.check
1073 FUNCTION {mastersthesis}
1075 format.authors "author" output.check
1076 author format.key output
1078 "title" output.check
1079 bbl.mthesis format.thesis.type output.nonnull
1080 school "school" bibinfo.warn output
1081 address "address" bibinfo.check output
1085 format.date "year" output.check
1091 format.authors output
1092 author format.key output
1094 howpublished "howpublished" bibinfo.check output
1098 format.date "year" output.check
1101 FUNCTION {phdthesis}
1103 format.authors "author" output.check
1104 author format.key output
1106 "title" output.check
1107 bbl.phdthesis format.thesis.type output.nonnull
1108 school "school" bibinfo.warn output
1109 address "address" bibinfo.check output
1113 format.date "year" output.check
1117 FUNCTION {proceedings}
1119 format.editors output
1120 editor format.key output
1121 format.btitle "title" output.check
1122 format.bvolume output
1123 format.number.series output
1125 { format.organization.address output }
1126 { organization "organization" bibinfo.check output
1127 format.publisher.address output
1135 format.date "year" output.check
1139 FUNCTION {techreport}
1141 format.authors "author" output.check
1142 author format.key output
1144 "title" output.check
1145 format.tr.number output.nonnull
1146 institution "institution" bibinfo.warn output
1147 address "address" bibinfo.check output
1151 format.date "year" output.check
1155 FUNCTION {unpublished}
1157 format.authors "author" output.check
1158 author format.key output
1159 format.title "title" output.check
1162 format.note "note" output.check
1167 FUNCTION {default.type} { misc }
1174 FUNCTION {chop.word}
1177 s #1 len substring$ =
1178 { s len #1 + global.max$ substring$ }
1182 FUNCTION {format.lab.names}
1185 s #1 "{vv~}{ll}" format.name$
1186 s num.names$ duplicate$
1193 { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1197 { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
1206 FUNCTION {author.key.label}
1209 { cite$ #1 #3 substring$ }
1213 { author format.lab.names }
1217 FUNCTION {author.editor.key.label}
1221 { cite$ #1 #3 substring$ }
1225 { editor format.lab.names }
1228 { author format.lab.names }
1232 FUNCTION {editor.key.label}
1235 { cite$ #1 #3 substring$ }
1239 { editor format.lab.names }
1243 FUNCTION {calc.short.authors}
1247 'author.editor.key.label
1248 { type$ "proceedings" =
1257 FUNCTION {calc.label}
1258 { calc.short.authors
1262 year duplicate$ empty$
1264 { purify$ #-1 #4 substring$ }
1270 FUNCTION {sort.format.names}
1274 s num.names$ 'numnames :=
1275 numnames 'namesleft :=
1278 "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
1283 namesleft #1 = t "others" = and
1290 nameptr #1 + 'nameptr :=
1291 namesleft #1 - 'namesleft :=
1296 FUNCTION {sort.format.title}
1300 "The " #4 t chop.word
1304 #1 global.max$ substring$
1306 FUNCTION {author.sort}
1309 { "to sort, need author or key in " cite$ * warning$
1315 { author sort.format.names }
1318 FUNCTION {author.editor.sort}
1322 { "to sort, need author, editor, or key in " cite$ * warning$
1328 { editor sort.format.names }
1331 { author sort.format.names }
1334 FUNCTION {editor.sort}
1337 { "to sort, need editor or key in " cite$ * warning$
1343 { editor sort.format.names }
1346 INTEGERS { seq.num }
1350 FUNCTION {int.to.fix}
1351 { "000000000" swap$ int.to.str$ *
1359 seq.num #1 + 'seq.num :=
1369 #1 entry.max$ substring$
1375 STRINGS { last.label next.extra }
1376 INTEGERS { last.extra.num number.label }
1377 FUNCTION {initialize.extra.label.stuff}
1378 { #0 int.to.chr$ 'last.label :=
1380 #0 'last.extra.num :=
1383 FUNCTION {forward.pass}
1384 { last.label label =
1385 { last.extra.num #1 + 'last.extra.num :=
1386 last.extra.num int.to.chr$ 'extra.label :=
1388 { "a" chr.to.int$ 'last.extra.num :=
1390 label 'last.label :=
1393 number.label #1 + 'number.label :=
1395 FUNCTION {reverse.pass}
1397 { "a" 'extra.label := }
1400 extra.label 'next.extra :=
1404 { "{\natexlab{" swap$ * "}}" * }
1407 label extra.label * 'label :=
1409 EXECUTE {initialize.extra.label.stuff}
1410 ITERATE {forward.pass}
1411 REVERSE {reverse.pass}
1412 FUNCTION {bib.sort.order}
1416 year field.or.null sortify
1423 #1 entry.max$ substring$
1426 ITERATE {bib.sort.order}
1428 FUNCTION {begin.bib}
1431 { preamble$ write$ newline$ }
1433 "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1435 "\providecommand{\natexlab}[1]{#1}"
1437 "\providecommand{\url}[1]{\texttt{#1}}"
1439 "\providecommand{\urlprefix}{URL }"
1441 "\expandafter\ifx\csname urlstyle\endcsname\relax"
1443 " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
1445 " \providecommand{\doi}[1]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\url{#1}\endgroup}\fi"
1447 "\providecommand{\bibinfo}[2]{#2}"
1451 EXECUTE {init.state.consts}
1452 ITERATE {call.type$}
1455 "\end{thebibliography}" write$ newline$
1458 %% End of customized bst file
1461 %% End of file `elsarticle-num-names.bst'.