|
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 |
|
45 ENTRY |
|
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 } |
|
76 INTEGERS { output.state before.all mid.sentence after.sentence after.block } |
|
77 FUNCTION {init.state.consts} |
|
78 { #0 'before.all := |
|
79 #1 'mid.sentence := |
|
80 #2 'after.sentence := |
|
81 #3 'after.block := |
|
82 } |
|
83 STRINGS { s t} |
|
84 FUNCTION {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 } |
|
104 FUNCTION {output} |
|
105 { duplicate$ empty$ |
|
106 'pop$ |
|
107 'output.nonnull |
|
108 if$ |
|
109 } |
|
110 FUNCTION {output.check} |
|
111 { 't := |
|
112 duplicate$ empty$ |
|
113 { pop$ "empty " t * " in " * cite$ * warning$ } |
|
114 'output.nonnull |
|
115 if$ |
|
116 } |
|
117 FUNCTION {fin.entry} |
|
118 { add.period$ |
|
119 write$ |
|
120 newline$ |
|
121 } |
|
122 |
|
123 FUNCTION {new.block} |
|
124 { output.state before.all = |
|
125 'skip$ |
|
126 { after.block 'output.state := } |
|
127 if$ |
|
128 } |
|
129 FUNCTION {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 } |
|
139 FUNCTION {add.blank} |
|
140 { " " * before.all 'output.state := |
|
141 } |
|
142 |
|
143 FUNCTION {date.block} |
|
144 { |
|
145 skip$ |
|
146 } |
|
147 |
|
148 FUNCTION {not} |
|
149 { { #0 } |
|
150 { #1 } |
|
151 if$ |
|
152 } |
|
153 FUNCTION {and} |
|
154 { 'skip$ |
|
155 { pop$ #0 } |
|
156 if$ |
|
157 } |
|
158 FUNCTION {or} |
|
159 { { pop$ #1 } |
|
160 'skip$ |
|
161 if$ |
|
162 } |
|
163 FUNCTION {new.block.checkb} |
|
164 { empty$ |
|
165 swap$ empty$ |
|
166 and |
|
167 'skip$ |
|
168 'new.block |
|
169 if$ |
|
170 } |
|
171 FUNCTION {field.or.null} |
|
172 { duplicate$ empty$ |
|
173 { pop$ "" } |
|
174 'skip$ |
|
175 if$ |
|
176 } |
|
177 FUNCTION {emphasize} |
|
178 { duplicate$ empty$ |
|
179 { pop$ "" } |
|
180 { "\emph{" swap$ * "}" * } |
|
181 if$ |
|
182 } |
|
183 FUNCTION {tie.or.space.prefix} |
|
184 { duplicate$ text.length$ #3 < |
|
185 { "~" } |
|
186 { " " } |
|
187 if$ |
|
188 swap$ |
|
189 } |
|
190 |
|
191 FUNCTION {capitalize} |
|
192 { "u" change.case$ "t" change.case$ } |
|
193 |
|
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 %------------------------------------------------------------------- |
|
199 % Begin module: |
|
200 % \ProvidesFile{english.mbs}[2003/11/06 4.2 (PWD)] |
|
201 |
|
202 % The language selected here is ENGLISH |
|
203 FUNCTION {bbl.and} |
|
204 { "and"} |
|
205 |
|
206 FUNCTION {bbl.etal} |
|
207 { "et~al." } |
|
208 |
|
209 FUNCTION {bbl.editors} |
|
210 { "eds." } |
|
211 |
|
212 FUNCTION {bbl.editor} |
|
213 { "ed." } |
|
214 |
|
215 FUNCTION {bbl.edby} |
|
216 { "edited by" } |
|
217 |
|
218 FUNCTION {bbl.edition} |
|
219 { "edn." } |
|
220 |
|
221 FUNCTION {bbl.volume} |
|
222 { "vol." } |
|
223 |
|
224 FUNCTION {bbl.of} |
|
225 { "of" } |
|
226 |
|
227 FUNCTION {bbl.number} |
|
228 { "no." } |
|
229 |
|
230 FUNCTION {bbl.nr} |
|
231 { "no." } |
|
232 |
|
233 FUNCTION {bbl.in} |
|
234 { "in" } |
|
235 |
|
236 FUNCTION {bbl.pages} |
|
237 { "" } |
|
238 |
|
239 FUNCTION {bbl.page} |
|
240 { "" } |
|
241 |
|
242 FUNCTION {bbl.chapter} |
|
243 { "chap." } |
|
244 |
|
245 FUNCTION {bbl.techrep} |
|
246 { "Tech. Rep." } |
|
247 |
|
248 FUNCTION {bbl.mthesis} |
|
249 { "Master's thesis" } |
|
250 |
|
251 FUNCTION {bbl.phdthesis} |
|
252 { "Ph.D. thesis" } |
|
253 |
|
254 MACRO {jan} {"Jan."} |
|
255 |
|
256 MACRO {feb} {"Feb."} |
|
257 |
|
258 MACRO {mar} {"Mar."} |
|
259 |
|
260 MACRO {apr} {"Apr."} |
|
261 |
|
262 MACRO {may} {"May"} |
|
263 |
|
264 MACRO {jun} {"Jun."} |
|
265 |
|
266 MACRO {jul} {"Jul."} |
|
267 |
|
268 MACRO {aug} {"Aug."} |
|
269 |
|
270 MACRO {sep} {"Sep."} |
|
271 |
|
272 MACRO {oct} {"Oct."} |
|
273 |
|
274 MACRO {nov} {"Nov."} |
|
275 |
|
276 MACRO {dec} {"Dec."} |
|
277 |
|
278 % End module: english.mbs |
|
279 %% Copyright 1994-2004 Patrick W Daly |
|
280 MACRO {acmcs} {"ACM Computing Surveys"} |
|
281 |
|
282 MACRO {acta} {"Acta Informatica"} |
|
283 |
|
284 MACRO {cacm} {"Communications of the ACM"} |
|
285 |
|
286 MACRO {ibmjrd} {"IBM Journal of Research and Development"} |
|
287 |
|
288 MACRO {ibmsj} {"IBM Systems Journal"} |
|
289 |
|
290 MACRO {ieeese} {"IEEE Transactions on Software Engineering"} |
|
291 |
|
292 MACRO {ieeetc} {"IEEE Transactions on Computers"} |
|
293 |
|
294 MACRO {ieeetcad} |
|
295 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} |
|
296 |
|
297 MACRO {ipl} {"Information Processing Letters"} |
|
298 |
|
299 MACRO {jacm} {"Journal of the ACM"} |
|
300 |
|
301 MACRO {jcss} {"Journal of Computer and System Sciences"} |
|
302 |
|
303 MACRO {scp} {"Science of Computer Programming"} |
|
304 |
|
305 MACRO {sicomp} {"SIAM Journal on Computing"} |
|
306 |
|
307 MACRO {tocs} {"ACM Transactions on Computer Systems"} |
|
308 |
|
309 MACRO {tods} {"ACM Transactions on Database Systems"} |
|
310 |
|
311 MACRO {tog} {"ACM Transactions on Graphics"} |
|
312 |
|
313 MACRO {toms} {"ACM Transactions on Mathematical Software"} |
|
314 |
|
315 MACRO {toois} {"ACM Transactions on Office Information Systems"} |
|
316 |
|
317 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} |
|
318 |
|
319 MACRO {tcs} {"Theoretical Computer Science"} |
|
320 FUNCTION {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 } |
|
338 FUNCTION {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 } |
|
356 FUNCTION {format.url} |
|
357 { url empty$ |
|
358 { "" } |
|
359 { "\urlprefix\url{" url * "}" * } |
|
360 if$ |
|
361 } |
|
362 |
|
363 STRINGS { bibinfo} |
|
364 INTEGERS { nameptr namesleft numnames } |
|
365 |
|
366 FUNCTION {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 } |
|
407 FUNCTION {format.names.ed} |
|
408 { |
|
409 format.names |
|
410 } |
|
411 FUNCTION {format.key} |
|
412 { empty$ |
|
413 { key field.or.null } |
|
414 { "" } |
|
415 if$ |
|
416 } |
|
417 |
|
418 FUNCTION {format.authors} |
|
419 { author "author" format.names |
|
420 } |
|
421 FUNCTION {get.bbl.editor} |
|
422 { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } |
|
423 |
|
424 FUNCTION {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 } |
|
435 FUNCTION {format.isbn} |
|
436 { isbn "isbn" bibinfo.check |
|
437 duplicate$ empty$ 'skip$ |
|
438 { |
|
439 "ISBN " swap$ * |
|
440 } |
|
441 if$ |
|
442 } |
|
443 |
|
444 FUNCTION {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 |
|
462 FUNCTION {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 |
|
481 FUNCTION {format.title} |
|
482 { title |
|
483 "title" bibinfo.check |
|
484 } |
|
485 FUNCTION {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 |
|
528 FUNCTION {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 |
|
543 FUNCTION {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 |
|
554 FUNCTION {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 |
|
565 FUNCTION {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 |
|
578 FUNCTION {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 |
|
594 FUNCTION {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 |
|
620 FUNCTION {word.in} |
|
621 { bbl.in |
|
622 ":" * |
|
623 " " * } |
|
624 |
|
625 FUNCTION {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 } |
|
635 FUNCTION{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 } |
|
648 FUNCTION {format.btitle} |
|
649 { title "title" bibinfo.check |
|
650 duplicate$ empty$ 'skip$ |
|
651 { |
|
652 } |
|
653 if$ |
|
654 } |
|
655 FUNCTION {either.or.check} |
|
656 { empty$ |
|
657 'pop$ |
|
658 { "can't use both " swap$ * " fields in " * cite$ * warning$ } |
|
659 if$ |
|
660 } |
|
661 FUNCTION {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 } |
|
675 FUNCTION {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 |
|
697 FUNCTION {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 } |
|
709 INTEGERS { multiresult } |
|
710 FUNCTION {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 } |
|
729 FUNCTION {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 } |
|
742 FUNCTION {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 } |
|
758 FUNCTION {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 } |
|
770 FUNCTION {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 |
|
789 FUNCTION {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 |
|
805 FUNCTION {format.booktitle} |
|
806 { |
|
807 booktitle "booktitle" bibinfo.check |
|
808 } |
|
809 FUNCTION {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 } |
|
825 FUNCTION {format.thesis.type} |
|
826 { type duplicate$ empty$ |
|
827 'pop$ |
|
828 { swap$ pop$ |
|
829 "t" change.case$ "type" bibinfo.check |
|
830 } |
|
831 if$ |
|
832 } |
|
833 FUNCTION {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 } |
|
845 FUNCTION {format.article.crossref} |
|
846 { |
|
847 word.in |
|
848 " \cite{" * crossref * "}" * |
|
849 } |
|
850 FUNCTION {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 } |
|
861 FUNCTION {format.incoll.inproc.crossref} |
|
862 { |
|
863 word.in |
|
864 " \cite{" * crossref * "}" * |
|
865 } |
|
866 FUNCTION {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 } |
|
885 FUNCTION {format.publisher.address} |
|
886 { publisher "publisher" bibinfo.warn format.org.or.pub |
|
887 } |
|
888 |
|
889 FUNCTION {format.organization.address} |
|
890 { organization "organization" bibinfo.check format.org.or.pub |
|
891 } |
|
892 |
|
893 FUNCTION {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 } |
|
919 FUNCTION {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 } |
|
950 FUNCTION {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 |
|
965 FUNCTION {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 |
|
1004 FUNCTION {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 } |
|
1029 FUNCTION {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 } |
|
1057 FUNCTION {conference} { inproceedings } |
|
1058 FUNCTION {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 |
|
1073 FUNCTION {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 |
|
1089 FUNCTION {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 } |
|
1101 FUNCTION {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 |
|
1117 FUNCTION {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 |
|
1139 FUNCTION {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 |
|
1155 FUNCTION {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 |
|
1167 FUNCTION {default.type} { misc } |
|
1168 READ |
|
1169 FUNCTION {sortify} |
|
1170 { purify$ |
|
1171 "l" change.case$ |
|
1172 } |
|
1173 INTEGERS { len } |
|
1174 FUNCTION {chop.word} |
|
1175 { 's := |
|
1176 'len := |
|
1177 s #1 len substring$ = |
|
1178 { s len #1 + global.max$ substring$ } |
|
1179 's |
|
1180 if$ |
|
1181 } |
|
1182 FUNCTION {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 |
|
1206 FUNCTION {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 |
|
1217 FUNCTION {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 |
|
1232 FUNCTION {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 |
|
1243 FUNCTION {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 |
|
1257 FUNCTION {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 |
|
1270 FUNCTION {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 |
|
1296 FUNCTION {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 } |
|
1306 FUNCTION {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 } |
|
1318 FUNCTION {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 } |
|
1334 FUNCTION {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 } |
|
1346 INTEGERS { seq.num } |
|
1347 FUNCTION {init.seq} |
|
1348 { #0 'seq.num :=} |
|
1349 EXECUTE {init.seq} |
|
1350 FUNCTION {int.to.fix} |
|
1351 { "000000000" swap$ int.to.str$ * |
|
1352 #-1 #10 substring$ |
|
1353 } |
|
1354 FUNCTION {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 |
|
1373 ITERATE {presort} |
|
1374 SORT |
|
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 := |
|
1379 "" 'next.extra := |
|
1380 #0 'last.extra.num := |
|
1381 #0 'number.label := |
|
1382 } |
|
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 := |
|
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 } |
|
1395 FUNCTION {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 } |
|
1409 EXECUTE {initialize.extra.label.stuff} |
|
1410 ITERATE {forward.pass} |
|
1411 REVERSE {reverse.pass} |
|
1412 FUNCTION {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 } |
|
1426 ITERATE {bib.sort.order} |
|
1427 SORT |
|
1428 FUNCTION {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 } |
|
1450 EXECUTE {begin.bib} |
|
1451 EXECUTE {init.state.consts} |
|
1452 ITERATE {call.type$} |
|
1453 FUNCTION {end.bib} |
|
1454 { newline$ |
|
1455 "\end{thebibliography}" write$ newline$ |
|
1456 } |
|
1457 EXECUTE {end.bib} |
|
1458 %% End of customized bst file |
|
1459 %% |
|
1460 %% |
|
1461 %% End of file `elsarticle-num-names.bst'. |