Ist es grundsätzlich eine gute Idee, etwas Kleber in \vspace einzufügen?

Ist es grundsätzlich eine gute Idee, etwas Kleber in \vspace einzufügen?

Ich habe viele Beiträge wie diesen gesehen\parskip dehnt sich mehr als erwartetdie etwas Kleber im Inneren verwenden \vspace. Ich frage mich, ob es eine gute Idee ist, einen neuen Befehl mit etwas Kleber zu definieren \vspace, der in allen Fällen den normalen ersetzt. So etwas wie

\newcommand{\vspacewithglue}[3]{\vspace{#1\baselineskip plus #2\baselineskip minus #3\baselineskip }}

Ich habe versucht, mich von der Nützlichkeit eines solchen Befehls für einfache Fälle zu überzeugen, aber ohne Erfolg. Ich habe zum Beispiel

some test line ffppp \vspacewithglue{2}{0}{0}\\
some test line ffppp \vspacewithglue{2}{-1}{1}\\
some test line ffppp \vspacewithglue{2}{1}{1}\\

ohne Unterschied. Ich bin also etwas verwirrt. Vielleicht gibt es einige „spezielle“ Fälle (wie den obigen Beitrag), in denen man tatsächlich einen solchen Befehl braucht, aber im Allgemeinen besteht keine Notwendigkeit. Vielleicht ist es besser, den bekannten Befehl zu verwenden \\[...ex]und TeX etwas Klebstoff auftragen zu lassen, wenn es wirklich nötig ist.

Ich weiß, dass diese Frage etwas vage ist oder vielleicht schon beantwortet wurde. Sie können sie gerne bearbeiten/in den Kommentaren etwas vorschlagen.

Antwort1

Es ist fast nie eine gute Idee, dehnbaren Kleber zwischen den Zeilen eines Absatzes zu haben, wie Sie es in der Frage getan haben. Ein Absatz sollte als konsistenter Block festgelegt werden. Je nach Dokumentdesign möchten Sie vielleicht, dass der Kleber zwischen Anzeigeeinheiten wie Absätzen, Listen usw. dehnbar ist, oder auch nicht. Insbesondere im Zweispaltenmodus kann dehnbarer Kleber zwischen Absätzen störend sein, da der Absatzabstand in den beiden Spalten unterschiedlich ist und die Grundlinien des Textes überhaupt nicht ausgerichtet sind.

Auch wenn Sie es wie in der Frage \vspaceinnerhalb eines Absatzes verwenden, ist die Wirkung zwar klar definiert, aber etwas merkwürdig: Das Leerzeichen wird nicht an der Stelle des \vspaceBefehls hinzugefügt, sondern später, nachdem der Absatz in Zeilen aufgeteilt wurde, nach der Zeile, in der es vspacehinzugefügt wurde.

some test line ffppp \vspace{10pt}\\

ist das gleiche wie

some test  \vspace{10pt}line ffppp\\

Wenn, wie es bei Artikeldokumentklassen üblich ist, \raggedbottomin Kraft ist fil, wird am Ende der Seite Klebstoff hinzugefügt. Da diese unendlich dehnbar ist, würde jeder hinzugefügte Klebstoff mit begrenzter Dehnung keine Dehnung bewirken und nur die natürliche Längenkomponente würde verwendet.

In einigen Dokumentklassen (einschließlich der Standardklassen) kann ein kleiner Abstand zwischen den Absätzen als Hilfe beim Seitenumbruch hilfreich sein (Latex legt den Standard \parskipauf fest 0pt plus 1pt), aber normalerweise sollte dies eine dokumentweite Einstellung sein und nicht in jedem Fall manuell angepasst werden.

Beachten Sie, dass Sie, wenn Sie in besonderen Fällen eine Zeilenumbruch-Streckung benötigen, keinen neuen Befehl benötigen. Sie können stattdessen\\[5pt plus 5pt]

Antwort2

Ihr Befehl funktioniert wie erwartet, aber wie David bereits geschrieben hat, ist es eine ziemlich schlechte Idee, solch dehnbaren Raum innerhalb eines Absatzes zu verwenden.

\documentclass[12pt]{book}
\usepackage{lipsum}

\newcommand{\vspacewithglue}[3]{\vspace{#1\baselineskip plus #2\baselineskip minus #3\baselineskip }}
\textheight=10cm
\begin{document}
xxxxx

some test line ffppp \\
some test line ffppp \vspacewithglue{0}{1}{1}\\
some test line ffppp \\


xxxxx
\pagebreak %to force the page to stretch

xxxx
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen