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