我知道这是一个糟糕的问题,但我很绝望,并认为有人至少可以给我指明正确的方向。
当我为 添加一个值时itemindent
,\setlist[1]{leftmargin=0.25in, itemindent=14pt}
它会导致第一个项目标签与其余项目标签不对齐,如下所示:
1. Text text text
2. text text text
3. text text text
当我删除该itemindent
规范时,所有标签都会再次垂直对齐。此外,这只会影响第一级,因为\setlist[2]{leftmargin=0.25in, itemindent=14pt}
工作正常。
不幸的是,我无法提供最小工作示例,因为它在我的本地环境中编译正确;当我在 Heroku Web 应用程序中编译时,它们变得混乱。我正在使用latexmk
和进行编译lualatex
。
具体问题
我怀疑其他设置与第一个列表的第一项有冲突,但这可能是什么?完整的类文件是这里。
itemindent
是否可以为文档之外的每个段落设置enumitem
?我几乎放弃追踪这个错误了......有没有
enumitem
可以提供类似列表间距定制的替代方法?
答案1
问题的核心在于类\\
在段落末尾的使用(或者你\\
在文本中在段落末尾的使用……)。
它还使用 ragged2e 和此包重新定义\\
来实际生成段落,并使用钩子\OmitIndent
在下一个段落开头插入。此钩子现在溢出到枚举。
\documentclass{article}
\usepackage{enumitem}
\setlist[1]{leftmargin=0.25in, itemindent=14pt}
\RequirePackage{ragged2e}
\RaggedRight
\begin{document}
abc\\
\begin{enumerate}
\item a
\item b
\item c
\end{enumerate}
abc\\
abc
\begin{enumerate}
\item a
\item b
\item c
\end{enumerate}
\end{document}
如果你无法消除故障,\\
你可以通过在枚举之前清除钩子来避免这个问题:
\AddToHook{env/enumerate/before}{\ClearHookNext{para/begin}}
但如果纠正该类别就更好了,因为这也会影响其他地方。