Advertisement
Guest User

nsf.bst

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