En Dash ile Alıntı

Oct 31 2020

Bazen yazmak gerekir Newey-West (1987) tahmincisi yerine Newey ve batının (1987) tahmin edicisi aşağıdaki gibi.

\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}

Bu şekilde, yazar adlarının kısa çizgi ile bağlantılı olduğu bir makaleden alıntı yapabilir miyim?

Yanıtlar

3 moewe Oct 31 2020 at 18:54

Kaynakça stiliniz özelleştirilebilir bir ad sınırlayıcıyı destekliyorsa, bu sınırlayıcıyı yerel olarak değiştirmek kadar kolay olacaktır. Ne yazık ki, tüm .bstdosyalar özelleştirilebilir bir ad sınırlayıcıyı desteklemez, çoğu yalnızca "ve" yi sabit kodlar.

Adım 1, apalikealıntılarda özelleştirilebilir bir sınırlayıcı kullanmaktır. Bu amaçla

  1. apalike.bstMakinenizde bulun . Bunu kpsewhich apalike.bstkomut satırına / terminale yazarak yapabilirsiniz . Alternatif olarak, CTAN'dan dosyanın bir kopyasını alınhttp://mirrors.ctan.org/biblio/bibtex/base/apalike.bst

  2. Dosyayı TeX'in bulabileceği bir konuma kopyalayın. Belge dizini iyi olacak. Ayrıca bakınızhttps://texfaq.org/FAQ-inst-wlcf

  3. Dosyayı şu şekilde yeniden adlandırın apalike-namedelim.bst(lisansı apalike.bst, dosyayı değiştirirseniz adı değiştirmenizi gerektirir)

  4. FUNCTION {format.lab.names}(841-587. Satırlar) öğesini bulun ve tam işlev tanımını şununla değiştirin:

     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. Dosyanın üst kısmına adınız, geçerli tarih ve değişikliklerin kısa bir açıklamasını içeren bir yorum ekleyin.

  6. Belgenizde \bibliographystyle{apalike-namedelim}yerine kullanın \bibliographystyle{apalike}.

1'den 5'e kadar olan adımlara alternatif olarak dosyanın yamalı sürümünü şu adresten edinebilirsiniz: https://gist.github.com/moewew/1808df0569958a79ce5058b133495260

Adım 2, özelleştirilebilir makroyu, tireler ile alıntı yapmak amacıyla tanımladığımız yeni komutlarda kullanmaktır. Biz sadece tanımlarını kopyalamak \citetve \citeauthorgelen natbib.styve değişikliğe karşı kod enjekte \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}


Bu tür şeyler biraz daha basit 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

Eğer istihdam yana natbibatıf yönetim paketi, onun kullanabilir \defcitealiasve \citetaliassizin biçimlendirme hedefe ulaşmak için makro.

\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}