templates/iclr2026/iclr2026_conference.bst
templates/iclr2026/iclr2026_conference.bstBrowse 56 files
7,431 tokens
26,973 bytes
Token encoding: o200k_base
Snapshot 24fd22b
← Back to SKILL.md
1%% File: `iclr2024.bst'2%% A copy of iclm2010.bst, which is a modification of `plainnl.bst' for use with natbib package 3%%4%% Copyright 2010 Hal Daum\'e III5%% Modified by J. Fürnkranz6%% - Changed labels from (X and Y, 2000) to (X & Y, 2000)7%%8%% Copyright 1993-2007 Patrick W Daly9%% Max-Planck-Institut f\"ur Sonnensystemforschung10%% Max-Planck-Str. 211%% D-37191 Katlenburg-Lindau12%% Germany13%% E-mail: daly@mps.mpg.de14%%15%% This program can be redistributed and/or modified under the terms16%% of the LaTeX Project Public License Distributed from CTAN17%% archives in directory macros/latex/base/lppl.txt; either18%% version 1 of the License, or any later version.19%%20 % Version and source file information:21 % \ProvidesFile{icml2010.mbs}[2007/11/26 1.93 (PWD)]22 %23 % BibTeX `plainnat' family24 % version 0.99b for BibTeX versions 0.99a or later,25 % for LaTeX versions 2.09 and 2e.26 %27 % For use with the `natbib.sty' package; emulates the corresponding28 % member of the `plain' family, but with author-year citations.29 %30 % With version 6.0 of `natbib.sty', it may also be used for numerical31 % citations, while retaining the commands \citeauthor, \citefullauthor,32 % and \citeyear to print the corresponding information.33 %34 % For version 7.0 of `natbib.sty', the KEY field replaces missing35 % authors/editors, and the date is left blank in \bibitem.36 %37 % Includes field EID for the sequence/citation number of electronic journals38 % which is used instead of page numbers.39 %40 % Includes fields ISBN and ISSN.41 %42 % Includes field URL for Internet addresses.43 %44 % Includes field DOI for Digital Object Idenfifiers.45 %46 % Works best with the url.sty package of Donald Arseneau.47 %48 % Works with identical authors and year are further sorted by49 % citation key, to preserve any natural sequence.50 %51ENTRY52 { address53 author54 booktitle55 chapter56 doi57 eid58 edition59 editor60 howpublished61 institution62 isbn63 issn64 journal65 key66 month67 note68 number69 organization70 pages71 publisher72 school73 series74 title75 type76 url77 volume78 year79 }80 {}81 { label extra.label sort.label short.list }82 83INTEGERS { output.state before.all mid.sentence after.sentence after.block }84 85FUNCTION {init.state.consts}86{ #0 'before.all :=87 #1 'mid.sentence :=88 #2 'after.sentence :=89 #3 'after.block :=90}91 92STRINGS { s t }93 94FUNCTION {output.nonnull}95{ 's :=96 output.state mid.sentence =97 { ", " * write$ }98 { output.state after.block =99 { add.period$ write$100 newline$101 "\newblock " write$102 }103 { output.state before.all =104 'write$105 { add.period$ " " * write$ }106 if$107 }108 if$109 mid.sentence 'output.state :=110 }111 if$112 s113}114 115FUNCTION {output}116{ duplicate$ empty$117 'pop$118 'output.nonnull119 if$120}121 122FUNCTION {output.check}123{ 't :=124 duplicate$ empty$125 { pop$ "empty " t * " in " * cite$ * warning$ }126 'output.nonnull127 if$128}129 130FUNCTION {fin.entry}131{ add.period$132 write$133 newline$134}135 136FUNCTION {new.block}137{ output.state before.all =138 'skip$139 { after.block 'output.state := }140 if$141}142 143FUNCTION {new.sentence}144{ output.state after.block =145 'skip$146 { output.state before.all =147 'skip$148 { after.sentence 'output.state := }149 if$150 }151 if$152}153 154FUNCTION {not}155{ { #0 }156 { #1 }157 if$158}159 160FUNCTION {and}161{ 'skip$162 { pop$ #0 }163 if$164}165 166FUNCTION {or}167{ { pop$ #1 }168 'skip$169 if$170}171 172FUNCTION {new.block.checka}173{ empty$174 'skip$175 'new.block176 if$177}178 179FUNCTION {new.block.checkb}180{ empty$181 swap$ empty$182 and183 'skip$184 'new.block185 if$186}187 188FUNCTION {new.sentence.checka}189{ empty$190 'skip$191 'new.sentence192 if$193}194 195FUNCTION {new.sentence.checkb}196{ empty$197 swap$ empty$198 and199 'skip$200 'new.sentence201 if$202}203 204FUNCTION {field.or.null}205{ duplicate$ empty$206 { pop$ "" }207 'skip$208 if$209}210 211FUNCTION {emphasize}212{ duplicate$ empty$213 { pop$ "" }214 { "\emph{" swap$ * "}" * }215 if$216}217 218INTEGERS { nameptr namesleft numnames }219 220FUNCTION {format.names}221{ 's :=222 #1 'nameptr :=223 s num.names$ 'numnames :=224 numnames 'namesleft :=225 { namesleft #0 > }226 { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=227 nameptr #1 >228 { namesleft #1 >229 { ", " * t * }230 { numnames #2 >231 { "," * }232 'skip$233 if$234 t "others" =235 { " et~al." * }236 { " and " * t * }237 if$238 }239 if$240 }241 't242 if$243 nameptr #1 + 'nameptr :=244 namesleft #1 - 'namesleft :=245 }246 while$247}248 249FUNCTION {format.key}250{ empty$251 { key field.or.null }252 { "" }253 if$254}255 256FUNCTION {format.authors}257{ author empty$258 { "" }259 { author format.names }260 if$261}262 263FUNCTION {format.editors}264{ editor empty$265 { "" }266 { editor format.names267 editor num.names$ #1 >268 { " (eds.)" * }269 { " (ed.)" * }270 if$271 }272 if$273}274 275FUNCTION {format.isbn}276{ isbn empty$277 { "" }278 { new.block "ISBN " isbn * }279 if$280}281 282FUNCTION {format.issn}283{ issn empty$284 { "" }285 { new.block "ISSN " issn * }286 if$287}288 289FUNCTION {format.url}290{ url empty$291 { "" }292 { new.block "URL \url{" url * "}" * }293 if$294}295 296FUNCTION {format.doi}297{ doi empty$298 { "" }299 { new.block "\doi{" doi * "}" * }300 if$301}302 303FUNCTION {format.title}304{ title empty$305 { "" }306 { title "t" change.case$ }307 if$308}309 310FUNCTION {format.full.names}311{'s :=312 #1 'nameptr :=313 s num.names$ 'numnames :=314 numnames 'namesleft :=315 { namesleft #0 > }316 { s nameptr317 "{vv~}{ll}" format.name$ 't :=318 nameptr #1 >319 {320 namesleft #1 >321 { ", " * t * }322 {323 numnames #2 >324 { "," * }325 'skip$326 if$327 t "others" =328 { " et~al." * }329 { " and " * t * }330 if$331 }332 if$333 }334 't335 if$336 nameptr #1 + 'nameptr :=337 namesleft #1 - 'namesleft :=338 }339 while$340}341 342FUNCTION {author.editor.full}343{ author empty$344 { editor empty$345 { "" }346 { editor format.full.names }347 if$348 }349 { author format.full.names }350 if$351}352 353FUNCTION {author.full}354{ author empty$355 { "" }356 { author format.full.names }357 if$358}359 360FUNCTION {editor.full}361{ editor empty$362 { "" }363 { editor format.full.names }364 if$365}366 367FUNCTION {make.full.names}368{ type$ "book" =369 type$ "inbook" =370 or371 'author.editor.full372 { type$ "proceedings" =373 'editor.full374 'author.full375 if$376 }377 if$378}379 380FUNCTION {output.bibitem}381{ newline$382 "\bibitem[" write$383 label write$384 ")" make.full.names duplicate$ short.list =385 { pop$ }386 { * }387 if$388 "]{" * write$389 cite$ write$390 "}" write$391 newline$392 ""393 before.all 'output.state :=394}395 396FUNCTION {n.dashify}397{ 't :=398 ""399 { t empty$ not }400 { t #1 #1 substring$ "-" =401 { t #1 #2 substring$ "--" = not402 { "--" *403 t #2 global.max$ substring$ 't :=404 }405 { { t #1 #1 substring$ "-" = }406 { "-" *407 t #2 global.max$ substring$ 't :=408 }409 while$410 }411 if$412 }413 { t #1 #1 substring$ *414 t #2 global.max$ substring$ 't :=415 }416 if$417 }418 while$419}420 421FUNCTION {format.date}422{ year duplicate$ empty$423 { "empty year in " cite$ * warning$424 pop$ "" }425 'skip$426 if$427 month empty$428 'skip$429 { month430 " " * swap$ *431 }432 if$433 extra.label *434}435 436FUNCTION {format.btitle}437{ title emphasize438}439 440FUNCTION {tie.or.space.connect}441{ duplicate$ text.length$ #3 <442 { "~" }443 { " " }444 if$445 swap$ * *446}447 448FUNCTION {either.or.check}449{ empty$450 'pop$451 { "can't use both " swap$ * " fields in " * cite$ * warning$ }452 if$453}454 455FUNCTION {format.bvolume}456{ volume empty$457 { "" }458 { "volume" volume tie.or.space.connect459 series empty$460 'skip$461 { " of " * series emphasize * }462 if$463 "volume and number" number either.or.check464 }465 if$466}467 468FUNCTION {format.number.series}469{ volume empty$470 { number empty$471 { series field.or.null }472 { output.state mid.sentence =473 { "number" }474 { "Number" }475 if$476 number tie.or.space.connect477 series empty$478 { "there's a number but no series in " cite$ * warning$ }479 { " in " * series * }480 if$481 }482 if$483 }484 { "" }485 if$486}487 488FUNCTION {format.edition}489{ edition empty$490 { "" }491 { output.state mid.sentence =492 { edition "l" change.case$ " edition" * }493 { edition "t" change.case$ " edition" * }494 if$495 }496 if$497}498 499INTEGERS { multiresult }500 501FUNCTION {multi.page.check}502{ 't :=503 #0 'multiresult :=504 { multiresult not505 t empty$ not506 and507 }508 { t #1 #1 substring$509 duplicate$ "-" =510 swap$ duplicate$ "," =511 swap$ "+" =512 or or513 { #1 'multiresult := }514 { t #2 global.max$ substring$ 't := }515 if$516 }517 while$518 multiresult519}520 521FUNCTION {format.pages}522{ pages empty$523 { "" }524 { pages multi.page.check525 { "pp.\ " pages n.dashify tie.or.space.connect }526 { "pp.\ " pages tie.or.space.connect }527 if$528 }529 if$530}531 532FUNCTION {format.eid}533{ eid empty$534 { "" }535 { "art." eid tie.or.space.connect }536 if$537}538 539FUNCTION {format.vol.num.pages}540{ volume field.or.null541 number empty$542 'skip$543 { "\penalty0 (" number * ")" * *544 volume empty$545 { "there's a number but no volume in " cite$ * warning$ }546 'skip$547 if$548 }549 if$550 pages empty$551 'skip$552 { duplicate$ empty$553 { pop$ format.pages }554 { ":\penalty0 " * pages n.dashify * }555 if$556 }557 if$558}559 560FUNCTION {format.vol.num.eid}561{ volume field.or.null562 number empty$563 'skip$564 { "\penalty0 (" number * ")" * *565 volume empty$566 { "there's a number but no volume in " cite$ * warning$ }567 'skip$568 if$569 }570 if$571 eid empty$572 'skip$573 { duplicate$ empty$574 { pop$ format.eid }575 { ":\penalty0 " * eid * }576 if$577 }578 if$579}580 581FUNCTION {format.chapter.pages}582{ chapter empty$583 'format.pages584 { type empty$585 { "chapter" }586 { type "l" change.case$ }587 if$588 chapter tie.or.space.connect589 pages empty$590 'skip$591 { ", " * format.pages * }592 if$593 }594 if$595}596 597FUNCTION {format.in.ed.booktitle}598{ booktitle empty$599 { "" }600 { editor empty$601 { "In " booktitle emphasize * }602 { "In " format.editors * ", " * booktitle emphasize * }603 if$604 }605 if$606}607 608FUNCTION {empty.misc.check}609{ author empty$ title empty$ howpublished empty$610 month empty$ year empty$ note empty$611 and and and and and612 key empty$ not and613 { "all relevant fields are empty in " cite$ * warning$ }614 'skip$615 if$616}617 618FUNCTION {format.thesis.type}619{ type empty$620 'skip$621 { pop$622 type "t" change.case$623 }624 if$625}626 627FUNCTION {format.tr.number}628{ type empty$629 { "Technical Report" }630 'type631 if$632 number empty$633 { "t" change.case$ }634 { number tie.or.space.connect }635 if$636}637 638FUNCTION {format.article.crossref}639{ key empty$640 { journal empty$641 { "need key or journal for " cite$ * " to crossref " * crossref *642 warning$643 ""644 }645 { "In \emph{" journal * "}" * }646 if$647 }648 { "In " }649 if$650 " \citet{" * crossref * "}" *651}652 653FUNCTION {format.book.crossref}654{ volume empty$655 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$656 "In "657 }658 { "Volume" volume tie.or.space.connect659 " of " *660 }661 if$662 editor empty$663 editor field.or.null author field.or.null =664 or665 { key empty$666 { series empty$667 { "need editor, key, or series for " cite$ * " to crossref " *668 crossref * warning$669 "" *670 }671 { "\emph{" * series * "}" * }672 if$673 }674 'skip$675 if$676 }677 'skip$678 if$679 " \citet{" * crossref * "}" *680}681 682FUNCTION {format.incoll.inproc.crossref}683{ editor empty$684 editor field.or.null author field.or.null =685 or686 { key empty$687 { booktitle empty$688 { "need editor, key, or booktitle for " cite$ * " to crossref " *689 crossref * warning$690 ""691 }692 { "In \emph{" booktitle * "}" * }693 if$694 }695 { "In " }696 if$697 }698 { "In " }699 if$700 " \citet{" * crossref * "}" *701}702 703FUNCTION {article}704{ output.bibitem705 format.authors "author" output.check706 author format.key output707 new.block708 format.title "title" output.check709 new.block710 crossref missing$711 { journal emphasize "journal" output.check712 eid empty$713 { format.vol.num.pages output }714 { format.vol.num.eid output }715 if$716 format.date "year" output.check717 }718 { format.article.crossref output.nonnull719 eid empty$720 { format.pages output }721 { format.eid output }722 if$723 }724 if$725 format.issn output726 format.doi output727 format.url output728 new.block729 note output730 fin.entry731}732 733FUNCTION {book}734{ output.bibitem735 author empty$736 { format.editors "author and editor" output.check737 editor format.key output738 }739 { format.authors output.nonnull740 crossref missing$741 { "author and editor" editor either.or.check }742 'skip$743 if$744 }745 if$746 new.block747 format.btitle "title" output.check748 crossref missing$749 { format.bvolume output750 new.block751 format.number.series output752 new.sentence753 publisher "publisher" output.check754 address output755 }756 { new.block757 format.book.crossref output.nonnull758 }759 if$760 format.edition output761 format.date "year" output.check762 format.isbn output763 format.doi output764 format.url output765 new.block766 note output767 fin.entry768}769 770FUNCTION {booklet}771{ output.bibitem772 format.authors output773 author format.key output774 new.block775 format.title "title" output.check776 howpublished address new.block.checkb777 howpublished output778 address output779 format.date output780 format.isbn output781 format.doi output782 format.url output783 new.block784 note output785 fin.entry786}787 788FUNCTION {inbook}789{ output.bibitem790 author empty$791 { format.editors "author and editor" output.check792 editor format.key output793 }794 { format.authors output.nonnull795 crossref missing$796 { "author and editor" editor either.or.check }797 'skip$798 if$799 }800 if$801 new.block802 format.btitle "title" output.check803 crossref missing$804 { format.bvolume output805 format.chapter.pages "chapter and pages" output.check806 new.block807 format.number.series output808 new.sentence809 publisher "publisher" output.check810 address output811 }812 { format.chapter.pages "chapter and pages" output.check813 new.block814 format.book.crossref output.nonnull815 }816 if$817 format.edition output818 format.date "year" output.check819 format.isbn output820 format.doi output821 format.url output822 new.block823 note output824 fin.entry825}826 827FUNCTION {incollection}828{ output.bibitem829 format.authors "author" output.check830 author format.key output831 new.block832 format.title "title" output.check833 new.block834 crossref missing$835 { format.in.ed.booktitle "booktitle" output.check836 format.bvolume output837 format.number.series output838 format.chapter.pages output839 new.sentence840 publisher "publisher" output.check841 address output842 format.edition output843 format.date "year" output.check844 }845 { format.incoll.inproc.crossref output.nonnull846 format.chapter.pages output847 }848 if$849 format.isbn output850 format.doi output851 format.url output852 new.block853 note output854 fin.entry855}856 857FUNCTION {inproceedings}858{ output.bibitem859 format.authors "author" output.check860 author format.key output861 new.block862 format.title "title" output.check863 new.block864 crossref missing$865 { format.in.ed.booktitle "booktitle" output.check866 format.bvolume output867 format.number.series output868 format.pages output869 address empty$870 { organization publisher new.sentence.checkb871 organization output872 publisher output873 format.date "year" output.check874 }875 { address output.nonnull876 format.date "year" output.check877 new.sentence878 organization output879 publisher output880 }881 if$882 }883 { format.incoll.inproc.crossref output.nonnull884 format.pages output885 }886 if$887 format.isbn output888 format.doi output889 format.url output890 new.block891 note output892 fin.entry893}894 895FUNCTION {conference} { inproceedings }896 897FUNCTION {manual}898{ output.bibitem899 format.authors output900 author format.key output901 new.block902 format.btitle "title" output.check903 organization address new.block.checkb904 organization output905 address output906 format.edition output907 format.date output908 format.url output909 new.block910 note output911 fin.entry912}913 914FUNCTION {mastersthesis}915{ output.bibitem916 format.authors "author" output.check917 author format.key output918 new.block919 format.title "title" output.check920 new.block921 "Master's thesis" format.thesis.type output.nonnull922 school "school" output.check923 address output924 format.date "year" output.check925 format.url output926 new.block927 note output928 fin.entry929}930 931FUNCTION {misc}932{ output.bibitem933 format.authors output934 author format.key output935 title howpublished new.block.checkb936 format.title output937 howpublished new.block.checka938 howpublished output939 format.date output940 format.issn output941 format.url output942 new.block943 note output944 fin.entry945 empty.misc.check946}947 948FUNCTION {phdthesis}949{ output.bibitem950 format.authors "author" output.check951 author format.key output952 new.block953 format.btitle "title" output.check954 new.block955 "PhD thesis" format.thesis.type output.nonnull956 school "school" output.check957 address output958 format.date "year" output.check959 format.url output960 new.block961 note output962 fin.entry963}964 965FUNCTION {proceedings}966{ output.bibitem967 format.editors output968 editor format.key output969 new.block970 format.btitle "title" output.check971 format.bvolume output972 format.number.series output973 address output974 format.date "year" output.check975 new.sentence976 organization output977 publisher output978 format.isbn output979 format.doi output980 format.url output981 new.block982 note output983 fin.entry984}985 986FUNCTION {techreport}987{ output.bibitem988 format.authors "author" output.check989 author format.key output990 new.block991 format.title "title" output.check992 new.block993 format.tr.number output.nonnull994 institution "institution" output.check995 address output996 format.date "year" output.check997 format.url output998 new.block999 note output1000 fin.entry1001}1002 1003FUNCTION {unpublished}1004{ output.bibitem1005 format.authors "author" output.check1006 author format.key output1007 new.block1008 format.title "title" output.check1009 new.block1010 note "note" output.check1011 format.date output1012 format.url output1013 fin.entry1014}1015 1016FUNCTION {default.type} { misc }1017 1018 1019MACRO {jan} {"January"}1020 1021MACRO {feb} {"February"}1022 1023MACRO {mar} {"March"}1024 1025MACRO {apr} {"April"}1026 1027MACRO {may} {"May"}1028 1029MACRO {jun} {"June"}1030 1031MACRO {jul} {"July"}1032 1033MACRO {aug} {"August"}1034 1035MACRO {sep} {"September"}1036 1037MACRO {oct} {"October"}1038 1039MACRO {nov} {"November"}1040 1041MACRO {dec} {"December"}1042 1043 1044 1045MACRO {acmcs} {"ACM Computing Surveys"}1046 1047MACRO {acta} {"Acta Informatica"}1048 1049MACRO {cacm} {"Communications of the ACM"}1050 1051MACRO {ibmjrd} {"IBM Journal of Research and Development"}1052 1053MACRO {ibmsj} {"IBM Systems Journal"}1054 1055MACRO {ieeese} {"IEEE Transactions on Software Engineering"}1056 1057MACRO {ieeetc} {"IEEE Transactions on Computers"}1058 1059MACRO {ieeetcad}1060 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}1061 1062MACRO {ipl} {"Information Processing Letters"}1063 1064MACRO {jacm} {"Journal of the ACM"}1065 1066MACRO {jcss} {"Journal of Computer and System Sciences"}1067 1068MACRO {scp} {"Science of Computer Programming"}1069 1070MACRO {sicomp} {"SIAM Journal on Computing"}1071 1072MACRO {tocs} {"ACM Transactions on Computer Systems"}1073 1074MACRO {tods} {"ACM Transactions on Database Systems"}1075 1076MACRO {tog} {"ACM Transactions on Graphics"}1077 1078MACRO {toms} {"ACM Transactions on Mathematical Software"}1079 1080MACRO {toois} {"ACM Transactions on Office Information Systems"}1081 1082MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}1083 1084MACRO {tcs} {"Theoretical Computer Science"}1085 1086 1087READ1088 1089FUNCTION {sortify}1090{ purify$1091 "l" change.case$1092}1093 1094INTEGERS { len }1095 1096FUNCTION {chop.word}1097{ 's :=1098 'len :=1099 s #1 len substring$ =1100 { s len #1 + global.max$ substring$ }1101 's1102 if$1103}1104 1105FUNCTION {format.lab.names}1106{ 's :=1107 s #1 "{vv~}{ll}" format.name$1108 s num.names$ duplicate$1109 #2 >1110 { pop$ " et~al." * }1111 { #2 <1112 'skip$1113 { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =1114 { " et~al." * }1115 { " \& " * s #2 "{vv~}{ll}" format.name$ * }1116 if$1117 }1118 if$1119 }1120 if$1121}1122 1123FUNCTION {author.key.label}1124{ author empty$1125 { key empty$1126 { cite$ #1 #3 substring$ }1127 'key1128 if$1129 }1130 { author format.lab.names }1131 if$1132}1133 1134FUNCTION {author.editor.key.label}1135{ author empty$1136 { editor empty$1137 { key empty$1138 { cite$ #1 #3 substring$ }1139 'key1140 if$1141 }1142 { editor format.lab.names }1143 if$1144 }1145 { author format.lab.names }1146 if$1147}1148 1149FUNCTION {author.key.organization.label}1150{ author empty$1151 { key empty$1152 { organization empty$1153 { cite$ #1 #3 substring$ }1154 { "The " #4 organization chop.word #3 text.prefix$ }1155 if$1156 }1157 'key1158 if$1159 }1160 { author format.lab.names }1161 if$1162}1163 1164FUNCTION {editor.key.organization.label}1165{ editor empty$1166 { key empty$1167 { organization empty$1168 { cite$ #1 #3 substring$ }1169 { "The " #4 organization chop.word #3 text.prefix$ }1170 if$1171 }1172 'key1173 if$1174 }1175 { editor format.lab.names }1176 if$1177}1178 1179FUNCTION {calc.short.authors}1180{ type$ "book" =1181 type$ "inbook" =1182 or1183 'author.editor.key.label1184 { type$ "proceedings" =1185 'editor.key.organization.label1186 { type$ "manual" =1187 'author.key.organization.label1188 'author.key.label1189 if$1190 }1191 if$1192 }1193 if$1194 'short.list :=1195}1196 1197FUNCTION {calc.label}1198{ calc.short.authors1199 short.list1200 "("1201 *1202 year duplicate$ empty$1203 short.list key field.or.null = or1204 { pop$ "" }1205 'skip$1206 if$1207 *1208 'label :=1209}1210 1211FUNCTION {sort.format.names}1212{ 's :=1213 #1 'nameptr :=1214 ""1215 s num.names$ 'numnames :=1216 numnames 'namesleft :=1217 { namesleft #0 > }1218 {1219 s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=1220 nameptr #1 >1221 {1222 " " *1223 namesleft #1 = t "others" = and1224 { "zzzzz" * }1225 { numnames #2 > nameptr #2 = and1226 { "zz" * year field.or.null * " " * }1227 'skip$1228 if$1229 t sortify *1230 }1231 if$1232 }1233 { t sortify * }1234 if$1235 nameptr #1 + 'nameptr :=1236 namesleft #1 - 'namesleft :=1237 }1238 while$1239}1240 1241FUNCTION {sort.format.title}1242{ 't :=1243 "A " #21244 "An " #31245 "The " #4 t chop.word1246 chop.word1247 chop.word1248 sortify1249 #1 global.max$ substring$1250}1251 1252FUNCTION {author.sort}1253{ author empty$1254 { key empty$1255 { "to sort, need author or key in " cite$ * warning$1256 ""1257 }1258 { key sortify }1259 if$1260 }1261 { author sort.format.names }1262 if$1263}1264 1265FUNCTION {author.editor.sort}1266{ author empty$1267 { editor empty$1268 { key empty$1269 { "to sort, need author, editor, or key in " cite$ * warning$1270 ""1271 }1272 { key sortify }1273 if$1274 }1275 { editor sort.format.names }1276 if$1277 }1278 { author sort.format.names }1279 if$1280}1281 1282FUNCTION {author.organization.sort}1283{ author empty$1284 { organization empty$1285 { key empty$1286 { "to sort, need author, organization, or key in " cite$ * warning$1287 ""1288 }1289 { key sortify }1290 if$1291 }1292 { "The " #4 organization chop.word sortify }1293 if$1294 }1295 { author sort.format.names }1296 if$1297}1298 1299FUNCTION {editor.organization.sort}1300{ editor empty$1301 { organization empty$1302 { key empty$1303 { "to sort, need editor, organization, or key in " cite$ * warning$1304 ""1305 }1306 { key sortify }1307 if$1308 }1309 { "The " #4 organization chop.word sortify }1310 if$1311 }1312 { editor sort.format.names }1313 if$1314}1315 1316 1317FUNCTION {presort}1318{ calc.label1319 label sortify1320 " "1321 *1322 type$ "book" =1323 type$ "inbook" =1324 or1325 'author.editor.sort1326 { type$ "proceedings" =1327 'editor.organization.sort1328 { type$ "manual" =1329 'author.organization.sort1330 'author.sort1331 if$1332 }1333 if$1334 }1335 if$1336 " "1337 *1338 year field.or.null sortify1339 *1340 " "1341 *1342 cite$1343 *1344 #1 entry.max$ substring$1345 'sort.label :=1346 sort.label *1347 #1 entry.max$ substring$1348 'sort.key$ :=1349}1350 1351ITERATE {presort}1352 1353SORT1354 1355STRINGS { longest.label last.label next.extra }1356 1357INTEGERS { longest.label.width last.extra.num number.label }1358 1359FUNCTION {initialize.longest.label}1360{ "" 'longest.label :=1361 #0 int.to.chr$ 'last.label :=1362 "" 'next.extra :=1363 #0 'longest.label.width :=1364 #0 'last.extra.num :=1365 #0 'number.label :=1366}1367 1368FUNCTION {forward.pass}1369{ last.label label =1370 { last.extra.num #1 + 'last.extra.num :=1371 last.extra.num int.to.chr$ 'extra.label :=1372 }1373 { "a" chr.to.int$ 'last.extra.num :=1374 "" 'extra.label :=1375 label 'last.label :=1376 }1377 if$1378 number.label #1 + 'number.label :=1379}1380 1381FUNCTION {reverse.pass}1382{ next.extra "b" =1383 { "a" 'extra.label := }1384 'skip$1385 if$1386 extra.label 'next.extra :=1387 extra.label1388 duplicate$ empty$1389 'skip$1390 { "{\natexlab{" swap$ * "}}" * }1391 if$1392 'extra.label :=1393 label extra.label * 'label :=1394}1395 1396EXECUTE {initialize.longest.label}1397 1398ITERATE {forward.pass}1399 1400REVERSE {reverse.pass}1401 1402FUNCTION {bib.sort.order}1403{ sort.label 'sort.key$ :=1404}1405 1406ITERATE {bib.sort.order}1407 1408SORT1409 1410FUNCTION {begin.bib}1411{ preamble$ empty$1412 'skip$1413 { preamble$ write$ newline$ }1414 if$1415 "\begin{thebibliography}{" number.label int.to.str$ * "}" *1416 write$ newline$1417 "\providecommand{\natexlab}[1]{#1}"1418 write$ newline$1419 "\providecommand{\url}[1]{\texttt{#1}}"1420 write$ newline$1421 "\expandafter\ifx\csname urlstyle\endcsname\relax"1422 write$ newline$1423 " \providecommand{\doi}[1]{doi: #1}\else"1424 write$ newline$1425 " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"1426 write$ newline$1427}1428 1429EXECUTE {begin.bib}1430 1431EXECUTE {init.state.consts}1432 1433ITERATE {call.type$}1434 1435FUNCTION {end.bib}1436{ newline$1437 "\end{thebibliography}" write$ newline$1438}1439 1440EXECUTE {end.bib}1441