更改 biblatex 短日期格式

更改 biblatex 短日期格式

我使用英式英语撰写文档,但我住在荷兰。在荷兰,短日期格式为 dd-mm-yyyy,而不是英国的 dd/mm/yyyy。

我如何让 biblatex 将此日期格式用于其短日期?

我无法使用该解决方案这个答案回答相关问题,因为这也会改变参考书目的本地化,坦率地说,其他答案对我来说几乎是天方夜谭。肯定有更简单的方法吧?

我尝试添加\usepackage[dutch]{datetime2},,\DTMsetdatestyle{dutch}但没有任何效果。

梅威瑟:

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{key,
    author = {A. Author},
    title = {Some title},
    url = {example.org},
    urldate = {2019-12-31}
}
\end{filecontents}

\usepackage[british]{babel}
\usepackage[backend=biber,style=ieee]{biblatex}

\addbibresource{\jobname.bib}

\begin{document}

\nocite{key}

\printbibliography

\end{document}

使用\usepackage[dutch]{babel}能够提供正确的日期格式,因此应该是可能的。

当前输出为

A. Author, “Some title”, [Online]. Available: example.org (visited on 31/12/2019).

期望输出:

A. Author, “Some title”, [Online]. Available: example.org (visited on 31-12-2019).

答案1

您可以从荷兰语模块复制日期格式宏\mkbibdatelong和并在 中使用它们。这可能看起来有点像希腊语,因为它本质上与\mkbibdateshortdutch.lbx\DefineBibliographyExtras接受的答案正文和参考书目采用两种语言,但日期格式不同(除了链接的答案使用了一个新.lbx文件,而我们只是用一个略有不同的命令将代码写入序言中),但我觉得这是预期的做法。虽然biblatex可以让您使用选项(例如urldate=long/ urldate=short)轻松地在同一语言的不同格式之间进行选择,但如果您想使用语言文件不支持的格式,则会更加复杂,因为这涉及重新定义一个或多个负责打印日期的宏。

\documentclass{article}

\usepackage[british]{babel}
\usepackage[backend=biber,style=ieee]{biblatex}

\DefineBibliographyExtras{british}{%
  \protected\def\mkbibdatelong#1#2#3{%
    \iffieldundef{#3}
      {}
      {\stripzeros{\thefield{#3}}%
       \iffieldundef{#2}{}{\nobreakspace}}%
    \iffieldundef{#2}
      {}
      {\mkbibmonth{\thefield{#2}}%
       \iffieldundef{#1}{}{\space}}%
    \iffieldbibstring{#1}
      {\bibstring{\thefield{#1}}}
      {\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
  \protected\def\mkbibdateshort#1#2#3{%
    \iffieldundef{#3}
      {}
      {\mkdayzeros{\thefield{#3}}%
       \iffieldundef{#2}{}{\mbox{-}}}%
    \iffieldundef{#2}
      {}
      {\mkmonthzeros{\thefield{#2}}%
       \iffieldundef{#1}{}{\mbox{-}}}%
    \iffieldbibstring{#1}
      {\bibstring{\thefield{#1}}}
      {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{key,
    author = {A. Author},
    title = {Some title},
    url = {example.org},
    urldate = {2019-12-31}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{key}

\printbibliography
\end{document}

访问日期:2019-12-31

相关内容