更改参考文献中的年份位置 - biblatex biber

更改参考文献中的年份位置 - biblatex biber

从...开始这个问题我编辑了那里提供的代码,以实现如下引用,journal-title+volume+pages+year

\renewbibmacro*{journal+issuetitle}{%
    \usebibmacro{journal}%
    \setunit*{\addspace}%
    \iffieldundef{series}
    {}
    {\newunit
        \printfield{series}%
        \setunit{\addspace}}%
    \printfield{volume}%
    \setunit{\addcomma\space}%
    \printfield{pages}%
    \setunit{\space (}%
    \usebibmacro{date})%
    \newunit}

可以做得更好吗?很可能,我不知道宏是如何使用的,但它按预期工作,但有一个小问题。一年后,页面再次添加。我认为这是因为宏journal+issuetitle不包含页面,所以尝试添加+pages到名称中,但它没有任何作用。

想知道在重新定义宏时需要做哪些更改以便页面在最后不再显示。

它的外观图片(biblatex 有更多版本): 在此处输入图片描述

编辑:

一个没有其他版本的最小工作示例,以便更短

\documentclass{article}
\usepackage[backend=biber, style=numeric-comp, sortcites=true, sorting=none, url=false,maxbibnames=99]{biblatex}
\addbibresource{biblatex-examples.bib}
\usepackage[utf8]{inputenc}
\renewbibmacro*{journal+issuetitle}{%
    \usebibmacro{journal}%
    \setunit*{\addspace}%
    \iffieldundef{series}
    {}
    {\newunit
        \printfield{series}%
        \setunit{\addspace}}%
    \printfield{volume}%
    \setunit{\addcomma\space}%
    \printfield{pages}%
    \setunit{\space (}%
    \usebibmacro{date})%
    \newunit}

\title{mwe}

\begin{document}
\maketitle

Lorem ipsum~\cite{sigfridsson} dolor~\cite{worman}.
\printbibliography
\end{document}

谢谢!

答案1

页面被再次添加,因为它们是由note+pages驱动程序中的宏打印的@article。如果您还打印 中的页面journal+issuetitle,则需要抑制pages中的note+pages

下面的重新定义journal+issuetitle是基于的标准定义standard.bbx。唯一的变化是增加了页面打印。

请注意,在 中使用像(and这样的裸括号通常是不好的风格。在下面的解决方案中,我使用了现成的宏,它添加了括号并处理了一些其他事情。)\setunitissue+date

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

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

\DeclareFieldFormat[article,periodical]{pages}{#1}

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

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

\addbibresource{biblatex-examples.bib}


\begin{document}
\cite{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。


如果你想了解这些宏是如何工作的,以及为什么其他的东西被打印,你应该看看standard.bbx,其中调用的大多数相关宏要么定义在standard.bbx或者biblatex.def

biblatex3.12 中,驱动程序@article可以在第 26-62 页standard.bbx.journal+issuetitle位于746-761以及note+pages第 857-861 页

相关内容