如何確定“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=0ptafter\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}

在此輸入影像描述

相關內容