![biblatex :与 MVBook 同名的书](https://linux22.com/image/309447/biblatex%20%EF%BC%9A%E4%B8%8E%20MVBook%20%E5%90%8C%E5%90%8D%E7%9A%84%E4%B9%A6.png)
因此,问题完全改变了,因为评论让我走上了正确的轨道,并再次更新(我认为现在的例子有点难)。
但也许我没有正确使用 MVBook?
开始吧:对于多卷书,其中各卷的标题相同,但只添加了卷号,我正在寻找一个优雅的解决方案。标准引用命令似乎不会打印卷号,如果卷名相同,则会导致引用不明确。
\documentclass{memoir}
\usepackage[T1]{fontenc}
\makeatletter
%% Biblatex %%
\usepackage[style=verbose-trad2,%
related=true,%
backend=biber]%
{biblatex}%
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@MVBook{Feynman_Lectures,
author = {Richard P. Feynman AND Robert B. Leighton AND Matthew Sands},
title = {The Feynman lectures on physics},
publisher = {Addison-Wesley Publishing Company},
volumes = {3},
year = 1977,
address = {Reading, MA.}
}
@Book{Feynman_LecturesI,
title = {The Feynman lectures on physics},
subtitle = {mainly mechanics, radiation and heat},
volume = {1},
crossref = {Feynman_Lectures}
}
@Book{Feynman_LecturesII,
title = {The Feynman lectures on physics},
subtitle = {mainly electromagnetism and matter},
volume = {2},
crossref = {Feynman_Lectures}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\makeatother
\begin{document}
\title{Titre}
\author{A. Teur}
\maketitle
First volume\footcite{Feynman_LecturesI}
Second volume\footcite{Feynman_LecturesII}
And the first again\footcite{Feynman_LecturesI}
\end{document}
第三次引文如下:
同上,《费曼物理学讲义》,上文引文。
这显然不是应该的。我认为应该强制要求 MVBook 中的书籍引用在每次打印标题时都打印卷号,但前提是总标题和卷标题相同。
我可以在每卷的标题字段中添加“I”,“II”等,但这在卷的第一次引用中看起来是多余的:
Richard P. Feynman、Robert B. Leighton 和 Matthew Sands。《费曼物理学讲义》。第 1 卷:《费曼物理学讲义 I》,主要讲力学、辐射和热。共 3 卷。马萨诸塞州雷丁:Addison-Wesley 出版公司,1977 年。
答案1
中用于短后续引用的相关宏verbose-trad2
是cite:title
。我们只需对其进行修改,使其包含volume
ifmaintitle
和title
accord 即可。
\renewbibmacro*{cite:title}{%
\printtext[bibhyperlink]{%
\printfield[citetitle]{labeltitle}%
\iffieldsequal{maintitle}{title}
{\setunit{\addcomma\space}%
\printfield{volume}}
{}
\setunit{\nametitledelim}%
\bibstring[\mkibid]{opcit}}}
平均能量损失
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[style=verbose-trad2,
backend=biber]
{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@MVBook{Feynman_Lectures,
author = {Richard P. Feynman AND Robert B. Leighton AND Matthew Sands},
title = {The Feynman lectures on physics},
publisher = {Addison-Wesley Publishing Company},
volumes = {3},
year = 1977,
address = {Reading, MA.}
}
@Book{Feynman_LecturesI,
title = {The Feynman lectures on physics},
subtitle = {mainly mechanics, radiation and heat},
volume = {1},
crossref = {Feynman_Lectures}
}
@Book{Feynman_LecturesII,
title = {The Feynman lectures on physics},
subtitle = {mainly electromagnetism and matter},
volume = {2},
crossref = {Feynman_Lectures}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\renewbibmacro*{cite:title}{%
\printtext[bibhyperlink]{%
\printfield[citetitle]{labeltitle}%
\iffieldsequal{maintitle}{title}
{\setunit{\addcomma\space}%
\printfield{volume}}
{}
\setunit{\nametitledelim}%
\bibstring[\mkibid]{opcit}}}
\begin{document}
First volume\footcite{Feynman_LecturesI}.
Second volume\footcite{Feynman_LecturesII}.
And the first again\footcite{Feynman_LecturesI}.
\end{document}