防止在 biblatex 条目中用 \bibrangeledash 替换破折号

防止在 biblatex 条目中用 \bibrangeledash 替换破折号

我的书目中有一个条目,其中的数字看起来像number = {D-810}

Biblatex 将数字字段中的破折号替换为\bibrangedash;对于正常数字范围,这是number = {2-3}完全正确的,但D-810不是一个范围,而是一种特殊的数字,应该用短划线显示。

我找到了一些关于如何重新定义所有出现的样式的技巧\bibrangedash,例如Biblatex 中的自定义破折号,但我需要的是防止\bibrangedash在单个条目中用 just 替换破折号。

我怎样才能实现这个目标?

我需要的样式是 MWE:

\begin{filecontents}{test.bib}

@TECHREPORT{c1,
  author      = {Author, A.},
  title       = {Some title},
  institution = {Inst. 1},
  year        = {2000},
  type        = {Preprint},
  number      = {D-810},
  address     = {Some city},
  pagetotal   = {10},
  langid      = {english},
}
@TECHREPORT{c2,
  author      = {Author, B.},
  title       = {Another title},
  institution = {Inst. 2},
  year        = {2000},
  type        = {Preprint},
  number      = {2-3},
  address     = {Some city},
  pagetotal   = {10},
  langid      = {english},
}

\end{filecontents}

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage[style=gost-numeric]{biblatex} % from package biblatex-gost
\addbibresource{test.bib}

\begin{document}

Citations:~\cite{c1,c2}.

\printbibliography

\end{document}

答案1

biblatex-gost将该字段定义number为“范围字段”。另一方面,标准样式将该字段定义为“整数”,并从版本 3.12 开始将其视为“文字”字段。标准样式不会出现此问题,它只会在中出现biblatex-gost

范围字段的决定性特征是所有类型的破折号都会\bibrangedash自动标准化为。不幸的是,如果您想继续使用,没有简单的方法可以打破这种标准化(范围中有一个例外,例如x-000--y-999只有--被 替换\bibrangedash,单个-s 保持不变,但这对您没有帮助)-

一个简单但遗憾的是既不优雅也不特别便携的解决方法是

\newcommand*{\norangehyphen}{-}

进而

@TECHREPORT{c1,
  author      = {Author, A.},
  title       = {Some title},
  institution = {Inst. 1},
  year        = {2000},
  type        = {Preprint},
  number      = {D\norangehyphen810},
  address     = {Some city},
}

\symbol{45}或者,您可以按照 egreg 在评论中所建议的方式使用。

在阅读代码之前,biblatex-gost我曾建议要求其作者停止将其number视为范围字段,但经过更彻底的观察后,很明显相当多的代码实际上依赖于number范围字段,所以这不是一个选择。

在其他情况下,用花括号屏蔽biblatex就足以“保护”-不被转换为\bibrangedash

  number      = {D{-}810},

然而,这不适用于 Biber 检测的范围。但如果您认为这是一个重要的功能,您可以考虑在 Biber 错误跟踪器上将其作为功能请求添加https://github.com/plk/biber/issues

相关内容