如何使用 \citet 以小写字母引用作者?

如何使用 \citet 以小写字母引用作者?

我跟着Natbib 参考表并按\citet预期工作。我希望作者的名字以小写字母显示,我该怎么做?

我想我应该这样做:

定义\citenumfont为字体声明或命令,如 \itshape或 [...] \textit

但我不知道这是什么意思。

在你点赞 lockstep 的答案之前:它不起作用,作者的名字不是小写,renew 命令无效。他的示例代码无法像现在这样编译。

更新:这是一个最小工作示例。

smallcap.tex

\documentclass[fleqn]{article}
\usepackage[numbers]{natbib}
\makeatletter
%\renewcommand*{\NAT@nmfmt}[1]{\textsc{#1}}
\def\NAT@nmfmt#1{\textsc{#1}}
\makeatother
\begin{document}
As mentioned in \citet{Biegler97}~\dots
\bibliographystyle{plainnat}
\bibliography{dummy}
\end{document}

虚拟文件

@BOOK{biegler97,
  AUTHOR = {Lorenz T. Biegler and Ignacio E. Grossmann and Arthur W. Westerberg},
  TITLE = {Systematic Methods of Chemical Process Design},
  YEAR = {1997},
  PUBLISHER = {Prentice Hall PTR, Upper Saddle River, NJ}
}

答案1

使用此numbers选项,补丁会稍微复杂一些:

\usepackage{etoolbox}
\makeatletter
\patchcmd{\NAT@test}{\else\NAT@nm}{\else\NAT@nmfmt{\NAT@nm}}{}{}
\let\NAT@up\scshape
\makeatother

显然纳特比布作者忘记\NAT@nmfmt在相关地点申请\NAT@test

为了得到et al.罗马字体,

\usepackage{etoolbox,xstring}
\makeatletter
\patchcmd{\NAT@test}{\else\NAT@nm}{\else\NAT@nmfmt{\NAT@nm}}{}{}
\renewcommand{\NAT@nmfmt}{\expandafter\aliNAT@nmfmt\expandafter}
\newcommand\aliNAT@nmfmt[1]{{%
  \noexpandarg
  \def~{}%
  \edef\temp#1\edef\temp{\detokenize\expandafter{\temp}}%
  \begingroup\edef\x{\endgroup
    \noexpand\StrSubstitute{\temp}{\detokenize{etal}}}\x
    {\textnormal{et\nobreakspace al}}[\tempa]%
  \textsc{\tempa}}}
\makeatother

答案2

要用小写字母引用作者,不是创建新.bst文件是必要的——而是重新定义\NAT@nmfmt负责格式化作者姓名的宏。(见回答其他应用领域的问题\NAT@nmfmt。)

\documentclass{article}

\usepackage{natbib}

\makeatletter
\renewcommand*{\NAT@nmfmt}[1]{\textsc{#1}}
\makeatother

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
  author = {Blinder, Alan S.},
  year = {1974},
  title = {The economics of brushing teeth},
  journal = {Journal of Political Economy},
  volume = {82},
  number = {4},
  pages = {887--891},
}
\end{filecontents}

\begin{document}

As mentioned in \citet[99]{Bli74}~\dots

\bibliographystyle{plainnat}
\bibliography{\jobname}

\end{document}

在此处输入图片描述

答案3

摘自手册第 15 页natbib

数字引用可能以不同的字体打印。定义 \citenumfont为字体声明,如\itshape或甚至采用参数的命令,如\textit.[命令] ...比自动添加斜体校正\renewcommand{\citenumfont}[1]{\textit{#1}}更好。\itshape

因此,更改\citenumfont不会影响 LaTeX 用于排版引文或参考书目中的作者姓名的字体。为此,您需要创建一个参考书目样式文件(扩展名.bst),可能从头开始。查看文件makebst.tex(顺便说一下,由软件包的作者创建natbib)。它可以在 TeX 或 LaTeX 下运行;运行它时,它会询问您很多关于所需参考书目样式的问题(带有预定义的答案选项)——包括一些关于作者姓名特殊字体的问题——然后使用此信息构建一个 .bst 文件。

附录:正如 @lockstep 在他的回答和对我的回答的评论中所指出的那样,如果你只想在引文,则不一定需要创建新.bst文件:可以重新定义\NAT@nmfmt宏。但是,如果希望作者和编辑者的名字在文件中以小写字母排版,则仍必须创建新的 .bst 文件参考书目部分还有——你必须记住插入如下指令

\makeatletter
\def\NAT@nmfmt#1{\textsc{#1}}
\makeatother

从现在起,您编写的每篇文档的前言中都应包含此引用格式。您不妨直接告诉程序makebst.tex这个偏好,然后一劳永逸地完成它,对吗?

相关内容