
Me gustaría dibujar hrule
y 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.
¿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}
Respuesta1
Es simple: TeX no agrega espacio vertical entre \hrule
el 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 \prevdepth
en -1000pt
.
Bajo el supuesto de que la siguiente línea no es más alta de lo habitual, agregar \prevdepth=0pt
después \hrule
serí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}