diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/economic/harvard.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/economic/harvard.sty | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/economic/harvard.sty b/Master/texmf-dist/tex/latex/economic/harvard.sty new file mode 100644 index 00000000000..32eecb689c5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/economic/harvard.sty @@ -0,0 +1,104 @@ +\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\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} +\def\citeasnoun{\@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 +} + |