bryan7264 commited on
Commit
0e39d64
·
verified ·
1 Parent(s): 8ea8fec

Delete icml2026.bst with huggingface_hub

Browse files
Files changed (1) hide show
  1. icml2026.bst +0 -1443
icml2026.bst DELETED
@@ -1,1443 +0,0 @@
1
- %% File: `icml2025.bst'
2
- %% A modification of `plainnl.bst' for use with natbib package
3
- %%
4
- %% Copyright 2010 Hal Daum\'e III
5
- %% Modified by J. Fürnkranz
6
- %% - Changed labels from (X and Y, 2000) to (X & Y, 2000)
7
- %% - Changed References to last name first and abbreviated first names.
8
- %% Modified by Iain Murray 2018 (who suggests adopting a standard .bst in future...)
9
- %% - Made it actually use abbreviated first names
10
- %%
11
- %% Copyright 1993-2007 Patrick W Daly
12
- %% Max-Planck-Institut f\"ur Sonnensystemforschung
13
- %% Max-Planck-Str. 2
14
- %% D-37191 Katlenburg-Lindau
15
- %% Germany
16
- %% E-mail: daly@mps.mpg.de
17
- %%
18
- %% This program can be redistributed and/or modified under the terms
19
- %% of the LaTeX Project Public License Distributed from CTAN
20
- %% archives in directory macros/latex/base/lppl.txt; either
21
- %% version 1 of the License, or any later version.
22
- %%
23
- % Version and source file information:
24
- % \ProvidesFile{icml2010.mbs}[2007/11/26 1.93 (PWD)]
25
- %
26
- % BibTeX `plainnat' family
27
- % version 0.99b for BibTeX versions 0.99a or later,
28
- % for LaTeX versions 2.09 and 2e.
29
- %
30
- % For use with the `natbib.sty' package; emulates the corresponding
31
- % member of the `plain' family, but with author-year citations.
32
- %
33
- % With version 6.0 of `natbib.sty', it may also be used for numerical
34
- % citations, while retaining the commands \citeauthor, \citefullauthor,
35
- % and \citeyear to print the corresponding information.
36
- %
37
- % For version 7.0 of `natbib.sty', the KEY field replaces missing
38
- % authors/editors, and the date is left blank in \bibitem.
39
- %
40
- % Includes field EID for the sequence/citation number of electronic journals
41
- % which is used instead of page numbers.
42
- %
43
- % Includes fields ISBN and ISSN.
44
- %
45
- % Includes field URL for Internet addresses.
46
- %
47
- % Includes field DOI for Digital Object Idenfifiers.
48
- %
49
- % Works best with the url.sty package of Donald Arseneau.
50
- %
51
- % Works with identical authors and year are further sorted by
52
- % citation key, to preserve any natural sequence.
53
- %
54
- ENTRY
55
- { address
56
- author
57
- booktitle
58
- chapter
59
- doi
60
- eid
61
- edition
62
- editor
63
- howpublished
64
- institution
65
- isbn
66
- issn
67
- journal
68
- key
69
- month
70
- note
71
- number
72
- organization
73
- pages
74
- publisher
75
- school
76
- series
77
- title
78
- type
79
- url
80
- volume
81
- year
82
- }
83
- {}
84
- { label extra.label sort.label short.list }
85
-
86
- INTEGERS { output.state before.all mid.sentence after.sentence after.block }
87
-
88
- FUNCTION {init.state.consts}
89
- { #0 'before.all :=
90
- #1 'mid.sentence :=
91
- #2 'after.sentence :=
92
- #3 'after.block :=
93
- }
94
-
95
- STRINGS { s t }
96
-
97
- FUNCTION {output.nonnull}
98
- { 's :=
99
- output.state mid.sentence =
100
- { ", " * write$ }
101
- { output.state after.block =
102
- { add.period$ write$
103
- newline$
104
- "\newblock " write$
105
- }
106
- { output.state before.all =
107
- 'write$
108
- { add.period$ " " * write$ }
109
- if$
110
- }
111
- if$
112
- mid.sentence 'output.state :=
113
- }
114
- if$
115
- s
116
- }
117
-
118
- FUNCTION {output}
119
- { duplicate$ empty$
120
- 'pop$
121
- 'output.nonnull
122
- if$
123
- }
124
-
125
- FUNCTION {output.check}
126
- { 't :=
127
- duplicate$ empty$
128
- { pop$ "empty " t * " in " * cite$ * warning$ }
129
- 'output.nonnull
130
- if$
131
- }
132
-
133
- FUNCTION {fin.entry}
134
- { add.period$
135
- write$
136
- newline$
137
- }
138
-
139
- FUNCTION {new.block}
140
- { output.state before.all =
141
- 'skip$
142
- { after.block 'output.state := }
143
- if$
144
- }
145
-
146
- FUNCTION {new.sentence}
147
- { output.state after.block =
148
- 'skip$
149
- { output.state before.all =
150
- 'skip$
151
- { after.sentence 'output.state := }
152
- if$
153
- }
154
- if$
155
- }
156
-
157
- FUNCTION {not}
158
- { { #0 }
159
- { #1 }
160
- if$
161
- }
162
-
163
- FUNCTION {and}
164
- { 'skip$
165
- { pop$ #0 }
166
- if$
167
- }
168
-
169
- FUNCTION {or}
170
- { { pop$ #1 }
171
- 'skip$
172
- if$
173
- }
174
-
175
- FUNCTION {new.block.checka}
176
- { empty$
177
- 'skip$
178
- 'new.block
179
- if$
180
- }
181
-
182
- FUNCTION {new.block.checkb}
183
- { empty$
184
- swap$ empty$
185
- and
186
- 'skip$
187
- 'new.block
188
- if$
189
- }
190
-
191
- FUNCTION {new.sentence.checka}
192
- { empty$
193
- 'skip$
194
- 'new.sentence
195
- if$
196
- }
197
-
198
- FUNCTION {new.sentence.checkb}
199
- { empty$
200
- swap$ empty$
201
- and
202
- 'skip$
203
- 'new.sentence
204
- if$
205
- }
206
-
207
- FUNCTION {field.or.null}
208
- { duplicate$ empty$
209
- { pop$ "" }
210
- 'skip$
211
- if$
212
- }
213
-
214
- FUNCTION {emphasize}
215
- { duplicate$ empty$
216
- { pop$ "" }
217
- { "\emph{" swap$ * "}" * }
218
- if$
219
- }
220
-
221
- INTEGERS { nameptr namesleft numnames }
222
-
223
- FUNCTION {format.names}
224
- { 's :=
225
- #1 'nameptr :=
226
- s num.names$ 'numnames :=
227
- numnames 'namesleft :=
228
- { namesleft #0 > }
229
- { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=
230
- nameptr #1 >
231
- { namesleft #1 >
232
- { ", " * t * }
233
- { numnames #2 >
234
- { "," * }
235
- 'skip$
236
- if$
237
- t "others" =
238
- { " et~al." * }
239
- { " and " * t * }
240
- if$
241
- }
242
- if$
243
- }
244
- 't
245
- if$
246
- nameptr #1 + 'nameptr :=
247
- namesleft #1 - 'namesleft :=
248
- }
249
- while$
250
- }
251
-
252
- FUNCTION {format.key}
253
- { empty$
254
- { key field.or.null }
255
- { "" }
256
- if$
257
- }
258
-
259
- FUNCTION {format.authors}
260
- { author empty$
261
- { "" }
262
- { author format.names }
263
- if$
264
- }
265
-
266
- FUNCTION {format.editors}
267
- { editor empty$
268
- { "" }
269
- { editor format.names
270
- editor num.names$ #1 >
271
- { " (eds.)" * }
272
- { " (ed.)" * }
273
- if$
274
- }
275
- if$
276
- }
277
-
278
- FUNCTION {format.isbn}
279
- { isbn empty$
280
- { "" }
281
- { new.block "ISBN " isbn * }
282
- if$
283
- }
284
-
285
- FUNCTION {format.issn}
286
- { issn empty$
287
- { "" }
288
- { new.block "ISSN " issn * }
289
- if$
290
- }
291
-
292
- FUNCTION {format.url}
293
- { url empty$
294
- { "" }
295
- { new.block "URL \url{" url * "}" * }
296
- if$
297
- }
298
-
299
- FUNCTION {format.doi}
300
- { doi empty$
301
- { "" }
302
- { new.block "\doi{" doi * "}" * }
303
- if$
304
- }
305
-
306
- FUNCTION {format.title}
307
- { title empty$
308
- { "" }
309
- { title "t" change.case$ }
310
- if$
311
- }
312
-
313
- FUNCTION {format.full.names}
314
- {'s :=
315
- #1 'nameptr :=
316
- s num.names$ 'numnames :=
317
- numnames 'namesleft :=
318
- { namesleft #0 > }
319
- { s nameptr
320
- "{vv~}{ll}" format.name$ 't :=
321
- nameptr #1 >
322
- {
323
- namesleft #1 >
324
- { ", " * t * }
325
- {
326
- numnames #2 >
327
- { "," * }
328
- 'skip$
329
- if$
330
- t "others" =
331
- { " et~al." * }
332
- { " and " * t * }
333
- if$
334
- }
335
- if$
336
- }
337
- 't
338
- if$
339
- nameptr #1 + 'nameptr :=
340
- namesleft #1 - 'namesleft :=
341
- }
342
- while$
343
- }
344
-
345
- FUNCTION {author.editor.full}
346
- { author empty$
347
- { editor empty$
348
- { "" }
349
- { editor format.full.names }
350
- if$
351
- }
352
- { author format.full.names }
353
- if$
354
- }
355
-
356
- FUNCTION {author.full}
357
- { author empty$
358
- { "" }
359
- { author format.full.names }
360
- if$
361
- }
362
-
363
- FUNCTION {editor.full}
364
- { editor empty$
365
- { "" }
366
- { editor format.full.names }
367
- if$
368
- }
369
-
370
- FUNCTION {make.full.names}
371
- { type$ "book" =
372
- type$ "inbook" =
373
- or
374
- 'author.editor.full
375
- { type$ "proceedings" =
376
- 'editor.full
377
- 'author.full
378
- if$
379
- }
380
- if$
381
- }
382
-
383
- FUNCTION {output.bibitem}
384
- { newline$
385
- "\bibitem[" write$
386
- label write$
387
- ")" make.full.names duplicate$ short.list =
388
- { pop$ }
389
- { * }
390
- if$
391
- "]{" * write$
392
- cite$ write$
393
- "}" write$
394
- newline$
395
- ""
396
- before.all 'output.state :=
397
- }
398
-
399
- FUNCTION {n.dashify}
400
- { 't :=
401
- ""
402
- { t empty$ not }
403
- { t #1 #1 substring$ "-" =
404
- { t #1 #2 substring$ "--" = not
405
- { "--" *
406
- t #2 global.max$ substring$ 't :=
407
- }
408
- { { t #1 #1 substring$ "-" = }
409
- { "-" *
410
- t #2 global.max$ substring$ 't :=
411
- }
412
- while$
413
- }
414
- if$
415
- }
416
- { t #1 #1 substring$ *
417
- t #2 global.max$ substring$ 't :=
418
- }
419
- if$
420
- }
421
- while$
422
- }
423
-
424
- FUNCTION {format.date}
425
- { year duplicate$ empty$
426
- { "empty year in " cite$ * warning$
427
- pop$ "" }
428
- 'skip$
429
- if$
430
- month empty$
431
- 'skip$
432
- { month
433
- " " * swap$ *
434
- }
435
- if$
436
- extra.label *
437
- }
438
-
439
- FUNCTION {format.btitle}
440
- { title emphasize
441
- }
442
-
443
- FUNCTION {tie.or.space.connect}
444
- { duplicate$ text.length$ #3 <
445
- { "~" }
446
- { " " }
447
- if$
448
- swap$ * *
449
- }
450
-
451
- FUNCTION {either.or.check}
452
- { empty$
453
- 'pop$
454
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
455
- if$
456
- }
457
-
458
- FUNCTION {format.bvolume}
459
- { volume empty$
460
- { "" }
461
- { "volume" volume tie.or.space.connect
462
- series empty$
463
- 'skip$
464
- { " of " * series emphasize * }
465
- if$
466
- "volume and number" number either.or.check
467
- }
468
- if$
469
- }
470
-
471
- FUNCTION {format.number.series}
472
- { volume empty$
473
- { number empty$
474
- { series field.or.null }
475
- { output.state mid.sentence =
476
- { "number" }
477
- { "Number" }
478
- if$
479
- number tie.or.space.connect
480
- series empty$
481
- { "there's a number but no series in " cite$ * warning$ }
482
- { " in " * series * }
483
- if$
484
- }
485
- if$
486
- }
487
- { "" }
488
- if$
489
- }
490
-
491
- FUNCTION {format.edition}
492
- { edition empty$
493
- { "" }
494
- { output.state mid.sentence =
495
- { edition "l" change.case$ " edition" * }
496
- { edition "t" change.case$ " edition" * }
497
- if$
498
- }
499
- if$
500
- }
501
-
502
- INTEGERS { multiresult }
503
-
504
- FUNCTION {multi.page.check}
505
- { 't :=
506
- #0 'multiresult :=
507
- { multiresult not
508
- t empty$ not
509
- and
510
- }
511
- { t #1 #1 substring$
512
- duplicate$ "-" =
513
- swap$ duplicate$ "," =
514
- swap$ "+" =
515
- or or
516
- { #1 'multiresult := }
517
- { t #2 global.max$ substring$ 't := }
518
- if$
519
- }
520
- while$
521
- multiresult
522
- }
523
-
524
- FUNCTION {format.pages}
525
- { pages empty$
526
- { "" }
527
- { pages multi.page.check
528
- { "pp.\ " pages n.dashify tie.or.space.connect }
529
- { "pp.\ " pages tie.or.space.connect }
530
- if$
531
- }
532
- if$
533
- }
534
-
535
- FUNCTION {format.eid}
536
- { eid empty$
537
- { "" }
538
- { "art." eid tie.or.space.connect }
539
- if$
540
- }
541
-
542
- FUNCTION {format.vol.num.pages}
543
- { volume field.or.null
544
- number empty$
545
- 'skip$
546
- { "\penalty0 (" number * ")" * *
547
- volume empty$
548
- { "there's a number but no volume in " cite$ * warning$ }
549
- 'skip$
550
- if$
551
- }
552
- if$
553
- pages empty$
554
- 'skip$
555
- { duplicate$ empty$
556
- { pop$ format.pages }
557
- { ":\penalty0 " * pages n.dashify * }
558
- if$
559
- }
560
- if$
561
- }
562
-
563
- FUNCTION {format.vol.num.eid}
564
- { volume field.or.null
565
- number empty$
566
- 'skip$
567
- { "\penalty0 (" number * ")" * *
568
- volume empty$
569
- { "there's a number but no volume in " cite$ * warning$ }
570
- 'skip$
571
- if$
572
- }
573
- if$
574
- eid empty$
575
- 'skip$
576
- { duplicate$ empty$
577
- { pop$ format.eid }
578
- { ":\penalty0 " * eid * }
579
- if$
580
- }
581
- if$
582
- }
583
-
584
- FUNCTION {format.chapter.pages}
585
- { chapter empty$
586
- 'format.pages
587
- { type empty$
588
- { "chapter" }
589
- { type "l" change.case$ }
590
- if$
591
- chapter tie.or.space.connect
592
- pages empty$
593
- 'skip$
594
- { ", " * format.pages * }
595
- if$
596
- }
597
- if$
598
- }
599
-
600
- FUNCTION {format.in.ed.booktitle}
601
- { booktitle empty$
602
- { "" }
603
- { editor empty$
604
- { "In " booktitle emphasize * }
605
- { "In " format.editors * ", " * booktitle emphasize * }
606
- if$
607
- }
608
- if$
609
- }
610
-
611
- FUNCTION {empty.misc.check}
612
- { author empty$ title empty$ howpublished empty$
613
- month empty$ year empty$ note empty$
614
- and and and and and
615
- key empty$ not and
616
- { "all relevant fields are empty in " cite$ * warning$ }
617
- 'skip$
618
- if$
619
- }
620
-
621
- FUNCTION {format.thesis.type}
622
- { type empty$
623
- 'skip$
624
- { pop$
625
- type "t" change.case$
626
- }
627
- if$
628
- }
629
-
630
- FUNCTION {format.tr.number}
631
- { type empty$
632
- { "Technical Report" }
633
- 'type
634
- if$
635
- number empty$
636
- { "t" change.case$ }
637
- { number tie.or.space.connect }
638
- if$
639
- }
640
-
641
- FUNCTION {format.article.crossref}
642
- { key empty$
643
- { journal empty$
644
- { "need key or journal for " cite$ * " to crossref " * crossref *
645
- warning$
646
- ""
647
- }
648
- { "In \emph{" journal * "}" * }
649
- if$
650
- }
651
- { "In " }
652
- if$
653
- " \citet{" * crossref * "}" *
654
- }
655
-
656
- FUNCTION {format.book.crossref}
657
- { volume empty$
658
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
659
- "In "
660
- }
661
- { "Volume" volume tie.or.space.connect
662
- " of " *
663
- }
664
- if$
665
- editor empty$
666
- editor field.or.null author field.or.null =
667
- or
668
- { key empty$
669
- { series empty$
670
- { "need editor, key, or series for " cite$ * " to crossref " *
671
- crossref * warning$
672
- "" *
673
- }
674
- { "\emph{" * series * "}" * }
675
- if$
676
- }
677
- 'skip$
678
- if$
679
- }
680
- 'skip$
681
- if$
682
- " \citet{" * crossref * "}" *
683
- }
684
-
685
- FUNCTION {format.incoll.inproc.crossref}
686
- { editor empty$
687
- editor field.or.null author field.or.null =
688
- or
689
- { key empty$
690
- { booktitle empty$
691
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
692
- crossref * warning$
693
- ""
694
- }
695
- { "In \emph{" booktitle * "}" * }
696
- if$
697
- }
698
- { "In " }
699
- if$
700
- }
701
- { "In " }
702
- if$
703
- " \citet{" * crossref * "}" *
704
- }
705
-
706
- FUNCTION {article}
707
- { output.bibitem
708
- format.authors "author" output.check
709
- author format.key output
710
- new.block
711
- format.title "title" output.check
712
- new.block
713
- crossref missing$
714
- { journal emphasize "journal" output.check
715
- eid empty$
716
- { format.vol.num.pages output }
717
- { format.vol.num.eid output }
718
- if$
719
- format.date "year" output.check
720
- }
721
- { format.article.crossref output.nonnull
722
- eid empty$
723
- { format.pages output }
724
- { format.eid output }
725
- if$
726
- }
727
- if$
728
- format.issn output
729
- format.doi output
730
- format.url output
731
- new.block
732
- note output
733
- fin.entry
734
- }
735
-
736
- FUNCTION {book}
737
- { output.bibitem
738
- author empty$
739
- { format.editors "author and editor" output.check
740
- editor format.key output
741
- }
742
- { format.authors output.nonnull
743
- crossref missing$
744
- { "author and editor" editor either.or.check }
745
- 'skip$
746
- if$
747
- }
748
- if$
749
- new.block
750
- format.btitle "title" output.check
751
- crossref missing$
752
- { format.bvolume output
753
- new.block
754
- format.number.series output
755
- new.sentence
756
- publisher "publisher" output.check
757
- address output
758
- }
759
- { new.block
760
- format.book.crossref output.nonnull
761
- }
762
- if$
763
- format.edition output
764
- format.date "year" output.check
765
- format.isbn output
766
- format.doi output
767
- format.url output
768
- new.block
769
- note output
770
- fin.entry
771
- }
772
-
773
- FUNCTION {booklet}
774
- { output.bibitem
775
- format.authors output
776
- author format.key output
777
- new.block
778
- format.title "title" output.check
779
- howpublished address new.block.checkb
780
- howpublished output
781
- address output
782
- format.date output
783
- format.isbn output
784
- format.doi output
785
- format.url output
786
- new.block
787
- note output
788
- fin.entry
789
- }
790
-
791
- FUNCTION {inbook}
792
- { output.bibitem
793
- author empty$
794
- { format.editors "author and editor" output.check
795
- editor format.key output
796
- }
797
- { format.authors output.nonnull
798
- crossref missing$
799
- { "author and editor" editor either.or.check }
800
- 'skip$
801
- if$
802
- }
803
- if$
804
- new.block
805
- format.btitle "title" output.check
806
- crossref missing$
807
- { format.bvolume output
808
- format.chapter.pages "chapter and pages" output.check
809
- new.block
810
- format.number.series output
811
- new.sentence
812
- publisher "publisher" output.check
813
- address output
814
- }
815
- { format.chapter.pages "chapter and pages" output.check
816
- new.block
817
- format.book.crossref output.nonnull
818
- }
819
- if$
820
- format.edition output
821
- format.date "year" output.check
822
- format.isbn output
823
- format.doi output
824
- format.url output
825
- new.block
826
- note output
827
- fin.entry
828
- }
829
-
830
- FUNCTION {incollection}
831
- { output.bibitem
832
- format.authors "author" output.check
833
- author format.key output
834
- new.block
835
- format.title "title" output.check
836
- new.block
837
- crossref missing$
838
- { format.in.ed.booktitle "booktitle" output.check
839
- format.bvolume output
840
- format.number.series output
841
- format.chapter.pages output
842
- new.sentence
843
- publisher "publisher" output.check
844
- address output
845
- format.edition output
846
- format.date "year" output.check
847
- }
848
- { format.incoll.inproc.crossref output.nonnull
849
- format.chapter.pages output
850
- }
851
- if$
852
- format.isbn output
853
- format.doi output
854
- format.url output
855
- new.block
856
- note output
857
- fin.entry
858
- }
859
-
860
- FUNCTION {inproceedings}
861
- { output.bibitem
862
- format.authors "author" output.check
863
- author format.key output
864
- new.block
865
- format.title "title" output.check
866
- new.block
867
- crossref missing$
868
- { format.in.ed.booktitle "booktitle" output.check
869
- format.bvolume output
870
- format.number.series output
871
- format.pages output
872
- address empty$
873
- { organization publisher new.sentence.checkb
874
- organization output
875
- publisher output
876
- format.date "year" output.check
877
- }
878
- { address output.nonnull
879
- format.date "year" output.check
880
- new.sentence
881
- organization output
882
- publisher output
883
- }
884
- if$
885
- }
886
- { format.incoll.inproc.crossref output.nonnull
887
- format.pages output
888
- }
889
- if$
890
- format.isbn output
891
- format.doi output
892
- format.url output
893
- new.block
894
- note output
895
- fin.entry
896
- }
897
-
898
- FUNCTION {conference} { inproceedings }
899
-
900
- FUNCTION {manual}
901
- { output.bibitem
902
- format.authors output
903
- author format.key output
904
- new.block
905
- format.btitle "title" output.check
906
- organization address new.block.checkb
907
- organization output
908
- address output
909
- format.edition output
910
- format.date output
911
- format.url output
912
- new.block
913
- note output
914
- fin.entry
915
- }
916
-
917
- FUNCTION {mastersthesis}
918
- { output.bibitem
919
- format.authors "author" output.check
920
- author format.key output
921
- new.block
922
- format.title "title" output.check
923
- new.block
924
- "Master's thesis" format.thesis.type output.nonnull
925
- school "school" output.check
926
- address output
927
- format.date "year" output.check
928
- format.url output
929
- new.block
930
- note output
931
- fin.entry
932
- }
933
-
934
- FUNCTION {misc}
935
- { output.bibitem
936
- format.authors output
937
- author format.key output
938
- title howpublished new.block.checkb
939
- format.title output
940
- howpublished new.block.checka
941
- howpublished output
942
- format.date output
943
- format.issn output
944
- format.url output
945
- new.block
946
- note output
947
- fin.entry
948
- empty.misc.check
949
- }
950
-
951
- FUNCTION {phdthesis}
952
- { output.bibitem
953
- format.authors "author" output.check
954
- author format.key output
955
- new.block
956
- format.btitle "title" output.check
957
- new.block
958
- "PhD thesis" format.thesis.type output.nonnull
959
- school "school" output.check
960
- address output
961
- format.date "year" output.check
962
- format.url output
963
- new.block
964
- note output
965
- fin.entry
966
- }
967
-
968
- FUNCTION {proceedings}
969
- { output.bibitem
970
- format.editors output
971
- editor format.key output
972
- new.block
973
- format.btitle "title" output.check
974
- format.bvolume output
975
- format.number.series output
976
- address output
977
- format.date "year" output.check
978
- new.sentence
979
- organization output
980
- publisher output
981
- format.isbn output
982
- format.doi output
983
- format.url output
984
- new.block
985
- note output
986
- fin.entry
987
- }
988
-
989
- FUNCTION {techreport}
990
- { output.bibitem
991
- format.authors "author" output.check
992
- author format.key output
993
- new.block
994
- format.title "title" output.check
995
- new.block
996
- format.tr.number output.nonnull
997
- institution "institution" output.check
998
- address output
999
- format.date "year" output.check
1000
- format.url output
1001
- new.block
1002
- note output
1003
- fin.entry
1004
- }
1005
-
1006
- FUNCTION {unpublished}
1007
- { output.bibitem
1008
- format.authors "author" output.check
1009
- author format.key output
1010
- new.block
1011
- format.title "title" output.check
1012
- new.block
1013
- note "note" output.check
1014
- format.date output
1015
- format.url output
1016
- fin.entry
1017
- }
1018
-
1019
- FUNCTION {default.type} { misc }
1020
-
1021
-
1022
- MACRO {jan} {"January"}
1023
-
1024
- MACRO {feb} {"February"}
1025
-
1026
- MACRO {mar} {"March"}
1027
-
1028
- MACRO {apr} {"April"}
1029
-
1030
- MACRO {may} {"May"}
1031
-
1032
- MACRO {jun} {"June"}
1033
-
1034
- MACRO {jul} {"July"}
1035
-
1036
- MACRO {aug} {"August"}
1037
-
1038
- MACRO {sep} {"September"}
1039
-
1040
- MACRO {oct} {"October"}
1041
-
1042
- MACRO {nov} {"November"}
1043
-
1044
- MACRO {dec} {"December"}
1045
-
1046
-
1047
-
1048
- MACRO {acmcs} {"ACM Computing Surveys"}
1049
-
1050
- MACRO {acta} {"Acta Informatica"}
1051
-
1052
- MACRO {cacm} {"Communications of the ACM"}
1053
-
1054
- MACRO {ibmjrd} {"IBM Journal of Research and Development"}
1055
-
1056
- MACRO {ibmsj} {"IBM Systems Journal"}
1057
-
1058
- MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
1059
-
1060
- MACRO {ieeetc} {"IEEE Transactions on Computers"}
1061
-
1062
- MACRO {ieeetcad}
1063
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
1064
-
1065
- MACRO {ipl} {"Information Processing Letters"}
1066
-
1067
- MACRO {jacm} {"Journal of the ACM"}
1068
-
1069
- MACRO {jcss} {"Journal of Computer and System Sciences"}
1070
-
1071
- MACRO {scp} {"Science of Computer Programming"}
1072
-
1073
- MACRO {sicomp} {"SIAM Journal on Computing"}
1074
-
1075
- MACRO {tocs} {"ACM Transactions on Computer Systems"}
1076
-
1077
- MACRO {tods} {"ACM Transactions on Database Systems"}
1078
-
1079
- MACRO {tog} {"ACM Transactions on Graphics"}
1080
-
1081
- MACRO {toms} {"ACM Transactions on Mathematical Software"}
1082
-
1083
- MACRO {toois} {"ACM Transactions on Office Information Systems"}
1084
-
1085
- MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
1086
-
1087
- MACRO {tcs} {"Theoretical Computer Science"}
1088
-
1089
-
1090
- READ
1091
-
1092
- FUNCTION {sortify}
1093
- { purify$
1094
- "l" change.case$
1095
- }
1096
-
1097
- INTEGERS { len }
1098
-
1099
- FUNCTION {chop.word}
1100
- { 's :=
1101
- 'len :=
1102
- s #1 len substring$ =
1103
- { s len #1 + global.max$ substring$ }
1104
- 's
1105
- if$
1106
- }
1107
-
1108
- FUNCTION {format.lab.names}
1109
- { 's :=
1110
- s #1 "{vv~}{ll}" format.name$
1111
- s num.names$ duplicate$
1112
- #2 >
1113
- { pop$ " et~al." * }
1114
- { #2 <
1115
- 'skip$
1116
- { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1117
- { " et~al." * }
1118
- { " \& " * s #2 "{vv~}{ll}" format.name$ * }
1119
- if$
1120
- }
1121
- if$
1122
- }
1123
- if$
1124
- }
1125
-
1126
- FUNCTION {author.key.label}
1127
- { author empty$
1128
- { key empty$
1129
- { cite$ #1 #3 substring$ }
1130
- 'key
1131
- if$
1132
- }
1133
- { author format.lab.names }
1134
- if$
1135
- }
1136
-
1137
- FUNCTION {author.editor.key.label}
1138
- { author empty$
1139
- { editor empty$
1140
- { key empty$
1141
- { cite$ #1 #3 substring$ }
1142
- 'key
1143
- if$
1144
- }
1145
- { editor format.lab.names }
1146
- if$
1147
- }
1148
- { author format.lab.names }
1149
- if$
1150
- }
1151
-
1152
- FUNCTION {author.key.organization.label}
1153
- { author empty$
1154
- { key empty$
1155
- { organization empty$
1156
- { cite$ #1 #3 substring$ }
1157
- { "The " #4 organization chop.word #3 text.prefix$ }
1158
- if$
1159
- }
1160
- 'key
1161
- if$
1162
- }
1163
- { author format.lab.names }
1164
- if$
1165
- }
1166
-
1167
- FUNCTION {editor.key.organization.label}
1168
- { editor empty$
1169
- { key empty$
1170
- { organization empty$
1171
- { cite$ #1 #3 substring$ }
1172
- { "The " #4 organization chop.word #3 text.prefix$ }
1173
- if$
1174
- }
1175
- 'key
1176
- if$
1177
- }
1178
- { editor format.lab.names }
1179
- if$
1180
- }
1181
-
1182
- FUNCTION {calc.short.authors}
1183
- { type$ "book" =
1184
- type$ "inbook" =
1185
- or
1186
- 'author.editor.key.label
1187
- { type$ "proceedings" =
1188
- 'editor.key.organization.label
1189
- { type$ "manual" =
1190
- 'author.key.organization.label
1191
- 'author.key.label
1192
- if$
1193
- }
1194
- if$
1195
- }
1196
- if$
1197
- 'short.list :=
1198
- }
1199
-
1200
- FUNCTION {calc.label}
1201
- { calc.short.authors
1202
- short.list
1203
- "("
1204
- *
1205
- year duplicate$ empty$
1206
- short.list key field.or.null = or
1207
- { pop$ "" }
1208
- 'skip$
1209
- if$
1210
- *
1211
- 'label :=
1212
- }
1213
-
1214
- FUNCTION {sort.format.names}
1215
- { 's :=
1216
- #1 'nameptr :=
1217
- ""
1218
- s num.names$ 'numnames :=
1219
- numnames 'namesleft :=
1220
- { namesleft #0 > }
1221
- {
1222
- s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
1223
- nameptr #1 >
1224
- {
1225
- " " *
1226
- namesleft #1 = t "others" = and
1227
- { "zzzzz" * }
1228
- { numnames #2 > nameptr #2 = and
1229
- { "zz" * year field.or.null * " " * }
1230
- 'skip$
1231
- if$
1232
- t sortify *
1233
- }
1234
- if$
1235
- }
1236
- { t sortify * }
1237
- if$
1238
- nameptr #1 + 'nameptr :=
1239
- namesleft #1 - 'namesleft :=
1240
- }
1241
- while$
1242
- }
1243
-
1244
- FUNCTION {sort.format.title}
1245
- { 't :=
1246
- "A " #2
1247
- "An " #3
1248
- "The " #4 t chop.word
1249
- chop.word
1250
- chop.word
1251
- sortify
1252
- #1 global.max$ substring$
1253
- }
1254
-
1255
- FUNCTION {author.sort}
1256
- { author empty$
1257
- { key empty$
1258
- { "to sort, need author or key in " cite$ * warning$
1259
- ""
1260
- }
1261
- { key sortify }
1262
- if$
1263
- }
1264
- { author sort.format.names }
1265
- if$
1266
- }
1267
-
1268
- FUNCTION {author.editor.sort}
1269
- { author empty$
1270
- { editor empty$
1271
- { key empty$
1272
- { "to sort, need author, editor, or key in " cite$ * warning$
1273
- ""
1274
- }
1275
- { key sortify }
1276
- if$
1277
- }
1278
- { editor sort.format.names }
1279
- if$
1280
- }
1281
- { author sort.format.names }
1282
- if$
1283
- }
1284
-
1285
- FUNCTION {author.organization.sort}
1286
- { author empty$
1287
- { organization empty$
1288
- { key empty$
1289
- { "to sort, need author, organization, or key in " cite$ * warning$
1290
- ""
1291
- }
1292
- { key sortify }
1293
- if$
1294
- }
1295
- { "The " #4 organization chop.word sortify }
1296
- if$
1297
- }
1298
- { author sort.format.names }
1299
- if$
1300
- }
1301
-
1302
- FUNCTION {editor.organization.sort}
1303
- { editor empty$
1304
- { organization empty$
1305
- { key empty$
1306
- { "to sort, need editor, organization, or key in " cite$ * warning$
1307
- ""
1308
- }
1309
- { key sortify }
1310
- if$
1311
- }
1312
- { "The " #4 organization chop.word sortify }
1313
- if$
1314
- }
1315
- { editor sort.format.names }
1316
- if$
1317
- }
1318
-
1319
-
1320
- FUNCTION {presort}
1321
- { calc.label
1322
- label sortify
1323
- " "
1324
- *
1325
- type$ "book" =
1326
- type$ "inbook" =
1327
- or
1328
- 'author.editor.sort
1329
- { type$ "proceedings" =
1330
- 'editor.organization.sort
1331
- { type$ "manual" =
1332
- 'author.organization.sort
1333
- 'author.sort
1334
- if$
1335
- }
1336
- if$
1337
- }
1338
- if$
1339
- " "
1340
- *
1341
- year field.or.null sortify
1342
- *
1343
- " "
1344
- *
1345
- cite$
1346
- *
1347
- #1 entry.max$ substring$
1348
- 'sort.label :=
1349
- sort.label *
1350
- #1 entry.max$ substring$
1351
- 'sort.key$ :=
1352
- }
1353
-
1354
- ITERATE {presort}
1355
-
1356
- SORT
1357
-
1358
- STRINGS { longest.label last.label next.extra }
1359
-
1360
- INTEGERS { longest.label.width last.extra.num number.label }
1361
-
1362
- FUNCTION {initialize.longest.label}
1363
- { "" 'longest.label :=
1364
- #0 int.to.chr$ 'last.label :=
1365
- "" 'next.extra :=
1366
- #0 'longest.label.width :=
1367
- #0 'last.extra.num :=
1368
- #0 'number.label :=
1369
- }
1370
-
1371
- FUNCTION {forward.pass}
1372
- { last.label label =
1373
- { last.extra.num #1 + 'last.extra.num :=
1374
- last.extra.num int.to.chr$ 'extra.label :=
1375
- }
1376
- { "a" chr.to.int$ 'last.extra.num :=
1377
- "" 'extra.label :=
1378
- label 'last.label :=
1379
- }
1380
- if$
1381
- number.label #1 + 'number.label :=
1382
- }
1383
-
1384
- FUNCTION {reverse.pass}
1385
- { next.extra "b" =
1386
- { "a" 'extra.label := }
1387
- 'skip$
1388
- if$
1389
- extra.label 'next.extra :=
1390
- extra.label
1391
- duplicate$ empty$
1392
- 'skip$
1393
- { "{\natexlab{" swap$ * "}}" * }
1394
- if$
1395
- 'extra.label :=
1396
- label extra.label * 'label :=
1397
- }
1398
-
1399
- EXECUTE {initialize.longest.label}
1400
-
1401
- ITERATE {forward.pass}
1402
-
1403
- REVERSE {reverse.pass}
1404
-
1405
- FUNCTION {bib.sort.order}
1406
- { sort.label 'sort.key$ :=
1407
- }
1408
-
1409
- ITERATE {bib.sort.order}
1410
-
1411
- SORT
1412
-
1413
- FUNCTION {begin.bib}
1414
- { preamble$ empty$
1415
- 'skip$
1416
- { preamble$ write$ newline$ }
1417
- if$
1418
- "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1419
- write$ newline$
1420
- "\providecommand{\natexlab}[1]{#1}"
1421
- write$ newline$
1422
- "\providecommand{\url}[1]{\texttt{#1}}"
1423
- write$ newline$
1424
- "\expandafter\ifx\csname urlstyle\endcsname\relax"
1425
- write$ newline$
1426
- " \providecommand{\doi}[1]{doi: #1}\else"
1427
- write$ newline$
1428
- " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
1429
- write$ newline$
1430
- }
1431
-
1432
- EXECUTE {begin.bib}
1433
-
1434
- EXECUTE {init.state.consts}
1435
-
1436
- ITERATE {call.type$}
1437
-
1438
- FUNCTION {end.bib}
1439
- { newline$
1440
- "\end{thebibliography}" write$ newline$
1441
- }
1442
-
1443
- EXECUTE {end.bib}