I use an description environment defined in enumitem. First, my code is:
\documentclass{article}
\usepackage{geometry}
\usepackage{enumitem}
\usepackage{environ}
\usepackage{lipsum}
\newlist{descleft}{description}{1}
\setlist[descleft]{align=parleft, leftmargin=!, labelwidth=4cm, labelsep=1.5em, font=\normalfont\sffamily}
\newlength\widest
\makeatletter
\NewEnviron{descleftind}{%
\vbox{%
\global\widest=0pt%
\def\item[##1]{%
\settowidth@tempdima{\textsf{\begin{array}[t]{@{}l@{}}##1\end{array}}}%
% \settowidth@tempdima{\textsf{##1}}%
\ifdim@tempdima>\widest\relax
\global\widest=@tempdima\fi%
}%
\setbox0=\vbox{\BODY}%
}
\begin{description}[
align=parleft,
labelsep=1.5em,
leftmargin=\dimexpr\widest+2em+0.05\columnwidth\relax,
labelindent=0.05\columnwidth,
labelwidth=\dimexpr\widest+0.5em\relax,
% topsep=0pt,
% parsep=0pt,
% partopsep=0pt,
% itemsep=0pt,
font=\normalfont\sffamily]
\BODY
\end{description}%
}
\makeatother
\begin{document}
\subsubsection{Test 1}
\begin{descleft}
\item[Short] \lipsum[1-7][1-2]
\item[A really really long label] \lipsum[1-7][3-4]
\end{descleft}
\subsubsection{Test 2}
\begin{descleftind}
\item[Short] \lipsum[1-7][1-2]
\item[A really really long label] \lipsum[1-7][3-4]
\end{descleftind}
\subsubsection{Test 3}
Test line
\begin{descleftind}
\item[Short] \lipsum[1-7][1-2]
\item[A really really long label] \lipsum[1-7][3-4]
\end{descleftind}
\end{document}
descleft environment is defined by using the macro provided by enumitem, whereas descleftind is defined in \NewEnviron macro of the environ package. As both of the definitions do not have any vertical spacing option in the description environment, I guessed that the results would have no difference at least in vertical spacing. The section Test 1 contains the result of descleft while Test 2 and Test 3 have the results of descleftind. What is weird at this point is that Test 2 has unintended vertical spacing between the section text and the list. However, a text between these does not influence the spacing as shown in Test 3. What's happening in this code and what should I do to remove the spacing? I guess the \vbox macro has the key.
Edit: I am currently using a makeshift that assigns a manual spacing using \vspace:
\NewEnviron{descrightind}[1][0pt]{%
\vspace{#1}
\vbox{
\global\widest=0pt%
\def\item[##1]{%
\settowidth\@tempdima{\textsf{\begin{tabular}[t]{@{}l@{}}##1\end{tabular}}}%
\ifdim\@tempdima>\widest\relax
\global\widest=\@tempdima\fi%
}%
\setbox0=\vbox{\BODY}%
}
\begin{description}[
align=parright,
labelsep=1.5em,
leftmargin=\dimexpr\widest+2em+0.05\columnwidth\relax,
labelindent=0.05\columnwidth,
labelwidth=\dimexpr\widest+0.5em\relax,
font=\normalfont\sffamily]
\BODY
\end{description}%
}
For example,
\subsubsection{Test 3}
Test line
\begin{descleftind}[-2em]
\item[Short] \lipsum[1-7][1-2]
\item[A really really long label] \lipsum[1-7][3-4]
\end{descleftind}

