\usepackage[table]{xcolor} 和 \hrulefill 之间的相互作用

\usepackage[table]{xcolor} 和 \hrulefill 之间的相互作用

这是关于多列字段内的水平规则/线 后来解决了水平线的问题,但使用

\usepackage[table]{xcolor}

所需的行不跨越组合单元格,而只是跨越第一个单元格:

妇女权利委员会:

\documentclass[twoside]{book}

\usepackage{tabu}
\usepackage{longtable}
\usepackage[table]{xcolor}

\begin{document}

\begin{longtabu}spread 0pt [c]{*{4}{|X[-1]}|}
\hline
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
Column 1&\multicolumn{2}{l|}{\hrulefill
 }&Column4 \\\cline{1-4}
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
\end{longtabu}

\end{document}

这会导致错误的输出,因为水平线仅位于组合单元格的第一部分:

在此处输入图片描述

预期输出为:

在此处输入图片描述

我使用 tabu 包,我知道这个包存在一些问题,但我使用的是旧版本的 Tex Live,而对于 2019 版本,我使用“已保存的”tabu 包(和朋友)。

答案1

问题在于colortbl使用fill胶水,而 LaTeX 内核仅使用fil胶水。

你需要一个“更无限” \hrulefill

\documentclass[twoside]{book}

\usepackage{tabu}
\usepackage{longtable}
\usepackage[table]{xcolor}

\makeatletter
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
\makeatother

\begin{document}

\begin{longtabu} spread 0pt [c]{*{4}{|X[-1]}|}
\hline
Column 1 & Column 2 & Column 3             & Column4 \\ \hline
Column 1 & \multicolumn{2}{l|}{\hrulefill} & Column4 \\ \hline
Column 1 & Column 2 & Column 3             & Column4 \\ \hline
\end{longtabu}

\bigskip

\begin{longtabu} spread 0pt [c]{*{4}{|X[-1]}|}
\hline
Column 1 & Column 2 & Column 3              & Column4 \\ \hline
Column 1 & \multicolumn{2}{l|}{\hrulefilll} & Column4 \\ \hline
Column 1 & Column 2 & Column 3              & Column4 \\ \hline
\end{longtabu}

\end{document}

使用旧的 TeX Live 进行编译。

在此处输入图片描述

答案2

不使用时:

\usepackage[table]{xcolor}

\usepackage{xcolor}

这条线路看上去又完整了。

梅威瑟:

\documentclass[twoside]{book}

\usepackage{tabu}
\usepackage{longtable}
\usepackage{xcolor}

\begin{document}

\begin{longtabu}spread 0pt [c]{*{4}{|X[-1]}|}
\hline
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
Column 1&\multicolumn{2}{l|}{\hrulefill
 }&Column4 \\\cline{1-4}
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
\end{longtabu}

\end{document}

相关内容