Por que \noindent tem esse efeito em \rlap e \llap.?

Por que \noindent tem esse efeito em \rlap e \llap.?

Sem \noindent, \rlap e \llap parecem descer em \baselineskip todas as vezes. Isso é 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 cores

Responder1

Ambos \rlape \llapsão definidos em termos de um\hbox

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

onde

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

No entanto, an \hboxnão pode ser usado para iniciar um parágrafo. Você precisa mudar explicitamente para o modo horizontal usando algo como \noindentou \leavevmode. (Veja a seção 16.3 do TeX por Tópico para mais detalhes.)

Aqui está o seu MWE se comportando um pouco mais como você provavelmente esperava:

\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}

insira a descrição da imagem aqui

informação relacionada