biblatex-chem 包、babel 和 inbook 条目存在问题

biblatex-chem 包、babel 和 inbook 条目存在问题

我正在用法语写论文,因此使用了 babel 软件包。我选择了“chem-angew”书目样式,到目前为止一切都很好,除了书中章节的引用。

以下是我对这一特殊参考的引用:

@InBook{Lumb1978,
author = {G.F.Imbusch},
editor = {M.D.Lumb},
booktitle = {Luminescence Spectroscopy},
chapter = {1},
publisher = {Academic Press},
year = {1978},
pages = {27}
}

结果如下:

GFImbusch dans, Luminescence Spectroscopy,(编辑:MDLumb),Academic Press,1978 年,第 1 章,第 27 页(参见第 7 页)。

没问题,因为“dans”在法语中是“在…里面”的意思。不过,“dans”后面不应该有逗号。

这个是怎么出现的?我该如何删除它?

答案1

对于@inbook条目类型,您似乎偶然发现了样式中的一个小错误biblatexchem-angew即使此字段的内容与 相同(或者,如您的情况一样,为\newunitpunct空),也会在字段后打印一个(默认情况下为逗号和空格)——请注意,不会打印两次相同的名称。可以通过修补参考书目驱动程序来删除多余的标点符号(注意:仅当最后一个命令确实打印了任何内容时才打印其参数):bookauthorauthorbiblatexinbook\setunit*

\documentclass{article}

\usepackage[french]{babel}

\usepackage[style=chem-angew]{biblatex}

\usepackage{xpatch}

\xpatchbibdriver{inbook}{%
  \usebibmacro{in:}%
  \usebibmacro{bybookauthor}%
  \newunit\newblock
}{%
  \usebibmacro{in:}%
  \usebibmacro{bybookauthor}%
  \setunit*{\newunitpunct}\newblock
}{}{}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
  @inbook{Lumb1978,
  author = {G.F.Imbusch},
  editor = {M.D.Lumb},
  booktitle = {Luminescence Spectroscopy},
  chapter = {1},
  publisher = {Academic Press},
  year = {1978},
  pages = {27},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

\printbibliography

\end{document}

由于您没有指定bookauthor,也许@incollection类型更适合您的条目(biblatex有关详细信息,请查看手册第 2.2.1 节)——并且@incollection不会受到上述错误的影响。

\documentclass{article}

\usepackage[french]{babel}

\usepackage[style=chem-angew]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
  @incollection{Lumb1978,
  author = {G.F.Imbusch},
  editor = {M.D.Lumb},
  booktitle = {Luminescence Spectroscopy},
  chapter = {1},
  publisher = {Academic Press},
  year = {1978},
  pages = {27},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

\printbibliography

\end{document}

两个示例的输出:

在此处输入图片描述

相关内容