Estaba tratando de centrar algunas matemáticas dentro de una lista enumerada, sin un salto de línea.
finalmente encontréesta discusiónde \hfill
vs \hspace*{\fill}
que parece sugerir que su uso \hspace*{\hfill}
evitará que se devore espacio en el RHS; sin embargo, cuando lo implemento, no obtengo ninguna diferencia en el renderizado entre los dos.
NB: Resolví el problema específico incluyendo un \null
, pero me gustaría saber qué malentendido me lleva a esperar un resultado diferente.
es decir\hspace*{\hfill}
¿Por qué todavía es necesario \null
no devorar el espacio del lado derecho?
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 la diferencia entre la primera línea (sin \null
) y la segunda línea (con \null
):
Respuesta1
Es más normal en látex usarlo \centering
o en el center
entorno para centrar cosas, sin embargo la razón por la que lo necesitas \null
es que \item
si se usa en modo horizontal se elimina el espacio horizontal al final del párrafo anterior.
Si eliminas %
estas dos líneas se configuran de la misma manera.
\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}
Tenga en cuenta también que el uso \hspace*{\fill} %
también rompe el centrado, ya que agrega pegamento de relleno más un espacio para palabras, probablemente era su intención.\hspace*{\fill}%
Respuesta2
En primer lugar:
\hspace*{\fill} %
genera\hfill
seguido deespacio(tenga en cuenta el espacio antes del carácter de porcentaje) pero directo\hfill
no hace esto.\hspace*
hace protección al inicio de la línea, no al final.TeX (¡no LaTeX!) elimina el último pegamento cuando
\par
se sigue.\item
La macro de LaTeX lo hace\unskip\unskip\par
cuando se procesa en modo horizontal.\hspace*{\fill}
La macro de LaTeX se pone\vrule width0pt \hfill \hskip0pt
en metarilal horizontal.
Lo \hspace*{\fill} %
seguido de \item
elimina el espacio no deseado antes del carácter de porcentaje usando el puño \unskip
, luego lo elimina \hskip0pt
usando el segundo \unskip
y finalmente \par
elimina \hfill
. Esta es la razón por la que \hspace*{\fill} %
desaparece cuando le sigue \item
.