并排的两张图片的文本宽度应该为 0.5 还是 0.49999?

并排的两张图片的文本宽度应该为 0.5 还是 0.49999?

两张图片应该相邻。它们的最佳宽度是多少?对于 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。正常情况下无需担心。

相关内容