Tikz 的高亮显示偏离了应有的位置

Tikz 的高亮显示偏离了应有的位置

我正在排版我的讲义,需要突出显示矩阵中的某些条目,以表明我正在谈论哪些条目。在三个矩阵中的两个中,突出显示的位置恰好正确,但在第三个矩阵中,突出显示关闭了。两个红点应该突出显示第三个矩阵第一列和第二列中的 1。
我运行了几次代码(注意,如果矩阵的位置发生变化,tex 需要再运行一次才能创建正确的突出显示坐标)。我还删除了其他文件(.tex 文件除外),以确保这不是导致问题的原因。现在我不知道还能尝试什么。
有人能告诉我我的代码出了什么问题吗?谢谢! 代码输出的图像

\noindent\begin{minipage}{\textwidth}
\vspace{0.3cm}
\noindent\begin{minipage}[b]{.32\textwidth}
\begin{tabular}{c}
$
\begin{bmatrix}
1 & \tikzmark{notleadingone}{1} \\
0 & 1 \\
0 & 0 \\
0 & 0
\end{bmatrix} $
\begin{tikzpicture}[overlay,remember picture]
 \draw[opacity=.2,line width=4mm,line cap=round,color=red]   (notleadingone.center) -- (notleadingone.center);\end{tikzpicture} \\
 \\
\begin{tabular}{ c }
There is a nonzero\\ entry in a column \\ of a leading 1 \\
\end{tabular}
\end{tabular}
\end{minipage}
\begin{minipage}[b]{.32\textwidth}
\begin{tabular}{c}
$\begin{bmatrix}
                           \tikzmark{leftzerorow}{0} & 0 & 0 &    \tikzmark{rightzerorow}{0} \\
                           0 & 1 & 0 & 0 \\
                           0 & 0 & 1 & 0 \\
                           0 & 0 & 0 & 0
                         \end{bmatrix}$ \begin{tikzpicture} [overlay,remember picture]
 \draw[opacity=.2,line width=4mm,line cap=round,color=red]  (leftzerorow.center) -- (rightzerorow.center);\end{tikzpicture}\\
 \\
\begin{tabular}{ c }
Not all \\ zero rows\\ are at the bottom \\
\end{tabular}
\end{tabular}
 \end{minipage}
\begin{minipage}[b]{.32\textwidth}
\begin{tabular}{c}
  $\begin{bmatrix}
                                                      0 & 0 & 1 \\
                                                         \tikzmark{oneone}{1} & 0 & 0 \\
                                                      0 & \tikzmark{twoone}{1} & 0 \\
                                                      0 & 0 & 0
                                                    \end{bmatrix}$ 
                                                    \begin{tikzpicture} 
                                                    \draw[opacity=.2,line width=4mm,line cap=round,color=red] (oneone.center) -- (oneone.center);
                                                    \draw[opacity=.2,line width=4mm,line cap=round,color=red] (twoone.center) -- (twoone.center);\end{tikzpicture} \\
  \\
  \begin{tabular}{ c }
 Some leading 1s are \\not to the right from \\ the leading 1s above them   \\
  \end{tabular}
  \end{tabular}
   \end{minipage}
 \end{minipage}

答案1

首先,恐怕我无法在没有序言的情况下测试您的代码 - 特别是,您的版本\tikzmark看起来不像是来自 CTAN 上的当前版本,但我不能确定。

尽管如此,我还是发现了一些显而易见的东西,(从评论来看)这似乎是缺失的部分。tikzpicture提供突出显示的 s 都需要应用remember picture,overlay选项,而第三个则不需要。

顺便说一句,使用 CTAN 的最新版本,tikzmark你可以将突出显示的代码这样\tikzmark突出显示就会出现在文本下方而不是文本上方。

相关内容