在这个 MWE 中,我在一行上有五个元素:三个数字,每个数字占 32%,两个空格,每个空格占 2%。3*32+2*2=100。所以我希望这些项目能放在一行上:
\documentclass{article}
%\usepackage[showframe]{geometry}
\usepackage{mwe}
\begin{document}%
$32+2+32+2+32=100$, right?
\begin{figure}%
\includegraphics[width=0.32\linewidth]{example-image-a}%
\hspace{0.02\linewidth}%
\includegraphics[width=0.32\linewidth]{example-image-a}%
\hspace{0.02\linewidth}%
\includegraphics[width=0.32\linewidth]{example-image-a}%
\end{figure}%
\end{document}%
为什么他们不这么做呢?
加分问题:该geometry
套餐有什么影响?
答案1
您忽略了一个事实:使用非整数进行实数(双关语)计算的总和可能会引入舍入误差问题。
使用 TeX,所有内部长度计算均以单位的倍数进行sp
,其中1pt=65536sp
。根据 的确切值\linewidth
,3(0.32\linewidth)+2(0.02\linewidth)
结果可能略大于 或略小于1\linewidth
。在一种情况下,即,使用文档类定义的默认值\linewidth
,舍入总和略大于1\linewidth
;因此,第三个图表被踢到下一行。如果geometry
加载 , 的默认值\linewidth
会更大。同样,使用修改后的默认值,舍入总和略小于1\linewidth
—— 并且所有三个图表都恰好适合一行。
无论如何,如果使用正确的编码技术,就不会出现这个问题:使用\hfill
而不是\hspace{0.02\linewidth}
来分隔图表。
\begin{figure}
\includegraphics[width=0.32\linewidth]{example-image-a}%
\hfill
\includegraphics[width=0.32\linewidth]{example-image-a}%
\hfill
\includegraphics[width=0.32\linewidth]{example-image-a}%
\end{figure}