biblatex 中卷数和数量之间的标点符号

biblatex 中卷数和数量之间的标点符号

我用它biblatex来制作书目,数量和卷显示为volume.number 在此处输入图片描述 不管我想要什么volume:number。我试过了\DeclareFieldFormat[article]{number}{:#1},但它屈服了volume.:number,即使没有体积也会出现结肠。

梅威瑟:

\begin{filecontents}{bibl.bib}

    @article{A,
    author = {John Doe},
    title = {Interesting article},
    volume = {10},
    number = {100},
    pages = {1--20},
    journal = {Daily articles},
    year = {2020}
    }

    @article{B,
    author = {Jane Doe},
    title = {Another Interesting article},
    number = {50},
    pages = {1--24},
    journal = {Monthly articles},
    year = {2020}
    }

\end{filecontents}

\documentclass[12pt]{article}

\usepackage{filecontents}

\usepackage[russian]{babel}

\usepackage[
    backend = biber,
    language = russian,
        ]{biblatex}

\addbibresource{bibl.bib}
\renewbibmacro{in:}{%
  \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}

\begin{document}

\nocite{*}

Some text

\printbibliography

\end{document}

答案1

这很容易做到,用我的风格biblatex-ext\volnumdelim。他们为这项工作定义了标点符号命令。

您甚至可以通过选项biblatex-ext替换对 bibmacro 的重新定义。in:articlein=false

每种标准样式都有一种biblatex-ext等效样式,您可以切换到该样式而不会改变输出。在 MWE 中,您正在(隐式)使用style=numeric,,因此biblatex-ext您想要的样式是style=ext-numeric,

\documentclass[12pt]{article}
\usepackage[russian]{babel}

\usepackage[backend = biber, style=ext-numeric,
  articlein=false]{biblatex}

\renewcommand*{\volnumdelim}{\addcolon}

\begin{filecontents}{\jobname.bib}
@article{A,
  author  = {John Doe},
  title   = {Interesting article},
  volume  = {10},
  number  = {100},
  pages   = {1--20},
  journal = {Daily articles},
  year    = {2020},
}
@article{B,
  author  = {Jane Doe},
  title   = {Another Interesting article},
  number  = {50},
  pages   = {1--24},
  journal = {Monthly articles},
  year    = {2020},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
Some text

\printbibliography
\end{document}

John Doe。“有趣的文章”。每日文章 10:100 (2020),第 1-20 页。


如果由于某种原因你不想或不能使用biblatex-ext,你可以尝试以下重新定义

\newcommand*{\volnumdelim}{\addcolon}
\providecommand*{\bibeidpunct}{\addcomma\space}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\adddot}%
  \printfield{volnumdelim}%
  \setunit{\bibeidpunct}%
  \printfield{eid}}

相关内容