4

I'm trying to use package subfig and amsmath align (in order to align equations) inside the subfloat block. Are there any incompatibilities or am I doing something wrong? Details follow. This is my problem, my code:

\begin{figure}
    \centering
    \subfloat[First]{
        \begin{align*}
          ciao &= 2\\
          ciao &= 3
        \end{align*}}
    \subfloat[First]{
        \begin{align*}
          ciao &= 2\\
          ciao &= 3
        \end{align*}}    
\end{figure}

I get the error (in ShareLatex)

Missing \endgroup inserted.

\endgroup l.374 \end{align*}} I've inserted something that you may have forgotten. (See the above.) With luck, this will get me unwedged. But if you really didn't forget anything, try typing `2' now; then my insertion and my current dilemma will both disappear.

This code (used inside subfloat)... :

\begin{align*}
          ciao &= 2\\
          ciao &= 3
\end{align*}

...but moved out of the subfigure is working just fine.

Also the figure with plain text inside the subfloat[]{} works without errors. (I have only a warning for underfull \hbox, I don't know what does it means but I think "there is simply not so much inside the figure")

Any tip is appreciated. Regards

2
  • 2
    Maybe $\begin{aligned} instead of \begin{align*} and the closing with \end{aligned}$
    – egreg
    Nov 1, 2016 at 11:15
  • It seems to work well, thankyou. I didn't know about alignement in math mode. I'll try with more complex expressions and I'll update the post with you answer in case. It would be useful to figure out if this is a subfig/asmath incompatibility or a bug. Nov 1, 2016 at 11:24

1 Answer 1

4

This is not really related to \subfloat; you would get into the same problem with

\mbox{\begin{align*}...\end{align*}}

Also something like

\subfloat[Label]{%
   This is paragraph one.

   This is paragraph two.
}

would not produce two paragraphs. The reason is that for making paragraphs TeX needs to know the line width, which is not set when making a horizontal box. A \subfloat is processed in a horizontal box as well.

You can get around this by using an inline formula

\subfloat[First]{% <-- don't forget
    $\begin{aligned}
      ciao &= 2\\
      ciao &= 3
    \end{aligned}$}
3
  • I appreciate a lot explanation of inner workings. Thank you Nov 1, 2016 at 11:39
  • Appears to apply also to the subfigure package. Is this why subcaption is recommended over them and it requires specifying the line width? Feb 24, 2017 at 17:07
  • @Blaisorblade subfigure has been obsolete for at least 15 years and subfig has replaced it; however, subcaption (albeit with a different syntax) has many more features.
    – egreg
    Feb 24, 2017 at 17:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .