David Reiter 将以下代码传递给我,用于生成 CCG 证明。只要不加载,此代码就可以正常工作colortbl
。
没有colortbl
我得到:
我colortbl
得到:
有办法解决这个问题吗?CCG 的出气方式不同吗?我想同时使用这两个包。
\documentclass{article}
\newcommand{\deriv}[2]
{ %\arraycolsep=.25em
\renewcommand{\arraystretch}{.5}
\ensuremath{\begin{array}[t]{@{}*{#1}{c}@{}}
#2
\end{array}} }
\newcommand{\hr}{\ensuremath{\hrulefill}}
\newcommand{\forwardapp}{\ensuremath{\hrulefill_{>}}}
\newcommand{\backwardapp}{\ensuremath{\hrulefill_{<}}}
\newcommand{\bs}{\char`\\}
\usepackage{colortbl}
\begin{document}
\deriv{4}{
the & cat & chased & Mary\\
\hr & \hr & \hr & \hr \\
np/n & n & (s\bs np)/np & np\\
\multicolumn{2}{@{}c}{\forwardapp} & \multicolumn{2}{c@{}}{\forwardapp}\\
\multicolumn{2}{c}{{np}} & \multicolumn{2}{c@{}}{{s\bs np}}\\
\multicolumn{4}{@{}c@{}}{\backwardapp}\\
\multicolumn{4}{c@{}}{{s}}\\
}
\end{document}
答案1
colortbl 文档确实警告不要在 colortbl 中使用无限拉伸,因此您需要更有力地挤压它:
\documentclass{article}
%all the %% are needed...
\newcommand{\deriv}[2]
{%% %\arraycolsep=.25em
\renewcommand{\arraystretch}{.5}%%
\ensuremath{\begin{array}[t]{@{}*{#1}{c}@{}}
#2
\end{array}}%%
}
\def\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern0pt }
\newcommand{\hr}{\ensuremath{\hrulefilll}}
\newcommand{\forwardapp}{\ensuremath{\hrulefilll_{>}}}
\newcommand{\backwardapp}{\ensuremath{\hrulefilll_{<}}}
\newcommand{\bs}{\char`\\}
\usepackage{colortbl}
\begin{document}
\deriv{4}{
\mathrm{the} & \mathrm{cat} & \mathrm{chased} & \mathrm{Mary}\\ %math italic too painful
\hr & \hr & \hr & \hr \\
np/n & n & (s\bs np)/np & np\\
\multicolumn{2}{@{}c}{\forwardapp} & \multicolumn{2}{c@{}}{\forwardapp}\\
\multicolumn{2}{c}{{np}} & \multicolumn{2}{c@{}}{{s\bs np}}\\
\multicolumn{4}{@{}c@{}}{\backwardapp}\\
\multicolumn{4}{c@{}}{{s}}\\
}
\end{document}