我试图将一些数学运算集中在枚举列表内,而不跳行。
我最终发现这次讨论vs似乎表明使用将避免 RHS 上的空间被吞噬;但是,当我实现它时,我没有发现两者之间的渲染有任何差异\hfill
。\hspace*{\fill}
\hspace*{\hfill}
注意:我通过添加解决了具体问题\null
,但想知道是什么误解导致我期望不同的输出,
IE为什么\hspace*{\hfill}
仍然要求\null
不吞噬右侧空间?
梅威瑟:
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item \hspace*{\fill} %
% Some math content
$y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$
%
\hspace*{\fill}
%
\item \hspace*{\fill} %
% Some math content
$y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$
%
\hspace*{\fill}\null
\end{enumerate}
\end{document}
\null
注意第一行(没有)和第二行(有)之间的区别\null
:
答案1
在乳胶中使用\centering
或center
环境来将事物居中是更常见的,然而您需要的原因\null
是 \item
如果在水平模式下使用会删除上一段末尾的水平空间。
如果你删除%
这两行,设置方式相同
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item \hspace*{\fill} %
% Some math content
$y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$
%
\hspace*{\fill}
% > If you remove this % (or add a line above it) both will render the same.
\item \hspace*{\fill} %
% Some math content
$y(x) = a_o + a_1 (x-k) + a_2(x-k)^2 + a_3(x-k)^3 + a_4(x-k)^4$
%
\hspace*{\fill}\null
\end{enumerate}
\end{document}
还要注意,这种用法\hspace*{\fill} %
也会破坏居中,因为它添加了填充粘连加上一个单词空格,你可能打算\hspace*{\fill}%
答案2
首先:
\hspace*{\fill} %
生成\hfill
,然后是空间(请注意百分比字符之前的空格)但直接\hfill
不会这样做。\hspace*
在线的开头进行保护,在线的结尾不进行保护。\par
TeX(没有 LaTeX!)在跟随时删除最后的胶水。LaTeX 的
\item
宏\unskip\unskip\par
在水平模式下处理时会执行此操作。LaTeX 的
\hspace*{\fill}
宏放入\vrule width0pt \hfill \hskip0pt
水平金属中。
随后\hspace*{\fill} %
的\item
会先使用 删除百分号前的不需要的空格\unskip
,然后\hskip0pt
使用 删除\unskip
,最后\par
使用 删除。这就是为什么后面跟着 时 会消失的\hfill
原因。\hspace*{\fill} %
\item