natbibapa 和 \shortcite 的問題

natbibapa 和 \shortcite 的問題
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@article{c,
  author  = "Anne Author and Bert Buthor and Carla Cuthor",
  title   = "Final Thoughts",
  journal = "Circularity Today",
  year    = 3009,
  volume  = 9,
  number  = 10,
  pages   = "11--12",
}
\end{filecontents}
\documentclass{article}
\usepackage[natbibapa]{apacite}
\begin{document}
\citet{c} says something.

\bibliographystyle{apacite}
\bibliography{mybib}
\end{document} 

在我的論文中,我需要引用作者的姓名和年份,所以我使用 natbib。但對於兩個以上的作者,我希望只顯示名字,後面跟著 et.al。但是,由於我使用 natbib,因此無法使用 \shortcite 。有其他方法可以解決這個問題嗎?

答案1

該聲明,

我需要引用作者的姓名和年份,因此我使用 [natbibapa 選項]

包含一個不合邏輯的推論:可以輕鬆創建作者年份風格的引文標註沒有指定natbibapa選項。只需使用\citeA代替\citet\cite代替\citepapacite有關詳細信息,請參閱軟體包使用者指南的第 4.1 節“經典 apacite 命令” 。

透過此設置,使用\shortciteA\shortcite產生文字樣式和括號樣式的引文標註以及截斷的作者清單完全沒有問題。


在此輸入影像描述

\documentclass{article}
\begin{filecontents}[overwrite]{mybib.bib}
@article{c,
  author  = "Anne Author and Bert Buthor and Carla Cuthor",
  title   = "Final Thoughts",
  journal = "Circularity Today",
  year    = 3009,
  volume  = 9,
  number  = 10,
  pages   = "11--12",
}
\end{filecontents}
\usepackage{apacite}
\bibliographystyle{apacite}

\begin{document}
\shortciteA{c} says something.
\bibliography{mybib}
\end{document}

答案2

APA 風格(第六版,實施)的一個特點是,apacite在第一次引用時完整給出三到五位作者的列表,並且僅作為第一作者+“等人”。在隨後的引用中。

對於一次性事件apacite定義命令來覆蓋它,例如\shortcite.


apacite如果您與 一起使用,natbibapa則告訴您apacite將對引文命令的部分控制權交給natbib,這意味著apacite通常定義的一些專業引文命令不再可用。其中之一是\shortcite

apacite文件說(§4.2用於natbib引用,p。 15)

透過在命令後添加星號可以獲得完整的作者列表,例如\citet*{key}。短作者列表沒有單獨的命令,但可以透過構造獲得\shortcites{key}\citet{key}

所以一種選擇是說

\shortcites{c}\citet{c}

你第一次引用c。後續引用將縮寫為第一作者+“等人”。反正。但當然,這非常乏味、容易出錯,而且整體感覺不太對勁。

apacite但是我們上面引用的手冊部分包含更多信息

使用natbibapa選項,apacite載入natbib選項longnamesfirstsort

因此,natbibapa借助該選項,我們可以在第一次引用時獲得長長的作者清單longnamesfirst。如果我們可以關閉該選項,我們就可以恢復正常工作。

不幸的是,natbib沒有提供關閉此選項的介面。一旦natbib加載,longnamesfirst就無法將其關閉。所以我們必須求助於內部命令。此選項將一個名為NAT@longnamestrue 的內部布林值設為 true,因此我們將其設為 false。

\documentclass{article}
\usepackage[natbibapa]{apacite}
\makeatletter
\NAT@longnamesfalse
\makeatother

\begin{filecontents}{\jobname.bib}
@article{c,
  author  = {Anne Author and Bert Buthor and Carla Cuthor},
  title   = {Final Thoughts},
  journal = {Circularity Today},
  year    = 3009,
  volume  = 9,
  number  = 10,
  pages   = {11--12},
}
\end{filecontents}


\begin{document}
\citet{c} says something.

\citet{c} says something.

\bibliographystyle{apacite}
\bibliography{\jobname}
\end{document} 

作者等人。 (3009)說了些什麼。 (3009) 說了些什麼。


如果您正在尋找相同問題的答案但沒有選項natbibapa(即使用apaciteclassic),我能找到的最簡單的答案就是說

\let\cite\shortcite
\let\citeA\shortciteA
\let\citeNP\shortciteNP
\let\citeauthor\shortciteauthor
\let\citeauthorNP\shortciteauthorNP

\let\maskcite\maskshortcite
\let\maskciteA\maskshortciteA
\let\maskciteNP\maskshortciteNP
\let\maskciteauthor\maskshortciteauthor
\let\maskciteauthorNP\maskshortciteauthorNP

相關內容