Die Spalte m{} in der Tabelle zentriert den Text nicht in der dritten (letzten) Spalte.

Die Spalte m{} in der Tabelle zentriert den Text nicht in der dritten (letzten) Spalte.

Das ist so einfach und sollte eigentlich funktionieren, aber ich verstehe nicht, warum es nicht funktioniert. Ich habe eine einfache Tabelle mit drei Spalten und zwei Zeilen. Ich wollte, dass der Text in jeder Zelle in der ersten Zeile vertikal zentriert ist. Das funktioniert.Bildbeschreibung hier eingebenvertikal in der ersten und zweiten Spalte, aber in der dritten Spalte bleibt der Text oben. Meine Quelle lautet wie folgt:

\documentclass[12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array}
\title{}
\author{}
\pagestyle{empty}
\date{}

\begin{document}
\setlength\extrarowheight{2pt}
\begin{tabular}{|m{1cm}|m{4in}|m{3cm}|}
\hline
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\[8pt]
\hline
1. & Blah blah blah &  2,000.00\\[8pt]
\hline
\end{tabular}
\end{document}

Es tut mir fast leid, das hier fragen zu müssen, da es so eine einfache Sache ist. Aber das Ergebnis ist alles andere als zufriedenstellend und ich kann nicht erkennen, was schief läuft.

Antwort1

Anstatt den Zeilen manuell vertikalen Abstand hinzuzufügen, empfehle ich die Verwendung von cellspace. Sie können den Abstand nach Bedarf anpassen, während der Inhalt vertikal zentriert wird.

Persönlich bevorzuge ich Tabellen mit einem offeneren Aussehen (keine vertikalen Linien und weniger horizontale Linien), daher habe ich booktabsauch ein Beispiel mit hinzugefügt. Schließlich können Sie das siunitxPaket auch verwenden, um die Ausrichtung der Zahlen in Tabellenzellen zu erleichtern. Wenn Ihre zweite Spalte ziemlich viel Text enthält, würde ich mich dafür entscheiden, tabularxdie Tabelle so breit wie die Textbreite zu machen und gleichzeitig automatische Zeilenumbrüche in der zweiten Spalte zuzulassen. Ich habe auch dazu ein Beispiel beigefügt.

Und wenn Sie es satt haben, Zeilen manuell zu nummerieren, können Sie einen Blick aufAutomatische Tabellenzeilennummerierung

Bildbeschreibung hier eingeben

\documentclass[12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array}


\usepackage[column=0]{cellspace}
\setlength\cellspacetoplimit{6pt}
\setlength\cellspacebottomlimit{\cellspacetoplimit}

\usepackage{booktabs}

\usepackage{siunitx}
\sisetup{input-ignore={,},input-decimal-markers={.}}
\usepackage{tabularx}

\begin{document}

With cellspace:

\begin{tabular}{|0{m{1cm}}|0{m{4in}}|0{m{3cm}}|}
\hline
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\
\hline
1. & Blah blah blah &  2,000.00\\
\hline
2. & Blah blah blah &  2,000.00\\
\hline
\end{tabular}

\bigskip

With booktabs:

\begin{tabular}{m{1cm}m{4in}m{3cm}}
\toprule
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\
\midrule
1. & Blah blah blah &  2,000.00\\
2. & Blah blah blah &  2,000.00\\
\bottomrule
\end{tabular}

\bigskip

With booktabs, siunitx and tabularx:

\begin{tabularx}{\textwidth}{lXS[table-format=4.2]}
\toprule
{No.} & {Particulars} & {Amount}\\
\midrule
1. & Blah blah blah &  2,000.00\\
2. & Blah blah blah &  2,000.00\\
\bottomrule
\end{tabularx}

\end{document}

Antwort2

Ändern Sie das, \arraystretchanstatt jeder Zeile ein \extrarowheightPluszeichen hinzuzufügen:[8pt]

mwe

\documentclass[12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array}
\begin{document}
\renewcommand\arraystretch{1.6}
\begin{tabular}{|m{1cm}|m{4in}|m{3cm}|}\hline
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\\hline
1. & Blah blah blah &  2,000.00\\\hline
\end{tabular}
\end{document}

(... und verwenden Sie natürlich anstelle von Jailed-Tabellen booktabs!).

verwandte Informationen