使用 biblatex (作者年份样式) 时无法打印符号 @

使用 biblatex (作者年份样式) 时无法打印符号 @

我使用的是 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}但是文档总是指定要提供的扩展,所以也许最近的代码清理收紧了要求。

相关内容