colortbl 和 \hrulefill 之间的冲突

colortbl 和 \hrulefill 之间的冲突

我定义了一个新环境\CCG,它接受两个参数(即文本上方和下方)和一个可选后缀。我用它\hrulefill来确保水平线填充后缀前的空间。

该解决方案似乎被包弄乱了colortbl(例如,当我使用着色单元格时)。

没有 colortbl 一切都很好这条线感觉不到空间

我如何使用colortbl并保持类似的结构CCG?手动编码\hrule大小不是一个解决方案,因为 CCG 结构可以嵌套,并且文本的长度也会变化。

具有嵌套结构的 MWE2:

\documentclass[10pt,a4paper]{article}

\usepackage{colortbl}

\newcommand{\CCG}[3][]{
\begin{tabular}[t]{@{\hspace{-3pt}}c@{\hspace{-3pt}}}
#2\\[-7pt]
\hrulefill\raisebox{-2.5pt}{\footnotesize{#1}}\\
    \begin{tabular}[t]{@{}c@{}}
        #3
    \end{tabular}
\end{tabular}
}  

\begin{document}

\CCG[suffix]{\cellcolor{green}above text}{below text}
%\hspace{2cm}
%\CCG[suffix]{above text}{below text}
\vspace{5mm}

\CCG[$<$]{
    \CCG[$>$]{%
        \CCG{some}{$NP/N$}
        \CCG{man}{$N$}}
    {$NP$} 
    \CCG{run}{$S\backslash NP$}}
    {$S$}

\end{document}

答案1

评论colortbl.dtx表明,该包的作者 David Carlisle故意地将单元格周围的一阶无限粘连 ( ) 改为fil二阶无限粘连 ( fill),目的是为了“阻止人们在表格条目中放置拉伸粘连”。你可以很容易地看到这种粘连\showlists

一个可行但却糟糕的解决方法如下:

\documentclass[10pt,a4paper]{article}

\usepackage{colortbl}

\newcommand{\CCG}[3][]{
\begin{tabular}[t]{@{\hspace{-3pt}}c@{\hspace{-3pt}}}
#2\\[-7pt]
\leavevmode \leaders \hrule \hskip 0pt plus 1filll \kern 0pt % <<< change
    \raisebox{-2.5pt}{\footnotesize{#1}}\\
    \begin{tabular}[t]{@{}c@{}}
        #3
    \end{tabular}
\end{tabular}
}  

\begin{document}

\CCG[suffix]{\cellcolor{green}above text}{below text}
\hspace{2cm}
\CCG[suffix]{above text}{below text}
% \showboxbreadth = 1000
% \showboxdepth = 10
% \showlists
\vspace{5mm}

\CCG[$<$]{
    \CCG[$>$]{%
        \CCG{some}{$NP/N$}
        \CCG{man}{$N$}}
    {$NP$} 
    \CCG{run}{$S\backslash NP$}}
    {$S$}

\end{document}

但我不能承担任何责任,因为这可能会导致彩色表格包裹! ;-)

编辑

顺便说一下,这是输出:

上述代码的输出

答案2

我使用计算用于计算文本宽度然后\rule根据文本宽度设置大小的包。

虽然线条画得很漂亮(这是我需要的),但单元格颜色有点混乱。但它在新环境之外运行良好。

了解为什么颜色在新环境中超出边界将会很有帮助。

在此处输入图片描述

\documentclass[10pt,a4paper]{article}

\usepackage{colortbl}
\usepackage{calc}

\newcommand{\newccg}[3][]{%
\begin{tabular}[t]{@{\kern-1pt}c@{\kern-1pt}}
#2
\\[-1mm]
\rule[2.3pt]{\maxof{\widthof{#2}}{\widthof{#3}}-\widthof{#1}}{1pt}#1
\\[-1mm]
#3
\end{tabular}
}

\begin{document}

\newccg[$>>>$]{AA}{BBBBB}
~
\newccg[$<$]{CCCCCCCC}{DD}
~
\newccg[$<$]{
    \newccg[$>$]{%
        \newccg{\cellcolor{green}some}{$NP/N$}
        \newccg{man}{$N$}}
    {$NP$}
    \newccg{run}{\cellcolor{red}$S\backslash NP$}}
    {$S$}

\begin{tabular}{c | c}\hline
A & \cellcolor{red}A\\\hline
 \cellcolor{green}C & D\\\hline
\end{tabular}

\end{document}

相关内容