可擴展可選參數來枚舉環境

可擴展可選參數來枚舉環境

下面的 MWE 透過使用paralist包,應該允許\begin{enumerate}[...]where...以「某種方式」靈活(繼承自enumerate上面的)。

\documentclass[a4paper,10pt]{report}

\usepackage{paralist,xargs}

\newcommand\mwe[2]{[{\ref{#1}.}.#2]}

\begin{document}

\newenvironmentx{enumwe}[2][2=1]{%
  \begin{enumerate}\mwe{#1}{#2}%
  %\expandafter\begin\expandafter{\expandafter enumerate\expandafter}\mwe{#1}{#2}%
  \ignorespaces%
}{\end{enumerate}%
  \ignorespacesafterend%
}

\begin{enumerate}[{A}1]

\item \label{one} {\bfseries~Appendix One}

  \begin{enumwe}{one}
    \item text
  \end{enumwe}

\end{enumerate}

\end{document}

然而,註解行似乎是一個錯誤的嘗試,而 MWE 排版錯誤。

預期的擴展結果如下。

\begin{enumerate}[{A}1]
\item \label{one} {\bfseries~Appendix One}
  \begin{enumerate}[{A1.}1.]
    \item text
  \end{enumerate}
\end{enumerate}

我很感激任何幫助或建議。

enumeratePS:我實際上需要在環境的可選參數中擴展一個宏,例如\begin{enumerate}[\mwe{...}1.],但它不起作用(??到處都發生),這個MWE是我的方法,但我遇到了奇怪的錯誤:

! LaTeX Error: \begin{enumerate} on input line 21 ended by \end{enumerate}.

答案1

\expandafter僅跨過單一標記而不是大括號組,因此最簡單的方法是將要跨越的所有內容放入單一標記中:

\documentclass[a4paper,10pt]{report}

\usepackage{paralist,xargs}

\newcommand\mwe[2]{[{\ref{#1}.}.#2]}

\begin{document}

\newenvironmentx{enumwe}[2][2=1]{%
  \def\temp{\begin{enumerate}}%
  \expandafter\temp\mwe{#1}{#2}%
  \ignorespaces%
}{\end{enumerate}%
  \ignorespacesafterend%
}

\begin{enumerate}[{A}1]

\item \label{one} {\bfseries~Appendix One}

  \begin{enumwe}{one}
    \item text
  \end{enumwe}

\end{enumerate}

\end{document}

相關內容