Biblatex:在页面范围内使用 endash 代替连字符

Biblatex:在页面范围内使用 endash 代替连字符

为像我这样可能以后通过 Google 来到这里的人提供简短的公益广告:本期使用 Biblatex 3.11 版基本可以解决问题- 如果您安装了这个,您可能会遇到不同的问题。(正如 Ulrike Fischer 和 Moewe 的评论)

如果您拥有 Biblatex 3.11 但它仍然无法工作,那可能是由于行“\DeclareFieldFormat{postnote}{#1}”似乎重置了它。


如果我引用了一部作品的多个页面,则破折号不应该是连字符。在参考书目中,Bibtex 可以正确地将任何内容转换为尾注。但是,脚注只有一个连字符。如果我用“--”输入,则会出现一些页面范围识别问题,导致重复较长的引用而不是同上引用(而且,当 Tex 应该为参考书目做一些明确的事情时,手动输入破折号是相当“不干净”的)。

问题

我发现了两种无效的解决方案:

\DefineBibliographyExtras{ngerman}{\renewcommand*{\bibrangedash}{\textendash}}

\DefineBibliographyExtras{ngerman}{\protected\def\bibrangedash{\textendash}}

有人能帮我改变这个小问题吗?非常感谢!

MWE如下:

\documentclass{scrartcl}
\usepackage[
backend=biber,
style=verbose-inote,
backref=false]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\bibi.bib}
@article{dash,
  author = {Dashing, Walter Very},
  year = {1942},
  title = {Dashing Past a Hyphen},
  journaltitle = {Life},
  volume = {42},
  number = {42},
  pages = {123-321},
}
\end{filecontents}

\addbibresource{\bibi.bib}

\begin{document}

Could I get a dash please -- size does matter in typography...\footcite[142-242]{dash}.

\printbibliography

\end{document}

答案1

从 biblatex 3.11 版开始,页码范围postonote默认已标准化,因此页码范围中的连字符和破折号将转换为\bibrangedash,逗号和分号将转换为\bibrangesep。有关更多详细信息,请参阅 3.11 版的发行说明。换句话说,下面的答案已经过时,不再需要。除非您出于某种原因被困在 biblatex 的旧版本中。

如果您不想使用开发版本,按照 Ulrike Fischer 的建议,您可以使用以下命令更改后记的格式指令:

\DeclareFieldFormat{postnote}{\mkcomprange[{\mkpageprefix[pagination]}]{#1}}

从技术上讲,这会压缩postnote页面范围,但如果您不想这样,您可以设置所使用的计数器\mkcomprange以使其实际上不会发生。

请注意,正如@moewe 在评论中所报告的那样,版本 3.11 应该很快就会发布。而且它将立即处理您的问题。因此,只要有一点耐心,您就不需要做任何事情。

完整的 MWE:

\documentclass{scrartcl}
\usepackage[
backend=biber,
style=verbose-inote,
backref=false]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{dash,
  author = {Dashing, Walter Very},
  year = {1942},
  title = {Dashing Past a Hyphen},
  journaltitle = {Life},
  volume = {42},
  number = {42},
  pages = {123-321},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\DeclareFieldFormat{postnote}{\mkcomprange[{\mkpageprefix[pagination]}]{#1}}
\setcounter{mincomprange}{100000}
\setcounter{mincompwidth}{100000}

\begin{document}

Could I get a dash please -- size does matter in typography...\footcite[142-242]{dash}.

\printbibliography

\end{document}

在此处输入图片描述

相关内容