\newcommand 后空格丢失

\newcommand 后空格丢失

我在论文中经常使用首字母缩写“CE”,无论是在方程式中还是方程式外。我发现在方程式中使用时,字母间距太大,我不喜欢,所以我使用命令\!来减少间距。当我手动执行此操作时,它似乎运行良好,但当我将其合并到命令中时,\newcommand结果是如果命令后存在空格,我总是会丢失一个空格。

有办法阻止这种情况吗?如果我可以在方程环境中使用一个命令,那就更好了。

\documentclass{article}
\begin{document}

% Commands
\newcommand\CE{{C\!E}}  % CE for equation environment
\newcommand\ce{$C\!E$}  % CE for inline writing

\ce. \ce this is a line.        % space lost after second \ce

$\CE$. $\CE$ this is a line.    % Works fine but cumbersome

$C\!E$. $C\!E$ this is a line.  % Works fine but would like this in a command

\end{document}

CE 间距图像

答案1

您有几个选择。除了 Zarko 的答案之外,宏通常应该跟在后面\,它有一个特殊的字符类,告诉 TeX 停止读取更多字符(它正在尝试找出宏名称)。或者您可以将其括在一个组中,例如{\ce}或甚至\ce{}

类别代码是什么?

不幸的是,空格 (cat 10) 虽然看起来很美观,但总会被 TeX 解析器吃掉。而{(cat 1)、}(cat 2)、$(cat 3) 和\(escape cat 0) 则不会。(字母字符是 cat 11)

相关内容