我所在研究所的格式标准要求引用文献中的作者姓名\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
大写字母的作者姓名。