Wie bestimmt man den Abstand zwischen einer „Hrule“ und der nächsten Grundlinie?

Wie bestimmt man den Abstand zwischen einer „Hrule“ und der nächsten Grundlinie?

Ich möchte eine Linie zeichnen hruleund den vertikalen Raum zwischen der Linie und der Grundlinie des Textes unter der Linie genau kontrollieren können.

Auf dem folgenden Bild ist zu erkennen, dass der Abstand zwischen Lineal und Grundlinie in den drei Fällen nicht gleich ist.

Bildbeschreibung hier eingeben

Wie kann ich das erreichen?

Hier ist ein MWE, das das Problem veranschaulicht.

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

Bildbeschreibung hier eingeben

Antwort1

Es ist ganz einfach: TeX fügt keinen vertikalen Abstand zwischen \hruleund dem nächsten Feld ein (das wie in Ihrem Beispiel die erste Zeile eines Absatzes sein könnte).

Genauer gesagt \hrulesetzt TeX nach (was ein vertikaler Befehl ist) \prevdepthauf -1000pt.

Unter der Annahme, dass die nächste Zeile nicht höher als üblich ist, würde das Hinzufügen \prevdepth=0ptdanach \hrulegenügen.

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

Bildbeschreibung hier eingeben

verwandte Informationen