Antwort1
Ich habe nicht genau Ihr Problem gelöst, aber ein ähnliches, aus dem Sie nützliche Informationen ziehen konnten.
Ich musste eine Determinante lösen, die viel allgemeiner war. Ich habe einfaches TikZ verwendet und dieMatrixFunktion innerhalb von TiKZ. Hier ist der Code.
\documentclass[12pt]{article}
\usepackage[pdftex]{graphicx}
\usepackage{pgfplots,tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[
, matrix of math nodes
, left delimiter = {(}
, right delimiter = {)}
] (m)
{
1 & \rho_1 & 0 & 0 & \cdots & 0 & 0 & \rho_{1} \\
\rho_1 & 1 & \rho_1 & 0 & \cdots & 0 & 0 & 0 \\
0 & \rho_1 & 1 & \rho_1 & \cdots & 0 & 0 & 0 \\
\vdots & & \ddots & \ddots & \ddots & & \vdots & \vdots \\
\vdots & & & \ddots & \ddots & \ddots & \vdots & \vdots \\
\vdots & & & & \rho_1 & 1 & \rho_1 & 0 \\
\vdots & & & & & \rho_1 & 1 & 0 \\
0 & \cdots & \cdots & \cdots & \cdots & 0 & \rho_1 & 0 \\
};
\coordinate (A) at (2.5,2.6);
\coordinate (B) at (-3.0,2.65);
\coordinate (C) at (2.55,-2.7);
\draw[red, dotted, line width=2] (A) circle(9pt);
\draw[red, line width=2] (B)--++(5.2,0);
\draw[red, line width=2] (C)--++(0,4.9);
\end{tikzpicture}
\end{document}
Ehrlich gesagt habe ich die Länge und Positionen der Segmente und Kreise durch Ausprobieren berechnet. Natürlich sollte es eine Möglichkeit geben, diese Positionen auf elegante Weise aus der Matrixumgebung abzurufen. Ich weiß jedoch nicht, wie das geht.
Hier ist die Abbildung.
Antwort2
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fit}
\newcommand{\tikzmark}[2]{\tikz[overlay,remember picture,baseline=(#1.base)] \node (#1) {#2};}
\begin{document}
\[
\left[\begin{array}{*3{c}}
\tikzmark{left_end}{0} & 2 & \tikzmark{right_end}{1}\\
3 & -1 & 2 \\
\tikzmark{down_left}{4} & 0 & \tikzmark{down}{1}
\end{array}\right]
\]
\tikz[overlay,remember picture] {
\draw[red,thick,dashed] (left_end) circle (0.2cm);
\draw[-,red,thick] (left_end) -- ++ (1.7,0) (right_end);
\draw[-,red,thick] (left_end) -- ++ (0,-1.) (down_left);
}
\end{document}
Antwort3
Dies ist eher ein ausführlicher Kommentar zu derAntwort von Sina Ahmadi. Ich werde dies gerne entfernen, wenn in dieser Antwort ein paar Dinge geändert werden.
\tikzmark
ist ein fantastischer Befehl, der Teil dertikzmark
Bibliothek ist. Ich möchte argumentieren, dass es keine gute Praxis ist, einen neuen Befehl mit diesem Namen zu erstellen.- Die Knoten
right_end
unddown_left
werden nicht verwendet. Die Linien werden gemäß den beiden fest codierten Abständen- ++ (1.7,0)
und gezeichnet- ++ (0,-1.)
.
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\[\begin{bmatrix}
\tikzmarknode[circle,draw=red,inner sep=0.5pt,densely dashed]{A11}{0} & 2 & \tikzmarknode{A13}{1}\\
3 & -1 & 2 \\
\tikzmarknode{A31}{4} & 0 & 1
\end{bmatrix}
\]
\begin{tikzpicture}[overlay,remember picture]
\draw[red] (A11.east) -- (A11.east-|A13.east)
(A11.south) -- (A11.south|-A31.south);
\end{tikzpicture}
\end{document}
Antwort4
Das ist mit möglich nicematrix
. Dieses Paket erstellt einen PGF/Tikz-Knoten unter jeder Zelle des Arrays. Dann können wir damit tikz
zeichnen, was wir wollen.
\documentclass[svgnames]{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
$\begin{bNiceMatrix}[margin]
0 & 2 & 1 \\
3 & -1 & 2 \\
4 & 0 & 1
\CodeAfter
\begin{tikzpicture} [color = DeepPink]
\draw [dashed] (1-1) circle (2mm) ;
\draw ([xshift=2mm]1-1.east) -- ([xshift=2mm]1-3.east) ;
\draw ([yshift=-1mm]1-1.south) -- ([yshift=-1mm]3-1.south) ;
\end{tikzpicture}
\end{bNiceMatrix}$
\end{document}