我的问题出在表格的第三列。它太大了,我无法调整它的宽度。它占据了我文档中的其他内容。
\documentclass{article}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{@{}c|l|X@{}}
\toprule
Security Level & Security Mode & Protection \\
\midrule
0 & No Security & Data is not encrypted \newline Data authenticity is not validated \\\hline
1 & AES-CBC-MAC-32 & Data is not encrypted \newline Data authenticity using a 32-bit MIC \\\hline
2 & AES-CBC-MAC-64 & Data is not encrypted \newline Data authenticity using 64-bit MIC \\\hline
3 & AES-CBC-MAC-128 & Data is not encrypted \newline Data authenticity using 128-bit MIC \\\hline
4 & AES-CTR & Data is encrypted \newline Data authenticity is not validated \\\hline
5 & AES-CCM-32 & Data is encrypted \newline Data authenticity using a 32-bit MIC \\\hline
6 & AES-CCM-64 & Data is nencrypted \newline Data authenticity using a 64-bit MIC \\\hline
7 & AES-CCM-128 & Data is encrypted \newline Data authenticity using a 128-bit MIC \\\hline
\bottomrule
\end{tabularx}
\caption{\label{tab:tab1} {Security modes in the IEEE802.15.4e Standard. \cite{19}}}
\end{table}
\end{document}
答案1
一些建议:
1)不要使用垂直线,尽量减少水平线。
2)tabulary
可能是一个更好的选择,以tabularx
适应具有不同宽度的列和带有换行符的对齐的表格。
3) 重新设计是让表格更小、更清晰、更美观的最重要的一点。遗憾的是,没有可以为您重新设计表格的软件包,而且这是一项依赖于内容/上下文且非常主观的任务。因此,无论您是否喜欢本例中提议的重新设计,请相信我:简化意味着改进。
\documentclass{article}
\usepackage{tabulary,booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabulary}{\textwidth}{CLCL}
\toprule
\multicolumn{2}{c}{Security} &
\multicolumn{2}{c}{Data protection} \\\cmidrule(rl){1-2}\cmidrule(rl){3-4}
Level & \hfil Mode & Encryption & \hfil Authenticity\\
%\midrule
\cmidrule(rl){1-1}\cmidrule(rl){2-2}\cmidrule(rl){3-3}\cmidrule(rl){4-4}
0 & No Security & No & Not validated \\
1 & AES-CBC-MAC-32 & No & 32-bit MIC \\
2 & AES-CBC-MAC-64 & No & 64-bit MIC \\
3 & AES-CBC-MAC-128 & No & 128-bit MIC \\
4 & AES-CTR & Yes & Not validated \\
5 & AES-CCM-32 & Yes & 32-bit MIC \\
6 & AES-CCM-64 & Yes & 64-bit MIC \\
7 & AES-CCM-128 & Yes & 128-bit MIC \\
\bottomrule
\end{tabulary}
\caption{\label{tab:tab1} {Security modes in the IEEE802.15.4e Standard. \cite{19}}}
\end{table}
\end{document}
答案2
Data not encrypted \newline authenticity uses 32-bit MIC
正如我最近在回答另一个与表格相关的问题时所说:要简洁。您已经不会使用完整的句子了,所以使用etc并没有什么问题。
您还可以通过使用另一行作为列标题的公共部分(如我在这里所做的那样)或作为Security \newline Level & Security \newline Mode & Protection
标题行,使第一列变得更窄。
\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{@{}c l X@{}}
\toprule
\multicolumn{2}{l}{Security}\\
Level & Mode & Protection \\
\midrule
0 & No Security & Data not encrypted \newline Authenticity not validated \\\hline
1 & AES-CBC-MAC-32 & Data not encrypted \newline Authenticity uses 32-bit MIC \\\hline
2 & AES-CBC-MAC-64 & Data not encrypted \newline Authenticity using 64-bit MIC \\\hline
3 & AES-CBC-MAC-128 & Data not encrypted \newline Authenticity using 128-bit MIC \\\hline
4 & AES-CTR & Data encrypted \newline Authenticity not validated \\\hline
5 & AES-CCM-32 & Data encrypted \newline Authenticity uses 32-bit MIC \\\hline
6 & AES-CCM-64 & Data encrypted \newline Authenticity uses 64-bit MIC \\\hline
7 & AES-CCM-128 & Data encrypted \newline Authenticity uses 128-bit MIC \\\hline
\bottomrule
\end{tabularx}
\caption{\label{tab:tab1} {Security modes in the IEEE802.15.4e Standard. \cite{19}}}
\end{table}
\end{document}
请注意另外几件事:
- 如果您要使用
booktabs
,请阅读手册并删除垂直线。如果您坚持使用垂直线,请不要将其用于booktabs
水平线。 - 您
\label{tab:tab1}
违背了正确使用交叉引用的目的。要符合语义,这样当您插入较早的表格时就不会感到困惑(例如:)\label{tab:SecurityModes}
。