biblatex
n.d.
对于没有日期信息的条目,在参考书目中打印字符串(无日期).bib
(无日期) (由于这个问题)。
它以前不打印n.d.
条目@online
,但在当前版本 (3.6) 中可以打印。我的问题是,如何从所有条目中删除所有这样的n.d.
/nodate
字符串@online
,而保留其他字符串(如下@book
例所示,它仍应打印n.d.
)?
\documentclass{article}
\usepackage[style=authoryear-comp]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{lennon,
AUTHOR = "John Lennon",
TITLE = "Who did what in the Beatles"}
@online{google,
TITLE = "Google",
URL = "https://www.google.com"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\textcites{lennon}{google}
\printbibliography
\end{document}
答案1
答案已更新,并提供更好的解决方案。请参阅编辑历史记录以了解早期不太优雅的方法。
\literal{nodate}
labeldate 格式在 的最末尾插入了“nodate”标记作为备用标记\DeclareLabeldate
。我们可以@online
通过为 提供类型特定的定义来抑制条目的此标记\DeclareLabeldate
。使用下面的代码,labeldate
如果没有为条目定义合适的日期字段,则字段将直接显示为未定义,而不是“nodate” @online
。
\documentclass{article}
\usepackage[style=authoryear-comp]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{lennon,
AUTHOR = "John Lennon",
TITLE = "Who did what in the Beatles"}
@online{google,
TITLE = "Google",
URL = "https://www.google.com"}
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareLabeldate[online]{%
\field{date}
\field{year}
\field{eventdate}
\field{origdate}
\field{urldate}
}
\begin{document}
\textcites{lennon}{google}
\printbibliography
\end{document}