\upbracefill 填充整个表格单元格并包装 colortbl

\upbracefill 填充整个表格单元格并包装 colortbl

在我的文档中,我发现当我调用\upbracefill表格单元格时,生成的括号并未占据单元格的整个宽度。

在创建了产生此行为的最小示例(如下所示)之后,我发现问题在于包含了 colortbl 包。

当我从我的一个文档中删除此包时,由此产生的括号 \upbracefill确实填满了整个单元格的宽度。

但是,对于我的文档,我需要colortbl

附件是复制此行为的示例。您可以尝试以两种方式构建此小文档,包括带和不带行\usepackage{colortbl}

我需要 的正常行为来\upbracefill填充整个单元格。如何使用 包来实现这一点colortbl

我正在使用 LaTeX 版本 3.1415926-2.6-1.40.14 (TeX Live 2014/dev)

\documentclass[letterpaper]{book}

\usepackage{colortbl} % TRY COMMENTING THIS OUT, TOO

\begin{document}

\begin{tabular}{  l llll llll }

letters: & a  & b & c & d & e & f & g & h  \\

blah          & \multicolumn{8}{c}{\upbracefill}    \\
blah          & \multicolumn{8}{l}{\upbracefill}    \\
\end{tabular}

\end{document}

答案1

您可以\upbracefill手动构建它:

在此处输入图片描述

\documentclass{article}

\usepackage{colortbl}

\begin{document}

\begin{tabular}{ *{9}{l} }
  letters: & a  & b & c & d & e & f & g & h  \\
  blah     & \multicolumn{8}{c}{\raisebox{.5\normalbaselineskip}[0pt][0pt]{$\underbrace{\phantom{abcdefgh}\hspace*{14\tabcolsep}}$}} \\
  blah     & \multicolumn{8}{l}{\raisebox{.5\normalbaselineskip}[0pt][0pt]{$\underbrace{\phantom{abcdefgh}\hspace*{14\tabcolsep}}$}} \\
\end{tabular}

\end{document}

使用\phantom隐藏等效的列条目,而每列之间有 2\tabcolsep个。如果测量结果有点难以处理,您可以插入长度以大致匹配宽度,例如\hspace*{12.5em}本例:

在此处输入图片描述

\documentclass{article}

\usepackage{colortbl}

\begin{document}

\begin{tabular}{ *{9}{l} }
  letters: & a  & b & c & d & e & f & g & h  \\
  blah     & \multicolumn{8}{c}{\raisebox{.5\normalbaselineskip}[0pt][0pt]{$\underbrace{\phantom{abcdefgh}\hspace*{14\tabcolsep}}$}} \\
  blah     & \multicolumn{8}{l}{\raisebox{.5\normalbaselineskip}[0pt][0pt]{$\underbrace{\hspace*{12.5em}}$}} \\
\end{tabular}

\end{document}

有关水平宽度的更多信息,请参阅有哪些命令可以控制水平间距?

答案2

与。{NiceTabular}nicematrix

\documentclass[letterpaper]{book}
\usepackage{nicematrix}
% \usepackage{colortbl} % the output is the same with or without colortbl

\begin{document}

\begin{NiceTabular}{*{9}{l}}
  letters: & a  & b & c & d & e & f & g & h  \\
  blah     & \\
  blah     & \\
\CodeAfter
  \UnderBrace[yshift=-2mm]{1-2}{2-9}{}
  \UnderBrace[yshift=-2mm]{1-2}{3-9}{}
\end{NiceTabular}

\end{document}

无论有没有包,输出都是相同的colortbl(但是,nicematrix有自己的工具来为单元格、行和列着色)。

上述代码的输出

相关内容