如何使用多行和多列垂直对齐单元格?

如何使用多行和多列垂直对齐单元格?

第一次发帖。过去几个小时,我一直在绞尽脑汁想办法如何以我想要的方式显示下面的表格。我已经非常接近了,但似乎有一些小细节我做不到,我希望有人能帮我。这是表格:

在此处输入图片描述

你可能从我在图片上做的标记中猜到了,我想

  1. 删除橙色划掉的线。
  2. 将绿色圆圈内的文本移动到单元格的正中心。
  3. 所有紫色圆圈内的单元格都是水平居中的。我也希望它们垂直居中,但我试过的 n+1 种方法都没有成功。
  4. 将红色圆圈内的多个单元格垂直居中。

我曾尝试使用它m{width}来解决对齐问题,但没有成功。

我当然不是 LaTeX 专家,所以我的代码可能看起来有点业余和混乱,但它在这里(希望我没有忘记相关的软件包):

\usepackage{bm}
\usepackage{array}

\begin{table}[h]
\begin{center}
\begin{tabular}{|m{0.75cm} m{0.75cm}| *{11}{ >{\centering\arraybackslash} m{1.25cm}|}}
\cline{1-13}
    
    & & \multicolumn{11}{||c||}{\textbf{ Initial Orbital Period (days) }} \\ \cline{3-13}
    & & \textbf{5} & \textbf{10} & \textbf{20} & \textbf{30} & \textbf{60} & \textbf{100} & \textbf{170} & \textbf{300} & \textbf{500} & \textbf{750} & \textbf{1000} \\ \cline{1-13}
    \multicolumn{1}{ |m{0.75cm} }{\multirow{6}{1.5em}{\rotatebox[origin=c]{90}{ \textbf{Initial Accretor Mass ( }$\bm{M}_{\odot}$\textbf{)}}}} & 
    \multicolumn{1}{ |m{0.75cm}| }{$\bm{0.90}$} & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\[5ex] \cline{2-13} &
    
    \multicolumn{1}{ |m{0.75cm}| }{$\bm{0.95}$} & x/\checkmark/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ [5ex]
    \cline{2-13} &
    
    \multicolumn{1}{ |m{0.75cm}| }{$\bm{1.00}$} & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\[5ex] \cline{2-13} &
    
    \multicolumn{1}{ |m{0.75cm}| }{$\bm{1.05}$} & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\[5ex] \cline{2-13} &
    
    \multicolumn{1}{ |m{0.75cm}| }{$\bm{1.10}$} & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\[5ex] \cline{2-13} &
    
    \multicolumn{1}{ |m{0.75cm}| }{$\bm{1.15}$} & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\[5ex] \cline{1-13}
    
\end{tabular}
\caption{Test}
\label{tab:tab1}
\end{center}
\end{table}

