BibTeX 字段中的左括号

BibTeX 字段中的左括号

如何在 Bib(La)TeX 条目中输入以下标题(一本虚构的书):“如何在 Bib(La)TeX 中使用 {?”

BibTeX 建议括号可以使用反斜杠转义,但如果以这种方式输入,BibTeX 处理器和 Biber 都无法处理标题。

@book{test_123,
        title = {How to use \{ in Bib(La)TeX?}
}

Biber 生产

INFO - This is Biber 1.9 running in TOOL mode
INFO - Logfile is 'test.bib.blg'
INFO - Looking for bibtex format file 'test.bib'
INFO - Decoding LaTeX character macros into UTF-8
INFO - Found BibTeX data source 'test.bib'
WARN - Entry test_123 does not parse correctly
WARN - BibTeX subsystem: C:\*********\test.bib_5644.utf8, line 3, warning: possible runaway string started at line 2
ERROR - BibTeX subsystem: C:\********\test.bib_5644.utf8, line 4, syntax error: at end of input, expected one of: number, name (entry type, key, field, or macro name) or quoted string ({...} or "...")
INFO - WARNINGS: 2
INFO - ERRORS: 1

这在“摘要”和“文件”字段中也失败了。

向 Biber 开发人员报告了此事有人告诉我这里可能有人知道一个窍门。另外,这个问题之前也问过(我猜是以一种迂回的方式)这里

答案1

您可以使用\vphantom 命令包括结束括号但不显示它,即

@book{test_123,
    title = {How to use \{\vphantom{\}} in Bib(La)TeX?},
    author = {Vinckevicius, Aurimas}
}

对我来说,可以使用普通 BibTeX 和以下 tex 文件:

\documentclass{article}
\begin{document}
\cite{test_123}
\bibliography{references}
\bibliographystyle{alpha}
\end{document}

它看起来是这样的:

输出 pdf

(垂直)间距可能会受到轻微影响。

答案2

显然,Biber 知道这一点\textbraceleft,并试图将其转化为支架,但结果却失败了。:(

这是一个解决方法:

\begin{filecontents*}{\jobname.bib}
@article{testbrace,
  author={A. Uthor},
  title={How to use {\biberbraceleft} with Bib(La)\TeX?},
  journal={Trans. \TeX.SX},
  year={2015},
  pages={1-10},
}
\end{filecontents*}

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{biblatex}
\addbibresource{\jobname.bib}

\newcommand{\biberbraceleft}{\textbraceleft}

\begin{document}

\fullcite{testbrace}

\end{document}

在此处输入图片描述

我做了一些实验:

  title={How to use
    \iftrue\textbraceleft\else\textbraceright\fi
    or
    \iftrue\{\else\}\fi\space with Bib(La)\TeX?},

Biber 没有抱怨,他写道

  \field{labeltitle}{How to use \iftrue{\else}\fi or \iftrue\{\else\}\fi\space with Bib(La)\TeX?}

显然存在两个问题:

  1. \textbraceleft,应该可以工作,但实际上写出来的是未转义的{

  2. \{在 Biber 处理时中断,因为它被视为括号并且不匹配。

诸如

title={\{Braced\}},

会起作用,而

title={\textbraceleft Braced\textbraceright},

输出

\field{title}{{Braced}}

这显然是 Biber 中的一个严重错误。

相关内容