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