我正在启动一个 4x4 矩阵,并想使用 TikZ 将多个条目用线连接起来。现在的问题是,一些平行线可能会重叠,如下例所示:
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\newcommand\tikznode[2]{\tikz[remember picture,baseline=(#1.base)]{\node(#1)[inner sep=0pt]{#2};}}
$
\begin{pmatrix} \tikznode{1}{1} & \tikznode{2}{2} & \tikznode{3}{3} & \tikznode{4}{4} \\
\tikznode{5}{5} &\tikznode{6}{6} &\tikznode{7}{7} &\tikznode{8}{8} \\
\tikznode{9}{9} & \tikznode{10}{10} &\tikznode{11}{11} &\tikznode{12}{12} \\
\tikznode{13}{13} &\tikznode{14}{14} &\tikznode{15}{15} &\tikznode{16}{16} \end{pmatrix}
$
\tikz[overlay,remember picture]{\draw[-](1)--(6);\draw[-](1)--(11);(1)--(16);}
\end{document}
我正在寻找一种方法,绘制三条线,分别将 1 与 6、11 和 16 连接成一个矩阵,彼此平行移动,以使所有线都可见。
谢谢你的帮助!
答案1
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\newcommand\tikznode[2]{\tikz[remember picture,baseline=(#1.center)]{\node(#1)[inner sep=1pt,fill=white]{#2};}}
\begin{document}
\pagestyle{empty}
$
\begin{pmatrix} \tikznode{1}{1} & \tikznode{2}{2} & \tikznode{3}{3} & \tikznode{4}{4} \\
\tikznode{5}{5} &\tikznode{6}{6} &\tikznode{7}{7} &\tikznode{8}{8} \\
\tikznode{9}{9} & \tikznode{10}{10} &\tikznode{11}{11} &\tikznode{12}{12} \\
\tikznode{13}{13} &\tikznode{14}{14} &\tikznode{15}{15} &\tikznode{16}{16} \end{pmatrix}
$
\tikz[overlay,remember picture]\draw(1.10)--(6.125);
\tikz[overlay,remember picture]\draw[red](1)--(11);
\tikz[overlay,remember picture]\draw[blue](1.-60)--(16.170);
\end{document}
答案2
使用该库的更简单的全 tikz 方法matrix
。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usepackage{amsmath}
\begin{document}
\[%
\begin{pmatrix}\begin{tikzpicture}
\matrix(m)[matrix of math nodes, column sep=1em] {
1 & 2 & 3 & 4 \\
5 & 6 & 7 & 8 \\
9 & 10 & 11 & 12 \\
13& 14 & 15 & 16 \\};
\path[->](m-1-1) edge[bend left =00] (m-2-2)
edge[bend left =20] (m-3-3)
edge[bend right=20] (m-4-4);
\end{tikzpicture}\end{pmatrix}
\]
\end{document}