减少垂直边距,增加单元格的顶部边距,并将单元格中的元素居中

减少垂直边距,增加单元格的顶部边距,并将单元格中的元素居中

在我使用的代码中,

\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}

我想做一些事情来改进它:

  1. 首先,如何减少垂直单元格边距,以便一个值可以放在一行中
  2. 其次,如何增加上边距,使得顶部和底部文本之间有相同的空间。
  3. 最后,将元素置于单元格的中心。“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等同的是命令。multirowmulticolumnSetCell

编辑:我不明白您的第一点,所以我不确定我的回答是否正确解决了这个问题。

相关内容