![表格超过 9 列时 hhline 出现问题](https://linux22.com/image/283365/%E8%A1%A8%E6%A0%BC%E8%B6%85%E8%BF%87%209%20%E5%88%97%E6%97%B6%20hhline%20%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98.png)
我发现当参数大于时,hhline 不会打印行,就像9
这样。相反,如果按照以下文件所示\hhline{|*14{-}|}
操作,效果会很好:\hhline{|*9{-}*5{-}|}
\documentclass{article}
\usepackage{hhline}
\usepackage{colortbl}
\begin{document}
\begin{center}
\small\sf
\begin{tabular}{|c|c|c|c|c|c|c|c|c|} \hhline{|*9{-}|}
\rowcolor[gray]{.8} & & \multicolumn{7}{c|}{Year} \\ \hhline{|*9{-}|}
a & a & a & a & a & a & a & a & a \\ \hhline{|*9{-}|}
\end{tabular}
\end{center}
\begin{center}
\small\sf
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hhline{|*9{-}*5{-}|}
\rowcolor[gray]{.8} & & \multicolumn{12}{c|}{Year} \\ \hhline{|*9{-}*5{-}|}
a & a & a & a & a & a & a & a & a & a & a & a & a & a \\ \hhline{|*9{-}*5{-}|}
\end{tabular}
\end{center}
\begin{center}
\small\sf
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hhline{|*14{-}|}
\rowcolor[gray]{.8} & & \multicolumn{12}{c|}{Year} \\ \hhline{|*14{-}|}
a & a & a & a & a & a & a & a & a & a & a & a & a & a \\ \hhline{|*14{-}|}
\end{tabular}
\end{center}
\end{document}
这是预期的行为吗?
答案1
预期的事情是将数字放入{...}
中\hhline{|*{14}{-}|}
。如果你只这样做\hhline{|*14{-}|}
,LaTeX 实际上会认为你想要复制1
字符串的时间4
,而不是14
字符串的乘积-
。
它在一位数上正确地工作,这一事实有点不幸,因为人们认为它是正确的语法;但事实并非如此。
附注:请不要使用\sf
,\sffamily
而应使用 。原因在问题中解释:\textit
我使用或\it
或\bfseries
等有关系吗\bf
?