使用 enumitem 设置 itemindent 会使标签脱离垂直对齐 / enumitem 的替代品

使用 enumitem 设置 itemindent 会使标签脱离垂直对齐 / enumitem 的替代品

我知道这是一个糟糕的问题,但我很绝望,并认为有人至少可以给我指明正确的方向。

当我为 添加一个值时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

具体问题

  1. 我怀疑其他设置与第一个列表的第一项有冲突,但这可能是什么?完整的类文件是这里

  2. itemindent是否可以为文档之外的每个段落设置enumitem

  3. 我几乎放弃追踪这个错误了......有没有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}}

但如果纠正该类别就更好了,因为这也会影响其他地方。

相关内容