我使用 TeXstudiolatexmk
作为我的默认编译器,并对命令进行了以下修改:-(
latexmk -pdf -silent -synctex=1 -pdflatex="pdflatex -shell-escape" %
用于svg
包)。
这是我的 MWE:-
\documentclass[a4paper,12pt,twoside,openright]{book}
\usepackage[backend=biber, sorting=count]{biblatex}
\DeclareCiteCommand{\supercite}[\mkbibsuperscript]
{\iffieldundef{prenote}
{}
{\BibliographyWarning{Ignoring prenote argument}}%
\iffieldundef{postnote}
{}
{\BibliographyWarning{Ignoring postnote argument}}%
\bibopenbracket}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\supercitedelim}
{\bibclosebracket}
\let\cite=\supercite
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage{cleveref}
\addbibresource{references.bib}
\begin{document}
\frontmatter
This book\supercite{ElvangBook}.
\backmatter
\printbibliography
\end{document}
和references.bib
:-
@book{ElvangBook,
author = "Elvang, Henriette and Huang, Yu-tin",
title = "{Scattering Amplitudes in Gauge Theory and Gravity}",
isbn = "978-1-316-19142-2, 978-1-107-06925-1",
publisher = "Cambridge University Press",
month = "4",
year = "2015"
}
问题是,每当我更改 .bib 文件并保存更改并运行 时latexmk
,biber 就会中断,并且我会丢失引文。要解决此问题,我必须注释掉 \addbibresource{references.bib},运行latexmk
,然后取消注释,然后latexmk
再次运行以修复引文。
这是预期的行为吗?可以做些什么来简化此工作流程?我想动态地更改我的参考文献,因此在最后进行引用对我来说是不可行的。
谢谢。
答案1
在尝试按照 moewe 的建议添加日志文件时,我注意到错误提示运行 biber。但我以为它会自动选择,latexmk
但事实并非如此。我的 TeXstudio 设置默认参考书目工具选择为 BibTeX,将其更改为 Biber 后,我的问题就解决了。
这是一个愚蠢的错误,我会将此留给未来可能遇到同样问题的用户。
谢谢。