ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/matt_papers/canidacy_talk/jureco.bst
Revision: 62
Committed: Tue Aug 6 22:06:13 2002 UTC (21 years, 11 months ago) by mmeineke
File size: 56230 byte(s)
Log Message:

added a crapload of crap that may or may norbe neccassary. Time will tell. Also, got footnote references working.

File Contents

# Content
1 %%
2 %% This is file `jureco.bst',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% jurabib.dtx (with options: `jurecobst')
8 %% ----------------------------------------
9 %% BibTeX style for use with the jurabib package version v0.52n
10 %% Copyright (C) 1999, 2000, 2001, 2002 Jens Berger
11 %% See jurabib.ins for the copyright details.
12 %%
13 ENTRY{
14 address
15 author
16 booktitle
17 chapter
18 edition
19 editor
20 howpublished
21 institution
22 isbn
23 issn
24 journal
25 key
26 language
27 month
28 note
29 number
30 organization
31 pages
32 publisher
33 school
34 series
35 title
36 type
37 volume
38 year
39 %%
40 url
41 urldate
42 volumetitle
43 dissyear
44 howcited
45 juratitle
46 juraauthor
47 shorttitle
48 shortauthor
49 ssedition
50 titleaddon
51 booktitleaddon
52 editortype
53 sortkey
54 annote
55 gender
56 translator
57 flanguage
58 oyear
59 oaddress
60 opublisher
61 updated
62 totalpages
63 founder
64 }
65 { repeat-authors repeat-titles }
66 { label dummy.label extra.label sort.label current-authors
67 }
68
69 INTEGERS { output.state before.all mid.sentence after.sentence after.block }
70
71 INTEGERS { colon.after period.dash }
72
73 FUNCTION {init.state.consts}
74 { #0 'before.all :=
75 #1 'mid.sentence :=
76 #2 'after.sentence :=
77 #3 'after.block :=
78 #4 'colon.after :=
79 #5 'period.dash :=
80 }
81
82 STRINGS { s t u v w x }
83
84 FUNCTION {output.nonnull}
85 { 's :=
86 output.state after.block =
87 { write$ }
88 { output.state before.all =
89 { write$ }
90 { output.state colon.after =
91 { "" * write$ }
92 { output.state period.dash =
93 { ", " * write$ }
94 { output.state mid.sentence =
95 { " " * write$ }
96 { write$ }
97 if$
98 }
99 if$
100 }
101 if$
102 }
103 if$
104 after.block 'output.state :=
105 }
106 if$
107 s
108 }
109
110 FUNCTION {output}
111 { duplicate$ empty$
112 'pop$
113 'output.nonnull
114 if$
115 }
116
117 FUNCTION {output.check}
118 { 't :=
119 duplicate$ empty$
120 { pop$ "Empty " t * " in " * cite$ * warning$ }
121 'output.nonnull
122 if$
123 }
124
125 FUNCTION {not}
126 { { #0 }
127 { #1 }
128 if$
129 }
130
131 FUNCTION {and}
132 { 'skip$
133 { pop$ #0 }
134 if$
135 }
136
137 FUNCTION {or}
138 { { pop$ #1 }
139 'skip$
140 if$
141 }
142
143 FUNCTION {is.num}
144 { chr.to.int$
145 duplicate$ "0" chr.to.int$ < not
146 swap$ "9" chr.to.int$ > not and
147 }
148
149 FUNCTION {extract.num}
150 { duplicate$ 't :=
151 "" 's :=
152 { t empty$ not }
153 { t #1 #1 substring$
154 t #2 global.max$ substring$ 't :=
155 duplicate$ is.num
156 { s swap$ * 's := }
157 { pop$ "" 't := }
158 if$
159 }
160 while$
161 s empty$
162 'skip$
163 { pop$ s }
164 if$
165 }
166
167 FUNCTION {convert.edition.superscript}
168 { edition extract.num "l" change.case$ 's :=
169 s "first" = s "1" = or s "erste" = or
170 { "1" 't := }
171 { s "second" = s "2" = or s "zweite" = or
172 { "2" 't := }
173 { s "third" = s "3" = or s "dritte" = or
174 { "3" 't := }
175 { s "fourth" = s "4" = or s "vierte" = or
176 { "4" 't := }
177 { s "fifth" = s "5" = or s "fuenfte" = or
178 { "5" 't := }
179 { s "sixth" = s "6" = or s "sechste" = or
180 { "6" 't := }
181 { s "seventh" = s "7" = or s "siebte" = or s "siebente" = or
182 { "7" 't := }
183 { s "eighth" = s "8" = or s "achte" = or
184 { "8" 't := }
185 { s "nineth" = s "9" = or s "neunte" = or
186 { "9" 't := }
187 { s #1 #1 substring$ is.num
188 { s "" * 't := }
189 { edition 't := }
190 if$
191 }
192 if$
193 }
194 if$
195 }
196 if$
197 }
198 if$
199 }
200 if$
201 }
202 if$
203 }
204 if$
205 }
206 if$
207 }
208 if$
209 t
210 }
211
212 FUNCTION {n.dashify}
213 { 't :=
214 ""
215 { t empty$ not }
216 { t #1 #1 substring$ "-" =
217 { t #1 #2 substring$ "--" = not
218 { "--" * t #2 global.max$ substring$ 't := }
219 { { t #1 #1 substring$ "-" = }
220 { "-" * t #2 global.max$ substring$ 't := }
221 while$
222 }
223 if$
224 }
225 { t #1 #1 substring$ * t #2 global.max$ substring$ 't := }
226 if$
227 }
228 while$
229 }
230
231 FUNCTION {output.bibitem.fst}
232 { newline$
233 "\bibitem[{" write$
234 shortauthor empty$
235 { juraauthor empty$
236 { author empty$
237 { editor empty$
238 { organization empty$
239 { "empty" write$ }
240 { organization write$ }
241 if$
242 }
243 { label write$ }
244 if$
245 }
246 { label write$ }
247 if$
248 }
249 { juraauthor write$ }
250 if$
251 }
252 { shortauthor write$ }
253 if$
254 "}%" write$
255 sortkey empty$
256 'skip$
257 { newline$ "% SORTKEY: [" sortkey * "]" * write$ }
258 if$
259 newline$
260 shorttitle empty$
261 { juratitle empty$
262 { journal empty$
263 { " {}%" write$ }
264 { " {" journal * "}%" * write$ }
265 if$
266 }
267 { " {" juratitle * "}%" * write$ }
268 if$
269 }
270 { " {" shorttitle * "}%" * write$ }
271 if$
272 newline$
273 repeat-authors
274 { " {{1}" write$ }
275 { " {{0}" write$ }
276 if$
277 howcited empty$
278 { "{}" write$ }
279 { "{" howcited * "}" * write$ }
280 if$
281 type$ empty$
282 { "{}" write$ }
283 { "{" type$ * "}" * write$ }
284 if$
285 year empty$
286 { "{}" write$ }
287 { "{" year * write$
288 extra.label "" =
289 'skip$
290 { "\el {" write$ extra.label write$ "}" write$ }
291 if$
292 "}" write$
293 }
294 if$
295 edition empty$
296 { "{}" write$ }
297 { "{" convert.edition.superscript extract.num * "}" * write$ }
298 if$
299 ssedition empty$
300 { "{}" write$ }
301 { "{" ssedition * "}" * write$ }
302 if$
303 language empty$
304 { "{}" write$ }
305 { "{" language * "}" * write$ }
306 if$
307 pages empty$
308 { "{}%" write$ }
309 { "{" write$ pages n.dashify write$ "}%" write$ }
310 if$
311 }
312
313 FUNCTION {output.bibitem.snd}
314 { newline$
315 publisher empty$
316 { address empty$
317 { " {" write$ }
318 { " {" write$ address write$ }
319 if$
320 }
321 { address empty$
322 { " {" write$ }
323 { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ }
324 if$
325 }
326 if$
327 "}}%" write$ newline$
328 " {" write$
329 title empty$
330 { "{}%" write$ newline$ }
331 { "{" title * "}%" * write$ newline$ }
332 if$
333 gender empty$
334 { " {}" write$ }
335 { " {" gender * "}" * write$ }
336 if$
337 "{}{}{}{}{}{}{}}%" write$ newline$
338 " ]{" write$
339 cite$ write$
340 "}" write$
341 url empty$
342 'skip$
343 { newline$ " \jburldef {" write$ cite$ write$ "}{" write$ url write$ "}%" write$ }
344 if$
345 newline$
346 " \jbbibargs {" write$
347 ""
348 before.all 'output.state :=
349 }
350
351 FUNCTION {output.bibitem}
352 { output.bibitem.fst
353 output.bibitem.snd
354 }
355
356 FUNCTION {format.note}
357 { note empty$
358 'skip$
359 { output.state before.all =
360 {" \jbnote {}{" * note * "} " * }
361 {" \jbnote {1}{" * note * "} " * }
362 if$
363 }
364 if$
365 }
366
367 FUNCTION {format.endnote}
368 { note empty$
369 { "" }
370 { " \jbendnote {" note * "}" * }
371 if$
372 }
373
374 FUNCTION {fin.entry.endnote}
375 { " \jbdoitem" * write$
376 annote missing$
377 { " \bibAnnoteFile {" cite$ * "}" * write$ newline$ }
378 { " \bibAnnote {" annote * "}" * write$ newline$ }
379 if$
380 }
381
382 FUNCTION {format.juradiss.book}
383 { dissyear empty$
384 { "" }
385 { type empty$
386 { school empty$
387 { "No university in " cite$ * warning$
388 " (\alsothesisname {} \jurthesisname\bibbdsep {} " dissyear * ")" * }
389 { " (\alsothesisname {} \jurthesisname, " school * "\bibbdsep {} " dissyear * ")" * * }
390 if$
391 }
392 { school empty$
393 { "No university in " cite$ * warning$
394 " (\alsothesisname {} " type * ", " * "\bibbdsep {} " dissyear * ")" * * }
395 { " (\alsothesisname {} " type * ", " * school * "\bibbdsep {} " dissyear * ")" * * }
396 if$
397 }
398 if$
399 }
400 if$
401 }
402
403 FUNCTION {format.thesis}
404 { year empty$
405 { school empty$
406 { "No universtiy in " cite$ * warning$ }
407 { "There's a university, but no year in " cite$ * warning$ }
408 if$
409 ""
410 }
411 { type empty$
412 { school empty$
413 { "No university in " cite$ * warning$
414 type$ "mastersthesis" =
415 { "\apyformat {\mastersthesisname}" * }
416 { type$ "jurthesis" =
417 { "\apyformat {\jurthesisname}" * }
418 { "\apyformat {\phdthesisname}" * }
419 if$
420 }
421 if$
422 }
423 { type$ "mastersthesis" =
424 { "\mastersthesisname, \apyformat {" school * "}" * }
425 { type$ "jurthesis" =
426 { "\jurthesisname, \apyformat {" school * "}" * }
427 { "\phdthesisname, \apyformat {" school * "}" * }
428 if$
429 }
430 if$
431 }
432 if$
433 }
434 { school empty$
435 { "No university in " cite$ * warning$ type }
436 { type " \apyformat {" * school * "}" * }
437 if$
438 }
439 if$
440 }
441 if$
442 }
443
444 FUNCTION {set.comma.pages.check}
445 { year empty$
446 'skip$
447 { pages empty$
448 { url empty$
449 'skip$
450 { ", " * }
451 if$
452 }
453 { ", " * }
454 if$
455 }
456 if$
457 }
458
459 FUNCTION {set.period.dash}
460 { output.state before.all =
461 'skip$
462 { period.dash 'output.state := }
463 if$
464 }
465
466 FUNCTION {set.period.dash.check}
467 { empty$
468 'skip$
469 'set.period.dash
470 if$
471 }
472
473 FUNCTION {new.sentence}
474 { output.state before.all =
475 'skip$
476 { after.sentence 'output.state := }
477 if$
478 }
479
480 FUNCTION {part.of.sentence}
481 { output.state before.all =
482 'skip$
483 { mid.sentence 'output.state := }
484 if$
485 }
486
487 FUNCTION {new.sentence.checka}
488 { empty$
489 'skip$
490 'new.sentence
491 if$
492 }
493
494 FUNCTION {field.or.null}
495 { duplicate$ empty$
496 { pop$ "" }
497 'skip$
498 if$
499 }
500
501
502 FUNCTION {get.final.nonrightbrace.char}
503 { { duplicate$
504 #-1 #1 substring$
505 duplicate$
506 "}" =
507 }
508 { pop$
509 #-2 global.max$ substring$
510 }
511 while$
512 swap$ pop$
513 }
514
515
516 FUNCTION {check.punct.instead.of.add.period}
517 { duplicate$
518 get.final.nonrightbrace.char
519 duplicate$ "." = swap$
520 duplicate$ "!" = swap$
521 "?" = or or
522 { "} " * }
523 { "}\bibatsep\ " * }
524 if$
525 }
526
527
528 FUNCTION {check.punct.instead.of.add.period.art}
529 { duplicate$
530 get.final.nonrightbrace.char
531 duplicate$ "." = swap$
532 duplicate$ "!" = swap$
533 "?" = or or
534 { "} " * }
535 { volume empty$
536 { pages empty$
537 { "}\ajtsep\ " * }
538 { crossref missing$
539 { month empty$
540 { "}\ajtsep\ " * }
541 { "}\ajtsep " * }
542 if$
543 }
544 { "}\ajtsep " * }
545 if$
546 }
547 if$
548 }
549 { "}\ajtsep\ " * }
550 if$
551 }
552 if$
553 }
554
555 FUNCTION {emphasize}
556 { duplicate$ empty$
557 { pop$ "" }
558 { "\bibtfont {" swap$ check.punct.instead.of.add.period * }
559 if$
560 }
561
562 FUNCTION {journaltitlemarkup}
563 { duplicate$ empty$
564 { pop$ "" }
565 { "\bibJTsep \bibjtfont {" swap$ check.punct.instead.of.add.period.art * }
566 if$
567 }
568
569 FUNCTION {incollbooktitlemarkup}
570 { duplicate$ empty$
571 { pop$ "" }
572 { "\bibbtfont {" swap$ check.punct.instead.of.add.period * }
573 if$
574 }
575
576 INTEGERS { nameptr namesleft numnames }
577
578 FUNCTION { lastnamemarkup }
579 { duplicate$ empty$
580 { pop$ "" }
581 { "\bibnf {" swap$ * "}" * }
582 if$
583 }
584
585 FUNCTION { editorlastnamemarkup }
586 { duplicate$ empty$
587 { pop$ "" }
588 { author empty$
589 { "\biblenf {" swap$ * "}" * } % lonely editor(s)!
590 { "\bibenf {" swap$ * "}" * }
591 if$
592 }
593 if$
594 }
595
596 FUNCTION { othermarkup }
597 { duplicate$ empty$
598 { pop$ " {}" }
599 { " {" swap$ * "}" * }
600 if$
601 }
602
603 FUNCTION {article.in.journal}
604 { duplicate$ empty$
605 { pop$ "" }
606 { author missing$
607 { title missing$
608 'skip$
609 { journaltitlemarkup "" swap$ * }
610 if$
611 }
612 { journaltitlemarkup "" swap$ * }
613 if$
614 }
615 if$
616 }
617
618 FUNCTION {format.names} % NEW v0.5
619 { 's :=
620 #1 'nameptr :=
621 s num.names$ 'numnames :=
622 numnames 'namesleft :=
623 { namesleft #0 > }
624 { s nameptr "{ll}" format.name$ 't := t lastnamemarkup 't :=
625 s nameptr "{ff}" format.name$ othermarkup 'u :=
626 s nameptr "{f.}" format.name$ othermarkup 'v :=
627 s nameptr "{vv}" format.name$ othermarkup 'w :=
628 s nameptr "{jj}" format.name$ othermarkup 'x :=
629 t u * v * w * x * 't :=
630 nameptr #1 >
631 { namesleft #1 >
632 { numnames #3 >
633 { "" * }
634 { numnames #3 <
635 { "\Bibbtasep " * t * } % between (exactly) two authors
636 { "\Bibbfsasep " * t * } % between first and second author (if more than two)
637 if$
638 }
639 if$
640 }
641 { t "\bibnf {others} {} {} {} {}" =
642 t "\bibnf {others} {} {} {} {} \edfont {\editorsname}" = or
643 numnames #3 > or
644 { "\bibIMfont {\Bibetal}" * }
645 { numnames #3 <
646 { "\Bibbtasep " * t * } % between (exactly) two authors
647 { "\Bibbstasep " * t * } % between second and third author
648 if$
649 }
650 if$
651 }
652 if$
653 }
654 't
655 if$
656 nameptr #1 + 'nameptr :=
657 namesleft #1 - 'namesleft :=
658 }
659 while$
660 }
661
662 FUNCTION {format.editor.names} % NEW v0.5
663 { 's :=
664 #1 'nameptr :=
665 s num.names$ 'numnames :=
666 numnames 'namesleft :=
667 { namesleft #0 > }
668 { s nameptr "{ll}" format.name$ 't := t editorlastnamemarkup 't :=
669 s nameptr "{ff}" format.name$ othermarkup 'u :=
670 s nameptr "{f.}" format.name$ othermarkup 'v :=
671 s nameptr "{vv}" format.name$ othermarkup 'w :=
672 s nameptr "{jj}" format.name$ othermarkup 'x :=
673 t u * v * w * x * 't :=
674 nameptr #1 >
675 { namesleft #1 >
676 { numnames #3 >
677 { "" * }
678 { numnames #3 <
679 { "\Bibbtesep " * t * } % between (exactly) two editors
680 { "\Bibbfsesep " * t * } % between first and second editor (if more than two)
681 if$
682 }
683 if$
684 }
685 { t "\bibenf {others} {} {} {} {}" =
686 t "\biblenf {others} {} {} {} {}" = or
687 t "\bibenf {others} {} {} {} {} \edfont {\editorsname}" = or
688 t "\biblenf {others} {} {} {} {} \edfont {\editorsname}" = or
689 numnames #3 > or
690 { "\bibIMfont {\Bibetal}" * }
691 { numnames #3 <
692 { "\Bibbtesep " * t * } % between (exactly) two editors
693 { "\Bibbstesep " * t * } % between second and third editor
694 if$
695 }
696 if$
697 }
698 if$
699 }
700 't
701 if$
702 nameptr #1 + 'nameptr :=
703 namesleft #1 - 'namesleft :=
704 }
705 while$
706 }
707
708 FUNCTION {format.name.sig}
709 { 's :=
710 #1 'nameptr :=
711 s num.names$ 'numnames :=
712 numnames 'namesleft :=
713 { namesleft #0 > }
714 { s nameptr "{ff}{ vv}{ ll}{ jj}" format.name$ 't :=
715 nameptr #1 >
716 { namesleft #1 >
717 { "" * t * }
718 { t "others" =
719 { " et al." * }
720 { "" * t * }
721 if$
722 }
723 if$
724 }
725 't
726 if$
727 nameptr #1 + 'nameptr :=
728 namesleft #1 - 'namesleft :=
729 }
730 while$
731 }
732
733
734 FUNCTION {format.authors}
735 { author empty$
736 { "" }
737 { author format.names }
738 if$
739 }
740
741 FUNCTION {format.founders}
742 { founder empty$
743 'skip$
744 { author empty$
745 'skip$
746 { " in: " * }
747 if$
748 founder format.names "\foundername" * *
749 editor empty$
750 'skip$
751 { author empty$
752 { "\afterfoundersep {}" * }
753 'skip$
754 if$
755 }
756 if$
757 }
758 if$
759 }
760
761 FUNCTION {format.editors}
762 { editor empty$
763 { "" }
764 { author empty$
765 { editor format.editor.names
766 editortype empty$
767 { editor num.names$ #1 >
768 { "\fsted {\editorsname}" * }
769 { "\fsted {\editorname}" * }
770 if$
771 }
772 { "\fsted {(" editortype * ")}" * * }
773 if$
774 }
775 { founder empty$
776 { "\bibfnfont {;} " * }
777 { type$ "commented" =
778 { "\afterfoundersep {}" * }
779 { "\bibfnfont {;} " * }
780 if$
781 }
782 if$
783 editor format.editor.names *
784 editortype empty$
785 { editor num.names$ #1 >
786 { " \edfont {\editorsname}" * }
787 { " \edfont {\editorname}" * }
788 if$
789 }
790 { " \edfont {(" editortype * ")}" * * }
791 if$
792 }
793 if$
794 }
795 if$
796 }
797
798 FUNCTION {format.snd.editors}
799 { editor empty$
800 { "" * }
801 { author empty$
802 { editortype empty$
803 { editor num.names$ #1 >
804 { "\snded {\sndeditorsname}" * }
805 { "\snded {\sndeditorname}" * }
806 if$
807 }
808 { "\snded {(" editortype * ")}" * * }
809 if$
810 }
811 'skip$
812 if$
813 }
814 if$
815 }
816
817
818 FUNCTION { set.after.author.sep }
819 { author empty$ editor empty$ and
820 { "}{jureco} {} {" "" * }
821 { year empty$
822 'skip$
823 { year missing$
824 { "\bibYear {}" * }
825 { "\bibYear {" * year * extra.label * "}" * }
826 if$
827 }
828 if$
829 "}{jureco} {} {" "" *
830 }
831 if$
832 }
833
834 FUNCTION {format.names.info}
835 { 's :=
836 #1 'nameptr :=
837 s num.names$ 'numnames :=
838 numnames 'namesleft :=
839 { namesleft #0 > }
840 { s nameptr "{ff }{vv }{ll}" format.name$ 't :=
841 nameptr #1 >
842 { namesleft #1 >
843 { " " * t * }
844 { t "others" =
845 { " et al." * }
846 { " " * t * }
847 if$
848 }
849 if$
850 }
851 't
852 if$
853 nameptr #1 + 'nameptr :=
854 namesleft #1 - 'namesleft :=
855 }
856 while$
857 }
858
859 FUNCTION { format.howcited }
860 { "} {\bibhowcited}" format.endnote * }
861
862 FUNCTION { format.howcited.comment }
863 { edition empty$
864 { "} {\bibcommenthowcited}" format.endnote * }
865 { "} {\bibcommenthowcited}" format.endnote * *
866 author empty$ editor empty$ not and
867 { " \jbauthorinfo {" editor format.names.info " " title * * * "}{" cite$ "}" * * * }
868 { author empty$ shortauthor empty$ not and
869 { " \jbauthorinfo {" shortauthor format.names.info " " title * * * "}{" cite$ "}" * * * }
870 { " \jbauthorinfo {" author format.names.info " " title * * * "}{" cite$ "}" * * * }
871 if$
872 }
873 if$
874 }
875 if$
876 }
877
878 FUNCTION { format.howcited.artperiod }
879 { "} {\bibartperiodhowcited}" format.endnote * }
880
881 FUNCTION {format.ed.incoll}
882 { editor empty$
883 { "" }
884 { editor format.editor.names
885 editortype empty$
886 { editor num.names$ #1 >
887 { " \edfont {\editorsname}" * }
888 { " \edfont {\editorname}" * }
889 if$
890 }
891 { " \edfont {(" editortype * ")}" * * }
892 if$
893 }
894 if$
895 }
896
897 FUNCTION {format.proceed.organization}
898 { organization empty$
899 { "" }
900 { organization " \organizationname {}" * }
901 if$
902 }
903
904 FUNCTION {format.titleaddon}
905 { title empty$
906 { "" }
907 { titleaddon empty$
908 { "" }
909 { titleaddon "\bibatsep\ " * }
910 if$
911 }
912 if$
913 }
914
915 FUNCTION {format.title}
916 { title empty$
917 { "" }
918 { "\bibtfont {" title check.punct.instead.of.add.period * format.titleaddon * }
919 if$
920 }
921
922 FUNCTION {format.artperiodincoll.title}
923 { title empty$
924 { "" }
925 { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
926 if$
927 }
928
929 FUNCTION {format.volumetitle}
930 { volumetitle empty$
931 { "" }
932 { volume empty$
933 { "There's a volumetitle but no volume in " cite$ * warning$ volumetitle ", " * }
934 { volumetitle ", " * }
935 if$
936 }
937 if$
938 }
939
940 FUNCTION {add.extra.label}
941 { extra.label "" =
942 'skip$
943 { "\bibel {" extra.label * "}" * * }
944 if$
945 }
946
947 FUNCTION {format.date}
948 { year empty$
949 { month empty$
950 { "" }
951 { "There's a month but no year in " cite$ * warning$ month }
952 if$
953 }
954 { month empty$
955 { edition empty$
956 'skip$
957 { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * }
958 if$
959 year
960 add.extra.label
961 }
962 { month " " *
963 edition empty$
964 'skip$
965 { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * }
966 if$
967 year *
968 add.extra.label
969 }
970 if$
971 }
972 if$
973 }
974
975 FUNCTION {format.date.old}
976 { year empty$
977 { month empty$
978 { "" }
979 { "There's a month but no year in " cite$ * warning$ month }
980 if$
981 }
982 { month empty$
983 'year
984 { month " " * year * }
985 if$
986 }
987 if$
988 }
989
990 FUNCTION {format.update}
991 { updated missing$ not
992 { "\updatesep {} \updatename {} " * updated * }
993 'skip$
994 if$
995 }
996
997 FUNCTION {oaddress.opublisher.oyear.format}
998 { type$ "book" = type$ "inbook" = type$ "incollection" = or or
999 { oyear empty$
1000 { opublisher empty$
1001 { oaddress empty$
1002 'skip$
1003 { oaddress "\osep {} " * * }
1004 if$
1005 }
1006 { oaddress empty$
1007 { opublisher "\osep {} " * * }
1008 { oaddress "\bpubaddr {} " * opublisher "\osep {} " * * * }
1009 if$
1010 }
1011 if$
1012 }
1013 { year empty$
1014 { "oyear without year in " cite$ * warning$ }
1015 'skip$
1016 if$
1017 opublisher empty$
1018 { oaddress empty$
1019 { oyear * "\osep {} \reprintname {}, " * }
1020 { oaddress "\bibbdsep {} " * oyear "\osep {} " * * * }
1021 if$
1022 }
1023 { oaddress empty$
1024 { opublisher * "\bibbdsep {} " * oyear "\osep {} " * * }
1025 { oaddress "\bpubaddr {} " * opublisher "\bibbdsep {} " * * oyear "\osep {} " * * * }
1026 if$
1027 }
1028 if$
1029 }
1030 if$
1031 }
1032 'skip$
1033 if$
1034 }
1035
1036 FUNCTION {make.translators}
1037 { before.all 'output.state :=
1038 translator empty$
1039 { flanguage empty$
1040 { "" }
1041 { "\translator {}{" flanguage "l" change.case$ * "}" *
1042 type$ "incollection" = not
1043 type$ "article" = not
1044 and
1045 { "{1} " * }
1046 { type$ "incollection" =
1047 { booktitle empty$
1048 { "{} " * }
1049 { "{1} " * }
1050 if$
1051 }
1052 { type$ "article" =
1053 { "{1}" * }
1054 { series empty$
1055 { "{} " * }
1056 { "{1} " * }
1057 if$
1058 }
1059 if$
1060 }
1061 if$
1062 }
1063 if$
1064 }
1065 if$
1066 }
1067 { "\translator {" translator * "}" *
1068 flanguage empty$
1069 { "{}" * }
1070 { "{" * flanguage "l" change.case$ * "}" * }
1071 if$
1072 type$ "incollection" = not
1073 type$ "article" = not
1074 and
1075 { "{1} " * }
1076 {
1077 type$ "incollection" =
1078 { booktitle empty$
1079 { "{} " * }
1080 { "{1} " * }
1081 if$
1082 }
1083 { type$ "article" =
1084 { "{1} " * }
1085 { series empty$
1086 { "{} " * }
1087 { "{1} " * }
1088 if$
1089 }
1090 if$
1091 }
1092 if$
1093 }
1094 if$
1095 }
1096 if$
1097 before.all 'output.state :=
1098 }
1099
1100 FUNCTION {format.address.publisher.year}
1101 { publisher empty$
1102 { address empty$
1103 { institution empty$
1104 { "" }
1105 { " \apyformat {" oaddress.opublisher.oyear.format * institution "}" * }
1106 if$
1107 }
1108 { institution empty$
1109 { " \apyformat {" oaddress.opublisher.oyear.format * address "}" * }
1110 { " \apyformat {" oaddress.opublisher.oyear.format * address "\bpubaddr {} " * institution "}" * * }
1111 if$
1112 }
1113 if$
1114 }
1115 { address empty$
1116 { institution empty$
1117 { "There's only a publisher (no address) in " cite$ * warning$
1118 " \apyformat {" oaddress.opublisher.oyear.format * publisher "}" * }
1119 { " \apyformat {" oaddress.opublisher.oyear.format * publisher ", " * institution "}" * * }
1120 if$
1121 }
1122 { institution empty$
1123 { " \apyformat {" oaddress.opublisher.oyear.format * address "\bpubaddr {} " * publisher "}" * * }
1124 { " \apyformat {" oaddress.opublisher.oyear.format * address "\bpubaddr {} " * publisher ", " * institution "}" * * * }
1125 if$
1126 }
1127 if$
1128 }
1129 if$
1130 }
1131
1132
1133 FUNCTION {format.howpublished.address.year}
1134 { howpublished empty$
1135 { address empty$
1136 { "No address in " cite$ * warning$ }
1137 { " \apyformat {" oaddress.opublisher.oyear.format address * "}" * }
1138 if$
1139 }
1140 { address empty$
1141 { "There's only a howpublished (no address) in " cite$ * warning$ " \apyformat {" oaddress.opublisher.oyear.format howpublished * "}" * }
1142 { " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished "}" * * }
1143 if$
1144 }
1145 if$
1146 }
1147
1148 FUNCTION {tie.or.space.connect}
1149 { duplicate$ text.length$ #4 <
1150 { "~" }
1151 { " " }
1152 if$
1153 swap$ * *
1154 }
1155
1156 FUNCTION {bibvol.tie.or.space.connect}
1157 { duplicate$ text.length$ #4 <
1158 { "~" }
1159 { "{} " }
1160 if$
1161 swap$ * *
1162 }
1163
1164 FUNCTION {format.btitle}{ title emphasize format.titleaddon * }
1165
1166 FUNCTION {format.btitle.vol}
1167 { number empty$
1168 { series empty$
1169 { volume empty$
1170 { title emphasize format.titleaddon * }
1171 {
1172 title emphasize format.titleaddon * " \volumeformat {" volume * "} " * *
1173 }
1174 if$
1175 }
1176 { volume empty$
1177 { title emphasize format.titleaddon * }
1178 {
1179 title emphasize format.titleaddon * "\volumeformat {" volume * "} " * * series "\bibatsep\ " * *
1180 }
1181
1182 if$
1183 }
1184 if$
1185 }
1186 { title emphasize format.titleaddon * }
1187 if$
1188 }
1189
1190 FUNCTION {format.btitle.vol.inbook}
1191 { number empty$
1192 { series empty$
1193 { volume empty$
1194 { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
1195 { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon *
1196 " \volumeformat {" volume * "} " * *
1197 }
1198 if$
1199 }
1200 { volume empty$
1201 { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
1202 { series emphasize
1203 "\volumeformat {" volume * "} " * *
1204 "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * * }
1205 if$
1206 }
1207 if$
1208 }
1209 { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * }
1210 if$
1211 }
1212
1213 FUNCTION {format.url}
1214 { url empty$
1215 { "" }
1216 {
1217 author empty$ title empty$ and
1218 'skip$
1219 { " " * }
1220 if$
1221 urldate empty$
1222 {"\jburluse {" cite$ * "}" * }
1223 {"\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * }
1224 if$
1225 }
1226 if$
1227 }
1228
1229 FUNCTION {format.naked.url}
1230 { url empty$
1231 { "" }
1232 { urldate empty$
1233 { title empty$
1234 'skip$
1235 { title emphasize * }
1236 if$
1237 "\jburluse {" cite$ * "}" *
1238 }
1239 { title empty$
1240 'skip$
1241 { title emphasize * }
1242 if$
1243 "\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate *
1244 }
1245 if$
1246 }
1247 if$
1248 }
1249
1250 FUNCTION {format.series.number}
1251 { volume empty$
1252 { number empty$
1253 { series empty$
1254 { "" }
1255 { " \numberandseries {}{" series * "}" * }
1256 if$
1257 }
1258 { series empty$
1259 { " \numberandseries {" number * "}{}" * "There's a number but no series in " cite$ * warning$ }
1260 { " \numberandseries {" number * "}{" * series "}" * * }
1261 if$
1262 }
1263 if$
1264 }
1265 { series empty$
1266 { "" }
1267 { type$ "proceedings" =
1268 { " \numberandseries {}{" series * "}" * } % { " (" series * ")" * }
1269 { "" }
1270 if$
1271 }
1272 if$
1273 }
1274 if$
1275 }
1276
1277 FUNCTION {first.ed} { "\firstedname" }
1278 FUNCTION {second.ed}{ "\secondedname" }
1279 FUNCTION {third.ed} { "\thirdedname" }
1280 FUNCTION {fourth.ed}{ "\fourthedname" }
1281 FUNCTION {fifth.ed} { "\fifthedname" }
1282 FUNCTION {th.ed} { "\thedname" }
1283
1284 FUNCTION {convert.edition}
1285 { edition extract.num "l" change.case$ 's :=
1286 s "first" = s "1" = or
1287 { first.ed 't := }
1288 { s "second" = s "2" = or
1289 { second.ed 't := }
1290 { s "third" = s "3" = or
1291 { third.ed 't := }
1292 { s "fourth" = s "4" = or
1293 { fourth.ed 't := }
1294 { s "fifth" = s "5" = or
1295 { fifth.ed 't := }
1296 { s #1 #1 substring$ is.num
1297 { s th.ed * 't := }
1298 { edition 't := }
1299 if$
1300 }
1301 if$
1302 }
1303 if$
1304 }
1305 if$
1306 }
1307 if$
1308 }
1309 if$
1310 t
1311 }
1312
1313 FUNCTION {format.edition}
1314 {
1315 edition empty$
1316 { "" }
1317 { "\jbedition {" * convert.edition "~\editionname {}\jbaensep} " * }% dot or not ???????
1318 if$
1319 }
1320
1321 FUNCTION { format.isbn.issn }
1322 { isbn empty$
1323 { issn empty$
1324 { "" }
1325 { "\jbissn {" issn n.dashify tie.or.space.connect "}" * }
1326 if$
1327 }
1328 { "\jbisbn {" isbn n.dashify tie.or.space.connect "}" * }
1329 if$
1330 }
1331
1332 FUNCTION { format.isbn.issn.old }
1333 { isbn empty$
1334 { issn empty$
1335 { "" }
1336 { ", \protect\mbox {ISSN}" issn n.dashify tie.or.space.connect }
1337 if$
1338 }
1339 { ", \protect\mbox {ISBN}" isbn n.dashify tie.or.space.connect }
1340 if$
1341 }
1342
1343 INTEGERS { multiresult }
1344
1345 FUNCTION {multi.page.check}
1346 { 't :=
1347 #0 'multiresult :=
1348 { multiresult not
1349 t empty$ not
1350 and
1351 }
1352 { t #1 #1 substring$
1353 duplicate$ "-" =
1354 swap$ duplicate$ "," =
1355 swap$ "+" =
1356 or or
1357 { #1 'multiresult := }
1358 { t #2 global.max$ substring$ 't := }
1359 if$
1360 }
1361 while$
1362 multiresult
1363 }
1364
1365 FUNCTION {format.pages}
1366 { pages empty$
1367 { "" }
1368 {
1369 " \jbPages{" pages n.dashify * "}" *
1370 }
1371 if$
1372 }
1373
1374 FUNCTION {multi.pagerange.check}
1375 { 't :=
1376 #0 'multiresult :=
1377 { multiresult not
1378 t empty$ not
1379 and
1380 }
1381 { t #1 #1 substring$
1382 duplicate$ "-" =
1383 swap$ duplicate$ "b" =
1384 swap$ "/" = or or
1385 { #1 'multiresult := }
1386 { t #2 global.max$ substring$ 't := }
1387 if$
1388 }
1389 while$
1390 multiresult
1391 }
1392
1393 FUNCTION {check.missing.pages}
1394 { pages empty$
1395 { "Empty pages in " cite$ * warning$ }
1396 { pages multi.pagerange.check
1397 { "" * }
1398 { "There's only a starting page, no pagerange in " cite$ * warning$ }
1399 if$
1400 }
1401 if$
1402 }
1403
1404 FUNCTION {format.pages.book}
1405 { pages empty$
1406 { "" }
1407 { " \jbpages {" pages " \bibtotalpagesname}" *}
1408 if$
1409 }
1410
1411 FUNCTION {format.totalpages}
1412 { totalpages empty$
1413 { "" }
1414 {
1415 ", " totalpages "~\bibtotalpagesname" * *
1416 }
1417 if$
1418 }
1419
1420 FUNCTION {format.vol.year.num.pages}
1421 { volume empty$
1422 { "" }
1423 { " \artvolumeformat {" volume * "}" * }
1424 if$
1425 number empty$
1426 'skip$
1427 { volume empty$
1428 { "" * }
1429 { ", " * }
1430 if$
1431 "\artnumberformat {" number * "}" * *
1432 }
1433 if$
1434 pages empty$
1435 'skip$
1436 { duplicate$ empty$
1437 { pop$ format.pages }
1438 { "" format.pages * * }
1439 if$
1440 }
1441 if$
1442 }
1443
1444 FUNCTION {format.vol.bracedyear.num.pages}
1445 { volume empty$
1446 { "" }
1447 { " \pervolumeformat {" volume * "}" * }
1448 if$
1449 number empty$
1450 'skip$
1451 { volume empty$
1452 { "" * }
1453 { ", " * }
1454 if$
1455 "\pernumberformat {" number * "}" * *
1456 }
1457 if$
1458 pages empty$
1459 'skip$
1460 { duplicate$ empty$
1461 { pop$ format.pages }
1462 { "" format.pages * * }
1463 if$
1464 }
1465 if$
1466 }
1467
1468 FUNCTION {format.vol.bracedyear.num.pages.orig}
1469 { volume "\bibvolumecomment\ " * field.or.null
1470 year empty$
1471 { "There's a volume but no year in " cite$ * warning$ }
1472 { " \peryearformat {" year * "}" * * }
1473 if$
1474 month empty$
1475 'skip$
1476 { ", " month * * }
1477 if$
1478 number empty$
1479 'skip$
1480 { ", Nr.~" number * *
1481 }
1482 if$
1483 pages empty$
1484 'skip$
1485 { duplicate$ empty$
1486 { pop$ format.pages }
1487 { "" format.pages * * }
1488 if$
1489 }
1490 if$
1491 }
1492
1493 FUNCTION {format.chapter.pages}
1494 { chapter empty$
1495 'format.pages
1496 { type empty$
1497 { "\unskip.\,-- \bibchapterlongname" }
1498 { "\unskip.\,-- " type * }
1499 if$
1500 chapter tie.or.space.connect
1501 pages empty$
1502 'skip$
1503 { format.pages * }
1504 if$
1505 }
1506 if$
1507 }
1508
1509 FUNCTION {format.booktitleaddon}
1510 { booktitle empty$
1511 { "" }
1512 { booktitleaddon empty$
1513 { "" }
1514 { booktitleaddon }
1515 if$
1516 }
1517 if$
1518 }
1519
1520 FUNCTION {format.incoll.editor.booktitle}
1521 { booktitle empty$
1522 { "" }
1523 { editor empty$
1524 { volume empty$
1525 { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{}" *
1526 booktitleaddon empty$
1527 { "{} " * }
1528 { "{1} " * }
1529 if$
1530 }
1531 { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{" * volume * "}" *
1532 booktitleaddon empty$
1533 { "{} " * }
1534 { "{1} " * }
1535 if$
1536 }
1537 if$
1538 }
1539 { volume empty$
1540 { "\incolledformat {"
1541 editor empty$
1542 { "" }
1543 { editor format.editor.names "}" * *
1544 editor num.names$ #1 >
1545 { "{\edfont {\editorsname}}{" * }
1546 { editortype empty$
1547 { "{\edfont {\editorname}}{" * }
1548 { "{\edfont {(" * editortype * ")}}{" * }
1549 if$
1550 }
1551 if$
1552 }
1553 if$
1554 booktitle incollbooktitlemarkup * format.booktitleaddon * "}{}" *
1555 booktitleaddon empty$
1556 { "{} " * }
1557 { "{1} " * }
1558 if$
1559 }
1560 { "\incolledformat {" *
1561 editor empty$
1562 { "" }
1563 { editor format.editor.names "}" * *
1564 editor num.names$ #1 >
1565 { "{\edfont {\editorsname}}{" * }
1566 { editortype empty$
1567 { "{\edfont {\editorname}}{" * }
1568 { "{\edfont {(" * editortype * ")}}{" * }
1569 if$
1570 }
1571 if$
1572 }
1573 if$
1574 booktitle incollbooktitlemarkup * format.booktitleaddon * "}{" volume * "}" *
1575 booktitleaddon empty$
1576 { "{} " * }
1577 { "{1} " * }
1578 if$
1579 }
1580 if$
1581 }
1582 if$
1583 }
1584 if$
1585 }
1586
1587 FUNCTION {format.tr.number.jur}
1588 { type empty$
1589 { number empty$
1590 { " -- \technicalreportname {} " }
1591 { "~(" number * ").\,-- \technicalreportname {} " * }
1592 if$
1593 }
1594 { number empty$
1595 { " -- " type * }
1596 { "~(" number * ").\,-- " type * " " * * }
1597 if$
1598 }
1599 if$
1600 }
1601
1602 FUNCTION {format.article.crossref.bracedyear}
1603 { key empty$
1604 { journal empty$
1605 { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" }
1606 { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * }
1607 if$
1608 volume empty$
1609 { "No volume in " cite$ * warning$ }
1610 { " \pervolumeformat {" volume * "} " * }
1611 if$
1612 pages empty$
1613 'skip$
1614 { duplicate$ empty$
1615 { pop$ format.pages }
1616 { format.pages * }
1617 if$
1618 }
1619 if$
1620 }
1621 { "" key * }
1622 if$
1623 "\ \protect\jbcrossrefchecked {" * crossref * "}\unskip" *
1624 }
1625
1626 FUNCTION {format.article.crossref}
1627 { key empty$
1628 { journal empty$
1629 { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" }
1630 { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * }
1631 if$
1632 }
1633 { "" key * }
1634 if$
1635 year empty$
1636 'skip$
1637 { year * }
1638 if$
1639 " \protect\jbcrossrefchecked {" crossref * "}" *
1640 }
1641
1642 FUNCTION {format.book.crossref}
1643 { editor empty$
1644 editor field.or.null author field.or.null =
1645 or
1646 { key empty$
1647 { series empty$
1648 { "Need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * }
1649 { "" * }
1650 if$
1651 }
1652 { key * }
1653 if$
1654 }
1655 { "" * }
1656 if$
1657 volume empty$
1658 { "Empty volume in " cite$ * "'s crossref of " * crossref * warning$ ""
1659 " \protect\jbcrossrefchecked {" * crossref * "}\unskip" * }
1660 { " \protect\jbcrossrefchecked[" * volume * "]{" * crossref "}\unskip" * }
1661 if$
1662 }
1663
1664 FUNCTION {format.incoll.inproc.crossref}
1665 {
1666 " \protect\jbincollcrossref {" * crossref * "}" *
1667 editor empty$
1668 { "{}" * }
1669 { "{1}" * }
1670 if$
1671 format.pages % *<== 0.5f removed too.
1672 }
1673
1674 FUNCTION { format.editors.organization }
1675 { organization empty$
1676 'skip$
1677 { type$ "misc" =
1678 { organization }
1679 { author empty$
1680 { editor empty$
1681 { " " organization * " \organizationname {}" * }
1682 { "; " organization * " \organizationname {}" * }
1683 if$
1684 }
1685 { "; " organization * " \organizationname {}" * }
1686 if$
1687 }
1688 if$
1689 }
1690 if$
1691 }
1692
1693 FUNCTION {article}
1694 { output.bibitem
1695 format.authors "author" output.check
1696 set.after.author.sep output
1697 format.artperiodincoll.title "title" output.check
1698 crossref missing$
1699 { journal article.in.journal output.nonnull
1700 new.sentence
1701 format.vol.year.num.pages output
1702 }
1703 { format.article.crossref output.nonnull }
1704 if$
1705 format.url output
1706 format.note
1707 format.isbn.issn output
1708 format.howcited.artperiod output
1709 check.missing.pages
1710 fin.entry.endnote
1711 }
1712
1713 FUNCTION {commented}
1714 { output.bibitem
1715 author empty$
1716 { editor empty$
1717 { format.founders }
1718 { format.founders format.editors "editor" output.check }
1719 if$
1720 }
1721 { editor empty$
1722 { format.authors format.founders output.nonnull }
1723 { format.authors format.founders format.editors output.nonnull }
1724 if$
1725 }
1726 if$
1727 set.after.author.sep output
1728 crossref missing$
1729 { format.btitle.vol "title" output.check }
1730 { format.btitle "title" output.check }
1731 if$
1732 format.volumetitle output
1733 format.edition output
1734 format.address.publisher.year "publisher" output.check
1735 format.update
1736 new.sentence
1737 crossref missing$
1738 { format.series.number output }
1739 { format.book.crossref output.nonnull }
1740 if$
1741 format.url output
1742 format.pages output
1743 format.note
1744 format.howcited.comment output
1745 fin.entry.endnote
1746 }
1747
1748 FUNCTION {periodical}
1749 { output.bibitem
1750 format.authors "author" output.check
1751 set.after.author.sep output
1752 format.artperiodincoll.title "title" output.check
1753 crossref missing$
1754 { journal article.in.journal output.nonnull
1755 new.sentence
1756 format.vol.bracedyear.num.pages output
1757 }
1758 { new.sentence format.article.crossref.bracedyear output.nonnull }
1759 if$
1760 format.url output
1761 format.note
1762 format.isbn.issn output
1763 format.howcited.artperiod output
1764 fin.entry.endnote
1765 }
1766
1767 FUNCTION {book}
1768 { output.bibitem
1769 author empty$
1770 { editor empty$
1771 { "" "author and editor" output.check }
1772 { format.editors output.nonnull }
1773 if$
1774 }
1775 { editor empty$
1776 { format.authors output.nonnull }
1777 { format.authors "\jbtiafed {" format.editors * "}" * output.nonnull }
1778 if$
1779 }
1780 if$
1781 set.after.author.sep output
1782 crossref missing$
1783 { format.btitle.vol "title" output.check }
1784 { format.btitle "title" output.check }
1785 if$
1786 author empty$ not editor empty$ not and
1787 { "\jbedafti {\edbyname {} " editor * "," * * "} " * }
1788 'skip$
1789 if$
1790 make.translators output
1791 format.volumetitle output
1792 format.edition output
1793 format.address.publisher.year "publisher" output.check
1794 new.sentence
1795 format.juradiss.book output
1796 crossref missing$
1797 { format.series.number output }
1798 { format.book.crossref output.nonnull }
1799 if$
1800 format.url output
1801 format.pages output
1802 format.totalpages output
1803 format.note
1804 format.isbn.issn output
1805 format.howcited output
1806 fin.entry.endnote
1807 }
1808
1809 FUNCTION {inbook}
1810 { output.bibitem
1811 author empty$
1812 { format.editors "author and editor" output.check }
1813 { editor empty$
1814 { format.authors output.nonnull }
1815 { format.authors format.editors output.nonnull }
1816 if$
1817 }
1818 if$
1819 set.after.author.sep output
1820 crossref missing$
1821 { chapter empty$
1822 { "There's no chapter in " cite$ * warning$ "" * }
1823 { type empty$
1824 { "\Bibchaptername{}" }
1825 { type }
1826 if$
1827 chapter tie.or.space.connect " In " * *
1828 }
1829 if$
1830 format.btitle.vol.inbook "title" output.check
1831 make.translators output
1832 format.volumetitle output
1833 format.edition output
1834 format.address.publisher.year "publisher" output.check
1835 new.sentence
1836 format.series.number output
1837 format.url output
1838 format.pages "pages" output.check
1839 format.note
1840 format.isbn.issn output
1841 }
1842 { chapter empty$
1843 { "There's no chapter in " cite$ * warning$ "" *
1844 format.btitle.vol.inbook "title" output.check
1845 }
1846 { type empty$
1847 { "\Bibchaptername{}" }
1848 { type }
1849 if$
1850 chapter tie.or.space.connect "" * *
1851 }
1852 if$
1853 format.volumetitle output
1854 format.book.crossref output.nonnull
1855 format.url output
1856 format.pages "pages" output.check
1857 format.note
1858 }
1859 if$
1860 part.of.sentence
1861 format.howcited output
1862 fin.entry.endnote
1863 }
1864
1865 FUNCTION {incollection}
1866 { output.bibitem
1867 format.authors "author" output.check
1868 set.after.author.sep output
1869 format.artperiodincoll.title "title" output.check
1870 make.translators output
1871 crossref missing$
1872 { format.incoll.editor.booktitle "booktitle" output.check
1873 format.volumetitle output
1874 format.edition output
1875 format.address.publisher.year "publisher" output.check
1876 new.sentence
1877 format.series.number output
1878 format.url output
1879 format.isbn.issn output
1880 part.of.sentence
1881 format.chapter.pages output
1882 format.note
1883 }
1884 { format.volumetitle output
1885 format.incoll.inproc.crossref output.nonnull
1886 format.url output
1887 format.note
1888 }
1889 if$
1890 format.howcited output
1891 check.missing.pages
1892 fin.entry.endnote
1893 }
1894
1895 FUNCTION {inproceedings}
1896 { output.bibitem
1897 format.authors "author" output.check
1898 set.after.author.sep output
1899 format.artperiodincoll.title "title" output.check
1900 crossref missing$
1901 { format.incoll.editor.booktitle "booktitle" output.check
1902 address empty$
1903 { organization new.sentence.checka
1904 organization output
1905 part.of.sentence
1906 format.address.publisher.year output
1907 }
1908 { format.address.publisher.year "publisher" output.check }
1909 if$
1910 new.sentence
1911 series empty$
1912 'skip$
1913 { format.series.number output }
1914 if$
1915 format.url output
1916 format.note
1917 format.isbn.issn output
1918 part.of.sentence
1919 format.pages output
1920 }
1921 { format.incoll.inproc.crossref output.nonnull
1922 format.url output
1923 format.note
1924 }
1925 if$
1926 format.howcited output
1927 fin.entry.endnote
1928 }
1929
1930 FUNCTION {conference}{inproceedings}
1931
1932 FUNCTION {manual}
1933 { output.bibitem
1934 author empty$
1935 { organization empty$
1936 'skip$
1937 { organization output.nonnull
1938 address output
1939 }
1940 if$
1941 }
1942 { format.authors output.nonnull }
1943 if$
1944 set.after.author.sep output
1945 format.btitle "title" output.check
1946 format.edition output
1947 author empty$
1948 { organization empty$
1949 { address output part.of.sentence }
1950 'skip$
1951 if$
1952 }
1953 { address "\bpubaddr {} " * organization * output
1954 part.of.sentence
1955 }
1956 if$
1957 format.date output
1958 pages set.period.dash.check
1959 format.pages.book output
1960 format.url output
1961 format.note
1962 format.howcited output
1963 fin.entry.endnote
1964 }
1965
1966 FUNCTION {mastersthesis}
1967 { output.bibitem
1968 format.authors "author" output.check
1969 set.after.author.sep output
1970 format.btitle "title" output.check
1971 format.thesis output
1972 set.comma.pages.check
1973 pages new.sentence.checka
1974 format.pages output
1975 format.url output
1976 format.note
1977 format.howcited output
1978 fin.entry.endnote
1979 }
1980
1981 FUNCTION {phdthesis}
1982 { output.bibitem
1983 format.authors "author" output.check
1984 set.after.author.sep output
1985 format.btitle "title" output.check
1986 format.thesis output
1987 set.comma.pages.check
1988 pages new.sentence.checka
1989 format.pages output
1990 format.url output
1991 format.note
1992 format.howcited output
1993 fin.entry.endnote
1994 }
1995
1996 FUNCTION {jurthesis}
1997 { output.bibitem
1998 format.authors "author" output.check
1999 set.after.author.sep output
2000 format.btitle "title" output.check
2001 format.thesis output
2002 set.comma.pages.check
2003 pages new.sentence.checka
2004 format.pages output
2005 format.url output
2006 format.note
2007 format.howcited output
2008 fin.entry.endnote
2009 }
2010
2011 FUNCTION {booklet}
2012 { output.bibitem
2013 format.authors "author" output.check
2014 set.after.author.sep output
2015 format.title "title" output.check
2016 format.howpublished.address.year output
2017 format.note
2018 format.url output
2019 format.howcited output
2020 fin.entry.endnote
2021 }
2022
2023 FUNCTION {misc}
2024 { output.bibitem
2025 format.authors "author" output.check
2026 set.after.author.sep output
2027 format.title output
2028 format.howpublished.address.year output
2029 format.note
2030 format.url output
2031 format.howcited output
2032 fin.entry.endnote
2033 }
2034
2035 FUNCTION {proceedings}
2036 { output.bibitem
2037 editor empty$
2038 { organization empty$
2039 'skip$
2040 { "\biblnfont {" organization * " \organizationname}" * output }
2041 if$
2042 }
2043 { format.editors output.nonnull }
2044 if$
2045 set.after.author.sep output
2046 format.btitle "title" output.check
2047 new.sentence
2048 editor empty$
2049 'skip$
2050 { format.proceed.organization output }
2051 if$
2052 new.sentence
2053 format.series.number output.nonnull
2054 volume empty$
2055 { "" output.nonnull }
2056 { "\volumeformat {" volume * "} " * "volume" output.check }
2057 if$
2058 format.address.publisher.year "publisher" output.check
2059 pages set.period.dash.check
2060 format.pages.book output
2061 format.url output
2062 format.note
2063 format.isbn.issn output
2064 format.howcited output
2065 fin.entry.endnote
2066 }
2067
2068 FUNCTION {techreport}
2069 { output.bibitem
2070 author empty$
2071 { format.editors "author and editor" output.check }
2072 { editor empty$
2073 { format.authors output.nonnull }
2074 { format.authors format.editors output.nonnull }
2075 if$
2076 }
2077 if$
2078 set.after.author.sep output
2079 format.title "title" output.check
2080 institution new.sentence.checka
2081 institution empty$
2082 'skip$
2083 { " \apyformat {" institution * ", " * output.nonnull }
2084 if$
2085 format.address.publisher.year output
2086 number new.sentence.checka
2087 format.tr.number.jur "number" output.check
2088 pages set.period.dash.check
2089 format.pages.book output
2090 format.url output
2091 format.note
2092 format.isbn.issn output
2093 format.howcited output
2094 fin.entry.endnote
2095 }
2096
2097 FUNCTION {www}
2098 { output.bibitem
2099 format.authors "author" output.check
2100 set.after.author.sep output
2101 format.naked.url output
2102 format.howcited output
2103 fin.entry.endnote
2104 }
2105
2106 FUNCTION {lexicon}
2107 { output.bibitem
2108 set.after.author.sep output
2109 crossref missing$
2110 { format.btitle.vol "title" output.check }
2111 { format.btitle "title" output.check }
2112 if$
2113 author empty$
2114 { editor empty$
2115 'skip$
2116 { "\edbyname{} " * editor format.editor.names "," * * }
2117 if$
2118 }
2119 { "\byname{} " author format.names * "," * * }
2120 if$
2121 make.translators output
2122 format.volumetitle output
2123 format.edition output
2124 format.address.publisher.year "publisher" output.check
2125 new.sentence
2126 format.juradiss.book output
2127 crossref missing$
2128 { format.series.number output }
2129 { format.book.crossref output.nonnull }
2130 if$
2131 format.url output
2132 format.pages output
2133 format.totalpages output
2134 format.note
2135 format.isbn.issn output
2136 format.howcited output
2137 fin.entry.endnote
2138 }
2139
2140 FUNCTION {unpublished}{misc}
2141
2142 FUNCTION {default.type}{misc}
2143
2144 MACRO {jan} {"\janname\ "}
2145 MACRO {feb} {"\febname\ "}
2146 MACRO {mar} {"\marname\ "}
2147 MACRO {apr} {"\aprname\ "}
2148 MACRO {may} {"\mayname\ "}
2149 MACRO {jun} {"\junname\ "}
2150 MACRO {jul} {"\julname\ "}
2151 MACRO {aug} {"\augname\ "}
2152 MACRO {sep} {"\sepname\ "}
2153 MACRO {oct} {"\octname\ "}
2154 MACRO {nov} {"\novname\ "}
2155 MACRO {dec} {"\decname\ "}
2156
2157 READ
2158
2159 FUNCTION {sortify}{ purify$ "l" change.case$ }
2160
2161 INTEGERS { len }
2162
2163 FUNCTION {chop.word}
2164 { 's :=
2165 'len :=
2166 s #1 len substring$ =
2167 { s len #1 + global.max$ substring$ }
2168 's
2169 if$
2170 }
2171
2172 FUNCTION {format.lab.names}
2173 { 's := % for two: (Jones/de~Bruijn)
2174 s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith)
2175 s num.names$ duplicate$ % for more: (Jones et\,al.)
2176 #2 <
2177 'pop$ % for just one person
2178 { duplicate$ duplicate$
2179 #3 >
2180 swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" =
2181 or
2182 { pop$ "\Bibetal" * } % for 4 or more, or last is `others'
2183 { #2 =
2184 { "\jbbtasep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two
2185 { "\jbbfsasep " * s #2 "{vv~}{ll}" format.name$ * % for three
2186 "\jbbstasep " * s #3 "{vv~}{ll}" format.name$ *
2187 }
2188 if$
2189 }
2190 if$
2191 }
2192 if$
2193 year missing$
2194 'skip$
2195 { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author
2196 if$
2197 }
2198
2199 FUNCTION {format.editor.lab.names}
2200 { 's := % for two: (Jones/de~Bruijn)
2201 s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith)
2202 s num.names$ duplicate$ % for more: (Jones et\,al.)
2203 #2 <
2204 'pop$ % for just one person
2205 { duplicate$ duplicate$
2206 #3 >
2207 swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" =
2208 or
2209 { pop$ "\Bibetal" * } % for 4 or more, or last is `others'
2210 { #2 =
2211 { "\jbbtesep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two
2212 { "\jbbfsesep " * s #2 "{vv~}{ll}" format.name$ * % for three
2213 "\jbbstesep " * s #3 "{vv~}{ll}" format.name$ *
2214 }
2215 if$
2216 }
2217 if$
2218 }
2219 if$
2220 year missing$
2221 'skip$
2222 { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author
2223 if$
2224 }
2225
2226 FUNCTION {author.key.label}
2227 { author empty$
2228 { key empty$
2229 { cite$ #1 #3 substring$ }
2230 'key
2231 if$
2232 }
2233 { author format.lab.names }
2234 if$
2235 }
2236
2237 FUNCTION {author.editor.key.label}
2238 { author empty$
2239 { editor empty$
2240 { key empty$
2241 { cite$ #1 #3 substring$ }
2242 'key
2243 if$
2244 }
2245 { editor format.editor.lab.names }
2246 if$
2247 }
2248 { author format.lab.names }
2249 if$
2250 }
2251
2252 FUNCTION {editor.key.label}
2253 { editor empty$
2254 { key empty$
2255 { cite$ #1 #3 substring$ }
2256 'key
2257 if$
2258 }
2259 { editor format.editor.lab.names }
2260 if$
2261 }
2262
2263 FUNCTION {calc.label}
2264 { type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or type$ "lexicon" = or
2265 'author.editor.key.label
2266 { type$ "proceedings" =
2267 'editor.key.label
2268 'author.key.label
2269 if$
2270 }
2271 if$
2272 'label :=
2273 }
2274
2275 FUNCTION {calc.dummy.label}
2276 { type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or
2277 'author.editor.key.label
2278 { type$ "proceedings" =
2279 'editor.key.label
2280 'author.key.label
2281 if$
2282 }
2283 if$
2284 'dummy.label :=
2285 }
2286
2287 FUNCTION {sort.format.names}
2288 { 's :=
2289 #1 'nameptr :=
2290 ""
2291 s num.names$ 'numnames :=
2292 numnames 'namesleft :=
2293 { namesleft #0 > }
2294 { nameptr #1 >
2295 { " " * }
2296 'skip$
2297 if$
2298 s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't :=
2299 nameptr numnames = t "\bibnf {others} {} {} {} {}" = and
2300 { "\Bibetal" * }
2301 { t sortify * }
2302 if$
2303 nameptr #1 + 'nameptr :=
2304 namesleft #1 - 'namesleft :=
2305 }
2306 while$
2307 }
2308
2309 FUNCTION {sort.format.title}
2310 { 't :=
2311 "A " #2
2312 "An " #3
2313 "Der " #4
2314 "Die " #4
2315 "Das " #4
2316 "Ein " #4
2317 "Eine " #5
2318 "The " #4 t chop.word
2319 chop.word
2320 chop.word
2321 chop.word
2322 chop.word
2323 chop.word
2324 chop.word
2325 chop.word
2326 sortify
2327 #1 global.max$ substring$
2328 }
2329
2330 FUNCTION {author.sort}
2331 { author empty$
2332 { key empty$
2333 {
2334 %% "to sort, need author or key in " cite$ * warning$
2335 ""
2336 }
2337 { key sortify }
2338 if$
2339 }
2340 { author sort.format.names }
2341 if$
2342 }
2343
2344 FUNCTION {author.editor.sort}
2345 { author empty$
2346 { editor empty$
2347 { key empty$
2348 {
2349 %% "to sort, need author, editor, or key in " cite$ * warning$
2350 ""
2351 }
2352 { key sortify }
2353 if$
2354 }
2355 { editor sort.format.names }
2356 if$
2357 }
2358 { author sort.format.names }
2359 if$
2360 }
2361
2362 FUNCTION {editor.sort}
2363 { editor empty$
2364 { key empty$
2365 { "to sort, need editor or key in " cite$ * warning$ "" }
2366 { key sortify }
2367 if$
2368 }
2369 { editor sort.format.names }
2370 if$
2371 }
2372
2373 FUNCTION {presort}
2374 { calc.label
2375 calc.dummy.label
2376 sortkey empty$
2377 { type$ "book" =
2378 type$ "incollection" = or
2379 type$ "inbook" = or
2380 type$ "commented" = or
2381 'author.editor.sort
2382 { type$ "proceedings" =
2383 'editor.sort
2384 'author.sort
2385 if$
2386 }
2387 if$
2388 }
2389 {
2390 sortkey
2391 }
2392 if$
2393 " "
2394 *
2395 year field.or.null sortify
2396 *
2397 " "
2398 *
2399 title field.or.null
2400 sort.format.title
2401 *
2402 #1 entry.max$ substring$
2403 'sort.key$ :=
2404 }
2405
2406 ITERATE {presort}
2407
2408 %% FUNCTION {before.sort} { "BEFORE SORT:" top$ }
2409 %% EXECUTE {before.sort}
2410 %% FUNCTION {print.sort.keys} {sort.key$ top$}
2411 %% ITERATE {print.sort.keys}
2412
2413 SORT
2414
2415 %% FUNCTION {after.sort} {"AFTER SORT:" top$}
2416 %% EXECUTE {after.sort}
2417 %% ITERATE {print.sort.keys}
2418
2419 STRINGS { last.dummy.label next.extra }
2420
2421 INTEGERS { last.extra.num number.label }
2422
2423 FUNCTION {forward.pass}
2424 { last.dummy.label dummy.label =
2425 { last.extra.num #1 + 'last.extra.num :=
2426 last.extra.num int.to.chr$ 'extra.label :=
2427 }
2428 { "a" chr.to.int$ 'last.extra.num :=
2429 "" 'extra.label :=
2430 dummy.label 'last.dummy.label :=
2431 }
2432 if$
2433 number.label #1 + 'number.label :=
2434 }
2435
2436 FUNCTION {reverse.pass}
2437 { next.extra "b" =
2438 { "a" 'extra.label := }
2439 'skip$
2440 if$
2441 extra.label 'next.extra :=
2442 extra.label
2443 duplicate$ empty$
2444 'skip$
2445 { "" swap$ * }
2446 if$
2447 'extra.label :=
2448 dummy.label extra.label * 'dummy.label :=
2449 }
2450
2451 ITERATE {forward.pass}
2452
2453 REVERSE {reverse.pass}
2454
2455 FUNCTION {set.current.authors}
2456 { author empty$
2457 { editor empty$
2458 { organization empty$
2459 { cite$ 'current-authors := }
2460 { organization 'current-authors := }
2461 if$
2462 }
2463 { editor format.names #1 entry.max$ substring$ 'current-authors := }
2464 %% ^^^^^^^^^^^^ NOT format.editor.names, otherwise \jb@@arg is always = 0!!!
2465 if$
2466 }
2467 { author format.names #1 entry.max$ substring$ 'current-authors := }
2468 if$
2469 }
2470
2471
2472 STRINGS { previous-authors
2473 }
2474
2475 FUNCTION {initialize.previous.authors} { "" 'previous-authors := }
2476
2477
2478 FUNCTION {mark.repeat.authors}
2479 { current-authors previous-authors =
2480 { #1 'repeat-authors := }
2481 'skip$
2482 if$
2483 current-authors 'previous-authors :=
2484 }
2485
2486
2487 ITERATE {set.current.authors}
2488
2489 EXECUTE {initialize.previous.authors}
2490
2491 ITERATE {mark.repeat.authors}
2492
2493 EXECUTE {initialize.previous.authors}
2494
2495 REVERSE {mark.repeat.authors}
2496
2497 FUNCTION {begin.bib}
2498 { preamble$ empty$
2499 'skip$
2500 { preamble$ write$ newline$ }
2501 if$
2502 "%" write$ newline$
2503 "% This bibliography was produced by using jureco.bst" write$ newline$
2504 "%" write$ newline$
2505 "\begin{thebibliography}{}" write$ newline$
2506 }
2507
2508 EXECUTE {begin.bib}
2509
2510 EXECUTE {init.state.consts}
2511
2512 ITERATE {call.type$}
2513
2514 FUNCTION {end.bib}
2515 { newline$
2516 "\end{thebibliography}" write$ newline$
2517 }
2518
2519 EXECUTE {end.bib}
2520 %%
2521 %%
2522 %% End of file `jureco.bst'.