To simplify some text I created some commands. One command has no arguments. It uses math mode but is used inside normal text. I would like to remove any trailing space between the command and following text. This will allow me to simply the call such as \cmd sometext
instead of {\cmd}sometext
. Is there any way to create a negative space?
[Tex/LaTex] Remove space after command
macrosprogrammingspacing
Best Answer
If your command is truly a single macro without arguments, i.e.
\cmd
, then it gobbles spaces written after it anyway. To ensure that any command will absorb following spaces, just make the last thing to appear in it\ignorespaces
, which causes TeX to consciously discard space characters until the first non-space appears.By the way:
{\cmd}sometext
does not do what you think, if part of the action of\cmd
is to make definitions of some kind. Those definitions will be discarded inside the group created by{...}
unless you make them global. The way to have two items bump up against each other but be parsed separately is to write\cmd{}sometext
. However, as I said,\cmd
itself will eat spaces no matter how you define it.