如何创建带有左侧和顶部“标题”的表格?

如何创建带有左侧和顶部“标题”的表格?

我想创建一个如下的表格(请原谅照片不太清晰):

在此处输入图片描述

特别是,除了底部的标准“表 1”标题之外,我还很难定位“输入”和“输出”这两个词。

任何建议都值得赞赏。我正在使用 tabularx 或 booktabs 包。

答案1

正如 John Kormylo 刚才提到的,我使用\multicolumn{}{}{}来作为顶部标题,并使用 来调整位置\raisebox{}{},还使用 ​​来\multirow[]{}{}{}作为左侧标题,使用表格环境来作为底部标题,使用\centering\hspace*{}来居中并调整tabular环境。结果如下所示。

\documentclass[12pt,twoside,a4paper]{book}
\usepackage[left=.45in,right=.45in,top=.6in,bottom=.6in,headheight=14.5pt]{geometry}
\usepackage{array,multirow}

\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}

\begin{table}
 \centering
\hspace*{-2cm}\begin{tabular}{C{1.2cm}cC{0.5cm}|c|c|c}
\multicolumn{5}{r}{\raisebox{2ex}{Output}} \\
 &&      & \bfseries X &  \bfseries Y &  \\ \cline{2-6}
  \multirow[]{2}{3cm}{Input} && \bfseries X  & \bfseries A & \bfseries B & \\  \cline{3-6}

  && \bfseries Y & \bfseries C & \bfseries D & \\ \cline{2-6}

  &&  & &  & \\ 

\end{tabular}
\caption{Blah Blah Blah}
\label{Table:1}
\end{table}    

 \end{document} 

在此处输入图片描述

答案2

在此处输入图片描述

不要在 的序言中指定列格式\tabularx。相反,您需要使用类似 的格式\multicolumn{1}{C|}{content},这将帮助您仅在某些位置绘制垂直线。您还需要定义一种新的列类型\newcolumntype{C}{ >{ \arraybackslash \Centering } X },以使列宽相等。

以下是完整的源代码:

\documentclass{scrartcl}

\usepackage{float}

\usepackage{tabularx}
\newcolumntype{C}{ >{ \arraybackslash \Centering } X }
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{ragged2e}
\usepackage{makecell}



\begin{document}

\begin{table}[]


    \caption{Caption}
    \label{table:1}

    % Center the table
    \centering

    % Stretch the table (vertically)
    \renewcommand{\arraystretch}{1.3}


    \begin{tabularx}{0.6\textwidth}{ >{\hsize=0.8\hsize}C C C C}



        & & \multicolumn{2}{c}{Output}
        \\


        & & \multicolumn{1}{|C|}{X} & \multicolumn{1}{C}{Y}
        \\
        \Xcline{2-4}{0.2mm}


        \multirow{2}{2cm}{\centering Input} & \multicolumn{1}{C|}{X} & \multicolumn{1}{C|}{A} & \multicolumn{1}{C}{B}
        \\
        \Xcline{2-4}{0.2mm}


        & \multicolumn{1}{C|}{Y} & \multicolumn{1}{C|}{C} & \multicolumn{1}{C}{D}


    \end{tabularx}



\end{table}


\end{document} 

顺便说一句,“输入”不是右侧的标题,它只是一个需要占据第一(隐藏)列两行的条目。

答案3

你可以这样做,但我不认为这是呈现表格的好方法。

\documentclass{article}
\usepackage{multirow}

\begin{document}

\begin{table}[htp]

\centering

\setlength{\tabcolsep}{2\tabcolsep}% double the default

\begin{tabular}{@{}lc|c|c|}
  & \multicolumn{1}{c}{} & \multicolumn{2}{c}{Output} \\
  & & X & Y \\
  \cline{2-4}
  \multirow{2}{*}{Input} 
  & X & A & B \\
  \cline{2-4}
  & Y & C & D \\
  \cline{2-4}
\end{tabular}

\caption{Blah blah blah}

\end{table}

\end{document}

在此处输入图片描述

为什么不好?“输入”和“输出”指的是什么,根本不清楚。

相关内容