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