我正在用法语写论文,因此使用了 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
条目类型,您似乎偶然发现了样式中的一个小错误biblatex
:chem-angew
即使此字段的内容与 相同(或者,如您的情况一样,为\newunitpunct
空),也会在字段后打印一个(默认情况下为逗号和空格)——请注意,不会打印两次相同的名称。可以通过修补参考书目驱动程序来删除多余的标点符号(注意:仅当最后一个命令确实打印了任何内容时才打印其参数):bookauthor
author
biblatex
inbook
\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}
两个示例的输出: