重新排列 biblatex 的期刊年份和页面

重新排列 biblatex 的期刊年份和页面

我想切换日记条目的字段年份和页面,以便字段年份始终位于最后。

梅威瑟:

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
    @article{laumer2016,
    title = {Optical Analysis of Polymer Powder Materials for {{Selective Laser Sintering}}},
    author = {Laumer, T. and Stichel, T. and Nagulin, K. and Schmidt, M.},
    date = {2016},
    journaltitle = {Polymer Testing},
    volume = {56},
    pages = {207--213},
    langid = {english}
    }
\end{filecontents}

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

\DeclareFieldFormat{issuedate}{#1}
\renewcommand{\jourvoldelim}{\addcomma\space}
\renewcommand{\volnumdatedelim}{\addcomma\space}
\renewcommand{\volnumdelim}{\addcomma\space}
\addbibresource{test.bib}

\begin{document}
    \autocite{laumer2016}
    \printbibliography
\end{document}

答案1

有很多种可能的方法可以做到这一点,哪种方法最适合您取决于当您的.bib条目包含附加字段时您到底期望什么(例如note,,doi...)。

下面的内容不太长,并给出了合理的输出

\documentclass{article}
\usepackage[backend=biber, style=ext-numeric]{biblatex}

\DeclareFieldFormat{issuedate}{#1}
\renewcommand{\jourvoldelim}{\addcomma\space}
\renewcommand{\volnumdelim}{\addcomma\space}

\renewbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\jourvoldelim}%
  \iffieldundef{series}
    {}
    {\setunit*{\jourserdelim}%
     \printfield{series}%
     \setunit{\servoldelim}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \setunit{\bibpagespunct}%
  \printfield{pages}%
  \setunit{\addcomma\space}%
  \usebibmacro{issue+date}%
  \newunit}

\renewbibmacro*{note+pages}{%
  \printfield{note}%
  \newunit}

\addbibresource{biblatex-examples.bib}

\begin{document}
\autocite{sigfridsson}
\printbibliography
\end{document}

Emma Sigfridsson 和 Ulf Ryde。“从静电势和电势矩推导原子电荷的方法比较”。《计算化学杂志》,19,4,第 377-395 页,1998 年。doi:10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P。

请注意,这特定于@article条目类型。如果您要移动年份和页码,@inbook@incollection需要采用不同的方法。

相关内容