Die Tabelle in der Mitte einer Zelle ausrichten

Die Tabelle in der Mitte einer Zelle ausrichten

Wie erreicht man diese Ausrichtung? Bildbeschreibung hier eingeben Stattdessen:

\documentclass{article}
\usepackage{array, tabu} 
\begin{document}
\begin{table}[h]
\begin{tabu} to 1.0\textwidth { |X[c]|X[c]| }
\hline
$ N_{1} $ & $ (0: 1] $ \\[3cm]  \hline
\end{tabu}
\end{table}
\end{document}

Bildbeschreibung hier eingeben

Antwort1

Versuchen Sie den folgenden schmutzigen Trick:

\documentclass{article}
\usepackage{array, tabu}
\begin{document}
\begin{table}[h]

\begin{tabu} to 1.0\textwidth { |X[c,$] | X[c,$]m{0pt}|}
\hline
N_{1}  &  (0: 1]  & \\[3cm]  \hline
\end{tabu}
\end{table}
\end{document}

Bildbeschreibung hier eingeben

Es ist nicht klar, warum Sie ein so seltsames Tabellendesign benötigen. Und die Verwendung des tabuPakets ist schwierig. Es wird nicht gewartet und enthält Fehler ...

Nachtrag:Das vertikale Zentrieren von Zellinhalten ist keine einfache Aufgabe. Zu diesem Zweck wird m{0pt}im obigen Beispiel eine falsche Spalte hinzugefügt, mit der die Grundlinie der Zeilen vertikal zentriert wird.

Für die horizontale Zentrierung des Zellinhalts in tabularxder Tabelle müssen Sie einen neuen Spaltentyp definieren, zum Beispiel

\newcolumntype{C}{>{\centering\arraybackslash}X}

Wenn der Inhalt ganzer Spalten im Mathematikmodus ist, ist es sinnvoll, die gesamte Spalte so zu definieren, dass sie in diesem Modus ist. Dann müssen Sie nicht in jede Zelle schreiben $<math expression>$. In diesem Fall können Sie den neuen Spaltentyp wie folgt definieren:

\newcolumntype{C}{>{\centering\arraybackslash $}X<{$}}

Complete code is then:

\documentclass{article}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash $}X<{$}}

\begin{document}
\begin{table}[h]
\begin{tabularx}{\textwidth}{ | C | C @{}m{0pt}|}
\hline
N_{1}  &  (0: 1]  & \\[3cm]  \hline
\end{tabularx}
\end{table}
\end{document}

Wie Sie sehen, wird auch hier der gleiche Trick wie zuvor verwendet. Das Ergebnis ist im Vergleich zum ersten Beispiel leicht verbessert, da im obigen MWE der @{}Spaltenabstand eliminiert wird.

Nachtrag 2: Es ist nicht klar, warum Sie verwenden, \\[3cm]um mehr vertikalen Abstand um den Zellinhalt herum zu schaffen. Einen ähnlichen Effekt mit weniger Problemen können Sie mit change erzielen. \arraystretchWenn Sie beispielsweise mehr vertikalen Abstand in den Zellen hinzufügen, können Sie Ihre Tabelle wie folgt gestalten:

\documentclass{article}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}% <-- cell's contend is vertically centered
\newcolumntype{C}{>{\centering\arraybackslash $}X<{$}}

\begin{document}
\begin{table}[h]
    \renewcommand{\arraystretch}{3}
    \setlength{\extrarowheight}{-2.5pt}% <-- correction of vertical centering
\begin{tabularx}{\textwidth}{ | C | C |}
\hline
N_{1}
    &  (0: 1]   \\  \hline
\end{tabularx}
\end{table}
\end{document}

Wie Sie sehen, wurde jetzt keine falsche Spalte hinzugefügt.

Bildbeschreibung hier eingeben

verwandte Informationen