How to create checkbox todo list?

Here is a variant of Werner's answer with checkmarks for recording progress.

\documentclass{article}
\usepackage{enumitem,amssymb}
\newlist{todolist}{itemize}{2}
\setlist[todolist]{label=$\square$}
\usepackage{pifont}
\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%
\newcommand{\done}{\rlap{$\square$}{\raisebox{2pt}{\large\hspace{1pt}\cmark}}%
\hspace{-2.5pt}}
\newcommand{\wontfix}{\rlap{$\square$}{\large\hspace{1pt}\xmark}}

\begin{document}
My ToDo list

\begin{itemize}
  \item Immediate plan of action.
  \begin{todolist}
  \item[\done] Frame the problem
  \item Write solution
  \item[\wontfix] profit
  \end{todolist}
\end{itemize}
\end{document}

enter image description here


I would use enumitem (and not intermix it with using the enumerate package):

enter image description here

\documentclass{article}
\usepackage{enumitem,amssymb}
\newlist{todolist}{itemize}{2}
\setlist[todolist]{label=$\square$}
\begin{document}
My ToDo list

\begin{itemize}
  \item Immediate plan of action.

  \begin{todolist}
    \item List item 1 goes here.
    \item List item 2 goes here.
    \begin{todolist}
      \item Sublist item 1 goes here.
      \item Sublist item 2 goes here.
    \end{todolist}
    \item List item 3 goes here
    \item List item 4 goes here.
  \end{todolist}

\end{itemize}
\end{document}

We create a new type of list called todolist, which has two levels of nesting and is based on itemize. Each label within a todolist is set as $\square$, at both levels.


I adjust the font size of the icon from packages pifont and amssymb, use \raisebox and \hspace to fit the icon position, finally, it looks good, here is a full example:

\documentclass{article}

\usepackage{pifont}
\usepackage{amssymb}

\begin{document}

\begin{itemize}
\item[$\square$]
no checked
\item[\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \ding{52}}}$\square$]
failed
\item[\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\scriptsize \ding{56}}}$\square$]
checked
\end{itemize}
\end{document}

enter image description here