对于我正在编写的包,我需要访问列表项的实际缩进量。这是一个最小示例,显示了我可以使用的长度,但它们似乎没有给我所需的内容。例如,我需要能够知道从页面左边距到 item 中的“An”的长度(1)以及 item 中的“A”A。
辅助宏显示了一些相关长度,但值显然\leftmargin
不是绝对的。我该如何计算该长度?
\documentclass{article}
\usepackage[showframe]{geometry}
\parindent=0pt
\usepackage{enumitem}
\newcommand\showlengths{\the\leftmargin;\the\labelwidth;\the\labelindent;\the\labelsep}
\begin{document}
\begin{enumerate}[label=(\arabic*)]
\item An item \showlengths
\begin{enumerate}[label=\alph*.]
\item A subitem \showlengths
\end{enumerate}
\end{enumerate}
\end{document}
答案1
正如评论中提到的,长度\@totalleftmargin
正好是所需的长度。下面是一个演示:
\documentclass{article}
\usepackage[showframe]{geometry}
\parindent=0pt
\usepackage{enumitem}
\makeatletter
\newcommand\showlengths{\the\@totalleftmargin}
\makeatother
\begin{document}
\begin{enumerate}[label=(\arabic*)]
\item An item \showlengths
\begin{enumerate}[label=\alph*.]
\item A subitem \showlengths
\end{enumerate}
\end{enumerate}
\rule{25pt}{1pt}
\rule{47pt}{1pt}
\end{document}