德语短日期中的每个句号(以及urldate
所有其他的date
)后面都有一个小空格biblatex
:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{literature.bib}
@online{foobar,
url = {https://www.foo.bar},
date = {2019-09-24},
urldate = {2019-09-24},
}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage{url}
\usepackage[date=short]{biblatex}
\bibliography{literature.bib}
\begin{document}
\nocite{foo,foobar}
\printbibliography
\end{document}
为什么?我该如何摆脱它?
答案1
\thinspace
德语短日期中的每个句号后面确实都有一个biblatex
。它是故意插入的german.lbx
:
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
{\mkdayzeros{\thefield{#3}}\adddot
\iffieldundef{#2}{}{\thinspace}}%
\iffieldundef{#2}
{}
{\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}
{}
{\iffieldundef{#3}{/}{\adddot\thinspace}}}%
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
{\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
发现这一点后,我在 biblatex 文档中搜索它,但没有成功。然后我在这里搜索并发现了以下内容:
isodata 中的错误?:德语短日期句号后有水平空格。因此,该包isodate
似乎做了同样的事情。
Ulrike Fischer 建议我查看一下文档,所以我就这么做了。结果如下:
德语数字格式的间距(24. 12. 2000 和 24. 12. 00)取自 Duden [2],并且是使用德语衍生词之一时的默认设置。[...]
参考
[2] DUDEN Band 1. 德语法律文书。 21. Auflage,Dudenverlag,曼海姆,德国,1996年。
我在网上没有找到类似的建议https://duden.de,我也不喜欢这种间距。
为了摆脱它,只需重新定义\mkbibdateshort
from german.lbx
:
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{literature.bib}
@online{foobar,
url = {https://www.foo.bar},
date = {2019-09-24},
urldate = {2019-09-24},
}
\end{filecontents}
\usepackage[ngerman]{babel}
\usepackage{url}
\usepackage[date=short]{biblatex}
\bibliography{literature.bib}
\DefineBibliographyExtras{ngerman}{% from german.lbx
\protected\def\mkbibdateshort#1#2#3{%
\iffieldundef{#3}
{}
{\mkdayzeros{\thefield{#3}}\adddot
\iffieldundef{#2}{}{}}%<-\thinspace removed
\iffieldundef{#2}
{}
{\mkmonthzeros{\thefield{#2}}%
\iffieldundef{#1}
{}
{\iffieldundef{#3}{/}{\adddot}}}%<-\thinspace removed
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
{\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
}
\begin{document}
\nocite{foo,foobar}
\printbibliography
\end{document}
如果这变得更容易的话,那不是很棒吗?