Advertisement
Speedex

csn690.bst

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