表格中垂直居中對齊和水平左對齊

表格中垂直居中對齊和水平左對齊

我在這裡找到了一小段程式碼,它創建了一個新的列類型。但是,當我將其應用到表格時,只有左列垂直對齊。權利完全沒有受到影響。

\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{}對第一列使用 a 時,第一個儲存格仍將垂直居中,因為它的基線(在本例中為文字的底部)將與第二個儲存格的基線對齊。

嘗試這個實驗: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}

相關內容