我正在使用 overleaf.com 进行以下操作。
我最近写完了论文,文档中有一个 main.tex,每个章节都有一个 \input{Chapter01.tex}。到目前为止,为了方便起见,我每次只编译一章,但现在我需要编译整个文档。只有当我编译包含每个章节的完整文档时,我的大约 30 个引用才会失败,并出现错误:
您引用了参考书目中未包含的内容。请确保引用 (\cite{...}) 在您的参考书目中有对应的键,并且两者的拼写相同。
这些引文不仅肯定包含在我的 .bib 文件中,而且如果我编译单独的章节,它们也可以工作。下面我将给出第一个失败的引文的示例,我将其包含在正文中\cite{Broken}
@Article{Broken,
author = {{De Paolis}, F. and {Giordano}, M. and {Ingrosso}, G. and {Manni}, L. and {Nucita}, A. and {Strafella}, F.},
title = "{The Scales of Gravitational Lensing}",
journal = "{Universe}",
year = 2016,
month = 03,
volume = 2,
number = 1,
}
这是我正在使用的 usepackage:
\usepackage[backend=biber, style=authoryear, maxnames=1, uniquelist=false, uniquename=false]{biblatex}
我尝试按照这个问题中所说的内容使用问号或粗体引用关键字代替引用编号,但这没有帮助。我的 .blg 文件似乎没有任何问题:
[0] Config.pm:354> INFO - 这是 Biber 2.7
[0] Config.pm:357> INFO - 日志文件为“output.blg”
[41] biber:303> INFO - === 2020 年 10 月 20 日星期二 14:27:28
[76] Biber.pm:359> INFO - 正在读取‘output.bcf’
[265] Biber.pm:835> INFO - 在 bib 部分 0 中找到 258 个引用键
[291] Biber.pm:3670> INFO - 处理部分 0
[308] Biber.pm:3840> INFO - 正在查找第 0 节的 bibtex 格式文件“references.bib”
[399] bibtex.pm:1435> INFO - 将 LaTeX 字符宏解码为 UTF-8
[505] bibtex.pm:1292> INFO - 找到 BibTeX 数据源‘references.bib’
[2700] UCollate.pm:68> INFO - 使用“variable = non-ignorable”覆盖区域设置“en-US”默认值“variable = shifted”
[2701] UCollate.pm:68> INFO - 使用“normalization = prenormalized”覆盖区域设置“en-US”默认的“normalization = NFD”
[2701] Biber.pm:3499> INFO - 排序列表‘nyt/global/’,类型为‘entry’,方案为‘nyt’,语言环境为‘en-US’
[2701] Biber.pm:3505> INFO - 无法对区域设置“en-US”进行排序定制
[3227] bbl.pm:608> INFO - 使用编码“UTF-8”写入“output.bbl”
[3429] bbl.pm:712> INFO - 输出至 output.bbl
这个问题特别难以解决,因为它只在我编译完整文档时才会出现,而且这需要几分钟。
答案1
好吧,我从来没有弄清楚真正的问题,但是我通过将 biblatex 后端更改为 bibtex 而不是 biber 解决了问题。
答案2
以防其他人也遇到这个问题 - 就我的情况而言,结果是文件名中的空格导致了这个问题。其他一切都编译得很好,所以我并没有真正关注这一点,但如果引用位于标题中有空格的文本文件中,它们就不会显示出来!