templates/aaai2026/aaai2026.bst
templates/aaai2026/aaai2026.bstBrowse 56 files
8,268 tokens
30,207 bytes
Token encoding: o200k_base
Snapshot 24fd22b
← Back to SKILL.md
1%%2%% This is file `aaai2026.bst',3%% generated with the docstrip utility.4%%5%% The original source files were:6%%7%% merlin.mbs (with options: `head,ay,nat,ed-au,nm-rev,ed-rev,jnrlst,aunm-semi,mcite,mct-1,mct-x3,keyxyr,dt-beg,yr-per,yrp-per,note-yr,atit-u,volp-sp,num-xser,bkpg-x,add-pub,isbn,ppx,ed,xedn,and-com,and-com-ed,etal-xc,nfss,,{}')8%% merlin.mbs (with options: `tail,ay,nat,ed-au,nm-rev,ed-rev,jnrlst,aunm-semi,mcite,mct-1,mct-x3,keyxyr,dt-beg,yr-per,yrp-per,note-yr,atit-u,volp-sp,num-xser,bkpg-x,add-pub,isbn,ppx,ed,xedn,and-com,and-com-ed,etal-xc,nfss,,{}')9%% ----------------------------------------10%% *** Natbib-compatible implementation of 'aaai' bib style ***11%% 12 % ===============================================================13 % IMPORTANT NOTICE:14 % This bibliographic style (bst) file has been generated from one or15 % more master bibliographic style (mbs) files, listed above.16 %17 % This generated file can be redistributed and/or modified under the terms18 % of the LaTeX Project Public License Distributed from CTAN19 % archives in directory macros/latex/base/lppl.txt; either20 % version 1 of the License, or any later version.21 % ===============================================================22 % Name and version information of the main mbs file:23 % \ProvidesFile{merlin.mbs}[2011/11/18 4.33 (PWD, AO, DPC)]24 % For use with BibTeX version 0.99a or later25 %-------------------------------------------------------------------26 % This bibliography style file is intended for texts in ENGLISH27 % This is an author-year citation style bibliography. As such, it is28 % non-standard LaTeX, and requires a special package file to function properly.29 % Such a package is natbib.sty by Patrick W. Daly30 % The form of the \bibitem entries is31 % \bibitem[Jones et al.(1990)]{key}...32 % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...33 % The essential feature is that the label (the part in brackets) consists34 % of the author names, as they should appear in the citation, with the year35 % in parentheses following. There must be no space before the opening36 % parenthesis!37 % With natbib v5.3, a full list of authors may also follow the year.38 % In natbib.sty, it is possible to define the type of enclosures that is39 % really wanted (brackets or parentheses), but in either case, there must40 % be parentheses in the label.41 % The \cite command functions as follows:42 % \citet{key} ==>> Jones et al. (1990)43 % \citet*{key} ==>> Jones, Baker, and Smith (1990)44 % \citep{key} ==>> (Jones et al., 1990)45 % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)46 % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)47 % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)48 % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., 1990, p. 32)49 % \citeauthor{key} ==>> Jones et al.50 % \citeauthor*{key} ==>> Jones, Baker, and Smith51 % \citeyear{key} ==>> 199052 %---------------------------------------------------------------------53 54ENTRY55 { address56 archivePrefix57 author58 booktitle59 chapter60 edition61 editor62 eid63 eprint64 howpublished65 institution66 isbn67 journal68 key69 month70 note71 number72 organization73 pages74 publisher75 school76 series77 title78 type79 volume80 year81 }82 {}83 { label extra.label sort.label short.list }84INTEGERS { output.state before.all mid.sentence after.sentence after.block }85FUNCTION {init.state.consts}86{ #0 'before.all :=87 #1 'mid.sentence :=88 #2 'after.sentence :=89 #3 'after.block :=90}91STRINGS { s t}92FUNCTION {output.nonnull}93{ 's :=94 output.state mid.sentence =95 { ", " * write$ }96 { output.state after.block =97 { add.period$ write$98 newline$99 "\newblock " write$100 }101 { output.state before.all =102 'write$103 { add.period$ " " * write$ }104 if$105 }106 if$107 mid.sentence 'output.state :=108 }109 if$110 s111}112FUNCTION {output}113{ duplicate$ empty$114 'pop$115 'output.nonnull116 if$117}118FUNCTION {output.check}119{ 't :=120 duplicate$ empty$121 { pop$ "empty " t * " in " * cite$ * warning$ }122 'output.nonnull123 if$124}125FUNCTION {fin.entry}126{ add.period$127 write$128 newline$129}130 131FUNCTION {new.block}132{ output.state before.all =133 'skip$134 { after.block 'output.state := }135 if$136}137FUNCTION {new.sentence}138{ output.state after.block =139 'skip$140 { output.state before.all =141 'skip$142 { after.sentence 'output.state := }143 if$144 }145 if$146}147FUNCTION {add.blank}148{ " " * before.all 'output.state :=149}150 151FUNCTION {date.block}152{153 new.block154}155 156FUNCTION {not}157{ { #0 }158 { #1 }159 if$160}161FUNCTION {and}162{ 'skip$163 { pop$ #0 }164 if$165}166FUNCTION {or}167{ { pop$ #1 }168 'skip$169 if$170}171FUNCTION {new.block.checkb}172{ empty$173 swap$ empty$174 and175 'skip$176 'new.block177 if$178}179FUNCTION {field.or.null}180{ duplicate$ empty$181 { pop$ "" }182 'skip$183 if$184}185FUNCTION {emphasize}186{ duplicate$ empty$187 { pop$ "" }188 { "\emph{" swap$ * "}" * }189 if$190}191FUNCTION {tie.or.space.prefix}192{ duplicate$ text.length$ #3 <193 { "~" }194 { " " }195 if$196 swap$197}198 199FUNCTION {capitalize}200{ "u" change.case$ "t" change.case$ }201 202FUNCTION {space.word}203{ " " swap$ * " " * }204 % Here are the language-specific definitions for explicit words.205 % Each function has a name bbl.xxx where xxx is the English word.206 % The language selected here is ENGLISH207FUNCTION {bbl.and}208{ "and"}209 210FUNCTION {bbl.etal}211{ "et~al." }212 213FUNCTION {bbl.editors}214{ "eds." }215 216FUNCTION {bbl.editor}217{ "ed." }218 219FUNCTION {bbl.edby}220{ "edited by" }221 222FUNCTION {bbl.edition}223{ "edition" }224 225FUNCTION {bbl.volume}226{ "volume" }227 228FUNCTION {bbl.of}229{ "of" }230 231FUNCTION {bbl.number}232{ "number" }233 234FUNCTION {bbl.nr}235{ "no." }236 237FUNCTION {bbl.in}238{ "in" }239 240FUNCTION {bbl.pages}241{ "" }242 243FUNCTION {bbl.page}244{ "" }245 246FUNCTION {bbl.chapter}247{ "chapter" }248 249FUNCTION {bbl.techrep}250{ "Technical Report" }251 252FUNCTION {bbl.mthesis}253{ "Master's thesis" }254 255FUNCTION {bbl.phdthesis}256{ "Ph.D. thesis" }257 258MACRO {jan} {"January"}259 260MACRO {feb} {"February"}261 262MACRO {mar} {"March"}263 264MACRO {apr} {"April"}265 266MACRO {may} {"May"}267 268MACRO {jun} {"June"}269 270MACRO {jul} {"July"}271 272MACRO {aug} {"August"}273 274MACRO {sep} {"September"}275 276MACRO {oct} {"October"}277 278MACRO {nov} {"November"}279 280MACRO {dec} {"December"}281 282MACRO {acmcs} {"ACM Computing Surveys"}283 284MACRO {acta} {"Acta Informatica"}285 286MACRO {cacm} {"Communications of the ACM"}287 288MACRO {ibmjrd} {"IBM Journal of Research and Development"}289 290MACRO {ibmsj} {"IBM Systems Journal"}291 292MACRO {ieeese} {"IEEE Transactions on Software Engineering"}293 294MACRO {ieeetc} {"IEEE Transactions on Computers"}295 296MACRO {ieeetcad}297 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}298 299MACRO {ipl} {"Information Processing Letters"}300 301MACRO {jacm} {"Journal of the ACM"}302 303MACRO {jcss} {"Journal of Computer and System Sciences"}304 305MACRO {scp} {"Science of Computer Programming"}306 307MACRO {sicomp} {"SIAM Journal on Computing"}308 309MACRO {tocs} {"ACM Transactions on Computer Systems"}310 311MACRO {tods} {"ACM Transactions on Database Systems"}312 313MACRO {tog} {"ACM Transactions on Graphics"}314 315MACRO {toms} {"ACM Transactions on Mathematical Software"}316 317MACRO {toois} {"ACM Transactions on Office Information Systems"}318 319MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}320 321MACRO {tcs} {"Theoretical Computer Science"}322FUNCTION {bibinfo.check}323{ swap$324 duplicate$ missing$325 {326 pop$ pop$327 ""328 }329 { duplicate$ empty$330 {331 swap$ pop$332 }333 { swap$334 pop$335 }336 if$337 }338 if$339}340FUNCTION {bibinfo.warn}341{ swap$342 duplicate$ missing$343 {344 swap$ "missing " swap$ * " in " * cite$ * warning$ pop$345 ""346 }347 { duplicate$ empty$348 {349 swap$ "empty " swap$ * " in " * cite$ * warning$350 }351 { swap$352 pop$353 }354 if$355 }356 if$357}358FUNCTION {format.eprint}359{ eprint duplicate$ empty$360 'skip$361 { archivePrefix duplicate$ empty$362 'skip$363 { ":" * swap$ }364 if$365 * "." *366 }367 if$368}369INTEGERS { nameptr namesleft numnames }370 371 372STRINGS { bibinfo}373 374FUNCTION {format.names}375{ 'bibinfo :=376 duplicate$ empty$ 'skip$ {377 's :=378 "" 't :=379 #1 'nameptr :=380 s num.names$ 'numnames :=381 numnames 'namesleft :=382 { namesleft #0 > }383 { s nameptr384 "{vv~}{ll}{, f.}{, jj}"385 format.name$386 bibinfo bibinfo.check387 't :=388 nameptr #1 >389 {390 namesleft #1 >391 { "; " * t * }392 {393 s nameptr "{ll}" format.name$ duplicate$ "others" =394 { 't := }395 { pop$ }396 if$397 ";" *398 t "others" =399 {400 " " * bbl.etal *401 }402 {403 bbl.and404 space.word * t *405 }406 if$407 }408 if$409 }410 't411 if$412 nameptr #1 + 'nameptr :=413 namesleft #1 - 'namesleft :=414 }415 while$416 } if$417}418FUNCTION {format.names.ed}419{420 format.names421}422FUNCTION {format.key}423{ empty$424 { key field.or.null }425 { "" }426 if$427}428 429FUNCTION {format.authors}430{ author "author" format.names431}432FUNCTION {get.bbl.editor}433{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }434 435FUNCTION {format.editors}436{ editor "editor" format.names duplicate$ empty$ 'skip$437 {438 "," *439 " " *440 get.bbl.editor441 *442 }443 if$444}445FUNCTION {format.isbn}446{ isbn "isbn" bibinfo.check447 duplicate$ empty$ 'skip$448 {449 new.block450 "ISBN " swap$ *451 }452 if$453}454 455FUNCTION {format.note}456{457 note empty$458 { "" }459 { note #1 #1 substring$460 duplicate$ "{" =461 'skip$462 { output.state mid.sentence =463 { "l" }464 { "u" }465 if$466 change.case$467 }468 if$469 note #2 global.max$ substring$ * "note" bibinfo.check470 }471 if$472}473 474FUNCTION {format.title}475{ title476 "title" bibinfo.check477}478FUNCTION {format.full.names}479{'s :=480 "" 't :=481 #1 'nameptr :=482 s num.names$ 'numnames :=483 numnames 'namesleft :=484 { namesleft #0 > }485 { s nameptr486 "{vv~}{ll}" format.name$487 't :=488 nameptr #1 >489 {490 namesleft #1 >491 { ", " * t * }492 {493 s nameptr "{ll}" format.name$ duplicate$ "others" =494 { 't := }495 { pop$ }496 if$497 t "others" =498 {499 " " * bbl.etal *500 }501 {502 numnames #2 >503 { "," * }504 'skip$505 if$506 bbl.and507 space.word * t *508 }509 if$510 }511 if$512 }513 't514 if$515 nameptr #1 + 'nameptr :=516 namesleft #1 - 'namesleft :=517 }518 while$519}520 521FUNCTION {author.editor.key.full}522{ author empty$523 { editor empty$524 { key empty$525 { cite$ #1 #3 substring$ }526 'key527 if$528 }529 { editor format.full.names }530 if$531 }532 { author format.full.names }533 if$534}535 536FUNCTION {author.key.full}537{ author empty$538 { key empty$539 { cite$ #1 #3 substring$ }540 'key541 if$542 }543 { author format.full.names }544 if$545}546 547FUNCTION {editor.key.full}548{ editor empty$549 { key empty$550 { cite$ #1 #3 substring$ }551 'key552 if$553 }554 { editor format.full.names }555 if$556}557 558FUNCTION {make.full.names}559{ type$ "book" =560 type$ "inbook" =561 or562 'author.editor.key.full563 { type$ "proceedings" =564 'editor.key.full565 'author.key.full566 if$567 }568 if$569}570 571FUNCTION {output.bibitem}572{ newline$573 "\bibitem[{" write$574 label write$575 ")" make.full.names duplicate$ short.list =576 { pop$ }577 { * }578 if$579 "}]{" * write$580 cite$ write$581 "}" write$582 newline$583 ""584 before.all 'output.state :=585}586 587FUNCTION {n.dashify}588{589 't :=590 ""591 { t empty$ not }592 { t #1 #1 substring$ "-" =593 { t #1 #2 substring$ "--" = not594 { "--" *595 t #2 global.max$ substring$ 't :=596 }597 { { t #1 #1 substring$ "-" = }598 { "-" *599 t #2 global.max$ substring$ 't :=600 }601 while$602 }603 if$604 }605 { t #1 #1 substring$ *606 t #2 global.max$ substring$ 't :=607 }608 if$609 }610 while$611}612 613FUNCTION {word.in}614{ bbl.in capitalize615 " " * }616 617FUNCTION {format.date}618{ year "year" bibinfo.check duplicate$ empty$619 {620 "empty year in " cite$ * "; set to ????" * warning$621 pop$ "????"622 }623 'skip$624 if$625 extra.label *626 before.all 'output.state :=627 after.sentence 'output.state :=628}629FUNCTION {format.btitle}630{ title "title" bibinfo.check631 duplicate$ empty$ 'skip$632 {633 emphasize634 }635 if$636}637FUNCTION {either.or.check}638{ empty$639 'pop$640 { "can't use both " swap$ * " fields in " * cite$ * warning$ }641 if$642}643FUNCTION {format.bvolume}644{ volume empty$645 { "" }646 { bbl.volume volume tie.or.space.prefix647 "volume" bibinfo.check * *648 series "series" bibinfo.check649 duplicate$ empty$ 'pop$650 { swap$ bbl.of space.word * swap$651 emphasize * }652 if$653 "volume and number" number either.or.check654 }655 if$656}657FUNCTION {format.number.series}658{ volume empty$659 { number empty$660 { series field.or.null }661 { series empty$662 { number "number" bibinfo.check }663 { output.state mid.sentence =664 { bbl.number }665 { bbl.number capitalize }666 if$667 number tie.or.space.prefix "number" bibinfo.check * *668 bbl.in space.word *669 series "series" bibinfo.check *670 }671 if$672 }673 if$674 }675 { "" }676 if$677}678 679FUNCTION {format.edition}680{ edition duplicate$ empty$ 'skip$681 {682 output.state mid.sentence =683 { "l" }684 { "t" }685 if$ change.case$686 "edition" bibinfo.check687 " " * bbl.edition *688 }689 if$690}691INTEGERS { multiresult }692FUNCTION {multi.page.check}693{ 't :=694 #0 'multiresult :=695 { multiresult not696 t empty$ not697 and698 }699 { t #1 #1 substring$700 duplicate$ "-" =701 swap$ duplicate$ "," =702 swap$ "+" =703 or or704 { #1 'multiresult := }705 { t #2 global.max$ substring$ 't := }706 if$707 }708 while$709 multiresult710}711FUNCTION {format.pages}712{ pages duplicate$ empty$ 'skip$713 { duplicate$ multi.page.check714 {715 n.dashify716 }717 {718 }719 if$720 "pages" bibinfo.check721 }722 if$723}724FUNCTION {format.journal.pages}725{ pages duplicate$ empty$ 'pop$726 { swap$ duplicate$ empty$727 { pop$ pop$ format.pages }728 {729 ": " *730 swap$731 n.dashify732 "pages" bibinfo.check733 *734 }735 if$736 }737 if$738}739FUNCTION {format.journal.eid}740{ eid "eid" bibinfo.check741 duplicate$ empty$ 'pop$742 { swap$ duplicate$ empty$ 'skip$743 {744 ": " *745 }746 if$747 swap$ *748 }749 if$750}751FUNCTION {format.vol.num.pages}752{ volume field.or.null753 duplicate$ empty$ 'skip$754 {755 "volume" bibinfo.check756 }757 if$758 number "number" bibinfo.check duplicate$ empty$ 'skip$759 {760 swap$ duplicate$ empty$761 { "there's a number but no volume in " cite$ * warning$ }762 'skip$763 if$764 swap$765 "(" swap$ * ")" *766 }767 if$ *768 eid empty$769 { format.journal.pages }770 { format.journal.eid }771 if$772}773 774FUNCTION {format.chapter.pages}775{ chapter empty$776 'format.pages777 { type empty$778 { bbl.chapter }779 { type "l" change.case$780 "type" bibinfo.check781 }782 if$783 chapter tie.or.space.prefix784 "chapter" bibinfo.check785 * *786 pages empty$787 'skip$788 { ", " * format.pages * }789 if$790 }791 if$792}793 794FUNCTION {format.booktitle}795{796 booktitle "booktitle" bibinfo.check797 emphasize798}799FUNCTION {format.in.ed.booktitle}800{ format.booktitle duplicate$ empty$ 'skip$801 {802 editor "editor" format.names.ed duplicate$ empty$ 'pop$803 {804 "," *805 " " *806 get.bbl.editor807 ", " *808 * swap$809 * }810 if$811 word.in swap$ *812 }813 if$814}815FUNCTION {format.thesis.type}816{ type duplicate$ empty$817 'pop$818 { swap$ pop$819 "t" change.case$ "type" bibinfo.check820 }821 if$822}823FUNCTION {format.tr.number}824{ number "number" bibinfo.check825 type duplicate$ empty$826 { pop$ bbl.techrep }827 'skip$828 if$829 "type" bibinfo.check830 swap$ duplicate$ empty$831 { pop$ "t" change.case$ }832 { tie.or.space.prefix * * }833 if$834}835FUNCTION {format.article.crossref}836{837 word.in838 " \cite{" * crossref * "}" *839}840FUNCTION {format.book.crossref}841{ volume duplicate$ empty$842 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$843 pop$ word.in844 }845 { bbl.volume846 capitalize847 swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *848 }849 if$850 " \cite{" * crossref * "}" *851}852FUNCTION {format.incoll.inproc.crossref}853{854 word.in855 " \cite{" * crossref * "}" *856}857FUNCTION {format.org.or.pub}858{ 't :=859 ""860 address empty$ t empty$ and861 'skip$862 {863 address "address" bibinfo.check *864 t empty$865 'skip$866 { address empty$867 'skip$868 { ": " * }869 if$870 t *871 }872 if$873 }874 if$875}876FUNCTION {format.publisher.address}877{ publisher "publisher" bibinfo.warn format.org.or.pub878}879 880FUNCTION {format.organization.address}881{ organization "organization" bibinfo.check format.org.or.pub882}883 884FUNCTION {article}885{ output.bibitem886 format.authors "author" output.check887 author format.key output888 format.date "year" output.check889 date.block890 format.title "title" output.check891 new.block892 crossref missing$893 {894 journal895 "journal" bibinfo.check896 emphasize897 "journal" output.check898 format.vol.num.pages output899 }900 { format.article.crossref output.nonnull901 format.pages output902 }903 if$904 new.block905 format.note output906 fin.entry907}908FUNCTION {book}909{ output.bibitem910 author empty$911 { format.editors "author and editor" output.check912 editor format.key output913 }914 { format.authors output.nonnull915 crossref missing$916 { "author and editor" editor either.or.check }917 'skip$918 if$919 }920 if$921 format.date "year" output.check922 date.block923 format.btitle "title" output.check924 crossref missing$925 { format.bvolume output926 new.block927 format.number.series output928 new.sentence929 format.publisher.address output930 }931 {932 new.block933 format.book.crossref output.nonnull934 }935 if$936 format.edition output937 format.isbn output938 new.block939 format.note output940 fin.entry941}942FUNCTION {booklet}943{ output.bibitem944 format.authors output945 author format.key output946 format.date "year" output.check947 date.block948 format.title "title" output.check949 new.block950 howpublished "howpublished" bibinfo.check output951 address "address" bibinfo.check output952 format.isbn output953 new.block954 format.note output955 fin.entry956}957 958FUNCTION {inbook}959{ output.bibitem960 author empty$961 { format.editors "author and editor" output.check962 editor format.key output963 }964 { format.authors output.nonnull965 crossref missing$966 { "author and editor" editor either.or.check }967 'skip$968 if$969 }970 if$971 format.date "year" output.check972 date.block973 format.btitle "title" output.check974 crossref missing$975 {976 format.bvolume output977 format.chapter.pages "chapter and pages" output.check978 new.block979 format.number.series output980 new.sentence981 format.publisher.address output982 }983 {984 format.chapter.pages "chapter and pages" output.check985 new.block986 format.book.crossref output.nonnull987 }988 if$989 format.edition output990 crossref missing$991 { format.isbn output }992 'skip$993 if$994 new.block995 format.note output996 fin.entry997}998 999FUNCTION {incollection}1000{ output.bibitem1001 format.authors "author" output.check1002 author format.key output1003 format.date "year" output.check1004 date.block1005 format.title "title" output.check1006 new.block1007 crossref missing$1008 { format.in.ed.booktitle "booktitle" output.check1009 format.bvolume output1010 format.number.series output1011 format.chapter.pages output1012 new.sentence1013 format.publisher.address output1014 format.edition output1015 format.isbn output1016 }1017 { format.incoll.inproc.crossref output.nonnull1018 format.chapter.pages output1019 }1020 if$1021 new.block1022 format.note output1023 fin.entry1024}1025FUNCTION {inproceedings}1026{ output.bibitem1027 format.authors "author" output.check1028 author format.key output1029 format.date "year" output.check1030 date.block1031 format.title "title" output.check1032 new.block1033 crossref missing$1034 { format.in.ed.booktitle "booktitle" output.check1035 format.bvolume output1036 format.number.series output1037 format.pages output1038 new.sentence1039 publisher empty$1040 { format.organization.address output }1041 { organization "organization" bibinfo.check output1042 format.publisher.address output1043 }1044 if$1045 format.isbn output1046 }1047 { format.incoll.inproc.crossref output.nonnull1048 format.pages output1049 }1050 if$1051 new.block1052 format.note output1053 fin.entry1054}1055FUNCTION {conference} { inproceedings }1056FUNCTION {manual}1057{ output.bibitem1058 format.authors output1059 author format.key output1060 format.date "year" output.check1061 date.block1062 format.btitle "title" output.check1063 organization address new.block.checkb1064 organization "organization" bibinfo.check output1065 address "address" bibinfo.check output1066 format.edition output1067 new.block1068 format.note output1069 fin.entry1070}1071 1072FUNCTION {mastersthesis}1073{ output.bibitem1074 format.authors "author" output.check1075 author format.key output1076 format.date "year" output.check1077 date.block1078 format.btitle1079 "title" output.check1080 new.block1081 bbl.mthesis format.thesis.type output.nonnull1082 school "school" bibinfo.warn output1083 address "address" bibinfo.check output1084 new.block1085 format.note output1086 fin.entry1087}1088 1089FUNCTION {misc}1090{ output.bibitem1091 format.authors output1092 author format.key output1093 format.date "year" output.check1094 date.block1095 format.title output1096 new.block1097 howpublished "howpublished" bibinfo.check output1098 new.block1099 format.note output1100 format.eprint output1101 fin.entry1102}1103FUNCTION {phdthesis}1104{ output.bibitem1105 format.authors "author" output.check1106 author format.key output1107 format.date "year" output.check1108 date.block1109 format.btitle1110 "title" output.check1111 new.block1112 bbl.phdthesis format.thesis.type output.nonnull1113 school "school" bibinfo.warn output1114 address "address" bibinfo.check output1115 new.block1116 format.note output1117 fin.entry1118}1119 1120FUNCTION {proceedings}1121{ output.bibitem1122 format.editors output1123 editor format.key output1124 format.date "year" output.check1125 date.block1126 format.btitle "title" output.check1127 format.bvolume output1128 format.number.series output1129 new.sentence1130 publisher empty$1131 { format.organization.address output }1132 { organization "organization" bibinfo.check output1133 format.publisher.address output1134 }1135 if$1136 format.isbn output1137 new.block1138 format.note output1139 fin.entry1140}1141 1142FUNCTION {techreport}1143{ output.bibitem1144 format.authors "author" output.check1145 author format.key output1146 format.date "year" output.check1147 date.block1148 format.title1149 "title" output.check1150 new.block1151 format.tr.number output.nonnull1152 institution "institution" bibinfo.warn output1153 address "address" bibinfo.check output1154 new.block1155 format.note output1156 fin.entry1157}1158 1159FUNCTION {unpublished}1160{ output.bibitem1161 format.authors "author" output.check1162 author format.key output1163 format.date "year" output.check1164 date.block1165 format.title "title" output.check1166 new.block1167 format.note "note" output.check1168 fin.entry1169}1170 1171FUNCTION {default.type} { misc }1172READ1173FUNCTION {sortify}1174{ purify$1175 "l" change.case$1176}1177INTEGERS { len }1178FUNCTION {chop.word}1179{ 's :=1180 'len :=1181 s #1 len substring$ =1182 { s len #1 + global.max$ substring$ }1183 's1184 if$1185}1186FUNCTION {format.lab.names}1187{'s :=1188 "" 't :=1189 #1 'nameptr :=1190 s num.names$ 'numnames :=1191 numnames 'namesleft :=1192 { namesleft #0 > }1193 { s nameptr1194 "{vv~}{ll}" format.name$1195 't :=1196 nameptr #1 >1197 {1198 nameptr #2 =1199 numnames #3 > and1200 { "others" 't :=1201 #1 'namesleft := }1202 'skip$1203 if$1204 namesleft #1 >1205 { ", " * t * }1206 {1207 s nameptr "{ll}" format.name$ duplicate$ "others" =1208 { 't := }1209 { pop$ }1210 if$1211 t "others" =1212 {1213 " " * bbl.etal *1214 }1215 {1216 numnames #2 >1217 { "," * }1218 'skip$1219 if$1220 bbl.and1221 space.word * t *1222 }1223 if$1224 }1225 if$1226 }1227 't1228 if$1229 nameptr #1 + 'nameptr :=1230 namesleft #1 - 'namesleft :=1231 }1232 while$1233}1234 1235FUNCTION {author.key.label}1236{ author empty$1237 { key empty$1238 { cite$ #1 #3 substring$ }1239 'key1240 if$1241 }1242 { author format.lab.names }1243 if$1244}1245 1246FUNCTION {author.editor.key.label}1247{ author empty$1248 { editor empty$1249 { key empty$1250 { cite$ #1 #3 substring$ }1251 'key1252 if$1253 }1254 { editor format.lab.names }1255 if$1256 }1257 { author format.lab.names }1258 if$1259}1260 1261FUNCTION {editor.key.label}1262{ editor empty$1263 { key empty$1264 { cite$ #1 #3 substring$ }1265 'key1266 if$1267 }1268 { editor format.lab.names }1269 if$1270}1271 1272FUNCTION {calc.short.authors}1273{ type$ "book" =1274 type$ "inbook" =1275 or1276 'author.editor.key.label1277 { type$ "proceedings" =1278 'editor.key.label1279 'author.key.label1280 if$1281 }1282 if$1283 'short.list :=1284}1285 1286FUNCTION {calc.label}1287{ calc.short.authors1288 short.list1289 "("1290 *1291 year duplicate$ empty$1292 short.list key field.or.null = or1293 { pop$ "" }1294 'skip$1295 if$1296 *1297 'label :=1298}1299 1300FUNCTION {sort.format.names}1301{ 's :=1302 #1 'nameptr :=1303 ""1304 s num.names$ 'numnames :=1305 numnames 'namesleft :=1306 { namesleft #0 > }1307 { s nameptr1308 "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"1309 format.name$ 't :=1310 nameptr #1 >1311 {1312 " " *1313 namesleft #1 = t "others" = and1314 { "zzzzz" 't := }1315 'skip$1316 if$1317 t sortify *1318 }1319 { t sortify * }1320 if$1321 nameptr #1 + 'nameptr :=1322 namesleft #1 - 'namesleft :=1323 }1324 while$1325}1326 1327FUNCTION {sort.format.title}1328{ 't :=1329 "A " #21330 "An " #31331 "The " #4 t chop.word1332 chop.word1333 chop.word1334 sortify1335 #1 global.max$ substring$1336}1337FUNCTION {author.sort}1338{ author empty$1339 { key empty$1340 { "to sort, need author or key in " cite$ * warning$1341 ""1342 }1343 { key sortify }1344 if$1345 }1346 { author sort.format.names }1347 if$1348}1349FUNCTION {author.editor.sort}1350{ author empty$1351 { editor empty$1352 { key empty$1353 { "to sort, need author, editor, or key in " cite$ * warning$1354 ""1355 }1356 { key sortify }1357 if$1358 }1359 { editor sort.format.names }1360 if$1361 }1362 { author sort.format.names }1363 if$1364}1365FUNCTION {editor.sort}1366{ editor empty$1367 { key empty$1368 { "to sort, need editor or key in " cite$ * warning$1369 ""1370 }1371 { key sortify }1372 if$1373 }1374 { editor sort.format.names }1375 if$1376}1377FUNCTION {presort}1378{ calc.label1379 label sortify1380 " "1381 *1382 type$ "book" =1383 type$ "inbook" =1384 or1385 'author.editor.sort1386 { type$ "proceedings" =1387 'editor.sort1388 'author.sort1389 if$1390 }1391 if$1392 #1 entry.max$ substring$1393 'sort.label :=1394 sort.label1395 *1396 " "1397 *1398 title field.or.null1399 sort.format.title1400 *1401 #1 entry.max$ substring$1402 'sort.key$ :=1403}1404 1405ITERATE {presort}1406SORT1407STRINGS { last.label next.extra }1408INTEGERS { last.extra.num last.extra.num.extended last.extra.num.blank number.label }1409FUNCTION {initialize.extra.label.stuff}1410{ #0 int.to.chr$ 'last.label :=1411 "" 'next.extra :=1412 #0 'last.extra.num :=1413 "a" chr.to.int$ #1 - 'last.extra.num.blank :=1414 last.extra.num.blank 'last.extra.num.extended :=1415 #0 'number.label :=1416}1417FUNCTION {forward.pass}1418{ last.label label =1419 { last.extra.num #1 + 'last.extra.num :=1420 last.extra.num "z" chr.to.int$ >1421 { "a" chr.to.int$ 'last.extra.num :=1422 last.extra.num.extended #1 + 'last.extra.num.extended :=1423 }1424 'skip$1425 if$1426 last.extra.num.extended last.extra.num.blank >1427 { last.extra.num.extended int.to.chr$1428 last.extra.num int.to.chr$1429 * 'extra.label := }1430 { last.extra.num int.to.chr$ 'extra.label := }1431 if$1432 }1433 { "a" chr.to.int$ 'last.extra.num :=1434 "" 'extra.label :=1435 label 'last.label :=1436 }1437 if$1438 number.label #1 + 'number.label :=1439}1440FUNCTION {reverse.pass}1441{ next.extra "b" =1442 { "a" 'extra.label := }1443 'skip$1444 if$1445 extra.label 'next.extra :=1446 extra.label1447 duplicate$ empty$1448 'skip$1449 { "{\natexlab{" swap$ * "}}" * }1450 if$1451 'extra.label :=1452 label extra.label * 'label :=1453}1454EXECUTE {initialize.extra.label.stuff}1455ITERATE {forward.pass}1456REVERSE {reverse.pass}1457FUNCTION {bib.sort.order}1458{ sort.label1459 " "1460 *1461 year field.or.null sortify1462 *1463 " "1464 *1465 title field.or.null1466 sort.format.title1467 *1468 #1 entry.max$ substring$1469 'sort.key$ :=1470}1471ITERATE {bib.sort.order}1472SORT1473FUNCTION {begin.bib}1474{ preamble$ empty$1475 'skip$1476 { preamble$ write$ newline$ }1477 if$1478 "\begin{thebibliography}{" number.label int.to.str$ * "}" *1479 write$ newline$1480 "\providecommand{\natexlab}[1]{#1}"1481 write$ newline$1482}1483EXECUTE {begin.bib}1484EXECUTE {init.state.consts}1485ITERATE {call.type$}1486FUNCTION {end.bib}1487{ newline$1488 "\end{thebibliography}" write$ newline$1489}1490EXECUTE {end.bib}1491%% End of customized bst file1492%%1493%% End of file `aaai2026.bst'.1494