吃双倍空间

吃双倍空间

我如何才能得到一个命令来吃掉不必要的空间,请考虑以下内容:

\documentclass{article}
\newcommand{\mycommand}[1]{#1}
\begin{document}

    %Creates single spaces
    Discussed \mycommand{before} in section 1

    %Creaetes a double space
    Discussed \mycommand{} in section 3

\end{document}

我在其他地方有一个更复杂的命令,有时结果是“空”,在这种情况下会创建一个双倍空格(我不想要),上面实际上就是正在发生的事情。

我需要一些逻辑来检测参数是否为空,如果是,则占用其中一个空格。

答案1

在这个最小的例子中,只需声明

\newcommand{\mycommand}[1]{#1\unskip}

在此处输入图片描述

答案2

我认为这应该可以解决问题:

\newcommand{\mycommand}[1]{%
\if\relax\detokenize{#1}\relax%
\ignorespaces%
\else%
#1%
\fi}

相关内容