当我的参考书目中的条目有两位以上的作者时,由于某种原因,在姓名列表中会出现一个看似多余的空格,而
A. One, A. Two, and A. Three
不是
A. One, A. Two, and A. Three
我认为应该出现的样子。
我正在使用 revtex,并在 ShareLatex 中编辑。这是我在下面的 MWE 生成的 pdf 中看到的内容,您可以在参考文献 [3] 中看到额外的空间:
MWE TeX:
\documentclass[reprint,aps]{revtex4-1}
\begin{document}
Lorem ipsum~\cite{article1,article2,article3}.
\bibliographystyle{apsrev4-1}
\bibliography{name}
\end{document}
.bib 文件:
@article{article1,
title = {Title},
volume = {1},
journal = {Journal Title},
author = {One, Author},
year = {2000}}
@article{article2,
title = {Title},
volume = {1},
journal = {Journal Title},
author = {One, Author and Two, Author},
year = {2000}}
@article{article3,
title = {Title},
volume = {1},
journal = {Journal Title},
author = {One, Author and Two, Author and Three, Author},
year = {2000}}
任何帮助都将非常有帮助,谢谢!
答案1
这似乎是.bst
文件中的一个错误,请联系 REVTeX 包的维护者,https://journals.aps.org/revtex。
问题在于,文件在两个函数和中.bst
插入空格,而\
不是。在这些情况下,两个连续的空格不会像正常情况那样连成一个。顺便说一句,样式在函数中正确处理了这个问题。format.names
format.names.ed
format.full.names
要解决此问题,您必须.bst
直接修改。如果您向期刊提交,则可能会出现问题,具体取决于他们的工作流程。
apsrev4-1.bst
在您的机器上找到。您可以通过kpsewhich apsrev4-1.bst
在命令行/终端中输入来执行此操作。或者,从 CTAN 获取该文件的副本http://mirrors.ctan.org/macros/latex/contrib/revtex/bibtex/bst/revtex/apsrev4-1.bst- 将文件复制到 TeX 可以找到的位置。文档目录就可以了。另请参阅https://www.tex.ac.uk/FAQ-inst-wlcf.html
- 将文件重命名为
apsrev4-1-nospace.bst
(许可证apsrev4-1.bst
强烈建议您在修改文件时更改名称) 打开文件并找到函数
FUNCTION {format.names}
(在我的版本中为 ll.1541-1579)并将整个块替换为FUNCTION {format.names} { 'bibinfo := duplicate$ empty$ { pop$ "" } { duplicate$ num.names$ duplicate$ 'numnames := 'namesleft := 's := #1 'nameptr := "" { namesleft #0 > } { format.names.morfont bibinfo bibinfo.check type$ "presentation" = 'check.speaker 'skip$ if$ 't := nameptr #1 > not { t * } { namesleft #1 > { names.punctuate t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * bbl.etal emphasize * } { bbl.and space.word * t * } if$ } if$ } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } if$ }
唯一的变化是在第 1573 行( 之后的行
numnames #2 >
),我们将其替换'names.punctuate
为{ "," * }
。这只会插入逗号,而不是逗号和空格。对 (ll. 1695-1746) 执行相同操作
FUNCTION {format.names.ed}
。应将其替换为FUNCTION {format.names.ed} { control.editor #0 > { format.names } { 'bibinfo := duplicate$ empty$ 'skip$ { 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { format.names.ed.morfont bibinfo bibinfo.check 't := nameptr #1 > { namesleft #1 > { names.punctuate t * }{ s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * bbl.etal emphasize * }{ bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } if$ } if$ }
再次,变化发生在之后的行中
numnames #2 >
,即第 1724 行,其中'names.punctuate
被替换为{ "," * }
。在文件顶部的注释中添加您的姓名和日期并解释修改。
在您的文档中使用
\bibliographystyle{apsrev4-1-nospace}
而不是。\bibliographystyle{apsrev4-1}