![enumerate 和 itemize 的标签缩进不一致](https://linux22.com/image/411837/enumerate%20%E5%92%8C%20itemize%20%E7%9A%84%E6%A0%87%E7%AD%BE%E7%BC%A9%E8%BF%9B%E4%B8%8D%E4%B8%80%E8%87%B4.png)
当使用itemize
和enumerate
设置相同的时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
)。因此,如果您将其设置为某个值,很可能您希望将其他参数设置为!
或*
,否则它会被忽略。