在数学矩阵内的元素之间绘制箭头

在数学矩阵内的元素之间绘制箭头

我想做这个,

在此处输入图片描述

而不必在 TikZ 中完成整个过程。我尝试过(pst-node),这种方法有点管用,但是我必须使用基本构建器,而我想避免这种情况。

我也尝试用 TikZ 制作箭头,但无法将 tikzpicture 移入方程环境中。

\documentclass[12pt,norsk, fleqn]{article}
\usepackage{amssymb, amsmath}
\begin{document}
    \begin{equation*}
        \begin{matrix}
            x_1&y_1&z_1&x_1&y_1&z_1\\
            x_2&y_2&z_2&x_2&y_2&z_2
        \end{matrix}
    \end{equation*}
\end{document}

有任何想法吗?

答案1

问题是“无需做全部的TikZ 中的东西”,因此这里有一个保留原始的解决方案matrix

\documentclass[12pt,norsk, fleqn]{article}
\usepackage{amssymb, amsmath}

\usepackage{tikz}
\newcommand{\rn}[2]{%% "rn": "remember node"
    \tikz[remember picture,baseline=(#1.base)]\node [inner sep=0] (#1) {$#2$};%
}

\begin{document}
    %% The original matrix, but with commands to remember the nodes:
    \begin{equation*}
        \begin{matrix}
            x_1 & \rn{11}{y_1} & \rn{12}{z_1} & \rn{13}{x_1} & \rn{14}{y_1} & z_1
        \\
            x_2 & \rn{21}{y_2} & \rn{22}{z_2} & \rn{23}{x_2} & \rn{24}{y_2} & z_2
        \end{matrix}
    \end{equation*}

    %% Draw the arrows:
    \begin{tikzpicture}[overlay,remember picture]
        \draw [->] (11) -- (22);
        \draw [->] (12) -- (23);
        \draw [->] (13) -- (24);
        \draw [->] (21) -- (12);
        \draw [->] (22) -- (13);
        \draw [->] (23) -- (14);
    \end{tikzpicture}
\end{document}

解释: 该命令\rn将其第二个参数放在一个tikz节点中。该选项remember picture使这些节点即使在迷你 tikzpicture 之后(即方程之后)也可用。稍后,另一个 tikzpicture 绘制箭头。该选项overlay确保它不占用空间并且可以在上面的矩阵之上绘制。

它看起来像以前一样,但是带有所需的箭头: 结果

答案2

tikz-cd 可用于此目的。向上箭头由 绘制\arrow[ur],向​​下箭头由 绘制\arrow[dr]。此处适用常规 tikz 选项。您可以通过指定任意长度来控制row sep和,或者简单地将其用作快捷键。column sep[cramped, sep=small]

\documentclass[12pt,norsk, fleqn]{article}
\usepackage{amssymb, amsmath, tikz-cd}
\begin{document}

  \begin{tikzcd}[cramped, sep=small]
    x_1 & y_1\arrow[dr] & z_1\arrow[dr] & x_1\arrow[dr] & y_1 & z_1 \\
    x_2 & y_2\arrow[ur] & z_2\arrow[ur] & x_2\arrow[ur] & y_2 & z_2
  \end{tikzcd}

\end{document}

在此处输入图片描述

答案3

没有tikz

\documentclass{article}
\usepackage{amssymb, amsmath,graphicx,tabstackengine}
\newcommand\crisscross{\ooalign{%
  \rotatebox[origin=c]{30}{${-}\mkern-4mu{-}\mkern-4mu{\rightarrow}$}\cr
  \rotatebox[origin=c]{-30}{${-}\mkern-4mu{-}\mkern-4mu{\rightarrow}$}}
}
\TABstackMath
\begin{document}
\[
{}={}\tabbedCenterstack{
  x_1&&y_1&&z_1&&x_1&&y_1&&z_1\\
  &\phantom{\crisscross}&&\crisscross&&\crisscross&&\crisscross&&\phantom{\crisscross}&\\
  x_2&&y_2&&z_2&&x_2&&y_2&&z_2}
\]
\end{document}

在此处输入图片描述

答案4

pstricks

\documentclass[12pt,norsk, fleqn]{article}
\usepackage{amssymb, amsmath, pgffor}
\usepackage{pst-node}%, auto-pst-pdf

\begin{document}

\begin{pspicture}
    \begin{equation*}
    \setlength{\arraycolsep}{8pt}
        \begin{matrix}
            x_1&\Rnode{A1}{y_1}&\Rnode{B1}{z_1}&\Rnode{C1}{x_1}&\Rnode{D1}{y_1}&z_1\\
            x_2&\Rnode{A2}{y_2}&\Rnode{B2}{z_2}&\Rnode{C2}{x_2}&\Rnode{D2}{y_2}&z_2
        \end{matrix}
\psset{arrowinset=0.12, arrows=->, linewidth=0.6pt, nodesepB=0.8pt}
\foreach \L/\M in {A1/B2, B1/C2, C1/D2}{\ncline{\L}{\M}}
\psset{nodesepB=-0.2pt}
\foreach \L/\M in {A2/B1,B2/C1, C2/D1}{\ncline{\L}{\M}}
    \end{equation*}
\end{pspicture}

\end{document} 

在此处输入图片描述

相关内容