为什么1的分割之和不等于1?

为什么1的分割之和不等于1?

在这个 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。根据 的确切值\linewidth3(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}

相关内容