ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/nivsRnemd/aip.bst
Revision: 3584
Committed: Tue Apr 13 20:12:24 2010 UTC (14 years, 2 months ago) by gezelter
File size: 18992 byte(s)
Log Message:
missing bst file

File Contents

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