%% Author: Peter Williams peterw@archsci.arch.su.edu.au \message{harvard bibliography,} \def\@hiteml[#1]#2#3#4{\item[]\if@filesw% { \def\protect##1{\string ##1\space}\immediate% \write\@auxout{\string\harvardcite{#4}{#2}{#1}{#3}}}\fi% \protect\hspace*{-\labelwidth}\protect\hspace*{-\labelsep}\ignorespaces} \def\@hitem#1#2#3{\item[]\if@filesw% { \def\protect##1{\string ##1\space}\immediate% \write\@auxout{\string\harvardcite{#3}{#1}{#1}{#2}}}\fi% \protect\hspace*{-\labelwidth}\protect\hspace*{-\labelsep}\ignorespaces} \def\harvarditem{\@ifnextchar [{\@hiteml}{\@hitem}} \def\harvardcite#1#2#3#4{ \global\@namedef{bhf@#1}{#2} \global\@namedef{bha@#1}{#3} \global\@namedef{bhy@#1}{#4}\global\@namedef{b@#1}{\csname bhf@#1\endcsname} } \def\citationmode#1{\gdef\@cite@mode{\csname @cite@#1\endcsname}} \def\@cite@full{bhf@} \def\@cite@abbr{bha@} \def\@cite@default{b@} \def\@cite@mode{\@cite@default} \def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} \def\citeaffixed{\@ifnextchar [{\@tempswatrue\@citeaffixedx} {\@tempswafalse\@citeaffixedx[]} } \def\citeasnoun{\@ifnextchar [{\@tempswatrue\@citexasnoun} {\@tempswafalse\@citexasnoun[]} } \def\possessivecite{\@ifnextchar [{\@tempswatrue\@possessivecitex} {\@tempswafalse\@possessivecitex[]} } \def\citeyear{\@ifnextchar [{\@tempswatrue\@citexyear} {\@tempswafalse\@citexyear[]} } \def\citename{\@ifnextchar [{\@tempswatrue\@citexname} {\@tempswafalse\@citexname[]} } % \def\@enamedef#1{\expandafter\edef\csname #1\endcsname} % Previous line should be replaced by the following to prevent % problems with the NFSS. Solution by Bernd Raichle. \def\@enamedef#1{\expandafter\def\csname #1\expandafter\endcsname\expandafter} \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{\@hisep\penalty\@m\ }\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {{\csname \@cite@mode\@citeb\endcsname\@hysep\csname bhy@\@citeb\endcsname}% \global\@enamedef{b@\@citeb}{\csname bha@\@citeb\endcsname}}% }}{#1}} \def\@citeaffixedx[#1]#2#3{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citea{}\@citeaffixed{\@for\@citeb:=#2\do {\@citea\def\@citea{\@hisep\penalty\@m\ }\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {{\csname \@cite@mode\@citeb\endcsname\@hysep\csname bhy@\@citeb\endcsname}% \global\@enamedef{b@\@citeb}{\csname bha@\@citeb\endcsname}}% }}{#1}{#3}} \def\@citexasnoun[#1]#2{% \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% \@citeasnoun{{\@ifundefined% {b@#2}% {{\bf ?}\@warning{Citation `#2' on page \thepage \space undefined}}% {{\csname \@cite@mode#2\endcsname\ \harvardleft\csname bhy@#2\endcsname}% \global\@namedef{b@#2}{\csname bha@#2\endcsname}}% }}{#1}} \def\@possessivecitex[#1]#2{% \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% \@citeasnoun{{\@ifundefined% {b@#2}% {{\bf ?}\@warning{Citation `#2' on page \thepage \space undefined}}% {{\csname \@cite@mode#2\endcsname's\ \harvardleft\csname bhy@#2\endcsname}% \global\@namedef{b@#2}{\csname bha@#2\endcsname}}% }}{#1}} \def\@citexname[#1]#2{% \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi% \@citename{{\@ifundefined% {b@#2}% {{\bf ?}\@warning{Citation `#2' on page \thepage \space undefined}}% {{\csname bhf@#2\endcsname}}% }}{#1}} \def\@citexyear[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi \def\@citeayear{}\@citeyear{\@for\@citebyear:=#2\do {\@citeayear\def\@citeayear{\@hisep\penalty\@m\ }\@ifundefined {b@\@citebyear}{{\bf ?}\@warning {Citation `\@citebyear' on page \thepage \space undefined}}% {{\csname bhy@\@citebyear\endcsname}% }% }}{#1}} \gdef\hysep@agsm{\ }\gdef\hisep@agsm{,}% \gdef\hysep@dcu{, }\gdef\hisep@dcu{;}% \gdef\harvand@agsm{\&} \gdef\harvand@dcu{and} \let\@hysep\hysep@agsm \let\@hisep\hisep@agsm \let\harvardand\harvand@agsm \def\citationstyle#1{% \global\@namedef{@hysep}{\csname hysep@#1\endcsname}% \global\@namedef{@hisep}{\csname hisep@#1\endcsname}% \global\@namedef{harvardand}{\csname harvand@#1\endcsname}} \gdef\harbl@round{(}\gdef\harbr@round{)}% \gdef\harbl@square{[}\gdef\harbr@square{]}% \gdef\harbl@curly{\{}\gdef\harbr@curly{\}}% \gdef\harbl@angle{$<$}\gdef\harbr@angle{$>$}% \gdef\harbl@none{}\gdef\harbr@none{}% \let\harvardleft\harbl@round \let\harvardright\harbr@round \let\harvardyearleft\harbl@round \let\harvardyearright\harbr@round \def\harvardparenthesis#1{% \global\@namedef{harvardleft}{\csname harbl@#1\endcsname}% \global\@namedef{harvardright}{\csname harbr@#1\endcsname}} \def\harvardyearparenthesis#1{% \global\@namedef{harvardyearleft}{\csname harbl@#1\endcsname}% \global\@namedef{harvardyearright}{\csname harbr@#1\endcsname}} %DEFAULT DEFINITIONS \def\@cite#1#2{\harvardleft{#1\if@tempswa , #2\fi}\harvardright} \def\@citeyear#1#2{\harvardyearleft{#1\if@tempswa , #2\fi}\harvardyearright} \def\@citeaffixed#1#2#3{\harvardleft#3\ {#1\if@tempswa , #2\fi}\harvardright} \def\@citeasnoun#1#2{{#1\if@tempswa , #2\fi\harvardright}} \def\@citename#1#2{{#1\if@tempswa \ \harvardleft#2\harvardright\fi}} % CHANGE \end{document} - to handle double definitions \def\enddocument{\@checkend{document}\clearpage\begingroup \if@filesw \immediate\closeout\@mainaux \def\global\@namedef##1##2{}\def\newlabel{\@testdef r}% \def\bibcite{\@testdef b}% \def\harvardcite{\@testbibh}\@tempswafalse \makeatletter\input \jobname.aux \if@tempswa \@warning{Label(s) may have changed. Rerun to get cross-references right}\fi\fi\endgroup\deadcycles\z@\@@end} \def\@testbibh #1#2#3#4{ \def\@tempa{#2}\expandafter \ifx \csname bhf@#1\endcsname \@tempa \def\@tempa{#3}\expandafter \ifx \csname bha@#1\endcsname \@tempa \def\@tempa{#4}\expandafter \ifx \csname bhy@#1\endcsname \@tempa \else \@tempswatrue \fi \else \@tempswatrue \fi \else \@tempswatrue \fi }