%%
%% The LaTeX Companion, 2ed (second printing August 2004)
%%
%% Example 3-3-28 on page 150.
%%
%% Copyright (C) 2004 Frank Mittelbach, Michel Goossens,
%%    Johannes Braams, David Carlisle, and Chris Rowley
%%
%% It may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%%
%% See http://www.latex-project.org/lppl.txt for details.
%%

\documentclass{ttctexa}
\pagestyle{empty}
\setcounter{page}{6}
\setlength\textwidth{159.0pt}
\sloppy % as the column in the book is so small
\newenvironment{Description}
   {\begin{list}{}{\let\makelabel\Descriptionlabel
      \setlength\labelwidth{40pt}%
      \setlength\leftmargin{\labelwidth+\labelsep}}}%
   {\end{list}}

\StartShownPreambleCommands
\usepackage{calc,ifthen}   \newlength{\Mylen}
% definition of Description environment as before
\newcommand*\Descriptionlabel[1]{%
  \settowidth\Mylen{\textsf{#1:}}%   determine width
  \ifthenelse{\lengthtest{\Mylen > \labelwidth}}%
      {\parbox[b]{\labelwidth}%     term  > labelwidth
         {\makebox[0pt][l]{\textsf{#1:}}\\\mbox{}}}%
      {\textsf{#1:}}%               term <= labelwidth
  \hfill}
\StopShownPreambleCommands
\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}
