法语国际化,覆盖 babel 默认间距

法语国际化,覆盖 babel 默认间距

我正在用法语写我的论文。在文档中,我使用了规范名称ISO27001:2005,按照 Babel 惯例,ISO27001 :2005在分号前会加一个空格。

这种行为在所有文档中都是预期的,但当我写下这个名字时却不是。

告诉引擎忽略默认格式规则并写入:而不留额外空格的最佳方法是什么?

答案1

\documentclass{article}
\usepackage[french]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}

\newcommand\ISO{ISO27001:2005}
\begin{document}
ISO27001:2005

ISO27001\string:2005

{\NoAutoSpacing ISO27001:2005} %needs frenchb.ldf version 2.5f

{\shorthandoff{:}ISO27001:2005} 

\ISO
\end{document}

答案2

\shorthandoff{:}您可以在代码之前和\shorthandon{:}之后使用

答案3

用户指南提供了以下建议,用于在、、和之前babel局部抑制插入的额外空格(当frenchb设置了选项时) :在相应字符之前立即插入指令。:;!?\string

以下 MWE 展示了其工作原理:

\documentclass{article}
\usepackage[frenchb]{babel}
\begin{document}
ISO27001:2005

ISO27001\string:2005
\end{document}

相关内容