两张图片应该相邻。它们的最佳宽度是多少?对于 TeX 来说,0.5 + 0.5 = 1 是否合适,或者编译器是否需要对象之间留出微小的空间?
应该
\includegraphics[width=0.5\textwidth]
可以使用或更好的类似
\includegraphics[width=0.4999\textwidth]
在此示例中:
\begin{figure}[h]
\centering
\subfloat[]{\label{a} \includegraphics[width=0.5\textwidth]{a.jpg}}
\subfloat[]{\label{b} \includegraphics[width=0.5\textwidth]{b.jpg}}
\label{fig:abpics}
\caption{The a and the b.}
\end{figure}
答案1
让我们仔细检查一下你的例子。
\begin{figure}[h]
您正在启动figure
环境。错误:[h]
应该是[htp]
或其他内容。
\centering
您希望将所有内容居中。特别是,段落开头没有缩进。
\subfloat[]{\label{a} \includegraphics[width=0.5\textwidth]{a.jpg}}
\subfloat[]{\label{b} \includegraphics[width=0.5\textwidth]{b.jpg}}
这些构成了一个段落(对于 TeX 而言,方框就像大字符一样)。你有一个0.5\textwidth
宽的对象,空间和另一个0.5\textwidth
宽对象。这使得 TeX 无法只使用一行作为段落。只需添加一个%
:
\subfloat[]{\label{a} \includegraphics[width=0.5\textwidth]{a.jpg}}%
\subfloat[]{\label{b} \includegraphics[width=0.5\textwidth]{b.jpg}}
并且不会出现空格。宽度等于\textwidth
(由于小数截断,可能会出现微小错误,其中 1+1 并不总是 2);如果错误是由于缺陷(最多 2sp,即 1pt 的 1/65536),则声明\centering
将添加必要的填充;如果错误是由于过多,则\hfuzz
参数通常为 0.1pt,这比 2sp 大得多,并且Overfull \hbox
不会出现任何消息。因此在这两种情况下,两个子浮点数都会相邻出现。相反,空格通常大于 0.1pt,因此无法仅设置一行。
\caption{The a and the b.}
这将创建一个独立于上述段落的对象,该对象被终止并排版;然后被\caption
排版并且与其相关的所有操作都被执行;它不会开始一个段落。
\label{fig:abpics}
没有任何贡献\label
并且不会开始一个段落;无论如何最后的空格都会被删除。
\end{figure}
环境结束。请注意\label
应该后 \caption
为了正确引用生成的数字(感谢cgnieder的注释)。
在非常极少数情况下,当发生小数截断时,人们可能会被 1+1 不一定等于 2 的事实所困扰。示例如下
\hbox to 2in{\hskip1in\hskip1in}
结果是,Underfull \hbox
因为 TeX 使用的二进制算法(会截断可能的小数部分)使得 1in + 1in 比 2in 少 1sp。正常情况下无需担心。