![如何使用 IEEEtranN 删除 natbib 书目作者列表中的牛津逗号?](https://linux22.com/image/475539/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20IEEEtranN%20%E5%88%A0%E9%99%A4%20natbib%20%E4%B9%A6%E7%9B%AE%E4%BD%9C%E8%80%85%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E7%89%9B%E6%B4%A5%E9%80%97%E5%8F%B7%EF%BC%9F.png)
如何删除“S. Author”后面的牛津逗号?我查看了IEEEtranN.bst
,但不知道逗号加在哪里。我没有使用 babel,因为它似乎与某些数学包冲突。
一位 MWE 表示:
% LuaLaTeX + BibTeX
\documentclass{memoir}
\usepackage[numbers,sort&compress]{natbib}
\bibliographystyle{IEEEtranN}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{c,
title={Title},
author={Author, First and Author, Second and Author, Third},
journal={Journal}
}
\end{filecontents}
\begin{document}
\cite{c}
\bibliography{\jobname}
\end{document}
答案1
我建议您按如下方式进行:
- 在您的 TeX 发行版中找到该文件
IEEEtranN.bst
。复制此文件并将副本命名为 ,IEEEtranN-noc.bst
其中noc
是“无牛津逗号”的缩写。(不要直接编辑 TeX 发行版的原始文件。) - 用你喜欢的文本编辑器打开文件
IEEEtranN-noc.bst
。你用来编辑 tex 文件的程序就可以了。 - 在 bst 文件中,找到函数
format.names
。在我的 bst 文件副本中,该函数从第 1256 行开始。 - 在此函数中,找到由字符串组成的行
{ "," * }
(可能在第 1290 行)。将此字符串更改为{ skip$ }
。 - 保存 bst 文件并将其存储在包含主 tex 文件的目录中或 BibTeX 搜索的目录中。如果选择后者,请确保也更新 TeX 的文件名数据库。如果您不知道前面这句话的意思,我建议您选择前一个选项。
- 在您的主 tex 文件中,更改
\bibliographystyle{IEEEtranN}
为\bibliographystyle{IEEEtranN-noc}
并执行完整的重新编译循环:LaTeX、BibTeX,然后再执行两次 LaTeX。
祝您 BibTeX 愉快!
\documentclass{memoir}
\usepackage[numbers,sort&compress]{natbib}
\bibliographystyle{IEEEtranN-mod}
%%\usepackage{filecontents} % not needed
\begin{filecontents}[overwrite]{\jobname.bib}
@article{c,
title ={Title},
author ={Author, First and Author, Second and Author, Third},
journal={Journal},
year = 3001,
}
\end{filecontents}
\begin{document}
\cite{c}
\bibliography{\jobname}
\end{document}
答案2
如果您可以切换到biblatex
:
\begin{filecontents}{\jobname.bib}
@article{c,
title={Title},
author={Author, First and Author, Second and Author, Third},
journal={Journal},
year={2024},
}
\end{filecontents}
\documentclass{article}
\usepackage[style=ieee]{biblatex}
\addbibresource{\jobname.bib}
\DefineBibliographyExtras{english}{\def\finalandcomma{}}
\begin{document}
\cite{c}
\printbibliography
\end{document}