如何确定“hrule”和下一个基线之间的空间?

如何确定“hrule”和下一个基线之间的空间?

我想绘制一条线hrule并精确控制线与线下文本基线之间的垂直空间。

在下图中,我们可以看到,在三个实例中,规则和基线之间的空间并不相同。

在此处输入图片描述

我怎样才能实现这个目标?

下面是演示该问题的 MWE。

\documentclass{article}

% see: https://tex.stackexchange.com/a/432196/8323
\newsavebox\textbox
\newcommand\showbaseline[1]{%
  \leavevmode
  \sbox\textbox{#1}%
  \rlap{\rule{\wd\textbox}{.1pt}}%
  \usebox\textbox
}

\begin{document}


\hrule
\showbaseline{A new line}

\vspace{1cm}

\hrule
\showbaseline{a new way}

\end{document}

在此处输入图片描述

答案1

很简单:TeX 不会\hrule在下一个框(可能是段落的第一行,就像您的示例中的那样)之间添加垂直空格。

更准确地说,在\hrule(这是一个垂直命令)之后,TeX 设置\prevdepth-1000pt

假设下一行不高于平常,则\prevdepth=0pt在后面添加\hrule即可。

\documentclass{article}

\newcommand{\test}[1]{%
  \makebox[0pt][l]{%
    \vtop{\hsize=5cm\parindent=0pt
      \hrule\prevdepth=0pt
      \makebox[0pt][l]{\vrule width 5cm height 0pt depth 0.1pt}#1
    }%
  }%
}

\begin{document}

\test{Généralités}

\medskip

\test{Électricité}

\medskip

\test{Optique}

\bigskip

%%% superimposed
\test{Généralités}%
\test{Électricité}%
\test{Optique}

\end{document}

在此处输入图片描述

相关内容