%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Begin jasasty.bst % % version 1.00, Sep 2, 2004 % % Based upon prsty.bst % % in RevTeX 3.1, June 11, 1993 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is a BibTeX style file to produce J. Acoust. Soc. Am.--style % % references for inclusion in LaTeX/REVTeX documents. % % Main problem: crossref handling is terrible % % Search for CUSTOMIZATION below to read about setting variables to % % control automatic use of ``et al.'', automatic abbreviation, % % including annotations, and adjusting title typesetting. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % !!! DO NOT SEND MAIL TO THE APS or ASA ABOUT ERRORS/BUGS !!! % % Contact Ronald Kumon at . % % You are NOT ALLOWED to take money for the distribution of this file % % except for a nominal charge for copying, etc. See the original % % RevTeX 3.1 README file for further restrictions on distribution. % % Any changes to this file are subject to the requirements in that % % README file. Contact to find out how to receive % % the README file and the original RevTeX 3.1 distribution (now obsolete).% % Happy BibTeXing!!! % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Hacked by Ronald Kumon on 10 Jun 1997 to convert to JASA style. % % on 10 Jun 1997 to add annotation option % % on 09 Jul 1998 to squash some bugs % % on 02 Sep 2004 to remove space after unann. items % % % % Description: % % This is a hacked version of prsty.bst which writes the references in % % in a style compatible with the Journal of the Acoustical Society of % % America. While this style file handles a wide variety of cases, % % the user should always review the final *.bbl file before submitting % % to the Journal. The author takes no responsibility for errors or % % incompatibilities generated by this style file. YOU HAVE BEEN WARNED!!! % % % % Features: % % 1. The file will print the titles of articles in references as well % % as the titles of theses and dissertations (not used in Phys. Rev.) % % if the "usearticletitles" variable is set. See details below. % % 2. The file will convert titles of articles to lowercase except for the % % the first letter of the first word if the "uselctitles" variable % % is set. Titles of books are typeset as given in the database % % (and should be capitalized). % % 3. The titles of books and journals are set in slanted type not % % not in italics. This may be changed by editing the "emphasize" % % function. % % 4. The file will print the full contents of the page field (first % % and last) for articles and will insure that there is an n-dash % % in between. In contrast, the Phys. Rev. style only prints the % % first page. % % 5. The file will print the issue number in parentheses after the % % volume number if the "number" field is nonempty. Note that you % % should include the issue number in the reference only if the % % pages in the journal that you are referencing are not numbered % % consecutively from one issue to the next in a particular volume. % % Hence, you should only have a nonempty "number" field if % % you really want to have the issue number listed. % % 6. If you wish to have annotations listed after each reference, % % put the annotation in the "annote" field in entries in your % % database. You will then need to set the "useannotated" variable % % in order to have the annotations print. See details below. % % The default spacing is 0.125 inches before and after each % % annotation with no indentation. The annotation formatting is % % customized by hacking the function "fin.entry". % % 7. The default is abbreviate all the authors' names except their last. % % However, if you have Russian authors that have the first letter of % % one of their names that is transliterated into English as two % % letters, then you need to write them as % % {\uppercase{Y}u}rii --> Yu. % % so that they convert as shown in this example. Note that the % % period is added by BibTeX. % % 8. If the "useetal" variable is set, then "et al." will be added when % % there are over four author names. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ENTRY { address % Added for annotated bibiliography: Ronald Kumon, 09 Jun 1997 annote % End of change author booktitle chapter edition editor howpublished institution journal key month note number organization pages publisher school series title type volume year } {} { label } INTEGERS { useetal useabbrev usearticletitle useannotated uselctitles} % % CUSTOMIZATION % % The assignments in the following function allow you to customize % your version of prsty.bst. You may wish to copy the file to another % name and customize for your personal use, if other people use this % copy of prsty.bst. % % There are two variables that can be set: useetal and useabbrev. % % The useetal variable controls the use of ``et al.''. Setting the first two % lines in the function ``init.stuff'' below as % % %#0 'useetal := % #1 'useetal := % % will substitute ``et al.'' when there are over four author names. Setting % the lines as % % #0 'useetal := % %#1 'useetal := % % will print all author names, no matter how many are used. (The only change % is which of the two lines starts with a % character.) % % The useabbrev variable controls the use of abbreviations. Setting the last % two lines in the function ``init.stuff'' below as % % %#0 'useabbrev := % #1 'useabbrev := % % will abbreviate the first names of all authors. Setting the lines as % % #0 'useabbrev := % %#1 'useabbrev := % % will print all author first names in full, no matter how long. % % The usearticletitle variable controls the use of article titles. % Setting the lines as % % %#0 'usearticletitle := % #1 'usearticletitle := % % will cause the titles of articles to be printed in all references % that use an article title (article in journal, article in collection, etc.) % Setting the lines as % % #0 'usearticletitle := % %#1 'usearticletitle := % % will not print any titles of articles. % % The useannotated variable controls the use of annotations. % Setting the lines as % % %#0 'useannotated := % #1 'useannotated := % % will cause the annotations to be printed in all references. % Setting the lines as % % #0 'useannotated := % %#1 'useannotated := % % will not print any annotations. % % The uselctitles variable controls the case of the titles of articles. % It does not control the case of the titles of books of any sort (although % it will control the case of the titles of articles cited in any book). % Setting the lines as % % %#0 'uselctitles := % #1 'uselctitles := % % will cause the titles to be in lower case except for the first % letter of the the first word. Letters which must be set in % uppercase should be enclosed in braces (e.g., {R}ayleigh}. % Setting the lines as % % #0 'uselctitles := % %#1 'uselctitles := % % will cause the titles to be written out verbatim. % % *The defaults are using all author names, abbreviating first names, % printing the titles for articles, not using annotations, and printing % the titles in lowercase. FUNCTION {init.stuff} { #0 'useetal := %#1 'useetal := %#0 'useabbrev := #1 'useabbrev := % Added for JASA format: Ronald Kumon, 10 Jun 1997 %#0 'usearticletitle := #1 'usearticletitle := #0 'useannotated := %#1 'useannotated := %#0 'uselctitles := #1 'uselctitles := % End of change } INTEGERS { vol.used i.temp } STRINGS { s t } FUNCTION {output} { duplicate$ empty$ 'pop$ 'write$ if$ } % Note: nothing left on stack for future processing in bibitem. FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ cite$ write$ "}" write$ newline$ } FUNCTION {fin.entry} { add.period$ write$ newline$ % Added for annotated bibliography: Ronald Kumon, 09 Jun 1997 useannotated { annote empty$ 'skip$ { newline$ "\vspace{.125in}\noindent " write$ annote write$ newline$ } if$ } 'skip$ if$ % End of change } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } %Changed for JASA format: Ronald Kumon 9 Jul 1998 % Changed \em (italicized) to \sl (slanted) % { "{\em " swap$ * "}" * } <-- for italics { "{\sl " swap$ * "}" * } %End of change if$ } FUNCTION {embolden} { duplicate$ empty$ { pop$ "" } { "{\bf " swap$ * "}" * } if$ } FUNCTION {paren} { duplicate$ empty$ { pop$ "" } { "(" swap$ * ")" * } if$ } INTEGERS { nameptr namesleft numnames etal } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames #4 > s numnames "{ll}" format.name$ "others" = numnames #1 > and or 'etal := useetal { } { #0 'etal := } if$ etal { #1 #1 + 'namesleft := } { numnames 'namesleft := } if$ { namesleft #0 > } { useabbrev { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := } { s nameptr "{ff }{vv~}{ll}{, jj}" format.name$ 't := } if$ nameptr #1 > { namesleft #1 > { ", " * t * } { nameptr #2 > { "," * } 'skip$ if$ t "others" = etal or { " {\it et~al.}" * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.edited} { editor empty$ { "" } { "edited by " editor format.names * } if$ } FUNCTION {format.title} { title empty$ { "" } 'title if$ } % Added for JASA format: Ronald Kumon, 10 Jun 1997 % Note that if you do not have a title for an article and % you this function, a non-fatal error message will be printed. % If you intended to not have a title, then just ignore the message. FUNCTION {format.title.article} { title empty$ { "" } { uselctitles {"``" title "t" change.case$ * ",''" *} {"``" title * ",''" *} if$ } if$ } % End of change FUNCTION {lc.first.letter} { 't := "" t #1 #1 substring$ "l" change.case$ * t #2 global.max$ substring$ * } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {first.page} { 't := "" { t empty$ not t #1 #1 substring$ "-" = not and } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } while$ } FUNCTION {format.date} { year empty$ { "" } 'year if$ } FUNCTION {format.btitle} { title emphasize } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } % Added for JASA format: Ronald Kumon, 10 Jun 1997 % This function makes sure that the dash between page numbers % in article references is an "n dash" (--) and not a "hyphen" (-). FUNCTION {format.article.pages} { pages empty$ 'skip$ { pages multi.page.check { pages n.dashify } { pages } if$ } if$ } % End of change FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check { "pp.\ " pages n.dashify * } { "p.\ " pages * } if$ } if$ } FUNCTION {format.pages.a} { pages empty$ { "" } { "page" pages first.page tie.or.space.connect } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null embolden " " swap$ * * pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages.a } { ", " * pages first.page * } if$ } if$ } FUNCTION {if.comma} { { ", " * } 'skip$ if$ } % pushes "" if value passed is empty$ FUNCTION {push.string} { 'i.temp := duplicate$ empty$ { pop$ "" } { i.temp if.comma } if$ } % pushes "" if value passed is empty$ FUNCTION {push.string.check} { 'i.temp := duplicate$ empty$ { pop$ "Warning: " swap$ * " missing in entry " cite$ "." * * * warning$ "" } { swap$ pop$ i.temp if.comma } if$ } % adds nothing if value passed is empty$ FUNCTION {add.string} { 'i.temp := duplicate$ empty$ { pop$ } { * i.temp if.comma } if$ } % adds nothing if value passed is empty$ FUNCTION {add.string.check} { 'i.temp := duplicate$ empty$ { pop$ "Warning: " swap$ * " missing in entry " cite$ "." * * * warning$ } { swap$ pop$ * i.temp if.comma } if$ } % Added for JASA format: Ronald Kumon, 10 Jun 1997 % This function adds the issue number after the volume number % if the number field is nonempty. FUNCTION {format.article.number} { number empty$ { "" } { "(" number ")" * *} if$ } % End of change FUNCTION {format.vol.page} { volume empty$ {""} { "volume" volume embolden #0 push.string.check % Added for JASA format: Ronald Kumon, 10 Jun 1997 % This adds the issue number in parentheses after the % volume number, if necessary format.article.number ", " * * } if$ % End of change % Changed for JASA format: Ronald Kumon, 10 Jun 1997 % Removed the function "first.page" which wrote only the first page % of the article into the reference. The function "first.page" was % between "field.or.null" and "#0" in the line below. pages empty$ {"Warning: pages missing in entry " cite$ "." * * warning$ "" *} {format.article.pages *} if$ % End of change } FUNCTION {empty.misc.check} { author empty$ title empty$ howpublished empty$ year empty$ note empty$ and and and and { "All relevant fields are empty in " cite$ * warning$ } 'skip$ if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { "Technical Report" } 'type if$ number empty$ { "t" change.case$ } { type empty$ { " No.~" * } { " " * } if$ number * } if$ } FUNCTION {format.etc} { vol.used 'skip$ { number empty$ { volume empty$ 'skip$ { "Vol.~" volume * * chapter empty$ pages empty$ note empty$ and and 'skip$ { ", " * } if$ } if$ } { "No.~" number * * chapter empty$ pages empty$ note empty$ and and 'skip$ { ", " * } if$ } if$ } if$ chapter empty$ 'skip$ { type empty$ { "Chap.~" chapter * * } { type "u" change.case$ "l" change.case$ " " chapter * * * } if$ pages empty$ note empty$ and 'skip$ { ", " * } if$ } if$ pages empty$ 'skip$ { format.pages * note empty$ 'skip$ { ", " * } if$ } if$ note empty$ 'skip$ { note lc.first.letter * } if$ } FUNCTION {format.pub.add.year.etc} { " (" publisher empty$ { "PUBLISHER" "No publisher for entry " cite$ "." * * warning$ } { publisher } if$ ", " * * address empty$ { "ADDRESS" "Missing address in entry " cite$ * "." * warning$ } { address } if$ ", " * * year empty$ { "YEAR" } 'year if$ ")" * * volume empty$ not number empty$ not or title empty$ series empty$ or and chapter empty$ not or pages empty$ not or type empty$ not or note empty$ not or { ", " * format.etc } 'skip$ if$ } FUNCTION {format.bedition} { edition empty$ { "" } { edition "l" change.case$ duplicate$ "first" = { pop$ "1st " } { duplicate$ "second" = { pop$ "2nd " } { duplicate$ "third" = { pop$ "3rd " } 'skip$ if$ } if$ } if$ " ed." * } if$ } FUNCTION {format.title.and.series.and.org} { #0 'vol.used := "" duplicate$ 's := title empty$ 'skip$ { title 's := } if$ booktitle empty$ 'skip$ { booktitle 's := } if$ s empty$ 'skip$ { type$ "inproceedings" = type$ "proceedings" = or type$ "inbook" = or { " in " * } { author empty$ not editor empty$ not and { " in " * } 'skip$ if$ } if$ s emphasize series empty$ editor empty$ edition empty$ and and not type$ "inproceedings" = organization empty$ not and type$ "proceedings" = organization empty$ not and or or add.string } if$ series empty$ 'skip$ { s empty$ 'skip$ { number empty$ { volume empty$ 'skip$ { "Vol.~" volume " of " * * * #1 'vol.used := } if$ } { "No.~" number " in " * * * #1 'vol.used := } if$ } if$ series emphasize edition empty$ not editor empty$ not type$ "inproceedings" = organization empty$ not and type$ "proceedings" = organization empty$ not and or or or add.string } if$ type$ "inproceedings" = type$ "proceedings" = or { organization empty$ 'skip$ { organization editor empty$ edition empty$ and not add.string } if$ } 'skip$ if$ } FUNCTION {article} { output.bibitem "author" format.authors #1 push.string.check %Added for JASA format: Ronald Kumon, 10 Jun 1997 % If the user sets "usearticletitle" to #1, then this section % will cause titles to be printed in article references. % Note that the #0 argument specifies that there is to % be no comma after the expression. This is because the % comma is placed inside the quotation marks around the title. usearticletitle {"title" format.title.article #0 add.string.check " " *} 'skip$ if$ %End of change "journal" journal #0 add.string.check output volume empty$ {"," write$} {" " write$} if$ format.vol.page #0 push.string " " * "date" format.date paren #0 add.string.check note empty$ 'skip$ { ", " * note lc.first.letter * } if$ fin.entry crossref empty$ 'skip$ { "See Ref.\ \cite{" crossref "}." * * write$ newline$ } if$ } FUNCTION {book} { output.bibitem format.authors #1 push.string % Added for JASA format: Ronald Kumon, 10 Jun 1997 usearticletitle { booktitle empty$ 'skip$ {"title" format.title.article #0 add.string.check " " *} if$ } 'skip$ if$ % End of change "title" format.title.and.series.and.org #0 add.string.check format.bedition editor empty$ not add.string output format.edited #0 push.string format.pub.add.year.etc #0 add.string fin.entry crossref empty$ 'skip$ { "See Ref.\ \cite{" crossref "}." * * write$ newline$ } if$ } FUNCTION {booklet} { output.bibitem format.authors #1 push.string "title" format.title #0 add.string.check howpublished empty$ 'skip$ { ", " howpublished * * } if$ address empty$ 'skip$ { ", " address * * } if$ year empty$ 'skip$ { " (" year ")" * * * } if$ note empty$ 'skip$ { ", " note lc.first.letter * * } if$ fin.entry } FUNCTION {inbook} { book } FUNCTION {incollection} { book } FUNCTION {inproceedings}{ book } FUNCTION {proceedings} { book } FUNCTION {conference} { book } FUNCTION {manual} { output.bibitem "" author empty$ 'skip$ { format.authors #1 add.string } if$ format.btitle edition empty$ address empty$ organization empty$ year empty$ note empty$ and and and and not add.string edition empty$ 'skip$ { format.bedition organization empty$ address empty$ year empty$ note empty$ and and and not add.string } if$ organization empty$ 'skip$ { organization address empty$ year empty$ note empty$ and and not add.string } if$ address empty$ 'skip$ { address year empty$ note empty$ and not add.string } if$ year empty$ 'skip$ { year note empty$ not add.string } if$ note empty$ 'skip$ { note lc.first.letter #0 add.string } if$ fin.entry } FUNCTION {mastersthesis} { output.bibitem "author" format.authors #1 push.string.check " " * title empty$ 'skip$ % Changed for JASA format: Ronald Kumon, 10 Jun 1997 % Formerly: % { "We don't use thesis titles in Phys. Rev, see \cite{" % cite$ "}" * * warning$ % } {format.title.article " " * *} if$ "Master's thesis" format.thesis.type #1 add.string "school" school #1 add.string.check address #1 add.string "year" format.date note empty$ not add.string.check note empty$ 'skip$ { note lc.first.letter * } if$ fin.entry } FUNCTION {phdthesis} { output.bibitem "author" format.authors #1 push.string.check " " * title empty$ 'skip$ % Changed for JASA format: Ronald Kumon, 10 Jun 1997 % Formerly: % { "We don't use thesis titles in Phys. Rev, see \cite{" % cite$ "}" * * warning$ % } {format.title.article " " * *} if$ "Ph.D. thesis" format.thesis.type #1 add.string "school" school #1 add.string.check address #1 add.string "year" format.date note empty$ not add.string.check note empty$ 'skip$ { note lc.first.letter * } if$ fin.entry } FUNCTION {misc} { output.bibitem format.authors title empty$ howpublished empty$ year empty$ note empty$ and and and not push.string format.title howpublished empty$ year empty$ note empty$ and and not add.string howpublished year empty$ note empty$ and not add.string format.date note empty$ not add.string note empty$ 'skip$ { note author empty$ title empty$ howpublished empty$ year empty$ and and and 'skip$ 'lc.first.letter if$ #0 add.string } if$ fin.entry empty.misc.check } FUNCTION {techreport} { output.bibitem "author" format.authors #1 push.string.check " " * title empty$ 'skip$ % Changed for JASA format: Ronald Kumon, 10 Jun 1997 % Formerly: % { "We chuck the title of techreports in Phys. Rev.---\cite{" % cite$ "}." * * warning$ % } {format.title.article " " * *} if$ format.tr.number institution empty$ address empty$ note empty$ and and not add.string "institution" institution address empty$ note empty$ and not add.string.check address #0 add.string " (unpublished)" note empty$ not add.string note empty$ 'skip$ { note lc.first.letter * } if$ fin.entry } FUNCTION {unpublished} { output.bibitem "author" format.authors note empty$ not push.string.check note empty$ 'skip$ { note lc.first.letter #0 add.string } if$ " (unpublished)" * fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Comput. Surv."} MACRO {acta} {"Acta Inf."} MACRO {applopt} {"Appl. Opt."} MACRO {cacm} {"Commun. ACM"} MACRO {ibmjrd} {"IBM J. Res. Dev."} MACRO {ibmsj} {"IBM Syst.~J."} MACRO {ieeese} {"IEEE Trans. Softw. Eng."} MACRO {ieeetc} {"IEEE Trans. Comput."} MACRO {ieeetcad} {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} MACRO {ipl} {"Inf. Process. Lett."} MACRO {jacm} {"J.~ACM"} MACRO {jcss} {"J.~Comput. Syst. Sci."} MACRO {scp} {"Sci. Comput. Programming"} MACRO {sicomp} {"SIAM J. Comput."} MACRO {tocs} {"ACM Trans. Comput. Syst."} MACRO {tods} {"ACM Trans. Database Syst."} MACRO {tog} {"ACM Trans. Gr."} MACRO {toms} {"ACM Trans. Math. Softw."} MACRO {toois} {"ACM Trans. Office Inf. Syst."} MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} MACRO {tcs} {"Theor. Comput. Sci."} MACRO {anp} {"Adv. Nucl. Phys."} MACRO {ap} {"Ann. Phys."} MACRO {arnpc} {"Annu. Rev. Nucl. Part. Sci."} MACRO {baps} {"Bull. Am. Phys. Soc."} MACRO {cp} {"Computers Phys."} MACRO {jp} {"J. Phys."} MACRO {josa} {"J. Opt. Soc. Am."} MACRO {josaa} {"J. Opt. Soc. Am. A"} MACRO {josab} {"J. Opt. Soc. Am. B"} MACRO {nim} {"Nucl. Instrum. Meth."} MACRO {np} {"Nucl. Phys."} MACRO {rmp} {"Rev. Mod. Phys."} MACRO {physica} {"Physica"} MACRO {pl} {"Phys. Lett."} MACRO {plb} {"Phys. Lett. B"} MACRO {pr} {"Phys. Rev."} MACRO {pra} {"Phys. Rev. A"} MACRO {prb} {"Phys. Rev. B"} MACRO {prc} {"Phys. Rev. C"} MACRO {prd} {"Phys. Rev. D"} MACRO {pre} {"Phys. Rev. E"} MACRO {prl} {"Phys. Rev. Lett."} MACRO {prep} {"Phys. Rep."} MACRO {ps} {"Phys. Scr."} MACRO {rpp} {"Rep. Prog. Phys."} MACRO {sjnp} {"Sov. J. Nucl. Phys."} MACRO {springmp} {"Springer Tracts in Modern Physics"} MACRO {yadfiz} {"Yad. Fiz."} MACRO {zp} {"Z. Phys."} READ STRINGS { longest.label } INTEGERS { number.label longest.label.width } FUNCTION {initialize.longest.label} { "" 'longest.label := #1 'number.label := #0 'longest.label.width := } FUNCTION {longest.label.pass} { number.label int.to.str$ 'label := number.label #1 + 'number.label := label width$ longest.label.width > { label 'longest.label := label width$ 'longest.label.width := } 'skip$ if$ } EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ init.stuff "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % end jasasty.bst % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%