关于 bibtex 的 Revtex 警告

关于 bibtex 的 Revtex 警告

每次使用 revtex4-1 对文件运行 bibtex 时,我都会收到警告。我意识到这只是一个警告,可以忽略,但我的自动编译方案 (emacs) 抱怨每次都会出现警告,所以我真的很想摆脱它。警告是

Warning--jnrlst (dependency: not reversed) set 1

这种情况甚至发生在 revtex 提供的文件作为示例中,但我已将其缩减为(几乎)最小的工作示例 SimpleTex.tex

\documentclass[aps,prd,10pt]{revtex4-1}
\begin{document}
Refer to Ref.~\cite{ArticleKey}.
%\bibliographystyle{apsrev4-1}
\bibliography{SimpleBib}
\end{document}

并且SimpleBib.bib

@Article{ArticleKey,
  title =    {Cited work},
  journal =  "Awesomeness",
  author =   {Annie Author},
  year =     1999
}

然后,latex SimpleTex紧接着bibtex SimpleTex出现了警告。有趣的是,它似乎使用了apsrev4-1.bst。但是通过明确给出 bibliographystyle(取消注释中的行SimpleTex.tex),警告就消失了。

只使用该\bibliographystyle语句是否安全?知道为什么这样做有效吗?

答案1

事实上,这只是一个警告,你应该忽略它。你可以安排包含SimpleTexNotes.bib控制线来让它消失:

@CONTROL{REVTEX41Control}
@CONTROL{apsrev41Control,author="48",editor="1",pages="0",title="",year="1"}

而不是author="8"之前所在的行。这明确激活了它,jnrlst而不是将其设置为依赖项。例如,您可以sed在运行 bibtex 之前让您的构建过程运行SimpleTexNotes.bib。使用 bibliographystyle 会导致 revtex 不会将\citation{REVTEX41Control} \citation{apsrev41Control}行发送到辅助文件,因为非 revtex bst 文件将无法理解这些行。在这种特殊情况下,revtex4-1.bst 默认为@CONTROL{apsrev41Control,author="48",editor="1",pages="0",title="",year="1"}所需的正确设置,但在其他情况下,它可能不会按您的意愿执行。例如,将选项添加longbibliography\documentclass{revtex4-1}行将不会产生任何效果。

答案2

截至 2019 年底(REVTeX 4.2c),这仍然是一个问题。我仍然发现唯一合理的解决方案是在命令\bibliographystyle{apsrev4-2} 前添加\bibliography

一般来说,\bibliographystyle给定的应该与 REVTeX 根据类选项使用的样式相匹配:(apsrev4-2默认、大多数aps)、apsrmp4-2aps,rmp)、aipnum4-2aip数字样式)、aipauth4-2aip作者年份样式)、aapmrev4-2aapm)。

.bst您还可以在 BibTeX 日志中检查所选的 REVTeX :

This is BibTeX, Version 0.99d (TeX Live 2022)
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
The top-level auxiliary file: output.aux
The style file: apsrev4-2.bst

相关内容