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 \hline
Tabellenrand. 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 booktabs
von 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}
Antwort2
Um die Elemente in einer Spalte linksbündig auszurichten, verwenden Sie l
anstelle von c
als 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 \arraystretch
unmittelbar 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 booktabs
Pakets.
Letzte Bemerkung: Anstelle von \left[\begin{array}{c} ... \end{array}\right]
können Sie verwenden \begin{bmatrix} ... \end{bmatrix}
; bmatrix
ist im Paket definiert amsmath
.
\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 \fboxsep
auf 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}
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}