Как добавить символ процента в столбец таблицы вместе с вертикальным и горизонтальным отступом ячеек?

Как добавить символ процента в столбец таблицы вместе с вертикальным и горизонтальным отступом ячеек?

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

Код: Сколько строк я должен охватить 4 или 5? Для "Возраст" я указал {5}в качестве параметра \multirow. Это правильно?

    \newcolumntype{y}{>{\bfseries\arraybackslash}m{4cm}}
\newcolumntype{L}{>{\centering\arraybackslash}m{3.5cm}}
\begin {table}
\caption{Demographic Profiles of Participants} 
\begin{center}
\begin{tabular}{ |y | L | L | L | >{$} Sr <{$}}
\hline
Socio Demographic Factors & \textbf{Ranges} & \textbf{Frequency} & \textbf{Responses (\%)} \\ \hline
\multirow{5}{3em}{\textbf{AGE}} & 18-25 YEARS  &    84  & 57 \\ 
    & 26-35 YEARS   & 32    & 22 \\
    & 36-45 YEARS   & 11    & 7 \\
    & 46-55YEARS    & 14    & 9 \\
    & 56-ABOVE      & 7         & 5 \\ \hline
\multirow{1}{7em}{GENDER}   & MALE  & 87 & 59\\
    & FEMALE    & 61    & 41 \\ \hline
\multirow{5}{7em}{COMPUTER PROFICIENCY LEVEL}   & LESS THAN 1 YEAR &    5   & 3 \\
    & 1 TO 3 YEARS  & 37    & 25 \\
    & 4 TO 6 YEARS  & 43    & 29 \\
    & 7 TO 9YEARS   & 25    & 17 \\
    & MORE THAN 9 YEARS & 42    &28 \\ \hline
\multirow{4}{7em}{EDUCATION}    &UNDER GRADUATE STUDENT (HONS)  & 5  &  3 \\
    & GRADUATE STUDENT (HONS)   & 67    & 45 \\ 
    & POST GRADUATE STUDENT & 37    & 25 \\
    & DOCTORATE STUDENTS    & 18    & 12 \\ \hline
\multirow{2}{3em}{COMPUTER  EXPERIENCE} & YES   & 101   & 68 \\
    & NO    & 47    & 32 \\ \hline
\multirow{2}{7em}{MAJOR DISCIPLINE} & IT STUDENTS   & 42    & 48 \\
    & NON-IT STUDENTS    & 59   & 42 \\ \hline

\end{tabular}
\end{center}
\end{table}

решение1

Пакет multirowожидает, что вы объявляете количество строк (не рядов), которые следуют за многорядной ячейкой. В вашем случае: для ВОЗРАСТА: 5, для ПОЛА: 2, для КОМПЬЮТЕРА ... 5, для ОБРАЗОВАНИЯ: 7 и т. д. Обычно это означает, что вы должны подсчитать строки после того, как таблица сгенерирована, а затем скорректировать количество охватываемых строк. Например, как я делаю здесь:

\documentclass{article}
    \usepackage{array,multirow}
\begin{document}
    \newcolumntype{y}{>{\bfseries\arraybackslash}m{4cm}}
    \begin {table}
\caption{Demographic Profiles of Participants}
    \centering
\begin{tabular}{ |y|>{\raggedright}p{4cm}|c|c<{\%}|}
    \hline
\centering
Socio Demographic Factors
    &   \multicolumn{1}{c|}{\textbf{Ranges}}
                            & \textbf{Frequency}
                                    & \textbf{Responses (\%)} \\ \hline
\multirow{5}{4cm}{\textbf{AGE}}
    & 18-25 YEARS           & 84    & 57    \\
    & 26-35 YEARS           & 32    & 22    \\
    & 36-45 YEARS           & 11    & 7     \\
    & 46-55YEARS            & 14    & 9     \\
    & 56-ABOVE              & 7     & 5     \\  \hline
\multirow{1}{4cm}[-1.5ex]{GENDER}
    & MALE                  & 87    & 59    \\
    & FEMALE                & 61    & 41    \\  \hline
\multirow{5}{4cm}{COMPUTER PROFICIENCY LEVEL}
    & LESS THAN 1 YEAR      & 5     & 3     \\
    & 1 TO 3 YEARS          & 37    & 25    \\
    & 4 TO 6 YEARS          & 43    & 29    \\
    & 7 TO 9YEARS           & 25    & 17    \\
    & MORE THAN 9 YEARS     & 42    & 28    \\  \hline
\multirow{7}{4cm}{EDUCATION}
    &UNDER GRADUATE STUDENT (HONS)
                            & 5     &  3    \\
    & GRADUATE STUDENT (HONS)
                            & 67    & 45    \\
    & POST GRADUATE STUDENT & 37    & 25    \\
    & DOCTORATE STUDENTS    & 18    & 12    \\  \hline
\multirow{2}{4cm}{COMPUTER EXPERIENCE}
    & YES                   & 101   & 68    \\
    & NO                    & 47    & 32    \\  \hline
\multirow{2}{4cm}{MAJOR DISCIPLINE}
    & IT STUDENTS           & 42    & 48    \\
    & NON-IT STUDENTS       & 59    & 42    \\  \hline
\end{tabular}
    \end{table}
\end{document} 

Более простая задача у вас есть, если все строки после multirow cellимеют только одну строку. В этом случае вам следует для второго столбца использовать lвместо pтип столбца. Для других возможностей перейдите по ссылке, предоставленной Johannes_B.

Я также немного упростил конструкцию таблицы.

решение2

  1. Что касается правил цветовой гаммы таблиц, то в преамбуле есть такие правила:

    \usepackage{colortbl} \arrayrulecolor{blue!70}

  2. Для настройки толщины линий и вертикального отступа вокруг можно использовать пакет booktabsи команду \specialrule{}{}{}с тремя аргументами: толщина, отступ сверху и отступ снизу.

  3. Да, пять — правильно. У вас есть 5 уровней (строк) для фактора «возраст», и первый аргумент \multirowдолжен быть числом этих строк.

  4. Что касается набивки, то ссылка Вернера более чем достаточна. Я бы здесь выделил tabularxи tabularyпакеты.

Решил, ну... о вкусах не спорят, но ваша таблица для меня пример того, как не стоит делать (боюсь, и для других тоже). Поэтому несколько предложений:

  1. Избегайте вертикальных линий (идеальное число: 0. Когда? всегда)

  2. Избегайте большинства горизонтальных линий (идеальное число: 3) одна \toprule, одна \bottomruleи одна \midruleдостаточно для простых таблиц. Сложные таблицы могут иметь больше \midrules или \cmidrules, но меньше (линий) более (ясно) в большинстве случаев.

  3. Избегайте правил галочек в середине таблицы, \midruleдостаточно .

  4. Избегайте использования заглавных или маленьких заглавных букв в обычных ячейках (ну и в ячейках заголовков тоже..). Оставляйте заглавные буквы только для очень сильного акцента (ЗАГОЛОВОК), аббревиатур и т. д.

  5. Сделайте таблицу максимально простой и понятной. Например: если все ячейки столбца имеют одну и ту же единицу измерения, это можно отобразить в заголовке столбца и не затмевать числа ячеек. "< 9 лет" так же информативно, как "БОЛЕЕ 9 ЛЕТ", но занимает меньше места. Используйте --вместо одного -для диапазонов. "Социально-демографические факторы" слишком длинны для одной строки, а многострочные для них некрасивы, но вы можете опустить этот заголовок, сделав более информативную подпись.

Результаты, полученные при использовании этих правил, могут быть примерно такими:

МВЭ

\documentclass{article}
\usepackage{array,multirow,booktabs,mathtools,tabulary,xcolor}
%\usepackage[table]{xcolor}
\usepackage{colortbl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\let\belowcaptionskip\abovecaptionskip
\let\oldmidrule\midrule

\arrayrulecolor{blue!70} 

\begin{document}

\begin {table}
\caption{Demographic profiles of participants according to the socio demographic factors.} 
\centering
\begin{tabulary}{\textwidth}{>{\bfseries}LlRR} 
\toprule  & \textbf{Ranges} & \mbox{\textbf{Frequency}} & \mbox{\textbf{Responses (\%)}}\\
\midrule \multirow{5}{.2\textwidth}{Age} & 18-25 years & 84 & 57 \\
  & 26--35 years & 32 & 22 \\
  & 36--45 years & 11 & 7 \\
  & 46--55 years & 14 & 9 \\
  &  < 56 years  & 7 & 5 \\
  \midrule \multirow{2}{.2\textwidth}{Gender} & Male & 87 & 59\\
  & Female & 61 & 41 \\
 \midrule \multirow{5}{.2\textwidth}{Computer\newline proficiency\newline level} & < 1 year & 5 & 3 \\
  & 1 to 3 years & 37 & 25 \\
  & 4 to 6 years & 43 & 29 \\
  & 7 to 9years & 25 & 17 \\
  & $>$ 9 years & 42 &28 \\
  \midrule \multirow{4}{.2\textwidth}{Education} & Under graduate (hons) & 5 & 3 \\
  & Graduate  (hons) & 67 & 45 \\
  & Post graduate  & 37 & 25 \\
  & Doctorate & 18 & 12 \\
  \midrule \multirow{2}{.2\textwidth}{Computer experience} & Yes & 101 & 68 \\
  & No & 47 & 32 \\
  \midrule \multirow{2}{.2\textwidth}{Major discipline} & IT students & 42 & 48 \\
  & Non-IT students & 59 & 42 \\
  \bottomrule
\end{tabulary}
\end{table}

\end{document}

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