我希望水平线穿过第二列;从第二列的开始到结束。我找到了一些制作嵌套表的建议,但我无法理解这些建议。这是我的代码:
\documentclass{article}
\usepackage{array,multirow}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{|c|c|c|c|c|}\hline
a & \begin{tabular}{c | c}
angel & value
\end{tabular} & Overshoot & Settling time & Rise time \tabularnewline\hline
Case i
&
\begin{tabular}{c|@{}c@{}}
$\theta_i$ & \begin{tabular}{c}
0 \\ 0 \\ 0 \\ 0
\end{tabular}
\tabularnewline\hline
$\theta_f$ & \begin{tabular}{c}
30 \\ 30 \\ 30 \\ 30
\end{tabular}
% \tabularnewline\hline
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
\tabularnewline\hline
Case ii
&
\begin{tabular}{c|@{}c@{}}
$\theta_i$ & \begin{tabular}{c}
30 \\ 30 \\ 30 \\ 30
\end{tabular}
\tabularnewline\hline
$\theta_f$ & \begin{tabular}{c}
60 \\ 60 \\ 60 \\ 60
\end{tabular}
% \tabularnewline\hline
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
\tabularnewline\hline
Case iii
&
\begin{tabular}{c|@{}c@{}}
$\theta_i$ & \begin{tabular}{c}
90 \\ 60 \\ 45 \\ 75
\end{tabular}
\tabularnewline\hline
$\theta_f$ & \begin{tabular}{c}
120 \\ 90 \\ 105 \\ 135
\end{tabular}
% \tabularnewline\hline
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
\tabularnewline\hline
Case iv
&
\begin{tabular}{c|@{}c@{}}
$\theta_i$ & \begin{tabular}{c}
120 \\ 90 \\ 105 \\ 135
\end{tabular}
\tabularnewline\hline
$\theta_f$ & \begin{tabular}{c}
150 \\ 120 \\ 135 \\ 165
\end{tabular}
% \tabularnewline\hline
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
&
\begin{tabular}{c}
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
1 \\
\end{tabular}
\tabularnewline\hline
\end{tabular}
\end{document}]
答案1
这是供您使用的起点。我删除了垂直规则,并使用命令\cmidrule{2-6}
绘制自定义水平规则。
\toprule
和\bottomrule
分别出现在表格前后,而完整的水平显示则用 完成\midrule
。
\documentclass{article}
\usepackage{array,multirow}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{cccccc}
\toprule
a & angel & value & Overshoot & Settling time & Rise time \\
\midrule
\multirow{8}{*}{Case i} & \multirow{4}{*}{$\theta_i$} & 0 & 1 & 1 & 1 \\
& & 0 & 1 & 1 & 1 \\
& & 0 & 1 & 1 & 1 \\
& & 0 & 1 & 1 & 1 \\ \cmidrule{2-6}
& \multirow{4}{*}{$\theta_f$} & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\ \midrule
& & ... & ... & ... & ... \\
& & ... & ... & ... & ... \\
& & ... & ... & ... & ... \\
& & ... & ... & ... & ... \\
\bottomrule
\end{tabular}
\end{document}
答案2
multirow
您可能希望将该包与以下命令结合使用\cmidrule{}
:
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\begin{document}
\begin{tabular}{cccccc}
\toprule
a & angle & value & Overshoot & Settling time & Rise time \\ \midrule
\multirow{8}{*}{Case i} & \multirow{4}{*}{$\theta_i$} & 0 & 1 & 1 & 1 \\
{} & {} & 0 & 1 & 1 & 1 \\
{} & {} & 0 & 1 & 1 & 1 \\
{} & {} & 0 & 1 & 1 & 1 \\ \cmidrule{2-6}
{} & \multirow{4}{*}{$\theta_f$} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\ \midrule
\multirow{8}{*}{Case ii} & \multirow{4}{*}{$\theta_i$} & 0 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\ \cmidrule{2-6}
{} & \multirow{4}{*}{$\theta_f$} & 30 & 1 & 1 & 1 \\
{} & {} & 60 & 1 & 1 & 1 \\
{} & {} & 60 & 1 & 1 & 1 \\
{} & {} & 60 & 1 & 1 & 1 \\ \midrule
\multirow{8}{*}{Case iii} & \multirow{4}{*}{$\theta_i$} & 0 & 1 & 1 & 1 \\
{} & {} & 90 & 1 & 1 & 1 \\
{} & {} & 90 & 1 & 1 & 1 \\
{} & {} & 90 & 1 & 1 & 1 \\ \cmidrule{2-6}
{} & \multirow{4}{*}{$\theta_f$} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\ \midrule
\multirow{8}{*}{Case iv} & \multirow{4}{*}{$\theta_i$} & 0 & 1 & 1 & 1 \\
{} & {} & 0 & 1 & 1 & 1 \\
{} & {} & 0 & 1 & 1 & 1 \\
{} & {} & 0 & 1 & 1 & 1 \\ \cmidrule{2-6}
{} & \multirow{4}{*}{$\theta_f$} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
{} & {} & 30 & 1 & 1 & 1 \\
\bottomrule
\end{tabular}
\end{document}
LaTeX 表中的垂直线通常看起来不太好看,所以如果可能的话不要使用它们。
答案3
该软件包中有一个更简单的代码解决方案makecell
,允许在单元格中换行:
\documentclass{article}
\usepackage{array,multirow, makecell}
\usepackage{booktabs}
\setcellgapes{2pt}
\begin{document}
\makegapedcells
\begin{tabular}{|c|c|c|c|c|c|}
\hline
a & angel & value & Overshoot & Settling time & Rise time \tabularnewline\hline
\multirowcell{5}{Case i}
& $\theta_i$ & \makecell{0 \\ 0 \\ 0 \\ 0}%\\
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
\tabularnewline\cline{2-3}
& $\theta_f$ & \makecell{30 \\ 30 \\ 30 \\ 30}
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%
\tabularnewline\hline
\multirowcell{5}{Case ii}
& $\theta_i$ & \makecell{30 \\ 30 \\ 30 \\ 30}%\\
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
\tabularnewline\cline{2-3}
& $\theta_f$ & \makecell{60 \\ 60 \\ 60 \\ 60}
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%
\tabularnewline\hline
\multirowcell{5}{Case iii}
& $\theta_i$ & \makecell{90 \\ 60 \\ 45 \\ 75}%\\
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
\tabularnewline\cline{2-3}
& $\theta_f$ & \makecell{120 \\ 90 \\ 105 \\ 135}
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%
\tabularnewline\hline
\multirowcell{5}{Case iv}
& $\theta_i$ & \makecell{90 \\ 60 \\ 45 \\ 75}%\\
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
& \makecell{1 \\ 1 \\ 1 \\ 1}% \\ 1 \\ 1 \\ 1 \\ 1}
\tabularnewline\cline{2-3}
& $\theta_f$ & \makecell{150 \\ 120 \\ 135 \\ 165}
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%&
& \makecell{1 \\ 1 \\ 1 \\ 1}%
\tabularnewline\hline
\end{tabular}
\end{document}
答案4
这是一个使用选项booktabs
(你包含了它,但从未使用过它的功能)和siunitx
用于表格中整数的水平对齐:
\documentclass{article}
\usepackage{booktabs,siunitx}
\begin{document}
\begin{tabular}{c c S[table-format=3] c c c}
\toprule
Case & Angle & {Value} & Overshoot & Settling time & Rise time \\
\midrule
I & $\theta_i$ & 0 & 1 & 1 & 1 \\
& & 0 & 1 & 1 & 1 \\
& & 0 & 1 & 1 & 1 \\
& & 0 & 1 & 1 & 1 \\
\cmidrule{2-6}
& $\theta_f$ & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
\midrule
II & $\theta_i$ & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
& & 30 & 1 & 1 & 1 \\
\cmidrule{2-6}
& $\theta_f$ & 60 & 1 & 1 & 1 \\
& & 60 & 1 & 1 & 1 \\
& & 60 & 1 & 1 & 1 \\
& & 60 & 1 & 1 & 1 \\
\midrule
III & $\theta_i$ & 90 & 1 & 1 & 1 \\
& & 60 & 1 & 1 & 1 \\
& & 45 & 1 & 1 & 1 \\
& & 75 & 1 & 1 & 1 \\
\cmidrule{2-6}
& $\theta_f$ & 120 & 1 & 1 & 1 \\
& & 90 & 1 & 1 & 1 \\
& & 105 & 1 & 1 & 1 \\
& & 135 & 1 & 1 & 1 \\
\midrule
IV & $\theta_i$ & 120 & 1 & 1 & 1 \\
& & 90 & 1 & 1 & 1 \\
& & 105 & 1 & 1 & 1 \\
& & 135 & 1 & 1 & 1 \\
\cmidrule{2-6}
& $\theta_f$ & 150 & 1 & 1 & 1 \\
& & 120 & 1 & 1 & 1 \\
& & 135 & 1 & 1 & 1 \\
& & 165 & 1 & 1 & 1 \\
\bottomrule
\end{tabular}
\end{document}
指某东西的用途multirow
如果使用合适的显示器,这并不是真正必要的。