使用 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}}