以下代码会产生错误:
\begin{figure}[htbp!]
\subfloat{
\begin{minipage}[c][Structured Mesh]{0.5\textwidth}
\centering
\includegraphics[scale=0.4]{ch-SmallStrain/Graphics/Structured}
\end{minipage}}
\subfloat{
\begin{minipage}[c][Unstructured Mesh]{0.5\textwidth}
\centering
\includegraphics[scale=0.4]{ch-SmallStrain/Graphics/Unstructured}
\end{minipage}}
\\
\subfloat{
\begin{minipage}[c][Structured Mesh, zoomed to red box shown above]{0.5\textwidth}
\centering
\includegraphics[scale=0.2]{ch-SmallStrain/Graphics/StructuredCloseup}
\end{minipage}}
\subfloat{
\begin{minipage}[c][Unstructured Mesh, zoomed to red box shown above]{0.5\textwidth}
\centering
\includegraphics[scale=0.2]{ch-SmallStrain/Graphics/UnstructuredCloseup}
\end{minipage}}
\caption{Meshes for the Shearing example\label{fig:Meshes-for-the}}
\end{figure}
错误是:
! 缺失数字,视为零。S l.634 \end{minipage}}
在每个 处都会发生这种情况\end{minipage}
。在我看来,这似乎是宽度参数{0.5\textwidth}
无法被识别,而且如果我删除 中的可选参数,错误就会消失[]
。有没有办法在保留可选参数的同时修复此错误?
编辑:
我忘了说我正在使用 subfig 包,第二个可选参数应该是子图的标题。
答案1
我假设您打算将后面括号中的第二个参数\begin{minipage}
用作子浮点的标题。如果这是您的目标,则应将参数放在后面,\subfloat
而不是后面\begin{minipage}
。
请注意,minipage
环境最多可以接受三个可选参数 - 一个“外部”垂直对齐指示器,可以是、t
和top
底部;一个高度变量(TeX“长度”实体);和一个“内部”位置指示器 - 和c
center
b
两个强制性论点:一个长度变量,用于设置环境的预期宽度和小页面的实际内容,两者都放在花括号中。
另一个观察结果是:除非有充分的理由让子浮点图具有不同的宽度,否则你可能只想给所有四个相同宽度width=\linewidth
. 这可以通过执行时设置选项来实现\includegraphics
。
\documentclass{article}
\usepackage{subfig}
\usepackage[demo]{graphicx} %leave off the 'demo' option in your real document
\begin{document}
\begin{figure}
\subfloat[Structured Mesh]{%
\begin{minipage}{0.48\textwidth}
\includegraphics[width=\linewidth]{ch-SmallStrain/Graphics/Structured}
\end{minipage}}
\hspace{\fill} % induce horizontal separation
\subfloat[Unstructured Mesh]{%
\begin{minipage}[c]{0.48\textwidth}
\includegraphics[width=\linewidth]{ch-SmallStrain/Graphics/Unstructured}
\end{minipage}}
\subfloat[Structured Mesh, zoomed to red box shown above]{%
\begin{minipage}{0.48\textwidth}
\includegraphics[width=\linewidth]{ch-SmallStrain/Graphics/StructuredCloseup}
\end{minipage}}
\hspace{\fill} % induce horizontal separation
\subfloat[Unstructured Mesh, zoomed to red box shown above]{%
\begin{minipage}{0.48\textwidth}
\includegraphics[width=\linewidth]{ch-SmallStrain/Graphics/UnstructuredCloseup}
\end{minipage}}
\caption{Meshes for the Shearing example\label{fig:Meshes-for-the}}
\end{figure}
\end{document}
答案2
正如前面所建议的,如果您打算使用环境minipage
来设置captions
子图的,则其本身可以执行此操作,您可以简单地删除图中的subfloat
所有。minipages
\documentclass{article}
\usepackage{subfig}
\usepackage[demo]{graphicx} %leave off the 'demo' option in your real document
\begin{document}
\begin{figure}
\subfloat[Structured Mesh]{%
\includegraphics[width=0.48\linewidth]{ch-SmallStrain/Graphics/Structured}
}
\hfill % induce horizontal separation
\subfloat[Unstructured Mesh]{%
\includegraphics[width=0.48\linewidth]{ch-SmallStrain/Graphics/Unstructured}
}
\subfloat[Structured Mesh, zoomed to red box shown above]{%
\includegraphics[width=0.48\linewidth]{ch-SmallStrain/Graphics/StructuredCloseup}
}
\hfill % induce horizontal separation
\subfloat[Unstructured Mesh, zoomed to red box shown above]{%
\includegraphics[width=0.48\linewidth]{ch-SmallStrain/Graphics/UnstructuredCloseup}
}
\caption{Meshes for the Shearing example\label{fig:Meshes-for-the}}
\end{figure}
\end{document}
您可以在命令width
中调整每个图形includegraphics
。