使用 enumitem 包设置 rightmargin = leftmargin

使用 enumitem 包设置 rightmargin = leftmargin

使用 enumitem 包时默认的 leftmargin 似乎是leftmargin=*,有没有办法让 rightmargin 具有相同的宽度?最明显的方法是rightmargin=*但这不起作用,也不行rightmargin=leftmargin所以我开始期望我需要使用 enumitem 内部使用的相同值。文本使用 enumitem 包自定义列表说当使用阿拉伯数字时默认值为 0,我将其理解为字形 0 的宽度。如果是这样,是否可能以某种方式获取该长度并使用它,或者如何实现?

答案1

如果键的值rightmargin是其他长度,则必须指定该长度,包括转义字符,即rightmargin=\leftmargin

编辑:无论出于什么原因,这不适用于leftmargin=*添加。但是,它通过模拟计算来工作leftmargin=*——我使用了计算包以便于执行此操作。

\documentclass{article}

\usepackage[english]{babel}
\usepackage{blindtext}

\usepackage{calc}

\usepackage{enumitem}

% Variant A doesn't work
% \setlist{leftmargin=*,rightmargin=\leftmargin}

% Variant B works
\setlist{labelwidth=\widthof{0.},leftmargin={\labelwidth+\labelsep},rightmargin=\leftmargin}

\begin{document}

\blindtext

\begin{itemize}
\item\blindtext
\end{itemize}

\end{document}

编辑:修正了的模拟\leftmargin=*。感谢 Gonzalo 和 Javier!

答案2

默认是 labelindent=*。在 3.0 版本(将于下周发布)中labelindent=*。使用 key,before您可以在列表开始之前执行代码,即在处理完所有 key 之后。因此,只需编写:

\setlist{leftmargin=*,before=\setlength{\rightmargin}{\leftmargin}}

相关内容