Advertisement
Guest User

bst file

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