每次使用 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-2
(aps,rmp
)、aipnum4-2
(aip
数字样式)、aipauth4-2
(aip
作者年份样式)、aapmrev4-2
(aapm
)。
.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