% http://cr.yp.to/bib.html % % The bibliography format is a strict line-by-line format, % similar to James Alexander's TIB, % but with prefixes based on the old AMS-TeX bibliography format. % % Bibliography entries go into LaTeX papers % between \begin{thebibliography}{999} and \end{thebibliography}. % A bibliography entry starts with \bib and ends with \endref. \def\bib#1{\catcode`\^^M=13\def\refno{#1} \let\refeditors\relax \let\refbyone\relax\let\refbytwo\relax\let\refbythree\relax \let\refpaper\relax\let\refjour\relax\let\refpaperyr\relax \let\refvol\relax\let\refpages\relax \let\refpaperinfo\relax \let\refinbook\relax \let\refbook\relax\let\refbookyr\relax \let\refedition\relax\let\refprinting\relax \let\refthesis\relax \let\refseries\relax \let\refseriesvol\relax \let\refbookinfo\relax \let\refpubl\relax\let\refpubladdr\relax \let\refyr\relax \let\refurl\relax\let\refid\relax \let\refolder\relax \let\refnewer\relax \let\refalso\relax \let\refmr\relax\let\refisbn\relax\let\refissn\relax} \catcode`\^^A=3 \catcode`\^^M=13\def^^M{} \def\by#1^^M{\ifx\refbyone\relax \def\refbyone{#1}\else\ifx\refbytwo\relax \def\refbytwo{#1}\else\ifx\refbythree\relax \def\refbythree{#1}\else\let\refbyold\refbyone \edef\refbyone{\refbyold, \refbytwo}\let\refbytwo\refbythree \def\refbythree{#1}\fi\fi\fi} \def\editor#1^^M{\ifx\refbyone\relax \def\refbyone{#1}\def\refeditors{ (editor)}\else\ifx\refbytwo\relax \def\refbytwo{#1}\def\refeditors{ (editors)}\else\ifx\refbythree\relax \def\refbythree{#1}\else\let\refbyold\refbyone \edef\refbyone{\refbyold, \refbytwo}\let\refbytwo\refbythree \def\refbythree{#1}\fi\fi\fi} \def\book#1^^M{\def\refbook{, \it #1\rm}} \def\paper#1^^M{\def\refpaper{, \it #1\rm}} \def\yr#1^^M{\def\refpaperyr{ (#1)}\def\refbookyr{, #1}} \def\edition#1^^M{\def\refedition{, #1 edition}} \def\printing#1^^M{\def\refprinting{, #1 printing}} \def\phdthesis^^M{\def\refthesis{, Ph.D. thesis}} \def\mathesis^^M{\def\refthesis{, M.A. thesis}} \def\series#1^^M{\def\refseries{, #1}} \def\seriesvol#1^^M{\def\refseriesvol{, #1}} \def\bookinfo#1^^M{\def\refbookinfo{, #1}} \def\publ#1^^M{\def\refpubl{, #1}} \def\publaddr#1^^M{\def\refpubladdr{, #1}} \def\seeolder#1^^M{\def\refolder{; see also older version #1}} \def\seenewer#1^^M{\def\refnewer{; see also newer version #1}} \def\also#1^^M{\def\refalso{; #1}} \def\inbook#1^^M{\def\refinbook{, in #1}} \def\paperinfo#1^^M{\def\refpaperinfo{, #1}} \def\jour#1^^M{\def\refjour{, #1}} \def\vol#1^^M{\def\refvol{ \bf#1\rm}} \def\mr#1^^M{\def\refmr{. MR #1}} % Math Reviews number \def\isbn#1^^M{\def\refisbn{. ISBN #1}} \def\issn#1^^M{\def\refissn{. ISSN #1}} \def\url#1^^M{\def\refurl{. URL: \showurl{#1}}} \def\id#1^^M{\def\refid{. ID \def\next{}\showid #1^^A^^A}} \def\pages#1^^M{\def\refpages{, #1}} \catcode`\^^M=5 \def\showid{\ifx\next^^A\else{\tt\next\penalty500}\afterassignment\showid\fi\let\next=} \def\endref{\catcode`\^^M=5{}\bibitem{\refno} {\ifx\refbyone\relax--- (no editor)\else\refbyone\ifx\refbytwo\relax\else \ifx\refbythree\relax, \refbytwo\else, \refbytwo, \refbythree\fi\fi\fi \refeditors \ifx\refpaper\relax\else \refpaper\refinbook\refpaperinfo \refjour\refvol\refpaperyr\refpages \fi \ifx\refbook\relax\else \refbook\refedition\refprinting \refthesis\refseries\refseriesvol\refbookinfo \refpubl\refpubladdr\refbookyr \fi \refolder\refnewer\refalso \refisbn\refissn\refmr\refurl\refid.}\par\ignorespaces} \def\showurl#1{{\tt\hyphenchar\font=-1\def\nextpenalty{}\def\next{}\dosplit#1^^A^^A}} \def\dosplit{% \ifx\next^^A\else \ifx\next/{/\gdef\nextpenalty{\penalty0}}\else \ifx\next.{.\gdef\nextpenalty{\penalty500}}\else \ifx\next:{:\gdef\nextpenalty{\penalty50}}\else \ifx\next?{?\gdef\nextpenalty{\penalty50}}\else \ifx\next={=\gdef\nextpenalty{\penalty50}}\else \ifx\next##{\char'043\gdef\nextpenalty{\penalty50}}\else \ifx\next&{\char'046\gdef\nextpenalty{\penalty50}}\else \ifx\next_{\char'137\gdef\nextpenalty{\penalty50}}\else \ifx\next({\penalty50(\gdef\nextpenalty{}}\else \ifx\next~{\penalty50\char'176\gdef\nextpenalty{}}\else {\nextpenalty\next\gdef\nextpenalty{}}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\afterassignment\dosplit \fi\let\next=} \catcode`#=11