'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=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}

여기에 이미지 설명을 입력하세요

관련 정보