
Я хочу создать похожую таблицу, как на изображении. Я не знаю, как настроить толщину границ таблицы и цветовую схему, как на изображении, чтобы добиться желаемого результата.
Код:
Сколько строк я должен охватить 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
Что касается правил цветовой гаммы таблиц, то в преамбуле есть такие правила:
\usepackage{colortbl} \arrayrulecolor{blue!70}
Для настройки толщины линий и вертикального отступа вокруг можно использовать пакет
booktabs
и команду\specialrule{}{}{}
с тремя аргументами: толщина, отступ сверху и отступ снизу.Да, пять — правильно. У вас есть 5 уровней (строк) для фактора «возраст», и первый аргумент
\multirow
должен быть числом этих строк.Что касается набивки, то ссылка Вернера более чем достаточна. Я бы здесь выделил
tabularx
иtabulary
пакеты.
Решил, ну... о вкусах не спорят, но ваша таблица для меня пример того, как не стоит делать (боюсь, и для других тоже). Поэтому несколько предложений:
Избегайте вертикальных линий (идеальное число: 0. Когда? всегда)
Избегайте большинства горизонтальных линий (идеальное число: 3) одна
\toprule
, одна\bottomrule
и одна\midrule
достаточно для простых таблиц. Сложные таблицы могут иметь больше \midrules или \cmidrules, но меньше (линий) более (ясно) в большинстве случаев.Избегайте правил галочек в середине таблицы,
\midrule
достаточно .Избегайте использования заглавных или маленьких заглавных букв в обычных ячейках (ну и в ячейках заголовков тоже..). Оставляйте заглавные буквы только для очень сильного акцента (ЗАГОЛОВОК), аббревиатур и т. д.
Сделайте таблицу максимально простой и понятной. Например: если все ячейки столбца имеют одну и ту же единицу измерения, это можно отобразить в заголовке столбца и не затмевать числа ячеек. "< 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}