Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have a minipage with a figure, and I want part (a) to be on the right of this figure (so part (a) is in a 2nd minipage), and the remaining parts (b), (c), etc to be below. The insights provided in What are the differences between using paralist vs. enumitem indicate that enumitem is the way to go.

My first thought was to begin the enumerate within the 2nd minipage, and attempt to resume this list outside of this minipage as documented in Resuming a list. When I attempt to use the resume* option provided by the enumitem package, this option seems to be ignored, and the text "resume,," is added to the output.

I then thought about starting the \begin{enumerate} outside of the first minipage, and having the first \item within the 2nd minipage. Surprisingly this almost works, except that it has a problem if I uncomment the \begin{center}, \end{center} lines. This is the second part below. But since this results in a syntax error (and even seems wrong to me) with the uncommented lines to me indicates that this is not proper usage.

The output of this can be seen here.

\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} 

So, how do I properly do this (and still be able to use the center environment).

share|improve this question

3 Answers 3

up vote 6 down vote accepted

It seems that enumitem forgets the setting for resume* if the enumerate is in a minipage.

I'd use a more enumitem-like syntax:

\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}

Unfortunately, the start= option seems to like only explicit numbers. Of course this complicated method is necessary only if you don't want to do the bookkeeping yourself.

share|improve this answer

The group added by the minipage hinders the second enumerate to remember the settings of the previous one. If you add an enumerate environment before all that it actually resumes this one instead. The 'resume,,' added seems to be a bug caused by using the resume* option with no previous enumerate (in the same scope).

In your specific case I would just manually reset the formatting options ((a)) and set the beginning of the enumeration (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} 
share|improve this answer
    
@egreg: I like the simplicity of Martin's solution, but am going to accept egreg as that is more automated (even thought I dislike adding extra code) in that it will automatically adjust the counters if more list items are added later. –  Peter Grill Jun 25 '11 at 20:01

This problem has now been solved in version 3.0 of the enumitem package via the Series capabilities, which will store the properties of a list globally.

The MWE of the OP would become:

\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} 

This would correctly give:

example

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.