我需要制作一张看起来像的表格。
我在下面写下了我的代码。
\documentclass[12pt]{article}
\usepackage{latexsym}
\usepackage{amsmath, times, amsfonts, mathrsfs, amssymb}
\begin{document}
\begin{table}[ht]
\caption{\small Comparison results}
\small
\centering
\hline
\begin{tabular}{c c c c c c c c }
\hline
$\beta$ & step & $ \|A^{(2)}_{T,S} - X_k\|_2 $ & $ \|X_k - X_{k-1} \|_2 $ & $ \|A^{(2)}_{T,S} - X_k\|_2 $ & $ \|X_k - X_{k-1} \|_2 $ \\
\hline
& & & & &\\[1ex]
\hline
\end{tabular}
\label{table:nonlin}
\end{table}
\end{document}
我发现很难绘制 $t =1$ 和 $t = 2$ 的水平线,这应该与附加的图像文件类似。我需要帮助来绘制这张表。非常感谢您抽出时间。
答案1
booktabs
使这更容易:
\documentclass[12pt]{article}
\usepackage{latexsym}
\usepackage{booktabs}
\usepackage{amsmath, amsfonts, mathrsfs, amssymb}
\usepackage{mathptmx}% times is deprecated
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\begin{document}
\begin{table}[ht]
\caption{\small Comparison results}
\small
\centering
\begin{tabular}{ *{8}{c} }
\toprule
$\beta$ & step & $ \|A^{(2)}_{T,S} - X_k\|_2 $ & $ \|X_k - X_{k-1} \|_2 $ & $ \|A^{(2)}_{T,S} - X_k\|_2 $ & $ \|X_k - X_{k-1} \|_2 $ \\\cmidrule(lr){3-4}\cmidrule(lr){5-6}
& & & & &\\[1ex]
\bottomrule
\end{tabular}
\label{table:nonlin}
\end{table}
\end{document}
请注意,times
已被弃用并且不应使用。
答案2
我建议您执行以下操作:
由于表格中的几乎所有内容都应在数学模式下排版,因此请使用环境
array
而不是tabular
环境。这样可以避免输入大量$
符号(每个单元格一对)。加载
booktabs
包并使用其宏来获得间距合适的水平线。使用\cmidrule
宏(可选左侧和右侧修剪)来获得中间线。如果您希望将标题以及表格的其余部分设置为“小”,请加载包
caption
并发出命令\captionsetup{font=small}
。如果调整大小命令仅适用于该表格,您可以在表格开头执行此操作;如果文档的所有图形和表格标题都应设置为“小”,则可以在序言中全局执行此操作。加载
mathtools
包并定义一个名为的宏\norm
。这将为您节省大量\|
指令输入。正如其他人已经指出的那样,该
times
包已被弃用。加载mathptmx
包或(我偏爱的)newtxtext
和newtxmath
包。
\documentclass[12pt]{article}
%\usepackage{latexsym} %% latexsym is really ancient
\usepackage{booktabs}
\usepackage{amsfonts, mathrsfs, amssymb}
\usepackage{mathtools} % loads amsmath, provides extra macros
\DeclarePairedDelimiter\norm{\lVert}{\rVert}
\usepackage{newtxtext,newtxmath} % times is deprecated
\usepackage{caption} % to influence size of caption
\begin{document}
\begin{table}[ht]
\small
\captionsetup{font=small}
\caption{Results for Example 4.1 using the iteration (3) for $t=1,2$}
\label{table:nonlin}
\centering
$\begin{array}{ @{} ll *{4}{c} @{}}
\toprule
\beta & \text{Step}
& \multicolumn{2}{c}{t=1}
& \multicolumn{2}{c}{t=2} \\
\cmidrule(lr){3-4}\cmidrule(l){5-6}
& & {\norm{A^{(2)}_{T,S} - X_k}_2}
& {\norm{X_k - X_{k-1}}_2}
& {\norm{A^{(2)}_{T,S} - X_k}_2}
& {\norm{X_k - X_{k-1}}_2} \\
\midrule
0.9 & k=31 & 6.1424{e-}008 & 5.0256{e-}008\\
\bottomrule
\end{array}$
\end{table}
\end{document}
答案3
正如这里建议的那样,你可以使用tablesgenerator
构建表的初始结构。
- 创建新表(
file->new
)
- 合并标题上的单元格
- 输入一些内容(我把它
f1
加快f4
速度,在 LaTeX 编辑器上更容易)
- 设置对齐方式。
- 将表格设置为使用 booktabs 样式
- 激活自定义网格编辑以添加或删除一些边框
- 单击生成以刷新代码。
- 结果如下所示。上图是表格生成器的原始结果,下图是经过一些调整后的结果。正如我所说,表格生成器等服务并不能完成所有工作,但它会有所帮助。
代码
\usepackage{latexsym}
\usepackage{amsmath, times, amsfonts, mathrsfs, amssymb}
\usepackage{booktabs}
\begin{document}
% Please add the following required packages to your document preamble:
% \usepackage{booktabs}
\begin{table}[h]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{@{}cccccc@{}}
\toprule
& & \multicolumn{2}{c}{t = 1} & \multicolumn{2}{c}{t = 2} \\ \cmidrule(l){3-6}
\beta & Step & f1 & f2 & f3 & f4 \\ \midrule
0.9 & k=31 & 6.1424e-008 & 5.0256e-008 & 8.1170e-016 & 1.3257e-015 \\
& k=32 & 3.3783e-008 & 2.7641e-008 & 7.0439e-016 & 3.1839e-016 \\ \bottomrule
\end{tabular}
\end{table}
% Table after some adjustments
% 1 - Split \cmidrule in two
% 2 - Change tabular to array to avoid put $ on the math
% 3 - Replace the f1-4 with the actual math
\begin{table}[h]
\centering
\caption{Comparison results}
\label{table:nonlin}
\begin{array}{@{}cccccc@{}}
\toprule
& \multicolumn{1}{c}{} & \multicolumn{2}{c}{t = 1} & \multicolumn{2}{c}{t = 2} \\ \cmidrule(l){3-4} \cmidrule(l){5-6}
\beta & Step & \|A^{(2)}_{T,S} - X_k\|_2 & \|X_k - X_{k-1} \|_2 & \|A^{(2)}_{T,S} - X_k\|_2 & \|X_k - X_{k-1} \|_2 \\ \midrule
0.9 & k=31 & 6.1424e-008 & 5.0256e-008 & 8.1170e-016 & 1.3257e-015 \\
& k=32 & 3.3783e-008 & 2.7641e-008 & 7.0439e-016 & 3.1839e-016\\
\bottomrule
\end{array}
\end{table}
\end{document}
答案4
另一种可能性是使用表格的数学模式并将mystrut
其定义为单元格标题的填充。
代码
\documentclass[12pt]{article}
\usepackage{latexsym}
\usepackage{siunitx,array}
\usepackage{amsmath, times, amsfonts, mathrsfs, amssymb}
\begin{document}
\newcommand{\mystrut}{\vrule height 15pt depth 10pt width 0pt }
\begin{table}[!ht]
\caption{\small Comparison results}
\small
\centering
\begin{tabular}{>{$} l <{$} *6{>{$} c <{$}}}\hline
\multicolumn{2}{c}{}& \multicolumn{2}{c}{\mystrut $t=1$} & &\multicolumn{2}{c}{$\mystrut t=2$}\\\cline{3-4}\cline{6-7}
\mystrut \beta & \text{Step} & \|A^{(2)}_{T,S} - X_k\|_2 & \|X_k - X_{k-1} \|_2 & & \|A^{(2)}_{T,S} - X_k\|_2 & \|X_k - X_{k-1} \|_2 \\ \hline
0.9 & k=31 & 6.1424e-008 & 5.0256e-008 & & 8.1170e-016 & 1.3257e-015\\
& k=32 & 3.3783e-008 & 2.7641e-008 & & 7.0439e-016 & 3.1839e-016 \\
\end{tabular}
\label{table:nonlin}
\end{table}
\end{document}