有时我想在\titleaddon
或任何字段中使用日期,但无论\printdate
是\bibdate
还是\mkbibdate
...都不起作用,尽管我已经加载了isodate
。
\documentclass{scrartcl}
\usepackage{etex}
\usepackage{filecontents}
\usepackage[main=ngerman]{babel}
\usepackage[ngerman]{isodate}
\usepackage[pdftex]{hyperref}
\usepackage[style=philosophy-modern, sortlocale=auto, sorting=nyvt,
alldates=terse, eventdate=comp,
language=ngerman, origdate=comp,
datezeros=false,backend=biber,labeldateparts=true,
autolang=hyphen, clearlang = true]{biblatex}
\begin{filecontents*}{thebib.bib}
@Book{Kant:KrV,
author = {Immanuel Kant},
title = {Kritik der reinen Vernunft},
titleaddon = {\autocap zuerst vorgelesen am \mydate{1780-07-19}},
language = {german},
year = 1781,
publisher = {Hartknoch},
location = {Riga}}
\end{filecontents*}
\addbibresource{thebib.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
其他可能性是
\titleaddon{\autocap zuerst vorgelesen am \mydaterange{1780-07-19}{1781-11-07}}
\titleaddon{\autocap zuerst vorgelesen am \mydate{1780-07-19T15:30:00}}
用于讲座
\mydaterange{1780-07-19T15:30:00}{1780-07-19T17:00:00}
答案1
biblatex
有自己的\printdate
,用于打印条目date
的。因此在引文和参考书目中,isodate
被\printdate
的biblatex
定义所掩盖。最简单的解决方案是保存\printdate
在另一个宏中并使用它。
\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage[main=ngerman]{babel}
\usepackage[ngerman]{isodate}
\let\idprintdate=\printdate
\usepackage[style=philosophy-modern]{biblatex}
\begin{filecontents*}{\jobname.bib}
@book{Kant:KrV,
author = {Immanuel Kant},
title = {Kritik der reinen Vernunft},
titleaddon = {\autocap{z}uerst vorgelesen am \idprintdate{1780-07-19}},
language = {german},
year = 1781,
publisher = {Hartknoch},
location = {Riga},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
您还可以使用datetime2
,其命令名称不会与biblatex
命令冲突。而不是isodate
加载
\usepackage[useregional]{datetime2}
然后使用
titleaddon = {\autocap{z}uerst vorgelesen am \DTMdate{1780-07-19}},
\bibdate
和\mkbibdate
未由 定义biblatex
。有宏\mkbibdatelong
和\mkbibdateshort
,但您不能在这种情况下使用它们,它们必须对date
中的 -like 字段进行操作.bbl
。还有一些以 开头的宏\bibdate...
,但它们主要通过 的宏自定义日期输出biblatex
,它们本身不会打印日期。