1 | % +--------------------------------------------------+
|
---|
2 | % | Typeset this file to document enumitem.sty |
|
---|
3 | % +--------------------------------------------------+
|
---|
4 | %
|
---|
5 | % Copyright (c) 2003-2011 by Javier Bezos.
|
---|
6 | % All Rights Reserved.
|
---|
7 | %
|
---|
8 | % This file is part of the enumitem distribution release 3.5.2
|
---|
9 | % ------------------------------------------------------------
|
---|
10 | %
|
---|
11 | % It may be distributed and/or modified under the
|
---|
12 | % conditions of the LaTeX Project Public License, either version 1.3
|
---|
13 | % of this license or (at your option) any later version.
|
---|
14 | % The latest version of this license is in
|
---|
15 | % http://www.latex-project.org/lppl.txt
|
---|
16 | % and version 1.3 or later is part of all distributions of LaTeX
|
---|
17 | % version 2003/12/01 or later.
|
---|
18 | %
|
---|
19 | % This work has the LPPL maintenance status "maintained".
|
---|
20 | %
|
---|
21 | % The Current Maintainer of this work is Javier Bezos.
|
---|
22 |
|
---|
23 | \documentclass[a4paper]{ltxguide}
|
---|
24 |
|
---|
25 | \makeatletter
|
---|
26 | \newenvironment{desc}
|
---|
27 | {\if@nobreak
|
---|
28 | \vskip-\lastskip
|
---|
29 | \vspace*{-2.5ex}%
|
---|
30 | \fi
|
---|
31 | \decl}
|
---|
32 | {\enddecl}
|
---|
33 | \makeatother
|
---|
34 |
|
---|
35 | \newcommand\3{\unskip\enspace\fbox{\fontsize{4}{4}\selectfont NEW 3.0}}
|
---|
36 |
|
---|
37 | \usepackage{hyperref}
|
---|
38 |
|
---|
39 | %\usepackage{pslatex}
|
---|
40 |
|
---|
41 | \title{Customizing lists\\with the\\\textsf{enumitem} package}
|
---|
42 |
|
---|
43 | \author{Javier Bezos\footnote{For bug reports, comments and
|
---|
44 | suggestions go to \href{http://www.tex-tipografia.com/enumitem.html}%
|
---|
45 | {\texttt{http://www.tex-tipografia.com/enumitem.html}}.
|
---|
46 | English is not my strong point, so contact me when you
|
---|
47 | find mistakes in the manual. Other packages by the same author:
|
---|
48 | \textsf{gloss} (with Jos\'e Luis D\'{\i}az), \textsf{accents,
|
---|
49 | tensind, esindex, dotlessi, titlesec, titletoc}.}}
|
---|
50 |
|
---|
51 | \date{Version 3.5.2\\2011-09-28}
|
---|
52 |
|
---|
53 | \IfFileExists{enumitem.sty}{\usepackage{enumitem}}{}
|
---|
54 |
|
---|
55 | \addtolength{\topmargin}{-3pc}
|
---|
56 | \addtolength{\textwidth}{6pc}
|
---|
57 | \addtolength{\oddsidemargin}{-2pc}
|
---|
58 | \addtolength{\textheight}{7pc}
|
---|
59 |
|
---|
60 | \raggedright
|
---|
61 | \parindent1.8em
|
---|
62 | \parskip0pt
|
---|
63 |
|
---|
64 | \begin{document}
|
---|
65 |
|
---|
66 | \maketitle
|
---|
67 |
|
---|
68 | \section{Introduction}
|
---|
69 |
|
---|
70 | When I began to use \LaTeX{} several year ago, two particular points
|
---|
71 | annoyed me because I found customizing them was very complicated
|
---|
72 | ---headlines/footlines and lists. A new way to redefine the former is
|
---|
73 | accomplished in my own \textsf{titlesec} package, but none was
|
---|
74 | available to customize the latter except:
|
---|
75 | \begin{itemize}
|
---|
76 | \item \textsf{enumerate}, which just allows to change the label and
|
---|
77 | it does it pretty well.
|
---|
78 |
|
---|
79 | \item \textsf{mdwlist}, which only ``provides some vaguely useful
|
---|
80 | list-related commands and environments,'' as its manual states,
|
---|
81 | and not a coherent way of handling lists.
|
---|
82 |
|
---|
83 | \item \textsf{paralist}, which provides lists within a paragraph (the
|
---|
84 | original purpose of this package), a few other hard-wired
|
---|
85 | specific changes and the optional argument of \textsf{enumerate}.
|
---|
86 | \end{itemize}
|
---|
87 |
|
---|
88 | One of the main drawbacks of the standard |list| is its weird
|
---|
89 | parameters, whose meaning is not always obvious. In order to provide
|
---|
90 | a cleaner interface two approaches were possible: either defining new
|
---|
91 | lists, or introducing a new syntax making the standard lists easier to
|
---|
92 | customize. For marks I took the first approach in titlesec, just
|
---|
93 | because I did not manage to find a satisfactory solution with the
|
---|
94 | \LaTeX{} internal macros, but since lists are in some sense more
|
---|
95 | ``complete'' than sections and marks, I have taken here the second
|
---|
96 | approach.
|
---|
97 |
|
---|
98 | In the interface a sort of ``inheritance'' is used. You can
|
---|
99 | set globally the behaviour of lists and then override several
|
---|
100 | parameters of, say, enumerate and then in turn override
|
---|
101 | a few paremeters of a particular instance. The values will
|
---|
102 | be searched in the hierarchy.
|
---|
103 |
|
---|
104 | \section{The package}
|
---|
105 |
|
---|
106 | This package is intended to ease customizing the three
|
---|
107 | basic list environments: |enumerate|, |itemize| and
|
---|
108 | |description|. It extends their syntax to allow
|
---|
109 | an optional argument where a set of parameters in the
|
---|
110 | form |key=value| are available:
|
---|
111 | \begin{itemize}
|
---|
112 | \item
|
---|
113 | Vertical spacing:
|
---|
114 | \begin{itemize}
|
---|
115 | \item |topsep|
|
---|
116 | \item |partopsep|
|
---|
117 | \item |parsep|
|
---|
118 | \item |itemsep|
|
---|
119 | \end{itemize}
|
---|
120 | \item
|
---|
121 | Horizontal spacing:
|
---|
122 | \begin{itemize}
|
---|
123 | \item |leftmargin|
|
---|
124 | \item |rightmargin|
|
---|
125 | \item |listparindent|
|
---|
126 | \item |labelwidth|
|
---|
127 | \item |labelsep|
|
---|
128 | \item |itemindent|
|
---|
129 | \end{itemize}
|
---|
130 | \end{itemize}
|
---|
131 |
|
---|
132 | For example:
|
---|
133 | \begin{verbatim}
|
---|
134 | \begin{itemize}[itemsep=1ex,leftmargin=1cm]
|
---|
135 | \end{verbatim}
|
---|
136 |
|
---|
137 | The keys above are equivalent to the well known list parameters---see a
|
---|
138 | \LaTeX{} manual for a description of them. Next sections explains the
|
---|
139 | extensions provided by |enumitem|.
|
---|
140 |
|
---|
141 | \section{Keys}
|
---|
142 |
|
---|
143 | This section describes the keys in displayed lists. Most of them are
|
---|
144 | available in inline lists, where further keys are available (see
|
---|
145 | \ref{s.inline}).
|
---|
146 |
|
---|
147 | \subsection{Label and cross references format}
|
---|
148 |
|
---|
149 | \begin{desc}
|
---|
150 | |label=<commands>|
|
---|
151 | \end{desc}
|
---|
152 |
|
---|
153 | Sets the label to be used in the current level.
|
---|
154 | A set of starred versions of |\alph|, |\Alph|,
|
---|
155 | |\arabic|, |\roman| and |\Roman|, without argument
|
---|
156 | stand for the current counter in |enumerate|.\footnote{Actually,
|
---|
157 | the asterisk is currently the argument but things may change.
|
---|
158 | Consider them as starred variants and follow the corresponding
|
---|
159 | syntax.} Thus
|
---|
160 | \begin{verbatim}
|
---|
161 | \begin{enumerate}[label=\emph{\alph*})]
|
---|
162 | \end{verbatim}
|
---|
163 | prints \textit{a}), \textit{b}), and so on (this is a
|
---|
164 | standard style in Spanish, and formerly used by Chicago, too).
|
---|
165 |
|
---|
166 | It works with |\value|, too (provided the widest label is not to be
|
---|
167 | computed or \verb|widest*| is used, see below). A fancier example
|
---|
168 | (which looks ugly, but it is intended only to illustrate what is
|
---|
169 | possible; requires \textsf{color} and \textsf{pifont}):
|
---|
170 | \begin{verbatim}
|
---|
171 | \begin{enumerate}[label=\protect\fcolorbox{blue}{yellow}{\protect\ding{\value*}},
|
---|
172 | start=172]
|
---|
173 | \end{verbatim}
|
---|
174 |
|
---|
175 | The value of |label| is a moving argument, and fragile commands must
|
---|
176 | be protected \textit{except} the counters. Because of that, use of
|
---|
177 | \verb|\value| is somewhat tricky, because \verb|\the| or \verb|\ifnum|
|
---|
178 | expects an actual value, which is not the case when \verb|label| is
|
---|
179 | being processed to replace internally the \verb|*| by the form with
|
---|
180 | the counter argument. The best solution is usually encapsulating the
|
---|
181 | logic inside a new ``counter'' with the help of
|
---|
182 | \verb|\AddEnumerateCounter|.\footnote{Which is admittedly somewhat
|
---|
183 | convoluted. A better way to accomplish this is on the way.}
|
---|
184 |
|
---|
185 | If you prefer setting labels like the \textsf{enumerate} package, use
|
---|
186 | ``short labels'' (see section \ref{s.short}).
|
---|
187 |
|
---|
188 | \begin{desc}
|
---|
189 | |label*=<commands>|
|
---|
190 | \end{desc}
|
---|
191 |
|
---|
192 | Like |label| but its value is appended to the parent label. For example, the follollowing defines a |legal| list (1.,
|
---|
193 | 1.1., 1.1.1., and so on):
|
---|
194 | \begin{verbatim}
|
---|
195 | \newlist{legal}{enumerate}{10}
|
---|
196 | \setlist[legal]{label*=\arabic*.}
|
---|
197 | \end{verbatim}
|
---|
198 |
|
---|
199 | \begin{desc}
|
---|
200 | |ref=<commands>|
|
---|
201 | \end{desc}
|
---|
202 |
|
---|
203 | By default, |label| sets also the form of cross references and
|
---|
204 | |\the...| (overriding the settings in previous hierarchical
|
---|
205 | levels), but you can define a different format with this key. For
|
---|
206 | example, to remove the right parethesis:
|
---|
207 | \begin{verbatim}
|
---|
208 | \begin{enumerate}[label=\emph{\alph*}),ref=\emph{\alph*}]
|
---|
209 | \end{verbatim}
|
---|
210 | In both |label| and |ref|, the counters can be
|
---|
211 | used as usual:
|
---|
212 | \begin{verbatim}
|
---|
213 | \begin{enumerate}[label=\theenumi.\arabic*.]
|
---|
214 | \end{verbatim}
|
---|
215 | or
|
---|
216 | \begin{verbatim}
|
---|
217 | \begin{enumerate}[label=\arabic{enumi}.\arabic*.]
|
---|
218 | \end{verbatim}
|
---|
219 | (provided the current level is the second one).
|
---|
220 |
|
---|
221 | Note the |label|s are \textit{not} accumulated to form
|
---|
222 | the reference. If you want, say, something like 1.\textit{a}
|
---|
223 | from 1) as first level and \textit{a}) as second level,
|
---|
224 | you must set it with |ref|. You may use
|
---|
225 | |\ref{level1}.\ref{level2}| with appropiate |ref|
|
---|
226 | settings, but as Robin Fairbairns points out in the \TeX{} FAQ
|
---|
227 | \begin{quote}
|
---|
228 | \dots{} [that] would be both tedious and error-prone. What is more, it
|
---|
229 | would be undesirable, since you would be constructing a visual
|
---|
230 | representation which is inflexible (you could not change all the
|
---|
231 | references to elements of a list at one fell swoop).
|
---|
232 | \end{quote}
|
---|
233 | This is sensible and I recommend to follow the advice, but sometimes
|
---|
234 | you might want something like:
|
---|
235 | \begin{verbatim}
|
---|
236 | ... subitem \ref{level2} of item \ref{level1} ...
|
---|
237 | \end{verbatim}
|
---|
238 |
|
---|
239 | The value of |ref| is a moving argument, and fragile
|
---|
240 | commands must be protected \textit{except} the counters.
|
---|
241 |
|
---|
242 | \begin{desc}
|
---|
243 | |font=<commands>|\qquad\verb|format=<commands>|
|
---|
244 | \end{desc}
|
---|
245 |
|
---|
246 | Sets the label font. Useful when the label is changed with the
|
---|
247 | optional argument of |\item| and in \texttt{description}. The last
|
---|
248 | command in |<commands>| can take an argument with the item label. In
|
---|
249 | \texttt{description} class setting are in force, so you may want begin
|
---|
250 | with \verb|\normalfont|. A synonymous is \texttt{format}.
|
---|
251 |
|
---|
252 | \begin{desc}
|
---|
253 | |align=left|\qquad |align=right|\qquad |align=parleft|\3
|
---|
254 | \end{desc}
|
---|
255 |
|
---|
256 | How the label is aligned (with relation to the label box edges).
|
---|
257 | Three values are possible: |left|, the default |right| and
|
---|
258 | \verb|parleft| (a parbox of width \verb|\labelwidth| with flush left
|
---|
259 | text). The parameters controlling the label spacing should be
|
---|
260 | properly set, either by hand or more conveniently with the |*|
|
---|
261 | settings (see below):
|
---|
262 | \begin{verbatim}
|
---|
263 | \begin{enumerate}[label=\Roman*., align=left, leftmargin=*]
|
---|
264 | \end{verbatim}
|
---|
265 | (When the label box is supposed to have its natural width, use
|
---|
266 | |left|.)
|
---|
267 |
|
---|
268 | \begin{desc}
|
---|
269 | |\SetLabelAlign{<value>}{<commands>}|\3
|
---|
270 | \end{desc}
|
---|
271 |
|
---|
272 | New align types can be defined (or the existing ones redefined) with
|
---|
273 | |\SetLabelAlign|; the predefined values are equivalent
|
---|
274 | to:\footnote{Prior to version 3.0 the left alignments was incorrectly
|
---|
275 | defined and the label and the text could overlap.}
|
---|
276 | \begin{verbatim}
|
---|
277 | \SetLabelAlign{right}{\hss\llap{#1}}
|
---|
278 | \SetLabelAlign{left}{#1\hfil}
|
---|
279 | \SetLabelAlign{parleft}{\strut\smash{\parbox[t]\labelwidth{\raggedright##1}}}
|
---|
280 | \end{verbatim}
|
---|
281 |
|
---|
282 | If the last thing in the definition is a skip (typically \verb|\hfil|), it is
|
---|
283 | removed sometimes by description. If for some reason you want to avoid
|
---|
284 | this, just add \verb|\null| at the end.
|
---|
285 |
|
---|
286 | Although primarily intended for the alignment, this commands has other
|
---|
287 | uses (as in the provided \verb|parleft|). For example, with the
|
---|
288 | following all labels with |align=right| are set as superscripts:
|
---|
289 | \begin{verbatim}
|
---|
290 | \SetLabelAlign{right}{\hss\llap{\textsuperscript{#1}}}
|
---|
291 | \end{verbatim}
|
---|
292 | (A new name is also possible, of course.)
|
---|
293 |
|
---|
294 | If you want the internal settings for \texttt{align} and \texttt{font}
|
---|
295 | be ignored, you can override the \textsf{enumitem} definition of
|
---|
296 | \verb|\makelabel| in \texttt{before}:
|
---|
297 | \begin{verbatim}
|
---|
298 | \begin{description}[before={\renewcommand\makelabel[1]{\ref{##1}}}]
|
---|
299 | \end{verbatim}
|
---|
300 | (Alternatively, define a macro and use \verb|\let|.)
|
---|
301 |
|
---|
302 | \subsection{Horizontal spacing of labels}
|
---|
303 |
|
---|
304 | \begin{desc}
|
---|
305 | |labelindent=<length>|\\
|
---|
306 | \verb|\labelindent|
|
---|
307 | \end{desc}
|
---|
308 |
|
---|
309 | This parameter is added in \textsf{enumitem} for the blank space from
|
---|
310 | the margin of the enclosing list/text to the left edge of the label box. This
|
---|
311 | means there is a redundancy because one of the parameters depends on
|
---|
312 | the others, i.e., it has to be computed from the other values, as
|
---|
313 | described below. There is a new counter length |\labelindent| which
|
---|
314 | defaults to 0 pt. The five parameteres are related in the following
|
---|
315 | way:
|
---|
316 | \[
|
---|
317 | \verb|\leftmargin|+\verb|\itemindent| =
|
---|
318 | \verb|\labelindent|+\verb|\labelwidth|+\verb|\labelsep|
|
---|
319 | \]
|
---|
320 |
|
---|
321 | \begin{desc}
|
---|
322 | |leftmargin=!|\qquad|itemindent=!|\qquad|labelsep=!|
|
---|
323 | \qquad|labelwidth=!|\qquad|labelindent=!|\3
|
---|
324 | \end{desc}
|
---|
325 |
|
---|
326 | Sets which value is to be computed from the others. This is done
|
---|
327 | after \textit{all} keys has been read. Explicit values are not lost, and
|
---|
328 | so with the following hierarchical settings:
|
---|
329 | \begin{verbatim}
|
---|
330 | leftmargin=2em
|
---|
331 | labelindent=1em,leftmargin=!
|
---|
332 | labelindent=!
|
---|
333 | \end{verbatim}
|
---|
334 | |leftmargin| is again 2em and |labelindent| is the computed parameter.
|
---|
335 | The default is |labelindent=!|, but note some keys sets another value
|
---|
336 | (\verb|wide| and description \verb|style|s).
|
---|
337 |
|
---|
338 | With |align=right| (the default), |labelindent=!| and
|
---|
339 | |labelwidth=!| behave similarly in practice.
|
---|
340 |
|
---|
341 | \begin{desc}
|
---|
342 | |leftmargin=*|\qquad|itemindent=*|\qquad|labelsep=*|
|
---|
343 | \qquad|labelwidth=*|\qquad|labelindent=*|
|
---|
344 | \end{desc}
|
---|
345 |
|
---|
346 | Like before, but |labelwidth| is set to the width of the current
|
---|
347 | label, using the default value of \textit{0} in |\arabic*|,
|
---|
348 | \textit{viii} in |\roman*|, \textit{m} in |\alph*| and
|
---|
349 | similarly in uppercase forms (these values can be changed with
|
---|
350 | |widest|, see below). Examples are:
|
---|
351 | \begin{verbatim}
|
---|
352 | \begin{itemize}[label=\textbullet, leftmargin=*]
|
---|
353 | \begin{enumerate}[label=\roman*), leftmargin=*, widest=iii]
|
---|
354 | \begin{itemize}[label=\textbullet,
|
---|
355 | leftmargin=2pc, labelsep=*]
|
---|
356 | \begin{enumerate}[label=\arabic*., leftmargin=2\parindent,
|
---|
357 | labelindent=\parindent, labelsep=*]
|
---|
358 | \end{verbatim}
|
---|
359 |
|
---|
360 | The most useful are |labelsep=*| and |leftmargin=*|.
|
---|
361 | With the former the item body begins at a fixed place (namely,
|
---|
362 | |leftmargin|), while with the latter begins at a variable place
|
---|
363 | depending on the label (but always the same within a list, of course).
|
---|
364 | Most of times, what you would want is |leftmargin=*|.
|
---|
365 |
|
---|
366 | Unfortunately, \LaTeX{} does not define a default |labelsep| to
|
---|
367 | be applied to all lists---simply the current value is used. With
|
---|
368 | \textsf{enumitem} you can set default values for every list, as
|
---|
369 | described below, and so, if you want to make sure |labelsep| is
|
---|
370 | under your control, all you need is something like:
|
---|
371 | \begin{verbatim}
|
---|
372 | \setlist{itemsep=.5em}
|
---|
373 | \end{verbatim}
|
---|
374 |
|
---|
375 | |labelwidth=*| and |labelwidth=!| are synonymous.
|
---|
376 |
|
---|
377 | \begin{desc}
|
---|
378 | |widest=<string>|\qquad|widest*=<integer>|\3\qquad|widest|
|
---|
379 | \end{desc}
|
---|
380 |
|
---|
381 | To be used in conjunction with the \texttt{*}-values, if
|
---|
382 | desired. It overrides the default value for the widest
|
---|
383 | printed counter. Sometimes, if lists are not very long, a value of
|
---|
384 | |a| for |\alph| is more sensible than the default |m|:
|
---|
385 | \begin{verbatim}
|
---|
386 | \begin{enumerate}[leftmargin=*,widest=a] % Assume standard 2nd level
|
---|
387 | \end{verbatim}
|
---|
388 | With no value, the default is restored. With |widest*|, the string is
|
---|
389 | built using |<integer>| as the value of the counter (e.g., with
|
---|
390 | \verb|\roman|,
|
---|
391 | \verb|widest=viii| and \verb|widest*=8| are the same).
|
---|
392 |
|
---|
393 | Since |\value| does not return a string but a number,
|
---|
394 | |widest| and the \verb|*| values cannot be used with it.
|
---|
395 | However, with \verb|widest*|, being a number, it is allowed.
|
---|
396 |
|
---|
397 | \subsection{More on horizontal spacing}
|
---|
398 |
|
---|
399 | Since |\parindent| is not used as such inside lists, but instead
|
---|
400 | is set internally to either |\itemindent| or |\listparindent|,
|
---|
401 | when used as the value of a parameter \textsf{enumitem} returns the
|
---|
402 | global value, i. e., the value it has outside the outermost list.
|
---|
403 |
|
---|
404 | The horizontal space in the left margin of the current level is
|
---|
405 | distributed in the following way:\footnote{Admittedly, these figures
|
---|
406 | are not exactly the clearest possible, and I intend to improve them in
|
---|
407 | a future release}
|
---|
408 | \begin{center}
|
---|
409 | \begin{tabular}{cc}
|
---|
410 | \fbox{\fbox{\strut \texttt{labelindent}}
|
---|
411 | \fbox{\strut \texttt{labelwidth}}
|
---|
412 | \fbox{\strut \texttt{labelsep} $-$ \texttt{itemintent}}}
|
---|
413 | &
|
---|
414 | \fbox{\strut\texttt{itemindent}}\\
|
---|
415 | \texttt{leftmargin}
|
---|
416 | \end{tabular}
|
---|
417 | \end{center}
|
---|
418 |
|
---|
419 | \begin{desc}
|
---|
420 | \verb|labelsep*=<length>|\3
|
---|
421 | \end{desc}
|
---|
422 |
|
---|
423 | Remember |labelsep| spans part of |leftmargin| and
|
---|
424 | |itemindent| if the latter is not zero. This is often somewhat
|
---|
425 | confusing, so a new key is provided---with \texttt{labelsep*} the
|
---|
426 | value is reckoned from the left margin (it just sets |\labelsep|
|
---|
427 | and then adds |\itemindent| to it, but in addition later changes to
|
---|
428 | |itemindent| are taken into account):
|
---|
429 | \begin{center}
|
---|
430 | \begin{tabular}{cc}
|
---|
431 | \fbox{\fbox{\strut \texttt{labelindent}}
|
---|
432 | \fbox{\strut \texttt{labelwidth}}
|
---|
433 | \fbox{\strut \texttt{labelsep*}}}
|
---|
434 | &
|
---|
435 | \fbox{\strut\texttt{itemindent}}\\
|
---|
436 | \texttt{leftmargin}
|
---|
437 | \end{tabular}
|
---|
438 | \end{center}
|
---|
439 |
|
---|
440 | \begin{desc}
|
---|
441 | |labelindent*=<length>|\3
|
---|
442 | \end{desc}
|
---|
443 |
|
---|
444 | Like |labelindent|, but it is reckoned from the left margin in
|
---|
445 | the current list and not from that in the enclosing list/text.
|
---|
446 |
|
---|
447 | \subsection{Numbering, stopping, and resuming}
|
---|
448 |
|
---|
449 | \begin{desc}
|
---|
450 | |start=<integer>|
|
---|
451 | \end{desc}
|
---|
452 | Sets the number of the first item.
|
---|
453 |
|
---|
454 | \begin{desc}
|
---|
455 | |resume|
|
---|
456 | \end{desc}
|
---|
457 |
|
---|
458 | The counter continues from the previous |enumerate|,
|
---|
459 | instead of being reset to 1.
|
---|
460 | \begin{verbatim}
|
---|
461 | \begin{enumerate}
|
---|
462 | \item First item.
|
---|
463 | \item Second item.
|
---|
464 | \end{enumerate}
|
---|
465 | Text.
|
---|
466 | \begin{enumerate}[resume]
|
---|
467 | \item Third item
|
---|
468 | \end{enumerate}
|
---|
469 | \end{verbatim}
|
---|
470 |
|
---|
471 | This is done locally. If you want global resuming, see next section on series.
|
---|
472 |
|
---|
473 | \begin{desc}
|
---|
474 | |resume*|
|
---|
475 | \end{desc}
|
---|
476 |
|
---|
477 | Like |resume| but the options from the previous list are used,
|
---|
478 | too. This option must be restricted to the optional argument in a
|
---|
479 | environment (this is the only place where it makes sense). It should
|
---|
480 | be used sparingly---if you are using it often, then very likely you
|
---|
481 | want to define a new list (see \ref{s.clone}). Further keys are allowed, and
|
---|
482 | in this case the saved options are overriden by those in the current
|
---|
483 | list (i.e., the position of \texttt{resume*} does not matters). For
|
---|
484 | example:
|
---|
485 | \begin{verbatim}
|
---|
486 | \begin{enumerate}[resume*,start=1] % or [start=1,resume*]
|
---|
487 | \end{verbatim}
|
---|
488 | uses the keys in the previuos \texttt{enumerate}, but restarts the
|
---|
489 | counter. If there is a series of a certain list with
|
---|
490 | \texttt{resume*}, options are taken from the list previous to the
|
---|
491 | first one, except for \texttt{start}.
|
---|
492 |
|
---|
493 | \subsection{Series}
|
---|
494 |
|
---|
495 | \begin{desc}
|
---|
496 | |series=<series-name>|\3\\
|
---|
497 | |<series-name>|\qquad|resume*=<series-name>|
|
---|
498 | \qquad|resume=<series-name>|\3
|
---|
499 | \end{desc}
|
---|
500 |
|
---|
501 | A new method (3.0) of continuing lists is by means of the key
|
---|
502 | \texttt{series}, so that they behave like a unit. A list with key
|
---|
503 | \texttt{series} is considered the starting list and its settings are
|
---|
504 | stored \textit{globally}, so that they can be used later with
|
---|
505 | \texttt{resume}/\texttt{resume*}. All these keys take a value with
|
---|
506 | the series name (which must be different from existing keys):
|
---|
507 | \begin{itemize}
|
---|
508 | \item |resume=<series-name>| just continue numbering items in the
|
---|
509 | series,
|
---|
510 | \item |resume*=<series>| also applies the settings of the
|
---|
511 | starting list,
|
---|
512 | \item |<series>|, i.e., the series name used as a key, is an
|
---|
513 | alternative to |resume*=<series>|.
|
---|
514 | \end{itemize}
|
---|
515 | For example:
|
---|
516 | \begin{verbatim}
|
---|
517 | \begin{enumerate}[label=\arabic*(a),leftmargin=1cm,series=lafter]
|
---|
518 | \item A
|
---|
519 | \item B
|
---|
520 | \end{enumerate}
|
---|
521 | \end{verbatim}
|
---|
522 | You get: 1(a) 2(a). You can continue with:
|
---|
523 | \begin{verbatim}
|
---|
524 | \begin{enumerate}[label=\arabic*(b),resume*=lafter]
|
---|
525 | % or [label=\arabic*(b),lafter]
|
---|
526 | \item A
|
---|
527 | \item B
|
---|
528 | \end{enumerate}
|
---|
529 | \end{verbatim}
|
---|
530 | You get: 3(b) 4(b). (But you can use |start=1|, if you like.)
|
---|
531 |
|
---|
532 | Note you can add further arguments, which are executed after those
|
---|
533 | saved at the starting list and therefore take precedence over them --
|
---|
534 | in particular, |resume*| itself takes precedence over a
|
---|
535 | |start| (e.g., |start=1|) in the the starting list.
|
---|
536 |
|
---|
537 | Every time a series is started, several commands are defined
|
---|
538 | internally, so to avoid wasting resources and use the same name for
|
---|
539 | non-overlapping series.
|
---|
540 |
|
---|
541 |
|
---|
542 | \subsection{Penalties}
|
---|
543 |
|
---|
544 | \begin{desc}
|
---|
545 | |beginpenalty=<integer>|\qquad
|
---|
546 | |midpenalty=<integer>|\qquad |endpenalty=<integer>|
|
---|
547 | \end{desc}
|
---|
548 |
|
---|
549 | Set the penalty at the beginning of a list, between items and at the
|
---|
550 | end of the list, respectively. Please, refer to your \LaTeX{} or
|
---|
551 | \TeX{} manual about how penalties control page breaks. Unlike other
|
---|
552 | parameters, when a list starts their values are not reset to the
|
---|
553 | default, thus they apply to the child lists.
|
---|
554 | \begin{desc}
|
---|
555 | |before=<code>| \qquad |before*=<code>|
|
---|
556 | \end{desc}
|
---|
557 |
|
---|
558 | Execute code before the list starts (more precisely, in the second
|
---|
559 | argument of the |list| environment used to define them). The
|
---|
560 | unstarred form sets the code to be executed, overriding any previous
|
---|
561 | value, while the starred one adds the code to the existing one (in
|
---|
562 | the setting hierarchy, see below, \textit{not} with relation to the
|
---|
563 | enclosing list/text). It can contain, say, rules and text, but this
|
---|
564 | has not been extensively tested. All calculations have been finished,
|
---|
565 | and you can access and manipulate the list parameters. For example,
|
---|
566 | to have both margins (left and right) set to the widest label:
|
---|
567 | \begin{verbatim}
|
---|
568 | \setlist{leftmargin=*,before=\setlength{\rightmargin}{\leftmargin}}
|
---|
569 | \end{verbatim}
|
---|
570 |
|
---|
571 | \begin{desc}
|
---|
572 | |after=<code>|\qquad|after*=<code>|
|
---|
573 | \end{desc}
|
---|
574 |
|
---|
575 | Same, but just before the list ends.
|
---|
576 |
|
---|
577 | \subsection{Description styles}
|
---|
578 |
|
---|
579 | A key available in |description|.
|
---|
580 | \begin{desc}
|
---|
581 | |style=<name>|
|
---|
582 | \end{desc}
|
---|
583 |
|
---|
584 | Sets the description \textit{style}. |<name>| can be any of the
|
---|
585 | following:
|
---|
586 | \begin{itemize}
|
---|
587 |
|
---|
588 | \item |standard|: like |description| in standard classes, although
|
---|
589 | with other classes it could be somewhat different. The label is
|
---|
590 | boxed. Sets \verb|itemindent=!|.
|
---|
591 |
|
---|
592 | \item |unboxed|: much like the standard |description|, but
|
---|
593 | the label is not boxed to avoid uneven spacing and unbroken labels if
|
---|
594 | they are long. Sets \verb|itemindent=!|.
|
---|
595 |
|
---|
596 | \item |nextline|: if the label does not fit in the margin, the text
|
---|
597 | continues in the next line, otherwise it is placed in a box of width
|
---|
598 | |\leftmargin| $-$ |\labelsep|, i.e., the item body never sticks into
|
---|
599 | the left margin. Sets \verb|labelwidth=!|.
|
---|
600 |
|
---|
601 | \item |sameline|: like |nextline| but if the label does not
|
---|
602 | fit in the margin the text continues in the same line. Same as
|
---|
603 | \verb|style=unboxed,labelwidth=!|.
|
---|
604 |
|
---|
605 | \item |multiline|: the label is placed in a parbox whose width is
|
---|
606 | |leftmargin|, with several lines if
|
---|
607 | necessary. Same as \verb|style=standard,align=parleft,labelwidth=!|.
|
---|
608 |
|
---|
609 | Three caveats: (1) mixing boxed and unboxed labels has not a
|
---|
610 | well-defined behaviour, (2) when nesting list all combinations are
|
---|
611 | allowed but not all make sense, and (3) nesting \verb|nextline| lists
|
---|
612 | is not supported (it works, but its behaviour might change in the
|
---|
613 | future, because the current one is not what one could expect).
|
---|
614 |
|
---|
615 |
|
---|
616 |
|
---|
617 | \end{itemize}
|
---|
618 |
|
---|
619 |
|
---|
620 | \subsection{Compact lists}
|
---|
621 |
|
---|
622 | \begin{desc}
|
---|
623 | |noitemsep|\qquad|nosep|
|
---|
624 | \end{desc}
|
---|
625 |
|
---|
626 | The key |noitemsep| kills the space between items and paragraphs
|
---|
627 | (i.e., |itemsep=0pt| and |parsep=0pt|), while
|
---|
628 | |nosep| kills all vertical spacing.\footnote{The key
|
---|
629 | \texttt{nolistsep}, now deprecated, introduced a thin stretch, which
|
---|
630 | was not the intended behaviour.}
|
---|
631 |
|
---|
632 | \subsection{``Wide'' lists}
|
---|
633 |
|
---|
634 | \begin{desc}
|
---|
635 | \verb|wide|\3\\
|
---|
636 | \verb|wide=<parindent>|
|
---|
637 | \end{desc}
|
---|
638 |
|
---|
639 | With this convenience key, the leftmargin is null and the label is
|
---|
640 | part of the text---in other word, the items look like ordinary
|
---|
641 | paragraphs.\footnote{\texttt{fullwidth} is deprecated.} Here |labelsep|
|
---|
642 | sets the separation between the label and the first word. It is
|
---|
643 | equivalent to
|
---|
644 | \begin{verbatim}
|
---|
645 | align=left, leftmargin=0pt, labelindent=\parindent,
|
---|
646 | listparindent=\parindent, labelwidth=0pt, itemindent=!
|
---|
647 | \end{verbatim}
|
---|
648 | With |wide=<parindent>| you may set at once another value instead of
|
---|
649 | |\parindent|. Of course, these keys can be overriden after
|
---|
650 | \verb|wide|, too; for example, remembering that with left-aligned labels
|
---|
651 | the text is pushed if the they are wider than |labelwidth|, you
|
---|
652 | can set |labelwidth=1.5em| for a minimal width, or instead of
|
---|
653 | |itemindent=!| you may prefer |itemindent=*|, which sets the
|
---|
654 | minimal width to that of widest label. In level 2 you may prefer
|
---|
655 | |labelindent=2\parindent|, and so on. You may also want to
|
---|
656 | combine it with |noitemsep| or |nolistsep|.
|
---|
657 |
|
---|
658 | \section{Inline lists}
|
---|
659 | \label{s.inline}
|
---|
660 |
|
---|
661 | \3
|
---|
662 |
|
---|
663 | Inline lists are ``horizontal'' lists set as ordinary text inside a
|
---|
664 | paragraph. With this package you can create inline lists, as
|
---|
665 | explained below, with \verb|\newlist|, which have their own labels and
|
---|
666 | counters. However, in most cases inline versions of standard lists,
|
---|
667 | with the same labelling schema, will be enough -- the package option
|
---|
668 | \verb|inline| does that.
|
---|
669 |
|
---|
670 |
|
---|
671 | \begin{desc}
|
---|
672 | |inline| \qquad(package option)\\
|
---|
673 | \texttt{enumerate*}\qquad\texttt{itemize*}\qquad
|
---|
674 | \texttt{description*} \qquad(environments)
|
---|
675 | \end{desc}
|
---|
676 |
|
---|
677 | With the package option \texttt{inline}, three environments for inline
|
---|
678 | lists are defined: \texttt{enumerate*}, \texttt{itemize*}, and
|
---|
679 | \texttt{description*}. They emulate the behaviour of
|
---|
680 | \textsf{paralist} and \textsf{shortlst} in that labels and settings
|
---|
681 | are shared with the displayed (ie, ``normal'') lists \texttt{enumerate},
|
---|
682 | \texttt{itemize} and \texttt{description}, respectively (however,
|
---|
683 | remember resuming is based on environment names, not on list types). This applies
|
---|
684 | only to those created with \texttt{inline} -- inline lists created
|
---|
685 | with |\newlist| as described below are independent and use their
|
---|
686 | own labels and settings. Note as well \verb|inline| is not required
|
---|
687 | if you needn't inline versions of standard lists.
|
---|
688 |
|
---|
689 | \begin{desc}
|
---|
690 | |itemjoin=<string>|\qquad|itemjoin*=<string>|
|
---|
691 | \qquad|afterlabel=<string>|
|
---|
692 | \end{desc}
|
---|
693 |
|
---|
694 | Format is set with keys \texttt{itemjoin} (default is a space), and
|
---|
695 | \texttt{afterlabel} (default is |\nobreakspace|, ie, |~|).
|
---|
696 | An additional key is \texttt{itemjoin*}, which, if set, is used
|
---|
697 | instead of \texttt{itemjoin} before the last item. So, with
|
---|
698 | \begin{verbatim}
|
---|
699 | before=\unskip{: }, itemjoin={{; }}, itemjoin*={{, and }}
|
---|
700 | \end{verbatim}
|
---|
701 | the following punctuation between items is used:
|
---|
702 | \begin{quote}
|
---|
703 | Blah blah: (a) one; (b) two; (c) three, and (d) four. Blah blah
|
---|
704 | \end{quote}
|
---|
705 |
|
---|
706 | \verb|itemjoin| is ignored in vertical mode (i.e., in mode unboxed
|
---|
707 | and just after a quote, a displayed list and the like).
|
---|
708 |
|
---|
709 | \begin{desc}
|
---|
710 | |mode=unboxed|\qquad|mode=boxed|
|
---|
711 | \end{desc}
|
---|
712 |
|
---|
713 | Items are boxed, so floats are lost and nested lists are not allowed
|
---|
714 | (remember many displayed elements are defined as lists). If using
|
---|
715 | floats or lists inside inline lists is important, use an alternative
|
---|
716 | ``mode'', which you can activate with
|
---|
717 | \texttt{mode=unboxed} (the default is \texttt{mode=boxes}). With it
|
---|
718 | floats may be used freely, but misplaced |\item|s are not catched and
|
---|
719 | \texttt{itemjoin*} is ignored (a warning is written to the log about
|
---|
720 | this fact).
|
---|
721 |
|
---|
722 | \section{Global settings}
|
---|
723 |
|
---|
724 | Global changes, to be applied to all of these list, are also
|
---|
725 | possible:
|
---|
726 | \begin{desc}
|
---|
727 | |\setlist[enumerate,<levels>]{<format>}|\\
|
---|
728 | |\setlist[itemize,<levels>]{<format>}|\\
|
---|
729 | |\setlist[description,<levels>]{<format>}|\\
|
---|
730 | |\setlist[<levels>]{<format>}|
|
---|
731 | \end{desc}
|
---|
732 | Where |<level>| is the list level (one or more) in |list|, and the
|
---|
733 | corresponding levels in |enumerate| and
|
---|
734 | |itemize|.\footnote{\verb|\string\setenumerate|,
|
---|
735 | \verb|\string\setitemize| and \verb|\string\setdescription| are
|
---|
736 | deprecated.} With no
|
---|
737 | |<levels>|, the format applies to all of them. Here list does not
|
---|
738 | mean any list but only the three ones handled by this package and
|
---|
739 | those redefined by this package or defined with |\newlist| (see
|
---|
740 | below). For example:
|
---|
741 | \begin{verbatim}
|
---|
742 | \setlist{noitemsep}
|
---|
743 | \setlist[1]{\labelindent=\parindent} % << Usually a good idea
|
---|
744 | \setlist[itemize]{leftmargin=*}
|
---|
745 | \setlist[itemize,1]{label=$\triangleleft$}
|
---|
746 | \setlist[enumerate]{labelsep=*, leftmargin=1.5pc}
|
---|
747 | \setlist[enumerate,1]{label=\arabic*., ref=\arabic*}
|
---|
748 | \setlist[enumerate,2]{label=\emph{\alph*}),
|
---|
749 | ref=\theenumi.\emph{\alph*}}
|
---|
750 | \setlist[enumerate,3]{label=\roman*), ref=\theenumii.\roman*}
|
---|
751 | \setlist[description]{font=\sffamily\bfseries}
|
---|
752 | \end{verbatim}
|
---|
753 | These setting are read in the following order: list, list at the
|
---|
754 | current level, enumerate/itemize/description, and
|
---|
755 | enumerate/itemize/description at the current level; if a key appears
|
---|
756 | several times with different values, the last one, i.e., the most
|
---|
757 | specific one, is applied. If we are resuming a series or a list with
|
---|
758 | \texttt{resume*}, the saved keys are then applied. Finally, the
|
---|
759 | optional argument (except \texttt{resume*}), if any, is applied.
|
---|
760 |
|
---|
761 | \LaTeX{} provides a set of macros to change many of these parameters,
|
---|
762 | but setting them with the package is more consistent and sometimes
|
---|
763 | more flexible at the cost of being more ``explicit'' (and verbose).
|
---|
764 |
|
---|
765 | The list specification can contain variables and counters, provided
|
---|
766 | they are expandable, and counters are \textsf{calc}-savvy, so that if
|
---|
767 | you load this package you can write things like:
|
---|
768 | \begin{verbatim}
|
---|
769 | \newcount{toplist}
|
---|
770 | \setcount{toplist}{1}
|
---|
771 | \newcommand{\mylistname}{enumerate}
|
---|
772 | \setlist[\mylistname,\value{toplist}+1]{labelsep=\itemindent+2em]
|
---|
773 | \end{verbatim}
|
---|
774 | This allows defining lists within loops.
|
---|
775 |
|
---|
776 | Currently, a way to discriminate the font size is not provided
|
---|
777 | (|\normalsize|, |\small|\dots).
|
---|
778 |
|
---|
779 | \section{\textsf{enumerate}-like labels}
|
---|
780 | \label{s.short}
|
---|
781 |
|
---|
782 | \begin{desc}
|
---|
783 | |shortlabels| (package option)
|
---|
784 | \end{desc}
|
---|
785 |
|
---|
786 | With the package option \texttt{shortlabels} you can use an
|
---|
787 | \textsf{enumerate}-like syntax, where |A|, |a|, |I|,
|
---|
788 | |i| and |1| stand for |\Alph*|, |\alph*|,
|
---|
789 | |\Roman*|, |\roman*| and |\arabic*|. This is intended
|
---|
790 | mainly as a sort of compatibility mode with the \textsf{enumerate}
|
---|
791 | package, and therefore the following special rule applies: if the very
|
---|
792 | first option (at any level) is not recognized as a valid key, then it
|
---|
793 | will be considered a label with the \textsf{enumerate}-like syntax. For
|
---|
794 | example:
|
---|
795 | \begin{verbatim}
|
---|
796 | \begin{enumerate}[i), labelindent=\parindent]
|
---|
797 | ...
|
---|
798 | \end{enumerate}
|
---|
799 | \end{verbatim}
|
---|
800 | Although perhaps not so useful, you can omit |label=| in the
|
---|
801 | itemize environment under similar conditions, too:
|
---|
802 | \begin{verbatim}
|
---|
803 | \begin{itemize}[\textbullet]
|
---|
804 | ...
|
---|
805 | \end{itemize}
|
---|
806 | \end{verbatim}
|
---|
807 |
|
---|
808 | \begin{desc}
|
---|
809 | |\SetEnumerateShortLabel{<key>}{<replacement>}|
|
---|
810 | \end{desc}
|
---|
811 |
|
---|
812 | With this command, you can define new keys (or redefine them), which is
|
---|
813 | particularly useful for enumerate to be adapted to especific
|
---|
814 | typographical rules or to extend it for non-Latin scrips. Here
|
---|
815 | |<replacement>| contains one of the starred versions of
|
---|
816 | counters. For example:
|
---|
817 | \begin{verbatim}
|
---|
818 | \SetEnumerateShortLabel{i}{\textsc{\roman*}}
|
---|
819 | \end{verbatim}
|
---|
820 | redefines |i| so that items using this key are numbered with
|
---|
821 | small caps roman numerals. The key has to be a single letter.
|
---|
822 |
|
---|
823 | \section{Cloning the basic lists}
|
---|
824 | \label{s.clone}
|
---|
825 |
|
---|
826 | \begin{desc}
|
---|
827 | |\newlist{<name>}{<type>}{<max-depth>}|\\
|
---|
828 | |\renewlist{<name>}{<type>}{<max-depth>}|
|
---|
829 | \end{desc}
|
---|
830 |
|
---|
831 | The three lists can be cloned so that you can define ``logical''
|
---|
832 | environments behaving like them. To define a new lists (or redefine a
|
---|
833 | existing one), use |\newlist| (or |\renewlist|), where |<type>| is
|
---|
834 | |enumerate|, |itemize| or |description|.
|
---|
835 |
|
---|
836 | If <type> is |enumerate|, a set of counters with names |<name>i|,
|
---|
837 | |<name>ii|, |<name>iii|, |<name>iv|, etc. (depending on <max-depth>)
|
---|
838 | is defined. Don't use an arbitrarily large number for <max-depth>, to
|
---|
839 | avoid creating too many counters. Then you can use those counters in
|
---|
840 | labels; e. g., if you have defined a list named \texttt{steps}, you
|
---|
841 | can define a label with:
|
---|
842 | \begin{verbatim}
|
---|
843 | label=\arabic{stepsii}.\arabic{stepsi}
|
---|
844 | \end{verbatim}
|
---|
845 |
|
---|
846 | \begin{desc}
|
---|
847 | \verb|\setlist[<names>,<levels>]{<keys/values>}|\\
|
---|
848 | \verb|\setlist*[<names>,<levels>]{<keys/values>}|
|
---|
849 | \end{desc}
|
---|
850 |
|
---|
851 | After creating a list, you can (in fact you
|
---|
852 | must, at least the label) set the new list with |\setlist|:
|
---|
853 | \begin{verbatim}
|
---|
854 | \newlist{ingredients}{itemize}{1}
|
---|
855 | \setlist[ingredients]{label=\textbullet}
|
---|
856 | \newlist{steps}{enumerate}{2}
|
---|
857 | \setlist[steps,1,2]{label=(\arabic*)}
|
---|
858 | \end{verbatim}
|
---|
859 | Names in the optional argument of |\setlist| say which lists applies the
|
---|
860 | settings to, and numbers say the level (it is calc-savvy). Several
|
---|
861 | lists and/or several levels can be given, and all combinations are
|
---|
862 | set; e.g.:
|
---|
863 | \begin{verbatim}
|
---|
864 | \setlist[enumerate,itemize,2,3]{...}
|
---|
865 | \end{verbatim}
|
---|
866 | \noindent sets enumerate/2, enumerate/3, itemize/2 and itemize/3.
|
---|
867 | No number (or 0) means ``all levels'' and no name means ``all lists''; no
|
---|
868 | optional argument means ``all lists at all levels''.
|
---|
869 |
|
---|
870 | The three inline lists have types \texttt{enumerate*},
|
---|
871 | \texttt{itemize*}, and \texttt{description*}, which are available
|
---|
872 | always, even without the package option |inline| (which just defines
|
---|
873 | three environments with these names).
|
---|
874 |
|
---|
875 | The starred form \verb|\setlist*| adds the settings to previous ones.
|
---|
876 |
|
---|
877 | \begin{desc}
|
---|
878 | \verb|\setlistdepth{<integer>|\3
|
---|
879 | \end{desc}
|
---|
880 |
|
---|
881 | By default, \LaTeX{} has a limit of 5 nesting levels, but when
|
---|
882 | cloning list this value may be too short, and therefore you may want
|
---|
883 | to set a new value. In levels below the 5th (or the deepest defined by a
|
---|
884 | class), the settings of the last are used (i.e., \verb|\@listvi|).
|
---|
885 |
|
---|
886 | \section{More about counters}
|
---|
887 |
|
---|
888 | \subsection{New counter representation}
|
---|
889 |
|
---|
890 | \begin{desc}
|
---|
891 | \verb|\AddEnumerateCounter{<LaTeX command>}{<internal command>}{<widest label>}|
|
---|
892 | \end{desc}
|
---|
893 |
|
---|
894 | ``Registers'' a counter representation so that \textsf{enumitem}
|
---|
895 | recognizes it. Intended mainly for non Latin scripts, but also useful
|
---|
896 | in Latin scripts. For example:
|
---|
897 | \begin{verbatim}
|
---|
898 | \makeatletter
|
---|
899 | \def\ctext#1{\expandafter\@ctext\csname c@#1\endcsname}
|
---|
900 | \def\@ctext#1{\ifcase#1\or First\or Second\or Third\or
|
---|
901 | Fourth\or Fifth\or Sixth\fi}
|
---|
902 | \makeatother
|
---|
903 | \AddEnumerateCounter{\ctext}{\@ctext}{Second}
|
---|
904 | \end{verbatim}
|
---|
905 | A starred variant allows to give a number instead of a string as the
|
---|
906 | widest label; for example, if the widest label is that corresponding
|
---|
907 | to the value 2:\3
|
---|
908 | \begin{verbatim}
|
---|
909 | \AddEnumerateCounter*{\ctext}{\@ctmoreext}{2}
|
---|
910 | \end{verbatim}
|
---|
911 | This variant is to be preferred if the representation is not a plain
|
---|
912 | string but it is styled, e.g.,
|
---|
913 | with small caps. (The counter names can contain |@| even if not a letter.)
|
---|
914 |
|
---|
915 | \subsection{Restarting \texttt{enumerate}s}
|
---|
916 |
|
---|
917 | \begin{desc}
|
---|
918 | |\restartlist{<list-name>}|\3
|
---|
919 | \end{desc}
|
---|
920 |
|
---|
921 | Currently, with
|
---|
922 | \begin{verbatim}
|
---|
923 | \setlist[enumerate]{resume}
|
---|
924 | \end{verbatim}
|
---|
925 | you can get a continuous numbering through a document. A new command has
|
---|
926 | been added for restarting the counter in the middle of the document:
|
---|
927 | \begin{verbatim}
|
---|
928 | \restartlist{<list-name>}
|
---|
929 | \end{verbatim}
|
---|
930 |
|
---|
931 | It is based solely in the list name, not the list type, which means
|
---|
932 | \texttt{enumerate*} as defined with the package option \texttt{inline}
|
---|
933 | is not the same as \texttt{enumerate}, because its name is different.
|
---|
934 |
|
---|
935 | \section{Generic keys and values}
|
---|
936 |
|
---|
937 | \begin{desc}
|
---|
938 | |\SetEnumitemKey{<key>}{<replacement>}|\3
|
---|
939 | \end{desc}
|
---|
940 |
|
---|
941 | With this command you can create your own (valueless) keys. For
|
---|
942 | example:
|
---|
943 | \begin{verbatim}
|
---|
944 | \SetEnumitemKey{midsep}{topsep=3pt,partopsep=0pt}
|
---|
945 | \end{verbatim}
|
---|
946 |
|
---|
947 | Keys so defined can then be used like the others. Another example is
|
---|
948 | multicolumn lists, with \textsf{multicol}:
|
---|
949 | \begin{verbatim}
|
---|
950 | \SetEnumitemKey{twocol}{
|
---|
951 | itemsep=1\itemsep,
|
---|
952 | parsep=1\parsep,
|
---|
953 | before=\raggedcolumns\begin{multicols}{2},
|
---|
954 | after=\end{multicols}}
|
---|
955 | \end{verbatim}
|
---|
956 |
|
---|
957 | (The settings for \texttt{itemsep} and \texttt{parsep} kill the
|
---|
958 | stretch and shrink parts. Of course, you may want to define a
|
---|
959 | new list.)
|
---|
960 |
|
---|
961 | Note the package may introduce new keys in the future, so
|
---|
962 | \verb|\SetEnumitemKey| is a potential source of forward
|
---|
963 | incompatibilities. However, it's safe using a non-letter character
|
---|
964 | other than hyphen or star in the key name (e.g., \verb|:name| or
|
---|
965 | \verb|2_col|).
|
---|
966 |
|
---|
967 | \begin{desc}
|
---|
968 | |\SetEnumitemValue{<key>}{<string-value>}{<replacement>}|\3
|
---|
969 | \end{desc}
|
---|
970 |
|
---|
971 | This commands provides a further abstraction layer for the
|
---|
972 | |<key>=<value>| pairs. With it you can define logical names which
|
---|
973 | are translated to the actual value. For example, with:
|
---|
974 | \begin{verbatim}
|
---|
975 | \SetEnumitemValue{label}{numeric}{\arabic*.}
|
---|
976 | \SetEnumitemValue{leftmargin}{standard}{\parindent}
|
---|
977 | \end{verbatim}
|
---|
978 | you might say:
|
---|
979 | \begin{verbatim}
|
---|
980 | \begin{enumerate}[label=numeric,leftmargin=standard]
|
---|
981 | \end{verbatim}
|
---|
982 | So, you can left to the final design what |label=numeric| means.
|
---|
983 |
|
---|
984 | \section{Package options}
|
---|
985 |
|
---|
986 | Besides \verb|inline|, \verb|ignoredisplayed|, and \verb|shortlabels|,
|
---|
987 | the following option is available.
|
---|
988 |
|
---|
989 | \begin{desc}
|
---|
990 | \verb|loadonly|
|
---|
991 | \end{desc}
|
---|
992 |
|
---|
993 | With this package option the package is loaded but the three
|
---|
994 | lists are not redefined. You can create your own lists, yet, or
|
---|
995 | even redefine the existing ones.
|
---|
996 |
|
---|
997 | \section{Three patterns}
|
---|
998 |
|
---|
999 | Three list layouts could be considered very
|
---|
1000 | frequent. Let us apply the parameters above to define them. (Below
|
---|
1001 | are samples.)
|
---|
1002 |
|
---|
1003 | The first pattern aligns the label with the surrounding
|
---|
1004 | |\parindent| while the item body is indented depending
|
---|
1005 | on the label and a fixed |labelsep|:
|
---|
1006 | \begin{verbatim}
|
---|
1007 | labelindent=\parindent,
|
---|
1008 | leftmargin=*
|
---|
1009 | \end{verbatim}
|
---|
1010 | A fairly frequent variant is aligning the label with the
|
---|
1011 | surrounding text (rememeber |labelindent| is |0pt| by
|
---|
1012 | default):
|
---|
1013 | \begin{verbatim}
|
---|
1014 | leftmargin=*
|
---|
1015 | \end{verbatim}
|
---|
1016 | The former looks better in the first level while the latter
|
---|
1017 | seems preferable in subsequent ones. That can be easily
|
---|
1018 | set with
|
---|
1019 | \begin{verbatim}
|
---|
1020 | \setlist{leftmargin=*}
|
---|
1021 | \setlist[1]{labelindent=\parindent} % Only the level 1
|
---|
1022 | \end{verbatim}
|
---|
1023 |
|
---|
1024 | The second pattern aligns the item body with the surrounding
|
---|
1025 | |\parindent|. In this case:
|
---|
1026 | \begin{verbatim}
|
---|
1027 | leftmargin=\parindent
|
---|
1028 | \end{verbatim}
|
---|
1029 |
|
---|
1030 | A third pattern would be to align the label with |\parindent|
|
---|
1031 | and the item body with |2\parindent|:
|
---|
1032 | \begin{verbatim}
|
---|
1033 | labelindent=\parindent,
|
---|
1034 | leftmargin=2\parindent,
|
---|
1035 | itemsep=*
|
---|
1036 | \end{verbatim}
|
---|
1037 | Again, a variant would be to align the label with the surrounding
|
---|
1038 | text and the itembody with |\parindent|:
|
---|
1039 | \begin{verbatim}
|
---|
1040 | leftmargin=\parindent,
|
---|
1041 | itemsep=*
|
---|
1042 | \end{verbatim}
|
---|
1043 |
|
---|
1044 | Note here |\parindent| means the global value applied
|
---|
1045 | to normal paragraphs.
|
---|
1046 |
|
---|
1047 | \section{The trivlist issue}
|
---|
1048 |
|
---|
1049 | \LaTeX{} uses a simplified version of |list| named |trivlist| to set
|
---|
1050 | displayed material, like |center|, |verbatim|, \verb|tabbing|,
|
---|
1051 | \verb|theorem|, etc., even if conceptually they are not lists.
|
---|
1052 | Unfortunately, |trivlist| uses the current list settings, which has
|
---|
1053 | the odd side effect that changing the vertical spacing of lists also
|
---|
1054 | changes sometimes the spacing in these environments.
|
---|
1055 |
|
---|
1056 | This package modifies |trivlist| so that the default settings for
|
---|
1057 | the current level (ie, those set by the corresponding |clo|
|
---|
1058 | files) are set again. In standard \LaTeX{} that is usually redundand,
|
---|
1059 | but if we want to fine tune lists, not resetting the default values
|
---|
1060 | could be a real issue (particularly if you use the |nolistsep|
|
---|
1061 | option).
|
---|
1062 |
|
---|
1063 | A minimal control of vertical spacing has been made possible
|
---|
1064 | with\footnote{\verb|\string\setdisplayed| is deprecated.}
|
---|
1065 | \begin{itemize}
|
---|
1066 | \item |\setlist[trivlist,<level>]{<keys/values>}|
|
---|
1067 | \end{itemize}
|
---|
1068 | but |trivlist| itself, which is not used directly very
|
---|
1069 | often, does not accept an optional argument. This feature
|
---|
1070 | is not intended as a full-fledge |trivlist| formatter.
|
---|
1071 |
|
---|
1072 | If for some reason you do not want to change |trivlist|
|
---|
1073 | and preserve the original definition, you can use the
|
---|
1074 | package option |ignoredisplayed|.
|
---|
1075 |
|
---|
1076 | \section{Samples}
|
---|
1077 |
|
---|
1078 | \expandafter\ifx\csname setenumerate\endcsname\relax
|
---|
1079 |
|
---|
1080 | Please, install first the package and then typeset this
|
---|
1081 | document again.
|
---|
1082 |
|
---|
1083 | \else
|
---|
1084 |
|
---|
1085 | In these samples we set |\setlist{noitemsep}|
|
---|
1086 |
|
---|
1087 | \setlist{noitemsep}
|
---|
1088 | \small
|
---|
1089 |
|
---|
1090 | \newcommand{\newsample}{\vskip6pt\goodbreak\hrule height 1pt\vskip6pt}
|
---|
1091 | \newcommand{\samplesep}{\vskip6pt\goodbreak\hrule\vskip6pt}
|
---|
1092 | \newbox\vsep
|
---|
1093 | \setbox\vsep\hbox{\vrule height 2ex depth 16ex width 1pt}
|
---|
1094 | \dp\vsep0pt
|
---|
1095 | \newcommand\showsep{\leavevmode\llap{\copy\vsep}}
|
---|
1096 |
|
---|
1097 | \newsample
|
---|
1098 |
|
---|
1099 | \begin{verbatim}
|
---|
1100 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1101 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1102 | \begin{enumerate}[labelindent=\parindent,leftmargin=*]
|
---|
1103 | \item lanza en astillero,
|
---|
1104 | \item adarna antigua,
|
---|
1105 | \item roc\'{\i}n flaco, y
|
---|
1106 | \item galgo corredor.
|
---|
1107 | \end{enumerate}
|
---|
1108 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1109 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1110 | \end{verbatim}
|
---|
1111 |
|
---|
1112 | The rule shows \verb|labelindent|.
|
---|
1113 |
|
---|
1114 | \samplesep
|
---|
1115 |
|
---|
1116 | \showsep En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1117 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1118 | \begin{enumerate}[labelindent=\parindent,leftmargin=*]
|
---|
1119 | \item lanza en astillero,
|
---|
1120 | \item adarna antigua,
|
---|
1121 | \item roc\'{\i}n flaco, y
|
---|
1122 | \item galgo corredor.
|
---|
1123 | \end{enumerate}
|
---|
1124 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1125 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1126 |
|
---|
1127 | \newsample
|
---|
1128 |
|
---|
1129 | With |\begin{enumerate}[leftmargin=*] % labelindent=0pt by default|.
|
---|
1130 |
|
---|
1131 | The rule shows \verb|labelindent|.
|
---|
1132 |
|
---|
1133 | \samplesep
|
---|
1134 |
|
---|
1135 | \noindent\showsep\hskip\parindent En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1136 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1137 | \begin{enumerate}[leftmargin=*]
|
---|
1138 | \item lanza en astillero,
|
---|
1139 | \item adarna antigua,
|
---|
1140 | \item roc\'{\i}n flaco, y
|
---|
1141 | \item galgo corredor.
|
---|
1142 | \end{enumerate}
|
---|
1143 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1144 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1145 |
|
---|
1146 | \newsample
|
---|
1147 |
|
---|
1148 | With |\begin{enumerate}[leftmargin=\parindent]|.
|
---|
1149 |
|
---|
1150 | The rule shows \verb|leftmargin|.
|
---|
1151 |
|
---|
1152 | \samplesep
|
---|
1153 |
|
---|
1154 | \showsep En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1155 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1156 | \begin{enumerate}[leftmargin=\parindent]
|
---|
1157 | \item lanza en astillero,
|
---|
1158 | \item adarna antigua,
|
---|
1159 | \item roc\'{\i}n flaco, y
|
---|
1160 | \item galgo corredor.
|
---|
1161 | \end{enumerate}
|
---|
1162 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1163 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1164 |
|
---|
1165 | \newsample
|
---|
1166 |
|
---|
1167 | With |\begin{enumerate}[labelindent=\parindent,|\allowbreak
|
---|
1168 | | leftmargin=*,|\allowbreak| label=\Roman*.,|\allowbreak
|
---|
1169 | | widest=IV,|\allowbreak| align=left]|.
|
---|
1170 |
|
---|
1171 | The rule shows \verb|labelindent|.
|
---|
1172 |
|
---|
1173 | \samplesep
|
---|
1174 |
|
---|
1175 | \showsep En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1176 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1177 | \begin{enumerate}[labelindent=\parindent, leftmargin=*,
|
---|
1178 | label=\Roman*., widest=IV, align=left]
|
---|
1179 | \item lanza en astillero,
|
---|
1180 | \item adarna antigua,
|
---|
1181 | \item roc\'{\i}n flaco, y
|
---|
1182 | \item galgo corredor.
|
---|
1183 | \end{enumerate}
|
---|
1184 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1185 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1186 |
|
---|
1187 | \newsample
|
---|
1188 |
|
---|
1189 | With |\begin{enumerate}[label=\fbox{\arabic*}]|. A reference to
|
---|
1190 | the first item is \ref{i:first}
|
---|
1191 |
|
---|
1192 | \samplesep
|
---|
1193 |
|
---|
1194 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1195 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1196 | \begin{enumerate}[label=\fbox{\arabic*}]
|
---|
1197 | \item \label{i:first}lanza en astillero,
|
---|
1198 | \item adarna antigua,
|
---|
1199 | \item roc\'{\i}n flaco, y
|
---|
1200 | \item galgo corredor.
|
---|
1201 | \end{enumerate}
|
---|
1202 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1203 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1204 |
|
---|
1205 | \newsample
|
---|
1206 |
|
---|
1207 | With nested lists.
|
---|
1208 |
|
---|
1209 | \samplesep
|
---|
1210 |
|
---|
1211 | \begin{verbatim}
|
---|
1212 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1213 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1214 | \begin{enumerate}[label=(\alph*), labelindent=\parindent,
|
---|
1215 | leftmargin=*, start=12]
|
---|
1216 | \item lanza en astillero,
|
---|
1217 | \begin{enumerate}[label=(\alph{enumi}.\roman*), leftmargin=*, start=7]
|
---|
1218 | \item adarna antigua,
|
---|
1219 | \end{enumerate}
|
---|
1220 | \item roc\'{\i}n flaco, y
|
---|
1221 | \begin{enumerate}[label=(\alph{enumi}.\roman*), leftmargin=*, resume]
|
---|
1222 | \item galgo corredor.
|
---|
1223 | \end{enumerate}
|
---|
1224 | \end{enumerate}
|
---|
1225 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1226 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1227 | \end{verbatim}
|
---|
1228 |
|
---|
1229 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1230 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1231 | \begin{enumerate}[label=(\alph*), labelindent=\parindent,
|
---|
1232 | leftmargin=*, start=12]
|
---|
1233 | \item lanza en astillero,
|
---|
1234 | \begin{enumerate}[label=(\alph{enumi}.\roman*), leftmargin=*, start=7]
|
---|
1235 | \item adarna antigua,
|
---|
1236 | \end{enumerate}
|
---|
1237 | \item roc\'{\i}n flaco, y
|
---|
1238 | \begin{enumerate}[label=(\alph{enumi}.\roman*), leftmargin=*, resume]
|
---|
1239 | \item galgo corredor.
|
---|
1240 | \end{enumerate}
|
---|
1241 | \end{enumerate}
|
---|
1242 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1243 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1244 |
|
---|
1245 | \newsample
|
---|
1246 |
|
---|
1247 | \begin{verbatim}
|
---|
1248 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1249 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1250 | \begin{description}[font=\sffamily\bfseries, leftmargin=3cm,
|
---|
1251 | style=nextline]
|
---|
1252 | \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero,
|
---|
1253 | \item[Lo segundo] adarna antigua,
|
---|
1254 | \item[Lo tercero] roc\'{\i}n flaco, y
|
---|
1255 | \item[Y por \'{u}ltimo, lo cuarto] galgo corredor.
|
---|
1256 | \end{description}
|
---|
1257 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1258 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1259 | \end{verbatim}
|
---|
1260 |
|
---|
1261 | \samplesep
|
---|
1262 |
|
---|
1263 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1264 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1265 | \begin{description}[font=\sffamily\bfseries, leftmargin=3cm,
|
---|
1266 | style=nextline]
|
---|
1267 | \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero,
|
---|
1268 | \item[Lo segundo] adarna antigua,
|
---|
1269 | \item[Lo tercero] roc\'{\i}n flaco, y
|
---|
1270 | \item[Y por \'{u}ltimo, lo cuarto] galgo corredor.
|
---|
1271 | \end{description}
|
---|
1272 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1273 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1274 |
|
---|
1275 | \newsample
|
---|
1276 |
|
---|
1277 | Same, but with |sameline|.
|
---|
1278 |
|
---|
1279 | \samplesep
|
---|
1280 |
|
---|
1281 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1282 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1283 | \begin{description}[font=\sffamily\bfseries, leftmargin=3cm,
|
---|
1284 | style=sameline]
|
---|
1285 | \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero,
|
---|
1286 | \item[Lo segundo] adarna antigua,
|
---|
1287 | \item[Lo tercero] roc\'{\i}n flaco, y
|
---|
1288 | \item[Y por \'{u}ltimo, lo cuarto] galgo corredor.
|
---|
1289 | \end{description}
|
---|
1290 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1291 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1292 |
|
---|
1293 | \newsample
|
---|
1294 |
|
---|
1295 | Same, but with |multiline|. Note the text overlaps if
|
---|
1296 | the item body is too short.
|
---|
1297 |
|
---|
1298 | \samplesep
|
---|
1299 |
|
---|
1300 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1301 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1302 | \begin{description}[font=\sffamily\bfseries, leftmargin=3cm,
|
---|
1303 | style=multiline]
|
---|
1304 | \item[Lo primero que ten\'{\i}a el Quijote] lanza en astillero,
|
---|
1305 | \item[Lo segundo] adarna antigua,
|
---|
1306 | \item[Lo tercero] roc\'{\i}n flaco, y
|
---|
1307 | \item[Y por \'{u}ltimo, lo cuar] galgo corredor.
|
---|
1308 | \end{description}
|
---|
1309 | Una olla de algo m\'{a}s vaca que carnero, salpic\'{o}n las m\'{a}s
|
---|
1310 | noches, duelos y quebrantos los s\'{a}bados...
|
---|
1311 |
|
---|
1312 | \fi
|
---|
1313 |
|
---|
1314 | \normalsize
|
---|
1315 |
|
---|
1316 | \section{Afterword}
|
---|
1317 |
|
---|
1318 | \subsection{\LaTeX{} lists}
|
---|
1319 |
|
---|
1320 | As it is well known, \LaTeX{} predefines three lists:
|
---|
1321 | \texttt{enumerate}, \texttt{itemize} and \texttt{description}. This
|
---|
1322 | is a very frequent classification which can also be found in, say,
|
---|
1323 | HTML. However, there is a more general model based in three
|
---|
1324 | fields---namely, label, title, and body---, so that enumerate and
|
---|
1325 | itemize has label (numbered and unnumbered) but no title, while
|
---|
1326 | description has title but no label. In this model, one can have a
|
---|
1327 | description with entries marked with labels, as for example (of
|
---|
1328 | course, this simple solution is far from satistactory):
|
---|
1329 | \begin{verbatim}
|
---|
1330 | \newcommand\litem[1]{\item{\bfseries #1,\enspace}}
|
---|
1331 | \begin{itemize}[label=\textbullet]
|
---|
1332 | \litem{Lo primero que ten\'{\i}a el Quijote} lanza en astillero,
|
---|
1333 | ... etc.
|
---|
1334 | \end{verbatim}
|
---|
1335 |
|
---|
1336 | \vskip6pt
|
---|
1337 | \goodbreak
|
---|
1338 | \hrule
|
---|
1339 | \vskip6pt
|
---|
1340 |
|
---|
1341 | \newcommand\litem[1]{\item{\bfseries #1,\enspace}}
|
---|
1342 | En un lugar de la Mancha, de cuyo nombre no quiero acordarme,
|
---|
1343 | no ha mucho tiempo que viv\'{\i}a un hidalgo de los de
|
---|
1344 | \begin{itemize}[label=\textbullet]
|
---|
1345 | \litem{Lo primero que ten\'{\i}a el Quijote} lanza en astillero,
|
---|
1346 | \litem{Lo segundo} adarna antigua,
|
---|
1347 | \litem{Lo tercero} roc\'{\i}n flaco, y
|
---|
1348 | \litem{Y por \'{u}ltimo, lo cuarto} galgo corredor.
|
---|
1349 | \end{itemize}
|
---|
1350 |
|
---|
1351 | \vskip6pt
|
---|
1352 | \goodbreak
|
---|
1353 | \hrule
|
---|
1354 | \vskip6pt
|
---|
1355 |
|
---|
1356 | This format in not infrequent at all and a tool for defining them is
|
---|
1357 | on the way and at a very advanced stage. It has not been include in
|
---|
1358 | version 3.0 because I'm not sure if the proper place is this package
|
---|
1359 | or \textsf{titlesec} and it is not stable enough yet.
|
---|
1360 |
|
---|
1361 | \subsection{Known issues}
|
---|
1362 |
|
---|
1363 | \begin{itemize}
|
---|
1364 |
|
---|
1365 | \item
|
---|
1366 | List resuming is based on environment names, and when a
|
---|
1367 | |\newenvironment| contains a list you may want to use |\begin| and
|
---|
1368 | |\end|. Using the corresponding commands, however, is not an error,
|
---|
1369 | but it is your responsability to make sure the result is correct.
|
---|
1370 |
|
---|
1371 | \item
|
---|
1372 | It seems there is no way to catch a misspelled name in |\setlist|
|
---|
1373 | and a meaningless error ``Missing number, treated as zero'' is raised.
|
---|
1374 |
|
---|
1375 | \item The behaviour of mixed boxed labels (including enumerate and
|
---|
1376 | itemize) and unboxed labels is not well-defined. The same applies to
|
---|
1377 | boxed and unboxed inline lists (which could even raise an error).
|
---|
1378 | Similarly, resuming a series and a list at the same time is allowed,
|
---|
1379 | too, but again its behaviour is not well-defined.
|
---|
1380 |
|
---|
1381 | \item (3.5.2) An incompatibility with 2.x has popped up -- if you were
|
---|
1382 | using the optional argument to pass a value to a \verb|\ref| or other
|
---|
1383 | macro requiring expandable macros, an error is raised. A quick fix
|
---|
1384 | is letting \verb|\makelabel| to |\descriptionlabel| in \texttt{before}.
|
---|
1385 |
|
---|
1386 | \end{itemize}
|
---|
1387 |
|
---|
1388 | \subsection{What's new in 3.0}
|
---|
1389 |
|
---|
1390 | \begin{itemize}
|
---|
1391 | \item Inline lists, with keys to set how items are joined (ie, the
|
---|
1392 | punctuation between items). Two modes are provided: \verb|boxed| and
|
---|
1393 | \verb|unboxed|.
|
---|
1394 |
|
---|
1395 | \item \verb|\setlist| is \textsf{calc}-savvy (eg, for use in loops),
|
---|
1396 | and you can set diferent lists and levels at once. \item All lengths
|
---|
1397 | related to labels can take the value \verb|*| (and not only
|
---|
1398 | \verb|labelsep| and \verb|leftmargin|). Its behaviour has been made
|
---|
1399 | consistent and there is new value \verb|!| which does not compute the
|
---|
1400 | widest label.
|
---|
1401 |
|
---|
1402 | \item With \verb|\restartlist{<list-name>}|, list counters can be restarted (in
|
---|
1403 | case you are using \verb|resume|).
|
---|
1404 |
|
---|
1405 | \item \verb|resume*| can be combined with other keys.
|
---|
1406 |
|
---|
1407 | \item Lists can be gathered globally using series, so that they are
|
---|
1408 | considered a single list. To start a series just use
|
---|
1409 | |series=<series-name>| and then resume it with |resume=<series-name>| or
|
---|
1410 | |resume*=<series-name>|.
|
---|
1411 |
|
---|
1412 | \item The ``experimental'' \verb|fullwidth| has been replaced by a new key
|
---|
1413 | \verb|wide|.
|
---|
1414 |
|
---|
1415 | \item|\SetLabelAlign| defines new align values.
|
---|
1416 |
|
---|
1417 | \item You can define ``abstract'' values (eg, \verb|label=numeric|) and
|
---|
1418 | new keys.
|
---|
1419 | \end{itemize}
|
---|
1420 |
|
---|
1421 | \begin{itemize}
|
---|
1422 | \item (3.2) \verb|start| and \verb|widest*| are \textsf{calc}-savvy.
|
---|
1423 | \item (3.2) \verb|\value| can be used with \verb|widest*|.
|
---|
1424 | \item (3.2) Some internal restrictions in \verb|\arabic| and the like
|
---|
1425 | has been removed. It is more flexible at the cost of having a more
|
---|
1426 | ``relaxed'' error checking.
|
---|
1427 | \end{itemize}
|
---|
1428 | \subsection{Bug fixes}
|
---|
1429 |
|
---|
1430 | \begin{itemize}
|
---|
1431 | \item Star values (eg, \verb|leftmargin=*|) could not be overriden
|
---|
1432 | and new values were ignored.
|
---|
1433 | \item \verb|nolistsep| as the first of several keys was not always
|
---|
1434 | recognized and therefore treated like a short label
|
---|
1435 | (i.e., \verb|nol\roman*stsep|).
|
---|
1436 | \item \verb|labelwidth| did not always work (when there was a prior
|
---|
1437 | \verb|widest| and \verb|*|)
|
---|
1438 | \item With \verb|align=right| the label and the following text could
|
---|
1439 | overlap.
|
---|
1440 | \item \verb|description| did not get the correct list level.
|
---|
1441 | \item At some point (2.x?) \verb|\value*| stopped working.
|
---|
1442 | \item (3.1) Unfortunately, \textsf{xkeyval} ``kills''
|
---|
1443 | \textsf{keyval}, so the lattest has been replicated in
|
---|
1444 | \textsf{enumitem}.
|
---|
1445 | \item (3.3) Fixes a serious bug -- with \verb|*| neither
|
---|
1446 | \verb|itemize| nor \verb|description| worked.
|
---|
1447 | \item (3.4) Fixes bad spacing in mode boxed (misplaced \verb|\unskip|
|
---|
1448 | before the first item and wrong spacefactor between items).
|
---|
1449 | \item (3.4) \verb|nolistsep| did not work as intended, but since the
|
---|
1450 | error has been there for several years, a new key \verb|nosep| is
|
---|
1451 | provided.
|
---|
1452 | \item (3.4) The issue with \verb|nolistsep| with \verb|shortlabels|
|
---|
1453 | (see above) was not fixed in all cases. Hopefully now it is.
|
---|
1454 | \item (3.5.0) Fixed the fix related to the spacefactor between items.
|
---|
1455 | \item (3.5.0) Fixed a problem with nested boxed inline lists.
|
---|
1456 | \item (3.5.1) \texttt{resume*} only worked once, and subsequent ones
|
---|
1457 | bahaved like \texttt{resume}.
|
---|
1458 | \item (3.5.2) Fixed |\setlist*|, which didn't work.
|
---|
1459 | \end{itemize}
|
---|
1460 |
|
---|
1461 |
|
---|
1462 | \subsection{Acknowledgements}
|
---|
1463 |
|
---|
1464 | I wish to thank particularly the comments and suggestions from Lars
|
---|
1465 | Madsen, who has found some bugs, too.
|
---|
1466 |
|
---|
1467 | \end{document}
|
---|