% 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}
Respuesta1
Uno de los problemas que estás encontrando es que pdfLaTeX nunca divide con guiones la primera palabra de un párrafo. El contenido de una celda en una p
columna forma un párrafo, en el sentido específico del término en TeX.
La forma de permitir la separación de palabras de las primeras palabras en algunas de las celdas ("Adaptabilidad" y "Mecánica" son las principales candidatas) es introducir una apariencia un tanto artificial \hspace{0pt}
. En el código siguiente, esto se hace configurando un nuevo tipo de columna, llamado P
, que es una p
columna que establece su contenido irregularmente a la derecha en lugar de justificado completamente, y al mismo tiempo permite la separación de palabras, incluso de la primera palabra de la celda.
\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}
Respuesta2
Aquí hay dos (tres) soluciones posibles más. En todos ellos he utilizado el tabularx
paquete para hacer las tablas tan anchas como el ancho del texto. También reemplacé el \cmidrule
comando por, \cline
ya que las reglas de las pestañas de libros no cooperan bien con las líneas verticales. Para ver una alternativa, consulte el tercer ejemplo.
En el primero he utilizado abreviaturas para los encabezados de las columnas que se explican debajo de la tabla:
\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}
En el segundo ejemplo, he usado sidewaystable
del rotating
paquete para rotar la tabla:
\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}
En este último ejemplo, eliminé todas las líneas verticales y reemplacé las líneas horizontales con las reglas de las pestañas de libros. También eliminé la negrita de los encabezados de las columnas, ya que podría distraer:
\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}
Respuesta3
(agregando esta respuesta por separado de la primera, ya que el método de solución es bastante diferente)
Su tabla no parece estar configurada para abarcar completamente el ancho disponible del bloque de texto. Si esta fuera mi mesa, cambiaría a un tabularx
entorno (con el ancho total establecido en\textwidth
) y eliminaría lo innecesario.negritadel contenido de las celdas del encabezado. Las siete columnas de datos emplean un tipo de columna llamado C
, que es simplemente una versión modificada y centrada del X
tipo de columna. Una característica es que es sencillo permitir diferentes anchos de columna; la única restricción es que los 7 C
argumentos deben sumar 7
, que es el número de columnas de este tipo. Un objetivo principal de formato que guió las opciones de ancho fue no tener más de cuatro filas en cualquier celda de encabezado.
\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}