Diagrams commissioned for the paper: *The Operational Loops of a Pandemic.* by T. D. Sampson and J. Parikka.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1516 lines
29 KiB

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