
Encontrei este pequeno código aqui, que cria um novo tipo de coluna. No entanto, quando aplico isso à minha tabela, apenas a coluna da esquerda fica alinhada verticalmente. A direita não foi afetada de forma alguma.
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }
Abaixo, configuro minha tabela e uso esse novo tipo de coluna L
. No entanto, como você provavelmente pode ver, apenas a primeira coluna é afetada.
\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
Como faço para que ambas as colunas sejam afetadas?
Responder1
O espaçamento explícito \\[3ex]
afeta o alinhamento vertical. Use \renewcommand\arraystretch
em vez disso.
\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}
Responder2
Acho que há um mal-entendido sobre o que m{}
significa o especificador de coluna. Isso énãocentralize verticalmente o texto na célula. Em vez disso, a linha de base do texto está no centro vertical do texto. E então todas as linhas de base das células na mesma linha são alinhadas. Parece que o \\[3ex]
espaço vertical é adicionado abaixo do texto na última coluna. Portanto, a linha de base está no centro vertical daquele espaço que é a célula inteira. E isso mantém o texto no topo. E mesmo quando você usa a p{}
para a primeira coluna, a primeira célula ainda estará centralizada verticalmente, pois sua linha de base (a parte inferior do texto, neste caso) estará alinhada com a linha de base da segunda célula.
Faça esta experiência: adicione uma L{1mm}
coluna à direita e mantenha-a vazia. Agora, as duas primeiras colunas estão centralizadas verticalmente, mesmo quando você as altera para p{}
colunas.
\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}