newcommand 中的空格

newcommand 中的空格

我试图定义一个\newcommand包含\item*(星号前没有空格)的定义,但是在显示命令时,我发现有一个额外的空格,从而阻止了 moodlemulti环境正常工作。

有什么方法可以防止\newcommand添加这个空间吗?

这是代码示例(使用 编译pdflatex

\documentclass{article}

\newcommand{\itemstar}{\item*}
\show\itemstar

\begin{document}
abc
\end{document}

答案1

TeX 从文件中读取文本并将其标记化。控制序列(无论是否以空格结束)被标记化为一个标记,后面跟着下一个标记。文本\item*被标记化为 token[\item]token[*]。定义宏 \itemstar 时,这对标记会保存到内存中。当打印宏的内容(由原语\show)时,这两个标记将以标准形式打印:每个控制序列标记后面都跟有空格。

您可以在输入中写入:\item*\item *。这两种情况都被标记为 token[\item]token[*] (在 TeX 中它们之间没有区别),并且这对标记被打印回为\item *

相关内容