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