参考书目:如何在任何字段中使用日期?

参考书目:如何在任何字段中使用日期?

有时我想在\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\printdatebiblatex定义所掩盖。最简单的解决方案是保存\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,它们本身不会打印日期。

相关内容