~mwinter4/maus/ckov_0_9_3

« back to all changes in this revision

Viewing changes to doc/doc_src/detectors/tracker/01-Current/99-Styles/revtex4-1/revtex4-1-tds/bibtex/bst/revtex/apsrev4-1.bst

MergedĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
%%
2
 
%% This is file `apsrev4-1.bst',
3
 
%% generated with the docstrip utility.
4
 
%%
5
 
%% The original source files were:
6
 
%%
7
 
%% merlin.mbs  (with options: `head,ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
8
 
%% physjour.mbs  (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
9
 
%% geojour.mbs  (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
10
 
%% photjour.mbs  (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
11
 
%% merlin.mbs  (with options: `tail,ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
12
 
%% ----------------------------------------
13
 
%% *** REVTeX-compatible Phys Rev 2010-07-25 ***
14
 
%% 
15
 
%% Copyright 1994-2007 Patrick W Daly
16
 
 % ===============================================================
17
 
 % IMPORTANT NOTICE:
18
 
 % This bibliographic style (bst) file has been generated from one or
19
 
 % more master bibliographic style (mbs) files, listed above.
20
 
 %
21
 
 % This generated file can be redistributed and/or modified under the terms
22
 
 % of the LaTeX Project Public License Distributed from CTAN
23
 
 % archives in directory macros/latex/base/lppl.txt; either
24
 
 % version 1 of the License, or any later version.
25
 
 % ===============================================================
26
 
 % Name and version information of the main mbs file:
27
 
 %   For use with BibTeX version 0.99a or later
28
 
 %-------------------------------------------------------------------
29
 
 % This bibliography style file is intended for texts in ENGLISH
30
 
 % This is an author-year citation style bibliography. As such, it is
31
 
 % non-standard LaTeX, and requires a special package file to function properly.
32
 
 % Such a package is    natbib.sty   by Patrick W. Daly
33
 
 % The form of the \bibitem entries is
34
 
 %   \bibitem[Jones et al.(1990)]{key}...
35
 
 %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
36
 
 % The essential feature is that the label (the part in brackets) consists
37
 
 % of the author names, as they should appear in the citation, with the year
38
 
 % in parentheses following. There must be no space before the opening
39
 
 % parenthesis!
40
 
 % With natbib v5.3, a full list of authors may also follow the year.
41
 
 % In natbib.sty, it is possible to define the type of enclosures that is
42
 
 % really wanted (brackets or parentheses), but in either case, there must
43
 
 % be parentheses in the label.
44
 
 % The \cite command functions as follows:
45
 
 %   \citet{key} ==>>                Jones et al. (1990)
46
 
 %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
47
 
 %   \citep{key} ==>>                (Jones et al., 1990)
48
 
 %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
49
 
 %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
50
 
 %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
51
 
 %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
52
 
 %   \citeauthor{key} ==>>           Jones et al.
53
 
 %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
54
 
 %   \citeyear{key} ==>>             1990
55
 
 %---------------------------------------------------------------------
56
 
 
57
 
FUNCTION {id.bst} {"merlin.mbs apsrev4-1.bst 2010-07-25 4.21a (PWD, AO, DPC) hacked"}
58
 
ENTRY
59
 
{
60
 
    address
61
 
    archive
62
 
    archivePrefix
63
 
    author
64
 
    bookaddress
65
 
    booktitle
66
 
    chapter
67
 
    collaboration
68
 
    doi
69
 
    edition
70
 
    editor
71
 
    eid
72
 
    eprint
73
 
    howpublished
74
 
    institution
75
 
    isbn
76
 
    issn
77
 
    journal
78
 
    key
79
 
    language
80
 
    month
81
 
    note
82
 
    number
83
 
    organization
84
 
    pages
85
 
    primaryClass
86
 
    publisher
87
 
    school
88
 
    SLACcitation
89
 
    series
90
 
    title
91
 
    translation
92
 
    type
93
 
    url
94
 
    volume
95
 
    year
96
 
}{
97
 
}{
98
 
    label
99
 
    extra.label sort.label
100
 
    short.list
101
 
}
102
 
 
103
 
INTEGERS
104
 
{
105
 
  output.state before.all
106
 
  after.word after.punctuation
107
 
  after.sentence after.block
108
 
}
109
 
 
110
 
INTEGERS
111
 
{
112
 
  punctuation.state punctuation.no punctuation.space punctuation.yes
113
 
}
114
 
 
115
 
STRINGS { bibfield output.bibfield }
116
 
 
117
 
FUNCTION {not}
118
 
{   { #0 }
119
 
    { #1 }
120
 
  if$
121
 
}
122
 
 
123
 
FUNCTION {and}
124
 
{   'skip$
125
 
    { pop$ #0 }
126
 
  if$
127
 
}
128
 
 
129
 
FUNCTION {or}
130
 
{   { pop$ #1 }
131
 
    'skip$
132
 
  if$
133
 
}
134
 
 
135
 
FUNCTION {non.stop}
136
 
{ duplicate$
137
 
   "}" * add.period$
138
 
   #-1 #1 substring$ "." =
139
 
}
140
 
 
141
 
INTEGERS { arith.mulitplier arith.multiplicand }
142
 
 
143
 
FUNCTION {multiply}
144
 
{
145
 
  'arith.multiplicand :=
146
 
  'arith.mulitplier :=
147
 
  #0
148
 
    { arith.mulitplier #0 > }
149
 
    { arith.multiplicand +
150
 
      arith.mulitplier #1 - 'arith.mulitplier :=
151
 
    }
152
 
  while$
153
 
}
154
 
 
155
 
FUNCTION {chr.to.hex}
156
 
{
157
 
  chr.to.int$
158
 
  duplicate$ "0" chr.to.int$ -
159
 
  duplicate$ duplicate$ #0 < swap$ #9 > or not
160
 
    { swap$ pop$ }
161
 
    { pop$
162
 
      duplicate$ "A" chr.to.int$ -
163
 
      duplicate$ duplicate$ #0 < swap$ #5 > or not
164
 
        { swap$ pop$ #10 + }
165
 
        { pop$
166
 
          duplicate$ "a" chr.to.int$ -
167
 
          duplicate$ duplicate$ #0 < swap$ #5 > or not
168
 
            { swap$ pop$ #10 + }
169
 
            { pop$
170
 
              pop$ #-1
171
 
            }
172
 
          if$
173
 
        }
174
 
      if$
175
 
    }
176
 
  if$
177
 
}
178
 
 
179
 
INTEGERS { arith.accumulator }
180
 
 
181
 
FUNCTION {str.to.hex}
182
 
{ #0 'arith.accumulator :=
183
 
    { duplicate$ empty$ not }
184
 
    { duplicate$ #1 #1 substring$ chr.to.hex
185
 
      duplicate$ #0 <
186
 
        { pop$ pop$ ""
187
 
        }
188
 
        { arith.accumulator #16 multiply + 'arith.accumulator :=
189
 
          #2 global.max$ substring$
190
 
        }
191
 
      if$
192
 
    }
193
 
  while$
194
 
  pop$ arith.accumulator
195
 
}
196
 
 
197
 
FUNCTION {diagn.cmntlog}
198
 
{
199
 
  duplicate$ top$ "%" swap$ * write$ newline$
200
 
}
201
 
 
202
 
INTEGERS { control.key control.author control.editor control.title control.pages control.eprint control.year }
203
 
 
204
 
INTEGERS { control.author.jnrlst control.author.dotless control.author.nospace control.author.initials control.author.nocomma control.author.first control.author.reversed }
205
 
 
206
 
FUNCTION { control.init }
207
 
{
208
 
  #0
209
 
  'control.key             :=
210
 
  #0
211
 
  #8 +
212
 
  #64 +
213
 
  'control.author :=
214
 
  #1
215
 
  'control.author.jnrlst   :=
216
 
  #0
217
 
  'control.author.dotless  :=
218
 
  #0
219
 
  'control.author.nospace  :=
220
 
  #1
221
 
  'control.author.initials :=
222
 
  #0
223
 
  'control.author.nocomma  :=
224
 
  #0
225
 
  'control.author.first    :=
226
 
  #0
227
 
  'control.author.reversed :=
228
 
  #1
229
 
  'control.editor :=
230
 
  #-1
231
 
  'control.title  :=
232
 
  #0
233
 
  'control.pages  :=
234
 
  #0
235
 
  'control.eprint :=
236
 
  #1
237
 
  'control.year   :=
238
 
}
239
 
 
240
 
FUNCTION {warning.dependency}
241
 
{
242
 
  " (dependency: " * swap$ * ") set " * swap$ int.to.str$ * warning$
243
 
}
244
 
 
245
 
FUNCTION {control.check}
246
 
{
247
 
  control.editor
248
 
    {
249
 
      "editor formatted same as author"
250
 
      control.author.reversed {
251
 
        duplicate$ #0 swap$ "reversed" warning.dependency
252
 
        #0 'control.author.reversed :=
253
 
      } 'skip$ if$
254
 
      control.author.first {
255
 
        duplicate$ #0 swap$ "first" warning.dependency
256
 
        #0 'control.author.first :=
257
 
      } 'skip$ if$
258
 
      control.author.nocomma {
259
 
        duplicate$ #0 swap$ "nocomma" warning.dependency
260
 
        #0 'control.author.nocomma :=
261
 
      } 'skip$ if$
262
 
      pop$
263
 
    } 'skip$ if$
264
 
  control.author.reversed 'skip$
265
 
    {
266
 
      "not reversed"
267
 
      control.author.nospace {
268
 
        duplicate$ #0 swap$ "nospace" warning.dependency
269
 
        #0 'control.author.nospace :=
270
 
      } 'skip$ if$
271
 
      control.author.jnrlst 'skip$ {
272
 
        duplicate$ #1 swap$ "jnrlst" warning.dependency
273
 
        #1 'control.author.jnrlst :=
274
 
      } if$
275
 
      control.author.initials {
276
 
        duplicate$ ", initials" *
277
 
        control.author.dotless {
278
 
          duplicate$ #0 swap$ "dotless" warning.dependency
279
 
          #0 'control.author.dotless :=
280
 
        } 'skip$ if$
281
 
        pop$
282
 
      } 'skip$ if$
283
 
      pop$
284
 
    }
285
 
  if$
286
 
  control.author.initials 'skip$ {
287
 
    "not initials"
288
 
    control.author.nocomma {
289
 
      duplicate$ #0 swap$ "nocomma" warning.dependency
290
 
      #0 'control.author.nocomma :=
291
 
    } 'skip$ if$
292
 
    control.author.nospace {
293
 
      duplicate$ #0 swap$ "nospace" warning.dependency
294
 
      #0 'control.author.nospace :=
295
 
    } 'skip$ if$
296
 
    control.author.dotless 'skip$ {
297
 
      duplicate$ #1 swap$ "dotless" warning.dependency
298
 
      #1 'control.author.dotless :=
299
 
    } if$
300
 
    pop$
301
 
  } if$
302
 
}
303
 
 
304
 
FUNCTION {control.parse}
305
 
{
306
 
  duplicate$ duplicate$ missing$
307
 
    {
308
 
      pop$ pop$ pop$
309
 
    }
310
 
    { empty$
311
 
        {
312
 
          pop$ #-1
313
 
        }{
314
 
          str.to.hex
315
 
        }
316
 
      if$
317
 
      swap$ :=
318
 
    }
319
 
  if$
320
 
}
321
 
 
322
 
FUNCTION {control.dump}
323
 
{
324
 
  duplicate$ missing$ { pop$ "N/A" } 'skip$ if$
325
 
  "{" swap$ * "}, " *
326
 
  *
327
 
}
328
 
 
329
 
INTEGERS { decode.threshold }
330
 
 
331
 
FUNCTION {control.decode}
332
 
{
333
 
  - duplicate$
334
 
  #0 <
335
 
    {
336
 
      skip$ pop$ swap$ #0
337
 
    }
338
 
    {
339
 
      swap$ pop$ swap$ #1
340
 
    }
341
 
  if$
342
 
  swap$ :=
343
 
}
344
 
 
345
 
FUNCTION {control.author.decode}
346
 
{
347
 
  control.author
348
 
  duplicate$ duplicate$ #0 < swap$ #128 < not or
349
 
    {
350
 
      int.to.str$ "(" swap$ * ")" *
351
 
      "Control cannot interpret author " swap$ *
352
 
      warning$
353
 
    }{
354
 
      'control.author.jnrlst   swap$ duplicate$ #64 control.decode
355
 
      'control.author.dotless  swap$ duplicate$ #32 control.decode
356
 
      'control.author.nospace  swap$ duplicate$ #16 control.decode
357
 
      'control.author.initials swap$ duplicate$  #8 control.decode
358
 
      'control.author.nocomma  swap$ duplicate$  #4 control.decode
359
 
      'control.author.first    swap$ duplicate$  #2 control.decode
360
 
      'control.author.reversed swap$ duplicate$  #1 control.decode
361
 
      duplicate$ #0 =
362
 
        'skip$
363
 
        {
364
 
          "Control: residue of author"
365
 
          "(" swap$ * ")" * *
366
 
          warning$
367
 
        }
368
 
      if$
369
 
      pop$
370
 
    }
371
 
  if$
372
 
}
373
 
 
374
 
FUNCTION {control.setup}
375
 
{
376
 
  type$ cite$ "{" swap$ * "}, " * *
377
 
  "control.key"    key    control.dump *
378
 
  "control.author" author control.dump *
379
 
  "control.editor" editor control.dump *
380
 
  "control.title"  title  control.dump *
381
 
  "control.pages"  pages  control.dump *
382
 
  "control.year"   year   control.dump *
383
 
  "control.eprint" eprint control.dump *
384
 
  top$
385
 
  'control.key    key    control.parse
386
 
  'control.author author control.parse
387
 
  'control.editor editor control.parse
388
 
  'control.title  title  control.parse
389
 
  'control.pages  pages  control.parse
390
 
  'control.year   year   control.parse
391
 
  'control.eprint eprint control.parse
392
 
  control.author.decode
393
 
}
394
 
 
395
 
FUNCTION {control.pass}
396
 
{ type$ "control" = 'control.setup 'skip$ if$
397
 
}
398
 
 
399
 
FUNCTION {control.presort}
400
 
{
401
 
}
402
 
 
403
 
FUNCTION {control.forward}
404
 
{
405
 
}
406
 
 
407
 
FUNCTION {control.reverse}
408
 
{
409
 
}
410
 
 
411
 
FUNCTION {control.sort}
412
 
{
413
 
}
414
 
 
415
 
FUNCTION {control.longest.label}
416
 
{
417
 
}
418
 
 
419
 
FUNCTION {control.key.bib}
420
 
{
421
 
  "Control: key "
422
 
  control.key
423
 
  duplicate$ "(" swap$ int.to.str$ * ") " * swap$
424
 
  pop$ *
425
 
  diagn.cmntlog
426
 
}
427
 
 
428
 
FUNCTION {control.author.bib}
429
 
{
430
 
  "Control: author "
431
 
  control.author "(" swap$ int.to.str$ * ")" * *
432
 
  control.author.reversed { " reversed" * }{} if$
433
 
  control.author.first    { " first"    * }{} if$
434
 
  control.author.nocomma  { " nocomma"  * }{} if$
435
 
  control.author.initials { " initials" * }{} if$
436
 
  control.author.nospace  { " nospace"  * }{} if$
437
 
  control.author.dotless  { " dotless"  * }{} if$
438
 
  control.author.jnrlst   { " jnrlst"   * }{} if$
439
 
  diagn.cmntlog
440
 
}
441
 
 
442
 
FUNCTION {control.editor.bib}
443
 
{
444
 
  "Control: editor formatted "
445
 
  control.editor
446
 
  duplicate$ "(" swap$ int.to.str$ * ") " * swap$
447
 
  duplicate$ #0 <  {
448
 
    pop$
449
 
    "disabled!"
450
 
  } {
451
 
    #0 > {
452
 
      "identically to author"
453
 
    } {
454
 
      "differently from author"
455
 
    } if$
456
 
  } if$ * *
457
 
  diagn.cmntlog
458
 
}
459
 
 
460
 
FUNCTION {control.title.bib}
461
 
{
462
 
  "Control: production of article title "
463
 
  control.title
464
 
  duplicate$ "(" swap$ int.to.str$ * ") " * swap$
465
 
  duplicate$ #0 <  {
466
 
    pop$
467
 
    "disabled"
468
 
  } {
469
 
    #0 > {
470
 
      "required"
471
 
    } {
472
 
      "allowed"
473
 
    } if$
474
 
  } if$ * *
475
 
  diagn.cmntlog
476
 
}
477
 
 
478
 
FUNCTION {control.pages.bib}
479
 
{
480
 
  "Control: page "
481
 
  control.pages
482
 
  duplicate$ "(" swap$ int.to.str$ * ") " * swap$
483
 
  duplicate$ #0 <  {
484
 
    pop$
485
 
    "none"
486
 
  } {
487
 
    #0 > {
488
 
      "range"
489
 
    } {
490
 
      "single"
491
 
    } if$
492
 
  } if$ * *
493
 
  diagn.cmntlog
494
 
}
495
 
 
496
 
FUNCTION {control.year.bib}
497
 
{
498
 
  "Control: year "
499
 
  control.year
500
 
  duplicate$ "(" swap$ int.to.str$ * ") " * swap$
501
 
  duplicate$ #0 <  {
502
 
    pop$
503
 
    "disabled!"
504
 
  } {
505
 
    #0 > {
506
 
      "truncated"
507
 
    } {
508
 
      "verbatim"
509
 
    } if$
510
 
  } if$ * *
511
 
  diagn.cmntlog
512
 
}
513
 
 
514
 
FUNCTION {control.eprint.bib}
515
 
{
516
 
  "Control: production of eprint "
517
 
  control.eprint
518
 
  duplicate$ "(" swap$ int.to.str$ * ") " * swap$
519
 
  #0 < { "disabled" } { "enabled" } if$ * *
520
 
  diagn.cmntlog
521
 
}
522
 
 
523
 
FUNCTION {control.bib}
524
 
{
525
 
  control.key.bib
526
 
  control.author.bib
527
 
  control.editor.bib
528
 
  control.title.bib
529
 
  control.pages.bib
530
 
  control.year.bib
531
 
  control.eprint.bib
532
 
}
533
 
 
534
 
FUNCTION {init.state.consts}
535
 
{
536
 
  #0 'before.all        :=
537
 
  #1 'after.word        :=
538
 
  #2 'after.punctuation :=
539
 
  #3 'after.sentence    :=
540
 
  #4 'after.block       :=
541
 
  #0 'punctuation.no    :=
542
 
  #1 'punctuation.space :=
543
 
  #2 'punctuation.yes   :=
544
 
  "" 'bibfield          :=
545
 
  "" 'output.bibfield   :=
546
 
}
547
 
 
548
 
STRINGS { s t}
549
 
FUNCTION {block.punctuation}
550
 
{ ""
551
 
  "," *
552
 
}
553
 
 
554
 
FUNCTION {word.space}
555
 
{
556
 
  "\ "
557
 
}
558
 
 
559
 
FUNCTION {show.stackstring.one}{
560
 
  "(" *
561
 
  output.state int.to.str$ *
562
 
    "," * punctuation.state int.to.str$ *
563
 
  ")" * top$
564
 
  duplicate$ "1(" swap$ * ")" * top$
565
 
}
566
 
 
567
 
FUNCTION {show.stackstring.two}{
568
 
  "(" *
569
 
  output.state int.to.str$ *
570
 
    "," * punctuation.state int.to.str$ *
571
 
  ")" * top$
572
 
  swap$
573
 
  duplicate$ "1(" swap$ * ")" * top$
574
 
  swap$
575
 
  duplicate$ "2(" swap$ * ")" * top$
576
 
}
577
 
 
578
 
FUNCTION {bibfield.command}{ "\bibfield "}
579
 
 
580
 
FUNCTION {output.nonnull}
581
 
{
582
 
  swap$
583
 
  output.state after.word =
584
 
    {
585
 
      block.punctuation *
586
 
      word.space *
587
 
    }
588
 
    {
589
 
      output.state after.punctuation =
590
 
        {
591
 
          word.space *
592
 
        }
593
 
        {
594
 
          output.state after.block = output.state after.sentence = or
595
 
            {
596
 
              add.period$
597
 
              "\EOS\ " *
598
 
            }{
599
 
            }
600
 
          if$
601
 
        }
602
 
      if$
603
 
    }
604
 
  if$
605
 
  output.bibfield duplicate$ empty$ 'pop$
606
 
    {
607
 
      bibfield.command
608
 
      " {" * swap$ * "} {" * swap$ * "}" *
609
 
    }
610
 
  if$
611
 
  write$
612
 
  bibfield 'output.bibfield := "" 'bibfield :=
613
 
  output.state after.block =
614
 
    {
615
 
      newline$
616
 
      "\newblock " write$
617
 
    }
618
 
    'skip$
619
 
  if$
620
 
  punctuation.state duplicate$
621
 
  punctuation.yes 'punctuation.state :=
622
 
  punctuation.no =
623
 
    { pop$ before.all }
624
 
    { punctuation.yes = { after.word }{ after.punctuation } if$ }
625
 
  if$
626
 
  'output.state :=
627
 
}
628
 
 
629
 
FUNCTION {output}
630
 
{ duplicate$ empty$
631
 
    {
632
 
      pop$
633
 
  "" 'bibfield :=
634
 
    }
635
 
    'output.nonnull
636
 
  if$
637
 
}
638
 
 
639
 
FUNCTION {output.nopunct}
640
 
{
641
 
  punctuation.no 'punctuation.state :=
642
 
  output.nonnull
643
 
}
644
 
 
645
 
FUNCTION {output.check}
646
 
{ swap$
647
 
  duplicate$ empty$
648
 
    { pop$ "empty " swap$ * " in " * cite$ * warning$ }
649
 
    { swap$ pop$ output.nonnull }
650
 
  if$
651
 
}
652
 
 
653
 
FUNCTION {bbl.open} { "\BibitemOpen " }
654
 
 
655
 
FUNCTION {bbl.shut} { "\BibitemShut " }
656
 
 
657
 
FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
658
 
 
659
 
FUNCTION {bibitem.shut.nostop} { bbl.shut "{NoStop}%" * }
660
 
 
661
 
FUNCTION {bibitem.shut}
662
 
{
663
 
  non.stop
664
 
    {
665
 
  bibitem.shut.nostop *
666
 
    }{
667
 
  bibitem.shut.stop *
668
 
    }
669
 
  if$
670
 
}
671
 
 
672
 
FUNCTION {html.itag} {
673
 
  "p"
674
 
}
675
 
 
676
 
FUNCTION {html.ltag} {
677
 
  ""
678
 
}
679
 
 
680
 
FUNCTION {output.SLACcitation}
681
 
{ SLACcitation empty$
682
 
    'skip$
683
 
    {
684
 
      newline$
685
 
      SLACcitation write$
686
 
    }
687
 
  if$
688
 
}
689
 
 
690
 
FUNCTION {fin.entry}
691
 
{
692
 
  bibitem.shut
693
 
  write$
694
 
    output.SLACcitation
695
 
}
696
 
 
697
 
FUNCTION {new.block}
698
 
{ output.state before.all =
699
 
    'skip$
700
 
    { after.block 'output.state := }
701
 
  if$
702
 
}
703
 
 
704
 
FUNCTION {new.block.comma}
705
 
{
706
 
}
707
 
 
708
 
FUNCTION {new.sentence}
709
 
{ output.state after.block = output.state before.all = or
710
 
    'skip$
711
 
    { after.sentence 'output.state := }
712
 
  if$
713
 
}
714
 
 
715
 
FUNCTION {new.sentence.comma}
716
 
{
717
 
}
718
 
 
719
 
FUNCTION {sentence.or.colon}
720
 
{
721
 
  new.sentence
722
 
}
723
 
 
724
 
FUNCTION {add.blank}
725
 
{
726
 
  word.space *
727
 
  before.all 'output.state :=
728
 
}
729
 
 
730
 
FUNCTION {no.blank.or.punct}
731
 
{
732
 
   "\hspace {0pt}" *
733
 
   before.all 'output.state :=
734
 
}
735
 
 
736
 
FUNCTION {date.block}
737
 
{
738
 
  new.block.comma
739
 
  skip$
740
 
}
741
 
 
742
 
STRINGS {z}
743
 
FUNCTION {remove.dots}
744
 
{
745
 
  control.author.dotless {
746
 
    'z :=
747
 
    ""
748
 
    { z empty$ not }
749
 
    { z #1 #1 substring$
750
 
      z #2 global.max$ substring$ 'z :=
751
 
      duplicate$ "." = 'pop$
752
 
        { * }
753
 
      if$
754
 
    }
755
 
    while$
756
 
  } 'skip$ if$
757
 
}
758
 
 
759
 
FUNCTION {new.block.checkb}
760
 
{ empty$
761
 
  swap$ empty$
762
 
  and
763
 
    'skip$
764
 
    'new.block
765
 
  if$
766
 
}
767
 
 
768
 
FUNCTION {field.or.null}
769
 
{ duplicate$ empty$
770
 
    { pop$ "" }
771
 
    'skip$
772
 
  if$
773
 
}
774
 
 
775
 
FUNCTION {emphasize}
776
 
{
777
 
  duplicate$ empty$
778
 
    { pop$ "" }
779
 
    {
780
 
      "\emph {" swap$ * "}" *
781
 
    }
782
 
  if$
783
 
}
784
 
 
785
 
FUNCTION {bolden}
786
 
{ duplicate$ empty$
787
 
    { pop$ "" }
788
 
    { "\textbf {" swap$ * "}" * }
789
 
  if$
790
 
}
791
 
 
792
 
FUNCTION {bib.name.font}
793
 
{
794
 
  duplicate$ empty$
795
 
    { pop$ "" }
796
 
    {
797
 
    "\bibnamefont {" swap$ * "}" *
798
 
    }
799
 
  if$
800
 
}
801
 
 
802
 
FUNCTION {bib.fname.font}
803
 
{
804
 
  duplicate$ empty$
805
 
    { pop$ "" }
806
 
    {
807
 
    "\bibfnamefont {" swap$ * "}" *
808
 
    }
809
 
  if$
810
 
}
811
 
 
812
 
FUNCTION {cite.name.font}
813
 
{
814
 
  duplicate$ empty$
815
 
    { pop$ "" }
816
 
    {
817
 
    "\citenamefont {" swap$ * "}" *
818
 
    }
819
 
  if$
820
 
}
821
 
 
822
 
FUNCTION {tie.or.space.prefix}
823
 
{ duplicate$ text.length$ #3 <
824
 
    { "~" }
825
 
    { word.space }
826
 
  if$
827
 
  swap$
828
 
}
829
 
 
830
 
FUNCTION {capitalize}
831
 
{
832
 
  "u" change.case$ "t" change.case$
833
 
}
834
 
 
835
 
FUNCTION {space.word}
836
 
{ word.space swap$ * word.space * }
837
 
 
838
 
 % Here are the language-specific definitions for explicit words.
839
 
 % Each function has a name bbl.xxx where xxx is the English word.
840
 
 % The language selected here is ENGLISH
841
 
 
842
 
FUNCTION {bbl.and}
843
 
{
844
 
  "and"
845
 
}
846
 
 
847
 
FUNCTION {bbl.etal}
848
 
{
849
 
  "et~al."
850
 
}
851
 
 
852
 
FUNCTION {bbl.editors}
853
 
{
854
 
  "eds."
855
 
}
856
 
 
857
 
FUNCTION {bbl.editor}
858
 
{
859
 
  "ed."
860
 
}
861
 
 
862
 
FUNCTION {bbl.edby}
863
 
{ "edited by" }
864
 
 
865
 
FUNCTION {bbl.edition}
866
 
{
867
 
  "ed."
868
 
}
869
 
 
870
 
FUNCTION {bbl.volume}
871
 
{
872
 
  "vol."
873
 
}
874
 
 
875
 
FUNCTION {bbl.of}
876
 
{ "of" }
877
 
 
878
 
FUNCTION {bbl.number}
879
 
{
880
 
  "no."
881
 
}
882
 
 
883
 
FUNCTION {bbl.nr}
884
 
{ "no." }
885
 
 
886
 
FUNCTION {bbl.in}
887
 
{ "in" }
888
 
 
889
 
FUNCTION {bbl.pages}
890
 
{
891
 
  "pp."
892
 
}
893
 
 
894
 
FUNCTION {bbl.page}
895
 
{
896
 
  "p."
897
 
}
898
 
 
899
 
FUNCTION {bbl.eidpp}
900
 
{ "pages" }
901
 
 
902
 
FUNCTION {bbl.chapter}
903
 
{
904
 
  "chap."
905
 
}
906
 
 
907
 
FUNCTION {bbl.techrep}
908
 
{
909
 
  "Tech. Rep."
910
 
}
911
 
 
912
 
FUNCTION {bbl.mthesis}
913
 
{ "Master's thesis" }
914
 
 
915
 
FUNCTION {bbl.phdthesis}
916
 
{ "Ph.D. thesis" }
917
 
 
918
 
FUNCTION {bbl.first}
919
 
{
920
 
  "1st"
921
 
}
922
 
 
923
 
FUNCTION {bbl.second}
924
 
{
925
 
  "2nd"
926
 
}
927
 
 
928
 
FUNCTION {bbl.third}
929
 
{
930
 
  "3rd"
931
 
}
932
 
 
933
 
FUNCTION {bbl.fourth}
934
 
{
935
 
  "4th"
936
 
}
937
 
 
938
 
FUNCTION {bbl.fifth}
939
 
{
940
 
  "5th"
941
 
}
942
 
 
943
 
FUNCTION {bbl.st}
944
 
{ "st" }
945
 
 
946
 
FUNCTION {bbl.nd}
947
 
{ "nd" }
948
 
 
949
 
FUNCTION {bbl.rd}
950
 
{ "rd" }
951
 
 
952
 
FUNCTION {bbl.th}
953
 
{ "th" }
954
 
 
955
 
MACRO {jan} {"Jan."}
956
 
 
957
 
MACRO {feb} {"Feb."}
958
 
 
959
 
MACRO {mar} {"Mar."}
960
 
 
961
 
MACRO {apr} {"Apr."}
962
 
 
963
 
MACRO {may} {"May"}
964
 
 
965
 
MACRO {jun} {"Jun."}
966
 
 
967
 
MACRO {jul} {"Jul."}
968
 
 
969
 
MACRO {aug} {"Aug."}
970
 
 
971
 
MACRO {sep} {"Sep."}
972
 
 
973
 
MACRO {oct} {"Oct."}
974
 
 
975
 
MACRO {nov} {"Nov."}
976
 
 
977
 
MACRO {dec} {"Dec."}
978
 
 
979
 
FUNCTION {bbl.url.prefix}
980
 
{
981
 
  "\urlprefix "
982
 
}
983
 
 
984
 
FUNCTION {eng.ord}
985
 
{ duplicate$ "1" swap$ *
986
 
  #-2 #1 substring$ "1" =
987
 
     { bbl.th * }
988
 
     { duplicate$ #-1 #1 substring$
989
 
       duplicate$ "1" =
990
 
         { pop$ bbl.st * }
991
 
         { duplicate$ "2" =
992
 
             { pop$ bbl.nd * }
993
 
             { "3" =
994
 
                 { bbl.rd * }
995
 
                 { bbl.th * }
996
 
               if$
997
 
             }
998
 
           if$
999
 
          }
1000
 
       if$
1001
 
     }
1002
 
   if$
1003
 
}
1004
 
 
1005
 
 %-------------------------------------------------------------------
1006
 
 % Begin module:
1007
 
 % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
1008
 
MACRO {aa}{"Astron. \& Astrophys."}
1009
 
MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
1010
 
MACRO {aj} {"Astron. J."}
1011
 
MACRO {aph} {"Acta Phys."}
1012
 
MACRO {advp} {"Adv. Phys."}
1013
 
MACRO {ajp} {"Amer. J. Phys."}
1014
 
MACRO {ajm} {"Amer. J. Math."}
1015
 
MACRO {amsci} {"Amer. Sci."}
1016
 
MACRO {anofd} {"Ann. Fluid Dyn."}
1017
 
MACRO {am} {"Ann. Math."}
1018
 
MACRO {ap} {"Ann. Phys. (NY)"}
1019
 
MACRO {adp} {"Ann. Phys. (Leipzig)"}
1020
 
MACRO {ao} {"Appl. Opt."}
1021
 
MACRO {apl} {"Appl. Phys. Lett."}
1022
 
MACRO {app} {"Astroparticle Phys."}
1023
 
MACRO {apj} {"Astrophys. J."}
1024
 
MACRO {apjsup} {"Astrophys. J. Suppl."}
1025
 
MACRO {apss} {"Astrophys. Space Sci."}
1026
 
MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
1027
 
MACRO {baas} {"Bull. Amer. Astron. Soc."}
1028
 
MACRO {baps} {"Bull. Amer. Phys. Soc."}
1029
 
MACRO {cmp} {"Comm. Math. Phys."}
1030
 
MACRO {cpam} {"Commun. Pure Appl. Math."}
1031
 
MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
1032
 
MACRO {cpc} {"Comp. Phys. Comm."}
1033
 
MACRO {cqg} {"Class. Quant. Grav."}
1034
 
MACRO {cra} {"C. R. Acad. Sci. A"}
1035
 
MACRO {fed} {"Fusion Eng. \& Design"}
1036
 
MACRO {ft} {"Fusion Tech."}
1037
 
MACRO {grg} {"Gen. Relativ. Gravit."}
1038
 
MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
1039
 
MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
1040
 
MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
1041
 
MACRO {ip} {"Infrared Phys."}
1042
 
MACRO {irp} {"Infrared Phys."}
1043
 
MACRO {jap} {"J. Appl. Phys."}
1044
 
MACRO {jasa} {"J. Acoust. Soc. America"}
1045
 
MACRO {jcp} {"J. Comp. Phys."}
1046
 
MACRO {jetp} {"Sov. Phys.--JETP"}
1047
 
MACRO {jfe} {"J. Fusion Energy"}
1048
 
MACRO {jfm} {"J. Fluid Mech."}
1049
 
MACRO {jmp} {"J. Math. Phys."}
1050
 
MACRO {jne} {"J. Nucl. Energy"}
1051
 
MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
1052
 
MACRO {jnm} {"J. Nucl. Mat."}
1053
 
MACRO {jpc} {"J. Phys. Chem."}
1054
 
MACRO {jpp} {"J. Plasma Phys."}
1055
 
MACRO {jpsj} {"J. Phys. Soc. Japan"}
1056
 
MACRO {jsi} {"J. Sci. Instrum."}
1057
 
MACRO {jvst} {"J. Vac. Sci. \& Tech."}
1058
 
MACRO {nat} {"Nature"}
1059
 
MACRO {nature} {"Nature"}
1060
 
MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
1061
 
MACRO {nf} {"Nucl. Fusion"}
1062
 
MACRO {nim} {"Nucl. Inst. \& Meth."}
1063
 
MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
1064
 
MACRO {np} {"Nucl. Phys."}
1065
 
MACRO {npb} {"Nucl. Phys. B"}
1066
 
MACRO {nt/f} {"Nucl. Tech./Fusion"}
1067
 
MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
1068
 
MACRO {inc} {"Nuovo Cimento"}
1069
 
MACRO {nc} {"Nuovo Cimento"}
1070
 
MACRO {pf} {"Phys. Fluids"}
1071
 
MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
1072
 
MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
1073
 
MACRO {pl} {"Phys. Lett."}
1074
 
MACRO {pla} {"Phys. Lett. A"}
1075
 
MACRO {plb} {"Phys. Lett. B"}
1076
 
MACRO {prep} {"Phys. Rep."}
1077
 
MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
1078
 
MACRO {pp} {"Phys. Plasmas"}
1079
 
MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
1080
 
MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
1081
 
MACRO {prl} {"Phys. Rev. Lett."}
1082
 
MACRO {pr} {"Phys. Rev."}
1083
 
MACRO {physrev} {"Phys. Rev."}
1084
 
MACRO {pra} {"Phys. Rev. A"}
1085
 
MACRO {prb} {"Phys. Rev. B"}
1086
 
MACRO {prc} {"Phys. Rev. C"}
1087
 
MACRO {prd} {"Phys. Rev. D"}
1088
 
MACRO {pre} {"Phys. Rev. E"}
1089
 
MACRO {ps} {"Phys. Scripta"}
1090
 
MACRO {procrsl} {"Proc. Roy. Soc. London"}
1091
 
MACRO {rmp} {"Rev. Mod. Phys."}
1092
 
MACRO {rsi} {"Rev. Sci. Inst."}
1093
 
MACRO {science} {"Science"}
1094
 
MACRO {sciam} {"Sci. Am."}
1095
 
MACRO {sam} {"Stud. Appl. Math."}
1096
 
MACRO {sjpp} {"Sov. J. Plasma Phys."}
1097
 
MACRO {spd} {"Sov. Phys.--Doklady"}
1098
 
MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
1099
 
MACRO {spu} {"Sov. Phys.--Uspeki"}
1100
 
MACRO {st} {"Sky and Telesc."}
1101
 
 % End module: physjour.mbs
1102
 
 %-------------------------------------------------------------------
1103
 
 % Begin module:
1104
 
 % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
1105
 
MACRO {aisr} {"Adv. Space Res."}
1106
 
MACRO {ag} {"Ann. Geophys."}
1107
 
MACRO {anigeo} {"Ann. Geofis."}
1108
 
MACRO {angl} {"Ann. Glaciol."}
1109
 
MACRO {andmet} {"Ann. d. Meteor."}
1110
 
MACRO {andgeo} {"Ann. d. Geophys."}
1111
 
MACRO {andphy} {"Ann. Phys.-Paris"}
1112
 
MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
1113
 
MACRO {atph} {"Atm\'osphera"}
1114
 
MACRO {aao} {"Atmos. Ocean"}
1115
 
MACRO {ass}{"Astrophys. Space Sci."}
1116
 
MACRO {atenv} {"Atmos. Environ."}
1117
 
MACRO {aujag} {"Aust. J. Agr. Res."}
1118
 
MACRO {aumet} {"Aust. Meteorol. Mag."}
1119
 
MACRO {blmet} {"Bound.-Lay. Meteorol."}
1120
 
MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
1121
 
MACRO {cch} {"Clim. Change"}
1122
 
MACRO {cdyn} {"Clim. Dynam."}
1123
 
MACRO {cbul} {"Climatol. Bull."}
1124
 
MACRO {cap} {"Contrib. Atmos. Phys."}
1125
 
MACRO {dsr} {"Deep-Sea Res."}
1126
 
MACRO {dhz} {"Dtsch. Hydrogr. Z."}
1127
 
MACRO {dao} {"Dynam. Atmos. Oceans"}
1128
 
MACRO {eco} {"Ecology"}
1129
 
MACRO {empl}{"Earth, Moon and Planets"}
1130
 
MACRO {envres} {"Environ. Res."}
1131
 
MACRO {envst} {"Environ. Sci. Technol."}
1132
 
MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
1133
 
MACRO {expa}{"Exper. Astron."}
1134
 
MACRO {geoint} {"Geofis. Int."}
1135
 
MACRO {geopub} {"Geofys. Publ."}
1136
 
MACRO {geogeo} {"Geol. Geofiz."}
1137
 
MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
1138
 
MACRO {gfd} {"Geophys. Fluid Dyn."}
1139
 
MACRO {geomag} {"Geophys. Mag."}
1140
 
MACRO {georl} {"Geophys. Res. Lett."}
1141
 
MACRO {grl} {"Geophys. Res. Lett."}
1142
 
MACRO {ga} {"Geophysica"}
1143
 
MACRO {gs} {"Geophysics"}
1144
 
MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
1145
 
MACRO {ijawp} {"Int. J. Air Water Pollut."}
1146
 
MACRO {ijc} {"Int. J. Climatol."}
1147
 
MACRO {ijrs} {"Int. J. Remote Sens."}
1148
 
MACRO {jam} {"J. Appl. Meteorol."}
1149
 
MACRO {jaot} {"J. Atmos. Ocean. Technol."}
1150
 
MACRO {jatp} {"J. Atmos. Terr. Phys."}
1151
 
MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
1152
 
MACRO {jce} {"J. Climate"}
1153
 
MACRO {jcam} {"J. Climate Appl. Meteor."}
1154
 
MACRO {jcm} {"J. Climate Meteor."}
1155
 
MACRO {jcy} {"J. Climatol."}
1156
 
MACRO {jgr} {"J. Geophys. Res."}
1157
 
MACRO {jga} {"J. Glaciol."}
1158
 
MACRO {jh} {"J. Hydrol."}
1159
 
MACRO {jmr} {"J. Mar. Res."}
1160
 
MACRO {jmrj} {"J. Meteor. Res. Japan"}
1161
 
MACRO {jm} {"J. Meteor."}
1162
 
MACRO {jpo} {"J. Phys. Oceanogr."}
1163
 
MACRO {jra} {"J. Rech. Atmos."}
1164
 
MACRO {jaes} {"J. Aeronaut. Sci."}
1165
 
MACRO {japca} {"J. Air Pollut. Control Assoc."}
1166
 
MACRO {jas} {"J. Atmos. Sci."}
1167
 
MACRO {jmts} {"J. Mar. Technol. Soc."}
1168
 
MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
1169
 
MACRO {josj} {"J. Oceanogr. Soc. Japan"}
1170
 
MACRO {jwm} {"J. Wea. Mod."}
1171
 
MACRO {lao} {"Limnol. Oceanogr."}
1172
 
MACRO {mwl} {"Mar. Wea. Log"}
1173
 
MACRO {mau} {"Mausam"}
1174
 
MACRO {meteor} {"``Meteor'' Forschungsergeb."}
1175
 
MACRO {map} {"Meteorol. Atmos. Phys."}
1176
 
MACRO {metmag} {"Meteor. Mag."}
1177
 
MACRO {metmon} {"Meteor. Monogr."}
1178
 
MACRO {metrun} {"Meteor. Rundsch."}
1179
 
MACRO {metzeit} {"Meteor. Z."}
1180
 
MACRO {metgid} {"Meteor. Gidrol."}
1181
 
MACRO {mwr} {"Mon. Weather Rev."}
1182
 
MACRO {nwd} {"Natl. Weather Dig."}
1183
 
MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
1184
 
MACRO {npg} {"Nonlin. Proc. Geophys."}
1185
 
MACRO {om} {"Oceanogr. Meteorol."}
1186
 
MACRO {ocac} {"Oceanol. Acta"}
1187
 
MACRO {oceanus} {"Oceanus"}
1188
 
MACRO {paleoc} {"Paleoceanography"}
1189
 
MACRO {pce} {"Phys. Chem. Earth"}
1190
 
MACRO {pmg} {"Pap. Meteor. Geophys."}
1191
 
MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
1192
 
MACRO {physzeit} {"Phys. Z."}
1193
 
MACRO {pps} {"Planet. Space Sci."}
1194
 
MACRO {pss} {"Planet. Space Sci."}
1195
 
MACRO {pag} {"Pure Appl. Geophys."}
1196
 
MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
1197
 
MACRO {quatres} {"Quat. Res."}
1198
 
MACRO {rsci} {"Radio Sci."}
1199
 
MACRO {rse} {"Remote Sens. Environ."}
1200
 
MACRO {rgeo} {"Rev. Geophys."}
1201
 
MACRO {rgsp} {"Rev. Geophys. Space Phys."}
1202
 
MACRO {rdgeo} {"Rev. Geofis."}
1203
 
MACRO {revmeta} {"Rev. Meteorol."}
1204
 
MACRO {sgp}{"Surveys in Geophys."}
1205
 
MACRO {sp} {"Solar Phys."}
1206
 
MACRO {ssr} {"Space Sci. Rev."}
1207
 
MACRO {tellus} {"Tellus"}
1208
 
MACRO {tac} {"Theor. Appl. Climatol."}
1209
 
MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
1210
 
MACRO {wrr} {"Water Resour. Res."}
1211
 
MACRO {weather} {"Weather"}
1212
 
MACRO {wafc} {"Weather Forecast."}
1213
 
MACRO {ww} {"Weatherwise"}
1214
 
MACRO {wmob} {"WMO Bull."}
1215
 
MACRO {zeitmet} {"Z. Meteorol."}
1216
 
 % End module: geojour.mbs
1217
 
 %-------------------------------------------------------------------
1218
 
 % Begin module:
1219
 
 % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
1220
 
 
1221
 
MACRO {appopt} {"Appl. Opt."}
1222
 
MACRO {bell} {"Bell Syst. Tech. J."}
1223
 
MACRO {ell} {"Electron. Lett."}
1224
 
MACRO {jasp} {"J. Appl. Spectr."}
1225
 
MACRO {jqe} {"IEEE J. Quantum Electron."}
1226
 
MACRO {jlwt} {"J. Lightwave Technol."}
1227
 
MACRO {jmo} {"J. Mod. Opt."}
1228
 
MACRO {josa} {"J. Opt. Soc. America"}
1229
 
MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
1230
 
MACRO {josab} {"J. Opt. Soc. Amer.~B"}
1231
 
MACRO {jdp} {"J. Phys. (Paris)"}
1232
 
MACRO {oc} {"Opt. Commun."}
1233
 
MACRO {ol} {"Opt. Lett."}
1234
 
MACRO {phtl} {"IEEE Photon. Technol. Lett."}
1235
 
MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
1236
 
MACRO {sse} {"Solid-State Electron."}
1237
 
MACRO {sjot} {"Sov. J. Opt. Technol."}
1238
 
MACRO {sjqe} {"Sov. J. Quantum Electron."}
1239
 
MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
1240
 
MACRO {stph} {"Sov. Phys.--Techn. Phys."}
1241
 
MACRO {stphl} {"Sov. Techn. Phys. Lett."}
1242
 
MACRO {vr} {"Vision Res."}
1243
 
MACRO {zph} {"Z. f. Physik"}
1244
 
MACRO {zphb} {"Z. f. Physik~B"}
1245
 
MACRO {zphd} {"Z. f. Physik~D"}
1246
 
 
1247
 
MACRO {CLEO} {"CLEO"}
1248
 
MACRO {ASSL} {"Adv. Sol.-State Lasers"}
1249
 
MACRO {OSA}  {"OSA"}
1250
 
 % End module: photjour.mbs
1251
 
%% Copyright 1994-2007 Patrick W Daly
1252
 
MACRO {acmcs} {"ACM Comput. Surv."}
1253
 
 
1254
 
MACRO {acta} {"Acta Inf."}
1255
 
 
1256
 
MACRO {cacm} {"Commun. ACM"}
1257
 
 
1258
 
MACRO {ibmjrd} {"IBM J. Res. Dev."}
1259
 
 
1260
 
MACRO {ibmsj} {"IBM Syst.~J."}
1261
 
 
1262
 
MACRO {ieeese} {"IEEE Trans. Software Eng."}
1263
 
 
1264
 
MACRO {ieeetc} {"IEEE Trans. Comput."}
1265
 
 
1266
 
MACRO {ieeetcad}
1267
 
 {"IEEE Trans. Comput. Aid. Des."}
1268
 
 
1269
 
MACRO {ipl} {"Inf. Process. Lett."}
1270
 
 
1271
 
MACRO {jacm} {"J.~ACM"}
1272
 
 
1273
 
MACRO {jcss} {"J.~Comput. Syst. Sci."}
1274
 
 
1275
 
MACRO {scp} {"Sci. Comput. Program."}
1276
 
 
1277
 
MACRO {sicomp} {"SIAM J. Comput."}
1278
 
 
1279
 
MACRO {tocs} {"ACM Trans. Comput. Syst."}
1280
 
 
1281
 
MACRO {tods} {"ACM Trans. Database Syst."}
1282
 
 
1283
 
MACRO {tog} {"ACM Trans. Graphic."}
1284
 
 
1285
 
MACRO {toms} {"ACM Trans. Math. Software"}
1286
 
 
1287
 
MACRO {toois} {"ACM Trans. Office Inf. Syst."}
1288
 
 
1289
 
MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
1290
 
 
1291
 
MACRO {tcs} {"Theor. Comput. Sci."}
1292
 
 
1293
 
FUNCTION {bibinfo.command} { "\bibinfo " }
1294
 
 
1295
 
FUNCTION {bibinfo.check}
1296
 
{ swap$
1297
 
  duplicate$ missing$
1298
 
    {
1299
 
      pop$
1300
 
      pop$ ""
1301
 
    }{
1302
 
      duplicate$ empty$
1303
 
        {
1304
 
          swap$ pop$
1305
 
        }{
1306
 
          swap$
1307
 
          bibinfo.command "{" * swap$ * "} {" * swap$ * "}" *
1308
 
        }
1309
 
      if$
1310
 
    }
1311
 
  if$
1312
 
}
1313
 
 
1314
 
FUNCTION {bibinfo.warn}
1315
 
{ swap$
1316
 
  duplicate$ missing$
1317
 
    {
1318
 
      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
1319
 
      ""
1320
 
    }{
1321
 
      duplicate$ empty$
1322
 
        {
1323
 
          swap$ "empty " swap$ * " in " * cite$ * warning$
1324
 
        }{
1325
 
          swap$
1326
 
          bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
1327
 
        }
1328
 
      if$
1329
 
    }
1330
 
  if$
1331
 
}
1332
 
 
1333
 
FUNCTION {archiv.base}
1334
 
{
1335
 
  "http://arxiv.org/abs"
1336
 
}
1337
 
 
1338
 
FUNCTION {archiv.prefix.base}
1339
 
{
1340
 
  "arXiv"
1341
 
}
1342
 
 
1343
 
FUNCTION {eprint.command}
1344
 
{
1345
 
  "\Eprint "
1346
 
}
1347
 
 
1348
 
FUNCTION {format.eprint}
1349
 
{
1350
 
  eprint duplicate$ empty$
1351
 
  control.eprint #0 <
1352
 
  or
1353
 
    { pop$ "" }
1354
 
    {
1355
 
      duplicate$
1356
 
      ""
1357
 
        archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
1358
 
        "/" *
1359
 
        swap$ *
1360
 
        "{" swap$ * "} " *
1361
 
      swap$
1362
 
      ""
1363
 
        archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
1364
 
        swap$ *
1365
 
        primaryClass  duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
1366
 
        "{" swap$ * "} " *
1367
 
      *
1368
 
      eprint.command swap$ *
1369
 
    }
1370
 
  if$
1371
 
}
1372
 
 
1373
 
FUNCTION {format.translation}
1374
 
{ translation duplicate$ empty$
1375
 
    'skip$
1376
 
    { ""
1377
 
      "\translation{" * swap$ * "}" *
1378
 
      punctuation.space 'punctuation.state :=
1379
 
    }
1380
 
  if$
1381
 
}
1382
 
 
1383
 
FUNCTION {format.url}
1384
 
{
1385
 
  url duplicate$ empty$
1386
 
    { pop$ "" }
1387
 
    {
1388
 
      "\url "
1389
 
      "{" * swap$ * "}" *
1390
 
    }
1391
 
  if$
1392
 
}
1393
 
 
1394
 
INTEGERS { nameptr namesleft numnames }
1395
 
 
1396
 
FUNCTION {check.speaker}
1397
 
{ key empty$ 'skip$
1398
 
  { key nameptr int.to.str$ =
1399
 
    {
1400
 
      bolden
1401
 
    }
1402
 
      'skip$
1403
 
    if$
1404
 
  }
1405
 
  if$
1406
 
}
1407
 
 
1408
 
 
1409
 
STRINGS  { bibinfo}
1410
 
 
1411
 
FUNCTION {format.names.fname}
1412
 
{
1413
 
  control.author.initials {
1414
 
    control.author.dotless {
1415
 
      control.author.nospace {
1416
 
        "f{}"
1417
 
      } {
1418
 
        "f{~}"
1419
 
      } if$
1420
 
    } {
1421
 
      control.author.nospace {
1422
 
        "f{.}."
1423
 
      } {
1424
 
        "f."
1425
 
      } if$
1426
 
    } if$
1427
 
  } {
1428
 
    "ff"
1429
 
  } if$
1430
 
}
1431
 
 
1432
 
FUNCTION {bracify}
1433
 
{
1434
 
  "{" swap$ * "}" *
1435
 
}
1436
 
 
1437
 
FUNCTION {name.comma}
1438
 
{
1439
 
  control.author.nocomma 'skip$ { "," swap$ * } if$
1440
 
}
1441
 
 
1442
 
FUNCTION {format.names.format.onefont}
1443
 
{
1444
 
  "{vv~}{ll}"
1445
 
  nameptr #1 >
1446
 
  control.author.first
1447
 
  and
1448
 
  control.author.reversed not
1449
 
  or
1450
 
    {
1451
 
      control.author.initials {
1452
 
        "f"
1453
 
        control.author.dotless 'skip$ {
1454
 
          "." *
1455
 
        } if$
1456
 
        "~" *
1457
 
      } {
1458
 
        "ff"
1459
 
      } if$
1460
 
      bracify
1461
 
      swap$
1462
 
    } {
1463
 
      format.names.fname
1464
 
      " " swap$ *
1465
 
      name.comma
1466
 
      bracify
1467
 
    }
1468
 
  if$
1469
 
  "jj"
1470
 
  " " swap$ *
1471
 
  name.comma
1472
 
  bracify
1473
 
  control.author.jnrlst 'skip$ 'swap$ if$
1474
 
  * *
1475
 
}
1476
 
 
1477
 
FUNCTION {format.names.onefont}
1478
 
{
1479
 
  s nameptr format.names.format.onefont format.name$
1480
 
  remove.dots
1481
 
  bib.name.font
1482
 
}
1483
 
 
1484
 
FUNCTION {format.names.morfont}
1485
 
{ s nameptr
1486
 
  "{vv~}{ll}" format.name$ bib.name.font
1487
 
  nameptr #1 >
1488
 
  control.author.first
1489
 
  and
1490
 
  control.author.reversed not
1491
 
  or
1492
 
  {
1493
 
    s nameptr
1494
 
    control.author.initials {
1495
 
      "f"                        % default: name + surname + comma junior
1496
 
    } {
1497
 
      "ff"
1498
 
    } if$
1499
 
    control.author.dotless 'skip$ {
1500
 
      "." *                    % nm-init   % Initials. + surname (J. F. Smith)                                           control.author.initials
1501
 
    } if$
1502
 
    bracify
1503
 
    format.name$ duplicate$ empty$ 'skip$
1504
 
      { tie.or.space.prefix bib.fname.font swap$ * }
1505
 
    if$
1506
 
    swap$
1507
 
    *
1508
 
    s nameptr
1509
 
    "{jj}" format.name$ duplicate$ empty$ 'skip$
1510
 
      { bib.fname.font ", " swap$ * }
1511
 
    if$
1512
 
  } {
1513
 
    "," *
1514
 
    s nameptr
1515
 
    format.names.fname
1516
 
    "jj"
1517
 
    " "
1518
 
    name.comma
1519
 
    control.author.jnrlst {
1520
 
      swap$ * skip$
1521
 
    } {
1522
 
      skip$ * swap$
1523
 
    } if$
1524
 
    bracify swap$ bracify swap$
1525
 
    *
1526
 
    format.name$
1527
 
    remove.dots
1528
 
    duplicate$ empty$ 'skip$
1529
 
      { bib.fname.font " " swap$ * }
1530
 
      if$
1531
 
  } if$
1532
 
  *
1533
 
}
1534
 
 
1535
 
FUNCTION {names.punctuate}
1536
 
{
1537
 
  "," *
1538
 
  " " *
1539
 
}
1540
 
 
1541
 
FUNCTION {format.names}
1542
 
{ 'bibinfo :=
1543
 
  duplicate$ empty$ { pop$ "" } {
1544
 
    duplicate$ num.names$
1545
 
    duplicate$ 'numnames :=
1546
 
    'namesleft :=
1547
 
    's :=
1548
 
    #1 'nameptr :=
1549
 
    ""
1550
 
      { namesleft #0 > }
1551
 
      {
1552
 
      format.names.morfont
1553
 
        bibinfo bibinfo.check
1554
 
        type$ "presentation" =
1555
 
          'check.speaker
1556
 
          'skip$
1557
 
        if$
1558
 
        't :=
1559
 
        nameptr #1 > not
1560
 
          {
1561
 
            t *
1562
 
          } {
1563
 
            namesleft #1 >
1564
 
              {
1565
 
                names.punctuate
1566
 
                t *
1567
 
              } {
1568
 
                s nameptr "{ll}" format.name$ duplicate$ "others" =
1569
 
                  { 't := }
1570
 
                  { pop$ }
1571
 
                if$
1572
 
                numnames #2 >
1573
 
                  'names.punctuate
1574
 
                  'skip$
1575
 
                if$
1576
 
                t "others" =
1577
 
                  {
1578
 
                    " " *
1579
 
                    bbl.etal
1580
 
                    emphasize
1581
 
                    *
1582
 
                  } {
1583
 
                    bbl.and
1584
 
                    space.word *
1585
 
                    t *
1586
 
                  }
1587
 
                if$
1588
 
              }
1589
 
            if$
1590
 
          }
1591
 
        if$
1592
 
        nameptr #1 + 'nameptr :=
1593
 
        namesleft #1 - 'namesleft :=
1594
 
      }
1595
 
    while$
1596
 
  } if$
1597
 
}
1598
 
 
1599
 
FUNCTION {format.names.ed.onefont}
1600
 
{
1601
 
    s nameptr
1602
 
    control.author.initials {
1603
 
      control.author.dotless {
1604
 
        control.author.nospace {
1605
 
          "{f{}~}{vv~}{ll}{ jj}"   % nm-rvx|nm-rvcx
1606
 
        } {
1607
 
          "{f{~}~}{vv~}{ll}{ jj}"  % nm-rv
1608
 
        } if$
1609
 
      } {
1610
 
        control.author.nospace {
1611
 
          "{f{.}.~}{vv~}{ll}{ jj}" % nm-rvv|nm-rvvc
1612
 
        }{
1613
 
          "{f.~}{vv~}{ll}{, jj}"   % nm-init|nm-rev|nm-rev1
1614
 
        } if$
1615
 
      } if$
1616
 
    } {
1617
 
      "{ff~}{vv~}{ll}{, jj}"
1618
 
    } if$
1619
 
    format.name$
1620
 
    remove.dots
1621
 
    bib.name.font
1622
 
}
1623
 
 
1624
 
FUNCTION {format.names.ed.morfont}
1625
 
{
1626
 
  control.author.reversed { %
1627
 
    control.author.initials { %
1628
 
      control.author.dotless { %
1629
 
        s nameptr
1630
 
        control.author.nospace { % nm-rvx nm-rvcx
1631
 
          "{f{}}"
1632
 
        } { % nm-rv
1633
 
          "{f{~}}"
1634
 
        } if$
1635
 
        format.name$ duplicate$ empty$ 'skip$
1636
 
          { tie.or.space.prefix bib.fname.font swap$ * }
1637
 
        if$
1638
 
        s nameptr
1639
 
        "{vv~}{ll}" format.name$ bib.name.font *
1640
 
        s nameptr
1641
 
        "{jj}" format.name$
1642
 
        remove.dots
1643
 
        duplicate$ empty$ 'skip$
1644
 
          { bib.fname.font " " swap$ * }
1645
 
        if$
1646
 
      } { % !control.author.dotless
1647
 
        s nameptr
1648
 
        control.author.nospace { % nm-rvv
1649
 
          "{ff}"
1650
 
        } { % nm-rev nm-rev1
1651
 
          "{f.}"
1652
 
        } if$
1653
 
        format.name$ duplicate$ empty$ 'skip$
1654
 
          { tie.or.space.prefix bib.fname.font swap$ * }
1655
 
        if$
1656
 
        s nameptr
1657
 
        "{vv~}{ll}" format.name$ bib.name.font *
1658
 
        s nameptr
1659
 
        "{jj}" format.name$
1660
 
        duplicate$ empty$ 'skip$
1661
 
          { bib.fname.font ", " swap$ * }
1662
 
        if$
1663
 
      } if$
1664
 
    } { % Full names !control.author.initials  nm-revf nm-revv1
1665
 
      s nameptr
1666
 
      "{ff}"
1667
 
      format.name$ duplicate$ empty$ 'skip$
1668
 
        { tie.or.space.prefix bib.fname.font swap$ * }
1669
 
      if$
1670
 
      s nameptr
1671
 
      "{vv~}{ll}" format.name$ bib.name.font *
1672
 
      s nameptr
1673
 
      "{jj}" format.name$
1674
 
      duplicate$ empty$ 'skip$
1675
 
        { bib.fname.font ", " swap$ * }
1676
 
      if$
1677
 
    } if$
1678
 
  } { % !control.author.reversed nm-init
1679
 
    s nameptr
1680
 
    "{f.}"
1681
 
    format.name$ duplicate$ empty$ 'skip$
1682
 
      { tie.or.space.prefix bib.fname.font swap$ * }
1683
 
    if$
1684
 
    s nameptr
1685
 
    "{vv~}{ll}" format.name$ bib.name.font *
1686
 
    s nameptr
1687
 
    "{jj}" format.name$
1688
 
    duplicate$ empty$ 'skip$
1689
 
      { bib.fname.font ", " swap$ * }
1690
 
    if$
1691
 
  } if$
1692
 
  *
1693
 
}
1694
 
 
1695
 
FUNCTION {format.names.ed}
1696
 
{
1697
 
  control.editor #0 > {
1698
 
    format.names
1699
 
  } {
1700
 
    'bibinfo :=
1701
 
    duplicate$ empty$ 'skip$ {
1702
 
    's :=
1703
 
    "" 't :=
1704
 
    #1 'nameptr :=
1705
 
    s num.names$ 'numnames :=
1706
 
    numnames 'namesleft :=
1707
 
      { namesleft #0 > }
1708
 
      {
1709
 
       format.names.ed.morfont
1710
 
        bibinfo bibinfo.check
1711
 
        't :=
1712
 
        nameptr #1 >
1713
 
          {
1714
 
            namesleft #1 >
1715
 
              {
1716
 
                names.punctuate
1717
 
                t *
1718
 
              }{
1719
 
                s nameptr "{ll}" format.name$ duplicate$ "others" =
1720
 
                  { 't := }
1721
 
                  { pop$ }
1722
 
                if$
1723
 
                numnames #2 >
1724
 
                  'names.punctuate
1725
 
                  'skip$
1726
 
                if$
1727
 
                t "others" =
1728
 
                  {
1729
 
                    " " * bbl.etal emphasize *
1730
 
                  }{
1731
 
                   bbl.and
1732
 
                    space.word * t *
1733
 
                  }
1734
 
                if$
1735
 
              }
1736
 
            if$
1737
 
          }
1738
 
          't
1739
 
        if$
1740
 
        nameptr #1 + 'nameptr :=
1741
 
        namesleft #1 - 'namesleft :=
1742
 
      }
1743
 
    while$
1744
 
    } if$
1745
 
  } if$
1746
 
}
1747
 
 
1748
 
FUNCTION {format.key}
1749
 
{ empty$
1750
 
    { key field.or.null }
1751
 
    { "" }
1752
 
  if$
1753
 
}
1754
 
 
1755
 
FUNCTION {format.authors}
1756
 
{ author "author" format.names
1757
 
  duplicate$ empty$ 'skip$
1758
 
    { collaboration "collaboration" bibinfo.check
1759
 
      duplicate$ empty$ 'skip$
1760
 
        { " (" swap$ * ")" * }
1761
 
      if$
1762
 
      *
1763
 
    }
1764
 
  if$
1765
 
  "author" 'bibfield :=
1766
 
}
1767
 
 
1768
 
FUNCTION {get.bbl.editor}
1769
 
{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$
1770
 
}
1771
 
 
1772
 
FUNCTION {format.editors}
1773
 
{ editor "editor" format.names duplicate$ empty$ 'skip$
1774
 
    {
1775
 
      "," *
1776
 
      word.space *
1777
 
      get.bbl.editor
1778
 
      *
1779
 
    }
1780
 
  if$
1781
 
}
1782
 
 
1783
 
FUNCTION {format.isbn.output}
1784
 
{
1785
 
}
1786
 
 
1787
 
FUNCTION {format.issn.output}
1788
 
1789
 
}
1790
 
 
1791
 
FUNCTION {doi.base}
1792
 
{
1793
 
  "http://dx.doi.org/"
1794
 
}
1795
 
 
1796
 
FUNCTION {doi.base.command}
1797
 
{
1798
 
  "\doibase "
1799
 
}
1800
 
 
1801
 
FUNCTION {noop.command}
1802
 
{
1803
 
  "\href@noop "
1804
 
}
1805
 
 
1806
 
FUNCTION {href.command}
1807
 
{
1808
 
  "\href "
1809
 
}
1810
 
 
1811
 
FUNCTION {link.tag.open}
1812
 
{
1813
 
  doi duplicate$ empty$
1814
 
    {
1815
 
      pop$
1816
 
      url duplicate$ empty$
1817
 
        {
1818
 
          pop$ "" noop.command
1819
 
        }{
1820
 
          href.command
1821
 
        }
1822
 
      if$
1823
 
    }
1824
 
    {
1825
 
      doi.base.command swap$ * 
1826
 
      href.command
1827
 
    }
1828
 
  if$
1829
 
  "{" * swap$ * "} {" *
1830
 
}
1831
 
 
1832
 
FUNCTION {link.tag.shut}
1833
 
{
1834
 
  "}"
1835
 
}
1836
 
 
1837
 
FUNCTION {link.open}
1838
 
{
1839
 
  link.tag.open output.nopunct
1840
 
}
1841
 
 
1842
 
FUNCTION {link.shut}
1843
 
{
1844
 
  link.tag.shut *
1845
 
}
1846
 
 
1847
 
FUNCTION {add.doi}
1848
 
{
1849
 
  link.tag.open swap$ * link.tag.shut *
1850
 
}
1851
 
 
1852
 
FUNCTION {select.language}
1853
 
{ duplicate$ empty$
1854
 
    'pop$
1855
 
    { language empty$
1856
 
        'skip$
1857
 
        { "{\selectlanguage {" language * "}" * swap$ * "}" * }
1858
 
      if$
1859
 
    }
1860
 
    if$
1861
 
}
1862
 
 
1863
 
FUNCTION {format.note}
1864
 
{
1865
 
 note empty$
1866
 
    { "" }
1867
 
    { note #1 #1 substring$
1868
 
      duplicate$ "{" =
1869
 
        'skip$
1870
 
        {
1871
 
          output.state after.word = output.state after.punctuation = or
1872
 
            { "l" }
1873
 
            { "u" }
1874
 
          if$ change.case$
1875
 
        }
1876
 
      if$
1877
 
      note #2 global.max$ substring$ * "note" bibinfo.check
1878
 
    }
1879
 
  if$
1880
 
}
1881
 
 
1882
 
FUNCTION {bbl.enquote}
1883
 
{
1884
 
  "\enquote "
1885
 
}
1886
 
 
1887
 
FUNCTION {string.enquote}
1888
 
{
1889
 
  punctuation.no 'punctuation.state :=
1890
 
  non.stop {
1891
 
    block.punctuation
1892
 
  } { "" } if$
1893
 
   swap$ pop$
1894
 
  *
1895
 
  bbl.enquote "{" * swap$ * "}" *
1896
 
  word.space *
1897
 
}
1898
 
 
1899
 
FUNCTION {format.title}
1900
 
{ title
1901
 
  duplicate$ empty$ 'skip$ { "t" change.case$ } if$
1902
 
  duplicate$ "title" bibinfo.check swap$
1903
 
  duplicate$ empty$ 'pop$
1904
 
    {
1905
 
      punctuation.yes 'punctuation.state :=
1906
 
      string.enquote
1907
 
      select.language
1908
 
    }
1909
 
  if$
1910
 
}
1911
 
 
1912
 
FUNCTION {end.quote.title}
1913
 
{ title empty$
1914
 
    'skip$
1915
 
    { before.all 'output.state := }
1916
 
  if$
1917
 
}
1918
 
 
1919
 
FUNCTION {format.name.apply}
1920
 
{
1921
 
  s nameptr
1922
 
  "{vv~}{ll}"
1923
 
  format.name$
1924
 
  cite.name.font
1925
 
}
1926
 
 
1927
 
FUNCTION {format.full.names}
1928
 
{
1929
 
  's :=
1930
 
  "" 't :=
1931
 
  #1 'nameptr :=
1932
 
  s num.names$ 'numnames :=
1933
 
  numnames 'namesleft :=
1934
 
    { namesleft #0 > }
1935
 
    { format.name.apply
1936
 
      't :=
1937
 
      nameptr #1 >
1938
 
        {
1939
 
          namesleft #1 >
1940
 
            { ", " * t * }
1941
 
            {
1942
 
              s nameptr "{ll}" format.name$ duplicate$ "others" =
1943
 
                {
1944
 
                  't :=
1945
 
                }
1946
 
                'pop$
1947
 
              if$
1948
 
              t "others" =
1949
 
                {
1950
 
                  " " * bbl.etal
1951
 
                  emphasize *
1952
 
                }{
1953
 
                  numnames #2 > { "," * }{ skip$ } if$
1954
 
                  bbl.and
1955
 
                  space.word * t *
1956
 
                }
1957
 
              if$
1958
 
            }
1959
 
          if$
1960
 
        }
1961
 
        't
1962
 
      if$
1963
 
      nameptr #1 + 'nameptr :=
1964
 
      namesleft #1 - 'namesleft :=
1965
 
    }
1966
 
  while$
1967
 
}
1968
 
 
1969
 
FUNCTION {make.full.names}
1970
 
{
1971
 
  key editor author
1972
 
  type$ "proceedings" =
1973
 
  type$ "book"        =
1974
 
  type$ "inbook"      =
1975
 
  or { pop$ }{ { pop$ "" }{ swap$ pop$ "" swap$ } if$ } if$
1976
 
  duplicate$ empty$
1977
 
    { pop$
1978
 
      duplicate$ empty$
1979
 
        { pop$
1980
 
          duplicate$ empty$
1981
 
            { pop$
1982
 
              cite$ #1 #3 substring$
1983
 
            }{
1984
 
              skip$
1985
 
            }
1986
 
          if$
1987
 
        }
1988
 
        { swap$ pop$ format.full.names }
1989
 
      if$
1990
 
    }
1991
 
    { swap$ pop$ swap$ pop$ format.full.names }
1992
 
  if$
1993
 
}
1994
 
 
1995
 
FUNCTION {year.bibitem}
1996
 
{
1997
 
  year duplicate$ empty$
1998
 
  { pop$ ""
1999
 
  }{
2000
 
    skip$
2001
 
  } if$
2002
 
  extra.label *
2003
 
}
2004
 
 
2005
 
FUNCTION {output.bibitem}
2006
 
{
2007
 
  newline$
2008
 
  ""
2009
 
  label
2010
 
  * ")" *
2011
 
   make.full.names duplicate$ short.list =
2012
 
   { pop$ }{ * } if$
2013
 
   bracify
2014
 
  "[" swap$ * "]" *
2015
 
  cite$ bracify "%" *
2016
 
  *
2017
 
  "\bibitem "
2018
 
  swap$ *
2019
 
  write$ newline$
2020
 
  "  "
2021
 
  duplicate$ bbl.open * write$ newline$
2022
 
  before.all 'output.state :=
2023
 
  punctuation.yes 'punctuation.state :=
2024
 
}
2025
 
 
2026
 
FUNCTION {n.dashify}
2027
 
{
2028
 
  't :=
2029
 
  ""
2030
 
    { t empty$ not }
2031
 
    { t #1 #1 substring$ "-" =
2032
 
        { t #1 #2 substring$ "--" = not
2033
 
            { "--" *
2034
 
              t #2 global.max$ substring$ 't :=
2035
 
            }{
2036
 
                { t #1 #1 substring$ "-" = }
2037
 
                { "-" *
2038
 
                  t #2 global.max$ substring$ 't :=
2039
 
                }
2040
 
              while$
2041
 
            }
2042
 
          if$
2043
 
        }{
2044
 
          t #1 #1 substring$ *
2045
 
          t #2 global.max$ substring$ 't :=
2046
 
        }
2047
 
      if$
2048
 
    }
2049
 
  while$
2050
 
}
2051
 
 
2052
 
FUNCTION {word.in}
2053
 
{
2054
 
  bbl.in
2055
 
  word.space *
2056
 
}
2057
 
 
2058
 
FUNCTION {date.encapsulate}
2059
 
{
2060
 
  duplicate$ empty$
2061
 
    'skip$
2062
 
    {
2063
 
      before.all 'output.state :=
2064
 
      " (" swap$ * ")" *
2065
 
    }
2066
 
  if$
2067
 
}
2068
 
 
2069
 
FUNCTION {format.date}
2070
 
{
2071
 
  year "year" bibinfo.check duplicate$ empty$
2072
 
    {
2073
 
    }
2074
 
    'skip$
2075
 
  if$
2076
 
  extra.label *
2077
 
  date.encapsulate
2078
 
}
2079
 
 
2080
 
FUNCTION {format.date.output.check}
2081
 
{
2082
 
 format.date
2083
 
 "year" output.check
2084
 
}
2085
 
 
2086
 
FUNCTION {format.date.output}
2087
 
{
2088
 
  format.date.output.check
2089
 
}
2090
 
 
2091
 
FUNCTION {format.btitle}
2092
 
{
2093
 
  booktitle duplicate$ empty$ { pop$
2094
 
      title
2095
 
  } 'skip$ if$
2096
 
  "title" bibinfo.check
2097
 
  duplicate$ empty$ 'skip$
2098
 
    {
2099
 
      emphasize
2100
 
      select.language
2101
 
    }
2102
 
  if$
2103
 
}
2104
 
 
2105
 
FUNCTION {either.or.check}
2106
 
{ empty$
2107
 
    'pop$
2108
 
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
2109
 
  if$
2110
 
}
2111
 
 
2112
 
FUNCTION {editor.check.book}
2113
 
{ editor empty$ 'skip$
2114
 
    {
2115
 
      "can't use both author and editor fields in " cite$ *
2116
 
      ": try using @inbook instead" *
2117
 
      warning$
2118
 
    }
2119
 
  if$
2120
 
}
2121
 
 
2122
 
FUNCTION {format.bvolume}
2123
 
{ volume duplicate$ empty$
2124
 
    { pop$ "" }
2125
 
    {
2126
 
      "volume and number" number either.or.check
2127
 
      bbl.volume
2128
 
      capitalize
2129
 
      swap$
2130
 
      tie.or.space.prefix "volume" bibinfo.check * *
2131
 
      series "series" bibinfo.check duplicate$ empty$ 'pop$
2132
 
        {
2133
 
          ", "
2134
 
          * swap$ *
2135
 
        }
2136
 
      if$
2137
 
    }
2138
 
  if$
2139
 
}
2140
 
 
2141
 
FUNCTION {format.number}
2142
 
{
2143
 
  bbl.number
2144
 
  output.state after.word = output.state after.punctuation = or
2145
 
  #1 or
2146
 
  #0 and
2147
 
    'skip$
2148
 
    { capitalize }
2149
 
  if$
2150
 
  number tie.or.space.prefix "number" bibinfo.check * *
2151
 
}
2152
 
 
2153
 
FUNCTION {format.number.series}
2154
 
{ volume empty$
2155
 
    { number empty$
2156
 
        { series field.or.null }
2157
 
        {
2158
 
          series empty$
2159
 
            {
2160
 
              number "number" bibinfo.check
2161
 
            }{
2162
 
              format.number
2163
 
              series "series" bibinfo.check
2164
 
              word.space * swap$ *
2165
 
            }
2166
 
          if$
2167
 
        }
2168
 
      if$
2169
 
    }
2170
 
    { "" }
2171
 
  if$
2172
 
}
2173
 
 
2174
 
FUNCTION {is.num}
2175
 
{ chr.to.int$
2176
 
  duplicate$ "0" chr.to.int$ < not
2177
 
  swap$ "9" chr.to.int$ > not and
2178
 
}
2179
 
 
2180
 
FUNCTION {extract.num}
2181
 
{ duplicate$ 't :=
2182
 
  "" 's :=
2183
 
  { t empty$ not }
2184
 
  { t #1 #1 substring$
2185
 
    t #2 global.max$ substring$ 't :=
2186
 
    duplicate$ is.num
2187
 
      { s swap$ * 's := }
2188
 
      { pop$ "" 't := }
2189
 
    if$
2190
 
  }
2191
 
  while$
2192
 
  s empty$
2193
 
    'skip$
2194
 
    { pop$ s }
2195
 
  if$
2196
 
}
2197
 
 
2198
 
FUNCTION {convert.edition}
2199
 
{ extract.num "l" change.case$ 's :=
2200
 
  s "first" = s "1" = or
2201
 
    { bbl.first 't := }
2202
 
    { s "second" = s "2" = or
2203
 
        { bbl.second 't := }
2204
 
        { s "third" = s "3" = or
2205
 
            { bbl.third 't := }
2206
 
            { s "fourth" = s "4" = or
2207
 
                { bbl.fourth 't := }
2208
 
                { s "fifth" = s "5" = or
2209
 
                    { bbl.fifth 't := }
2210
 
                    { s #1 #1 substring$ is.num
2211
 
                        { s
2212
 
                            eng.ord
2213
 
                        't := }
2214
 
                        { edition 't := }
2215
 
                      if$
2216
 
                    }
2217
 
                  if$
2218
 
                }
2219
 
              if$
2220
 
            }
2221
 
          if$
2222
 
        }
2223
 
      if$
2224
 
    }
2225
 
  if$
2226
 
  t
2227
 
}
2228
 
 
2229
 
FUNCTION {format.edition}
2230
 
{ edition duplicate$ empty$ 'skip$
2231
 
    {
2232
 
      convert.edition
2233
 
      output.state after.word = output.state after.punctuation = or
2234
 
        { "l" }
2235
 
        { "t" }
2236
 
      if$ change.case$
2237
 
      "edition" bibinfo.check
2238
 
      word.space * bbl.edition *
2239
 
    }
2240
 
  if$
2241
 
}
2242
 
 
2243
 
INTEGERS { multiresult }
2244
 
FUNCTION {multi.page.check}
2245
 
{ 't :=
2246
 
  #0 'multiresult :=
2247
 
    { multiresult not
2248
 
      t empty$ not
2249
 
      and
2250
 
    }
2251
 
    { t #1 #1 substring$
2252
 
      duplicate$ "-" =
2253
 
      swap$ duplicate$ "," =
2254
 
      swap$ "+" =
2255
 
      or or
2256
 
        { #1 'multiresult := }
2257
 
        { t #2 global.max$ substring$ 't := }
2258
 
      if$
2259
 
    }
2260
 
  while$
2261
 
  multiresult
2262
 
}
2263
 
 
2264
 
FUNCTION {format.pages}
2265
 
{ pages duplicate$ empty$
2266
 
    'skip$
2267
 
    { duplicate$ multi.page.check
2268
 
        {
2269
 
          bbl.pages swap$
2270
 
          n.dashify
2271
 
        }{
2272
 
          bbl.page swap$
2273
 
        }
2274
 
      if$
2275
 
      tie.or.space.prefix
2276
 
      "pages" bibinfo.check
2277
 
      * *
2278
 
    }
2279
 
  if$
2280
 
}
2281
 
 
2282
 
FUNCTION {first.page}
2283
 
{ 't :=
2284
 
  ""
2285
 
    {  t empty$ not t #1 #1 substring$ "-" = not and }
2286
 
    { t #1 #1 substring$ *
2287
 
      t #2 global.max$ substring$ 't :=
2288
 
    }
2289
 
  while$
2290
 
}
2291
 
 
2292
 
FUNCTION {format.book.pages}
2293
 
{
2294
 
  pages duplicate$ empty$ 'skip$
2295
 
    {
2296
 
      "pages" bibinfo.check word.space bbl.pages * *
2297
 
    }
2298
 
  if$
2299
 
}
2300
 
 
2301
 
FUNCTION {volnum.punct}
2302
 
{
2303
 
          ","
2304
 
  word.space *
2305
 
}
2306
 
 
2307
 
FUNCTION {format.journal.pages}
2308
 
{ pages duplicate$ empty$ 'pop$
2309
 
    { swap$ duplicate$ empty$
2310
 
        { pop$ pop$ format.pages }
2311
 
        { volnum.punct *
2312
 
          swap$
2313
 
          control.pages duplicate$ #0 < {
2314
 
            pop$ pop$
2315
 
          }{
2316
 
            #0 >
2317
 
            {
2318
 
              n.dashify
2319
 
            }{
2320
 
              first.page
2321
 
            } if$
2322
 
          } if$
2323
 
          "pages" bibinfo.check
2324
 
          *
2325
 
        }
2326
 
      if$
2327
 
    }
2328
 
  if$
2329
 
}
2330
 
 
2331
 
FUNCTION {format.journal.eid}
2332
 
{ eid "eid" bibinfo.check
2333
 
  duplicate$ empty$ 'pop$
2334
 
    { swap$ duplicate$ empty$ 'skip$
2335
 
        { volnum.punct * }
2336
 
      if$
2337
 
      swap$ *
2338
 
    }
2339
 
  if$
2340
 
}
2341
 
 
2342
 
FUNCTION {eid.or.pages}
2343
 
{
2344
 
  eid empty$
2345
 
    { format.journal.pages }
2346
 
    { format.journal.eid }
2347
 
  if$
2348
 
}
2349
 
 
2350
 
FUNCTION {format.ser.vol.num}
2351
 
{
2352
 
  series "series" bibinfo.check output
2353
 
  volume field.or.null
2354
 
  duplicate$ empty$ 'skip$
2355
 
    {
2356
 
      "volume" bibinfo.check
2357
 
    }
2358
 
  if$
2359
 
  bolden
2360
 
}
2361
 
 
2362
 
FUNCTION {format.chapter.pages}
2363
 
{ chapter empty$
2364
 
    {
2365
 
    format.pages
2366
 
    }
2367
 
    { type empty$
2368
 
        {
2369
 
          bbl.chapter
2370
 
          capitalize
2371
 
        }{
2372
 
          type
2373
 
          capitalize
2374
 
          "type" bibinfo.check
2375
 
        }
2376
 
      if$
2377
 
      chapter tie.or.space.prefix
2378
 
      "chapter" bibinfo.check
2379
 
      * *
2380
 
      pages empty$
2381
 
        'skip$
2382
 
        { ", " * format.pages * }
2383
 
      if$
2384
 
    }
2385
 
  if$
2386
 
}
2387
 
 
2388
 
FUNCTION {format.booktitle}
2389
 
{
2390
 
  booktitle duplicate$ "booktitle" bibinfo.check swap$
2391
 
  duplicate$ empty$ 'pop$
2392
 
    {
2393
 
      punctuation.yes 'punctuation.state :=
2394
 
      pop$ emphasize
2395
 
      select.language
2396
 
    }
2397
 
  if$
2398
 
}
2399
 
 
2400
 
FUNCTION {format.editor.in}
2401
 
{
2402
 
  editor "editor" format.names.ed duplicate$ empty$ 'skip$
2403
 
    {
2404
 
      bbl.edby
2405
 
      word.space * swap$ *
2406
 
    }
2407
 
  if$
2408
 
}
2409
 
 
2410
 
FUNCTION {output.article.booktitle}
2411
 
{
2412
 
  format.booktitle
2413
 
      "booktitle" 'bibfield :=
2414
 
  output
2415
 
  bookaddress "address" bibinfo.check duplicate$ empty$ 'pop$
2416
 
    {
2417
 
      "address" 'bibfield :=
2418
 
      output.nonnull after.punctuation 'output.state :=
2419
 
    }
2420
 
  if$
2421
 
}
2422
 
 
2423
 
FUNCTION {format.in.ed.booktitle}
2424
 
{
2425
 
  format.booktitle duplicate$ empty$ 'pop$
2426
 
    {
2427
 
      add.doi
2428
 
      word.in swap$ * output.nonnull
2429
 
      bookaddress "address" bibinfo.check output
2430
 
      format.number.series "series and number" bibinfo.check output
2431
 
      format.bvolume output
2432
 
      format.editor.in "editor" bibinfo.check output
2433
 
    }
2434
 
  if$
2435
 
}
2436
 
 
2437
 
FUNCTION {format.in.ed.booktitle.inbook}
2438
 
{
2439
 
  format.booktitle duplicate$ empty$ 'pop$
2440
 
    {
2441
 
      add.doi
2442
 
      word.in swap$ * output.nonnull
2443
 
      bookaddress "address" bibinfo.check output
2444
 
      format.number.series "series and number" bibinfo.check output
2445
 
      format.bvolume output
2446
 
      author empty$ 'skip$
2447
 
        { format.editor.in "editor" bibinfo.check output }
2448
 
    if$
2449
 
    }
2450
 
  if$
2451
 
}
2452
 
 
2453
 
FUNCTION {format.thesis.type}
2454
 
{ type duplicate$ empty$
2455
 
    'pop$
2456
 
    { swap$ pop$
2457
 
      "t" change.case$ "type" bibinfo.check
2458
 
    }
2459
 
  if$
2460
 
}
2461
 
 
2462
 
FUNCTION {format.tr.number}
2463
 
{ number "number" bibinfo.check
2464
 
  type duplicate$ empty$
2465
 
    { pop$ bbl.techrep }
2466
 
    'skip$
2467
 
  if$
2468
 
  "type" bibinfo.check
2469
 
  swap$ duplicate$ empty$
2470
 
    { pop$ "t" change.case$ }
2471
 
    { tie.or.space.prefix * * }
2472
 
  if$
2473
 
}
2474
 
 
2475
 
FUNCTION {format.article.crossref}
2476
 
{
2477
 
  word.in
2478
 
  " \cite{" * crossref * "}" *
2479
 
}
2480
 
 
2481
 
FUNCTION {format.book.crossref}
2482
 
{ volume duplicate$ empty$
2483
 
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
2484
 
      pop$ word.in
2485
 
    }
2486
 
    { bbl.volume
2487
 
      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
2488
 
    }
2489
 
  if$
2490
 
  " \cite{" * crossref * "}" *
2491
 
}
2492
 
 
2493
 
FUNCTION {format.incoll.inproc.crossref}
2494
 
{
2495
 
  word.in
2496
 
  " \cite{" * crossref * "}" *
2497
 
}
2498
 
 
2499
 
FUNCTION {format.org.or.pub}
2500
 
{ 't :=
2501
 
  ""
2502
 
  address "address" bibinfo.check
2503
 
  duplicate$ empty$
2504
 
    { pop$ t }
2505
 
    { t duplicate$ empty$
2506
 
        { pop$ }
2507
 
        {
2508
 
          "," word.space *
2509
 
          * swap$ *
2510
 
        }
2511
 
      if$
2512
 
    }
2513
 
  if$
2514
 
  *
2515
 
  year duplicate$ empty$
2516
 
    {
2517
 
      "empty year in " cite$ *
2518
 
      warning$
2519
 
      pop$ ""
2520
 
    }
2521
 
    'skip$
2522
 
  if$
2523
 
  duplicate$ empty$
2524
 
    { pop$ }
2525
 
    {
2526
 
      "year" bibinfo.check
2527
 
      swap$
2528
 
      duplicate$ empty$
2529
 
        { pop$ }
2530
 
        {
2531
 
          "," *
2532
 
          word.space *
2533
 
          swap$ *
2534
 
        }
2535
 
      if$
2536
 
    }
2537
 
  if$
2538
 
  duplicate$ empty$ 'skip$ {
2539
 
    ""
2540
 
    "(" * swap$ * ")" *
2541
 
    after.punctuation 'output.state :=
2542
 
    punctuation.space 'punctuation.state :=
2543
 
  } if$
2544
 
}
2545
 
 
2546
 
FUNCTION {format.publisher.address}
2547
 
{ publisher "publisher" bibinfo.warn format.org.or.pub
2548
 
}
2549
 
 
2550
 
FUNCTION {format.organization.address}
2551
 
{ organization "organization" bibinfo.check format.org.or.pub
2552
 
}
2553
 
 
2554
 
FUNCTION {format.organization.publisher.address}
2555
 
{
2556
 
  publisher empty$
2557
 
    { format.organization.address }
2558
 
    { organization "organization" bibinfo.check output
2559
 
      format.publisher.address
2560
 
    }
2561
 
  if$
2562
 
}
2563
 
 
2564
 
FUNCTION {format.school.address.output}
2565
 
{
2566
 
  school  "school"  bibinfo.warn
2567
 
  address "address" bibinfo.check
2568
 
  duplicate$ empty$ 'skip$
2569
 
    {
2570
 
      swap$
2571
 
      duplicate$ empty$ 'skip$
2572
 
        {
2573
 
          ", " *
2574
 
        }
2575
 
      if$
2576
 
      swap$
2577
 
    }
2578
 
  if$
2579
 
  *
2580
 
  output
2581
 
}
2582
 
 
2583
 
FUNCTION {article.title.produce}
2584
 
{
2585
 
  control.title duplicate$ #0 <
2586
 
  { pop$
2587
 
  }{
2588
 
    format.title
2589
 
    "title" 'bibfield :=
2590
 
    swap$ #0 >
2591
 
    {
2592
 
      "title" output.check
2593
 
    }{
2594
 
      output
2595
 
    } if$
2596
 
    new.block.comma
2597
 
  } if$
2598
 
}
2599
 
 
2600
 
FUNCTION {control}
2601
 
{
2602
 
}
2603
 
 
2604
 
FUNCTION {article}
2605
 
{ output.bibitem
2606
 
  format.authors
2607
 
  booktitle empty$ {
2608
 
      "author" output.check
2609
 
    }{ output } if$
2610
 
  author format.key output
2611
 
  new.block.comma
2612
 
  article.title.produce
2613
 
  output.article.booktitle
2614
 
  crossref missing$
2615
 
    {
2616
 
      link.open
2617
 
      journal
2618
 
      "journal" bibinfo.warn
2619
 
      "journal" 'bibfield :=
2620
 
      output
2621
 
      add.blank
2622
 
      format.ser.vol.num
2623
 
      output
2624
 
      eid.or.pages
2625
 
      format.date.output.check
2626
 
      pages empty$ {
2627
 
      doi output
2628
 
      } 'skip$ if$
2629
 
      link.shut
2630
 
    }{
2631
 
      format.article.crossref output.nonnull
2632
 
      format.pages output
2633
 
    }
2634
 
  if$
2635
 
  format.issn.output
2636
 
  new.block.comma
2637
 
  new.sentence.comma
2638
 
  format.note output
2639
 
  format.eprint output
2640
 
  format.translation output
2641
 
  fin.entry
2642
 
}
2643
 
 
2644
 
FUNCTION {book}
2645
 
{ output.bibitem
2646
 
  author empty$
2647
 
    {
2648
 
      format.editors "author and editor" output.check
2649
 
      editor format.key output
2650
 
    }{
2651
 
      format.authors output.nonnull
2652
 
%     crossref missing$ { editor.check.book } 'skip$ if$
2653
 
    }
2654
 
  if$
2655
 
  new.block.comma
2656
 
  link.open
2657
 
  format.btitle
2658
 
  "title" output.check
2659
 
  link.shut
2660
 
  format.edition output
2661
 
  author empty$
2662
 
    {
2663
 
    }
2664
 
    {
2665
 
      format.editor.in output
2666
 
      editor format.key output
2667
 
    }
2668
 
  if$
2669
 
  format.number.series output
2670
 
  crossref missing$
2671
 
    {
2672
 
      format.bvolume output
2673
 
      new.block.comma
2674
 
      format.publisher.address output
2675
 
    }{
2676
 
      new.block.comma
2677
 
      format.book.crossref output.nonnull
2678
 
      format.date.output.check
2679
 
    }
2680
 
  if$
2681
 
  format.isbn.output
2682
 
  format.chapter.pages
2683
 
  output
2684
 
  new.block.comma
2685
 
  new.sentence.comma
2686
 
  format.note output
2687
 
  format.eprint output
2688
 
  fin.entry
2689
 
}
2690
 
 
2691
 
FUNCTION {booklet}
2692
 
{ output.bibitem
2693
 
  format.authors output
2694
 
  author format.key output
2695
 
  new.block.comma
2696
 
  link.open
2697
 
  format.title
2698
 
  "title" output.check
2699
 
  link.shut
2700
 
  new.block.comma
2701
 
  howpublished "howpublished" bibinfo.check output
2702
 
  address "address" bibinfo.check output
2703
 
  format.date.output
2704
 
  format.isbn.output
2705
 
  format.book.pages output
2706
 
  new.block.comma
2707
 
  new.sentence.comma
2708
 
  format.note output
2709
 
  format.eprint output
2710
 
  fin.entry
2711
 
}
2712
 
 
2713
 
FUNCTION {footnote}
2714
 
{ output.bibitem
2715
 
  format.note output
2716
 
  fin.entry
2717
 
}
2718
 
 
2719
 
FUNCTION {inbook}
2720
 
{ output.bibitem
2721
 
  author empty$
2722
 
    {
2723
 
       format.editors "editor" output.check
2724
 
       editor format.key output
2725
 
    }{
2726
 
       format.authors output.nonnull
2727
 
       author format.key output
2728
 
    }
2729
 
  if$
2730
 
  new.block.comma
2731
 
 
2732
 
  format.title output
2733
 
  new.block.comma
2734
 
 
2735
 
  crossref missing$
2736
 
    {
2737
 
      format.in.ed.booktitle.inbook
2738
 
      format.publisher.address output
2739
 
      format.chapter.pages
2740
 
      "chapter and pages"
2741
 
      output.check
2742
 
      new.block.comma
2743
 
      format.edition output
2744
 
      new.block.comma
2745
 
    }{
2746
 
      format.chapter.pages
2747
 
      "chapter and pages"
2748
 
      output.check
2749
 
      new.block.comma
2750
 
      format.book.crossref output.nonnull
2751
 
      format.date.output.check
2752
 
    }
2753
 
  if$
2754
 
  crossref missing$
2755
 
    { format.isbn.output }
2756
 
    'skip$
2757
 
  if$
2758
 
  new.block.comma
2759
 
  new.sentence.comma
2760
 
  format.note output
2761
 
  format.eprint output
2762
 
  fin.entry
2763
 
}
2764
 
 
2765
 
FUNCTION {incollection}
2766
 
{ output.bibitem
2767
 
  format.authors "author" output.check
2768
 
  author format.key output
2769
 
  new.block.comma
2770
 
  article.title.produce
2771
 
  crossref missing$
2772
 
    {
2773
 
      format.in.ed.booktitle
2774
 
      format.publisher.address output
2775
 
      format.edition output
2776
 
      format.chapter.pages output
2777
 
      format.isbn.output
2778
 
    }{
2779
 
      format.incoll.inproc.crossref output.nonnull
2780
 
      format.chapter.pages output
2781
 
    }
2782
 
  if$
2783
 
  new.block.comma
2784
 
  new.sentence.comma
2785
 
  format.note output
2786
 
  format.eprint output
2787
 
  fin.entry
2788
 
}
2789
 
 
2790
 
FUNCTION {inproceedings}
2791
 
{ output.bibitem
2792
 
  format.authors "author" output.check
2793
 
  author format.key output
2794
 
  new.block.comma
2795
 
  article.title.produce
2796
 
  crossref missing$
2797
 
    {
2798
 
      format.in.ed.booktitle
2799
 
      format.organization.publisher.address output
2800
 
      format.chapter.pages output
2801
 
      format.isbn.output
2802
 
      format.issn.output
2803
 
    }{
2804
 
      format.incoll.inproc.crossref output.nonnull
2805
 
      format.chapter.pages output
2806
 
    }
2807
 
  if$
2808
 
  new.block.comma
2809
 
  new.sentence.comma
2810
 
  format.note output
2811
 
  format.eprint output
2812
 
  fin.entry
2813
 
}
2814
 
 
2815
 
FUNCTION {conference} { inproceedings }
2816
 
FUNCTION {manual}
2817
 
{ output.bibitem
2818
 
  format.authors output
2819
 
  author format.key output
2820
 
  new.block.comma
2821
 
  link.open
2822
 
  format.btitle
2823
 
  "title" output.check
2824
 
  link.shut
2825
 
      organization "organization" bibinfo.check output
2826
 
      address "address" bibinfo.check output
2827
 
  format.edition output
2828
 
  format.date.output
2829
 
  new.block.comma
2830
 
  new.sentence.comma
2831
 
  format.note output
2832
 
  format.eprint output
2833
 
  fin.entry
2834
 
}
2835
 
 
2836
 
FUNCTION {mastersthesis}
2837
 
{ output.bibitem
2838
 
  format.authors "author" output.check
2839
 
  author format.key output
2840
 
  new.block.comma
2841
 
  format.btitle
2842
 
  output
2843
 
  new.block.comma
2844
 
  link.open
2845
 
  bbl.mthesis
2846
 
  format.thesis.type
2847
 
  output.nonnull
2848
 
  link.shut
2849
 
  format.school.address.output
2850
 
  format.date.output.check
2851
 
  new.block.comma
2852
 
  new.sentence.comma
2853
 
  format.note output
2854
 
  format.eprint output
2855
 
  fin.entry
2856
 
}
2857
 
 
2858
 
FUNCTION {misc}
2859
 
{ output.bibitem
2860
 
  format.authors output
2861
 
  author format.key output
2862
 
  new.block.comma
2863
 
  link.open
2864
 
  format.title
2865
 
  output
2866
 
  link.shut
2867
 
  new.block.comma
2868
 
  howpublished "howpublished" bibinfo.check output
2869
 
  format.date.output
2870
 
  new.block.comma
2871
 
  new.sentence.comma
2872
 
  format.note output
2873
 
  format.eprint output
2874
 
  fin.entry
2875
 
}
2876
 
 
2877
 
FUNCTION {phdthesis}
2878
 
{ output.bibitem
2879
 
  format.authors "author" output.check
2880
 
  author format.key output
2881
 
  new.block.comma
2882
 
  format.btitle
2883
 
  output
2884
 
  new.block.comma
2885
 
  link.open
2886
 
  bbl.phdthesis
2887
 
  format.thesis.type
2888
 
  output.nonnull
2889
 
  link.shut
2890
 
  format.school.address.output
2891
 
  format.date.output.check
2892
 
  new.block.comma
2893
 
  new.sentence.comma
2894
 
  format.note output
2895
 
  format.eprint output
2896
 
  fin.entry
2897
 
}
2898
 
 
2899
 
FUNCTION {presentation}
2900
 
{ output.bibitem
2901
 
  format.authors output
2902
 
  author format.key output
2903
 
  new.block.comma
2904
 
  link.open
2905
 
  format.title
2906
 
  output
2907
 
  link.shut
2908
 
  new.block.comma
2909
 
  format.organization.address "organization and address" output.check
2910
 
  month "month" output.check
2911
 
  year "year" output.check
2912
 
  new.block.comma
2913
 
  new.sentence.comma
2914
 
  format.note output
2915
 
  new.sentence
2916
 
  type missing$ 'skip$
2917
 
    {"(" type capitalize * ")" * output}
2918
 
  if$
2919
 
  fin.entry
2920
 
}
2921
 
 
2922
 
FUNCTION {proceedings}
2923
 
{ output.bibitem
2924
 
  format.editors output
2925
 
  editor format.key output
2926
 
  new.block.comma
2927
 
  link.open
2928
 
  format.btitle
2929
 
  "title" output.check
2930
 
  link.shut
2931
 
      bookaddress "address" bibinfo.check output
2932
 
  format.number.series output
2933
 
  format.bvolume output
2934
 
  format.organization.publisher.address output
2935
 
  format.isbn.output
2936
 
  format.issn.output
2937
 
  new.block.comma
2938
 
  new.sentence.comma
2939
 
  format.note output
2940
 
  format.eprint output
2941
 
  fin.entry
2942
 
}
2943
 
 
2944
 
FUNCTION {techreport}
2945
 
{ output.bibitem
2946
 
  format.authors "author" output.check
2947
 
  author format.key output
2948
 
  new.block.comma
2949
 
  link.open
2950
 
  format.btitle
2951
 
  "title" output.check
2952
 
  link.shut
2953
 
  new.block.comma
2954
 
  format.tr.number
2955
 
  output.nonnull
2956
 
  institution "institution" bibinfo.warn
2957
 
  format.org.or.pub output
2958
 
  new.block.comma
2959
 
  new.sentence.comma
2960
 
  format.note output
2961
 
  format.eprint output
2962
 
  fin.entry
2963
 
}
2964
 
 
2965
 
FUNCTION {unpublished}
2966
 
{ output.bibitem
2967
 
  format.authors "author" output.check
2968
 
  author format.key output
2969
 
  new.block.comma
2970
 
  link.open
2971
 
  format.title
2972
 
  "title" output.check
2973
 
  link.shut
2974
 
  format.date.output
2975
 
  new.block.comma
2976
 
  new.sentence.comma
2977
 
  format.note "note" output.check
2978
 
  format.eprint output
2979
 
  fin.entry
2980
 
}
2981
 
 
2982
 
FUNCTION {default.type} { misc }
2983
 
 
2984
 
READ
2985
 
 
2986
 
EXECUTE {control.init}
2987
 
 
2988
 
ITERATE {control.pass}
2989
 
 
2990
 
EXECUTE {control.check}
2991
 
 
2992
 
FUNCTION {sortify}
2993
 
{ purify$
2994
 
  "l" change.case$
2995
 
}
2996
 
 
2997
 
INTEGERS { len }
2998
 
 
2999
 
FUNCTION {chop.word}
3000
 
{ 's :=
3001
 
  'len :=
3002
 
  s #1 len substring$ =
3003
 
    { s len #1 + global.max$ substring$ }
3004
 
    's
3005
 
  if$
3006
 
}
3007
 
 
3008
 
FUNCTION {cite.name.font.apply}
3009
 
{
3010
 
  word.space * bbl.etal
3011
 
  emphasize
3012
 
  *
3013
 
}
3014
 
 
3015
 
FUNCTION {format.lab.names}
3016
 
{ 's :=
3017
 
  "" 't :=
3018
 
  #1 'nameptr :=
3019
 
  format.name.apply
3020
 
  s num.names$ duplicate$
3021
 
  #2 >
3022
 
    { pop$
3023
 
      cite.name.font.apply
3024
 
    }{
3025
 
      #2 <
3026
 
        'skip$
3027
 
        {
3028
 
          s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
3029
 
            {
3030
 
              cite.name.font.apply
3031
 
            }{
3032
 
              bbl.and space.word *
3033
 
              s #2 "{vv~}{ll}" format.name$
3034
 
              cite.name.font
3035
 
              *
3036
 
            }
3037
 
          if$
3038
 
        }
3039
 
      if$
3040
 
    }
3041
 
  if$
3042
 
}
3043
 
 
3044
 
FUNCTION {author.key.label}
3045
 
{ author empty$
3046
 
    { key empty$
3047
 
        { cite$ #1 #3 substring$ }
3048
 
        'key
3049
 
      if$
3050
 
    }
3051
 
    { author format.lab.names }
3052
 
  if$
3053
 
}
3054
 
 
3055
 
FUNCTION {author.editor.key.label}
3056
 
{ author empty$
3057
 
    { editor empty$
3058
 
        { key empty$
3059
 
            { cite$ #1 #3 substring$ }
3060
 
            'key
3061
 
          if$
3062
 
        }
3063
 
        { editor format.lab.names }
3064
 
      if$
3065
 
    }
3066
 
    { author format.lab.names }
3067
 
  if$
3068
 
}
3069
 
 
3070
 
FUNCTION {editor.key.label}
3071
 
{ editor empty$
3072
 
    { key empty$
3073
 
        { cite$ #1 #3 substring$ }
3074
 
        'key
3075
 
      if$
3076
 
    }
3077
 
    { editor format.lab.names }
3078
 
  if$
3079
 
}
3080
 
 
3081
 
FUNCTION {calc.short.authors}
3082
 
{ type$ "book" =
3083
 
  type$ "inbook" =
3084
 
  or
3085
 
    'author.editor.key.label
3086
 
    { type$ "proceedings" =
3087
 
        'editor.key.label
3088
 
        'author.key.label
3089
 
      if$
3090
 
    }
3091
 
  if$
3092
 
  'short.list :=
3093
 
}
3094
 
 
3095
 
FUNCTION {calc.label}
3096
 
{
3097
 
  calc.short.authors
3098
 
  short.list
3099
 
  year duplicate$ empty$
3100
 
  short.list key field.or.null = or
3101
 
    {
3102
 
      pop$ ""
3103
 
    }{
3104
 
      control.year #0 > { purify$ #-1 #4 substring$ } 'skip$ if$
3105
 
    }
3106
 
  if$
3107
 
  "(" swap$ *
3108
 
  * 'label :=
3109
 
}
3110
 
 
3111
 
FUNCTION {sort.format.names}
3112
 
{ 's :=
3113
 
  #1 'nameptr :=
3114
 
  ""
3115
 
  s num.names$ 'numnames :=
3116
 
  numnames 'namesleft :=
3117
 
    { namesleft #0 > }
3118
 
    { s nameptr
3119
 
      "{ll{ }}"
3120
 
      control.author.initials {
3121
 
        "{  f{ }}"  *
3122
 
      }{
3123
 
        "{  ff{ }}" *
3124
 
      } if$
3125
 
      "{  jj{ }}" *
3126
 
      format.name$ 't :=
3127
 
      nameptr #1 >
3128
 
        {
3129
 
          "   "  *
3130
 
          namesleft #1 = t "others" = and
3131
 
            { "zzzzz" * }
3132
 
            {
3133
 
              t sortify *
3134
 
            }
3135
 
          if$
3136
 
        }
3137
 
        { t sortify * }
3138
 
      if$
3139
 
      nameptr #1 + 'nameptr :=
3140
 
      namesleft #1 - 'namesleft :=
3141
 
    }
3142
 
  while$
3143
 
}
3144
 
 
3145
 
FUNCTION {sort.format.title}
3146
 
{ 't :=
3147
 
  "A " #2
3148
 
    "An " #3
3149
 
      "The " #4 t chop.word
3150
 
    chop.word
3151
 
  chop.word
3152
 
  sortify
3153
 
  #1 global.max$ substring$
3154
 
}
3155
 
 
3156
 
FUNCTION {author.sort}
3157
 
{ author empty$
3158
 
    { key empty$
3159
 
        { "to sort, need author or key in " cite$ * warning$
3160
 
          ""
3161
 
        }
3162
 
        { key sortify }
3163
 
      if$
3164
 
    }
3165
 
    { author sort.format.names }
3166
 
  if$
3167
 
}
3168
 
 
3169
 
FUNCTION {author.editor.sort}
3170
 
{ author empty$
3171
 
    { editor empty$
3172
 
        { key empty$
3173
 
            { "to sort, need author, editor, or key in " cite$ * warning$
3174
 
              ""
3175
 
            }
3176
 
            { key sortify }
3177
 
          if$
3178
 
        }
3179
 
        { editor sort.format.names }
3180
 
      if$
3181
 
    }
3182
 
    { author sort.format.names }
3183
 
  if$
3184
 
}
3185
 
 
3186
 
FUNCTION {year.sort.key}
3187
 
{
3188
 
  year
3189
 
}
3190
 
 
3191
 
FUNCTION {editor.sort}
3192
 
{ editor empty$
3193
 
    { key empty$
3194
 
        { "to sort, need editor or key in " cite$ * warning$
3195
 
          ""
3196
 
        }
3197
 
        { key sortify }
3198
 
      if$
3199
 
    }
3200
 
    { editor sort.format.names }
3201
 
  if$
3202
 
}
3203
 
 
3204
 
INTEGERS { seq.num }
3205
 
 
3206
 
FUNCTION {init.seq}
3207
 
{ #0 'seq.num :=}
3208
 
 
3209
 
EXECUTE {init.seq}
3210
 
 
3211
 
FUNCTION {int.to.fix}
3212
 
{ "000000000" swap$ int.to.str$ *
3213
 
  #-1 #10 substring$
3214
 
}
3215
 
 
3216
 
FUNCTION {label.presort}
3217
 
{
3218
 
  calc.label
3219
 
  label sortify
3220
 
  "    "
3221
 
  *
3222
 
  seq.num #1 + 'seq.num :=
3223
 
  seq.num  int.to.fix
3224
 
  'sort.label :=
3225
 
  sort.label
3226
 
  *
3227
 
  "    "
3228
 
  *
3229
 
  title field.or.null sort.format.title
3230
 
  *
3231
 
  #1 entry.max$ substring$
3232
 
  'sort.key$ :=
3233
 
}
3234
 
 
3235
 
FUNCTION {presort.pass}
3236
 
{ type$ "control" = 'control.presort 'label.presort if$
3237
 
}
3238
 
 
3239
 
ITERATE {presort.pass}
3240
 
 
3241
 
SORT
3242
 
 
3243
 
STRINGS { last.label next.extra }
3244
 
 
3245
 
INTEGERS { last.extra.num number.label }
3246
 
 
3247
 
FUNCTION {initialize.extra.label.stuff}
3248
 
{ #0 int.to.chr$ 'last.label :=
3249
 
  "" 'next.extra :=
3250
 
  #0 'last.extra.num :=
3251
 
  #0 'number.label :=
3252
 
}
3253
 
 
3254
 
FUNCTION {label.forward}
3255
 
{
3256
 
  last.label label =
3257
 
    { last.extra.num #1 + 'last.extra.num :=
3258
 
      last.extra.num int.to.chr$ 'extra.label :=
3259
 
    }
3260
 
    { "a" chr.to.int$ 'last.extra.num :=
3261
 
      "" 'extra.label :=
3262
 
      label 'last.label :=
3263
 
    }
3264
 
  if$
3265
 
  number.label #1 + 'number.label :=
3266
 
}
3267
 
 
3268
 
FUNCTION {label.reverse}
3269
 
{ next.extra "b" =
3270
 
    { "a" 'extra.label := }
3271
 
    'skip$
3272
 
  if$
3273
 
  extra.label 'next.extra :=
3274
 
  extra.label
3275
 
  duplicate$ empty$
3276
 
    'skip$
3277
 
    { "{\natexlab{" swap$ * "}}" * }
3278
 
  if$
3279
 
  'extra.label :=
3280
 
  label extra.label * 'label :=
3281
 
}
3282
 
 
3283
 
EXECUTE {initialize.extra.label.stuff}
3284
 
 
3285
 
FUNCTION {forward.pass}
3286
 
{ type$ "control" = 'control.forward 'label.forward if$
3287
 
}
3288
 
 
3289
 
ITERATE {forward.pass}
3290
 
 
3291
 
FUNCTION {reverse.pass}
3292
 
{ type$ "control" = 'control.reverse 'label.reverse if$
3293
 
}
3294
 
 
3295
 
REVERSE {reverse.pass}
3296
 
 
3297
 
FUNCTION {sortkey.sort}
3298
 
{ sort.label
3299
 
  "    "
3300
 
  *
3301
 
  year.sort.key
3302
 
  field.or.null sortify
3303
 
  *
3304
 
  "    "
3305
 
  *
3306
 
  title field.or.null sort.format.title
3307
 
  *
3308
 
  #1 entry.max$ substring$
3309
 
  'sort.key$ :=
3310
 
}
3311
 
 
3312
 
FUNCTION {bib.sort.pass}
3313
 
{ type$ "control" = 'control.sort 'sortkey.sort if$
3314
 
}
3315
 
 
3316
 
ITERATE {bib.sort.pass}
3317
 
 
3318
 
SORT
3319
 
 
3320
 
FUNCTION {init.bib.eprint}
3321
 
{
3322
 
    "\texttt {"
3323
 
  pop$
3324
 
  "\providecommand \url  [0]{\begingroup\@sanitize@url \@url }%" write$ newline$
3325
 
  "\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
3326
 
  "\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
3327
 
  eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
3328
 
}
3329
 
 
3330
 
FUNCTION {init.bib.doi}
3331
 
{
3332
 
  "\providecommand \doibase [0]{" doi.base "}%" * * write$ newline$
3333
 
}
3334
 
 
3335
 
FUNCTION {init.bib.hypertex}
3336
 
{
3337
 
  "\providecommand " noop.command "[0]{\@secondoftwo}%" * * write$ newline$
3338
 
  "\providecommand " href.command "[0]{\begingroup \@sanitize@url \@href}%" * * write$ newline$
3339
 
  "\providecommand \@href[1]{\@@startlink{#1}\@@href}%" write$ newline$
3340
 
  "\providecommand \@@href[1]{\endgroup#1\@@endlink}%" write$ newline$
3341
 
  "\providecommand \@sanitize@url [0]{\catcode `\\12\catcode `\$12\catcode `\&12\catcode `\#12\catcode `\^12\catcode `\_12\catcode `\%12\relax}%" write$ newline$
3342
 
  "\providecommand \@@startlink[1]{}%" write$ newline$
3343
 
  "\providecommand \@@endlink[0]{}%"   write$ newline$
3344
 
}
3345
 
 
3346
 
FUNCTION {init.bib.namefont}
3347
 
{
3348
 
  "\providecommand \bibnamefont  [1]{#1}%"  write$ newline$
3349
 
  "\providecommand \bibfnamefont [1]{#1}%" write$ newline$
3350
 
  "\providecommand \citenamefont [1]{#1}%"  write$ newline$
3351
 
}
3352
 
 
3353
 
FUNCTION {init.bib.quote}
3354
 
{
3355
 
  "\providecommand " bbl.enquote * " [1]{" *
3356
 
  "``" "''"
3357
 
  "#1" swap$ "}%" * * * * write$ newline$
3358
 
}
3359
 
 
3360
 
FUNCTION {init.bib.ay}
3361
 
{
3362
 
  "\providecommand \natexlab [1]{#1}%"
3363
 
  write$ newline$
3364
 
}
3365
 
 
3366
 
FUNCTION {init.bib.bibinfo}
3367
 
{
3368
 
  bibinfo.command  "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
3369
 
  bibfield.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
3370
 
}
3371
 
 
3372
 
FUNCTION {init.bib.lang}
3373
 
{
3374
 
  "\providecommand \selectlanguage [0]{\@gobble}%" write$ newline$
3375
 
}
3376
 
 
3377
 
FUNCTION {init.bib.endbibitem}
3378
 
{
3379
 
  "\providecommand " bbl.open * "[0]{}%" *           write$ newline$
3380
 
  "\providecommand \bibitemStop [0]{}%"               write$ newline$
3381
 
  "\providecommand \bibitemNoStop [0]{.\EOS\space}%"  write$ newline$
3382
 
  "\providecommand \EOS [0]{\spacefactor3000\relax}%"   write$ newline$
3383
 
}
3384
 
 
3385
 
FUNCTION {init.bib.translation}
3386
 
{
3387
 
  "\providecommand \translation [1]{[#1]}%" write$ newline$
3388
 
}
3389
 
 
3390
 
FUNCTION {warn.bib}
3391
 
{
3392
 
}
3393
 
 
3394
 
FUNCTION {init.bib}
3395
 
{
3396
 
  warn.bib
3397
 
  "\makeatletter" write$ newline$
3398
 
  "\providecommand \@ifxundefined [1]{%"   write$ newline$
3399
 
  " \@ifx{#1\undefined}"                   write$ newline$
3400
 
  "}%"                                     write$ newline$
3401
 
  "\providecommand \@ifnum [1]{%"          write$ newline$
3402
 
  " \ifnum #1\expandafter \@firstoftwo"    write$ newline$
3403
 
  " \else \expandafter \@secondoftwo"      write$ newline$
3404
 
  " \fi"                                   write$ newline$
3405
 
  "}%"                                     write$ newline$
3406
 
  "\providecommand \@ifx [1]{%"            write$ newline$
3407
 
  " \ifx #1\expandafter \@firstoftwo"      write$ newline$
3408
 
  " \else \expandafter \@secondoftwo"      write$ newline$
3409
 
  " \fi"                                   write$ newline$
3410
 
  "}%"                                     write$ newline$
3411
 
  init.bib.ay
3412
 
  init.bib.quote
3413
 
  init.bib.namefont
3414
 
  init.bib.hypertex
3415
 
  init.bib.eprint
3416
 
  init.bib.doi
3417
 
  init.bib.lang
3418
 
  init.bib.bibinfo
3419
 
  init.bib.translation
3420
 
  init.bib.endbibitem
3421
 
  "\providecommand " bbl.shut * " [1]{\csname bibitem#1\endcsname}%" * write$ newline$
3422
 
  "\let\auto@bib@innerbib\@empty"          write$ newline$
3423
 
  "%</preamble>" write$
3424
 
}
3425
 
 
3426
 
FUNCTION {begin.bib}
3427
 
{
3428
 
  id.bst diagn.cmntlog
3429
 
  control.bib
3430
 
  preamble$ empty$
3431
 
    'skip$
3432
 
    { preamble$ write$ newline$ }
3433
 
  if$
3434
 
  "\begin{thebibliography}{"
3435
 
  number.label int.to.str$
3436
 
  * "}%" *
3437
 
  write$ newline$
3438
 
  init.bib
3439
 
}
3440
 
 
3441
 
EXECUTE {begin.bib}
3442
 
 
3443
 
EXECUTE {init.state.consts}
3444
 
 
3445
 
ITERATE {call.type$}
3446
 
 
3447
 
FUNCTION {end.bib}
3448
 
{ newline$
3449
 
  "\end{thebibliography}%"
3450
 
  write$ newline$
3451
 
}
3452
 
 
3453
 
EXECUTE {end.bib}
3454
 
 
3455
 
%% End of customized bst file
3456
 
%%
3457
 
%% End of file `apsrev4-1.bst'.