我目前使用 biblatex/biber 和 'chem-rsc' 样式在 latex 中引用我的参考文献。不幸的是,使用这种样式时,参考书目中的 @online 条目不会显示访问日期。现在,我尝试重新定义 URL 的参考书目格式,以便获得以下格式(德语):
在线访问 URL:>>URL<<,查看 >>urldate<<
经过一番研究,我把来自与该主题相关的不同线程的以下代码拼凑在一起。
梅威瑟:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[style=chem-rsc]{biblatex}
\begin{filecontents}{references.bib}
@Online{AgIGESTIS,
institution = {IFA},
organization = {IFA},
urldate = {2023-01-30},
title = {Eintrag zu Silberiodid in der GESTIS-Stoffdatenbank},
url = {https://gestis.dguv.de/data?name=122731},
}
\end{filecontents}
\addbibresource{references.bib}
\NewBibliographyString{available}
\NewBibliographyString{cited}
\DefineBibliographyStrings{ngerman}{%
available = {online unter URL},
cited = {aufgerufen am},
}
\DeclareFieldFormat{url}{\bibstring{available}\addcolon\space\url{#1}}
\DeclareFieldFormat{urldate}{#1}
\renewbibmacro*{url+urldate}{%
\printfield{url}\addcomma\space
\printtext{\bibstring{cited}}
\printfield{urldate}
}
\begin{document}
Lorem ipsum\nocite{AgIGESTIS}
\printbibliography
\end{document}
结果:
虽然我通常能从中获取正确的格式,但 urldate 并未打印出来。显然,statemend\printfield{urldate}
在这里不起作用。我也尝试了\printurldate
或\printfield{urlday}
,但似乎都没有返回任何内容。知道我做错了什么吗?还有其他方法可以显示日期吗?
答案1
urldate
参考书目文件中的字段分别被解析为其biblatex
组件biber
、urlyear
和urlmonth
其他urlday
各种字段。biblatex
文档中记录了这一点:对于 v3.18b(2022 年 7 月 12 日),请参阅第 4.2.4.3 节“日期组件字段”:
See table 10 for an overview of how the date fields in bib files are related to the
date fields provided by the style interface.
引用表描述了您可以在格式化宏中使用的所有结果字段。用于\iffieldundef
测试现有字段。
这使您可以按照您想要的最合适的日期格式来格式化日期。
因此,在重新定义的url+urldate
bib 宏中,您必须替换该行
\printfield{urldate}
经过
\printurldate
并通过选项设置日期格式。(感谢@moewe!)
(如果需要,您可以使用低级别来实现它
\printfield{urlyear}-\printfield{urlmonth}-\printfield{urlday}
并添加\iffieldundef
测试以允许不完整的日期,例如没有日期。)