ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/oopseDocs/jcc.bst
Revision: 3395
Committed: Fri May 16 14:25:26 2008 UTC (16 years, 1 month ago) by gezelter
File size: 17810 byte(s)
Log Message:
OOPSE docs for version 4

File Contents

# Content
1 % BibTeX bibliography style `jcc' for J. Comp. Chem.
2 % 1/26/96 Joerg-R. Hill
3 % no output of 'title' for 'article', 'book', 'inbook', 'incollection'
4 % no output of 'note' except in 'unpublished'
5 %
6 % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
7 % Copyright (C) 1985, all rights reserved.
8 % Copying of this file is authorized only if either
9 % (1) you make absolutely no changes to your copy, including name, or
10 % (2) if you do make changes, you name it something other than
11 % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
12 % This restriction helps ensure that all standard styles are identical.
13 % The file btxbst.doc has the documentation for this style.
14 %
15 % Fixed article, book references 11/10/92---CLF
16
17 ENTRY
18 { address
19 author
20 booktitle
21 chapter
22 edition
23 editor
24 howpublished
25 institution
26 journal
27 key
28 month
29 note
30 number
31 organization
32 pages
33 publisher
34 school
35 series
36 title
37 type
38 volume
39 year
40 }
41 {}
42 { label }
43
44 INTEGERS { output.state before.all mid.sentence after.sentence after.block after.item author.or.editor }
45
46 FUNCTION {init.state.consts}
47 { #0 'before.all :=
48 #1 'mid.sentence :=
49 #2 'after.sentence :=
50 #3 'after.block :=
51 #4 'after.item :=
52 }
53
54 FUNCTION {add.semicolon}
55 { duplicate$
56 #-1 #1 substring$ "}" =
57 { #-2 #1024 substring$ ";} " * }
58 { "; " * }
59 if$
60 }
61
62 STRINGS { s t }
63
64 FUNCTION {output.nonnull}
65 { 's :=
66 output.state mid.sentence =
67 { ", " * write$ }
68 { output.state after.block =
69 { add.semicolon write$
70 newline$
71 "\newblock " write$
72 }
73 { output.state before.all =
74 'write$
75 { output.state after.item =
76 { " " * write$ }
77 { add.period$ " " * write$ }
78 if$
79 }
80 if$
81 }
82 if$
83 mid.sentence 'output.state :=
84 }
85 if$
86 s
87 }
88
89 FUNCTION {output}
90 { duplicate$ empty$
91 'pop$
92 'output.nonnull
93 if$
94 }
95
96 FUNCTION {output.check}
97 { 't :=
98 duplicate$ empty$
99 { pop$ "empty " t * " in " * cite$ * warning$ }
100 'output.nonnull
101 if$
102 }
103
104 FUNCTION {output.bibitem}
105 { newline$
106 "\bibitem{" write$
107 cite$ write$
108 "}" write$
109 newline$
110 ""
111 before.all 'output.state :=
112 }
113
114 FUNCTION {fin.entry}
115 { add.period$
116 write$
117 newline$
118 }
119
120 FUNCTION {new.block}
121 { output.state before.all =
122 'skip$
123 { after.block 'output.state := }
124 if$
125 }
126
127 FUNCTION {new.sentence}
128 { output.state after.block =
129 'skip$
130 { output.state before.all =
131 'skip$
132 { after.sentence 'output.state := }
133 if$
134 }
135 if$
136 }
137
138 FUNCTION {new.item}
139 { duplicate$ empty$
140 { skip$ }
141 { output.state mid.sentence =
142 { after.item 'output.state := }
143 { skip$ }
144 if$
145 }
146 if$
147 }
148
149 FUNCTION {not}
150 { { #0 }
151 { #1 }
152 if$
153 }
154
155 FUNCTION {and}
156 { 'skip$
157 { pop$ #0 }
158 if$
159 }
160
161 FUNCTION {or}
162 { { pop$ #1 }
163 'skip$
164 if$
165 }
166
167 FUNCTION {new.block.checka}
168 { empty$
169 'skip$
170 'new.block
171 if$
172 }
173
174 FUNCTION {new.block.checkb}
175 { empty$
176 swap$ empty$
177 and
178 'skip$
179 'new.block
180 if$
181 }
182
183 FUNCTION {new.sentence.checka}
184 { empty$
185 'skip$
186 'new.sentence
187 if$
188 }
189
190 FUNCTION {new.sentence.checkb}
191 { empty$
192 swap$ empty$
193 and
194 'skip$
195 'new.sentence
196 if$
197 }
198
199 FUNCTION {new.item.checka}
200 { empty$
201 'skip$
202 'new.item
203 if$
204 }
205
206 FUNCTION {field.or.null}
207 { duplicate$ empty$
208 { pop$ "" }
209 'skip$
210 if$
211 }
212
213 FUNCTION {emphasize}
214 { duplicate$ empty$
215 { pop$ "" }
216 { "{\em " swap$ * "}" * }
217 if$
218 }
219
220 FUNCTION {boldface}
221 { duplicate$ empty$
222 { pop$ "" }
223 { "{\bf " swap$ * "}" * }
224 if$
225 }
226
227 FUNCTION {paren}
228 { duplicate$ empty$
229 { pop$ "" }
230 { "(" swap$ * ")" * }
231 if$
232 }
233
234 INTEGERS { nameptr namesleft numnames }
235
236 FUNCTION {format.names}
237 { 's :=
238 #1 'nameptr :=
239 s num.names$ 'numnames :=
240 numnames 'namesleft :=
241 { namesleft #0 > }
242 { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
243 nameptr #1 >
244 { namesleft #1 >
245 { ", " * t * }
246 { numnames #2 >
247 { "," * }
248 'skip$
249 if$
250 t "others" =
251 { " et~al." * }
252 { " and " * t * }
253 if$
254 }
255 if$
256 }
257 't
258 if$
259 nameptr #1 + 'nameptr :=
260 namesleft #1 - 'namesleft :=
261 }
262 while$
263 }
264
265 FUNCTION {format.authors}
266 { author empty$
267 { "" }
268 { #1 'author.or.editor :=
269 author format.names }
270 if$
271 }
272
273 FUNCTION {format.editors}
274 { editor empty$
275 { "" }
276 { #2 'author.or.editor :=
277 editor format.names
278 editor num.names$ #1 >
279 { ", Eds." * }
280 { ", Ed." * }
281 if$
282 }
283 if$
284 }
285
286 FUNCTION {format.title}
287 { title empty$
288 { "" }
289 { title "t" change.case$ }
290 if$
291 }
292
293 FUNCTION {n.dashify}
294 { 't :=
295 ""
296 { t empty$ not }
297 { t #1 #1 substring$ "-" =
298 { t #1 #2 substring$ "--" = not
299 { "--" *
300 t #2 global.max$ substring$ 't :=
301 }
302 { { t #1 #1 substring$ "-" = }
303 { "-" *
304 t #2 global.max$ substring$ 't :=
305 }
306 while$
307 }
308 if$
309 }
310 { t #1 #1 substring$ *
311 t #2 global.max$ substring$ 't :=
312 }
313 if$
314 }
315 while$
316 }
317
318 FUNCTION {format.date}
319 { year empty$
320 { month empty$
321 { "" }
322 { "there's a month but no year in " cite$ * warning$
323 month
324 }
325 if$
326 }
327 { month empty$
328 { year paren }
329 { month " " * year paren }
330 if$
331 }
332 if$
333 }
334
335 FUNCTION {format.bdate}
336 { year empty$
337 { "there's no year in " cite$ * warning$ }
338 'year
339 if$
340 }
341
342 FUNCTION {format.btitle}
343 { title emphasize
344 }
345
346 FUNCTION {tie.or.space.connect}
347 { duplicate$ text.length$ #3 <
348 { "~" }
349 { " " }
350 if$
351 swap$ * *
352 }
353
354 FUNCTION {either.or.check}
355 { empty$
356 'pop$
357 { "can't use both " swap$ * " fields in " * cite$ * warning$ }
358 if$
359 }
360
361 FUNCTION {format.bvolume}
362 { volume empty$
363 { "" }
364 { "Vol. " volume tie.or.space.connect
365 series empty$
366 'skip$
367 { " of " * series emphasize * }
368 if$
369 "volume and number" number either.or.check
370 }
371 if$
372 }
373
374 FUNCTION {format.number.series}
375 { volume empty$
376 { number empty$
377 { series field.or.null }
378 { output.state mid.sentence =
379 { "number" }
380 { "Number" }
381 if$
382 number tie.or.space.connect
383 series empty$
384 { "there's a number but no series in " cite$ * warning$ }
385 { " in " * series * }
386 if$
387 }
388 if$
389 }
390 { "" }
391 if$
392 }
393
394 FUNCTION {format.edition}
395 { edition empty$
396 { "" }
397 { output.state mid.sentence =
398 { edition "l" change.case$ " ed." * }
399 { edition "t" change.case$ " ed." * }
400 if$
401 }
402 if$
403 }
404
405 INTEGERS { multiresult }
406
407 FUNCTION {multi.page.check}
408 { 't :=
409 #0 'multiresult :=
410 { multiresult not
411 t empty$ not
412 and
413 }
414 { t #1 #1 substring$
415 duplicate$ "-" =
416 swap$ duplicate$ "," =
417 swap$ "+" =
418 or or
419 { #1 'multiresult := }
420 { t #2 global.max$ substring$ 't := }
421 if$
422 }
423 while$
424 multiresult
425 }
426
427 FUNCTION {format.pages}
428 { pages empty$
429 { "" }
430 { pages multi.page.check
431 { "pages" pages n.dashify tie.or.space.connect }
432 { "page" pages tie.or.space.connect }
433 if$
434 }
435 if$
436 }
437
438 FUNCTION {format.vol.num.pages}
439 { volume boldface field.or.null
440 number empty$
441 'skip$
442 { "(" number * ")" * *
443 volume empty$
444 { "there's a number but no volume in " cite$ * warning$ }
445 'skip$
446 if$
447 }
448 if$
449 pages empty$
450 'skip$
451 { duplicate$ empty$
452 { pop$ format.pages }
453 { ", " * pages n.dashify * }
454 if$
455 }
456 if$
457 }
458
459 FUNCTION {format.chapter.pages}
460 { chapter empty$
461 'format.pages
462 { type empty$
463 { "chapter" }
464 { type "l" change.case$ }
465 if$
466 chapter tie.or.space.connect
467 pages empty$
468 'skip$
469 { ", " * format.pages * }
470 if$
471 }
472 if$
473 }
474
475 FUNCTION {format.in.ed.booktitle}
476 { booktitle empty$
477 { "" }
478 { editor empty$
479 { "In " booktitle emphasize * }
480 { "In " format.editors * ", " * booktitle emphasize * }
481 if$
482 }
483 if$
484 }
485
486 FUNCTION {format.in.booktitle.ed}
487 { booktitle empty$
488 { "" }
489 { editor empty$
490 { "In " booktitle emphasize * }
491 { "In " booktitle emphasize * ", " * format.editors * }
492 if$
493 }
494 if$
495 }
496
497 FUNCTION {format.pub.address}
498 { publisher empty$
499 { "" }
500 { address empty$
501 { publisher }
502 { publisher ", " * address *}
503 if$
504 }
505 if$
506 }
507
508 FUNCTION {empty.misc.check}
509 { author empty$ title empty$ howpublished empty$
510 month empty$ year empty$ note empty$
511 and and and and and
512 { "all relevant fields are empty in " cite$ * warning$ }
513 'skip$
514 if$
515 }
516
517 FUNCTION {format.thesis.type}
518 { type empty$
519 'skip$
520 { pop$
521 type "t" change.case$
522 }
523 if$
524 }
525
526 FUNCTION {format.tr.number}
527 { type empty$
528 { "Technical Report" }
529 'type
530 if$
531 number empty$
532 { "t" change.case$ }
533 { number tie.or.space.connect }
534 if$
535 }
536
537 FUNCTION {format.article.crossref}
538 { key empty$
539 { journal empty$
540 { "need key or journal for " cite$ * " to crossref " * crossref *
541 warning$
542 ""
543 }
544 { "In {\em " journal * "\/}" * }
545 if$
546 }
547 { "In " key * }
548 if$
549 " \cite{" * crossref * "}" *
550 }
551
552 FUNCTION {format.crossref.editor}
553 { editor #1 "{vv~}{ll}" format.name$
554 editor num.names$ duplicate$
555 #2 >
556 { pop$ " et~al." * }
557 { #2 <
558 'skip$
559 { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
560 { " et~al." * }
561 { " and " * editor #2 "{vv~}{ll}" format.name$ * }
562 if$
563 }
564 if$
565 }
566 if$
567 }
568
569 FUNCTION {format.book.crossref}
570 { volume empty$
571 { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
572 "In "
573 }
574 { "Volume" volume tie.or.space.connect
575 " of " *
576 }
577 if$
578 editor empty$
579 editor field.or.null author field.or.null =
580 or
581 { key empty$
582 { series empty$
583 { "need editor, key, or series for " cite$ * " to crossref " *
584 crossref * warning$
585 "" *
586 }
587 { "{\em " * series * "\/}" * }
588 if$
589 }
590 { key * }
591 if$
592 }
593 { format.crossref.editor * }
594 if$
595 " \cite{" * crossref * "}" *
596 }
597
598 FUNCTION {format.incoll.inproc.crossref}
599 { editor empty$
600 editor field.or.null author field.or.null =
601 or
602 { key empty$
603 { booktitle empty$
604 { "need editor, key, or booktitle for " cite$ * " to crossref " *
605 crossref * warning$
606 ""
607 }
608 { "In {\em " booktitle * "\/}" * }
609 if$
610 }
611 { "In " key * }
612 if$
613 }
614 { "In " format.crossref.editor * }
615 if$
616 " \cite{" * crossref * "}" *
617 }
618
619 FUNCTION {article}
620 { output.bibitem
621 format.authors "author" output.check
622 crossref missing$
623 { journal emphasize "journal" output.check
624 format.vol.num.pages output new.item
625 format.date "year" output.check
626 }
627 { format.article.crossref output.nonnull
628 format.pages output
629 }
630 if$
631 fin.entry
632 }
633
634 FUNCTION {book}
635 { output.bibitem
636 author empty$
637 { format.editors "author and editor" output.check }
638 { format.authors output.nonnull
639 crossref missing$
640 { "author and editor" editor either.or.check }
641 'skip$
642 if$
643 }
644 if$
645 format.btitle "title" output.check
646 crossref missing$
647 { format.bvolume output
648 format.number.series output
649 format.pub.address "publisher" output.check
650 }
651 { format.book.crossref output.nonnull }
652 if$
653 format.edition output
654 format.bdate "year" output.check
655 new.block
656 fin.entry
657 }
658
659 FUNCTION {booklet}
660 { output.bibitem
661 format.authors output new.item
662 format.title "title" output.check
663 howpublished address new.block.checkb
664 howpublished output
665 address output
666 format.date output
667 new.block
668 fin.entry
669 }
670
671 FUNCTION {inbook}
672 { output.bibitem
673 author empty$
674 { format.editors "author and editor" output.check }
675 { format.authors output.nonnull }
676 if$
677 format.in.booktitle.ed "title" output.check
678 crossref missing$
679 { format.pub.address "publisher" output.check
680 format.bdate "year" output.check
681 new.block
682 format.bvolume output
683 new.block
684 format.chapter.pages "chapter and pages" output.check
685 new.block
686 format.number.series output
687 }
688 { format.chapter.pages "chapter and pages" output.check
689 new.block
690 format.book.crossref output.nonnull
691 }
692 if$
693 format.edition output
694 new.block
695 fin.entry
696 }
697
698 FUNCTION {incollection}
699 { output.bibitem
700 format.authors "author" output.check new.item
701 crossref missing$
702 { format.in.booktitle.ed "booktitle" output.check
703 format.bvolume output
704 format.number.series output
705 new.block
706 format.pub.address "publisher" output.check
707 format.edition output
708 format.bdate "year" output.check
709 new.block
710 format.chapter.pages output
711 }
712 { format.incoll.inproc.crossref output.nonnull
713 format.chapter.pages output
714 }
715 if$
716 new.block
717 fin.entry
718 }
719
720 FUNCTION {inproceedings}
721 { output.bibitem
722 format.authors "author" output.check new.item
723 crossref missing$
724 { format.in.ed.booktitle "booktitle" output.check
725 format.bvolume output
726 format.number.series output
727 format.pages output
728 address empty$
729 { organization publisher new.sentence.checkb
730 organization output
731 publisher output
732 format.bdate "year" output.check
733 }
734 { address output.nonnull
735 format.bdate "year" output.check
736 new.sentence
737 organization output
738 publisher output
739 }
740 if$
741 }
742 { format.incoll.inproc.crossref output.nonnull
743 format.pages output
744 }
745 if$
746 new.block
747 fin.entry
748 }
749
750 FUNCTION {conference} { inproceedings }
751
752 FUNCTION {manual}
753 { output.bibitem
754 format.title "title" output.check new.sentence
755 author empty$
756 { organization empty$
757 'skip$
758 { organization output.nonnull
759 address output
760 }
761 if$
762 }
763 { format.authors output.nonnull new.item }
764 if$
765 author empty$
766 { organization empty$
767 { address new.block.checka
768 address output
769 }
770 'skip$
771 if$
772 }
773 { organization address new.block.checkb
774 organization output
775 address output
776 }
777 if$
778 format.edition output
779 format.date output
780 new.block
781 fin.entry
782 }
783
784 FUNCTION {mastersthesis}
785 { output.bibitem
786 format.authors "author" output.check new.item
787 format.title "title" output.check new.item
788 "Master's thesis" format.thesis.type output.nonnull
789 school "school" output.check
790 address output
791 format.date "year" output.check
792 new.block
793 fin.entry
794 }
795
796 FUNCTION {misc}
797 { output.bibitem
798 format.authors output
799 format.title output
800 howpublished new.item.checka
801 howpublished output
802 format.bdate output
803 new.block
804 fin.entry
805 empty.misc.check
806 }
807
808 FUNCTION {phdthesis}
809 { output.bibitem
810 format.authors "author" output.check new.item
811 format.btitle "title" output.check new.item
812 "PhD thesis" format.thesis.type output.nonnull
813 school "school" output.check
814 address output
815 format.date "year" output.check
816 new.block
817 fin.entry
818 }
819
820 FUNCTION {proceedings}
821 { output.bibitem
822 editor empty$
823 { organization output }
824 { format.editors output.nonnull new.item }
825 if$
826 new.block
827 format.btitle "title" output.check
828 format.bvolume output
829 format.number.series output
830 address empty$
831 { editor empty$
832 { publisher new.sentence.checka }
833 { organization publisher new.sentence.checkb
834 organization output
835 }
836 if$
837 publisher output
838 format.date "year" output.check
839 }
840 { address output.nonnull
841 format.date "year" output.check
842 new.sentence
843 editor empty$
844 'skip$
845 { organization output }
846 if$
847 publisher output
848 }
849 if$
850 new.block
851 fin.entry
852 }
853
854 FUNCTION {techreport}
855 { output.bibitem
856 format.authors "author" output.check new.item
857 format.title "title" output.check new.item
858 format.tr.number output.nonnull
859 institution "institution" output.check
860 address output
861 format.date "year" output.check
862 new.block
863 fin.entry
864 }
865
866 FUNCTION {unpublished}
867 { output.bibitem
868 format.authors "author" output.check new.item
869 % format.title "title" output.check new.item
870 note "note" output.check
871 format.date output
872 fin.entry
873 }
874
875 FUNCTION {default.type} { misc }
876
877 MACRO {jan} {"January"}
878
879 MACRO {feb} {"February"}
880
881 MACRO {mar} {"March"}
882
883 MACRO {apr} {"April"}
884
885 MACRO {may} {"May"}
886
887 MACRO {jun} {"June"}
888
889 MACRO {jul} {"July"}
890
891 MACRO {aug} {"August"}
892
893 MACRO {sep} {"September"}
894
895 MACRO {oct} {"October"}
896
897 MACRO {nov} {"November"}
898
899 MACRO {dec} {"December"}
900
901 MACRO {bbrc} {"Biochem. Biophys. Res. Commun."}
902
903 MACRO {jacs} {"J. Amer. Chem. Soc."}
904
905 MACRO {jbc} {"J. Biol. Chem."}
906
907 MACRO {pnas} {"Proc. Natl. Acad. Sci."}
908
909 MACRO {jmb} {"J. Mol. Biol."}
910
911 MACRO {embo} {"EMBO J."}
912
913 MACRO {tibs} {"Trends Biochem. Sci."}
914
915 MACRO {protsfg} {"Proteins: Struct. Func. Gen."}
916
917 MACRO {ieeetcad}
918 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
919
920 MACRO {ipl} {"Information Processing Letters"}
921
922 MACRO {jacm} {"Journal of the ACM"}
923
924 MACRO {jcss} {"Journal of Computer and System Sciences"}
925
926 MACRO {scp} {"Science of Computer Programming"}
927
928 MACRO {sicomp} {"SIAM Journal on Computing"}
929
930 MACRO {tocs} {"ACM Transactions on Computer Systems"}
931
932 MACRO {tods} {"ACM Transactions on Database Systems"}
933
934 MACRO {tog} {"ACM Transactions on Graphics"}
935
936 MACRO {toms} {"ACM Transactions on Mathematical Software"}
937
938 MACRO {toois} {"ACM Transactions on Office Information Systems"}
939
940 MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
941
942 MACRO {tcs} {"Theoretical Computer Science"}
943
944 READ
945
946 STRINGS { longest.label }
947
948 INTEGERS { number.label longest.label.width }
949
950 FUNCTION {initialize.longest.label}
951 { "" 'longest.label :=
952 #1 'number.label :=
953 #0 'longest.label.width :=
954 }
955
956 FUNCTION {longest.label.pass}
957 { number.label int.to.str$ 'label :=
958 number.label #1 + 'number.label :=
959 label width$ longest.label.width >
960 { label 'longest.label :=
961 label width$ 'longest.label.width :=
962 }
963 'skip$
964 if$
965 }
966
967 EXECUTE {initialize.longest.label}
968
969 ITERATE {longest.label.pass}
970
971 FUNCTION {begin.bib}
972 { preamble$ empty$
973 'skip$
974 { preamble$ write$ newline$ }
975 if$
976 "\begin{thebibliography}{" longest.label * "}" * write$ newline$
977 }
978
979 EXECUTE {begin.bib}
980
981 EXECUTE {init.state.consts}
982
983 ITERATE {call.type$}
984
985 FUNCTION {end.bib}
986 { newline$
987 "\end{thebibliography}" write$ newline$
988 }
989
990 EXECUTE {end.bib}