删除 IEEEtranSN 书目中书名和出版商之间的空格

删除 IEEEtranSN 书目中书名和出版商之间的空格

我正在使用natbibbibtex参考书目样式IEEEtranSN。使用book参考书目条目时,书名和出版商之间似乎插入了一些额外的空格。有没有办法删除这些额外的空格?

在我的文档中,我使用了该字体\usepackage{newtxtext},它看起来是这样的:

在此处输入图片描述

平均能量损失

\documentclass[12pt,a4paper]{report}
\usepackage[round]{natbib} 
\usepackage{filecontents}
\usepackage{newtxtext}

\begin{filecontents}{\jobname.bib}
@book{examplebook,
  author = {Author, A.},
  year = {2017},
  title = {Title},
  publisher = {Publisher},
}
@article{examplearticle,
  author = {Author, B.},
  year = {2018},
  title = {Title},
  journal = {Journal of X},
}
\end{filecontents}

\begin{document}

\citet{examplebook} \citet{examplearticle}

\bibliographystyle{IEEEtranSN}
\bibliography{\jobname}

\end{document}

更新

经过一番挖掘,我们发现这正是此书目样式的预期行为。从如何使用 IEEEtran BIBTEX 样式

在此处输入图片描述

但是,我的问题仍然存在。我该如何删除这些额外的空间?我不知道使用这种精确的书目样式,因此如果有完全相同的不包含额外空间的替代风格我也会欢迎。

答案1

这似乎是故意的。事实上,在第 232-234 行中,IEEETranSN.bst我们发现

% This is the LaTeX spacer that is used when a larger than normal space
% is called for (such as just before the address:publisher).
FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " }

如果你必须使用IEEETranSN.bst 删除空格,请按照以下步骤操作。

  1. IEEEtranSN.bst在您的机器上找到。您可以通过kpsewhich IEEEtranSN.bst在命令行/终端中输入来执行此操作。或者,从 CTAN 获取该文件的副本http://mirrors.ctan.org/macros/latex/contrib/IEEEtran/bibtex/IEEEtranSN.bst
  2. 将文件复制到 TeX 可以找到的位置。文档目录就可以了。另请参阅https://texfaq.org/FAQ-inst-wlcf
  3. 将文件重命名为IEEEtranSN-normspace.bst(许可证IEEEtranSN.bst强烈建议您在修改文件时更改名称)
  4. 打开文件并找到

    FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " }
    

    在第234行。

    将该行更改为

    FUNCTION {large.space} { " " }
    
  5. 在文件顶部的注释中添加您的姓名和日期并解释修改。

  6. 在您的文档中使用\bibliographystyle{IEEEtranSN-normspace}而不是。\bibliographystyle{IEEEtranSN}

相关内容