我正在为有关 的问题整理 MWE biblatex
,在此过程中,我不明白为什么这个简单的 MWE 会失败。运行 时biber
,我收到消息。我在 texlive 2022 中WARN - I didn't find a database entry for 'smith1983' (section 0)
运行v.2.17。biber
\documentclass{article}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{smith1983,
AUTHOR = "Harry Smith",
TITLE = "My second book",
YEAR = "1983"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{smith1983}
\printbibliography
\end{document}
答案1
filecontents
内核中存在的旧环境已在一段时间前得到改进,因此filecontents
软件包目前将控制权移交给内核。但是,内核的filecontents
环境与软件包之前提供的环境略有不同,因为它默认不会覆盖文件。如果要覆盖文件,则必须传递可选参数overwrite
或force
。而且您不再需要加载软件包filecontents
(可能“不应该”,无论如何不这样做会消除警告)。
\documentclass{article}
\usepackage{biblatex}
\begin{filecontents}[overwrite]{\jobname.bib}
@book{smith1983,
AUTHOR = "Harry Smith",
TITLE = "My second book",
YEAR = "1983"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{smith1983}
\printbibliography
\end{document}