在 December 中使用\today
和\usepackage[norsk]{babel}
( babel <v3.8l>
) 时,月份名称后面会多出一个空格。如何解决这个问题?
\documentclass{article}
\usepackage[norsk]{babel}
\begin{document}
\day12\month12\year2011
\today
12. desember 2011
\end{document}
注 1
哈维尔·贝佐斯写道该问题已在即将推出的babel
3.9 版本中得到修复。
笔记2
3.9 版于babel
2013 年 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
文件被更正时,该代码也不会造成任何损害。