乳胶\ hline间距

时间:2009-03-30 06:18:54

标签: latex

如何在表格中的\ hline后添加间距?我可以在使用\ vspace之前添加间距,但是如果我尝试在\ hline之后添加间距,则间距将在下一行文本之后。以下是我到目前为止的情况:

\multicolumn{2}{Hello!} \vspace{4pt} \\
\hline \textit{Hi!} & \textit{Ho!}

我不想在\ hline之后添加换行符并执行类似\ vspace {-xxpt}或使用\ rule的操作,因为从Hevea生成的HTML文档会很难看。

6 个答案:

答案 0 :(得分:17)

使用\hline创建一个新行,并使用负间距修剪它:

\multicolumn{2}{c}{Hello!} \\\

\hline \\\ [-1.5ex]

\textit{Hi!} & \textit{Ho!}

答案 1 :(得分:8)

我认为你的问题是当每行之间的hlines时,表中的垂直linekip不够大。解决方案是添加

\usepackage{tabularx}

\setlength{\extrarowheight}{3pt}

进入你的序言。

答案 2 :(得分:4)

在尝试自己回答这个问题时,我遇到了来自https://www.msu.edu/~harris41/latex_tablespacing.html

的以下黑客攻击

我正在使用M456上面提到的解决方案,但这在表格环境中不能很好地适应垂直规则,因此我认为这是一个错误的选择作为默认解决方案(通常我不包括垂直规则,但是为了清楚起见,我的一张桌子确实需要它们。

这个想法是定义一个支柱,它应该包含在一个单元格的一个单元格中,该行位于hline之前或之后。即在序言中:

\newcommand\tstrut{\rule{0pt}{2.4ex}}
\newcommand\bstrut{\rule[-1.0ex]{0pt}{0pt}}

\begin{tabular}{ccc}
\hline\hline
Head 1  & Head 2 & Head 3 \tstrut \bstrut \\\\
\hline
a1 & a2 &  a3 \tstrut \\\\
b1 & b2 &  b3 \\\\
c1 & c2 &  c3 \\\\
d1 & d2 &  d3 \bstrut \\\\
\hline\hline
\end{tabular}

(我在网页上稍微调整了支柱尺寸 - 根据您的喜好进行调整)

可能有更好的方法可以做到这一点,但这似乎足够干净,并且很容易定制。

答案 3 :(得分:3)

如果您担心除TeX以外的其他程序的输出,正确的方法是定义更高级别的命令或环境来执行您想要的操作,使用定义中的任何脏黑客来使TeX输出看起来很好,并分别定义其HTML含义(我不知道在Hevea中如何做到这一点,但我想任何合理的TeX处理器都会有这种设施)。

也许这已经为你解决了:例如booktabs会产生你喜欢的LaTeX表格吗? Hevea能很好地处理booktabs命令吗?如果booktabs不能达到你想要的效果,那么它的源代码可能会很有趣 - 它只是设置行的宽度和空格,以便表格看起来很漂亮。

答案 4 :(得分:2)

这可能会有所帮助:

\newcommand{\hlinee}{\begin{tabular}{p{\textwidth}}\hline\ \\\end{tabular}}

另外还有另一个:

\newcommand{\hlineee}{\begin{tabular}{p{\textwidth}}\hline\ \end{tabular} \\[-2.5ex] }

然后使用例如:

foo\\
\hlineee
foo2

NTG

答案 5 :(得分:0)

不确定这是否适用于表格环境,但您可以在\ hline周围尝试\ minipage:

\begin{minipage}{ <width> }
... \hline \vspace{4pt}
\end{minipage}