正如标题所说:包labelsep
中的设置enumitem
忽略了拉伸部分。我很乐意在那里进行拉伸(最终实际上是当前字体的单词间拉伸通过实现的\fontdimen2\font plus 5em minus\fontdimen4\font
)。
查看 MWE(该值0pt plus 400pt
当然是极端的,但它很好地显示了发生了什么):
\documentclass{article}
\usepackage[textwidth=4cm,textheight=5cm]{geometry}
\usepackage{showframe}
\usepackage{enumitem}
\newskip\mydescskip
\mydescskip0pt plus 400pt
% TRY EITHER ONE OF THESE TWO OPTIONS
\setlist[description]{labelsep=\mydescskip, leftmargin=0pt}
%\setlist[description]{labelsep=0pt plus 400pt, leftmargin=0pt}
\begin{document}
\texttt{REAL OUTPUT:}
\begin{description}
\item[X]
AAA\hspace{\mydescskip}BBB xxxxxxxxxxxxxxxx
\end{description}
\texttt{DESIRED OUTPUT:}
\noindent\textbf{X}\hspace{\mydescskip}%
AAA\hspace{\mydescskip}BBB xxxxxxxxxxxxxxxx
\end{document}
因为它是类的一部分,所以解决方案必须尽可能干净(并且肯定不需要对 UI 进行任何更改)。
答案1
参数\labelsep
是 a \dimen
,LaTeX 会照此使用,因此无论你指定多少拉伸都会被忽略。最好的办法可能是改变 的含义,\item
使其在后面添加 skip;这应该不是问题,因为你不需要\label
描述项目。
\setlist[description]{
leftmargin=0pt,
labelsep=0pt,
before=\let\item\descitem,
}
\let\oriitem\item
\newcommand\descitem[1][]{\oriitem[#1]\hspace{\mydescskip}\ignorespaces}
结果如下:
不过,我认为使用可拉伸的标签并不是一个好主意。