biblatex-sbl 中的完整页码

biblatex-sbl 中的完整页码

我使用biblatex-sbl这种样式缩写的(期刊)文章页码(例如“159-74”而不是“159-174”)。我该如何避免这种情况?在德语书目中,提供缩写的页码并不常见。因此,我想创建这样的结果:

Leyerle, Blake。“约翰·克里索斯托姆论凝视。” JECS 1 (1993): 159–174。

 \documentclass{article}
\usepackage{filecontents} 
\begin{filecontents}{\jobname.bib}

@article{leyerle:1993,
author = {Leyerle, Blake},
title = {John Chrysostom on the Gaze},
shorttitle = {Chrysostom},
journaltitle = {Journal of Early Christian Studies},
shortjournal = {JECS},
volume = {1},
date = {1993},
pages = {159-174}
}


@incollection{Ab.2005,
 author = {Ab, Tom},
 date = {2005},
 title = {Gǝ’ǝz Anaphora},
 shorttitle = {Gǝ’ǝz Anaphora},
 editor = {Zenk, Raul},
 pages = {132--144},
 location = {Rom},
 booktitle = {Studi},
series = {Orientalia Christiana Analecta},
 shortseries = {OCA},
}

\end{filecontents}
\usepackage[autostyle=true,german=quotes]{csquotes}
\usepackage[style=sbl,ibidtracker=false,idemtracker=false]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}

genannt\footnote{Vgl.: \cite{leyerle:1993}.} oder\footcite{Ab.2005}.
\printbiblist{abbreviations}
\printbibliography
\end{document}

答案1

biblatex-sbl用于\mkcomprange压缩多个字段中的数字范围。您需要将所有出现的 替换\mkcomprange\mknormrange

\DeclareFieldFormat{volcitepages}{\mknormrange{#1}}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{pages}{\mknormrange{#1}}
\DeclareFieldFormat{pagepages}{\mknormrange[\mkpageprefix]{#1}}
\DeclareFieldFormat{pagesin}{\mknormrange[\mkpageprefix]{#1} \usebibmacro{in}}
\DeclareFieldFormat{altpostnote}{\mknormrange{#1}}

总共

\documentclass[british]{article}
\usepackage{libertinus}
\usepackage{babel}
\usepackage[autostyle=true,german=quotes]{csquotes}
\usepackage[style=sbl,ibidtracker=false,idemtracker=false]{biblatex}

\DeclareFieldFormat{volcitepages}{\mknormrange{#1}}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{pages}{\mknormrange{#1}}
\DeclareFieldFormat{pagepages}{\mknormrange[\mkpageprefix]{#1}}
\DeclareFieldFormat{pagesin}{\mknormrange[\mkpageprefix]{#1} \usebibmacro{in}}
\DeclareFieldFormat{altpostnote}{\mknormrange{#1}}


\usepackage{filecontents} 
\begin{filecontents}{\jobname.bib}
@article{leyerle:1993,
  author       = {Leyerle, Blake},
  title        = {John Chrysostom on the Gaze},
  shorttitle   = {Chrysostom},
  journaltitle = {Journal of Early Christian Studies},
  shortjournal = {JECS},
  volume       = {1},
  date         = {1993},
  pages        = {159-174}
}
@incollection{Ab.2005,
  author      = {Ab, Tom},
  date        = {2005},
  title       = {Gǝ’ǝz Anaphora},
  editor      = {Zenk, Raul},
  pages       = {132--144},
  location    = {Rom},
  booktitle   = {Studi},
  series      = {Orientalia Christiana Analecta},
  shortseries = {OCA},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}

genannt\autocite[Vgl.:][]{leyerle:1993} oder\footcite{Ab.2005}.
\printbiblist{abbreviations}
\printbibliography
\end{document}

Ab, Tom。《Gǝ'ǝz Anaphora》。Studi 第 132-144 页。由 Raul Zenk 编辑。OCA。罗马,2005 年。//Leyerle, Blake。《John Chrysostom on the Gaze》。JECS 1(1993 年):159-174。

如果您使用的是过时的版本biblatex \mknormrange可能不可用,在这种情况下请用\mknormrange{#1}#1替换。\mknormrange[\mkpageprefix]{#1}\mkpageprefix{#1}

相关内容