github.com/ari-anchor/sei-tendermint@v0.0.0-20230519144642-dc826b7b56bb/spec/consensus/consensus-paper/latex8.bst (about) 1 2 % --------------------------------------------------------------- 3 % 4 % $Id: latex8.bst,v 1.1 1995/09/15 15:13:49 ienne Exp $ 5 % 6 % by Paolo.Ienne@di.epfl.ch 7 % 8 9 % --------------------------------------------------------------- 10 % 11 % no guarantee is given that the format corresponds perfectly to 12 % IEEE 8.5" x 11" Proceedings, but most features should be ok. 13 % 14 % --------------------------------------------------------------- 15 % 16 % `latex8' from BibTeX standard bibliography style `abbrv' 17 % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. 18 % Copyright (C) 1985, all rights reserved. 19 % Copying of this file is authorized only if either 20 % (1) you make absolutely no changes to your copy, including name, or 21 % (2) if you do make changes, you name it something other than 22 % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. 23 % This restriction helps ensure that all standard styles are identical. 24 % The file btxbst.doc has the documentation for this style. 25 26 ENTRY 27 { address 28 author 29 booktitle 30 chapter 31 edition 32 editor 33 howpublished 34 institution 35 journal 36 key 37 month 38 note 39 number 40 organization 41 pages 42 publisher 43 school 44 series 45 title 46 type 47 volume 48 year 49 } 50 {} 51 { label } 52 53 INTEGERS { output.state before.all mid.sentence after.sentence after.block } 54 55 FUNCTION {init.state.consts} 56 { #0 'before.all := 57 #1 'mid.sentence := 58 #2 'after.sentence := 59 #3 'after.block := 60 } 61 62 STRINGS { s t } 63 64 FUNCTION {output.nonnull} 65 { 's := 66 output.state mid.sentence = 67 { ", " * write$ } 68 { output.state after.block = 69 { add.period$ write$ 70 newline$ 71 "\newblock " write$ 72 } 73 { output.state before.all = 74 'write$ 75 { add.period$ " " * write$ } 76 if$ 77 } 78 if$ 79 mid.sentence 'output.state := 80 } 81 if$ 82 s 83 } 84 85 FUNCTION {output} 86 { duplicate$ empty$ 87 'pop$ 88 'output.nonnull 89 if$ 90 } 91 92 FUNCTION {output.check} 93 { 't := 94 duplicate$ empty$ 95 { pop$ "empty " t * " in " * cite$ * warning$ } 96 'output.nonnull 97 if$ 98 } 99 100 FUNCTION {output.bibitem} 101 { newline$ 102 "\bibitem{" write$ 103 cite$ write$ 104 "}" write$ 105 newline$ 106 "" 107 before.all 'output.state := 108 } 109 110 FUNCTION {fin.entry} 111 { add.period$ 112 write$ 113 newline$ 114 } 115 116 FUNCTION {new.block} 117 { output.state before.all = 118 'skip$ 119 { after.block 'output.state := } 120 if$ 121 } 122 123 FUNCTION {new.sentence} 124 { output.state after.block = 125 'skip$ 126 { output.state before.all = 127 'skip$ 128 { after.sentence 'output.state := } 129 if$ 130 } 131 if$ 132 } 133 134 FUNCTION {not} 135 { { #0 } 136 { #1 } 137 if$ 138 } 139 140 FUNCTION {and} 141 { 'skip$ 142 { pop$ #0 } 143 if$ 144 } 145 146 FUNCTION {or} 147 { { pop$ #1 } 148 'skip$ 149 if$ 150 } 151 152 FUNCTION {new.block.checka} 153 { empty$ 154 'skip$ 155 'new.block 156 if$ 157 } 158 159 FUNCTION {new.block.checkb} 160 { empty$ 161 swap$ empty$ 162 and 163 'skip$ 164 'new.block 165 if$ 166 } 167 168 FUNCTION {new.sentence.checka} 169 { empty$ 170 'skip$ 171 'new.sentence 172 if$ 173 } 174 175 FUNCTION {new.sentence.checkb} 176 { empty$ 177 swap$ empty$ 178 and 179 'skip$ 180 'new.sentence 181 if$ 182 } 183 184 FUNCTION {field.or.null} 185 { duplicate$ empty$ 186 { pop$ "" } 187 'skip$ 188 if$ 189 } 190 191 FUNCTION {emphasize} 192 { duplicate$ empty$ 193 { pop$ "" } 194 { "{\em " swap$ * "}" * } 195 if$ 196 } 197 198 INTEGERS { nameptr namesleft numnames } 199 200 FUNCTION {format.names} 201 { 's := 202 #1 'nameptr := 203 s num.names$ 'numnames := 204 numnames 'namesleft := 205 { namesleft #0 > } 206 { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := 207 nameptr #1 > 208 { namesleft #1 > 209 { ", " * t * } 210 { numnames #2 > 211 { "," * } 212 'skip$ 213 if$ 214 t "others" = 215 { " et~al." * } 216 { " and " * t * } 217 if$ 218 } 219 if$ 220 } 221 't 222 if$ 223 nameptr #1 + 'nameptr := 224 225 namesleft #1 - 'namesleft := 226 } 227 while$ 228 } 229 230 FUNCTION {format.authors} 231 { author empty$ 232 { "" } 233 { author format.names } 234 if$ 235 } 236 237 FUNCTION {format.editors} 238 { editor empty$ 239 { "" } 240 { editor format.names 241 editor num.names$ #1 > 242 { ", editors" * } 243 { ", editor" * } 244 if$ 245 } 246 if$ 247 } 248 249 FUNCTION {format.title} 250 { title empty$ 251 { "" } 252 { title "t" change.case$ } 253 if$ 254 } 255 256 FUNCTION {n.dashify} 257 { 't := 258 "" 259 { t empty$ not } 260 { t #1 #1 substring$ "-" = 261 { t #1 #2 substring$ "--" = not 262 { "--" * 263 t #2 global.max$ substring$ 't := 264 } 265 { { t #1 #1 substring$ "-" = } 266 { "-" * 267 t #2 global.max$ substring$ 't := 268 } 269 while$ 270 } 271 if$ 272 } 273 { t #1 #1 substring$ * 274 t #2 global.max$ substring$ 't := 275 } 276 if$ 277 } 278 while$ 279 } 280 281 FUNCTION {format.date} 282 { year empty$ 283 { month empty$ 284 { "" } 285 { "there's a month but no year in " cite$ * warning$ 286 month 287 } 288 if$ 289 } 290 { month empty$ 291 'year 292 { month " " * year * } 293 if$ 294 } 295 if$ 296 } 297 298 FUNCTION {format.btitle} 299 { title emphasize 300 } 301 302 FUNCTION {tie.or.space.connect} 303 { duplicate$ text.length$ #3 < 304 { "~" } 305 { " " } 306 if$ 307 swap$ * * 308 } 309 310 FUNCTION {either.or.check} 311 { empty$ 312 'pop$ 313 { "can't use both " swap$ * " fields in " * cite$ * warning$ } 314 if$ 315 } 316 317 FUNCTION {format.bvolume} 318 { volume empty$ 319 { "" } 320 { "volume" volume tie.or.space.connect 321 series empty$ 322 'skip$ 323 { " of " * series emphasize * } 324 if$ 325 "volume and number" number either.or.check 326 } 327 if$ 328 } 329 330 FUNCTION {format.number.series} 331 { volume empty$ 332 { number empty$ 333 { series field.or.null } 334 { output.state mid.sentence = 335 { "number" } 336 { "Number" } 337 if$ 338 number tie.or.space.connect 339 series empty$ 340 { "there's a number but no series in " cite$ * warning$ } 341 { " in " * series * } 342 if$ 343 } 344 if$ 345 } 346 { "" } 347 if$ 348 } 349 350 FUNCTION {format.edition} 351 { edition empty$ 352 { "" } 353 { output.state mid.sentence = 354 { edition "l" change.case$ " edition" * } 355 { edition "t" change.case$ " edition" * } 356 if$ 357 } 358 if$ 359 } 360 361 INTEGERS { multiresult } 362 363 FUNCTION {multi.page.check} 364 { 't := 365 #0 'multiresult := 366 { multiresult not 367 t empty$ not 368 and 369 } 370 { t #1 #1 substring$ 371 duplicate$ "-" = 372 swap$ duplicate$ "," = 373 swap$ "+" = 374 or or 375 { #1 'multiresult := } 376 { t #2 global.max$ substring$ 't := } 377 if$ 378 } 379 while$ 380 multiresult 381 } 382 383 FUNCTION {format.pages} 384 { pages empty$ 385 { "" } 386 { pages multi.page.check 387 { "pages" pages n.dashify tie.or.space.connect } 388 { "page" pages tie.or.space.connect } 389 if$ 390 } 391 if$ 392 } 393 394 FUNCTION {format.vol.num.pages} 395 { volume field.or.null 396 number empty$ 397 'skip$ 398 { "(" number * ")" * * 399 volume empty$ 400 { "there's a number but no volume in " cite$ * warning$ } 401 'skip$ 402 if$ 403 } 404 if$ 405 pages empty$ 406 'skip$ 407 { duplicate$ empty$ 408 { pop$ format.pages } 409 { ":" * pages n.dashify * } 410 if$ 411 } 412 if$ 413 } 414 415 FUNCTION {format.chapter.pages} 416 { chapter empty$ 417 'format.pages 418 { type empty$ 419 { "chapter" } 420 { type "l" change.case$ } 421 if$ 422 chapter tie.or.space.connect 423 pages empty$ 424 'skip$ 425 { ", " * format.pages * } 426 if$ 427 } 428 if$ 429 } 430 431 FUNCTION {format.in.ed.booktitle} 432 { booktitle empty$ 433 { "" } 434 { editor empty$ 435 { "In " booktitle emphasize * } 436 { "In " format.editors * ", " * booktitle emphasize * } 437 if$ 438 } 439 if$ 440 } 441 442 FUNCTION {empty.misc.check} 443 444 { author empty$ title empty$ howpublished empty$ 445 month empty$ year empty$ note empty$ 446 and and and and and 447 key empty$ not and 448 { "all relevant fields are empty in " cite$ * warning$ } 449 'skip$ 450 if$ 451 } 452 453 FUNCTION {format.thesis.type} 454 { type empty$ 455 'skip$ 456 { pop$ 457 type "t" change.case$ 458 } 459 if$ 460 } 461 462 FUNCTION {format.tr.number} 463 { type empty$ 464 { "Technical Report" } 465 'type 466 if$ 467 number empty$ 468 { "t" change.case$ } 469 { number tie.or.space.connect } 470 if$ 471 } 472 473 FUNCTION {format.article.crossref} 474 { key empty$ 475 { journal empty$ 476 { "need key or journal for " cite$ * " to crossref " * crossref * 477 warning$ 478 "" 479 } 480 { "In {\em " journal * "\/}" * } 481 if$ 482 } 483 { "In " key * } 484 if$ 485 " \cite{" * crossref * "}" * 486 } 487 488 FUNCTION {format.crossref.editor} 489 { editor #1 "{vv~}{ll}" format.name$ 490 editor num.names$ duplicate$ 491 #2 > 492 { pop$ " et~al." * } 493 { #2 < 494 'skip$ 495 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 496 { " et~al." * } 497 { " and " * editor #2 "{vv~}{ll}" format.name$ * } 498 if$ 499 } 500 if$ 501 } 502 if$ 503 } 504 505 FUNCTION {format.book.crossref} 506 { volume empty$ 507 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 508 "In " 509 } 510 { "Volume" volume tie.or.space.connect 511 " of " * 512 } 513 if$ 514 editor empty$ 515 editor field.or.null author field.or.null = 516 or 517 { key empty$ 518 { series empty$ 519 { "need editor, key, or series for " cite$ * " to crossref " * 520 crossref * warning$ 521 "" * 522 } 523 { "{\em " * series * "\/}" * } 524 if$ 525 } 526 { key * } 527 if$ 528 } 529 { format.crossref.editor * } 530 if$ 531 " \cite{" * crossref * "}" * 532 } 533 534 FUNCTION {format.incoll.inproc.crossref} 535 { editor empty$ 536 editor field.or.null author field.or.null = 537 or 538 { key empty$ 539 { booktitle empty$ 540 { "need editor, key, or booktitle for " cite$ * " to crossref " * 541 crossref * warning$ 542 "" 543 } 544 { "In {\em " booktitle * "\/}" * } 545 if$ 546 } 547 { "In " key * } 548 if$ 549 } 550 { "In " format.crossref.editor * } 551 if$ 552 " \cite{" * crossref * "}" * 553 } 554 555 FUNCTION {article} 556 { output.bibitem 557 format.authors "author" output.check 558 new.block 559 format.title "title" output.check 560 new.block 561 crossref missing$ 562 { journal emphasize "journal" output.check 563 format.vol.num.pages output 564 format.date "year" output.check 565 } 566 { format.article.crossref output.nonnull 567 format.pages output 568 } 569 if$ 570 new.block 571 note output 572 fin.entry 573 } 574 575 FUNCTION {book} 576 { output.bibitem 577 author empty$ 578 { format.editors "author and editor" output.check } 579 { format.authors output.nonnull 580 crossref missing$ 581 { "author and editor" editor either.or.check } 582 'skip$ 583 if$ 584 } 585 if$ 586 new.block 587 format.btitle "title" output.check 588 crossref missing$ 589 { format.bvolume output 590 new.block 591 format.number.series output 592 new.sentence 593 publisher "publisher" output.check 594 address output 595 } 596 { new.block 597 format.book.crossref output.nonnull 598 } 599 if$ 600 format.edition output 601 format.date "year" output.check 602 new.block 603 note output 604 fin.entry 605 } 606 607 FUNCTION {booklet} 608 { output.bibitem 609 format.authors output 610 new.block 611 format.title "title" output.check 612 howpublished address new.block.checkb 613 howpublished output 614 address output 615 format.date output 616 new.block 617 note output 618 fin.entry 619 } 620 621 FUNCTION {inbook} 622 { output.bibitem 623 author empty$ 624 { format.editors "author and editor" output.check } 625 { format.authors output.nonnull 626 627 crossref missing$ 628 { "author and editor" editor either.or.check } 629 'skip$ 630 if$ 631 } 632 if$ 633 new.block 634 format.btitle "title" output.check 635 crossref missing$ 636 { format.bvolume output 637 format.chapter.pages "chapter and pages" output.check 638 new.block 639 format.number.series output 640 new.sentence 641 publisher "publisher" output.check 642 address output 643 } 644 { format.chapter.pages "chapter and pages" output.check 645 new.block 646 format.book.crossref output.nonnull 647 } 648 if$ 649 format.edition output 650 format.date "year" output.check 651 new.block 652 note output 653 fin.entry 654 } 655 656 FUNCTION {incollection} 657 { output.bibitem 658 format.authors "author" output.check 659 new.block 660 format.title "title" output.check 661 new.block 662 crossref missing$ 663 { format.in.ed.booktitle "booktitle" output.check 664 format.bvolume output 665 format.number.series output 666 format.chapter.pages output 667 new.sentence 668 publisher "publisher" output.check 669 address output 670 format.edition output 671 format.date "year" output.check 672 } 673 { format.incoll.inproc.crossref output.nonnull 674 format.chapter.pages output 675 } 676 if$ 677 new.block 678 note output 679 fin.entry 680 } 681 682 FUNCTION {inproceedings} 683 { output.bibitem 684 format.authors "author" output.check 685 new.block 686 format.title "title" output.check 687 new.block 688 crossref missing$ 689 { format.in.ed.booktitle "booktitle" output.check 690 format.bvolume output 691 format.number.series output 692 format.pages output 693 address empty$ 694 { organization publisher new.sentence.checkb 695 organization output 696 publisher output 697 format.date "year" output.check 698 } 699 { address output.nonnull 700 format.date "year" output.check 701 new.sentence 702 organization output 703 publisher output 704 } 705 if$ 706 } 707 { format.incoll.inproc.crossref output.nonnull 708 format.pages output 709 } 710 if$ 711 new.block 712 note output 713 fin.entry 714 } 715 716 FUNCTION {conference} { inproceedings } 717 718 FUNCTION {manual} 719 { output.bibitem 720 author empty$ 721 { organization empty$ 722 'skip$ 723 { organization output.nonnull 724 address output 725 } 726 if$ 727 } 728 { format.authors output.nonnull } 729 if$ 730 new.block 731 format.btitle "title" output.check 732 author empty$ 733 { organization empty$ 734 { address new.block.checka 735 address output 736 } 737 'skip$ 738 if$ 739 } 740 { organization address new.block.checkb 741 organization output 742 address output 743 } 744 if$ 745 format.edition output 746 format.date output 747 new.block 748 note output 749 fin.entry 750 } 751 752 FUNCTION {mastersthesis} 753 { output.bibitem 754 format.authors "author" output.check 755 new.block 756 format.title "title" output.check 757 new.block 758 "Master's thesis" format.thesis.type output.nonnull 759 school "school" output.check 760 address output 761 format.date "year" output.check 762 new.block 763 note output 764 fin.entry 765 } 766 767 FUNCTION {misc} 768 { output.bibitem 769 format.authors output 770 title howpublished new.block.checkb 771 format.title output 772 howpublished new.block.checka 773 howpublished output 774 format.date output 775 new.block 776 note output 777 fin.entry 778 empty.misc.check 779 } 780 781 FUNCTION {phdthesis} 782 { output.bibitem 783 format.authors "author" output.check 784 new.block 785 format.btitle "title" output.check 786 new.block 787 "PhD thesis" format.thesis.type output.nonnull 788 school "school" output.check 789 address output 790 format.date "year" output.check 791 new.block 792 note output 793 fin.entry 794 } 795 796 FUNCTION {proceedings} 797 { output.bibitem 798 editor empty$ 799 { organization output } 800 { format.editors output.nonnull } 801 802 if$ 803 new.block 804 format.btitle "title" output.check 805 format.bvolume output 806 format.number.series output 807 address empty$ 808 { editor empty$ 809 { publisher new.sentence.checka } 810 { organization publisher new.sentence.checkb 811 organization output 812 } 813 if$ 814 publisher output 815 format.date "year" output.check 816 } 817 { address output.nonnull 818 format.date "year" output.check 819 new.sentence 820 editor empty$ 821 'skip$ 822 { organization output } 823 if$ 824 publisher output 825 } 826 if$ 827 new.block 828 note output 829 fin.entry 830 } 831 832 FUNCTION {techreport} 833 { output.bibitem 834 format.authors "author" output.check 835 new.block 836 format.title "title" output.check 837 new.block 838 format.tr.number output.nonnull 839 institution "institution" output.check 840 address output 841 format.date "year" output.check 842 new.block 843 note output 844 fin.entry 845 } 846 847 FUNCTION {unpublished} 848 { output.bibitem 849 format.authors "author" output.check 850 new.block 851 format.title "title" output.check 852 new.block 853 note "note" output.check 854 format.date output 855 fin.entry 856 } 857 858 FUNCTION {default.type} { misc } 859 860 MACRO {jan} {"Jan."} 861 862 MACRO {feb} {"Feb."} 863 864 MACRO {mar} {"Mar."} 865 866 MACRO {apr} {"Apr."} 867 868 MACRO {may} {"May"} 869 870 MACRO {jun} {"June"} 871 872 MACRO {jul} {"July"} 873 874 MACRO {aug} {"Aug."} 875 876 MACRO {sep} {"Sept."} 877 878 MACRO {oct} {"Oct."} 879 880 MACRO {nov} {"Nov."} 881 882 MACRO {dec} {"Dec."} 883 884 MACRO {acmcs} {"ACM Comput. Surv."} 885 886 MACRO {acta} {"Acta Inf."} 887 888 MACRO {cacm} {"Commun. ACM"} 889 890 MACRO {ibmjrd} {"IBM J. Res. Dev."} 891 892 MACRO {ibmsj} {"IBM Syst.~J."} 893 894 MACRO {ieeese} {"IEEE Trans. Softw. Eng."} 895 896 MACRO {ieeetc} {"IEEE Trans. Comput."} 897 898 MACRO {ieeetcad} 899 {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} 900 901 MACRO {ipl} {"Inf. Process. Lett."} 902 903 MACRO {jacm} {"J.~ACM"} 904 905 MACRO {jcss} {"J.~Comput. Syst. Sci."} 906 907 MACRO {scp} {"Sci. Comput. Programming"} 908 909 MACRO {sicomp} {"SIAM J. Comput."} 910 911 MACRO {tocs} {"ACM Trans. Comput. Syst."} 912 913 MACRO {tods} {"ACM Trans. Database Syst."} 914 915 MACRO {tog} {"ACM Trans. Gr."} 916 917 MACRO {toms} {"ACM Trans. Math. Softw."} 918 919 MACRO {toois} {"ACM Trans. Office Inf. Syst."} 920 921 MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} 922 923 MACRO {tcs} {"Theoretical Comput. Sci."} 924 925 READ 926 927 FUNCTION {sortify} 928 { purify$ 929 "l" change.case$ 930 } 931 932 INTEGERS { len } 933 934 FUNCTION {chop.word} 935 { 's := 936 'len := 937 s #1 len substring$ = 938 { s len #1 + global.max$ substring$ } 939 's 940 if$ 941 } 942 943 FUNCTION {sort.format.names} 944 { 's := 945 #1 'nameptr := 946 "" 947 s num.names$ 'numnames := 948 numnames 'namesleft := 949 { namesleft #0 > } 950 { nameptr #1 > 951 { " " * } 952 'skip$ 953 if$ 954 s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := 955 nameptr numnames = t "others" = and 956 { "et al" * } 957 { t sortify * } 958 if$ 959 nameptr #1 + 'nameptr := 960 namesleft #1 - 'namesleft := 961 } 962 while$ 963 } 964 965 FUNCTION {sort.format.title} 966 { 't := 967 "A " #2 968 "An " #3 969 "The " #4 t chop.word 970 chop.word 971 chop.word 972 sortify 973 #1 global.max$ substring$ 974 } 975 976 FUNCTION {author.sort} 977 { author empty$ 978 { key empty$ 979 { "to sort, need author or key in " cite$ * warning$ 980 "" 981 } 982 { key sortify } 983 if$ 984 } 985 { author sort.format.names } 986 if$ 987 } 988 989 FUNCTION {author.editor.sort} 990 { author empty$ 991 { editor empty$ 992 { key empty$ 993 { "to sort, need author, editor, or key in " cite$ * warning$ 994 "" 995 } 996 { key sortify } 997 if$ 998 } 999 { editor sort.format.names } 1000 if$ 1001 } 1002 { author sort.format.names } 1003 if$ 1004 } 1005 1006 FUNCTION {author.organization.sort} 1007 { author empty$ 1008 1009 { organization empty$ 1010 { key empty$ 1011 { "to sort, need author, organization, or key in " cite$ * warning$ 1012 "" 1013 } 1014 { key sortify } 1015 if$ 1016 } 1017 { "The " #4 organization chop.word sortify } 1018 if$ 1019 } 1020 { author sort.format.names } 1021 if$ 1022 } 1023 1024 FUNCTION {editor.organization.sort} 1025 { editor empty$ 1026 { organization empty$ 1027 { key empty$ 1028 { "to sort, need editor, organization, or key in " cite$ * warning$ 1029 "" 1030 } 1031 { key sortify } 1032 if$ 1033 } 1034 { "The " #4 organization chop.word sortify } 1035 if$ 1036 } 1037 { editor sort.format.names } 1038 if$ 1039 } 1040 1041 FUNCTION {presort} 1042 { type$ "book" = 1043 type$ "inbook" = 1044 or 1045 'author.editor.sort 1046 { type$ "proceedings" = 1047 'editor.organization.sort 1048 { type$ "manual" = 1049 'author.organization.sort 1050 'author.sort 1051 if$ 1052 } 1053 if$ 1054 } 1055 if$ 1056 " " 1057 * 1058 year field.or.null sortify 1059 * 1060 " " 1061 * 1062 title field.or.null 1063 sort.format.title 1064 * 1065 #1 entry.max$ substring$ 1066 'sort.key$ := 1067 } 1068 1069 ITERATE {presort} 1070 1071 SORT 1072 1073 STRINGS { longest.label } 1074 1075 INTEGERS { number.label longest.label.width } 1076 1077 FUNCTION {initialize.longest.label} 1078 { "" 'longest.label := 1079 #1 'number.label := 1080 #0 'longest.label.width := 1081 } 1082 1083 FUNCTION {longest.label.pass} 1084 { number.label int.to.str$ 'label := 1085 number.label #1 + 'number.label := 1086 label width$ longest.label.width > 1087 { label 'longest.label := 1088 label width$ 'longest.label.width := 1089 } 1090 'skip$ 1091 if$ 1092 } 1093 1094 EXECUTE {initialize.longest.label} 1095 1096 ITERATE {longest.label.pass} 1097 1098 FUNCTION {begin.bib} 1099 { preamble$ empty$ 1100 'skip$ 1101 { preamble$ write$ newline$ } 1102 if$ 1103 "\begin{thebibliography}{" longest.label * 1104 "}\setlength{\itemsep}{-1ex}\small" * write$ newline$ 1105 } 1106 1107 EXECUTE {begin.bib} 1108 1109 EXECUTE {init.state.consts} 1110 1111 ITERATE {call.type$} 1112 1113 FUNCTION {end.bib} 1114 { newline$ 1115 "\end{thebibliography}" write$ newline$ 1116 } 1117 1118 EXECUTE {end.bib} 1119 1120 % end of file latex8.bst 1121 % --------------------------------------------------------------- 1122 1123 1124