在我的序言中,我有以下被计算的自定义环境。
\newtheorem{exmp}{Example}[section]
当我在文本中调用它时,我总是编写以下代码,
\begin{exmp}
\begin{mdframed}[backgroundcolor=blue!20]
Whatever I want to write ...
\end{mdframed}
\end{exmp}
然后我希望在这个环境中输入一个数字。
\begin{exmp}
\begin{mdframed}[backgroundcolor=blue!20]
\begin{figure}[h!]
\centering
\includegraphics[width=8cm, height=5cm]{name-of-figure}
\caption{The caption. }
\label{fig:RC}
\end{figure}
\end{mdframed}
\end{exmp}
然后我收到以下两个错误:
Latex error: Not in outer par mode.
Missing number, treated as zero.
删除图形代码后,一切都编译正常。不幸的是,图形确实必须在环境中。我完全不知道如何解决这个问题,并感谢您提供的任何帮助!顺便说一句,我希望将图像的颜色与 mdframed 环境的颜色相匹配,但是由于显而易见的原因,我还没有尝试过!
答案1
浮点说明[h!]
符不能保证浮点不会移动或停留h
。请参阅如何影响 LaTeX 中图形和表格等浮动环境的位置?更多细节。
此外,错误“不在外部模式”是由于您在容器内插入了浮动环境 - mdframed
- 但该容器并不浮动。浮动必须放置在不受限制的位置。
无论如何,您不需要figure
(float) 环境来插入图像。您可以直接使用 插入图像\includegraphics
,然后使用caption
的\captionof{figure}
(capt-of
提供了类似的东西):
\documentclass{article}
\usepackage{mdframed,xcolor,amsthm,graphicx,caption}
\newtheorem{exmp}{Example}[section]
\begin{document}
\section{A section}
\begin{exmp}
\mbox{}\par
\begin{mdframed}[backgroundcolor=blue!20]
\centering
\includegraphics[width=8cm, height=5cm]{example-image}
\captionof{figure}{The caption.}
\end{mdframed}
\end{exmp}
\end{document}
答案2
正如 Werner 在他的评论中所说,figure
它不会浮动。相反,您可以将图像直接插入到您的环境中,如下所示:
\begin{exmp}
\begin{mdframed}[backgroundcolor=blue!20]
\begin{center}
\includegraphics[width=8cm, height=5cm]{name-of-figure}
\captionof{figure}{The caption. }
\label{fig:RC}
\end{center}
\end{mdframed}
\end{exmp}
如果captionof
您需要包caption
或者您为其使用 documentclass 工具,那么也有小包capt-of
。