
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}