我改变了命令的字体形状\citep{}
,使所有字母都以小写字母显示,根据以下重新定义这个问题:
\makeatletter
\DeclareRobustCommand\citep
{\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@partrue
\@ifstar{\scshape\NAT@fulltrue\NAT@citetp}{\scshape\NAT@fullfalse\NAT@citetp}}
\makeatother
但是,当作者姓名采用缩写形式时,“et al.”也会以小写形式出现。但我希望“et al.”保持小写。这可以吗?我使用的是dcu
参考书目格式。
答案1
我建议您按如下方式进行:
dcu.bst
在文本编辑器中打开已修改的文件版本。在该文件中,将所有五个 [5] 个实例
et~al.
到
\textnormal{et~al.}
(
\textup{et~al.}
也有效。)保存修改后的bst文件。
重新运行 BibTeX,然后再运行 LaTeX 两次。
顺便说一句,请注意,这种在引文标注中以小写字母显示作者姓名的方法有几个明显的缺点。首先,它不能确保连接词“and”将以小写字母排版;这种情况发生在 bib 条目恰好有两个作者时。要解决这个问题,请\providecommand\harvardand{\textnormal{and}}
在 loading 后插入指令natbib
。其次,这种方法对于由 , 生成的“et al.”和“and”的情况也不起作用\citet
。第三,在使用, ,等\citet*
时,它不会以小写字母显示作者姓名。最后但并非最不重要的是,格式化的书目条目将继续以常规(即非小写)字母显示作者姓名——很可能造成作者姓名在引文标注和书目中的排版方式之间出现奇怪的差异。因此,完整的解决方案将涉及更彻底地修改书目样式文件。\citeauthor
\citealp
\citealt
dcu.bst
完整的 MWE 和相关屏幕截图:
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{ab,author="Aaa and Bbb", title="Thoughts", year=3001}
@misc{abc,author="Aaa and Bbb and Ccc", title="Thoughts", year=3002}
\end{filecontents}
\documentclass{article}
\usepackage[round,authoryear]{natbib}
\makeatletter
\DeclareRobustCommand\citep
{\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@partrue
\@ifstar{\scshape\NAT@fulltrue\NAT@citetp}%
{\scshape\NAT@fullfalse\NAT@citetp}}
\makeatother
\bibliographystyle{dcu-mod}
\providecommand\harvardand{\textnormal{and}}
\begin{document}
\citep{abc}, \citep{ab}
\bibliography{mybib}
\end{document}