答案1
我会考虑以下表格布局:
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs, makecell}
\newcommand\mcc[1]{\multicolumn{2}{>{$}c<{$}}{#1}}
\begin{document}
\begin{table}
\centering
\begin{tabular}{>{$}r<{$}*{6}{>{$}c<{$}}}
\toprule
& \multicolumn{6}{c}{$\max i$} \\
\cmidrule{2-7}
& \mcc{i\equiv0\pmod4} & \mcc{i \equiv1\pmod 4} & \mcc{i\equiv0\pmod 4} \\
\cmidrule(r){2-3}\cmidrule(lr){4-5}\cmidrule(l){6-7}
\multicolumn{1}{c}{$n$}
& m\text{ even}
& m\text{ odd} & m\text{ even}
& m\text{ odd} & m\text{ even}
& m\text{ odd} \\
\midrule
4n & 2m & 2m-2 & - & - & - & - \\
4n +1 & - & - & - & - & - & - \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
编辑:pmod
被盗自伯纳德回答 :-)
附录:
在上面的表格中添加一对列会使其变宽。这会导致表格比文本更宽,并因此突出右文本边距(您的页面布局是未知的,因为您没有提供完整的小文档 - mwe - 以及表格代码片段;现在您可以看到这是多么重要)。
假设文档中的文本宽度是默认提供的article
。在这种情况下,需要更改列之间的间距。在这种情况下,将其留给latex
替换是明智的
\centering
\begin{tabular}{>{$}r<{$}*{6}{>{$}c<{$}}}
到
\setlength\tabcolsep{0pt}
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}
>{$}r<{$}
*{8}{>{$}c<{$}}}
其中,@{\extracolsep{\fill}}
适应\tabcolsep
(列之间的空间)的值,使得表格能够适合文本宽度(如果文本的宽度足够大)。完整的 mwe 是:
\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs, makecell}
\newcommand\mcc[1]{\multicolumn{2}{>{$}c<{$}}{#1}}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{table}
\setlength\tabcolsep{0pt}
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}
>{$}r<{$}
*{8}{>{$}c<{$}}}
\toprule
& \multicolumn{8}{c}{$\max i$} \\
\cmidrule{2-9}
& \mcc{i\equiv0\pmod4} & \mcc{i \equiv1\pmod 4} & \mcc{i\equiv0\pmod 4} & \mcc{i\equiv2\pmod 4} \\
\cmidrule(r){2-3}\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(l){8-9}
\multicolumn{1}{c}{$n$}
& m\text{ even}
& m\text{ odd} & m\text{ even}
& m\text{ odd} & m\text{ even}
& m\text{ odd}
& m\text{ even}
& m\text{ odd} \\
\midrule
4n & 2m & 2m-2 & - & - & - & - & - & - \\
4n +1 & - & - & - & - & - & - & - & - \\
\bottomrule
\end{tabular*}
\end{table}
\end{document}
(红线表示页面布局)
笔记:
在表格设计中,首先选择表格类型。除了基本类型外,tabular
还有其他可能性:(tabular*
具有规定的宽度,参见上文)tabularx
等。使用其选项确定列的数量和类型。例如:
\begin{tabular}{cccc}
是具有四列的基本表格。它也可以写成
\begin{tabular}{*{4}{c}}
你的情况
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}
>{$}r<{$}
*{8}{>{$}c<{$}}}
有九列,表格宽度为\linewidth
(这是放置表格的环境的临时宽度的值。在您的情况下,它等于\textwidth
。
答案2
使用diagbox
和amsmath
:
\documentclass[11pt,pdftex, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{diagbox}
\begin{document}
$ \begin{array}{c|*{3}{cc|}}
&\multicolumn{2}{c|}{i\equiv 0\pmod 4} &\multicolumn{2}{c|}{i\equiv 1\pmod 4} &\multicolumn{2}{c|}{i\equiv 2\pmod 4} \\
$\smash[t]{ \diagbox[ height=1.cm, width = 1.9cm, innerleftsep =0.6cm, innerrightsep = 0cm]{\hfill$ n $}{$ \max i $ }}$%
& m\:\text{ even,} & m\:\text{ odd} & m\:\text{ even,} & m\:\text{ odd} & m\:\text{ even,} & m\:\text{ odd}\\
\hline
4n & 2m & 2m-2 & - & - & - & - \\
\hline
4n + 1 & - & - & - & - & - & - \\
\hline
4n + 3 & - & - & - & - & - & - \\
\hline
\end{array} $
答案3
像这样吗?
\documentclass{article}
\usepackage{diagbox}
\usepackage{multirow}
\begin{document}
\begin{table}
\centering
\begin{tabular}{c|cc|cc|cc}
\multirow{2}{*}{\backslashbox{bottom text}{top text}} & \multicolumn{2}{c|}{\begin{tabular}[c]{@{}l@{}}h1\\ \end{tabular}} & \multicolumn{2}{c|}{h2} & \multicolumn{2}{c}{h3} \\
& sub11 & sub12 & sub21 & sub22 & sub31 & sub32 \\
\hline
r1 & c11 & c12 & c13 & c14 & c15 & c16 \\
r2 & c21 & c22 & c23 & c24 & c25 & c26 \\
r3 & c31 & c32 & c33 & c34 & c35 & c36
\end{tabular}
\end{table}
\end{document}
您可以自行填写。