我想制作一个表格作为@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
: