表格列宽规则

表格列宽规则

我想在表格中设置规则,以“删除”一行中的多个连续单元格。我希望这些规则自动调整为列宽。

在此处输入图片描述

例如第一列的宽度由 决定foobar,第二列的宽度由 决定barbarbar,第三列的宽度由 决定foo。第一条规则的宽度为\widthof{barbarbar}+2\tabcolsep+\widthof{foo},第二条规则的宽度为\widthof{foo}

上面的表格是由以下代码生成的:

\documentclass{standalone}
\usepackage{calc}
\begin{document}

\begin{tabular}{ l l l }
    foo & bar & foo  \\
    foobar & barbarbar \\
    bar & \multicolumn{2}{l}{\rule[0.5ex]{\widthof{barbarbar}+2\tabcolsep+\widthof{foo}}{0.5pt}} \\
    bar & foo & \rule[0.5ex]{\widthof{foo}}{0.5pt} \\
\end{tabular}

\end{document}

我感兴趣的是如何自动获取列的宽度并在同一个表格中使用它们来设置规则的宽度,这样就不必手动将它们指定为\widthof{barbarbar}+2\tabcolsep+\widthof{foo}\widthof{foo}。因此,如果我将foo最后一列更改为foofoo,我希望规则的宽度自动调整:

在此处输入图片描述

感谢您的帮助!

答案1

在您的原始代码旁边,这里有使用或\hrulefill来自\xhfill包的两个版本xhfill

在此处输入图片描述

\documentclass{standalone}
\usepackage{calc}
\usepackage{xhfill} % provides the \xrfill command used in the third example
\begin{document}

\begin{tabular}{ l l l }
    foo & bar & foo  \\
    foobar & barbarbar \\
    bar & \multicolumn{2}{l}{\rule[0.5ex]{\widthof{barbarbar}+2\tabcolsep+\widthof{foo}}{0.5pt}} \\
    bar & foo & \rule[0.5ex]{\widthof{foo}}{0.5pt} \\
\end{tabular}

\begin{tabular}{ l l l }
    foo & bar & foo  \\
    foobar & barbarbar \\
    bar & \multicolumn{2}{l}{\hrulefill} \\
    bar & foo & \hrulefill \\
\end{tabular}


\begin{tabular}{ l l l }
    foo & bar & foo  \\
    foobar & barbarbar \\
    bar & \multicolumn{2}{l}{\xrfill[0.75ex]{0.2pt}} \\
    bar & foo & \xrfill[0.75ex]{0.2pt} \\
\end{tabular}


\end{document}

相关内容