我有一些书目条目,其标题包含下划线,我将其输入为\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 错误版本困扰的人来说,这个问题可以通过多种方式解决:
在
.tex
文档中,定义一个扩展为的宏\textunderscore
,然后\textunderscore
在文件中使用该宏代替.bib
。在
.tex
文档中,\include
将underscore
打包。然后在.bib
文件中,使用_
而不是\textunderscore
。在
.bib
文件中,使用$\_$
而不是\textunderscore
。 (这具有切换到数学字体的缺点,尽管下划线在其中看起来不太可能有太大不同。)使用 BibTeX 而不是 Biber。(这是唯一不需要更改文件的选项
.bib
。但是,只有当文件使用与 BibTeX 兼容的语法,并且您对 Biblatex 的使用不依赖于 Biber 特定的功能时,它才会起作用。)