![如何使合并的行垂直居中?](https://linux22.com/image/429423/%E5%A6%82%E4%BD%95%E4%BD%BF%E5%90%88%E5%B9%B6%E7%9A%84%E8%A1%8C%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%EF%BC%9F.png)
我想让合并的行ac
垂直居中。该怎么做?
\documentclass[preview,border=3pt]{standalone}
\usepackage{array,multirow}
\renewcommand\arraystretch{1.5}
\newcommand{\cell}[2]{%
$\displaystyle
\begin{array}{c}
{} #1 m \\
{} #2 n
\end{array}$}
\begin{document}
\begin{tabular}{|*{4}{c|}}\hline
\multicolumn{1}{|c|}{\multirow{2}{*}{$ac$}} &
$+$ &
\cell{+}{+} &
\cell{-}{-} \\\cline{2-4}
\multicolumn{1}{|c|}{} &
$-$ &
\cell{-}{+} &
\cell{+}{-} \\\hline
\multicolumn{2}{c|}{} &
$+$ &
$-$ \\\cline{3-4}
\multicolumn{2}{c|}{} &
\multicolumn{2}{c|}{$b$} \\\cline{3-4}
\end{tabular}
\end{document}
答案1
不必要的复杂:
\documentclass{article}
\renewcommand\arraystretch{1.5}
\usepackage{array,multirow}
\begin{document}
\begin{tabular}{*{4}{|>{ $}c<{$ }}|}\hline
\multirow{4}{*}{$ac$} & \multirow{2}{*}{+} & +\ m & -\ m \\
& & +\ n & -\ n \\\cline{2-4}
& \multirow{2}{*}{$-$} & +\ m & -\ m \\
& & +\ n & -\ n \\\cline{1-4}
\multicolumn{2}{c|}{} & + & - \\\cline{3-4}
\multicolumn{2}{c|}{} & \multicolumn{2}{c|}{b} \\\cline{3-4}
\end{tabular}
\end{document}
答案2
{NiceTabular}
您可以轻松地使用来制作表格nicematrix
。
在 中{NiceTabular}
,您可以使用命令 水平和垂直合并单元格\Block
。对于行,您可以指定逻辑行数(而不是像 那样的物理行数\multicolumn
)。
使用键hvlines
,可以绘制所有规则,但块(由 构造\Block
)和键指定的角corners
(角是自动计算的)除外。
\documentclass[preview,border=3pt]{standalone}
\usepackage{nicematrix}
\renewcommand\arraystretch{1.5}
\newcommand{\cell}[2]{%
$\displaystyle
\begin{array}{c}
{} #1 m \\
{} #2 n
\end{array}$}
\begin{document}
\begin{NiceTabular}{cccc}[hvlines,corners=SW]% SW : south west
\Block{2-1}{$ac$} &
$+$ &
\cell{+}{+} &
\cell{-}{-} \\
&
$-$ &
\cell{-}{+} &
\cell{+}{-} \\
& & $+$ &
$-$ \\
& & \Block{1-2}{$b$} \\
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。
答案3
\documentclass[preview,border=3pt]{standalone}
\usepackage{array,multirow}
\renewcommand\arraystretch{1.5}
\newcommand{\cell}[2]{%
$\displaystyle
\begin{array}{c}
{} #1 m \\
{} #2 n
\end{array}$}
\begin{document}
\begin{tabular}{|*{4}{c|}}\hline
\multicolumn{1}{|c|}{\multirow{3.1}{*}{$ac$}} &
$+$ &
\cell{+}{+} &
\cell{-}{-} \\\cline{2-4}
\multicolumn{1}{|c|}{} &
$-$ &
\cell{-}{+} &
\cell{+}{-} \\\hline
\multicolumn{2}{c|}{} &
$+$ &
$-$ \\\cline{3-4}
\multicolumn{2}{c|}{} &
\multicolumn{2}{c|}{$b$} \\\cline{3-4}
\end{tabular}
\end{document}