Понимание разницы между \hspace и \hspace* при размещении подрисунков рядом

Понимание разницы между \hspace и \hspace* при размещении подрисунков рядом

\hspace*Почему при использовании вместо наблюдается разница в выводе, \hspaceнесмотря на то, что ширина подрисунков и горизонтальный интервал добавляются к \textwidth?

\documentclass{article}
\usepackage{subcaption,mwe}
\begin{document}
    \begin{figure}
        \centering
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-a}
        \end{subfigure}%
    \hspace{0.05\textwidth}
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-b}
        \end{subfigure}%
    \hspace{0.05\textwidth}
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-c}
        \end{subfigure}
    \end{figure}

    \begin{figure}
        \centering
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-a}
        \end{subfigure}%
    \hspace*{0.05\textwidth}
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-b}
        \end{subfigure}%
    \hspace*{0.05\textwidth}
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-c}
        \end{subfigure}
    \end{figure}
\end{document}

введите описание изображения здесь

решение1

Строка изображений слишком широка для строки. \hspaceвводит точку разрыва, поэтому строка прерывается после B, а пробел в начале следующей строки отбрасывается.

без \hspace*переноса строки, поэтому они остаются на одной строке, создавая переполненную строку

Overfull \hbox (4.44969pt too wide) in paragraph at lines 21--32

Он переполнен из-за пробелов между словами, добавленных после \hspace.

введите описание изображения здесь

\documentclass{article}
\usepackage{subcaption,mwe}
\begin{document}
    \begin{figure}
        \centering
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-a}
        \end{subfigure}%
    \hspace{0.049\textwidth}%
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-b}
        \end{subfigure}%
    \hspace{0.049\textwidth}%
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-c}
        \end{subfigure}
    \end{figure}

    \begin{figure}
        \centering
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-a}
        \end{subfigure}%
    \hspace*{0.05\textwidth}%
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-b}
        \end{subfigure}%
    \hspace*{0.05\textwidth}%
        \begin{subfigure}[t]{0.3\textwidth}
            \includegraphics[width=\linewidth]{example-image-c}
        \end{subfigure}
    \end{figure}
\end{document}

Примечание с \hspace{0.05\textwidth}ошибкой округления делает его немного переполненным, поэтому мне пришлось немного уменьшить его. На практике лучше не использовать такие фиксированные длины и просто использовать \hfillмежду изображениями, это расширит пространство между изображениями, не беспокоясь об ошибке округления.

Связанный контент