我正在尝试制作一个小表格,但只绘制了某些单元格线。我遵循了在其他地方找到的一般代码大纲(本文档的“同时在两个方向上跨越”部分:http://en.wikibooks.org/wiki/LaTeX/Tables),但当我编译时,定义单元格的线的末端“悬垂” - 它们不完全匹配。(免责声明:我不确定这是绘制此表的最佳方法,但这是我想到的。)以下是代码:
\documentclass{beamer}
\usepackage{multirow}
\begin{document}
\centering
\begin{tabular}{ccc|c|}
& & \multicolumn{2}{c}{$Y$} \\
\cline{3-4}
& & \multicolumn{1}{|c|}{1} & 2 \\
\cline{2-4}
\multicolumn{1}{c}{\multirow{2}{*}{$T$}} &
\multicolumn{1}{|c|}{1} & $q_{11}$ & $q_{12}$ \\
\cline{2-4}
\multicolumn{1}{c}{} &
\multicolumn{1}{|c|}{2} & $q_{21}$ & $q_{22}$ \\
\cline{2-4}
\end{tabular}
\end{document}
不管我是在 Windows PC 上使用 TeXnicCenter 还是在 Mac 上使用 TeXShop 进行编译,都会发生这种情况。不管我是在程序内编译后查看 PDF,还是单独使用 Adobe 打开,表格看起来都不太好。
答案1
在评论中,您说示例中的线条看起来很磨损,但我无法调试它(尽管最常见的原因是在最后一行之后\\
和之前有代码\end{tabular}
,这会产生虚假的未完成的最后一行,因此垂直线会垂下来。
但乳胶表中的规则总是正确的列的边缘(第一列除外,它有两个规则),因此在使用时,\multicolumn
除第一列外,应始终在右侧添加规则,而不要将其添加到左侧,否则,通常垂直规则将不会对齐。
\documentclass{beamer}
\usepackage{multirow}
\begin{document}
\centering
$\begin{array}{c|c|c|c|}
\multicolumn{2}{c}{}& \multicolumn{2}{c}{Y} \\
\cline{3-4}
\multicolumn{1}{c}{}&& 1 & 2 \\
\cline{2-4}
\multirow{2}{*}{T} &
1& q_{11} & q_{12} \\
\cline{2-4}
&
2 & q_{21} & q_{22} \\
\cline{2-4}
\end{array}$
\end{document}
答案2
您可以使用 轻松制作该{NiceArray}
表nicematrix
。
\documentclass{beamer}
\usepackage{nicematrix}
\begin{document}
$\begin{NiceArray}{ccc}[first-row,first-col,corners=NW,hvlines]
& & \Block{1-2}{Y} \\
& & 1 & 2 \\
\Block{2-1}{T}
& 1 & q_{11} & q_{12} \\
& 2 & q_{21} & q_{22}
\end{NiceArray}$
\end{document}
如果您希望所有列的宽度相同,则可以使用键columns-width=auto
。
\documentclass{beamer}
\usepackage{nicematrix}
\begin{document}
$\begin{NiceArray}{ccc}%
[first-row,first-col,corners=NW,hvlines,columns-width=auto]
& & \Block{1-2}{Y} \\
& & 1 & 2 \\
\Block{2-1}{T}
& 1 & q_{11} & q_{12} \\
& 2 & q_{21} & q_{22}
\end{NiceArray}$
\end{document}