description

Opisywana lista nie ma zdefiniowanej domyślnej etykiety, zakłada się, że każda pozycja jest opatrzona własną etykietą (parametr polecenie \item). Standardową postać trudno uznać za zadowalającą, poniższa struktura

\noindent aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
\begin{description}
\item[i] aqq
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
\item[ii] bqq
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
\item[iii] bqq
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
\end{description}
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
będzie wyglądała:

jak widać na przykładzie występują trzy różne wielkości lewego marginesu, stwarza to niemiłe wrażenie, dobrze by było gdyby lewy margines w każdym wypadku był jednakowy, dla wszystkich linii wykazu, bez względu na długość etykiety.

Złożoność (i pogmatwanie) środowiska list nie pozwala na dużą swobodę, nie mniej jednak, możemy zdefiniować szereg odmian listy description.

Przykład 1: Lista dająca łatwą możliwość definiowania szerokości lewego marginesu

\newenvironment{Ventry}[1]{%
    \begin{list}{}
    		 {\renewcommand{\makelabel}[1]{%
		 				\textsf{##1:}\hfill}%
		  \settowidth{\labelwidth}{\textsf{#1:}}%
		  \leftmargin=\labelwidth%
		  \advance \leftmargin\labelsep}}%
    {\end{list}}
\begin{Ventry}{Rezultat}
\item[Opis] środowisko pozwala na zdefiniowanie listy o zadanej szerokości 
marginesu, jego szerokość wyznacza szerokość najdłuższej etykiety,
którą to należy podać jako argument
\item[Błędy] brak,
\item[Rezultat] jest zadowalający
\end{Ventry}
daje następujący efekt:

Przykład 2: Lista podobna do wyżej zdefiniowanej, ale zdefiniowano dodatkową własność, jeżeli etykieta jest dłuższa od określonej szerokości to opis jest umieszczany w następnej linii

\newlength{\Mylen}
%
\newcommand{\entrylabel}[1]{%
\settowidth{\Mylen}{\textsf{#1:}}%
\ifthenelse{\lengthtest{\Mylen > \labelwidth}}
	    {\parbox[b]{\labelwidth}
	    	{\makebox[0pt][l]{\textsf{#1:}}\\}}%
		{\textsf{#1:}}%
		\hfil\relax}
\newenvironment{entry}[1]%
    {\begin{list}{}%
	{\renewcommand{\makelabel}{\entrylabel}%
			  \settowidth{\labelwidth}{\textsf{#1:}}%
			  \leftmargin=\labelwidth%
			  \advance \leftmargin\labelsep}}%
    {\end{list}}
%
\noindent aqq
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
\begin{entry}{Błędy}
\item[Opis] środowisko pozwala na zdefiniowanie listy o zadanej szerokości 
marginesu, jego szerokość wyznacza szerokość wybranej etykiety,
którą to należy podać jako argument
\item[Błędy] brak,
\item[Rezultat] jest zadowalający
\end{entry}
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 

a oto przykład
Przykład 3: Lista gdzie etykieta podlega procesowi łamania na szerokości wyznaczonej przez długość argumentu

\newcommand{\Myentrylabel}[1]{%
\raisebox{0pt}[1ex][0pt]{%
     \makebox[\labelwidth][l]{%
	 \parbox[t]{\labelwidth}{\hspace{0pt}\textsf{#1:}}}}}%
\newenvironment{Myentry}[1]%
	{\begin{list}{}
	{%
	  \settowidth{\labelwidth}{\textsf{#1:}}%
	  \leftmargin=\labelwidth%
	  \advance \leftmargin\labelsep%
	 \renewcommand{\makelabel}{\Myentrylabel}}}%
	{\end{list}}
%
\noindent aqq
aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
\begin{Myentry}{Błędy}
\item[Opis] środowisko pozwala na zdefiniowanie listy o zadanej szerokości 
marginesu, jego szerokość wyznacza szerokość wybranej etykiety,
którą to należy podać jako argument
\item[Błędy] brak,
\item[Rezultat] jest zadowalający, a nawet jeszcze bardziej, bowiem 
zbyt długa etykieta podlega procesowi łamania
\end{Myentry}