表格行之间的垂直空间

表格行之间的垂直空间

我正在尝试增加表格行之间的空间tabularx。以下代码运行良好,并满足我的要求:

\begin{tabularx}{5ex}{X}
    text \\[2ex]
    x
\end{tabularx}

但是,如果文本太长,一行放不下,那么垂直空间就不起作用:

\begin{tabularx}{5ex}{X}
    text text \\[2ex]
    x
\end{tabularx}

请告诉我如何修复代码以使其正常工作。要使用的变体(N - 1) * \baselineskip + 2ex不合适,因为它取决于文本的行数N

更新型多巴胺完整示例:

\documentclass{article}

\usepackage{tabularx}

\begin{document}
    % code above
\end{document}

答案1

使用tabularxcellspace

\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 是为了更好地显示垂直距离)

在此处输入图片描述

tabularray包装:

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

结果和以前一样。

附录:
显然问题根本不清楚。从下面的评论可以看出,只需要在某些行之间增加行之间的距离。最简单的方法是使用\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}

在此处输入图片描述

答案2

您可以使用arraystretch以下因子来拉伸细胞<F>

\renewcommand\arraystretch{<F>}

默认值为 1.0。效果不对称,但小因素也能正常工作。

除此之外arraystretch,还可以在单​​元格内容之前和之后插入和附加不可见元素,例如高度和深度大于单行文本的零长度竖线。这些竖线使单元格适应此类内容,从而获得增加空间的效果。

这可以在列定义时自动完成。如果需要在特定行取消或更改效果,请使用\multicolumn更改后的设置。

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

在此处输入图片描述


编辑。然而,正如扎尔科的答案,您可以通过以下方式简化事情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}

在此处输入图片描述

相关内容