source: altifloat/doc/ocean_modelling/elsarticle-num-names.bst @ 187

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

add paper latex template

File size: 27.7 KB
Line 
1%%
2%% Copyright 2007, 2008, 2009 Elsevier Ltd
3%%
4%% This file is part of the 'Elsarticle Bundle'.
5%% ---------------------------------------------
6%%
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.
13%%
14%% The list of all files belonging to the 'Elsarticle Bundle' is
15%% given in the file `manifest.txt'.
16%%
17%%
18%% This is file `elsearticle-num-names.bst',
19%% generated with the docstrip utility.
20%%
21%% The original source files were:
22%%
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 ***
28%%
29%% Copyright 1994-2004 Patrick W Daly
30 % ===============================================================
31 % IMPORTANT NOTICE:
32 % This bibliographic style (bst) file has been generated from one or
33 % more master bibliographic style (mbs) files, listed above.
34 %
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 %-------------------------------------------------------------------
44
45ENTRY
46 { address
47   author
48   booktitle
49   chapter
50   doi
51   edition
52   editor
53   eid
54   howpublished
55   institution
56   isbn
57   issn
58   journal
59   key
60   month
61   note
62   number
63   organization
64   pages
65   publisher
66   school
67   series
68   title
69   type
70   url
71   volume
72   year
73 }
74 {}
75 { label extra.label sort.label short.list }
76INTEGERS { output.state before.all mid.sentence after.sentence after.block }
77FUNCTION {init.state.consts}
78{ #0 'before.all :=
79 #1 'mid.sentence :=
80 #2 'after.sentence :=
81 #3 'after.block :=
82}
83STRINGS { s t}
84FUNCTION {output.nonnull}
85{ 's :=
86 output.state mid.sentence =
87   { ", " * write$ }
88   { output.state after.block =
89       { add.period$ write$
90         newline$
91         "\newblock " write$
92       }
93       { output.state before.all =
94           'write$
95           { add.period$ " " * write$ }
96         if$
97       }
98     if$
99     mid.sentence 'output.state :=
100   }
101 if$
102 s
103}
104FUNCTION {output}
105{ duplicate$ empty$
106   'pop$
107   'output.nonnull
108 if$
109}
110FUNCTION {output.check}
111{ 't :=
112 duplicate$ empty$
113   { pop$ "empty " t * " in " * cite$ * warning$ }
114   'output.nonnull
115 if$
116}
117FUNCTION {fin.entry}
118{ add.period$
119 write$
120 newline$
121}
122
123FUNCTION {new.block}
124{ output.state before.all =
125   'skip$
126   { after.block 'output.state := }
127 if$
128}
129FUNCTION {new.sentence}
130{ output.state after.block =
131   'skip$
132   { output.state before.all =
133       'skip$
134       { after.sentence 'output.state := }
135     if$
136   }
137 if$
138}
139FUNCTION {add.blank}
140{  " " * before.all 'output.state :=
141}
142
143FUNCTION {date.block}
144{
145 skip$
146}
147
148FUNCTION {not}
149{   { #0 }
150   { #1 }
151 if$
152}
153FUNCTION {and}
154{   'skip$
155   { pop$ #0 }
156 if$
157}
158FUNCTION {or}
159{   { pop$ #1 }
160   'skip$
161 if$
162}
163FUNCTION {new.block.checkb}
164{ empty$
165 swap$ empty$
166 and
167   'skip$
168   'new.block
169 if$
170}
171FUNCTION {field.or.null}
172{ duplicate$ empty$
173   { pop$ "" }
174   'skip$
175 if$
176}
177FUNCTION {emphasize}
178{ duplicate$ empty$
179   { pop$ "" }
180   { "\emph{" swap$ * "}" * }
181 if$
182}
183FUNCTION {tie.or.space.prefix}
184{ duplicate$ text.length$ #3 <
185   { "~" }
186   { " " }
187 if$
188 swap$
189}
190
191FUNCTION {capitalize}
192{ "u" change.case$ "t" change.case$ }
193
194FUNCTION {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 %-------------------------------------------------------------------
199 % Begin module:
200 % \ProvidesFile{english.mbs}[2003/11/06 4.2 (PWD)]
201
202 % The language selected here is ENGLISH
203FUNCTION {bbl.and}
204{ "and"}
205
206FUNCTION {bbl.etal}
207{ "et~al." }
208
209FUNCTION {bbl.editors}
210{ "eds." }
211
212FUNCTION {bbl.editor}
213{ "ed." }
214
215FUNCTION {bbl.edby}
216{ "edited by" }
217
218FUNCTION {bbl.edition}
219{ "edn." }
220
221FUNCTION {bbl.volume}
222{ "vol." }
223
224FUNCTION {bbl.of}
225{ "of" }
226
227FUNCTION {bbl.number}
228{ "no." }
229
230FUNCTION {bbl.nr}
231{ "no." }
232
233FUNCTION {bbl.in}
234{ "in" }
235
236FUNCTION {bbl.pages}
237{ "" }
238
239FUNCTION {bbl.page}
240{ "" }
241
242FUNCTION {bbl.chapter}
243{ "chap." }
244
245FUNCTION {bbl.techrep}
246{ "Tech. Rep." }
247
248FUNCTION {bbl.mthesis}
249{ "Master's thesis" }
250
251FUNCTION {bbl.phdthesis}
252{ "Ph.D. thesis" }
253
254MACRO {jan} {"Jan."}
255
256MACRO {feb} {"Feb."}
257
258MACRO {mar} {"Mar."}
259
260MACRO {apr} {"Apr."}
261
262MACRO {may} {"May"}
263
264MACRO {jun} {"Jun."}
265
266MACRO {jul} {"Jul."}
267
268MACRO {aug} {"Aug."}
269
270MACRO {sep} {"Sep."}
271
272MACRO {oct} {"Oct."}
273
274MACRO {nov} {"Nov."}
275
276MACRO {dec} {"Dec."}
277
278 % End module: english.mbs
279%% Copyright 1994-2004 Patrick W Daly
280MACRO {acmcs} {"ACM Computing Surveys"}
281
282MACRO {acta} {"Acta Informatica"}
283
284MACRO {cacm} {"Communications of the ACM"}
285
286MACRO {ibmjrd} {"IBM Journal of Research and Development"}
287
288MACRO {ibmsj} {"IBM Systems Journal"}
289
290MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
291
292MACRO {ieeetc} {"IEEE Transactions on Computers"}
293
294MACRO {ieeetcad}
295 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
296
297MACRO {ipl} {"Information Processing Letters"}
298
299MACRO {jacm} {"Journal of the ACM"}
300
301MACRO {jcss} {"Journal of Computer and System Sciences"}
302
303MACRO {scp} {"Science of Computer Programming"}
304
305MACRO {sicomp} {"SIAM Journal on Computing"}
306
307MACRO {tocs} {"ACM Transactions on Computer Systems"}
308
309MACRO {tods} {"ACM Transactions on Database Systems"}
310
311MACRO {tog} {"ACM Transactions on Graphics"}
312
313MACRO {toms} {"ACM Transactions on Mathematical Software"}
314
315MACRO {toois} {"ACM Transactions on Office Information Systems"}
316
317MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
318
319MACRO {tcs} {"Theoretical Computer Science"}
320FUNCTION {bibinfo.check}
321{ swap$
322 duplicate$ missing$
323   {
324     pop$ pop$
325     ""
326   }
327   { duplicate$ empty$
328       {
329         swap$ pop$
330       }
331       { swap$
332         "\bibinfo{" swap$ * "}{" * swap$ * "}" *
333       }
334     if$
335   }
336 if$
337}
338FUNCTION {bibinfo.warn}
339{ swap$
340 duplicate$ missing$
341   {
342     swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
343     ""
344   }
345   { duplicate$ empty$
346       {
347         swap$ "empty " swap$ * " in " * cite$ * warning$
348       }
349       { swap$
350         "\bibinfo{" swap$ * "}{" * swap$ * "}" *
351       }
352     if$
353   }
354 if$
355}
356FUNCTION {format.url}
357{ url empty$
358   { "" }
359   { "\urlprefix\url{" url * "}" * }
360 if$
361}
362
363STRINGS  { bibinfo}
364INTEGERS { nameptr namesleft numnames }
365
366FUNCTION {format.names}
367{ 'bibinfo :=
368 duplicate$ empty$ 'skip$ {
369 's :=
370 "" 't :=
371 #1 'nameptr :=
372 s num.names$ 'numnames :=
373 numnames 'namesleft :=
374   { namesleft #0 > }
375   { s nameptr
376     "{f.~}{vv~}{ll}{, jj}"
377     format.name$
378     bibinfo bibinfo.check
379     't :=
380     nameptr #1 >
381       {
382         namesleft #1 >
383           { ", " * t * }
384           {
385             "," *
386             s nameptr "{ll}" format.name$ duplicate$ "others" =
387               { 't := }
388               { pop$ }
389             if$
390             t "others" =
391               {
392                 " " * bbl.etal *
393               }
394               { " " * t * }
395             if$
396           }
397         if$
398       }
399       't
400     if$
401     nameptr #1 + 'nameptr :=
402     namesleft #1 - 'namesleft :=
403   }
404 while$
405 } if$
406}
407FUNCTION {format.names.ed}
408{
409 format.names
410}
411FUNCTION {format.key}
412{ empty$
413   { key field.or.null }
414   { "" }
415 if$
416}
417
418FUNCTION {format.authors}
419{ author "author" format.names
420}
421FUNCTION {get.bbl.editor}
422{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
423
424FUNCTION {format.editors}
425{ editor "editor" format.names duplicate$ empty$ 'skip$
426   {
427     " " *
428     get.bbl.editor
429     capitalize
430  "(" swap$ * ")" *
431     *
432   }
433 if$
434}
435FUNCTION {format.isbn}
436{ isbn "isbn" bibinfo.check
437 duplicate$ empty$ 'skip$
438   {
439     "ISBN " swap$ *
440   }
441 if$
442}
443
444FUNCTION {format.issn}
445{ issn "issn" bibinfo.check
446 duplicate$ empty$ 'skip$
447   {
448     "ISSN " swap$ *
449   }
450 if$
451}
452
453 FUNCTION {format.doi}
454 { doi "doi" bibinfo.check
455  duplicate$ empty$ 'skip$
456    {
457      "\doi{" swap$  * "}" *
458    }
459  if$
460 }
461
462FUNCTION {format.note}
463{
464 note empty$
465   { "" }
466   { note #1 #1 substring$
467     duplicate$ "{" =
468       'skip$
469       { output.state mid.sentence =
470         { "l" }
471         { "u" }
472       if$
473       change.case$
474       }
475     if$
476     note #2 global.max$ substring$ * "note" bibinfo.check
477   }
478 if$
479}
480
481FUNCTION {format.title}
482{ title
483 "title" bibinfo.check
484}
485FUNCTION {format.full.names}
486{'s :=
487 "" 't :=
488 #1 'nameptr :=
489 s num.names$ 'numnames :=
490 numnames 'namesleft :=
491   { namesleft #0 > }
492   { s nameptr
493     "{vv~}{ll}" format.name$
494     't :=
495     nameptr #1 >
496       {
497         namesleft #1 >
498           { ", " * t * }
499           {
500             s nameptr "{ll}" format.name$ duplicate$ "others" =
501               { 't := }
502               { pop$ }
503             if$
504             t "others" =
505               {
506                 " " * bbl.etal *
507               }
508               {
509                 numnames #2 >
510                   { "," * }
511                   'skip$
512                 if$
513                 bbl.and
514                 space.word * t *
515               }
516             if$
517           }
518         if$
519       }
520       't
521     if$
522     nameptr #1 + 'nameptr :=
523     namesleft #1 - 'namesleft :=
524   }
525 while$
526}
527
528FUNCTION {author.editor.key.full}
529{ author empty$
530   { editor empty$
531       { key empty$
532           { cite$ #1 #3 substring$ }
533           'key
534         if$
535       }
536       { editor format.full.names }
537     if$
538   }
539   { author format.full.names }
540 if$
541}
542
543FUNCTION {author.key.full}
544{ author empty$
545   { key empty$
546        { cite$ #1 #3 substring$ }
547         'key
548     if$
549   }
550   { author format.full.names }
551 if$
552}
553
554FUNCTION {editor.key.full}
555{ editor empty$
556   { key empty$
557        { cite$ #1 #3 substring$ }
558         'key
559     if$
560   }
561   { editor format.full.names }
562 if$
563}
564
565FUNCTION {make.full.names}
566{ type$ "book" =
567 type$ "inbook" =
568 or
569   'author.editor.key.full
570   { type$ "proceedings" =
571       'editor.key.full
572       'author.key.full
573     if$
574   }
575 if$
576}
577
578FUNCTION {output.bibitem}
579{ newline$
580 "\bibitem[{" write$
581 label write$
582 ")" make.full.names duplicate$ short.list =
583    { pop$ }
584    { * }
585  if$
586 "}]{" * write$
587 cite$ write$
588 "}" write$
589 newline$
590 ""
591 before.all 'output.state :=
592}
593
594FUNCTION {n.dashify}
595{
596 't :=
597 ""
598   { t empty$ not }
599   { t #1 #1 substring$ "-" =
600       { t #1 #2 substring$ "--" = not
601           { "--" *
602             t #2 global.max$ substring$ 't :=
603           }
604           {   { t #1 #1 substring$ "-" = }
605               { "-" *
606                 t #2 global.max$ substring$ 't :=
607               }
608             while$
609           }
610         if$
611       }
612       { t #1 #1 substring$ *
613         t #2 global.max$ substring$ 't :=
614       }
615     if$
616   }
617 while$
618}
619
620FUNCTION {word.in}
621{ bbl.in
622 ":" *
623 " " * }
624
625FUNCTION {format.date}
626{ year "year" bibinfo.check duplicate$ empty$
627   {
628     "empty year in " cite$ * "; set to ????" * warning$
629      pop$ "????"
630   }
631   'skip$
632 if$
633 extra.label *
634}
635FUNCTION{format.year}
636{ year "year" bibinfo.check duplicate$ empty$
637   {  "empty year in " cite$ *
638      "; set to ????" *
639      warning$
640      pop$ "????"
641   }
642   {
643   }
644 if$
645 extra.label *
646 "(" swap$ * ")" *
647}
648FUNCTION {format.btitle}
649{ title "title" bibinfo.check
650 duplicate$ empty$ 'skip$
651   {
652   }
653 if$
654}
655FUNCTION {either.or.check}
656{ empty$
657   'pop$
658   { "can't use both " swap$ * " fields in " * cite$ * warning$ }
659 if$
660}
661FUNCTION {format.bvolume}
662{ volume empty$
663   { "" }
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$
669         emphasize * }
670     if$
671     "volume and number" number either.or.check
672   }
673 if$
674}
675FUNCTION {format.number.series}
676{ volume empty$
677   { number empty$
678       { series field.or.null }
679       { series empty$
680           { number "number" bibinfo.check }
681           { output.state mid.sentence =
682               { bbl.number }
683               { bbl.number capitalize }
684             if$
685             number tie.or.space.prefix "number" bibinfo.check * *
686             bbl.in space.word *
687             series "series" bibinfo.check *
688           }
689         if$
690       }
691     if$
692   }
693   { "" }
694 if$
695}
696
697FUNCTION {format.edition}
698{ edition duplicate$ empty$ 'skip$
699   {
700     output.state mid.sentence =
701       { "l" }
702       { "t" }
703     if$ change.case$
704     "edition" bibinfo.check
705     " " * bbl.edition *
706   }
707 if$
708}
709INTEGERS { multiresult }
710FUNCTION {multi.page.check}
711{ 't :=
712 #0 'multiresult :=
713   { multiresult not
714     t empty$ not
715     and
716   }
717   { t #1 #1 substring$
718     duplicate$ "-" =
719     swap$ duplicate$ "," =
720     swap$ "+" =
721     or or
722       { #1 'multiresult := }
723       { t #2 global.max$ substring$ 't := }
724     if$
725   }
726 while$
727 multiresult
728}
729FUNCTION {format.pages}
730{ pages duplicate$ empty$ 'skip$
731   { duplicate$ multi.page.check
732       {
733         n.dashify
734       }
735       {
736       }
737     if$
738     "pages" bibinfo.check
739   }
740 if$
741}
742FUNCTION {format.journal.pages}
743{ pages duplicate$ empty$ 'pop$
744   { swap$ duplicate$ empty$
745       { pop$ pop$ format.pages }
746       {
747         " " *
748         format.year * " " *
749         swap$
750         n.dashify
751         "pages" bibinfo.check
752         *
753       }
754     if$
755   }
756 if$
757}
758FUNCTION {format.journal.eid}
759{ eid "eid" bibinfo.check
760 duplicate$ empty$ 'pop$
761   { swap$ duplicate$ empty$ 'skip$
762     {
763         " " *
764     }
765     if$
766     swap$ *
767   }
768 if$
769}
770FUNCTION {format.vol.num.pages}
771{ volume field.or.null
772 duplicate$ empty$ 'skip$
773   {
774     "volume" bibinfo.check
775   }
776 if$
777 number "number" bibinfo.check duplicate$ empty$ 'skip$
778   {
779     swap$ duplicate$ empty$
780       { "there's a number but no volume in " cite$ * warning$ }
781       'skip$
782     if$
783     swap$
784     "~(" swap$ * ")" *
785   }
786 if$ *
787}
788
789FUNCTION {format.chapter.pages}
790{ chapter empty$
791   { "" }
792   { type empty$
793       { bbl.chapter }
794       { type "l" change.case$
795         "type" bibinfo.check
796       }
797     if$
798     chapter tie.or.space.prefix
799     "chapter" bibinfo.check
800     * *
801   }
802 if$
803}
804
805FUNCTION {format.booktitle}
806{
807 booktitle "booktitle" bibinfo.check
808}
809FUNCTION {format.in.ed.booktitle}
810{ format.booktitle duplicate$ empty$ 'skip$
811   {
812     editor "editor" format.names.ed duplicate$ empty$ 'pop$
813       {
814         " " *
815         get.bbl.editor
816         capitalize
817         "(" swap$ * "), " *
818         * swap$
819         * }
820     if$
821     word.in swap$ *
822   }
823 if$
824}
825FUNCTION {format.thesis.type}
826{ type duplicate$ empty$
827   'pop$
828   { swap$ pop$
829     "t" change.case$ "type" bibinfo.check
830   }
831 if$
832}
833FUNCTION {format.tr.number}
834{ number "number" bibinfo.check
835 type duplicate$ empty$
836   { pop$ bbl.techrep }
837   'skip$
838 if$
839 "type" bibinfo.check
840 swap$ duplicate$ empty$
841   { pop$ "t" change.case$ }
842   { tie.or.space.prefix * * }
843 if$
844}
845FUNCTION {format.article.crossref}
846{
847 word.in
848 " \cite{" * crossref * "}" *
849}
850FUNCTION {format.book.crossref}
851{ volume duplicate$ empty$
852   { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
853     pop$ word.in
854   }
855   { bbl.volume
856     swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
857   }
858 if$
859 " \cite{" * crossref * "}" *
860}
861FUNCTION {format.incoll.inproc.crossref}
862{
863 word.in
864 " \cite{" * crossref * "}" *
865}
866FUNCTION {format.org.or.pub}
867{ 't :=
868 ""
869 address empty$ t empty$ and
870   'skip$
871   {
872     t empty$
873       { address "address" bibinfo.check *
874       }
875       { t *
876         address empty$
877           'skip$
878           { ", " * address "address" bibinfo.check * }
879         if$
880       }
881     if$
882   }
883 if$
884}
885FUNCTION {format.publisher.address}
886{ publisher "publisher" bibinfo.warn format.org.or.pub
887}
888
889FUNCTION {format.organization.address}
890{ organization "organization" bibinfo.check format.org.or.pub
891}
892
893FUNCTION {article}
894{ output.bibitem
895 format.authors "author" output.check
896 author format.key output
897 format.title "title" output.check
898 crossref missing$
899   {
900     journal
901     "journal" bibinfo.check
902     "journal" output.check
903     add.blank
904     format.vol.num.pages output
905   }
906   { format.article.crossref output.nonnull
907   }
908 if$
909 eid empty$
910   { format.journal.pages }
911   { format.journal.eid }
912 if$
913 format.issn output
914 format.doi output
915 format.url output
916 format.note output
917 fin.entry
918}
919FUNCTION {book}
920{ output.bibitem
921 author empty$
922   { format.editors "author and editor" output.check
923     editor format.key output
924   }
925   { format.authors output.nonnull
926     crossref missing$
927       { "author and editor" editor either.or.check }
928       'skip$
929     if$
930   }
931 if$
932 format.btitle "title" output.check
933 crossref missing$
934   { format.bvolume output
935     format.number.series output
936     format.publisher.address output
937   }
938   {
939     format.book.crossref output.nonnull
940   }
941 if$
942 format.edition output
943 format.isbn output
944 format.doi output
945 format.url output
946 format.note output
947 format.date "year" output.check
948 fin.entry
949}
950FUNCTION {booklet}
951{ output.bibitem
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
957 format.isbn output
958 format.doi output
959 format.url output
960 format.note output
961 format.date "year" output.check
962 fin.entry
963}
964
965FUNCTION {inbook}
966{ output.bibitem
967 author empty$
968   { format.editors "author and editor" output.check
969     editor format.key output
970   }
971   { format.authors output.nonnull
972     crossref missing$
973       { "author and editor" editor either.or.check }
974       'skip$
975     if$
976   }
977 if$
978 format.btitle "title" output.check
979 crossref missing$
980   {
981     format.bvolume output
982     format.chapter.pages "chapter and pages" output.check
983     format.number.series output
984     format.publisher.address output
985   }
986   {
987     format.chapter.pages "chapter and pages" output.check
988     format.book.crossref output.nonnull
989   }
990 if$
991 format.edition output
992 crossref missing$
993   { format.isbn output }
994   'skip$
995 if$
996 format.pages "pages" output.check
997 format.doi output
998 format.url output
999 format.note output
1000 format.date "year" output.check
1001 fin.entry
1002}
1003
1004FUNCTION {incollection}
1005{ output.bibitem
1006 format.authors "author" output.check
1007 author format.key output
1008 format.title "title" output.check
1009 crossref missing$
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
1016     format.isbn output
1017   }
1018   { format.incoll.inproc.crossref output.nonnull
1019     format.chapter.pages output
1020   }
1021 if$
1022 format.pages "pages" output.check
1023 format.doi output
1024 format.url output
1025 format.note output
1026 format.date "year" output.check
1027 fin.entry
1028}
1029FUNCTION {inproceedings}
1030{ output.bibitem
1031 format.authors "author" output.check
1032 author format.key output
1033 format.title "title" output.check
1034 crossref missing$
1035   { format.in.ed.booktitle "booktitle" output.check
1036     format.bvolume output
1037     format.number.series output
1038     publisher empty$
1039       { format.organization.address output }
1040       { organization "organization" bibinfo.check output
1041         format.publisher.address output
1042       }
1043     if$
1044     format.isbn output
1045     format.issn output
1046   }
1047   { format.incoll.inproc.crossref output.nonnull
1048   }
1049 if$
1050 format.pages "pages" output.check
1051 format.doi output
1052 format.url output
1053 format.note output
1054 format.date "year" output.check
1055 fin.entry
1056}
1057FUNCTION {conference} { inproceedings }
1058FUNCTION {manual}
1059{ output.bibitem
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
1066 format.doi output
1067 format.url output
1068 format.note output
1069 format.date "year" output.check
1070 fin.entry
1071}
1072
1073FUNCTION {mastersthesis}
1074{ output.bibitem
1075 format.authors "author" output.check
1076 author format.key output
1077 format.btitle
1078 "title" output.check
1079 bbl.mthesis format.thesis.type output.nonnull
1080 school "school" bibinfo.warn output
1081 address "address" bibinfo.check output
1082 format.doi output
1083 format.url output
1084 format.note output
1085 format.date "year" output.check
1086 fin.entry
1087}
1088
1089FUNCTION {misc}
1090{ output.bibitem
1091 format.authors output
1092 author format.key output
1093 format.title output
1094 howpublished "howpublished" bibinfo.check output
1095 format.doi output
1096 format.url output
1097 format.note output
1098 format.date "year" output.check
1099 fin.entry
1100}
1101FUNCTION {phdthesis}
1102{ output.bibitem
1103 format.authors "author" output.check
1104 author format.key output
1105 format.btitle
1106 "title" output.check
1107 bbl.phdthesis format.thesis.type output.nonnull
1108 school "school" bibinfo.warn output
1109 address "address" bibinfo.check output
1110 format.doi output
1111 format.url output
1112 format.note output
1113 format.date "year" output.check
1114 fin.entry
1115}
1116
1117FUNCTION {proceedings}
1118{ output.bibitem
1119 format.editors output
1120 editor format.key output
1121 format.btitle "title" output.check
1122 format.bvolume output
1123 format.number.series output
1124 publisher empty$
1125   { format.organization.address output }
1126   { organization "organization" bibinfo.check output
1127     format.publisher.address output
1128   }
1129 if$
1130 format.isbn output
1131 format.issn output
1132 format.doi output
1133 format.url output
1134 format.note output
1135 format.date "year" output.check
1136 fin.entry
1137}
1138
1139FUNCTION {techreport}
1140{ output.bibitem
1141 format.authors "author" output.check
1142 author format.key output
1143 format.title
1144 "title" output.check
1145 format.tr.number output.nonnull
1146 institution "institution" bibinfo.warn output
1147 address "address" bibinfo.check output
1148 format.doi output
1149 format.url output
1150 format.note output
1151 format.date "year" output.check
1152 fin.entry
1153}
1154
1155FUNCTION {unpublished}
1156{ output.bibitem
1157 format.authors "author" output.check
1158 author format.key output
1159 format.title "title" output.check
1160 format.doi output
1161 format.url output
1162 format.note "note" output.check
1163 format.date output
1164 fin.entry
1165}
1166
1167FUNCTION {default.type} { misc }
1168READ
1169FUNCTION {sortify}
1170{ purify$
1171 "l" change.case$
1172}
1173INTEGERS { len }
1174FUNCTION {chop.word}
1175{ 's :=
1176 'len :=
1177 s #1 len substring$ =
1178   { s len #1 + global.max$ substring$ }
1179   's
1180 if$
1181}
1182FUNCTION {format.lab.names}
1183{ 's :=
1184 "" 't :=
1185 s #1 "{vv~}{ll}" format.name$
1186 s num.names$ duplicate$
1187 #2 >
1188   { pop$
1189     " " * bbl.etal *
1190   }
1191   { #2 <
1192       'skip$
1193       { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1194           {
1195             " " * bbl.etal *
1196           }
1197           { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
1198             * }
1199         if$
1200       }
1201     if$
1202   }
1203 if$
1204}
1205
1206FUNCTION {author.key.label}
1207{ author empty$
1208   { key empty$
1209       { cite$ #1 #3 substring$ }
1210       'key
1211     if$
1212   }
1213   { author format.lab.names }
1214 if$
1215}
1216
1217FUNCTION {author.editor.key.label}
1218{ author empty$
1219   { editor empty$
1220       { key empty$
1221           { cite$ #1 #3 substring$ }
1222           'key
1223         if$
1224       }
1225       { editor format.lab.names }
1226     if$
1227   }
1228   { author format.lab.names }
1229 if$
1230}
1231
1232FUNCTION {editor.key.label}
1233{ editor empty$
1234   { key empty$
1235       { cite$ #1 #3 substring$ }
1236       'key
1237     if$
1238   }
1239   { editor format.lab.names }
1240 if$
1241}
1242
1243FUNCTION {calc.short.authors}
1244{ type$ "book" =
1245 type$ "inbook" =
1246 or
1247   'author.editor.key.label
1248   { type$ "proceedings" =
1249       'editor.key.label
1250       'author.key.label
1251     if$
1252   }
1253 if$
1254 'short.list :=
1255}
1256
1257FUNCTION {calc.label}
1258{ calc.short.authors
1259 short.list
1260 "("
1261 *
1262 year duplicate$ empty$
1263    { pop$ "????" }
1264    { purify$ #-1 #4 substring$ }
1265 if$
1266 *
1267 'label :=
1268}
1269
1270FUNCTION {sort.format.names}
1271{ 's :=
1272 #1 'nameptr :=
1273 ""
1274 s num.names$ 'numnames :=
1275 numnames 'namesleft :=
1276   { namesleft #0 > }
1277   { s nameptr
1278     "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
1279     format.name$ 't :=
1280     nameptr #1 >
1281       {
1282         "   "  *
1283         namesleft #1 = t "others" = and
1284           { "zzzzz" * }
1285           { t sortify * }
1286         if$
1287       }
1288       { t sortify * }
1289     if$
1290     nameptr #1 + 'nameptr :=
1291     namesleft #1 - 'namesleft :=
1292   }
1293 while$
1294}
1295
1296FUNCTION {sort.format.title}
1297{ 't :=
1298 "A " #2
1299   "An " #3
1300     "The " #4 t chop.word
1301   chop.word
1302 chop.word
1303 sortify
1304 #1 global.max$ substring$
1305}
1306FUNCTION {author.sort}
1307{ author empty$
1308   { key empty$
1309       { "to sort, need author or key in " cite$ * warning$
1310         ""
1311       }
1312       { key sortify }
1313     if$
1314   }
1315   { author sort.format.names }
1316 if$
1317}
1318FUNCTION {author.editor.sort}
1319{ author empty$
1320   { editor empty$
1321       { key empty$
1322           { "to sort, need author, editor, or key in " cite$ * warning$
1323             ""
1324           }
1325           { key sortify }
1326         if$
1327       }
1328       { editor sort.format.names }
1329     if$
1330   }
1331   { author sort.format.names }
1332 if$
1333}
1334FUNCTION {editor.sort}
1335{ editor empty$
1336   { key empty$
1337       { "to sort, need editor or key in " cite$ * warning$
1338         ""
1339       }
1340       { key sortify }
1341     if$
1342   }
1343   { editor sort.format.names }
1344 if$
1345}
1346INTEGERS { seq.num }
1347FUNCTION {init.seq}
1348{ #0 'seq.num :=}
1349EXECUTE {init.seq}
1350FUNCTION {int.to.fix}
1351{ "000000000" swap$ int.to.str$ *
1352 #-1 #10 substring$
1353}
1354FUNCTION {presort}
1355{ calc.label
1356 label sortify
1357 "    "
1358 *
1359 seq.num #1 + 'seq.num :=
1360 seq.num  int.to.fix
1361 'sort.label :=
1362 sort.label
1363 *
1364 "    "
1365 *
1366 title field.or.null
1367 sort.format.title
1368 *
1369 #1 entry.max$ substring$
1370 'sort.key$ :=
1371}
1372
1373ITERATE {presort}
1374SORT
1375STRINGS { last.label next.extra }
1376INTEGERS { last.extra.num number.label }
1377FUNCTION {initialize.extra.label.stuff}
1378{ #0 int.to.chr$ 'last.label :=
1379 "" 'next.extra :=
1380 #0 'last.extra.num :=
1381 #0 'number.label :=
1382}
1383FUNCTION {forward.pass}
1384{ last.label label =
1385   { last.extra.num #1 + 'last.extra.num :=
1386     last.extra.num int.to.chr$ 'extra.label :=
1387   }
1388   { "a" chr.to.int$ 'last.extra.num :=
1389     "" 'extra.label :=
1390     label 'last.label :=
1391   }
1392 if$
1393 number.label #1 + 'number.label :=
1394}
1395FUNCTION {reverse.pass}
1396{ next.extra "b" =
1397   { "a" 'extra.label := }
1398   'skip$
1399 if$
1400 extra.label 'next.extra :=
1401 extra.label
1402 duplicate$ empty$
1403   'skip$
1404   { "{\natexlab{" swap$ * "}}" * }
1405 if$
1406 'extra.label :=
1407 label extra.label * 'label :=
1408}
1409EXECUTE {initialize.extra.label.stuff}
1410ITERATE {forward.pass}
1411REVERSE {reverse.pass}
1412FUNCTION {bib.sort.order}
1413{ sort.label
1414 "    "
1415 *
1416 year field.or.null sortify
1417 *
1418 "    "
1419 *
1420 title field.or.null
1421 sort.format.title
1422 *
1423 #1 entry.max$ substring$
1424 'sort.key$ :=
1425}
1426ITERATE {bib.sort.order}
1427SORT
1428FUNCTION {begin.bib}
1429{ preamble$ empty$
1430   'skip$
1431   { preamble$ write$ newline$ }
1432 if$
1433 "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1434 write$ newline$
1435 "\providecommand{\natexlab}[1]{#1}"
1436 write$ newline$
1437 "\providecommand{\url}[1]{\texttt{#1}}"
1438 write$ newline$
1439 "\providecommand{\urlprefix}{URL }"
1440 write$ newline$
1441 "\expandafter\ifx\csname urlstyle\endcsname\relax"
1442 write$ newline$
1443 "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
1444 write$ newline$
1445 "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\url{#1}\endgroup}\fi"
1446 write$ newline$
1447 "\providecommand{\bibinfo}[2]{#2}"
1448 write$ newline$
1449}
1450EXECUTE {begin.bib}
1451EXECUTE {init.state.consts}
1452ITERATE {call.type$}
1453FUNCTION {end.bib}
1454{ newline$
1455 "\end{thebibliography}" write$ newline$
1456}
1457EXECUTE {end.bib}
1458%% End of customized bst file
1459%%
1460%%
1461%% End of file `elsarticle-num-names.bst'.
Note: See TracBrowser for help on using the repository browser.