данные таблицы пересекают столбец

данные таблицы пересекают столбец
% 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}

Связанный контент