我有下表:
\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
包在列内容中插入手动换行符,从而减少表格的整体宽度。为此使用的宏是thead
和makecell
。它们的语法类似:\makecell[<align>]{<content>}
和\thead[<align>]{<content>}
。可选参数用于水平或垂直对齐内容。
makecell
下面显示了使用该包的两种方法。这里geometry
假设页边距由包决定(因为问题中没有指定页边距)。
第一种方法:
除了插入手动换行符外,您还可以减小字体大小。这里small
使用 font-size。如果边距大于默认geometry
边距,您可以使用较小的字体大小,如footnotsize
或scriptsize
。
代码:
\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}
该表格没有超出文本宽度,并且对我来说看起来也更美观。