如何将嵌套项目列表的项目符号与父项目列表项目符号的右边缘对齐?

如何将嵌套项目列表的项目符号与父项目列表项目符号的右边缘对齐?

在此处输入图片描述

如上所示,项目符号默认与父列表文本的左边缘对齐。但是,我希望 LaTeX 自动识别父列表项目符号的右边缘,并使用该边缘作为嵌套项目列表项目符号的起始参考。我需要这样做,以防止在第二级或第三级嵌套项目环境中出现非常短的行。

在此处输入图片描述

这是我的源代码:

\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}

答案1

enumitem包提供了对水平间距的更精细的控制,您可以为特定列表类型和级别进行全局设置。

\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}

代码输出

相关内容