Vertikale Ausrichtung von Textphrasen unterschiedlicher Schriftgröße

Vertikale Ausrichtung von Textphrasen unterschiedlicher Schriftgröße

(Bei 2. und 3. sollen "Zeile 001", "Zeile 002" usw. links nur verdeutlichen, dass die Grundlinien der Zeilen rechts vertikale Abstände haben, die ein Vielfaches \baselineskipder Normalschrift in Normalgröße betragen.)

  1. Was ist die beste/am wenigsten umständliche Methode, um sicherzustellen, dass in zwei verschiedenen Schriftgrößen gesetzte Ausdrücke so ausgerichtet sind, dass die Linien, die die Oberlängen der Buchstaben der größeren Schriftart begrenzen, auf der Höhe der Linien liegen, die die Oberlängen der kleineren Schriftart begrenzen, wie in der folgenden Abbildung?

    Bildbeschreibung hier eingeben

  2. Was ist die beste/am wenigsten umständliche Methode, um sicherzustellen, dass die vertikale Verbindung zwischen den Grundlinien zweier Textzeilen, z. B. bei einem Absatzumbruch, immer ein ganzzahliges Vielfaches von ist \baselineskip– selbst wenn die Ausdrücke unterschiedliche Schriftgrößen haben?

    Bildbeschreibung hier eingeben

  3. Was ist die beste/am wenigsten umständliche Methode, um sicherzustellen, dass die vertikale Verbindung zwischen den Grundlinien zweier Textzeilen, z. B. bei einem Absatzumbruch, immer ein ganzzahliges Vielfaches von ist \baselineskip– selbst wenn Ausdrücke unterschiedliche Schriftgrößen haben und Ausdrücke, die in zwei unterschiedlichen Schriftgrößen gesetzt sind, so ausgerichtet sind, dass die Linien, die die Oberlängen der Buchstaben der größeren Schriftart begrenzen, auf der Höhe der Linien liegen, die die Oberlängen der kleineren Schriftart begrenzen?

    Bildbeschreibung hier eingeben

Ich habe nur umständliche Wege gefunden, um solche Dinge zu erreichen, bei denen „manuelles Optimieren“ und seltsame primitive Anweisungen direkt in die Datei geschrieben werden müssen, die den Text des Dokuments enthält. Ich habe noch keine Wege gefunden, Methoden zum Erreichen solcher Dinge wie Makros zu implementieren, die als privates separates Paket bereitgestellt werden könnten, wo die Verwendung dieser Methoden/Makros nicht ebenfalls umständlich wäre. Ich würde gerne lernen, LaTeX-Code zu schreiben, damit LaTeX solche Dinge automatisch erledigt, während die Datei verarbeitet wird, die den Text des Dokuments enthält – ohne dass ich die eigentlichen Texte meiner Dokumente mit Tonnen seltsamer Anweisungen zum Umschalten des Satzmodus vom horizontalen Modus in den eingeschränkten horizontalen Modus oder vertikalen Modus oder zum Erstellen und Messen von Kästen oder zum Rückgängigmachen einiger \lineskipmit \vboxes/ \vtops einer Höhe/Tiefe, die überschreitet, \baselineskipsodass der vertikale Abstand zu nachfolgenden Zeilen darunter liegt \lineskiplimit, … durchsetzen muss.

Da es bei TeX⁠ ⁠-⁠ ⁠LaTeX Stack Exchange ein Reflex ist, vollständige, minimale, reproduzierbare Beispiele zu verlangen, selbst in Situationen, in denen es nicht darum geht, Code zu korrigieren, sondern nach Best Practice zu fragen, während der Code dessen, der nach Best Practice fragen muss, wahrscheinlich nicht Best Practice aufweist, zeige ich, was ich bisher getan habe. Ich hoffe, dass dies auch diejenigen zufriedenstellt, die in ihrem Misstrauen von den Fragestellern eine Geste der Selbsterniedrigung verlangen, in der sie nicht nur sagen, dass sie bereits eine beträchtliche Zeitspanne darauf verwendet haben, sich ohne wirklichen Erfolg mit der Angelegenheit herumzuschlagen, sondern auch Codeschnipsel liefern, die schlechten und schlecht geschriebenen Code bilden, der für niemanden von wirklichem Nutzen ist und nur dazu dienen könnte, die Unterstellung zu widerlegen, sie hätten gelogen, als sie sagten, sie hätten bereits eine beträchtliche Zeitspanne darauf verwendet, sich abzumühen.

1. habe ich umständlich folgendermaßen gemacht:

