¿Cómo determinar el espacio entre una "hrule" y la siguiente línea de base?

¿Cómo determinar el espacio entre una "hrule" y la siguiente línea de base?

Me gustaría dibujar hruley tener un control preciso sobre el espacio vertical entre la línea y la línea base del texto debajo de la línea.

En la siguiente imagen se puede ver que el espacio entre la regla y la línea base no es el mismo en los tres casos.

ingrese la descripción de la imagen aquí

¿Cómo puedo lograr eso?

Aquí hay un MWE que demuestra el problema.

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

ingrese la descripción de la imagen aquí

Respuesta1

Es simple: TeX no agrega espacio vertical entre \hruleel cuadro siguiente (que podría ser la primera línea de un párrafo, como en su ejemplo).

Más precisamente, después \hrule(que es un comando vertical), TeX se establece \prevdepthen -1000pt.

Bajo el supuesto de que la siguiente línea no es más alta de lo habitual, agregar \prevdepth=0ptdespués \hrulesería suficiente.

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

ingrese la descripción de la imagen aquí

información relacionada