我使用 UTF-8 编码来输入法语文档,其中 guillemets 的定义如下:
\DeclareUnicodeCharacter{AB}{\og}
\DeclareUnicodeCharacter{BB}{\fg\xspace}
以及 Babel 包:
\usepackage[francais]{babel}
但是,当我输入类似的文本时ceci cela «~quoted~» ceci cela
,开头的空格是错误的:
请注意,打开的 guillemet 之前的间距太小,而之后的间距太大。关闭的 guillemet 间距正确。我该如何修复它?
答案1
空格已由\og
和插入\fg
,因此您不应输入~
。您可以考虑将 Unicode 字符的定义更改为
\DeclareUnicodeCharacter{AB}{\og\ignorespaces}
\DeclareUnicodeCharacter{BB}{\unskip\fg}
这样输入
Ces simulations «directes» sont ainsi
Ces simulations « directes » sont ainsi
将是等效的。
请注意,这\xspace
什么也不做。
如果你坚持要输入«~directes~»
,那么开放的 guillemets 字符的定义可能是
\makeatletter
\DeclareUnicodeCharacter{AB}{%
\og\@ifnextchar~{\@gobble}{}}
\makeatother
随便你怎么说,但我觉得这种间距很糟糕。;-)