按照出版商的风格指南,我需要对参考书目条目biblatex'
的打印方式进行两个方面进行调整。incollection
我需要删除
.
出现在集合标题和编辑者列表之间的句点,该句点应该以ed.
小写的单词开头e
(我个人认为这很奇怪,但我又有何资格不同意呢)。页码序列应直接位于出版商地址之前,并且页码序列前面应有一个逗号。
换句话说,该条目应如下所示:
弗莱明,爱德华 (2004)。“对比与感知独特性”。基于语音的音系学布鲁斯·海斯 (Bruce Hayes)、罗伯特·基尔希纳 (Robert Kirchner) 和唐卡·斯特里亚德 (Donca Steriade) 编,第 232-276 页。剑桥:剑桥大学出版社。
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\renewbibmacro{in:}{}
\DeclareFieldFormat[article,incollection]{pages}{#1}
\begin{filecontents}{\jobname.bib}
@INCOLLECTION{flemming2004,
AUTHOR = "Edward Flemming",
BOOKTITLE = "Phonetically based phonology",
EDITOR = "Bruce Hayes and Robert Kirchner and Donca Steriade",
TITLE = "Contrast and perceptual distinctiveness",
YEAR = "2004",
LOCATION = "Cambridge",
PAGES = "232--276",
PUBLISHER = "Cambridge University Press"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{flemming2004}
\printbibliography
\end{document}
答案1
借助奇妙的xpatch
包及其\xpatchbibdriver
命令。
我们用来xpatch
抑制 s 之前的标点符号editor
。然后我们将 移动page
到宏的右后方series+number
(这为您的示例提供了合适的位置,我不确定其他示例是否如此,因此如果您对该位置不满意,请在下面发表评论。):首先,我们从旧位置删除宏,然后将其插入到新位置。
\xpatchbibdriver{incollection}
{\usebibmacro{byeditor+others}}
{\nopunct\usebibmacro{byeditor+others}}
{}{\typeout{failed to patch bibmacro incollection to remove punctuation before byeditors}}
\xpatchbibdriver{incollection}
{\newunit\newblock
\usebibmacro{chapter+pages}}
{}
{}{\typeout{failed to patch bibmacro incollection to remove page macro}}
\xpatchbibdriver{incollection}
{\usebibmacro{series+number}}
{\usebibmacro{series+number}
\newunit\newblock
\usebibmacro{chapter+pages}}
{}{\typeout{failed to patch bibmacro incollection to re-add page macro}}
数学家协会
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\usepackage{xpatch}
\renewbibmacro{in:}{}
\DeclareFieldFormat[article,incollection]{pages}{#1}
\begin{filecontents}{\jobname.bib}
@INCOLLECTION{flemming2004,
AUTHOR = "Edward Flemming",
BOOKTITLE = "Phonetically based phonology",
EDITOR = "Bruce Hayes and Robert Kirchner and Donca Steriade",
TITLE = "Contrast and perceptual distinctiveness",
YEAR = "2004",
LOCATION = "Cambridge",
PAGES = "232--276",
PUBLISHER = "Cambridge University Press"}
\end{filecontents}
\addbibresource{\jobname.bib}
\xpatchbibdriver{incollection}
{\usebibmacro{byeditor+others}}
{\nopunct\usebibmacro{byeditor+others}}
{}{\typeout{failed to patch bibmacro incollection to remove punctuation before byeditors}}
\xpatchbibdriver{incollection}
{\newunit\newblock
\usebibmacro{chapter+pages}}
{}
{}{\typeout{failed to patch bibmacro incollection to remove page macro}}
\xpatchbibdriver{incollection}
{\usebibmacro{series+number}}
{\usebibmacro{series+number}
\newunit\newblock
\usebibmacro{chapter+pages}}
{}{\typeout{failed to patch bibmacro incollection to re-add page macro}}
\begin{document}
\nocite{flemming2004}
\printbibliography
\end{document}
产量