\documentclass[12pt]{report}

\begin{document}


\chapter{BibTeX - the basics}


To run BibTeX you need two extra files, one a bibliography style file
and the database with bibliography information. The file you're now
reading is rather long as it contains the bibliography style file {\it
prsty.bst}. The main bit however is contained in just over 2 pages.

\begin{itemize}
\item style file -- {\it e.g. prsty.bst}~~~~This file tells BibTeX
what style to use to lay out the entries. {\it prsty.bst} produces a
bibliography of the form used in most physics papers.

\item bibliography database -- {\it e.g. physics.bib}~~~~This file
contains all the information on a range of papers, books etc that you
might want to cite. This file must have the extension {\it .bib}.
\end{itemize}

\section*{Why use BibTeX?}

BibTeX is useful as it allows you to have {\it one} master file with
all the references you might be interested in citing in any number of
papers.

When compiling the document you need to LaTeX the file, then BibTeX
it, then LaTeX it twice. What happens is that BibTeX finds all the
papers you have cited using the {\it $\backslash$cite\{\ldots\}}
command in your LaTeX document and makes an auxiliary file with the
extension {\it .bbl} which contains the bibliography information the
papers cited in your document, and numbers them all in order of
appearance.

Since you only need one file, you don't need to create a bibliography
for each new document - it happens automatically when you compile the
document!


\section*{How?}

In the document preamble you need a command-line saying which
bibliography style file to use, and where to find it. For example, if
you are using {\it prsty.bst} and this file is in the same directory
as your paper, you put in the command line (without .bst extension)...

\begin{verbatim}
\bibliographystyle{prsty}
\end{verbatim}

\noindent
Then to tell BibTeX to make the bibliography, at the end of your
document you put the line...

\begin{verbatim}
\bibliography{physics}
\end{verbatim}

\noindent
where {\it physics.bib} is your bibliography database.

One of the very nice feature of using BibTeX is that the nice people
at SLAC have a BibTeX format in their search options. This can be seen
by going to 

\begin{verbatim}
http://www-spires.slac.stanford.edu/find/hep
\end{verbatim}

\noindent
and choosing the BibTeX format in the format options just below
where you enter the search command. This means that for the vast
majority of papers you don't even have to enter the bibliography
information by hand!


\section*{For example...}

An example is included in the appendices here.

\begin{itemize}
\item Appendix\,A contains a sample document {\it sample.tex} with the
commands to make a bibliography. Note that the bibliography it
produces has only 2 entries, cos although the following bibliography
database has 3 entries, only 2 of these are cited in {\it sample.tex}.

\item Appendix\,B contains a sample bibliography database file {\it
physics.bib}.

\item Appendix\,C contains the bibliography style file {\it prsty.bst}
(which is a couple of pages long)

\end{itemize}

\section*{And finally...}

Just to be useful, if you cut and paste bits from this {\it LaTeX}
file between the 

\begin{verbatim}
------ cut here -----
\end{verbatim}

\noindent
bits, you can save these files as the appropriate names {\it
i.e. sample.tex, physics.bib, prsty.bst}, and if all put in the same
directory, they provide a working example!

\appendix

\chapter{{\it sample.tex} -- an example document using BibTeX}

\begin{verbatim}

-------------------------------- cut here -----------------------------

\documentclass[12pt]{report}

\bibliographystyle{prsty}

\begin{document}

Here's a very short sample BibTeX document. Among the interesting
books and papers I have read in the course of this work is Halzen and
Martin's {\it Quarks and Leptons}\,\cite{Halzen:1984mc}, and the paper
{\it Can one probe the structure of the pomeron} by Ellis and
Ross\,\cite{Ellis:1996cg}.

And here the sample document ends.


\bibliography{physics}

\end{document}

-------------------------------- cut here -----------------------------

\end{verbatim}


\chapter{{\it physics.bib} -- an example BibTeX database}

\begin{verbatim}

-------------------------------- cut here -----------------------------

@Book{Halzen:1984mc,
  author = 	 {F. Halzen and A. D. Martin},
  title = 	 {QUARKS AND LEPTONS: AN INTRODUCTORY COURSE IN MODERN
                  PARTICLE PHYSICS},
  publisher = 	 {Wiley},
  year = 	 1984,
  address = 	 {New York, USA},
  annote =	 {396p}
}
@Article{Ellis:1996cg,
     author    = "John Ellis and Graham G. Ross",
     title     = "Can one probe the structure function of the pomeron?",
     journal   = "Phys. Lett.",
     volume    = "B384",
     year      = "1996",
     pages     = "293-299",
     eprint    = "hep-ph/9604360"
}
@PhdThesis{Phillips:1995jpp,
  author = 	 "J. P. Phillips",
  OPTtitle = 	 "The Deep-Inelastic Structure of Diffraction",
  school = 	 "University of Manchester",
  year = 	 1995,
  annote = 	 "This is where the F2D3 data comes from."
}


-------------------------------- cut here -----------------------------

\end{verbatim}

\chapter{{\it prsty.bst} -- a bibliography style file}

\begin{verbatim}

-------------------------------- cut here -----------------------------

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                           begin prsty.bst                                 %
%                             version 3.0                                   %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                           %
%   This file is part of the APS files in the REVTeX 3.0 distribution.      %
%   Version 3.0 of REVTeX, November 10, 1992.                               %
%                                                                           %
%   Copyright (c) 1992 The American Physical Society.                       %
%                                                                           %
%   See the REVTeX 3.0 README file for restrictions and more information.   %
%                                                                           %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%       This is a bibtex style file to produce Physical-Review--style       %
%            references for inclusion in LaTeX/REVTeX documents.            %
%                Main problem: crossref handling is terrible                %
%               Some documentation is available (e-mail below)              %
%               Contact: C. Hamlin, mis@aps.org  (Internet)                 %
%                                   mis@apsedoff (bitnet)                   %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
  }
  {}
  { label }


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$
}

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$ "" }
    { "{\em " swap$ * "}" * }
  if$
}

FUNCTION {embolden}
{ duplicate$ empty$
    { pop$ "" }
    { "{\bf " swap$ * "}" * }
  if$
}

FUNCTION {paren}
{ duplicate$ empty$
    { pop$ "" }
    { "(" swap$ * ")" * }
  if$
}

INTEGERS { nameptr namesleft numnames }
INTEGERS { etal }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames #4 >
  s numnames "{ll}" format.name$ "others" = numnames #1 > and
  or 'etal :=
  etal
    { #1 #1 + 'namesleft := }
    { numnames 'namesleft := }
  if$
    { namesleft #0 > }
    { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't :=
      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$
}

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
}


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$
}

FUNCTION {format.vol.page}
{ "volume" volume embolden #1 push.string.check
  " " *
  "pages" pages field.or.null first.page #0 add.string.check
  " " *
}

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
  "journal" journal #0 add.string.check " " *
  output
  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
  "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$
    { "We don't use thesis titles in Phys. Rev, see \cite{"
      cite$ "}" * * warning$
    }
  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$
    { "We don't use thesis titles in Phys. Rev, see \cite{"
      cite$ "}" * * warning$
    }
  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$
    { "We chuck the title of techreports in Phys. Rev.---\cite{"
       cite$ "}." * * warning$
    }
  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$
  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
}

EXECUTE {begin.bib}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                             end prsty.bst                                 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


-------------------------------- cut here -----------------------------

\end{verbatim}


\end{document}
