% This file implements citations for the ``named'' bibliography style. % Place it in a file called named.sty in the TeX search path. (Placing it % in the same directory as the LaTeX document should also work.) % Prepared by Peter F. Patel-Schneider, with the assistance of several, % since forgotten, LaTeX hackers. % This style is NOT guaranteed to work. It is provided in the hope % that it will make the preparation of papers easier. % % There are undoubtably bugs in this style. If you make bug fixes, % improvements, etc. please let me know. My e-mail address is: % pfps@research.att.com % The preparation of this file was supported by Schlumberger Palo Alto % Research and AT\&T Bell Laboratories. % This file can be modified and used in other conferences as long % as credit to the authors and supporting agencies is retained, this notice % is not changed, and further modification or reuse is not restricted. % The ``named'' bibliography style creates citations with labels like % \citeauthoryear{author-info}{year} % these labels are processed by the following commands: % \cite{key} % which produces citations with both author and year, % enclosed in square brackets % \shortcite{key} % which produces citations with year only, % enclosed in square brackets % \citeauthor{key} % which produces the author information only % \citeyear{key} % which produces the year information only % Bugs: Using \cite and \shortcite in vertical mode (usually as the first % thing in a paragraph) does not work. A simple fix might work, but I'm % not ready to delve into TeX at the moment. \def\@up#1{\raise.2ex\hbox{#1}} \let\@internalcite\cite \def\cite{\def\@citeseppen{-1000}% \def\@cite##1##2{\@up[\nobreak\hskip 0in{##1\if@tempswa , ##2\fi}\@up]}% \def\citeauthoryear##1##2{##1, ##2}\@internalcite} \def\shortcite{\def\@citeseppen{1000}% \def\@cite##1##2{\@up[{##1\if@tempswa , ##2\fi}\@up]}% \def\citeauthoryear##1##2{##2}\@internalcite} \def\citeauthor#1{\def\@citeseppen{1000}% \def\@cite##1##2{{##1\if@tempswa , ##2\fi}}% \def\citeauthoryear##1##2{##1}\@citedata{#1}} \def\citeyear#1{\def\@citeseppen{1000}% \def\@cite##1##2{{##1\if@tempswa , ##2\fi}}% \def\citeauthoryear##1##2{##2}\@citedata{#1}} \def\@citedata#1{\@tempswafalse% \if@filesw\immediate\write\@auxout{\string\citation{#1}}\fi \def\@citea{}\@cite{\@for\@citeb:=#1\do {\@citea\def\@citea{,\penalty\@citeseppen\ }\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\csname b@\@citeb\endcsname}}}{}} % don't box citations, separate with ; and a space % also, make the penalty between citations negative: a good place to break \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{;\penalty\@citeseppen\ }\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\csname b@\@citeb\endcsname}}}{#1}} % raise the brackets in bibliography labels \def\@biblabel#1{\def\citeauthoryear##1##2{##1, ##2}% \raise.2ex\hbox{[}#1\raise.2ex\hbox{]}\hfill}