我一直在尝试解决我收到的这个警告:
(\end occurred when \iftrue on line n was incomplete)
在哪里n始终是包含的行\begin{document}
,并且我已将所有内容删除为几行简单的行,但仍然会产生警告:
\documentclass{book}
\usepackage[backend=bibtex]{biblatex}
\bibliography{main.bib}
\title{Some Title}
\begin{document}
Nothing important. %\cite{somebibkey}
%\printbibliography
\end{document}
两个注释掉的命令对于警告没有任何影响——取消注释没有任何效果。
bib 文件中有一个格式良好的条目。注释掉该\bibliography
命令也没什么区别。
如果我添加\tracingifs=1
,我会得到一堆看起来不太有用的行(对我来说):
...
Package biblatex Info: Trying to load configuration file...
Package biblatex Info: ... file 'biblatex.cfg' found.
("C:/Users/user/AppData/Local/Programs/MiKTeX 2.9/tex/latex/biblatex/biblatex.cfg"
File: biblatex.cfg
)))
vertical mode: \ifcsname: (level 1) entered on line 10}
{\fi: \ifcsname (level 1) entered on line 10}
{\ifx: (level 1) entered on line 10}
{\else: \ifx (level 1) entered on line 10}
{\fi: \ifx (level 1) entered on line 10}
{\ifcsname: (level 1) entered on line 10}
{\fi: \ifcsname (level 1) entered on line 10}
{\ifx: (level 1) entered on line 10}
{\else: \ifx (level 1) entered on line 10}
{\fi: \ifx (level 1) entered on line 10}
{\ifx: (level 1) entered on line 10}
...
{\else: \ifx (level 1) entered on line 10}
{\fi: \ifx (level 1) entered on line 10}
{\ifcsname: (level 1) entered on line 10}
{\else: \ifcsname (level 1) entered on line 10}
{\fi: \ifcsname (level 1) entered on line 10}
{restricted horizontal mode: \ifcsname: (level 1) entered on line 10}
{\else: \ifcsname (level 1) entered on line 10}
{\fi: \ifcsname (level 1) entered on line 10}
Package biblatex Info: Trying to load language 'english'...
{\ifeof: (level 1) entered on line 10}
{\else: \ifeof (level 1) entered on line 10}
{\fi: \ifeof (level 1) entered on line 10}
Package biblatex Info: ... file 'english.lbx' found.
{\ifx: (level 1) entered on line 10}
{\else: \ifx (level 1) entered on line 10}
{\fi: \ifx (level 1) entered on line 10}
{\ifdefined: (level 1) entered on line 10}
{\ifx: (level 2) entered on line 10}
{\else: \ifx (level 2) entered on line 10}
{\fi: \ifx (level 2) entered on line 10}
{\else: \ifdefined (level 1) entered on line 10}
{\fi: \ifdefined (level 1) entered on line 10}
{\ifdefined: (level 1) entered on line 10}
{\ifx: (level 2) entered on line 10}
{\else: \ifx (level 2) entered on line 10}
{\fi: \ifx (level 2) entered on line 10}
{\else: \ifdefined (level 1) entered on line 10}
{\fi: \ifdefined (level 1) entered on line 10}
{\ifdefined: (level 1) entered on line 10}
{\ifx: (level 2) entered on line 10}
{\else: \ifx (level 2) entered on line 10}
{\fi: \ifx (level 2) entered on line 10}
{\else: \ifdefined (level 1) entered on line 10}
{\fi: \ifdefined (level 1) entered on line 10}
("C:/Users/user/AppData/Local/Programs/MiKTeX 2.9/tex/latex/biblatex/lbx/english.lbx"
{\ifnum: (level 1) entered on line 1}
{\ifnum: (level 2) entered on line 1}
...
{\fi: \iffalse (level 1) entered on line 10}
{\ifeof: (level 1) entered on line 10}
{\else: \ifeof (level 1) entered on line 10}
{\fi: \ifeof (level 1) entered on line 10}
(C:/Users/user/workspaces/tex/luatex-hello-world/src/./_main.aux)
{\iftrue: (level 1) entered on line 10}
\openout1 = _main.aux
{\fi: \iftrue (level 1) entered on line 10}
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 10.
{\ifx: (level 1) entered on line 10}
{\fi: \ifx (level 1) entered on line 10}
{\ifx: (level 1) entered on line 10}
(该日志长达 11,619 行\iftracing=1
——否则我就不会像随机那样截断它。)
**注意:在上述日志的情况下,n== 10 == 在哪里\begin{document}
。
无论我使用的是 LuaLaTeX 还是 pdfTeX,都会出现此警告。
版本:
- BibTeX-版本 0.99d(MiKTeX 2.9)
- biblatex 2016/03/03 v3.3 可编程书目 (PK/JW/AB)
- LuaTeX,版本 beta-0.80.0(MiKTeX 2.9)(修订版 5238)
- pdfTeX,版本 3.14159265-2.6-1.40.16(MiKTeX 2.9)
这是否只是我需要承受的一个警告,还是我做错了什么?
提前致谢。
答案1
非封闭条件是一个问题;您的输入没有问题,所以这是一个错误biblatex
(或者更具体地说是 BibTeX 支持部分)。目前(2016 年 4 月)改变 Biber/BibTeX 拆分处理方式的工作已进入后期阶段,而对于开发版本,我没有发现问题。因此,我建议“等待维护团队更新biblatex
”作为最佳解决方案:可能将于 2016 年 5 月下旬/6 月初发生。