画一条穿过矩阵一列的线

画一条穿过矩阵一列的线

我想“取消”(画一条线穿过)矩阵的某一列(使用\begin{pmatrix}..\end{pmatrix})。我该怎么做?

答案1

通常的 TikZ 答案用来\tikzmark标记想要绘制线条的顶部和底部点:

在此处输入图片描述

笔记:

  • 这确实需要两次运行。第一次确定位置,第二次进行绘图。

参考:

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}

\newcommand{\tikzmark}[2]{\tikz[overlay,remember picture,baseline] \node [anchor=base] (#1) {$#2$};}

\newcommand{\DrawLine}[3][]{%
  \begin{tikzpicture}[overlay,remember picture]
    \draw[#1] (#2.north) -- (#3.south);
  \end{tikzpicture}
}

\begin{document}
\[
\begin{pmatrix}
  \tikzmark{topA}{a} & \tikzmark{topB}b & {0} \\
  a & b & 0 \\
  a & b & 0 \\
  \tikzmark{bottomA}{c} & \tikzmark{bottomB}d & {1}
\end{pmatrix}
\]
\DrawLine[red, thick, opacity=0.5]{topA}{bottomA}
\end{document}

答案2

\documentclass{article} 
\usepackage{amsmath}
\begin{document}

\[\begin{pmatrix}
  a & b & c  \\
  d & e & f\makebox(-6,0){\rule[1ex]{0.4pt}{3\normalbaselineskip}}\\
  g & h & i
\end{pmatrix}\]

\end{document}

在此处输入图片描述

并且只通过 f 和 i 有一条线:

d & e & f\makebox(-6,0){\rule[-7ex]{0.4pt}{2\normalbaselineskip}}\\

在此处输入图片描述

答案3

\documentclass[a4paper]{article}
\usepackage{amsmath}
\begin{document}
\[
\settodepth{\dimen0}{$\begin{array}[t]{l}1\\2\\3\\4\end{array}$}
\addtolength{\dimen0}{2ex}
\begin{pmatrix}
  a & b & 0 \\
  a & b & 0 \\
  a & b & 0 \\
  \smash{\makebox[0pt][l]{\kern2pt\rule[-.8ex]{0.4pt}{\dimen0}}}
  c & d & 1
\end{pmatrix}
\]
\end{document}

在此处输入图片描述

如果您更好地定义您的需求,可以添加更多

答案4

以下是使用常规方法执行此操作的基本方法array

在此处输入图片描述

\documentclass{article} 
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\[\begin{pmatrix}
  a & b & c \\
  d & e & f \\
  g & h & i
\end{pmatrix}\]

\[\left(\begin{array}{@{}cc@{\hspace{2\tabcolsep}}|@{\hspace{-.5\tabcolsep}}c@{}}
  a & b & c \\
  d & e & f \\
  g & h & i
\end{array}\right)\]
\end{document}

这对于单入口柱很有效。如果您有更宽的柱子,则需要对长度进行更多修改。

相关内容