需要帮助调整表格中的水平间距

需要帮助调整表格中的水平间距

我正在制作一个表格,但无法调整它。这是屏幕截图。在此处输入图片描述 我使用了以下 tex 代码

\begin{table}[ht]

\centering

\begin{tabular}{c c c c c c c}

\hline\hline

Methods &computing time & iterative times & $\|A X_k A - A\|_2$ & $\|X_k A X_k - X_k\|_2$  & $\|(A X_k)^* - A X_k\|_2$ & $\|(A X_k)^* - A X_k\|_2$ \\ [0.5ex]

\hline

method() & &  &  &  &  & \\
proposed method &  &  &  &  &  &  \\
\hline

\end{tabular}

\end{table}

有人能帮助我吗?我将非常感激你。

答案1

您的表格中有相当多的列,并且每个列标题都很宽。为了使表格适合文本块,我怀疑您需要

  • 稍微减小表格中使用的字体大小,
  • 减少列间空白,并
  • 通过将第 2 列和第 3 列的标题分成两行来减少它们的宽度。

另外,我还建议您使用软件包提供的命令\toprule\midrule和,并创建一个名为 的命令来表示 L_2 范数表达式。通过创建这样的命令,如果您决定更改函数的外观,将来就会轻松得多。\bottomrulebooktabs\norm\norm

最后,您没有指定使用的字体大小、纸张宽度和边距宽度,因此我不得不在下面的 MWE 中对这些重要参数做出一些假设。MWE 从一条横跨文本块宽度的水平线开始,让您了解这个重要参数的值。

在此处输入图片描述

\documentclass[10pt]{article}
\usepackage[margin=1in]{geometry} % assume 1" margins
\usepackage{amsmath,booktabs}
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}
\begin{document}
\noindent Width of text block:
\hrule 

\begin{table}[ht]
\small % reduce font size by about 10%
\caption{My table}
\centering
\setlength\tabcolsep{2.5pt} % default value: 5pt
\begin{tabular}{@{}l *{6}{c} @{}} % remove blank spaces at ends of table
\toprule
Methods &
computing  & 
iterative & 
$\norm{A X_k A - A}_2$ & 
$\norm{X_k A X_k - X_k}_2$  & 
$\norm{(A X_k)^* - A X_k}_2$ & 
$\norm{(A X_k)^* - A X_k}_2$ \\ 
& time & times\\ 
\midrule
method() & &  &  &  &  & \\
proposed method &  &  &  &  &  &  \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案2

您还可以使用表格-包裹。

以下是 MWE:

\documentclass{scrartcl}
\usepackage{booktabs,tabulary}

\begin{document}
\begin{table}[ht]

\centering

\begin{tabulary}{\linewidth}{CCCCCCC}

\toprule

Methods & computing time & iterative times & $\|A X_k A - A\|_2$ & $\|X_k A X_k - X_k\|_2$  & $\|(A X_k)^* - A X_k\|_2$ & $\|(A X_k)^* - A X_k\|_2$ \\ [0.5ex]

\midrule

method() & &  &  &  &  & \tabularnewline

proposed method &  &  &  &  &  &  \tabularnewline

\bottomrule

\end{tabulary}

\end{table}

\end{document}

在此处输入图片描述

答案3

除了@T.Verron 建议的调整之外,您可能还希望使用booktabs规则来区分各列(尤其是当您将列分隔宽度设置为如此低的值时)。

\documentclass[a4paper]{article}

\usepackage{booktabs,array}

\begin{document}
\begin{table}
\centering
\small
% manual adjustment of column separation width and cmidrule kerning
\renewcommand{\tabcolsep}{2pt}
\renewcommand{\cmidrulekern}{2pt}
\begin{tabular}{m{1.5cm} m{1.6cm} m{1.3cm} c c c c}
\toprule
Methods & computing time & iterative times & $\|A X_k A - A\|_2$ & $\|X_k A X_k - X_k\|_2$  & $\|(A X_k)^* - A X_k\|_2$ & $\|(A X_k)^* - A X_k\|_2$ \\

\cmidrule(r){1-1} \cmidrule(lr){2-2} \cmidrule(lr){3-3} \cmidrule(lr){4-4} \cmidrule(lr){5-5} \cmidrule(lr){6-6} \cmidrule(l){7-7}
method() & &  &  &  &  & \\
proposed method &  &  &  &  &  &  \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

由于我们现在使用的 a\tabcolsep为 2 pt,因此我将 s 的字距减小\cmidrule为 2 pt(默认值为 0.5 em)。

我还引入了 m 列,以允许固定宽度的单元格具有换行功能(p 型列也可能足够,但我更喜欢垂直居中)。

相关内容