我試著將一些數學集中在一個枚舉列表中,而不需要換行。
我最終發現這次討論的\hfill
vs\hspace*{\fill}
這似乎表明使用\hspace*{\hfill}
將避免 RHS 上的空間被吞噬;但是,當我實現它時,兩者之間的渲染沒有任何差異。
注意:我透過包含 a 解決了具體問題\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*
在線路的開頭進行保護,在線路的末端不進行保護。TeX(不是 LaTeX!)會在執行以下操作時去除最後的膠水
\par
。LaTeX 的
\item
巨集\unskip\unskip\par
在以水平模式處理時會這樣做。LaTeX 的
\hspace*{\fill}
宏放入\vrule width0pt \hfill \hskip0pt
水平金屬。
接下來使用「fist \hspace*{\fill} %
」\item
刪除百分比字元之前不需要的空格\unskip
,然後\hskip0pt
使用「second」刪除\unskip
,最後\par
「remove」\hfill
。這就是為什麼 your\hspace*{\fill} %
後面跟有 時消失的原因\item
。