[Tex/LaTex] How to align bullets of nested itemize list to the right edge of the parent itemize list bullets

#enumeratehorizontal alignmentitemizelistsparalist

enter image description here

As you see above, the bullets are aligned by default to the left edge of the text of the parent list. However, I want LaTeX to automatically identify the right edges of the parent list bullets and use that edge as a starting reference for the bullets of nested itemize lists. I need this to prevent very short lines in second level or third level nested itemize environments.

enter image description here

Here is my source code:

\documentclass[]{report}

\usepackage{paralist}

\usepackage{pifont}
\usepackage{bbding}

\newcommand{\bulletnoI}{\ding{55}}

\newcommand{\bulletcircle}{\Large $\bullet$}


\begin{document}
\begin{itemize}[\bulletnoI]

    \item Main Level Item 1
    \item Main Level Item 2
    \item Main Level Item 3

    \begin{itemize}[\bulletcircle]

        \item Second Level Item 1
        \item Second Level Item 2
        \item Second Level Item 3

        \begin{itemize}[\footnotesize \ding{109}]

            \item Third Level Item 1
            \item Third Level Item 2
            \item Third Level Item 3

        \end{itemize}

    \end{itemize}

\end{itemize}
\end{document}

Best Answer

The enumitem package provides finer control over the horizontal spacing, and you can set it globally for particular list types and levels.

\documentclass[]{report}

\usepackage{enumitem}

\usepackage{pifont}
\usepackage{bbding}

\newcommand{\bulletnoI}{\ding{55}}

\newcommand{\bulletcircle}{\Large $\bullet$}

\setlist[itemize,2,3]{leftmargin=.5em}

\begin{document}
\begin{itemize}[label=\bulletnoI]

    \item Main Level Item 1
    \item Main Level Item 2
    \item Main Level Item 3

    \begin{itemize}[label=\bulletcircle]

        \item Second Level Item 1
        \item Second Level Item 2
        \item Second Level Item 3

        \begin{itemize}[label=\footnotesize\ding{109}]

            \item Third Level Item 1
            \item Third Level Item 2
            \item Third Level Item 3

        \end{itemize}

    \end{itemize}

\end{itemize}
\end{document}

output of code

Related Question