Diff of /papers/plos2009.bst [000000] .. [171cba]

Switch to unified view

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