我有一个带图片的迷你页面,我希望 (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}