恢复在小页面内开始的列表

恢复在小页面内开始的列表

我有一个带图片的迷你页面,我希望 (a) 部分位于该图片的右侧(因此 (a) 部分位于第二个迷你页面中),其余部分 (b)、(c) 等位于下方。使用 paralist 与 enumitem 有什么区别表明这enumitem是可行的方法。

我的第一个想法是在第二个小页面中开始枚举,并尝试在该小页面之外恢复此列表,如恢复列表。当我尝试使用包resume*提供的选项时enumitem,此选项似乎被忽略,并且文本“恢复,," 被添加到输出中。

然后我考虑从\begin{enumerate}第一个小页面的外部开始,并将第一个小页面放在第二个小页面内。令人惊讶的是,这几乎可以正常工作,但如果我取消注释,行\item,就会出现问题。这是下面的第二部分。但由于这会导致语法错误(甚至\begin{center}\end{center}似乎对我来说,未注释的行(对我来说是错误的)表示这不是正确的用法。

输出结果可见这里

\documentclass[12pt]{article}
\usepackage[shortlabels]{enumitem}
\begin{document}

\begin{minipage}{0.5\linewidth}
    \begin{center}
        \fbox{Figure here.}
    \end{center}
\end{minipage}
\begin{minipage}{0.5\linewidth}
\begin{enumerate}[(a)]
  \item One
    \begin{itemize}
        \item Item 1
        \item Item 2
    \end{itemize}
  \end{enumerate}
\end{minipage}

\bigskip
Now this should be part (b), and "resume" should not be printed here:

\begin{enumerate}[resume*]
  \item Two
  \item Three
\end{enumerate}

\hrule% Alternate attempt, but "feels" wrong...

\begin{enumerate}[(a)]% Move enumerate outside of minipage
\begin{minipage}{0.5\linewidth}
    %\begin{center}% "Missing item" if this is uncommented
        \fbox{Figure here.}
    %\end{center}
\end{minipage}
\begin{minipage}{0.5\linewidth}
  \item One
    \begin{itemize}
        \item Item 1
        \item Item 2
    \end{itemize}
\end{minipage}

\bigskip
Now this should be part (b), and "resume" should not be printed here:

  \item Two
  \item Three
\end{enumerate}
\end{document} 

那么,我该如何正确地做到这一点(并且仍然能够使用该center环境)。

答案1

似乎 enumitem 忘记了resume*是否enumerate在小页面中的设置。

我会使用更像 enumitem 的语法:

\begin{minipage}{0.5\linewidth}
    \begin{center}
        \fbox{Figure here.}
    \end{center}
\end{minipage}
\begin{minipage}{0.5\linewidth}
\begin{enumerate}[label=(\alph*)]
  \item One
    \begin{itemize}
        \item Item 1
        \item Item 2
    \end{itemize}
  \global\chardef\keepnumber=\value{enumi}
  \end{enumerate}
\end{minipage}

\bigskip
Now this should be part (b), and "resume" should not be printed here:

\begin{enumerate}[label=(\alph*)]
  \setcounter{enumi}{\keepnumber}
  \item Two
  \item Three
\end{enumerate}

不幸的是,该start=选项似乎只支持明确的数字。当然,只有当您不想自己记账时,这种复杂的方法才是必要的。

答案2

enumitem该问题现已在 3.0 版软件包中通过以下方式得到解决:系列功能,它将全局存储列表的属性。

OP 的 MWE 将变成:

\documentclass[12pt]{article}
\usepackage[shortlabels]{enumitem}
\begin{document}

\begin{minipage}{0.5\linewidth}
    \begin{center}
        \fbox{Figure here.}
    \end{center}
\end{minipage}
\begin{minipage}{0.5\linewidth}
\begin{enumerate}[(1),series=mylist] % Add series name to the first list
  \item One
    \begin{itemize}
        \item Item 1
        \item Item 2
    \end{itemize}
  \end{enumerate}
\end{minipage}

\bigskip
Now this should be part (b), and "resume" should not be printed here:

\begin{enumerate}[resume*=mylist] % use `resume*` to resume the previous named list with formatting
  \item Two
  \item Three
\end{enumerate}

\end{document} 

这将正确给出:

例子

答案3

添加的组会minipage阻碍第二个组enumerate记住前一个组的设置。如果enumerate在所有这些之前添加一个环境,它实际上会恢复这个环境。添加的“ ”似乎是由于使用没有上一个的选项(在同一范围内)resume,,而导致的错误。resume*enumerate

在您的具体情况下,我只需手动重置格式选项((a))并设置枚举的开头(start=2):

\documentclass[12pt]{article}
\usepackage[shortlabels]{enumitem}
\begin{document}

\begin{minipage}{0.5\linewidth}
    \begin{center}
        \fbox{Figure here.}
    \end{center}
\end{minipage}
\begin{minipage}{0.5\linewidth}
\begin{enumerate}[(a)]
  \item One
    \begin{itemize}
        \item Item 1
        \item Item 2
    \end{itemize}
  \end{enumerate}
\end{minipage}

\bigskip

\begin{enumerate}[(a),start=2]
  \item Two
  \item Three
\end{enumerate}

\end{document} 

相关内容