Zitieren mit En Dash

Oct 31 2020

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

3 moewe Oct 31 2020 at 18:54

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

  1. Suchen Sie apalike.bstauf Ihrem Computer. Sie können dies tun, indem Sie kpsewhich apalike.bstin die Befehlszeile / das Terminal eingeben . Alternativ erhalten Sie eine Kopie der Datei von CTANhttp://mirrors.ctan.org/biblio/bibtex/base/apalike.bst

  2. Kopieren Sie die Datei an einen Ort, an dem TeX sie finden kann. Das Dokumentverzeichnis reicht aus. Siehe auchhttps://texfaq.org/FAQ-inst-wlcf

  3. Benennen Sie die Datei beispielsweise in um apalike-namedelim.bst(die Lizenz von apalike.bsterfordert, dass Sie den Namen ändern, wenn Sie die Datei ändern).

  4. Suchen Sie FUNCTION {format.lab.names}(ll. 841-587) und ersetzen Sie die vollständige Funktionsdefinition durch

     FUNCTION {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$
     }
    
  5. Fügen Sie einen Kommentar mit Ihrem Namen, dem aktuellen Datum und einer kurzen Beschreibung der Änderungen oben in der Datei hinzu.

  6. 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}
2 Mico Oct 31 2020 at 18:25

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}