如何在表格中的两行之间画一条线?(当字符串之间没有空格时)

如何在表格中的两行之间画一条线?(当字符串之间没有空格时)

我使用 longtabu 包来创建表格,当我使用 \\ 来分隔每一行时,这是可以的,见下文

\begin{center}

\begin{longtabu} to \textwidth {|X[1 , p ] |X[1 , p ] | X[2 , p ]| X[2 , p ]|X[1 , p ]|X[1 , p ]|}

\caption{A simple longtabu example}\\

\hline

\textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F}  \\

\hline

\endfirsthead

\multicolumn{6}{c}%

{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\

\hline

\textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F}  \\

\hline

\endhead

\hline \multicolumn{6}{r}{\textit{Continued on next page}} \\

\endfoot

\hline

\endlastfoot



ab&cd&ef&gh&ij&kq\\ab&cd&ef&gh&ij&kq\\ab&cd&ef&gh&ij&kq\\\end{longtabu}\end{center}\end{document}

在此处输入图片描述

但如果我使用 \hline 或 \hline\,如下所示,编译总是显示错误

ab&cd&ef&gh&ij&kq\hline\ab&cd&ef&gh&ij&kq\hline\ab&cd&ef&gh&ij&kq\hline\\end{longtabu}\end{center}\end{document}   

或者

ab&cd&ef&gh&ij&kq\hlineab&cd&ef&gh&ij&kq\hlineab&cd&ef&gh&ij&kq\hline\end{longtabu}\end{center}\end{document}    

或 \\\hline

ab&cd&ef&gh&ij&kq\\\hlineab&cd&ef&gh&ij&kq\\\hlineab&cd&ef&gh&ij&kq\\\hline\end{longtabu}\end{center}\end{document}    

看起来像这样

在此处输入图片描述

我将它们写在一起而不留任何空格的原因是,我有一个创建表的程序,该程序使用字符串来创建表。

我想在表格的每一行之间加一条线,怎么做?\hline 或 \hline\ 都不起作用,例如 \hline 可能读作 \hlineab...

答案1

在建表时,该\hline命令位于一行的最开始处:这意味着该命令紧接着该\begin{tabular}{<column-spec>}行,位于第一行之前,或紧接着\\其他行之后。

\(La)TeX 命令由转义字符 ( ) 和一系列字母组成,直到第一个非字母或者转义字符 ( \) 后跟一个非字母。遵循这些规则,\hlineab是不同于 的命令名称\hline,两者都由转义序列和字母组成。因此,构建表格的系统需要包括某物之后\hline将其与 分开ab。通常情况下,只需在此处添加一个空格即可

\\ \hline ab

如果由于某种原因无法实现,则添加一个空组也可以完成此任务

\\ \hline{}ab

(后一个技巧也用于阻止 TeX 在命令后跳过空格:这里不相关,但在例如编写时确实会出现\LaTeX{} is a document preparation system:尝试不使用括号并查看效果。)

相关内容