25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314
  1. %%
  2. %% This is file `tufte.bst',
  3. %% generated with the docstrip utility.
  4. %%
  5. %% The original source files were:
  6. %%
  7. %% merlin.mbs (with options: `seq-no,vonx,ed-au,nmlm,x2,m1,yr-com,xmth,tit-qq,qx,atit-u,jxper,trtit-b,volp-com,jwdpg,pp-last,num-xser,pre-pub,edpar,edby,blk-com,pp,ed,abr,ord,url,url-blk,nfss')
  8. %% ----------------------------------------
  9. %% *** tufte handout bibliography style ***
  10. %%
  11. %% Copyright 1994-2002 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}[2002/10/21 4.05 (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. ENTRY
  39. { address
  40. author
  41. booktitle
  42. chapter
  43. edition
  44. editor
  45. howpublished
  46. institution
  47. journal
  48. key
  49. month
  50. note
  51. number
  52. organization
  53. pages
  54. publisher
  55. school
  56. series
  57. title
  58. type
  59. url
  60. volume
  61. year
  62. }
  63. {}
  64. { label }
  65. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  66. FUNCTION {init.state.consts}
  67. { #0 'before.all :=
  68. #1 'mid.sentence :=
  69. #2 'after.sentence :=
  70. #3 'after.block :=
  71. }
  72. STRINGS { s t}
  73. FUNCTION {output.nonnull}
  74. { 's :=
  75. output.state mid.sentence =
  76. { ", " * write$ }
  77. { output.state after.block =
  78. { add.period$ write$
  79. newline$
  80. "\newblock " write$
  81. }
  82. { output.state before.all =
  83. 'write$
  84. { add.period$ " " * write$ }
  85. if$
  86. }
  87. if$
  88. mid.sentence 'output.state :=
  89. }
  90. if$
  91. s
  92. }
  93. FUNCTION {output}
  94. { duplicate$ empty$
  95. 'pop$
  96. 'output.nonnull
  97. if$
  98. }
  99. FUNCTION {output.check}
  100. { 't :=
  101. duplicate$ empty$
  102. { pop$ "empty " t * " in " * cite$ * warning$ }
  103. 'output.nonnull
  104. if$
  105. }
  106. FUNCTION {fin.entry}
  107. { add.period$
  108. write$
  109. newline$
  110. }
  111. FUNCTION {new.block}
  112. { output.state before.all =
  113. 'skip$
  114. { after.block 'output.state := }
  115. if$
  116. }
  117. FUNCTION {new.sentence}
  118. { output.state after.block =
  119. 'skip$
  120. { output.state before.all =
  121. 'skip$
  122. { after.sentence 'output.state := }
  123. if$
  124. }
  125. if$
  126. }
  127. FUNCTION {add.blank}
  128. { " " * before.all 'output.state :=
  129. }
  130. FUNCTION {date.block}
  131. {
  132. skip$
  133. }
  134. FUNCTION {not}
  135. { { #0 }
  136. { #1 }
  137. if$
  138. }
  139. FUNCTION {and}
  140. { 'skip$
  141. { pop$ #0 }
  142. if$
  143. }
  144. FUNCTION {or}
  145. { { pop$ #1 }
  146. 'skip$
  147. if$
  148. }
  149. FUNCTION {non.stop}
  150. { duplicate$
  151. "}" * add.period$
  152. #-1 #1 substring$ "." =
  153. }
  154. STRINGS {z}
  155. FUNCTION {remove.dots}
  156. { 'z :=
  157. ""
  158. { z empty$ not }
  159. { z #1 #1 substring$
  160. z #2 global.max$ substring$ 'z :=
  161. duplicate$ "." = 'pop$
  162. { * }
  163. if$
  164. }
  165. while$
  166. }
  167. FUNCTION {new.block.checka}
  168. { empty$
  169. 'skip$
  170. 'new.block
  171. if$
  172. }
  173. FUNCTION {new.block.checkb}
  174. { empty$
  175. swap$ empty$
  176. and
  177. 'skip$
  178. 'new.block
  179. if$
  180. }
  181. FUNCTION {new.sentence.checka}
  182. { empty$
  183. 'skip$
  184. 'new.sentence
  185. if$
  186. }
  187. FUNCTION {new.sentence.checkb}
  188. { empty$
  189. swap$ empty$
  190. and
  191. 'skip$
  192. 'new.sentence
  193. if$
  194. }
  195. FUNCTION {field.or.null}
  196. { duplicate$ empty$
  197. { pop$ "" }
  198. 'skip$
  199. if$
  200. }
  201. FUNCTION {emphasize}
  202. { duplicate$ empty$
  203. { pop$ "" }
  204. { "\emph{" swap$ * "}" * }
  205. if$
  206. }
  207. FUNCTION {tie.or.space.prefix}
  208. { duplicate$ text.length$ #3 <
  209. { "~" }
  210. { " " }
  211. if$
  212. swap$
  213. }
  214. FUNCTION {capitalize}
  215. { "u" change.case$ "t" change.case$ }
  216. FUNCTION {space.word}
  217. { " " swap$ * " " * }
  218. % Here are the language-specific definitions for explicit words.
  219. % Each function has a name bbl.xxx where xxx is the English word.
  220. % The language selected here is ENGLISH
  221. FUNCTION {bbl.and}
  222. { "and"}
  223. FUNCTION {bbl.etal}
  224. { "et~al." }
  225. FUNCTION {bbl.editors}
  226. { "eds." }
  227. FUNCTION {bbl.editor}
  228. { "ed." }
  229. FUNCTION {bbl.edby}
  230. { "edited by" }
  231. FUNCTION {bbl.edition}
  232. { "edn." }
  233. FUNCTION {bbl.volume}
  234. { "vol." }
  235. FUNCTION {bbl.of}
  236. { "of" }
  237. FUNCTION {bbl.number}
  238. { "no." }
  239. FUNCTION {bbl.nr}
  240. { "no." }
  241. FUNCTION {bbl.in}
  242. { "in" }
  243. FUNCTION {bbl.pages}
  244. { "pp." }
  245. FUNCTION {bbl.page}
  246. { "p." }
  247. FUNCTION {bbl.chapter}
  248. { "chap." }
  249. FUNCTION {bbl.techrep}
  250. { "Tech. Rep." }
  251. FUNCTION {bbl.mthesis}
  252. { "Master's thesis" }
  253. FUNCTION {bbl.phdthesis}
  254. { "Ph.D. thesis" }
  255. FUNCTION {bbl.first}
  256. { "1st" }
  257. FUNCTION {bbl.second}
  258. { "2nd" }
  259. FUNCTION {bbl.third}
  260. { "3rd" }
  261. FUNCTION {bbl.fourth}
  262. { "4th" }
  263. FUNCTION {bbl.fifth}
  264. { "5th" }
  265. FUNCTION {bbl.st}
  266. { "st" }
  267. FUNCTION {bbl.nd}
  268. { "nd" }
  269. FUNCTION {bbl.rd}
  270. { "rd" }
  271. FUNCTION {bbl.th}
  272. { "th" }
  273. MACRO {jan} {"Jan."}
  274. MACRO {feb} {"Feb."}
  275. MACRO {mar} {"Mar."}
  276. MACRO {apr} {"Apr."}
  277. MACRO {may} {"May"}
  278. MACRO {jun} {"Jun."}
  279. MACRO {jul} {"Jul."}
  280. MACRO {aug} {"Aug."}
  281. MACRO {sep} {"Sep."}
  282. MACRO {oct} {"Oct."}
  283. MACRO {nov} {"Nov."}
  284. MACRO {dec} {"Dec."}
  285. FUNCTION {eng.ord}
  286. { duplicate$ "1" swap$ *
  287. #-2 #1 substring$ "1" =
  288. { bbl.th * }
  289. { duplicate$ #-1 #1 substring$
  290. duplicate$ "1" =
  291. { pop$ bbl.st * }
  292. { duplicate$ "2" =
  293. { pop$ bbl.nd * }
  294. { "3" =
  295. { bbl.rd * }
  296. { bbl.th * }
  297. if$
  298. }
  299. if$
  300. }
  301. if$
  302. }
  303. if$
  304. }
  305. MACRO {acmcs} {"ACM Computing Surveys"}
  306. MACRO {acta} {"Acta Informatica"}
  307. MACRO {cacm} {"Communications of the ACM"}
  308. MACRO {ibmjrd} {"IBM Journal of Research and Development"}
  309. MACRO {ibmsj} {"IBM Systems Journal"}
  310. MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
  311. MACRO {ieeetc} {"IEEE Transactions on Computers"}
  312. MACRO {ieeetcad}
  313. {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
  314. MACRO {ipl} {"Information Processing Letters"}
  315. MACRO {jacm} {"Journal of the ACM"}
  316. MACRO {jcss} {"Journal of Computer and System Sciences"}
  317. MACRO {scp} {"Science of Computer Programming"}
  318. MACRO {sicomp} {"SIAM Journal on Computing"}
  319. MACRO {tocs} {"ACM Transactions on Computer Systems"}
  320. MACRO {tods} {"ACM Transactions on Database Systems"}
  321. MACRO {tog} {"ACM Transactions on Graphics"}
  322. MACRO {toms} {"ACM Transactions on Mathematical Software"}
  323. MACRO {toois} {"ACM Transactions on Office Information Systems"}
  324. MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
  325. MACRO {tcs} {"Theoretical Computer Science"}
  326. FUNCTION {bibinfo.check}
  327. { swap$
  328. duplicate$ missing$
  329. {
  330. pop$ pop$
  331. ""
  332. }
  333. { duplicate$ empty$
  334. {
  335. swap$ pop$
  336. }
  337. { swap$
  338. pop$
  339. }
  340. if$
  341. }
  342. if$
  343. }
  344. FUNCTION {bibinfo.warn}
  345. { swap$
  346. duplicate$ missing$
  347. {
  348. swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
  349. ""
  350. }
  351. { duplicate$ empty$
  352. {
  353. swap$ "empty " swap$ * " in " * cite$ * warning$
  354. }
  355. { swap$
  356. pop$
  357. }
  358. if$
  359. }
  360. if$
  361. }
  362. FUNCTION {format.url}
  363. { url empty$
  364. { "" }
  365. { "\urlprefix\url{" url * "}" * }
  366. if$
  367. }
  368. STRINGS { bibinfo}
  369. INTEGERS { nameptr namesleft numnames }
  370. FUNCTION {format.names}
  371. { 'bibinfo :=
  372. duplicate$ empty$ 'skip$ {
  373. 's :=
  374. "" 't :=
  375. #1 'nameptr :=
  376. s num.names$ 'numnames :=
  377. numnames 'namesleft :=
  378. { namesleft #0 > }
  379. { s nameptr
  380. "{ff~}{vv~}{ll}{, jj}"
  381. format.name$
  382. bibinfo bibinfo.check
  383. 't :=
  384. nameptr #1 >
  385. {
  386. nameptr #1
  387. #1 + =
  388. numnames #2
  389. > and
  390. { "others" 't :=
  391. #1 'namesleft := }
  392. 'skip$
  393. if$
  394. namesleft #1 >
  395. { ", " * t * }
  396. {
  397. numnames #2 >
  398. { "," * }
  399. 'skip$
  400. if$
  401. s nameptr "{ll}" format.name$ duplicate$ "others" =
  402. { 't := }
  403. { pop$ }
  404. if$
  405. t "others" =
  406. {
  407. " " * bbl.etal *
  408. }
  409. {
  410. bbl.and
  411. space.word * t *
  412. }
  413. if$
  414. }
  415. if$
  416. }
  417. 't
  418. if$
  419. nameptr #1 + 'nameptr :=
  420. namesleft #1 - 'namesleft :=
  421. }
  422. while$
  423. } if$
  424. }
  425. FUNCTION {format.names.ed}
  426. {
  427. format.names
  428. }
  429. FUNCTION {format.authors}
  430. { author "author" format.names
  431. }
  432. FUNCTION {get.bbl.editor}
  433. { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
  434. FUNCTION {format.editors}
  435. { editor "editor" format.names duplicate$ empty$ 'skip$
  436. {
  437. " " *
  438. get.bbl.editor
  439. "(" swap$ * ")" *
  440. *
  441. }
  442. if$
  443. }
  444. FUNCTION {format.note}
  445. {
  446. note empty$
  447. { "" }
  448. { note #1 #1 substring$
  449. duplicate$ "{" =
  450. 'skip$
  451. { output.state mid.sentence =
  452. { "l" }
  453. { "u" }
  454. if$
  455. change.case$
  456. }
  457. if$
  458. note #2 global.max$ substring$ * "note" bibinfo.check
  459. }
  460. if$
  461. }
  462. FUNCTION {format.title}
  463. { title
  464. "title" bibinfo.check
  465. duplicate$ empty$ 'skip$
  466. {
  467. "\enquote{" swap$ *
  468. "}, " *
  469. }
  470. if$
  471. }
  472. FUNCTION {end.quote.title}
  473. { title empty$
  474. 'skip$
  475. { before.all 'output.state := }
  476. if$
  477. }
  478. FUNCTION {output.bibitem}
  479. { newline$
  480. "\bibitem{" write$
  481. cite$ write$
  482. "}" write$
  483. newline$
  484. ""
  485. before.all 'output.state :=
  486. }
  487. FUNCTION {n.dashify}
  488. {
  489. 't :=
  490. ""
  491. { t empty$ not }
  492. { t #1 #1 substring$ "-" =
  493. { t #1 #2 substring$ "--" = not
  494. { "--" *
  495. t #2 global.max$ substring$ 't :=
  496. }
  497. { { t #1 #1 substring$ "-" = }
  498. { "-" *
  499. t #2 global.max$ substring$ 't :=
  500. }
  501. while$
  502. }
  503. if$
  504. }
  505. { t #1 #1 substring$ *
  506. t #2 global.max$ substring$ 't :=
  507. }
  508. if$
  509. }
  510. while$
  511. }
  512. FUNCTION {word.in}
  513. { bbl.in
  514. " " * }
  515. FUNCTION {format.date}
  516. {
  517. ""
  518. duplicate$ empty$
  519. year "year" bibinfo.check duplicate$ empty$
  520. { swap$ 'skip$
  521. { "there's a month but no year in " cite$ * warning$ }
  522. if$
  523. *
  524. }
  525. { swap$ 'skip$
  526. {
  527. swap$
  528. " " * swap$
  529. }
  530. if$
  531. *
  532. }
  533. if$
  534. duplicate$ empty$
  535. 'skip$
  536. {
  537. before.all 'output.state :=
  538. ", " swap$ *
  539. }
  540. if$
  541. }
  542. FUNCTION {format.btitle}
  543. { title "title" bibinfo.check
  544. duplicate$ empty$ 'skip$
  545. {
  546. emphasize
  547. }
  548. if$
  549. }
  550. FUNCTION {either.or.check}
  551. { empty$
  552. 'pop$
  553. { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  554. if$
  555. }
  556. FUNCTION {format.bvolume}
  557. { volume empty$
  558. { "" }
  559. { bbl.volume volume tie.or.space.prefix
  560. "volume" bibinfo.check * *
  561. series "series" bibinfo.check
  562. duplicate$ empty$ 'pop$
  563. { swap$ bbl.of space.word * swap$
  564. emphasize * }
  565. if$
  566. "volume and number" number either.or.check
  567. }
  568. if$
  569. }
  570. FUNCTION {format.number.series}
  571. { volume empty$
  572. { number empty$
  573. { series field.or.null }
  574. { series empty$
  575. { number "number" bibinfo.check }
  576. { output.state mid.sentence =
  577. { bbl.number }
  578. { bbl.number capitalize }
  579. if$
  580. number tie.or.space.prefix "number" bibinfo.check * *
  581. bbl.in space.word *
  582. series "series" bibinfo.check *
  583. }
  584. if$
  585. }
  586. if$
  587. }
  588. { "" }
  589. if$
  590. }
  591. FUNCTION {is.num}
  592. { chr.to.int$
  593. duplicate$ "0" chr.to.int$ < not
  594. swap$ "9" chr.to.int$ > not and
  595. }
  596. FUNCTION {extract.num}
  597. { duplicate$ 't :=
  598. "" 's :=
  599. { t empty$ not }
  600. { t #1 #1 substring$
  601. t #2 global.max$ substring$ 't :=
  602. duplicate$ is.num
  603. { s swap$ * 's := }
  604. { pop$ "" 't := }
  605. if$
  606. }
  607. while$
  608. s empty$
  609. 'skip$
  610. { pop$ s }
  611. if$
  612. }
  613. FUNCTION {convert.edition}
  614. { extract.num "l" change.case$ 's :=
  615. s "first" = s "1" = or
  616. { bbl.first 't := }
  617. { s "second" = s "2" = or
  618. { bbl.second 't := }
  619. { s "third" = s "3" = or
  620. { bbl.third 't := }
  621. { s "fourth" = s "4" = or
  622. { bbl.fourth 't := }
  623. { s "fifth" = s "5" = or
  624. { bbl.fifth 't := }
  625. { s #1 #1 substring$ is.num
  626. { s eng.ord 't := }
  627. { edition 't := }
  628. if$
  629. }
  630. if$
  631. }
  632. if$
  633. }
  634. if$
  635. }
  636. if$
  637. }
  638. if$
  639. t
  640. }
  641. FUNCTION {format.edition}
  642. { edition duplicate$ empty$ 'skip$
  643. {
  644. convert.edition
  645. output.state mid.sentence =
  646. { "l" }
  647. { "t" }
  648. if$ change.case$
  649. "edition" bibinfo.check
  650. " " * bbl.edition *
  651. }
  652. if$
  653. }
  654. INTEGERS { multiresult }
  655. FUNCTION {multi.page.check}
  656. { 't :=
  657. #0 'multiresult :=
  658. { multiresult not
  659. t empty$ not
  660. and
  661. }
  662. { t #1 #1 substring$
  663. duplicate$ "-" =
  664. swap$ duplicate$ "," =
  665. swap$ "+" =
  666. or or
  667. { #1 'multiresult := }
  668. { t #2 global.max$ substring$ 't := }
  669. if$
  670. }
  671. while$
  672. multiresult
  673. }
  674. FUNCTION {format.pages}
  675. { pages duplicate$ empty$ 'skip$
  676. { duplicate$ multi.page.check
  677. {
  678. bbl.pages swap$
  679. n.dashify
  680. }
  681. {
  682. bbl.page swap$
  683. }
  684. if$
  685. tie.or.space.prefix
  686. "pages" bibinfo.check
  687. * *
  688. }
  689. if$
  690. }
  691. FUNCTION {format.journal.pages}
  692. { pages duplicate$ empty$ 'pop$
  693. { swap$ duplicate$ empty$
  694. { pop$ pop$ format.pages }
  695. {
  696. ", " *
  697. swap$
  698. n.dashify
  699. pages multi.page.check
  700. 'bbl.pages
  701. 'bbl.page
  702. if$
  703. swap$ tie.or.space.prefix
  704. "pages" bibinfo.check
  705. * *
  706. *
  707. }
  708. if$
  709. }
  710. if$
  711. }
  712. FUNCTION {format.vol.num.pages}
  713. { volume field.or.null
  714. duplicate$ empty$ 'skip$
  715. {
  716. "volume" bibinfo.check
  717. }
  718. if$
  719. number "number" bibinfo.check duplicate$ empty$ 'skip$
  720. {
  721. swap$ duplicate$ empty$
  722. { "there's a number but no volume in " cite$ * warning$ }
  723. 'skip$
  724. if$
  725. swap$
  726. "(" swap$ * ")" *
  727. }
  728. if$ *
  729. }
  730. FUNCTION {format.chapter.pages}
  731. { chapter empty$
  732. { "" }
  733. { type empty$
  734. { bbl.chapter }
  735. { type "l" change.case$
  736. "type" bibinfo.check
  737. }
  738. if$
  739. chapter tie.or.space.prefix
  740. "chapter" bibinfo.check
  741. * *
  742. }
  743. if$
  744. }
  745. FUNCTION {format.booktitle}
  746. {
  747. booktitle "booktitle" bibinfo.check
  748. emphasize
  749. }
  750. FUNCTION {format.in.ed.booktitle}
  751. { format.booktitle duplicate$ empty$ 'skip$
  752. {
  753. editor "editor" format.names.ed duplicate$ empty$ 'pop$
  754. {
  755. bbl.edby
  756. " " * swap$ *
  757. swap$
  758. "," *
  759. " " * swap$
  760. * }
  761. if$
  762. word.in swap$ *
  763. }
  764. if$
  765. }
  766. FUNCTION {empty.misc.check}
  767. { author empty$ title empty$ howpublished empty$
  768. month empty$ year empty$ note empty$
  769. and and and and and
  770. { "all relevant fields are empty in " cite$ * warning$ }
  771. 'skip$
  772. if$
  773. }
  774. FUNCTION {format.thesis.type}
  775. { type duplicate$ empty$
  776. 'pop$
  777. { swap$ pop$
  778. "t" change.case$ "type" bibinfo.check
  779. }
  780. if$
  781. }
  782. FUNCTION {format.tr.number}
  783. { number "number" bibinfo.check
  784. type duplicate$ empty$
  785. { pop$ bbl.techrep }
  786. 'skip$
  787. if$
  788. "type" bibinfo.check
  789. swap$ duplicate$ empty$
  790. { pop$ "t" change.case$ }
  791. { tie.or.space.prefix * * }
  792. if$
  793. }
  794. FUNCTION {format.article.crossref}
  795. {
  796. key duplicate$ empty$
  797. { pop$
  798. journal duplicate$ empty$
  799. { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
  800. { "journal" bibinfo.check emphasize word.in swap$ * }
  801. if$
  802. }
  803. { word.in swap$ * " " *}
  804. if$
  805. " \cite{" * crossref * "}" *
  806. }
  807. FUNCTION {format.crossref.editor}
  808. { editor #1 "{vv~}{ll}" format.name$
  809. "editor" bibinfo.check
  810. editor num.names$ duplicate$
  811. #2 >
  812. { pop$
  813. "editor" bibinfo.check
  814. " " * bbl.etal
  815. *
  816. }
  817. { #2 <
  818. 'skip$
  819. { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  820. {
  821. "editor" bibinfo.check
  822. " " * bbl.etal
  823. *
  824. }
  825. {
  826. bbl.and space.word
  827. * editor #2 "{vv~}{ll}" format.name$
  828. "editor" bibinfo.check
  829. *
  830. }
  831. if$
  832. }
  833. if$
  834. }
  835. if$
  836. }
  837. FUNCTION {format.book.crossref}
  838. { volume duplicate$ empty$
  839. { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  840. pop$ word.in
  841. }
  842. { bbl.volume
  843. swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
  844. }
  845. if$
  846. editor empty$
  847. editor field.or.null author field.or.null =
  848. or
  849. { key empty$
  850. { series empty$
  851. { "need editor, key, or series for " cite$ * " to crossref " *
  852. crossref * warning$
  853. "" *
  854. }
  855. { series emphasize * }
  856. if$
  857. }
  858. { key * }
  859. if$
  860. }
  861. { format.crossref.editor * }
  862. if$
  863. " \cite{" * crossref * "}" *
  864. }
  865. FUNCTION {format.incoll.inproc.crossref}
  866. {
  867. editor empty$
  868. editor field.or.null author field.or.null =
  869. or
  870. { key empty$
  871. { format.booktitle duplicate$ empty$
  872. { "need editor, key, or booktitle for " cite$ * " to crossref " *
  873. crossref * warning$
  874. }
  875. { word.in swap$ * }
  876. if$
  877. }
  878. { word.in key * " " *}
  879. if$
  880. }
  881. { word.in format.crossref.editor * " " *}
  882. if$
  883. " \cite{" * crossref * "}" *
  884. }
  885. FUNCTION {format.org.or.pub}
  886. { 't :=
  887. ""
  888. address empty$ t empty$ and
  889. 'skip$
  890. {
  891. t empty$
  892. { address "address" bibinfo.check *
  893. }
  894. { t *
  895. address empty$
  896. 'skip$
  897. { ", " * address "address" bibinfo.check * }
  898. if$
  899. }
  900. if$
  901. }
  902. if$
  903. }
  904. FUNCTION {format.publisher.address}
  905. { publisher "publisher" bibinfo.warn format.org.or.pub
  906. }
  907. FUNCTION {format.organization.address}
  908. { organization "organization" bibinfo.check format.org.or.pub
  909. }
  910. FUNCTION {article}
  911. { output.bibitem
  912. format.authors "author" output.check
  913. format.title "title" output.check
  914. end.quote.title
  915. crossref missing$
  916. {
  917. journal
  918. remove.dots
  919. "journal" bibinfo.check
  920. emphasize
  921. "journal" output.check
  922. format.vol.num.pages output
  923. format.date "year" output.check
  924. }
  925. { format.article.crossref output.nonnull
  926. }
  927. if$
  928. format.journal.pages
  929. format.url output
  930. format.note output
  931. fin.entry
  932. }
  933. FUNCTION {book}
  934. { output.bibitem
  935. author empty$
  936. { format.editors "author and editor" output.check
  937. }
  938. { format.authors output.nonnull
  939. crossref missing$
  940. { "author and editor" editor either.or.check }
  941. 'skip$
  942. if$
  943. }
  944. if$
  945. format.btitle "title" output.check
  946. crossref missing$
  947. { format.bvolume output
  948. format.number.series output
  949. format.publisher.address output
  950. }
  951. {
  952. format.book.crossref output.nonnull
  953. }
  954. if$
  955. format.edition output
  956. format.date "year" output.check
  957. format.url output
  958. format.note output
  959. fin.entry
  960. }
  961. FUNCTION {booklet}
  962. { output.bibitem
  963. format.authors output
  964. format.title "title" output.check
  965. end.quote.title
  966. howpublished "howpublished" bibinfo.check output
  967. address "address" bibinfo.check output
  968. format.date output
  969. format.url output
  970. format.note output
  971. fin.entry
  972. }
  973. FUNCTION {inbook}
  974. { output.bibitem
  975. author empty$
  976. { format.editors "author and editor" output.check
  977. }
  978. { format.authors output.nonnull
  979. crossref missing$
  980. { "author and editor" editor either.or.check }
  981. 'skip$
  982. if$
  983. }
  984. if$
  985. format.btitle "title" output.check
  986. crossref missing$
  987. {
  988. format.publisher.address output
  989. format.bvolume output
  990. format.chapter.pages "chapter and pages" output.check
  991. format.number.series output
  992. }
  993. {
  994. format.chapter.pages "chapter and pages" output.check
  995. format.book.crossref output.nonnull
  996. }
  997. if$
  998. format.edition output
  999. format.date "year" output.check
  1000. format.pages "pages" output.check
  1001. format.url output
  1002. format.note output
  1003. fin.entry
  1004. }
  1005. FUNCTION {incollection}
  1006. { output.bibitem
  1007. format.authors "author" output.check
  1008. format.title "title" output.check
  1009. end.quote.title
  1010. crossref missing$
  1011. { format.in.ed.booktitle "booktitle" output.check
  1012. format.publisher.address output
  1013. format.bvolume output
  1014. format.number.series output
  1015. format.chapter.pages output
  1016. format.edition output
  1017. format.date "year" output.check
  1018. }
  1019. { format.incoll.inproc.crossref output.nonnull
  1020. format.chapter.pages output
  1021. }
  1022. if$
  1023. format.pages "pages" output.check
  1024. format.url output
  1025. format.note output
  1026. fin.entry
  1027. }
  1028. FUNCTION {inproceedings}
  1029. { output.bibitem
  1030. format.authors "author" output.check
  1031. format.title "title" output.check
  1032. end.quote.title
  1033. crossref missing$
  1034. { format.in.ed.booktitle "booktitle" output.check
  1035. publisher empty$
  1036. { format.organization.address output }
  1037. { organization "organization" bibinfo.check output
  1038. format.publisher.address output
  1039. }
  1040. if$
  1041. format.date "year" output.check
  1042. format.bvolume output
  1043. format.number.series output
  1044. }
  1045. { format.incoll.inproc.crossref output.nonnull
  1046. }
  1047. if$
  1048. format.pages "pages" output.check
  1049. format.url output
  1050. format.note output
  1051. fin.entry
  1052. }
  1053. FUNCTION {conference} { inproceedings }
  1054. FUNCTION {manual}
  1055. { output.bibitem
  1056. author empty$
  1057. { organization "organization" bibinfo.check
  1058. duplicate$ empty$ 'pop$
  1059. { output
  1060. address "address" bibinfo.check output
  1061. }
  1062. if$
  1063. }
  1064. { format.authors output.nonnull }
  1065. if$
  1066. format.btitle "title" output.check
  1067. author empty$
  1068. { organization empty$
  1069. {
  1070. address "address" bibinfo.check output
  1071. }
  1072. 'skip$
  1073. if$
  1074. }
  1075. {
  1076. organization "organization" bibinfo.check output
  1077. address "address" bibinfo.check output
  1078. }
  1079. if$
  1080. format.edition output
  1081. format.date output
  1082. format.url output
  1083. format.note output
  1084. fin.entry
  1085. }
  1086. FUNCTION {mastersthesis}
  1087. { output.bibitem
  1088. format.authors "author" output.check
  1089. format.btitle
  1090. "title" output.check
  1091. bbl.mthesis format.thesis.type output.nonnull
  1092. school "school" bibinfo.warn output
  1093. address "address" bibinfo.check output
  1094. format.date "year" output.check
  1095. format.url output
  1096. format.note output
  1097. fin.entry
  1098. }
  1099. FUNCTION {misc}
  1100. { output.bibitem
  1101. format.authors output
  1102. format.title output
  1103. end.quote.title
  1104. howpublished "howpublished" bibinfo.check output
  1105. format.date output
  1106. format.url output
  1107. format.note output
  1108. fin.entry
  1109. empty.misc.check
  1110. }
  1111. FUNCTION {phdthesis}
  1112. { output.bibitem
  1113. format.authors "author" output.check
  1114. format.btitle
  1115. "title" output.check
  1116. bbl.phdthesis format.thesis.type output.nonnull
  1117. school "school" bibinfo.warn output
  1118. address "address" bibinfo.check output
  1119. format.date "year" output.check
  1120. format.url output
  1121. format.note output
  1122. fin.entry
  1123. }
  1124. FUNCTION {proceedings}
  1125. { output.bibitem
  1126. editor empty$
  1127. { organization "organization" bibinfo.check output
  1128. }
  1129. { format.editors output.nonnull }
  1130. if$
  1131. format.btitle "title" output.check
  1132. format.bvolume output
  1133. format.number.series output
  1134. editor empty$
  1135. { publisher empty$
  1136. 'skip$
  1137. {
  1138. format.publisher.address output
  1139. }
  1140. if$
  1141. }
  1142. { publisher empty$
  1143. {
  1144. format.organization.address output }
  1145. {
  1146. organization "organization" bibinfo.check output
  1147. format.publisher.address output
  1148. }
  1149. if$
  1150. }
  1151. if$
  1152. format.date "year" output.check
  1153. format.url output
  1154. format.note output
  1155. fin.entry
  1156. }
  1157. FUNCTION {techreport}
  1158. { output.bibitem
  1159. format.authors "author" output.check
  1160. format.btitle
  1161. "title" output.check
  1162. format.tr.number output.nonnull
  1163. institution "institution" bibinfo.warn output
  1164. address "address" bibinfo.check output
  1165. format.date "year" output.check
  1166. format.url output
  1167. format.note output
  1168. fin.entry
  1169. }
  1170. FUNCTION {unpublished}
  1171. { output.bibitem
  1172. format.authors "author" output.check
  1173. format.title "title" output.check
  1174. end.quote.title
  1175. format.date output
  1176. format.url output
  1177. format.note "note" output.check
  1178. fin.entry
  1179. }
  1180. FUNCTION {default.type} { misc }
  1181. READ
  1182. STRINGS { longest.label }
  1183. INTEGERS { number.label longest.label.width }
  1184. FUNCTION {initialize.longest.label}
  1185. { "" 'longest.label :=
  1186. #1 'number.label :=
  1187. #0 'longest.label.width :=
  1188. }
  1189. FUNCTION {longest.label.pass}
  1190. { number.label int.to.str$ 'label :=
  1191. number.label #1 + 'number.label :=
  1192. label width$ longest.label.width >
  1193. { label 'longest.label :=
  1194. label width$ 'longest.label.width :=
  1195. }
  1196. 'skip$
  1197. if$
  1198. }
  1199. EXECUTE {initialize.longest.label}
  1200. ITERATE {longest.label.pass}
  1201. FUNCTION {begin.bib}
  1202. { preamble$ empty$
  1203. 'skip$
  1204. { preamble$ write$ newline$ }
  1205. if$
  1206. "\begin{thebibliography}{" longest.label * "}" *
  1207. write$ newline$
  1208. "\newcommand{\enquote}[1]{``#1''}"
  1209. write$ newline$
  1210. "\expandafter\ifx\csname url\endcsname\relax"
  1211. write$ newline$
  1212. " \def\url#1{\texttt{#1}}\fi"
  1213. write$ newline$
  1214. "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
  1215. write$ newline$
  1216. }
  1217. EXECUTE {begin.bib}
  1218. EXECUTE {init.state.consts}
  1219. ITERATE {call.type$}
  1220. FUNCTION {end.bib}
  1221. { newline$
  1222. "\end{thebibliography}" write$ newline$
  1223. }
  1224. EXECUTE {end.bib}
  1225. %% End of customized bst file
  1226. %%
  1227. %% End of file `tufte.bst'.