다음 두 행렬 그리기

다음 두 행렬 그리기
\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\begin{document}
\[A=
\begin{pmatrix}
I       &0 &\ldots  &0\\
0 & I      &\ddots  &\vdots\\
\vdots  &\ddots  &I       &0\\
0 &\ldots  &0 &I
\end{pmatrix}
\]

and 
\[
B=\begin{pmatrix}
0 &\cdots &0& I\\
\vdots &0&I&0\\
\vdots & \vdots &  & \vdots\\
I & 0 &\cdots& 0\\
\end{pmatrix}
\]
\end{document}

이런 식으로 다음 두 행렬을 그리고 싶습니다.

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

답변1

다음은nicematrix . 불행하게도 내가 볼 수 있는 한, 멋진 점선은 사용자가 자신의 주석에 사용할 수 있는 일부 스타일이 아니기 때문에 다음 변형을 사용하여 다시 실행해야 했습니다.이 답변.

\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\usepackage{nicematrix}
\tikzset{Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
    line width=1pt,
    dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
    shorten >=0.3em,shorten <=0.3em},
    Dotted/.default=5}
\begin{document}
\[A=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (2-2) -- (3-3);
\end{tikzpicture}}]%
I       &0 &\Cdots  &0\\
0 & I      &\Ddots  &\Vdots\\
\Vdots  &\Ddots  &I       &0\\
0 &\Cdots  &0 &I
\end{pNiceArray}
\]
and 
\[B=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (3-2) -- (2-3);
\draw[Dotted] (3-1) -- (1-3);
\draw[Dotted] (4-2) -- (2-4);
\end{tikzpicture}}]%
0       &\Cdots  &0 &I\\
\Vdots &       &I  &0\\
0  &I  &       &\Vdots\\
I &0  &\Cdots &0
\end{pNiceArray}
\]
\end{document}

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

또는 평행한 점선이 있는 버전입니다.

\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\usepackage{nicematrix}
\tikzset{Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
    line width=1pt,
    dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
    shorten >=0.3em,shorten <=0.3em},
    Dotted/.default=5}
\begin{document}
\[A=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (2-2) -- (3-3);
\end{tikzpicture}}]%
I       &0 &\Cdots  &0\\
0 & I      &\Ddots  &\Vdots\\
\Vdots  &\Ddots  &I       &0\\
0 &\Cdots  &0 &I
\end{pNiceArray}
\]
and 
\[B=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (3-2.30) -- (2-3.-150);
\draw[Dotted] (3-1) -- (1-3);
\draw[Dotted] (4-2) -- (2-4);
\end{tikzpicture}}]%
0       &\Cdots  &0 &I\\
\Vdots &       &I  &0\\
0  &I  &       &\Vdots\\
I &0  &\Cdots &0
\end{pNiceArray}
\]
\end{document}

아니면 nicematrix.

\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,mathdots}
\begin{document}
\[A=
\begin{pmatrix}
I       &0 &\cdots  &0\\
0 & I \smash{\makebox[0pt][l]{\;\raisebox{-0.8em}{$\ddots$}}}     &\ddots  &\vdots\\
\vdots  &\ddots  &I       &0\\
0 &\cdots  &0 &I
\end{pmatrix}
\]
and 
\[B=
\begin{pmatrix}
0       &\cdots  &0 &I\\
\vdots &  \iddots     &I  &0\\
0  &I\smash{\makebox[0pt][l]{\;\raisebox{0.8em}{$\iddots$}}}  &  \iddots      &\vdots\\
I &0  &\cdots &0
\end{pmatrix}
\]

\end{document}

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

답변2

이것은 슈뢰딩거의 고양이의 대답을 각색한 것입니다. 실제로 nicematrix(3.13 2020-03-15) 최신 버전부터는 Tikz에서 제공하는 어떤 선 스타일로도 연속 점선을 그릴 수 있습니다.

주목: 이번 버전 3.13부터 더 이상 nicematrix로드되지 않습니다 . tikz로드만 가능합니다 pgf(기본적으로 이 새 버전에서는 만 사용하기 때문 pgf).

\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\usepackage{nicematrix}

\usepackage{tikz}

\tikzset{Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
    line width=1pt,
    dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
    shorten >=0.3em,shorten <=0.3em},
    Dotted/.default=5}


\begin{document}

\begin{gather*}
A=
\begin{pNiceArray}{CCCC}[code-after={\line[line-style = Dotted]{2-2}{3-3}}]
I       & 0      & \Cdots  &0     \\
0       & I      & \Ddots  &\Vdots\\
\Vdots  &\Ddots  & I       &0     \\
0       &\Cdots  & 0       &I
\end{pNiceArray}
\\
B=
\begin{pNiceArray}{CCCC}[
code-after = {
\line[line-style = Dotted]{3-2}{2-3} }
]%
0      & \Cdots  & 0     & I\\
\Vdots & \Iddots[line-style=Dotted] & I     & 0\\
0      & I       & \Iddots[line-style=Dotted] & \Vdots\\
I      & 0       &\Cdots & 0
\end{pNiceArray}
\end{gather*}


\end{document}

위 코드의 결과

관련 정보