root/studiarbeit/bst/tobse.bst

Revision 83, 25.7 kB (checked in by phil, 14 years ago)

Der Vogel hat alles repariert ;-)

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