Trying to use figure inside an Exercise
environment (exercise.sty
) gives me "LaTeX Error: Not in outer par mode."
Example:
\documentclass{article}
\usepackage[]{exercise}
\begin{document}
\begin{Exercise}[title={foo}, label=ex1]
A tough question.
\end{Exercise}
\begin{Answer}[ref={ex1}]
A smart answer.
\begin{figure}[htp]
\centering
\includegraphics[totalheight=0.2\textheight]{couetteFlowFig1.png}
\label{fig:ex1}
\end{figure}
\end{Answer}
\end{document}
I see in Is it possible to use the figure environment with the standalone package? that there was a similar problem with a different package, and that limitation in the package was eventually handled. It appears the same limitation exists in the exercise
environment. Is there a work around that allows for inclusion of a figure with that package, or a different way of including a figure when using this package?
Best Answer
There is no requirement to place an image (using
\includegraphics
, say) inside afigure
environment. Thefigure
environment is merely a floating placeholder. So, you can just put your image inside acenter
environment to centre it on the page, and even add a caption using\captionof
from thecaption
package.In the above example, I've replaced the image with a rectangular block to simulate the image, but it will work with
\includegraphics
as well (for which you will require\usepackage{graphicx}
- thegraphicx
package).The problem originates from inserting
figure
insideExercise
. Or, more generally, a float inside a non-floating (or restrictive) environment. Therefore, removing the floating environment enables the compilation to succeed.