使用 \volcite 进行标准引用

使用 \volcite 进行标准引用

我正在使用biblatex它来管理我的引文和参考书目。

我想用来\volcite引用多卷著作中的特定卷,但引用本身采用标准样式。例如,对于数字样式,正常引用如下所示

[1]

但例如\volcite{3}{Smith}我默认获得(德语本地化)。

[1, Bd. 3]

我怎样才能使 \volcite 引用看起来像正常的引用?

旁注:不应修改参考书目条目,仅应修改引用。

编辑:这是MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[
    backend = biber,
    style = numeric-comp
]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@MvBook{Kohl,
  author    = {Kohlrausch, F.},
  title     = {Praktische Physik},
  volumes   = {3}
}
@Book{Kohl1,
  author    = {Kohlrausch, F.},
  title     = {Praktische Physik},
  volumes   = {3},
  volume    = {1}
}
@Book{Kohl2,
  author    = {Kohlrausch, F.},
  title     = {Praktische Physik},
  volumes   = {3},
  volume    = {2}
}
@Book{Kohl3,
  author    = {Kohlrausch, F.},
  title     = {Praktische Physik},
  volumes   = {3},
  volume    = {3}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\volcite{1}{Kohl}
\volcite{2}{Kohl}
\volcite{3}{Kohl}

\cite{Kohl1}
\cite{Kohl2}
\cite{Kohl3}

\printbibliography

\end{document}

输出

我的问题是:如何在第二行获取引用样式,而不必为 bib 文件中的每一卷创建明确的条目?我认为这可能可以实现\volcite

答案1

目前,只有.bib文件的条目才能真正出现在参考书目中。这意味着,如果您没有某个.bib条目,它就不能作为单独的条目出现在参考书目中。您可以使用 来最大限度地减少数据重复crossref,您的示例可以归结为

@mvbook{Kohl,
  author    = {Kohlrausch, F.},
  title     = {Praktische Physik},
  volumes   = {3}
}
@book{Kohl1,
  crossref = {Kohl},
  volume   = {1},
}
@book{Kohl12,
  crossref = {Kohl},
  volume   = {2},
}
@book{Kohl3,
  crossref = {Kohl},
  volume   = {3},
}

这还有一个额外的好处,就是可以为各个卷指定不同的信息。(例如,假设其中一个卷来自不同的年份。)

答案2

这些是否可能接近你想要的:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[
    backend = biber,
    style = numeric-comp
]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@MvBook{Kohl,
  author       = {Kohlrausch, F.},
  title        = {Praktische Physik},
  volumes      = {3},
  related      = {Kohl1,Kohl2,Kohl3},
  relatedtype  = {multivolume}
}
@Book{Kohl1,
  author       = {Kohlrausch, F.},
  title        = {Praktische Physik},
  volumes      = {3},
  volume       = {1}
}
@Book{Kohl2,
  author       = {Kohlrausch, F.},
  title        = {Praktische Physik},
  volumes      = {3},
  volume       = {2}
}
@Book{Kohl3,
  author       = {Kohlrausch, F.},
  title        = {Praktische Physik},
  volumes      = {3},
  volume       = {3}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

Reference the entire work: \cite{Kohl}
Reference one volume only: \cite{Kohl2}
Reference volume in the entire work: \volcite{2}{Kohl}

\printbibliography

\end{document}

从我读到的文档BibLaTeX(即第 2.3.5 和 3.4 节)来看,我认为 bib 文件中不包含所有子卷是完全不可能的。因此,您似乎想要的可能是不可能的(当然,除非您将多卷书简单地保存为包含总卷数信息的书籍)。

相关内容