我正在使用一个自定义列表来按压垂直空间(请参阅此问题的答案问题)。它一直运行良好,直到我最近尝试通过 scrextend 使用一些非常大的字体。现在我收到以下警告(输出看起来不错):
Package enumitem Warning: Negative labelwidth. This does not make much
(enumitem) sense, on input line 24.
我一直在查看 enumitem 文档,但没有看到如何获得负的标签宽度。
我怎样才能消除警告?
以下是演示警告的 MWE。我使用 lualatex 进行编译。
\documentclass{article}
\usepackage{lmodern} % or other scalable font
% without this, there is no warning:
\usepackage[paperwidth=20in,paperheight=10in]{geometry}
\usepackage{scrextend}
\changefontsizes[64pt]{50pt}
\makeatletter
\usepackage{enumitem}
\newlist{mylist}{itemize}{4}
\setlist[mylist]{label=\textbullet,leftmargin=1.8em,%
nolistsep,labelsep=1em,%
topsep=-\parskip, after*={\@topsepadd\parskip}}
\makeatother
\begin{document}
\begin{mylist}
\item[A] Outer top
\begin{mylist}
\item[B] Inner top
\item[B'] Inner bottom
\end{mylist}
\item[A'] Outer bottom
\end{mylist}
\end{document}
答案1
您可以enumitem
计算labelwidth
:labelwidth=*
\documentclass{article}
% without this, there is no warning:
\usepackage[paperwidth=20in,paperheight=10in]{geometry}
\usepackage{scrextend}
\changefontsizes[64pt]{50pt}
\makeatletter
\usepackage{enumitem}
\newlist{mylist}{itemize}{4}
\setlist[mylist]{label=\textbullet,leftmargin=1.8em,%
nolistsep,labelsep=1em,labelwidth=*,%
topsep=-\parskip, after*={\@topsepadd\parskip}}
\makeatother
\begin{document}
\setlength\parskip{0.5\baselineskip}%
\begin{mylist}
\item[A] Outer top
\begin{mylist}
\item[B] Inner top
\item[B'] Inner bottom
\end{mylist}
\item[A'] Outer bottom
\end{mylist}
\end{document}