行をスキップせずに、列挙リスト内でいくつかの数式を中央に配置しようとしていました。
私は最終的にこの議論\hfill
vsでは\hspace*{\fill}
、 を使用すると RHS のスペースが消費されるのを回避できると思われます\hspace*{\hfill}
が、実際に実装してみると、2 つのレンダリングに違いは見られません。
注: を含めることで特定の問題を解決しました\null
が、どのような誤解によって異なる出力が期待されるのかを知りたいです。
つまりなぜ右側のスペースを無駄にしないことが\hspace*{\hfill}
まだ必要なのでしょうか?\null
MWE:
\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
最初の行 ( なし) と 2 行目 ( あり\null
)の違いに注意してください。
答え1
LaTeX では、中央揃えに\centering
またはcenter
環境を使用するのが一般的ですが、 が必要な理由は、水平モードで使用すると、前の段落の末尾の水平方向のスペースが削除される\null
ためです 。\item
これら2行を削除すると、%
同じ方法で設定されます
\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} %
中央揃えが崩れ、フィルグルーと1単語分のスペースが追加されるため、おそらく意図したとおりに中央揃えが崩れることに注意してください。\hspace*{\fill}%
答え2
初めに:
\hspace*{\fill} %
生成\hfill
し、続いて空間(パーセント文字の前のスペースに注意してください) ただし、direct では\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