内容居中的方形单元格表

内容居中的方形单元格表

我正在尝试创建一个具有方形单元格且内容垂直和水平居中的表格。我对表格的定义如下:

\documentclass{article}
\usepackage{tabu}
\newcolumntype{K}[1]{>{\vbox to #1{\vfill}\centering}m{#1}}
\renewcommand{\i}{$\cdot$}
\begin{document}
\begin{tabu}{|[1pt]*{3}{K{3mm}|K{3mm}|[1pt]}}
\tabucline[1pt]{1-6}
0  &  4  & \i  &  4  & \i  & \i  \\ \tabucline{1-6}
2  &  0  & \i  & \i  & \i  & -3  \\ \tabucline[1pt]{1-6}
\i & \i  &  0  &  3  &  5  & -1  \\ \tabucline{1-6}
4  & \i  &  3  &  0  & -6  & \i  \\ \tabucline[1pt]{1-6}
-3 & \i  & \i  & -6  &  0  &  9  \\ \tabucline{1-6}
\i & \i  & -1  &  5  &  7  &  0  \\ \tabucline[1pt]{1-6}
\end{tabu}
\end{document}

结果是

未对齐的表

我怎样才能使数字垂直居中?

答案1

您的\vbox位于单元格的基线上,这会将所有内容向下推,因此您还需要添加深度。您可以通过添加规则将单元格强制到一定高度。要垂直居中,必须将其高度降低一半,再加上字母高度的一半的补偿。

\documentclass{article}
\usepackage{calc}
\usepackage{colortbl}
\usepackage{tabu}
\usepackage{array}
%\newcolumntype{K}[1]{>{a\vbox to #1{b\vfill c}d\centering}m{#1}}
\newcolumntype{K}[1]{>{\rule[0.5\ht\strutbox-#1/2]{0pt}{#1}\centering}m{#1-2\tabcolsep}}
\begin{document}
\begin{tabu}{|[1pt]*{3}{K{10mm}|K{10mm}|[1pt]}}
\tabucline[1pt]{1-6}
0  &  4  & \i  &  4  & \i  & \i  \\ \tabucline{1-6}
2  &  0  & \i  & \i  & \i  & -3  \\ \tabucline[1pt]{1-6}
\i & \i  &  0  &  \cellcolor[gray]{0.8}3  &  5  & -1  \\ \tabucline{1-6}
4  & \i  &  3  &  0  & -6  & \i  \\ \tabucline[1pt]{1-6}
-3 & \i  & \i  & -6  &  0  &  9  \\ \tabucline{1-6}
\i & \i  & -1  &  5  &  7  &  0  \\ \tabucline[1pt]{1-6}
\end{tabu}
\end{document}

在此处输入图片描述

答案2

根据我的回答,使用堆栈的另一种方法创建这种二进制矩阵的最佳方法是什么?

网格厚度、颜色和大小均可在序言中预设。

\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{xcolor, graphicx}
\newsavebox{\Bbox}
\def\thk{.8pt}                    % RULE THICKNESS
\def\gsize{1.4cm}                 % GRID SIZE
\def\gridcolor{red!40}
\def\coresize{\dimexpr\gsize-2\dimexpr\thk\relax\relax}
\def\grid{\kern-\thk\fboxsep=.5\coresize\relax%
  \fboxrule=\thk\relax\textcolor{\gridcolor}{\fbox{}}}
\newcommand\G[1][.]{\unskip\stackinset{c}{.0pt}{c}{-.4pt}{\scalebox{2}{$#1$}}{\grid}}
\setstackgap{S}{-\thk}
\begin{document}
\Shortstack{%
\G[0] \G[4]\G    \G[4] \G    \G    \\
\G[2] \G[0]\G    \G    \G    \G[-3]\\
\G    \G   \G[0] \G[3] \G[5] \G[-1]\\
\G[4] \G   \G[3] \G[0] \G[-6]\G    \\
\G[-3]\G   \G    \G[-6]\G[0]\G[9]  \\
\G    \G   \G[-1]\G[5] \G[7]\G[0]
    }
\end{document}

在此处输入图片描述

相关内容