ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/langevin/jcp2.bst
Revision: 2746
Committed: Wed May 3 16:44:46 2006 UTC (18 years, 2 months ago) by tim
File size: 22724 byte(s)
Log Message:
initial draft

File Contents

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