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
中的反向引用和所有其他类型。它们看起来非常不同,除了一行中它们的可选参数不同。简单的一行@set
pageref
[parens]
\printtext
\renewbibmacro*{setpageref}{\usebibmacro{pageref}}
应该足以使这两个宏的行为相同。(我不知道为什么这两种格式不同......)
您可以在反向引用之前使用以下方法获得新行
\renewcommand*{\bibpagerefpunct}{\newline}
@set
s 默认不使用\bibpagerefpunct
,所以我们必须修改驱动程序才能使用\bibpagerefpunct
。
\DeclareBibliographyDriver{set}{%
\entryset{}{}%
\setunit{\bibpagerefpunct}%
\usebibmacro{setpageref}%
\finentry}