You could just copy the relevant changes form parskip.sty
and wrap them in an environment. I named it Parskip
(uppercase P
!) because \parskip
is already defined as a length an thus there can't be an environment named parskip
(lowercase p
).
\documentclass{article}
\makeatletter
\newenvironment{Parskip}{%
\par
\parskip=0.5\baselineskip \advance\parskip by 0pt plus 2pt
\parindent=\z@
\def\@listI{\leftmargin\leftmargini
\topsep\z@ \parsep\parskip \itemsep\z@}
\let\@listi\@listI
\@listi
\def\@listii{\leftmargin\leftmarginii
\labelwidth\leftmarginii\advance\labelwidth-\labelsep
\topsep\z@ \parsep\parskip \itemsep\z@}
\def\@listiii{\leftmargin\leftmarginiii
\labelwidth\leftmarginiii\advance\labelwidth-\labelsep
\topsep\z@ \parsep\parskip \itemsep\z@}
\partopsep=\z@
}{\par}
\makeatother
\usepackage{lipsum}%just for demonstration
\begin{document}
Here's a paragraph with regular indentation.
\lipsum[1-3]
\begin{Parskip}
The paragraphs in this block will have single space and no indent
and will not have weird spacing issues with lists.
\lipsum[2]
\begin{itemize}
\item One
\item Two
\item Three
\end{itemize}
\lipsum[3-4]
\end{Parskip}
\lipsum[2]
\begin{itemize}
\item One
\item Two
\item Three
\end{itemize}
\lipsum[3-4]
\end{document}

\makeatletter
/-other
is to (de)activate @
as part of macro names. I used lipsum
to add some more text for this demo, but it is not necessary for your real document.
\documentclass...
and ending with\end{document}
. This would help us a lot to help you.