Wie kann ich Bilder und Texte auch vertikal und horizontal ausrichten **und dabei Seitenumbrüche zulassen**?

Wie kann ich Bilder und Texte auch vertikal und horizontal ausrichten **und dabei Seitenumbrüche zulassen**?

Bei dieser Frage geht es nicht darum, Code-Schnipsel zu liefern.
Es geht darum, allgemeine Vorgehensweisen in Worten zu beschreiben.

In einfachem TeX möchte ich ein Bild/ein rechteckiges Feld links neben einem Textabschnitt platzieren, der im horizontalen Modus verarbeitet wird.

Die obere Begrenzungslinie des rechteckigen Felds, das das Bild enthält, sollte vertikal mit der Begrenzungslinie ausgerichtet sein, die die Höhe der ersten Textzeile angibt. (Diese Höhe ist nicht die Höhe eines Buchstabens, \strutboxsondern hängt vom Inhalt dieser ersten Zeile ab. Es könnte die Großbuchstabenhöhe sein, die x-Höhe oder die Summe aus x-Höhe und Oberlänge eines Buchstabens oder was auch immer.)

Horizontal sollte zwischen der rechten Begrenzungslinie des Felds mit dem Bild und dem linken Rand der Textzeilen ein Abstand von etwa 1/3 Zoll bestehen.

Auf jeden Fall dürfen Bild und Text nicht über die Ränder des Dokuments hinausragen.

Daher sollte die Breite des Textes der Breite einer normalen Textzeile abzüglich der Breite der horizontalen Lücke (1/3 Zoll) und abzüglich der Breite des Bildes entsprechen.

Falls der Text vertikal mehr Platz einnimmt als das Bild, kann es bei Textzeilen zu Seitenumbrüchen kommen, die ohne Seitenumbruch vertikal unterhalb der unteren Begrenzungslinie des rechteckigen Felds mit dem Bild enden würden.

Falls der Text vertikal weniger Platz einnimmt als das Bild, sollte unter dem Text ein vertikaler Abstand vorhanden sein, dessen Länge der Höhe des Bildes + der Tiefe des Bildes – der Höhe des Textes – der Tiefe des Textes entspricht.

Mittlerweile halte ich folgenden Ansatz für sinnvoll:

Setzen Sie Bild und horizontale Lücke in eine horizontale Box. Nennen wir das imagebox.

Messen Sie die Breite des Bildfelds.

Setzen Sie den Text in ein \vtopFeld \topskipmit 0pt Breite, dessen Breite \hsizeder Differenz zwischen der Breite des Bildfelds und der Breite einer normalen Textzeile entspricht.
Nennen wir dieses Feld das „Zwischentextfeld“.

Weisen Sie der Bildbox eine neue Tiefe zu: Höhe der Bildbox + Tiefe der Bildbox - Höhe der Zwischentextbox.
Weisen Sie der Bildbox eine neue Höhe zu: Die Höhe der „Zwischentextbox“.

  • Fall 1: Falls die Textbox vertikal größer ist als die Bildbox:

    Erstellen Sie eine „Umgebung \vbox“, deren \hsizeBreite der Differenz zwischen der Breite der Bildbox und der Breite einer normalen Textzeile entspricht und deren \leftskipBreite der Breite der Bildbox entspricht und deren erste Zeile mit einem beginnt \llap(unter \parindentBerücksichtigung) und einem „inneren \vbox“ ohne enthält \topskip, das die Bildbox und einen negativen (nach oben gerichteten) vertikalen Sprung enthält, dessen Länge der Tiefe der Bildbox entspricht. Darauf \llapfolgt der Text. \unvboxDie Umgebung \vbox.

  • Fall 2: Falls die Textbox vertikal kleiner ist als die Bildbox:

    Erstellen Sie eine „Umgebung \vbox“, deren \hsizeBreite der Bildbox entspricht und die als erste/einzige Zeile die Bildbox enthält und deren erste Zeile \rlapein „inneres \vbox“ mit der „Zwischentextbox“ enthält, gefolgt von einem negativen (nach oben gerichteten) vertikalen Sprung, dessen Länge der Tiefe der Zwischentextbox entspricht.

Fragen:

Anzeigefall 1: Wie kann sichergestellt werden, dass die Bildbox unten nicht in den Rand hineinragt? Reicht es aus, wenn \llapinnerhalb der „Umgebung \vbox“ ein vertikaler positiver (nach unten gerichteter) Sprung folgt, dessen Länge der Tiefe der Bildbox entspricht, gefolgt von einer deutlichen Verringerung der Strafe, gefolgt von einem negativen (nach oben gerichteten) vertikalen Sprung, dessen Länge ebenfalls der Tiefe der Bildbox entspricht?

Zu Fall 2: Sowohl die „Umrandung \vbox“ als auch die „Innenseite \vbox“ sind nicht \unvboxvorhanden. Wie stellen Sie sicher, dass der vertikale Kleber oben auf diesen vertikalen Kästen mit dem vertikalen Kleber oben auf der „Umrandung \vbox“ kombiniert wird, als ob die „Umrandung \vbox“ und die „Innenseite \vbox“ nicht vorhanden wären?

verwandte Informationen