这是这个问题。正如@david-purton 在他的回答中指出的那样,我的问题中遗漏了一个事实,即书名后面是一个逗号,后面跟着编辑,而不是句号。
我尝试修补@incollection
驱动程序biblatex-sbl
,但所有宏\newunit
中都插入了一个句点。因此,我认为必须重新定义宏,正如@david-purton 在上述问题的答案的评论中所证实的那样。
此外,我认为页码不能像那个答案那样放在注释后面。MWE 没有系列和编号。在给出的答案中,系列和编号打印在书目驱动程序中的注释之前。然而,在 Turabian 中,页码应该放在书名之后,然后是句号。然后是系列和编号,后面跟着句号。然后是出版详情。
这是与上面答案相同的 MWE,但添加了系列和编号:
\documentclass{article}
\usepackage[style=sbl]{biblatex}
\begin{filecontents}[overwrite]{\jobname.bib}
@collection{EFIMI1986,
title = {Early Judaism and Its Modern Interpreters},
editor = {Kraft, Robert A. and Nickelsburg, George W. E.},
series = {Series Name},
number = {2},
location = {Philadelphia and Atlanta},
publisher = {Fortress and Scholars Press},
date = {1986}
}
@incollection{attridge:EFIMI1986,
crossref = {EFIMI1986},
author = {Attridge, Harold W.},
title = {Jewish Historiography},
pages = {311-343},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage{xpatch}
\xpatchbibdriver{incollection}
{\usebibmacro{chapter+pagesin}}
{\usebibmacro{in}}
{}
{}
\xpatchbibdriver{incollection}
{\printfield{note}}
{\printfield{note}%
\setunit{\addcomma\space}%
\printfield{pages}}
{}
{}
\begin{document}
\null\vfill
An entry in an edited work.\autocite{attridge:EFIMI1986}
\printbibliography
\end{document}
它看起来是这样的:
参考书目应改为:
Attridge, Harold W.“犹太史学”。早期犹太教及其现代诠释者,由 Robert A. Kraft 和 George WE Nickelsburg 编辑,311-43。丛书名称 2。费城:Fortress,1986 年。
脚注是正确的,不需要更改。
我知道 biblatex 有芝加哥风格。我用了biblatex-chicago
好几年,但它更难修改。几乎不可能biblateax-sbl
轻易得到像字典和词典这样的东西,所以我想继续用biblatex-sbl
。
答案1
事情并不困难,但是你需要做的改变越多,你需要修补的东西就越多。
您需要进行两项更改:
调整第二个补丁,将页码放在版本之前而不是注释之后:
\xpatchbibdriver{incollection} {\newunit \printfield{edition}} {\setunit{\addcomma\space}% \printfield{pages}% \newunit \printfield{edition}} {} {}
使用类似于@moewe(现已删除)的答案的方法来添加逗号:
\renewbibmacro*{bybookauthor/bybookeditor+others/bybooktranslator+others}{% \iffieldundef{booktitle} {} {\setunit{\addcomma\space}% \usebibmacro{bybookauthor}% \setunit{\addcomma\space}% \iffieldundef{maintitle} {\usebibmacro{bybookeditor+others}% \setunit{\addcomma\space}% \usebibmacro{bybooktranslator+others}} {\usebibmacro{bybookeditor/bybooktranslator}}}}
你可能还需要一个类似的
\renewbibmacro*{bymainauthor/bymaineditor+others/bymaintranslator+others}{…}
平均能量损失
\documentclass{article}
\usepackage[style=sbl]{biblatex}
\begin{filecontents}[overwrite]{\jobname.bib}
@collection{EFIMI1986,
title = {Early Judaism and Its Modern Interpreters},
editor = {Kraft, Robert A. and Nickelsburg, George W. E.},
series = {Series Name},
number = {2},
location = {Philadelphia and Atlanta},
publisher = {Fortress and Scholars Press},
date = {1986}
}
@incollection{attridge:EFIMI1986,
crossref = {EFIMI1986},
author = {Attridge, Harold W.},
title = {Jewish Historiography},
pages = {311-343},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\usepackage{xpatch}
\xpatchbibdriver{incollection}
{\usebibmacro{chapter+pagesin}}
{\usebibmacro{in}}
{}
{}
\xpatchbibdriver{incollection}
{\newunit
\printfield{edition}}
{\setunit{\addcomma\space}%
\printfield{pages}%
\newunit
\printfield{edition}}
{}
{}
\renewbibmacro*{bybookauthor/bybookeditor+others/bybooktranslator+others}{%
\iffieldundef{booktitle}
{}
{\setunit{\addcomma\space}%
\usebibmacro{bybookauthor}%
\setunit{\addcomma\space}%
\iffieldundef{maintitle}
{\usebibmacro{bybookeditor+others}%
\setunit{\addcomma\space}%
\usebibmacro{bybooktranslator+others}}
{\usebibmacro{bybookeditor/bybooktranslator}}}}
\begin{document}
\null\vfill
An entry in an edited work.\autocite{attridge:EFIMI1986}
\printbibliography
\end{document}