Mengutip dengan En Dash
Kadang-kadang saya perlu menulis estimator Newey-West (1987) daripada estimator Newey dan West (1987) sebagai berikut.
\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}
Dengan cara ini, dapatkah saya mengutip makalah dengan nama penulis yang dihubungkan melalui tanda hubung en?
Jawaban
Jika gaya bibliografi Anda mendukung pemisah nama yang dapat disesuaikan, maka ini semudah mengubah pemisah ini secara lokal. Sayangnya, tidak semua .bstfile mendukung pemisah nama yang dapat disesuaikan, banyak yang hanya melakukan hard-code "dan".
Langkah 1 adalah apalikemenggunakan pembatas yang dapat disesuaikan dalam kutipan. Untuk akhir ini
Temukan
apalike.bstdi mesin Anda. Anda dapat melakukan ini dengan mengetikkpsewhich apalike.bstdi baris perintah / terminal. Atau, dapatkan salinan file dari CTANhttp://mirrors.ctan.org/biblio/bibtex/base/apalike.bstSalin file ke lokasi tempat TeX dapat menemukannya. Direktori dokumen akan berfungsi dengan baik. Lihat jugahttps://texfaq.org/FAQ-inst-wlcf
Ubah nama file menjadi
apalike-namedelim.bst, katakanlah (lisensiapalike.bstmengharuskan Anda mengubah nama jika Anda memodifikasi file)Temukan
FUNCTION {format.lab.names}(ll. 841-587) dan ganti definisi fungsi lengkap denganFUNCTION {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$ }Tambahkan komentar dengan nama Anda, tanggal sekarang, dan deskripsi singkat tentang perubahan di bagian atas file.
Gunakan
\bibliographystyle{apalike-namedelim}sebagai pengganti\bibliographystyle{apalike}di dokumen Anda.
Sebagai alternatif untuk langkah 1 hingga 5, Anda dapat memperoleh file versi patch di https://gist.github.com/moewew/1808df0569958a79ce5058b133495260
Langkah 2 adalah menggunakan makro yang dapat disesuaikan dalam perintah baru yang kita tentukan untuk tujuan mengutip dengan tanda hubung en. Kami hanya menyalin definisi dari \citetdan \citeauthordari natbib.stydan memasukkan beberapa kode untuk diubah \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}
Hal-hal semacam ini sedikit lebih sederhana 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}
Karena Anda menggunakan natbibpaket manajemen kutipan, Anda dapat menggunakan \defcitealiasdan \citetaliasmakronya untuk mencapai tujuan pemformatan Anda.
\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}