我如何才能得到一个命令来吃掉不必要的空间,请考虑以下内容:
\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}