Citando con En Dash
A volte ho bisogno di scrivere uno stimatore di Newey-West (1987) piuttosto che uno stimatore di Newey e West (1987) come segue.
\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}
In questo modo, posso citare un articolo con i nomi degli autori collegati tramite un trattino?
Risposte
Se lo stile della tua bibliografia supporta un delimitatore di nome personalizzabile, sarebbe facile come modificare localmente questo delimitatore. Sfortunatamente, non tutti i .bstfile supportano un delimitatore di nome personalizzabile, molti si limitano a codificare "e".
Il passaggio 1 consiste apalikenell'utilizzare un delimitatore personalizzabile nelle citazioni. A questa fine
Individua
apalike.bstsulla tua macchina. Puoi farlo digitandokpsewhich apalike.bstnella riga di comando / terminale. In alternativa, ottenere una copia del file da CTANhttp://mirrors.ctan.org/biblio/bibtex/base/apalike.bstCopia il file in una posizione in cui TeX possa trovarlo. La directory dei documenti andrà bene. Guarda anchehttps://texfaq.org/FAQ-inst-wlcf
Rinomina il file in
apalike-namedelim.bst, ad esempio (la licenza diapalike.bstrichiede di cambiare il nome se modifichi il file)Trova
FUNCTION {format.lab.names}(ll. 841-587) e sostituisci la definizione completa della funzione conFUNCTION {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$ }Aggiungi un commento con il tuo nome, la data corrente e una breve descrizione delle modifiche all'inizio del file.
Usa
\bibliographystyle{apalike-namedelim}invece che\bibliographystyle{apalike}nel tuo documento.
In alternativa ai passaggi da 1 a 5 è possibile ottenere la versione con patch del file all'indirizzo https://gist.github.com/moewew/1808df0569958a79ce5058b133495260
Il passaggio 2 consiste nell'utilizzare la macro personalizzabile nei nuovi comandi che definiamo allo scopo di citarli con trattini. Copiamo semplicemente le definizioni di \citete \citeauthorda natbib.stye inseriamo del codice da modificare \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}
Questo genere di cose è un po 'più semplice con 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}
Poiché si utilizza il natbibpacchetto di gestione delle citazioni, è possibile utilizzarne \defcitealiase le \citetaliasmacro per raggiungere il proprio obiettivo di formattazione.
\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}