diff options
author | Karl Berry <karl@freefriends.org> | 2018-11-30 21:48:04 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-11-30 21:48:04 +0000 |
commit | 6cb6bb4e14d1047d4c14719b41b3bdb09aafdaf1 (patch) | |
tree | c346a76bab3cec8d42c1bf3507a610a57050f251 /Master/texmf-dist/tex/latex/enumitem | |
parent | b006f4cd3646632bf6f75a28132194a04df83855 (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')
-rw-r--r-- | Master/texmf-dist/tex/latex/enumitem/enumitem.sty | 438 |
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. |