% 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
чтобы сделать таблицы такими же широкими, как textwidth. Я также заменил \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}
В этом последнем примере я удалил все вертикальные линии и заменил горизонтальные линии по правилам из booktabs. Я также удалил жирный шрифт из заголовков столбцов, так как он мог отвлекать:
\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}