xref
当超过两个作品时,使用 withbiblatex-dw
可以正常工作,但是如果我用它仅引用集合/书籍中的一篇文章,则会很烦人,因为参考书目显示两个条目:一个(不完整)用于文章,另一个用于集合/书籍。
第 13-14 页biblatex-dw 手册指出 mincrossrefs 设置1
为以避免信息不完整。换句话说,使用xref
意味着打印父条目,即使只有一个子条目。
所以,我的问题是:如何为单个@incollection 生成独立的书目条目?
在以下 MWE 中,预期结果是:Hobsbawm 文章的一个条目,其余部分保持原样。
\documentclass[12pt]{article}
\begin{filecontents}{\jobname.bib}
@inbook{Hobsbawm2011a1,
author = {Hobsbawm, Eric},
title = {On the \emph{Communist Manifesto}},
pages = {101--120},
xref = {Hobsbawm2011a},
}
@book{Hobsbawm2011a,
author = {Hobsbawm, Eric},
title = {How to Change the World. Reflections on Marx and Marxism},
shorttitle = {How to Change the World},
publisher = {Yale},
address = {New Haven/London},
year = {2011},
}
@collection{Cowling2002,
booktitle = {Marx's \emph{Eighteenth Brumaire}. (Post)modern Interpretations},
title = {Marx's \emph{Eighteenth Brumaire}. (Post){\-}modern Interpretations},
shorttitle = {Marx's \emph{Eighteenth Brumaire}},
editor = {Cowling, Mark and Martin, James},
address = {London, Sterling/\textsc{va}},
publisher = {Pluto},
year = {2002}
}
@incollection{Jessop2002,
author = {Bob Jessop},
title = {The Political Scene and the Politics of Representation: Periodising Class Struggle and the State in the \emph{Eighteenth Brumaire}},
shorttitle = {The Political Scene and the Politics of Representation},
pages = {179--194},
xref = {Cowling2002}
}
@incollection{Martin2002,
author = {Martin, James},
title = {Performing Politics: Class, Ideology and Discourse in Marx's \emph{Eighteenth Brumaire}},
shorttitle = {Performing Politics},
pages = {129--142},
xref = {Cowling2002}
}
\end{filecontents}
\usepackage[backend=biber,
style=authortitle-dw,
%firstfull=true,
xref=true,
]{biblatex}
\addbibresource{\jobname}
\begin{document}
\cite{Hobsbawm2011a1}
\cite{Martin2002}
\cite{Jessop2002}
\printbibliography
\end{document}
答案1
根据设计,该xref
字段的子条目永远不会从父条目继承数据。替代方案取决于crossref
基于哪个xref
。(主要区别恰恰在于继承。)
因此你可以这样做:
\documentclass[12pt]{article}
\begin{filecontents}{\jobname.bib}
@inbook{Hobsbawm2011a1,
author = {Hobsbawm, Eric},
title = {On the {\mkbibemph{Communist Manifesto}}},
pages = {101--120},
crossref = {Hobsbawm2011a},
}
@book{Hobsbawm2011a,
author = {Hobsbawm, Eric},
title = {How to Change the World. Reflections on Marx and Marxism},
shorttitle = {How to Change the World},
publisher = {Yale},
address = {New Haven/London},
year = {2011},
}
@collection{Cowling2002,
booktitle = {Marx's \emph{Eighteenth Brumaire}. (Post)modern Interpretations},
title = {Marx's \emph{Eighteenth Brumaire}. (Post){\-}modern Interpretations},
shorttitle = {Marx's \emph{Eighteenth Brumaire}},
editor = {Cowling, Mark and Martin, James},
address = {London, Sterling/\textsc{va}},
publisher = {Pluto},
year = {2002}
}
@incollection{Jessop2002,
author = {Bob Jessop},
title = {The Political Scene and the Politics of Representation: Periodising Class Struggle and the State in the \emph{Eighteenth Brumaire}},
shorttitle = {The Political Scene and the Politics of Representation},
pages = {179--194},
xref = {Cowling2002}
}
@incollection{Martin2002,
author = {Martin, James},
title = {Performing Politics: Class, Ideology and Discourse in Marx's \emph{Eighteenth Brumaire}},
shorttitle = {Performing Politics},
pages = {129--142},
xref = {Cowling2002}
}
\end{filecontents}
\usepackage[backend=biber,
style=authortitle-dw,
mincrossrefs=2,
xref=true,
]{biblatex}
\addbibresource{\jobname}
\begin{document}
\cite{Hobsbawm2011a1}
\cite{Martin2002}
\cite{Jessop2002}
\printbibliography
\end{document}
这样做的缺点是,如果将所有内容更改xref
为crossref
,则有关集合的信息将在每个条目中重复。
这是我意识到使用biblatex
BibTeX 而不是传统 BibTeX 的一大缺点。BibTeX 不仅可以做到这一点。它“只是”以您直观期望的方式与 BibTeX 配合使用。
相反,如果有好的biblatex
解决方案,我还没有找到。出于某种原因,它似乎被设计用来做几乎总是错误的事情。我完全不知道为什么。更糟糕的是,错误的事情不仅仅是默认的。它似乎是唯一可能的设置。(毫无疑问,我只是对这种方法的优势视而不见。但事实就是如此。我就是盲目的。)