表格中垂直居中、水平左对齐

表格中垂直居中、水平左对齐

我在这里找到了这小段代码,它创建了一种新的列类型。但是,当我将它应用到我的表格时,只有左列是垂直对齐的。右边的列完全没有受到影响。

\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }

下面,我设置了我的表格并使用了这个新的列类型L。但是,正如您可能看到的,只有第一列受到影响。

\begin{center}
    \noindent\begin{tabular}{ | L{\dimexpr 0.4\linewidth-2\tabcolsep} | L{\dimexpr 0.4\linewidth-2\tabcolsep} | }  
    \hline

    \multicolumn{1}{|c|}{\textbf{Header}} & \multicolumn{1}{c|}{\textbf{Header}} \\[2ex] \hline

    TEXT
    &
    MORE TEXT \\[3ex]
    \hline

    TEXT
    &
    MORE TEXT \\[3ex]
    \hline

    \end{tabular}
\end{center}\break

我如何使两列都受到影响?

答案1

中的显式间距\\[3ex]会影响垂直对齐。请\renewcommand\arraystretch改用。

\documentclass{article}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }
\begin{document}
\renewcommand\arraystretch{1.3}
\begin{tabular}{ | L{\dimexpr 0.4\linewidth-2\tabcolsep} | L{\dimexpr 0.4\linewidth-2\tabcolsep} | }  
\hline
    TEXT TEXT TEXT TEXT TEXT 
    TEXT TEXT TEXT TEXT TEXT 
    TEXT TEXT TEXT TEXT TEXT 
    TEXT TEXT TEXT TEXT TEXT 
    &
    MORE TEXT \\
\hline
    TEXT
    &
    MORE TEXT MORE TEXT MORE TEXT
    MORE TEXT MORE TEXT MORE TEXT
    MORE TEXT MORE TEXT MORE TEXT
    MORE TEXT MORE TEXT MORE TEXT \\
\hline
\end{tabular}
\end{document}

在此处输入图片描述

答案2

我认为对列说明符的含义存在误解m{}不是将单元格中的文本垂直居中。相反,文本的基线位于文本的垂直中心。然后同一行中所有单元格的基线都对齐。看起来垂直\\[3ex]空间被添加到最后一列的文本下方。因此那里的基线位于该空间(即整个单元格)的垂直中心。这样文本就保持在顶部。即使您p{}对第一列使用,第一个单元格仍将垂直居中,因为它的基线(在本例中为文本的底部)将与第二个单元格的基线对齐。

尝试一下这个实验:L{1mm}在右侧添加一列并保持空白。现在,即使您将前两列更改为p{}列,它们仍会垂直居中。

\noindent\begin{tabular}{ | p{2cm} | p{3cm} | L{1pt}}  
\hline
\multicolumn{1}{|c|}{\textbf{Header}} & \multicolumn{1}{c|}{\textbf{Header}} \\[2ex] \hline
TEXT
&
MORE TEXT & \\[3ex]
\hline
TEXT 
&
MORE TEXT & \\[3ex]
\hline
\end{tabular}

相关内容