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