我需要在多列单元格内添加一条水平线。当水平线仅在一个单元格中时,这是没有问题的,当使用多列跨越 2 个单元格时,我会收到一条错误消息:
! You can't use `\hrule' here except with leaders.
<argument> \hrule
l.22 \end{longtabu}
我的 MWE:
\documentclass[twoside]{book}
\usepackage{tabu}
\usepackage{longtable}
\begin{document}
\begin{longtabu}spread 0pt [c]{*{3}{|X[-1]}|}
\hline
Column 1&Column 2&Column 3 \\\cline{1-3}
Column 1&\hrule
&Column 3 \\\cline{1-3}
Column 1&Column 2&Column 3 \\\cline{1-3}
\end{longtabu}
\begin{longtabu}spread 0pt [c]{*{4}{|X[-1]}|}
\hline
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
Column 1&\multicolumn{2}{l|}{\hrule
}&Column4 \\\cline{1-4}
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
\end{longtabu}
\end{document}
生成的图像(出错时进入批处理模式):
在第二个表格的第二行中,我想要合并第 2 列和第 3 列中的一行,就像第一个表格的第 2 行第 2 列中所示的那样。
我使用 tabu 包,我知道这个包存在一些问题,但我使用的是旧版本的 Tex Live,而对于 2019 版本,我使用“已保存的”tabu 包(和朋友)。
答案1
请使用\hrulefill
而不是\hrule
\documentclass[twoside]{book}
\usepackage{tabu}
\usepackage{longtable}
\begin{document}
\begin{longtabu}spread 0pt [c]{*{3}{|X[-1]}|}
\hline
Column 1&Column 2&Column 3 \\\cline{1-3}
Column 1&\hrule
&Column 3 \\\cline{1-3}
Column 1&Column 2&Column 3 \\\cline{1-3}
\end{longtabu}
\begin{longtabu}spread 0pt [c]{*{4}{|X[-1]}|}
\hline
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
Column 1&\multicolumn{2}{c|}{\hrulefill} &Column4 \\\cline{1-4}
Column 1&Column 2&Column 3 &Column4 \\\cline{1-4}
\end{longtabu}
\end{document}