[Tex/LaTex] Description list with aligned descriptions

descriptionenumitemhorizontal alignmentlists

This forum thread is exactly what I'm looking for. I want my description environment to produce this:

Label is long   text 
lab2            blalballalaa
label3          possible second rule
label four      hello world

Someone offered this:

\newenvironment{mydescription}[1]                                                
  {\begin{list}{}%
   {\renewcommand\makelabel[1]{##1:\hfill}%
   \settowidth\labelwidth{\makelabel{#1}}%
   \setlength\leftmargin{\labelwidth}
   \addtolength\leftmargin{\labelsep}}}
  {\end{list}}

Which works great (the parameter is the longest label), except I think the enumitem should be able to do this. Unfortunately, the documentation for it is extremely confusing to me. Could someone show me how to achieve the same result with enumitem?

Best Answer

This is one possibility:

\documentclass{article}  
\usepackage{calc}  
\usepackage{enumitem}  

\begin{document}

\begin{description}[leftmargin=!,labelwidth=\widthof{\bfseries The longest label}]
  \item[The longest label] text
  \item[Short]  long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text
\end{description}

\end{document}

enter image description here