為什麼 \noindent 對 \rlap 和 \llap 有這樣的影響?

為什麼 \noindent 對 \rlap 和 \llap 有這樣的影響?

如果沒有 \noindent,\rlap 和 \llap 似乎每次都會向下移動 \baselineskip 。這是故意的嗎?

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

彩條

答案1

\rlap和都\llap定義為\hbox

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

在哪裡

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

但是,\hbox不能使用 an 來開始段落。您需要使用\noindent或 之類的命令明確切換到水平模式\leavevmode。 (有關更多詳細信息,請參閱 TeX 按主題的第 16.3 節。)

您的 MWE 的行為可能更像您的預期:

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

在此輸入影像描述

相關內容