マクロ展開時に後ろの空白が無くなってしまうのを防ぐには
どうすればよいでしょうか?

以下のcodeで

\newcommand{\abc} {abc}
hello \abc world \abc.

\abcの後ろの空白が無視されて

hello abcworld abc.

という出力になってしまいます.
{\abc}と中括弧で括れば一応解決するのですが、
できればマクロ定義の方でなんとかしたいです.

ちなみに
\newcommand{\abc} {abc }
とするとピリオドの前にも空白が入ってしまい駄目でした.