\documentclass{book}
\newsavebox\mynormalbox
\newsavebox\myhugebox

\begin{document}

\savebox\mynormalbox{\hbox{\normalsize Text}}%
\savebox\myhugebox{\hbox{\huge Text}}%
Text Text \lower\dimexpr\ht\myhugebox-\ht\mynormalbox\relax\hbox{\huge Text Text} Text Text

\end{document}

2. habe ich umständlich folgendermaßen gemacht:

\documentclass{book}

\begin{document}
\noindent %\leavevmode
\vbox to 12\baselineskip{%
  \hbox{line 001}%
  \hbox{line 002}%
  \hbox{line 003}%
  \hbox{line 004}%
  \hbox{line 005}%
  \hbox{line 006}%
  \hbox{line 007}%
  \hbox{line 008}%
  \hbox{line 009}%
  \hbox{line 010}%
  \hbox{line 011}%
  \hbox{line 012}%
} 
\vrule{}
\vbox to 12\baselineskip{%
  \hbox{line 1 line 1 line 1 line 1 line 1 line 1}%
  \vskip-\lineskip
  \vbox to 3\baselineskip{\vfill\hbox{Line 2 Line 2 {\huge Line 2} Line 2 Line 2}}%
  \hbox{line 3 line 3 line 3 line 3 line 3 line 3}%
  \vskip-\lineskip
  \vbox to 3\baselineskip{\vfill\hbox{Line 4 Line 4 {\huge Line 4} Line 4 Line 4}}%
  \hbox{line 5 line 5 line 5 line 5 line 5 line 5}%
  \vskip-\lineskip
  \vbox to 3\baselineskip{\vfill\hbox{Line 6 Line 6 {\huge Line 6} Line 6 Line 6}}%
}%
\end{document}

3. habe ich umständlich folgendermaßen erledigt:

\documentclass{book}
\newsavebox\mynormalbox
\newsavebox\myhugebox

\begin{document}
\noindent %\leavevmode
\vbox to 16\baselineskip{%
  \vfill
  \hbox{\strut line 001}%
  \hbox{line 002}%
  \hbox{line 003}%
  \hbox{line 004}%
  \hbox{line 005}%
  \hbox{line 006}%
  \hbox{line 007}%
  \hbox{line 008}%
  \hbox{line 009}%
  \hbox{line 010}%
  \hbox{line 011}%
  \hbox{line 012}%
  \hbox{line 013}%
  \hbox{line 014}%
  \hbox{line 015}%
  \hbox{line 016\strut}%
  \vfill
} 
\vrule{}
\vbox to 16\baselineskip{%
  \vfill
  \savebox\mynormalbox{\hbox{\normalsize line1234567890}}%
  \savebox\myhugebox{\hbox{\huge  line1234567890}}%
  \hbox{\strut line 1 line 1 line 1 line 1 line 1 line 1}%
  \vtop to 3\baselineskip{%
    \hbox{\vphantom{line2}}%
    \hbox{line 2 line 2 \lower\dimexpr\ht\myhugebox-\ht\mynormalbox\relax\hbox{\huge line 2} line 2 line 2}%
    \vfill
  }%
  \vskip-\lineskip
  \hbox{line 3 line 3 line 3 line 3 line 3 line 3}%
  \vtop to 3\baselineskip{%
    \hbox{line 4 line 4 \lower\dimexpr\ht\myhugebox-\ht\mynormalbox\relax\hbox{\huge line 4} line 4 line 4}%
    \vfill
  }%
  \vskip-\lineskip
  \hbox{line 5 line 5 line 5 line 5 line 5 line 5}%
  \vbox to 3\baselineskip{%
    \vfill
    \hbox{\lower-\lineskip\hbox{line 6 line 6 {\huge line 6} line 6 line 6}}%
  }%
  \vskip-\lineskip
  \hbox{line 7 line 7 line 7 line 7 line 7 line 7}%
  \vbox to 2\baselineskip{%
    \vfill
    \hbox{\lower-\lineskip\hbox{line 8 line 8 {\huge line 8} line 8 line 8}}%
  }%
  \vskip-\lineskip
  \hbox{line 9 line 9 line 9 line 9 line 9 line 9\strut}%
  \vfill
}%
\end{document}

(Bei 2. und 3. sollen "Zeile 001", "Zeile 002" usw. links nur verdeutlichen, dass die Grundlinien der Zeilen rechts vertikale Abstände haben, die ein Vielfaches \baselineskipder Normalschrift in Normalgröße betragen.)

verwandte Informationen