Vertikale Ausrichtung zentriert und horizontale Ausrichtung links in Tabellen

Vertikale Ausrichtung zentriert und horizontale Ausrichtung links in Tabellen

Ich habe hier diesen kleinen Code gefunden, der einen neuen Spaltentyp erstellt. Wenn ich ihn jedoch auf meine Tabelle anwende, wird nur die linke Spalte vertikal ausgerichtet. Die rechte Spalte wurde überhaupt nicht beeinflusst.

\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }

Unten richte ich meine Tabelle ein und verwende diesen neuen Spaltentyp L. Wie Sie wahrscheinlich sehen, ist jedoch nur die erste Spalte betroffen.

\begin{center}
    \noindent\begin{tabular}{ | L{\dimexpr 0.4\linewidth-2\tabcolsep} | L{\dimexpr 0.4\linewidth-2\tabcolsep} | }  
    \hline

    \multicolumn{1}{|c|}{\textbf{Header}} & \multicolumn{1}{c|}{\textbf{Header}} \\[2ex] \hline

    TEXT
    &
    MORE TEXT \\[3ex]
    \hline

    TEXT
    &
    MORE TEXT \\[3ex]
    \hline

    \end{tabular}
\end{center}\break

Wie erreiche ich, dass beide Spalten betroffen sind?

Antwort1

Der explizite Abstand in \\[3ex]beeinflusst die vertikale Ausrichtung. Verwenden Sie \renewcommand\arraystretchstattdessen.

\documentclass{article}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }
\begin{document}
\renewcommand\arraystretch{1.3}
\begin{tabular}{ | L{\dimexpr 0.4\linewidth-2\tabcolsep} | L{\dimexpr 0.4\linewidth-2\tabcolsep} | }  
\hline
    TEXT TEXT TEXT TEXT TEXT 
    TEXT TEXT TEXT TEXT TEXT 
    TEXT TEXT TEXT TEXT TEXT 
    TEXT TEXT TEXT TEXT TEXT 
    &
    MORE TEXT \\
\hline
    TEXT
    &
    MORE TEXT MORE TEXT MORE TEXT
    MORE TEXT MORE TEXT MORE TEXT
    MORE TEXT MORE TEXT MORE TEXT
    MORE TEXT MORE TEXT MORE TEXT \\
\hline
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Ich glaube, es besteht ein Missverständnis darüber, was der m{}Spaltenbezeichner bedeutet. Es istnichtden Text in der Zelle vertikal zentrieren. Vielmehr ist die Grundlinie des Textes in der vertikalen Mitte des Textes. Und dann werden alle Grundlinien der Zellen in derselben Zeile ausgerichtet. Es sieht so aus, als ob der \\[3ex]vertikale Abstand unterhalb des Textes in der letzten Spalte hinzugefügt wird. Die Grundlinie befindet sich also in der vertikalen Mitte dieses Abstands, der die gesamte Zelle darstellt. Und das hält den Text oben. Und selbst wenn Sie p{}für die erste Spalte ein verwenden, wird die erste Zelle immer noch vertikal zentriert sein, da ihre Grundlinie (in diesem Fall die Unterseite des Textes) an der Grundlinie der zweiten Zelle ausgerichtet wird.

Versuchen Sie dieses Experiment: Fügen Sie L{1mm}rechts eine Spalte hinzu und lassen Sie sie leer. Jetzt sind die ersten beiden Spalten beide vertikal zentriert, auch wenn Sie sie in p{}Spalten ändern.

\noindent\begin{tabular}{ | p{2cm} | p{3cm} | L{1pt}}  
\hline
\multicolumn{1}{|c|}{\textbf{Header}} & \multicolumn{1}{c|}{\textbf{Header}} \\[2ex] \hline
TEXT
&
MORE TEXT & \\[3ex]
\hline
TEXT 
&
MORE TEXT & \\[3ex]
\hline
\end{tabular}

verwandte Informationen