\documentclass{article} \usepackage{hyperref} \title{Customizing lists\\with the\\\textsf{enumitem} package} \author{Javier Bezos\footnote{For bug reports, comments and suggestions go to \href{http://www.texytipografia.com/contact.php}% {http://www.texytipografia.com/contact.php}, or to my postal address: Apartado 116.035, E-28080 Madrid, Spain. English is not my strong point, so contact me when you find mistakes in the manual. Other packages by the same author: \textsf{gloss} (with Jos\'e Luis D\'{\i}az), \textsf{accents, tensind, esindex, dotlessi, titlesec, titletoc}.}} \date{Version 1.1\\2005/05/12} \IfFileExists{enumitem.sty}{\usepackage{enumitem}}{} \addtolength{\topmargin}{-3pc} \addtolength{\textwidth}{6pc} \addtolength{\oddsidemargin}{-2pc} \addtolength{\textheight}{7pc} \raggedright \parindent1.8em \parskip0pt \begin{document} \maketitle \section{Introduction} When I began to use \LaTeX{} several year ago, two particular points annoyed me because I found customizing them was very complicated ---headlines/footlines and lists. A new way to redefine the former is accomplished in my own \textit{titlesec} package, but none was availiable to customize the latter except: \begin{itemize} \item \textsf{enumerate}, which just allows to change the label and it does it pretty well (or almost, as in Spanish a standard label is \textit{a}) which cannot be set with \verb|\emph{a})| and one must write \verb|\itshape a\/\upshape)|). \item \textsf{mdwlist}, which only ``provides some vaguely useful list-related commands and environments,'' as its manual states, and not a coherent way of handling lists. \item \textsf{paralist}, which provides lists within a paragraph (the original purpose of this package), a few other hard-wired specific changes and the optional argument of \textsf{enumerate}. Note \textsf{enumitem} does not allow grouping items within a paragraph yet. \end{itemize} One of the main drawbacks of the standard \verb|list| is its weird parameters, whose meaning is not always obvious. In order to provide a cleaner interface two approaches were possible: either defining new lists, or introducing a new syntax making the standard lists easier to customize. For marks I took the first approach in titlesec, just because I did not manage to find a satisfactory solution with the \LaTeX{} internal macros, but since lists are in some sense more ``complete'' than sections and marks, I have taken here the second approach. In the interface a sort of ``inheritance'' is used. You can set globally the behaviour of lists and then override several parameters of, say, enumerate and then in turn override a few paremeters of a particular instance. The values will be searched in the hierarchy. This is basically an advance of a project which I am working on which will add this kind of inheritance to other structures of \LaTeX{}. \section{The package} This package is intended to ease customizing the three basic list environments: \verb|enumerate|, \verb|itemize| and \verb|description|. It extends their syntax to allow an optional argument where a set of parameters in the form \verb|key=value| are available: \begin{itemize} \item Vertical spacing: \begin{itemize} \item \verb|topsep| \item \verb|partopsep| \item \verb|parsep| \item \verb|itemsep| \end{itemize} \item Horizontal spacing: \begin{itemize} \item \verb|leftmargin| \item \verb|rightmargin| \item \verb|listparindent| \item \verb|labelwidth| \item \verb|labelsep| \item \verb|itemindent| \end{itemize} \end{itemize} These are equivalent to the well known list parameters, but two of them, namely \verb|leftmargin| and \verb|labelsep|, can have in addition the special value of \verb|*| as described below. The following new parameters are provided: \begin{itemize} \item \verb|font|. Sets the label font. Useful when the label is changed with the optional argument of \verb|\item|. \item \verb|label|. Sets the label to be used in the current level. A set of starred versions of \verb|\alph|, \verb|\Alph|, \verb|\arabic|, \verb|\roman| and \verb|\Roman|, without argument stand for the current counter in \verb|enumerate|.\footnote{Actually, the asterisk is currently the argument but things may change. Consider them as starred variants and follow the corresponding syntax.} Thus \begin{verbatim} \begin{enumerate}[label=\emph{\alph*})] \end{verbatim} prints \textit{a}), \textit{b}), and so on (this is a standard style in Spanish). A fancier example (which looks ugly, but it is intended only to illustrate what is possible; requires \textsf{color} and \textsf{pifont}): \begin{verbatim} \begin{enumerate}[label=\protect\fcolorbox{blue}{yellow}{\ding{\value*}}, start=172] \end{verbatim} \item \verb|ref|. By default, \verb|label| sets also the form of cross references and \verb|\the...|, but you can define a different format. For example, to remove the right parethesis: \begin{verbatim} \begin{enumerate}[label=\emph{\alph*}),ref=\emph{\alph*}] \end{verbatim} In both \verb|label| and \verb|ref|, the counters can be used as usual: \begin{verbatim} \begin{enumerate}[label=\theenumi.\arabic*.] \end{verbatim} or \begin{verbatim} \begin{enumerate}[label=\arabic{enumi}.\arabic*.] \end{verbatim} (provided the current level is the second one). Note the \verb|label|s are \textit{not} accumulated to form the reference. If you want, say, something like 1.\textit{a} from 1) as first level and \textit{a}) as second level, you must set it with \verb|ref|. You may use \verb|\ref{level1}.\ref{level2}| with appropiate \verb|ref| settings, but as Robin Fairbairns points out in the \TeX{} FAQ \begin{quote} \dots{} [that] would be both tedious and error-prone. What is more, it would be undesirable, since you would be constructing a visual representation which is inflexible (you could not change all the references to elements of a list at one fell swoop). \end{quote} This is sensible and I recommend to follow the advice, but sometimes you might want something like: \begin{verbatim} ... subitem \ref{level2} of item \ref{level1} ... \end{verbatim} Both \verb|label| and \verb|ref| are moving arguments, and fragile commands must be protected \textit{except} the counters. \item \verb|leftmargin=*|. Sets the label width to the width of the current label, using the default value of \textit{0} in \verb|\arabic*|, \textit{viii} in \verb|\roman*|, \textit{m} in \verb|\alph*| and similarly in uppercase forms. The left margin is then set to \verb|labelwidth| $+$ \verb|labelsep|. You can give a value to the key \verb|widest|, and it will be used to set the margin. For example: \begin{verbatim} \begin{itemize}[label=\textbullet, leftmargin=*] \begin{enumerate}[label=\roman*), leftmargin=*, widest=iii] \end{verbatim} Put in in other words, the label starts at the same place as the surrounding text (but see \verb|labelindent| below), then comes the label, the space after it as set by \verb|labelsep| and the item body. \item \verb|labelsep=*|. Similar to the previous one but here the label sep is set to \verb|leftmargin| $-$ \verb|labelwidth|. \begin{verbatim} \begin{itemize}[label=\textbullet, leftmargin=2pc, labelsep=*] \end{verbatim} As before, the label starts at the same place as the surrounding text, then comes the label, the space after it and the item body. The difference between \verb|labelsep=*| and \verb|leftmargin=*| is that in the former the item body begins at a fixed place (namely, \verb|leftmargin|), while the latter begins at a variable place depending on the label (but always the same within a list, of course). Most of times, what you would want is \verb|leftmargin=*|. Unfortunately, \verb|labelsep| has not a default value to be applied to all lists---simply the current value is used. If you nest a \verb|leftmargin=*| within a \verb|labelsep=*|, the value to compute the left margin is not what you could expect. The way \LaTeX{} assigns values to the list parameters is one of the things which makes redefining lists a mess, but with \textsf{enumitem} you can set default values for every list, as described below. In this case, all you need is: \begin{verbatim} \setlist{itemsep=.5em} \end{verbatim} % \textbf{Note.} Version 0.2 computes the values even with % the settings predefined by the classes (only partially % tested). Please, let me know if a class gives a wrong % result. \item \verb|widest|. To be used in conjunction with any of the two previous keys, if desired. It overrides the default values for the label width. Sometimes, if lists are not very long, a value of \verb|a| for \verb|\alph| is more sensible than \verb|m|: \begin{verbatim} \begin{enumerate}[leftmargin=*,widest=a] % Assume standard 2nd level \end{verbatim} \item \verb|labelindent|. Blank space before the label with \verb|leftmargin=*| and \verb|labelsep=*|, and in \verb|description|. Example: \begin{verbatim} \begin{enumerate}[label=\arabic*., leftmargin=2\parindent, labelindent=\parindent, labelsep=*] \end{verbatim} Since \verb|\parindent| is not used as such inside lists, but instead is set internally to either \verb|itemindent| or \verb|listparindent|, when used as the value of a parameter \textsf{enumitem} returns the global value, i. e., the value it has outside the outermost list. \end{itemize} The horizontal space in the left margin of the current level is distributed in the following way: \begin{center} \begin{tabular}{cc} \fbox{\fbox{\strut \texttt{labelindent}} \fbox{\strut \texttt{labelwidth}} \fbox{\strut \texttt{labelsep} $-$ \texttt{itemintent}}} & \fbox{\strut\texttt{itemindent}}\\ \texttt{leftmargin} \end{tabular} \end{center} Remember \verb|labelsep| spans part of \verb|leftmargin| and \verb|itemindent| if the latter is not zero. This is often somewhat confusing, so remember that if you want a separation between label and item \textit{body} of, say, 6pt, and the item indent is 8pt, then \verb|labelsep| should be $6 + 8$. The foregoing discussion about how the \verb|*| values are computed presumes \verb|itemindent| is 0 pt, but any other value it is taken into account. \begin{itemize} \item \verb|align|. How the label is aligned. Two values are possible: \verb|left| and the default \verb|right|. The parameters controlling the label spacing should be properly set, either by hand or more conveniently with the \verb|*| settings: \begin{verbatim} \begin{enumerate}[label=\Roman*., align=left, leftmargin=*] \end{verbatim} \item \verb|start|. Sets the number of the first item. \item \verb|resume|. Makes the counter to be continued from the previous \verb|enumerate|, instead of resetting it to 1. \begin{verbatim} \begin{enumerate} \item First item. \item Second item. \end{enumerate} Text. \begin{enumerate}[resume] \item Third item \end{enumerate} \end{verbatim} \item \verb|beginpenalty|, \verb|midpenalty| and \verb|endpenalty| set the penalty at the beginning of a list, between items and at the end of the list. Please, refer to your \LaTeX{} or \TeX{} manual about how penalties control page breaks. Unlike other parameters, when a list starts their values are not reset to the default, thus they apply to the enclosed lists, too. \end{itemize} A key are available in \verb|description| \begin{itemize} \item \verb|style|. Sets the \textit{style}, with the following values: \begin{itemize} \item \verb|nextline|: if the label does not fit in the margin, the text continues in the next line, otherwise it is placed in a box of width \verb|leftmargin|, ie, the item body never sticks into the left margin. \item \verb|sameline|: like \verb|nextline| but if the label does not fit in the margin the text continues in the same line. \item \verb|multiline|: the label is placed in a parbox whose width is \verb|leftmargin|, with several lines if necessary. \item \verb|unboxed|: much like the standard \verb|description|, but the label is not boxed to avoid uneven spacing and unbroken labels if they are long. \end{itemize} \end{itemize} A few predefined valueless keys might be useful: \begin{itemize} \item \verb|noitemsep| kills the space between items and paragraphs (ie, \verb|itemsep=0pt| and \verb|parsep=0pt|). \item \verb|nolistsep| kills all vertical spacing. \item \verb|fullwidth| is still somewhat experimental. The leftmargin is null and the label is part of the text. Here \verb|labelsep| sets the separation between the label and the first word. You may want to set \verb|itemindent| and \verb|listparindent| to \verb|\parindent|, too. \end{itemize} % If you think the addition of \verb|\parskip| and \verb|\parsep| % is annoying, you can use \verb|listskip| ($=$ \verb|\topsep| $-$ % \verb|\parskip|) and \verb|itemskip| ($=$ \verb|\itemsep| $-$ % \verb|\parsep|). Global changes, to be applied to all of these list, are also possible: \begin{itemize} \item \verb|\setenumerate[level]{format}| \item \verb|\setitemize[level]{format}| \item \verb|\setdescription{format}| \item \verb|\setlist[level]{format}| \end{itemize} Where \verb|level| is the list level in \verb|list|, and the corresponding level in \verb|enumerate| and \verb|itemize|. Without \verb|level|, the format applies to all levels. Here list does not mean any list but only the three ones handled by this package. Example: \begin{verbatim} \setlist{noitemsep} \setlist[1]{\labelindent=\parindent} % << Usually a good idea \setitemize{leftmargin=*} \setitemize[1]{label=$\triangleleft$} \setenumerate{labelsep=*, leftmargin=1.5pc} \setenumerate[1]{label=\arabic*., ref=\arabic*} \setenumerate[2]{label=\emph{\alph*}), ref=\theenumi.\emph{\alph*}} \setenumerate[3]{label=\roman*), ref=\theenumii.\roman*} \setdescription{font=\sffamily\bfseries} \end{verbatim} These setting are read in the following order: list, list at the current level, enumerate/itemize/description, and enumerate/itemize at the current level; if a key has several values, the last one, ie. the most specific one, is applied. Finally, the optional argument, if any, is applied. \LaTeX{} provides a set of macros to change many of these parameters, but setting them with the package is more consistent and sometimes more flexible at the cost of being more ``explicit'' (and verbose). No attempt has been made (yet) to discriminate the font size (\verb|\normalsize|, \verb|\small|\dots). Suggestions are most welcome. \section{Three patterns} Three list layouts could be considered very frequent. Let us apply the parameters above to define them. The first pattern aligns the label with the surrounding \verb|\parindent| while the item body is indented depending on the label and a fixed \verb|labelsep|: \begin{verbatim} labelindent=\parindent, leftmargin=* \end{verbatim} A fairly frequent variant is when the label is aligned with the surrounding text: \begin{verbatim} leftmargin=* \end{verbatim} The former looks better in the first level while the latter seems preferable in subsequent ones. That can be easily set with \begin{verbatim} \setlist{leftmargin=*} \setlist[1]{labelindent=\parindent} % Only the level 1 \end{verbatim} The second pattern aligns the item body with the surrounding \verb|\parindent|. In this case: \begin{verbatim} leftmargin=\parindent \end{verbatim} A third pattern would be to align the label with \verb|\parindent| and the item body with \verb|2\parindent|: \begin{verbatim} labelindent=\parindent, leftmargin=2\parindent, itemsep=* \end{verbatim} Again, a variant would be to align the label with the surrounding text and the itembody with \verb|\parindent|: \begin{verbatim} leftmargin=\parindent, itemsep=* \end{verbatim} Note here \verb|\parindent| means the global value applied to normal paragraphs. \section{The trivlist issue} \LaTeX{} uses a simplified version of \verb|list| named \verb|trivlist| to set displayed material, like \verb|center|, \verb|quote|, etc., even if conceptually they are not lists. Unfortunately, \verb|trivlist| uses the current list settings, which has the odd side effect that changing the vertical spacing of lists also changes the spacing in these environments. This package modifies \verb|trivlist| so that the default settings for the current level (ie, those set by the corresponding \verb|clo| files) are set again. In standard \LaTeX{} that is usually redundand, but if we want to fine tune lists, not resetting the default values could be a real issue (particularly if you use the \verb|nolistsep| option). A minimal control of vertical spacing has been made possible with \begin{itemize} \item \verb|\setdisplayed[level]{format}| \end{itemize} but \verb|trivlist| itself, which is not used directly very often, does not accept an optional argument. This feature is not intended as a full-fledge \verb|trivlist| formatter. If for some reason you do not want to change \verb|trivlist| and preserve the original definition, you can use the package option \verb|ignoredisplayed|. \section{Samples} \expandafter\ifx\csname setenumerate\endcsname\relax Please, install first the package and then typeset this document again. \else In these samples we set \verb|\setlist{noitemsep}| \setlist{noitemsep} \small \vskip6pt \goodbreak \hrule \vskip6pt \begin{verbatim} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[labelindent=\parindent,leftmargin=*] \item lanza en astillero, \item adarna antigua, \item roc\'{\i}n flaco, y \item galgo corredor. \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \end{verbatim} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[labelindent=\parindent,leftmargin=*] \item lanza en astillero, \item adarna antigua, \item roc\'{\i}n flaco, y \item galgo corredor. \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt With \verb|\begin{enumerate}[leftmargin=*]| En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[leftmargin=*] \item lanza en astillero, \item adarna antigua, \item roc\'{\i}n flaco, y \item galgo corredor. \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt With \verb|\begin{enumerate}[leftmargin=\parindent]| En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[leftmargin=\parindent] \item lanza en astillero, \item adarna antigua, \item roc\'{\i}n flaco, y \item galgo corredor. \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt With \begin{verbatim} \begin{enumerate}[labelindent=\parindent, leftmargin=*, label=\Roman*., widest=IV, align=left] \end{verbatim} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[labelindent=\parindent, leftmargin=*, label=\Roman*., widest=IV, align=left] \item lanza en astillero, \item adarna antigua, \item roc\'{\i}n flaco, y \item galgo corredor. \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt With \verb|\begin{enumerate}[label=\fbox{\arabic*}]|. A reference to the first item is \ref{i:first} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[label=\fbox{\arabic*}] \item \label{i:first}lanza en astillero, \item adarna antigua, \item roc\'{\i}n flaco, y \item galgo corredor. \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt With nested lists. \begin{verbatim} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[label=\alph*), labelindent=\parindent, leftmargin=*, start=12] \item lanza en astillero, \begin{enumerate}[label=\alph{enumi}.\roman*), leftmargin=*, start=8] \item adarna antigua, \end{enumerate} \item roc\'{\i}n flaco, y \begin{enumerate}[label=\alph{enumi}.\roman*), leftmargin=*, resume] \item galgo corredor. \end{enumerate} \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \end{verbatim} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{enumerate}[label=\alph*), labelindent=\parindent, leftmargin=*, start=12] \item lanza en astillero, \begin{enumerate}[label=\alph{enumi}.\roman*), leftmargin=*, start=7] \item adarna antigua, \end{enumerate} \item roc\'{\i}n flaco, y \begin{enumerate}[label=\alph{enumi}.\roman*), leftmargin=*, resume] \item galgo corredor. \end{enumerate} \end{enumerate} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt \begin{verbatim} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{description}[font=\sffamily\bfseries, leftmargin=3cm, style=nextline] \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero, \item[Lo segundo] adarna antigua, \item[Lo tercero] roc\'{\i}n flaco, y \item[Y por \'{u}ltimo, lo cuarto] galgo corredor. \end{description} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \end{verbatim} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{description}[font=\sffamily\bfseries, leftmargin=3cm, style=nextline] \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero, \item[Lo segundo] adarna antigua, \item[Lo tercero] roc\'{\i}n flaco, y \item[Y por \'{u}ltimo, lo cuarto] galgo corredor. \end{description} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt Same, but with \verb|sameline|. En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{description}[font=\sffamily\bfseries, leftmargin=3cm, style=sameline] \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero, \item[Lo segundo] adarna antigua, \item[Lo tercero] roc\'{\i}n flaco, y \item[Y por \'{u}ltimo, lo cuarto] galgo corredor. \end{description} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \vskip6pt \goodbreak \hrule \vskip6pt Same, but with \verb|multiline|. Note the text overlaps if the item body is too short. En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{description}[font=\sffamily\bfseries, leftmargin=3cm, style=multiline] \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero, \item[Lo segundo] adarna antigua, \item[Lo tercero] roc\'{\i}n flaco, y \item[Y por \'{u}ltimo, lo cuarto] galgo corredor. \end{description} Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s noches, duelos y quebrantos los s\'{a}bados... \fi \normalsize \section{Afterword} \subsection{\LaTeX{} lists} As it is well known, \LaTeX{} predefines three lists: enumerate, itemize and description. This is a very frequent classification which one can also find in, say, HTML. However, there is a more general model based in three fields---namely, label, title, and body---, so that enumerate and itemize has label (numbered and unnumbered) but no title, while description has title but no label. In this model, one can have a description with entries marked with labels, as for example: \begin{verbatim} \newcommand\litem[1]{\item{\bfseries #1,\enspace}} \begin{itemize}[label=\textbullet] \litem{Lo primero que ten\'{\i}a el Quijote} lanza en astillero, ... etc. \end{verbatim} \vskip6pt \goodbreak \hrule \vskip6pt \newcommand\litem[1]{\item{\bfseries #1,\enspace}} En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que viv\'{\i}a un hidalgo de los de \begin{itemize}[label=\textbullet] \litem{Lo primero que ten\'{\i}a el Quijote} lanza en astillero, \litem{Lo segundo} adarna antigua, \litem{Lo tercero} roc\'{\i}n flaco, y \litem{Y por \'{u}ltimo, lo cuarto} galgo corredor. \end{itemize} \vskip6pt \goodbreak \hrule \vskip6pt This format in not infrequent at all and I thing any future development of this package has to take it into account. \subsection{Known issues} Description styles othen than the default one don't group labels if they are nested. \subsection{Changes in 0.2} If you were using the beta release 0.1, please note version 0.2 introduced several modifications, which also applies to this first release. The main change is a new syntax for \verb|calcsep| and \verb|calcmargin|, but modifying the current files is trivial with find and replace (if applied in the given order): \begin{itemize} \item \verb|calcmargin=| becomes \verb|leftmargin=*,widest=| \item \verb|calcmargin| becomes \verb|leftmargin=*| \item \verb|calcsep=| becomes \verb|labelsep=*,widest=| \item \verb|calcsep| becomes \verb|labelsep=*| \end{itemize} \end{document}