集合的反向引用 - 不需要的不同格式

集合的反向引用 - 不需要的不同格式

biblatex我正在尝试通过一份精美的参考书目(带有, )来完善我的论文,backend=bibtex但我对参考文献集的反向引用处理方式存在疑问。

事实上,我习惯@set将两篇论文归为同一条目(例如一篇论文和一份勘误表,或者同一组人写的关于同一主题的两篇论文)。问题是,backref对于单篇论文或一组论文来说,看起来不一样:前者在括号内(我希望如此),而后者不在。另外,我希望所有这些都在下一行。

看:

\documentclass[a4paper,12pt]{report}

\usepackage[utf8]{inputenc}
\usepackage[pdftex]{graphicx}
\usepackage{color}
\usepackage{changepage}

\usepackage[backend=bibtex, style=numeric-comp, sorting=none, backref=true, backrefsetstyle=setonly, maxcitenames=3, maxbibnames=10]{biblatex}
\renewbibmacro*{in:}{}
\renewcommand*{\bibpagespunct}{\addspace}
\renewcommand*{\finentrypunct}{}
\renewbibmacro*{volume+number+eid}{
  \setunit*{\addcomma\space}
  \printfield{volume}
  \printfield{number}
}
\DeclareFieldFormat*{author}{#1}
\DeclareFieldFormat*{title}{\mkbibemph{#1}}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{volume}{{\bf #1}}
\DefineBibliographyStrings{english}{
  backrefpage = {\uppercase{s}ee p\adddot},
  backrefpages = {\uppercase{s}ee pp\adddot},
}

\addbibresource{Biblio-Dismantled}

\begin{document}

One may have a MOND at such scales~\cite{Milgrom1983set}. MOND theories have been embedded in relativistic modified gravitational field theories, the so-called \emph{Te}nsor-\emph{Ve}ctor-\emph{S}calar (TeVeS) theories of gravity~\cite{Bekenstein2004}.

\printbibliography

\end{document}

使用.bib文件:

@string{AJ="The Astrophysical Journal"}
@string{PRD="Physical Review D"}

@set{Milgrom1983set,
entryset =  { Milgrom1983-1, Milgrom1983-2 } 
}

@article{Milgrom1983-1,
    entryset =  { Milgrom1983set },
    author =    { M. Milgrom },
    title =     { A Modification of the Newtonian dynamics as a possible alternative to the hidden mass hypothesis },
    journaltitle =  AJ,
    year =      { 1983 },
    volume =    { 270 },
    pages =     { 365 }
}

@article{Milgrom1983-2,
    entryset =  { Milgrom1983set },
    author =    { \\ },
    title =     { A Modification of the Newtonian dynamics: Implications for galaxies },
    journaltitle =  AJ,
    year =      { 1983 },
    volume =    { 270 },
    pages =     { 371 }
}

@article{Bekenstein2004,
author =    { J. D. Bekenstein },
title =     { Relativistic gravitation theory for the MOND paradigm },
journaltitle =  PRD,
year =      { 2004 },
volume =    { 70 },
number =    { 08 },
pages =     { 083509 }
}

答案1

有两个宏,分别用于ssetpageref中的反向引用和所有其他类型。它们看起来非常不同,除了一行中它们的可选参数不同。简单的一行@setpageref[parens]\printtext

\renewbibmacro*{setpageref}{\usebibmacro{pageref}}

应该足以使这两个宏的行为相同。(我不知道为什么这两种格式不同......)


您可以在反向引用之前使用以下方法获得新行

\renewcommand*{\bibpagerefpunct}{\newline}

@sets 默认不使用\bibpagerefpunct,所以我们必须修改驱动程序才能使用\bibpagerefpunct

\DeclareBibliographyDriver{set}{%
  \entryset{}{}%
  \setunit{\bibpagerefpunct}%
  \usebibmacro{setpageref}%
  \finentry}

相关内容