考虑以下
TEXT TEXT TEXT TEXT Figure~\ref{fig:foo} TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
\begin{figure}
\centering
\includegraphics[width=\textwidth]{foo}
\caption{This is foo.}
\label{fig:foo}
\end{figure}
现在我想在文本和图形周围添加一个框架。当然,可以删除 -environmentfigure
并用 -environment 包裹所有内容,fbox
但我需要保留标题和标签(后者用于动态引用):
\fbox{
TEXT TEXT TEXT TEXT Figure~1 TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
\includegraphics[width=\textwidth]{foo}
}
我尝试了以下代码但似乎不起作用:
\fbox{
\parbox[c]{\textwidth}{
TEXT TEXT TEXT TEXT Figure~\ref{fig:foo} TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{foo}
\caption{This is foo.}
\label{fig:foo}
\end{figure}
}
答案1
你的这次尝试
\fbox{
\parbox[c]{\textwidth}{
TEXT TEXT TEXT TEXT Figure~\ref{fig:foo} TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{foo}
\caption{This is foo.}
\label{fig:foo}
\end{figure}
}
不会产生预期的结果,原因有二:
您不能在框(在本例中为)内使用浮动环境(
figure
或任何其他用户定义的浮动对象) 。table
\fbox
(或)内的空行(或等效
\par
命令)不会产生段落结束。\fbox
\hbox
正如其他人所建议的,您可以使用框架包来生成围绕某些材料的框架。您不能figure
在里面使用framed
,但这不是问题:相反,您可以使用标准\includegraphics
命令(可能在环境中)来包含您的图像,并且您可以使用提供的命令为其center
添加标题\captionof
捕获包裹或标题包。一个小例子:
\documentclass{article}
\usepackage[demo]{graphicx}% demo option just for the example
\usepackage{framed}
\usepackage{caption}
\begin{document}
\begin{framed}
TEXT TEXT TEXT TEXT Figure~\ref{fig:foo} TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
\begin{center}
\includegraphics[width=\textwidth]{foo}
\captionof{figure}{This is foo.}
\label{fig:foo}
\end{center}
\end{framed}
\end{document}
可以使用以下方式获取更易于定制的框架:框架包裹。