% Table generated by Excel2LaTeX from sheet 'Sheet1'
\documentclass{article}
\usepackage{tabularx,booktabs}
\usepackage{multirow}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Add caption}
\begin{tabular}{|p{3em}|p{5em}|p{4em}|p{5em}|p{5em}|p{4em}|p{4em}|p{4em}|}
\hline
\multirow{2}{*}{\textbf{Mobility Model}}
& \multicolumn{7}{c}{\textbf{Parameter}} \\
\cmidrule{2-8}& \textbf{Basic Description} & \textbf{Adaptability for AANETs} & \textbf{Support to higher node mobility and Frequent topology updates} & \textbf{Safety parameters} & \textbf{Mechanical and aerodynamic constraint} & \textbf{Degree of Randomness} & \textbf{Applications} \\
\hline
\end{tabular}%
\label{tab:addlabel}%
\end{table}%
\end{document}
答案1
您遇到的問題之一是 pdfLaTeX 永遠不會用連字符連接段落的第一個單字。列中單元格的內容p
形成一個段落(在該術語的 TeX 特定意義上)。
在某些單元格中啟用第一個單字的連字符(“適應性”和“機械”是主要候選者)的方法是插入一個看起來有點人造的\hspace{0pt}
。在下面的程式碼中,這是透過設定名為 的新列類型來完成的P
,該p
列將其內容設為右對齊而不是完全對齊,同時仍然允許連字符,即使是單元格中的第一個單詞也是如此。
\documentclass{article}
\usepackage[letterpaper,margin=1in]{geometry} % set suitable page parameters
\usepackage[english]{babel}
\usepackage{array,ragged2e}
\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash\hspace{0pt}}p{#1}}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Add caption}
\label{tab:addlabel}
\begin{tabular}{|P{4.5em}|P{5em}|P{5em}|P{5em}|%
P{5em} |P{4em}|P{4em}|P{4em}|}
\hline
\textbf{Mobility Model}
& \multicolumn{7}{c|}{\textbf{Parameter}} \\
\cline{2-8}
& \textbf{Basic Description}
& \textbf{Adaptability for AANETs}
& \textbf{Support to higher node mobility and Frequent topology updates}
& \textbf{Safety parameters}
& \textbf{Mechanical and aerodynamic constraint}
& \textbf{Degree of Randomness}
& \textbf{Applications} \\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
以下是另外兩(三)種可能的解決方案。在所有這些中,我都使用該tabularx
套件使表格與文字寬度一樣寬。我還替換了\cmidrule
命令,\cline
因為 booktabs 的規則與垂直線不能很好地配合。有關替代方案,請參閱第三個範例。
在第一個中,我使用了表下方解釋的列標題的縮寫:
\documentclass{article}
\usepackage{tabularx}
\usepackage{multirow}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Add caption}
\begin{tabularx}{\textwidth}{|p{1.5cm}|X|X|X|X|X|X|X|}
\cline{1-8}
\textbf{Mobility Model} & \multicolumn{7}{c|}{\textbf{Parameter}} \\
\cline{2-8}
& \textbf{BD} & \textbf{AA} & \textbf{SF} & \textbf{SP} & \textbf{MC} & \textbf{DR} & \textbf{AP} \\
\cline{1-8}
\multicolumn{8}{p{\textwidth}}{\small BD: Basic Description, AA: Adaptability for AANETs, SF: Support to higher node mobility and Frequent topology updates, SP: Safety parameters, MC: Mechanical and aerodynamic constraint, DR: Degree of Randomness, AP: Applications}
\end{tabularx}%
\label{tab:addlabel}%
\end{table}%
\end{document}
在第二個範例中,我使用了套件sidewaystable
中的rotating
內容來旋轉表格:
\documentclass{article}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{ragged2e}
\newcolumntype{R}{>{\RaggedRight\let\newline\\\arraybackslash\hspace{0pt}}X}
\begin{document}
\begin{sidewaystable}[htbp]
\centering
\caption{Add caption}
\begin{tabularx}{\textwidth}{|R|R|R|R|R|R|R|R|}
\hline
\textbf{Mobility Model} & \multicolumn{7}{c|}{\textbf{Parameter}} \\
\cline{2-8}
& \textbf{Basic Description}
& \textbf{Adaptability for AANETs}
& \textbf{Support to higher node mobility and Frequent topology updates}
& \textbf{Safety parameters}
& \textbf{Mechanical and aerodynamic constraint}
& \textbf{Degree of Randomness} & \textbf{Applications} \\
\hline
\end{tabularx}%
\label{tab:addlabel}%
\end{sidewaystable}%
\end{document}
在最後一個範例中,我刪除了所有垂直線,並按照書本標籤中的規則替換了水平線。我還刪除了列標題中的粗體,因為它可能會分散注意力:
\documentclass{article}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Add caption}
\begin{tabularx}{\textwidth}{p{1.5cm}XXXXXXX}
\toprule
Mobility Model & \multicolumn{7}{c}{Parameter} \\
\cmidrule{2-8}
& BD & AA & SF & SP & MC & DR & AP \\
\bottomrule
\multicolumn{8}{p{\textwidth}}{\small BD: Basic Description, AA: Adaptability for AANETs, SF: Support to higher node mobility and Frequent topology updates, SP: Safety parameters, MC: Mechanical and aerodynamic constraint, DR: Degree of Randomness, AP: Applications}
\end{tabularx}%
\label{tab:addlabel}%
\end{table}%
\end{document}
答案3
(這個答案與第一個答案分開添加,因為解決方法有很大不同)
您的表格似乎沒有設定為完全跨越文字區塊的可用寬度。如果這是我的桌子,我會切換到一個tabularx
環境(整體寬度設定為\textwidth
)並刪除不必要的粗體字標題單元格的內容。這七個資料列採用稱為 的列類型C
,它只是X
列類型的修改後的居中版本。一個特點是可以直接允許不同的列寬;唯一的限制是 7 個C
參數總和必須為7
,即該類型的列數。指導寬度選擇的主要格式目標是任何標題單元格中的行數不超過四行。
\documentclass{article}
\usepackage[letterpaper,margin=1in]{geometry} % set suitable page parameters
\usepackage[english]{babel}
\usepackage{tabularx,ragged2e,booktabs}
\newcolumntype{L}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
\newcolumntype{C}[1]{>{\Centering\arraybackslash%
\hspace{0pt}\hsize=#1\hsize\linewidth=\hsize}X}
\usepackage[skip=0.333\baselineskip]{caption} % optional
\newcommand\mytab[1]{\smash{%
\begin{tabular}[t]{@{}l@{}} #1 \end{tabular}}}
\begin{document}
\begin{table}[htbp]
\setlength\tabcolsep{3pt} % default value: 6pt
\caption{Add caption}
\label{tab:addlabel}
\small
\begin{tabularx}{\textwidth}{@{} L
C{0.8}C{1}C{1.5}C{0.8}C{1}C{0.9}C{1} @{}} % 7 args sum to 7
\toprule
\mytab{Mobility\\Model} & \multicolumn{7}{c@{}}{Parameters} \\
\cmidrule(l){2-8}
& Basic Description
& Adaptability for AANETs
& Support for higher node mobility and frequent topology updates
& Safety parameters
& Mechanical and aero\-dynamic constraint
& Degree of randomness
& Applications \\
\midrule
blabla & blabla & blabla & blabla & blabla & blabla & blabla & blabla \\
blabla & blabla & blabla & blabla & blabla & blabla & blabla & blabla \\
blabla & blabla & blabla & blabla & blabla & blabla & blabla & blabla \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}