考虑这个例子:
\documentclass{article}
\begin{document}
\begin{tabular}{|c|}
\downbracefill\\\hline
text\\\hline
\upbracefill
\end{tabular}
\end{document}
在生成的文档中,downbracefill
第一个 和之间的垂直间距与第二个和hline
之间的垂直间距不同。这也可以用而不是和来重现。hline
upbracefill
\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}