尝试在Exercise
环境 ( exercise.sty
) 中使用图形时出现“LaTeX 错误:不在外部模式中”。
例子:
\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}
我看见是否可以将图形环境与独立包一起使用?另一个软件包也存在类似的问题,并且该软件包中的限制最终得到了解决。看来环境中也存在相同的限制exercise
。有没有一种解决方法可以让该软件包包含图形,或者在使用该软件包时以不同的方式包含图形?
答案1
有不要求将图像(\includegraphics
例如,使用)放置在figure
环境中。figure
环境只是一个浮动占位符。因此,您可以将图像放在环境中,center
使其位于页面的中心,甚至可以\captionof
使用caption
包裹。
\documentclass{article}
\usepackage{caption}% http://ctan.org/pkg/caption
\usepackage{exercise}% http://ctan.org/pkg/exercise
\begin{document}
\begin{Exercise}[title={foo}, label=ex1]
A tough question.
\end{Exercise}
\begin{Answer}[ref={ex1}]
A smart answer.
\begin{center}
%\includegraphics[totalheight=0.2\textheight]{couetteFlowFig1.png}
\rule{150pt}{100pt} \par
\captionof{figure}{This is a figure caption.}
\label{fig:ex1}
\end{center}
\end{Answer}
\end{document}
在上面的例子中,我用一个矩形块替换了图像来模拟图像,但它也可以工作\includegraphics
(为此你需要\usepackage{graphicx}
-graphicx
包裹)。
问题源于figure
在 内插入Exercise
。或者更一般地讲,在非浮动(或限制性)环境中插入浮动。因此,删除浮动环境可使编译成功。
答案2
一个简单的选择是使用float
包,如下所示。在这种情况下,figure
环境与一起工作得很好\caption
。代码与@Werner的答案非常相似,只有几行更改。
\documentclass{article}
\usepackage{caption}% http://ctan.org/pkg/caption
\usepackage{exercise}% http://ctan.org/pkg/exercise
\usepackage{float}
\begin{document}
\begin{Exercise}[title={foo}, label=ex1]
A tough question.
\end{Exercise}
\begin{Answer}[ref={ex1}]
A smart answer in Fig. \ref{fig:ex1}.
\begin{figure}[H]
%\includegraphics[totalheight=0.2\textheight]{couetteFlowFig1.png}
\rule{150pt}{100pt} \par
\caption{This is a figure caption.}
\label{fig:ex1}
\end{figure}
\end{Answer}
\end{document}