我已经尝试使用已发布的代码在这个问题中将“nd”写入不带日期的引用条目。但是,我没有得到想要的结果。我读过几个类似的问题,但都没有成功。
我使用 biblatex、ieee 参考样式,并在 bib 文档中有不同类型的参考资料:网站、书籍、文章等。有人可以用简单的语言解释如何做我想要的吗?
例如,下一个代码在没有日期字段的地方写入“nd”。但其他参考资料中的每个日期也变成“nd”。
\newcommand{\mkbibnodate}{n\adddot d\adddot}
\AtEveryCitekey{\iffieldundef{labelyear}{\restorefield{labelyear}{\mkbibnodate}}{}}
\AtEveryBibitem{\iffieldundef{labelyear}{\restorefield{year}{\mkbibnodate}}{}}
这里我展示了一个最小的可编译 mi 代码示例,其中保留了日期(感谢 moewe 的创意)。您可以将第一个代码片段添加到序言中,然后您会看到字段 date 如何变为“nd”。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[
style=ieee,
sorting=none
]{biblatex}
\begin{filecontents}{bibliography.bib}
@online{Foundation,
author = {Foundation, Python Software},
title = {{re — Operaciones con expresiones regulares}},
url = {https://docs.python.org/es/3/library/re.html},
urldate = {2021-07-26}
}
@book{Hai-Jew2017,
address = {Cham},
editor = {Hai-Jew, Shalin},
pages = {XXII, 295},
publisher = {Springer International Publishing},
title = {{Data Analytics in Digital Humanities}},
year = {2017}
}
\end{filecontents}
\addbibresource{bibliography.bib}
\begin{document}
\nocite{*}
\printbibliography[]
\end{document}
非常感谢您的帮助!=)
答案1
这些解决方案非常依赖于样式,但这里有一个应该适用于biblatex-ieee
。如果文件中没有给出日期,它将在参考书目样式尝试打印日期的所有地方打印“nd” .bib
。它通过简单地重新定义date
bibmacro 来实现。
\documentclass{article}
\usepackage[
style=ieee,
sorting=none
]{biblatex}
\renewbibmacro*{date}{%
\iffieldundef{year}
{\bibstring{nodate}}
{\printdate}}
\begin{filecontents}{\jobname.bib}
@online{Foundation,
author = {{Python Software Foundation}},
title = {{re} -- Operaciones con expresiones regulares},
url = {https://docs.python.org/es/3/library/re.html},
urldate = {2021-07-26},
langid = {spanish},
}
@book{Hai-Jew2017,
address = {Cham},
editor = {Hai-Jew, Shalin},
pagetotal = {XXII, 295},
publisher = {Springer International Publishing},
title = {Data Analytics in Digital Humanities},
year = {2017},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}