Problem mit neuer list-environment und nested

Schriftbild, Absätze und Auflistungen einstellen


mcr76
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 27. Mär 2013, 11:10

Problem mit neuer list-environment und nested

Beitrag von mcr76 »

Hallo zusammen,

ich habe folgenden Code geschrieben:
\documentclass[draft]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{xifthen}
\usepackage{xcolor}

\usepackage[free-standing-units]{siunitx}

\newcommand{\cord}[1]{\textcolor{red!80!black}{#1}}
\newcommand{\cogre}[1]{\textcolor{green!40!black}{#1}}
\newcommand{\coora}[1]{\textcolor{orange!80!red}{#1}}
\newcommand{\coyel}[1]{\textcolor{red!40!yellow}{#1}}

\newtest{\tet}[3]{%
\cnttest{(#2)}{>=}{#1}%
\AND
\cnttest{(#2)}<{#3}%
}

\newtest{\tc}[1]{%
\cnttest{(#1)}{>=}{100}%
}


\newcommand{\status}[2]{ %
\ifthenelse{\tet{0}{#2}{10}}%
  {\cord{#1 \hfill $\SI{#2}{\percent}$}}%
  {\ifthenelse{\tet{10}{#2}{50}}%
     {\coora{#1 \hfill $\SI{#2}{\percent}$}}%
     {\ifthenelse{\tet{50}{#2}{100}}%
        {\coyel{#1 \hfill $\SI{#2}{\percent}$}}%
        {\ifthenelse{\tc{#2}}%
           {\cogre{#1 \hfill $\SI{#2}{\percent}$}}%
           {#1}}%
     }%
  }%
}%

\newenvironment{statitemize}{%
\let\olditem\item% 
\renewcommand\item[2][]{\olditem \status{##2}{##1}}%
\begin{itemize}}{\end{itemize}%
}

\begin{document}
   \begin{statitemize}
       \item[10] {Test1}
   \end{statitemize}
\end{document}
Dies funktioniert auch wie gewünscht.

Nur leider funktioniert das folgende nun nicht mehr:
   \begin{statitemize}
       \item[10] {Test1}
       \begin{statitemize}
           \item[20] {test2}
       \end{statitemize}
   \end{statitemize}
Die Fehlermeldung:
TeX capacity exceeded, sorry [input stack size=5000] \item[20] {test2}
Was mache ich falsch?

Vielen Dank

Mit freundlichen Grüßen
Christian

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Die zweite statitemize-Umgebung macht ja auch
\let\olditem\item% 
\renewcommand\item[2][]{\olditem \status{##2}{##1}}%
Aber nun ist \item schon das neue \item.

Mache es besser so
\let\oritem\item
\newcommand\statitem[2][]{\oritem \status{#2}{#1}}
\newenvironment{statitemize}{%
\let\item\statitem
\begin{itemize}}{\end{itemize}%
}

mcr76
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mi 27. Mär 2013, 11:10

Beitrag von mcr76 »

Vielen Dank.
Funktioniert super.

Antworten