Я пытался разместить некоторые математические вычисления в перечислимом списке, без пропуска строк.
В конце концов я нашелэто обсуждениеvs \hfill
, \hspace*{\fill}
что, по-видимому, предполагает, что использование \hspace*{\hfill}
позволит избежать поглощения пространства на правой стороне; однако, когда я реализую это, я не получаю никакой разницы в рендеринге между этими двумя вариантами.
Примечание: Я решил конкретную проблему, включив \null
, но хотел бы узнать, какое недопонимание заставляет меня ожидать иного результата,
то естьпочему \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
, за которым следуеткосмос(обратите внимание на пробел перед символом процента), но direct\hfill
этого не делает.\hspace*
есть ли защита в начале линии, нет в конце.TeX (не LaTeX!) удаляет последний клей, когда
\par
следует.\item
Макрос LaTeX делает это\unskip\unskip\par
, когда он обрабатывается в горизонтальном режиме.Макрос LaTeX
\hspace*{\fill}
помещает\vrule width0pt \hfill \hskip0pt
в горизонтальный метарилал.
Следующий \hspace*{\fill} %
за ним \item
удаляет нежелательный пробел перед символом процента с помощью fist \unskip
, затем удаляет \hskip0pt
с помощью second \unskip
и, наконец, \par
удаляет \hfill
. Вот почему ваш \hspace*{\fill} %
исчезает, когда за ним следует \item
.