![十二月使用 \usepackage[norsk]{babel} 在 \today 月份后面添加额外空格](https://linux22.com/image/243639/%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BD%BF%E7%94%A8%20%5Cusepackage%5Bnorsk%5D%7Bbabel%7D%20%E5%9C%A8%20%5Ctoday%20%E6%9C%88%E4%BB%BD%E5%90%8E%E9%9D%A2%E6%B7%BB%E5%8A%A0%E9%A2%9D%E5%A4%96%E7%A9%BA%E6%A0%BC.png)
在 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
文件被更正时,该代码也不会造成任何损害。