当我在句首引用时,我有一种引用风格,但当我在句末引用时,我有一种引用风格。
我正在使用的类具有\cite{}
仅包含后一种样式的命令。
我如何更改某些特定引文的引用样式?
例子:
的引用格式为\cite{kahneman1979prospect}
:
[卡尼曼和特沃斯基 1979]
但我只能在句末使用这种风格。
如果我以如下内容作为句子的开头:
“根据...”
我的引用风格应该是:
卡尼曼和特沃斯基(1979)
是否可以创建这种新样式(最好是在序言中创建一个新命令)?
我查看了一些其他类,它们已经在新的命令中实现了它,例如\citeN{}
:
\def\citeN{\def\@citeseppen{-1000}%
\def\@cite##1##2{##1\if@tempswa , ##2]\else{]}\fi}%
\def\citeauthoryear##1##2##3{##2 [##3}\@citedata}
我在当前的课程和序言中使用了上述代码。不幸的是,它仍然不起作用,但希望可以作为一个起点。
编辑:
这是一个最小的例子,针对每种情况都有正确和不正确的风格。
主文本
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{abbrvnat}
\begin{document}
\section{Citation Style I}
\begin{itemize}
\item According to \cite{kahneman1979prospect} \dots is incorrect.
\item According to \citet{kahneman1979prospect} \dots is incorrect.
\item According to Kahneman and Tversky (1979) \dots is correct.
\end{itemize}
\section{Citation Style II}
\begin{itemize}
\item This is correct \dots \citep{kahneman1979prospect}.
\item This is incorrect \dots (Kahneman and Tversky, 1979).
\end{itemize}
\bibliography{references}
\end{document}
参考文献.bib
@article{kahneman1979prospect,
title={Prospect theory: An analysis of decision under risk},
author={Kahneman, Daniel and Tversky, Amos},
journal={Econometrica: Journal of the econometric society},
pages={263--291},
year={1979},
publisher={JSTOR}
}
输出文件
答案1
这是一个快速而粗略的解决方案,natbib
它不需要您更改任何现有代码。这个想法是将常规引用设置natbib
为使用圆括号,然后重新定义为使用无括号引用,并添加您自己的方括号。\citet
\citep
\citealp
我们重新定义\citep
而不是,\citet
因为后者更有可能与其可选的页面等参数一起使用,而\citep
通常与简单的引用列表一起使用。
这是一个完整的例子:
\documentclass{article}
\begin{filecontents}{\jobname.bib}
@article{kahneman1979prospect,
title={Prospect theory: An analysis of decision under risk},
author={Kahneman, Daniel and Tversky, Amos},
journal={Econometrica: Journal of the econometric society},
pages={263--291},
year={1979},
publisher={JSTOR}
}
\end{filecontents}
\usepackage{natbib}
\bibpunct{(}{)}{,}{a}{}{;}
\bibliographystyle{abbrvnat}
\renewcommand{\citep}[1]{[\citealp{#1}]}
\begin{document}
\section{Citation Style I}
\begin{itemize}
\item According to \cite{kahneman1979prospect} \dots is now correct.
\item According to \citet{kahneman1979prospect} \dots is now correct.
\item According to Kahneman and Tversky (1979) \dots is correct.
\end{itemize}
\section{Citation Style II}
\begin{itemize}
\item This is now correct \dots \citep{kahneman1979prospect}.
\item This is incorrect \dots (Kahneman and Tversky, 1979).
\end{itemize}
\bibliography{\jobname}
\end{document}