ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/openmdDocs/aip.bst
Revision: 3794
Committed: Tue Aug 21 13:32:12 2012 UTC (11 years, 10 months ago) by gezelter
File size: 18992 byte(s)
Log Message:
Added bibliography style file, and did formatting.

File Contents

# User Rev Content
1 gezelter 3794 %% #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}