如何增加表格的行高并垂直“中间对齐”?

如何增加表格的行高并垂直“中间对齐”?

我在双列环境中编写IEEEtran,并有一个如下所示的表格。我需要增加行高,以便第二列中的方程式可以放进去。我尝试简单地使用\renewcommand{\arraystretch}{2.5}可以放进去的所有内容,但垂直对齐效果不是很好。例如,第一行没有对齐,如果仔细观察,似乎每个单元格都没有完全垂直对齐。它们稍微高一点或低一点。我的问题是,除了增加行高之外,我如何让每个单元格在垂直方向上完全对齐?

下表\arraystretch分别为 1 和 2.5。

在此处输入图片描述

生成表格的代码是

\begin{table} 
\caption{arraystretch = 1}

\renewcommand{\arraystretch}{1}
\centering{}%
\begin{tabular}{ccc}
\toprule 
\multirow{1}{*}{No.} & Equations & Current phasors\tabularnewline
\midrule
\multirow{2}{*}{1} & \multirow{2}{*}{$\begin{cases}
i_{A}=1\\
i_{B}=2\\
i_{C}=3
\end{cases}$} & 1, 2, 3\tabularnewline
\cmidrule{3-3} 
 &  & 4, 5, 6\tabularnewline
\midrule
\multirow{2}{*}{2} & \multirow{2}{*}{$\begin{cases}
i_{A}=4\\
i_{B}=5\\
i_{C}=6
\end{cases}$} & 1, 2, 3\tabularnewline
\cmidrule{3-3} 
 &  & 4, 5, 6\tabularnewline
\bottomrule
\end{tabular}
\end{table}

\begin{table}
\caption{arraystretch = 2.5}

\renewcommand{\arraystretch}{2.5}
\centering{}%
\begin{tabular}{ccc}
\toprule 
\multirow{1}{*}{No.} & Equations & Current phasors\tabularnewline
\midrule
\multirow{2}{*}{1} & \multirow{2}{*}{$\begin{cases}
i_{A}=1\\
i_{B}=2\\
i_{C}=3
\end{cases}$} & 1, 2, 3\tabularnewline
\cmidrule{3-3} 
 &  & 4, 5, 6\tabularnewline
\midrule
\multirow{2}{*}{2} & \multirow{2}{*}{$\begin{cases}
i_{A}=4\\
i_{B}=5\\
i_{C}=6
\end{cases}$} & 1, 2, 3\tabularnewline
\cmidrule{3-3} 
 &  & 4, 5, 6\tabularnewline
\bottomrule
\end{tabular}
\end{table}   

答案1

您的表格结构非常不寻常,因此有必要将每个单元格的内容排版为单独的自定义、垂直居中的tabular环境。

在下面的例子中,我定义了两个这样的自定义tabular环境:

  • \mytabC,如果表格的宽度应该等于单元格内容的自然宽度,并且

  • \mytabP,如果表格的宽度应该是固定长度——比如说,相应标题单元格内容的宽度。

在以下屏幕截图中,上行用于\mytabC第 1 列和第 2 列,以及\mytabP第 3 列。下行用于\mytabC所有 3 列。我提供了两种类型的解决方案,因为我不清楚 是否应该\midrule跨越单元格的整个宽度,或者其宽度是否应该是单元格内容的自然宽度。

在此处输入图片描述

\documentclass{IEEEtran}
\usepackage{booktabs,amsmath,array,ragged2e}
%% Some housekeeping:
\newlength\mylen
\newcolumntype{P}[1]{>{\Centering\arraybackslash}p{#1}}
%% Macros to generate two custom 'tabular' environments:
\newcommand\mytabC[1]{%
   \begin{tabular}[c]{@{} c @{}} #1 \end{tabular}}
\newcommand\mytabP[2]{\settowidth{\mylen}{#1}%
   \begin{tabular}[c]{@{} P{\mylen} @{}} #2 \end{tabular}}

\begin{document} 
\begin{table} 
\caption{arraystretch = 1}
\centering

\begin{tabular}{@{}ccc@{}}
\toprule 
No. & Equations & Current phasors\\
\midrule
\mytabC{1} & 
\mytabC{$\begin{cases} i_{A}=1\\i_{B}=2\\i_{C}=3 \end{cases}$} & 
\mytabP{Current phasors}{1, 2, 3\\ \midrule 4, 5, 6}\\
\midrule
\mytabC{2} & 
\mytabC{$\begin{cases} i_{D}=4\\i_{E}=5\\i_{F}=6 \end{cases}$} & 
\mytabC{7, 8, 9\\ \midrule 0, 1, 2}\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

相关内容