LaTeX에서 행렬 섹션을 둘러싸는 방법은 무엇입니까?

LaTeX에서 행렬 섹션을 둘러싸는 방법은 무엇입니까?

저는 현재 행렬에 대한 가우스 제거 방법을 설명해야 하는 실험실 보고서를 작성 중입니다. 설명의 일부로 행렬의 원형/타원형 부분을 만들고 싶습니다.

행렬의 주대각선이나 모서리에 원을 그리는 방법이 있나요? 아래 사진과 예시가 있습니다. 배열/행렬 환경 위에 구조를 사용해야 할 수도 있다고 생각하고 있지만 \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]다음과 같습니다.

여기에 이미지 설명을 입력하세요

관련 정보