我知道,如果我将第一个改为\cline{1-13\cline{3-13}我用橙色划掉的水平线就会消失。此外,更改

\begin{tabular}{|m{0.75cm} m{0.75cm}| *{11}{ >{\centering\arraybackslash} m{1.25cm}|}}

\begin{tabular}{m{0.75cm} m{0.75cm}| *{11}{ >{\centering\arraybackslash} m{1.25cm}|}}

将删除我用橙色划掉的垂直线(我删除了第一个管道)。然而,这会产生一个更糟糕的问题,我同样不知道如何解决(左侧垂直线的大部分被删除了):

在此处输入图片描述

任何帮助都将不胜感激!!

编辑:我取得了一些进展。我设法弄清楚了如何删除上面用橙色划掉的线条。但是,所有其他问题仍然存在,我仍然无法弄清楚。以下是供参考的新代码:

\begin{table}[h]
\begin{tabular}{m{0.75cm} m{0.75cm} | *{11}{>{\centering\arraybackslash} m{1.0cm}|}}
\cline{3-13}
\multicolumn{1}{l}{} & \multicolumn{1}{l|}{} & \multicolumn{11}{c|}{\textbf{Initial Orbital Period (days)}} \\ \cline{3-13} 
\multicolumn{1}{l}{} & \multicolumn{1}{l|}{} & \textbf{5} & \textbf{10} & \textbf{20} & \textbf{30} & \textbf{60} & \textbf{100} & \textbf{170} & \textbf{300} & \textbf{500} & \textbf{750} & \textbf{1000} \\ \hline
\multicolumn{1}{|m{0.5cm}|}{\multirow{6}{*}{\rotatebox[origin=c]{90}{\textbf{Initial Accretor Mass (}\bm{$M_{\odot}$}\textbf{)}}}} & \textbf{0.90} & x/\checkmark/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\[5ex] \cline{2-13}
\multicolumn{1}{|c|}{} & \textbf{0.95} &  &  &  &  &  &  &  &  &  &  &  \\[5ex] \cline{2-13} 
\multicolumn{1}{|c|}{} & \textbf{1.00} &  &  &  &  &  &  &  &  &  &  &  \\[5ex] \cline{2-13} 
\multicolumn{1}{|c|}{} & \textbf{1.05} &  &  &  &  &  &  &  &  &  &  &  \\[5ex] \cline{2-13} 
\multicolumn{1}{|c|}{} & \textbf{1.10} &  &  &  &  &  &  &  &  &  &  &  \\[5ex] \cline{2-13} 
\multicolumn{1}{|c|}{} & \textbf{1.15} &  &  &  &  &  &  &  &  &  &  &  \\[5ex] \hline
\end{tabular}
\end{table}

...新表格如下所示:

在此处输入图片描述

答案1

我建议使用以下代码,cellspace它可确保在默认情况下以字母为前缀的说明符的列中单元格顶部和底部的垂直间距最小S(或者使用可选参数以任何字母为前缀[column=some letter]):

\documentclass{article}
\usepackage{geometry}
\usepackage{bm, dingbat}
\usepackage{array, multirow, cellspace}
\setlength{\cellspacetoplimit}{2ex}
\setlength{\cellspacebottomlimit}{2ex}
\usepackage{rotating}

\begin{document}

\begin{table}[!h]
\centering \small \setlength{\tabcolsep}{3pt}
\begin{tabular}{|m{0.75cm}|>{\centering\arraybackslash}S{m{0.75cm}}| >{\centering\arraybackslash}S{m{1.3cm}}|*{10}{>{\centering\arraybackslash}S{m{1cm}}|}}
\cline{3-13}
   \multicolumn{2}{c}{} & \multicolumn{11}{||Sc||}{\textbf{ Initial Orbital Period (days) }} \\ \cline{3-13}
   \multicolumn{2}{c|}{} & \textbf{5} & \textbf{10} & \textbf{20} & \textbf{30} & \textbf{60} & \textbf{100} & \textbf{170} & \textbf{300} & \textbf{500} & \textbf{750} & \textbf{1000} \\ \cline{1-13}
   \multirow{6}{=}[-4.2ex]{\centering\rotatebox[origin=c]{90}{ \textbf{Initial Accretor Mass ( }$\bm{M}_{\odot}$\textbf{)}}} &
   $\bm{0.90}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \cline{2-13}
    & $\bm{0.95}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \cline{2-13}
    & $\bm{1.00}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \cline{2-13}
    & $\bm{1.05}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \cline{2-13}
    & $\bm{1.10}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \cline{2-13}
    & $\bm{1.15}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ \cline{1-13}
\end{tabular}
\caption{Test}
\label{tab:tab1}
\end{table}

\end{document} 

在此处输入图片描述

答案2

与。{NiceTabular}nicematrix

在 中{NiceTabular},您可以使用命令 水平和垂直合并单元格\Block。对于行,您可以指定逻辑行数(而不是像 那样的物理行数\multicolumn)。

您指定要角落corners=NW(西北)。

使用键hvlines,绘制所有规则,除了块(由 构造\Block)和角落(由 指定corners)之外。

\documentclass{article}
\usepackage{bm}
\usepackage{amssymb}
\usepackage{rotating}
\usepackage{nicematrix}

\begin{document}

\begin{sidewaystable}[h]
\small
\begin{center}
\renewcommand{\arraystretch}{2}
\begin{NiceTabular}{w{c}{0.75cm}>{\bfseries}w{c}{0.75cm}*{11}{w{c}{1.25cm}}}[corners=NW,hvlines]
& & \Block{1-*}{\bfseries Initial Orbital Period (days)} \\ 
& & \RowStyle{\bfseries} 5 & 10 & 20 & 30 & 60 & 100 & 170 & 300 & 500 & 750 & 1000 \\ 
\Block{6-1}{\rotate \bfseries Initial Accretor Mass ($\bm{M}_{\odot}$)} 
& 0.90 & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\  
& 0.95 & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\  
& 1.00 & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\  
& 1.05 & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\  
& 1.10 & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\  
& 1.15 & x/ \checkmark / \checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ 
\end{NiceTabular}
\caption{Test}
\label{tab:tab1}
\end{center}
\end{sidewaystable}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

答案3

这是Bernard 的解决方案看完之后booktabs

\documentclass{article}
\usepackage{geometry}
\usepackage{bm, dingbat}
\usepackage{array, multirow, cellspace, booktabs}
\setlength{\cellspacetoplimit}{2ex}
\setlength{\cellspacebottomlimit}{2ex}
\usepackage{rotating}

\begin{document}

\begin{table}[!h]
\centering \small \setlength{\tabcolsep}{3pt}
\begin{tabular}{m{0.75cm}>{\centering\arraybackslash}S{m{0.75cm}}>{\centering\arraybackslash}S{m{1.3cm}}*{10}{>{\centering\arraybackslash}S{m{1cm}}}}
\toprule
   \multicolumn{2}{c}{} & \multicolumn{11}{Sc}{\textbf{ Initial Orbital Period (days) }} \\ 
   \cmidrule{3-13}
   \multicolumn{2}{c}{} & \textbf{5} & \textbf{10} & \textbf{20} & \textbf{30} & \textbf{60} & \textbf{100} & \textbf{170} & \textbf{300} & \textbf{500} & \textbf{750} & \textbf{1000} \\ 
   \cmidrule(lr){3-3}\cmidrule(lr){4-4}\cmidrule(lr){5-5}\cmidrule(lr){6-6}\cmidrule(lr){7-7}\cmidrule(lr){8-8}\cmidrule(lr){9-9}\cmidrule(lr){10-10}\cmidrule(lr){11-11}\cmidrule(l){12-12}\cmidrule(lr){13-13}
   \multirow{6}{=}[-4.2ex]{\centering\rotatebox[origin=c]{90}{ \textbf{Initial Accretor Mass ( }$\bm{M}_{\odot}$\textbf{)}}} &
   $\bm{0.90}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ 
    & $\bm{0.95}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\
    & $\bm{1.00}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\
    & $\bm{1.05}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\
    & $\bm{1.10}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ 
    & $\bm{1.15}$ & x/\checkmark\!/\checkmark & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ 
    \bottomrule
\end{tabular}
\caption{Test}
\label{tab:tab1}
\end{table}

\end{document} 

在此处输入图片描述

答案4

虽然所有这些答案都很好,但我还建议您查看表格生成器https://www.tablesgenerator.com它非常非常好,可以帮你快速得到那个表格。它有很多工具可以将行/列条目居中。我的经验是,使用该工具,你可以快速轻松地完成那个表格。

相关内容