减小方程的间隙大小并将“文本”置于表格第一行的中心

减小方程的间隙大小并将“文本”置于表格第一行的中心

我想制作一个表格作为@Zarko 的回答减少表格前和表格之间的空间以添加新部分。但我有一个问题:

在此处输入图片描述

第一行的“文本”未位于单元格的中心。这是代码:

\documentclass[a4paper,oneside,11pt]{book}
\usepackage[hmargin={4cm,3cm},vmargin={4cm,3cm}]{geometry}
\usepackage{array}
\usepackage{longtable, makecell, tabularx}
\renewcommand\theadfont{\normalsize\bfseries}
\renewcommand\theadgape{}
\usepackage{amsmath}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{newtxmath}
\usepackage[labelsep=period]{caption}
\usepackage{lipsum}

\makeatletter
\g@addto@macro\normalsize{%
    \setlength\abovedisplayskip{2pt}
    \setlength\belowdisplayskip{2pt}
    \setlength\abovedisplayshortskip{0pt}
    \setlength\belowdisplayshortskip{0pt}
}
\makeatother

\begin{document}
    \lipsum[1-4]
    \begingroup
    \setcellgapes{3pt}
    \makegapedcells
    \begin{longtable}{|c|c|c|c|}
        \caption{That is my longtable, which is supposed to reproduce my problem}
        \label{:tab:longtable}          \\
        \hline
        \thead{text} & \thead{text} & \thead{text} & \thead{text}   \\
        \hline
        \endfirsthead
        \caption[]{That is my longtable, which is supposed 
            to reproduce my problem (cont.)}             \\
        \hline
        \thead{text} & \thead{text} & \thead{text} & \thead{text}   \\
        \hline
        \endhead
        \multicolumn{4}{r @{}}{\small\emph{continue on the next page}}  \\*
        \multicolumn{4}{@{} l}{\small Source: cnihe3i3nixom}    \\
        \endfoot
        \hline
        \endlastfoot
        %%%% table nody    
        Variable 1   & Variable 2   & Variable 3   & variable 4     \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
        \hline
        uxbwyy       & xneio22xi    & nc33i3       & 44444          \\
    \end{longtable}
    \endgroup
    \lipsum[6-8]
    \[\int \sin x dx = -\cos x +c\]
    where $c$ is constant.
\end{document}

如果我省略代码:

\makeatletter
    \g@addto@macro\normalsize{%
        \setlength\abovedisplayskip{2pt}
        \setlength\belowdisplayskip{2pt}
        \setlength\abovedisplayshortskip{0pt}
        \setlength\belowdisplayshortskip{0pt}
    }
\makeatother

第一行的“文本”可以居中,但是等式前后有空隙:

在此处输入图片描述

所以,我希望既减小方程的间隙大小,又将“文本”置于第一行的中心。

有人可以帮我做到这一点吗?

答案1

  • 列标题周围有更多空间\thead是由设计决定的,所以如果你不喜欢它,就不要使用它。用以下方式替换它\textbf

在此处输入图片描述

  • 我无法在您的等式周围重现更大的垂直空间,但观察到数学和文本字体高度之间的差异。
  • 您应该知道,该helvet字体比中定义的数学字体高出约 20% newtxmath
  • 要消除这种补救措施,有两种方法:
    • 使用缩放helvet字体:
\usepackage[scaled=0.82]{helvet}
\renewcommand{\familydefault}{\sfdefault}
  • 而是helvet使用字体newtxtext,它与以下字体搭配效果更佳newtxmath
\usepackage{newtxtext, newtxmath}
\renewcommand{\familydefault}{\sfdefault}

未缩放的使用helvet

在此处输入图片描述

使用缩放helvet

在此处输入图片描述

用于newtxtext

\renewcommand{\familydefault}{\sfdefault}

相关内容