在具有空单元格的 p 列类型上使用单元格空间时,行高会变得异常巨大

在具有空单元格的 p 列类型上使用单元格空间时,行高会变得异常巨大

使用此代码时,一切正常:

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cellspace}
\begin{document}

\begin{tabular}{|c|S{p{1cm}}|}
    \hline
    foo & bar \\
    \hline
     a & É \\
    \hline  
\end{tabular}

\end{document}

结果输出正常

但是当带有p-column 类型且cellspace包含空单元格时,如以下代码所示:

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{cellspace}
\begin{document}

\begin{tabular}{|c|S{p{1cm}}|}
    \hline
    foo &  \\
    \hline
     a & É \\
    \hline  
\end{tabular}

\end{document}

我获得了白色的第一页,在第二页上,第一行的高度很大:

结果输出不正确

日志包含以下消息:

\output 处于活动状态时,发生 \vbox 过满(482.37025pt 太高)的情况

这是预期的行为吗?

为了解决这个问题,我可以使用显式空格 ( ) 来代替空单元格\。但也许有更好的解决方案?

m与-column-type (来自array包)相同的错误。l并且ccolumn r-types 不受这种奇怪行为的影响。

答案1

>{\arraybackslash}在最后一列添加:

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{cellspace}
\setlength{\cellspacetoplimit}{4pt}
\setlength{\cellspacebottomlimit}{4pt}

\begin{document}

\begin{tabular}{|c|S{>{\arraybackslash}p{1cm}}|}
    \hline
    foo & \\
    \hline
     a & É \\
    \hline
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

供参考,如果您使用nicematrix及其参数cell-space-limits,则不会遇到该问题。

\documentclass[11pt]{article}
\usepackage{nicematrix}
\begin{document}

\NiceMatrixOptions{cell-space-limits=1pt}
\begin{NiceTabular}{|c|p{1cm}|}
    \hline
    foo &  \\
    \hline
     a & É \\
    \hline  
\end{NiceTabular}

\end{document}

上述代码的输出

相关内容