我发现 biblatex 的行为有些奇怪,这与解析包含数学内容的标题有关。这是 MWE。
\documentclass{article}
\usepackage[backend=biber,bibstyle=numeric,firstinits=true]{biblatex}
\addbibresource{mwe.bib}
\begin{document}
\cite{DeDeVa00a}
\printbibliography
\end{document}
这是 mwe.bib:
@Article{DeDeVa00a,
author = {Lieven {De Lathauwer} and Bart {De Moor} and Joos Vandewalle},
doi = {10.1137/S0895479898346995},
journal = {SIAM Journal on Matrix Analysis and Applications},
number = {4},
title = {On the Best Rank-1 and Rank-{$(R_1, R_2, \dots, R_N)$} Approximation of Higher-order Tensors},
volume = {21},
year = {2000},
pages = {1324-1342},
}
在 bbl 文件中,标题在 \dots 之前和之后添加了额外的 $。
\field{title}{On the Best Rank-1 and Rank-{$(R_1, R_2, {$\dots$}, R_N)$} Approximation of Higher-order Tensors}
我目前的解决方法是在 biber 运行后编辑 bbl 文件,但这显然不是理想的选择。我从这篇文章中了解到了有关该错误的想法:使用 biblatex 和 biber 时,额外的 } 或忘记 $。然而,那里的修复在这种情况下不起作用。
答案1
我认为这是一个 Biber 漏洞,并已在https://github.com/plk/biber/issues/225。
问题是 Biber 将\dots
转换为…
。然后…
又将其转换回{$\dots$}
。{$\dots$}
如果将其插入\dots
中,则自然会中断{$(R_1, R_2, \dots, R_N)$}
。
您可以通过定义一个未被 Biber 翻译成 Unicode 的命令来解决这个替换问题。
\newcommand*{\mywadots}{\dots}
进而
@article{DeDeVa00a,
author = {Lieven De Lathauwer and Bart De Moor and Joos Vandewalle},
doi = {10.1137/S0895479898346995},
journal = {SIAM Journal on Matrix Analysis and Applications},
number = {4},
title = {On the Best Rank-1 and Rank-{$(R_1, R_2, \mywadots, R_N)$} Approximation of Higher-order Tensors},
volume = {21},
year = {2000},
pages = {1324-1342},
}
使用 Unicode 引擎或 LaTeX 版本(其中 UTF-8 是默认编码)的人无法重现该错误,因为在这些情况下Biber 不会…
重新编码,{$\dots$}
\field{title}{On the Best Rank-1 and Rank-{$(R_1, R_2, …, R_N)$} Approximation of Higher-order Tensors}
最终却落得如此下场.bbl
。