summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/enumitem/enumitem.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-11-30 21:48:04 +0000
committerKarl Berry <karl@freefriends.org>2018-11-30 21:48:04 +0000
commit6cb6bb4e14d1047d4c14719b41b3bdb09aafdaf1 (patch)
treec346a76bab3cec8d42c1bf3507a610a57050f251 /Master/texmf-dist/tex/latex/enumitem/enumitem.sty
parentb006f4cd3646632bf6f75a28132194a04df83855 (diff)
enumitem (30nov18)
git-svn-id: svn://tug.org/texlive/trunk@49282 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/enumitem/enumitem.sty')
-rw-r--r--Master/texmf-dist/tex/latex/enumitem/enumitem.sty438
1 files changed, 339 insertions, 99 deletions
diff --git a/Master/texmf-dist/tex/latex/enumitem/enumitem.sty b/Master/texmf-dist/tex/latex/enumitem/enumitem.sty
index 7a505b85541..9269843da11 100644
--- a/Master/texmf-dist/tex/latex/enumitem/enumitem.sty
+++ b/Master/texmf-dist/tex/latex/enumitem/enumitem.sty
@@ -1,25 +1,17 @@
-% +--------------------------------------------------+
-% | Typeset enumitem.tex to get the documentation. |
-% +--------------------------------------------------+
%
-% Copyright (c) 2003-2011 by Javier Bezos.
-% All Rights Reserved.
+% Copyright (C) 2003-2018 Javier Bezos http://www.texnia.com
%
-% This file is part of the enumitem distribution release 3.5.2
-% -----------------------------------------------------------
-%
-% It may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2003/12/01 or later.
-%
-% This work has the LPPL maintenance status "maintained".
-%
-% The Current Maintainer of this work is Javier Bezos.
+% This file may be distributed and/or modified under the conditions of
+% the MIT License. A version can be found at the end of this file.
%
+% Repository: https://github.com/jbezos/enumitem
+%
+% Release
+% ~~~~~~~
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{enumitem}[2018/11/30 v3.6 Customized lists]
+
% Notes
% ~~~~~
%
@@ -40,22 +32,18 @@
% - Define keys with values
% - Revise @nobreak
%
-% Release
-% ~~~~~~~
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{enumitem}[2011/09/28 v3.5.2 Customized lists]
-
% +=============================+
% | EMULATING KEYVAL |
% +=============================+
%
-% "Thanks" to xkeyval, which use the same macros names as
+% "Thanks" to xkeyval, which uses the same macro names as
% keyval :-(, the latter has to be replicated in full here
-% to ensure it works as intended. The original work if by
+% to ensure it works as intended. The original work is by
% David Carlisle, under license LPPL. Once the code is here,
-% it could be optimized by adpting it to the specific needs
-% of titlesec (to do).
+% it could be optimized by adapting it to the specific needs
+% of enumitem (to do).
+
+% TODO - Update to the latest changes in keyval
\def\enitkv@setkeys#1#2{%
\def\enitkv@prefix{enitkv@#1@}%
@@ -63,9 +51,9 @@
\enitkv@do#2,\relax,}
\def\enitkv@do#1,{%
- \ifx\relax#1\empty\else
- \enitkv@split#1==\relax
- \expandafter\enitkv@do\fi}
+ \ifx\relax#1\empty\else
+ \enitkv@split#1==\relax
+ \expandafter\enitkv@do\fi}
\def\enitkv@split#1=#2=#3\relax{%
\enitkv@@sp@def\@tempa{#1}%
@@ -124,23 +112,25 @@
{\csname enitkv@#1@#2\endcsname{#3}}%
\@namedef{enitkv@#1@#2}##1}
+% This ends the code copied from keyval (under LPPL).
+
% +=============================+
% | DEFINITIONS |
% +=============================+
%
% (1) The package uses a token register very often. To be on the
-% safe side, instead of \toks@, etc., a new one is declared.
+% safe side, instead of \toks@, etc., a new one is declared.
% (2) \enit@inbox is the box storing the items in boxed inline
-% lists.
+% lists.
% (3) \enit@outerparindent is used to save the outer parindent
-% so that it can be used in the key parindent
+% so that it can be used in the key parindent
% (4) \enit@type has three values: 0 = enum, 1 = item, 2 = desc.
% (5) \enit@calc stores which dimen is to be computed:
-% 0=labelindent, 1=labelwidth, 2=labelsep, 3=leftmargin,
-% 4=itemindent
+% 0=labelindent, 1=labelwidth, 2=labelsep, 3=leftmargin,
+% 4=itemindent
% (6) \enit@resuming has four values: 0 = none, 1 = series,
-% 2 = resume* series (computed in group enumitem-resume),
-% 3 = resume* list (ie, with no value).
+% 2 = resume* series (computed in group enumitem-resume),
+% 3 = resume* list (ie, with no value).
\chardef \enit@iv=4
\newlength\labelindent
@@ -162,11 +152,32 @@
\def\enit@meaning{\expandafter\strip@prefix\meaning}
\def\enit@noexcs#1{\expandafter\noexpand\csname#1\endcsname}
+\long\def\enit@afterelse#1\else#2\fi{\fi#1}
+\long\def\enit@afterfi#1\fi{\fi#1}
+\def\enit@ifunset#1{%
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\enit@ifunset{ifcsname}%
+ {}%
+ {\def\enit@ifunset#1{%
+ \ifcsname#1\endcsname
+ \expandafter\ifx\csname#1\endcsname\relax
+ \enit@afterelse\expandafter\@firstoftwo
+ \else
+ \enit@afterfi\expandafter\@secondoftwo
+ \fi
+ \else
+ \expandafter\@firstoftwo
+ \fi}}
+
% Miscelaneous errors
% ===================
\def\enit@error{\PackageError{enumitem}}
-
+
\def\enit@checkerror#1#2{%
\enit@error{Unknown value `#2' for key `#1'}%
{See the manual for valid values}}
@@ -203,13 +214,12 @@
\else
\count@\@listdepth
\global\advance\@listdepth\@ne
- \@ifundefined{@list\romannumeral\the\@listdepth}%
+ \enit@ifunset{@list\romannumeral\the\@listdepth}%
{\expandafter\let
\csname @list\romannumeral\the\@listdepth\expandafter\endcsname
\csname @list\romannumeral\the\count@\endcsname}{}%
\fi}
-
% +=============================+
% | KEYS |
% +=============================+
@@ -230,16 +240,19 @@
% ================
\enitkv@key{enumitem}{topsep}{%
- \setlength\topsep{#1}}
+ \enit@setlength\topsep{#1}}
+
+% \enitkv@key{enumitem}{bottomsep}{%
+ % \def\enit@bottomsep{#1}}
\enitkv@key{enumitem}{itemsep}{%
- \setlength\itemsep{#1}}
+ \enit@setlength\itemsep{#1}}
\enitkv@key{enumitem}{parsep}{%
- \setlength\parsep{#1}}
+ \enit@setlength\parsep{#1}}
\enitkv@key{enumitem}{partopsep}{%
- \setlength\partopsep{#1}}
+ \enit@setlength\partopsep{#1}}
% Horizontal spacing
% ==================
@@ -261,13 +274,21 @@
\enit@calcwidestfalse
\let\enit@calc\z@
\fi
- \setlength#1{#3}%
+ \enit@setlength#1{#3}%
\fi\fi}
\def\enitkv@enumitem@widest#1{%
\expandafter\let\csname enit@cw@\@enumctr\endcsname\relax
\@namedef{enit@widest@\@enumctr}##1{#1}}
+\def\enitkv@enumitem@widest#1{%
+ \ifcase\enit@type % enumerate
+ \expandafter\let\csname enit@cw@\@enumctr\endcsname\relax
+ \@namedef{enit@widest@\@enumctr}##1{\enit@format{#1}}%
+ \else % itemize / description
+ \def\enit@widest@{\enit@format{#1}}%
+ \fi}
+
\def\enitkv@enumitem@widest@default{%
\expandafter\let\csname enit@cw@\@enumctr\endcsname\relax
\expandafter\let\csname enit@widest@\@enumctr\endcsname\relax}
@@ -284,7 +305,7 @@
\ifnum\enit@calc=\z@
\enit@calcwidestfalse
\fi
- \setlength\labelindent{#1}%
+ \enit@setlength\labelindent{#1}%
\advance\labelindent\leftmargin}
\enitkv@key{enumitem}{labelindent}{%
@@ -311,10 +332,10 @@
\fi}
\enitkv@key{enumitem}{listparindent}{%
- \setlength\listparindent{#1}}
+ \enit@setlength\listparindent{#1}}
\enitkv@key{enumitem}{rightmargin}{%
- \setlength\rightmargin{#1}}
+ \enit@setlength\rightmargin{#1}}
% labelsep, from itemindent; labelsep*, from leftmargin
@@ -324,20 +345,33 @@
\enit@calcwidestfalse
\let\enit@calc\z@
\fi
- \setlength\labelsep{#1}%
+ \enit@setlength\labelsep{#1}%
\advance\labelsep\itemindent}
\enitkv@key{enumitem}{labelsep}{%
\enit@sepfrommarginfalse
\enit@calcset\labelsep\tw@{#1}}
+\enitkv@key{enumitem}{left}{%
+ \enit@setleft#1..\@empty..\@@}
+
+\def\enit@setleft#1..#2..#3\@@{%
+ \enit@setlength\labelindent{#1}%
+ \edef\enit@a{#3}%
+ \ifx\enit@a\@empty
+ \enit@calcset\leftmargin\thr@@*%
+ \else
+ \enit@setlength\leftmargin{#2}%
+ \enit@calcset\labelsep\tw@*%
+ \fi}
+
% Series, resume and start
% ========================
\enitkv@key{enumitem-resume}{series}{%
\enit@checkseries@m
\let\enit@resuming\@ne
- \@ifundefined{enitkv@enumitem@#1}{}%
+ \enit@ifunset{enitkv@enumitem@#1}{}%
{\enit@error{Invalid series name `#1'}%
{Do not name a series with an existing key}}%
\def\enit@series{#1}}
@@ -351,12 +385,12 @@
\def\enitkv@enumitem@resume@default{%
\@nameuse{enit@resume@\@currenvir}\relax}
-
+
\@namedef{enitkv@enumitem-resume@resume*}#1{%
\enit@checkseries@m
\let\enit@resuming\tw@
\edef\enit@series{#1}%
- \@ifundefined{enit@resumekeys@series@#1}%
+ \enit@ifunset{enit@resumekeys@series@#1}%
{\enit@noserieserror{#1}}%
{\expandafter\let\expandafter\enit@resumekeys
\csname enit@resumekeys@series@#1\endcsname}}
@@ -371,7 +405,7 @@
\enit@checkseries{resume*}}
\newcommand\restartlist[1]{%
- \@ifundefined{end#1}%
+ \enit@ifunset{end#1}%
{\enit@error{Undefined list `#1'}%
{No list has been defined with that name.}}%
{\expandafter\let
@@ -383,16 +417,16 @@
% Penalties
% =========
-
+
\enitkv@key{enumitem}{beginpenalty}{%
\@beginparpenalty#1\relax}
-
+
\enitkv@key{enumitem}{midpenalty}{%
\@itempenalty#1\relax}
\enitkv@key{enumitem}{endpenalty}{%
\@endparpenalty#1\relax}
-
+
% Font/Format
% ===========
@@ -406,7 +440,7 @@
% ==================
\enitkv@key{enumitem}{style}[normal]{%
- \@ifundefined{enit@style@#1}%
+ \enit@ifunset{enit@style@#1}%
{\enit@checkerror{style}{#1}}%
{\enit@nextlinefalse
\enit@boxdescfalse
@@ -440,7 +474,7 @@
% --------
\enitkv@key{enumitem}{align}{%
- \@ifundefined{enit@align@#1}%
+ \enit@ifunset{enit@align@#1}%
{\enit@checkerror{align}{#1}}%
{\csname enit@align@#1\endcsname}}
@@ -489,7 +523,7 @@
% in the same hierarchy level. Explicit refs above the
% current hierarchy level are overriden by label (besides ref),
% too. Since an explicit ref has preference, it's delayed.
-
+
\enitkv@key{enumitem}{ref}{%
\g@addto@macro\enit@delayedkeys{,ref=#1}}
@@ -540,6 +574,8 @@
\def\enit@addcounter@s#1#2#3{%
\enit@addcounter{#1}{#2}%
{\@nameuse{enit@sc@\expandafter\@gobble\string#2}{#3}}}
+
+% TODO - \SetEnumerateCounter
% The 5 basic counters:
@@ -568,7 +604,7 @@
% ----
\enitkv@key{enumitem}{mode}{%
- \@ifundefined{enit@mode#1}%
+ \enit@ifunset{enit@mode#1}%
{\enit@checkerror{mode}{#1}}%
{\csname enit@mode#1\endcsname}}
@@ -613,7 +649,7 @@
\in@{=}{#1}% Quick test, if contains =, it's key=value
\ifin@\else
\enitkv@@sp@def\enit@a{#1}%
- \@ifundefined{enitkv@enumitem@\enit@meaning\enit@a}%
+ \enit@ifunset{enitkv@enumitem@\enit@meaning\enit@a}%
{\ifnum\enit@type=\z@
\def\enit@elt{\enit@replace\enit@a}%
\enit@marklist % Returns \enit@toks
@@ -657,20 +693,27 @@
\enitkv@key{enumitem}{before}{%
\def\enit@before{#1}}
-\enitkv@key{enumitem}{after}{%
- \def\enit@after{#1}}
-
\enitkv@key{enumitem}{before*}{%
\expandafter\def\expandafter\enit@before\expandafter
{\enit@before#1}}
+\enitkv@key{enumitem}{after}{%
+ \def\enit@after{#1}}
+
\enitkv@key{enumitem}{after*}{%
\expandafter\def\expandafter\enit@after\expandafter
{\enit@after#1}}
+\enitkv@key{enumitem}{first}{%
+ \def\enit@keyfirst{#1}}
+
+\enitkv@key{enumitem}{first*}{%
+ \expandafter\def\expandafter\enit@keyfirst\expandafter
+ {\enit@keyfirst#1}}
+
% Miscelaneous keys
% ================
-
+
\enitkv@key{enumitem}{nolistsep}[true]{%
\partopsep=\z@skip
\topsep=\z@ plus .1pt
@@ -683,7 +726,6 @@
\itemsep=\z@skip
\parsep=\z@skip}
-
\enitkv@key{enumitem}{noitemsep}[true]{%
\itemsep=\z@skip
\parsep=\z@skip}
@@ -692,7 +734,7 @@
\enit@align@left
\leftmargin\z@
\labelwidth\z@
- \setlength\labelindent{#1}%
+ \enit@setlength\labelindent{#1}%
\listparindent\labelindent
\enit@calcset\itemindent\enit@iv!}
@@ -710,15 +752,15 @@
% ------------
\newcommand\SetEnumitemValue[2]{% Implicit #3
- \@ifundefined{enit@enitkv@#1}%
- {\@ifundefined{enitkv@enumitem@#1}%
+ \enit@ifunset{enit@enitkv@#1}%
+ {\enit@ifunset{enitkv@enumitem@#1}%
{\enit@error{Wrong key `#1' in \string\SetEnumitemValue}%
{Perhaps you have misspelled it}}{}%
\expandafter\let\csname enit@enitkv@#1\expandafter\endcsname
\csname enitkv@enumitem@#1\endcsname}{}%
\@namedef{enitkv@enumitem@#1}##1{%
\def\enit@a{##1}%
- \@ifundefined{enit@enitkv@#1@\enit@meaning\enit@a}%
+ \enit@ifunset{enit@enitkv@#1@\enit@meaning\enit@a}%
{\@nameuse{enit@enitkv@#1}{##1}}%
{\@nameuse{enit@enitkv@#1\expandafter\expandafter\expandafter}%
\expandafter\expandafter\expandafter
@@ -729,7 +771,7 @@
% -------------
\newcommand\SetEnumitemKey[2]{%
- \@ifundefined{enitkv@enumitem@#1}%
+ \enit@ifunset{enitkv@enumitem@#1}%
{\enitkv@key{enumitem}{#1}[]{\enitkv@setkeys{enumitem}{#2}}}%
{\enit@error{Duplicated key `#1' in \string\SetEnumitemKey}%
{There already exists a key with that name}}}
@@ -742,7 +784,7 @@
% ========
\def\enit@setkeys#1{%
- \@ifundefined{enit@@#1}{}%
+ \enit@ifunset{enit@@#1}{}%
{\expandafter\expandafter\expandafter
\enit@setkeys@i\csname enit@@#1\endcsname\@@}}
@@ -768,7 +810,7 @@
\def\enit@getwidth#1#2#3#4{%
\let#4#3%
\def#3##1{%
- \@ifundefined{enit@widest\expandafter\@gobbletwo\string##1}% if no widest=key
+ \enit@ifunset{enit@widest\expandafter\@gobbletwo\string##1}% if no widest=key
{#1}%
{\csname enit@widest\expandafter\@gobbletwo\string##1\endcsname{#4}}}}
@@ -780,8 +822,8 @@
\def\enit@calcwidth{%
\ifenit@calcwidest
- \ifnum\enit@type=\z@ % ie, enum
- \@ifundefined{enit@cw@\@enumctr}%
+ \ifcase\enit@type% ie, enum
+ \enit@ifunset{enit@cw@\@enumctr}%
{\@namedef{enit@cv@\@enumctr}{\enit@valueerror\@enumctr}}%
{\edef\enit@values{%
\enit@values
@@ -789,16 +831,29 @@
\expandafter
\edef\csname enit@cv@\@enumctr\endcsname
{\@nameuse{c@\@enumctr}}}%
+ \begingroup
+ \enit@values
+ \def\value##1{\csname enit@cv@##1\endcsname}%
+ \let\enit@elt\enit@getwidth
+ \enit@labellist
+ \settowidth\labelwidth{\@itemlabel}%
+ \xdef\enit@a{\labelwidth\the\labelwidth\relax}%
+ \endgroup
+ \enit@a
+ \or
+ \ifx\enit@widest@\relax
+ \settowidth\labelwidth{\@itemlabel}%
+ \else
+ \settowidth\labelwidth{\enit@widest@}%
+ \fi
+ \else
+ \ifx\enit@widest@\relax
+ \settowidth\labelwidth{\@itemlabel}%
+ \else
+ \settowidth\labelwidth{\makelabel{\enit@widest@}}%
+ \fi
+ \advance\labelwidth-\labelsep
\fi
- \begingroup
- \enit@values
- \def\value##1{\csname enit@cv@##1\endcsname}%
- \let\enit@elt\enit@getwidth
- \enit@labellist
- \settowidth\labelwidth{\@itemlabel}%
- \xdef\enit@a{\labelwidth\the\labelwidth\relax}%
- \endgroup
- \enit@a
\fi
\advance\dimen@-\labelwidth}
@@ -859,10 +914,11 @@
\def\enit@depth{#2}%
\edef\enit@prevlabel{#3\romannumeral#2}%
\advance#2\@ne}
-
+
\def\enit@preset#1#2#3{%
\enit@sepfrommarginfalse
\enit@calcwidestfalse
+ \let\enit@widest@\relax
\let\enit@resuming\z@
\let\enit@series\relax
\enit@boxmodetrue
@@ -871,6 +927,7 @@
\let\enit@afterlabel\nobreakspace
\let\enit@before\@empty
\let\enit@after\@empty
+ \let\enit@keyfirst\@empty
\let\enit@format\@firstofone % and NOT empty
\let\enit@ref\relax
\labelindent\z@skip
@@ -890,16 +947,16 @@
% resume*=<series>
\def\enitkv@err@a#1{%
- \@ifundefined{enit@resumekeys@series@\@tempa}{}%
+ \enit@ifunset{enit@resumekeys@series@\@tempa}{}%
{\@nameuse{enitkv@enumitem-resume@resume*\expandafter}%
\expandafter{\@tempa}}}
% keyval "error" in the optional argument: all undefined keys are
% passed to the keyval error, but <series> is ignored (already
-% processed in enumitem-resume
+% processed in enumitem-resume)
\def\enitkv@err@b#1{%
- \@ifundefined{enit@resumekeys@series@\@tempa}%
+ \enit@ifunset{enit@resumekeys@series@\@tempa}%
{\enit@savekverr{#1}}%
{}}
@@ -924,6 +981,101 @@
\expandafter\enit@setkeys@i\enit@savekeys\@@
\let\enitkv@errx\enit@savekverr}
+% Handling <> sytax for font sizes
+% ================================
+% The following code is based on LaTeX (\DeclareFontShape). Only the
+% code for <> is preserved (no functions), and a default value can be
+% set before the first <>. In addition, here single values take
+% precedende over ranges. The original work is by the LaTeX Team,
+% under license LPPL.
+
+\def\enit@ifnot@nil#1{%
+ \def\enit@a{#1}%
+ \ifx\enit@a\@nnil
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi}
+
+\def\enit@remove@to@nnil#1\@nnil{}
+\def\enit@remove@angles#1>{\enit@simple@size}
+
+\def\enit@simple@size#1<{%
+ \if<#1<%
+ \expandafter\enit@remove@angles
+ \else
+ \def\enit@c{#1}%
+ \expandafter\enit@remove@to@nnil
+ \fi}
+
+\def\enit@extractrange#1<#2>{%
+ \ifx\enit@c\relax
+ \def\enit@c{#1}%
+ \fi
+ \enit@isrange#2->\@nil#2>}
+
+\def\enit@isrange#1-#2\@nil{%
+ \if>#2%
+ \expandafter\enit@check@single
+ \else
+ \expandafter\enit@check@range
+ \fi}
+
+\def\enit@check@range#1-#2>#3<#4\@nnil{%
+ \enit@ifnot@nil{#3}{%
+ \def\enit@b{\enit@extractrange<#4\@nnil}%
+ \upper@bound=%
+ \enit@ifunset{enit@sizefor@#2}{0#2\p@}{\@nameuse{enit@sizefor@#2}\p@}%
+ %%% usar count@
+ \ifdim\upper@bound=\z@ \upper@bound\maxdimen \fi
+ \ifdim\f@size\p@<\upper@bound
+ \lower@bound=%
+ \enit@ifunset{enit@sizefor@#1}{0#1\p@}{\@nameuse{enit@sizefor@#1}\p@}%
+ \ifdim\f@size\p@<\lower@bound
+ \else
+ \enit@simple@size#3<#4\@nnil
+ \fi
+ \fi
+ \enit@b}}
+
+\def\enit@check@single#1>#2<#3\@nnil{%
+ \def\enit@b{\enit@extractrange<#3\@nnil}%
+ \ifdim\f@size\p@=
+ \enit@ifunset{enit@sizefor@#1}{0#1\p@}{\@nameuse{enit@sizefor@#1}\p@}%
+ \enit@simple@size#2<#3\@nnil
+ \let\enit@d\enit@c
+ \fi
+ \enit@b}
+
+\def\enit@try@size@range#1{%
+ \def\enit@a{#1}%
+ \let\enit@c\relax % last in range
+ \let\enit@d\relax % single
+ \expandafter\enit@extractrange\enit@a <-*>\@nil<\@nnil}
+
+% \enit@setlength is defined in the options section
+
+% This ends the code adapted from latex (under LPPL).
+
+% TODO - \SetEnumitemSizes
+% TODO - \setlist<size>[opt]{..}
+
+\def\enit@getsizefor#1#2{%
+ {\let\selectfont\relax
+ #2%
+ \expandafter\xdef\csname enit@sizefor@#1\endcsname{\f@size}}}
+
+\enit@getsizefor{script}\scriptsize
+\enit@getsizefor{tiny}\tiny
+\enit@getsizefor{footnote}\footnotesize
+\enit@getsizefor{small}\small
+\enit@getsizefor{normal}\normalsize
+\enit@getsizefor{large}\large
+\enit@getsizefor{Large}\Large
+\enit@getsizefor{LARGE}\LARGE
+\enit@getsizefor{huge}\huge
+\enit@getsizefor{Huge}\Huge
+
% +=============================+
% | LIST TYPES |
% +=============================+
@@ -1047,7 +1199,7 @@
\else
\ifenit@noinitem\else
\ifhmode\unskip\fi
- \@ifundefined{enit@itemjoin@s}%
+ \enit@ifunset{enit@itemjoin@s}%
{\enit@itemjoin}%
{\enit@itemjoin@s}%
\fi
@@ -1209,6 +1361,7 @@
\enit@ref
\enit@calcleft
\enit@before}%
+ \enit@keyfirst
\fi}
\let\enit@endenumerate\enit@endlist
@@ -1229,7 +1382,7 @@
\@namedef{enit@itemize*}{%
\let\enit@list\enit@inlist
\enit@itemize@i}
-
+
\def\enit@itemize@i#1#2#3#4{%
\ifnum#1>#3\relax
\enit@toodeep
@@ -1244,6 +1397,7 @@
\enit@preset{#2}{#1}{#4}%
\enit@calcleft
\enit@before}%
+ \enit@keyfirst
\fi}
\let\enit@enditemize\enit@endlist
@@ -1290,6 +1444,7 @@
\aftergroup\enit@postlabel
\fi}%
\enit@before}%
+ \enit@keyfirst
\fi}
\let\enit@enddescription\enit@endlist
@@ -1303,8 +1458,11 @@
\parsep\parskip
\csname @list\romannumeral\the\@listdepth\endcsname
\@nmbrlistfalse
+ \enit@setglobalkeys % ie, list and list<num>
\enit@setkeys{trivlist}%
\enit@setkeys{trivlist\romannumeral\@listdepth}%
+ \enit@setkeys{\@currenvir}%
+ \enit@setkeys{\@currenvir\romannumeral\@listdepth}%
\@trivlist
\labelwidth\z@
\leftmargin\z@
@@ -1312,6 +1470,17 @@
\let\@itemlabel\@empty
\def\makelabel##1{##1}}
+% Let's recognize also the standard trivlists (except theorems)
+
+\let\enitdp@quote\@empty
+\let\enitdp@quotation\@empty
+\let\enitdp@verse\@empty
+\let\enitdp@thebibliography\@empty
+\let\enitdp@center\@empty
+\let\enitdp@flushleft\@empty
+\let\enitdp@flushright\@empty
+\let\enitdp@tabbing\@empty
+
% Description styles
% ==================
%
@@ -1444,9 +1613,9 @@
\let\enit@c\@empty
\protected@edef\enit@a{#2}%
\@for\enit@a:=\enit@a\do{% the 2nd enit@a is first expanded
- \@ifundefined{enitdp@\enit@meaning\enit@a}%
+ \enit@ifunset{enitdp@\enit@meaning\enit@a}%
{\edef\enit@c{\enit@c\enit@eltlevels{\enit@a}}}%
- {\@ifundefined{enit@short\enit@meaning\enit@a}%
+ {\enit@ifunset{enit@short\enit@meaning\enit@a}%
\@empty
{\edef\enit@a{\@nameuse{enit@short\enit@a}}}%
\edef\enit@b{\enit@b\enit@eltnames{\enit@a}}}}%
@@ -1487,7 +1656,7 @@
\def\enit@xset@enumerate{%
\enit@xset@itemize
- \@ifundefined{c@\enit@c\romannumeral\count@}%
+ \enit@ifunset{c@\enit@c\romannumeral\count@}%
{\@definecounter{\enit@c\romannumeral\count@}}{}}
\@namedef{enit@xset@enumerate*}{\enit@xset@enumerate}
@@ -1500,15 +1669,15 @@
% <new/renew>, <name>, <type>, <max-depth>
\def\enit@newlist#1#2#3#4{%
- \@ifundefined{enit@xset@#3}%
+ \enit@ifunset{enit@xset@#3}%
{\enit@error{Unknown list type `#3')}%
{Valid types are:
- enumerate, itemize, description,\messageBreak
+ enumerate, itemize, description,\MessageBreak
enumerate*, itemize*, description*}}%
{}%
\setcounter{enit@cnt}{#4}%
\count@\@ne
- \@ifundefined{enit@short#2}%
+ \enit@ifunset{enit@short#2}%
{\def\enit@c{#2}}%
{\edef\enit@c{\csname enit@short#2\endcsname}}%
\loop
@@ -1516,7 +1685,7 @@
\ifnum\count@<\c@enit@cnt
\advance\count@\@ne
\repeat
- \@ifundefined{enitdp@#2}%
+ \enit@ifunset{enitdp@#2}%
{\expandafter\newcount\csname enitdp@#2\endcsname}{}%
\csname enitdp@#2\endcsname\z@
\advance\c@enit@cnt\m@ne
@@ -1543,6 +1712,11 @@
\newif\ifenit@loadonly
\DeclareOption{ignoredisplayed}{\let\enit@trivlist\trivlist}
+\DeclareOption{includedisplayed}{%
+ \def\enit@setglobalkeys{%
+ \enit@setkeys{list}%
+ \enit@setkeys{list\romannumeral\@listdepth}}}
+\let\enit@setglobalkeys\relax
\DeclareOption{loadonly}{\enit@loadonlytrue}
\DeclareOption{shortlabels}
{\def\enit@shl#1{%
@@ -1563,6 +1737,13 @@
{\@nameuse{enit@description*}\enitdp@description{description}\@M{#1}}
{\@nameuse{enit@enddescription*}}}
+\let\enit@setlength\setlength
+\DeclareOption{sizes}
+ {\def\enit@setlength#1#2{%
+ \enit@try@size@range{#2}% Returns \enit@c and or enit@d
+ \ifx\enit@d\relax\else\let\enit@c\enit@d\fi
+ \setlength#1{\enit@c}}}
+
\let\enit@shl\enit@toks
\ProcessOptions
@@ -1590,4 +1771,63 @@
\fi
+% +=============================+
+% | TOOLS |
+% +=============================+
+
+\def\DrawEnumitemLabel{%
+ \ifvmode
+ \hbox{\hskip\@totalleftmargin
+ \hskip-\leftmargin
+ \vrule width \leftmargin height 8pt depth -7pt
+ \hskip\itemindent
+ \ifdim\labelindent<\z@
+ \hskip-\leftmargin
+ \hskip\labelindent
+ \vrule width -\labelindent height 6pt depth -5pt
+ \hskip\labelindent
+ \else
+ \hskip-\labelsep
+ \hskip-\labelwidth
+ \hskip-\labelindent
+ \vrule width \labelindent height 6pt depth -4pt
+ \fi
+ \vrule width \labelwidth height 4pt depth -2pt
+ \vrule width \labelsep height 2pt}%
+ \else
+ \enit@error
+ {\string\DrawEnumitemLabel\space must be used in vertical mode}%
+ {Very likely, just inserting a blank line before will fix it}}
+
+% TODO - option 'verbose'
+
+% +=============================+
+% | TWO-PASS TOOLS |
+% +=============================+
+
+% TODO - downstep
+% TODO - autowidest
+
\endinput
+
+MIT License
+-----------
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.