biblatex :与 MVBook 同名的书

biblatex :与 MVBook 同名的书

因此,问题完全改变了,因为评论让我走上了正确的轨道,并再次更新(我认为现在的例子有点难)。
但也许我没有正确使用 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-trad2cite:title。我们只需对其进行修改,使其包含volumeifmaintitletitleaccord 即可。

\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}

在此处输入图片描述

相关内容