Verhalten von \\ innerhalb der Center-Umgebung

Verhalten von \\ innerhalb der Center-Umgebung

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 \parEnde des Absatzes innerhalb der Gruppe erfolgt. Die Parameter, die den Satz des Absatzes beeinflussen, wie der \leftskipund 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 \parToken eingefügt wird.

Daraus wird deutlich, dass Sie einen Absatz beenden sollten, bevor die Gruppe endet. Da jedoch centerselbst 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/ \pardas Problem.


Eine weitere Sache, die man erkennen muss, ist, dass die centerUmgebung die Arbeitsweise neu definiert \\. Das Folgende stammt auslatex.ltx(welchememoirverwendet 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 centerUmgebung nicht, es ist bereits lokal. Und dann erhalten Sie \param Ende der centerUmgebung 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}

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

verwandte Informationen