
Encontré este pequeño fragmento de código aquí, que crea un nuevo tipo de columna. Sin embargo, cuando lo aplico a mi tabla, solo la columna izquierda está alineada verticalmente. La derecha no se ha visto afectada en absoluto.
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash} m{#1} }
A continuación, configuro mi tabla y uso este nuevo tipo de columna L
. Sin embargo, como probablemente puedas ver, sólo la primera columna se ve afectada.
\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
¿Cómo hago para que ambas columnas se vean afectadas?
Respuesta1
El espaciado explícito \\[3ex]
afecta la alineación vertical. Úselo \renewcommand\arraystretch
en su lugar.
\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}
Respuesta2
Creo que hay un malentendido sobre lo quem{}
significa el especificador de columna. Esnocentrar verticalmente el texto en la celda. Más bien es que la línea de base del texto está en el centro vertical del texto. Y luego se alinean todas las líneas base de las celdas de la misma fila. Parece que el \\[3ex]
espacio vertical se agrega debajo del texto en la última columna. Entonces la línea de base está en el centro vertical de ese espacio que es toda la celda. Y eso mantiene el texto en la parte superior. E incluso cuando use a p{}
para la primera columna, la primera celda seguirá centrada verticalmente, ya que su línea base (la parte inferior del texto en este caso) estará alineada con la línea base de la segunda celda.
Pruebe este experimento: agregue una L{1mm}
columna a la derecha y manténgala vacía. Ahora las dos primeras columnas están centradas verticalmente, incluso cuando las cambia a p{}
columnas.
\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}