% \begin{myItemize}{topsepFRAC}{itemsepFRAC} ... \end{myItemize}
% \begin{myEnumerate}{topsepFRAC}{itemsepFRAC} ... \end{myEnumerate}
% \begin{myDescription}{topsepFRAC}{itemsepFRAC} ... \end{myDescription}
%
% These 3 environments are like their LaTeX counterparts with 3
% exceptions:
%  1. The space between paragraphs within a single item is set to
%     the standard paragraph space amount \parskip, and each such
%     new paragraph is indented by the standard LaTeX paragraph
%     indentation length \parindent.
%  2. ``topsepFRAC'' can be used to change the standard verticle
%     space between the last paragraph before the environment and the
%     first item and between the last item and the first paragraph
%     after the environment. The new value used for these lengths is
%     the standard value *times* the real number topsepFRAC. There-
%     fore, \begin{myItemize}{1}{...} will give the standard space
%     before and after the environment.
%  3. ``itemsepFRAC'' can be used to change the standard verticle
%     space between items. The new value used for this length is
%     the standard value *times* the real number itemsepFRAC. There-
%     fore, \begin{myItemize}{...}{1} will give the standard space
%     between items.
%
% Note: the verticle space before and after the environment will
% always be at *least* the standard space between paragraphs
% (i.e. the length ``\parskip'') -- even if topsepFRAC=0.
%
% The following are lengths needed by the environments
\newlength{\parsepPLUSitemsep}
\newlength{\originalParindent}
%
% myItemize
%
\newenvironment{myItemize}[2]
  {\setlength{\parsepPLUSitemsep}{\parsep}
   \setlength{\originalParindent}{\parindent}	% save original
   \setlength{\parsep}{\parskip}		% assigned to \parskip
   \setlength{\topsep}{#1\topsep}		% multiply 2 top space...
   \setlength{\partopsep}{#1\partopsep}		% ...parameters by arg #1
   \begin{itemize}		% overwrites \parindent and sets
				% default value for \itemsep
   \setlength{\parindent}{\originalParindent}	% restore \parindent
   \addtolength{\parsepPLUSitemsep}{\itemsep}	% form sum
   \setlength{\itemsep}{#2\parsepPLUSitemsep}	% take fraction of sum
  }%
  {\end{itemize}}
%
% myEnumerate
%
\newenvironment{myEnumerate}[2]
  {\setlength{\parsepPLUSitemsep}{\parsep}
   \setlength{\originalParindent}{\parindent}	% save original
   \setlength{\parsep}{\parskip}		% assigned to \parskip
   \setlength{\topsep}{#1\topsep}		% multiply 2 top space...
   \setlength{\partopsep}{#1\partopsep}		% ...parameters by arg #1
   \begin{enumerate}		% overwrites \parindent and sets
				% default value for \itemsep
   \setlength{\parindent}{\originalParindent}	% restore \parindent
   \addtolength{\parsepPLUSitemsep}{\itemsep}	% form sum
   \setlength{\itemsep}{#2\parsepPLUSitemsep}	% take fraction of sum
  }%
  {\end{enumerate}}
%
% myDescription
%
\newenvironment{myDescription}[2]
  {\setlength{\parsepPLUSitemsep}{\parsep}
   \setlength{\originalParindent}{\parindent}	% save original
   \setlength{\parsep}{\parskip}		% assigned to \parskip
   \setlength{\topsep}{#1\topsep}		% multiply 2 top space...
   \setlength{\partopsep}{#1\partopsep}		% ...parameters by arg #1
   \begin{description}		% overwrites \parindent and sets
				% default value for \itemsep
   \setlength{\parindent}{\originalParindent}	% restore \parindent
   \addtolength{\parsepPLUSitemsep}{\itemsep}	% form sum
   \setlength{\itemsep}{#2\parsepPLUSitemsep}	% take fraction of sum
  }%
  {\end{description}}

