I use linguex together with own defined commands to get grammatical categories typeset in small-caps. For instance, I have \newcommand{\sg}{\textsc{sg}} to typeset the SG (=singular) gloss. This is also convenient if I want to change my glossing scheme. This creates however a slight inconvenience, since commands "gobble" the space after them. So in order to get the glosses correct I have to put {} after each such command, as shown in the following MWE:
\documentclass{article}
\usepackage{linguex}
\newcommand{\sg}{\textsc{sg}}
\begin{document}
I would like this to work, but it doesn't:
\exg. I am here! \\
1\sg be.1\sg here \\
Instead, I have to use this syntax:
\exg. I am here! \\
1\sg{} be.1\sg{} here \\
\end{document}
Using \xspace in the command definition doesn't help. Is there some other solution which can help me avoid using {} all the time?

{}issue, but you might be interested to know that there is a packageleipzigthat provides a lot of macros for gloss abbreviations, plus has functionality to work withglossariesand produce a list of the gloss abbreviations used throughout the document and their full forms. – Jason Zentz Mar 02 '15 at 17:39\exguses spaces for splitting the input into parts so as to be able to align them. But after\sgthere is no space, because it is ignored at tokenization time and so it's not seen during the action of the macro expansion processor. David's trick requires special formatting, adding{}doesn't. Would you be satisfied if instead of\sg{}you had to type\sg*? Otherwise, I can offer a syntax where the different items are separated, say, by//– egreg Mar 02 '15 at 18:22{}and then I get misaligned examples. So changing the separator will probably not solve my problem. – Ariel Mar 03 '15 at 17:09.after the command, which shouldn't be printed if it is followed by space, but otherwise it should appear. So `\sg.\masc.' could give SG.MASC – Ariel Mar 03 '15 at 17:22