\citet{} 中为小写,\citep{} 中为大写

\citet{} 中为小写,\citep{} 中为大写

我所在研究所的格式标准要求引用文献中的作者姓名\citet{}首字母大写,而在 中\citep{},所有字母都应大写。

例如:\citet{Wooldridge2002}应该给Wooldridge(2002)\citep{Wooldridge2002}应该给(WOOLDRIDGE, 2002)

我该如何实现呢?我尝试了一种简单的解决方案\MakeUppercase,但没有奏效。请参见示例(从我们的样式生成的\bibitem中提取):.bbl.bib

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{natbib}

\begin{document}
  I want the first letter of author's name in uppercase here: \citet{Wooldridge2002} (ok).

  I want all letters of author's name in uppercase here: \MakeUppercase\expandafter{\citep{Wooldridge2002}} (not ok).

  \begin{thebibliography}{9}
  \bibitem[Wooldridge(2002)WOOLDRIDGE]{Wooldridge2002} WOOLDRIDGE, M.~J\@.
  \textbf{An Introduction to Multiagent Systems}. Chichester: John Wiley \&
  Sons, 2002.
  \end{thebibliography}
\end{document}

编辑:我重新措辞了代码中的段落以更好地反映我的意图。

答案1

您可以在序言中添加

\makeatletter
\DeclareRobustCommand\citep
   {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@partrue
         \@ifstar{\scshape\NAT@fulltrue\NAT@citetp}{\scshape\NAT@fullfalse\NAT@citetp}}
\makeatother

它只是重新定义了\citep命令,并附加了\scshape大写字母的作者姓名。

相关内容