For some reason or other the following code does not compile. Could anyone provide an insight into why?
\documentclass[letterpaper]{article}
\usepackage{enumitem}
\usepackage{fullpage}
\usepackage[dvipsnames,table]{xcolor}
\usepackage{amsmath,amsthm,amsfonts,amssymb,hhline,mathtools}
\usepackage{tikz,background,array,multicol,bbding}
\usepackage{enumitem}
\usepackage{cancel,array,booktabs}
\usepackage{framed}
\setlist[enumerate]{before=\setupmodenumerate}
\newif\ifmoditem
\newcommand{\setupmodenumerate}{%
\global\moditemfalse
\let\origmakelabel\makelabel
\def\moditem##1{\global\moditemtrue\def\mesymbol{##1}\item}%
\def\makelabel##1{%
\origmakelabel{\ifmoditem\llap{\mesymbol\enspace}\fi##1}%
\global\moditemfalse}%
}
\setlist[enumerate]{before=\setupcmodenumerate}
\newif\ifcitem
\newcommand{\setupcmodenumerate}{%
\global\citemfalse
\let\origmakelabel\makelabel
\def\citem##1{\global\citemtrue\def\cecolor{##1}\item}%
\def\makelabel##1{%
\origmakelabel{\ifcitem\color{\cecolor}\fi##1}%
\global\citemfalse}%
}
\begin{document}
\begin{enumerate}
\moditem{*} test
\citem{blue}
\end{enumerate}
\end{document}

tikzif you are loadingbackground(backgroundinternally loadstikz). – Gonzalo Medina Dec 18 '12 at 22:29\setlistcommand overrides thebefore=given with the first one. If you want to use both\moditemand\citemyou need to merge the two codes. – egreg Dec 18 '12 at 22:33