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