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

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

我跟著Natbib 參考表並按\citet預期工作。我希望作者的名字以小寫字母顯示,我該怎麼做?

我想我應該這樣做:

定義\citenumfont為字體聲明或命令,例如 \itshape或 [...] \textit

但我不知道這意味著什麼。

在你支持 Lockstep 的答案之前:它不起作用,作者姓名不是小寫字母,renew指令沒有效果。他的範例程式碼無法像現在一樣編譯。

更新:這是一個最小的工作範例。

小寫字母文本

\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.[The command] ... 比它自動添加斜體校正\renewcommand{\citenumfont}[1]{\textit{#1}}要好。\itshape

因此,更改\citenumfont不會影響 LaTeX 在引文或參考書目中排版作者姓名時使用的字體。為此,您需要建立參考書目樣式檔案(副檔名.bst),可能從頭開始。看一下文件makebst.texnatbib(順便說一下,由包的作者創建)。它可以在 TeX 或 LaTeX 下運行;當你運行它時,它會問你很多關於所需參考書目風格的問題(帶有預定義的答案選項)——包括一些關於作者姓名的特殊字體——然後用這些信息構建一個 .bst 文件。

附錄:正如 @lockstep 在他的回答和對我的回答的評論中指出的那樣,如果您只想使用小型大寫字母作為作者/編輯的姓名引文,建立新檔案並不是絕對必要的.bst:相反,可以重新定義\NAT@nmfmt巨集。但是,如果您希望將作者和編輯的姓名以小型大寫字母排版在參考書目部分還有——你必須記住插入指令,例如

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

從現在開始,在您編寫的每份文件的序言中都採用這種引文格式。您不妨簡單地告訴makebst.tex程式這個偏好,然後一勞永逸地完成它,對嗎?

相關內容