尝试旋转桌子,但没有成功

尝试旋转桌子,但没有成功

我有下表:

        \caption{Comparative Table with Related Work content}
        \label{tab:2}
        \begin{tabular}{11111111}
        \hline\noalign{\smallskip}
        Related Work & IoT Applications & IoT Architectures & IoT Features & Digital CE Analysis & CE Technologies & CE - IoT Relations & Implementation Strategies  \\
        \noalign{\smallskip}\hline\noalign{\smallskip}
            G. Nobre and E. Tavares [7] &&&&x&x&x&x \\
            P. Rosa et. al. [8] &&&&&x&x& \\
            G. Piscitelli et. al [9] &&&&&&x&x \\
            C. Romero et. al. [10] &&&x&&x&x&x \\
            U. Awan et. al. [11] &&&&x&&x&x \\
            Our Work &x&x&x&x&x&x&x \\
        \noalign{\smallskip}\hline
        \end{tabular}
    \end{table}

它对于页面来说太宽了,我可能得把它旋转 90 度才能放进去。我试过调整框命令,但没能成功。我希望得到一些关于如何旋转宽表的指导。

先感谢您!

答案1

首先,左对齐单元格的列类型不是1(数字一)而是l(小写 L)。

要旋转你的桌子,你可以将tabular环境放在里面\begin{adjustbox}{angle=90} ... \end{adjustbox}(你需要adjustbox为此加载包),但事实证明(没有双关语),你的桌子太宽,甚至无法垂直放置在页面上。

因此,我建议您只旋转仅包含 x 标记的列的列标题。\rotatebox软件包提供了一个宏graphicx,您可以使用它来实现这一点。

此外,我建议您使用booktabs提供良好规则的包,而不是使用\noalign{\smallskip}\hline\noalign{\smallskip}类似的包。

最后,您可能希望使用 将环境tabular内部置于中心。table\centering

\documentclass{article}
\usepackage{graphicx, booktabs}

\begin{document}

    \begin{table}
        \centering
        \caption{Comparative Table with Related Work content}
        \label{tab:2}
        \begin{tabular}{llllllll}
        \toprule
        Related Work & \rotatebox{90}{IoT Applications} & \rotatebox{90}{IoT Architectures} & \rotatebox{90}{IoT Features} & \rotatebox{90}{Digital CE Analysis} & \rotatebox{90}{CE Technologies} & \rotatebox{90}{CE---IoT Relations} & \rotatebox{90}{Implementation Strategies} \\
        \midrule
            G. Nobre and E. Tavares [7] &&&&x&x&x&x \\
            P. Rosa et. al. [8] &&&&&x&x& \\
            G. Piscitelli et. al [9] &&&&&&x&x \\
            C. Romero et. al. [10] &&&x&&x&x&x \\
            U. Awan et. al. [11] &&&&x&&x&x \\
            Our Work &x&x&x&x&x&x&x \\
        \bottomrule
        \end{tabular}%
    \end{table}
    
\end{document}

在此处输入图片描述

答案2

您可以使用该makecell包在列内容中插入手动换行符,从而减少表格的整体宽度。为此使用的宏是theadmakecell。它们的语法类似:\makecell[<align>]{<content>}\thead[<align>]{<content>}。可选参数用于水平或垂直对齐内容。

makecell下面显示了使用该包的两种方法。这里geometry假设页边距由包决定(因为问题中没有指定页边距)。

第一种方法:

除了插入手动换行符外,您还可以减小字体大小。这里small使用 font-size。如果边距大于默认geometry边距,您可以使用较小的字体大小,如footnotsizescriptsize

代码:

\documentclass{article}

\usepackage{geometry}
\usepackage{makecell}
\usepackage{array, booktabs}

%-------Shows page layout------------------- 
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}
%-------------------------------------------

\begin{document}
  \begin{table}[htbp]
        \centering
        \small
        \caption{Comparative Table with Related Work content}
        \label{tab:2}
        \begin{tabular}{@{}l *{7}{c}@{}}
            \toprule
            \thead[l]{Related \\Work} & \thead[l]{IoT \\Applications} & \thead[l]{IoT \\Architectures} & \thead[l]{IoT \\Features} & \thead[l]{Digital CE \\Analysis} & \thead[l]{CE \\Technologies} & \thead[l]{CE - IoT \\Relations} & \thead[l]{Implementation\\ Strategies}  \\
            \midrule
            \makecell[l]{G. Nobre and \\E. Tavares [7]} &&&&x&x&x&x \\
            \makecell[l]{P. Rosa \\et. al. [8]} &&&&&x&x& \\
            \makecell[l]{G. Piscitelli \\et. al [9]} &&&&&&x&x \\
            \makecell[l]{C. Romero \\et. al. [10]} &&&x&&x&x&x \\
            \makecell[l]{U. Awan \\et. al. [11]} &&&&x&&x&x \\
            Our Work &x&x&x&x&x&x&x \\
            \bottomrule
        \end{tabular}
    \end{table}
\end{document}

在此处输入图片描述

这超出了文本宽度但可能是可以接受的。

第二种方法:

正如 Jasper Habicht 在他的回答中指出的那样,您可以旋转表头。为此,该makecell包提供了\rothead具有与 类似的语法的宏thead

要定义旋转单元格的高度,可以使用以下两个命令之一:

\settowidth\rotheadsize{\theadfont <Widest head text>}或者\setlength\rotheadsize{<width>}

代码:

\documentclass{article}

\usepackage{geometry}
\usepackage{rotating}
\usepackage{makecell}
\usepackage{array, booktabs}

%-------Shows page layout------------------- 
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%-------------------------------------------

\begin{document}
  \begin{table}[htbp]
        \centering
        \caption{Comparative Table with Related Work content}
        \label{tab:2}
        \settowidth\rotheadsize{\theadfont Implementation}
        \begin{tabular}{l *{7}{c}}
            \toprule
            \thead{Related Work} & \rothead{IoT \\Applications} & \rothead{IoT \\Architectures} & \rothead{IoT \\Features} & \rothead{Digital CE \\Analysis} & \rothead{CE \\Technologies} & \rothead{CE - IoT \\Relations} & \rothead{Implementation\\ Strategies}  \\
            \midrule
            G. Nobre and E. Tavares [7] &&&&x&x&x&x \\
            P. Rosa et. al. [8] &&&&&x&x& \\
            G. Piscitelli et. al [9] &&&&&&x&x \\
            C. Romero et. al. [10] &&&x&&x&x&x \\
            U. Awan et. al. [11] &&&&x&&x&x \\
            Our Work &x&x&x&x&x&x&x \\
            \bottomrule
        \end{tabular}
    \end{table}
\end{document}

输出 2

该表格没有超出文本宽度,并且对我来说看起来也更美观。

相关内容