Я хочу, чтобы внутренняя вертикальная линия в таблице была выровнена по центру.
Пример кода:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|c|c|}
\hline
\multirow{2}{*}{R} & \multicolumn{2}{c|}{No. Jobs Completed/Submitted} \\ \cline{2-3}
& C1 & C2 \\ \hline
r1 & a & b \\ \hline
r2 & a & b \\ \hline
\end{tabular}
\end{document}
Его вывод:
Требуемый результат: Если возможно, я хочу, чтобы столбцы C1 и C2 были разделены поровну.
---------------------------------
|R |No. Jobs Completed/Submitted|
|r1| C1 | C2 |
|-------------------------------|
|r2| a | b |
--------------------------------
решение1
Вы можете использовать w
тип -column из array
пакета:
\documentclass{article}
\usepackage{multirow,array}
\begin{document}
\setlength{\extrarowheight}{1pt}
\begin{tabular}{|c|w{c}{3cm}|w{c}{3cm}|}
\hline
\multirow{2}{*}{R} & \multicolumn{2}{c|}{No. Jobs Completed/Submitted} \\ \cline{2-3}
& C1 & C2 \\ \hline
r1 & a & b \\ \hline
r2 & a & b \\ \hline
\end{tabular}
\end{document}
PS: Рекомендуется использовать \extrarowheight
предоставленный array
, чтобы таблица выглядела лучше.
решение2
С помощью tabularray
пакета вы можете использовать hspan=even
опцию равномерного распределения столбцов:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
colspec={|c|c|c|},
hspan=even
}
\hline
\SetCell[r=2]{} R & \SetCell[c=2]{} No. Jobs Completed/Submitted & \\ \cline{2-3}
& C1 & C2 \\ \hline
r1 & a & b \\ \hline
r2 & a & b \\ \hline
\end{tblr}
\end{document}
решение3
с nicematrix
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}[width=0.6\linewidth]{cX[c]X[c]}[hvlines,cell-space-limits=2pt]
\Block{2-1}{R} & \Block{1-2}{No. Jobs Completed/Submitted} & \\
& C1 & C2 \\
r1 & a & b \\
r2 & a & b \\
\end{NiceTabular}
\vspace{\baselineskip}
or
\vspace{\baselineskip}
\begin{NiceTabular}{c W{c}{3cm} W{c}{3cm}}[hvlines,cell-space-limits=2pt]
\Block{2-1}{R} & \Block{1-2}{No. Jobs Completed/Submitted} & \\
& C1 & C2 \\
r1 & a & b \\
r2 & a & b \\
\end{NiceTabular}
\end{document}
решение4
По духу то же самое, что иответ Стивена, но используя естественную ширину заголовка вашей таблицы, измерив ее:
\documentclass{article}
\usepackage{multirow, array}
\newlength\mylength
\begin{document}
\settowidth\mylength{No. Jobs Completed/Submitted}
\mylength=.5\dimexpr\mylength-\arrayrulewidth-2\tabcolsep\relax
\begin{tabular}{|c|*2{w{c}{\mylength}|}}
\hline
\multirow{2}{*}{R} & \multicolumn{2}{c|}{No. Jobs Completed/Submitted} \\ \cline{2-3}
& C1 & C2 \\ \hline
r1 & a & b \\ \hline
r2 & a & b \\ \hline
\end{tabular}
\end{document}
На мой взгляд, это улучшенная версия вашей таблицы, в которой все вертикальные линии удалены, а горизонтальные заменены на booktabs
горизонтальные:
\documentclass{article}
\usepackage{multirow, booktabs, array}
\newlength\mylength
\begin{document}
\settowidth\mylength{No. Jobs Completed/Submitted}
\mylength=.5\dimexpr\mylength-2\tabcolsep\relax
\begin{tabular}{c*2{w{c}{\mylength}}}
\toprule
\multirow{2}{*}{R} & \multicolumn{2}{c}{No. Jobs Completed/Submitted} \\
& C1 & C2 \\
\midrule
r1 & a & b \\
r2 & a & b \\
\bottomrule
\end{tabular}
\end{document}