
Beim Versuch, ein Titelblatt für meine Dissertation zusammenzustellen, wurde mir klar, dass ich das Verhalten von nicht verstehe \\
. Betrachten Sie das folgende MWE
\documentclass{memoir}
\begin{document}
\begin{center}
{\Huge\bfseries%
Eat fresh tires to\\[0.25\baselineskip]
Get Ready to the Ultimate\\[0.25\baselineskip]
Victory Against the\\[0.25\baselineskip]
Dragons
}% Title
\end{center}
\end{document}
was zu einem falschen Abstand vor der letzten Zeile führt. Es sieht so aus:
{\Huge\bfseries%
Eat fresh tires to\\[0.25\baselineskip]
Get Ready to the Ultimate\\[0.25\baselineskip]
Victory Against the\\[0.5\baselineskip]
Dragons
}% Title
oder
{\Huge\bfseries%
Eat fresh tires to\\[0.25\baselineskip]
Get Ready to the Ultimate\\[0.25\baselineskip]
Victory Against the\\[0.25\baselineskip]
Dragons\\
}% Title
kann als Workaround dienen. Keiner von beiden ist für mich intuitiv.
- Wie werden die Zeilenumbrüche hier richtig gehandhabt (mit manuell angepasstem vertikalem Abstand)?
- Warum passiert das?Bring mir das Angeln bei. Warum
\\
verhält es sich so? Wo ist esdokumentiert?
Antwort1
Das Folgende stammt ausTeX nach Thema(Abschnitt17.2.1 Gleichzeitiges Beenden eines Absatzes und einer Gruppe, S. 167):
Wenn ein Absatz in einer Gruppe gesetzt wird, kann es notwendig sein, sicherzustellen, dass das
\par
Ende des Absatzes innerhalb der Gruppe erfolgt. Die Parameter, die den Satz des Absatzes beeinflussen, wie der\leftskip
und der\baselineskip
, werden erst dann berücksichtigt, wenn der Absatz beendet ist. Das Beenden eines Absatzes mit... last words.}\par
bewirkt, dass die Werte verwendet werden, die außerhalb der Gruppe gelten, statt denen innerhalb.
Bessere Möglichkeiten, den Absatz zu beenden, sind
... last words.\par}
oder
... last words.\medskip}
Im zweiten Beispiel
\medskip
bewirkt der vertikale Befehl, dass das\par
Token eingefügt wird.
Daraus wird deutlich, dass Sie einen Absatz beenden sollten, bevor die Gruppe endet. Da jedoch center
selbst eine Gruppe bildet, ist es am einfachsten,
\begin{center}
\Huge\bfseries%
Eat fresh tires to\\[0.25\baselineskip]
Get Ready to the Ultimate\\[0.25\baselineskip]
Victory Against the\\[0.25\baselineskip]
Dragons
\end{center}
und vermeiden Sie die Gruppe/ \par
das Problem.
Eine weitere Sache, die man erkennen muss, ist, dass die center
Umgebung die Arbeitsweise neu definiert \\
. Das Folgende stammt auslatex.ltx
(welchememoir
verwendet wie es ist) - Ich habe einige Kommentare hinzugefügt:
\message{center,}
\def\@centercr{\ifhmode \unskip\else \@nolnerr\fi
\par\@ifstar{\nobreak\@xcentercr}\@xcentercr}% \@centercr is \par (with more stuff)
\def\@xcentercr{\addvspace{-\parskip}\@ifnextchar
[\@icentercr\ignorespaces}
\def\@icentercr[#1]{\vskip #1\ignorespaces}
\def\center{\trivlist \centering\item\relax}% \begin{center}
\def\endcenter{\endtrivlist}% \end{center}
\def\centering{% Called when using \begin{center}
\let\\\@centercr% \\ is redefined to be \@centercr
\rightskip\@flushglue\leftskip\@flushglue
\parindent\z@\parfillskip\z@skip}
Es ist klar, dass \\
in center
ähnlich ist wie \par
, was zu einem von Ihnen erwähnten Workaround führt.
{
...
Dragons\\
}% Title
Antwort2
Verwenden Sie das {..}
Innere der center
Umgebung nicht, es ist bereits lokal. Und dann erhalten Sie \par
am Ende der center
Umgebung ein ordnungsgemäßes Ergebnis (das von der Umgebung selbst ausgeführt wird):
\documentclass{memoir}
\begin{document}
\begin{center}
\Huge\bfseries%
Eat fresh tires to\\[0.25\baselineskip]
Get Ready to the Ultimate\\[0.25\baselineskip]
Victory Against the\\[0.25\baselineskip]
Dragons
\end{center}
default font size and shape
\end{document}
Antwort3
alle anderen haben bereits die offensichtlich richtige Antwort gegeben – die Gruppe muss mit beendet werden \par
.
Da aber auch eine gleichmäßige Öffnung der Grundlinie gewünscht ist, lässt sich das Beispiel vereinfachen:
\documentclass{memoir}
\begin{document}
\begin{center}
{\Huge\bfseries
\baselineskip=1.25\baselineskip
Eat fresh tires to\\
Get Ready to the Ultimate\\
Victory Against the\\
Dragons
\par
}% Title
\end{center}
\end{document}
Antwort4
Dies liegt daran, dass der Absatz innerhalb der Umgebung nicht beendet ist. Ich hoffe, dass eine der folgenden (äquivalenten) Lösungen für Sie intuitiv ist.
\documentclass{memoir}
\begin{document}
\begin{center}
{\Huge\bfseries%
Eat fresh tires to\\[0.25\baselineskip]
Get Ready to the Ultimate\\[0.25\baselineskip]
Victory Against the\\[0.25\baselineskip]
Dragons
}% Title
\end{center}
\begin{center}
{\Huge\bfseries%
Eat fresh tires to\\[0.25\baselineskip]
Get Ready to the Ultimate\\[0.25\baselineskip]
Victory Against the\\[0.25\baselineskip]
Dragons\par
}% Title
\end{center}