我使用的是 biblatex 作者年份样式,在我的文本中我有一个 @,但 biber 不喜欢它,而是给我如下错误:
ERROR - BibTeX subsystem: C:\Users\TEMPLE~1.000\AppData\Local
\Temp\biber_tmp_kM22\658097ff4c951e70db95e86474283432_17340.utf8, line 25,
syntax error: found "using", expected one of: start of entry ("{" or "(") or
quoted string ({...} or "...")
以下是代码。运行:步骤 1:pdflatex 步骤 2:biber 步骤 3:pdflatex。
如果删除文本中的符号@,代码就可以正常工作,我们会在最后看到参考书目。
\documentclass{book}
% to run: step1: pdflatex step 2: biber step3: pdflatex
\usepackage[style=authoryear]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{mybook,
author = { my author},
date = { 2020},
title = {my title},
publisher = {city:press},
}
\end{filecontents}
\addbibresource{\jobname}
\begin{document}
I can not print @ when using biblatex.(\textcite{mybook})
\printbibliography
\end{document}
答案1
\addbibresource
需要完整的文件名,因此您应该使用\addbibresource{\jobname.bib}
。
如果没有这个,它biber
会拾取\jobname.tex
并尝试将其用作bib
文件。显然,这不是一个有效的bib
文件,因此biber
会产生错误。特别是,biber
不喜欢这个,@
因为这个字符是用来标记bib
记录的开始的。
我有一种感觉,biblatex
过去允许\addbibresource{\jobname}
但是文档总是指定要提供的扩展,所以也许最近的代码清理收紧了要求。