¿Por qué \noindent tiene tal efecto en \rlap y \llap.?

¿Por qué \noindent tiene tal efecto en \rlap y \llap.?

Sin \noindent, \rlap y \llap parecen moverse hacia abajo \baselineskip cada vez. ¿Es esto deliberado?

\documentclass{article}
\usepackage{xcolor}

\begin{document}
\color{red}
\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}

\color{blue}
\noindent\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}

\color{green}
\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}

\color{black}
\noindent\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}
\end{document}

barras de color

Respuesta1

Ambos \rlapy \llapse definen en términos de un\hbox

\def\rlap#1{\hb@xt@\z@{#1\hss}}
\def\llap#1{\hb@xt@\z@{\hss#1}}

dónde

\def\hb@xt@{\hbox to}

Sin embargo, \hboxno se puede utilizar una para comenzar un párrafo. Debes cambiar explícitamente al modo horizontal usando algo como \noindento \leavevmode. (Consulte la sección 16.3 de TeX por tema para obtener más detalles).

Aquí está su MWE comportándose un poco más como probablemente esperaba:

\documentclass{article}
\usepackage{xcolor}
\newcommand\aelap[1]{\makebox[0pt][r]{#1}}
\begin{document}

\color{red}
\leavevmode\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}

\color{blue}
\noindent\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}\rlap{\rule{.25in}{1ex}}

\color{green}
\leavevmode\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}

\color{black}
\noindent\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}\llap{\rule{.25in}{1ex}}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada