在我使用的代码中,
\documentclass{article}
\renewcommand{\arraystretch}{1.5} % stretching row height
\usepackage{amsmath}
\usepackage{multirow}
\usepackage{tabulary}
\newcolumntype{K}[1]{>{\centering\arraybackslash}p{#1}}
\usepackage{adjustbox}
\usepackage{array}
\newcolumntype{R}[2]{%
>{\adjustbox{angle=#1,lap=\width-(#2)}\bgroup}%
l%
<{\egroup}%
}
\newcommand*\rot{\multicolumn{1}{R{30}{0.1em}}}% no optional argument here, please!
\begin{document}
\begin{table} [!t]
\caption{Summary}
\centering
\begin{tabular}{ K{5mm} | K{15mm} | K{15mm} || K{8mm} | K{8mm}| K{8mm}| K{8mm} | K{8mm} }
\hline
\multirow{2}{*}{No.} & \multicolumn{2}{c||}{Case} & \multicolumn{5}{c}{Value} \\ \cline{2-8}
& X & Y & \rot{Column 1} & \rot{Column 2} & \rot{Column 3} & \rot{Column 4} & \rot{Column 5} \\ \hline \hline
1 & \multirow{4}{=}{\centering 1} & a & \cite{HouMay19} & & & \cite{ZhuOct18}, \cite{HouMay19} & \\ \cline{1-1} \cline{3-8}
2 & & b & \cite{HouMay19} & & & \cite{HouMay19} & \\ \cline{1-1} \cline{3-8}
3 & & c & \cite{DouAug23} & & & & \\ \cline{1-1} \cline{3-8}
4 & & d & & & & & \\ \cline{1-8}
\end{tabular}
\end{table}
\end{document}
我想做一些事情来改进它:
- 首先,如何减少垂直单元格边距,以便一个值可以放在一行中
- 其次,如何增加上边距,使得顶部和底部文本之间有相同的空间。
- 最后,将元素置于单元格的中心。“X 列”被旋转了,但不知何故 LaTeX 并未调整单元格的 \multicolumn。
答案1
您可以使用以下方式轻松获得类似的表格tabularray
包裹。
\documentclass{article}
\usepackage{graphicx} % for rotating the text
\usepackage{caption}
\usepackage{tabularray}
\begin{document}
\begin{table}
\centering
\caption{Summary}
\label{tab:summary}
\begin{tblr}{
vlines, hlines,
stretch=1.5,
colspec={m{5mm}m{15mm}m{15mm}*{5}{m{10mm}}},
cells = {c},
cell{2}{4-8} = {cmd={\rotatebox[origin=c]{60}}},
% row{2} = {abovesep+=2pt, belowsep+=2pt}, % if you want more spaces around the second row
vline{5-8}={2}{0pt},
}
\SetCell[r=2]{m, c} No. & \SetCell[c=2]{m, c} Case && \SetCell[c=5]{m, c} Value&&\\
&X&Y&Column 1 & Column 2 & Column 3 & Column 4 & Column 5\\
1 & \SetCell[r=4]{m, c} 1 & a & cite1 &&& cite1, cite2 & \\
2 & & b & cite1 &&& cite3 & \\
3 & & c & cite1 &&& cite3 & \\
4 & & d & cite1 &&& cite3 & \\
\end{tblr}
\end{table}
\end{document}
在 中,与和命令tabularray
等同的是命令。multirow
multicolumn
SetCell
编辑:我不明白您的第一点,所以我不确定我的回答是否正确解决了这个问题。