使用空白行对齐并排表格

使用空白行对齐并排表格

我确信这很简单,但我搞不懂。我试图制作如下所示的并排表格:

在此处输入图片描述

除了左侧表格应该有完全空白的行,而不是每隔一行有两条垂直线。我尝试了以下方法:

\begin{equation*}
\begin{array}{| c | c | c | c |}
\hline
\multicolumn{4}{|c|}{\Delta t = 0.1}\\\hline
k & t_k & u_k & f(t_k,u_k) \\\hline
0 & 0 & 2 & -2 \\\hline\\\hline
1 & 0.1 & 1.8 & -1.7 \\\hline \\\hline
2 & 0.2 & 1.63 & -1.43 \\\hline \\\hline
3 & 0.3 & 1.487 & -1.187 \\\hline \\\hline
\end{array}
\qquad
\begin{array}{| c | c | c | c |}
\hline
\multicolumn{4}{|c|}{\Delta t = 0.05}\\\hline
k & t_k & u_k & f(t_k,u_k) \\\hline
0 & 0 & 2 & -2 \\\hline
1 & 0.05 & 1.9 & -1.85 \\\hline
2 & 0.1 & 1.808 & -1.708 \\\hline 
3 & 0.15 & 1.722 & -1.572 \\\hline
4 & 0.2 & 1.644 & -1.444 \\\hline
5 & 0.25 & 1.571 & -1.321 \\\hline
6 & 0.3 & 1.505 & -1.205 \\\hline
\end{array}
\end{equation*}

产生了上述输出。有没有简单的方法可以实现我想要的效果?(我使用的是arraymultirow包)。

答案1

您可以使用它\multicolumn来覆盖声明的格式;我还使用它t作为数组的可选参数来产生顶部对齐:

\documentclass{article}
\usepackage{array,multirow}
\usepackage{amsmath}

\begin{document}

\begin{equation*}
\begin{array}[t]{| c | c | c | c |}
\hline
\multicolumn{4}{|c|}{\Delta t = 0.1} \\
\hline
k & t_k & u_k & f(t_k,u_k) \\
\hline
0 & 0 & 2 & -2 \\
\hline 
\multicolumn{4}{c}{} \\
\hline
1 & 0.1 & 1.8 & -1.7 \\
\hline 
\multicolumn{4}{c}{} \\
\hline
2 & 0.2 & 1.63 & -1.43 \\
\hline 
\multicolumn{4}{c}{} \\
\hline
3 & 0.3 & 1.487 & -1.187 \\
\hline
\end{array}
\qquad
\begin{array}[t]{| c | c | c | c |}
\hline
\multicolumn{4}{|c|}{\Delta t = 0.05} \\
\hline
k & t_k & u_k & f(t_k,u_k) \\    \hline
0 & 0 & 2 & -2 \\    \hline
1 & 0.05 & 1.9 & -1.85 \\    \hline
2 & 0.1 & 1.808 & -1.708 \\    \hline 
3 & 0.15 & 1.722 & -1.572 \\    \hline
4 & 0.2 & 1.644 & -1.444 \\    \hline
5 & 0.25 & 1.571 & -1.321 \\    \hline
6 & 0.3 & 1.505 & -1.205 \\    \hline
\end{array}
\end{equation*}

\end{document}

在此处输入图片描述

答案2

我相信您\\\hline在第一个末尾有一个不需要的语句array。 如果省略此语句,则两个数组将正确对齐。

如果您想更进一步,我建议您使用siunitx包及其S列类型将数字对齐到小数点。并且,正如 Gonzalo Medina 的回答中所示,您可能希望\multicolumn{1}{c}{ }在第一个表中插入指令以抑制(可能没有必要)| |其他行。

在此处输入图片描述

\documentclass{article}
\usepackage{siunitx}
\sisetup{table-format=2.3}
\begin{document}
\[
\begin{array}{| l | S | S | S |}
\hline
\multicolumn{4}{|c|}{\Delta t = 0.1}\\ \hline
k & {t_k} & {u_k} & {f(t_k,u_k)} \\ \hline
0 & 0 & 2 & -2          \\\hline \multicolumn{1}{c}{ }\\\hline % extra blank line
1 & 0.1 & 1.8 & -1.7    \\\hline \multicolumn{1}{c}{ }\\\hline % extra blank line
2 & 0.2 & 1.63 & -1.43  \\\hline \multicolumn{1}{c}{ }\\\hline % extra blank line
3 & 0.3 & 1.487 & -1.187\\\hline 
\end{array}
\qquad
\begin{array}{| l | S | S | S |}
\hline
\multicolumn{4}{|c|}{\Delta t = 0.05}\\ \hline
k & {t_k} & {u_k} & {f(t_k,u_k)} \\ \hline
0 & 0 & 2 & -2 \\\hline
1 & 0.05 & 1.9 & -1.85 \\\hline
2 & 0.1 & 1.808 & -1.708 \\\hline 
3 & 0.15 & 1.722 & -1.572 \\\hline
4 & 0.2 & 1.644 & -1.444 \\\hline
5 & 0.25 & 1.571 & -1.321 \\\hline
6 & 0.3 & 1.505 & -1.205 \\\hline
\end{array}
\]
\end{document}

我还想鼓励您考虑删除所有垂直线;一旦数字列在小数点上对齐,它们实际上就不会添加任何有用的信息。作为奖励,您不需要输入类似\multicolumn{1}{c}{ } \\生成没有垂直线的空白行的内容;\\就足够了​​。:-) 此外,我认为这两个数组中的大多数水平线也是不需要的。

这里对您的示例进行了轻微的修改;\hline它不使用 ,而是使用booktabs包(及其命令\toprule\midrule\bottomrule)来绘制具有更好间距的水平线。

在此处输入图片描述

\documentclass{article}
\usepackage{siunitx}
\sisetup{table-format=2.3}
\usepackage{booktabs}
\begin{document}
\[
\begin{array}{ @{} l  S  S  S @{} }
\multicolumn{4}{c}{\Delta t = 0.1}\\ 
\midrule[\heavyrulewidth]
k & {t_k} & {u_k} & {f(t_k,u_k)} \\ 
\midrule
0 & 0 & 2 & -2          \\ \\ % extra blank line
1 & 0.1 & 1.8 & -1.7    \\ \\ % extra blank line
2 & 0.2 & 1.63 & -1.43  \\ \\ % extra blank line
3 & 0.3 & 1.487 & -1.187\\ 
\bottomrule
\end{array}
\qquad
\begin{array}{ @{} l  S  S  S @{} }
\multicolumn{4}{c}{\Delta t = 0.05}\\ 
\midrule[\heavyrulewidth]
k & {t_k} & {u_k} & {f(t_k,u_k)} \\ 
\midrule
0 & 0 & 2 & -2 \\
1 & 0.05 & 1.9 & -1.85 \\
2 & 0.1 & 1.808 & -1.708 \\ 
3 & 0.15 & 1.722 & -1.572 \\
4 & 0.2 & 1.644 & -1.444 \\
5 & 0.25 & 1.571 & -1.321 \\
6 & 0.3 & 1.505 & -1.205 \\
\bottomrule
\end{array}
\]
\end{document}

相关内容