How to align some math items in an itemize list?

You can use eqparbox for that. In

\eqmakebox[meow][l]{<content>} 

meow is an identifier, all boxes with this identifier will have the same width after the second run, and l is the alignment.

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage[nodisplayskipstretch]{setspace}
\setstretch{1.1}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{eqparbox}
\begin{document}

Blablabla:
\medskip
\begin{itemize}
\renewcommand{\labelitemi}{$\circ$}
    \item \eqmakebox[meow][l]{Some comment:} $y^2 = x$,
    \smallskip
    \item \eqmakebox[meow][l]{Another small comment:} $a x = z$,
    \smallskip
    \item \eqmakebox[meow][l]{Insert a joke here:} $x - y = z$.
\end{itemize}
\medskip
Blablabla.
\end{document}

enter image description here

I would also like to encourage you to use the enumitem package instead of the more manual adjustments in the list. I will be happy to spell this out if needed.


The usage of eqparbox has already been suggested. While the answer is mostly fine and the code works, it becomes tedious and error prone having to emit a different “meow” each time the construction is used.

The problem is that in the code meow stands for an arbitrary label, but this label should be unique for each series of \eqparbox bits.

Here's a simplification that also gets rid of all your manually added skips.

\documentclass{article}
\usepackage{amsmath}
\usepackage{enumitem,eqparbox}

\newenvironment{tabbeditems}
 {%
  \begin{itemize}[
    topsep=\medskipamount,
    itemsep=\smallskipamount,
    label=$\circ$,
  ]%
  \stepcounter{tabbeditem}
 }
 {\end{itemize}}
\newcounter{tabbeditem}
\renewcommand{\thetabbeditem}{\arabic{tabbeditem}TI}
\newcommand{\tabitem}[1]{\item\eqmakebox[\thetabbeditem][l]{#1}}

\begin{document}

Blablabla
\begin{tabbeditems}
\tabitem{Some comment:} $y^2 = x$,

\tabitem{Another small comment:} $a x = z$,

\tabitem{Insert a joke here:} $x - y = z$.
\end{tabbeditems}
Blablabla.
\begin{tabbeditems}
\tabitem{A comment:} $y^2 = x$,

\tabitem{A comment:} $a x = z$,

\tabitem{Joke:} $x - y = z$.
\end{tabbeditems}

\end{document}

As you see, the unique label is automatically supplied. It may take a couple of LaTeX run for the thing to synchronize.

enter image description here


Here's a solution which only requires the use of the array package.

enter image description here

\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[total={6in,10in}, left=1.5in, top=0.5in,
            includehead, includefoot]{geometry}
\usepackage[nodisplayskipstretch]{setspace}
\setstretch{1.1}
%\usepackage{amsmath} % amsmath package is loaded automatically by mathtools package
\usepackage{mathtools}

\usepackage{array}
\newcolumntype{L}{>{$}l<{$}}
\newcommand{\listtab}[1]{\begingroup\par\medskip%
  \renewcommand\arraystretch{1.25}
  \begin{tabular}{>{$\circ$\,\,} l L @{}}
     #1
  \end{tabular}%
  \endgroup\par\medskip\noindent\ignorespaces}

\begin{document}
\noindent
Blablabla:
\listtab{
   Some comment:          & y^2 = x,\\
   Another small comment: & a x = z,\\
   Insert a joke here:    & x - y = z .}
Blablabla.
\end{document}