我的 bibtex 库中有一个@inbook
参考文献,其年份未知。由于我使用 bibLaTeX authoryear 引用样式并进行了一些自定义,因此我的正常引用(已知年份)如下所示:
作者 1/作者 2/作者 3(年份)
但当没有定义年份时,它将在应该显示的位置显示参考文献的标题:
作者 1/作者 2/作者 3
为了改变这种行为,我必须重新定义什么?
答案1
您可以加载该xpatch
包,然后cite
按如下方式“修补” bib 宏:
\xpatchbibmacro{cite}{\usebibmacro{cite:label}}{\printnames{labelname}}{}{}
警告:可能会出现没有作者或年份的参考书目条目。在这种情况下,您建议的操作会导致空引用(不会打印任何内容)。需要进行更实质性的更改来处理此类情况,即:
\newbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
{\ifnameundef{labelname}
{\usebibmacro{cite:label}}
{\printnames{labelname}}%
\setunit{\addspace}}
{\printnames{labelname}%
\setunit{\nameyeardelim}}%
\usebibmacro{cite:labelyear+extrayear}}
{\usebibmacro{cite:shorthand}}}