Zitieren mit En Dash
Manchmal muss ich einen Newey-West-Schätzer (1987) anstelle des Newey-West-Schätzers (1987) wie folgt schreiben .
\documentclass{article}
\usepackage{filecontents,natbib}
\begin{filecontents}{z.bib}
@article{newey1987simple,
title={A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation},
author={Newey, Whitney K and West, Kenneth D},
journal={Econometrica},
volume={55},
number={3},
pages={703--708},
year={1987}
}
\end{filecontents}
\bibliographystyle{apalike}
\begin{document}
\citeauthor{newey1987simple}'s \citeyearpar{newey1987simple} estimator.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Newey--West (1987) estimator.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliography{z}
\end{document}
Kann ich auf diese Weise ein Papier mit Autorennamen zitieren, die über einen Bindestrich verbunden sind?
Antworten
Wenn Ihr Bibliografiestil ein anpassbares Namensbegrenzer unterstützt, ist dies so einfach wie das lokale Ändern dieses Trennzeichens. Leider unterstützen nicht alle .bstDateien einen anpassbaren Namensbegrenzer, viele codieren nur das "und" fest.
Schritt 1 besteht darin, apalikein Zitaten ein anpassbares Trennzeichen zu verwenden. Zu diesem Zweck
Suchen Sie
apalike.bstauf Ihrem Computer. Sie können dies tun, indem Siekpsewhich apalike.bstin die Befehlszeile / das Terminal eingeben . Alternativ erhalten Sie eine Kopie der Datei von CTANhttp://mirrors.ctan.org/biblio/bibtex/base/apalike.bstKopieren Sie die Datei an einen Ort, an dem TeX sie finden kann. Das Dokumentverzeichnis reicht aus. Siehe auchhttps://texfaq.org/FAQ-inst-wlcf
Benennen Sie die Datei beispielsweise in um
apalike-namedelim.bst(die Lizenz vonapalike.bsterfordert, dass Sie den Namen ändern, wenn Sie die Datei ändern).Suchen Sie
FUNCTION {format.lab.names}(ll. 841-587) und ersetzen Sie die vollständige Funktionsdefinition durchFUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ s num.names$ duplicate$ #2 > { pop$ " et~al." * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " et~al." * } { "\finalnamedelim " * s #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ }Fügen Sie einen Kommentar mit Ihrem Namen, dem aktuellen Datum und einer kurzen Beschreibung der Änderungen oben in der Datei hinzu.
Verwenden Sie
\bibliographystyle{apalike-namedelim}statt\bibliographystyle{apalike}in Ihrem Dokument.
Alternativ zu den Schritten 1 bis 5 erhalten Sie die gepatchte Version der Datei unter https://gist.github.com/moewew/1808df0569958a79ce5058b133495260
Schritt 2 besteht darin, das anpassbare Makro in neuen Befehlen zu verwenden, die wir zum Zitieren mit Bindestrichen definieren. Wir kopieren einfach die Definitionen von \citetund \citeauthorvon natbib.styund fügen Code ein, um ihn zu ändern \finalnamedelim.
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{apalike-namedelim}
\newcommand*{\finalnamedelim}{}
\DeclareRobustCommand*{\finalnamedelim}{ and }
\makeatletter
\newcommand*{\citetattr}{}
\DeclareRobustCommand\citetattr
{\begingroup
\DeclareRobustCommand*{\finalnamedelim}{--}%
\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue
\@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
\newcommand*{\citeauthorattr}{}
\DeclareRobustCommand\citeauthorattr
{\begingroup
\DeclareRobustCommand*{\finalnamedelim}{--}%
\NAT@swafalse\let\NAT@ctype\@ne\NAT@parfalse
\@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
\newcommand*{\Citetattr}{}
\DeclareRobustCommand\Citetattr
{\begingroup
\DeclareRobustCommand*{\finalnamedelim}{--}%
\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue
\let\NAT@up\NAT@Up
\@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}
\makeatother
\begin{filecontents}{\jobname.bib}
@article{newey1987simple,
title = {A Simple, Positive Semi-Definite, Heteroskedasticity
and Autocorrelation Consistent Covariance Matrix},
author = {Newey, Whitney K. and West, Kenneth D.},
journal = {Econometrica},
volume = 55,
number = 3,
pages = {703--708},
year = 1987,
}
\end{filecontents}
\begin{document}
\citeauthor{newey1987simple}'s \citeyearpar{newey1987simple} estimator.
\citetattr{newey1987simple} --- with citation alias
\bibliography{\jobname}
\end{document}
Diese Art von Dingen ist etwas einfacher biblatex.
\documentclass[british]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}
\newcommand*{\textattrcite}{%
\AtNextCite{\AtEachCitekey{\delimcontext{textattrcite}}}%
\textcite}
\DeclareDelimFormat[textattrcite]{multinamedelim}{\textendash}
\DeclareDelimAlias[textattrcite]{finalnamedelim}[textattrcite]{multinamedelim}
\begin{filecontents}{\jobname.bib}
@article{newey1987simple,
title = {A Simple, Positive Semi-Definite, Heteroskedasticity
and Autocorrelation Consistent Covariance Matrix},
author = {Newey, Whitney K. and West, Kenneth D.},
journal = {Econometrica},
volume = 55,
number = 3,
pages = {703--708},
year = 1987,
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\citeauthor{newey1987simple}'s \parencite*{newey1987simple} estimator.
\textattrcite{newey1987simple} --- with citation alias
\printbibliography
\end{document}
Da Sie das natbibCitation Management-Paket verwenden, können Sie dessen \defcitealiasund \citetaliasMakros verwenden, um Ihr Formatierungsziel zu erreichen.
\documentclass{article}
\begin{filecontents}[overwrite]{z.bib}
@article{newey1987simple,
title ={A Simple, Positive Semi-Definite, Heteroskedasticity
and Autocorrelation Consistent Covariance Matrix},
author ={Newey, Whitney K. and West, Kenneth D.},
journal={Econometrica},
volume =55,
number =3,
pages ={703--708},
year =1987,
}
\end{filecontents}
\usepackage{natbib}
\defcitealias{newey1987simple}{Newey--West (1987)}
\bibliographystyle{apalike}
\begin{document}
\setlength\parindent{0pt} % just for this example
\citeauthor{newey1987simple}'s \citeyearpar{newey1987simple} estimator.
\citetalias{newey1987simple} --- with citation alias
Newey--West (1987) --- brute force
\bibliography{z}
\end{document}