Wie kann ich eine Matrix innerhalb der Tabelle linksbündig ausrichten?

Wie kann ich eine Matrix innerhalb der Tabelle linksbündig ausrichten?

Ich habe eine Tabelle, die zwei Matrizen enthält. Ich möchte diese Matrizen linksbündig ausrichten, statt zentriert. Ich verwende das IEEE-Format. Außerdem []ist die Klammer der Matrix sehr nah am \hlineTabellenrand. Könnten wir irgendwie einen Rand zwischen der Klammer und der h-Linie einfügen?

\begin{table*}[!t]
\renewcommand{\arraystretch}{1.3}
\caption{This is table}
\label{table_network_architecture}
\centering
\begin{tabular}{c|c}
\hline
\bfseries Name & \bfseries Matrix  \\
\hline\hline
%Dense 2
Text 1 & $\left[ \begin{array}{c} 30 \times 30 \\ 30 \times 30 \end{array}\right]$\\
\hline
Text 1 & $\left[ \begin{array}{c} 30 \times 30 \\ 30 \times 30 \end{array}\right]-100$\\
\hline
\hline
\end{tabular}   
\end{table*}

Antwort1

Ich bevorzuge die booktabsvon gernot gezeigte Methode, aber wenn Sie darauf bestehen, Ihre Tabelle zu linieren, können Sie Folgendes verwenden makecell:

\documentclass{article}
\usepackage{amsmath}
\usepackage{newtxtext,newtxmath}
\usepackage{makecell}

\begin{document}

\begin{table}[htp]
\centering

\caption{This is table}
\label{table_network_architecture}
\medskip

\setcellgapes{3pt}\makegapedcells

\begin{tabular}{l|l}
\hline
\multicolumn{1}{c|}{\bfseries Name} & \multicolumn{1}{c}{\bfseries Matrix} \\
\hline
Text 1 & $\begin{bmatrix} 30 \times 30 \\ 30 \times 30 \end{bmatrix}$ \\
\hline
Text 2, longer & $\begin{bmatrix} 30 \times 30 \\ 30 \times 30 \end{bmatrix}-100$ \\
\hline
\end{tabular}

\end{table}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Um die Elemente in einer Spalte linksbündig auszurichten, verwenden Sie lanstelle von cals Spaltenspezifizierer.

Das Problem mit dem zusätzlichen Platz kann nicht einfach durch Erhöhen von gelöst werden \arraystretch, da es die Tabelle auf die gleiche Weise beeinflusst wie die Arrays. Man kann den Wert \arraystretchunmittelbar vor den Arrays auf 1 zurücksetzen, aber das ergibt immer noch keinen schönen Abstand. Eine Möglichkeit, das Problem zu lösen, ist die Verwendung des booktabsPakets.

Letzte Bemerkung: Anstelle von \left[\begin{array}{c} ... \end{array}\right]können Sie verwenden \begin{bmatrix} ... \end{bmatrix}; bmatrixist im Paket definiert amsmath.

Bildbeschreibung hier eingeben

\documentclass{IEEEtran}
\usepackage{booktabs}
\usepackage{amsmath}
\begin{document}
\begin{tabular}{cl}
\toprule
\bfseries Name & \bfseries Matrix  \\
\midrule
Text 1 & 
$\begin{bmatrix} 30 \times 30 \\ 30 \times 30 \end{bmatrix}$\\
\midrule
Text 1 &
$\begin{bmatrix} 30 \times 30 \\ 30 \times 30 \end{bmatrix}-100$\\
\bottomrule
\end{tabular}   
\end{document}

Antwort3

Mit kann \fboxsepauf allen Seiten ein Abstand von 2pt ( } hinzugefügt werden .\fbox\fboxrule=0pt

\documentclass[twocolumn]{article}
\usepackage{mathtools}
\begin{document}
\begin{table*}[!t]
\renewcommand{\arraystretch}{1.3}
\setlength{\fboxrule}{0pt}
\caption{This is table}
\label{table_network_architecture}
\centering
\begin{tabular}{c|l}
\hline
\bfseries Name & \bfseries Matrix  \\
\hline\hline
%Dense 2
Text 1 & \fbox{$\left[ \begin{array}{c} 30 \times 30 \\ 30 \times 30 \end{array}\right]$}\\
\hline
Text 1 & \fbox{$\left[ \begin{array}{c} 30 \times 30 \\ 30 \times 30 \end{array}\right]-100$}\\
\hline
\hline
\end{tabular}   
\end{table*}
\end{document}

Demo


Alternativ kann man für extra große Texte entsprechende Streben anbringen mit

\documentclass[twocolumn]{article}
\usepackage{mathtools}

\newcommand{\arraybox}[1]% #1 = extra large text
{\bgroup
  \sbox0{#1}% measure
  \rule{0pt}{\arraystretch\ht0}% top strut
  \rule[-\arraystretch\dp0]{0pt}{0pt}% bottom strut
  \box0
\egroup}

\begin{document}
\begin{table*}[!t]
\renewcommand{\arraystretch}{1.3}
\caption{This is table}
\label{table_network_architecture}
\centering
\begin{tabular}{c|l}
\hline
\bfseries Name & \bfseries Matrix  \\
\hline\hline
%Dense 2
Text 1 & \arraybox{$\left[ \begin{array}{c} 30 \times 30 \\ 30 \times 30 \end{array}\right]$}\\
\hline
Text 1 & \arraybox{$\left[ \begin{array}{c} 30 \times 30 \\ 30 \times 30 \end{array}\right]-100$}\\
\hline
\hline
\end{tabular}   
\end{table*}
\end{document}

Demo 2

verwandte Informationen