我把xspace放在我的大多数宏的末尾,例如
\newcommand*{\foobar}{foobar\index{foobar}\xspace}
但我刚刚发现,如果将宏放在textit
内,它就不会按预期工作,例如。
Test 1: \foobar. Test 2: \textit{\foobar}.
产生
测试1:foobar。测试2: foobar 。
在.
字符前有一个额外的空格。当然,我可以为这些情况制作一个重复的非xspace宏,但是我能以某种方式更正确地解决这个问题吗?
答案 0 :(得分:3)
我在/usr/share/texmf/doc/latex/tools/xspace.pdf中找到了“隐藏”的答案:
有时\ xspace可能会出错 决定,并在它是时添加一个空格 不需要。可能有所不同 这种行为的原因,但它可以 总是按照以下方式处理 使用{}的宏,因为这有效果 压制空间。
所以
Test 3: \textit{\foobar{}}.
产生
测试3: foobar 。