Estoy intentando aumentar el espacio entre las filas de la tabularx
tabla. El siguiente código funciona bien y hace lo que quiero:
\begin{tabularx}{5ex}{X}
text \\[2ex]
x
\end{tabularx}
Sin embargo, si el texto es demasiado largo y no cabe en una línea, entonces el espacio vertical no funciona:
\begin{tabularx}{5ex}{X}
text text \\[2ex]
x
\end{tabularx}
Por favor dígame cómo puedo arreglar el código para que funcione. La variante a utilizar (N - 1) * \baselineskip + 2ex
no es la adecuada, ya que depende del número de líneas de texto N
.
UPDejemplo completo:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
% code above
\end{document}
Respuesta1
Con tabularx
y cellspace
:
\documentclass{article}
\usepackage[column=O]{cellspace}% better, than {} aren't necessary
\setlength\cellspacetoplimit{2ex}
\setlength\cellspacebottomlimit{2ex}
\addparagraphcolumntypes{X}
\usepackage{tabularx} % "tabularx" had to be after "cellspace"
\begin{document}
\begin{tabularx}{5ex}{OX}
\hline
text text \\
\hline
x \\
\hline
\end{tabularx}
\end{document}
hline
Se agregan s para una mejor visibilidad de las distancias verticales)
Con tabularray
paquete:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{width=5ex,
hlines, % for better visibility of vertical distances
colspec = {X},
rowsep=2ex}
text text \\
x \\
\end{tblr}
\end{document}
El resultado es el mismo que antes.
Apéndice:
Aparentemente la pregunta no está nada clara. Del comentario a continuación se desprende que solo entre algunas filas se desea aumentar la distancia entre filas. La forma más sencilla de hacer esto es utilizar \addlinespace[<desired space>]
:
\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}
\begin{tabularx}{5ex}{X}
text text \\
text text \\
\addlinespace[2ex] % you can omit this space, if its default value 3pt is ok
x \\
text text \\
\end{tabularx}
\end{document}
Respuesta2
Podrías usar arraystretch
para estirar las células por un factor <F>
:
\renewcommand\arraystretch{<F>}
siendo 1.0 el valor predeterminado. El efecto es asimétrico pero los factores pequeños funcionan bien.
Además arraystretch
, también es posible insertar y agregar elementos invisibles antes y después del contenido de la celda, como barras verticales de longitud cero con altura y profundidad mayores que una sola línea de texto. Las barras hacen que las celdas se adapten a dicho contenido y se obtiene un efecto de mayor espacio.
Esto se puede automatizar en la definición de la columna. Si es necesario cancelar o cambiar el efecto en una fila específica, utilícelo \multicolumn
con configuraciones modificadas.
\documentclass{article}
\usepackage{tabularx}
\newcommand\upstrut[1][2ex]{\rule[1.5ex]{0pt}{#1}}
\newcommand\lostrut[1][2ex]{\rule[-#1]{0pt}{#1}}
\begin{document}
\begin{tabularx}{9ex}{>{\upstrut}X<{\lostrut}}
\hline
\multicolumn{1}{l}{\textbf{head}} \\
\hline
\multicolumn{1}{l<{\lostrut[4ex]}}{x} \\
text text \\
text text \\
text text \\
\multicolumn{1}{>{\upstrut[4ex]}l}{x} \\
\hline
\end{tabularx}
\end{document}
EDITAR. Sin embargo, como enzarkoLa respuesta de, puedes simplificar las cosas empleando tabularray
:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
width = 9ex,
colspec = {X},
hline{1-2,Z},
row{3-Y} = {rowsep=2ex},
}
\textbf{head} \\
x \\
text text \\
text text \\
text text \\
x \\
\end{tblr}
\end{document}