私は現在、行列のガウス消去法を説明する実験レポートに取り組んでいます。説明の一環として、行列の一部を丸や楕円で囲みたいと思っています。
行列の主対角線または角を丸で囲む方法はありますか? 以下に例を示します。配列/行列環境の上に構造体を使用する必要があるかもしれないと考えていますが、\put
その方法がわかりません。
編集: 写真に描いたマトリックスを生成するために現在持っているものは次のとおりです。
\usepackage[utf8]{inputenc}
\usepackage{indentfirst}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage[numbers]{natbib}
\usepackage [autostyle, english = american]{csquotes}
\MakeOuterQuote{"}
\usepackage{layout}
\usepackage[title]{appendix}
\usepackage[justification=centering]{caption}
\usepackage{titlesec}
\usepackage[percent]{overpic}
\usepackage{amsmath}
\usepackage{systeme}
\usepackage{blkarray, bigstrut}
...
\begin{center}
\begin{blockarray}{cccc}
\begin{block}{ [ ccc| c ]}
\bigstrut[t]
1 & -1 & 3 & -3 \\
-1 & 0 & -2 & 1 \\
2 & 2 & 4 & 0 \bigstrut[b] \\
\end{block}
\end{blockarray}
\end{center}
答え1
を使用した可能な方法を次に示しますtikzmark
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{blkarray, bigstrut}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc,fit}
\begin{document}
\begin{center}
\begin{blockarray}{cccc}
\begin{block}{ [ ccc| c ]}
\bigstrut[t]
\tikzmarknode{A11}{1} & -1 & 3 & -3 \\
-1 & 0 & -2 & 1 \\
2 & 2 & \tikzmarknode{A33}{4} & 0 \bigstrut[b] \\
\end{block}
\end{blockarray}
\end{center}
\begin{tikzpicture}[remember picture,overlay]
\draw let \p1=($(A33)-(A11)$),\n1={atan2(\y1,\x1)} in
node[rotate fit=\n1,fit=(A11) (A33),draw,rounded corners,inner sep=2pt]{};
\end{tikzpicture}
\begin{center}
\begin{blockarray}{cccc}
\begin{block}{ [ ccc| c ]}
\bigstrut[t]
1 & -1 & 3 & -3 \\
\tikzmarknode{B21}{-1} & 0 & -2 & 1 \\
\tikzmarknode{B31}{2} & \tikzmarknode{B32}{2} & 4 & 0 \bigstrut[b] \\
\end{block}
\end{blockarray}
\end{center}
\begin{tikzpicture}[remember picture,overlay]
\node[fit=(B21) (B31) (B32),inner sep=2pt] (FB){};
\path (FB.south east) arc(-90:45:4pt) coordinate(aux1);
\draw (aux1) arc(45:-90:4pt) -- ([xshift=4pt]FB.south west)
arc(-90:-180:4pt) -- (FB.north west) arc(180:45:4pt) -- cycle;
\end{tikzpicture}
\begin{center}
\begin{blockarray}{cccc}
\begin{block}{ [ ccc| c ]}
\bigstrut[t]
1 & \tikzmarknode{C12}{-1} & \tikzmarknode{C13}{3} & -3 \\
-1 & 0 & \tikzmarknode{C23}{-2} & 1 \\
2 & 2 & 4 & 0 \bigstrut[b] \\
\end{block}
\end{blockarray}
\end{center}
\begin{tikzpicture}[remember picture,overlay]
\node[fit=(C12) (C23) (C13),inner sep=2pt] (FC){};
\path (FC.north west) arc(90:225:4pt) coordinate(aux2);
\draw (aux2) arc(225:90:4pt) -- ([xshift=-4pt]FC.north east)
arc(90:0:4pt) -- (FC.south east) arc(0:-135:4pt) -- cycle;
\end{tikzpicture}
\end{document}
より短い解は次のように与えられる。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{blkarray, bigstrut}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{center}
\begin{blockarray}{cccc}
\begin{block}{ [ ccc| c ]}
\bigstrut[t]
\tikzmarknode{A11}{1} & -1 & 3 & -3 \\
-1 & 0 & -2 & 1 \\
2 & 2 & \tikzmarknode{A33}{4} & 0 \bigstrut[b] \\
\end{block}
\end{blockarray}
\end{center}
\begin{tikzpicture}[remember picture,overlay]
\draw[red] plot[smooth cycle] coordinates {(A11.north)
(A33.north east) (A33.south) (A11.south west)};
\end{tikzpicture}
\begin{center}
\begin{blockarray}{cccc}
\begin{block}{ [ ccc| c ]}
\bigstrut[t]
1 & -1 & 3 & -3 \\
\tikzmarknode{B21}{-1} & 0 & -2 & 1 \\
\tikzmarknode{B31}{2} & \tikzmarknode{B32}{2} & 4 & 0 \bigstrut[b] \\
\end{block}
\end{blockarray}
\end{center}
\begin{tikzpicture}[remember picture,overlay]
\draw[red] plot[smooth cycle] coordinates {(B21.north west) (B21.north east)
(B32.north east) (B32.south east) (B31.south west)};
\end{tikzpicture}
\begin{center}
\begin{blockarray}{cccc}
\begin{block}{ [ ccc| c ]}
\bigstrut[t]
1 & \tikzmarknode{C12}{-1} & \tikzmarknode{C13}{3} & -3 \\
-1 & 0 & \tikzmarknode{C23}{-2} & 1 \\
2 & 2 & 4 & 0 \bigstrut[b] \\
\end{block}
\end{blockarray}
\end{center}
\begin{tikzpicture}[remember picture,overlay]
\draw[red] plot[smooth cycle] coordinates {(C12.north west) (C13.north east)
(C23.south east) (C23.south west) (C12.south west)};
\end{tikzpicture}
\end{document}
\tikzmarknode
すべてを に置き換えると\tikzmarknode[inner sep=1pt]
、次のようになります。