我使用 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
:尝试不使用括号并查看效果。)