十二月使用 \usepackage[norsk]{babel} 在 \today 月份后面添加额外空格

十二月使用 \usepackage[norsk]{babel} 在 \today 月份后面添加额外空格

在 December 中使用\today\usepackage[norsk]{babel}( babel <v3.8l>) 时,月份名称后面会多出一个空格。如何解决这个问题?

\documentclass{article}
\usepackage[norsk]{babel}
\begin{document}
\day12\month12\year2011
\today

12. desember 2011
\end{document}

2011年12月12日


注 1

哈维尔·贝佐斯写道该问题已在即将推出的babel3.9 版本中得到修复。

笔记2

3.9 版于babel2013 年 3 月发布。

答案1

该文件norsk.dtx包含以下定义\today

\def\today{\number\day.~\ifcase\month\or
    januar\or februar\or mars\or april\or mai\or juni\or
    juli\or august\or september\or oktober\or november\or desember
    \fi
    \space\number\year}

并且有一个虚假的空白区域产生了额外的空间;如果你想要抑制这个空格,你需要在文档的前言部分添加以下几行

\AtBeginDocument{\def\today{\number\day.~\ifcase\month\or
    januar\or februar\or mars\or april\or mai\or juni\or
    juli\or august\or september\or oktober\or november\or desember%
    \fi
    \space\number\year}}

norsk我认为应该将此事报告给该模块的维护者babel

答案2

虽然有点晚了,但仍然值得添加此注释。

当只涉及 Norsk 时,\today在文档开头重新定义是可以的。但是,当涉及两种或更多种语言时,这样做是不正确的:任何命令\selectlanguage{norsk}都会重新出现有缺陷的定义。

最安全的做法是

\def\datenorsk{\def\today{\number\day.~\ifcase\month\or
    januar\or februar\or mars\or april\or mai\or juni\or
    juli\or august\or september\or oktober\or november\or desember\fi
    \space\number\year}}

因为 的职责之一\selectlanguage{norsk}是发布\datenorsk。如果此代码在序言中,则一切都会好起来。当norsk.ldf文件被更正时,该代码也不会造成任何损害。

相关内容