因此使用这里,因为我使用的是数组而不是矩阵。我在 Libre Office Writer 中使用 MathTex。仅供参考。
法线矩阵:
\left[
\begin{array}{ccc}
3 & 3 & 1 \\
1 & 0 & -4 \\
1 & -3 & 5
\end{array}
\right]
我的 Stiked Matrix 如下:
\renewcommand*{\arraystretch}{1.5}
\makeatletter
\newcommand*{\rowstrike}{%
\noalign{%
% normal "baselineskip" in tabular is height + depth of \@arstrutbox
\vskip-.5\dimexpr\ht\@arstrutbox+\dp\@arstrutbox\relax
% default line thickness is 0.4pt
\vskip-.2pt\relax
\hrule
\vskip-.2pt\relax
\vskip+.5\dimexpr\ht\@arstrutbox+\dp\@arstrutbox\relax
}%
}
\newcommand{\colstrike}{%
@{\hspace{2\tabcolsep}}|@{\hspace{-.5\tabcolsep}}c@{}@{\hspace{1.5\tabcolsep}}
}
\left[
\begin{array}{@{}\colstrike cc}
3 & 3 & 1 \\
1 & 0 & ^-4 \\ \rowstrike
1 & ^-3 & 5
\end{array}
\right]
问题在于我的列删除线中,第二行的对齐方式混乱了。我想修改我的宏,以便有一个命令来删除任何大小的列(如果可能)。并且,修复对齐。通过更改以下内容使对齐方式正常工作:
@{\hspace{2\tabcolsep}}|@{\hspace{-.5\tabcolsep}}c@{}
到:
@{\hspace{2\tabcolsep}}|@{\hspace{-.5\tabcolsep}}c@{}@{\hspace{1.5\tabcolsep}}
但它只适用于单个数字,再多的话就会出现这种情况:
我希望它位于列的中心。
编辑:
我尝试使用另一个问题中的 tikz 命令,但它不能正常工作:
\usepackage{tikz}
\newcommand{\tm}[2]{%
\tikz[overlay,remember picture,baseline] \node [anchor=base] (#1) {$#2$};%
}
\newcommand{\DrawVLine}[3][]{%
\begin{tikzpicture}[overlay,remember picture]
\draw[shorten <=0.3ex, #1] (#2.north) -- (#3.south);
\end{tikzpicture}
}
\newcommand{\DrawHLine}[3][]{%
\begin{tikzpicture}[overlay,remember picture]
\draw[shorten <=0.2em, #1] (#2.west) -- (#3.east);
\end{tikzpicture}
}
\left[
\begin{array}{ccc}
\tm{topA}{3} & 3 & 1 \\
\tm{leftA}{1} & 0 & \tm{rightA}{^-4} \\
\tm{bottomA}{1} & ^-3 & 5
\end{array}
\right]
\DrawHLine[black, thick, opacity=0.5]{topA}{bottomA}
\DrawVLine[black, thick, opacity=0.5]{leftA}{rightA}
其结果是: