Как нарисовать боковую линию в таблице (использование многорядной таблицы приведет к превышению ширины)

Как нарисовать боковую линию в таблице (использование многорядной таблицы приведет к превышению ширины)
\documentclass{article}
\usepackage{}
\usepackage{makecell, multirow, tabularx}
\begin{document}

\begin{table}[h!]
\setlength\extrarowheight{2pt} % for a ever so slightly more open "look"
    \begin{tabularx}{\textwidth}{X |c |c |c |c |}
    \cline{2-5}
     & Mean & N & Std. Deviation & Std. Error Mean \\
         \hline
    Testing123 Testin123 Testing123 Testin123 & 23\% & 10\% & 279\% & 233\% \\
    \hline
    \end{tabularx}
\caption{Testing123 Testin123Testing123 Testin123}
\end{table}

Исход: введите описание изображения здесь

Я добавил в несколько столбцов

    \begin{table}[h!]
\setlength\extrarowheight{2pt} % for a ever so slightly more open "look"
    \begin{tabularx}{\textwidth}{X |c |c |c |c |}
    \cline{2-5}
     & Mean & N & Std. Deviation & Std. Error Mean \\
         \hline
    \multicolumn{1}{|c|}{Testing123 Testin123 Testing123 Testin123} & 23\% & 10\% & 279\% & 233\% \\
    \hline
    \end{tabularx}
\caption{Testing123 Testin123Testing123 Testin123}
\end{table}

Исход:

введите описание изображения здесь

и я хотел сделать "Testing123 Testin123 Testing123 Testin123 " в 2 ряда.

решение1

Если вы посмотрите на код @Jennifer, вы увидите, что левая вертикальная линия в первой ячейке заголовка (Mean) не совпадает с вертикальной линией в следующей строке. Это происходит из-за того, что вертикальные полосы ( |) размещены неправильно. Вам нужно установить |справа от Xстолбца в первой \multicolumnиудалятькоманда \multicolumnиз второй ячейки заголовка. Первая строка должна быть:

\multicolumn{1}{X|}{} & Mean & N & Std. Deviation & Std. Error Mean \\

Вот полный MWE:

введите описание изображения здесь

\documentclass{article}
\usepackage{tabularx, caption}        % Load package caption for better captions
\usepackage{booktabs, ragged2e}       % Use ragged2e to improve ragged text
\setlength\extrarowheight{1pt}        % Both line necessary for decent spacing
\renewcommand{\arraystretch}{1.2}

\begin{document}

\begin{table}[!ht]
\caption{Testing123 Testin123Testing123 Testin123%   % Caption above table
    \label{tab:test123}%                             % Label inside caption
    }
    \begin{tabularx}{\textwidth}{|>{\RaggedRight\arraybackslash}X|c |c |c |c |}
    \cline{2-5}
     \multicolumn{1}{X|}{}   % Right vertical rules in first header cell 
     & Mean                  % Remove `multicolumn` from second header cell 
     & N & Std. Deviation
     & Std. Error Mean \\
     \hline
    Testing123 Testin123 Testing123 Testin123 & 23\% & 10\% & 279\% & 233\% \\
    \hline
    \end{tabularx}
\end{table}

Однако я предлагаю вам оформить таблицу по-другому:

  1. Использоватьзакладкидля лучших правил
  2. Избавьтесь от всех вертикальных правил (см.руководство по использованию booktabs)
  3. Используйте @{}для снятия левого и правого подшипников.
  4. Установите четыре столбца с цифрами одинаковой ширины, определив новый тип столбца.
  5. Установить выравнивание столбцов рисунков по правому краю
  6. Переместить знак процента в заголовок

Табличная преамбула выглядит следующим образом:

\begin{tabularx}{\textwidth}{@{}M*{4}{N}@{}}

что значит:

  1. @{}= удалите боковой подшипник слева от первой колонки, т.е. небольшое пространство, которое вы видите в начале первой колонки
  2. M= установить один столбец типа M(который мы определили с помощью команды \newcolumntypeв преамбуле документа).
  3. *{4}{N}= означает создание четырех столбцов типа N(который мы определили с помощью команды \newcolumntypeв преамбуле документа). Это то же самое, что написать четыре NNNNв этом MWE, но обычно это сокращенный вариант.
  4. @{}= то же, что и пункт 1 выше для последнего столбца: Снимите боковой подшипниквернопятого столбца,то естьнебольшой пробел, который вы видите в конце последнего столбца.

Надеюсь, теперь стало более понятно.

введите описание изображения здесь

\documentclass{article}
\usepackage{tabularx, caption}          % Load package caption for decent foramtting and spacing
\usepackage{booktabs, ragged2e}         % Use booktabs rules and get rid of vertical rules,
                                        % ragged2e to improved ragged right and left text
\setlength\extrarowheight{1pt}          % Both line necessary for decent spacing, unless you are using booktabs rules.
\renewcommand{\arraystretch}{1.2}

\newcolumntype{Y}{>{\RaggedRight\arraybackslash\hsize=2\hsize\linewidth=\hsize}X}
\newcolumntype{W}{>{\RaggedLeft\arraybackslash\hsize=0.75\hsize\linewidth=\hsize}X}


\begin{document}
    
\begin{table}[!ht]
\caption{Testing123 Testin123Testing123 Testin123%
    \label{tab:test123}% 
    }
    \begin{tabularx}{\textwidth}{@{}Y*{4}{W}@{}}
    \toprule
     & \small Mean (\%)
     & \small N (\%)& \small Std. Deviation~(\%)
     & \small Std. Error Mean (\%)\\
     \midrule
    Testing123 Testin123 Testing123 Testin123 & 23 & 10 & 279 & 233 \\
    \bottomrule
    \end{tabularx}
\end{table}
\end{document}

решение2

Я дважды прикрепил многоколонку к строке заголовка. Надеюсь, это то, что вы ищете

\documentclass{article}
\usepackage{}
\usepackage{makecell, multirow, tabularx}
\begin{document}

\begin{table}[h!]
\setlength\extrarowheight{2pt} % for a ever so slightly more open "look"
    \begin{tabularx}{\textwidth}{|X|c |c |c |c |}
    \cline{2-5}
     \multicolumn{1}{l}{}
     & \multicolumn{1}{|l|}{Mean} & N & Std. Deviation & Std. Error Mean \\
         \hline
    Testing123 Testin123 Testing123 Testin123 & 23\% & 10\% & 279\% & 233\% \\
    \hline
    \end{tabularx}
\caption{Testing123 Testin123Testing123 Testin123}
\end{table}


\end{document}

введите описание изображения здесь

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