以不同的顺序重复枚举列表-枚举问题

以不同的顺序重复枚举列表-枚举问题

我希望枚举列表以不同的顺序重复(例如,两个语句的列表,然后是两个证明的列表:首先是第二个语句证明,然后是第一个语句证明)。我期望以下代码可以做到这一点,但出于某种原因,它只会生成一个包含“0”字符串的常规列表。

请帮忙查找并纠正我的错误。

\documentclass[english]{article}

\usepackage{enumitem}
\setlist[enumerate,1]{label=\arabic*$^\circ$.,ref=\arabic*$^\circ$}

\newlist{enumeratex}{enumerate}{5}
\setlist[enumeratex]%
{label=\arabic*$^\circ$.,%
before={\let\olditem=\item\renewcommand\item[1][]{\olditem[#1.]}},%
after={\let\item=\olditem}}

\begin{document}

\begin{enumerate}
  \item \label{a} a
  \item \label{b} b
\end{enumerate}

into

\begin{enumeratex}
  \item[\ref{b}] proof of b
  \item[\ref{a}] proof of a
\end{enumeratex}


\end{document}

期望的输出是:

Two lists

或者,我希望第二个列表标签成为第一个列表标签的超链接。

答案1

以下是改编\item 的可选参数,显示在计数器后的括号中针对你的情况:

enter image description here

笔记:

代码:

\documentclass{article}

\usepackage{enumitem}
\usepackage{letltxmacro}


\setlist[enumerate,1]{label=\arabic*$^\circ$.,ref=\arabic*$^\circ$}

\LetLtxMacro{\OldItem}{\item}

\newcommand*{\LabelText}{}%
\newcommand*{\MyItem}[1][]{%
    \renewcommand{\LabelText}{#1}\OldItem\leavevmode%
}%

\newlist{enumeratex}{enumerate}{5}
\setlist[enumeratex]%
{label=\noexpand\LabelText.,%
before={\let\item\MyItem},%
after={\let\item\OldItem}}

\begin{document}

\begin{enumerate}
  \item \label{a} a
  \item \label{b} b
\end{enumerate}

into

\begin{enumeratex}
  \item[\ref{b}] proof of b
  \item[\ref{a}] proof of a
\end{enumeratex}

\end{document}

相关内容