root/applications/dual/vahala/DP/czechiso.bst @ 1441

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