我使用英式英语撰写文档,但我住在荷兰。在荷兰,短日期格式为 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
和并在 中使用它们。这可能看起来有点像希腊语,因为它本质上与\mkbibdateshort
dutch.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}