
Предполагается , что MWE ниже, используя paralist
пакет, позволяет \begin{enumerate}[...]
where ...
быть гибким «в некотором роде» (наследует от enumerate
s выше).
\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}
Буду признателен за любую помощь или предложения.
PS: Мне на самом деле нужно расширить макрос в необязательном параметре для enumerate
окружения, например \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}