Verweise:

Verweise:

MyListist eine immer fortgesetzte enumitemListe:

\newlist{MyList}{enumerate}{2}
\setlist[MyList,1]{label={\arabic*.}, resume}% ALWAYS resumed

aber scheint zu brechen, wenn dieErsteDie Verwendung von MyListerfolgt innerhalb einer anderen Umgebung (orangefarbener Text). Im MWE fügt diese Umgebung der Liste eine Farbe hinzu und ruft dann Folgendes auf \begin{MyList}:

\newenvironment{MyColoredList}[2][]{%
    \color{#2}%
    \begin{MyList}[#1]
}{%
    \end{MyList}%
}%

Aber die gleiche Umgebung verwendetnachdie direkte Verwendung von MyListscheint in Ordnung (blauer Text):

Bildbeschreibung hier eingeben

Anmerkungen:

  • Die zweite Ebene wird nicht fortgesetzt und es gibt kein Problem damit. Daher habe ich den Code entfernt, der diesen Teil getestet hat.
  • Meine Frage ist nicht, wie man eine Liste einfärbt, sondern wie man sie nummeriert, resumewenn sie aus einer Umgebung heraus aufgerufen wird.

Verweise:

Code:

\documentclass{article}
\usepackage{enumitem}
\usepackage{xcolor}

\newlist{MyList}{enumerate}{2}
\setlist[MyList,1]{label={\arabic*.}, resume}% ALWAYS resumed
\setlist[MyList,2]{label={\alph*)}}%           NOT resumed

\newenvironment{MyColoredList}[2][]{%
    \color{#2}%
    \begin{MyList}[#1]
}{%
    \end{MyList}%
}%


\begin{document}
    \begin{MyColoredList}{red}
        \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyColoredList}{orange}% <--- This should be number 2
        \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyList}% <--- This should be number 3
        \item Second Item
    \end{MyList}
    Some text
    \begin{MyList}
        \item Third Item
    \end{MyList}
    Some text
    \begin{MyColoredList}{blue}
        \item Fourth Item (this works!!)
    \end{MyColoredList}
\end{document}

Antwort1

Sie können es auf die harte Tour machen:

\documentclass{article}
\usepackage{enumitem}
\usepackage{xcolor}

\newlist{MyList}{enumerate}{2}
\setlist[MyList,1]{
  label=\arabic*.,
  before=\setcounter{MyListi}{\value{MyList}},
  after=\setcounter{MyList}{\value{MyListi}},
}% ALWAYS resumed
\setlist[MyList,2]{label=\alph*)}%           NOT resumed

\newcounter{MyList}
\newenvironment{MyColoredList}[2][]{%
    \color{#2}\begin{MyList}[#1]
}{%
    \end{MyList}%
}%


\begin{document}
    \begin{MyColoredList}{red}
        \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyColoredList}{orange}% <--- This should be number 2
        \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyList}% <--- This should be number 3
        \item Second Item
    \end{MyList}
    Some text
    \begin{MyList}
        \item Third Item
    \end{MyList}
    Some text
    \begin{MyColoredList}{blue}
        \item Fourth Item (this works!!)
    \end{MyColoredList}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Die resumeOption ist immer lokal, also nur innerhalb der aktuellen Gruppe. Wenn Sie eine Liste in einer Umgebung verwenden und später versuchen, die Liste in einer anderen Umgebung fortzusetzen, schlägt dies fehl, da die Informationen verloren gehen.

Abhilfe schafft hier resume*, welches allerdings lokal angegeben werden muss und nicht als Option dem \setlistMakro übergeben werden kann.

\documentclass{article}
\usepackage{enumitem}
\usepackage{xcolor}



\newlist{MyList}{enumerate}{2}
\setlist[MyList,1]{label={\arabic*.},resume}% ALWAYS resumed
\setlist[MyList,2]{label={\alph*)}}%           NOT resumed

\newenvironment{MyColoredList}[2][]{%
  \color{#2}%
  \MyList[#1]
  }{%
  \endMyList%
}%


\begin{document}
    \begin{MyColoredList}{red}
        \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyColoredList}[resume*]{orange}% <--- This should be number 2
    \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyList}% <--- This should be number 3
        \item Second Item
    \end{MyList}
    Some text
    \begin{MyList}
        \item Third Item
    \end{MyList}
    Some text
    \begin{MyColoredList}{blue}
        \item Fourth Item (this works!!)
          \begin{MyList}[resume*]
            \item Inner Item
            \end{MyList}
    \end{MyColoredList}
    \begin{MyColoredList}{violet}
        \item Fifth Item (this works!!)
          \begin{MyList}[resume*]
            \item Inner Item
            \end{MyList}
    \end{MyColoredList}

\end{document}

Einen besseren Weg erreicht man mit der series=Taste:

\documentclass{article}
\usepackage{enumitem}
\usepackage{xcolor}


\newlist{MyList}{enumerate}{2}
\setlist[MyList,1]{label={\arabic*.},resume=foo}% ALWAYS resumed
\setlist[MyList,2]{label={\alph*)}}%           NOT resumed

\newenvironment{MyColoredList}[2][]{%
  \color{#2}%
  \begin{MyList}[#1]
  }{%
  \end{MyList}%
}%

\begin{document}
\begin{MyColoredList}[series=foo]{red}
\item First Item
    \end{MyColoredList}
    Some text
    \begin{MyColoredList}{orange}% <--- This should be number 2
    \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyList}%  <--- This should be number 3
        \item Second Item
    \end{MyList}
    Some text
    \begin{MyList}
        \item Third Item
    \end{MyList}
    Some text
    \begin{MyColoredList}{blue}
        \item Fourth Item (this works!!)
          \begin{MyList}[resume*]
            \item Inner Item
            \end{MyList}
    \end{MyColoredList}
    \begin{MyColoredList}{violet}
        \item Fifth Item (this works!!)
          \begin{MyList}[resume*]
            \item Inner Item
            \end{MyList}
    \end{MyColoredList}

\end{document}

Bildbeschreibung hier eingeben

Antwort3

Sie können dies versuchen

\documentclass{article}
\usepackage{enumitem}
\usepackage{xcolor}

\makeatletter
\newlist{MyList}{enumerate}{2}
\setlist[MyList,1]{label={\arabic*.},
        after={\xdef\enit@resume@MyList{\noexpand\c@MyListi=\the\c@MyListi}},resume}% ALWAYS resumed
\setlist[MyList,2]{label={\alph*)}}%           NOT resumed

\makeatother
\newenvironment{MyColoredList}[2][]{%
    \color{#2}%
    \begin{MyList}[#1]
}{%
    \end{MyList}%
}%

\begin{document}

    \begin{MyColoredList}{red}
        \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyColoredList}{orange}% <--- This should be number 2
        \item First Item
    \end{MyColoredList}
    Some text
    \begin{MyList}% <--- This should be number 3
        \item Second Item
    \end{MyList}
    Some text
    \begin{MyList}
        \item Third Item
    \end{MyList}
    Some text
    \begin{MyColoredList}{blue}
        \item Fourth Item (this works!!)
    \end{MyColoredList}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen