Eu estava tentando centralizar um pouco de matemática em uma lista enumerada, sem salto de linha.
Eu finalmente encontreiesta discussãode \hfill
vs \hspace*{\fill}
que parece sugerir que o uso \hspace*{\hfill}
evitará que o espaço no RHS seja engolido; no entanto, quando o implemento, não recebo nenhuma diferença na renderização entre os dois.
NB: Resolvi o problema específico incluindo um \null
, mas gostaria de saber que mal-entendido está me levando a esperar resultados diferentes,
ou seja\hspace*{\hfill}
por que ainda é necessário \null
não devorar o espaço do lado direito?
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}
Observe a diferença entre a primeira linha (sem \null
) e a segunda linha (com \null
):
Responder1
É mais normal usar látex \centering
ou center
ambiente para centralizar as coisas, porém o motivo pelo qual você precisa \null
é \item
se usado no modo horizontal remove o espaço horizontal no final do parágrafo anterior.
Se você remover %
essas duas linhas serão definidas da mesma maneira
\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}
Observe também que o uso \hspace*{\fill} %
também quebra a centralização, pois adiciona cola de preenchimento mais um espaço de palavra, você provavelmente pretendia\hspace*{\fill}%
Responder2
Em primeiro lugar:
\hspace*{\fill} %
gera\hfill
seguido porespaço(observe o espaço antes do caractere de porcentagem), mas direto\hfill
não faz isso.\hspace*
faz proteção no início da linha, não no final.TeX (sem LaTeX!) remove a última cola quando
\par
é seguido.A macro do LaTeX
\item
funciona\unskip\unskip\par
quando é processada no modo horizontal.\hspace*{\fill}
A macro do LaTeX é colocada\vrule width0pt \hfill \hskip0pt
em metarilal horizontal.
O \hspace*{\fill} %
seguido por \item
remove o espaço indesejado antes do caractere percentual usando punho \unskip
, depois remove \hskip0pt
usando segundo \unskip
e finalmente \par
remove \hfill
. Esta é a razão pela qual your \hspace*{\fill} %
desaparece quando é seguido por \item
.