105 lines
3.7 KiB
TeX
105 lines
3.7 KiB
TeX
\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\citeasnoun{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
|
|
\def\cite{\@ifnextchar [{\@tempswatrue\@citexasnoun}
|
|
{\@tempswafalse\@citexasnoun[]}
|
|
}
|
|
\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 b@\@citeb\endcsname\@hysep\csname bhy@\@citeb\endcsname}%
|
|
\global\@enamedef{b@\@citeb}{\csname bha@\@citeb\endcsname}}%
|
|
}}{#1}}
|
|
|
|
\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 b@#2\endcsname\ [\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{}\@cite{\@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{;}%
|
|
\let\@hysep\hysep@agsm \let\@hisep\hisep@agsm
|
|
\def\citationstyle#1{%
|
|
\global\@namedef{@hysep}{\csname hysep@#1\endcsname}%
|
|
\global\@namedef{@hisep}{\csname hisep@#1\endcsname}}
|
|
|
|
%DEFAULT DEFINITIONS
|
|
\def\@cite#1#2{({#1\if@tempswa , #2\fi})}
|
|
\def\@citeasnoun#1#2{{#1\if@tempswa , #2\fi]}}
|
|
\def\@citename#1#2{{#1\if@tempswa \ (#2)\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{
|
|
\def\@tempa{#2}\expandafter
|
|
\ifx \csname bhf@#1\endcsname \@tempa
|
|
\def\@tempa{#3}\expandafter
|
|
\ifx \csname bha@#1\endcsname \@tempa
|
|
\else \@tempswatrue
|
|
\fi
|
|
\else
|
|
\@tempswatrue
|
|
\fi
|
|
}
|
|
|
|
% |