数组单元因 tikz 而失去平衡

数组单元因 tikz 而失去平衡

我正在尝试用乳胶制作一个阵列。

我的code

\begin{figure}[!h]
\centering
\begin{tikzpicture} [nodes in empty cells,
      nodes={minimum size=10mm},
      row sep=-\pgflinewidth, column sep=-\pgflinewidth]
      border/.style={draw}
    
      \matrix(vector)[matrix of nodes,
          row 2/.style={nodes={draw=none, minimum width=0.4cm}},
          nodes={draw}]
      {
          $a_i$ & $4$ & $7$ & \textit{italic} & \textbf{bold text} & $a[0]$ \\
          \small{i} & \small{0} & \small{1} & \small{2} & \small{3} & \small{4} \\
      };
\end{tikzpicture}
\caption{my caption}
\label{fig:array}
\end{figure}

但数组的边界失去了平衡,例如:

在此处输入图片描述

请建议我该如何解决这个问题? 或任何其他聪明的方法来画这个图形类型?

答案1

使用text heighttext depth,并且|[fill=the-color-you-like]|在单元格中您需要着色:

\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{figure}[!h]
\centering
\begin{tikzpicture} [nodes in empty cells,
      nodes={minimum size=10mm, text height=1.6ex, text depth=.4ex},
      row sep=-\pgflinewidth, column sep=-\pgflinewidth]
      border/.style={draw}
    
      \matrix(vector)[matrix of nodes,
          row 2/.style={nodes={draw=none, minimum width=0.4cm}},
          nodes={draw}]
      {
          $a_i$ & $4$ & $7$ & |[fill=lightgray, font=\itshape]|italic & \textbf{bold text} & $a[0]$ \\
          \small{i} & \small{0} & \small{1} & \small{2} & \small{3} & \small{4} \\
      };
\end{tikzpicture}
\caption{my caption}
\label{fig:array}
\end{figure}
\end{document}

在此处输入图片描述

答案2

由于它实际上是一个表,因此有一个替代解决方案,tblr其环境为tabularray包裹:

\documentclass{book}

\usepackage{tabularray}

\begin{document}

\begin{figure}[!h]
\centering
\begin{tblr}{
  colspec = {Q[c,10mm]Q[c,10mm]Q[c,10mm]Q[c]Q[c]Q[c,10mm]},
  colsep = 2pt, rowsep = 2pt,
  rows={10mm}, row{2}={font=\small},
  hline{1,2}, vlines = {1}{},
}   
  $a_i$ & $4$ & $7$ & \textit{italic} & \textbf{bold text} & $a[0]$ \\
  i     & 0   & 1   & 2               & 3                  & 4      \\
\end{tblr}
\caption{my caption}
\label{fig:array}
\end{figure}

\end{document}

在此处输入图片描述

相关内容