答案1
以您的代码片段为例,\centering
只会对产生影响\caption
。然而,
\hspace*{\fill}
{ILLUSTRATION 1} \hfill {ILLUSTRATION 2}
\hspace*{\fill}
旨在设置ILLUSTRATION 1
并ILLUSTRATION 2
分布于\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}
但是,如果\hspace*{\fill}
用替换\hfill
,右边距的空间就会被“吞噬”:
\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}
为命令定义赋予值\hspace*
:
LaTeX 会删除行末的水平空格。如果您不希望 LaTeX 删除此空格,请包含可选参数
*
。这样就不会删除空格。
\hfill
如果比 更直观,则使用 的另一种方法是在行的(开始和)结尾处\hspace*{\fill}
插入虚拟文本(如\null
或)。这样就会始终有“可以无限延伸的东西”:\mbox{}
\hfill
\null\hfill%
{ILLUSTRATION 1} \hfill {ILLUSTRATION 2}%
\hfill\null%
在上面的例子中,showframe
仅突出显示了文本块。
答案2
这里有一个很好的讨论和答案“fil” 和 “fill” 有什么区别?。
与您的问题中的具体内容相关的\hfill
是,TeX 原语可以扩展为,
\hfill = \hskip 0pt plus 1fill minus 0pt
而 \hspace*{\fill}
是 LaTeX 宏,它留下的空格等于1fill
。如果要在行首插入粘连,则使用该命令的星号版本。