在 Latex 中制作所需格式的表格

在 Latex 中制作所需格式的表格

我想按照以下模式绘制一个表格。 在此处输入图片描述

我是使用 Latex 制作表格的新手。我只知道以下方法。

\begin{table}[!h]
  \begin{tabular}{c| c c c c}
    \hline
    % Data to enter here 
    \hline 2
  \end{tabular}
\end{table}

请帮助我。非常感谢。我正在使用编辑编辑。

答案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

使用diagboxamsmath

\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}

您可以自行填写。

相关内容