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 \vspace
innerhalb eines Absatzes verwenden, ist die Wirkung zwar klar definiert, aber etwas merkwürdig: Das Leerzeichen wird nicht an der Stelle des \vspace
Befehls hinzugefügt, sondern später, nachdem der Absatz in Zeilen aufgeteilt wurde, nach der Zeile, in der es vspace
hinzugefü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, \raggedbottom
in 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 \parskip
auf 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}