% 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}
Responder1
Um dos problemas que você encontra é que o pdfLaTeX nunca hifeniza a primeira palavra de um parágrafo. O conteúdo de uma célula em uma p
coluna forma um parágrafo, no sentido específico do termo TeX.
A maneira de permitir a hifenização das primeiras palavras em algumas das células - "Adaptabilidade" e "Mecânico" são os principais candidatos - é inserir um \hspace{0pt}
. No código abaixo, isso é feito configurando um novo tipo de coluna, chamado P
, que é uma p
coluna que define seu conteúdo irregular à direita em vez de totalmente justificado, ao mesmo tempo que permite a hifenização, mesmo da primeira palavra da célula.
\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}
Responder2
Aqui estão mais duas (três) soluções possíveis. Em todos eles usei o tabularx
pacote para deixar as tabelas tão largas quanto a largura do texto. Também substituí o \cmidrule
comando por \cline
porque as regras dos booktabs não cooperam bem com linhas verticais. Para uma alternativa, veja o terceiro exemplo.
No primeiro, usei abreviações para os cabeçalhos das colunas que são explicadas abaixo da tabela:
\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}
No segundo exemplo, usei sidewaystable
do rotating
pacote para girar a tabela:
\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}
Neste último exemplo removi todas as linhas verticais e substituí as linhas horizontais pelas regras dos booktabs. Também removi o negrito dos cabeçalhos das colunas, pois pode distrair:
\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}
Responder3
(adicionando esta resposta separadamente da primeira, pois o método de solução é bem diferente)
Sua tabela não parece estar configurada para abranger totalmente a largura disponível do bloco de texto. Se esta fosse minha tabela, eu mudaria para um tabularx
ambiente (com largura geral definida como \textwidth
) e descartaria o desnecessárioem negritodo conteúdo das células de cabeçalho. As sete colunas de dados empregam um tipo de coluna chamado C
, que é simplesmente uma versão modificada e centralizada do X
tipo de coluna. Um recurso é que é simples permitir larguras variadas de colunas; a única restrição é que os 7 C
argumentos devem somar 7
, que é o número de colunas deste tipo. O principal objetivo de formatação que orientou as escolhas de largura era não ter mais do que quatro linhas em qualquer célula de cabeçalho.
\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}