以下 MWE 生成如下图所示的参考书目条目:
\documentclass{scrartcl}
\usepackage{xeCJK}
\usepackage[style=authoryear-ibid]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{literature.bib}
@book{qingshi1998,
date = {1998},
title = {Qingshi gao},
titleaddon = {清史稿},
location = {Beijing},
publisher = {Zhonghua}
}
\end{filecontents}
\bibliography{literature}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
年份打印在标题之后和标题插件之前。这里的问题似乎是没有指定作者:当我添加虚构的作者时,日期正确地打印在作者之后和标题之前。
根据 biblatex 手册,类型条目需要作者book
。但是,我尝试了其他不需要作者的条目类型,得到了相同的结果。
我怎样才能将标题和标题插件放在单独的数据字段中,省略作者,但仍在标题插件后打印年份?
答案1
如果字段author
(或定义为标签的任何其他字段)为空,则标准样式biblatex
使用另一个字段,如label
参考书目中所示。如果样式authoryear
为 ,shorttitle
则为 ,如果其也为空,则只需title
。
title
如果您以使用和的方式重新定义宏titleaddon
,您将获得想要的结果。作为分隔符,我选择了一个点,但您可以使用 biblatexs 分隔符命令进行调整。我不知道您是否使用该shorttitle
字段。如果没有,这样就可以了。如果您使用它,但不想将其打印为标签,则必须编辑特定条件。
这是您的改编版 MWE:
\documentclass{scrartcl}
\usepackage{xeCJK}
\usepackage[style=authoryear-ibid]{biblatex}
\begin{filecontents*}[overwrite]{literature.bib}
@book{qingshi1998,
date = {1998},
title = {Qingshi gao},
titleaddon = {清史稿},
location = {Beijing},
publisher = {Zhonghua}
}
@book{qingshi1999,
date = {1999},
title = {Qingshi gao},
shorttitle = {Gao},
titleaddon = {清史稿},
location = {Beijing},
publisher = {Zhonghua}
}
\end{filecontents*}
\bibliography{literature}
\renewbibmacro*{labeltitle}{%
\iffieldundef{label}
{\iffieldundef{shorttitle}
{\iffieldundef{titleaddon}{%
\printfield{title}%
\clearfield{title}%
}{%
\printfield{title}\addperiod\space\printfield[title]{titleaddon}%
\clearfield{title}\clearfield{titleaddon}}
}
{\printfield[title]{shorttitle}
}}
{\printfield{label}}}
%\DeclareFieldFormat{title}{#1} Uncomment if you want title NOT in italics
\begin{document}
\nocite{*}
\printbibliography
\end{document}
还有更多可能性来调整字段的使用,就像label
您的参考书目一样。例如,对于其他entrtypes
等等。对于您发布的内容,此解决方案效果很好。如果您需要更复杂的东西,您可以优化您的问题。
编辑:我稍微更新了代码。现在,它显示了您的常规示例和一个带有 的示例shorttitle
(我想,在这种情况下,中文中没有任何意义;对此表示歉意)。此外,如果titleaddon
用作标签的一部分,则现在将其格式化为 以title
保持其连贯性。您可以通过 重新定义它来关闭强调标题\DeclareFieldFormat
。要测试它,只需取消注释 praeambel 底部的特定命令,然后查看中文字体如何改变其形状。