嵌入式禁忌环境中的垂直空间控制

嵌入式禁忌环境中的垂直空间控制

使用嵌入式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}

在此处输入图片描述

相关内容