Estou tentando aumentar o espaço entre as linhas da tabularx
tabela. O código a seguir funciona bem e faz o que eu quero:
\begin{tabularx}{5ex}{X}
text \\[2ex]
x
\end{tabularx}
No entanto, se o texto for muito longo e não couber em uma linha, o espaço vertical não funcionará:
\begin{tabularx}{5ex}{X}
text text \\[2ex]
x
\end{tabularx}
Por favor, diga-me como posso corrigir o código para que funcione. A variante a utilizar (N - 1) * \baselineskip + 2ex
não é adequada, pois depende do número de linhas do texto N
.
Atualizaçãoexemplo completo:
\documentclass{article}
\usepackage{tabularx}
\begin{document}
% code above
\end{document}
Responder1
Com tabularx
e 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
s são adicionados para melhor visibilidade das distâncias verticais)
Com tabularray
pacote:
\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}
O resultado é o mesmo de antes.
Termo aditivo:
Aparentemente, a questão não está nada clara. Segue-se do comentário abaixo que apenas entre algumas linhas é desejado aumentar a distância entre as linhas. A maneira mais simples de fazer isso é usar \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}
Responder2
Você poderia usar arraystretch
para esticar as células por um fator <F>
:
\renewcommand\arraystretch{<F>}
com 1.0 sendo o padrão. O efeito é assimétrico, mas pequenos fatores funcionam bem.
Além disso arraystretch
, também é possível inserir e anexar elementos invisíveis antes e depois do conteúdo da célula, como barras verticais de comprimento zero com altura e profundidade maiores que uma única linha de texto. As barras fazem com que as células se adaptem a tal conteúdo e você ganha um efeito de aumento de espaço.
Isso pode ser automatizado na definição da coluna. Se o efeito precisar ser cancelado ou alterado em uma linha específica, use \multicolumn
com configurações alteradas.
\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. No entanto, como emZarkoresposta, você pode simplificar as coisas empregando 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}