The following code defines an environment that offsets text vertically (5pt above and below) and horizontally (2em from the left). When compared to a simple \hspace{2em}, however, you can see that the environment introduces mysterious (unwanted) horizontal space. What is causing this and how can it be eliminated?
\documentclass{article}
\setlength{\parindent}{0pt}
\newenvironment{offset}
{\par\vspace{5pt}\hspace{2em}}{\par\vspace{5pt}}
\begin{document}
Surrounding text.
\begin{offset}
Foo
\end{offset}
Surrounding text
\hspace{2em}Foo %for comparison
\end{document}
Ps. I've used \par to force a new paragraph in the absence of a carriage return.
Pss. If my objective with the environment can be realized more elegantly, I'd appreciate the recommendation.

quoteif you just want a start of paragraph indent use\parindent. Either of these would not start the paragraph prematurely and cause the bad space from the end oof line, adding\ignorespacesmasks the problem but the reral problem is the apparent mis-use of\hspace– David Carlisle Dec 30 '14 at 01:51