将 \textunderscore 与 Biblatex + Biber 结合使用

将 \textunderscore 与 Biblatex + Biber 结合使用

我有一些书目条目,其标题包含下划线,我将其输入为\textunderscore。当使用纯 BibTeX 或使用 Biblatex 和 BibTeX 作为后端时,这些可以很好地编译,但当使用 Biblatex 和 Biber 作为后端时则不行:

\documentclass{article}
\usepackage[
  %backend=bibtex, % this works
  backend=biber,  % this doesn't
]{biblatex}
\addbibresource{\jobname.bib}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{pramanick2017jucsenlp,
  author       = {Aniket Pramanick and Dipankar Das},
  title        = {{JU}{\textunderscore}{CSE}{\textunderscore}{NLP} at
                  {SemEval}-2017 {Task} 7: Employing Rules to Detect and
                  Interpret {English} Puns},
  booktitle    = {Proceedings of the 11th International Workshop on Semantic
                  Evaluation (SemEval-2017)},
  year         = {2017},
}
\end{filecontents}

\begin{document}
\nocite{*}\printbibliography
\end{document}

运行pdflatex的结果:

! Missing $ inserted.
<inserted text> 
                $
l.23 \end
         {document}

我是不是做错了什么,或者这是 Biblatex 和/或 Biber 的一个错误?我正在使用 TeX Live 2017 和 Biblatex 3.7 以及 Biber 2.7。

答案1

您还可以进入内联数学模式并使用:

title        = {{JU}{${\_}$}{CSE}{${\_}$}{NLP} at

答案2

如果我可以冒昧地把评论转过来乌尔丽克·菲舍尔莫威, 和保丽康回答我的问题时,报告的行为是一个错误(或者至少是一个值得怀疑的设计决定)在 Biber 中。现在已在开发版本中修复了这个问题。Biber 的未来稳定版本可能会很好地处理\textunderscore参考书目条目中的实例。

对于那些被 Biber 错误版本困扰的人来说,这个问题可以通过多种方式解决:

  1. .tex文档中,定义一个扩展为的宏\textunderscore,然后\textunderscore在文件中使用该宏代替.bib

  2. .tex文档中,\includeunderscore打包。然后在.bib文件中,使用_而不是\textunderscore

  3. .bib文件中,使用$\_$而不是\textunderscore。 (这具有切换到数学字体的缺点,尽管下划线在其中看起来不太可能有太大不同。)

  4. 使用 BibTeX 而不是 Biber。(这是唯一不需要更改文件的选项.bib。但是,只有当文件使用与 BibTeX 兼容的语法,并且您对 Biblatex 的使用不依赖于 Biber 特定的功能时,它才会起作用。)

相关内容