表格中规则前后的垂直间距

表格中规则前后的垂直间距

考虑这个例子:

\documentclass{article}
\begin{document}
\begin{tabular}{|c|}
  \downbracefill\\\hline
  text\\\hline
  \upbracefill
\end{tabular}
\end{document}

在生成的文档中,downbracefill第一个 和之间的垂直间距与第二个和hline之间的垂直间距不同。这也可以用而不是和来重现。hlineupbracefill\hrulefill\downbracefill\upbracefill

我认为这与基线的放置有关。

hrule在给定示例的情况下,如何控制前后的垂直空间以使它们相等?

答案1

上/下括号填充仅仅是纯 TeX 宏 中的一个组件(它由三个子组件组成,但现在并不重要)\overbrace\underbrace此宏将其添加到给定文本的上方/下方,没有任何垂直跳跃,结果是框在框上。因此,上/下括号填充相对于一般支撑或括号的垂直位置并不重要。D. Knuth 选择的这些组件的垂直位置比您需要的要低一些。您可以尝试排版:

(\downbracefill), (\upbracefill)

你会看到。D. Knuth 不需要更精确地解决垂直位置问题,我们只能猜测为什么选择这个位置。

编辑:如果您希望\upbracefill表格具有水平可拉伸性并且还具有垂直规则,那么您可以尝试先应用仿射变换(移位),\upbracefill然后再应用逆变换:

\def\upbracecorr{3.5 }
\def\xupbracefill{\pdfliteral{1 0 0 1 0  \upbracecorr cm}%
   \upbracefill   \pdfliteral{1 0 0 1 0 -\upbracecorr cm}}

\begin{tabular}{|c|}
  \downbracefill\\\hline
  text text text\\\hline
  \xupbracefill
\end{tabular}

相关内容