Вертикальное выравнивание по центру и горизонтальное выравнивание по левому краю в таблице

Вертикальное выравнивание по центру и горизонтальное выравнивание по левому краю в таблице

Я нашел этот небольшой фрагмент кода здесь, который создает новый тип столбца. Однако, когда я применяю его к своей таблице, вертикально выравнивается только левый столбец. Правый не был затронут вообще.

\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}

Связанный контент