Biblatex:在頁面範圍中以 endash 取代連字符

Biblatex:在頁面範圍中以 endash 取代連字符

為像我這樣的人提供的快速 PSA,他們將來可能會透過 Google 到達這裡:本期Biblatex 版本 3.11 已基本解決- 如果您安裝了這個,您可能會遇到不同的問題。 (根據 Ulrike Fischer 和 Moewe 的評論)

如果您有 Biblatex 3.11 並且它仍然無法工作,這可能是由於「\DeclareFieldFormat{postnote}{#1}」行似乎重置了它。


如果我引用一部作品的多頁內容,破折號不應該是連字號。在參考書目中,Bibtex 正確地將任何內容變更為 endash。然而,註腳只有一個連字符。如果我用“--”輸入它,則識別為頁面範圍會出現一些問題,導致重複更長的引用而不是同上(並且在 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}

在此輸入影像描述

相關內容