rss.bst 28 KB

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