\hfil 在数学模式下

\hfil 在数学模式下
\documentclass[a4paper]{report}

\begin{document}
\[\phantom{\ast}\hfil a\hfil\ast\]
As you can see, the \verb"\hfil"s get ignored… or at least the one on the right does. But if I swap \verb"\phantom" and \verb"\ast", I get:
\[\ast\hfil a\hfil\phantom{\ast},\]
where the \verb"\hfil" is still being ignored. Therefore I infer both are being ignored.
\end{document}

为什么会发生这种情况?

答案1

说与 说或者 在 LaTeXspeak 中\hfil相同。\hskip 0pt plus 1fil\hspace{0pt plus 1fil}

然而,TeX 只有在必要时才会使用拉伸分量。例如,

\hbox{a\hfil b} % Plain TeX
\makebox{a\hfil b} % LaTeX (or \mbox{a\hfil b})

拉伸组件不会产生任何效果,并且“a”和“b”之间不会出现空格。相反,会出现一个空格

\hbox to 2cm{a\hfil b} % Plain TeX
\makebox[2cm][s]{a\hfil b} % LaTeX

因为 TeX 想要占据规定的长度。

显示数学中的公式按其自然宽度排版,因此粘连将仅使用长度分量而不使用拉伸分量。长度分量为零\hfil

如果你想填满所有可用空间,你应该说

\[
\makebox[\displaywidth][s]{$\displaystyle\phantom{*}a\hfil{*}$}
\]

但最好这样说

\[
a\tag*{$*$}
\]

使用amsmath功能。

相关内容