biblatex 在用数学方法解析标题时出现错误

biblatex 在用数学方法解析标题时出现错误

我发现 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

相关内容