enumerate 和 itemize 的标签缩进不一致

enumerate 和 itemize 的标签缩进不一致

当使用itemizeenumerate设置相同的时labelindent,结果会有所不同。数字与段落缩进不一致。当达到十项时,这个问题会变得更加严重。

在此处输入图片描述

梅威瑟:

\documentclass[10pt,a4paper]{article}
\usepackage[left=32.5mm, right=25mm, top=25mm, bottom=20mm]{geometry}
    \setlength{\parindent}{1.5em}
\usepackage{enumitem}
    \setlist[itemize]{labelindent=\parindent, label={--}}
    \setlist[enumerate]{labelindent=\parindent}
\usepackage{lipsum}

\begin{document}
    \lipsum[1][1-3]
    \begin{enumerate}
        \item Test
    \end{enumerate}

    \lipsum[1][1-3]
    \begin{itemize}
        \item Test
    \end{itemize}
\end{document}

答案1

labelindent=您应该使用 来代替,这将添加标签的左对齐。对齐方面wide=仍存在微小差异(< 0.2pt),只有使用大缩放才能看到,这是由于字形的侧边距略有不同造成的。

演示,在标签周围添加 \fbox:

\documentclass[10pt,a4paper]{article}
\usepackage[left=32.5mm, right=25mm, top=25mm, bottom=20mm]{geometry}
\setlength{\parindent}{1.5em}
\setlength{\fboxrule}{0.1pt}
\setlength{\fboxsep}{0.pt}
\usepackage{enumitem}
    \setlist[itemize]{wide=\parindent, label=\fbox{--}}
    \setlist[enumerate]{wide=\parindent, label = \fbox{\arabic*}}

\begin{document}

   \fbox{L}orem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
    \begin{enumerate}
        \item Test
\item Another test 
    \end{enumerate}

    \fbox{L}orem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris.
    \begin{itemize}
        \item A compulsive test
    \end{itemize}

\end{document} 

在此处输入图片描述

答案2

首先,标签默认排版向右对齐\labelwidth在一个宽度为 从左边距开始的框中\labelindent(如下所示,可以使用例如 进行更改align=left)。但这假设您提供了enumitem一种满足各种约束的方法。

正如enumitem手册所解释的,有五个水平长度参数由一个线性关系链接:

\leftmargin + \itemindent = \labelindent + \labelwidth + \labelsep

默认情况下,这enumitem意味着labelindent=!它从其他参数进行计算\labelindent;但是,在您的两个示例中,您都明确设置了\labelindent,因此enumitem必须能够从其他参数计算另一个参数,并且您需要指定哪一个。例如,您可以使用leftmargin=*

\documentclass{article}
\setlength{\parindent}{1.5em}

\usepackage{enumitem}
\usepackage{lipsum}

\setlist[itemize]{labelindent=\parindent, align=left, leftmargin=*,
                  label={--}}
\setlist[enumerate]{labelindent=\parindent, align=left, leftmargin=*}

\begin{document}
    \lipsum[1][1-3]
    \begin{enumerate}
        \item Test
    \end{enumerate}

    \lipsum[1][1-3]
    \begin{itemize}
        \item Test
    \end{itemize}
\end{document}

在此处输入图片描述

使用垂直规则缩放:

在此处输入图片描述

labelindent请注意,这在选项(和\labelindent长度参数)的文档中有解释:

labelindent=〈length〉
\labelindent
此参数用于enumitem从封闭列表/文本的边缘到标签框左边缘的空白处。这意味着存在冗余,因为其中一个参数依赖于其他参数,即必须根据其他值计算,如下所述。默认情况下,计算值为,labelindent即使明确设置了某个值(默认为0pt)。因此,如果您将其设置为某个值,很可能您希望将其他参数设置为!*,否则它会被忽略。

相关内容