~chris-rogers/maus/emr_mc_digitization

« 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/aipnum4-1.bst

  • Committer: Chris Rogers
  • Date: 2014-04-16 11:48:45 UTC
  • mfrom: (707 merge)
  • mto: This revision was merged to the branch mainline in revision 711.
  • Revision ID: chris.rogers@stfc.ac.uk-20140416114845-h3u3q7pdcxkxvovs
Update to trunk

Show diffs side-by-side

added added

removed removed

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