使用嵌入式tabu
环境时,我很难在外部表和内部表中设置不同的垂直空间。考虑以下简单的嵌入式tabu
表:
\documentclass[a4paper]{article}
\usepackage{tabu}
\begin{document}
\begin{tabu}{|c|}
\hline
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\end{tabu}
\end{document}
该表呈现如下:
如您所见,大文本太靠近上方\hline
。为了解决这个问题,我尝试\tabulinesep
在第一个/外面的表格之前使用命令:
(我使用了较大的 5pt 间距来使发生的事情更加明显。)
\documentclass[a4paper]{article}
\usepackage{tabu}
\begin{document}
\tabulinesep=^5pt % <==== At least 5pt above text.
\begin{tabu}{|c|}
\hline
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\end{tabu}
\end{document}
但是,它在垂直规则(线)上方留下了空隙,因为它\tabulinesep
也适用于外面的表格:
为了修复它,我可以使用\tabulinesep
两个内表正上方的命令,它应该像这样应用:
\documentclass[a4paper]{article}
\usepackage{tabu}
\begin{document}
\begin{tabu}{|c|}
\hline
\tabulinesep=^5pt % <==== At least 5pt above text in inner table.
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\tabulinesep=^5pt % <==== At least 5pt above text in inner table.
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\end{tabu}
\end{document}
这将得出正确的结果:
但是,我不想为每个内表重复操作。所以我真正想要的是设置一个全局默认值,然后为外表设置例外。我的猜测是这样的,但它不起作用:
\documentclass[a4paper]{article}
\usepackage{tabu}
\global\tabulinesep=^5pt % <=== Global setting
\begin{document}
\tabulinesep=^0pt % <==== Cannot override for outer table only... :-(
\begin{tabu}{|c|}
\hline
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\begin{tabu}{l|c|r}
left & {\LARGE \textbf{MIDDLE}} & right
\end{tabu} \\
\hline
\end{tabu}
\end{document}
结果是第一张图像(我开始的地方)。
关于设置全局变量\tabusep
然后为外表覆盖它,有什么建议吗?
答案1
如果只使用大写字母,您可以插入一个支柱,仅用于其高度部分。我展示了两个示例。
\documentclass[a4paper]{article}
\usepackage{amsmath} % for a better \smash
\usepackage{tabu}
\begin{document}
\begin{tabu}{|c|}
\hline
\begin{tabu}{l|c|r}
left & \LARGE\smash[b]{\strut}\textbf{MIDDLE} & right
\end{tabu} \\
\hline
\begin{tabu}{l|c|r}
left & \LARGE\strut\textbf{MIDDLEg} & right
\end{tabu} \\
\hline
\end{tabu}
\end{document}