如何更改特定句子的引用样式?

如何更改特定句子的引用样式?

当我在句首引用时,我有一种引用风格,但当我在句末引用时,我有一种引用风格。

我正在使用的类具有\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}

代码输出

相关内容