Es gibt drei unterschiedliche (also intern anders definiert) "Beende die Zeile"-Befehle:
- A Beende eine Tabellenzeile
- B Beende eine Zeile innerhalb eine centering/center-Umgebung
- C Beende eine Zeile in einem normalen Absatz.
Normalerweise haben \\ und \newline die Bedeutung "C".
Nach einem \centering-Befehl hat \\ die Bedeutung B und \newline weiterhin die Bedeutung C. Daher funktioniert \newline nicht bei \centering:
Code:
\documentclass[12pt]{article}
\begin{document}
{\centering a\\b\newline c \\ d\par}
\end{document}
In einer Tabelle hat \\ erstmal die Bedeutung "A". In Spalten mit \centering wechselt die Bedeutung zu B, in Spalten mit einem anschließenden \arraybackslash wieder zu A. \newline ist von alle dem nicht betroffen und hat weiterhin die Bedeutung C und kann daher mit \centering nicht benutzt werden.
Im wesentlichen gibt es zwei Lösungen um die Befehlsnamenkollision in Tabellen aufzulösen: Du überlässt dem \centering den \\-Befehl und benutzt für das Ende von Tabellenzeilen \tabularnewline. Oder du überträgst zu mindest in der letzten Spalte auf \newline die Bedeutung B, damit der Befehl mit \centering das gewünschte bringt:
Code:
\documentclass[12pt]{article}
\usepackage{array}
\begin{document}
\begin{tabular}{>{\centering}p{5cm}>{\centering}p{5cm}}
a\\b\\c & e\\f\tabularnewline\hline
d\\x & v
\end{tabular}
\begin{tabular}{>{\centering}p{5cm}>{\centering\let\newline\\\arraybackslash}p{5cm}}
a\\b\\c & e\newline f\\\hline
d\\x & v
\end{tabular}
\end{document}
Lesezeichen