Using your code snippet as an example, \centering
only has an impact on the \caption
. However,
\hspace*{\fill}
{ILLUSTRATION 1} \hfill {ILLUSTRATION 2}
\hspace*{\fill}
is meant to set ILLUSTRATION 1
and ILLUSTRATION 2
even distributed across \textwidth
:

\documentclass{article}
\usepackage{showframe}% http://ctan.org/pkg/showframe
\begin{document}
\begin{figure}
\centering
\hspace*{\fill}
{ILLUSTRATION 1} \hfill {ILLUSTRATION 2}
\hspace*{\fill}
\caption{Example float with two illustrations}
\label{fig:mult1}
\end{figure}
\end{document}
However, replacing \hspace*{\fill}
with \hfill
, the space from the right margin is "gobbled":

\documentclass{article}
\usepackage{showframe}% http://ctan.org/pkg/showframe
\begin{document}
\begin{figure}
\centering
\hfill%\hspace*{\fill}
{ILLUSTRATION 1} \hfill {ILLUSTRATION 2}%
\hfill%\hspace*{\fill}
\caption{Example float with two illustrations}
\label{fig:mult1}
\end{figure}
\end{document}
giving value to the command definition for \hspace*
:
LaTeX removes horizontal space that comes at the end of a line. If you don't want LaTeX to remove this space, include the optional *
argument. Then the space is never removed.
An alternative to use if \hfill
is more intuitive than \hspace*{\fill}
, is to insert dummy text (like \null
or \mbox{}
) at the (start and) end of the line. That way the \hfill
will always have "something to infinitely stretch against":
\null\hfill%
{ILLUSTRATION 1} \hfill {ILLUSTRATION 2}%
\hfill\null%
In the above examples, showframe
merely highlighted the text block.
Control space \
and a tie ~
have the same width and only differ in their line-breaking behaviour. The definition of the latter, taken from latex.ltx
is:
\DeclareRobustCommand{\nobreakspace}{%
\leavevmode\nobreak\ }
\catcode `\~=13
\def~{\nobreakspace{}}
Best Answer
I don't think the sign of the argument matters, Without the
*
the skip is always discarded at the start of the page, and with the*
it is not discarded.To answer the second question added later, it shouldn't affect the page before the break (although it may be possible to generate edge cases where it does) but it will of course affect the positioning of the first box on the page after the break and so will affect all subsequent breaks.