这是关于多列字段内的水平规则/线 后来解决了水平线的问题,但使用
\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}