
Gostaria de desenhar hrule
e ter um controle preciso do espaço vertical entre a linha e a linha de base do texto abaixo da linha.
Na imagem a seguir, pode-se observar que o espaço entre a regra e a linha de base não é o mesmo nas três instâncias.
Como posso conseguir isso?
Aqui está um MWE que demonstra o 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}
Responder1
É simples: o TeX não adiciona espaço vertical entre \hrule
a próxima caixa (que pode ser a primeira linha de um parágrafo, como no seu exemplo).
Mais precisamente, depois \hrule
(que é um comando vertical), o TeX é definido \prevdepth
como -1000pt
.
Supondo que a próxima linha não seja mais alta do que o normal, adicionar \prevdepth=0pt
depois \hrule
seria 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}