summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/economic/harvard.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/economic/harvard.sty')
-rw-r--r--Master/texmf-dist/tex/latex/economic/harvard.sty104
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
+}
+