
Я нашел этот небольшой фрагмент кода здесь, который создает новый тип столбца. Однако, когда я применяю его к своей таблице, вертикально выравнивается только левый столбец. Правый не был затронут вообще.
\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}