enumitem 包不接受命令模式输入

enumitem 包不接受命令模式输入

我将尝试Step 1通过以下格式的新命令传递列表标签值\newcommand\grablabel{Step 1}传递列表标签值。

但是该enumerate包不支持如下命令值\grablabel。输出是渲染所有值Step 1

我已将我的MWE和输出放上来供您参考。

\documentclass{article}

\RequirePackage{enumerate}
\usepackage[flushleft,alwaysadjust]{paralist}
\let\enumerate\compactenum
\let\itemize\compactitem

\makeatletter
\newcommand\grablabel{Step 1}
\makeatother

\begin{document}

\section{First Example}

\begin{enumerate}[Step 1][4]

\item list 1

\item list 2

\item list 3

\item list 4

\end{enumerate}

\section{Second Example}

\begin{enumerate}[\grablabel][4]

\item list 1

\item list 2

\item list 3

\item list 4

\end{enumerate}

\end{document}

输出和我所需的输出如下面输出图像中提到的:

在此处输入图片描述

因此,我需要通过命令模式传递值。您能否检查并建议如何通过命令模式获取所需的输出。

答案1

\grablabel在将其传递给之前必须进行扩展\compactenum

\documentclass{article}

\RequirePackage{enumerate}
\usepackage[flushleft,alwaysadjust]{paralist}
\let\itemize\compactitem

\renewcommand\enumerate[1][\relax]
{\ifx\relax#1\def\next{\compactenum}\else
  \def\next{\expandafter\compactenum\expandafter[#1]}\fi
  \next}{\endenumerate}

\makeatletter
\newcommand\grablabel{Step 1}
\makeatother

\begin{document}

\section{First Example}

\begin{enumerate}[Step 1][4]

\item list 1

\item list 2

\item list 3

\item list 4

\end{enumerate}

\section{Second Example}

\begin{enumerate}[\grablabel][4]

\item list 1

\item list 2

\item list 3

\item list 4

\end{enumerate}

\section{Third Example (no options)}

\begin{enumerate}

\item list 1

\item list 2

\item list 3

\item list 4

\end{enumerate}

\end{document}

在此处输入图片描述

相关内容