如何删除 biblatex 中日期分隔符之间的空格(样式 footnote-dw)

如何删除 biblatex 中日期分隔符之间的空格(样式 footnote-dw)

如果我使用 biblatex 的样式footnote-dw和德语文本选项date=short,日期的日、月、年会用空格分隔,但事实并非如此。

以下是 MWE:

\documentclass{scrbook}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @misc{ebel1992,
        author  = {Martin Ebel},
        title   = {Ein Lesemarathon und der Wunsch nach mehr: Der 16. Klagenfurter (30.06.1992) Wettbewerb um den »Ingeborg-Bachmann-Preis«},
        date    = {1992-06-30},
        howpublished = {in: Badische Zeitung},
        type    = {Nr. 148},
        addendum = {S. 8},
        keywords = {presse},
    }
\end{filecontents}

%%% Bibliographie
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[%
    style=footnote-dw,%
    date=short,%
    bibencoding=utf8,%
    backend=biber%
]{biblatex}
\addbibresource{\jobname.bib}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
Foo\cite{ebel1992}
\end{document}

这将创建以下脚注。请注意顶部的额外日期,这是我手动添加的,以显示日期应有的样子。 在此处输入图片描述

有人知道要做什么才能摆脱这些多余的空间吗?

答案1

我想我找到了解决这个问题的方法(感谢这篇文章这里)。必须将其添加到 biblatex 定义的文档序言中并覆盖默认设置:

%%% Fix um zwischen Tag/Monat und Monat/Jahr kein Leerzeichen zu setzen
\DefineBibliographyExtras{ngerman}{%
    \protected\def\mkbibdateshort#1#2#3{%
        \iffieldundef{#3}
        {}
        {\mkdatezeros{\thefield{#3}}\adddot
            %%% Kein Abstand zwischen Tag und Monate
            \iffieldundef{#2}{}{}}%
        \iffieldundef{#2}
        {}
        {\mkdatezeros{\thefield{#2}}%
            \iffieldundef{#1}
            {}
            %%% Kein Abstand zwischen Monat und Jahr
            {\iffieldundef{#3}{/}{\adddot}}}%
        \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}
{\mkdatezeros{\thefield{#1}}}}}%

如果有人知道“更清洁”的选项,请告诉我。

答案2

数字之间的空格在印刷上似乎是正确的(请参阅维基百科历法日期schmales 阅读)。但是,对我来说,它看起来也很不习惯。由于似乎我暂时还不能在这里发表评论,我想提一下 diff 作为一个新的答案,它会对您的代码片段进行更改,但如果想要在整个系统范围内更改此行为,则可以使用它:

diff --git a/tex/latex/biblatex/lbx/german.lbx b/tex/latex/biblatex/lbx/german.lbx
--- a/tex/latex/biblatex/lbx/german.lbx
+++ b/tex/latex/biblatex/lbx/german.lbx
@@ -28,13 +28,13 @@
     \iffieldundef{#3}
       {}
       {\mkdatezeros{\thefield{#3}}\adddot
-       \iffieldundef{#2}{}{\thinspace}}%
+       \iffieldundef{#2}{}{}}%
     \iffieldundef{#2}
       {}
       {\mkdatezeros{\thefield{#2}}%
        \iffieldundef{#1}
         {}
-        {\iffieldundef{#3}{/}{\adddot\thinspace}}}%
+        {\iffieldundef{#3}{/}{\adddot}}}%
     \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
   \savecommand\lbx@lfromlang
   \savecommand\lbx@sfromlang

编辑(不同格式的代码的含义):

它包含从第 28 行开始的 13 行文件german.lbx,并显示以 为前缀的行-被以 为前缀的行替换+\thinspace删除了 )。它还可以用于german.lbx通过以下方式以编程方式更改文件:修补实用程序,例如在Linux上。

相关内容