source: Papers/jar-cerco-2017/spphys.bst @ 3622

Last change on this file since 3622 was 3596, checked in by mulligan, 3 years ago

added jar style files

File size: 27.9 KB
Line 
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
45ENTRY
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 }
74INTEGERS { output.state before.all mid.sentence after.sentence after.block }
75FUNCTION {init.state.consts}
76{ #0 'before.all :=
77  #1 'mid.sentence :=
78  #2 'after.sentence :=
79  #3 'after.block :=
80}
81STRINGS { s t}
82FUNCTION {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}
102FUNCTION {output}
103{ duplicate$ empty$
104    'pop$
105    'output.nonnull
106  if$
107}
108FUNCTION {output.check}
109{ 't :=
110  duplicate$ empty$
111    { pop$ "empty " t * " in " * cite$ * warning$ }
112    'output.nonnull
113  if$
114}
115FUNCTION {fin.entry}
116{ duplicate$ empty$
117    'pop$
118    'write$
119  if$
120  newline$
121}
122
123FUNCTION {new.block}
124{ output.state before.all =
125    'skip$
126    { after.block 'output.state := }
127  if$
128}
129FUNCTION {new.sentence}
130{ output.state after.block =
131    'skip$
132    { output.state before.all =
133        'skip$
134        { after.sentence 'output.state := }
135      if$
136    }
137  if$
138}
139FUNCTION {add.blank}
140{  " " * before.all 'output.state :=
141}
142
143FUNCTION {add.comma}
144{ duplicate$ empty$
145    'skip$
146    { "," * add.blank }
147  if$
148}
149
150FUNCTION {date.block}
151{
152  new.block
153}
154
155FUNCTION {not}
156{   { #0 }
157    { #1 }
158  if$
159}
160FUNCTION {and}
161{   'skip$
162    { pop$ #0 }
163  if$
164}
165FUNCTION {or}
166{   { pop$ #1 }
167    'skip$
168  if$
169}
170FUNCTION {new.block.checka}
171{ empty$
172    'skip$
173    'new.block
174  if$
175}
176FUNCTION {new.block.checkb}
177{ empty$
178  swap$ empty$
179  and
180    'skip$
181    'new.block
182  if$
183}
184FUNCTION {new.sentence.checka}
185{ empty$
186    'skip$
187    'new.sentence
188  if$
189}
190FUNCTION {new.sentence.checkb}
191{ empty$
192  swap$ empty$
193  and
194    'skip$
195    'new.sentence
196  if$
197}
198FUNCTION {field.or.null}
199{ duplicate$ empty$
200    { pop$ "" }
201    'skip$
202  if$
203}
204FUNCTION {emphasize}
205{ duplicate$ empty$
206    { pop$ "" }
207    { "\emph{" swap$ * "}" * }
208  if$
209}
210FUNCTION {bolden}
211{ duplicate$ empty$
212    { pop$ "" }
213    { "\textbf{" swap$ * "}" * }
214  if$
215}
216FUNCTION {tie.or.space.prefix}
217{ duplicate$ text.length$ #3 <
218    { "~" }
219    { " " }
220  if$
221  swap$
222}
223
224FUNCTION {capitalize}
225{ "u" change.case$ "t" change.case$ }
226
227FUNCTION {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
232FUNCTION {bbl.and}
233{ "and"}
234
235FUNCTION {bbl.etal}
236{ "et~al." }
237
238FUNCTION {bbl.editors}
239{ "eds." }
240
241FUNCTION {bbl.editor}
242{ "ed." }
243
244FUNCTION {bbl.edby}
245{ "ed. by" }
246
247FUNCTION {bbl.edition}
248{ "edn." }
249
250FUNCTION {bbl.volume}
251{ "vol." }
252
253FUNCTION {bbl.of}
254{ "of" }
255
256FUNCTION {bbl.number}
257{ "no." }
258
259FUNCTION {bbl.nr}
260{ "no." }
261
262FUNCTION {bbl.in}
263{ "in" }
264
265FUNCTION {bbl.pages}
266{ "pp." }
267
268FUNCTION {bbl.page}
269{ "p." }
270
271FUNCTION {bbl.chapter}
272{ "chap." }
273
274FUNCTION {bbl.techrep}
275{ "Tech. Rep." }
276
277FUNCTION {bbl.mthesis}
278{ "Master's thesis" }
279
280FUNCTION {bbl.phdthesis}
281{ "Ph.D. thesis" }
282
283FUNCTION {bbl.first}
284{ "1st" }
285
286FUNCTION {bbl.second}
287{ "2nd" }
288
289FUNCTION {bbl.third}
290{ "3rd" }
291
292FUNCTION {bbl.fourth}
293{ "4th" }
294
295FUNCTION {bbl.fifth}
296{ "5th" }
297
298FUNCTION {bbl.st}
299{ "st" }
300
301FUNCTION {bbl.nd}
302{ "nd" }
303
304FUNCTION {bbl.rd}
305{ "rd" }
306
307FUNCTION {bbl.th}
308{ "th" }
309
310MACRO {jan} {"Jan."}
311
312MACRO {feb} {"Feb."}
313
314MACRO {mar} {"Mar."}
315
316MACRO {apr} {"Apr."}
317
318MACRO {may} {"May"}
319
320MACRO {jun} {"Jun."}
321
322MACRO {jul} {"Jul."}
323
324MACRO {aug} {"Aug."}
325
326MACRO {sep} {"Sep."}
327
328MACRO {oct} {"Oct."}
329
330MACRO {nov} {"Nov."}
331
332MACRO {dec} {"Dec."}
333
334FUNCTION {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
355MACRO {acmcs} {"ACM Comput. Surv."}
356
357MACRO {acta} {"Acta Inf."}
358
359MACRO {cacm} {"Commun. ACM"}
360
361MACRO {ibmjrd} {"IBM J. Res. Dev."}
362
363MACRO {ibmsj} {"IBM Syst.~J."}
364
365MACRO {ieeese} {"IEEE Trans. Software Eng."}
366
367MACRO {ieeetc} {"IEEE Trans. Comput."}
368
369MACRO {ieeetcad}
370 {"IEEE Trans. Comput. Aid. Des."}
371
372MACRO {ipl} {"Inf. Process. Lett."}
373
374MACRO {jacm} {"J.~ACM"}
375
376MACRO {jcss} {"J.~Comput. Syst. Sci."}
377
378MACRO {scp} {"Sci. Comput. Program."}
379
380MACRO {sicomp} {"SIAM J. Comput."}
381
382MACRO {tocs} {"ACM Trans. Comput. Syst."}
383
384MACRO {tods} {"ACM Trans. Database Syst."}
385
386MACRO {tog} {"ACM Trans. Graphic."}
387
388MACRO {toms} {"ACM Trans. Math. Software"}
389
390MACRO {toois} {"ACM Trans. Office Inf. Syst."}
391
392MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
393
394MACRO {tcs} {"Theor. Comput. Sci."}
395
396FUNCTION {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}
414FUNCTION {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}
432FUNCTION {format.url}
433{ url empty$
434    { "" }
435    { "\urlprefix\url{" url * "}" * }
436  if$
437}
438
439STRINGS  { bibinfo}
440INTEGERS { nameptr namesleft numnames }
441
442FUNCTION {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}
483FUNCTION {format.names.ed}
484{
485  format.names
486}
487FUNCTION {format.authors}
488{ author "author" format.names
489}
490FUNCTION {get.bbl.editor}
491{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
492
493FUNCTION {format.editors}
494{ editor "editor" format.names duplicate$ empty$ 'skip$
495    {
496      " " *
497      get.bbl.editor
498   "(" swap$ * ")" *
499      *
500    }
501  if$
502}
503FUNCTION {format.doi}
504{ doi "doi" bibinfo.check
505  duplicate$ empty$ 'skip$
506    {
507      new.block
508      "\doi{" swap$ * "}" *
509    }
510  if$
511}
512FUNCTION {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
531FUNCTION {format.title}
532{ title
533  duplicate$ empty$ 'skip$
534    { "t" change.case$ }
535  if$
536  "title" bibinfo.check
537}
538FUNCTION {output.bibitem}
539{ newline$
540  "\bibitem{" write$
541  cite$ write$
542  "}" write$
543  newline$
544  ""
545  before.all 'output.state :=
546}
547
548FUNCTION {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}
560FUNCTION {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}
581FUNCTION {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
608FUNCTION {word.in}
609{ bbl.in
610  " " * }
611
612FUNCTION {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}
639FUNCTION {format.btitle}
640{ title "title" bibinfo.check
641  duplicate$ empty$ 'skip$
642    {
643      emphasize
644    }
645  if$
646}
647FUNCTION {either.or.check}
648{ empty$
649    'pop$
650    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
651  if$
652}
653FUNCTION {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}
666FUNCTION {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}
687FUNCTION {is.num}
688{ chr.to.int$
689  duplicate$ "0" chr.to.int$ < not
690  swap$ "9" chr.to.int$ > not and
691}
692
693FUNCTION {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
711FUNCTION {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
740FUNCTION {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}
753INTEGERS { multiresult }
754FUNCTION {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}
773FUNCTION {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}
790FUNCTION {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
800FUNCTION {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}
815FUNCTION {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}
827FUNCTION {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
851FUNCTION {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
871FUNCTION {format.booktitle}
872{
873  booktitle "booktitle" bibinfo.check
874  emphasize
875}
876FUNCTION {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}
895FUNCTION {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}
903FUNCTION {format.thesis.type}
904{ type duplicate$ empty$
905    'pop$
906    { swap$ pop$
907      "t" change.case$ "type" bibinfo.check
908    }
909  if$
910}
911FUNCTION {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}
923FUNCTION {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}
936FUNCTION {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}
966FUNCTION {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}
995FUNCTION {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}
1015FUNCTION {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}
1051FUNCTION {format.publisher.address}
1052{ publisher "publisher" bibinfo.warn format.org.or.pub
1053}
1054
1055FUNCTION {format.organization.address}
1056{ organization "organization" bibinfo.check format.org.or.pub
1057}
1058
1059FUNCTION {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}
1083FUNCTION {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}
1118FUNCTION {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
1135FUNCTION {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
1174FUNCTION {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}
1197FUNCTION {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}
1225FUNCTION {conference} { inproceedings }
1226FUNCTION {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
1265FUNCTION {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
1284FUNCTION {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}
1300FUNCTION {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
1319FUNCTION {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
1359FUNCTION {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
1378FUNCTION {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
1392FUNCTION {default.type} { misc }
1393READ
1394STRINGS { longest.label }
1395INTEGERS { number.label longest.label.width }
1396FUNCTION {initialize.longest.label}
1397{ "" 'longest.label :=
1398  #1 'number.label :=
1399  #0 'longest.label.width :=
1400}
1401FUNCTION {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}
1411EXECUTE {initialize.longest.label}
1412ITERATE {longest.label.pass}
1413FUNCTION {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}
1431EXECUTE {begin.bib}
1432EXECUTE {init.state.consts}
1433ITERATE {call.type$}
1434FUNCTION {end.bib}
1435{ newline$
1436  "\end{thebibliography}" write$ newline$
1437}
1438EXECUTE {end.bib}
1439%% End of customized bst file
1440%%
1441%% End of file `spphys.bst'.
1442
Note: See TracBrowser for help on using the repository browser.