
我跟著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
程式這個偏好,然後一勞永逸地完成它,對嗎?