![需要帮助调整表格中的水平间距](https://linux22.com/image/255883/%E9%9C%80%E8%A6%81%E5%B8%AE%E5%8A%A9%E8%B0%83%E6%95%B4%E8%A1%A8%E6%A0%BC%E4%B8%AD%E7%9A%84%E6%B0%B4%E5%B9%B3%E9%97%B4%E8%B7%9D.png)
我正在制作一个表格,但无法调整它。这是屏幕截图。
我使用了以下 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 范数表达式。通过创建这样的命令,如果您决定更改函数的外观,将来就会轻松得多。\bottomrule
booktabs
\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 型列也可能足够,但我更喜欢垂直居中)。