├── DissertUESTC-bachelor.bst ├── DissertUESTC.bst ├── DissertUESTC.cls ├── fig ├── TeXstudio-nomenclature1.jpg ├── TeXstudio-nomenclature2.jpg ├── TeXstudio-nomenclature3.jpg ├── TeXstudio_bibtex.png ├── VSCode-nomenclature.jpg ├── VScode_bibtex.png ├── authsign.png ├── refsample.png ├── spvrsign.png ├── uestclogo.pdf ├── 一灯1.jpg ├── 一灯2.jpg ├── 周伯通1.png ├── 周伯通2.jpg ├── 周伯通3.jpg ├── 杨过1.jpg ├── 杨过2.jpg ├── 杨过3.png ├── 杨过4.jpg ├── 杨过5.jpg ├── 杨过6.jpg ├── 杨过小龙女1.jpg ├── 杨过小龙女2.jpg ├── 杨过小龙女3.png ├── 杨过小龙女6.jpg ├── 杨过程英.jpg ├── 杨过绿萼.jpg ├── 杨过郭靖.jpg ├── 洪七公1.jpg ├── 洪七公2.jpeg ├── 程英1.jpg ├── 程英2.jpg ├── 程英3.jpg ├── 绿萼1.jpg ├── 绿萼2.jpg ├── 郭芙1.jpg ├── 郭芙2.jpg ├── 郭芙3.jpg ├── 郭襄1.jpg ├── 郭襄2.jpg ├── 郭靖1.jpg ├── 陆无双1.jpg ├── 陆无双2.jpeg ├── 陆无双程英.png ├── 陆无双程英杨过.jpg ├── 黄老邪1.jpg ├── 黄老邪2.jpg ├── 黄蓉1.jpg ├── 黄蓉2.png └── 黄蓉郭靖1.jpg ├── font ├── STXINGKA.TTF ├── STZHONGS.TTF ├── SimHei.ttf ├── SimSun.ttc ├── Source Han Serif SC.otf ├── times.ttf ├── timesbd.ttf ├── timesbi.ttf └── timesi.ttf ├── readme.md ├── ref.bib ├── tutorial.pdf └── tutorial.tex /DissertUESTC-bachelor.bst: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `DissertUESTC-bachelor.bst', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% merlin.mbs (with options: `seq-no,nm-rv,ed-rev,jnrlst,nmlm,x3,m3,dt-jnl,yr-com,dtrev,yrp-col,jttl-rm,thtit-a,volp-sp,pp-last,num-xser,btit-rm,bt-rm,bkpg-x,add-pub,pre-pub,url-doi,edparc,bkedcap,ppx,ed,abr,ednx,ord,xand,eprint,url,url-blk,em-x,nfss,') 8 | %% ---------------------------------------- 9 | %% *** Dissertation style for UESTC in 2024 *** 10 | %% 11 | %% Copyright 1994-2011 Patrick W Daly 12 | % =============================================================== 13 | % IMPORTANT NOTICE: 14 | % This bibliographic style (bst) file has been generated from one or 15 | % more master bibliographic style (mbs) files, listed above. 16 | % 17 | % This generated file can be redistributed and/or modified under the terms 18 | % of the LaTeX Project Public License Distributed from CTAN 19 | % archives in directory macros/latex/base/lppl.txt; either 20 | % 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 later 25 | %------------------------------------------------------------------- 26 | % This bibliography style file is intended for texts in ENGLISH 27 | % This is a numerical citation style, and as such is standard LaTeX. 28 | % It requires no extra package to interface to the main text. 29 | % The form of the \bibitem entries is 30 | % \bibitem{key}... 31 | % Usage of \cite is as follows: 32 | % \cite{key} ==>> [#] 33 | % \cite[chap. 2]{key} ==>> [#, chap. 2] 34 | % where # is a number determined by the ordering in the reference list. 35 | % The order in the reference list is that by which the works were originally 36 | % cited in the text, or that in the database. 37 | %--------------------------------------------------------------------- 38 | 39 | ENTRY 40 | { address 41 | archive 42 | author 43 | booktitle 44 | chapter 45 | citedate 46 | day 47 | doi 48 | edition 49 | editor 50 | eid 51 | eprint 52 | howpublished 53 | journal 54 | key 55 | language 56 | modifydate 57 | month 58 | note 59 | number 60 | organization 61 | pages 62 | publisher 63 | school 64 | series 65 | title 66 | translator 67 | type 68 | url 69 | volume 70 | year 71 | nation 72 | } 73 | {} 74 | { label } 75 | INTEGERS { output.state before.all mid.sentence after.sentence after.block } 76 | FUNCTION {init.state.consts} 77 | { #0 'before.all := 78 | #1 'mid.sentence := 79 | #2 'after.sentence := 80 | #3 'after.block := 81 | } 82 | STRINGS { s t} 83 | 84 | %%% 根据当前“输出状态”确定在第二栈顶字面值尾部是否应该添加分隔符以及添加哪种分隔符: 85 | %%% mid.sentence 状态添加 ", " 86 | %%% after.block 状态添加 ".\n" 87 | %%% before.all 状态不加 88 | %%% after.sentence 状态添加 ". " 89 | %%% 然后向输出缓冲区写入第二栈顶字面值,更改“输出状态”为mid.sentence,最后在栈中保留栈顶字面值 90 | FUNCTION {output.nonnull} 91 | { 's := 92 | output.state mid.sentence = 93 | { ", " * write$ } 94 | { output.state after.block = 95 | { add.period$ write$ 96 | newline$ 97 | "\newblock " write$ 98 | } 99 | { output.state before.all = 100 | 'write$ 101 | { add.period$ " " * write$ } 102 | if$ 103 | } 104 | if$ 105 | mid.sentence 'output.state := 106 | } 107 | if$ 108 | s 109 | } 110 | 111 | %%% 判断栈顶字面值是否为空,若是,则推出栈顶的空字面值, 112 | %%% 否则确定栈顶字面值前合适的分隔符并将该分隔符立即写入输出缓冲区, 113 | %%% 同时设置当前输出状态为mid.sentence 114 | FUNCTION {output} 115 | { duplicate$ empty$ 116 | 'pop$ 117 | 'output.nonnull 118 | if$ 119 | } 120 | 121 | %%% 读取并推出栈顶字面值,然后判断原第二栈顶字面值是否为空, 122 | %%% 是则推出原第二栈顶字面值,并发起附带原栈顶字面值的警告信息 123 | %%% 否则执行output.nonnull函数 124 | %%% 相较于output函数,output.check在遇到空栈顶时会输出由用户(部分)自定义的警告信息 125 | FUNCTION {output.check} 126 | { 't := 127 | duplicate$ empty$ 128 | { pop$ "empty " t * " in " * cite$ * warning$ } 129 | 'output.nonnull 130 | if$ 131 | } 132 | 133 | %%% 给栈顶元素尾部加上".",并写入输出缓冲区,然后将输出缓冲区中的所有信息写入bbl文件 134 | FUNCTION {fin.entry} 135 | { 136 | add.period$ 137 | write$ 138 | newline$ 139 | } 140 | 141 | 142 | %%% 当前输出状态不是“最开始”时,将当前输出状态设置为“区块之后” 143 | FUNCTION {new.block} 144 | { output.state before.all = 145 | 'skip$ 146 | { after.block 'output.state := } 147 | if$ 148 | } 149 | 150 | %%% 当前输出状态不是“最开始”和“区块之后”时,将当前输出状态设置为“句子之后” 151 | FUNCTION {new.sentence} 152 | { output.state after.block = 153 | 'skip$ 154 | { output.state before.all = 155 | 'skip$ 156 | { after.sentence 'output.state := } 157 | if$ 158 | } 159 | if$ 160 | } 161 | 162 | %%% 给当前栈顶字面值尾部添加空格,并设置输出状态为“最开始” 163 | FUNCTION {add.blank} 164 | { " " * before.all 'output.state := 165 | } 166 | 167 | 168 | FUNCTION {date.block} 169 | { 170 | "," * 171 | add.blank 172 | } 173 | 174 | FUNCTION {not} 175 | { { #0 } 176 | { #1 } 177 | if$ 178 | } 179 | FUNCTION {and} 180 | { 'skip$ 181 | { pop$ #0 } 182 | if$ 183 | } 184 | FUNCTION {or} 185 | { { pop$ #1 } 186 | 'skip$ 187 | if$ 188 | } 189 | STRINGS {z} 190 | 191 | FUNCTION {remove.dots} 192 | { 'z := 193 | "" 194 | { z empty$ not } 195 | { z #1 #2 substring$ 196 | duplicate$ "\." = 197 | { z #3 global.max$ substring$ 'z := * } 198 | { pop$ 199 | z #1 #1 substring$ 200 | z #2 global.max$ substring$ 'z := 201 | duplicate$ "." = 'pop$ 202 | { * } 203 | if$ 204 | } 205 | if$ 206 | } 207 | while$ 208 | } 209 | FUNCTION {new.block.checka} 210 | { empty$ 211 | 'skip$ 212 | 'new.block 213 | if$ 214 | } 215 | FUNCTION {new.block.checkb} 216 | { empty$ 217 | swap$ empty$ 218 | and 219 | 'skip$ 220 | 'new.block 221 | if$ 222 | } 223 | FUNCTION {new.sentence.checka} 224 | { empty$ 225 | 'skip$ 226 | 'new.sentence 227 | if$ 228 | } 229 | FUNCTION {new.sentence.checkb} 230 | { empty$ 231 | swap$ empty$ 232 | and 233 | 'skip$ 234 | 'new.sentence 235 | if$ 236 | } 237 | FUNCTION {field.or.null} 238 | { duplicate$ empty$ 239 | { pop$ "" } 240 | 'skip$ 241 | if$ 242 | } 243 | FUNCTION {emphasize} 244 | { skip$ } 245 | FUNCTION {tie.or.space.prefix} 246 | { duplicate$ text.length$ #3 < 247 | { "~" } 248 | { " " } 249 | if$ 250 | swap$ 251 | } 252 | 253 | FUNCTION {capitalize} 254 | { "u" change.case$ "t" change.case$ } 255 | 256 | FUNCTION {space.word} 257 | { " " swap$ * " " * } 258 | % Here are the language-specific definitions for explicit words. 259 | % Each function has a name bbl.xxx where xxx is the English word. 260 | % The language selected here is ENGLISH 261 | FUNCTION {bbl.and} 262 | { "and"} 263 | 264 | FUNCTION {bbl.etal} 265 | { "et~al." } 266 | 267 | FUNCTION {bbl.deng} 268 | { "等" } 269 | 270 | FUNCTION {bbl.editors} 271 | { "eds." } 272 | 273 | FUNCTION {bbl.editor} 274 | { "ed." } 275 | 276 | FUNCTION {bbl.edby} 277 | { "edited by" } 278 | 279 | FUNCTION {bbl.edition} 280 | { "ed." } 281 | 282 | FUNCTION {bbl.volume} 283 | { "vol." } 284 | 285 | FUNCTION {bbl.of} 286 | { "of" } 287 | 288 | FUNCTION {bbl.number} 289 | { "no." } 290 | 291 | FUNCTION {bbl.nr} 292 | { "no." } 293 | 294 | FUNCTION {bbl.in} 295 | { "in" } 296 | 297 | FUNCTION {bbl.pages} 298 | { "" } 299 | 300 | FUNCTION {bbl.page} 301 | { "" } 302 | 303 | FUNCTION {bbl.chapter} 304 | { "chap." } 305 | 306 | FUNCTION {bbl.techrep} 307 | { "Tech. Rep." } 308 | 309 | FUNCTION {bbl.mthesis} 310 | { "Master's thesis" } 311 | 312 | FUNCTION {bbl.phdthesis} 313 | { "Ph.D. thesis" } 314 | 315 | FUNCTION {bbl.first} 316 | { "1st" } 317 | 318 | FUNCTION {bbl.second} 319 | { "2nd" } 320 | 321 | FUNCTION {bbl.third} 322 | { "3rd" } 323 | 324 | FUNCTION {bbl.fourth} 325 | { "4th" } 326 | 327 | FUNCTION {bbl.fifth} 328 | { "5th" } 329 | 330 | FUNCTION {bbl.st} 331 | { "st" } 332 | 333 | FUNCTION {bbl.nd} 334 | { "nd" } 335 | 336 | FUNCTION {bbl.rd} 337 | { "rd" } 338 | 339 | FUNCTION {bbl.th} 340 | { "th" } 341 | 342 | MACRO {jan} {"Jan."} 343 | 344 | MACRO {feb} {"Feb."} 345 | 346 | MACRO {mar} {"Mar."} 347 | 348 | MACRO {apr} {"Apr."} 349 | 350 | MACRO {may} {"May"} 351 | 352 | MACRO {jun} {"Jun."} 353 | 354 | MACRO {jul} {"Jul."} 355 | 356 | MACRO {aug} {"Aug."} 357 | 358 | MACRO {sep} {"Sep."} 359 | 360 | MACRO {oct} {"Oct."} 361 | 362 | MACRO {nov} {"Nov."} 363 | 364 | MACRO {dec} {"Dec."} 365 | 366 | FUNCTION {eng.ord} 367 | { duplicate$ "1" swap$ * 368 | #-2 #1 substring$ "1" = 369 | { bbl.th * } 370 | { duplicate$ #-1 #1 substring$ 371 | duplicate$ "1" = 372 | { pop$ bbl.st * } 373 | { duplicate$ "2" = 374 | { pop$ bbl.nd * } 375 | { "3" = 376 | { bbl.rd * } 377 | { bbl.th * } 378 | if$ 379 | } 380 | if$ 381 | } 382 | if$ 383 | } 384 | if$ 385 | } 386 | 387 | MACRO {acmcs} {"ACM Computing Surveys"} 388 | 389 | MACRO {acta} {"Acta Informatica"} 390 | 391 | MACRO {cacm} {"Communications of the ACM"} 392 | 393 | MACRO {ibmjrd} {"IBM Journal of Research and Development"} 394 | 395 | MACRO {ibmsj} {"IBM Systems Journal"} 396 | 397 | MACRO {ieeese} {"IEEE Transactions on Software Engineering"} 398 | 399 | MACRO {ieeetc} {"IEEE Transactions on Computers"} 400 | 401 | MACRO {ieeetcad} 402 | {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} 403 | 404 | MACRO {ipl} {"Information Processing Letters"} 405 | 406 | MACRO {jacm} {"Journal of the ACM"} 407 | 408 | MACRO {jcss} {"Journal of Computer and System Sciences"} 409 | 410 | MACRO {scp} {"Science of Computer Programming"} 411 | 412 | MACRO {sicomp} {"SIAM Journal on Computing"} 413 | 414 | MACRO {tocs} {"ACM Transactions on Computer Systems"} 415 | 416 | MACRO {tods} {"ACM Transactions on Database Systems"} 417 | 418 | MACRO {tog} {"ACM Transactions on Graphics"} 419 | 420 | MACRO {toms} {"ACM Transactions on Mathematical Software"} 421 | 422 | MACRO {toois} {"ACM Transactions on Office Information Systems"} 423 | 424 | MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} 425 | 426 | MACRO {tcs} {"Theoretical Computer Science"} 427 | FUNCTION {bibinfo.check} 428 | { swap$ 429 | duplicate$ missing$ 430 | { 431 | pop$ pop$ 432 | "" 433 | } 434 | { duplicate$ empty$ 435 | { 436 | swap$ pop$ 437 | } 438 | { swap$ 439 | pop$ 440 | } 441 | if$ 442 | } 443 | if$ 444 | } 445 | 446 | %%% 推出栈顶字面值作为信息,检查第二栈顶字面值是否是缺失的域, 447 | %%% 是则发起包含原栈顶字面值信息的“缺失”警告,并替换原第二栈顶字面值为空字符串 448 | %%% 否则,再检查原第二栈顶字面值是否为空,是则发起“空”警告,并保留原第二栈顶字面值成为新栈顶 449 | FUNCTION {bibinfo.warn} 450 | { swap$ 451 | duplicate$ missing$ 452 | { 453 | swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ 454 | "" 455 | } 456 | { duplicate$ empty$ 457 | { 458 | swap$ "empty " swap$ * " in " * cite$ * warning$ 459 | } 460 | { swap$ 461 | pop$ 462 | } 463 | if$ 464 | } 465 | if$ 466 | } 467 | FUNCTION {format.eprint} 468 | { eprint duplicate$ empty$ 469 | 'skip$ 470 | { "\eprint" 471 | archive empty$ 472 | 'skip$ 473 | { "[" * archive * "]" * } 474 | if$ 475 | "{" * swap$ * "}" * 476 | } 477 | if$ 478 | } 479 | FUNCTION {format.url} 480 | { 481 | doi empty$ 482 | { url } 483 | { "http://dx.doi.org/" doi * } 484 | if$ 485 | duplicate$ empty$ 486 | { pop$ "" } 487 | { "\url{" swap$ * "}" * } 488 | if$ 489 | } 490 | 491 | INTEGERS { nameptr namesleft numnames } 492 | 493 | 494 | STRINGS { bibinfo} 495 | 496 | FUNCTION {format.names} 497 | { 'bibinfo := 498 | duplicate$ empty$ 'skip$ { 499 | 's := 500 | "" 't := 501 | #1 'nameptr := 502 | s num.names$ 'numnames := 503 | numnames 'namesleft := 504 | { namesleft #0 > } 505 | { s nameptr 506 | "{f.{~}}{ jj}{ vv}{ ll}" 507 | format.name$ 508 | % remove.dots 509 | bibinfo bibinfo.check 510 | 't := 511 | nameptr #1 > 512 | { 513 | nameptr #3 514 | #1 + = 515 | numnames #3 516 | > and 517 | { "others" 't := 518 | #1 'namesleft := } 519 | 'skip$ 520 | if$ 521 | namesleft #1 > 522 | { ", " * t * } 523 | { 524 | s nameptr "{ll}" format.name$ duplicate$ "others" = 525 | { 't := } 526 | { pop$ } 527 | if$ 528 | "," * 529 | t "others" = 530 | { 531 | " " * bbl.etal * 532 | } 533 | { " " * t * } 534 | if$ 535 | } 536 | if$ 537 | } 538 | 't 539 | if$ 540 | nameptr #1 + 'nameptr := 541 | namesleft #1 - 'namesleft := 542 | } 543 | while$ 544 | } if$ 545 | } 546 | FUNCTION {format.schinese.names} 547 | { 'bibinfo := 548 | duplicate$ empty$ 'skip$ { 549 | 's := 550 | "" 't := 551 | #1 'nameptr := 552 | s num.names$ 'numnames := 553 | numnames 'namesleft := 554 | { namesleft #0 > } 555 | { s nameptr 556 | "{vv~}{ll}{ f{~}}{ jj}" 557 | format.name$ 558 | remove.dots 559 | bibinfo bibinfo.check 560 | 't := 561 | nameptr #1 > 562 | { 563 | nameptr #3 564 | #1 + = 565 | numnames #3 566 | > and 567 | { "others" 't := 568 | #1 'namesleft := } 569 | 'skip$ 570 | if$ 571 | namesleft #1 > 572 | { ", " * t * } 573 | { 574 | s nameptr "{ll}" format.name$ duplicate$ "others" = 575 | { 't := } 576 | { pop$ } 577 | if$ 578 | "," * 579 | t "others" = 580 | { 581 | " " * bbl.deng * 582 | } 583 | { " " * t * } 584 | if$ 585 | } 586 | if$ 587 | } 588 | 't 589 | if$ 590 | nameptr #1 + 'nameptr := 591 | namesleft #1 - 'namesleft := 592 | } 593 | while$ 594 | } if$ 595 | } 596 | FUNCTION {format.names.ed} 597 | { 598 | format.names 599 | } 600 | %FUNCTION {format.authors} 601 | %{ author "author" format.names 602 | %} 603 | FUNCTION {format.authors} 604 | { 605 | language missing$ 606 | { author "author" format.names } 607 | { 608 | language "schinese" = 609 | { author "author" format.schinese.names } 610 | { author "author" format.names } 611 | if$ 612 | } 613 | if$ 614 | } 615 | FUNCTION {format.translators} 616 | { 617 | language missing$ 618 | { translator "translator" format.names } 619 | { 620 | language "schinese" = 621 | { translator "translator" format.schinese.names "译" * } 622 | { translator "translator" format.names } 623 | if$ 624 | } 625 | if$ 626 | } 627 | FUNCTION {get.bbl.editor} 628 | { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } 629 | 630 | FUNCTION {format.editors} 631 | { editor "editor" format.names duplicate$ empty$ 'skip$ 632 | { 633 | "," * 634 | " " * 635 | get.bbl.editor 636 | capitalize 637 | "(" swap$ * ")" * 638 | * 639 | } 640 | if$ 641 | } 642 | FUNCTION {format.note} 643 | { 644 | note empty$ 645 | { "" } 646 | { note #1 #1 substring$ 647 | duplicate$ "{" = 648 | 'skip$ 649 | { output.state mid.sentence = 650 | { "l" } 651 | { "u" } 652 | if$ 653 | change.case$ 654 | } 655 | if$ 656 | note #2 global.max$ substring$ * "note" bibinfo.check 657 | } 658 | if$ 659 | } 660 | 661 | FUNCTION {format.title} 662 | { title 663 | duplicate$ empty$ 'skip$ 664 | { "t" change.case$ } 665 | if$ 666 | "title" bibinfo.check 667 | } 668 | 669 | %%% 构建bibitem信息的开头部分,并将当前“输出状态”调整为“最开始” 670 | FUNCTION {output.bibitem} 671 | { newline$ 672 | "\bibitem{" write$ 673 | cite$ write$ 674 | "}" write$ 675 | newline$ 676 | "" 677 | before.all 'output.state := 678 | } 679 | 680 | FUNCTION {n.dashify} 681 | { 682 | 't := 683 | "" 684 | { t empty$ not } 685 | { t #1 #1 substring$ "-" = 686 | { t #1 #2 substring$ "--" = not 687 | { "-" * 688 | t #2 global.max$ substring$ 't := 689 | } 690 | { { t #1 #1 substring$ "-" = } 691 | { "-" * 692 | t #2 global.max$ substring$ 't := 693 | } 694 | while$ 695 | } 696 | if$ 697 | } 698 | { t #1 #1 substring$ * 699 | t #2 global.max$ substring$ 't := 700 | } 701 | if$ 702 | } 703 | while$ 704 | } 705 | 706 | FUNCTION {word.in} 707 | { bbl.in capitalize 708 | " " * } 709 | 710 | FUNCTION {format.date} 711 | { 712 | month "month" bibinfo.check 713 | duplicate$ empty$ 714 | year "year" bibinfo.check duplicate$ empty$ 715 | { swap$ 'skip$ 716 | { "there's a month but no year in " cite$ * warning$ } 717 | if$ 718 | * 719 | } 720 | { swap$ 'skip$ 721 | { 722 | " " * swap$ 723 | } 724 | if$ 725 | * 726 | } 727 | if$ 728 | duplicate$ empty$ 729 | 'skip$ 730 | { 731 | before.all 'output.state := 732 | ", " swap$ * 733 | } 734 | if$ 735 | } 736 | FUNCTION {full.date} 737 | { 738 | year duplicate$ empty$ 739 | { "there's no year in " cite$ * warning$ 740 | pop$ 741 | "XXXX年" 742 | } 743 | { "年" * } 744 | if$ 745 | month duplicate$ empty$ 746 | { "there's no month in " cite$ * warning$ 747 | pop$ 748 | "Xx月" * 749 | } 750 | { * "月" * } 751 | if$ 752 | day duplicate$ empty$ 753 | { "there's no day in " cite$ * warning$ 754 | pop$ 755 | "xx日" * 756 | } 757 | { * "日" * } 758 | if$ 759 | } 760 | FUNCTION {format.full.date} 761 | { 762 | year "year" bibinfo.check duplicate$ empty$ 763 | { "there's no year in " cite$ * warning$ 764 | "XXXX年" * 765 | } 766 | { "年" * } 767 | if$ 768 | month "month" bibinfo.check duplicate$ empty$ 769 | { "there's no month in " cite$ * warning$ 770 | * "Xx月" * 771 | } 772 | { * "月" * } 773 | if$ 774 | day "day" bibinfo.check duplicate$ empty$ 775 | { "there's no day in " cite$ * warning$ 776 | * "xx日" * 777 | } 778 | { * "日" * } 779 | if$ 780 | duplicate$ empty$ 781 | 'skip$ 782 | { 783 | before.all 'output.state := 784 | ". " swap$ * 785 | } 786 | if$ 787 | } 788 | FUNCTION {format.btitle} 789 | { title "title" bibinfo.check 790 | duplicate$ empty$ 'skip$ 791 | { 792 | } 793 | if$ 794 | } 795 | FUNCTION {either.or.check} 796 | { empty$ 797 | 'pop$ 798 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } 799 | if$ 800 | } 801 | FUNCTION {format.bvolume} 802 | { volume empty$ 803 | { "" } 804 | { bbl.volume volume tie.or.space.prefix 805 | "volume" bibinfo.check * * 806 | series "series" bibinfo.check 807 | duplicate$ empty$ 'pop$ 808 | { swap$ bbl.of space.word * swap$ 809 | emphasize * } 810 | if$ 811 | "volume and number" number either.or.check 812 | } 813 | if$ 814 | } 815 | FUNCTION {format.number.series} 816 | { volume empty$ 817 | { number empty$ 818 | { series field.or.null } 819 | { series empty$ 820 | { number "number" bibinfo.check } 821 | { output.state mid.sentence = 822 | { bbl.number } 823 | { bbl.number capitalize } 824 | if$ 825 | number tie.or.space.prefix "number" bibinfo.check * * 826 | bbl.in space.word * 827 | series "series" bibinfo.check * 828 | } 829 | if$ 830 | } 831 | if$ 832 | } 833 | { "" } 834 | if$ 835 | } 836 | FUNCTION {is.num} 837 | { chr.to.int$ 838 | duplicate$ "0" chr.to.int$ < not 839 | swap$ "9" chr.to.int$ > not and 840 | } 841 | 842 | FUNCTION {extract.num} 843 | { duplicate$ 't := 844 | "" 's := 845 | { t empty$ not } 846 | { t #1 #1 substring$ 847 | t #2 global.max$ substring$ 't := 848 | duplicate$ is.num 849 | { s swap$ * 's := } 850 | { pop$ "" 't := } 851 | if$ 852 | } 853 | while$ 854 | s empty$ 855 | 'skip$ 856 | { pop$ s } 857 | if$ 858 | } 859 | 860 | FUNCTION {convert.edition} 861 | { extract.num "l" change.case$ 's := 862 | s "first" = s "1" = or 863 | { bbl.first 't := } 864 | { s "second" = s "2" = or 865 | { bbl.second 't := } 866 | { s "third" = s "3" = or 867 | { bbl.third 't := } 868 | { s "fourth" = s "4" = or 869 | { bbl.fourth 't := } 870 | { s "fifth" = s "5" = or 871 | { bbl.fifth 't := } 872 | { s #1 #1 substring$ is.num 873 | { s eng.ord 't := } 874 | { edition 't := } 875 | if$ 876 | } 877 | if$ 878 | } 879 | if$ 880 | } 881 | if$ 882 | } 883 | if$ 884 | } 885 | if$ 886 | t 887 | } 888 | 889 | FUNCTION {format.edition} 890 | { edition duplicate$ empty$ 'skip$ 891 | { 892 | convert.edition 893 | output.state mid.sentence = 894 | { "l" } 895 | { "t" } 896 | if$ change.case$ 897 | "edition" bibinfo.check 898 | " " * bbl.edition * 899 | } 900 | if$ 901 | } 902 | INTEGERS { multiresult } 903 | FUNCTION {multi.page.check} 904 | { 't := 905 | #0 'multiresult := 906 | { multiresult not 907 | t empty$ not 908 | and 909 | } 910 | { t #1 #1 substring$ 911 | duplicate$ "-" = 912 | swap$ duplicate$ "," = 913 | swap$ "+" = 914 | or or 915 | { #1 'multiresult := } 916 | { t #2 global.max$ substring$ 't := } 917 | if$ 918 | } 919 | while$ 920 | multiresult 921 | } 922 | FUNCTION {format.pages} 923 | { pages duplicate$ empty$ 'skip$ 924 | { duplicate$ multi.page.check 925 | { 926 | n.dashify 927 | } 928 | { 929 | } 930 | if$ 931 | "pages" bibinfo.check 932 | } 933 | if$ 934 | } 935 | FUNCTION {format.journal.pages} 936 | { pages duplicate$ empty$ 'pop$ 937 | { swap$ duplicate$ empty$ 938 | { pop$ pop$ format.pages } 939 | { 940 | ": " * 941 | swap$ 942 | n.dashify 943 | "pages" bibinfo.check 944 | * 945 | } 946 | if$ 947 | } 948 | if$ 949 | } 950 | FUNCTION {format.journal.eid} 951 | { eid "eid" bibinfo.check 952 | duplicate$ empty$ 'pop$ 953 | { swap$ duplicate$ empty$ 'skip$ 954 | { 955 | ": " * 956 | } 957 | if$ 958 | swap$ * 959 | } 960 | if$ 961 | } 962 | FUNCTION {format.vol.num.pages} 963 | { volume field.or.null 964 | duplicate$ empty$ 'skip$ 965 | { 966 | "volume" bibinfo.check 967 | } 968 | if$ 969 | number "number" bibinfo.check duplicate$ empty$ 'skip$ 970 | { 971 | swap$ duplicate$ empty$ 972 | { "there's a number but no volume in " cite$ * warning$ } 973 | 'skip$ 974 | if$ 975 | swap$ 976 | "(" swap$ * ")" * 977 | } 978 | if$ * 979 | } 980 | 981 | FUNCTION {format.chapter.pages} 982 | { chapter empty$ 983 | { "" } 984 | { type empty$ 985 | { bbl.chapter } 986 | { type "l" change.case$ 987 | "type" bibinfo.check 988 | } 989 | if$ 990 | chapter tie.or.space.prefix 991 | "chapter" bibinfo.check 992 | * * 993 | } 994 | if$ 995 | } 996 | 997 | FUNCTION {format.booktitle} 998 | { 999 | booktitle "booktitle" bibinfo.check 1000 | } 1001 | FUNCTION {format.in.ed.booktitle} 1002 | { format.booktitle duplicate$ empty$ 'skip$ 1003 | { 1004 | editor "editor" format.names.ed duplicate$ empty$ 'pop$ 1005 | { 1006 | "," * 1007 | " " * 1008 | get.bbl.editor 1009 | capitalize 1010 | "(" swap$ * ") " * 1011 | * swap$ 1012 | * } 1013 | if$ 1014 | %word.in swap$ * 1015 | } 1016 | if$ 1017 | } 1018 | FUNCTION {empty.misc.check} 1019 | { author empty$ title empty$ howpublished empty$ 1020 | month empty$ year empty$ note empty$ 1021 | and and and and and 1022 | { "all relevant fields are empty in " cite$ * warning$ } 1023 | 'skip$ 1024 | if$ 1025 | } 1026 | FUNCTION {format.thesis.type} 1027 | { type duplicate$ empty$ 1028 | 'pop$ 1029 | { swap$ pop$ 1030 | "t" change.case$ "type" bibinfo.check 1031 | } 1032 | if$ 1033 | } 1034 | FUNCTION {format.tr.number} 1035 | { number "number" bibinfo.check 1036 | type duplicate$ empty$ 1037 | { pop$ bbl.techrep } 1038 | 'skip$ 1039 | if$ 1040 | "type" bibinfo.check 1041 | swap$ duplicate$ empty$ 1042 | { pop$ "t" change.case$ } 1043 | { tie.or.space.prefix * * } 1044 | if$ 1045 | } 1046 | FUNCTION {format.article.crossref} 1047 | { 1048 | key duplicate$ empty$ 1049 | { pop$ 1050 | journal duplicate$ empty$ 1051 | { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } 1052 | { "journal" bibinfo.check emphasize word.in swap$ * } 1053 | if$ 1054 | } 1055 | { word.in swap$ * " " *} 1056 | if$ 1057 | " \cite{" * crossref * "}" * 1058 | } 1059 | FUNCTION {format.crossref.editor} 1060 | { editor #1 "{vv~}{ll}" format.name$ 1061 | "editor" bibinfo.check 1062 | editor num.names$ duplicate$ 1063 | #2 > 1064 | { pop$ 1065 | "editor" bibinfo.check 1066 | " " * bbl.etal 1067 | * 1068 | } 1069 | { #2 < 1070 | 'skip$ 1071 | { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 1072 | { 1073 | "editor" bibinfo.check 1074 | " " * bbl.etal 1075 | * 1076 | } 1077 | { 1078 | bbl.and space.word 1079 | * editor #2 "{vv~}{ll}" format.name$ 1080 | "editor" bibinfo.check 1081 | * 1082 | } 1083 | if$ 1084 | } 1085 | if$ 1086 | } 1087 | if$ 1088 | } 1089 | FUNCTION {format.book.crossref} 1090 | { volume duplicate$ empty$ 1091 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 1092 | pop$ word.in 1093 | } 1094 | { bbl.volume 1095 | capitalize 1096 | swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * 1097 | } 1098 | if$ 1099 | editor empty$ 1100 | editor field.or.null author field.or.null = 1101 | or 1102 | { key empty$ 1103 | { series empty$ 1104 | { "need editor, key, or series for " cite$ * " to crossref " * 1105 | crossref * warning$ 1106 | "" * 1107 | } 1108 | { series emphasize * } 1109 | if$ 1110 | } 1111 | { key * } 1112 | if$ 1113 | } 1114 | { format.crossref.editor * } 1115 | if$ 1116 | " \cite{" * crossref * "}" * 1117 | } 1118 | FUNCTION {format.incoll.inproc.crossref} 1119 | { 1120 | editor empty$ 1121 | editor field.or.null author field.or.null = 1122 | or 1123 | { key empty$ 1124 | { format.booktitle duplicate$ empty$ 1125 | { "need editor, key, or booktitle for " cite$ * " to crossref " * 1126 | crossref * warning$ 1127 | } 1128 | { word.in swap$ * } 1129 | if$ 1130 | } 1131 | { word.in key * " " *} 1132 | if$ 1133 | } 1134 | { word.in format.crossref.editor * " " *} 1135 | if$ 1136 | " \cite{" * crossref * "}" * 1137 | } 1138 | FUNCTION {format.org.or.pub} 1139 | { 't := 1140 | "" 1141 | address empty$ t empty$ and 1142 | 'skip$ 1143 | { 1144 | address "address" bibinfo.check * 1145 | t empty$ 1146 | 'skip$ 1147 | { address empty$ 1148 | 'skip$ 1149 | { ": " * } 1150 | if$ 1151 | t * 1152 | } 1153 | if$ 1154 | } 1155 | if$ 1156 | } 1157 | FUNCTION {format.publisher.address} 1158 | { publisher "publisher" bibinfo.warn format.org.or.pub 1159 | } 1160 | 1161 | FUNCTION {format.organization.address} 1162 | { organization "organization" bibinfo.check format.org.or.pub 1163 | } 1164 | 1165 | FUNCTION {article} 1166 | { output.bibitem 1167 | format.authors "author" output.check 1168 | new.block 1169 | format.title "[J]" * "title" output.check 1170 | new.block 1171 | crossref missing$ 1172 | { 1173 | journal 1174 | "journal" bibinfo.check 1175 | "journal" output.check 1176 | year "year" output.check 1177 | volume missing$ 1178 | { 1179 | number missing$ 1180 | {before.all 'output.state :=} 1181 | {date.block} 1182 | if$ 1183 | } 1184 | {date.block} 1185 | if$ 1186 | format.vol.num.pages output 1187 | } 1188 | { format.article.crossref output.nonnull 1189 | } 1190 | if$ 1191 | eid empty$ 1192 | { format.journal.pages } 1193 | { format.journal.eid } 1194 | if$ 1195 | new.block 1196 | % format.url output 1197 | % new.block 1198 | format.note output 1199 | format.eprint output 1200 | fin.entry 1201 | } 1202 | FUNCTION {book} 1203 | { output.bibitem 1204 | author empty$ 1205 | { format.editors "author and editor" output.check 1206 | add.blank 1207 | } 1208 | { format.authors output.nonnull 1209 | crossref missing$ 1210 | { "author and editor" editor either.or.check } 1211 | 'skip$ 1212 | if$ 1213 | } 1214 | if$ 1215 | new.block 1216 | format.btitle "[M]" * "title" output.check 1217 | new.block 1218 | translator missing$ 1219 | {skip$} 1220 | { 1221 | "(" format.translators * ")" * "translator" output.check 1222 | new.block 1223 | } 1224 | if$ 1225 | %format.edition output 1226 | % edition missing$ 1227 | % {skip$} 1228 | % { 1229 | % language missing$ 1230 | % { format.edition "edition" output.check } 1231 | % { edition "版" * "edition" output.check } 1232 | % if$ 1233 | % new.block 1234 | % } 1235 | % if$ 1236 | crossref missing$ 1237 | { format.bvolume output 1238 | new.block 1239 | format.number.series output 1240 | new.sentence 1241 | format.publisher.address output 1242 | } 1243 | { 1244 | new.block 1245 | format.book.crossref output.nonnull 1246 | } 1247 | if$ 1248 | pages missing$ 1249 | {year "year" output.check} 1250 | { 1251 | year ", " * format.pages * "pages" output.check 1252 | } 1253 | if$ 1254 | new.block 1255 | format.url output 1256 | new.block 1257 | format.note output 1258 | format.eprint output 1259 | fin.entry 1260 | } 1261 | FUNCTION {booklet} 1262 | { output.bibitem 1263 | format.authors output 1264 | new.block 1265 | format.title "[M]" * "title" output.check 1266 | new.block 1267 | howpublished "howpublished" bibinfo.check output 1268 | address "address" bibinfo.check output 1269 | format.date output 1270 | new.block 1271 | format.url output 1272 | new.block 1273 | format.note output 1274 | format.eprint output 1275 | fin.entry 1276 | } 1277 | 1278 | FUNCTION {inbook} 1279 | { output.bibitem 1280 | author empty$ 1281 | { format.editors "author and editor" output.check 1282 | } 1283 | { format.authors output.nonnull 1284 | crossref missing$ 1285 | { "author and editor" editor either.or.check } 1286 | 'skip$ 1287 | if$ 1288 | } 1289 | if$ 1290 | new.block 1291 | format.btitle "[M]" * "title" output.check 1292 | crossref missing$ 1293 | { 1294 | format.publisher.address output 1295 | format.bvolume output 1296 | format.chapter.pages "chapter and pages" output.check 1297 | new.block 1298 | format.number.series output 1299 | new.sentence 1300 | } 1301 | { 1302 | format.chapter.pages "chapter and pages" output.check 1303 | new.block 1304 | format.book.crossref output.nonnull 1305 | } 1306 | if$ 1307 | format.edition output 1308 | format.date "year" output.check 1309 | date.block 1310 | format.pages "pages" output.check 1311 | new.block 1312 | format.url output 1313 | new.block 1314 | format.note output 1315 | format.eprint output 1316 | fin.entry 1317 | } 1318 | 1319 | FUNCTION {incollection} 1320 | { output.bibitem 1321 | format.authors "author" output.check 1322 | new.block 1323 | format.title "title" output.check 1324 | new.block 1325 | crossref missing$ 1326 | { format.in.ed.booktitle "booktitle" output.check 1327 | format.publisher.address output 1328 | format.bvolume output 1329 | format.number.series output 1330 | format.chapter.pages output 1331 | new.sentence 1332 | format.edition output 1333 | } 1334 | { format.incoll.inproc.crossref output.nonnull 1335 | format.chapter.pages output 1336 | } 1337 | if$ 1338 | format.date "year" output.check 1339 | date.block 1340 | format.pages "pages" output.check 1341 | new.block 1342 | format.url output 1343 | new.block 1344 | format.note output 1345 | format.eprint output 1346 | fin.entry 1347 | } 1348 | FUNCTION {inproceedings} 1349 | { output.bibitem 1350 | format.authors "author" output.check 1351 | new.block 1352 | format.title "[C]" * "title" output.check 1353 | new.block 1354 | crossref missing$ 1355 | { format.in.ed.booktitle "booktitle" output.check 1356 | %new.sentence 1357 | publisher empty$ 1358 | { format.organization.address output } 1359 | { organization "organization" bibinfo.check output 1360 | format.publisher.address output 1361 | } 1362 | if$ 1363 | format.bvolume output 1364 | format.number.series output 1365 | } 1366 | { format.incoll.inproc.crossref output.nonnull 1367 | } 1368 | if$ 1369 | year ": " * format.pages * "pages" output.check 1370 | new.block 1371 | % format.url output 1372 | % new.block 1373 | format.note output 1374 | format.eprint output 1375 | fin.entry 1376 | } 1377 | FUNCTION {conference} { inproceedings } 1378 | FUNCTION {manual} 1379 | { output.bibitem 1380 | author empty$ 1381 | { organization "organization" bibinfo.check 1382 | duplicate$ empty$ 'pop$ 1383 | { output 1384 | address "address" bibinfo.check output 1385 | } 1386 | if$ 1387 | } 1388 | { format.authors output.nonnull } 1389 | if$ 1390 | new.block 1391 | format.btitle "title" output.check 1392 | author empty$ 1393 | { organization empty$ 1394 | { 1395 | address new.block.checka 1396 | address "address" bibinfo.check output 1397 | } 1398 | 'skip$ 1399 | if$ 1400 | } 1401 | { 1402 | organization address new.block.checkb 1403 | organization "organization" bibinfo.check output 1404 | address "address" bibinfo.check output 1405 | } 1406 | if$ 1407 | format.edition output 1408 | format.date output 1409 | new.block 1410 | format.url output 1411 | new.block 1412 | format.note output 1413 | format.eprint output 1414 | fin.entry 1415 | } 1416 | 1417 | FUNCTION {mastersthesis} 1418 | { output.bibitem 1419 | format.authors "author" output.check 1420 | new.block 1421 | format.title "[D]" * "title" output.check 1422 | new.block 1423 | %bbl.mthesis format.thesis.type output.nonnull 1424 | address "address" bibinfo.warn output 1425 | ": " * write$ 1426 | school "school" bibinfo.warn 1427 | pages missing$ 1428 | { 1429 | pages "pages" bibinfo.warn pop$ 1430 | year "year" output.check 1431 | } 1432 | {year ", " * format.pages * "pages" output.check} 1433 | if$ 1434 | new.block 1435 | format.url output 1436 | new.block 1437 | format.note output 1438 | format.eprint output 1439 | fin.entry 1440 | } 1441 | 1442 | FUNCTION {phdthesis} 1443 | { output.bibitem 1444 | format.authors "author" output.check 1445 | new.block 1446 | format.title "[D]" * 1447 | "title" output.check 1448 | new.block 1449 | %bbl.phdthesis format.thesis.type output.nonnull 1450 | address "address" bibinfo.warn output 1451 | ": " * write$ 1452 | school "school" bibinfo.warn 1453 | pages missing$ 1454 | { 1455 | pages "pages" bibinfo.warn pop$ 1456 | year "year" output.check 1457 | } 1458 | {year ", " * format.pages * "pages" output.check} 1459 | if$ 1460 | new.block 1461 | format.url output 1462 | new.block 1463 | format.note output 1464 | format.eprint output 1465 | fin.entry 1466 | } 1467 | 1468 | FUNCTION {proceedings} 1469 | { output.bibitem 1470 | editor empty$ 1471 | { organization "organization" bibinfo.check output 1472 | } 1473 | { format.editors output.nonnull } 1474 | if$ 1475 | new.block 1476 | format.btitle "[C]" * "title" output.check 1477 | format.bvolume output 1478 | format.number.series output 1479 | editor empty$ 1480 | { publisher empty$ 1481 | 'skip$ 1482 | { 1483 | new.sentence 1484 | format.publisher.address output 1485 | } 1486 | if$ 1487 | } 1488 | { publisher empty$ 1489 | { 1490 | new.sentence 1491 | format.organization.address output } 1492 | { 1493 | new.sentence 1494 | organization "organization" bibinfo.check output 1495 | format.publisher.address output 1496 | } 1497 | if$ 1498 | } 1499 | if$ 1500 | year "year" output.check 1501 | new.block 1502 | % format.url output 1503 | % new.block 1504 | format.note output 1505 | format.eprint output 1506 | fin.entry 1507 | } 1508 | 1509 | FUNCTION {news} 1510 | { output.bibitem 1511 | format.authors "author" output.check 1512 | new.block 1513 | format.title "[N]" * "title" output.check 1514 | new.block 1515 | publisher "publisher" bibinfo.warn output 1516 | full.date "date" bibinfo.warn output write$ 1517 | % " (" number * ")" * 1518 | "" 1519 | new.block 1520 | format.url output 1521 | new.block 1522 | format.note output 1523 | format.eprint output 1524 | fin.entry 1525 | } 1526 | 1527 | FUNCTION {report} 1528 | { output.bibitem 1529 | format.authors "author" output.check 1530 | new.block 1531 | format.title "[R]" * 1532 | "title" output.check 1533 | new.block 1534 | %format.tr.number output.nonnull 1535 | address "address" bibinfo.warn output 1536 | ": " * write$ 1537 | publisher "publisher" bibinfo.warn 1538 | year "year" output.check 1539 | new.block 1540 | format.url output 1541 | new.block 1542 | format.note output 1543 | format.eprint output 1544 | fin.entry 1545 | } 1546 | 1547 | FUNCTION {unpublished} 1548 | { output.bibitem 1549 | format.authors "author" output.check 1550 | new.block 1551 | format.title "title" output.check 1552 | format.date output 1553 | new.block 1554 | format.url output 1555 | new.block 1556 | format.note "note" output.check 1557 | format.eprint output 1558 | fin.entry 1559 | } 1560 | 1561 | FUNCTION {patent} 1562 | { output.bibitem 1563 | format.authors "author" output.check 1564 | new.block 1565 | format.title "[P]. " * nation * ", " * 1566 | type * ", " * number * "title" output.check 1567 | % new.block 1568 | crossref missing$ 1569 | { 1570 | %journal 1571 | %"journal" bibinfo.check 1572 | %"journal" output.check 1573 | full.date "fulldate" output.check 1574 | } 1575 | { format.article.crossref output.nonnull 1576 | } 1577 | if$ 1578 | %eid empty$ 1579 | % { format.journal.pages } 1580 | % { format.journal.eid } 1581 | %if$ 1582 | new.block 1583 | format.url output 1584 | new.block 1585 | format.note output 1586 | format.eprint output 1587 | fin.entry 1588 | } 1589 | 1590 | FUNCTION {standard} 1591 | { output.bibitem 1592 | format.authors "author" output.check 1593 | new.block 1594 | number ". " * format.title * "[S]" * "title" output.check 1595 | new.block 1596 | address "address" bibinfo.warn output 1597 | ": " * write$ 1598 | publisher "publisher" bibinfo.warn 1599 | full.date "date" output.check 1600 | new.block 1601 | format.url output 1602 | new.block 1603 | format.note output 1604 | format.eprint output 1605 | fin.entry 1606 | } 1607 | 1608 | 1609 | FUNCTION {digital} 1610 | { output.bibitem 1611 | format.authors "author" output.check 1612 | new.block 1613 | format.title "[" * type * "]" * "title" output.check 1614 | new.block 1615 | address missing$ 1616 | { modifydate "modifydate" bibinfo.warn output } 1617 | { 1618 | address "address" bibinfo.warn output 1619 | ": " * write$ 1620 | publisher "publisher" bibinfo.warn write$ 1621 | % year "year" bibinfo.warn output 1622 | ", " write$ 1623 | % format.pages "pages" bibinfo.warn write$ 1624 | modifydate "modifydate" bibinfo.warn 1625 | % " (" swap$ * ")" * write$ 1626 | % citedate "citedate" bibinfo.warn 1627 | % " [" swap$ * "]" * 1628 | new.block 1629 | } 1630 | if$ 1631 | % format.url output 1632 | fin.entry 1633 | } 1634 | 1635 | FUNCTION {misc} 1636 | { output.bibitem 1637 | format.authors output 1638 | title howpublished new.block.checkb 1639 | format.title output 1640 | howpublished new.block.checka 1641 | howpublished "howpublished" bibinfo.check output 1642 | format.date output 1643 | new.block 1644 | format.url output 1645 | new.block 1646 | format.note output 1647 | format.eprint output 1648 | fin.entry 1649 | empty.misc.check 1650 | } 1651 | 1652 | FUNCTION {default.type} { misc } 1653 | READ 1654 | STRINGS { longest.label } 1655 | INTEGERS { number.label longest.label.width } 1656 | FUNCTION {initialize.longest.label} 1657 | { "" 'longest.label := 1658 | #1 'number.label := 1659 | #0 'longest.label.width := 1660 | } 1661 | FUNCTION {longest.label.pass} 1662 | { number.label int.to.str$ 'label := 1663 | number.label #1 + 'number.label := 1664 | label width$ longest.label.width > 1665 | { label 'longest.label := 1666 | label width$ 'longest.label.width := 1667 | } 1668 | 'skip$ 1669 | if$ 1670 | } 1671 | EXECUTE {initialize.longest.label} 1672 | ITERATE {longest.label.pass} 1673 | FUNCTION {begin.bib} 1674 | { preamble$ empty$ 1675 | 'skip$ 1676 | { preamble$ write$ newline$ } 1677 | if$ 1678 | "\begin{thebibliography}{" longest.label * "}" * 1679 | write$ newline$ 1680 | "\providecommand{\url}[1]{\texttt{#1}}" 1681 | write$ newline$ 1682 | "\providecommand{\urlprefix}{URL }" 1683 | write$ newline$ 1684 | "\providecommand{\eprint}[2][]{\url{#2}}" 1685 | write$ newline$ 1686 | } 1687 | EXECUTE {begin.bib} 1688 | EXECUTE {init.state.consts} 1689 | ITERATE {call.type$} 1690 | FUNCTION {end.bib} 1691 | { newline$ 1692 | "\end{thebibliography}" write$ newline$ 1693 | } 1694 | EXECUTE {end.bib} 1695 | %% End of customized bst file 1696 | %% 1697 | %% End of file `DissertUESTC.bst'. 1698 | -------------------------------------------------------------------------------- /DissertUESTC.bst: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `DissertUESTC.bst', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% merlin.mbs (with options: `seq-no,nm-rv,ed-rev,jnrlst,nmlm,x3,m3,dt-jnl,yr-com,dtrev,yrp-col,jttl-rm,thtit-a,volp-sp,pp-last,num-xser,btit-rm,bt-rm,bkpg-x,add-pub,pre-pub,url-doi,edparc,bkedcap,ppx,ed,abr,ednx,ord,xand,eprint,url,url-blk,em-x,nfss,') 8 | %% ---------------------------------------- 9 | %% *** Dissertation style for UESTC in 2024 *** 10 | %% 11 | %% Copyright 1994-2011 Patrick W Daly 12 | % =============================================================== 13 | % IMPORTANT NOTICE: 14 | % This bibliographic style (bst) file has been generated from one or 15 | % more master bibliographic style (mbs) files, listed above. 16 | % 17 | % This generated file can be redistributed and/or modified under the terms 18 | % of the LaTeX Project Public License Distributed from CTAN 19 | % archives in directory macros/latex/base/lppl.txt; either 20 | % 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 later 25 | %------------------------------------------------------------------- 26 | % This bibliography style file is intended for texts in ENGLISH 27 | % This is a numerical citation style, and as such is standard LaTeX. 28 | % It requires no extra package to interface to the main text. 29 | % The form of the \bibitem entries is 30 | % \bibitem{key}... 31 | % Usage of \cite is as follows: 32 | % \cite{key} ==>> [#] 33 | % \cite[chap. 2]{key} ==>> [#, chap. 2] 34 | % where # is a number determined by the ordering in the reference list. 35 | % The order in the reference list is that by which the works were originally 36 | % cited in the text, or that in the database. 37 | %--------------------------------------------------------------------- 38 | 39 | ENTRY 40 | { address 41 | archive 42 | author 43 | booktitle 44 | chapter 45 | citedate 46 | day 47 | doi 48 | edition 49 | editor 50 | eid 51 | eprint 52 | howpublished 53 | journal 54 | key 55 | language 56 | modifydate 57 | month 58 | note 59 | number 60 | organization 61 | pages 62 | publisher 63 | school 64 | series 65 | title 66 | translator 67 | type 68 | url 69 | volume 70 | year 71 | nation 72 | } 73 | {} 74 | { label } 75 | INTEGERS { output.state before.all mid.sentence after.sentence after.block } 76 | FUNCTION {init.state.consts} 77 | { #0 'before.all := 78 | #1 'mid.sentence := 79 | #2 'after.sentence := 80 | #3 'after.block := 81 | } 82 | STRINGS { s t} 83 | 84 | %%% 根据当前“输出状态”确定在第二栈顶字面值尾部是否应该添加分隔符以及添加哪种分隔符: 85 | %%% mid.sentence 状态添加 ", " 86 | %%% after.block 状态添加 ".\n" 87 | %%% before.all 状态不加 88 | %%% after.sentence 状态添加 ". " 89 | %%% 然后向输出缓冲区写入第二栈顶字面值,更改“输出状态”为mid.sentence,最后在栈中保留栈顶字面值 90 | FUNCTION {output.nonnull} 91 | { 's := 92 | output.state mid.sentence = 93 | { ", " * write$ } 94 | { output.state after.block = 95 | { add.period$ write$ 96 | newline$ 97 | "\newblock " write$ 98 | } 99 | { output.state before.all = 100 | 'write$ 101 | { add.period$ " " * write$ } 102 | if$ 103 | } 104 | if$ 105 | mid.sentence 'output.state := 106 | } 107 | if$ 108 | s 109 | } 110 | 111 | %%% 判断栈顶字面值是否为空,若是,则推出栈顶的空字面值, 112 | %%% 否则确定栈顶字面值前合适的分隔符并将该分隔符立即写入输出缓冲区, 113 | %%% 同时设置当前输出状态为mid.sentence 114 | FUNCTION {output} 115 | { duplicate$ empty$ 116 | 'pop$ 117 | 'output.nonnull 118 | if$ 119 | } 120 | 121 | %%% 读取并推出栈顶字面值,然后判断原第二栈顶字面值是否为空, 122 | %%% 是则推出原第二栈顶字面值,并发起附带原栈顶字面值的警告信息 123 | %%% 否则执行output.nonnull函数 124 | %%% 相较于output函数,output.check在遇到空栈顶时会输出由用户(部分)自定义的警告信息 125 | FUNCTION {output.check} 126 | { 't := 127 | duplicate$ empty$ 128 | { pop$ "empty " t * " in " * cite$ * warning$ } 129 | 'output.nonnull 130 | if$ 131 | } 132 | 133 | %%% 给栈顶元素尾部加上".",并写入输出缓冲区,然后将输出缓冲区中的所有信息写入bbl文件 134 | FUNCTION {fin.entry} 135 | { add.period$ 136 | write$ 137 | newline$ 138 | } 139 | 140 | 141 | %%% 当前输出状态不是“最开始”时,将当前输出状态设置为“区块之后” 142 | FUNCTION {new.block} 143 | { output.state before.all = 144 | 'skip$ 145 | { after.block 'output.state := } 146 | if$ 147 | } 148 | 149 | %%% 当前输出状态不是“最开始”和“区块之后”时,将当前输出状态设置为“句子之后” 150 | FUNCTION {new.sentence} 151 | { output.state after.block = 152 | 'skip$ 153 | { output.state before.all = 154 | 'skip$ 155 | { after.sentence 'output.state := } 156 | if$ 157 | } 158 | if$ 159 | } 160 | 161 | %%% 给当前栈顶字面值尾部添加空格,并设置输出状态为“最开始” 162 | FUNCTION {add.blank} 163 | { " " * before.all 'output.state := 164 | } 165 | 166 | 167 | FUNCTION {date.block} 168 | { 169 | "," * 170 | add.blank 171 | } 172 | 173 | FUNCTION {not} 174 | { { #0 } 175 | { #1 } 176 | if$ 177 | } 178 | FUNCTION {and} 179 | { 'skip$ 180 | { pop$ #0 } 181 | if$ 182 | } 183 | FUNCTION {or} 184 | { { pop$ #1 } 185 | 'skip$ 186 | if$ 187 | } 188 | STRINGS {z} 189 | 190 | FUNCTION {remove.dots} 191 | { 'z := 192 | "" 193 | { z empty$ not } 194 | { z #1 #2 substring$ 195 | duplicate$ "\." = 196 | { z #3 global.max$ substring$ 'z := * } 197 | { pop$ 198 | z #1 #1 substring$ 199 | z #2 global.max$ substring$ 'z := 200 | duplicate$ "." = 'pop$ 201 | { * } 202 | if$ 203 | } 204 | if$ 205 | } 206 | while$ 207 | } 208 | FUNCTION {new.block.checka} 209 | { empty$ 210 | 'skip$ 211 | 'new.block 212 | if$ 213 | } 214 | FUNCTION {new.block.checkb} 215 | { empty$ 216 | swap$ empty$ 217 | and 218 | 'skip$ 219 | 'new.block 220 | if$ 221 | } 222 | FUNCTION {new.sentence.checka} 223 | { empty$ 224 | 'skip$ 225 | 'new.sentence 226 | if$ 227 | } 228 | FUNCTION {new.sentence.checkb} 229 | { empty$ 230 | swap$ empty$ 231 | and 232 | 'skip$ 233 | 'new.sentence 234 | if$ 235 | } 236 | FUNCTION {field.or.null} 237 | { duplicate$ empty$ 238 | { pop$ "" } 239 | 'skip$ 240 | if$ 241 | } 242 | FUNCTION {emphasize} 243 | { skip$ } 244 | FUNCTION {tie.or.space.prefix} 245 | { duplicate$ text.length$ #3 < 246 | { "~" } 247 | { " " } 248 | if$ 249 | swap$ 250 | } 251 | 252 | FUNCTION {capitalize} 253 | { "u" change.case$ "t" change.case$ } 254 | 255 | FUNCTION {space.word} 256 | { " " swap$ * " " * } 257 | % Here are the language-specific definitions for explicit words. 258 | % Each function has a name bbl.xxx where xxx is the English word. 259 | % The language selected here is ENGLISH 260 | FUNCTION {bbl.and} 261 | { "and"} 262 | 263 | FUNCTION {bbl.etal} 264 | { "et~al." } 265 | 266 | FUNCTION {bbl.deng} 267 | { "等" } 268 | 269 | FUNCTION {bbl.editors} 270 | { "eds." } 271 | 272 | FUNCTION {bbl.editor} 273 | { "ed." } 274 | 275 | FUNCTION {bbl.edby} 276 | { "edited by" } 277 | 278 | FUNCTION {bbl.edition} 279 | { "ed." } 280 | 281 | FUNCTION {bbl.volume} 282 | { "vol." } 283 | 284 | FUNCTION {bbl.of} 285 | { "of" } 286 | 287 | FUNCTION {bbl.number} 288 | { "no." } 289 | 290 | FUNCTION {bbl.nr} 291 | { "no." } 292 | 293 | FUNCTION {bbl.in} 294 | { "in" } 295 | 296 | FUNCTION {bbl.pages} 297 | { "" } 298 | 299 | FUNCTION {bbl.page} 300 | { "" } 301 | 302 | FUNCTION {bbl.chapter} 303 | { "chap." } 304 | 305 | FUNCTION {bbl.techrep} 306 | { "Tech. Rep." } 307 | 308 | FUNCTION {bbl.mthesis} 309 | { "Master's thesis" } 310 | 311 | FUNCTION {bbl.phdthesis} 312 | { "Ph.D. thesis" } 313 | 314 | FUNCTION {bbl.first} 315 | { "1st" } 316 | 317 | FUNCTION {bbl.second} 318 | { "2nd" } 319 | 320 | FUNCTION {bbl.third} 321 | { "3rd" } 322 | 323 | FUNCTION {bbl.fourth} 324 | { "4th" } 325 | 326 | FUNCTION {bbl.fifth} 327 | { "5th" } 328 | 329 | FUNCTION {bbl.st} 330 | { "st" } 331 | 332 | FUNCTION {bbl.nd} 333 | { "nd" } 334 | 335 | FUNCTION {bbl.rd} 336 | { "rd" } 337 | 338 | FUNCTION {bbl.th} 339 | { "th" } 340 | 341 | MACRO {jan} {"Jan."} 342 | 343 | MACRO {feb} {"Feb."} 344 | 345 | MACRO {mar} {"Mar."} 346 | 347 | MACRO {apr} {"Apr."} 348 | 349 | MACRO {may} {"May"} 350 | 351 | MACRO {jun} {"Jun."} 352 | 353 | MACRO {jul} {"Jul."} 354 | 355 | MACRO {aug} {"Aug."} 356 | 357 | MACRO {sep} {"Sep."} 358 | 359 | MACRO {oct} {"Oct."} 360 | 361 | MACRO {nov} {"Nov."} 362 | 363 | MACRO {dec} {"Dec."} 364 | 365 | FUNCTION {eng.ord} 366 | { duplicate$ "1" swap$ * 367 | #-2 #1 substring$ "1" = 368 | { bbl.th * } 369 | { duplicate$ #-1 #1 substring$ 370 | duplicate$ "1" = 371 | { pop$ bbl.st * } 372 | { duplicate$ "2" = 373 | { pop$ bbl.nd * } 374 | { "3" = 375 | { bbl.rd * } 376 | { bbl.th * } 377 | if$ 378 | } 379 | if$ 380 | } 381 | if$ 382 | } 383 | if$ 384 | } 385 | 386 | MACRO {acmcs} {"ACM Computing Surveys"} 387 | 388 | MACRO {acta} {"Acta Informatica"} 389 | 390 | MACRO {cacm} {"Communications of the ACM"} 391 | 392 | MACRO {ibmjrd} {"IBM Journal of Research and Development"} 393 | 394 | MACRO {ibmsj} {"IBM Systems Journal"} 395 | 396 | MACRO {ieeese} {"IEEE Transactions on Software Engineering"} 397 | 398 | MACRO {ieeetc} {"IEEE Transactions on Computers"} 399 | 400 | MACRO {ieeetcad} 401 | {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} 402 | 403 | MACRO {ipl} {"Information Processing Letters"} 404 | 405 | MACRO {jacm} {"Journal of the ACM"} 406 | 407 | MACRO {jcss} {"Journal of Computer and System Sciences"} 408 | 409 | MACRO {scp} {"Science of Computer Programming"} 410 | 411 | MACRO {sicomp} {"SIAM Journal on Computing"} 412 | 413 | MACRO {tocs} {"ACM Transactions on Computer Systems"} 414 | 415 | MACRO {tods} {"ACM Transactions on Database Systems"} 416 | 417 | MACRO {tog} {"ACM Transactions on Graphics"} 418 | 419 | MACRO {toms} {"ACM Transactions on Mathematical Software"} 420 | 421 | MACRO {toois} {"ACM Transactions on Office Information Systems"} 422 | 423 | MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} 424 | 425 | MACRO {tcs} {"Theoretical Computer Science"} 426 | FUNCTION {bibinfo.check} 427 | { swap$ 428 | duplicate$ missing$ 429 | { 430 | pop$ pop$ 431 | "" 432 | } 433 | { duplicate$ empty$ 434 | { 435 | swap$ pop$ 436 | } 437 | { swap$ 438 | pop$ 439 | } 440 | if$ 441 | } 442 | if$ 443 | } 444 | 445 | %%% 推出栈顶字面值作为信息,检查第二栈顶字面值是否是缺失的域, 446 | %%% 是则发起包含原栈顶字面值信息的“缺失”警告,并替换原第二栈顶字面值为空字符串 447 | %%% 否则,再检查原第二栈顶字面值是否为空,是则发起“空”警告,并保留原第二栈顶字面值成为新栈顶 448 | FUNCTION {bibinfo.warn} 449 | { swap$ 450 | duplicate$ missing$ 451 | { 452 | swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ 453 | "" 454 | } 455 | { duplicate$ empty$ 456 | { 457 | swap$ "empty " swap$ * " in " * cite$ * warning$ 458 | } 459 | { swap$ 460 | pop$ 461 | } 462 | if$ 463 | } 464 | if$ 465 | } 466 | FUNCTION {format.eprint} 467 | { eprint duplicate$ empty$ 468 | 'skip$ 469 | { "\eprint" 470 | archive empty$ 471 | 'skip$ 472 | { "[" * archive * "]" * } 473 | if$ 474 | "{" * swap$ * "}" * 475 | } 476 | if$ 477 | } 478 | FUNCTION {format.url} 479 | { 480 | doi empty$ 481 | { url } 482 | { "http://dx.doi.org/" doi * } 483 | if$ 484 | duplicate$ empty$ 485 | { pop$ "" } 486 | { "\url{" swap$ * "}" * } 487 | if$ 488 | } 489 | 490 | INTEGERS { nameptr namesleft numnames } 491 | 492 | 493 | STRINGS { bibinfo} 494 | 495 | FUNCTION {format.names} 496 | { 'bibinfo := 497 | duplicate$ empty$ 'skip$ { 498 | 's := 499 | "" 't := 500 | #1 'nameptr := 501 | s num.names$ 'numnames := 502 | numnames 'namesleft := 503 | { namesleft #0 > } 504 | { s nameptr 505 | "{vv~}{ll}{ f{~}}{ jj}" 506 | format.name$ 507 | remove.dots 508 | bibinfo bibinfo.check 509 | 't := 510 | nameptr #1 > 511 | { 512 | nameptr #3 513 | #1 + = 514 | numnames #3 515 | > and 516 | { "others" 't := 517 | #1 'namesleft := } 518 | 'skip$ 519 | if$ 520 | namesleft #1 > 521 | { ", " * t * } 522 | { 523 | s nameptr "{ll}" format.name$ duplicate$ "others" = 524 | { 't := } 525 | { pop$ } 526 | if$ 527 | "," * 528 | t "others" = 529 | { 530 | " " * bbl.etal * 531 | } 532 | { " " * t * } 533 | if$ 534 | } 535 | if$ 536 | } 537 | 't 538 | if$ 539 | nameptr #1 + 'nameptr := 540 | namesleft #1 - 'namesleft := 541 | } 542 | while$ 543 | } if$ 544 | } 545 | FUNCTION {format.schinese.names} 546 | { 'bibinfo := 547 | duplicate$ empty$ 'skip$ { 548 | 's := 549 | "" 't := 550 | #1 'nameptr := 551 | s num.names$ 'numnames := 552 | numnames 'namesleft := 553 | { namesleft #0 > } 554 | { s nameptr 555 | "{vv~}{ll}{ f{~}}{ jj}" 556 | format.name$ 557 | remove.dots 558 | bibinfo bibinfo.check 559 | 't := 560 | nameptr #1 > 561 | { 562 | nameptr #3 563 | #1 + = 564 | numnames #3 565 | > and 566 | { "others" 't := 567 | #1 'namesleft := } 568 | 'skip$ 569 | if$ 570 | namesleft #1 > 571 | { ", " * t * } 572 | { 573 | s nameptr "{ll}" format.name$ duplicate$ "others" = 574 | { 't := } 575 | { pop$ } 576 | if$ 577 | "," * 578 | t "others" = 579 | { 580 | " " * bbl.deng * 581 | } 582 | { " " * t * } 583 | if$ 584 | } 585 | if$ 586 | } 587 | 't 588 | if$ 589 | nameptr #1 + 'nameptr := 590 | namesleft #1 - 'namesleft := 591 | } 592 | while$ 593 | } if$ 594 | } 595 | FUNCTION {format.names.ed} 596 | { 597 | format.names 598 | } 599 | %FUNCTION {format.authors} 600 | %{ author "author" format.names 601 | %} 602 | FUNCTION {format.authors} 603 | { 604 | language missing$ 605 | { author "author" format.names } 606 | { 607 | language "schinese" = 608 | { author "author" format.schinese.names } 609 | { author "author" format.names } 610 | if$ 611 | } 612 | if$ 613 | } 614 | FUNCTION {format.translators} 615 | { 616 | language missing$ 617 | { translator "translator" format.names } 618 | { 619 | language "schinese" = 620 | { translator "translator" format.schinese.names "译" * } 621 | { translator "translator" format.names } 622 | if$ 623 | } 624 | if$ 625 | } 626 | FUNCTION {get.bbl.editor} 627 | { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } 628 | 629 | FUNCTION {format.editors} 630 | { editor "editor" format.names duplicate$ empty$ 'skip$ 631 | { 632 | "," * 633 | " " * 634 | get.bbl.editor 635 | capitalize 636 | "(" swap$ * ")" * 637 | * 638 | } 639 | if$ 640 | } 641 | FUNCTION {format.note} 642 | { 643 | note empty$ 644 | { "" } 645 | { note #1 #1 substring$ 646 | duplicate$ "{" = 647 | 'skip$ 648 | { output.state mid.sentence = 649 | { "l" } 650 | { "u" } 651 | if$ 652 | change.case$ 653 | } 654 | if$ 655 | note #2 global.max$ substring$ * "note" bibinfo.check 656 | } 657 | if$ 658 | } 659 | 660 | FUNCTION {format.title} 661 | { title 662 | duplicate$ empty$ 'skip$ 663 | { "t" change.case$ } 664 | if$ 665 | "title" bibinfo.check 666 | } 667 | 668 | %%% 构建bibitem信息的开头部分,并将当前“输出状态”调整为“最开始” 669 | FUNCTION {output.bibitem} 670 | { newline$ 671 | "\bibitem{" write$ 672 | cite$ write$ 673 | "}" write$ 674 | newline$ 675 | "" 676 | before.all 'output.state := 677 | } 678 | 679 | FUNCTION {n.dashify} 680 | { 681 | 't := 682 | "" 683 | { t empty$ not } 684 | { t #1 #1 substring$ "-" = 685 | { t #1 #2 substring$ "--" = not 686 | { "-" * 687 | t #2 global.max$ substring$ 't := 688 | } 689 | { { t #1 #1 substring$ "-" = } 690 | { "-" * 691 | t #2 global.max$ substring$ 't := 692 | } 693 | while$ 694 | } 695 | if$ 696 | } 697 | { t #1 #1 substring$ * 698 | t #2 global.max$ substring$ 't := 699 | } 700 | if$ 701 | } 702 | while$ 703 | } 704 | 705 | FUNCTION {word.in} 706 | { bbl.in capitalize 707 | " " * } 708 | 709 | FUNCTION {format.date} 710 | { 711 | month "month" bibinfo.check 712 | duplicate$ empty$ 713 | year "year" bibinfo.check duplicate$ empty$ 714 | { swap$ 'skip$ 715 | { "there's a month but no year in " cite$ * warning$ } 716 | if$ 717 | * 718 | } 719 | { swap$ 'skip$ 720 | { 721 | " " * swap$ 722 | } 723 | if$ 724 | * 725 | } 726 | if$ 727 | duplicate$ empty$ 728 | 'skip$ 729 | { 730 | before.all 'output.state := 731 | ", " swap$ * 732 | } 733 | if$ 734 | } 735 | FUNCTION {full.date} 736 | { 737 | year duplicate$ empty$ 738 | { "there's no year in " cite$ * warning$ 739 | pop$ 740 | "XXXX-" 741 | } 742 | { "-" * } 743 | if$ 744 | month duplicate$ empty$ 745 | { "there's no month in " cite$ * warning$ 746 | pop$ 747 | "Xx-" * 748 | } 749 | { * "-" * } 750 | if$ 751 | day duplicate$ empty$ 752 | { "there's no day in " cite$ * warning$ 753 | pop$ 754 | "xx" * 755 | } 756 | { * } 757 | if$ 758 | } 759 | FUNCTION {format.full.date} 760 | { 761 | year "year" bibinfo.check duplicate$ empty$ 762 | { "there's no year in " cite$ * warning$ 763 | "XXXX-" * 764 | } 765 | { "-" * } 766 | if$ 767 | month "month" bibinfo.check duplicate$ empty$ 768 | { "there's no month in " cite$ * warning$ 769 | * "Xx-" * 770 | } 771 | { * "-" * } 772 | if$ 773 | day "day" bibinfo.check duplicate$ empty$ 774 | { "there's no day in " cite$ * warning$ 775 | * "xx" * 776 | } 777 | { * } 778 | if$ 779 | duplicate$ empty$ 780 | 'skip$ 781 | { 782 | before.all 'output.state := 783 | ". " swap$ * 784 | } 785 | if$ 786 | } 787 | FUNCTION {format.btitle} 788 | { title "title" bibinfo.check 789 | duplicate$ empty$ 'skip$ 790 | { 791 | } 792 | if$ 793 | } 794 | FUNCTION {either.or.check} 795 | { empty$ 796 | 'pop$ 797 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } 798 | if$ 799 | } 800 | FUNCTION {format.bvolume} 801 | { volume empty$ 802 | { "" } 803 | { bbl.volume volume tie.or.space.prefix 804 | "volume" bibinfo.check * * 805 | series "series" bibinfo.check 806 | duplicate$ empty$ 'pop$ 807 | { swap$ bbl.of space.word * swap$ 808 | emphasize * } 809 | if$ 810 | "volume and number" number either.or.check 811 | } 812 | if$ 813 | } 814 | FUNCTION {format.number.series} 815 | { volume empty$ 816 | { number empty$ 817 | { series field.or.null } 818 | { series empty$ 819 | { number "number" bibinfo.check } 820 | { output.state mid.sentence = 821 | { bbl.number } 822 | { bbl.number capitalize } 823 | if$ 824 | number tie.or.space.prefix "number" bibinfo.check * * 825 | bbl.in space.word * 826 | series "series" bibinfo.check * 827 | } 828 | if$ 829 | } 830 | if$ 831 | } 832 | { "" } 833 | if$ 834 | } 835 | FUNCTION {is.num} 836 | { chr.to.int$ 837 | duplicate$ "0" chr.to.int$ < not 838 | swap$ "9" chr.to.int$ > not and 839 | } 840 | 841 | FUNCTION {extract.num} 842 | { duplicate$ 't := 843 | "" 's := 844 | { t empty$ not } 845 | { t #1 #1 substring$ 846 | t #2 global.max$ substring$ 't := 847 | duplicate$ is.num 848 | { s swap$ * 's := } 849 | { pop$ "" 't := } 850 | if$ 851 | } 852 | while$ 853 | s empty$ 854 | 'skip$ 855 | { pop$ s } 856 | if$ 857 | } 858 | 859 | FUNCTION {convert.edition} 860 | { extract.num "l" change.case$ 's := 861 | s "first" = s "1" = or 862 | { bbl.first 't := } 863 | { s "second" = s "2" = or 864 | { bbl.second 't := } 865 | { s "third" = s "3" = or 866 | { bbl.third 't := } 867 | { s "fourth" = s "4" = or 868 | { bbl.fourth 't := } 869 | { s "fifth" = s "5" = or 870 | { bbl.fifth 't := } 871 | { s #1 #1 substring$ is.num 872 | { s eng.ord 't := } 873 | { edition 't := } 874 | if$ 875 | } 876 | if$ 877 | } 878 | if$ 879 | } 880 | if$ 881 | } 882 | if$ 883 | } 884 | if$ 885 | t 886 | } 887 | 888 | FUNCTION {format.edition} 889 | { edition duplicate$ empty$ 'skip$ 890 | { 891 | convert.edition 892 | output.state mid.sentence = 893 | { "l" } 894 | { "t" } 895 | if$ change.case$ 896 | "edition" bibinfo.check 897 | " " * bbl.edition * 898 | } 899 | if$ 900 | } 901 | INTEGERS { multiresult } 902 | FUNCTION {multi.page.check} 903 | { 't := 904 | #0 'multiresult := 905 | { multiresult not 906 | t empty$ not 907 | and 908 | } 909 | { t #1 #1 substring$ 910 | duplicate$ "-" = 911 | swap$ duplicate$ "," = 912 | swap$ "+" = 913 | or or 914 | { #1 'multiresult := } 915 | { t #2 global.max$ substring$ 't := } 916 | if$ 917 | } 918 | while$ 919 | multiresult 920 | } 921 | FUNCTION {format.pages} 922 | { pages duplicate$ empty$ 'skip$ 923 | { duplicate$ multi.page.check 924 | { 925 | n.dashify 926 | } 927 | { 928 | } 929 | if$ 930 | "pages" bibinfo.check 931 | } 932 | if$ 933 | } 934 | FUNCTION {format.journal.pages} 935 | { pages duplicate$ empty$ 'pop$ 936 | { swap$ duplicate$ empty$ 937 | { pop$ pop$ format.pages } 938 | { 939 | ": " * 940 | swap$ 941 | n.dashify 942 | "pages" bibinfo.check 943 | * 944 | } 945 | if$ 946 | } 947 | if$ 948 | } 949 | FUNCTION {format.journal.eid} 950 | { eid "eid" bibinfo.check 951 | duplicate$ empty$ 'pop$ 952 | { swap$ duplicate$ empty$ 'skip$ 953 | { 954 | ": " * 955 | } 956 | if$ 957 | swap$ * 958 | } 959 | if$ 960 | } 961 | FUNCTION {format.vol.num.pages} 962 | { volume field.or.null 963 | duplicate$ empty$ 'skip$ 964 | { 965 | "volume" bibinfo.check 966 | } 967 | if$ 968 | number "number" bibinfo.check duplicate$ empty$ 'skip$ 969 | { 970 | swap$ duplicate$ empty$ 971 | { "there's a number but no volume in " cite$ * warning$ } 972 | 'skip$ 973 | if$ 974 | swap$ 975 | "(" swap$ * ")" * 976 | } 977 | if$ * 978 | } 979 | 980 | FUNCTION {format.chapter.pages} 981 | { chapter empty$ 982 | { "" } 983 | { type empty$ 984 | { bbl.chapter } 985 | { type "l" change.case$ 986 | "type" bibinfo.check 987 | } 988 | if$ 989 | chapter tie.or.space.prefix 990 | "chapter" bibinfo.check 991 | * * 992 | } 993 | if$ 994 | } 995 | 996 | FUNCTION {format.booktitle} 997 | { 998 | booktitle "booktitle" bibinfo.check 999 | } 1000 | FUNCTION {format.in.ed.booktitle} 1001 | { format.booktitle duplicate$ empty$ 'skip$ 1002 | { 1003 | editor "editor" format.names.ed duplicate$ empty$ 'pop$ 1004 | { 1005 | "," * 1006 | " " * 1007 | get.bbl.editor 1008 | capitalize 1009 | "(" swap$ * ") " * 1010 | * swap$ 1011 | * } 1012 | if$ 1013 | %word.in swap$ * 1014 | } 1015 | if$ 1016 | } 1017 | FUNCTION {empty.misc.check} 1018 | { author empty$ title empty$ howpublished empty$ 1019 | month empty$ year empty$ note empty$ 1020 | and and and and and 1021 | { "all relevant fields are empty in " cite$ * warning$ } 1022 | 'skip$ 1023 | if$ 1024 | } 1025 | FUNCTION {format.thesis.type} 1026 | { type duplicate$ empty$ 1027 | 'pop$ 1028 | { swap$ pop$ 1029 | "t" change.case$ "type" bibinfo.check 1030 | } 1031 | if$ 1032 | } 1033 | FUNCTION {format.tr.number} 1034 | { number "number" bibinfo.check 1035 | type duplicate$ empty$ 1036 | { pop$ bbl.techrep } 1037 | 'skip$ 1038 | if$ 1039 | "type" bibinfo.check 1040 | swap$ duplicate$ empty$ 1041 | { pop$ "t" change.case$ } 1042 | { tie.or.space.prefix * * } 1043 | if$ 1044 | } 1045 | FUNCTION {format.article.crossref} 1046 | { 1047 | key duplicate$ empty$ 1048 | { pop$ 1049 | journal duplicate$ empty$ 1050 | { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } 1051 | { "journal" bibinfo.check emphasize word.in swap$ * } 1052 | if$ 1053 | } 1054 | { word.in swap$ * " " *} 1055 | if$ 1056 | " \cite{" * crossref * "}" * 1057 | } 1058 | FUNCTION {format.crossref.editor} 1059 | { editor #1 "{vv~}{ll}" format.name$ 1060 | "editor" bibinfo.check 1061 | editor num.names$ duplicate$ 1062 | #2 > 1063 | { pop$ 1064 | "editor" bibinfo.check 1065 | " " * bbl.etal 1066 | * 1067 | } 1068 | { #2 < 1069 | 'skip$ 1070 | { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 1071 | { 1072 | "editor" bibinfo.check 1073 | " " * bbl.etal 1074 | * 1075 | } 1076 | { 1077 | bbl.and space.word 1078 | * editor #2 "{vv~}{ll}" format.name$ 1079 | "editor" bibinfo.check 1080 | * 1081 | } 1082 | if$ 1083 | } 1084 | if$ 1085 | } 1086 | if$ 1087 | } 1088 | FUNCTION {format.book.crossref} 1089 | { volume duplicate$ empty$ 1090 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 1091 | pop$ word.in 1092 | } 1093 | { bbl.volume 1094 | capitalize 1095 | swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * 1096 | } 1097 | if$ 1098 | editor empty$ 1099 | editor field.or.null author field.or.null = 1100 | or 1101 | { key empty$ 1102 | { series empty$ 1103 | { "need editor, key, or series for " cite$ * " to crossref " * 1104 | crossref * warning$ 1105 | "" * 1106 | } 1107 | { series emphasize * } 1108 | if$ 1109 | } 1110 | { key * } 1111 | if$ 1112 | } 1113 | { format.crossref.editor * } 1114 | if$ 1115 | " \cite{" * crossref * "}" * 1116 | } 1117 | FUNCTION {format.incoll.inproc.crossref} 1118 | { 1119 | editor empty$ 1120 | editor field.or.null author field.or.null = 1121 | or 1122 | { key empty$ 1123 | { format.booktitle duplicate$ empty$ 1124 | { "need editor, key, or booktitle for " cite$ * " to crossref " * 1125 | crossref * warning$ 1126 | } 1127 | { word.in swap$ * } 1128 | if$ 1129 | } 1130 | { word.in key * " " *} 1131 | if$ 1132 | } 1133 | { word.in format.crossref.editor * " " *} 1134 | if$ 1135 | " \cite{" * crossref * "}" * 1136 | } 1137 | FUNCTION {format.org.or.pub} 1138 | { 't := 1139 | "" 1140 | address empty$ t empty$ and 1141 | 'skip$ 1142 | { 1143 | address "address" bibinfo.check * 1144 | t empty$ 1145 | 'skip$ 1146 | { address empty$ 1147 | 'skip$ 1148 | { ": " * } 1149 | if$ 1150 | t * 1151 | } 1152 | if$ 1153 | } 1154 | if$ 1155 | } 1156 | FUNCTION {format.publisher.address} 1157 | { publisher "publisher" bibinfo.warn format.org.or.pub 1158 | } 1159 | 1160 | FUNCTION {format.organization.address} 1161 | { organization "organization" bibinfo.check format.org.or.pub 1162 | } 1163 | 1164 | FUNCTION {article} 1165 | { output.bibitem 1166 | format.authors "author" output.check 1167 | new.block 1168 | format.title "[J]" * "title" output.check 1169 | new.block 1170 | crossref missing$ 1171 | { 1172 | journal 1173 | "journal" bibinfo.check 1174 | "journal" output.check 1175 | year "year" output.check 1176 | volume missing$ 1177 | { 1178 | number missing$ 1179 | {before.all 'output.state :=} 1180 | {date.block} 1181 | if$ 1182 | } 1183 | {date.block} 1184 | if$ 1185 | format.vol.num.pages output 1186 | } 1187 | { format.article.crossref output.nonnull 1188 | } 1189 | if$ 1190 | eid empty$ 1191 | { format.journal.pages } 1192 | { format.journal.eid } 1193 | if$ 1194 | new.block 1195 | % format.url output 1196 | % new.block 1197 | format.note output 1198 | format.eprint output 1199 | fin.entry 1200 | } 1201 | FUNCTION {book} 1202 | { output.bibitem 1203 | author empty$ 1204 | { format.editors "author and editor" output.check 1205 | add.blank 1206 | } 1207 | { format.authors output.nonnull 1208 | crossref missing$ 1209 | { "author and editor" editor either.or.check } 1210 | 'skip$ 1211 | if$ 1212 | } 1213 | if$ 1214 | new.block 1215 | format.btitle "[M]" * "title" output.check 1216 | new.block 1217 | translator missing$ 1218 | {skip$} 1219 | { 1220 | format.translators "translator" output.check 1221 | new.block 1222 | } 1223 | if$ 1224 | %format.edition output 1225 | edition missing$ 1226 | {skip$} 1227 | { 1228 | language missing$ 1229 | { format.edition "edition" output.check } 1230 | { edition "版" * "edition" output.check } 1231 | if$ 1232 | new.block 1233 | } 1234 | if$ 1235 | crossref missing$ 1236 | { format.bvolume output 1237 | new.block 1238 | format.number.series output 1239 | new.sentence 1240 | format.publisher.address output 1241 | } 1242 | { 1243 | new.block 1244 | format.book.crossref output.nonnull 1245 | } 1246 | if$ 1247 | pages missing$ 1248 | {year "year" output.check} 1249 | { 1250 | year ": " * format.pages * "pages" output.check 1251 | } 1252 | if$ 1253 | new.block 1254 | format.url output 1255 | new.block 1256 | format.note output 1257 | format.eprint output 1258 | fin.entry 1259 | } 1260 | FUNCTION {booklet} 1261 | { output.bibitem 1262 | format.authors output 1263 | new.block 1264 | format.title "[M]" * "title" output.check 1265 | new.block 1266 | howpublished "howpublished" bibinfo.check output 1267 | address "address" bibinfo.check output 1268 | format.date output 1269 | new.block 1270 | format.url output 1271 | new.block 1272 | format.note output 1273 | format.eprint output 1274 | fin.entry 1275 | } 1276 | 1277 | FUNCTION {inbook} 1278 | { output.bibitem 1279 | author empty$ 1280 | { format.editors "author and editor" output.check 1281 | } 1282 | { format.authors output.nonnull 1283 | crossref missing$ 1284 | { "author and editor" editor either.or.check } 1285 | 'skip$ 1286 | if$ 1287 | } 1288 | if$ 1289 | new.block 1290 | format.btitle "[M]" * "title" output.check 1291 | crossref missing$ 1292 | { 1293 | format.publisher.address output 1294 | format.bvolume output 1295 | format.chapter.pages "chapter and pages" output.check 1296 | new.block 1297 | format.number.series output 1298 | new.sentence 1299 | } 1300 | { 1301 | format.chapter.pages "chapter and pages" output.check 1302 | new.block 1303 | format.book.crossref output.nonnull 1304 | } 1305 | if$ 1306 | format.edition output 1307 | format.date "year" output.check 1308 | date.block 1309 | format.pages "pages" output.check 1310 | new.block 1311 | format.url output 1312 | new.block 1313 | format.note output 1314 | format.eprint output 1315 | fin.entry 1316 | } 1317 | 1318 | FUNCTION {incollection} 1319 | { output.bibitem 1320 | format.authors "author" output.check 1321 | new.block 1322 | format.title "title" output.check 1323 | new.block 1324 | crossref missing$ 1325 | { format.in.ed.booktitle "booktitle" output.check 1326 | format.publisher.address output 1327 | format.bvolume output 1328 | format.number.series output 1329 | format.chapter.pages output 1330 | new.sentence 1331 | format.edition output 1332 | } 1333 | { format.incoll.inproc.crossref output.nonnull 1334 | format.chapter.pages output 1335 | } 1336 | if$ 1337 | format.date "year" output.check 1338 | date.block 1339 | format.pages "pages" output.check 1340 | new.block 1341 | format.url output 1342 | new.block 1343 | format.note output 1344 | format.eprint output 1345 | fin.entry 1346 | } 1347 | FUNCTION {inproceedings} 1348 | { output.bibitem 1349 | format.authors "author" output.check 1350 | new.block 1351 | format.title "[C]" * "title" output.check 1352 | new.block 1353 | crossref missing$ 1354 | { format.in.ed.booktitle "booktitle" output.check 1355 | %new.sentence 1356 | publisher empty$ 1357 | { format.organization.address output } 1358 | { organization "organization" bibinfo.check output 1359 | format.publisher.address output 1360 | } 1361 | if$ 1362 | format.bvolume output 1363 | format.number.series output 1364 | } 1365 | { format.incoll.inproc.crossref output.nonnull 1366 | } 1367 | if$ 1368 | year ": " * format.pages * "pages" output.check 1369 | new.block 1370 | % format.url output 1371 | % new.block 1372 | format.note output 1373 | format.eprint output 1374 | fin.entry 1375 | } 1376 | FUNCTION {conference} { inproceedings } 1377 | FUNCTION {manual} 1378 | { output.bibitem 1379 | author empty$ 1380 | { organization "organization" bibinfo.check 1381 | duplicate$ empty$ 'pop$ 1382 | { output 1383 | address "address" bibinfo.check output 1384 | } 1385 | if$ 1386 | } 1387 | { format.authors output.nonnull } 1388 | if$ 1389 | new.block 1390 | format.btitle "title" output.check 1391 | author empty$ 1392 | { organization empty$ 1393 | { 1394 | address new.block.checka 1395 | address "address" bibinfo.check output 1396 | } 1397 | 'skip$ 1398 | if$ 1399 | } 1400 | { 1401 | organization address new.block.checkb 1402 | organization "organization" bibinfo.check output 1403 | address "address" bibinfo.check output 1404 | } 1405 | if$ 1406 | format.edition output 1407 | format.date output 1408 | new.block 1409 | format.url output 1410 | new.block 1411 | format.note output 1412 | format.eprint output 1413 | fin.entry 1414 | } 1415 | 1416 | FUNCTION {mastersthesis} 1417 | { output.bibitem 1418 | format.authors "author" output.check 1419 | new.block 1420 | format.title "[D]" * "title" output.check 1421 | new.block 1422 | %bbl.mthesis format.thesis.type output.nonnull 1423 | address "address" bibinfo.warn output 1424 | ": " * write$ 1425 | school "school" bibinfo.warn 1426 | pages missing$ 1427 | { 1428 | pages "pages" bibinfo.warn pop$ 1429 | year "year" output.check 1430 | } 1431 | {year ": " * format.pages * "pages" output.check} 1432 | if$ 1433 | new.block 1434 | format.url output 1435 | new.block 1436 | format.note output 1437 | format.eprint output 1438 | fin.entry 1439 | } 1440 | 1441 | FUNCTION {phdthesis} 1442 | { output.bibitem 1443 | format.authors "author" output.check 1444 | new.block 1445 | format.title "[D]" * 1446 | "title" output.check 1447 | new.block 1448 | %bbl.phdthesis format.thesis.type output.nonnull 1449 | address "address" bibinfo.warn output 1450 | ": " * write$ 1451 | school "school" bibinfo.warn 1452 | pages missing$ 1453 | { 1454 | pages "pages" bibinfo.warn pop$ 1455 | year "year" output.check 1456 | } 1457 | {year ": " * format.pages * "pages" output.check} 1458 | if$ 1459 | new.block 1460 | format.url output 1461 | new.block 1462 | format.note output 1463 | format.eprint output 1464 | fin.entry 1465 | } 1466 | 1467 | FUNCTION {proceedings} 1468 | { output.bibitem 1469 | editor empty$ 1470 | { organization "organization" bibinfo.check output 1471 | } 1472 | { format.editors output.nonnull } 1473 | if$ 1474 | new.block 1475 | format.btitle "[C]" * "title" output.check 1476 | format.bvolume output 1477 | format.number.series output 1478 | editor empty$ 1479 | { publisher empty$ 1480 | 'skip$ 1481 | { 1482 | new.sentence 1483 | format.publisher.address output 1484 | } 1485 | if$ 1486 | } 1487 | { publisher empty$ 1488 | { 1489 | new.sentence 1490 | format.organization.address output } 1491 | { 1492 | new.sentence 1493 | organization "organization" bibinfo.check output 1494 | format.publisher.address output 1495 | } 1496 | if$ 1497 | } 1498 | if$ 1499 | year "year" output.check 1500 | new.block 1501 | % format.url output 1502 | % new.block 1503 | format.note output 1504 | format.eprint output 1505 | fin.entry 1506 | } 1507 | 1508 | FUNCTION {news} 1509 | { output.bibitem 1510 | format.authors "author" output.check 1511 | new.block 1512 | format.title "[N]" * "title" output.check 1513 | new.block 1514 | publisher "publisher" bibinfo.warn output 1515 | full.date "date" bibinfo.warn output write$ 1516 | " (" number * ")" * 1517 | new.block 1518 | format.url output 1519 | new.block 1520 | format.note output 1521 | format.eprint output 1522 | fin.entry 1523 | } 1524 | 1525 | FUNCTION {report} 1526 | { output.bibitem 1527 | format.authors "author" output.check 1528 | new.block 1529 | format.title "[R]" * 1530 | "title" output.check 1531 | new.block 1532 | %format.tr.number output.nonnull 1533 | address "address" bibinfo.warn output 1534 | ": " * write$ 1535 | publisher "publisher" bibinfo.warn 1536 | year "year" output.check 1537 | new.block 1538 | format.url output 1539 | new.block 1540 | format.note output 1541 | format.eprint output 1542 | fin.entry 1543 | } 1544 | 1545 | FUNCTION {unpublished} 1546 | { output.bibitem 1547 | format.authors "author" output.check 1548 | new.block 1549 | format.title "title" output.check 1550 | format.date output 1551 | new.block 1552 | format.url output 1553 | new.block 1554 | format.note "note" output.check 1555 | format.eprint output 1556 | fin.entry 1557 | } 1558 | 1559 | FUNCTION {patent} 1560 | { output.bibitem 1561 | format.authors "author" output.check 1562 | new.block 1563 | format.title ": " * number * "[P]" * "title" output.check 1564 | new.block 1565 | crossref missing$ 1566 | { 1567 | %journal 1568 | %"journal" bibinfo.check 1569 | %"journal" output.check 1570 | format.full.date "fulldate" output.check 1571 | } 1572 | { format.article.crossref output.nonnull 1573 | } 1574 | if$ 1575 | %eid empty$ 1576 | % { format.journal.pages } 1577 | % { format.journal.eid } 1578 | %if$ 1579 | new.block 1580 | format.url output 1581 | new.block 1582 | format.note output 1583 | format.eprint output 1584 | fin.entry 1585 | } 1586 | 1587 | FUNCTION {standard} 1588 | { output.bibitem 1589 | format.authors "author" output.check 1590 | new.block 1591 | format.title ": " * number * "[S]" * "title" output.check 1592 | new.block 1593 | address "address" bibinfo.warn output 1594 | ": " * write$ 1595 | publisher "publisher" bibinfo.warn 1596 | year ": " * format.pages * "year" output.check 1597 | new.block 1598 | format.url output 1599 | new.block 1600 | format.note output 1601 | format.eprint output 1602 | fin.entry 1603 | } 1604 | 1605 | 1606 | FUNCTION {digital} 1607 | { output.bibitem 1608 | format.authors "author" output.check 1609 | new.block 1610 | format.title "[" * type * "]" * "title" output.check 1611 | new.block 1612 | address missing$ 1613 | { modifydate "modifydate" bibinfo.warn output } 1614 | { 1615 | address "address" bibinfo.warn output 1616 | ": " * write$ 1617 | publisher "publisher" bibinfo.warn 1618 | year "year" bibinfo.warn output 1619 | ": " * write$ 1620 | format.pages "pages" bibinfo.warn write$ 1621 | modifydate "modifydate" bibinfo.warn 1622 | " (" swap$ * ")" * write$ 1623 | citedate "citedate" bibinfo.warn 1624 | " [" swap$ * "]" * 1625 | new.block 1626 | } 1627 | if$ 1628 | format.url output 1629 | fin.entry 1630 | } 1631 | 1632 | FUNCTION {misc} 1633 | { output.bibitem 1634 | format.authors output 1635 | title howpublished new.block.checkb 1636 | format.title output 1637 | howpublished new.block.checka 1638 | howpublished "howpublished" bibinfo.check output 1639 | format.date output 1640 | new.block 1641 | format.url output 1642 | new.block 1643 | format.note output 1644 | format.eprint output 1645 | fin.entry 1646 | empty.misc.check 1647 | } 1648 | 1649 | FUNCTION {default.type} { misc } 1650 | READ 1651 | STRINGS { longest.label } 1652 | INTEGERS { number.label longest.label.width } 1653 | FUNCTION {initialize.longest.label} 1654 | { "" 'longest.label := 1655 | #1 'number.label := 1656 | #0 'longest.label.width := 1657 | } 1658 | FUNCTION {longest.label.pass} 1659 | { number.label int.to.str$ 'label := 1660 | number.label #1 + 'number.label := 1661 | label width$ longest.label.width > 1662 | { label 'longest.label := 1663 | label width$ 'longest.label.width := 1664 | } 1665 | 'skip$ 1666 | if$ 1667 | } 1668 | EXECUTE {initialize.longest.label} 1669 | ITERATE {longest.label.pass} 1670 | FUNCTION {begin.bib} 1671 | { preamble$ empty$ 1672 | 'skip$ 1673 | { preamble$ write$ newline$ } 1674 | if$ 1675 | "\begin{thebibliography}{" longest.label * "}" * 1676 | write$ newline$ 1677 | "\providecommand{\url}[1]{\texttt{#1}}" 1678 | write$ newline$ 1679 | "\providecommand{\urlprefix}{URL }" 1680 | write$ newline$ 1681 | "\providecommand{\eprint}[2][]{\url{#2}}" 1682 | write$ newline$ 1683 | } 1684 | EXECUTE {begin.bib} 1685 | EXECUTE {init.state.consts} 1686 | ITERATE {call.type$} 1687 | FUNCTION {end.bib} 1688 | { newline$ 1689 | "\end{thebibliography}" write$ newline$ 1690 | } 1691 | EXECUTE {end.bib} 1692 | %% End of customized bst file 1693 | %% 1694 | %% End of file `DissertUESTC.bst'. 1695 | -------------------------------------------------------------------------------- /fig/TeXstudio-nomenclature1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/TeXstudio-nomenclature1.jpg -------------------------------------------------------------------------------- /fig/TeXstudio-nomenclature2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/TeXstudio-nomenclature2.jpg -------------------------------------------------------------------------------- /fig/TeXstudio-nomenclature3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/TeXstudio-nomenclature3.jpg -------------------------------------------------------------------------------- /fig/TeXstudio_bibtex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/TeXstudio_bibtex.png -------------------------------------------------------------------------------- /fig/VSCode-nomenclature.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/VSCode-nomenclature.jpg -------------------------------------------------------------------------------- /fig/VScode_bibtex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/VScode_bibtex.png -------------------------------------------------------------------------------- /fig/authsign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/authsign.png -------------------------------------------------------------------------------- /fig/refsample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/refsample.png -------------------------------------------------------------------------------- /fig/spvrsign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/spvrsign.png -------------------------------------------------------------------------------- /fig/uestclogo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/uestclogo.pdf -------------------------------------------------------------------------------- /fig/一灯1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/一灯1.jpg -------------------------------------------------------------------------------- /fig/一灯2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/一灯2.jpg -------------------------------------------------------------------------------- /fig/周伯通1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/周伯通1.png -------------------------------------------------------------------------------- /fig/周伯通2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/周伯通2.jpg -------------------------------------------------------------------------------- /fig/周伯通3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/周伯通3.jpg -------------------------------------------------------------------------------- /fig/杨过1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过1.jpg -------------------------------------------------------------------------------- /fig/杨过2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过2.jpg -------------------------------------------------------------------------------- /fig/杨过3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过3.png -------------------------------------------------------------------------------- /fig/杨过4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过4.jpg -------------------------------------------------------------------------------- /fig/杨过5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过5.jpg -------------------------------------------------------------------------------- /fig/杨过6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过6.jpg -------------------------------------------------------------------------------- /fig/杨过小龙女1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过小龙女1.jpg -------------------------------------------------------------------------------- /fig/杨过小龙女2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过小龙女2.jpg -------------------------------------------------------------------------------- /fig/杨过小龙女3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过小龙女3.png -------------------------------------------------------------------------------- /fig/杨过小龙女6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过小龙女6.jpg -------------------------------------------------------------------------------- /fig/杨过程英.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过程英.jpg -------------------------------------------------------------------------------- /fig/杨过绿萼.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过绿萼.jpg -------------------------------------------------------------------------------- /fig/杨过郭靖.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/杨过郭靖.jpg -------------------------------------------------------------------------------- /fig/洪七公1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/洪七公1.jpg -------------------------------------------------------------------------------- /fig/洪七公2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/洪七公2.jpeg -------------------------------------------------------------------------------- /fig/程英1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/程英1.jpg -------------------------------------------------------------------------------- /fig/程英2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/程英2.jpg -------------------------------------------------------------------------------- /fig/程英3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/程英3.jpg -------------------------------------------------------------------------------- /fig/绿萼1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/绿萼1.jpg -------------------------------------------------------------------------------- /fig/绿萼2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/绿萼2.jpg -------------------------------------------------------------------------------- /fig/郭芙1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/郭芙1.jpg -------------------------------------------------------------------------------- /fig/郭芙2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/郭芙2.jpg -------------------------------------------------------------------------------- /fig/郭芙3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/郭芙3.jpg -------------------------------------------------------------------------------- /fig/郭襄1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/郭襄1.jpg -------------------------------------------------------------------------------- /fig/郭襄2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/郭襄2.jpg -------------------------------------------------------------------------------- /fig/郭靖1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/郭靖1.jpg -------------------------------------------------------------------------------- /fig/陆无双1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/陆无双1.jpg -------------------------------------------------------------------------------- /fig/陆无双2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/陆无双2.jpeg -------------------------------------------------------------------------------- /fig/陆无双程英.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/陆无双程英.png -------------------------------------------------------------------------------- /fig/陆无双程英杨过.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/陆无双程英杨过.jpg -------------------------------------------------------------------------------- /fig/黄老邪1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/黄老邪1.jpg -------------------------------------------------------------------------------- /fig/黄老邪2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/黄老邪2.jpg -------------------------------------------------------------------------------- /fig/黄蓉1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/黄蓉1.jpg -------------------------------------------------------------------------------- /fig/黄蓉2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/黄蓉2.png -------------------------------------------------------------------------------- /fig/黄蓉郭靖1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/fig/黄蓉郭靖1.jpg -------------------------------------------------------------------------------- /font/STXINGKA.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/STXINGKA.TTF -------------------------------------------------------------------------------- /font/STZHONGS.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/STZHONGS.TTF -------------------------------------------------------------------------------- /font/SimHei.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/SimHei.ttf -------------------------------------------------------------------------------- /font/SimSun.ttc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/SimSun.ttc -------------------------------------------------------------------------------- /font/Source Han Serif SC.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/Source Han Serif SC.otf -------------------------------------------------------------------------------- /font/times.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/times.ttf -------------------------------------------------------------------------------- /font/timesbd.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/timesbd.ttf -------------------------------------------------------------------------------- /font/timesbi.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/timesbi.ttf -------------------------------------------------------------------------------- /font/timesi.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MGG1996/DissertationUESTC/dc9d3b16e22cea88e4eb7886367dba35b3da3057/font/timesi.ttf -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 |
311 |
312 |
313 |
314 |
320 |
321 |