I'm new to TeX/LaTeX, and I wish to be able to typeset item labels of a (description) list into multiple lines if needed. I purchased a copy of The LaTeX Companion and chapter 3 contains example code that does almost exactly what I want (somewhat modified listing 3-3-29 from tlc2):
\documentclass{article}
\pagestyle{empty} % produces empty heads and feet -- no page numbers
\usepackage{calc}
\newenvironment{Description}
{\begin{list}{}{\let\makelabel\Descriptionlabel
\setlength\labelwidth{40pt}%
\setlength\leftmargin{\labelwidth+\labelsep}}}%
{\end{list}}
\newcommand*\Descriptionlabel[1]
{\raisebox{0pt}[1ex][0pt]%
{\makebox[\labelwidth][l]%
{\parbox[t]{\labelwidth}%
{\hspace{0pt}#1:}}}}
\begin{document}
\begin{Description}
\item[Description] Returns from a function. If issued at top level, the
interpreter simply terminates, just as if end of input had been
reached.
\item[Errors] None.
\item[Return\\values]
Any arguments in effect are passed back to the caller.
\end{Description}
\end{document}
This works if the 'description' corresponding to the label has lines greater than or equal to the number of lines produced by the label. But if the label has more lines than the description, the following item is vertically set a bit too close to the item before, as shown below using the same code:
How can I get the correct(?) item spacing in the special case where the item label contains more lines than its description?
\item[Description] Returns from a function.\\