„Doppelzeilig einreichen.“ Wenn eine Zeitschrift das verlangt, zitiert sie eine Schreibmaschine. Eine Maschine mit 12-Punkt-Type transportierte das Papier pro Zeile um 12 Punkt; auf Stufe 2 waren es 24 — genug Raum, damit die Redaktion zwischen die Zeilen schreiben konnte. Das Paket setspace, mit dem in LaTeX der Zeilenabstand vergrößert wird, bildet genau diese Maße bis heute nach. \doublespacing verdoppelt also nichts: Es setzt den Zeilenabstand auf exakt das Doppelte der Schriftgröße. Diese Seite verfolgt die ganze Kette — die Länge \baselineskip, den Grund, warum \linespread scheinbar wirkungslos bleibt, und die tatsächlich gemessenen Punktwerte von setspace.
Zeilenabstand ist eine Länge namens \baselineskip
Was LaTeX Zeilenabstand nennt, ist der Abstand von der Grundlinie einer Zeile — der unsichtbaren Linie, auf der die Buchstaben stehen — zur Grundlinie der nächsten, und er steckt in der Länge \baselineskip. Entscheidend ist, dass damit der Zeilenvorschub gemessen wird und nicht der Abstand zwischen Buchstaben; deshalb wächst der Abstand automatisch mit der Schriftgröße. Gemessen in einem article mit 10pt beträgt \baselineskip genau 12.0pt und die Satzbreite \textwidth 345.0pt. Die geläufige Faustregel, der Zeilenabstand betrage das 1,2-Fache der Schriftgröße, stimmt exakt bei 10pt — und nur dort.
| Klassenoption | tatsächliche Schriftgröße | baselineskip | Verhältnis |
|---|---|---|---|
10pt | 10pt | 12.0pt | 1,200 |
11pt | 10.95pt (nicht 11pt) | 13.6pt | 1,242 |
12pt | 12pt | 14.5pt | 1,208 |
In der zweiten Zeile steckt eine Tatsache, die man kennen sollte: Die Option 11pt wählt gar keine 11-Punkt-Schrift, sondern 10,95pt. Fragt man LaTeX nach \f@size, antwortet es 10.95. So wurde Computer Modern entworfen; nur der Zeilenabstand wurde auf glatte 13.6pt gerundet. Die merkwürdig genauen Faktoren, die setspace weiter unten verwendet, gleichen unter anderem diese Differenz von 0,05pt aus.
Warum \linespread im Text nichts tut, in der Präambel aber schon
\linespread{1.5} bewirkt an der Stelle, an der es steht, gar nichts. \baselineskip rührt sich um keinen Punkt, bis die Schrift das nächste Mal ausgewählt wird. Gemessen: standardmäßig 12.0pt, unmittelbar nach \linespread{1.5} weiterhin 12.0pt, und 18.0pt in dem Moment, in dem \selectfont läuft. Der Mechanismus erklärt es sofort — \linespread{x} ist buchstäblich \renewcommand{\baselinestretch}{x} und schreibt nur einen Vermerk um, welcher Faktor gelten soll. Diesen Vermerk in eine echte Länge zu übersetzen ist Aufgabe von \selectfont: Es vergleicht den gerade wirksamen Faktor mit \baselinestretch und rechnet den Zeilenabstand nur bei Abweichung neu.
Damit erklärt sich auch das Muster der Symptome. Ein \linespread in der Präambel wirkt, weil \begin{document} \normalsize ausführt und die Schrift dort neu auswählt. Im Dokumenttext braucht es ein eigenes \selectfont — und ein Größenwechsel wie \Large oder sogar ein Serienwechsel wie \bfseries leistet dasselbe, weil beide intern durch \selectfont laufen. Gemessen: \linespread{2}, gefolgt von nichts als \large, ergab 28.0pt. Wer den Abstand nur für einen Bereich ändert, sollte das abschließende \par innerhalb der Gruppe setzen. Fällt es nach außen, wird jener Absatz noch mit dem alten Zeilenabstand gesetzt — diese Falle behandelt die Seite zu den Schriftgrößenbefehlen ausführlich.
% In the preamble: applies to the whole document.
\linespread{1.3} % measured: baselineskip 12.0pt -> 15.6pt
% In the body: nothing happens until the font is re-selected.
\linespread{1.6} % baselineskip is STILL 12.0pt here
\selectfont % now it becomes 19.2pt
% One paragraph only. Note the \par INSIDE the braces.
{\linespread{1.6}\selectfont
This paragraph is set with wider leading.\par}setspace verwenden: drei Deklarationen und die spacing-Umgebung
\usepackage{setspace} laden und eine Zeile in die Präambel schreiben — \onehalfspacing oder \doublespacing. In der Praxis ist das die ganze Arbeit. Drei Gründe sprechen für das Paket. Erstens greift ein beliebiger Faktor wie \setstretch{1.6} sofort, weil intern der aktuelle Größenbefehl erneut ausgeführt wird; ein vergessenes \selectfont kann es also gar nicht geben. Zweitens sind die Faktoren hinter \onehalfspacing und \doublespacing pro Grundschriftgröße abgestimmt. Drittens weigert es sich, Fußnoten und Bildunterschriften mitzudehnen — übernächster Abschnitt, mit Messwerten.
| Befehl oder Umgebung | Wirkung |
|---|---|
\singlespacing | Deklaration zurück zum normalen Zeilenabstand; wirkt ab dieser Stelle |
\onehalfspacing | Deklaration: Zeilenabstand auf das 1,5-Fache der Schriftgröße |
\doublespacing | Deklaration: Zeilenabstand auf das Doppelte der Schriftgröße — das „double-spaced“ der Autorenrichtlinien |
\setstretch | \setstretch{1.6} für einen beliebigen Faktor; multipliziert \baselineskip |
spacing | Umgebung: \begin{spacing}{2.5} … \end{spacing} ändert den Faktor nur dort und stellt ihn danach wieder her |
singlespace | Umgebung: bringt einen Bereich innerhalb doppelt gesetzten Textes zum normalen Zeilenabstand zurück |
onehalfspace | Umgebung: die lokale Form von \onehalfspacing (ebenso doublespace). Nur zum Vergrößern gedacht |
\SetSinglespace | Definiert neu, was als „einfach“ gilt (Standard 1); Feinabstimmung für Schriften, die für ihre Nenngröße groß laufen |
\documentclass[12pt]{article}
\usepackage{setspace}
\doublespacing % whole document: leading 24.0pt at 12pt
% \onehalfspacing % or 18.0pt
% \setstretch{1.6} % or any factor you like
\begin{document}
The body is set double spaced.
\begin{spacing}{1} % one region back to the normal leading
A long quotation, set tight.
\end{spacing}
Back to double spacing here.
\end{document}Wie viele Punkte sind „doppelzeilig“? \doublespacing gemessen
Die Antwort lautet: exakt das Doppelte der Schriftgröße — 20pt bei 10pt, 22pt bei 11pt, 24pt bei 12pt. \doublespacing verdoppelt nicht \baselineskip, sondern rechnet von diesem Zielwert aus den Faktor zurück. Deshalb unterscheidet sich der Faktor je Klassenoption und landet auf so unrunden Zahlen wie 1.667, 1.618 und 1.655. Nebeneinandergestellt verraten die Messwerte die Absicht.
| Klassenoption | normaler Abstand | onehalfspacing | doublespacing |
|---|---|---|---|
10pt | 12.0pt | 1.25 → 15.00pt | 1.667 → 20.00pt |
11pt | 13.6pt | 1.213 → 16.50pt | 1.618 → 22.00pt |
12pt | 14.5pt | 1.241 → 17.99pt | 1.655 → 24.00pt |
Das ist keine Vermutung. Im Quelltext von setspace.sty steht direkt über den beiden Definitionen jeweils „one and a half spacing is 1.5 x pt size“ und „double spacing is 2 x pt size“, und die Messwerte treffen genau das. Daraus folgt eine praktische Konsequenz: \setstretch{2} ist nicht \doublespacing. \setstretch{2} verdoppelt \baselineskip und ergibt in einem 10pt-Dokument 24.0pt — ein Fünftel mehr als die 20.0pt von \doublespacing. Wenn eine Vorgabe nur „double-spaced“ verlangt, nimm \doublespacing und sonst nichts.
Ein Absatz zur Herkunft von setspace selbst. Laut den Angaben am Dateikopf stammt es ursprünglich von Erica M. S. Harris; GDG überarbeitete es zwischen 1992 und 1994; Geoffrey Tobin machte am 6. Februar 1996 ein LaTeX2e-Paket daraus; Robin Fairbairns pflegte es danach jahrelang, und die Copyright-Zeile nennt inzwischen das LaTeX Team (in TeX Live 2024 liegt v6.7b vom Dezember 2022 bei). Auf einem Paket, dessen Aufgabe darin besteht, eine einzige Zahl zu ändern, haben sich dreißig Jahre Namen angesammelt.
Fußnoten und Bildunterschriften bleiben eng: was setspace schützt
Auch bei doppelt gesetztem Fließtext behalten Fußnoten und die Inhalte von Gleitobjekten den normalen Zeilenabstand. Gemessen in einem article mit 12pt unter \doublespacing: Fließtext 23.99pt, in einer Fußnote 12.0pt, in einer figure oder table 14.5pt. setspace erreicht das, indem es \@footnotetext, \@mpfootnotetext und \@xfloat so anpasst, dass der Faktor dort auf einfach zurückgesetzt wird. Ein rohes \linespread kennt diese Rücksicht nicht und dehnt Fußnoten und Beschriftungen mit — bei einem eingereichten Manuskript bereits ein Formfehler.
Die Umgebung quote wird dagegen nicht automatisch enger gesetzt. Gemessen innerhalb von quote in einem doppelt gesetzten 12pt-Dokument: weiterhin 23.99pt, genau wie der Fließtext. Das war so gedacht — der Quelltext vermerkt, ein einfach gesetztes Zitat entstehe, indem man singlespace in quote einschließt. Also selbst verschachteln, wie unten. Nebenbei skaliert setspace auch den Abstand um abgesetzte Formeln; \setdisplayskipstretch justiert ihn, die Paketoption nodisplayskipstretch schaltet ihn ab.
% quote is NOT single-spaced by setspace; nest it yourself.
\begin{quote}
\begin{singlespace}
A long quotation, set tight inside a double-spaced document.
\end{singlespace}
\end{quote}\parskip und \baselineskip: Absatzabstand ist kein Zeilenabstand
\parskip ist der zusätzliche vertikale Abstand zwischen Absätzen und wird getrennt vom Zeilenvorschub verrechnet. Der Standardwert der Standardklassen lautet 0.0pt plus 1.0pt — zwischen Absätzen praktisch nichts, mit höchstens einem Punkt Spielraum zum Ausgleichen der Seite. Denn die Standardklassen kennzeichnen einen Absatzwechsel durch Einzug, nicht durch Abstand. Wichtig ist: setspace rührt \parskip nie an. Gemessen nach \doublespacing stand \parskip weiterhin auf 0.0pt plus 1.0pt. Wirken die Absatzgrenzen im doppelt gesetzten Text also undeutlich, ist das eine Frage von \parskip, nicht des Zeilenabstands.
Zum Schluss eine Sache, die man lassen sollte: \baselineskip niemals selbst mit \setlength überschreiben. Diese Länge wird bei jeder Schriftauswahl neu gesetzt, die Vorgabe verpufft also. Gemessen: nach \setlength{\baselineskip}{20pt} ergab schon ein \large 14.0pt und \normalsize wieder 12.0pt — von den 20pt bleibt nichts. Steuere den Zeilenabstand stets über den Faktor (\linespread, \setstretch oder die setspace-Deklarationen). Ein Faktor macht jede Größenänderung mit und lässt die Ausnahmen für Fußnoten und Gleitobjekte weiter greifen.