Advertisement
Guest User

Untitled

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