Sowohl \vspace und \addvspace ermöglichen es, vertikalen Abstand einzufügen. Was ist denn genau der Unterschied der beiden Befehle? Wann sollte man \vspace und wann \addvspace für einen vertikalen Abstand benutzen?

gefragt 06 Aug '14, 15:27

feynman's gravatar image

feynman
1.0k132937
Akzeptiert-Rate: 23%

geschlossen 11 Aug '14, 09:33

1

@feynman Ich würde eine Frage nicht schließen, nur weil sie beantwortet wurde. Schließgründe sind eher: die Frage ist ein Duplikat. Oder: die Frage dreht sich nicht um (La)TeX und verwandte Themen und ist daher Off-Topic.

(11 Aug '14, 10:50) cgnieder

@feynman Danke fürs Abhaken und die Absicht, die Frage aufmerksam zu schließen! Clemens Hinweis ist gut und Dir evtl. ungewohnt: da wir neben der Support-Aufgabe, wo Schließen nach Lösung für den Fragenden gut wäre, auch die Archiv-Funktion verfolgen, lassen wir gute Fragen offen für Antworten, es könnten ja noch Alternativen auftauchen. Dass die Frage erfolgreich beantwortet wurde, sieht man ja schon am grünen Haken. Schließen ist gedacht, um wirklich Antworten zu verhindern, falls tatsächlich (La)TeX-fremd gepostet wird oder bei Duplikaten, wo man Antworten besser an einer Stelle sammelt.

(11 Aug '14, 11:55) stefan ♦♦

\vspace fügt im horizontalen Modus nach der aktuellen Zeile bzw. im vertikalen Modus an der aktuellen Position den angegebenen vertikalen Abstand ein, außer man befindet sich am Anfang einer sog. vertikalen Liste also insbesondere am Anfang einer Seite. Diese Ausnahme entfällt bei \vspace*, dafür gibt es aber ein paar andere Besonderheiten, wenn im vertikalen Modus ein vertikaler Abstand von weniger als einer Zeile eingefügt werden soll. Ggf. muss man dann nach dem eigentlichen vertikalen Abstand noch einen von -\baselineskip oder -\parskip einfügen, bis man dort ist, wo man hin möchte.

\addvspace fügt überhaupt nur im vertikalen Modus (also zwischen Absätzen) einen vertikalen Abstand ein und auch nicht am Anfang einer minipage. Wurde bereits zuvor ein vertikaler Abstand eingefügt, dessen Betrag kleiner als der angegebene Abstand ist, so wird dieser frühere Abstand zuvor zurück genommen. Die Bedeutung ist also sozusagen: Erweitere denn vertikalen Abstand auf …. LaTeX selbst verwendet dies beispielsweise, um bei unmittelbar aufeinandertreffenden Überschriften die Abstände nicht zu addieren, sondern nur den größeren der beteiligten Abstände zu setzen.

Interessant ist dabei, dass nach einem mit \vspace eingefügten Abstand der aktuelle vertikale Abstand, den \addvspace zu sehen bekommt, immer 0pt ist. Das liegt daran, dass \vspace nach dem tatsächlich eingefügten Abstand noch zusätzlich einen Nullabstand einfügt. Man kann also mit \addvspace keinen mit \vspace eingefügten Abstand erweitern, sondern nur einen mit \vskip oder \addvspace selbst eingefügten vertikalen Abstand.

\addvspace ist also ideal, wenn beim Zusammentreffen unterschiedlicher Befehle und Umgebungen die vertikalen Abstände, die diese am Anfang oder Ende einfügen, nicht aufaddiert werden sollen, sondern nur ein bestimmtes Mindestmaß nicht unterschreiten sollen. \vspace ist hingegen vorzuziehen, wenn ein Befehl mehrere Elemente mit einem bestimmten Abstand zueinander anordnen soll. Will man (entgegen der Regeln für semantisches Markup) als Anwender innerhalb eines Dokuments direkt einen vertikalen Abstand einfügen, so ist \vspace die richtige Wahl.

Permanenter link

beantwortet 06 Aug '14, 15:42

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 06 Aug '14, 16:42

Vielleicht eine Gelegenheit, gleich noch die Sternvariante \vspace* zu erklären?

(06 Aug '14, 15:52) cgnieder

Bei \vspace* gibt es eine ganze Ladung Besonderheiten, wenn der Wert < \ht\strutbox (oder war es \baselineskip oder gar \parskip, falls \parskip größer ist?) ist, wobei negative Werte AFAIR dabei sozusagen eine Besonderheit in der Besonderheit darstellen. Da muss ich entweder erst die Theorie nachschlagen oder ein paar praktische Tests durchführen, um das alles korrekt wider zu geben.

(06 Aug '14, 16:06) gast3
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×117
×55

gestellte Frage: 06 Aug '14, 15:27

Frage wurde gesehen: 12,247 Mal

zuletzt geändert: 11 Aug '14, 11:55