带有数学公式的表格中的垂直间距

带有数学公式的表格中的垂直间距

如何强制 LaTeX 在考虑下标、上标等的情况下将表格中的数学公式垂直居中?从下面的输出可以看出,LaTeX 将垂直居中,$JV$并在事后添加了波浪号、帽子和下标。结果是在帽子和波浪号下方有额外的空间,$JV$而在帽子和波浪号上方有很少的空间。

我的表

\documentclass[xcolor=table,svgnames]{beamer} 
\usepackage{booktabs}
\usepackage{amsmath}
\begin{document}
%==============================================================================%
  \begin{frame}{}
    \begin{table}
      \begin{center}
        \rowcolors{1}{}{RoyalBlue!20}             % alternate row coloring
        \newlength{\oldtabcolsep}                 % keep track of old \tabcolsep
        \setlength{\oldtabcolsep}{\tabcolsep}     % 6.0pt
        \setlength{\tabcolsep}{0pt}               % so coloring doesn't run off
                                                  % ends of the table
        \renewcommand{\arraystretch}{1.3}         % because math expressions
                                                  % almost run into each other
        \begin{tabular}{l<{\hspace{\oldtabcolsep}}l<{\hspace{\oldtabcolsep}}l}  
          \toprule
          Estimator & ME & MAE \\
          \specialrule{\lightrulewidth}{0pt}{0pt} % so row-coloring aligns
          \(\widehat{JV}_{\text{na\"{\i}ve}}\)          & 4.37e-07 & 4.37e-07 \\
          \(\widetilde{JV}_{\text{na\"{\i}ve}}\)        & 3.88e-07 & 3.88e-07 \\
          \(\widehat{JV}\)                              & 1.33e-06 & 1.33e-06 \\
          \(\widetilde{JV}\)                            & 1.20e-06 & 1.20e-06 \\
          \bottomrule
        \end{tabular}
      \end{center}
    \end{table}
  \end{frame}
 \end{document}

答案1

您可以在每一行插入一个支撑,而不是作用于\arraystretch

\rowcolors{1}{}{RoyalBlue!20}             % alternate row coloring
\newlength{\oldtabcolsep}                 % keep track of old \tabcolsep
\setlength{\oldtabcolsep}{\tabcolsep}     % 6.0pt
\setlength{\tabcolsep}{0pt}               % so coloring doesn't run off
                                          % ends of the table
\newcommand{\mystrut}{\vrule height 20pt depth 10pt width 0pt }

 \begin{tabular}
   {>{\mystrut}l<{\hspace{\oldtabcolsep}}
    l<{\hspace{\oldtabcolsep}}
    l
   }
\toprule
\multicolumn{1}{l}{Estimator\hspace*{\oldtabcolsep}} & ME & MAE \\
\specialrule{\lightrulewidth}{0pt}{0pt} % so row-coloring aligns
\(\widehat{JV}_{\text{na\"{\i}ve}}\)          & 4.37e-07 & 4.37e-07 \\
\(\widetilde{JV}_{\text{na\"{\i}ve}}\)        & 3.88e-07 & 3.88e-07 \\
\(\widehat{JV}\)                              & 1.33e-06 & 1.33e-06 \\
\(\widetilde{JV}\)                            & 1.20e-06 & 1.20e-06 \\
\bottomrule
\end{tabular}

由于支柱会自动插入到第一列,因此您必须在标题行中对其进行更正。此处设置的支柱尺寸被夸大了;也许令人满意的设置可能是

\newcommand{\mystrut}{\vrule height 3ex depth 1.5ex width 0pt }

答案2

到目前为止,您还没有给出任何反馈。现在我将把我的评论转为答案。

首先不要使用center浮动环境中的环境。答案中给出了解释:我应该使用 center 还是 centering 来表示图形

我知道 beamerfigure和 co. 内部不是 LaTeX 意义上的浮动环境。


包裹单元格空间

cellspace 包的语法很简单,它只提供了 2 个长度和一个特殊的列前缀S

两个长度分别为\cellspacebottomlimit和,\cellspacetoplimit可以通过 进行更改\setlength。在您的示例中,我将两个长度都设置为 5pt。

\documentclass[xcolor=table,svgnames]{beamer} 
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{cellspace}
\begin{document}
%==============================================================================%
  \begin{frame}{}
    \begin{table}
    \centering
    \cellspacebottomlimit=5pt
    \cellspacetoplimit=5pt
%      \begin{center}
        \rowcolors{1}{}{RoyalBlue!20}             % alternate row coloring
        \newlength{\oldtabcolsep}                 % keep track of old \tabcolsep
        \setlength{\oldtabcolsep}{\tabcolsep}     % 6.0pt
        \setlength{\tabcolsep}{0pt}               % so coloring doesn't run off
                                                  % ends of the table
        \renewcommand{\arraystretch}{1.3}         % because math expressions
                                                  % almost run into each other
        \begin{tabular}{Sl<{\hspace{\oldtabcolsep}}l<{\hspace{\oldtabcolsep}}l}  
          \toprule
          Estimator & ME & MAE \\
          \specialrule{\lightrulewidth}{0pt}{0pt} % so row-coloring aligns
          \(\widehat{JV}_{\text{na\"{\i}ve}}\)          & 4.37e-07 & 4.37e-07 \\
          \(\widetilde{JV}_{\text{na\"{\i}ve}}\)        & 3.88e-07 & 3.88e-07 \\
          \(\widehat{JV}\)                              & 1.33e-06 & 1.33e-06 \\
          \(\widetilde{JV}\)                            & 1.20e-06 & 1.20e-06 \\
          \bottomrule
        \end{tabular}
%      \end{center}
    \end{table}
  \end{frame}
 \end{document}

结果如下图所示: 在此处输入图片描述

笔记:该软件包cellspace与 不兼容siunitx。如果您想同时使用这两个软件包,则必须创建自己的文件Mycellspace.sty并将 的内容复制cellspace到新文件中。现在您必须更改

\newcolumntype{S}[1]{>{\bcolumn #1\@nil}#1<{\ecolumn}}

\newcolumntype{O}[1]{>{\bcolumn #1\@nil}#1<{\ecolumn}}

您需要一个未知的列类型。


包裹禁忌

tabu 包提供了更多的灵活性,如下所示。该包提供了长度\tabulinesep\extrarowsep控制空间。在示例中,我设置了\tabulinesep=1.5mm

\documentclass[xcolor=table,svgnames]{beamer} 
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{tabu}

\begin{document}
%==============================================================================%
  \begin{frame}{}
    \begin{table}
    \centering
    \tabulinesep=1.5mm
        \rowcolors{1}{}{RoyalBlue!20}             % alternate row coloring
        \newlength{\oldtabcolsep}                 % keep track of old \tabcolsep
        \setlength{\oldtabcolsep}{\tabcolsep}     % 6.0pt
        \setlength{\tabcolsep}{0pt}               % so coloring doesn't run off
                                                  % ends of the table
        \renewcommand{\arraystretch}{1.3}         % because math expressions
                                                  % almost run into each other
        \begin{tabu}{l<{\hspace{\oldtabcolsep}}l<{\hspace{\oldtabcolsep}}l}  
          \toprule
          Estimator & ME & MAE \\
          \specialrule{\lightrulewidth}{0pt}{0pt} % so row-coloring aligns
          \(\widehat{JV}_{\text{na\"{\i}ve}}\)          & 4.37e-07 & 4.37e-07 \\
          \(\widetilde{JV}_{\text{na\"{\i}ve}}\)        & 3.88e-07 & 3.88e-07 \\
          \(\widehat{JV}\)                              & 1.33e-06 & 1.33e-06 \\
          \(\widetilde{JV}\)                            & 1.20e-06 & 1.20e-06 \\
          \bottomrule
        \end{tabu}
    \end{table}
  \end{frame}
 \end{document}

结果类似于cellspace但适用于siunitx

在此处输入图片描述

相关内容