我尝试在使用 a 之前添加一个 eg,\citeasnoun
但没有效果。
如果我这样使用,\citeasnoun[e.g.][]{Hernandez2009}
它会在 pdf 中显示为 Hernandez et al. (例如 2009)。
尽管如此,如果我只使用,\cite
它就可以完美地工作。例如,\cite[e.g.][]{Hernandez2009}
=\cite[e.g.][]{Hernandez2009}
我该怎么办?谢谢
答案1
我假设您正在使用harvard
引文管理包及其一些宏来生成引文标注。(仅针对可能更熟悉引文管理包的本文读者natbib
:宏和natbib
的等效项分别是和。)harvard
\cite
\citeasnoun
\citep
\citet
在我看来,试图让第一个可选参数\citeasnoun
非空是没有什么好处的。(\citet
顺便说一句,同样适用于。)如果你真的需要在文本样式的引用标注前添加一些前缀,只需写
... e.g., \citeasnoun{herandez2009}, ...
即放置字符串“eg”,前及外部\citeasnoun
。
MWE:
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{hernandez2009,
author = "Ana Hernandez and A. BCD and E. FGH",
title = "Deep Thoughts",
year = "2009",
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib,har2nat} % 'har2nat' translates harvard macros to natbib speak
\bibliographystyle{agsm} % just a guess...
\begin{document}
good:
\cite[e.g.,][p.~29]{hernandez2009}
\citep[e.g.,][p.~29]{hernandez2009}
\bigskip
bad:
\dots, \citeasnoun[e.g.,][p.~29]{hernandez2009}, \dots
\dots, \citet[e.g.,][p.~29]{hernandez2009}, \dots
\bigskip
do this instead:
\dots, e.g., \citeasnoun[p.~29]{hernandez2009}, \dots
\dots, e.g., \citet[p.~29]{hernandez2009}, \dots
\bibliography{mybib}
\end{document}