我正在尝试使用 Tikz 中的矩阵。具体来说,我想遵循 amsmath 包,但我在处理叠加层(记得图片)时遇到了很大困难。这是我现在遇到的示例:
\documentclass{article}
\usepackage{amsmath, amssymb}
\usepackage{pgf,tikz}
\usepackage{luatex85}
\newcommand{\overlay}[2][]{\tikz[overlay, remember picture, #1]{#2}}
\newcommand{\flag}[2]{\overlay[baseline=(#1.base)] {\node (#1) {$#2$};}}
\begin{document}
\[
M_5 = \begin{pmatrix}
\flag{a11}{a_{11}} & \flag{a12}{a_{12}} & \flag{a13}{a_{13}} & \flag{a1}{a_{14}} & \flag{a15}{a_{15}}\\
\flag{a21}{a_{21}} & \flag{a22}{a_{22}} & \flag{a23}{a_{23}} & \flag{a24}{a_{24}} & \flag{a25}{a_{25}} \\
\flag{a31}{a_{31}} & \flag{a32}{a_{32}} & \flag{a33}{a_{33}} & \flag{a34}{a_{34}} & \flag{a35}{a_{35}} \\
16 & 17 & 18 & 19 & 2\\
\end{pmatrix} \]
\end{document}
这段代码完美地打印了一个矩阵,只是它与 amsmath 包的方式略有不同。以下是比较:
所以我想我的第一个问题是如何修改我的代码以使它们看起来相似。
此外,如果我按照这种方法操作,即使我决定保留矩阵原样,也会出现很大的问题,我不明白为什么会发生这种情况。如果我修改前面的代码,只谈论矩阵数据,那么结果矩阵就是一场彻底的灾难。例如,要获得通过消除最后一个原始数据而获得的矩阵,要么将最后一个原始数据作为注释,要么消除会产生一个非常混乱的矩阵:
我错过了什么?
答案1
为了获得相同的矩阵,请不要使用该overlay
选项并将该选项添加inner sep=0
到您的节点。
\documentclass{article}
\usepackage{amsmath, amssymb}
\usepackage{pgf,tikz}
\usepackage{luatex85}
\newcommand{\overlay}[2][]{\tikz[remember picture, #1]{#2}}
\newcommand{\flag}[2]{\overlay[baseline=(#1.base)] {\node[inner sep=0] (#1) {$#2$};}}
\begin{document}
\[
M_5 = \begin{pmatrix}
\flag{a11}{a_{11}} & \flag{a12}{a_{12}} & \flag{a13}{a_{13}} & \flag{a1}{a_{14}} & \flag{a15}{a_{15}}\\
\flag{a21}{a_{21}} & \flag{a22}{a_{22}} & \flag{a23}{a_{23}} & \flag{a24}{a_{24}} & \flag{a25}{a_{25}} \\
\flag{a31}{a_{31}} & \flag{a32}{a_{32}} & \flag{a33}{a_{33}} & \flag{a34}{a_{34}} & \flag{a35}{a_{35}} \\
16 & 17 & 18 & 19 & 2\\
\end{pmatrix} \]
\def\flag#1#2{#2}
\[
M_5 = \begin{pmatrix}
\flag{a11}{a_{11}} & \flag{a12}{a_{12}} & \flag{a13}{a_{13}} & \flag{a1}{a_{14}} & \flag{a15}{a_{15}}\\
\flag{a21}{a_{21}} & \flag{a22}{a_{22}} & \flag{a23}{a_{23}} & \flag{a24}{a_{24}} & \flag{a25}{a_{25}} \\
\flag{a31}{a_{31}} & \flag{a32}{a_{32}} & \flag{a33}{a_{33}} & \flag{a34}{a_{34}} & \flag{a35}{a_{35}} \\
16 & 17 & 18 & 19 & 2\\
\end{pmatrix} \]
\end{document}